Полезные программы lisp для autocad a

Полезные программы lisp для autocad a thumbnail

RUBEZH
Портал проектировщика

LISP’ы – это микропрограммы, которые дополняют функционал Autocad и способствуют автоматизации рутинных операций.

Для использования LISP-программ требуется совершить их загрузку.

Как загрузить LISP?

Для этого необходимо проделать следующий порядок действий:

  1. Набрать в командной строке функцию appload
  2. Выбрать нужную программу
  3. Нажать кнопку «Загрузить»

Как почистить чертеж?

Довольно часто исходные данные для проекта весят неоправданно много, что, конечно, влияет на производительность Autocad и, в итоге, на нашу скорость работы.

Проведя анализ различных вариантов, был найден LISP с прозрачным названием cleandwg.lsp (Скачать CleanDWG (VLX, 0.01Mb)) Практика показывает, что он помогает в 99% случаев уменьшить вес вашего чертежа. Часто бывало что подложка от архитекторов весившая под 20 мб уменьшалась до размера менее 1 мб.

Порядок действий следующий:

  1. Загружаем LISP
  2. Вводим cleandwg в командной строке
  3. Выбираем параметры (обычно по умолчанию)

ссылка на источник

  • Скачать CleanDWG (VLX, 0.01Mb)

Как быстро привести подложку архитектуры в нужный цвет?

Правилом хорошего тона в проектировании является некое затенение подложки, относительно проектируемой системы. Синие санузлы в проекте пожарной сигнализации смотрятся совсем не эстетично, правда?

Полезные программы lisp для autocad a

Классический способ перевода не очень нужного в один цвет является выделение всего (ctrl+A) и назначение нужного цвета. Но увы, в большинстве случаев это не работает т.к. цвет содержимого блоков может быть назначен «по слою», «по блоку» или же просто напрямую. В последнем случае придется открывать каждый блок и изменять цвет вручную. Это рутинная операция от которой есть лекарство и называется оно bgltools.lsp (Скачать bgtools (LSP, 0.24Mb))

Порядок действий следующий

  1. Загружаем LISP
  2. Набираем в командной строке bgcolor
  3. Выбираем нужный цвет и немного ждем
  4. Получаем готовые к работе планы

ссылка на источник

  • Скачать bgtools (LSP, 0.24Mb)

Как посчитать сумму длин отрезков?

При прокладке кабеля в проекте используются функции «Отрезок» или «Полилиния», но что бы вы не применили, в любом случае, вам нужно будет знать сумму длин этих объектов для кабельного журнала и спецификации.

Вашему вниманию предлагается очень простой LISP, показывающий сумму длин выбранных отрезков. Алгоритм действий следующий:

  1. Загружаем программу
  2. Выбираем интересующие отрезки (например, функцией «выбрать подобные»)
  3. Набираем «elen» в командной строке и получаете сумму длин.

ссылка на источник 

  • Скачать AsmiTools_Elen (LSP, 0Mb)

Как быстро пронумеровать извещатели/оповещатели?

Адресация устройств в проекте является одним из самых трудозатратных и рутинных процессов при выполнении проекта. Рады представить вам универсальный инструмент нумерации любых элементов на чертеже – NumInc. Помимо стандартных функций нумерации он умеет строить массивы значений (актуально для таблиц), заменять существующий текст новым значением (используется, например, при нумерации листов проекта или замене скопированных адресов) и много чего ещё! Познакомиться с полным функционалом этого комбайна можно на сайте разработчика.

Минимальный алгоритм действий следующий

  1. Загружаем программу
  2. Вводим numinc
  3. Задаем Prefix, Middle и Suffix
  4. Выбираем инкремент
  5. Выбираем какая конкретно ячейка (Prefix, Middle или Suffix) будет увеличиваться на заданное значение при каждом клике мышью.
  6. Настраиваем параметры текста
  7. Кликаем ОК и нумеруем оборудование.

  • Скачать NumInc V3.9 (LSP, 0.29Mb)

Как автоматически создать листы?

Большинство проектировщиков работает в пространстве модели, но опытные проектировщики знают значительную пользу от работы с листами, например, пакетная печать проекта. Для автоматического создания листов из пространства модели отлично подходит LISP AddLay.

Порядок действий следующий

  1. Загружаем LISP
  2. Набираем в командной строке AL
  3. Выбираем рамку. AddLay запомнит слой в котором расположена рамка и будет воспринимать объекты данного слоя как границы.
  4. Выделяем все элементы для перевода в листы. Настраиваем параметры.

ссылка на источник

  • Скачать AddLay (LSP, 0.01Mb)

