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感觉怪怪的。。 展开
(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感觉怪怪的。。 展开
2个回答
展开全部
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)元素的运算。
‘() 里面是不能有变量的,只能用常量,即数,字符等。
另外,你的程序也可以这样写:
(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)元素的运算。
展开全部
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)元素的运算。
‘() 里面是不能有变量的,只能用常量,即数,字符等。
另外,你的程序也可以这样写:
(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)元素的运算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询