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


Обновление функции gp:Calculate-and-Draw-Tiles


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

 

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

Обновление функции gp:Calculate-and-Draw-Tiles

Ранее на этом занятии было отмечено, что функция gp:Calculate-and-Draw-Tiles, вызываемая реактором, строит объекты только методами ActiveX. Метод построения, выбранный пользователем (ActiveX, entmake или command), подавляется. Только что обновленный код функции gp:command-ended содержит следующее обращение к процедуре построения плиток:

(setq tileList (gp:Calculate-and-Draw-Tiles

;; path data list without correct tile list.

NewReactorData

;; Object creation function.

;; Within a reactor this *MUST* be ActiveX.

"ActiveX"

)

)

Функции gp:Calculate-and-Draw-Tiles передается два параметра: NewReactorData (список в форме исходного ассоциативного списка gp_PathData) и строка "ActiveX" (для задания стиля создания объекта). Посмотрим на текущее описание функции gp:Calculate-and-Draw-Tiles (функция описана в файле gpdraw.lsp). Здесь приведена часть функции, которая объявляет параметры и локальные переменные:

(defun gp:Calculate-and-Draw-Tiles (BoundaryData /

PathLength TileSpace

TileRadius SpaceFilled

SpaceToFill RowSpacing

offsetFromCenter rowStartPoint

pathWidth pathAngle

ObjectCreationStyle TileList)

Заметим, что сейчас задан только один параметр, а переменная ObjectCreationStyle описана как локальная. Посмотрим, как присваивается значение переменной ObjectCreationStyle (далее в описании функции):

(setq ObjectCreationStyle (strcase (cdr (assoc 3 BoundaryData))))

Переменная ObjectCreationStyle определена внутри функции и извлекает значение переменной BoundaryData (ассоциативный список). Теперь нужно переопределить это значение.

Для добавления в функцию gp:Calculate-and-Draw-Tiles аргумента стиля создания объектов

  1. Добавьте переменную ObjectCreationStyle к аргументам функции.
  2. Удалите ObjectCreationStyle из списка локальных переменных.
  3. Выражение defun для функции должно выглядеть следующим образом:

    (defun gp:Calculate-and-Draw-Tiles (BoundaryData




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



    Книжный магазин