【求助】求一个lisp程序,可以把一个文件夹下的所有dwg文件内容放到一张图纸上
<p>如题,把一个文件夹下的所有dwg文件内容放到一张图纸上, 并保持坐标不变。</p><p>我主要是把多图内容放在一起进行归并文字。</p><p>期待有高手帮我编一个,小弟万分感谢!</p> <p>不明白归并文字如何操作。<br/>可以采用外部参照的办法将文件夹下的DWG文件按坐标(0,0)插入。</p> <p>楼上误解了,归并的工作我自己已经做了</p><p>我是想要归并前的前处理程序,即“把一个文件夹下的所有dwg文件内容放到一张图纸上, 并保持坐标不变”</p><p>当然,CAD里的粘贴到原坐标命令也可以实现,但如果图纸数量较多时,工作量也比较大,所以才想要一个可以自动前处理的程序。</p> 本帖最后由 作者 于 2009-7-25 20:36:14 编辑这样试试看
;外部引用指定目录下所有DWG文件 明经 ZZXXQQ 2009.7.25
(defun c:tt ()
(setvar "CMDECHO" 0)
(vl-load-com)
(if (entlast) (command ".erase" "all" ""))
(setq fn (if fn fn ""))
(if (setq fn (getfiled "选择文件" fn "dwg" 2)) (progn
(setq strpath (vl-filename-directory fn)
fl (vl-directory-files strPath "*.dwg" 1)
i 0)
(repeat (length fl)
(setq fnm (strcat strpath "/" (nth i fl)) i (1+ i))
(command "-insert" fnm "0,0")
(while (not (zerop (getvar "CMDACTIVE"))) (command ""))
)
))
(setvar "CMDECHO" 1)
(princ)
)
<p>感谢楼主的程序,版主就是厉害啊</p><p>纠正几个地方,一个是vl-looad-com多了个o</p><p>一个是<font color="#ff00ff">"*.lsp"</font> 应该是<font color="#ff00ff">"*.dwg"</font>
</p><p>还有一个是“<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/strcat.htm" target="_black"><font color="#0000ff">strcat</font></a> strpath <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/nth.htm" target="_black"><font color="#0000ff">nth</font></a> i fl<font color="#ff0000">)</font><font color="#ff0000">)”</font><font color="#000000">中间</font><font color="#000000">漏了个“/”</font></p><p><font color="#000000">我改了这几个地方就可以运行了,再次感谢楼主</font></p><p><font color="#000000">不过我还是没办法和我的lisp结合起来,因为我的后续操作是要对文件里的文字进行编辑,如果是外部参照就没办法直接编辑啦,所以想再请问下版主,有没办法不要外部参照,而是直接复制过来呢?</font></p> 可以图块插入,4楼已改,再试试。<br/>如果需要可以打散插入,将(strcat strpath "/" (nth i fl))<br/>改成(strcat strpath "/*" (nth i fl)) <p>偶也,在版主的帮助下搞定了我需要的程序。</p><p>但是对6楼的介绍还有点不明白,将(strcat strpath "/" (nth i fl))改成(strcat strpath "/*" (nth i fl))是做什么呢?这样就能打散插入吗?我试了好像不行哦,函数会出错的。我最后是加入了(command "explode" (ssget "x" '((0 . "insert"))))语句实现插入块的炸开的。</p><p>好了,把我最终的程序也贴出来吧,由于刚刚接触lisp,可能编的比较粗糙,各位高手多多指点哦~</p><p>该程序是用来把PKPM软件计算出来的各层平面计算数据进行多层归并,按最大值进行设计。如果是做结构设计的网友可能用得到。</p> <p>另外,还想请教一下,版主上面的方法是先读取文件,然后再读取路径,</p><p>那如果是直接用对话框来选取文件夹(作为路径),然后插入文件夹中的所有文件该怎么操作呢?</p> 这帖子都好久啦,怎么没人来关注一下一步呢,工作应能经常碰到这样的问题,我也正找一个这样的程序,不过希望按文件名方式矩阵排列插入到一张图纸,还有炸开后,这插入图纸所有的块也会被炸开的啊 这帖子都好久啦,怎么没人来关注一下一步呢,工作应能经常碰到这样的问题,我也正找一个这样的程序,不过希望按文件名方式矩阵排列插入到一张图纸,还有炸开后,这插入图纸所有的块也会被炸开的啊
页:
[1]
2