更好的方法是在树的顶部重新定义块表中的单个块,然后只更新图形,而不是获取所有块。ssget“insert”正在执行的操作。
类似这样,但查看实体并检查文本或多行文字,然后更改样式。我会得到实体名称并运行一系列条件,因为文本和多行文字非常直接,但属性样式再次降低了一个级别,但您可以检查“Hasattributes”变量,然后进行更深入的搜索。你可以使用dumpit。lsp获取对象的变量名列表,然后进一步使用(vlax dump object variable)
- (setq allblocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
- (vlax-for block allblocks
- (setq blkname (vla-get-name block))
- (if (not (wcmatch (strcase blkname t) "*_space*"))
- (vlax-for ent block
- (If (= "AcDbText" (vla-get-objectname ent))
- (vla-put-StyleName ent "arial") ; need a vla-put-textstyle here
- ) ; if
- ) ;_ end of vlax-for
- ) ;_ end of if
- ) ;_ end of vlax-for
- (Command "regen")
- (princ)
-
- (if (= (vla-get-hasattributes ent) -1)
- (foreach att (vlax-invoke ent 'getattributes)
- ;look at textstyle see if I can find an example
|