Как удобно работать с листами?

Удобным инструментом для редактирования названия и задания нужного нам порядка листов является LISP TabSort.

Порядок действий следующий

  1. Загружаем LISP
  2. Набираем в командной строке TABSORT
  3. Редактируем названия и порядок листов

ссылка на источник

  • Скачать TabSort (LSP, 0.07Mb)

Источник

Что такое ЛИСП для Автокада?

После освоения основных принципов работы в AutoCAD возникает необходимость избавиться от рутинных операций, которые, в зависимости от специфики выполняемых задач, могут занимать много времени. Для этого существует дополнительные приложения, написанные на языке программирования LISP. Отсюда и происходит название скриптов: лисп-приложения.

Если тема программирования далека от вас не стоит расставаться. Все основные LISP-приложения уже давно разработаны для Автокада. Все что вам остается сделать – это определиться, какие команды или функции будет вам полезны, после чего скачать само приложение и загрузить его в AutoCAD.

Программы Lisp для Автокада

LISP-приложение – это ничто иное как текстовый файл, который содержит подсказки от разработчиков, а также определенный код для выполнения команды. Файл имеет расширение *.lsp, а открыть его можно стандартным способом, кликнув дважды ЛКП по нему. Откроется «Блокнот».

Читайте также:  Реферат горючие полезные ископаемые в казахстане
ЛИСП для AutoCAD

Давай рассмотрим конкретный пример. Возьмем LISP, который позволяет выравнивать текст в Автокаде по вертикали или горизонтали относительно указанной точки. Скачать скрипт: Выравнивание текстов.lsp

Согласитесь, команда весьма полезная, однако по умолчанию такой инструмент не предусмотрен. Если перед вами стоит задача выровнять 5-10 текстовых строк в чертеже, то на это уйдет определенное время, а главное, вы будете повторять одни и те же действия несколько раз. А вот, как эти действия можно выполнить одной командой (в данном случае Z-TEXT-ALIGN).

Как видно, ЛИСП-программы для Автокада могут быть полезны на различных этапах выполнения проекта. Также следует учитывать специфику выполняемых работ. Так существуют лиспы для Автокада для геодезистов или проектировщиков, использование которых характерно для конкретной области.

Нет никакого смысла устанавливать все скрипты, которые вы найдете в интернете. Сначала ознакомьтесь, какую функцию они выполняют, а затем задайте себе вопрос «Можно ли это Lisp-приложение адаптировать к вашей работе?».

Как подгрузить Лисп в Автокад

Выше мы уже рассмотрели, что из себя представляет LISP-приложения для AutoCAD. Теперь давайте рассмотрим, как его внедрить в работу.

Для Автокада доступны приложения со следующим расширением файла: *.arx, *.crx, *.lsp, *.dvb, *.dbx, *.vlx, *.fas. Рассмотрим на примере ЛИСПа, который позволяет выравнивать текст относительно указанной точки по оси X или Y (скачать файл «Выравнивание текста .lsp»).

ПРИМЕЧАНИЕ:

Если вы скачиваете LISP-приложение, которое было запаковано в архив, обязательно разархивируйте его, чтобы сам файл перед загрузкой хранился на вашем компьютере.

Как установить файл *.lsp в Автокад?

  1. Перейдите во вкладку «Управление» и на панели «Приложения» выберите команду «Загрузить приложение». Можно воспользоваться командной строй в Автокаде и ввести «_appload».
  2. Откроется диалоговое окно «Загрузка/выгрузка приложений», через которое вам нужно найти подходящий файл с расширением *.lsp или др, которое было перечислено выше.

ПРИМЕЧАНИЕ:

Чтобы файл загружался каждый раз при запуске Автокада в разделе «Автозагрузка» также необходимо указать путь к этому скрипту (кнопка «Добавить»). В противном случае вы выполните одноразовую загрузку, которая не сохранится при закрытии программы.

ЛИСП для AutoCAD 4

3. После проделанных действий нажмите кнопку «Загрузить».

4. После того как внизу этого диалогового окна появиться сообщение об успешной загрузке, можно тестировать установленное приложение. Нажмите кнопку «Закрыть».

ЛИСП для AutoCAD 5

Как запустить команду приложения lisp?

В AutoCAD lisp команды посмотреть нельзя. Следует отталкиваться от исходного файла, который был загружен в программу.

Ранее мы говорили, что файл скрипта можно открыть через обычный «Блокнот». Как правило, в самом верху этого текстового документа разработчики оставляют всю необходимую информацию для работы, в том числе и название команды, которая будет запускать ЛИСП. В данном примере это «z-text-align», поэтому в командную строку нужно вводить именно такой запрос для вызова инструмента.

