LISP Программы.

На этой странице будут выкладываться примеры LISP программ. По многим из них есть уроки с подробным  описанием кода.

Если Вы знаете как запускать  LISP программы в AutoCAD, то можете сразу перейти к списку программ. 

Как использовать программы.

Все программы написаны для использования их в полной версии программы AutoCAD. Они не будут работать в AutoCAD LT. 

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

1. Скачать программу на свой компьютер;

2. Все программы заархивированы. Поэтому после того, как вы скачали архив, его нужно разархивировать. Разархивировав архив, Вы получите файлы программы, которые можете хранить в любом месте на вашем компьютере (Я для этого использую папку D:\MyLisp);

3. Файлы программы нужно загрузить в AutoCAD;

4. Запускаем новые команды, которые хранятся в загруженных файлах.

Я думаю, что с первыми двумя пунктами справятся все. Поэтому сразу поговорим о загрузке LISP файлов в Автокад.

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

Загрузить в Автокад LISP программу можно несколькими способами. Опишу некоторые из них.

Загрузка файлов с помощью окна «Загрузка / Выгрузка приложений».

Откройте Автокад. На ленте перейдите на вкладку «Управление» и щелкните по кнопке «Приложение». См. Рис. 1.

LISP программы

Рис. 1 Кнопка «Приложение»

Если вы работаете в режиме Классический AutoCAD:

В главном меню выберите «Сервис», далее щелкните по строчке «Приложения…». См. Рис. 2.

LISP программы

Рис. 2. Строка «Приложение

Откроется окно «Загрузка / Выгрузка приложений».

Найти папку, в которой лежит файл, выделите его и нажмите на кнопку «Загрузить».  См. Рис. 3.

LISP программы

Рис. 3. «Загрузка / Выгрузка приложений»

Внизу окна появится сообщение о том, что выбранный файл загружен. Обратите внимания, что данным способом можно загружать не только LISP файлы (*.lsp), но и другие приложения поддерживаемые программой AutoCAD (*.arx; *.crx; *.dvd; *.dbx; *.vlx; *.fas).

Таким способом загружают программы для их временного использования. После того, как Вы закроете Автокад, а потом откроете его снова, их не будет в Автокаде, и для их использования их нужно загрузить снова.

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

LISP программы

Рис. 4. Автозагрузка

Откроется окно «Добавление файла в список автоматической автозагрузки». Находим нужную папку, выделяем файл и нажимаем на кнопку «Открыть». См. Рис. 5.

LISP программы

Рис. 5.  Добавление файла в список автоматической автозагрузки

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

После того, как Вы добавите все необходимые файлы, нажмите на кнопку «Закрыть». Затем на кнопку «Закрыть» в окне «Загрузка / Выгрузка приложений». См. Рис. 6.

LISP программы

Рис. 6. Файл добавлен

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

Загрузка файлов с помощью Редактора Visual  LISP.

Откройте Редактор Visual  LISP: 

Наберите в командной строке VLIDE (или VLISP) и нажмите <Enter>.

Или на ленте перейдите на вкладку «Управление» и нажмите  на кнопку «Редактор Visual  LISP». См. Рис. 7.

LISP программы

Рис. 7. Редактор Visual LISP

Откроется Редактор Visual  LISP. Нажмите на кнопку «Открыть файл». Появится окно «Открытие файла для редактирования / просмотра».

Найдите нужную папку;

Выделите файл и нажмите на кнопку «Открыть». См. Рис. 8.

LISP программы

Рис. 9. Открытие файла в Редакторе Visual LISP

Файл загрузится в активное окно редактора. Чтобы загрузить его в Автокад, нужно нажать на кнопку «Загрузить активное окно редактора».

Такой способ имеет свои плюсы, связанные с тем, что Вы видите программный код файла:

1. Вы можете посмотреть, сколько команд в этом LISP файле (их может быть несколько).

2. Найти имена этих команд: находим строку с функцией defun; Имя команды стоит сразу после с: (в нашем случаи это: 3d_tro и roY);

