earchen 发表于 2003-10-1 18:32:00

怎样获得点到曲线的垂足

请问在vba中怎样获得一个点到一条曲线的垂足,以进一步获取点到该曲线的最短距离

mccad 发表于 2003-10-3 14:23:00

可使用vlax 类和curve类模块来解决:
Sub GetClosestPoint()
    'ThisDrawing.SendCommand "(vl-load-com)" & vbCrLf
    '定义引用曲线类模块
    Dim ObjCurve As Curve
    Set ObjCurve = New Curve
    '获取曲线
    Dim Pnt As Variant
    Dim Ent As AcadEntity
    ThisDrawing.Utility.GetEntity Ent, Pnt, "选择曲线:"
    '亮显刚选定的曲线以方便捕捉曲线上的点
    Ent.Highlight True
    '捕捉曲线上的一个点
    Pnt = ThisDrawing.Utility.GetPoint(, "选择曲线外的一点:")
    '通过曲线类模块获取曲线距离选取点最近的点
    Set ObjCurve.Entity = Ent
    Dim ClosestPnt As Variant
    ClosestPnt = ObjCurve.GetClosestPointTo(Pnt)
    '显示曲线长度
    MsgBox "曲线上距离选取点最近的点坐标为:" & vbCrLf & vbCrLf & ClosestPnt(0) & "," & ClosestPnt(1) & "," & ClosestPnt(2), , "明经通道VBA示例"
    '取消曲线的亮显
    Ent.Highlight False
    '释放变量
    Set ObjCurve = Nothing
End Sub

llikk_love 发表于 2011-12-2 14:38:56

好好好

szj612 发表于 2011-12-4 05:36:06

请教明总:
在您所给例中,
    Dim ObjCurve As Curve
    Set ObjCurve = New Curve
Curve在VBA对象模型中找不到,这是为什么?

清风明月名字 发表于 2012-5-12 09:37:50

可使用vlax 类和curve类模块来解决
老师,你并没有提供这两个类模块啊,电脑运行错误
页: [1]
查看完整版本: 怎样获得点到曲线的垂足