wyb36870 发表于 2017-9-6 15:35:54

不打开图纸批量执行操作文档

本帖最后由 wyb36870 于 2017-9-6 23:20 编辑

;;说明:不打开图纸批量执行操作
;;参数:filepath-list:要处理的图形路径列表
;;参数:argument-list:传递的参数列表形如:'(pt1 pt2)
;;参数:expr-list:要执行的函数形如:(lambda () expr...)
;;返回:未处理的图形文件列表(只读模式或者文件已打开)
(defun YB-DbxObject-function->files (filepath-list argument-list expr-list / rtn)(YB-DbxObject-function->files
      (list
                "C:\\Users\\Yibo Wang\\Desktop\\txt\\Drawing1.dwg"
                "C:\\Users\\Yibo Wang\\Desktop\\txt\\Drawing2.dwg"
                "C:\\Users\\Yibo Wang\\Desktop\\txt\\Drawing3.dwg"
      )
      '(pt1 pt2)
      (lambda ()
                (vla-AddLine
                        (vla-get-ModelSpace docobj)
                        (vlax-3D-point 0 0 0)
                        (vlax-3D-point 0 100 0)
                )                                                               
      )         
)
(defun YB-DbxObject ()
    (if (> (atoi (getvar "acadver")) 17)
      (vla-GetInterfaceObject
      (YB-acad-object)
      (strcat "ObjectDBX.AxDbDocument."(substr (getvar "acadver") 1 2))
      )
      (alert "\n本程序不适用于2002以下版本的CAD。")
    )
)
(defun YB-acad-object nil
    (eval (list 'defun 'YB-acad-object 'nil
            (vlax-get-acad-object)))
    (YB-acad-object)
)
(if (vl-consp filepath-list)
    (progn
      (if argument-list
      (progn
          (setq argument-list (YB-str->lst (vl-string-trim ")"(vl-string-trim "("(vl-prin1-to-string argument-list))) " "))
          (vl-bb-set 'DbxObject argument-list)
          (mapcar (function (lambda (x)(vl-bb-set (read x) (eval(read x))))) argument-list)   
      )
      )               
      (setq rtn '())      
      (foreach temp filepath-list
      (if (vl-catch-all-error-p
            (vl-catch-all-apply
                (function (lambda (/ docobj)
                            (vla-open (setq docobj (YB-DbxObject)) temp);;这里的docobj跟执行函数中引用的必须对应
                            (if (vl-bb-ref 'DbxObject) (mapcar (function (lambda (x)(vl-bb-ref (read x)))) (vl-bb-ref 'DbxObject)))
                            (expr-list)
                            (vla-SaveAs docobj temp)

ll0111 发表于 2017-9-8 23:05:12

这么好的东西,居然没有人顶一下吗

li809 发表于 2017-9-9 23:08:32

我来顶,可以用来批量pu吗?

ynhh 发表于 2017-9-10 09:30:00

是不是可以不打开图形文件
就批量改图中的指定文字之类的
感情很方便啊

w245272914 发表于 2017-9-13 08:48:16

是啊,怎么用啊,不会和

cq_qg 发表于 2017-9-13 09:07:16

可以用来打印么?

陨落 发表于 2017-9-13 10:45:42

DBX限制很多的,之前是G版还是风之影好像说过

wyb36870 发表于 2017-9-17 08:37:53

陨落 发表于 2017-9-13 10:45
DBX限制很多的,之前是G版还是风之影好像说过

但是DBX的速度极快

liuhe 发表于 2023-5-3 16:17:57

我这个很奇怪啊,有必要重新写lisp在未开图的文档里加载程序么?不是直接取得数据库后进行修改,然后保存就可以了啊

jh3030912 发表于 2023-9-1 11:59:01

本人小白。需要楼主帮忙解答一下,怎么设置自定义的lsp命令,比如tt1
页: [1]
查看完整版本: 不打开图纸批量执行操作文档