3. Кроме всего прочего Вы имеете возможность отредактировать код программы.

 См. Рис. 9.

LISP программы

Рис. 9. Имена новых команд.

Чтобы определить  границы команды в программном коде, поставьте курсор мыши перед открывающейся скобкой функции defun и дважды щелкните левой кнопкой мыши.  Функция defun, которая описывает одну команду – выделиться. См. Рис. 10.

LISP программы

Рис. 10. Программный код одной команды

Запуск новых команд.

После того, как файлы загружены, мы может запускать в Автокад новые команды, которые хранятся в этих файлах. Для этого достаточно набрать ИМЯ КОМАНДЫ в командной строке и нажать <Enter>.

Кроме этого для любой команды  можно создать кнопку.

Поместить ее на панель инструментов, а панель вынести на ленту.

После этого запускать команду, нажимая на эту кнопку.

Как это сделать читайте в уроках:  «Создание кнопки для программы LISP» и «Простой запуск LISP программ».

Также для этих команд можно создать горячие клавиши и запускать их нажатием определенных клавиш на клавиатуре.

Как это сделать читайте в уроке:  «Горячие клавиши Автокад».

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

Список LISP программ.

LISP программа «mp_kub.lsp»

Программа, которая рисует в Автокад куб со сторонами 200.

Для запуска в Автокад используется имя MP_KUB

После запуска выдает запрос: “Укажите базовую точку».

Указываем любую точку в рабочем окне Автокад. Команда построит  куб со сторонами 200.

Создание блока

Подробное описание программного кода смотрите в уроке: «Пример простой программы на LISP».

 Скачать программу Mp_kub.lsp Скачать программу Mp_kub.lsp (Размер файла: 449 bytes)

LISP программа «mp_paral.lsp»

Программа рисует параллелограмм, со сторонами указанными в диалоговом окне. Программа работает только вместе с файлом диалогового окна «mp_paral.dcl». Поэтому скачать надо два файла.

Чтобы Автокад определил местонахождение файла диалогового окна, его нужно поместить в папку вспомогательных файлов Автокад.

Как это сделать смотрите в уроке: «Пример программы LISP с диалоговым окном».

Либо в коде программы, в строке

(setq dcl_id (load_dialog «mp_paral.dcl»)) нужно указать полный путь к файлу диалогового окна.

Например, если файл находиться в папке «D:\MyLisp» строка должна выглядеть так:

(setq dcl_id (load_dialog «D:\\MyLisp\\mp_paral.dcl»)) 

Для запуска в Автокад используется имя MP_PARAL

После запуска на экране появится диалоговое окно.

Диалоговое окно

Диалоговое окно

Нужно указать размеры сторон параллелограмма и нажать на кнопку ОК.

Далее появится запрос: “Укажите базовую точку».

Указываем  любую точку в рабочем окне Автокад. Команда построит  параллелограмм  со сторонами указанными в диалоговом окне.

Параллелепипед

Параллелепипед

Подробное описание программного кода смотрите в уроке: «Пример программы LISP с диалоговым окном».

Подробное описание программного кода создания диалогового окна смотрите в уроке: «Диалоговое окно».

 Скачать диалоговое окно Mp_paral.dcl Скачать диалоговое окно Mp_paral.dcl (Размер файла: 392 bytes)

 Скачать программу Mp_paral.lsp Скачать программу Mp_paral.lsp (Размер файла: 781 bytes)

 

LISP программа «Sum_dl.lsp»

Программа считает сумму длин выбираемых отрезков. В процессе выбора отрезков Автокад выдает количество выбранных отрезков и сумму их длины.

Для запуска в Автокад используется имя SumDl

После запуска выдает запрос: «Выберите отрезок»:

Укажите любой отрезок.

Он выделится. В командной строке появиться сообщение, что выбран один отрезок  и его длина.

Ниже снова появиться запрос: «Выберите отрезок»:

Укажите следующий отрезок.

