乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 69|回复: 4

怎样获得点到曲线的垂足

[复制链接]

4

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
21
发表于 2003-10-1 18:32:00 | 显示全部楼层 |阅读模式
请问在vba中怎样获得一个点到一条曲线的垂足,以进一步获取点到该曲线的最短距离
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 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
回复

使用道具 举报

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2011-12-2 14:38:00 | 显示全部楼层
好好好
回复

使用道具 举报

10

主题

34

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2011-12-4 05:36:00 | 显示全部楼层
请教明总:
在您所给例中,
    Dim ObjCurve As Curve
    Set ObjCurve = New Curve
Curve在VBA对象模型中找不到,这是为什么?
回复

使用道具 举报

58

主题

274

帖子

14

银币

中流砥柱

Rank: 25

铜币
507
发表于 2012-5-12 09:37:00 | 显示全部楼层
可使用vlax 类和curve类模块来解决
老师,你并没有提供这两个类模块啊,电脑运行错误
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-30 04:30 , Processed in 1.012698 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表