30 сентября, 2015

Печать VBA

За время существования AutoCAD пользователями и разработчиками ПО создано достаточно много инструментов оформления чертежей, но вопрос удобной  и быстрой печати, как-то выпал из поля их зрения.  Конечно, в AutoCAD есть инструменты для пакетной публикации или печати из подшивки.  Но использовать его удобно только при «правильном оформлении проекта»: в листах, а еще лучше  один формат - один файл. Так решил  Autodesk. Тем не менее, многие пользователи с ним не согласны: оформляют весь проект в модели, иногда оформляют в листах... вернее в одном листе и все это в одном файле.

Это старая версия статьи... Продолжение проекта тут 

_____________________________________________________
По моему глубокому убеждению, и такой подход имеет право на жизнь, ведь главное эффективность проектирования. Косвенно это подтверждается некоторым количеством программ для печати   из модели:  Пакетная печать множества рамок (форматов) из пространства модели.
Все эти утилиты той или иной мере решают задачу пакетной печати из модели или хотя бы подготовки чертежа к оной, но ни одна из них не в состоянии выводить на печать форматы в разных масштабах или создавать многостраничный PDF средствами самого AutoCAD.
Для решения этих задач мной была написана утилита на VBA:  PlotSPDS.
Макрос гарантированно работает в AutoCAD 2012-2013 х32, 64, СПДС GraphiCS 8-9, в других версиях не тестировалась, но проблемы возникнуть там то же не должны..
Для работы скрипта необходимы: VBA Enabler и СПДС GraphiCS.
Возможности утилиты:
  • автоматическое распознавание  форматов СПДС GraphiCS;
  • автоматическая ориентация форматов (портрет, альбом);
  • автоматическое масштабирование форматов (даже если в чертеже разные масштабы);
  • печать в многостраничный PDF (принтер AutoCAD DWG to PDF);
  • одинаково работает в пространстве модели или листа;
  • печать форматов селектом AutoCAD или выбранным слоям;
  • печать с предварительно настроенным или пользовательским стилем печати;
  • печать с прозрачностью;
  • печать на разные принтеры в зависимости от настроек.
Собственно сам процесс печати выглядит так:


Интерфейс утилиты, не перегружен элементами управления.


Выбираем, что печатать, «все форматы», «выбрать на чертеже» или «выбранные слои» (если форматы в одном слое, то последнего пункта выбора не будет)
В случае необходимости применить стиль отличный от  предустановленного, то отмечаем галочку выбрать стиль. Из выпадающего списка выбираем стили печати доступные в AutoCAD (для выбора доступны только цветозависимые стили)
Далее определяемся, куда направляем печать, по умолчанию это PDF (дабы была возможность предварительно просмотреть, что получилось и не переводить «напрасно бумагу»). В  этом режиме доступны галочки «Просмотреть» (PDF по окончании публикации откроется в программе просмотра) и «Все форматы в один файл» (очевидно, что будет создан многостраничный PDF) если галочку  снять, то для каждого формата будет создан свой файл PDF. Файлы PDF по умолчанию сохраняются рядом c файлом чертежа. Если чертеж ни разу не сохранялся, то он будет сохранен в каталоге «Мои документы».
Галочка «Прозрачность» предназначена для вывода чертежей с прозрачностью.
При выборе формата вывода DWF или DWFx, файл будет сохранен в соответствующем формате, аналогично как для PDF.
При выборе печати «по умолчанию»  дополнительно будет доступен выбор количества копий (по окончании печати, копии будут разобраны по комплектам)
Как настроить эти умолчания? Макрос берет настройки плоттеров, форматов бумаги и стиль  из так называемых «Параметров листа».
Для каждого формата печати необходимо создать «параметр листа» или проще настройки печати.

Параметры листа вы можете создавать как в модели, так и в листе, где вам удобнее, на возможности печати  это никак не влияет.
Имена настроек печати можно называть, как угодно, но они обязательно должны содержать названия форматов в соответствии с «ГОСТ 2.301-68 ЕСКД Форматы» (название формата латиницей), например:
  • A4x3;
  • A3x2;
  • Принтер A1 в цвете;
  • Большой плоттер A0x3.
В настройках необходимо указать:
  1. Принтер
  2. Формат листа (название любое)
  3. Смещение от начала (скрипт печатает 1:1 рамка 185, поэтому для форматов A4, A3 возможно придется задать смещение)
  4. Таблицу стилей печати.
В файле чертежа  должно быть по одному параметру листа каждого формата (если больше ничего страшного не произойдет, но скрипт будет использовать первый встретившийся).
Вот собственно и все, теперь можно печатать.  По нажатию одной (не красной) кнопки.
В дальнейшем, что бы каждый раз не создавать  наборы параметров листа, рекомендую импортировать их в шаблон, с которого вы начинаете работу или текущий чертеж.


Возможно, при первом запуске утилита выдаст ошибку ничего страшного, останавливаем скрипт и настраиваем, как описано тут: Как подключить проект VBA
PS Для корректной работы  если вы используете другие  макросы этот должен быть загружен последним (в скрипте используется обработка события).
Макрос для кнопки или меню:   ^C^C-vbarun R_Plot
Скачать программу печати Plot SPDS.exe
___________________________________________________

PS Утилита на VBA мной более не улучшается и не поддерживается.

2 комментария :

  1. Ответы
    1. Макрос нет, консультации по реализации вполне (в меру моей компетенции)

      Удалить