找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 559|回复: 4

[求助]CAD文件合并

[复制链接]

已领礼包: 3个

财富等级: 恭喜发财

发表于 2020-2-18 10:45:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 杨张张 于 2020-2-19 21:53 编辑

就是有2个文件夹
A文件夹(图名为1、2、3、4、5。。。)
B文件夹(图名为1、2、3、4、5。。。);
就是将A文件夹与B文件夹中的同名图层原坐标合并,
合并后的文件放在C文件夹(图名为1、2、3、4、5。。。)
以下收集的一个源码但有点不成熟,请高手帮忙修改。

    1. (DEFUN C:pc ()
    2. (setq dsc (xuanzekuai))
    3. (setq ljm (xuanzewenjian))
    4. (setq selscr (strcat (getvar "TEMPPREFIX")"20140408.scr"));;创建CSR脚本语句
    5. ;;; 向脚本添加能识别的CSR语句;;;
    6. (setq txlist (vl-directory-files ljm "*.dwg"));;生成文件列表
    7. (setq i 0)
    8. (setq len (vl-list-length txlist));;读取文件个数
    9. (setq neirong (open selscr "w"))
    10. (repeat len
    11.    (setq tm (nth i txlist))
    12.    (setq str2 (strcat ljm "\\" tm));;打开文件路径
    13.    (setq str3 (strcat dsc "\\" tm));;插入块路径
    14.    (princ (strcat "open \"" str2 "\"\n"
    15.                  "-insert "  str3
    16.                 " 1 1 1 0 qsave \n"
    17.                  "close \n"
    18.                 )
    19.           neirong
    20.     )
    21.    (setq i (1+ i))
    22.   )
    23. ;;;;按文件数写入语句
    24. (close neirong)
    25. ;;;关闭脚本文件
    26. (command "._script" selscr);;;运行脚本
    27. (princ)
    28. )
    29. ;;;以下为选择需要打开的文件的子程序;;;
    30. (defun xuanzewenjian (/ obj folder path)
    31. (vl-load-com)
    32. (setq obj (vlax-create-object "Shell.Application"))
    33. (setq    folder (vlax-invoke-method
    34.                obj                 'browseforfolder
    35.                0                 "请指定要打开的DWG文件夹"
    36.                1
    37.               )
    38.   )
    39.   (if(vl-catch-all-error-p
    40.        (setq path (vl-catch-all-apply
    41.                    '(lambda
    42.                      ()
    43.                       (vlax-get-property
    44.                         (vlax-get-property folder 'self)
    45.                         'path
    46.                       )
    47.                     )
    48.                  )
    49.        )
    50.      )
    51.    nil
    52.    path
    53.   )
    54. )
    55. ;;;以下为选择块的文件的子程序;;;
    56. (defun xuanzekuai (/ obj folder path)
    57. (vl-load-com)
    58. (setq obj (vlax-create-object "Shell.Application"))
    59. (setq    folder (vlax-invoke-method
    60.                obj            'browseforfolder
    61.                0               "请指定要插入的DWG块文件夹"
    62.                1
    63.               )
    64.   )
    65.   (if(vl-catch-all-error-p
    66.        (setq path (vl-catch-all-apply
    67.                    '(lambda
    68.                      ()
    69.                       (vlax-get-property
    70.                         (vlax-get-property folder 'self)
    71.                        'path
    72.                       )
    73.                     )
    74.                  )
    75.        )
    76.      )
    77.    nil
    78.    path
    79.   )
    80. )



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-18 10:52:24 | 显示全部楼层
补充:同名的CAD文件,文件里的图形不在同一坐标,需要原坐标合并
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-25 09:31:53 | 显示全部楼层
没有人解答啊。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-25 09:40:48 | 显示全部楼层
  1. ;;;自定义函数,打开文件名
  2. (defun try-getFolder (msg / WinShell shFolder path catchit)
  3. (setq winshell (vlax-create-object "Shell.Application"))
  4. (setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
  5. (setq catchit (vl-catch-all-apply
  6.            '(lambda ()
  7.              (setq shFolder (vlax-get-property shFolder 'self))
  8.              (setq path (vlax-get-property shFolder 'path))
  9.             )
  10.           )
  11. )
  12. (if (vl-catch-all-error-p catchit)
  13.   nil
  14.   path
  15. )
  16. )
  17. ;;;;;合并
  18. (defun c:pltmhb (/ BANBEN DBX pathXZ pathgh pathgh FILESxz filesgh  I j DWGNAMExz dwgnamegh)
  19.         (vl-load-com)
  20.         (setq banben (substr (getvar "acadver") 1 2))
  21.         ;版本2004-2006返回16,2007-2009返回17,2010-2012返回18,2013返回19
  22.         (setq dbx (Vlax-Get-Or-Create-Object (strcat "ObjectDBX.AxDbDocument." banben)))
  23.         (setq pathXZ (strcat (try-getFolder "\n 选择现状图所在文件夹名称:") "\"));文件夹路径       
  24.         (setq filesxz (vl-directory-files pathXZ "*.dwg" 1)) ;获取所有文件名
  25.         (setq pathGH (strcat (try-getFolder "\n 选择规划图所在文件夹名称:") "\"));文件夹路径       
  26.         (setq filesgh (vl-directory-files pathGH "*.dwg" 1)) ;获取所有文件名
  27.         (setq pathHB (strcat (try-getFolder "\n 选择合并后所在文件夹名称:") "\"));文件夹路径       
  28.                
  29.         (setq i -1)
  30.         (while (setq dwgnamexz (nth (setq i (1+ i)) filesxz))
  31.                      (vlax-invoke-method dbx 'open (strcat pathxz dwgnamexz))
  32.                      (command-s "insert"  *(strcat pathgh dwgnamexz)"0,0" "1" "1" "0" )               
  33.       
  34.                       (vlax-invoke-method dbx 'SaveAs (strcat pathHB dwgnameXZ))
  35.                
  36.         )
  37.         (vlax-release-object dbx);释放
  38. )


请大神帮助修改
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-28 16:11:51 | 显示全部楼层
一直无人问啊        
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 11:33 , Processed in 0.391520 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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