Он выделится. В командной строке появиться сообщение о количестве выбранных отрезков и их общей длины.

Ниже снова появиться запрос: «Выберите отрезок»:

Пример AutoLISP

Количество выбранных отрезков и их общая длина.

И так до бесконечности. Чтобы завершить выполнения программы нажмите клавишу  <Esc>.

Подробное описание программного кода смотрите в уроке: «Пример AutoLISP программы: Сумма длин отрезков».

 Скачать программу Sum_dl.lsp Скачать программу Sum_dl.lsp (Размер файла: 464 bytes)

 

LISP программа «Sum_dls.lsp»

Программа суммы длин со свободным выбором отрезков.

Программа считает сумму длин выбираемых отрезков.

Выбор отрезков можно делать и по одному и группой при помощи рамки (или при помощи секущей рамки). В общем, любым стандартным способом  AutoCAD.

Для запуска в Автокад используется имя:  SumDls

После запуска программа  выдает запрос: «Выберите объекты»:

Выбирать  отрезки можно любым стандартным способом Автокад. Если случайно выбран не тот отрезок, его выбор можно отменить.  Для этого удерживая клавишу <Shift>, щелкните по нему. Этот отрезок будет исключен из выбора.  

Процесс выбора и отмены выбора отрезков отражается в командной строке.

AutoCAD Lisp

Отмена выбора объекта.

После того как вы выбрали все необходимые объекты, нажмите <Enter>, чтобы завершить выбор.

В командной строке появиться сообщение о количестве выбранных отрезков и их общей длины.

AutoCAD Lisp

Результат выполнения программы.

Подробное описание программного кода смотрите в уроке: «Примеры LISP программ: Сумма длин отрезков».

 Скачать программу Sum_dls.lsp Скачать программу Sum_dls.lsp (Размер файла: 487 bytes)

 

LISP программа «Sum_dlv.lsp»

Программа считает сумму длин отрезков на всем чертеже.

Для запуска в Автокад используется имя:  SumDlv

После запуска программа  выделить на чертеже все отрезки

В командной строке появиться сообщение о количестве отрезков на все чертеже и их общей длины.

AutoCAD Lisp

Результат выполнения программы.

Подробное описание программного кода смотрите в уроке: «Примеры LISP программ: Сумма длин отрезков».

 Скачать программу Sum_dlv.lsp Скачать программу Sum_dlv.lsp (Размер файла: 440 bytes)

 

LISP программа «Sum_sl.lsp»

Программа считает сумму длин отрезков на выбранном слое.

Для запуска в Автокад используется имя:  SumSl

После запуска программа  выдает запрос: «Выберите объект для определения слоя:

Укажите любой объект. Программа выделит и сосчитает длину все отрезков на слое, на котором расположен указанный объект.

В командной строке появиться сообщение о количестве отрезков на данном слое и их общей длины.

AutoCAD Lisp

Результат при выборе синего слоя.

Подробное описание программного кода смотрите в уроке: «Примеры LISP программ: Сумма длин отрезков».

 Скачать программу Sum_sl.lsp Скачать программу Sum_sl.lsp (Размер файла: 563 bytes)

 

LISP программа «Scom.lsp»

Программа показывает, как в программном коде AutoLISP можно использовать стандартные команды Автокад.

Приведен пример:

  • Построения отрезка.
  • Построения дуги.
  • Использования команды редактирования: Зеркало
  • Перевода чертежа ЮЗ изометрию.
  • Построения Полуконуса.

Для запуска в Автокад используется имя: SCOM

После запуска программа выдает запрос: “Укажите базовую точку».

Указываем любую точку в рабочем окне Автокад. Команда построит  два отрезка и дугу. Затем отзеркалит их. Потом переведет чертеж ЮЗ изометрию и построит Полуконус.

Команды Автокад

Подробное описание программного кода смотрите в уроке: «AutoLISP. Стандартные команды Автокад».

 Скачать программу Scom.lsp Скачать программу Scom.lsp (Размер файла: 535 bytes)

 

