AutoLisp画同心圆
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 10:55:56
AutoLisp画同心圆
AutoLisp画同心圆
AutoLisp画同心圆
(defun c:ttt( / #os1 i r1 r2)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq #os1 (getvar "osmode"));;取得捕捉设置
(princ "\n请选择圆");;命令行显示
(setq b (ssget '((0 . "CIRCLE"))));;框选圆不是圆就不选择
(if (/= b nil);;如果有选择
(progn;;继续分析
(setq i 0);;第一个选择位置是0
(setvar "osmode" 0);;关闭捕捉;如不关闭可能绘图不正确
(setq r1 100);;设置为100
(setq r2 (getint (strcat "\n请输入半径:<" (rtos r1 2 0) ">")))
(if (= r2 nil) (setq r2 r1) );;如果没有输入就默认
(repeat (sslength b);;循环计算
(setq r1 (ssname b i));;取得一个图元
(setq r1 (entget r1));;取得属性列表
(setq r1 (cdr (assoc 10 r1)));;取得圆心
(command "circle" r1 r2);;绘制圆
(setq i (+ i 1));;下一个圆
);;结束
(setvar "osmode" #os1);;还原捕捉设置
)
)
(princ)
);保存到记事本以(TTT.lsp)命名加载到autocad就可以使用
写了一个,你看看.