Как добавить перенумератор в автокад lsp

Обновлено: 07.07.2024

Автор:

Проблема

Необходимо узнать, как обеспечить автоматическую загрузку процедур AutoLISP при запуске AutoCAD. Каждый раз при запуске программы файлы приходится повторно загружать вручную.

Решение

Чтобы процедуры AutoLISP загружались автоматически, добавьте их в список автозагрузки AutoCAD или используйте файл acad.lsp.

Добавление в список автозагрузки

Загрузка с помощью команды НПИ

  1. Запустите команду НПИ.
  2. Выберите файл acad.cuix (или файл частичной адаптации CUIX).
  3. Выберите файлы LISP и щелкните правой кнопкой мыши.
  4. В контекстном меню выберите Загрузка LISP.
  5. Перейдите к папке LISP, чтобы выбрать и добавить файл.
  6. Нажмите кнопки «Применить» и «Закрыть» для выхода из редактора АПИ.

Используйте файл acad.lsp.

Файл acad.lsp будет всегда загружаться при запуске AutoCAD. Если в файле acad.lsp определена специальная функция S::STARTUP, то она будет также исполняться.

Например, каждый раз при запуске AutoCAD необходимо загружать две процедуры AutoLISP с названиями stair.lsp и wall.lsp. Создайте файл acad.lsp, в котором содержатся следующие строки кода, и поместите его в пути к вспомогательным файлам AutoCAD.

(defun s::startup ()
(load "STAIR.LSP")
(load "WALL.LSP")
)

Если файлы wall.lsp и stair.lsp указаны в пути поиска AutoCAD, то они будут загружаться автоматически. Если процедур AutoLISP нет в путях к вспомогательным файлам AutoCAD, добавьте полный путь в файл acad.lsp. В качестве разделителей путей используйте символы «/» или «\\». В данном примере файл acad.lsp будет выглядеть следующим образом:

(defun s::startup ()
(load "C:/PROG/LISP/STAIR.LSP")
(load "C:\\PROG\\LISP\\WALL.LSP")
)

Если функция S::STARTUP определена таким образом, то могут возникать проблемы при использовании других приложений, которые также задействуют функцию S::STARTUP (например, стороннего подключаемого модуля). Чтобы обеспечить совместимость, вставьте код на случай наличия функции S::STARTUP. Для этого добавьте следующий код:

Последний раз редактировалось shartal, 15.11.2011 в 15:41 .

это на каком-то другом форуме не работает, а на этом все работает как надо

__________________
Как использовать код на Лиспе читаем здесь

В AsmiTools_Renum не получается обнулить ранее введенное значение суффикса или префикса. Нажатие пробела, как указано в описании не помогает. Системную переменную CMDECHO менял - безрезультатно.
В чем может быть дело?
Поправка: при вводе пробела в командной строке значение обнуляется, при вводе в окошке динамического ввода - нет.

Последний раз редактировалось Garand, 02.04.2013 в 15:21 .

Допилил в AsmiTools_Renum возможность изменять инкремент:

А кто-нибудь знает как отключить игнорирование пробелов в окне динамического ввода?

__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Хелп ми.
Помогите разрешить наболевшее. Мы рисуем выноски. Очень конкретные. Линия, на конце блок из круга и номера внутри. Все. Чертеж состоит из набора деталей, мы их помечаем каждую. Эти выноски можно «тягать» за центр круга, что собственно нам и нужно. Таких выносок бывает на чертеже до 100 шт. Но! В какой-то момент (прозевал детальку) возникает необходимость изменить числа в кружке. Очень хотелось бы автоматизировать вот это изменение значений в блоке в выноске. Выбрать сколько-то выносок, и всем числам прибавить какое-то значение. Например, выбрали выноски 3, 4, 5 и превратили их в 6, 7, 8 Может, есть уже что-то готовое или кто может помочь? Спасибо.
Да, AutoCAD 2010.

А на чем затык? Где свой код?
А если "вообще не хочу программировать самостоятельно" - то это в раздел "Поиск исполнителей"

__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Offtop: у вас жесткое разделение труда - одни рисуют детали, другие выноски к ним?
прощелкать заново нумератором 100 выносок на чертеже - 2..3 минуты

Offtop: у вас жесткое разделение труда - одни рисуют детали, другие выноски к ним?