LISP программа «mp_kub2.lsp»

Программа создает блок куба, стороны которого предварительно задаются.

Для запуска в Автокад используется имя MP_KUB2

После запуска выдает запрос:  «Задайте длину стороны куба :»

Введите числовое значение стороны куба и нажмите <Enter>

Появиться запрос: “Укажите базовую точку».

Указываем любую точку в рабочем окне Автокад. Команда построит блок в виде куба со сторонами, значение которых мы задали при первом запросе.

AutoLISP. Создание блока.

Блок куба.

Подробное описание программного кода смотрите в уроке: «AutoLISP. Создание блока».

 Скачать программу Mp_kub2.lsp Скачать программу Mp_kub2.lsp (Размер файла: 802 bytes)

 

LISP программа «mp_kub3.lsp»

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

Для запуска в Автокад используется имя: MP_KUB3

После запуска программа выдает запрос:  «Задайте длину стороны куба :»

Введите числовое значение стороны куба и нажмите <Enter>

Появиться запрос: “Укажите базовую точку».

Указываем любую точку в рабочем окне Автокад. Команда построит  блок в виде куба со сторонами, значение которых мы задали при первом запросе. Так же программа сосчитает объем, и координаты центра верхней грани и сохранить их в блоке в качестве дополнительных данных.

AutoLISP. Создание блока.

Блок куба.

Подробное описание программного кода смотрите в уроке: «LISP. Создание блока».

 Скачать программу Mp_kub3.lsp Скачать программу Mp_kub3.lsp (Размер файла: 993 bytes)

 

LISP программа «Udim.lsp»

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

Для того, чтобы посмотреть как работает программа предварительно нужно:

  • Скачать программу «mp_kub3.lsp», и создать при помощи ее блок (или несколько блоков).
  • Скачать динамический блок «Vyn.dwg».
  • Поместить «Vyn.dwg» в папку вспомогательных файлов Автокад.

Как это сделать смотрите в уроке: «Пример программы LISP с диалоговым окном» (или в программе lsp вместо имени файла «Vyn» нужно будет указать полный путь к нему. Например: если файл лежит в папке «D:\MyLisp» нужно поставить  «D:\\MyLisp\\ Vyn.dwg «)

Для запуска в Автокад используется имя: UDIM

После запуска программа выдает запрос:  «Выберите блок

Укажите предварительно построенный блок (созданный программой mp_kub3.lsp).

Команда вставит выноску. Выноска будет начинаться из центра верхней грани. Сверху полки будет стоять имя указанного блока, снизу – его объем.

Далее программа снова выдает запрос:  «Выберите блок:»

Укажите следующий блок.

LISP. Динамический блок.

Выноски.

Что завершит программу нажмите <Esc>.

Подробное описание программного кода смотрите в уроке: «Вставка динамического блока из LISP-программы».

 Скачать программу Mp_kub3.lsp Скачать программу Mp_kub3.lsp (Размер файла: 993 bytes)

 Скачать динамический блок Скачать динамический блок (Размер файла: 30 kB)

 Скачать программу Udim.lsp Скачать программу Udim.lsp (Размер файла: 538 bytes)

LISP программа «Udim2.lsp»

Программа считывает дополнительные данные из блока, созданного в уроке: «LISP. Создание блока». Вставляет динамический блок, созданный  в уроке: «Создание динамического блока». Меняет длину и положение выносной линии и длину и положение полки.

Для того, чтобы посмотреть как работает программа предварительно нужно:

  • Скачать программу «mp_kub3.lsp», и создать при помощи ее блок (или несколько блоков).
  • Скачать динамический блок «Vyn.dwg».
  • Поместить «Vyn.dwg» в папку вспомогательных файлов Автокад.

Как это сделать смотрите в уроке: «Пример программы LISP с диалоговым окном» (или в программе lsp вместо имени файла «Vyn» нужно будет указать полный путь к нему. Например: если файл лежит в папке «D:\MyLisp» нужно поставить  «D:\\MyLisp\\ Vyn.dwg «)

