AutoLISP для проектировщика
Погасить слои по маске
Слои команда: ПОГАСИcommand · getstring ~4 мин
Перед выпуском нужно скрыть все служебные слои — их пятнадцать, и каждый раз щёлкать их в диспетчере надоедает. LISP умеет просто «напечатать» за вас команды AutoCAD.
- command — «автопилот командной строки»: LISP вводит команды и ответы так, как вводили бы вы. Пустая строка "" — это Enter.
Код
(defun c:ПОГАСИ (/ m) (setq m (getstring "\nМаска слоёв (например СС_*): ")) (command "_.-LAYER" "_OFF" m "") (princ))
- command
- — выполнить команды AutoCAD «как с клавиатуры» — каждый аргумент по очереди уходит в командную строку
- "_.-LAYER"
- — командная версия работы со слоями: с дефисом — без диалога, с «_.» — в любой локализации (приём из урока про скрипты в модуле AutoCAD)
- "_OFF"
- — ответ «Отключить»; маска m — какие слои
- ""
- — пустая строка = Enter: завершить команду -LAYER
Попробуйте сами
На сцене — слои СС_СПС, СС_СОУЭ и АР_стены. Введите маску, которая гасит только сигнальные слои (обе группы СС), не трогая архитектуру.
(command "_.-LAYER" "_OFF" "" "")
маска слоёв
Условный результат
СС_СПС— отключён
СС_СОУЭ— отключён
АР_стены— отключён
Зачем в конце (command …) стоит пустая строка ""?
Как запустить у себя
- 1Скопируйте код кнопкой выше и сохраните в файл с расширением .lsp — в кодировке ANSI (Windows-1251), чтобы русский текст не превратился в «????».
- 2Загрузите файл: команда ЗАГПРИЛ (APPLOAD) или просто перетащите файл в окно чертежа.
- 3Введите в командной строке: ПОГАСИ
Пробуйте на копии чертежа. В AutoCAD LT работает начиная с LT 2024.
Если маска зацепит текущий слой, AutoCAD задаст уточняющий вопрос и собьёт автопилот — надёжнее переключиться на нейтральный слой (например, 0) перед гашением.