ЛИСП для AutoCAD 6

ПРИМЕЧАНИЕ:

Если автор не оставил подсказку с названием команды, то вы ее можете найти в коде. Она будет находиться в строчке «defun c: z-text-align», как показано на рис. 4.

Далее следуйте указаниям командной строки и пошагово выполняйте запросы установленного скрипта. Как правило, все достаточно интуитивно понятно.

Как подгрузить lisp в Автокад LT?

С вопросом: «Как установить лисп в Автокад» все понятно. Но, как его загрузить в схожие программы, например, Автокад Electrical/Mechanical?

К сожалению, приложения, написанные на AutoLISP, работают только на полной версии программы AutoCAD. Поэтому такие скрипты нельзя внедрить в AutoCAD LT или др. версии.

Исключением могут являться специализированные приложения типа LT Extender и подобные ему, которые были разработаны чтобы запускать файлы *.lsp или *.arx непосредственно в среде Автокад LT.

Как сделать кнопку в Автокад для LISP-приложения

Создание кнопки в Автокаде необходимо, когда вы используете сторонние приложения lisp и скрипты. Это связано с тем, что не всегда удобно обращаться к инструменту через командную строку, особенно если вы часто пользуетесь какой-то опцией.

1.Novaia-komanda

Ранее мы рассмотрели, что из себя представляют LISP-приложения для Автокада и как загружать дополнительные скрипты. Осталось узнать, как создать кнопку в Автокаде с новой командой и разместить ее на ленте для быстрого доступа.

Однако создание кнопки доп. скрипта имеет некоторые нюансы, которые мы сейчас разберем.

Создаем новые кнопки в Автокаде для запуска LISP

Чтобы добавить кнопку в Автокад для новой команды, которая была загружена в программу, нужно:

  1. Прописать путь к файлу, который содержит загружаемое приложение. Напомню, такие файлы могут иметь расширение *.arx, *.crx, *.lsp, *.dvb, *.dbx, *.vlx, *.fas.

Для этого вызовите диалоговое окно «Настройки» (можно через командную строку «_options»). Перейдите во вкладку «Файлы», выберете папку «Доверенные местоположения». Затем нажмите кнопку «Добавить». Появится дополнительное поле, в котором необходимо прописать путь. Далее нажмите «Обзор». Найдите на компьютере папку, в которой хранятся ваши файлы-lisp. После того как путь пропишется в этом диалоговом окне, нажмите ОK.

Читайте также:  Овес полезные свойства и противопоказания отзывы

ПРИМЕЧАНИЕ:

До 2013 версии Автокада папка «Доверенные местоположения» отсутствовала. Если у вас более ранняя версия программы — используйте папку «Путь доступа к вспомогательным файлам». При этом обязательно не забывайте нажать кнопку «Добавить», чтобы не сбить настройки AutoCAD по умолчанию. В противном случае вы можете случайно заменить доступ к системной папке, что повлечет последствия!

  1. Вызвать окно адаптации пользовательского интерфейса Автокад (можно через командную строку «_СUI»). Создать новую команду.
3. sozdanie_new_komandi

Задать ее название, а также макрос. Если с именем все понятно, то код макроса следует искать в самом файле приложения. Напомним, открыть его можно через обычный блокнот.

4. Macros

Далее выберите иконку для кнопки. Можно создать свою или отредактировать уже имеющуюся картинку.

  1. Заключительныйэтап создания новой кнопки для AutoCAD – это размещение ее в ленте программы. Для этого нужно воспользоваться поиском: найти вновь созданную кнопку после чего захватить ее левой кнопкой мыши и переместить в подходящую панель. В этом примере: ACAD → Лента → Панели → Главная 2D Рисование → Строка 3.

Как видите, добавить кнопку в Автокад для LISP-приложения не так уж и сложно. Поэтому если вы часто используете тот или иной скрипт – обязательно примите это к сведенью.

Источник

Вы нашли полезный для себя код на Лиспе и хотите его использовать. Можно выделить 3 шага:

  • сохранение программного кода на своем компьютере
  • загрузка файла
  • запуск приложения

Примечание: AutoLISP программы могут быть запущены только на полной версии Автокада, они не работают под AutoCAD LT. (исключая случаи загрузки дополнительных приложений типа LT Extender и ему подобных, которые специально разработаны для запуска lisp и (или) arx приложений в среде AutoCAD LT.)

Сохранение программного кода на своем компьютере

С помощью курсора выделяем этот код и копируем его в буфер обмена, нажав правую кнопку мыши и выбрав пункт Копировать (или Ctrl+C).
Запускаем «Блокнот» и вставляем наш код с помощью меню Правка >> Вставить (или Ctrl+V):

