如何替换表中的属性?
如何替换表中的属性它包含具有属性的块
需要通过表格第一行中的VBA将属性“ATR”值“DD25”更改为“HH38”
我试图获取一个块并更改属性,但它会更改每个人的属性。
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上更改ia,而不是在BLOCKCOLLECTION 。我做Lisp。
如果你寻找 块集合 ,当然一切都会改变。
希望它有帮助 问题是这些块在块引用中不存在。
如果有 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)
) roy_043
太棒了!
谢谢您!正是需要的。问题解决了。
页:
[1]