Мы принимаем к оплате:
«Подарочный сертификат» от нашего Учебного Центра – это лучший подарок для тех, кто Вам дорог! Оплате обучение и подарите Вашим родным и близким обучение по любому из курсов!!!
«Сертификат на повторное обучение» дает возможность повторно пройти обучение в нашем Учебном Центре со скидкой 1000 рублей!
А также:
Создание лисп в автокаде
Язык программирования lisp: функции, синтаксис, среда разработки
Более сорока лет назад разработан и внедрен в использование для выполнения целей искусственного интеллекта язык программирования LISP (ЛИСП), позднее ставший популярным среди пользователей ПО AutoCAD. Он создан для символьных вычислений. С течением времени был преобразован, чтобы соответствовать новым потребностям ИИ.
Начинающим пользователям, изучающим его архитектуру, рекомендуется рассматривать его в качестве формальной знаковой системы.
Это imperative language (императивный), действия которого описывают выполнение алгоритма, отличается от других, декларативных, предполагающих определение ограничений и соотношений в предметной сфере поставленной цели. По сравнению с другими подобными разработками С++ и FORTRAN, ЛИСП наделен большей функциональностью. Его популярность обусловлена большими возможностями для программирования в сочетании с мощным набором:
- фреймов;
- сетей;
- предикатов;
- объектов.
Это средства построения данных структур обозначения высокого уровня.
Конструкция
LISP синтаксис и семантика, разработанные программистами, обусловлены теорией рекурсивных функций. Символьные, s-выражения, являются элементами предложений, сочетаний. В них представлены софты и файлы. Они могут отображаться в виде списка (list) или атомов (atom).
Во втором варианте включены числовые комбинации, цифры, буквы латинского алфавита и знаки: *, -, +, /,@, %, , &, _,, ~.
Несколько поочередно идущих абзацев составляют каталог. Они обязательно разделяются пробелами и замыкаются в скобки.
Составляющими одних перечислений могут служить другие, более мелкие, подпункты. Символьные структуры разной формы и уровня сложности можно создавать благодаря произвольной углубленности и вложенности. Существует пустая строка, она обозначается – () и называется «nill». При возведении информационной структуры, а также при способе управления ею, она играет особенную роль, представляясь одновременно и атомом, и списком.
Язык LISP относится к языкам программирования, которые используются для создания дополнительных загрузок к ПО по проектированию и моделированию. Для их использования необязательно хорошо разбираться в компьютере на уровне профессионала.
После изучения основных принципов работы в таких пакетах, как AutoCAD или ZWCAD 2018 Professional, который является аналогом ACAD, появляется необходимость упростить выполнение длительных рутинных операций или полностью избавиться от них. Для этого дополнения и нужны. Если они написаны на ЛИСПе, скрипты называются LISP-приложения. Каждое из них представляет собой текстовый файл с определенным встроенным кодом для выполнения команды и подсказками от производителя. Определитесь с нужными для работы свойствами, выбирайте надстройку, скачивайте ее и загружайте в «ЗВКАД» или другую платформу. Рассмотрим возможности одного такого модуля на образце скрипта «Выравнивание текстов».
Приложение форматирует страницу горизонтально и вертикально по заданной точке. Это полезная возможность, непредусмотренная в основном ПО. Файл с расширением *.lsp открывается двумя кликами левой кнопки мыши. В окне появится «блокнот».
Чтобы сгладить и уподобить несколько напечатанных строк в готовом чертеже, обычно приходится выполнять однообразные действия много раз. Со скачанным скриптом это выполняется одной командой (в примере указана Z-TEXT-ALIGN).
Подобные дополнения полезны на любом этапе проектирования. Их существует очень много, но совсем необязательно устанавливать все. Перед скачиванием, посмотрите, подходит ли скрипт для выполнения нужных конкретных задач. Для каждой области написаны подходящие:
- для инженерного проектирования в строительстве;
- коммунальных структур, занимающихся планированием и укладкой сетей;
- ЛИСПы Автокада для геодезистов.
Как загрузить вспомогательную часть в ПО
После выбора нужного вложения возникает надобность его внедрения. Если речь идет об ACAD, для него доступны файлы с такими расширениями:
Помимо файлов lisp также поддерживается загрузка форматов:
- *.arx;
- *.dvd;
- *.crx;
- *.arx;
- *.dbx.
На примере того же модуля для выравнивания текста рассмотрим, как подгрузить в основную программу его файл.
Обратите внимание: при скачивании архивированного лисп-приложения, распакуйте его, чтобы на ПК фрагмент сохранился перед загрузкой.
Этапы установки LISP (их можно отследить по истории):
- Перейдите по пути «Управление» – «Приложения» – «Загрузить».
- В командной строке основного ПО введите «_appload».
- В окне «Загрузка/Выгрузка» найдите файл с одним из вышеперечисленных расширений и кликните «Загрузить».
- Процедура завершена. Переходите к тестированию и написанию кода.
Важно: при каждом запуске базовой утилиты нажмите кнопку «Добавить» в разделе «Добавить в автозагрузку». Если этого не сделать, то будет выполнен единоразовый вход в модуль, который не сохраняется с закрытием софта.
В главном ПО их посмотреть невозможно, поэтому нужно обратиться к исходному файлу дополнения. Он открывается в «Блокноте», вверху которого находится название команды для запуска лиспа и вся необходимая информация для работы от его создателей. В примере указано z-text-align, что и нужно ввести в командную строку, чтобы вызвать нужный инструмент.
После этого, следите за указаниями вложения. Обычно такие скрипты интуитивно понятны и не требуют дополнительных разъяснений относительно дальнейших действий пользователя.
Обратите внимание: в случае отсутствия подобной подсказки, ищите ее в коде – в строке «defun c: z-text-align».
Вложения, написанные на диалекте, разработаны только для внедрения в полную версию ACAD и в схожие программы, например, ZWCAD 2018 Professional, NanoCAD, они не подгружаются. Для них существуют другие приложения.
Список функций лисп (LISP) – языка программирования для Autocad
С оператора defun начинается определение задач. С его помощью создают опции с переменными. Зависимо от назначения, каждая из них будет действовать по-разному.
Варианты, производимые этим оператором:
- с префиксом «С:» (circle) – команда на выполнение s-выражения в сфере деятельности;
- без приставки – их вычисления используются в теле программы-дополнения.
В каждом модуле, написанном этим диалектом, есть встроенный интерпретатор. Он выполняет вычисление введенных данных и возвращает их в программную среду для дальнейшей обработки. Готовые наработки передаются на высший уровень системы или сохраняются в переменной. Это значит, что скрипт получает информацию, когда ее вводит пользователь, или при самостоятельном выборе из существующей. Он сохраняет ее в переменную, и производит вычисления, включающие неизвестное значение и функцию.
Пример:
Есть участок кода: (setq gh (+ 4 5)), где setq – одна из прописанных единиц. Она объявляет вариацию gh. В скобках знак + тоже опция, числа 4 и 5 – данные, которые были введены в систему. Значение выражения в gh сохранится, то есть 4+5 =9, gh=9. При заданном условии (setqhj (* gh 2), в результат hj сохраняется 18 – gh = 9, 9 умножить на 2 равно 18.
Синтаксис отличен от привычной большинству математики. Его порядок представлен сначала задачей, а потом переменными. В школьном счете это выглядит, как (3+2), а здесь (+ 3 2), однако, смысл одинаковый.
Список функций lisp, работа которых является основой дополнительных приложений:
- для преобразования данных (float);
- вычислений (fix);
- организации циклов (if);
- логические (and, nul,=,, or и другие);
- арифметические (+, -, ~, abs).
При помощи этого программного диалекта создают новые уравнения 3-х классов:
Язык, который не позволяет этого – бесполезен. Часто используется LISP в геодезии, инженерии и строительстве, применяя надстройку «Автокада».
С помощью ЛИСП изучают рекурсивную функцию, используя такую возможность, как «трассировка». Это основной и весьма эффективный способ организации вычислений, повторяющихся несколько раз.
На входе в эту ячейку печатают значения входящих параметров, а на выходе появляются результаты, полученные в ходе операции. Для этого есть специальная опция класса FSURB, называемая TRACE. При ее успешном завершении, возвращается наименование задачи. При неудачном – возврат «NIil».
Пример включения рассматриваемой возможности SUMLIST и произведения математических манипуляций, суммирования элементов списка (1 2 3 4 5):
Обратите внимание на то, что ответ на поставленную задачку ведется в ином порядке – от последнего к первому.
Используемые только для AutoCAD (Автокад) LISP программы, устанавливаются исключительно на полноценную версию и не подходят по списку функций и команд для работы в пакетах типа Autodesk LT, Electrical, Mechanical. Исключений немного, ими выступают специальные разработки типа LT Extender, с типом расширения *.arx, *.lsp.
по программам для проектированияЕсть изначальный язык и возникшие на пути его развития диалекты.
Основных разновидностей три:
- Общий (Common).
- Ским (Scheme).
- Clojure.
Первый вариант – стандартный, переживший множество попыток изменения. Второй считается учебным, по нему есть даже методические материалы для преподавания в школе. Третий является современной семиотической системой с упрощенной поддержкой многопоточности. Он имеет поддержку разработки в интерактивном режиме.
Есть и другие разновидности, используемые в определенных программных пакетах. Например, Autolisp и Visual LISP в среде разработки AutoCAD.
ПО для проектирования
Не только для Автокада существуют дополнительные приложения. Компания ZWSOFT реализует удобные инструменты для моделирования и конструирования с возможностью интегрирования сторонних продуктов. ZWCAD в целом – аналог ACAD, поэтому для него тоже можно устанавливать программы на ЛИСПе.
Версии 2018 года усовершенствованы, в них добавлены новые функции:
- «Стандартная». В ней встроен удобный редактор свойств деталей, управление которым возможно при помощи инструментов. Большой набор опций позволяет реализовать задачи любого уровня сложности и использовать платформу в различных сферах деятельности.
- «Профессиональная». Это улучшенная версия предыдущего пакета для 3D моделирования и редактирования. Совместима для интеграции с внешними приложениям, включая выполненные с помощью программирования на ЛИСПе. Поддерживает VBA/.Net/ZRX.
Пользователям предлагается отдельная утилита по конвертации защищенных файлов vlx и fas в формат, который можно использовать для загрузки приложений в ZWCAD.
Этот способ программирования функционален, благодаря чему популярен. Необязательно владеть им, чтобы пользоваться дополнениями, написанными на нем. Выбирайте то, что поможет в вашей отрасли и пользуйтесь, экономя свое время!
или присоединяйтесь к нашей группе в соцсети
Создание функций Lisp для AutoCAD
Рис. 1 |
Эта статья будет просвещена созданию функций в программе AutoCAD на языке программирования Аутолисп. Данная статья очень важная так как создания функций очень важно для программирования на языке ЛИСП, можно сказать, что без этого не обойтись.
Определения функций всегда начинаются с такого оператора, как DEFUN. Причем функцию созданную с помощью оператора DEFUN, можно использовать по разному и в зависимости от особенности использования она будет вести себя по разному.Сначала мы рассмотрим функцию, созданную оператором DEFUN, перед именем функции которых располагается префикс с:. Допустим выражения вида defun c: circle. Что это выражения значит? DEFUN это оператор буквой с С точками С: - мы указываем интерпретатору то, что набрав имя функции circle в командной строке автокада мы запустим ЛИСП выражения на выполнения в среде. Ну а circle – это имя функции.
Второй тип функции – это функция созданная оператором defun, без префикса С:. Эти функции удобны тем, что результат их вычислений можно использовать в теле программы написанной на ЛИСП.
С помощью оператора DEFUN можно создавать функцию с аргументами и переменными. Это очень важно понять. Так как на этом строится программирование. Также необходимо понимать, чем отличаются переменные от аргументов. А также назначение переменных и аргументов.
Урок 3. Создание кнопки для программы LISP.
На этом уроке мы научимся создавать кнопки для запуска своих программ, написанных на языке LISP. И рассмотрим мы это на примере программы “mp_kub”, созданной в предыдущем уроке: Пример простой программы на LISP.
Весь интерфейс программы Автокад, включающий в себя режимы рабочего пространства, ленту, панели инструментов, меню и т. д., храниться в стандартном файле адаптации acad.cuix. В Автокаде есть широкие возможности по изменению и настройки интерфейса под свои конкретные задачи. Все изменения, внесенные пользователем, сохраняются в основном файле адаптации и остаются неизменными при последующих запусках Автокад.
Кроме основного файла адаптации, Автокад позволяет загружать файлы частичной адаптации, в которых так же присутствуют лента, панели инструментов, меню и т. д. Файлы частичной адаптации позволяют нам переносить с одно компьютера на другой на другой не весь интерфейс, а только его часть.
И так в этом уроки мы рассмотрим следующее:
Как создавать файл частичной адаптации;
Как создавать в нем новую панель инструментов;
Как создавать кнопки для новых команд;
Как прописывать команды в кнопку;
Как создавать новое изображение кнопки.
Как размещать кнопку на панели.
Как на ленте создать новую вкладку.
Как добавить панель в ленту.
Создание файла частичной адаптации.
Отрываем AutoCAD, на главном меню выбираем вкладку «Управление» и щелкаем на пункте «Пользовательский интерфейс»
Откроется окно «Адаптация пользовательского интерфейса».
Переходим на вкладку «Перевести» и щелкаем на кнопке «Создать новый файл адаптации»
Находим папку «MyLisp», в поле «Имя файла» вводим «mp_panel» и нажимаем «Сохранить».
Переходим на вкладку «Адаптация» и нажимаем на кнопку «Загрузить файл частичной адаптации».
Если у вас этой кнопки не видно, предварительно нажимаем на стрелки выделенные красным.
Находим папку MyLisp, выделяем файл «mp_panel» и нажимаем «Открыть».
AutoCAD загрузит новый файл частичной адаптации MP_PANEL (mp_panel.cuix).
Создание новой панели инструментов.
Щелкаем правой кнопкой мыши на пункте «Панели» и левой на «Новая панель инструментов».
Переименовываем вновь созданную панель на “mp_panel“ и нажимаем «Применить».
В рабочем окне появится новая панель (если вдруг вы ее не видите, значит она у вас сейчас находиться под окном «Адаптация пользовательского интерфейса»).
Создание кнопки.
Щелкаем по кнопке «Создание новой команды» (выделена синим).
В списке команд появится «Команда1». Выделите ее.
Справа в поле «Имя» напишите «Куб». В поле «макросы» — «^C^C_mp_kub». Вверху в поле «Значок» выберите подходящий значок для кнопки и нажимаем изменить.
Откроется окно «Редактор кнопок». В редакторе кнопок ставим галочку в поле «Cетка». Немного изменяем изображение кнопки (Мы можем полностью с нуля нарисовать изображение кнопки, предварительно нажав на кнопку очистить). Нажимаем сохранить.
Присваиваем новое имя (я дал имя mp_kub) и нажимаем «ОК».
При переносе нашей панели на другие компьютеры нам понадобиться переносит и файлы изображений кнопок. Поэтому давайте сохраним изображение нашей кнопки в папке «MyLisp». Для этого нажимаем на кнопку «Экспорт…».
Находим папку «MyLisp», в поле «Имя файла» вводим «mp_kup» и нажимаем «Сохранить». Далее закрываем Редактор кнопок.
Спускаемся в самый низ изображения кнопок и щелкаем по вновь созданному изображению кнопки.
Теперь в верхнем левом окне находим «mp_panel». В нижнем левом команду «Куб». Нажимаем на команду «Куб» и не отпуская мыши тащим ее на «mp_panel» и только там отпускаем кнопку мыши.
Если получилось, это будет выглядеть так:
Нажимаем «Применить» и наша кнопка появится на панели.
Добавляем нашу панель в ленту.
Нажимаем на плюсик напротив строки с надписью «Лента». Плюсик превратится в минус, «Лента» раскроется. Далее указатель мыши ставим на «mp_panel», нажимаем левую кнопку мыши и не отпуская тащим ее на строку «Панели» (справа от надписи должен появится треугольничек), и только там отпускаем.
Появится сообщение, в котором нажимаем на кнопку «Да»
Под строкой «Панели» появится строка «mp_panel».
Далее щелкаем правой кнопкой мыши на строке «Вкладки», и левой на «Новая вкладка»
Под строкой «Вкладки» появится строка «Новая вкладка». Переименуем ее в «New».
Указатель мыши ставим на «mp_panel», нажимаем левую кнопку мыши и не отпуская тащим ее на строку «New» (пока не появится треугольничек), и только там отпускаем.
Под строкой «New» появится строка «mp_panel».
Затем щелкаем на стрелке выделенной зеленым и выбираем «Все файлы адаптации»
Выделяем «Рисование и аннотации» и щелкаем на кнопку «Адаптация рабочего пространства».
Далее щелкаем на плюсике возле «Файлы частичной адаптации», затем на плюсиках возле «MP_PANEL» и «Лента» и ставим галочку в квадратике напротив «Вкладки» (выделен красным)
Справа в поле «Содержимое рабочего пространства», в самом низу, появится строка «New (группа: MP_PANEL)». Нажимаем на кнопку «Готово». Далее на кнопки «Применить» и «ОК».
На главном меню появится новая вкладка «New». Щелкните по ней.
Поставьте указатель мышки на панель, нажмите левую кнопку мыши и не отпуская перетащите панель в более удобное место.
Теперь, чтобы запустить вашу программу, вам не нужно вводить ее имя в командной строке. Достаточно нажать на любую из этих кнопок.
Панель я оставил видимой, для тех пользователей, кто привык работать в режиме «Классический AutoCAD» (там нет ленты).
Если после нажатия на кнопку в командной строке у вас появилась надпись «Неизвестная команда»
Это значит, что наша программа «mp_kub» еще не загружена. Для этого запустим Редактор Visual Lisp. Открываем в нем свою программу и нажимаем на кнопку загрузить, выделенную зеленным.
Возвращаемся в Автокад, щелкаем по кнопке. Теперь она должна работать.
В ближайших уроках мы рассмотрим, как сделать так, чтобы программы автоматически загружались в Автокад и еще много чего интересного.
И так, в этой уроке мы научились:
Создать свой файл частичной адаптации;
Добавлять новые панели инструментов;
Создавать кнопки для новых команд;
Прописывать команды в кнопку;
Создавать новое изображение кнопки.
Размещать кнопку на панели.
Создавать новую вкладку на ленте и загружать в нее панель.
Пишите в комментариях: все ли у вас получилось?; трудно ли было выполнить этот урок?; где у вас возникли трудности? Я с удовольствием отвечу на ваши комментарии.
Если вы хотите получать новости с моего сайта. Оформляйте подписку.
До новых встреч.
«Автор: Михаил Орлов»
Также на эту тему Вы можете почитать:
AutoCAD
В этом уроке мы рассмотрим программу создания блока при помощи технологии ActiveX, расширения языка AutoLISP.
Объектная модель AutoCAD основана на концепции COM (Component Object Model) . Это спецификация метода создания компонентов, из которых строятся приложения. Система AutoCAD поддерживает технологию ActiveX Automation, которая реализует принципы объектно-ориентированного программирования. В этой технологии модель работающего приложения представляется совокупностью объектов, свойств, методов и событий. Для каждого из этих элементов имеется свой алгоритм реализации в виде операций и данных, которые обеспечивают взаимодействие с пользователем.
Создание блока при помощи функций технологии ActiveX.
Читать далее
В языке программирования LISP создать блок можно несколькими способами. Рассмотрим некоторые из них. Блок мы будем создадим из куба созданного в уроке: Простой пример программы на LISP.
Первый способ. Создание блока при помощи функции «command».
Читать далее
Если вы хорошо знаете стандартные команды Автокад, то написание программ на языке AutoLISP не составить для вас большого труда. Создание своих программ позволит вам одним нажатием выполнять серию стандартных команд Автокад, сократит время вашей работы, избавит от рутины и оставит больше время для творчества. В языке AutoLISP есть функция, которая имитирует командную строку. Это функция […]
Получил чертеж от заказчика, открыл, а в нем вместо текста набор не понятных значков. См. Рис. 1.
Рис 1. Текст отображается не правильно.
В моей практике это случается не редко. Поэтому решил написать об этом статью.
Что же делать в этой ситуации?
Читать далее
В этом уроке мы рассмотрим пример AutoLISP программы, которая будет считать сумму длин выбираемых отрезков.
Читать далее
Когда Вы начнёте писать свои программы, то неизбежно столкнетесь с необходимостью решения проблем, которые в программировании носят название отладка программы.
Давайте рассмотрим некоторые технические приемы, которые помогут нам при создании новых программ на языке AutoLISP. К таким приемам относятся:
- Проверка фрагментов кода в окне «КонсольVisual LISP».
- Отслеживание парных кавычек.
- Поиск парных скобок в процессе и после написания кода.
- Использование окна «Контрольное значение»
Читать далее
Давайте рассмотрим пример создания условий для более простого запуска LISP программ.
И так, в этом уроке:
Читать далее
В этом уроке мы рассмотрим, как из программы LISP управлять диалоговым окном.
В качестве примера мы будем использовать диалоговое окно созданное в предыдущем уроке: «Диалоговое окно».
В конце статьи смотрите видео к этому уроку.
И сразу начнем с программного кода, который управляет диалоговым окном.
См. Рис. 1.
Рис. 1. «Программный код управления диалоговым окном.»
Управление диалоговым окном из LISP программы происходит в несколько этапов:
Читать далее
Важным компонентом приложений в AutoCAD являются диалоговые окна. В них отображается полезная информация, пользователи в удобной форме вводят исходные данные, меняются настройки программы. Язык программирования LISP не имеет своих диалоговых окон. Поэтому приложения, написанные на языке LISP, использую для написания диалоговых окон язык DCL.
В этом уроке мы создадим диалоговое окно для программы, которую мы написали в предыдущем уроке. Напомню, что эта программа строит куб со сторонами 200. Давайте изменим эту программу так, чтобы она рисовала не куб, а параллелепипед, стороны которого (длина, ширина, высота) мы будем задавать при помощи диалогового окна см. Рис. 1.
Рис. 1. Диалоговое окно DCL
Читать далее