Код:

(defun C:OFF2 (/ d obj ent adoc *error* undo lays Flag)
(defun *error* (msg)(vla-EndUndoMark adoc))
(vl-load-com)(setq adoc (vla-get-activedocument (vlax-get-acad-object))
lays (vla-get-layers adoc))(vla-StartUndoMark adoc)(setvar «CMDECHO» 0)
(if (null *OFF2*)(setq *OFF2* (abs (getvar «OFFSETDIST»))))
(if (zerop *OFF2*)(setq *OFF2* 1))(setq d (getvar «UNDOCTL»))
(cond ((= d 0) (vl-cmdf «_.UNDO» «_All»))
((= d 3) (vl-cmdf «_.UNDO» «_Control» «_All»))
(t nil)) ;_ end of cond
(princ «n Величина смещения : «)
(initget 6)(if (null (setq d (getdist))) (setq d *OFF2*))
(setq *OFF2* d undo 0 Flag t)
(initget «Undo Отмени Г J Exit Выход У D _Undo Undo Undo Undo Exit Exit Exit Exit»)
(while Flag
(setq obj (entsel (strcat «n Выберите объект [»
(if (not (zerop undo)) «Отмени/» «»)
«Выход] : «)))
(cond ((= obj «Undo»)(if (not (zerop undo))(progn
(vl-cmdf «_UNDO» «_B»)(setq undo (1- undo)))(alert «Нечего больше отменять»)))
((= obj «Exit»)(setq Flag nil))
((null obj)(if (= (getvar «ERRNO») 52)(setq Flag nil)(princ » *** Мимо ***»)))
(t (setq ent (vlax-ename->vla-object (car obj)))
(cond ((= (vla-get-lock (vla-item lays (vla-get-layer ent))) :vlax-true)
(alert «На блокированном слое!»))
((vlax-method-applicable-p ent ‘Offset)(vl-cmdf «_UNDO» «_M»)(setq undo (1+ undo))
(vla-offset ent d)(vla-offset ent (- 0 d)))
(t (alert «Не удается создать объект, подобный данному»)))))
(initget «Undo Отмени Г J Exit Выход У D _Undo Undo Undo Undo Exit Exit Exit Exit»))
(vla-EndUndoMark adoc)(princ))
(princ «nНаберите в командной строке OFF2»))

После того как вставили код в блокнот, мы должны иметь что-то наподобие этого:

image001  

Теперь мы должны сохранить файл. Файл можно назвать, как вам нравится, но расширение у него должно быть .LSP. Правильнее (но не обязательно) будет назвать файл так же, как названа команда в найденном Вами коде. Команде всегда предшествует префикс C: после слова defun. В примере выше видно, что команду назвали OFF2, соответственно файл называем off2.lsp. Таким образом, мы можем избежать беспорядка, т.к. будем знать, что в файле off2.lsp находится команда OFF2.
Иногда в коде представлено несколько функций. Необходимо найти «главную». Такая функция либо имеет префикс С:, либо сам автор кода уточняет, что «использовать как «. В случае нескольких «главных» именование файла не может иметь никаких рекомендаций.

Загрузка lisp файла

Далее, запускаем Автокад и выбираем Сервис >> Автолисп >> Загрузить (Tools >> AutoLISP >> Load) или набираем в командной строке _appload.
 Мы должны увидеть диалоговое окно как представлено ниже:

image004

Используйте следующую последовательность, чтобы загрузить off2.lsp:

  1. Перейдите к папке, куда Вы сохранили lisp файл.
  2. Выберите файл, который Вы хотите загрузить из списка.
  3. Нажмите кнопку Загрузить.
    (Если все прошло удачно, Вы должны увидеть надпись «off2.lsp успешно загружено»)
  4. Нажмите кнопку Закрыть для завершения команды.

Команда или функция ?

Для начала необходимо определиться, что у нас: команда или функция?
Немного теории.
В описании практически любого кода есть такая строка, как

Читайте также:  Настойка прополиса полезные свойства как принимать

и потом после нее чего-то там написано. Так вот то, что там написано и есть имя функции.
Если первыми символами являются C:, то функция готова к вызову из командной строки. Если такого нет, то вызывать функцию надо, заключая ее имя в круглые скобки.
Например, есть функция

Ее вызывать (при условии, что она подгружена) с командной строки можно напрямую:

Команда : test

И будут выполнены действия
А вот такую:

Можно будет вызывать только так:

Команда : (test)

И будут выполнены действия .
С точки зрения AutoCAD’a это 2 разных модуля.

