明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2104|回复: 5

[提问] 求多个cad图纸合到一个图纸上,并按图框排列

[复制链接]
发表于 2014-3-13 23:38 | 显示全部楼层 |阅读模式
1明经币
求多个cad图纸合到一个图纸上,并按图框排列

点评

又来批量发求助贴了呀,G版又有话要说了,这样下去,只怕高手都怕上论坛了。。。  发表于 2014-3-13 23:47
发表于 2014-3-14 16:27 | 显示全部楼层
可根据如下程序修改。
(defun c:tzhb(/ folder dwglist  n )
(command "._undo" "_be")
(setq folder (GetFolder "选择文件夹"))
(setq dwglist (VL-DIRECTORY-FILES folder "*.dwg" 1))
(while (= (length dwglist) 0)
(setq folder (GetFolder "你选中的文件夹里没有DWG文件,重选!"))
(setq dwglist (VL-DIRECTORY-FILES folder "*.dwg" 1))
)
(setq n 0)
(repeat (length dwglist)
(command "insert" (strcat folder "\\" (nth n dwglist)) "0,0" "1" "1" "0"  )
(setq n (1+ n))
)
(command "._zoom" "e")
(command "._undo" "_e")
(princ "\n搞定!")
(princ "\n共插入")(princ (length dwglist))(princ "个DWG文件。")
(princ)
)
;; 子函数:(GetFolder "选择文件夹:") 返回值:字符串,文件夹路径,如果点了cancel, 返回nil
(defun GetFolder (msg / WinShell shFolder path catchit)
  (setq winshell (vlax-create-object "Shell.Application"))
  (setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
  (setq
    catchit (vl-catch-all-apply
        '(lambda ()
     (setq shFolder (vlax-get-property shFolder 'self))
     (setq path (vlax-get-property shFolder 'path))
         )
      )
  )
  (if (vl-catch-all-error-p catchit)
    nil
    path
  )
)
;;;
(defun C:PT(/ fname path fns)
   (gc)(setq fname(getfiled "建立总图文件" "C:" "dwg" 1))
   (setq path (strcat (vl-filename-directory fname)))
   (setq fns (vl-directory-files path "*.dwg" 1))
   (setvar"CMDECHO"0)
   (setvar"OSMODE"(+(getvar"OSMODE")16384))
   (foreach fn fns
     (command "INSERT" (strcat "*" path "\\" fn) (list 0 0 0) "1" "0")(gc))
   (command "ZOOM" "E")
   (command "-wblock" fname "*")
   (setvar"OSMODE"(-(getvar"OSMODE")16384))
)

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-3-14 18:41 | 显示全部楼层
香田里浪人 发表于 2014-3-14 16:27
可根据如下程序修改。
(defun c:tzhb(/ folder dwglist  n )
(command "._undo" "_be")

如果能指定基点就好了,如果合并多个图,不指定点,多个不同的CAD图上会有重叠部分。如果能按图框排列就更好了

点评

这里面好象有拼图http://bbs.mjtd.com/thread-99685-1-1.html  发表于 2014-3-15 11:29
回复

使用道具 举报

发表于 2014-3-15 16:52 | 显示全部楼层
http://bbs.mjtd.com/thread-109463-1-1.html

合并很多图纸到一个CAD文件,我常用的方法是插入DWG参照的方式
此命令用来排列对齐DWG参照图的,DWG参照的命名就是图号名开头就能对齐
隐藏命令,输入DW之后再输入A,效果自己试
回复

使用道具 举报

发表于 2014-6-13 11:37 | 显示全部楼层
菜卷鱼 发表于 2014-3-15 16:52
http://bbs.mjtd.com/thread-109463-1-1.html

合并很多图纸到一个CAD文件,我常用的方法是插入DWG参照的 ...

谢谢了。thx
回复

使用道具 举报

发表于 2020-5-12 17:02 | 显示全部楼层
学到了学到了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-8 21:54 , Processed in 0.619170 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表