多张图纸按原坐标合到一个文件
怎么把200张CAD图纸按原坐标自动合并到一张图里面呢?要是一张张打开,复制到一个CAD里边,那费劲死了 (defun c:dwgins(/ folder dwglistn )(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
)
)
200张图纸?那合并的速度绝对会让你爽到极点 合并的速度绝对快,不知精度如何? 本帖最后由 llsheng_73 于 2013-11-22 09:08 编辑
(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))
)
很久很久以前的;在空图上运行,选定一个文件夹,给总图起个图名 好东西,赞一个 用dbx方法试试 llsheng_73 发表于 2013-11-22 09:06 static/image/common/back.gif
很久很久以前的;在空图上运行,选定一个文件夹,给总图起个图名
合并的图纸都重叠在一起了,有没有办法分开啊,不要重叠的 落雪___ 发表于 2015-11-2 11:58 static/image/common/back.gif
合并的图纸都重叠在一起了,有没有办法分开啊,不要重叠的
合并到一起了可能是你的图不是每个图都是不同坐标的
如果是这样,插入进行的时候不要散开图形,让它们保持为块,就比较容易人为移开了 llsheng_73 发表于 2015-11-2 14:52 static/image/common/back.gif
合并到一起了可能是你的图不是每个图都是不同坐标的
如果是这样,插入进行的时候不要散开图形,让它们保 ...
数量蛮多的,有时候上千张呢,有办法改进吗。我每一个图纸的特点是:都是在同一个原点上
页:
[1]
2