jrobdesign 发表于 2022-7-6 23:43:51

自动填充t的宏

大家好,
 
我需要在标题栏中的“检查人/批准人”列中输入首字母和日期,我需要对300多张图纸进行此操作。
 
有没有办法通过使用宏或脚本来自动执行此任务?我对宏做了一些研究,并研究了如何设置基本的绘图命令,如绘制直线或圆,但是我在任何地方都找不到有关如何在标题栏中自动填充特性的信息?是否有可能,或者我必须打开所有300多个图形并手动更改属性?
 
我只是说,我不是一个有经验的AutoCAD用户,因为我通常使用Inventor,但需要为客户提供项目的AutoCAD绘图。
 
如果有人能帮我或为我指明正确的方向,我将不胜感激。
 
谢谢

Dadgad 发表于 2022-7-6 23:57:03

欢迎来到CADTutor论坛。
 
退房
 
http://www.lee-mac.com/batte.html
表示批次属性编辑器。
 
http://www.lee-mac.com/bfind.html
这将用于将任何现有值或文本更改为定义的新值
同样,在一次心跳中。就像Windows中使用的“查找与替换”文本一样,它将进入属性、块和各种其他内容。
李非常强大和慷慨,使这些社区,免费提供。
 
你会很高兴你这么做的。
如果你从未使用过LISP,请查看李的主页,他会告诉你如何使用LISP。
使用李的一个lisps 300图形可以在不到一分钟的时间内完成,而不需要打开任何图形。
仔细阅读说明。
 
谢谢李!

BIGAL 发表于 2022-7-7 00:03:03

2种方法。
 
使用lisp可以很容易地更改块属性,要绘制300个图形,可以使用打开dwg的脚本运行lisp并再次关闭,重复300次。你会惊讶于DWG,这项任务会很快完成。
 
其他方法正在使用。Net或类似的程序,你可以改变一个dwg没有打开我不能帮助这里。
 
下面是一个脚本,用于将所有布局的属性更改为“已发布”。更好的版本lisp需要稍微修改,可以在启动时加载一次。
 

Open dwg1 (load "issued") close Y
Open dwg2 (load "issued") close Y
Open dwg3 (load "issued") close Y



; changes to issued for construction
: thanks to lee mac for original code
(vl-load-com)
; 1.Get current date in mm/dd/yy format.
(defun ddmmyy (/ x today)
    (setvar "cmdecho" 0)
    (setq x (getvar "CDATE"))               ; get current date
    (setq today ( rtos x 2 4))                  ; convert to a string
    (setq date (strcat (substr today 7 2) "."    (substr today 5 2) "." (substr today 3 2) ))
)

