用LISP绘制同心圆
(defun c:txy()
(setvar "cmdecho" 0)
(setq pt (getpoint "\n输入圆心:"))
(setq su (getint "\n同心圆数量:"))
(setq rr (getreal "\n半径递增量:"))
(setq rr2 rr)
(repeat su
(command "circle" pt rr2)
(setq rr2 (+ rr2 rr)))
(prin1))
(prompt "\n命令:txy")
(promot "\n作者:leimc")
大致的解释一下:
(defun c:txy()
'设置一个新CAD命令txy
(setvar "cmdecho" 0)
'关闭命令响应
(setq pt (getpoint "\n输入圆心:"))
'设定变量pt为圆心坐标
(setq su (getint "\n同心圆数量:"))
'设定变量su为想画多少个同心圆
(setq rr (getreal "\n半径递增量:"))
'设定变量rr为每画一个圆后下个圆半径增加多少
(setq rr2 rr)
'设定变量rr2为第一个圆的半径,这里设为=递增量,你也可以自己设,比如setq rr2 5.2,也可以直接在屏幕上截取,半本句改为(setq rr2 pause)
(repeat su
'循环 次数
(command "circle" pt rr2)
'以圆心pt、半径rr2画圆
(setq rr2 (+ rr2 rr)))
'画完后,下一个圆的半径rr2=现在半径+递增量rr,rr2的值已经变了,然后再以圆心pt、新的半径rr2返回上一句再次画圆,直到画到你设定su次为止
(prin1))
(prompt "\n命令:txy")
看你的啦!
[ 本帖最后由 leimc 于 2007-12-19 00:41 编辑 ] 不错。论坛研究这个的人比较少。希望以后会慢慢的多起来。以后此类帖子请归类为“开发”,不要选择“经验”,谢谢。 :P 好,顶顶 高手如此便方便了不少吧 你要是学会了LISP,真正方便不少的地方,这里表现出来的只是冰山一角。 哎!┅┅
贴着冷屁股了! 厉害,厉害。值得学习。 太牛了
:victory:
页:
[1]