Скрипт автоматически находит в пространстве модели рамки форматов A4, A3, A2, A1, A0 и их кратные удлинения (A4x3, A4x4, A3x4, A2x5, A1x3, A0x2 … — по ГОСТ 2.301-68), после чего:
- создаёт листы (Layout) с видовым экраном на каждую рамку — для пакетной
печати через
PUBLISH(Файл → Пакетная печать), либо - печатает каждую рамку сразу (в PDF/на принтер) — внутри тоже через временные листы, которые затем удаляются.
Рамки могут быть блоками (в т.ч. динамическими) и/или замкнутыми полилиниями — тип ищется на выбор (Блоки / Линии / Все).
Совместимо с AutoCAD 2022 и 2026 (нужен ActiveX, т.е. полный AutoCAD, не LT).
- Положите
FrameFinder.lspв любую папку. - В AutoCAD:
APPLOAD→ выберите файл → Загрузить (или добавьте в «Содержимое автозагрузки», чтобы грузился сам).
| Команда | Что делает |
|---|---|
FF |
Окно-диалог (DCL) — все параметры в одном окне (рекомендуется) |
FFDLG |
Псевдоним FF (запасное имя — если FF занято другим плагином) |
FFPLOT |
Найти рамки и сразу напечатать (вопросы в командной строке) |
FFLAYOUT |
Найти рамки и создать листы для пакетной печати (командная строка) |
FFCMD |
Меню в командной строке (выбор Печать / Листы) |
FFSET |
Настройки: масштаб печати, устройство, стиль, допуск |
FFMEDIA |
Диагностика: список форматов бумаги плоттера и их размеры |
FFDIAG |
Диагностика рамок: габариты всех объектов и что распозналось |
FF открывает окно, где сразу видны все параметры:
- Масштаб — множитель размера рамки относительно мм
(
1= рамка 1:1, A4 = 210×297;100= рамка увеличена ×100). - Где искать — переключатель Блоки / Линии / Все.
- Устройство — выпадающий список доступных плоттеров (берётся из системы).
- Стиль печати — выпадающий список доступных
.ctb/.stb(+ «Без стиля»). - Действие — Печать рамок / Создать листы.
- Удалить существующие листы — флажок (для режима «Создать листы»).
.dcl-файл диалога генерируется автоматически во временную папку — отдельный
файл рядом со скриптом держать не нужно.
- Запустите
FFPLOTилиFFLAYOUT— скрипт спросит:- Масштаб оформления — число (
1= 1:1,100= ×100 и т.д.). - Где искать —
Блоки/Линии/Все.
- Масштаб оформления — число (
- Скрипт находит рамки, удаляет дубли (внешняя/внутренняя линия одной рамки), печатает отчёт по форматам, сортирует слева-направо / сверху-вниз и выполняет действие.
- В конце выводится краткая сводка: распознано / дублей / пропущено / готово.
Форматы ГОСТ геометрически почти подобны (стороны в отношении ~1:1.41), поэтому «A4 в масштабе 100» и «A0 в масштабе 25» по габаритам неразличимы. Поэтому масштаб всегда задаётся числом (1, 10, 100 …) — тогда распознавание формата однозначное и точное. (Прежний экспериментальный режим «Авто» для масштаба оформления убран как ненадёжный.)
Драйвер DWG To PDF.pc3 может считать размер бумаги в дюймах или
миллиметрах — от этого зависит, какой пользовательский масштаб печати
нужен, чтобы рамка легла ровно (1:1 физически):
- драйвер в дюймах → масштаб печати 1:25.4;
- драйвер в мм → масштаб печати 1:1.
Настраивается в команде FFSET (три варианта):
- Авто (по единицам листа) — рекомендуется. Определяет единицы из самих настроек листа (DXF group code 72) — надёжно, не зависит от шаблона/локали.
- 1:25.4 — фиксированно (дюймовый драйвер).
- 1:1 — фиксированно (метрический драйвер).
- либо своё значение N.
Настройки FFSET сохраняются в реестре Windows и переживают перезапуск AutoCAD.
Для кратных форматов (A4x3 = 297×630, A1x3 = 841×1783 и т.д.) скрипт ищет носитель бумаги с точным соответствием размеру (печать в реальную величину, без полей и без вписывания).
- Если в плоттере есть нужный размер (в т.ч. ваш пользовательский) — он выберется автоматически по размеру (имя носителя может быть любым).
- Если точного размера нет — рамка пропускается с подсказкой, какой
пользовательский формат создать:
PLOTTERMANAGER → DWG To PDF.pc3 → Custom Paper Sizes → Add.
Для обычных форматов (A4…A0) приоритет отдаётся носителям без полей
(full bleed), чтобы рамка не съезжала; expand-носители (расширенные) при
этом исключаются.
- Рамки из отдельных отрезков (LINE) не распознаются. У 4 несоединённых
отрезков нет общего контура. Поддерживаются блоки и полилинии
(LWPOLYLINE / POLYLINE). Совет: соедините контур (
PEDIT→ Соединить илиBOUNDARY), либо оформляйте рамки блоками. - Допуск размеров — 4 % (настраивается в
FFSETили переменной*FF-TOL*). Если рамки с нестандартными полями не находятся — увеличьте допуск. - Дубли. Рамка ГОСТ обычно имеет две линии (внешнюю и внутреннюю) — обе распознаются как один формат. Скрипт автоматически оставляет только внешнюю.
- Печать через временные листы. И
FFPLOT, иFFLAYOUTсоздают листы;FFPLOTпосле печати листы удаляет,FFLAYOUTоставляет дляPUBLISH. - PDF-файлы (режим печати) сохраняются рядом с .dwg как
<имя_чертежа>-<имя_листа>.pdf. Если файл существует — спрашивается Перезаписать / Новое имя / Пропустить. - Ориентация (книжная/альбомная) определяется автоматически по реальному размеру выбранного носителя.
Большинство настроек удобнее менять через FFSET, но дефолты лежат в начале
FrameFinder.lsp в блоке «НАСТРОЙКИ ПО УМОЛЧАНИЮ»:
*FF-PLOTTER*— устройство печати (по умолчанию"DWG To PDF.pc3").*FF-STYLE*— стиль печати (""= без стиля).*FF-PLOTDENOM*— знаменатель масштаба печати (25.4 / 1.0).*FF-PLOTAUTO*— режим авто-определения единиц (nil/T).*FF-TOL*— допуск распознавания габаритов (0.04 = 4 %).
Таблицу форматов *FF-FORMATS* можно дополнить своими размерами строкой
("ИМЯ" короткая_сторона длинная_сторона) (в мм).
FFMEDIA— показывает все форматы бумаги текущего плоттера и их распознанные размеры (помогает проверить, есть ли нужный размер под кратный формат).FFDIAG— перебирает блоки/полилинии модели и показывает габариты каждого и результат распознавания (помогает понять, почему рамка не находится — не тот размер или масштаб).
Переработка и объединение проверенных открытых решений:
- BPDF (beastt1992, GitHub) — пакетный экспорт рамок-блоков в PDF;
- AddLay и форумные LISP (dwg.ru, caduser.ru) — создание листов/ВЭ из рамок;
- Plot-titles-in-model — печать рамок из модели.
Добавлено и доработано: распознавание формата ГОСТ и кратных удлинений, автоопределение ориентации и единиц печати, удаление дублей рамок, сохранение настроек, диагностика.