Проблема с атрибутами дин.блока при модификации с помощью EntityJig

Автор Тема: Проблема с атрибутами дин.блока при модификации с помощью EntityJig  (Прочитано 4538 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Владимир ШуАвтор темы

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
Продолжаю свои мытарства по красивостям в автокаде и попробовал, по совету форумчан, использовать не DrawJig, а EntityJig для вставки и модификации дин.блоков.

И вот вылезла проблема с атрибутами динамического блока при модификации блока с помощью EntityJig.

В конструкторе класса BlockJigModify : Ed.EntityJig, координаты атрибутов правильные, но при изменение блока в методе Update атрибуты смещаются и трансформируются относительно начала координат, хотя я координаты атрибутам и не присваиваю...

Проект во вложении, dwg файл с блоком в папке Debug.
Явно какая то простая неточность, но глаз замылился, не вижу и прошу помощи.

Извините, вам запрещён просмотр содержимого спойлеров.

Отмечено как Решение Владимир Шу 11-01-2017, 07:14:06

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
В конструкторе класса BlockJigModify : Ed.EntityJig, координаты атрибутов правильные, но при изменение блока в методе Update атрибуты смещаются и трансформируются относительно начала координат, хотя я координаты атрибутам и не присваиваю...
А это что:
Код - C# [Выбрать]
  1. ar.Position = _attPos[ar.Tag].TransformBy(br.BlockTransform);
???
Кстати, это самый неправильный способ присвоения координат, так как работает только с выравненными по-умолчанию атрибутами. остальным нужно задавать еще и AlignmentPoint. А если аттрибут еще не в базе, то и AdjustAlignment.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир ШуАвтор темы

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
А это что:
Код - C# [Выбрать]

    ar.Position = _attPos[ar.Tag].TransformBy(br.BlockTransform);

???
а эта строка в классе BlockJigInsert : Ed.EntityJig (строка 244 и 298 в простыне кода) и у меня к нему претензий нет. Этот класс работает нормально и координаты считает правильно.

Кстати, это самый неправильный способ присвоения координат, так как работает только с выравненными по-умолчанию атрибутами. остальным нужно задавать еще и AlignmentPoint. А если аттрибут еще не в базе, то и AdjustAlignment.

Спасибо.
« Последнее редактирование: 11-01-2017, 07:14:03 от Владимир Шу »