lgf727 发表于 2004-1-10 18:31:00

如何找出图中所有交点?

如何找出一张图中所有的交点,及其对应的线?

efan2000 发表于 2004-1-10 21:07:00

只能通过一条线,查找在它某一范围之内的其它线,判断它们之间有没有交点。

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]
查看完整版本: 如何找出图中所有交点?