Реферат: АвтоЛИСП - реализация языка программирования
Command: !angp90
2.279423
Command: !angm90
-0.862169
Обратите внимание, что PANGLE, ANGP90 и ANGM90 представлены в радианах. После проверки этих значений, выйдите из АвтоКАДа и вернитесь в свой текстовый редактор в GP.LSP.
3.5 Добавление команд в АвтоКАД
Наконец, мы готовы объединить все составные части в команду АвтоКАДа. Если мы определим функцию с именем C:XXX на языке АвтоЛИСП, вводя ХХХ (предполагая,что ХХХ не является командой АвтоКАДа) мы активизируем функцию. Для завершенности ввода в работу нашей команды PATH, мы определяем функцию C:PATH, что дает возможность нам впоследствии после загрузки GP.LSP напечатать только PATH и наша команда garden path будет вычисляться.
Используйте ваш текстовый редактор для добавления указанной строчки в GP.LSP, затем запустите АвтоКАД и загрузите программу.
С добавлением функции C:PATH, мы добавили команду PATH в АвтоКАД. Вы можете проверить команду, осуществив следующий ввод:
Команда: PATH
Начальная точка дорожки: 2,2
Конечная точка дорожки: 9,8
Половина ширины дорожки: 2
Радиус плиты: .2
Расстояние между плитами: .1
3.6 Замораживание
Так как наша команда PATH выполняется, все команды, которые она представляет в АвтоКАД, будут передаваться в область команд/подсказок и все выбранные ею точки будут отмечаться на экране маленькими черточками (метками). Раз командная функция налажена, для появления вводных команд АвтоЛИСПа точно похожих на команды АвтоКАДа, этот ввод может быть отменен.
Применение функции GETVAR необходимо, чтобы получить текущие значения режимов АвтоКАДА BLIPMODE и CMDECHO. Они сохраняются через SETQ в SBLIP и SCMDE. Затем мы применяем функцию SETVAR для того, чтобы установить обе эти переменные АвтоКАДа в нулевое положение; этим делая недействительными метки и переданные команды. Обратите внимание, что мы установили эти переменные в нулевое положение после получения ввода от пользователя через GPUSER. Мы хотим, чтобы метки остались для подтверждения ввода пользователя.
После того, как мы закончили черчение дорожки, мы используем функцию SETVAR для восстановления первоначального значения этих переменных.
Сохраните файл, запустите АвтоКАД и попробуйте сейчас команду PATH. Испробуйте ее со всех сторон, определяя различные виды ввода как при помощи поинтера, так и клавиатуры.
3.7 Резюме
За короткий период времени вы ввели новую команду в АвтоКАД. Во многих системах КАД вам понадобится следующее: доступ к исходному коду системы КАД, квалификация программиста и большой запас знаний для проделывания операций, подобно этой. Открытая архитектура АвтоКАДа и АвтоЛИСПа предоставляет вам возможности, которые большинство продавцов систем КАД приберегают для себя.
Вы можете применять этот пример как исходную ступень к мастерству в АвтоЛИСПе. Вы можете начать с модифицирования и расширения команды PATH, создание которой вы сейчас завершили. Попробуйте начертить квадратные и шестиугольные плиты. Для более полной ориентации, создайте новую команду, которая принимает центральную точку и площадь, и рисует квадрат определенной площади, заполненный плитами. Вы можете просмотреть только что записанные функции в тесной связи с оставшимися главами этого руководства. Здесь мы дали очень краткое описание работы и возможностей функций. АвтоЛИСП содержит много возможностей, опробовав которые и ближе познакомившись с ними, вы сможете полнее их использовать.
Поскольку вы запустили АвтоЛИСП в работу, вы перешли на новый уровень совершенства в АвтоКАДе. По мере использования АвтоЛИСПа для автоматизации изготовления чертежей и конструкторских задач, вы освободите себя от различных деталей и сможете полностью посвятить себя проектированию. В "лице" АвтоЛИСПа вы приобрели неутомимого помощника, который будет служить вам десятилетия.
Глава 4
Функции АвтоЛИСПа
АвтоЛИСП снабжен многочисленными предопределенными функциями. Каждая функция вызывается путем задания ее имени (верхний или нижний регистр) как первого элемента списка, с параметрами (если такие существуют) как последующими элементами списка.
В этой главе вы найдете алфавитный список основных базовых функций АвтоЛИСПа. Для удобства пользования функции сгруппированы в предметном указателе в конце справочника. Вы обнаружите, что многие функции стандартные, их можно обнаружить в каждой реализации языка программирования ЛИСП. Другие же функции уникальны для интерактивных графических программных средств, обеспечиваемых АвтоКАДом. В последующих главах описываются некоторые функции с улучшенными свойствами.
4.1 (+ <number> <number>...)
Эта функция вводит сумму всех <чисел>. Она может применяться с действительными и целыми числами. Если <числа> - целые числа, результат будет выражен целыми числами; если же одно из чисел - действительное, целые числа переходят в действительные и результат будет выражен действительным числом.
Например:
(+1 2) вводит 3
(+1 2 3 4.5) вводит 10.500000
(+1 2 3 4.0) вводит 10.000000