Offtop: Сергей812, смех-смехом, а я такое частенько встречал: умный инженер выдает проектное решение за пару минут со словами: "Я все сделал, осталось только оформить", - а потом не такие умные или не такие уж и инженеры тратят не один день на оформление - и не то, чтобы они медленно работали.
Olga_выноски, была на форуме тема "Увеличение отметок на определенную величину". Там Кулик Алексей aka kpblc предложил код, который по-моему, должен подойти с небольшими доработками. Он кажется, для текстов, но под выноски доработать несложно. Найдите поиском эту тему, проверьте код (только с текстами), и, если почти то, сообщите тут - может, кто-нибудь подправит.

Например, выбрали выноски 3, 4, 5 и превратили их в 6, 7, 8 Может, есть уже что-то готовое или кто может помочь?

__________________
Как использовать код на Лиспе читаем здесь

Offtop: у вас жесткое разделение труда - одни рисуют детали, другие выноски к ним?
прощелкать заново нумератором 100 выносок на чертеже - 2..3 минуты

100 х на 3 вида х на несколько чертежей в день ))) да, в общем-то и недолго, но и так работа рутинная, хотелось бы изменить.
Я написала небольшую программку (вернее взяла на форуме готовую и подкорректировала под свою задачу), которая увеличивает номер в выноске на 1. (файл прилагаю). Хотелось бы еще и корректировку.
Перелопатила много готовых лиспов для работы с числами, перенумераторы. Но у нас аннотативная мультивыноска, с ней "никто не дружит".
Я уже пробовала создавать динамический блок - линия, кружок на конце и цифра внутри, но линия должна доходить до центра окружности, и остается видимой внутри круга.
Короче, может быть решение где-то совсем рядом, но мне не встречается (((
Моя программка очень короткая, но свою узкую задачу она решает

Offtop: Сергей812, смех-смехом, а я такое частенько встречал: умный инженер выдает проектное решение за пару минут со словами: "Я все сделал, осталось только оформить", - а потом не такие умные или не такие уж и инженеры тратят не один день на оформление - и не то, чтобы они медленно работали.
Olga_выноски, была на форуме тема "Увеличение отметок на определенную величину". Там Кулик Алексей aka kpblc предложил код, который по-моему, должен подойти с небольшими доработками. Он кажется, для текстов, но под выноски доработать несложно. Найдите поиском эту тему, проверьте код (только с текстами), и, если почти то, сообщите тут - может, кто-нибудь подправит.

Я прежде всего поискала по форумам, эту программу проверяла самой первой )). Не работает она с нашей мультивыноской с блоком.
Может как-то по-другому наши выноски рисовать, попроще?

А на чем затык? Где свой код?
А если "вообще не хочу программировать самостоятельно" - то это в раздел "Поиск исполнителей"

Да, уточняю свой вопрос. Прилагаю наш чертеж. И программку, которая вставляет мультивыноски с номерами, возрастающими на 1 (программка конечно очень урезанная, но свою задачу выполняет).
Имею большое желание изменять числа в мультивыносках.
А может быть есть возможность простановки и редактирования наших выносок и не средствами мультивыноски, а как-то иначе.
Вы дольше общаетесь на форуме, м.б. что-нить подскажете.
Буду благодарна любой помощи

alt

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

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

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

1. Перейдите во вкладку «Управление». На панели «Приложения» выберите команду «Загрузить приложение». Воспользуйтесь командной строй в Автокаде и введите «_appload».

2. Откроется диалоговое окно «Загрузка/выгрузка приложений». Найдите подходящий файл с расширением *.lsp или др.

Рис.2 – Автозагрузка приложения для Автокада

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

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

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

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

Рис. 4 – Название команды, которая запускает LISP в Автокаде

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

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

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

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

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

alt

Если вы используете сторонние приложения lisp и скрипты, то стоит задуматься о создании кнопки в AutoCAD. Не всегда удобно обращаться к инструменту через командную строку. Если вы часто пользуетесь каким-то инструментом, то лучше его вынести в виде кнопки. Это ускорит работу в программе.

Рис. 1 – Новая команда AutoCAD

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

Создание кнопки доп. скрипта имеет некоторые нюансы. Разберём их на примере.

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

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

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

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

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

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

Рис. 3 – Создание новой команды AutoCAD

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

Рис. 4 – Макрос для команды LISP можно найти в исходном файле *.lsp

Выберите иконку для кнопки. Можно создать новую или отредактировать уже имеющуюся картинку. Подробнее - в видеоуроке «Создание макрос в AutoCAD».

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

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

Читайте также: