求助lisp高手
www.dimcax.com
求助lisp高手
求lisp高手帮忙编一个lisp程序: 1已知圆弧的半径和圆心角画出圆弧,
2已知圆弧的半径和玄长画出圆弧,
3已知圆弧的半径和弧长画出圆弧
三种已知条件任选一种就行了
大侠们,拉小弟一把吧!!!
是已知条件不够还是咋的?高手帮帮忙啊
(setq r 12)
(setq ang1 0)
(setq ang2 3.1415)
(setq pt0 (list 0 0))
(setq pt1 (polar pt0 ang1 r))
(setq pt2 (polar pt0 ang2 r))
(command "._arc" "c" pt0 pt1 pt2)
(defun c:drawarc (/ gg o p0 r)
(setq gg
(getint
"\n 选择绘制方式[1-半径/圆心角、2-半径/弦长、3-半径/弧长]<1-半径/圆心角>:"
)
)
(if (= gg nil)
(setq gg 1)
)
(setq o (getpoint "\n 输入圆心:"))
(setq p0 (getpoint o "\n 输入圆弧起点:"))
(setq r (distance o p0))
(defun arc1 (/ ango ang);
(setq ang0 (getangle "\n 输入圆心角 :"))
(setq ang (* (/ 180 pi) ang0))
(command "arc" "c" o p0 "a" ang)
)
(defun arc2 (/ l)
(setq l (getdist "\n 输入弦长:"))
(if (>= l (* 2 r))(setq l (* 2 r)))
(command "arc" "c" o p0 "l" l)
)
(defun arc3 (/ la ang)
(setq la (getdist "\n 输入圆弧长度:"))
(setq ang (* la (/ 180 pi)))
(if (>= la (* 2 pi r))(setq ang (* 2 pi)))
(command "arc" "c" o p0 "a" ang)
)
(cond ((= gg 1)(arc1))
((= gg 2)(arc2))
((= gg 3)(arc3))
)
(princ)
)
progress every day!!!