Skip to content

SkeletonTM/FrameFinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

FrameFinder.lsp — автопоиск рамок ГОСТ в модели AutoCAD

Скрипт автоматически находит в пространстве модели рамки форматов A4, A3, A2, A1, A0 и их кратные удлинения (A4x3, A4x4, A3x4, A2x5, A1x3, A0x2 … — по ГОСТ 2.301-68), после чего:

  • создаёт листы (Layout) с видовым экраном на каждую рамку — для пакетной печати через PUBLISH (Файл → Пакетная печать), либо
  • печатает каждую рамку сразу (в PDF/на принтер) — внутри тоже через временные листы, которые затем удаляются.

Рамки могут быть блоками (в т.ч. динамическими) и/или замкнутыми полилиниями — тип ищется на выбор (Блоки / Линии / Все).

Совместимо с AutoCAD 2022 и 2026 (нужен ActiveX, т.е. полный AutoCAD, не LT).


Установка

  1. Положите FrameFinder.lsp в любую папку.
  2. В AutoCAD: APPLOAD → выберите файл → Загрузить (или добавьте в «Содержимое автозагрузки», чтобы грузился сам).

Команды

Команда Что делает
FF Окно-диалог (DCL) — все параметры в одном окне (рекомендуется)
FFDLG Псевдоним FF (запасное имя — если FF занято другим плагином)
FFPLOT Найти рамки и сразу напечатать (вопросы в командной строке)
FFLAYOUT Найти рамки и создать листы для пакетной печати (командная строка)
FFCMD Меню в командной строке (выбор Печать / Листы)
FFSET Настройки: масштаб печати, устройство, стиль, допуск
FFMEDIA Диагностика: список форматов бумаги плоттера и их размеры
FFDIAG Диагностика рамок: габариты всех объектов и что распозналось

Диалоговое окно (команда FF)

FF открывает окно, где сразу видны все параметры:

  • Масштаб — множитель размера рамки относительно мм (1 = рамка 1:1, A4 = 210×297; 100 = рамка увеличена ×100).
  • Где искать — переключатель Блоки / Линии / Все.
  • Устройство — выпадающий список доступных плоттеров (берётся из системы).
  • Стиль печати — выпадающий список доступных .ctb/.stb (+ «Без стиля»).
  • Действие — Печать рамок / Создать листы.
  • Удалить существующие листы — флажок (для режима «Создать листы»).

.dcl-файл диалога генерируется автоматически во временную папку — отдельный файл рядом со скриптом держать не нужно.


Порядок работы (командные версии)

  1. Запустите FFPLOT или FFLAYOUT — скрипт спросит:
    • Масштаб оформления — число (1 = 1:1, 100 = ×100 и т.д.).
    • Где искатьБлоки / Линии / Все.
  2. Скрипт находит рамки, удаляет дубли (внешняя/внутренняя линия одной рамки), печатает отчёт по форматам, сортирует слева-направо / сверху-вниз и выполняет действие.
  3. В конце выводится краткая сводка: распознано / дублей / пропущено / готово.

Масштаб оформления — задавайте явно

Форматы ГОСТ геометрически почти подобны (стороны в отношении ~1:1.41), поэтому «A4 в масштабе 100» и «A0 в масштабе 25» по габаритам неразличимы. Поэтому масштаб всегда задаётся числом (1, 10, 100 …) — тогда распознавание формата однозначное и точное. (Прежний экспериментальный режим «Авто» для масштаба оформления убран как ненадёжный.)


Масштаб ПЕЧАТИ листа (1:N) и единицы драйвера

Драйвер 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.


Кратные (удлинённые) форматы — печать 1:1

Для кратных форматов (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 — печать рамок из модели.

Добавлено и доработано: распознавание формата ГОСТ и кратных удлинений, автоопределение ориентации и единиц печати, удаление дублей рамок, сохранение настроек, диагностика.

About

AutoLISP: автопоиск рамок ГОСТ в модели AutoCAD и печать/создание листов

Topics

Resources

License

Stars

Watchers

Forks

Contributors