(setq oldtag1 "DRAWING_STATUS") ;attribute tag name
(setq newstr1 "ISSUED FOR CONSTRUCTION")
(setq oldtag2 "REV_NO");attribute tag name
(setq newstr2 "0")
(setq ss1 (ssget "x"'((0 . "INSERT") (2 . "DA1DRTXT"))))
(setq inc (sslength ss1))
(repeat inc      
(foreach att (vlax-invoke (vlax-ename->vla-object (ssname SS1 (setq inc (1- inc)) )) 'getattributes)
(if (= oldtag1 (strcase (vla-get-tagstring att)))
(vla-put-textstring att newstr1)
) ; end if
(if (= oldtag2 (strcase (vla-get-tagstring att)))
(vla-put-textstring att newstr2)
) ; end if
) ; end for
) ;end repeat
(setq oldtag1 "REV-NO")
(setq newstr1 "0")
(ddmmyy)
(setq oldtag2 "DATE")
(setq newstr2 date)
(setq oldtag3 "AMENDMENT")
(setq newstr3 "ISSUED FOR CONSTRUCTION")
(setq ss2 (ssget "x"'((0 . "INSERT") (2 . "REVTABLE"))))
(setq inc (sslength ss2))
(repeat inc
(foreach att (vlax-invoke (vlax-ename->vla-object (ssname ss2 (setq inc (1- inc)))) 'getattributes)
(if (= oldtag1 (strcase (vla-get-tagstring att)))
(vla-put-textstring att newstr1)
)
(if (= oldtag2 (strcase (vla-get-tagstring att)))
(vla-put-textstring att newstr2)
)
(if (= oldtag3 (strcase (vla-get-tagstring att)))
(vla-put-textstring att newstr3)
)
)
)
(setq ss1 nil)
; (setq ss2 nil)
(princ)

jrobdesign 发表于 2022-7-7 00:05:57

谢谢你们的帮助。我已经下载并安装了lee macs Batch Attribute Editor,但似乎无法在Autocad中运行。我运行了安装程序,但它没有给我任何选择安装在哪里等,它只是自动运行。现在,当我在命令行中键入BATTE时,会收到一条错误消息,说“unknown command”

Dadgad 发表于 2022-7-7 00:12:08

 
你装了吗?
如果没有在命令行中键入APPLOAD,您将进入对话框,在那里可以选择并加载它,您可以选择将其添加到您的启动套件中,以便它始终可用,也可能不可用。
一旦你做到了这一点,它应该会起作用。
 
当您开始理解并熟悉lisps时,您很可能会将所依赖的lisps放在您的创业套件中。
 
我假设你在李的网站上选择了下载选项?
您需要注意下载目的地,可能需要启动一个名为LISPS的新文件夹以供将来使用。

BIGAL 发表于 2022-7-7 00:20:32

像Dadgad一样,如果你要做大量的Lisp等,那么制作一个目录并将它们全部放在一个位置。做配置,文件,支持文件搜索路径,添加你的目录,这样你就可以直接加载,只需键入(加载“batte”)

jrobdesign 发表于 2022-7-7 00:27:04

我已经下载了安装程序,它已保存到我的下载文件夹中。
 
当我运行安装程序时,它不会给我查看或选择安装位置的选项,因此当我从Autocad(加载/卸载应用程序-如上所示)加载时,我找不到要加载的文件的目标?
 
我也不知道我要找的文件名是什么?

Dadgad 发表于 2022-7-7 00:35:49

 
你应该点击李的网站截图中突出显示的链接下载,而不是安装。
这意味着您正在保存突出显示的。lsp文件(即您要查找的名称)安装到计算机上,以便以后可以从Autocad中访问它。
 
如果你能找到。在下载文件夹中的lsp文件中,在下载文件夹之外的其他位置启动一个新文件夹,给它起一个对你有意义的名称,这样你就会记住它,
然后移动。lsp文件。
 
然后重新访问帖子#5和6。
成功加载后。lsp文件,您将在命令行中通过键入BATTE启动它,然后
你要去参加比赛了。我希望你能接受我之前的建议,阅读李的lisp使用说明。
你能做到&会喜欢的,坚持住。
你节省的大量时间将属于你自己。

YZ 发表于 2022-7-7 00:37:51

值得一提的是,我使用批处理文件创建了一个循环,该循环在指定文件夹中打开每个图形,并运行一个脚本来更改我想要的属性。这是为了一个类似于我所理解的OP的情况。不需要lisp或第三方。
 
批处理文件如下所示:
FOR %%f in (Z:\TEST\*.dwg) do start /wait C:\"Program Files"\"Autodesk"\"AutoCAD LT 2011"\acadlt.exe "%%f" /b Z:\TEST\ATTCHANGE.scr
 
脚本如下所示:
FILEDIA
0
-ATTEDIT
N
N
*
*
*
20021379
20021382
FILEDIA
1
QSAVE
QUIT
Y
 
它还创建了一个PDF文件,并在打开它们时打印出每个文件的硬拷贝。
 
我必须保存。bat文件和。scr文件在同一个文件夹中,我正在编辑,然后使用Windows调用。蝙蝠称之为。可控硅

pmxcad 发表于 2022-7-7 00:50:31

我在脚本中使用GATTE。
例子:
 
关贸总协定

“块名”
名称
“属性标记”
%%

 
您可以使用Scriptpro在多个图形上运行。
 
注意:如果图形包含更多布局/选项卡,则每个标题块都会更改。
 
 
PmxCAD
页: [1]
查看完整版本: 自动填充t的宏