只需一步,快速开始
己知一个圆弧的两个端点及圆弧的半径,怎么设计一个Autolisp函数返回这个圆弧圆心?求求大家给我想想办法,谢了!
使用道具 举报
解一个二元二次方程组就可以了,一般情况下有两个解,当然也可能只有一个解或无解。
(defun acos (c b) (atan (sqrt (- (* c c) (* b b))) b) )
;若有二解: (setq vv (angle p1 p2) aa (acos (* rr 2) (distance p1 p2)) po1 (polar p1 (+ vv aa) rr) po2 (polar p1 (- vv aa) rr) )
2点: p1 p2
半径:R
(COMMAND "ARc" p1 "e" p2 "R" r)
(entlast)
-->求圆心?
半圆形圆弧的起点160.4, 1.0终点 162.401, 1.0半径1.0004
可得到的圆心却是:161.4, 1.0 这个结果是圆心到两端点的距离不一样?
这样的问题应怎样解决?
半径1.0004 ==> 直径 2.0008两点距 2.0010
直径 < 弦长 ==> 无解
是半圆,应该两端点的距离=直径,而现在却出现了半圆两端点的距离NO=直径这种现象,在实际应用当中出现了这种误差应如何处理?而输出某些其它软件的文件时,却出现因为这种原因而造成其它软件无法接受.这个小问题害苦我了~~
(if (equal 两点距 直径 可接受的公差) (setq po (mapcar (function (lambda (a b) (/ (+ a b) 2))) p1 p2 ) ))
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-9-20 01:38 , Processed in 0.194812 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.