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


Создание функции построения границы дорожки


Построение границы дорожки

 

Построение границы дорожки  

Создание функции построения границы дорожки

После выполнения упражнений предыдущих занятий функция gp:drawOutline выглядела следующим образом:

;;;--------------------------------------------------------------;

;;; Функция: gp:drawOutline ;

;;;--------------------------------------------------------------;

;;; Описание: С помощью этой функции можно создать границу ;

;;; garden path. ;

;;;--------------------------------------------------------------;

(defun gp:drawOutline ()

(alert

(strcat "This function will draw the outline of the polyline "

"\nand return a polyline entity name/pointer."

)

)

;; For now, simply return a quoted symbol. Eventually, this

;; function will return an entity name or pointer.

'SomeEname

)

В том виде, как она есть, функция не выполняет практически никаких действий. Однако, ассоциативный список, хранящийся в переменной gp_PathData, позволяет рассчитать все характерные точки, необходимые для построения контура дорожки. Теперь определим, каким образом информация из этой переменной будет передаваться в функцию gp:drawOutline.

Следует помнить, что переменная gp_PathData является локальной и определена внутри функции C:GPath. В AutoLISP локальные переменные, описанные в одной функции, доступны всем функциям, вызываемым из нее (подробнее см. раздел Различия между локальными и глобальными переменными). Функция gp:drawOutline вызывается из C:GPath. Поэтому переменную gp-PathData можно использовать и для функции gp:drawOutline; однако это не является наилучшим решением.

Почему так? Если одна и та же переменная используется только двумя функциями, описанными в одном файле (как в приведенном примере), установить, где была описана и для чего используется переменная, нетрудно. Однако если функции определены в различных файлах (как часто случается), необходимо будет выполнить поиск в двух файлах, чтобы выяснить, что представляет собой переменная gp_PathData.

Темы:

  • Передача параметров функциям

  • Работа с ассоциативным списком

  • Использование углов и задание точек

  • Вызов функций ActiveX из функции gp:drawOutline

  • Загрузка среды ActiveX

  • Получение указателя на пространство модели

  • Создание массива вершин полилинии

  • Преобразование списка точек в массив типа variant

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

 




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



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