明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2274|回复: 4

怎样获得点到曲线的垂足

[复制链接]
发表于 2003-10-1 18:32:00 | 显示全部楼层 |阅读模式
请问在vba中怎样获得一个点到一条曲线的垂足,以进一步获取点到该曲线的最短距离
发表于 2003-10-3 14:23:00 | 显示全部楼层
可使用vlax 类和curve类模块来解决:
  1. Sub GetClosestPoint()
  2.     'ThisDrawing.SendCommand "(vl-load-com)" & vbCrLf
  3.     '定义引用曲线类模块
  4.     Dim ObjCurve As Curve
  5.     Set ObjCurve = New Curve
  6.     '获取曲线
  7.     Dim Pnt As Variant
  8.     Dim Ent As AcadEntity
  9.     ThisDrawing.Utility.GetEntity Ent, Pnt, "选择曲线:"
  10.     '亮显刚选定的曲线以方便捕捉曲线上的点
  11.     Ent.Highlight True
  12.     '捕捉曲线上的一个点
  13.     Pnt = ThisDrawing.Utility.GetPoint(, "选择曲线外的一点:")
  14.     '通过曲线类模块获取曲线距离选取点最近的点
  15.     Set ObjCurve.Entity = Ent
  16.     Dim ClosestPnt As Variant
  17.     ClosestPnt = ObjCurve.GetClosestPointTo(Pnt)
  18.     '显示曲线长度
  19.     MsgBox "曲线上距离选取点最近的点坐标为:" & vbCrLf & vbCrLf & ClosestPnt(0) & "," & ClosestPnt(1) & "," & ClosestPnt(2), , "明经通道VBA示例"
  20.     '取消曲线的亮显
  21.     Ent.Highlight False
  22.     '释放变量
  23.     Set ObjCurve = Nothing
  24. End Sub

发表于 2011-12-2 14:38:56 | 显示全部楼层
好好好
发表于 2011-12-4 05:36:06 | 显示全部楼层
请教明总:
在您所给例中,
    Dim ObjCurve As Curve
    Set ObjCurve = New Curve
Curve在VBA对象模型中找不到,这是为什么?
发表于 2012-5-12 09:37:50 | 显示全部楼层
可使用vlax 类和curve类模块来解决
老师,你并没有提供这两个类模块啊,电脑运行错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 16:57 , Processed in 0.156535 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表