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

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

 



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