В процессе выполнения графических работ конструктор обычно импортирует в чертеж некоторое множество групп примитивов, объединенных в блоки, внешние ссылки и т.п. Чаще всего они представляют собой стандартные и нормализованные детали и узлы.
В то же время использование блоков для импортирования в чертеж, например, изображений стандартных болтов требует создания в качестве отдельного блока чертежа каждого типоразмера болта, что влечет за собой разрастание графической базы данных до неприемлемых размеров и усложняет технику ее использования. Поэтому конструкторская практика послужила поводом для разработки пакетов приложений, позволяющих, с одной стороны, выполнять некоторые типовые расчеты, с другой - осуществлять автоматический перенос результатов расчета в чертеж. Такие пакеты могут как встраиваться в Автокад (например, AutoCAD Мар), так и опираться на собственную графическую среду (например, программный продукт КОМПАС, разработанный АО ACKOH).
Одновременно Автокад предоставляет конструктору широкие возможности программного воспроизведения графических объектов и создания на этой основе персональных пакетов прикладных программ, непосредственно связанных с конкретной областью деятельности конструктора.
Основной средой программирования в Автокаде служит функциональный язык Автолисп (AutoLISP), в основу которого положен язык программирования LISP, разработанный в 1961 году. Возможности программной поддержки Автокада чрезвычайно широки как в части автоматизации процесса создания чертежа, так и в части управления интерфейсом среды.
В настоящем пособии рассматриваются вопросы, связанные лишь с первой задачей, что же касается управления интерфейсом, то с описанием этих методов можно подробно ознакомиться, привлекая соответствующую литературу [1, 3, 5].
Описание языка основывается на Автолиспе, сопровождающем тринадцатую и более поздние версии Автокада. Развитие языка происходило главным образом за счет расширения его возможностей. В 14-й версии заметно обновлена идеология графической среды, особенно в части описания полилиний, что позволило существенно уменьшить размер графических файлов. Кроме того создана интегрированная среда Visual LISP, обладающая собственным развитым интерфейсом и многими функциональными компонентами, позволяющими производить создание и отладку программ без обращения непосредственно к Автокаду. Описание среды Visual LISP в пособие не включено, так как ему посвящена вышедшая из печати специальная книга [1].
Предлагаемое читателю пособие основано на цикле лекций и практических занятий по курсу “Основы автоматизированного конструирования” и иллюстрировано некоторыми программами (или извлечениями из них), используемыми в учебном процессе. На эти иллюстрации наложила отпечаток последовательность изучения материала, в связи с чем на некоторых этапах создания программ избраны не лучшие их варианты (например, это касается программы, где впервые используются операции обработки наборов), однако далее в программы вносятся рациональные изменения.
Разумеется, в кратком пособии трудно описать все возможности Автолиспа и даже возможности отдельных функций (в частности, это касается функций создания и обработки примитивов). Поэтому во многих случаях автор ограничивается лишь описанием формата функций Автолиспа и примерами, заимствованными из других источников. Главными такими источниками (например [5]) являются тома сопроводительной документации к пакетам лицензионных версий Автокада.
И еще одно замечание. Каждому программисту присуща своя логика, свои принципы составления программ, хотя бы в части организации циклов, использования идентификаторов, степени дробления сложных выражений на более простые. Поэтому одни и те же задачи могут быть решены с помощью программ, порой сильно различающихся между собой структурой и внешним видом. И с этой точки зрения, предлагаемые программы, хотя и очень просты, не являются единственно возможными. Но, по мнению автора, они достаточно характерны для стиля программирования, свойственного Автолиспу.