如何替换表中的属性?
如何替换表中的属性有一张桌子
它包含一个具有属性的块
有必要通过表格第一行的VBA更改属性;ATR“;“价值”;DD25“;至;HH38"
I';我试图获得一个块并更改属性,但它会为每个人更改它
Set block = ThisDrawing.Blocks
For Each item In block
str = item.EntityName
'Get t attributes
If item.EntityName = "AcDbAttributeDefinition" Then
if item.TextString ="DD25" thenitem.TextString="HH38"
End If
End If
Next item
**** Hidden Message ***** 嗨,我 ;对VBA几乎一无所知,但在BLOCKREFERENCE,而不是BLOCKCOLLECTION,您必须更改ia。我会Lisp
如果你寻找BLOCKCOLLECTION,当然一切都会改变。希望它能有所帮助; 问题是这些块在BLOCKREFERENCE中不存在
如果有一个lisp示例,请给出 (defun c:Test ( / attDefId blk blkRecId enm tbl)
(if
(and
(setq enm (car (entsel)))
(setq tbl (vlax-ename->vla-object enm))
(= "AcDbTable" (vla-get-objectname tbl))
(/= 0 (setq blkRecId (vla-getblocktablerecordid tbl 0 0)))
)
(progn
(setq blk (vla-objectidtoobject (vla-get-activedocument (vlax-get-acad-object)) blkRecId))
(vlax-for obj blk
(if
(and
(not attDefId)
(= "AcDbAttributeDefinition" (vla-get-objectname obj))
)
(setq attDefId (vla-get-objectid obj))
)
)
(if attDefId
(vla-setblockattributevalue tbl 0 0 attDefId "New String")
)
)
)
(princ)
) 罗伊043太棒了
谢谢你!这正是我们所需要的。问题解决了。
页:
[1]