Проверка чертежа СПЗ
Линтер чертежа одной командой: двойные вставки блоков, датчики без адреса, пустые атрибуты, объекты на слое 0 и слои вне стандарта — LSP-команда с маркерами находок и листанием с зумом.
Линтер чертежа СПЗ: одна LSP-команда прогоняет включённые проверки по модели и печатает отчёт, а находки обводит кружками на отдельном слое — как проверка кода у программистов, только для плана сигнализации. Повторный запуск смывает старые маркеры и пересчитывает отчёт, после отчёта находки листаются с зумом по Enter.
Правила настраиваются в форме и попадают в скрипт только включённые. Самое ценное — двойные вставки блоков: случайный копипаст датчика в ту же точку на печати не виден, но завышает спецификацию, ёмкость АКБ и число адресов; команда ловит такие пары по эффективному имени (динамические блоки не обманут) и совпадению точек с допуском. Блоки без адреса ищутся по маске имён: адресом считается заполненный атрибут с заданным тегом или подпись формата «префикс + число + суффикс» рядом — формат тот же, что в инструменте нумерации. Для организаций с атрибутным стандартом есть проверка обязательных атрибутов (различает «атрибута нет» и «атрибут пуст»), для стандарта слоёв — белый список масок; объекты на слое 0 отмечаются всегда, если правило включено.
Проверяется только то, что честно выводится из геометрии DWG: правил вида «устройство не подключено» или «извещатель вне помещения» линтер не обещает — в чужом чертеже линия связи неотличима от прочих отрезков. Дубли и пропуски самих адресов проверяет парная команда АДРЕС-ДУБЛИ из инструмента нумерации.
Вопросы и ответы
Что именно проверяется?
Пять правил, каждое отключаемо: двойные вставки одного блока в одной точке; блоки по маске без адреса (ни заполненного атрибута, ни подписи рядом); обязательные атрибуты существуют и непусты; объекты на слое 0; слои вне белого списка масок. Проверяется пространство модели.
Почему двойные вставки — первая проверка?
Блок, случайно вставленный дважды в одну точку, на печати не виден вообще: чертёж выглядит правильно, а спецификация, ёмкость АКБ и адреса считаются с лишним устройством. Ошибка всплывает только при монтаже. Команда ловит такие пары по совпадению эффективного имени и точки вставки с допуском.
Как команда понимает, что у блока есть адрес?
Адрес есть, если у блока заполнен атрибут с заданным тегом или в радиусе поиска найден однострочный текст формата «префикс + число + суффикс» — тот же формат, что в инструменте нумерации. Дубли и пропуски самих адресов ищет команда АДРЕС-ДУБЛИ из инструмента нумерации.
Как разбирать находки?
Каждая находка печатается в командной строке и обводится кружком на слое проверки (до 200 кружков, дальше — только счёт). После отчёта Enter листает находки с зумом. Исправили — запустите команду снова: старые кружки смоются, отчёт пересчитается.
Чего линтер не умеет?
Правил, требующих семантики проекта, в DWG не выводимой: «устройство не подключено к линии», «извещатель вне помещения», «кабельная линия не замкнута» — в чертеже линия связи и стена неотличимы от любых других отрезков. Такие проверки возможны только при жёстком стандарте слоёв и блоков.
Работает ли в AutoCAD LT и nanoCAD?
Полный AutoCAD и nanoCAD — да. AutoCAD LT 2023 и старше — нет (там нет AutoLISP); в LT 2024+ AutoLISP появился и, по справке Autodesk, используемые vla-/vlax-функции поддерживаются (внешние COM-объекты — нет), однако на LT работа не проверялась. Внешних зависимостей нет — только штатные функции чертежа.