明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 364836483

批量合并图

[复制链接]
发表于 2022-7-14 10:49 | 显示全部楼层
找到了,说一声,我也需要
发表于 2022-7-15 08:14 | 显示全部楼层
谢谢大侠奉献,但不建议合并图档。
发表于 2022-7-16 12:21 | 显示全部楼层
谜你及源泉有这个功能
发表于 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-9-22 22:34 | 显示全部楼层
szhorse 发表于 2022-7-13 21:29
试试这个,发扬明经精神
来自网络,不知道哪位大神的,在此谢过
[face118.gif ...

这个好
发表于 2022-10-16 11:25 | 显示全部楼层
szhorse 发表于 2022-7-13 21:29
试试这个,发扬明经精神
来自网络,不知道哪位大神的,在此谢过
[face118.gif ...

这个能完美的合并不同图框大小的图纸,如果改为图框左下对齐然后去掉合并时加在图框外面的线框就更完美了!
发表于 2022-12-1 15:15 | 显示全部楼层
本帖最后由 473734642 于 2022-12-1 15:17 编辑
ht1480 发表于 2022-7-19 12:46
自己用的特简单
可选文件夹,块被分解,不想分解就把“*”去掉,粘贴到原坐标,原坐标重叠的话把插入点改 ...

很好用,感谢大佬分享
发表于 2023-1-12 21:09 | 显示全部楼层
ht1480 发表于 2022-7-19 12:46
自己用的特简单
可选文件夹,块被分解,不想分解就把“*”去掉,粘贴到原坐标,原坐标重叠的话把插入点改 ...

代码好像哪里有误,运行不了
发表于 2023-1-13 17:23 | 显示全部楼层
zwf100 发表于 2023-1-12 21:09
代码好像哪里有误,运行不了

什么错误?
我自己用没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 19:46 , Processed in 0.202390 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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