筑巢architect 发表于 2015-5-19 12:08:46

使用图纸集,如何和其他专业对接

我用图纸集 布局画图
我所有的东西都在模型空间里,只是用布局排版,布局内部并没有图元
但是其他专业用传统的模型空间画图
我如何跟他们很好对接转换成模型空间的图
如果用布局输入到模型空间的命令 只能一张一张转 太慢了全部转完 要花掉几个小时   
cad发布里只有发布 dwf和pdf两种格式并没有批量布局转模型空间

请问遇到这种情况 如何和其他专业很好对接


e2002 发表于 2015-5-19 12:08:47

本帖最后由 e2002 于 2019-10-13 23:47 编辑

这么个小玩意,不需要付费的。
实际上面都把最核心功能的那几句都贴出来了。

完整程序如下(需要用到 Doslib , 在 wiki.mcneel.com下载最新版):


;;================================================================================
;; 批量输出Layouts到Model
;; Revision :
;; R0.0.1      2013/01/25      初始版本
;; R0.0.2      2013/01/28      改进程序流程,修正 sDwgName 去除最后的".dwg" 字符
;; R0.0.2.1      2013/02/06      增加 (vl-arx-import 'layoutlist) 用于编译

(defun C:lkpt_Layouts_Export2Model ( / sDwgFolder sDwgName iLen    sTablsLayouts
                                    sFolder    oldvar1oldvar2 sItem sDwgOut
                                  )
(setq sDwgFolder (getvar "DWGPREFIX")
      sDwgName (getvar "DWGNAME")
      iLen (- (strlen sDwgName) 4)
      sDwgName (substr sDwgName 1 iLen)
      sTab (getvar "CTAB")
)
(vl-arx-import 'layoutlist)
(if (and (setq lsLayouts (dos_multilist"Layout输出到Model" "选择需要输出到Model的Layout" (layoutlist)))
         (setq sFolder   (dos_getdir "输出目的文件夹" sDwgFolder "选择输出目的文件夹" T))
      )
    (progn
      (setq oldvar1 (getvar "FILEDIA")
            oldvar2 (getvar "CMDECHO")
      )
      (setvar "FILEDIA" 0)
      (setvar "CMDECHO" 0)
      (foreach sItem lsLayouts
      (setvar "CTAB" sItem)
      (setq sDwgOut (strcat sFolder sDwgName "_" sItem))
      (vl-cmdf "_.exportlayout" sDwgOut)
      )
      (setvar "CTAB" sTab)
      (setvar "FILEDIA" oldvar1)
      (setvar "CMDECHO" oldvar2)
    )
);fi
(princ)
);end defun C:lkpt_Layouts_Export2Model



e2002 发表于 2015-5-23 12:00:20

本帖最后由 e2002 于 2015-5-23 12:06 编辑

内置命令 EXPORTLAYOUT只能一个一个来转,所以我写了个小东西来批量操作,解决你提到的这个问题。



xman00 发表于 2015-5-24 09:34:24

e2002 发表于 2015-5-23 12:00 static/image/common/back.gif
内置命令 EXPORTLAYOUT只能一个一个来转,所以我写了个小东西来批量操作,解决你提到的这个问题。

恭请大侠放出源码,造福明经大众。

e2002 发表于 2015-5-24 11:37:19

本帖最后由 e2002 于 2019-10-13 23:48 编辑

就是获取需要转出的 sLayouts 的 list ,然后遍历(foreach),对每一个 sLayout 作:
(setvar “CTAB” sLayout)
(setq sDwgOut(strcat sFolder sDwgName "_" sLayout))
(vl-cmdf "_.exportlayout" sDwgOut)
其余的系统变量保存和恢复那些没什么意思了,需要的自己搞定一下了。为了简化和效率,界面我直接使用了 Doslib 的函数库,不喜欢费力的 DCL。

e2002 发表于 2015-5-24 18:11:02

这样export出来的dwg 似乎丢失了 Annotative Scale 相关的一些信息,不利于自己的工作。一般的,我用到这个的时候是在所有设计工作已经完成,需要提交到服务器归档时才做的(原因是公司规定归档的图纸必须是一张图纸对应一个dwg文件,这个规定比较无语,落后时代了)。

无花老和尚 发表于 2015-5-26 22:40:34

e2002版主 可以放出这个程序吗 很需要这个功能 我可以付费

无花老和尚 发表于 2015-5-26 23:03:40

e2002 发表于 2015-5-23 12:00 static/image/common/back.gif
内置命令 EXPORTLAYOUT只能一个一个来转,所以我写了个小东西来批量操作,解决你提到的这个问题。

e2002版主 可以放出这个程序吗 很需要这个功能 我可以付费

无花老和尚 发表于 2015-5-27 13:04:38

谢谢 十分感谢 这功能外发文件用起来很方便

zgzzsn 发表于 2015-5-27 15:25:44

真是好心人
页: [1] 2 3 4 5 6
查看完整版本: 使用图纸集,如何和其他专业对接