弧小于180度
这比我想象的要复杂已知数据:
[列表]
[*]弧中心点
[*]弧“p1”p2的起点和终点
[*]因此弧的半径(距离cen p1)'ra
[*]圆弧夹角始终小于180度
[/列表]
(entmake
(list
(cons 0 "ARC")
(cons 10 cen)
(cons 40 ra)
(cons 50 (angle cen p1_or_p2))
(cons 51 (angle cen p2_or_p1))))
我尝试了各种测试,但似乎没有任何东西能正常工作。
有什么想法吗?TIA-David (if (< pi (LM:IncludedAngle cen p1 p2))
(setq tmp p1 p1 p2 p2 tmp)
)
(entmake
(list
'(0 . "ARC")
(cons 10 cen)
(cons 40 (distance cen p1))
(cons 50 (angle cen p1))
(cons 51 (angle cen p2))
)
)
;; Included Angle-Lee Mac
;; Returns the included angle of an arc
;; with center cen and start & end points p1,p2
(defun LM:IncludedAngle ( cen p1 p2 )
(rem (+ pi pi (- (angle cen p2) (angle cen p1))) (+ pi pi))
) 假设WCS和2D点(因为在entmake中未使用trans和210标志-法向量)
(defun arc3p (c p1 p2 / r a1 a2 rev)
(setq r (distance c p1)
a1(angle c p1)
a2(angle c p2)
rev ((lambda (a1 a2 / u)
(if (minusp (setq u (- a2 a1)))
(setq u (+ u (* 2 pi)))
)
(= u (rem u pi))
)
a1
a2
)
)
(entmake
(list
'(0 . "ARC")
(cons 10 c)
(cons 40 r)
(cons 50 (if rev a1 a2))
(cons 51 (if rev a2 a1))
)
)
) 谢谢,两个都很好-大卫 不客气,大卫
页:
[1]