CAD lisp 递增直径画圆。帮忙指点以下程序,为何执行后圆的坐标不正确。
(defunC:CC()(princ"\n指定两点间,画0.5到1mm半径的圆50个")(setqd10.5d21num50di(/(-d2d1)(-num1))p1(g...
(defun C:CC()
(princ "\n 指定两点间,画0.5到1mm半径的圆50个")
(setq d1 0.5
d2 1
num 50
di (/ (- d2 d1) (- num 1))
p1 (getpoint"\n 指定起点:")
x1 (car p1)
y1 (cadr p1)
p2 (getpoint"\n 指定终点:")
x2 (car p2)
y2 (cadr p2)
y (/ (- y2 y1) (- num 1))
x (/ (- x2 x1) (- num 1))
n 0
p p1
)
(while (< n num)
(command "_circle" p d1)
(setq d1 (+ d1 di)
p (mapcar '+ p (list x y))
n (1+ n )
)
)
) 展开
(princ "\n 指定两点间,画0.5到1mm半径的圆50个")
(setq d1 0.5
d2 1
num 50
di (/ (- d2 d1) (- num 1))
p1 (getpoint"\n 指定起点:")
x1 (car p1)
y1 (cadr p1)
p2 (getpoint"\n 指定终点:")
x2 (car p2)
y2 (cadr p2)
y (/ (- y2 y1) (- num 1))
x (/ (- x2 x1) (- num 1))
n 0
p p1
)
(while (< n num)
(command "_circle" p d1)
(setq d1 (+ d1 di)
p (mapcar '+ p (list x y))
n (1+ n )
)
)
) 展开
展开全部
捕捉没有关闭,用command时会自动捕捉到点。
(defun C:CC ()
(princ "\n 指定两点间,画0.5到1mm半径的圆50个")
(setqd1 0.5
d2 1
num 50
di (/ (- d2 d1) (- num 1))
p1 (getpoint "\n 指定起点:")
x1 (car p1)
y1 (cadr p1)
p2 (getpoint p1 "\n 指定终点:")
x2 (car p2)
y2 (cadr p2)
y (/ (- y2 y1) (1- num))
x (/ (- x2 x1) (1- num))
n 0
p p1
)
(setq old-osmode (getvar "osmode"))
(setvar "osmode" 0)
(setvar "CMDECHO" 0)
(while (< n num)
(command "_circle" p d1)
(setq d1 (+ d1 di)
p (mapcar '+ p (list x y))
n (1+ n)
)
)
(setvar "osmode" old-osmode)
(princ)
)
(defun C:CC ()
(princ "\n 指定两点间,画0.5到1mm半径的圆50个")
(setqd1 0.5
d2 1
num 50
di (/ (- d2 d1) (- num 1))
p1 (getpoint "\n 指定起点:")
x1 (car p1)
y1 (cadr p1)
p2 (getpoint p1 "\n 指定终点:")
x2 (car p2)
y2 (cadr p2)
y (/ (- y2 y1) (1- num))
x (/ (- x2 x1) (1- num))
n 0
p p1
)
(setq old-osmode (getvar "osmode"))
(setvar "osmode" 0)
(setvar "CMDECHO" 0)
(while (< n num)
(command "_circle" p d1)
(setq d1 (+ d1 di)
p (mapcar '+ p (list x y))
n (1+ n)
)
)
(setvar "osmode" old-osmode)
(princ)
)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询