Для запуска в Автокад используется имя: UDIM2

После запуска программа выдает запрос:  «Выберите блок:»

Укажите предварительно построенный блок (созданный программой mp_kub3.lsp).

Появится начало выносной линии

Далее программа выдает запрос:  «Укажите выносную линию: »

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

Затем программа снова выдает запрос:  «Выберите блок:»

Снова укажите блок куба.

На запрос «Укажите выносную линию:»

Укажите вторую точку линии в другом месте.

На следующий запрос «Выберите блок :» – нажмите <Esc>.

Динамический блок.

Программа нарисует две выноски к одному блоку.

Подробное описание программного кода смотрите в уроке: «Изменение динамического блока из LISP-программы».

 Скачать программу Mp_kub3.lsp Скачать программу Mp_kub3.lsp (Размер файла: 993 bytes)

 Скачать динамический блок Скачать динамический блок (Размер файла: 30 kB)

 Скачать программу Udim2.lsp Скачать программу Udim2.lsp (Размер файла: 856 bytes)

 

LISP программа «3d_tro.lsp»

Программа содержит в себе две команды

Первая команда рисует в Автокад 3D тройник.

Для запуска в Автокад используется имя: 3D_TRO

После запуска выдает запрос: “Укажите базовую точку».

Указываем любую точку в рабочем окне Автокад. Команда построит  3D тройник.

3D моделирование в AutoCAD

Выделенный тройник.

Вторая  команда поворачивает 3D тройник на 90 градусов вокруг оси параллельной оси Y.

Для запуска в Автокад используется имя: ROY

Предварительно выделите 3D тройник

Введите в командной строке ROY и нажмите <Enter>.

Тройник повернется.

3D моделирование в AutoCAD

Повернутый 3D тройник.

Подробное описание программного кода смотрите в уроке: «3D моделирование в AutoCAD».

 Скачать программу 3d_tro.lsp Скачать программу 3d_tro.lsp (Размер файла: 927 bytes)

LISP программа « 3d_bolt.lsp»

Программа рисует в Автокад 3D болт.

Для запуска в Автокад используется имя:  3D_BOLT

После запуска выдает запрос: “Укажите базовую точку».

Указываем любую точку в рабочем окне Автокад. Команда построит  3D болт.

3D моделирование

3D Болт

Подробное описание программного кода смотрите в уроке: «3D моделирование. Болт с резьбой.».

 Скачать программу 3d_bolt.lsp Скачать программу 3d_bolt.lsp (Размер файла: 1.02 kB)

