!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. Pavel

    Здравствуйте, разработчики!

    версия для autocad 12 выдает ошибку: compile error: can’t find project or library

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

    для автокада 11, 12 надо поменять «IAcadLWPolyline» на «IAcadLWPolyline2»

    Ответить
  3. Pavel

    с помощью лисп команд (entget(car(entsel))) определяет рамки как «LWPolyline»

    В 272 строчке макроса — «IAcadLWPolyline»

    Каждый раз при поиски выдает кол-во рамок 0

    Автокад 2011

    Помогите разобраться!!!

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

    добавил для скачивания рабочую версию для акада 2012, по аналогии должно подойди и для остальных

    Ответить
  5. Николай

    Помогите пожалуйста с 2012 автокадом.

    менял я в 272-й строке название полилинии на «LWPolyline».

    и все равно ничего печатает. «0-рамок» выделено.

    На 2008 автокаде печатается без изменений макроса.

    Подскажите пожалуйста что сделать чтоб печатало в 2012 автокаде.

    Ну уж очень хочется печатать быстро и удобно.

    ПОЖАЛУЙСТА помогите

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

    Такая ошибка встречается в других автокадах. Скорее всего это зависит от самого файла автокада, потому что каждый файл несет в себе часть настроек (?). Самый простой способ, это скопировать чертеж в новый файл. После этого при печати нет чистых листов. Хотя в при копировании в новый файл можно потерять оформление некоторых частей текста или таблиц.. Вообще, макрос всего лишь формирует данные для печати, то есть держит в себе координаты прямоугольника, который идет на печать и при печати пустых листов все отрабатывает правильно, а на выдаче почему-то пусто лист

    Ответить
  7. Slavik

    Добрый вечер. Респек автору. Макрос отличный. Есть проблемка ох ох, автокад 2010 х32, в некоторых файлах листы распечатываються без проблем, а в некоторых листы распознаються и печатаються, но на распечатанных листах ничего нет, пустые. Подскажите пожалуйста в чем проблем?

    Ответить
  8. Павел

    Та же проблема, что и у Игоря. автокад 2012 х64.

    Ответить
  9. Павел

    У меня 2012 AutoCAD. Программа ваша очень понравилась, но про определении рамок всегда говорит, что «0 рамок выбрано». Не может найти рамки. Что делать? Название полилинии в 272 строке кода я поменял. Помогите, плз. Очень хочу установить ваш макрос. И кнопочку придумайте, или с клавы чтобы запускалось.

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

    Владимир, спасибо! Будем стараться улыбка

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

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

    У Вас очень полезный ресурс, нужно только рекламку хоть повесить — а то вещи делаете хорошие, а отблагодарить никак и нельзя

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

    Pavlo,

    вы можете сами посмотреть название примитива с помощью лисп команд (entget(car(entsel))) введите в командную строчку и нажмите Enter, после выделите нужный примитив, в командной строчке появится информацию о выделенном примитиве, в скобке с нулем будет название примитива (например, (0 . «LWPolyline»), вот на это и поменяйте в макросе на строчке 272

    Ответить
  13. Pavlo

    Lenik Gers, colee Вы би могли (если не сложно) перечислить возможные названия команды IAcadPolyline для разных версий Аутокада, а именно для Аутокада2012.

    Спасибо

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

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

    Ответить
  15. Lenik Gers

    Привет последователям.

    Разные версии Автокада(Автокад, Архитектурал Десктоп и т.д.) могут использовать разные имена объектов. Например: IAcadPolyline и IAcadPolyline2. Поэтому бывает, что рамки не распознаются в других версиях. Сам у себя ручками правил в макросе под конкретный Автокад.

    Удачи в продолжениях))

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

    на 255 строчке идет перечисление всех выделенных объектов (For Each pE In pSS), на 272 — сравнение с типом «IAcadLWPolyline»

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

    Все делал по инструкции, слои проверял.

    Сделал все рекомендации в тестовом документе «пример», переименовал слой на английский язык, но результат по-прежнему ноль…

    Рамка значится как полилиния.

    Может подскажите, строчку кода, которая отвечает за поиск полилиний?

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

    Игорь,

    здесь нет телепатов! Я не могу сказать по вашим комментариям, что вы делаете не так. Пример, который идет в архиве и описан, работает на Автокаде 2007, 2008 (на других не пробовал). Я печатал с помощью этой штуки на 2010.. Испытать все автокады просто нет возможности и времени.. Как можно помочь вам:

    1. я могу попробовать ваш файл (установить 2012), сказать печатает или нет.

    2. вы напишете более подробно ваши действия.

    Попробуйте стандартные вещи:

    дайте слою английское имя без пробелов

    посмотрите все ли в окошке совпадает с данными (допустим, в англ. версии акада надо вместо Модель писать Model)

    попробуйте выделить слои с помощью команды «быстрый выбор» (_QSELECT) и посмотрите, сколько их нашел акад

    проверьте является ли рамка полигоном или это блок/линии/др.объекты

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

    Какой файл, мой чертеж? Я уже написал выше, что та же проблема присутствует и в Вашем примере. Выдает «0» всегда.

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

    Здравствуйте, Игорь!

    пришлите мне пожалуйста файл на почту

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

    Апдейт. Проверил на другом компьютере, с 64 битным автокадом, все тоже самое. Автокад везде стоит 2012. Замена слоев ничего не дает.

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

    ПС все делаю по инструкции, но каждый раз поиск выдает результат «0»

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

    Добрый день!

    Судя по описанию, отличная программа, но у меня почему-то не может найти рамки. Проблема как с моими чертежами, так и с примером из архива(

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

    исправил ссылку сыр

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

    не скачивается программа. Пишет Achtung! XSS attack!

    Ответить