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


Общее планирование реакторного процесса


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

 

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

Общее планирование реакторного процесса

На этом занятии нам придется описать несколько новых функций. Но основной упор будет сделан не на подробное рассмотрение нового кода, а на изложение общих концепций, которые служат базой для программы. Целью данного занятия является создание законченного приложения, аналогичного тому, что использовалось для построения парковой дорожки на занятии 1.

Примечание В процессе разработки и отладки приложений с реакторами всегда существует потенциальная опасность, что AutoCAD® останется в нестабильном состоянии. Это может быть вызвано различными причинами например, невозможности удалить реакторы удаленных объектов. Поэтому рекомендуется перед началом 7 занятия сохранить все открытые файлы, закрыть VLISP, выйти из AutoCAD и перезапустить оба приложения.

Начнем с того, что загрузим проект в том виде, каким он стал к концу шестого занятия.

В приложении парковой дорожки осталось выполнить две основных задачи:

  • Написать функции отклика для реактора объекта.
  • Написать функции отклика для реактора редактора.

Необходимо также решить, каким образом программа будет обращаться с глобальными переменными. Часто требуется, чтобы глобальные переменные сохраняли свои значения в течении всего сеанса AutoCAD. Однако в случае с реакторами это не так. Чтобы понять почему, представим себе, что пользователь построил с помощью нашего приложения несколько парковых дорожек в одном рисунке. После этого пользователь начал стирать их, сначала по одной, затем по две и т.д., до тех пор пока все дорожки, кроме одной, не оказались стертыми.

На занятии 5 была введена глобальная переменная *reactorsToRemove*, ответственная за хранение указателей на реакторы для удаляемых полилиний. Объявление переменной *reactorsToRemove* в функции gp:outline-erased означает, что полилиния сейчас будет удалена. В действительности же полилиния удаляется только после вызова функции gp:command-ended.




Начало  Назад  Вперед