gamulj 发表于 2022-7-5 16:56:30

用于块布局名称的Lisp

大家好!
 
我正在构建标题栏(带有属性的块),我需要一个例程,该例程将自动读取多布局dwg中的布局名称,并将其写入每个布局的块属性“布局”。带有Ctab的字段不适合我的需要。。。
 
这样的事情可能吗?
谢谢

Tharwat 发表于 2022-7-5 17:01:27

是的,这是可能的。
 
您的属性标题栏的名称是什么?

gamulj 发表于 2022-7-5 17:05:49

 
嗨Tharwat!
 
块的名称为TITLEBLOCK。

Tharwat 发表于 2022-7-5 17:10:00

我们开始吧,试试这个程序。
 

(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)


gamulj 发表于 2022-7-5 17:14:46

我会努力的,
谢谢

Tharwat 发表于 2022-7-5 17:18:16

 
好的,我会等你的回复。

gamulj 发表于 2022-7-5 17:20:26

效果很好!
有没有办法让lisp在打开/保存或刷新时自动调用?
 
万分感谢!!!

Tharwat 发表于 2022-7-5 17:23:37

 
杰出的非常欢迎你。
 
 
 
您必须在许多图形文件上运行该程序。你不是吗?
“打开”和“保存”命令不起作用,因此需要第三方程序对图形文件列表进行处理。

gamulj 发表于 2022-7-5 17:28:04

 
确切地
 
你知道一些吗?

Tharwat 发表于 2022-7-5 17:33:31

如果没有那么多文件来实现程序,只需将此(c:Test)添加到最后一个括号后的程序中,并将lisp文件添加到appload命令的公文包中,然后只需打开要在其中运行程序的图形,程序应自动运行并单独执行任务,然后只需保存并关闭图形即可保存新更改。
页: [1] 2
查看完整版本: 用于块布局名称的Lisp