lisp求圆弧上的中点、圆弧起始点、终止点、圆心、圆心角、半径

  • A+
所属分类:CAD二次开发

在用到圆弧的时候需要用到圆弧上的中点,经过多次折腾中点都对不上,圆弧的方向大小都不能统一,求到的中点也无效。。于是,接着折腾。。。

因为函数不太熟的原因,自己写代码很费劲,要查函数还有在网上查资料,收索有关的资料。

经过无数次的折腾和测试,在不断测试下,最终有效求得圆弧上的中点。

直接上代码:

(setq p1 (cdr (assoc 10 (entget 对象)))) ;圆心
(setq r (cdr (assoc 40 (entget 对象)))) ;半径
(setq r1 (cdr (assoc 50 (entget 对象))));起始角
(setq r2 (cdr (assoc 51 (entget 对象))));终止角
(setq p2 (polar p1 r1 r));起点
;(setq p4 (- r1 r2);圆心角

;(if (> 起角 终角) (setq 终角 (+ (* pi 2) 终角)));方向

;(setq p5(trans (polar 圆心 (+ 起角 (/ (- 终角 起角) 2.0)) 半径) 圆弧图元 坐标参数));中点、坐标参数0/1,0表示世界,1表示用户ucs

复制

可直接替换自己的对象即可

圆弧中点用中文标示,更容易理解,使用时替换上面对应的即可

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: