Как я могу получить координаты блока-ссылки в AutoCAD-VBA? - PullRequest
0 голосов
/ 22 июля 2010

Я пытаюсь получить координаты autocad blockreference.

С помощью приведенного ниже кода я могу выбрать blockreference в autocad, но он всегда отображает (0,0,0) как точку вставки ...

Является ли точка вставки фактическими координатами блока или нет?

Sub GetInsertpoint()
    Dim oEnt As AcadEntity
    Dim varPick As Variant
    Dim brBref As AcadBlockReference
    Dim arAttR As AcadAttributeReference
    Dim varAt As Variant
    Dim i As Double

    ThisDrawing.Utility.GetEntity oEnt, varPick, vbCr & "Get the block"
    If TypeOf oEnt Is AcadBlockReference Then
        MsgBox "Thank you, very nice!"
        Set brBref = oEnt
        MsgBox brBref.InsertionPoint(0) & brBref.InsertionPoint(1) & brBref.InsertionPoint(2)
    Else
        MsgBox "Not a block reference!"
        Exit Sub
    End If

End Sub

Ответы [ 3 ]

1 голос
/ 01 сентября 2010

Сначала: какую версию AutoCAD вы используете?

At попробовал ваш код на немецком AutoCAD 2008. Я создал несколько простых блоков из полигонов и вставил их в новый чертеж.

Когда я выполняю ваш код выше и выбираю один из этих блоков, я всегда получаю действительные координаты. Так что это может быть проблемой, как вы создали блок?

Возможно, вы создали блок и оставили поле «Выбрать точку вставки на экране» пустым. Таким образом, ACAD принял значение по умолчанию: (0,0,0). Это было бы объяснением, почему вы всегда получаете эти координаты.

0 голосов
/ 27 января 2017

Попробуйте это

Dim point1, point2 As Variant
brBref.GetBoundingBox point1, point2
MsgBox point1(0) & " / " & point1(1) & vbcrlf & point2(0) & " / " & point2(1)
0 голосов
/ 24 февраля 2013

взорвать AcDbBlockReferance

AcDbBlockReferance.explode ();

Это даст вам сущности, присутствующие в BlockReferance.

...