AutoLisp画同心圆

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 11:20:14
AutoLisp画同心圆

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就可以使用

写了一个,你看看.