2010-07-22 69 views
0

我想獲得autocad塊引用的座標。如何獲得autocad-VBA中塊參考的座標?

有了下面的代碼,我可以選擇一個如BlockReference在AutoCAD中,但它總是顯示(0,0,0)作爲insertionpoint ...

是在insertionpoint塊的實際座標,或不?

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 

回答

1

起初:您使用的是哪個版本的AutoCAD?

在德語AutoCAD 2008上試用了您的代碼。我從多邊形創建了一些簡單的塊,並將它們插入到新的繪圖中。

當我執行上面的代碼並選擇其中一個塊時,我總是得到有效的座標。 所以這可能是一個問題,你如何創建塊?

也許您創建了一個塊,並將「從屏幕上選擇插入點」留空。所以ACAD採用默認值:(0,0,0)。這將是一個解釋,爲什麼你總是得到這些座標。

0

爆炸的AcDbBlockReferance

AcDbBlockReferance.explode();

它會給你存在於BlockReferance中的實體。

0

試試這個

Dim point1, point2 As Variant 
brBref.GetBoundingBox point1, point2 
MsgBox point1(0) & "/" & point1(1) & vbcrlf & point2(0) & "/" & point2(1)