谢谢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))
|