Комплект инструментов СПИС для AutoCAD 2020+: сборка комплекта дисциплин (SPISRUNSETS), подключение внешних ссылок (SPISATTACHSETS) и обслуживание ссылок (XRLIST/XRBIND/XRBIND1/XRPATH/XRUNBIND/XRDETACH). LISP + Python (COM) + инструкция.
| README.md | 21 days ago | ||
| SPISHELP.lsp | 21 days ago | ||
| SPISHELP.lsp.utf8 | 21 days ago | ||
| SPIS_RUN_SETS.lsp | 21 days ago | ||
| SPIS_RUN_SETS.lsp.utf8 | 21 days ago | ||
| SPIS_SYSTEM_SETS.lsp | 21 days ago | ||
| SPIS_SYSTEM_SETS.lsp.utf8 | 21 days ago | ||
| SPIS_TOOLS.lsp | 21 days ago | ||
| SPIS_TOOLS.lsp.utf8 | 21 days ago | ||
| XRBIND.lsp | 21 days ago | ||
| XRBIND.lsp.utf8 | 21 days ago | ||
| XRCOPYVISIBLE.lsp | 21 days ago | ||
| XRCOPYVISIBLE.lsp.utf8 | 21 days ago | ||
| __pycache__-20261006T160044Z-1-001.zip | 21 days ago | ||
| build_discipline_sets.py | 21 days ago | ||
| run_sets_launcher.py | 21 days ago | ||
| venv-20261006T160045Z-1-001.zip | 21 days ago | ||
| Инструкция_Инструменты_СПИС.docx | 21 days ago | ||
Комплект инструментов для работы с внешними ссылками в СПИС.
AutoCAD 2020 и новее.
| Файл | Назначение |
|---|---|
SPIS_TOOLS.lsp |
Загрузчик. Загружать его — остальные подтянутся сами |
SPISSETDIR (в загрузчике) |
Указать папку СПИС вручную, если автопоиск не сработал |
SPIS_RUN_SETS.lsp |
SPISRUNSETS — собрать комплект дисциплин |
SPIS_SYSTEM_SETS.lsp |
SPISATTACHSETS — подключить комплект в СПИС |
XRBIND.lsp |
Шесть команд обслуживания ссылок |
run_sets_launcher.py |
Запуск сборки: bat в нужной кодировке, старт в фоне |
build_discipline_sets.py |
Рабочий скрипт сборки комплекта |
.venv/ |
Python с pywin32 — нужен для работы через COM |
Все файлы должны лежать в одной папке. Загрузчик определяет своё
расположение сам, при переносе папки путь править не нужно.
AutoCAD запущен — сборка работает через COM.
Папка скриптов определяется автоматически (реестр → пути поддержки →
поиск в доверенных путях). Найденная папка запоминается в реестре
(HKCU\Software\GENPRO\SPIS) и добавляется в TRUSTEDPATHS — диалог
безопасности не появляется. Если автопоиск не сработал — команда SPISSETDIR.
Python с pywin32. В системном PATH может не быть Python, поэтому
рядом лежит собственное окружение .venv. Если папку переносят на
другую машину, окружение нужно создать заново:
python -m venv .venv .venv\Scripts\python.exe -m pip install pywin32
Путь к интерпретатору LISP ищет сам: сначала .venv\Scripts\python.exe
рядом со скриптами, затем запасной вариант. Если ни один не найден —
команда сообщит об этом.
SPISRUNSETS — создаёт файлы дисциплин ЭТР/СС/ВК/ОВ рядом с АР
и подключает в каждый ссылки по схеме.
Ожидает корневую папку проекта с пятью подпапками:
Проект\ АР\ АР К9.dwg основа, ничего не подключает ЭТР\ ЭТР К9.dwg содержит АР + ВК + ОВ + СС СС\ СС К9.dwg содержит АР + ВК + ОВ + ЭТР ВК\ ВК К9.dwg содержит АР + ОВ + СС + ЭТР ОВ\ ОВ К9.dwg содержит АР + ВК + СС + ЭТР
Достаточно, чтобы существовал только файл АР — остальные команда создаст.
Почему через Python. Операции с документами (создать, открыть,
сохранить) из LISP блокируют AutoCAD:vla-Open,_.OPENи_.SAVEAS
внутри LISP вешают сессию — проверено на AutoCAD 2020. Поэтому команда
запускает внешний скрипт, а AutoCAD остаётся свободен.
SPISATTACHSETS — подключает в открытый СПИС внешние ссылки на АР
и четыре дисциплины. Показывает список найденных файлов и запрашивает
подтверждение. При ответе, отличном от Yes, чертёж не изменяется.
| Команда | Действие |
|---|---|
XRLIST |
Список ссылок со статусом. Чертёж не изменяется |
XRBIND |
Внедрить все разрешённые ссылки |
XRBIND1 |
Внедрить одну ссылку по имени |
XRPATH |
Сменить путь «переехавшей» ссылки |
XRUNBIND |
Отсоединить только битые (неразрешённые) ссылки |
XRDETACH |
Отсоединить все ссылки, с подтверждением |
Все команды работают по активному чертежу. Перед XRBIND и XRDETACH
проверьте, какое окно активно.
| Шаг | Действие |
|---|---|
| 1. Собрать комплект | SPISRUNSETS — указать корень проекта, ответить Yes. Сборка идёт в фоне |
| 2. Дождаться файлов | Следить за %TEMP%\spis_sets_log.txt |
| 3. Собрать СПИС | SPISATTACHSETS — указать тот же корень, ответить Yes |
| 4. Проверить | XRLIST — все ссылки должны быть «РАЗРЕШЕНА» |
| 5. Внедрить (если надо) | XRBIND — если по заданию ссылки внедряются перед сдачей |
В командной строке AutoCAD:
APPLOAD
Выбрать SPIS_TOOLS.lsp, нажать «Загрузить».
APPLOAD → Содержимое → Добавить → SPIS_TOOLS.lsp.
Либо строка в acaddoc.lsp:
(load "G:/Мой диск/lisp-code/SPIS/SPIS_TOOLS.lsp")
| Параметр | Значение |
|---|---|
| Тип ссылки | Overlay (наложение) |
| Точка вставки | 0, 0, 0 |
| Масштаб | 1 : 1 по всем осям |
| Угол поворота | 0° |
| Единицы | миллиметры (INSUNITS = 4) |
| Повторное подключение | ссылка с таким именем пропускается |
Почему Overlay, а не Attach. Дисциплины ссылаются друг на друга,
образуя цикл СС ↔ ВК. При Attach циклические ссылки не загружаются,
при Overlay — отображаются корректно.
LISP-файлы хранятся в Windows-1251. AutoCAD 2020 не читает UTF-8:
кириллица превращается в мусор, загрузка падает с ошибкой
«команда не найдена».
AutoCAD 2026 читает и cp1251, и UTF-8 — проверено живьём (кириллица
печатается верно в обоих вариантах). Для совместимости с 2020 файлы
по-прежнему держим в cp1251; .lsp.utf8 — версия для правки.
Рядом с каждым .lsp лежит копия .lsp.utf8 — та же версия для правки.
После правки перекодировать обратно:
from pathlib import Path
p = Path("SPIS_TOOLS.lsp.utf8")
Path("SPIS_TOOLS.lsp").write_bytes(p.read_text(encoding="utf-8").encode("cp1251"))
Отдельно про bat-файл. Скрипт сборки запускается через .bat, который
пишется в cp866 без chcp. Если добавить chcp 65001, русские пути
внутри bat бьются и Python не находит файлы.
| Симптом | Причина и решение |
|---|---|
| «Команда не найдена» | Файл не загружен либо сохранён в UTF-8. Загрузить через APPLOAD, проверить кодировку. Если загрузка прошла, но подкоманд нет — выполнить SPISSETDIR и указать папку |
[НЕТ] при загрузке |
Файл не найден рядом с SPIS_TOOLS.lsp |
Не найден скрипт |
build_discipline_sets.py должен лежать рядом с LISP |
| Не найдено DWG | В подпапках АР, ЭТР, СС, ВК, ОВ нет файлов .dwg |
| Пропущено | Ссылка уже подключена, дубликат не создаётся |
Вызов был отклонен |
AutoCAD занят или завис. Перезапустить AutoCAD |
| Ссылка не видна | Проверить координаты и слои, выполнить Z → E |
GENPRO · Группа ЭТР · 2026