VBA - 更新对
我创建了一个 vba 宏来编辑 Blocks 中的属性。我尝试了很多次,但它并没有更新绘图中的属性,除非我手动做一个 BATTMAN... 有什么问题?
我认为这种情况通常可以通过 ThisDrawing.SendCommand 调用 ATTSYNC 来解决。尽管使用 SendCommand 可能令人反感,但如果在例程结束时进行调用,它的效果相当好。
另一个更费力的选择是询问所有属性,存储信息,删除然后从头开始重新创建所有内容。这应该允许 .Update 方法的预期性能。
也许这会有所帮助
Set SS = ThisDrawing.SelectionSets.Add("issued")SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFValFor Cntr = 0 To SS.Count - 1attribs = SS.Item(Cntr).GetAttributes attribs(0).TextString = "ISSUED FOR CONSTRUCTION" attribs(3).TextString = "0" attribs(0).Update attribs(3).Update Next Cntr BIGAL 和 SEANT,
非常感谢您的回复...
关于 FilterDXFCode,我遇到了一些错误。但是,ATTSYNC 为我工作。谢谢你们俩...
是的,把你需要的东西放在外面
Dim FilterDXFCode(1) As IntegerDim FilterDXFVal(1) As VariantDim attribs As VariantDim BLOCK_NAME As StringOn Error Resume NextFilterDXFCode(0) = 0FilterDXFVal(0) = "INSERT"FilterDXFCode(1) = 2FilterDXFVal(1) = "DA1DRTXT"BLOCK_NAME = "DA1DRTXT" 谢谢....!!
这个线程促使我回顾一些旧的 VBA 代码,发现我错过了 Attribute.Update 方法。代码很旧,但(大约 AutoCAD 2000)可能还有其他问题。
当我放弃任何新的 VBA 编码时,我现在发现它太糟糕了。
页:
[1]