如何找出图中所有交点?
如何找出一张图中所有的交点,及其对应的线? 只能通过一条线,查找在它某一范围之内的其它线,判断它们之间有没有交点。Sub test()
' 判断图纸中的实体数目,不存在时中断
If ThisDrawing.ModelSpace.Count = 0 Then Exit Sub
Dim EntObj1 As AcadEntity
Dim EntObj2 As AcadEntity
Dim v As Variant
' 遍历模型空间
For Each EntObj1 In ThisDrawing.ModelSpace
' 判断实体的类型,线应该包含直线、圆弧、圆、多段线等等,要一一判断
If TypeOf EntObj1 Is AcadLine Or TypeOf EntObj1 Is AcadLWPolyline Then
For Each EntObj2 In ThisDrawing.ModelSpace
If TypeOf EntObj1 Is AcadLine Or TypeOf EntObj1 Is AcadLWPolyline Then
' 判断相交情况
v = EntObj1.IntersectWith(EntObj2, acExtendNone)
If Not IsEmpty(v) Then
' 一个交点
If UBound(v) = 3 Then
' 两个交点
ElseIf UBound(v) = 6 Then
' 其它情况
Else
End If
End If
End If
Next
End If
Next
End Sub
这仅是一个示例,具体的要根据自己的情况来处理。
页:
[1]