!Plot_U — макрос автоматической печати из модели Autocad

Описание:

Макрос для печати позволяет быстро распечатать из модели Autocad листы формата A0,A1,A2,A3,A4. Для этого нужно просто запустить макрос, выбрать принтер и выделить все чертежи.

Примеры использования:

Autocad: Печать из модели

Autocad: автоматическая печать из модели крупных форматов A0, A1, A2

Autocad: автоматическая печать из модели с поддержкой 2 принтеров и автоматический выбор ориентации в PDF

Внешний вид макроса

Макрос !U_Plot версии 2.5.1.4

Ограничения:

  1. Приложение работает как макрос, поэтому начиная с Autocad 2010 и всех последующих нужно скачивать AutocadVBAenabler.exe, который позволяет загружать макросы и весит около 80 мб, скачать можно бесплатно на оффсайте Autocad (ссылка) или для разных версий Autocad 10-14 (ссылка)
  2. Приложение всего лишь формирует материал в нужном порядке для выдачи на принтер! Поэтому при печати в PDF нужна программа, создающая принтер PDF, например: doPDF, PDF24, adobe PDF (да и вообще если кого-то интересует виртуальные принтеры PDF — есть огромная статья (ссылка), там 2 части).

Возможности:

  1. Автоматическое определение рамок A3 и A4 в любых масштабах (в любых пропорциях — главное, чтобы соотношения сторон оставались равные!)
  2. Автоматическое определение рамок A0-A4 в масштабе 1:1
  3. Печать только тех чертежей, в которых есть определенный текст
  4. Формирование порядка выдачи листов на принтер (листы выводятся на принтер либо слева направо сверху вниз или слева сверху вниз направо)
  5. Не надо выделять рамку чертежей, нужно всего лишь зацепить рамку, следует использовать «жадное» выделение (зеленым) 
  6. Можно указать количество копий (листы выводятся по копиям)
  7. Можно указать погрешности рамок (если на пару мм меньше, больше), погрешности по осям X и Y, выбрать точку отчета у чертежа
  8. Можно указать масштаб вписывание чертежа, задать свой масштаб или использовать стандартные настройки
  9. Можно указать смещение по оси X и Y для правильного выравнивания по центру
  10. Поддержка печати с помощью 2 принтеров
  11. Автоматическая ориентация (книжная и альбомная) при печати в PDF

Для работы приложения нужно:

  1. Обвести все рамки чертежа полигон или прямоугольником (рамки надо сделать один раз, потом они будут блуждать из проекта в проект)
  2. Слой рамок должен быть в уникальном слое!

Что хочется добавить (ToDo):

  1. В программе есть потенциал работы с таблицей основной надписи, но пока эта таблица должна быть встроенной таблицей автокада, что используют немногие!
  2. Возможность разпараллеливания печати на 2 и более принтеров (для быстроты печати) в версии 2.5.1.4 появилась поддержка 2 принтеров
  3. Возможность различать вплоть до формата a0 при условии, что масштаб рамок 1:1 В версии выше 2.5 появилась возможность распечатки больших форматов
  4. Возможность подачи файлов А3 и A4 на принтер обычный, и файлы А2 и более на плоттер! (возможность отладить на плоттере дорогое удовольствие,поэтому пока в дальноидующих планах!) В версии 2.5.1.4 появилась возможность печати с помощью 2 принтеров
  5. Возможность правильной отработки вписывания рисунка в формат при печати (беда всех принтеров — отступы при печати, у некоторых печать с нулевыми отступами невозможна, поэтому все зависит от настроек принтера и установленных в нем форматов печати. Поэтому программно менять без ведома человека не вариант.. пока думаем) Пошаговая инструкция установки нулевых полей pdfFactory
  6. Возможность печати нестандартных форматов
  7. Возможность печати нескольких чертежей на одном крупном формате (A0) в длину
  8. Возможность печатать в один файл через PDF принторы Dopdf и аналогичных

Устранение неполадок

  1. При использовании макроса иногда вылетает Autocad с ошибкой «Fatal Error: Unhandled Access Reading 0x0000 Exception at 652e60h» (фото)
  2. !!!Обязательно сохраняйте файл перед использованием макроса!!!

  3. Иногда рамки не находятся из-за возможного несоответствия типа полилинии для специализированных версий автокада. Нужно в ручную поменять в макросе название полилинии IAcadLWPolyline на название в своем автокаде (см. комментарий №10, №11). В версии выше 2.2 автоматическое определение полилинии.

