CAD二次开发(LISP)_getpoint及坐标计算问题

(defunc:bom()(setqp1(getpoint"请输入插入点:")a1(carp1)b1(cadrp1)a2(+a110)b2(+b110)p2'(a2b2)... (defun c:bom()
(setq
p1 (getpoint "请输入插入点: ")
a1 (car p1)
b1 (cadr p1)
a2 (+ a1 10)
b2 (+ b1 10)
p2 ' (a2 b2)
)
(command "rectang" p1 "@200,100")
(command "rectang" p2 "@190,90")
)

想画两个矩形,大的套小的,p2的坐标搞不定,上面的代码错在哪啊?只有2分没法给了,望高人不吝赐教。
另:哪里有C语言做CAD二次开发的教材?LISP感觉怪怪的。。
展开
 我来答
美妙又虔敬丶多宝鱼7603
2011-04-21 · TA获得超过265个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:195万
展开全部
p2 ' (a2 b2) ;;这一段错了,应该是(list a2 b2)
‘() 里面是不能有变量的,只能用常量,即数,字符等。
另外,你的程序也可以这样写:
(defun c:bom()
(if (setq p1 (getpoint "\n请选择插入点: "))
(progn
(command "_.rectang" p1 "@200,100")
(command "_.rectang" (mapcar '+ p1 (list 10 10)) "@180,80")
)
)
)

(mapcar '+ p1 (list 10 10)) 此段为依次向表 p1 的各个元素进行 '+ 相应的表 (list 10 10)元素的运算。
黄日与米米
2016-04-26
知道答主
回答量:4
采纳率:0%
帮助的人:3752
展开全部
p2 ' (a2 b2) ;;这一段错了,应该是(list a2 b2)
‘() 里面是不能有变量的,只能用常量,即数,字符等。
另外,你的程序也可以这样写:
(defun c:bom()
(if (setq p1 (getpoint "\n请选择插入点: "))
(progn
(command "_.rectang" p1 "@200,100")
(command "_.rectang" (mapcar '+ p1 (list 10 10)) "@180,80")
)
)
)

(mapcar '+ p1 (list 10 10)) 此段为依次向表 p1 的各个元素进行 '+ 相应的表 (list 10 10)元素的运算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式