彩虹VB 发表于 2015-10-18 19:27:49

帮忙看下这段代码。关于修改块属性的,需要优化。

这段代码在简单的图纸中可以,但是如果图纸很大。一般cad都是好多符图纸,这个过滤机制,就会很慢,基本卡住,求优化!
只在block块中操作的。试过for each block in block这样写代码可是老是出错!帮帮忙!代码如下:
Dim I As Integer
Dim ObjName As String
ObjName = InputBox("请输入一个要重新编号对象的名称")
    With AcadApp.ActiveDocument
    Dim entry As AcadEntity, blk1 As AcadBlockReference, att1 As AcadAttributeReference
    Dim varAttributes As Variant
    Dim strAttributes As String
    For Each entry In .ModelSpace
         If entry.ObjectName = "AcDbBlockReference" Then
          Set blk1 = entry
            If blk1.Name = ObjName Then
                varAttributes = entry.GetAttributes
                varAttributes(0).TextString ="已修改"
            End If
      End If
    Next
    End With

zzyong00 发表于 2015-10-18 20:32:55

比较字符串用strcomp能快点儿
你可以换个思路,用选择集
页: [1]
查看完整版本: 帮忙看下这段代码。关于修改块属性的,需要优化。