여러 도면에 적용 할 속성 탭 구분 텍스트 파일이 있습니다. AutoCAD가 팝업되지 않고 "하나 이상의 블록을 찾을 수 없으므로 대화식으로 데이터를 선택 하시겠습니까?"라고 말합니다. , 블록의 HANDLE 속성을 사용해야합니다. 주어진 도면에서 ATTOUT을 사용하여 내 블록의 핸들을 보면 '8B3F'와 같은 값을 얻을 수 있습니다. 핸들과 함께 ATTIN을 사용하면 효과가 있습니다. 이것을 다른 핸들이있는 여러 도면에 적용하면 각 도면마다 각 블록의 핸들을 얻어야합니다. 여기에 내 코드가있다 - 엑셀 문서에 핸들을 작성한다. 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