用于块布局名称的Lisp
大家好!我正在构建标题栏(带有属性的块),我需要一个例程,该例程将自动读取多布局dwg中的布局名称,并将其写入每个布局的块属性“布局”。带有Ctab的字段不适合我的需要。。。
这样的事情可能吗?
谢谢 是的,这是可能的。
您的属性标题栏的名称是什么?
嗨Tharwat!
块的名称为TITLEBLOCK。 我们开始吧,试试这个程序。
(defun c:Testnil
;;------------------------------------;;
;; Tharwat 20.05.2015 ;;
;; Modify Title Blocks that have ;;
;; Tag name "LAYOUT" wiht its ;;
;; location is each Layout's Name ;;
;;------------------------------------;;
(vlax-for x(vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (/= (vla-get-name x) "Model")
(vlax-for b(vla-get-block x)
(and (eq (vla-get-objectname b) "AcDbBlockReference")
(eq (vla-get-effectivename b) "TILTEBLOCK")
(vl-some
'(lambda (a)
(if
(eq "LAYOUT" (strcase (vla-get-tagstring a)))
(vla-put-textstring a (vla-get-name x))
)
)
(vlax-invoke b 'getattributes)
)
)
)
)
)
(princ)
)(vl-load-com)
我会努力的,
谢谢
好的,我会等你的回复。 效果很好!
有没有办法让lisp在打开/保存或刷新时自动调用?
万分感谢!!!
杰出的非常欢迎你。
您必须在许多图形文件上运行该程序。你不是吗?
“打开”和“保存”命令不起作用,因此需要第三方程序对图形文件列表进行处理。
确切地
你知道一些吗? 如果没有那么多文件来实现程序,只需将此(c:Test)添加到最后一个括号后的程序中,并将lisp文件添加到appload命令的公文包中,然后只需打开要在其中运行程序的图形,程序应自动运行并单独执行任务,然后只需保存并关闭图形即可保存新更改。
页:
[1]
2