複数の図面に適用する属性タブ区切りテキストファイルがあります。 AutoCADでポップアップが表示されず、「1つ以上のブロックが見つからない場合は、データをインタラクティブに選択しますか?ブロックのHANDLEプロパティを使用する必要があります。与えられた図面で、ATTOUTを使って私のブロックのハンドルを見ると、 '8B3F'のような値が得られます。そのハンドルでATTINを使用すると機能します。異なるハンドルを持つ複数の図面にこれを適用すると、各図面があれば各ブロックのハンドルを取得する必要があります。ここで私のコードです - Excelのドキュメントにハンドルを書く。今AutoCAD Block Handleを取得 - VB.NETを使用した異なる結果
xlbook = xlapp.Workbooks.Open(attInText,, False)
xlsheet = xlbook.Worksheets(dwgName)
Dim Handle As String = ""
'get the handle to the CHS11x17TB title block
For Each blk As AutoCAD.AcadBlock In cadDOC.Blocks
If blk.Name.ToUpper = "CHS11X17TB" Then
Handle = blk.Handle
xlsheet.Cells(2, "A").value = Handle
Exit For
End If
Next
、問題はハンドルがATTOUTを使用して生成されたものと同じではないということです - 私は、コードを使用して75B0」のような何かを得るでしょう。なぜATTOUTは私に図面のブロックをループするのとは違う扱いをすると思いますか?私はブロックがペーパースペースにあることに気づくでしょう。その質問に答えることができない場合は、私のブロックにハンドルを取得するための代替ソリューションに興味があります。
あなたがブロック定義またはブロック参照をループしようとしている? 'AutoCAD.AcadBlock'が定義です。ブロックごとに一つの定義がありますブロックごとに複数のBlockReferencesがある可能性があります。 – braX