0

AutoCADのブロック参照の座標を取得しようとしています。

以下のコードを使用すると、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
4

3 に答える 3

1

AcDbBlockReferanceを分解します

AcDbBlockReferance.explode();

BlockReferanceに存在するuエンティティを提供します。

于 2013-02-24T15:55:10.160 に答える
1

最初は、どのバージョンのAutoCADを使用していますか?

ドイツのAutoCAD2008でコードを試してみました。ポリゴンからいくつかの単純なブロックを作成し、それらを新しい図面に挿入しました。

上記のコードを実行してそれらのブロックの1つを選択すると、常に有効な座標が取得されます。それで、これは問題かもしれません、どのようにブロックを作成しましたか?

ブロックを作成し、[画面から挿入ポイントを選択]を空白のままにした可能性があります。そのため、ACADはデフォルト値(0,0,0)を採用しました。それが説明になるでしょう、なぜあなたはいつもそれらの座標を得るのですか?

于 2010-09-01T10:22:39.113 に答える