
- •2. MechaniCs 2.0 – отечественное приложение к AutoCad 2000, 2002.
- •2.1. Создание форматов и основной надписи чертежа [2].
- •2.2. Заполнение основной надписи.
- •2.3. Запись в чертеж технических требований.
- •2.4. Создание спецификации.
- •2.4.1. Простановка позиций на чертеже.
- •2.4.2. Контроль и изменение информации в “Редакторе спецификаций”.
- •3. AutoLisp – внутренний язык AutoCad-a.
- •3.1. Типы данных в AutoLisp.
- •3.2. Выражения на языке AutoLisp.
- •Литература.
- •MechaniCs 2.0. Руководство пользователя. Consistent Software Ltd., 2001.
- •Раздел “Помощь” программы MechaniCs 2.0. [Mech 2 help.Chm].
- •MechaniCs 8.1. Руководство пользователя. Consistent Software Ltd.
3. AutoLisp – внутренний язык AutoCad-a.
AutoLISP – созданный специально для Автокада диалект одного из первых функциональных языков LISP, который разрабатывался в конце 50-х годов прошлого столетия, как язык искусственного интеллекта. AutoLISP тоже функциональный язык, но используется для программирования. В нем отсутствуют операторы: все действия, в том числе и управляющие конструкции, выполняются при помощи вызовов функций. Поскольку каждая функция возвращает значение, ее можно подставить в качестве аргумента другой функции, что позволяет записывать сложные выражения в функциональной форме.
Название языка официально означает LISt Processing (Обработка списков), а неофициально - Lots of Idiotic Silly Parentheses [4]. Лисп отличается высокой компактностью - ядро интерпретатора занимает 4..10Кб. Он прост в изучении и гибок. AutoLISP позволяет пользователям и разработчикам AutoCADа писать макропрограммы и функции на мощном языке высокого уровня, который хорошо сочетается с прикладной графикой. Язык LISP передал AutoLISP-у очень удобные средства работы с глубоко структурированной информацией. AutoLISP позволяет работать с объектами Автокада, справочными таблицами, считывать и записывать файлы и многое другое. На языке AutoLISP написаны команды Автокада.
Недостатком AutoLISP следует признать относительно большую трудоемкость разработки программ. Зато они на Автолиспе отличаются чрезвычайно высокой надежностью; за многие годы использования Автолиспа ошибок в работе интерпретатора не выявлено.
В данном курсе изучается язык Автолисп для того, чтобы можно было писать свои команды с целью повышения эффективности работы в Автокаде. Знание 30-40 функций достаточно для программирования несложных параметрических чертежей. Созданные новые команды сможет использовать другой даже малоподготовленный пользователь, не умеющий создавать объекты в Автокаде.
Механическая замена кульмана на компьютер с Автокадом чаще всего приводит не к росту производительности труда, а к замедлению работы в 2..4 раза. Для эффективной работы Автокад следует адаптировать под проектирование изделий определенного класса. Тогда работа конструктора будет сведена к вводу параметров изделия, а всю черновую работу по отрисовке чертежа возьмет на себя программа, написанная на встроенном в Автокад языке программирования - Автолиспе.
3.1. Типы данных в AutoLisp.
Автолисп поддерживает следующие типы данных:
целое
число
со знаком от -32768 до 32767 или от 0 до 65535 (2
байта) без знака;
вещественное число, записываемое через десятичную точку: 10.52 или в экспоненциальном формате: 2.52Е-12; десятичное число нельзя сокращенно начинать или заканчивать точкой. Например, .1 вместо 0.1 или 2. вместо 2.0 . Это связано с тем, что есть тип данных – точечная пара, разделителем которой является точка.
строка
символов
длиной до 127 знаков, заключенная в
двойные кавычки.
Запись “10.5” воспримется как текст, а
не число. Символ "\" является
служебным и, если он нужен в программе,
то при записи удваивается: так, например,
текст "3\2" должен быть записан как
"3\\2". Слеш "\"
используется
для обозначения перевода строки ( "\n"),
возврата каретки: ("\r") и табуляции
( "\t");
логический тип, принимающий два возможных значения: истина (обозначатся Т) или ложь (обозначается NIL).
AutoLISP имеет и другие типы данных. Например:
дескрипторы файлов (описатели файлов), в которых хранятся описания открытых файлов;
символы – в них хранятся не значения, а ссылки на другие переменные.
Самым важным, интересным и сложным типом данных в AutoLISP является
СПИСОК. Как следует из названия языка LISP (LISt Processing) - список является основным понятием языка Лисп. Список – это перечень атомов или списков, отделенных друг от друга пробелами и заключенных в скобки. Программа, функция и выражение в AutoLISP являются списками.
Атом в Лиспе - это простой (в отличие от списка) тип данных: число, символьная строка, функция.
В Лиспе по умолчанию любой список является программой и интерпретатор будет пытаться ее выполнить. Если список - не программа, а данные, то надо явно отключить его интерпретацию. Для этого используется функция QUOTE [См. раздел 3.5.1. Использование функции QUOTE.].