天罡 发表于 2003-5-10 03:08:00

用vba能完成boundary的功能吗?

用vba能完成boundary的功能吗?

efan2000 发表于 2003-5-10 10:00:00

ACAD没有直接提供这个函数

ACAD虽然没有直接提供这个函数,但是可以通过SendCommand来执行ACAD的内部命令。或者如果自己的很强的图形基础知识的话,也可以编一个处理边界的函数,因为Boundary本身也是基于这种技术的。

天罡 发表于 2003-5-10 11:56:00

版竹,请问SendCommand如何写参数

版竹,请问SendCommand如何写参数

efan2000 发表于 2003-5-10 12:18:00

这是以前写的函数,可以参考一下。

Public Function Boundary(ByVal Point As Variant) As AcadLWPolyline
    On Error Resume Next
    Dim PrevTotal As Long
    PrevTotal = ThisDrawing.ModelSpace.Count
    ThisDrawing.SetVariable "NOMUTT", 1 '禁止不确定的消息反馈
    ThisDrawing.SendCommand "_-boundary" & vbCr & Point(0) & "," & Point(1) & vbCr & vbCr '调用BOUNDARY命令获取一点的边界
    ThisDrawing.SetVariable "NOMUTT", 0 '恢复普通模式的消息反馈

    If ThisDrawing.ModelSpace.Count.Count > PrevTotal Then
      Set Boundary = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)
    End If
End Function
当Boundary为Nothing时表示没有生成边界,这时点不在多边形内部,如果生成边界时,不需要这条多义线(如仅是判断点是否在多边形内部),应该用Delete方法删除边界。
页: [1]
查看完整版本: 用vba能完成boundary的功能吗?