Группы пользователей Autodesk

Разработка функции отклика gp:command-ended


Окончательная компоновка

 

Окончательная компоновка 
 

Разработка функции отклика gp:command-ended



Функция gp:command-ended (реактор редактора) выполняет основные действия в нашей программе. Пока не вызвана эта функция, пользователи могут свободно изменять полилинии границ дорожек в AutoCAD. В последовательности реакторов перед выполнением действий необходимо подождать, прежде чем AutoCAD завершит свою часть работы.

Действие функции gp:command-ended словесно описывается следующим алгоритмом:

Определить состояние полилинии.

УСЛОВИЕ 1 - ПОЛИЛИНИИЯ СТЕРТА (Командой СТЕРЕТЬ)

Удалить плитки.

УСЛОВИЕ 2 - ПОТЕРЯНА АССОЦИАТИВНОСТЬ (ПЕРЕНЕСТИ, ПОВЕРНУТЬ и т.д.)

Удалить плитки.

УСЛОВИЕ 3 - РАСТЯГИВАНИЕ РУЧКАМИ - ПЕРЕРИСОВКА КОНТУРА И ПЛИТОК

Удалить плитки.

Извлечь текущие данные о границе полилинии.

Если это компактная полилиния,

обрабатывать данные о границе как 2М

Иначе

обрабатывать данные о границе как 3М

Конец Если

Переопределить границу (передать ей параметры текущего

и старого состояния границы).

Получить новую информацию о границе и записать ее в формате,

используемом для задания полилинии.

Регенерировать полилинию.

Перерисовать плитки (с помощью ActiveX).

Поместить переработанную информацию обратно в реактор

с именем *reactorsToChange*.

Конец функции

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

 



Содержание раздела