求正方形向内偏移的LISP程序

上图为老师给我们写的开头,求大神接着编下去。。。这是大致的题目~~~~... 上图为老师给我们写的开头,求大神接着编下去。。。

这是大致的题目~~~~
展开
 我来答
dnbc1
2013-06-10 · TA获得超过978个赞
知道小有建树答主
回答量:1235
采纳率:92%
帮助的人:407万
展开全部
试试这个吧:
(defun c:asd()
(setq cmd (getvar "cmdecho")
osm (getvar "osmode")
)
(setvar "cmdecho" 0)
(setvar "osmode" 33)
(command "_undo" "be")
(if (setq bp (getpoint "\n请指定正方形中心点:"))
(if (setq h (getreal "\n请输入正方形边长:"))
(if (setq h1 (getreal "\n请输入往内偏移的距离:"))
(if (> h h1)
(progn
(setvar "osmode" 0)
(while (> h 0.0)
(setq p1 (mapcar '+ bp (list (* -0.5 h) (* -0.5 h)))
p2 (mapcar '+ bp (list (* 0.5 h) (* 0.5 h)))
)
(command "_rectang" p1 p2)
(setq h (- h h1))
)
)
(alert (strcat "正方形边为" (rtos h) "小于偏移距离" (rtos h1) "!"))
)
)
)
)

(command "_undo" "e")
(setvar "osmode" osm)
(setvar "cmdecho" cmd)
(princ)
)
追问
万分感谢!!!!!另外再麻烦你一下~~~~偏移一层要改图层~~~麻烦只要指出改图层的语句插在哪里就行了!!!非常感谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
追答
(command "_rectang" p1 p2)
(command "_chprop" (entlast) "" "la" 层名 "")
(setq h (- h h1))
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式