圆部分长度
可以获得如下所示的圆弧尺寸,而无需将圆分开,只需选择圆上的两个点???是的,我相信通过使用vlax曲线函数,特别是vlax曲线getDistatPoint,这是可能的。
如果你需要进一步的帮助,就喊出来。
李 我用的是2002年,我很好奇Autodesk是否能开发出新版本的软件来实现这一点。 当然,也有弧长标注,但它只适用于弧。。。
对于LISP替代方案:
(defun ArcLen (Ent pt1 pt2)
(abs
(- (vlax-curve-getDistatPoint Ent Pt2)
(vlax-curve-getDistatPoint Ent Pt1)))) 命令:\u appload Arclen。lsp已成功加载。
命令:
命令:
命令:ARCLEN
未知命令“ARCLEN”。按F1键获取帮助。
我的机器还在度假吗??? Arclen是一个子函数,需要三个参数,即所讨论的实体(圆)和两点。 例如。。。。绝对没有错误捕获:
(defun c:test (/ Cir p1 p2)
(if (and (setq Cir (car (entsel "\nSelect Circle: ")))
(setq p1 (getpoint "\nSelect First Point: "))
(setq p2 (getpoint "\nSelect Second Point: ")))
(ArcLen Cir p1 p2)))
这是你的解决方案,李,还有一点错误捕捉
(defun arclen (ent pt1 pt2)
(if (not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-curve-getendparam (list ent))))
(abs (- (vlax-curve-getdistatpoint ent (vlax-curve-getclosestpointto ent pt2))
(vlax-curve-getdistatpoint ent (vlax-curve-getclosestpointto ent pt1))
)
)
)
)
(arclen (car (entsel)) (getpoint) (getpoint)) 谢谢Ron
另一个,提供更多信息:
(defun ArcLen (Ent pt1 pt2 / Cir Arc)
(vl-load-com)
(if (not (vl-catch-all-error-p
(setq Cir
(vl-catch-all-apply
'vla-get-Circumference
(list
(vlax-ename->vla-object Ent))))))
(list
(setq arc
(abs
(- (vlax-curve-getDistatPoint Ent
(vlax-curve-getClosestPointto Ent Pt2))
(vlax-curve-getDistatPoint Ent
(vlax-curve-getClosestPointto Ent Pt1)))))
(- Cir arc))))
(defun c:test (/ ent p1 p2)
(if (and (setq ent (car (entsel "\nSelect Circle: ")))
(setq p1 (getpoint "\nPt1: "))
(setq p2 (getpoint "\nPt2: ")))
(print (ArcLen ent p1 p2)))
(princ))
我只休息了半个小时(还在工作)让我试试。。。
页:
[1]
2