밑에서 우격다짐 처럼 드린 질문이 아니고, 좀 개선된
질문입니다. 아래와 같이 해서 각 엔티티의 종류에 따라
처리하는 코드를 만들어 보았습니다.
라인쪽은 님이 친절히 만들어 주셔서 되었는데,
폴리라인쪽에서 아래와 같이 짜 보았는데요,,,
P(i)에 Msgbox를 걸어서 보니, 9개나 나옵니다.
왜 그런가요? 평면도면이라서 3개의 점에 각각 3개(x,y,z)
이 붙는다면, 0이라는 것이 리턴되어야 할텐데,
전부 0이 아닌 좌표들로 9개가 리터됩니다.
물론, 다른 폴리라인은 더 많이/더 적게 나올수도 있겠지만…
왜 그런가요?
폴리라인은 라인같이 처리하면 안되는 것입니까?
===========================================================
For Each ent In ThisDrawing.ModelSpace
‘==========라인일때 처리 =====================↓
If ent.ObjectName = “AcDbLine” Then
Set objline = ent
s1 = objline.StartPoint(0) ‘X좌표(START)
s2 = objline.StartPoint(1) ‘Y좌표
‘s3 = objLine.StartPoint(2) ‘Z좌표
e1 = objline.EndPoint(0) ‘X좌표(END)
e2 = objline.EndPoint(1) ‘Y좌표
‘e3 = objLine.EndPoint(2) ‘Z좌표
‘==========폴리라인일때 처리======================↓
ElseIf ent.ObjectName = “AcDbPolyline” Then
Set objpolyline = ent
coods = objpolyline.Coordinates
cood_cot = UBound(objpolyline.Coordinates)
ReDim P(0 To cood_cot)
For i = 0 To cood_cot
P(i) = coods(i)
MsgBox P(i)
Next i
‘==================================================↑
End If
Next