CAD lisp程序瓶颈,高手帮忙!
(defunc:sxx()(setqen(entsel"\n选择对象:"))(setqens(entget(caren)))(setqs40(assoc40ens))(s...
(defun c:sxx ( )
(setq en (entsel "\n 选择对象:" ))
(setq ens (entget (car en )))
(setq s40 (assoc 40 ens))
(setq s40a (cdr s40))
(setq s10 (assoc 10 ens ))
(setq s10a (cdr s10))
(setq s210 (assoc 210 ens ))
(setq s210a (cdr s210))
(entmake '( (0 . "circle")
(62 . 2)
(cons 10 s10)
(cons 40 s40a)
(cons 210 s210a)
)
)
(prin1)
)
就是复制一个已经存在的圆,半径,法向Z坐标,圆心都一样,该怎么编辑啊? 展开
(setq en (entsel "\n 选择对象:" ))
(setq ens (entget (car en )))
(setq s40 (assoc 40 ens))
(setq s40a (cdr s40))
(setq s10 (assoc 10 ens ))
(setq s10a (cdr s10))
(setq s210 (assoc 210 ens ))
(setq s210a (cdr s210))
(entmake '( (0 . "circle")
(62 . 2)
(cons 10 s10)
(cons 40 s40a)
(cons 210 s210a)
)
)
(prin1)
)
就是复制一个已经存在的圆,半径,法向Z坐标,圆心都一样,该怎么编辑啊? 展开
2个回答
展开全部
autocad2007的copy自身就是多次拷贝,就是你不用输入m就是多次拷贝,但在二次开发中一定要用m
下面的lisp程序是用于拷贝
(defun c:ccp1 ()
(prompt "选择要拷贝的目标:")
(setq en (ssget))
(prompt "输入基点:")
(setq p1 (getpoint))
(command "copy" en "" p1 )
(while (setq p2 (getpoint))
(command p2)
)
)
在上面的程序中应没输入"m"虽然copy在命令下是多次拷贝的在程序中给它了多次拷贝的条件,但只能拷贝一次。
(defun c:ccp ()
(prompt "选择要拷贝的目标:")
(setq en (ssget))
(prompt "输入基点:")
(setq p1 (getpoint))
(command "copy" en "" "m" p1 )
(while (setq p2 (getpoint))
(command p2)
)
(command "")
)
在程序ccp中在输入p1前加了"m" (command "copy" en "" "m" p1 )它就是多次拷贝
下面是一个循环只要p2有值它就要去拷贝,当你在(setq p2 (getpoint))输入回车,这时p2是空值,程序就退出。
下面的lisp程序是用于拷贝
(defun c:ccp1 ()
(prompt "选择要拷贝的目标:")
(setq en (ssget))
(prompt "输入基点:")
(setq p1 (getpoint))
(command "copy" en "" p1 )
(while (setq p2 (getpoint))
(command p2)
)
)
在上面的程序中应没输入"m"虽然copy在命令下是多次拷贝的在程序中给它了多次拷贝的条件,但只能拷贝一次。
(defun c:ccp ()
(prompt "选择要拷贝的目标:")
(setq en (ssget))
(prompt "输入基点:")
(setq p1 (getpoint))
(command "copy" en "" "m" p1 )
(while (setq p2 (getpoint))
(command p2)
)
(command "")
)
在程序ccp中在输入p1前加了"m" (command "copy" en "" "m" p1 )它就是多次拷贝
下面是一个循环只要p2有值它就要去拷贝,当你在(setq p2 (getpoint))输入回车,这时p2是空值,程序就退出。
追问
能不能在我上面那个程序中直接改?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询