乐筑天下

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

[编程交流] 圆部分长度

[复制链接]

22

主题

272

帖子

254

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
111
发表于 2022-7-6 12:53:28 | 显示全部楼层 |阅读模式
可以获得如下所示的圆弧尺寸,而无需将圆分开,只需选择圆上的两个点???
135334beed7jf3dy9gz7rx.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:58:40 | 显示全部楼层
是的,我相信通过使用vlax曲线函数,特别是vlax曲线getDistatPoint,这是可能的。
 
如果你需要进一步的帮助,就喊出来。
 
回复

使用道具 举报

22

主题

272

帖子

254

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
111
发表于 2022-7-6 13:01:13 | 显示全部楼层
我用的是2002年,我很好奇Autodesk是否能开发出新版本的软件来实现这一点。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:06:10 | 显示全部楼层
当然,也有弧长标注,但它只适用于弧。。。
 
对于LISP替代方案:
 
  1. (defun ArcLen (Ent pt1 pt2)
  2. (abs
  3.    (- (vlax-curve-getDistatPoint Ent Pt2)
  4.         (vlax-curve-getDistatPoint Ent Pt1))))
回复

使用道具 举报

22

主题

272

帖子

254

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
111
发表于 2022-7-6 13:08:47 | 显示全部楼层
命令:\u appload Arclen。lsp已成功加载。
 
 
命令:
命令:
命令:ARCLEN
未知命令“ARCLEN”。按F1键获取帮助。
 
我的机器还在度假吗???
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:12:36 | 显示全部楼层
Arclen是一个子函数,需要三个参数,即所讨论的实体(圆)和两点。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:15:22 | 显示全部楼层
例如。。。。绝对没有错误捕获:
 
  1. (defun c:test (/ Cir p1 p2)
  2. (if (and (setq Cir (car (entsel "\nSelect Circle: ")))
  3.           (setq p1 (getpoint "\nSelect First Point: "))
  4.           (setq p2 (getpoint "\nSelect Second Point: ")))
  5. [color=Red][b]    (ArcLen Cir p1 p2)))[/b][/color]
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-6 13:15:51 | 显示全部楼层
这是你的解决方案,李,还有一点错误捕捉
 
  1. (defun arclen (ent pt1 pt2)
  2. (if (not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-curve-getendparam (list ent))))
  3.    (abs (- (vlax-curve-getdistatpoint ent (vlax-curve-getclosestpointto ent pt2))
  4.        (vlax-curve-getdistatpoint ent (vlax-curve-getclosestpointto ent pt1))
  5.     )
  6.    )
  7. )
  8. )
  9. (arclen (car (entsel)) (getpoint) (getpoint))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:21:01 | 显示全部楼层
谢谢Ron
 
另一个,提供更多信息:
 
  1. (defun ArcLen (Ent pt1 pt2 / Cir Arc)
  2. (vl-load-com)
  3. (if (not (vl-catch-all-error-p
  4.             (setq Cir
  5.               (vl-catch-all-apply
  6.                 'vla-get-Circumference
  7.                   (list
  8.                     (vlax-ename->vla-object Ent))))))
  9.    (list
  10.      (setq arc
  11.        (abs
  12.          (- (vlax-curve-getDistatPoint Ent
  13.               (vlax-curve-getClosestPointto Ent Pt2))
  14.             (vlax-curve-getDistatPoint Ent
  15.               (vlax-curve-getClosestPointto Ent Pt1)))))
  16.      (- Cir arc))))
  17. (defun c:test (/ ent p1 p2)
  18. (if (and (setq ent (car (entsel "\nSelect Circle: ")))
  19.           (setq p1 (getpoint "\nPt1: "))
  20.           (setq p2 (getpoint "\nPt2: ")))
  21.    (print (ArcLen ent p1 p2)))
  22. (princ))
回复

使用道具 举报

22

主题

272

帖子

254

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
111
发表于 2022-7-6 13:23:59 | 显示全部楼层
我只休息了半个小时(还在工作)让我试试。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 03:01 , Processed in 0.925755 second(s), 75 queries .

© 2020-2025 乐筑天下

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