求用Auto LISP语言编写下图的程序,希望简单一些,拜托了。
1个回答
展开全部
试编程序如下,请校核。
(defun hang (p r n)
(repeat n
(command "circle" p r)
(setq l (cons p l)
p (polar p 0 (+ r r))
)
)
l
)
(defun sjy (p r n / i p1 p2 p3 l)
(setq i 0)
(repeat n
(hang p r (- n i))
(setq i (1+ i)
p (polar p (/ pi 3) (+ r r))
)
)
(setq p1 (last l)
p2 (car l)
p3 (polar p1 0 (distance p1 p2))
)
(command "pline" p1 p2 p3 "c")
(command "offset" r p2 (polar p2 (/ pi 2) (+ r r)) "")
(command "erase" p2 "")
l
)
(defun c:sjy (/ p r n)
(setq p (getpoint "左下角圆心坐标:")
r (getdist p "半径:")
n (getint "排数:")
)
(sjy p r n)
)
(defun hang (p r n)
(repeat n
(command "circle" p r)
(setq l (cons p l)
p (polar p 0 (+ r r))
)
)
l
)
(defun sjy (p r n / i p1 p2 p3 l)
(setq i 0)
(repeat n
(hang p r (- n i))
(setq i (1+ i)
p (polar p (/ pi 3) (+ r r))
)
)
(setq p1 (last l)
p2 (car l)
p3 (polar p1 0 (distance p1 p2))
)
(command "pline" p1 p2 p3 "c")
(command "offset" r p2 (polar p2 (/ pi 2) (+ r r)) "")
(command "erase" p2 "")
l
)
(defun c:sjy (/ p r n)
(setq p (getpoint "左下角圆心坐标:")
r (getdist p "半径:")
n (getint "排数:")
)
(sjy p r n)
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询