(изменено: Vildar, 26 февраля 2009г. 10:52:26)

Тема: Сдвигаются атрибуты при вставке блока

Привет.

Понимаю что тему уже мусолили, но найти не могу (пробовал местный поиск, и гугль и яндекс, выдает ссылки на старый форум, которые не открываются. Может кто подскажет как искать.)

В чертеже определен блок с атрибутами. Выравнивание у всех атрибутов - "центр". При вставке блока через InsertBlock, положение (почти всех!) атрибутов сдвигается (похоже что атрибут перемещается из точки TextAlignmentPoint в InsertionPoint). Причем уже после вставки, при ручном редактировании значения атрибутов, положение восстанавливается.

AutoCAD 2008 +SP1 (причем после установки SP1 уменьшились случаи сдвигов)

Признаки при которых атрибуты сдвигаются не установлены. Возможно влияет поворот атрибутов. Горизонтальные атрибуты (поворот =0) до установки SP1 сдвигались, после - нет. А вертикальные атрибуты (поворот =90), сдвигаются и после установки SP1. Пока это единственное наблюдение.

Блок вставляется как обычно:

Document.ModelSpace.InsertBlock(dInsertPoint, "Имя_блока", 1, 1, 1, 0)

Block.Update - пробовал.

Думаю можно конечно задать положение атрибута (TextAlignmentPoint) уже после вставки блока. Или выравнивание поменять (допустим - "влево"), и подогнать положение атрибутов. Но хотелось бы узнать причину этой фишки.

Спасибо за любую помощь.

Re: Сдвигаются атрибуты при вставке блока

К вопросу о причинах.

У меня подобный глюк наблюдался при открытии чужого чертежа. Горизонтальные атрибуты ушли вниз.
То есть, никакой программной вставки не было, и вообще вставки не было. Автокад2009, но есть подозрение, что создавался этот файл в свое время на R14.
Может, конечно, этот случай не имеет отношения к твоему, а может проблема шире.

Во всяком случае, если удастся докопаться - поделись.
Я подвигал немножко атрибуты вручную и бросил это дело...

Re: Сдвигаются атрибуты при вставке блока

Извиняюсь. Делаю то я в AXDBLib, а там похоже эта фигня как само-собой разумеющееся.
:oops:

Re: Сдвигаются атрибуты при вставке блока

Попробуй так.

Dim attr As AcadAttribute
Set attr = blockObj.AddAttribute(height, acAttributeModePreset, prompt, insP_atr, tag, value)
    attr.Alignment = acAlignmentCenter
    attr.TextAlignmentPoint = insP_atr

Re: Сдвигаются атрибуты при вставке блока

stas_org,
Не помогает.
Еще разповторю, что работаю через "ObjectDBX Common 17.0 Type Library". С ним и связана проблема.
Прикладываю рисунки.
После вставки блока и изменения значений атрибутов через DBX:
Сдвигаются атрибуты при вставке блока
После изменения значений атрибутов этого блока, ручками через _eattedit:
Сдвигаются атрибуты при вставке блока
Т.е. видно (должно быть) что на первой картинке ручки у атрибутов расположены как для выравнивания "по центру", но атрибут распологается как при выравнивании "влево".
На второй картинке тот же блок после изменения значения атрибутов, атрибуты "въезжают" на свое место (выравнивания "по центру").
Вот такая дребедень.

Re: Сдвигаются атрибуты при вставке блока

Это особенность работы с ObjectDBX. Если чертеж не открыт в редакторе AutoCAD и он не текущий то происходит сдвижка.