这种方法是运行Boundary命令来判断,其它的是通过纯计算方法来实现。
- Sub test()
-
- ' 当前图纸的实体数目
- Dim n As Long
- n = ThisDrawing.ModelSpace.Count
-
- ' 调用BOUNDARY命令获取某一点处的边界
- Dim Pt As Variant
- Pt = ThisDrawing.Utility.GetPoint(, "指定内部点: ")
- ThisDrawing.SendCommand "_-Boundary" & vbCr & Pt(0) & "," & Pt(1) & vbCr & vbCr
-
-
- ' 如果存在边界,则会生成新的实体
- Dim lwpLineObj As AcadLWPolyline
- If ThisDrawing.ModelSpace.Count > n Then
- Set lwpLineObj = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)
- ' 如果面积相等,则点在闭合多段线的内部
- If Format(lwpLineObj.Area, "0.0000") = 762.9872 Then ' 762.9872为测试数据,可以换成其它的。
- MsgBox "点在闭合多段线的内部"
- End If
- lwpLineObj.Delete
- End If
- End Sub
|