!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)

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

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

  1. Кирилл

    Что-то все хотелки в один комментарий не поместились… =)

    Было бы здорово, если бы макрос мог автоматически присваивать имена формируемым PDF файлам. Хотя бы, нумерация была бы сквозная — и то хлеб.

    Пальцы отваливаются после перевода пакета в 100500 чертежей. Особенно, когда таких пакетов не один.

    Куда копать?

    Ответить
  2. Кирилл

    И да! Только что проверил — может подряд напечатать в А3 «превьюшку», и тут же в другом формате первый чертёж распечатать. Кроме изменений в настройки макроса (смена принтера и формата), другие правки не вносились.

    Ответить
  3. Кирилл

    Спасибо! Параметры («галочки») поменял в VBA редакторе, всё работает, как надо.

    Но вопрос с принтером не даёт покоя.

    Есть МФУ, на котором печатаю и А3 и А4. Соответственно, машина МФУ видит, как два устройства. Печатать надо именно в указанных форматах. Подскажите, пожалуйста, где копать, что бы вторым принтером именно А4 (А3) можно было печатать.

    Кстати, такая же проблема с печатью, как у Влаимира — «превью» вместо первого чертежа, иногда вылезает и у меня. Что при печати в любом формате, так и при конвертации в PDF.

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

    реально, главное, чтобы все чертежи были по описанным правилам подготовлены

    Ответить
  5. Владимир

    Если открыть несколько чертежей в простанстве модели,подготовить их для печати через макрос…Реально их распечатать пакетно?

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

    Так это превью модели ) шучу, надо разбираться на примере файла

    Ответить
  7. Влаимир

    Все классно,но печатает почему-то первую рамку(захватывает все начерченное в модели)В чем может быть причина?

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

    1. сама поддержка 2 принтеров есть, но именно разделения на A3 и A4 нет, есть только на мелкий и крупный формат

    2. открыть VBA редактор, открыть форму, все галки и тексты поменять, сохранить макрос в dvb файле, и его загружать

    Ответить
  9. Кирилл

    Спасибо за макрос! Без него, как без рук!

    Есть пара вопросов:

    1) Возможна ли печать сразу на два физических принтера в разных форматах (А3, А4)?

    2) Как поменять «галки» по умолчанию? Конкретно — убрать с «Подряд в столбик» и поставить «Печать всех форматов…» Заменить «Слой рамок» по умолчанию получилось успешно.

    Замечена одна неполадка: иногда первый чертёж, что в PDF, что на принтер выдаёт все чертежи на один лист/файл.

    Заранее — благодарю!

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

    Надо как-нибудь этим заняться подмигнуть

    Ответить
  11. firsmamon

    Спасибо за макрос. А можете добавить поддержку других форматов: A4х3, А4х4, А3х3 и др?

    Ответить
  12. Pavel

    Здравствуйте, а можно как небуть сделать поиск не полилинии а по блоку с определенным именем???. У прямоугольного блока (форматка) вроде можна определить две точки. Очень нужный макрос, можете доделать??? Спасибо.

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

    вроде работает в zwcad, выложил в загрузки

    Ответить
  14. whisper_23

    colee, скажите, возможно ли использование вашей программы в zwcad ?

    я сам в этом не очень разбираюсь..

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

    >А можно с ее помощью не из пространства модели, а с листов печатать?

    Есть для листов встроенный инструмент для автоматической печати в автокаде (публикация)

    Ответить
  16. Игорь

    А можно с ее помощью не из пространства модели, а с листов печатать?

    Ответить
  17. Тоже Евгений

    Огромное спасибо за программу!

    Уважаемый Colee, у меня возникает проблема, что при первой печати из файла первый лист печатает не область листа выделенного рамкой, а весь видовой экран. Приходится перепечатывать…в общем-то мелочь, но неприятная )) это только у меня такая проблема?

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

    Отличная программа, спасибо! в программе Sub SelectLimits(Optional opt As Byte)

    выпадала ошибка «деление на ноль» поменял код [If (blvertical) Then] на

    [If (blvertical And x2 0) Then] все работает, все отлично. Хотелось бы чтобы ваша программа распознавала динамические блоки в независимо от слоя (рамка и основной штамп сделан в одном блоке).

    Ответить
  19. Серегй

    Неплохо бы было сделать поиск рамки в блоках … т.к. многие используют динамические рамки .. А так все гудд !!

    Ответить
  20. Всеслав

    Здравствуйте. Проблема та же, что и у JohnSt(пост 101), и у Mk( пост 128). Ни один из чертежей не находится в области координат 0.0, 0.0

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

    Добрый,

    попробуйте найти в инете ее, скачать и положить в %ProgramFiles%/Common Files/Autodesk Shared

    Может, у вас неправильно установился Автокад, так как это библиотека типов Autocad Type Library

    Ответить
  22. Игорь

    Добрый день!

    Пытался приспособить макрос для печати из Автокад 2013 рус, не пошло пишет нет библиотеки acax18rus.tlb. Можно это как то поправить?

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

    Mk, ответил на почту

    Людмила, ответил на почту, но непонятно что вам нужно..

    Ответить
  24. Людмила

    Дело в том, что я не сильна в программировании)) Если не сложно, подскажите, пожалуйста, какой текст и в какой части макроса нужно написать, чтобы листы формата А2 печатались на А3, а не на А4.

    Ответить
  25. Mk

    Здравствуйте. Проблема та же, что и у JohnSt, пост 101. Ни один из чертежей не находится в области координат 0.0, 0.0

    Ответить