干杯 再次感谢李,我设法调整代码以满足我的要求。
我让它在两个不同的块中更新不同标签的值,效果很好。
;; Set Attribute Values-Lee Mac
;; Sets the block attributes whose tags are found in the supplied
;; association list to their associated values.
(defun LM:SetAttributeValues ( block lst / elist item )
(if
(eq "ATTRIB"
(cdr
(assoc 0
(setq elist
(entget (setq block (entnext block)))
)
)
)
)
(if (setq item (assoc (strcase (cdr (assoc 2 elist))) lst))
(progn
(if (setq elist (entmod (subst (cons 1 (cdr item)) (assoc 1 elist) elist)))
(entupd (cdr (assoc -1 elist)))
)
(LM:SetAttributeValues block lst)
)
(LM:SetAttributeValues block lst)
)
)
)
(defun c:UPDATETITLEBLOCK ( / ss data i )
(if (setq ss (ssget "_X" '((0 . "INSERT") (66 . 1) (2 . "PDCTITLE,PDCREV"))))
(progn
(setq data
'(
("PDCDATECHK" . "07/11/2011")
("PDCISSUEREV" . "0")
)
)
(repeat (setq i (sslength ss))
(LM:SetAttributeValues (ssname ss (setq i (1- i))) data)
)
)
)
(princ)
)
(c:UPDATETITLEBLOCK)
再次感谢朋友。 杰出的很高兴你能利用它 Hi Irnerb只是一个建议,喜欢你的工作有多快,可能会添加几个预设值到拨号绘图器名称和自动今天日期等 比格尔,当然。。。尽管我会通过lisp调用来设置tile。特别是今天的日期。否则,每次想使用DCL时都需要重写它——这并非不可能,但似乎需要做更多的工作。
实际上,我更喜欢使用set\u tile初始化对话框中的任何值。这样,您甚至可以很容易地记住用户的最后一个输入作为默认值。甚至可以使用其他方法计算默认值,例如默认为现有属性值。
作为如何在我之前发布的DCL代码中设置修订日期的默认值的示例。假设DCL位于名为DwgUpdate的文件中。DCL和一个支持文件夹中。此外,我还展示了使用ISO标准格式化的日期(即YYYY-MM-DD…不太难将其更改为您想要的):
对不起。。unload_对话框位于错误的位置。 大家好,
回到任务的自动化方面-李。。。我看了一下你的编剧,我遇到的问题是,我希望LISP例程在某个目录中的所有DWG上运行。目录总是相同的,但其中的DWG几乎总是不同的。我读了一些关于编译DWG列表并将该列表合并到的内容。SCR。但我希望有一条更直接的道路。
有没有可能让一个脚本在某个目录中打开一堆DWG(目录是恒定的),然后在它们上运行LISP例程?我希望不必每次都选择目录,因为在理想情况下,我将创建一个工具栏按钮,用户可以点击该按钮,然后开始该过程-无需其他操作。
再次感谢你的帮助,朋友。 您可以编写一个lisp,然后编写脚本最后一行是(命令“script”“myscript”)
以下是findfile例程的示例:http://www.cadtutor.net/forum/showthread.php?51091-acad。fas virus&highlight=virus在底部,它可能有一个硬代码目录来搜索*。dwg和使用(writeline scriptline f)
这里还有另一个使用findfile的例子,肯定会有人发布。如果提供了驱动器/目录前缀,请参阅帮助。文件仅在该目录中查找 谢谢你的回复。
基于该查找文件例程,第一个LISP例程是否可以编译certian目录中的DWG列表,然后在每个找到的DWG上运行脚本,并且脚本可以打开>运行第二个LISP>然后关闭?
我将研究foreach和findfile函数,看看能否让它们编译一个列表。包含在特定目录(但不是子文件夹)中的DWG。。看看会发生什么。有什么建议吗?
这听起来可能是一个不错的选择。
我还发现了这个。。。http://www.cadtutor.net/forum/showthread.php?13565-批量清除和审核&p=263508&viewfull=1#post263508
但我恐怕对视觉Lisp程序一无所知。
再次感谢你的帮助比格尔。 在我看来,你有两个选择:
[列表=1]
[*]让您的lisp调用脚本以打开下一个图形并再次启动lisp。
[*]让脚本依次打开每个图形
页:
1
[2]