theisland 发表于 2014-9-15 08:56:31

能否将当前图纸连同其引用的所有外部参照复制到桌面文件夹?

如题,在用外部参照的情况下,方便各专业图纸传阅

duotu007 发表于 2014-9-15 14:22:17

把参照都绑定成块就OK了。

theisland 发表于 2014-9-15 20:06:21

duotu007 发表于 2014-9-15 14:22 static/image/common/back.gif
把参照都绑定成块就OK了。

就是不想绑定才来求助~~
原因1:当前图纸只给别人看过程图,绑定花时间不说,还要另存-重开图,更是浪费时间
原因2:如果手动将当前图纸及引用的外部参照拷到桌面文件夹,得一个一个的去选择dwg,有时候不注意还会漏掉某张或几张引用的图

于是有了标题中的求助,请高手帮忙 ~>_<~+

Gu_xl 发表于 2014-9-15 22:40:04

theisland 发表于 2014-9-15 20:06
就是不想绑定才来求助~~
原因1:当前图纸只给别人看过程图,绑定花时间不说,还要另存-重开图,更是浪费 ...

提取外部参照的路径和文件名后直接copy即可!

王与韩1 发表于 2014-9-16 09:53:23

电子传递,选择不绑定就好了啊,还是批量的

theisland 发表于 2014-9-16 23:19:54

Gu_xl 发表于 2014-9-15 22:40 static/image/common/back.gif
提取外部参照的路径和文件名后直接copy即可!
听朋友你说起来貌似很简单,可我不懂编程~~能不能幸苦一下,帮我写一个?翘首以盼,谢谢!

theisland 发表于 2014-9-16 23:21:11

王与韩1 发表于 2014-9-16 09:53 static/image/common/back.gif
电子传递,选择不绑定就好了啊,还是批量的

什么是电子传递?

Gu_xl 发表于 2014-9-17 08:54:56

theisland 发表于 2014-9-16 23:19 static/image/common/back.gif
听朋友你说起来貌似很简单,可我不懂编程~~能不能幸苦一下,帮我写一个?翘首以盼,谢谢!


;;将图中的外部参照文件复制到桌面 By 明经通道 Gu_xl 2014年9月17日
(defun c:xref2DeskTop (/ DeskToppath path i)
(setq        DeskToppath
       (VL-REGISTRY-READ
           "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders"
           "Desktop"
       )
)
(setq        DeskToppath
       (strcat (getenv "USERPROFILE")
               "\\"
               (VL-FILENAME-BASE (cdr DeskToppath))
       )
        i 0
)
(vlax-for blkdef (vla-get-blocks
                     (vla-get-ActiveDocument (vlax-get-acad-object))
                   )
    (if        (and
          (= :vlax-false (vla-get-IsLayout blkdef))
          (= :vlax-true (vla-get-IsXRef blkdef))
        )
      (progn
        (setq path (vla-get-path blkdef))
        (if (= "." (substr path 1 1))
          (setq        path (strcat (getvar 'dwgprefix)
                             (substr path 3 (- (strlen path) 2))
                     )
          )
        )
        (if
          (and
          (findfile path)
          (vl-file-copy
              path
              (strcat DeskToppath "\\" (VL-FILENAME-BASE path) ".dwg")
          )
          )
           (progn
             (princ
             (strcat "\n " "复制外部参照文件\"" path "\"到桌面...")
             )
             (setq i (1+ i))
           )
        )
      )
    )
)
(princ
    (strcat "\n 共" (itoa i) " 个外部参照文件复制已到桌面...")
)
(princ)
)

王与韩1 发表于 2014-9-17 09:23:43

本帖最后由 王与韩1 于 2014-9-17 09:27 编辑

theisland 发表于 2014-9-16 23:21 static/image/common/back.gif
什么是电子传递?
cad06的话,就是文件-电子传递;12是文件-发布-电子传递

theisland 发表于 2014-9-17 12:30:33

Gu_xl 发表于 2014-9-17 08:54 static/image/common/back.gif


老大,运行有点问题:; 错误: 参数类型错误: consp "C:\\Documents and Settings\\temp\\桌面"

还有就是:
1.我希望把宿主dwg也一起复制,而不仅仅是引用的外部参照
2.因为桌面文件很多,希望程序运行后能提示选择桌面指定文件夹或者新建一个文件夹(自己输入文件夹名)
我要求是不是有点多了啊~~呵呵,请老大再关注下!
页: [1] 2
查看完整版本: 能否将当前图纸连同其引用的所有外部参照复制到桌面文件夹?