[分享]刚写一个可以把图纸空间对象转模型空间的LISP
本帖最后由 作者 于 2007-9-7 16:48:03 编辑; 功能:把图纸空间的对象改到模型空间
; 时间:2007-09-07
; 编写:BDYCAD
(defun c:tm(/ DXF I NAME SS SSLEN)
(if(setq ss(ssget))
(progn
(setq i 0 sslen(sslength ss))
(repeat sslen
(setq name(ssname ss i)
dxf(entget name)
dxf(subst (cons 410 "Model")(assoc 410 dxf)dxf))
(entmake dxf)
(setq i(1+ i)))
(princ "\n把选到的图纸空间的对象转到模型空间了!")
)
(princ"\n没有选到对象!")
)
(princ)
)刚写的代码:)欢迎参考,欢迎使用! <p>会不会有个比例的问题?</p> hao1! <p>;;By Lucas</p><p>;;這個用很久了</p><p>(defun C:COPY_2_OTHER_SPACE (/ DOC N SS LST)<br/> (setq SS (ssget "x"<br/> (list (cons 410 (getvar "ctab"))<br/> (cons 0 (strcat "~" "VIEWPORT"))<br/> )<br/> )<br/> N -1<br/> DOC (vla-get-activedocument (vlax-get-acad-object))<br/> )<br/> (repeat (sslength SS)<br/> (setq<br/> LST (cons (vlax-ename->vla-object (ssname SS (setq N (1+ N))))<br/> LST<br/> )<br/> )<br/> )<br/> (vla-copyobjects<br/> DOC<br/> (vlax-safearray-fill<br/> (vlax-make-safearray<br/> vlax-vbobject<br/> (cons 0 (1- (length LST)))<br/> )<br/> LST<br/> )<br/> (if (equal (getvar "ctab") "Model")<br/> (vla-get-paperspace DOC)<br/> (vla-get-modelspace DOC)<br/> )<br/> )<br/> (vlax-release-object DOC)<br/> (princ)<br/>)</p> 正在学习这方面的知识,谢谢两位高手..,学习了 <p>是不是有个选择插入基点更完美?</p><p>直接copy到模型空间后,有时候都找不到,也有可能重叠。如果在copy的时候提示来个插入点可能更好。</p> 那么又如何把模型空间的对象转为图纸空间的对象呢?! <p>可以不用编程的。</p><p>chspace,就是把图纸空间的东西转化为模型空间的。</p> 谢谢,又学一招 chspace还真不知道,是cad命令么?还是et的?
页:
[1]
2