Запуск lisp программы

Как только lisp файл загружен, Вы можете вызвать команду из командной строки. Команда вызывается по ее имени. В нашем примере необходимо набрать в командной строке OFF2.
Запомните, имя команды содержит префикс C: после слова defun. Если Вы видите в коде:

то в командной строке необходимо набрать имя_команды> без префикса C:.

Tips: Вы можете также загрузить lisp файл путем перетаскивания (drag-and-drop) иконки файла в графическое окно открытого документа Автокада.

AutoCAD ; error: no function definition:

Если Ваша функция или команда не работает или завершает работу с сообщением как в примере ниже, то Вам может помочь простой способ.

Команда: (vlax-get-acad-object)
; error: no function definition: VLAX-GET-ACAD-OBJECT

Наберите в командной строке (vl-load-com) или (предпочтительнее) добавьте ее в начало lisp файла.

Теперь ваш lisp должен работать без ошибок.

Что такое это (vl-load-com) ?

Данная функция загружает большое количество функций, входящих в расширение AutoLisp, позволяющее работать с объектами, свойствами, методами и событиями ActiveX. Признаком необходимости загрузки расширения AutoLisp является наличие в тексте Вашей программы функций, начинающихся с префиксов vla- (например vla-get-activedocument), vlax- (например vlax-get-acad-object), vl- (например vl-catch-all-apply) и vlr- (например vlr-pers).
В любом случае никогда не помешает добавить (vl-load-com) в начало файла, чтобы избежать подобных ошибок.

Организация библиотеки лисп файлов.

Что делать, если набралось достаточное количество файлов? Каждый раз набирать _appload для загрузки того или иного приложения? Наиболее эффективным будет организация своей библиотеки. Для начала условимся, что все наши файлы будем складывать в одну папку. Например, D:MyLisp. Пропишем эту папку в путях доступа Автокада. Для этого выбираем Сервис >> Настройка (Tools >> Options) или набираем в командной строке _options. Переходим на закладку Файлы (Files) и раскрываем список Путь доступа к вспомогательным файлам (Support File Search Path).
 Мы должны увидеть диалоговое окно, как представлено ниже:

image005

Используйте следующую последовательность, чтобы прописать папку в путях доступа:

  1. Нажмите кнопку Добавить.
  2. Нажмите кнопку Обзор и выберите целевую папку (в нашем случае , D:MyLisp)
  3. Путь к папке должен появиться в диалоговом окне.
  4. Нажмите кнопку OK для завершения команды.

Теперь наша папка прописана в путях доступа Автокада. Что это нам дает? Мы можем загружать наши файлы не указывая конкретного пути, а только имя файла.
Мы можем набрать в командной строке (load «») для загрузки необходимого кода, например (load «off2»). Заметьте, что добавлять расширение .lsp не обязятельно, хотя и не запрещается.
И, наконец, самое главное — это позволит нам создать панели с кнопками для загрузки той или иной программы. Кнопка будет иметь следующее содержание:

^C^C(if (null C:)(load «»));;

^C^C(if (null C:OFF2)(load «off2»));OFF2;

Вместо текста мы должны будем подставлять имя нужной нам команды, а вместо текста имя того файла, в котором эта команда сохранена. Напоминаю, что файл должен иметь расширение .lsp. Более подробно по организации меню можно почитать еще здесь https://www.kulichki.com/cadhlp/pdmnu.htm

Автозагрузка файлов.

Если есть необходимость загружать свои lsp файлы при открытии чертежа, то нужно добавить необходимые файлы в список автозаргузки.
Запускаем Автокад и выбираем Сервис >> Автолисп >> Загрузить (Tools >> AutoLISP >> Load) или набираем в командной строке _appload.
В открывшемся диалоговом окне жмем на кнопку Приложения рядом с изображение портфеля

image006

В следующем диалоговом окне жмем на кнопку Добавить и указываем на необходимые файлы.

image007

Они должны появиться в списке приложений.
Теперь перечисленные файлы будут загружаться каждый раз при открытии рисунка.
Важно понимать, что (по крайней мере в полной версии AutoCAD) загрузка приложений, помещенных в Автозагрузку (Startup Suite), как правило, выполняется во все профили и сессии AutoCAD’a.
Кроме того, есть еще один момент. Если существует 2 или более файлов, в которых описаны функции с одинаковыми именами, выполняться будет та, которая загрузилась последней. Поскольку предсказать, в какой последовательности будет выполняться загрузка приложений, невозможно, подобных ситуаций следует избегать.

Автор статьи: Владимир Азарко aka VVA

Источник