明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2676|回复: 9

[源码] 不打开图纸批量执行操作文档

[复制链接]
发表于 2017-9-6 15:35:54 | 显示全部楼层 |阅读模式
本帖最后由 wyb36870 于 2017-9-6 23:20 编辑
  1. ;;说明:不打开图纸批量执行操作
  2. ;;参数:filepath-list:要处理的图形路径列表
  3. ;;参数:argument-list:传递的参数列表  形如:'(pt1 pt2)
  4. ;;参数:expr-list:要执行的函数  形如:(lambda () expr...)
  5. ;;返回:未处理的图形文件列表(只读模式或者文件已打开)
  6. (defun YB-DbxObject-function->files (filepath-list argument-list expr-list / rtn)  [free](YB-DbxObject-function->files
  7.         (list
  8.                 "C:\\Users\\Yibo Wang\\Desktop\\txt\\Drawing1.dwg"
  9.                 "C:\\Users\\Yibo Wang\\Desktop\\txt\\Drawing2.dwg"
  10.                 "C:\\Users\\Yibo Wang\\Desktop\\txt\\Drawing3.dwg"
  11.         )
  12.         '(pt1 pt2)
  13.         (lambda ()
  14.                 (vla-AddLine
  15.                         (vla-get-ModelSpace docobj)
  16.                         (vlax-3D-point 0 0 0)
  17.                         (vlax-3D-point 0 100 0)
  18.                 )                                                                 
  19.         )         
  20. )[/free]
  21.   (defun YB-DbxObject ()
  22.     (if (> (atoi (getvar "acadver")) 17)
  23.       (vla-GetInterfaceObject
  24.         (YB-acad-object)
  25.         (strcat "ObjectDBX.AxDbDocument."(substr (getvar "acadver") 1 2))
  26.       )
  27.       (alert "\n本程序不适用于2002以下版本的CAD。")
  28.     )
  29.   )
  30.   (defun YB-acad-object nil
  31.     (eval (list 'defun 'YB-acad-object 'nil
  32.             (vlax-get-acad-object)))
  33.     (YB-acad-object)
  34.   )
  35.   (if (vl-consp filepath-list)
  36.     (progn
  37.       (if argument-list
  38.         (progn
  39.           (setq argument-list (YB-str->lst (vl-string-trim ")"(vl-string-trim "("(vl-prin1-to-string argument-list))) " "))
  40.           (vl-bb-set 'DbxObject argument-list)
  41.           (mapcar (function (lambda (x)(vl-bb-set (read x) (eval(read x))))) argument-list)   
  42.         )
  43.       )               
  44.       (setq rtn '())      
  45.       (foreach temp filepath-list
  46.         (if (vl-catch-all-error-p
  47.               (vl-catch-all-apply
  48.                 (function (lambda (/ docobj)
  49.                             (vla-open (setq docobj (YB-DbxObject)) temp);;这里的docobj跟执行函数中引用的必须对应
  50.                             (if (vl-bb-ref 'DbxObject) (mapcar (function (lambda (x)(vl-bb-ref (read x)))) (vl-bb-ref 'DbxObject)))
  51.                             (expr-list)
  52.                             (vla-SaveAs docobj temp)


评分

参与人数 1明经币 +1 收起 理由
muwind + 1

查看全部评分

发表于 2017-9-8 23:05:12 | 显示全部楼层
这么好的东西,居然没有人顶一下吗
发表于 2017-9-9 23:08:32 | 显示全部楼层
我来顶,可以用来批量pu吗?
发表于 2017-9-10 09:30:00 | 显示全部楼层
是不是可以不打开图形文件
就批量改图中的指定文字之类的
感情很方便啊
发表于 2017-9-13 08:48:16 | 显示全部楼层
是啊,怎么用啊,不会和
发表于 2017-9-13 09:07:16 | 显示全部楼层
可以用来打印么?
发表于 2017-9-13 10:45:42 | 显示全部楼层
DBX限制很多的,之前是G版还是风之影好像说过
 楼主| 发表于 2017-9-17 08:37:53 | 显示全部楼层
陨落 发表于 2017-9-13 10:45
DBX限制很多的,之前是G版还是风之影好像说过

但是DBX的速度极快
发表于 2023-5-3 16:17:57 来自手机 | 显示全部楼层
我这个很奇怪啊,有必要重新写lisp在未开图的文档里加载程序么?不是直接取得数据库后进行修改,然后保存就可以了啊
发表于 2023-9-1 11:59:01 来自手机 | 显示全部楼层
本人小白。需要楼主帮忙解答一下,怎么设置自定义的lsp命令,比如tt1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 06:00 , Processed in 0.163966 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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