查看单个帖子
旧 2009-04-28, 02:59 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】求助lisp高手

求助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!!!
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)