38 комментарии на “LISP Программы.

  1. daiman444 28.10.2016 11:04

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

  2. Роман 17.01.2017 07:06

    Здравствуйте! Как можно посчитать суммарно объемы всех выделенных тел? Выборка сделана через быстрый выбор по цвету.
    И где можно взять информацию по аргументам функций автокада, например как забрать через Лисп аргумент объем из «Измеритьгеом». Хотя бы методологию поиска, можно?
    Спасибо!

    • Михаил Орлов 19.01.2017 08:47

      Неважно каким образом Вы выделите 3Д-тела. После того как они выделены, запускаем функцию (ssget). Получаем набор выделенных 3Д-тел. Сохраняем его в переменную set_obj

      (setq set_obj (ssget))

      Загружаем функции расширения LISP

      (vl-load-com)

      Организуем цикл, в котором перебираем по порядку все выбранные 3Д-тела.
      Внутри цикла:
      Переводим 3Д-тела в vla-объекты:

      (setq vla_obj (vlax-ename->vla-object name_obj))

      Извлекаем объем тела:

      (setq V_obj (vla-get-Volume vla_obj))

      Суммируем объемы:

      (setq Sum_V_obj (+ Sum_V_obj V_obj ))
  3. Роман 23.01.2017 20:55

    Ох! Огромное спасибо! Буду пробовать.

  4. Роман 03.02.2017 10:30

    Все получилось! Теперь знаю длины всех труб каждого диаметра! Еще раз спасибо!

    Но подскажите, это нормально, что функция «princ» сначала выводит строки результатов, каждый с новой строки, а в самом низу еще раз, но все результаты в одной строке с символами «\n» между ними?

    • Михаил Орлов 03.02.2017 12:31

      В конце программа выкидывает в командную строку значение последней переменной. Что бы этого не происходило, в конце нужно добавить еще строку:
      (princ)
      Это действие называется — «Тихий выход»

  5. Андрей 28.03.2017 16:32

    Добрый вечер. У меня такая проблема: есть одно приложение, которое загружается в автокад, но не работает. Очень давно я уже сталкивался с этой проблемой и решением ее было в реестре автокада изменить с «0» на «1» для подгрузки и наоборот. Но беда, что не помню где это находится. Не подскажите пожалуйста где?

    • Михаил Орлов 29.03.2017 10:46

      Пришлите программу на acadprog@gmail.com. Если можно будет добраться до кода, я посмотрю что требуется для ее запуска.

  6. Прокопий 02.04.2017 07:59

    Добрый день, у меня такой вопрос как подсчитать объемы траншеи в автокаде, если приложения какие либо?

    • Михаил Орлов 27.04.2017 11:22

      Мне приложения для расчета траншеи не известны. Но если знать принцип расчета, программу можно написать самому.

  7. Виталий 03.06.2017 20:59

    Добрый день! Существуют приложения или команда в автокад которая преобразуют, линии, полилинии,отрезки,сплайны в дуги с точностью 0,1 мм, т.е граница линии после преобразования практически или не меняется, при этом можно задать количиство-размер дуги на определённую длину?

    • Михаил Орлов 05.06.2017 10:40

      Мне такие программы или команды не известны.

  8. Роман 05.09.2017 06:25

    Огромное спасибо за статью, вы прям вселили в меня надежды. Подскажите а возможно ли вывести список 3д объектов с их габаритами?

    • Михаил Орлов 21.09.2017 15:29

      Список 3д объектов — можно. Габариты сложных 3д объектов не так просто определить.

  9. Фанус 29.10.2017 16:23

    Здравствуйте. Помогите пожалуйста решить проблему. Имеется набор точек (100 шт) из них от каждого надо провести линию до определенной другой точки. Есть ли какой то способ или лисп, чтобы сделать это быстро?

    • Михаил Орлов 02.11.2017 11:11

      Да, это можно сделать при помощи LISP-программы

  10. Мигран 29.11.2017 20:34

    Здравствуйте подскажите пожалуйста как при создание dxf-кода размера текст разместить не над линией а под ней в текущем стиле черчения. Очень сложно
    Спасибо вам огромное.

  11. Александр 27.01.2018 05:49

    Здравствуйте. Объясните, пожалуйста, существует ли в природе возможность изменения вида значков команд: раньше работал в автокаде 2007, теперь в 2014. Например значки команд «дизайнцентр» и «быстрый калькулятор» довольно невзрачные по сравнению с 2007.

  12. Алексей 11.02.2018 20:36

    Здравствуйте. возможно ли связать содержимое мультивыносок с содержимым из excel?

    • Михаил Орлов 14.04.2018 15:09

      Да. Но это сделать не просто.

  13. Алексей 10.04.2018 08:01

    У меня AutoCad 2006, там нет команды пружина (helix). Что Вы можете мне предложить?

    • Михаил Орлов 14.04.2018 14:28

      Точной замены этой команды не существует, но в зависимости от того, что должно получиться в результате. Я думаю можно найти другие пути решения

  14. Алексей 16.04.2018 15:39

    Я использую AutoCad 2006 для создания моделей 3D-печати. Как сделать резьбу в моих деталях?

  15. Евгений 22.08.2018 13:10

    У меня AutoCad 2018 LT. В строке меню «Сервис» есть, но в нём нет «Приложения». Как добавить эту команду?

    • Михаил Орлов 11.03.2020 09:17

      В AutoCad LT Lisp-программы не работают.

  16. Маринка 21.05.2019 06:19

    Здравствуйте, можно ли чертить призму (для расчета объемов котлованов)?

    • Михаил Орлов 01.07.2019 20:51

      Да, конечно можно.

  17. Мигран 23.03.2020 17:04

    (defun c:31ФАКТ (/ obj p_t prm ugl)

    (while (= 3 3)

    (setq h «м2» ) ; как сделать что бы 2 была наверху м

    (setq q1 (entget (car (entsel))))

    ( setq t (cons 1 h ) )

    (setq q1 (subst t (assoc 1 q1) q1 ))

    (entmod q1 )

    )

    )

    • Мигран 27.03.2020 09:23

      Нашел подсказали
      «\\A1;текст{\\H0.7x;\\Sстепень^;}»

      (vlax-dump-object (vlax-ename->vla-object (car (entsel)))) ; чтобы посмотреть свойства vla-объект

  18. Александр 29.03.2020 12:46

    СПАСИБО! СПАСИБО!! ОГРОМНОЕ СПАСИБО!!!

  19. Евгений 30.08.2020 08:36

    День добрый, подскажите как выгрузить неправильно работающий .lsp файл? в списке он неактивен, повторная загрузка не помогает правильной работе

    • Михаил Орлов 19.05.2021 14:21

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

  20. Александр 18.01.2021 23:41

    Есть ли у вас видеоурок как добавить текст на чертежь?

    • Михаил Орлов 10.02.2021 14:29

      (command "_.text" "_none" pt 200 0 "myText")
      pt — координаты точки вставки текста;
      200 — высота текста;
      0 — угол поворота текста;
      «myText» — ваш текст.

  21. Ира 25.04.2021 07:23

    Уважаемый Михаил. Очень благодарна вам за такой сайт! Всегда спасает.
    Но сейчас столкнулась с трудностями. Не могли бы вы подсказать что-то для решения моей задачи?

    Дано:
    Папка с файлом Text.dxf, в котором внутри содержится прямоугольник с текстом: Text.

    Требуется: получить в этой же папке набор файлов от 300×300.dxf до 3000×3000.dxf с шагом 50, с соответствующим текстом внутри, то есть:

    300×300.dxf (с текстом внутри: 300×300) и т.д.
    350×300.dxf
    400×300.dxf
    450×300.dxf

    2900×3000.dxf
    2950×3000.dxf
    3000×3000.dxf

    Алгоритм работы макроса LISP я вижу примерно так:

    1. Открыть файл Text.dxf
    2. Найти и заменить текст Text на 300×300.
    3. Сохранить файл как 300×300.dxf
    4. Начать сначала.
    Понятно, что шаги выше нужно выполнять в цикле (For скорее всего) с шагом 50.
    Можно реализовать все без шаблона, но тогда придется создавать файл с прямоугольником и нужним мне текстом с шрифтом/виравниванием — для меня такой вариант еще труднее.

    Поскольку я новичок в изучении lisp, то буду очень благодарна если бы вы подсказать, как должен выглядеть данный lisp макрос, чтобы реализовать данную задачу?

    • Михаил Орлов 19.05.2021 14:07


      (vl-load-com)
      (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))

      (setq w 300)
      (setq h 250)

      (setq set_txt (ssget "_x" (list '(0 . "text"))))
      (setq ent_txt (ssname set_txt 0))
      (setq vla_txt (vlax-ename->vla-object ent_txt))

      (while (< w 3000) (setq w (+ w 3000)) (while (< h 500) (setq h (+ h 50)) (if (>= w h)
      (progn
      (setq txt (strcat (itoa w) "x" (itoa h)))
      (vla-put-TextString vla_txt txt)

      (setq file_name (strcat(getvar "dwgprefix") txt ".dxf"))
      (vla-SaveAs thisdrawing file_name acR15_DXF)
      ); end progn
      ); end if

      ); end while
      (setq h 250)
      ); end while

Оставить комментарий

Ваш mail не будет опубликован.

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>