Тема: Изменение атрибутов в динам. блоке

Здравствуйте!
Подскажите пож-ста как с помощью VBA можно изменить значания атрибутов в динамическом блоке (имя атрибутов и блока за ранее известно).

За ранее большое спасибо!

А вообще хотелось организовать замену атрибутов сразу в наборе файлов.
Но стесняюсь спросить Вас о столь трудоемкой задаче.

Еще раз спасибо большое за помощь!

Re: Изменение атрибутов в динам. блоке

Вот примерчик:
   Dim Ml As AcadEntity
   Dim varPnt As Variant
   
   Me.Hide
repit:
   ThisDrawing.Utility.GetEntity Ml, varPnt, "Ввод блока для переобозначения."

   If Err.Number <> 0 Then Me.Show: Exit Sub
   Dim K As Long
   K = Val(InputBox("Начальное значение", "&#205;&#243;&#236;&#229;&#240;&#224;&#246;&#232;&#255; &#240;&#224;&#231;&#250;&#229;&#236;&#238;&#226;.", 1))
    Dim atr, b As Variant
    atr = Ml.GetAttributes
    Dim I As Long
    Dim Nam As String
' определяю текст, находящийся в аттрибуте с тэгом NAME
    For I = LBound(atr) To UBound(atr)
        If InStr(1, atr(I).TagString, "|", vbTextCompare) > 0 Then
        Else
            If atr(I).TagString = "NAME" Then
                Nam = atr(I).TextString
            End If
        End If
    Next

    On Error Resume Next
' тэг атрибута состоит из трех частей, которые обрабатываются, как написано ниже:
    For I = LBound(atr) To UBound(atr)
        If InStr(1, atr(I).TagString, "|", vbTextCompare) > 0 Then
            b = Split(atr(I).TagString, "|")
            If b(0) = "*" Then b(0) = Nam + ":"
            If b(2) = "*" Then b(2) = Nam
            atr(I).TextString = b(0) + Trim(Val(b(1) + K - 1)) + (b(2))
        End If
    Next
    Ml.Update
   
    GoTo repit
Николай.

Re: Изменение атрибутов в динам. блоке

Привет!
Николай спасибо за пример!
Но если честно не получилось разобраться. :cry:
Тут походу и форма нужна.
Если есть возможность предоставить по больше матариала.

Большое спасибо!
Не посчитай за наглость.

Re: Изменение атрибутов в динам. блоке

Извините, Павел, не могу подробно ответить очень срочная работа.....
Вот упростил я примерчик, попробуй его разобрать, форма тут не нужна

1. создай блок с несколькими атрибутами
2. запусти этот макрос,
3. покажи на созданный  блок, и атрибуты в нем изменятся.

Извини нет времени самому проверить, могут быть ошибки, тут все просто ты сам разберешься.
Николай.


Dim Ml As AcadEntity
Dim varPnt As Variant


repit:
ThisDrawing.Utility.GetEntity Ml, varPnt, "Ввод блока для переобозначения."

If Err.Number <> 0 Then  Exit Sub

Dim atr As Variant
atr = Ml.GetAttributes
Dim I As Long
Dim Nam As String
' определяю текст, находящийся в аттрибуте с тэгом NAME
For I = LBound(atr) To UBound(atr)
    atr(I).TextString = "Примерчик "& str(i)
End If
Next
Ml.Update