明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3945|回复: 40

批量合并图

[复制链接]
发表于 2022-7-13 16:27 | 显示全部楼层 |阅读模式
把多个图批量合并到一个DWG里,求开发,付费。364836483qq
发表于 2022-7-13 21:29 | 显示全部楼层
本帖最后由 szhorse 于 2022-7-13 21:36 编辑

试试这个,发扬明经精神
来自网络,不知道哪位大神的,在此谢过


合并图纸(左对齐或上对齐)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

功能是正常。但是合并后同名块有冲突,标注样式也有冲突。对于三维软件导出的图纸,不使用  发表于 2023-3-10 10:32
热心哦  发表于 2022-7-14 15:52
回复 支持 4 反对 0

使用道具 举报

发表于 2022-7-16 20:49 | 显示全部楼层
本帖最后由 尘缘一生 于 2023-5-7 15:38 编辑

  • ;;批量目录图纸插入-----------【开始】---------
  • (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/1urFWFU-jDyiNYCOkaAISTg
提取码:qznf

发表于 2022-7-19 12:46 | 显示全部楼层
自己用的特简单
可选文件夹,块被分解,不想分解就把“*”去掉,粘贴到原坐标,原坐标重叠的话把插入点改改也行。
我也是抄抄改改大佬的函数和代码
分享是个良性循环
  1. (defun C:xwj ()
  2. (vl-load-com)
  3.   (setq path (GXL-FILE-GETFOLDER))
  4.   (setq file (VL-DIRECTORY-FILES path "*.dwg" 1))
  5.   (foreach dwg file
  6.     (command "insert" (strcat "*" path "\" dwg) '(0 0 0) 1 0)
  7.     )
  8. )


  9. ;; (gxl-file-GetFolder "选择文件夹:") 返回值:字符串,文件夹路径,如果点了cancel, 返回nil
  10. (defun gxl-file-GetFolder (/ WinShell shFolder path catchit)
  11.   (setq winshell (vlax-create-object "Shell.Application"))
  12.   (setq        shFolder (vlax-invoke-method
  13.                    WinShell 'BrowseForFolder 0 "选取文件夹" 1)
  14.   )
  15.   (setq
  16.     catchit (vl-catch-all-apply
  17.               '(lambda ()
  18.                  (setq shFolder (vlax-get-property shFolder 'self))
  19.                  (setq path (vlax-get-property shFolder 'path))
  20.                )
  21.             )
  22.   )
  23.   (if (vl-catch-all-error-p catchit)
  24.     nil
  25.     path
  26.   )
  27. )

点评

运行错误。应该是缺少函数库。gxl-file-GetFolder非自带函数库吧  发表于 2023-3-10 10:33
发表于 2022-7-13 16:46 | 显示全部楼层
一般主张一张图一个文件。多个文件合并到一张图时,如果块名相同,就会被第一张图的块取代。
 楼主| 发表于 2022-7-13 20:02 | 显示全部楼层
单个文件有命名规则的。客户需求,需要将一个工程的图合并到一个DWG文件中。
发表于 2022-7-13 20:31 | 显示全部楼层
https://www.tsz.com.cn/downprod/detail.action?id=C190000000000872
探索者软件DWG合并助手,可以申请试用,经常搞活动促销,商业软件成熟
发表于 2022-7-13 20:42 | 显示全部楼层
http://bbs.mjtd.com/thread-183456-1-1.html
是不是需要这个功能?
 楼主| 发表于 2022-7-13 22:04 | 显示全部楼层
就是需要这样的工具,多谢大家,我先测试。364836483QQ,如果能用,我付费用。
发表于 2022-7-13 22:24 | 显示全部楼层
szhorse 发表于 2022-7-13 21:29
试试这个,发扬明经精神
来自网络,不知道哪位大神的,在此谢过
[face118.gif ...

有没有能选择文件的版本?
发表于 2022-7-14 09:13 | 显示全部楼层
364836483 发表于 2022-7-13 20:02
单个文件有命名规则的。客户需求,需要将一个工程的图合并到一个DWG文件中。

可以说,这个客户的技术还处于低级水平,并且规模小。可以糊弄~
发表于 2022-7-14 10:22 | 显示全部楼层
szhorse 发表于 2022-7-13 21:29
试试这个,发扬明经精神
来自网络,不知道哪位大神的,在此谢过
[face118.gif ...

好人啊,谢谢大佬分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 03:46 , Processed in 0.303962 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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