BDYCAD 发表于 2007-9-7 16:44:00

[分享]刚写一个可以把图纸空间对象转模型空间的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)
)刚写的代码:)欢迎参考,欢迎使用!

sailorcwx 发表于 2007-9-7 16:58:00

<p>会不会有个比例的问题?</p>

ljcgq 发表于 2007-9-7 17:03:00

hao1!

龙龙仔 发表于 2007-9-7 17:19:00

<p>;;By Lucas</p><p>;;這個用很久了</p><p>(defun C:COPY_2_OTHER_SPACE (/ DOC N SS LST)<br/>&nbsp;&nbsp;(setq&nbsp;SS&nbsp; (ssget "x"<br/>&nbsp;&nbsp;&nbsp;&nbsp; (list (cons 410 (getvar "ctab"))<br/>&nbsp;&nbsp;&nbsp; (cons 0 (strcat "~" "VIEWPORT"))<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;N&nbsp;&nbsp; -1<br/>&nbsp;DOC (vla-get-activedocument (vlax-get-acad-object))<br/>&nbsp; )<br/>&nbsp; (repeat (sslength SS)<br/>&nbsp;&nbsp;&nbsp; (setq<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LST (cons&nbsp;(vlax-ename-&gt;vla-object (ssname SS (setq N (1+ N))))<br/>&nbsp;&nbsp;LST<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (vla-copyobjects<br/>&nbsp;&nbsp;&nbsp; DOC<br/>&nbsp;&nbsp;&nbsp; (vlax-safearray-fill<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-make-safearray<br/>&nbsp;vlax-vbobject<br/>&nbsp;(cons 0 (1- (length LST)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LST<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (if&nbsp;(equal (getvar "ctab") "Model")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vla-get-paperspace DOC)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vla-get-modelspace DOC)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (vlax-release-object DOC)<br/>&nbsp; (princ)<br/>)</p>

carrot1983 发表于 2007-9-7 18:13:00

正在学习这方面的知识,谢谢两位高手..,学习了

7686599 发表于 2007-9-7 18:25:00

<p>是不是有个选择插入基点更完美?</p><p>直接copy到模型空间后,有时候都找不到,也有可能重叠。如果在copy的时候提示来个插入点可能更好。</p>

jaminth 发表于 2007-9-9 08:59:00

那么又如何把模型空间的对象转为图纸空间的对象呢?!

highflybir 发表于 2007-9-9 10:54:00

<p>可以不用编程的。</p><p>chspace,就是把图纸空间的东西转化为模型空间的。</p>

jaminth 发表于 2007-9-9 15:31:00

谢谢,又学一招

无痕 发表于 2007-9-9 23:47:00

chspace还真不知道,是cad命令么?还是et的?
页: [1] 2
查看完整版本: [分享]刚写一个可以把图纸空间对象转模型空间的LISP