
- •1. Введение
- •2. Неавтоматизированное создание чертежей в AutoCad
- •3. Программирование в AutoCad
- •4. Элементы языка AutoLisp
- •5. Интегрированная среда Visual lisp
- •6. Применение функций AutoLisp
- •7. Функции вывода графических примитивов
- •8. Диалоги и диалоговые окна
- •Атрибуты заголовка диалога
- •Работа с диалогами из lisp-программ
- •Элементы диалога
- •Атрибуты элементов диалога
- •Переменные действия
- •Функции, работающие с графическими элементами
- •9. Управление работой AutoCad с помощью системных переменных
- •10. Меню и адаптации
- •11. Введение в технологию ActiveX
- •Безопасные массивы
- •Объекты и семейства
- •Варианты
- •Свойства
- •Другие функции ActiveX
- •События и реакторы
- •12. Программы, созданные на платформе AutoCad спдс GraphiCs
- •13. Специализированные программы для архитектуры и строительства
- •Ат Венцы
- •Комплекс программных продуктов, объединенных компанией аскон
- •Лоцман: спдс
- •Компас-график
1. Введение
Одной из тенденций современного проектирования строительных объектов является использование программных продуктов, которые выполняют полный цикл проектирования, состоящий из следующих этапов:
Создание двух- или трехмерной модели объекта.
Анализ модели, включающий в себя статические расчеты, а также при необходимости динамические расчеты, модальный анализ, оптимизацию и т.д.
Подбор или проверку сечений конструктивных элементов, проектирование узлов.
Автоматизированный выпуск проектной документации – чертежей, спецификаций, пояснительных записок и т.д.
Существуют программы, выполняющие только 1 и 4 этапы проектирования. Таким программам необходимо передавать данные об объекте в какие-либо другие расчетные программы для выполнения 2 и 3 этапов проектирования.
Дисциплина «Проектно-графические комплексы» рассматривает возможности существующих программ для выполнения 1 и 4 этапов проектирования.
Вопросы автоматизации расчетов строительных конструкций изучаются на старших курсах.
Многие программы, осуществляющие автоматизированный выпуск проектной документации, созданы на базе AutoCAD, либо создают графическую документацию в форматах AutoCADа DWG, DXF.
AutoCAD является международным промышленным стандартом в области автоматизированного проектирования.
Программный комплекс AutoCAD как среду автоматизированного проектирования можно рассматривать с точки зрения наличия в нем следующих возможностей.
Графический редактор – средство создания чертежей и других геометрических объектов вручную.
Среда программирования на языке AutoLISP – средство:
создания графических объектов в параметрической форме (рис. 1);
Рисунок 1 – Параметрический объект
создания новых команд, меню, штриховок и т.д. для модернизации графического редактора;
разработки вычислительных систем и систем автоматической генерации чертежей.
Как следствие первых двух пунктов платформа для создания проектирующих программ для строительства и других направлений.
2. Неавтоматизированное создание чертежей в AutoCad
3. Программирование в AutoCad
В программный комплекс AutoCAD встроен язык программирования AutoLISP.
Язык LISP появился в 1962 г. для решения задач в области искусственного интеллекта. Название языка произошло от фразы «LISting Processing» – обработка списков.
Развитие первоначального LISPа проходило по нескольким направлениям, что привело к появлению нескольких диалектов (разновидностей) LISP. Одним из диалектов является COMMON LISP, который с незначительными изменениями был встроен в AutoCAD v.2.1 1982 года. Таким образом появился очередной диалект LISPа под названием AutoLISP. В настоящее время AutoLISP постоянно развивается, что находит свое отражение в новых версиях AutoCAD.
Основой программ, написанных на языке LISP, является работа со списками, которые могут иметь произвольную длину и включать данные различных типов.
Список – это объекты, отделенные друг от друга пробелами и заключенные в скобки: ( … ).
Для LISPа всё, что заключено в круглые скобки, является списком, который следует обработать как вычисляемое выражение.
Поэтому, постановка лишних пар скобок, что допустимо в других алгоритмических языках, в LISPе может привести к ошибкам.
Если список является константой и его вычислять не нужно, то перед списком ставится знак одиночной кавычки: ‘( … ).
Одновременно с этим в LISPе доступны обычные арифметические вычисления, логические операции, работа с файлами и т.д.
Если результат вычисления выражения сохраняется в переменной, то это происходит с максимально возможной точностью, независимо от способа отображения на экране.
Аналогично многим другим языкам программирования, AutoLISP имеет средства для немедленного выполнения команд без сохранения их в памяти или на диске.
Для выполнения действий на языке AutoLISP без сохранения их в виде файла необходимо ввести выражение AutoLISP в командную строку и подтвердить действия клавишей ENTER.
Рассмотрим пример использования командной строки AutoCAD в виде калькулятора. Введем список (/ 5.0 2) и нажмем клавишу ввода. Если поле команд занимает три строки, то мы увидим введенное выражение, результат вычислений и новое системное приглашение AutoCAD:
Command: (/ 5.0 2) |
2.5 |
Command: |
Во введенном списке первый элемент является функцией деления, второй и третий – аргументами функции деления.
Для создания исходных текстов программ на AutoLISPе используются:
Интегрированная среда Visual LISP, встроенная в AutoCAD.
Любой текстовый редактор, сохраняющий файлы в формате DOS (файлы с исходными текстами программ на AutoLISPе имеют расширение LSP).
Загрузку интегрированной среды Visual LISP можно выполнить одним из следующих способов.
Через опции главного меню AutoCAD:
Сервис (Service) AutoLISP Редактор Visual LISP (Visual LISP Editor).
В командной строке AutoCAD ввести:
vlide (что является аббревиатурой от «Visual Lisp Interactive Development Environment») или vlisp и нажать клавишу ENTER.
Загруженная среда Visual LISP открывает несколько окон, в том числе окна для работы с исходными текстами программ.
LSP-программа по терминологии AutoLISP называется «пользовательской функцией».
Пользовательская функция без аргументов и локальных переменных имеет следующую структуру:
(defun имяфункции () ; defun – встроенная функция, ;определяющая пользовательскую функцию ( … действия функции … ) ) (имяфункции) ;вызов функции |
В исходный текст пользовательской функции можно включать комментарии. Признаком начала комментария является символ «;».
Пользовательских функций в одном файле может быть несколько. Так бывает тогда, когда некоторые из них имеют назначение подпрограмм (или вложенных процедур) и вызываются из других функций, либо когда весь алгоритм представляется в виде нескольких логических модулей, которые оформляются как отдельные функции.