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

Реакция на вызываемые пользователем команды


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

 

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

Реакция на вызываемые пользователем команды

При написании приложения с реакторами необходимо учесть все команды, которые могут повлиять на объекты. Необходимо также просмотреть все возможные команды редактирования AutoCAD и определить, каким образом приложение должно реагировать на каждую из них. Планируя поведение программы, можно опираться на записи, аналогичные рассмотренным в конце занятия 6. Для этого нужно представить, какие команды может вызвать пользователь, а затем, запуская каждую из них, записать, как на них должно реагировать приложение. Необходимо запланировать также следующее:

  • Поведение программы при вызове пользователем команд ОТМЕНИТЬ и ПОВТОРИТЬ.
  • Поведение программы при вызове пользователем команды ОЙ после удаления объектов, связанных с реакторами.
  • Чтобы не превращать сложное в слишком сложное, в данном учебном пособии не делается попыток предусмотреть все возможные случаи. Поэтому на этом занятии рассматривается абсолютный минимум возможностей.

    Для команд редактирования, которые не будут учтены на занятии, приведем только некоторые общие соображения:

  • При растягивании полилинии границы дорожки (с помощью команды РАСТЯНУТЬ) может произойти несколько вещей. Полилиния может быть растянута в любом направлении, а не только вдоль большой и маленькой сторон; в итоге она может приобрести весьма произвольную форму. Кроме того, необходимо учесть, сколько вершин было перемещено. Так, результат растягивания при перемещении одной вершины будет отличаться от того, что происходит, если переместить сразу две вершины. В любом случае необходимо стереть старые плитки, а затем, определив изменения границы, пересчитать новые положения плиток.
  • Если пользователь перемещает полилинию границы, необходимо стереть все имеющиеся плитки, а затем построить их в новом месте. Это достаточно простая операция, так как полилиния не изменила ни размера, ни формы.
  • Если пользователь масштабирует полилинию границы, необходимо решить, масштабировать ли вместе с ней плитки, чтобы не изменилось их количество, или, оставив прежний размер, изменить количество плиток.

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