Разработка функции отклика gp:command-ended
Окончательная компоновка
|
| ||||
Разработка функции отклика gp:command-ended |
| ||||
Функция gp:command-ended (реактор редактора) выполняет основные действия в нашей программе. Пока не вызвана эта функция, пользователи могут свободно изменять полилинии границ дорожек в AutoCAD. В последовательности реакторов перед выполнением действий необходимо подождать, прежде чем AutoCAD завершит свою часть работы.
Действие функции gp:command-ended словесно описывается следующим алгоритмом: Определить состояние полилинии. УСЛОВИЕ 1 - ПОЛИЛИНИИЯ СТЕРТА (Командой СТЕРЕТЬ) Удалить плитки. УСЛОВИЕ 2 - ПОТЕРЯНА АССОЦИАТИВНОСТЬ (ПЕРЕНЕСТИ, ПОВЕРНУТЬ и т.д.) Удалить плитки. УСЛОВИЕ 3 - РАСТЯГИВАНИЕ РУЧКАМИ - ПЕРЕРИСОВКА КОНТУРА И ПЛИТОК Удалить плитки. Извлечь текущие данные о границе полилинии. Если это компактная полилиния, обрабатывать данные о границе как 2М Иначе обрабатывать данные о границе как 3М Конец Если Переопределить границу (передать ей параметры текущего и старого состояния границы). Получить новую информацию о границе и записать ее в формате, используемом для задания полилинии. Регенерировать полилинию. Перерисовать плитки (с помощью ActiveX). Поместить переработанную информацию обратно в реактор с именем *reactorsToChange*. Конец функции Алгоритм достаточно понятен, однако в нем скрыто несколько важных деталей, на которых следует заострить внимание.
|