乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 34|回复: 2

从大量 DWG 到少量 DXF

[复制链接]

37

主题

195

帖子

16

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
333
发表于 2013-5-28 05:51:26 | 显示全部楼层 |阅读模式
我为我正在从事的道路项目提供了大量DWG格式的数字地形模型文件(总共+ 350个)。
我可以将它们转换为DXF,然后可以将其导入到我们的第三方建模软件中。但是,我一次只能做一个!
有没有人知道任何工具可以在一步过程中对所有文件进行此转换,并能够输出少量的DXF文件(例如5或6个dxf文件)。
提前致谢
T

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2013-5-28 16:50:57 | 显示全部楼层
给你,琼斯……这将批量将DWG目录导出到DXF(
同一目录
):
  1. (vl-load-com)
  2. (defun c:BExpDxf () (c:BatchExportDxf))
  3. (defun c:BatchExportDxf (/ *error* acApp acDocs dwgName oShell oFolder
  4.                          path dwgs filePath dbxDoc filePath
  5.                         )
  6.   (princ "\rBATCHEXPORTDXF ")
  7.   (defun *error* (msg)
  8.     (if oShell
  9.       (vlax-release-object oShell)
  10.     )
  11.     (if dbxDoc
  12.       (vlax-release-object dbxDoc)
  13.     )
  14.     (cond ((not msg))                                                   ; Normal exit
  15.           ((member msg '("Function cancelled" "quit / exit abort")))    ;  or (quit)
  16.           ((princ (strcat "\n** Error: " msg " ** ")))                  ; Fatal error, display it
  17.     )
  18.     (princ)
  19.   )
  20.   (if (and (setq acApp (vlax-get-acad-object))
  21.            (setq acDocs (vla-get-documents acApp))
  22.            (setq dwgName (getvar 'dwgname))
  23.            (setq oShell (vla-getinterfaceobject
  24.                           acApp
  25.                           "Shell.Application"
  26.                         )
  27.            )
  28.            (setq oFolder (vlax-invoke
  29.                            oShell
  30.                            'BrowseForFolder
  31.                            (vla-get-hwnd acApp)
  32.                            "Select folder to process:"
  33.                            0
  34.                            321
  35.                          )
  36.            )
  37.            (setq path (vlax-get-property
  38.                         (vlax-get-property oFolder 'Self)
  39.                         'Path
  40.                       )
  41.            )
  42.            (setq dwgs (vl-directory-files path "*.dwg" 1))
  43.            (princ "\nProcessing drawings, please wait...")
  44.            (princ)
  45.            (setq dbxDoc (vla-getinterfaceobject
  46.                           acApp
  47.                           (strcat "ObjectDBX.AxDbDocument."
  48.                                   (substr (getvar 'acadver) 1 2)
  49.                           )
  50.                         )
  51.            )
  52.       )
  53.     (progn
  54.       (foreach dwg dwgs
  55.         (if (/= dwg dwgName)
  56.           (progn
  57.             (vl-catch-all-apply
  58.               'vla-open
  59.               (list dbxDoc (setq filePath (strcat path "\" dwg)))
  60.             )
  61.             (vla-saveas
  62.               dbxDoc
  63.               (strcat (vl-filename-directory filePath)
  64.                       "\"
  65.                       (vl-filename-base filePath)
  66.                       ".dxf"
  67.               )
  68.             )
  69.           )
  70.         )
  71.       )
  72.       (princ "Done.")
  73.     )
  74.   )
  75.   (*error* nil)
  76. )

**我所有的批处理*例程(Civil 3D和AutoCAD)最初都是受RobertB中对ObjectDBX了解甚少的启发,后来是Lee的BFIND例程
回复

使用道具 举报

37

主题

195

帖子

16

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
333
发表于 2013-5-29 08:10:35 | 显示全部楼层
非常感谢。我会试一试的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 09:11 , Processed in 0.499264 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表