Работа с ассоциативным списком
Построение границы дорожки
|
| ||||
Работа с ассоциативным списком | |||||
Ассоциативный список, содержащийся в переменной gp_PathData, можно передать функции gp:drawOutline следующим образом:
(gp:drawOutline gp_PathData) Это достаточно просто. Однако в тексте функции необходимо указать, каким образом информация из ассоциативного списка должна обрабатываться. Выяснить структуру списка можно с помощью средства VLISP «Изучить». Для анализа ассоциативного списка с помощью средства VLISP «Изучить»(setq BoundaryData (gp:getPointInput)) VLISP будет записывать информацию в переменную BoundaryData. ![]() ![]() VLISP выводит следующее окно: ![]() В окне «Изучение» выводится каждый вложенный список переменной BoundaryData. (assoc 50 BoundaryData) Функция assoc возвращает элемент ассоциативного списка, обозначенный определенным кодом. В данном примере указан код 50, соответствующий углу наклона парковой дорожки (см. раздел Применение ассоциативных списков). (cdr(assoc 50 BoundaryData)) Функция cdr возвращает второй и все следующие за ним элементы списка. В данном примере cdr находит значение угла, которое является вторым и последним элементом значения, возвращаемого функцией assoc. После этих объяснений при понимании следующего фрагмента кода затруднения возникать не должны: (setq PathAngle (cdr (assoc 50 BoundaryData)) Width (cdr (assoc 40 BoundaryData)) HalfWidth (/ Width 2.00) StartPt (cdr (assoc 10 BoundaryData)) PathLength (cdr (assoc 41 BoundaryData))
|