364836483 发表于 2022-7-13 16:27:00

批量合并图

把多个图批量合并到一个DWG里,求开发,付费。364836483qq

szhorse 发表于 2022-7-13 21:29:00


试试这个,发扬乐筑天下精神
来自网络,不知道哪位大神的,在此谢过
合并图纸(左对齐或上对齐)

尘缘一生 发表于 2022-7-16 20:49:00


;;批量目录图纸插入-----------【开始】---------
(defun plins-dwg (/ e_lst ent fn files flis pt pt0 box d h h0 k0 i n str)
(_undo1)
(setq e_lst (sysvar '("osmode" "cmdecho" "filedia")))
(setvar "filedia" 0)
(setvar "cmdecho" 0)
(setvar "OSMODE" 0)
(vla-put-WindowState *ACAD* 2);;CAD窗口最小化
(setq files (xl-div (sl-choose-files "" "dxf;*.dwg" (getvar "DWGPREFIX")) 10))
(vla-put-WindowState *ACAD* 1);;CAD窗口最大化
(setq pt (getpoint "\n 请给出排图基点(左下角)?") k0 0.0)
(setq str (sl:do1ordo2 "插入形式为" "参照" "图块"))
(repeat (setq n (length files))
    (setq pt0 (polar pt pi2 k0))
    (setq flis (nth (setq n (1- n)) files) h0 0.0)
    (repeat (setq i (length flis))
      (setq fn (nth (setq i (1- i)) flis))
      (if (= str "参照")
      (command "-XREF" "A" fn pt0 1 1 0)
      (vla-ins-b fn pt0 1 1 1 0)
      )
      (setq ent (entlast) box (ebox4 ent) d (- (car (caddr box)) (car (car box))) h (- (cadr (cadddr box)) (cadr (car box))))
      (if (>= h h0) (setq h0 h))
      (sl_subupd ent 10 pt0)
      (setq pt0 (polar pt0 0 (* d 1.05)))
      (if (= str "图块") (slexplode (entlast)))
    )
    (setq k0 (+ k0 (* h0 1.05)))
)
(command "zoom" "e")
(mapcar 'eval e_lst)
(_undo2)
(princ)
)
链接:https://pan.baidu.com/s/1uNCjpZ6Jb_npa-JTFeS-AA 提取码:50sz

ht1480 发表于 2022-7-19 12:46:00

自己用的特简单
可选文件夹,块被分解,不想分解就把“*”去掉,粘贴到原坐标,原坐标重叠的话把插入点改改也行。
我也是抄抄改改大佬的函数和代码
分享是个良性循环
(defun C:xwj ()
(vl-load-com)
(setq path (GXL-FILE-GETFOLDER))
(setq file (VL-DIRECTORY-FILES path "*.dwg" 1))
(foreach dwg file
    (command "insert" (strcat "*" path "\" dwg) '(0 0 0) 1 0)
    )
)
;; (gxl-file-GetFolder "选择文件夹:") 返回值:字符串,文件夹路径,如果点了cancel, 返回nil
(defun gxl-file-GetFolder (/ WinShell shFolder path catchit)
(setq winshell (vlax-create-object "Shell.Application"))
(setq      shFolder (vlax-invoke-method
                   WinShell 'BrowseForFolder 0 "选取文件夹" 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
)
)

自贡黄明儒 发表于 2022-7-13 16:46:00

一般主张一张图一个文件。多个文件合并到一张图时,如果块名相同,就会被第一张图的块取代。

364836483 发表于 2022-7-13 20:02:00

单个文件有命名规则的。客户需求,需要将一个工程的图合并到一个DWG文件中。

BUBUBA918 发表于 2022-7-13 20:31:00

https://www.tsz.com.cn/downprod/detail.action?id=C190000000000872
探索者软件DWG合并助手,可以申请试用,经常搞活动促销,商业软件成熟

lxl217114 发表于 2022-7-13 20:42:00


是不是需要这个功能?

364836483 发表于 2022-7-13 22:04:00

就是需要这样的工具,多谢大家,我先测试。364836483QQ,如果能用,我付费用。

forverd 发表于 2022-7-13 22:24:00


有没有能选择文件的版本?
页: [1] 2
查看完整版本: 批量合并图