История версий

Версия 2.5.1:

+добавлена поддержка 2ого принтера (печать с автоповоротом в PDF, печать четных и нечетных страниц, печать крупногабаритных форматов на плоттере и A3-A4 на обычном принтере)

+опции печати центрирования и вписывания с масштабом

Версия 2.5:

+добавлено автоматическое выделение без участия пользователя

+добавлена печать крупных форматов A0,A1,A2

+добавлена возможность распечатывания чертежей по нужному тексту

Версия 2.3:

+исправлена ошибка, при которой на печать подавались пустые листы

(подробнее тут http://forum.dwg.ru/showthread.php?t=64072)

Версия 2.2:

+поиск рамок на пользовательской форме

+исправлена ошибка поиска названия рамок в разных автокадах (теперь не надо менять ничего в коде макроса)

Версия 2.1:

+добавлено автоматическое распознавание формата A3/A4

+введение погрешностей рамок, осей

+возможность печати нескольких копий, группировка

+последовательная печать по ряду или по колонке

Версия 1.0:

макрос создан Lenik Gers (www.mvstudio.by)

+печать рамок

+автоматический поворот рамок

+вписывание в границы печати

Скачать

!Plot_U_v2.5.1.4.zip

!Plot_U_v2.5.1.4_zwcad.zip (для ZWcad)

!Plot_U_v2.5.zip

!Plot_U_v2.3.zip

!Plot_U_v2.2.zip (для всех автокадов)

!Plot_U.zip

!Plot_U_autocad2012.zip (так же подходит для Autocad 10,11)

Поделиться с друзьями
В коробке инженера
Добавить комментарий

Нажимая на кнопку "Добавить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности

Введите буквы на русском языке : *

Reload Image

  1. Colee автор

    Попробуйте принтер pdffactory.. там как раз на выходе получается один файл, очень удобно..

    Ответить
  2. PTqp

    Здравствуйте! А нельзя ли научить макрос печатать все листы в один файл? То есть, у меня установлен принтер PDF, я отправляю с помощью макроса листы на печать через этот принтер. Листов у меня в модели 9, а на выходе я получаю один файл с одним листом, либо несколько файлов тоже с одним листом. Очень хотелось бы на выходе иметь один файл со всеми этими листами. Использую принтер PDF Creator

    Ответить
  3. Alex

    Здравствуйте, в макросе если поставить галочку на пункте «вписать» то печать будет производиться с внешней рамкой, если оставить галочку только на «центрировать» то внешней рамки не будет, но на чертежах выполненных на шаблоне acad.dwt по умолчанию стоит британский масштаб (на метрический не меняет) то есть печать идет 1дюйм-1ед.чертежа (а надо что было 1мм-1ед.чертежа), в итоге без галочки на «вписать» мы имеем на выходе либо пустой лист либо какието фрагменты чертежа. Собственно вопрос как распечатать чертежи выполненные на британском шаблоне, без внешней рамки? При переносе чертежей из файла на британском шаблоне в файл на метрическом, меняются шрифты и т.п., так что этот вариант не очень удобен. Может быть както можно задать в макросе, чтобы печать велась только в метрическом масштабе?

    Ответить
  4. Colee автор

    Да, можно зайти в Сервис — AutoLisp — Приложения — Автозагрузка — Добавить файл dvb

    Если по каким-то причинам файл не загружается, можно поставить lisp скрипт в автозагрузку такого содержания

    (defun S::STARTUP()

    (command «_VBALOAD» «путь до dvb макроса»)

    )

    Ответить
  5. Александр

    Хотелось бы не загружать постоянно макрос после каждого закрытия автокада. Есть ли возможность как-нибудь сохранить его в программе?

    Ответить
  6. Женя

    отличная прога! выше всяких похвал.. но есть вопрос возможна ли полностью автоматизированная печать то есть открыл чертеж запустил макрос (все переменные принтер и прочее идут по умолчанию)не нужно выделять а просто распечатать все с листа.. задать постоянные переменные у меня получилось но полностью автоматизировать не удается.. помогите! заранее спасибо!

    Ответить
  7. Евгений

    И еще в добавок, как сделать, чтобы остальные форматы, хотябы основные -A0,A1,A2, определялись как и A4, A3.

    Ответить
  8. Евгений

    DoPDF 7 — он по-моему не тупит. Сделал для него форматы, подключил pmp.

    У меня вопрос, от чего некоторые чертежи вылетают с фатальной ошибкой, может что-то можно сделать? Узнать причину и с ней бороться?

    Ответить
  9. Евгений

    DoPdf 7 у меня печатает нормально. хотелось бы конечно пользоваться встроенным DWG to PDF. Форматы для него все перебил вчера по ГОСТ.

    Ответить
  10. Colee автор

    Да, при выборе этого принтера Pdf все печатает в один файл, затирая предыдущие чертежи.. тоже самое при выборе принтера DoPdf.. попробуйте pdf factory. надо будет попробовать поиграться в настройках.. как раз сейчас буду этим заниматься :gulp:

    Ответить
  11. Евгений

    Теперь у меня следующий баг есть. При печати DWG to PDF.pc3 — не выдается запрос на сохранение файла. Тупо печатает все под ряд в один файл, в итоге открывается только последний файл, т.к. все перезаписывается в один и тот же файл. При нормальной печати — запрос выдается. На других принтерах все ок.

    От души спасибо за исправленный баг с пустыми листами.

    Ответить
  12. Хебибулин

    не могу найти адрес почты куда слать файл

    Ответить
  13. Colee автор

    координаты не меняются при работе, а неправильно обрабатываются при печати уже за пределами работы макроса. пришлите файл на почту, попробую как-нибудь обойти..

    Ответить
  14. Хебибулин

    в некоторых файлах при печати макросом границы печати (полилинии) сдвигаются, и на принтер выходят пустые листы либо часть листа.

    в чем может быть проблема?

    могу выслать файл.

    Ответить
  15. Pavel

    Уважаемые разработчики!!!

    откликнитесь пожайлуста!!!

    Ответить
  16. Pavel

    Это настройка принтера PDF. Вызывается из автокада Файл — Печать — Свойства (справа от имини принтера) — устройсво и документ — дополнительные свойства — дополнительные свойства — ориентация (книжная, альбомная).

    Я пробовал настроить принтер, а потом запускать макрос, но лист опять разворачивается вертикально.

    Если не возможно это автоматизировать, то хотябы по умолчанию оставлять, как уже принтер настроен.

    Ответить
  17. Pavel

    cтиль печати работает, это настройки печать в pdf такие были.

    А вот лист при печати в pdf всегда вертикально располагает, потом разворачивать каждый раз приходиться.

    Можно ли в макросе сделать кнопку выбора расположения листа книжный или альбомный?

    Ответить
  18. Pavel

    и ориентация формата только книжная… Потом в pdf каждый раз крутить приходиться!

    Ответить
  19. Pavel

    Вот только стиль печати все время оттенки серого

    Ответить
  20. Pavel

    УРА!!!!!!!!!!!!

    РАБОТАЕТ!!!

    Спсибо ОГРОМЕННОЕ!

    Благодарности нет предела!

    Я уже и кнопку сделал из панели!

    Ответить
  21. Colee автор

    Советую всем скачать новую версию: добавлена совместимость с разными автокадами (проверял на 2008, 2011, 2012), на форме рядом с полем ввода названия слоя рамок ввел кнопку поиск — выводит рядом количество найденных рамок

    Ответить
  22. Colee автор

    нет, лучше сделать, чтоб он сам брал тип данных программно, без вмешательства в код.. На днях попробую это сделать

    Ответить
  23. Pavel

    Есть предложение при первом пуске макроса его обучить, т.е. присвоить значение переменной, которая будет соответствовать имени приметива

    Ответить
  24. Colee автор

    Надо зайти в сервис — макросы — редактор Visual Basic — Tools — references — и отключить галочку на строке MISSING: Autocad Library.. и отметить Microsoft forms, если не отмечено

    определить имя типа, которую надо поставить на 272 строчке, нужно через обозреватель модели в редакторе VBA или путем остановки макроса для определения типа. Надо будет подумать, как это все упростить

    Ответить
  25. Pavel

    В вашем примере выбираю рамку в слое форматка

    Выберите объект: ((-1 . ) (0 . «LWPOLYLINE») (330 . ) (5 . «6F6») (100 . «AcDbEntity») (67 . 0) (410 . «Model»)

    (8 . «Форматка») (100 . «AcDbPolyline») (90 . 4) (70 . 1) (43 . 0.0) (38 . 0.0)

    (39 . 0.0) (10 8487.72 1911.61) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10

    8907.72 1911.61) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 8907.72 1614.61)

    (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 8487.72 1614.61) (40 . 0.0) (41 .

    0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0))

    Значит имя LWPOLYLINE

    Ответить