Группы пользователей 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

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

 



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