Тема: Изменение точки вставки атрибута в блоке?

Привет,
Блок с видимым атрибутом, вставленный в ModelSpace, нужно изменить положение атрибута (изменить точку вставки).
Делаю

dim objAtt as AcadAttributeReference
dim varPt as Variant
...
objAtt.InsertionPoint = varPt

где varPt = objAtt.InsertionPoint, другого атрибута другого блока, с нужными координатами.
Атрибут остается на месте. И ошибки не выдает.
Спасибо,

Re: Изменение точки вставки атрибута в блоке?

Привет!
Попробуй так:

Sub NewInsertPoint()
    Dim Object As Object
    Dim PickedPoint As Variant, TransMatrix As Variant, ContextData As Variant
    ThisDrawing.Utility.GetSubEntity Object, PickedPoint, TransMatrix, ContextData
    Dim objAtt As AcadAttributeReference
    Dim varPt As Variant
    varPt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
    Set objAtt = Object
    objAtt.InsertionPoint = varPt
    ThisDrawing.Regen acActiveViewport
End Sub

Re: Изменение точки вставки атрибута в блоке?

Атрибут остается на прежнем месте.
А у Вас он перемещается?
Если да, то почему у меня нет?

Re: Изменение точки вставки атрибута в блоке?

Попробуйте выполнить Update для вхождения блока, в котором меняется точка вставки атрибута.

Re: Изменение точки вставки атрибута в блоке?

Может атрибут на заблокированном слое?

Re: Изменение точки вставки атрибута в блоке?

Вот несколько более аккуратный вариант.

[b]Dim varPt(2) As Double[/b]
    'varPt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
    varPt(0) = 21100
    varPt(1) = 2667
    varPt(2) = 1000
    Set objAtt = Object
    objAtt.InsertionPoint = varPt
    ThisDrawing.Regen acActiveViewport

И все это работает без проблем.

Re: Изменение точки вставки атрибута в блоке?

Странно, сегодня двигается, а вчерась нет!? И на работе и дома. Я допускаю что делал что-то не так, но что не знаю?
Еслиб слой был заблокирован - выдавал бы ошибку. А так, без ошибок проходило. Ну и конечно я смотрел что слой не заблокирован/выключен/заморжен.
И положение атрибута ессно не зафиксировано тоже.
Update прописывл.
Надеюсь такая фигня больше не повторится.
Спасибо.

Re: Изменение точки вставки атрибута в блоке?

Помогите, не пойму почему не работает.
Вот тут файл http://www.sharemania.ru/0136792 - 35Кб, там один блок.
Вот так хочу подвинуть атрибут:

Dim objInsertBlock As AcadBlockReference
   Dim objAtr As AcadAttributeReference
   Dim varAtrPt As Variant
   Dim varAtr As Variant
   Set objInsertBlock = ThisDrawing.ModelSpace.InsertBlock(dPt, "ФБС12.6.3-Т", 1, 1, 1, 0)
   ZoomCenter objInsertBlock.InsertionPoint, 10000
   varAtrPt = Utility.GetPoint
   For Each varAtr In objInsertBlock.GetAttributes
      Set objAtr = varAtr
      If objAtr.Layer = "Att~Marka" Then
         objAtr.InsertionPoint = varAtrPt
      End If
   Next

В упор не вижу причину.

Re: Изменение точки вставки атрибута в блоке?

Dim dPt(2) As Double

Re: Изменение точки вставки атрибута в блоке?

Прикол, если поставить выравнивание атрибута в лево (Justification = Left), то все работает.
Но как же быть, у всех атрибутов стоит Center. Я не смогу точно определить точку вставки.
А задача такая. Заменить блоки на чертеже блоками из библиотеки.

Re: Изменение точки вставки атрибута в блоке?

Отбой, через Move пошел.

Re: Изменение точки вставки атрибута в блоке?

> Vildar
посмотри http://www.arcada.com.ua/forum/viewtopic.php?t=653