!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 автор

    По-моему, Autodesk DWG TrueView не поддерживает ни лисп, ни VBA.. поэтому вряд ли можно..

    Для работы нужна возможность работать с моделью VBA Autocad, которая в TrueView отключена

    Ответить
  2. Дмитрий

    Здравствуйте. Работаю в копировальном центре. Приходится выводить на печать много файлов DWG из модели. Автокада нет, используем Autodesk DWG TrueView 2014, отсюдаи вопрос, возможно ли прикрутить к нему этот макрос?

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

    Если вы печатаете в пдф, то там надо заранее сделать готовые pc3 принтеры, подробнее тут

    http://www.engineerbox.ru/page/autocad-avtomaticheskaja-pechat-iz-modeli-s-podderzhkoj-2-printerov-i-avtomaticheskij-vybor-orientacii-v-pdf

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

    Ответить
  4. Анна

    здравствуйте. Не нашла ответа на вопрос по поводу поворота листов — один черт печатает горизонтальный лист вертикально на горизонтальном листе.) Что делать?

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

    Антон, спасибо за информацию, будем стараться! а то действительно проблема с DoPDF очень актуальна..

    Ответить
  6. Антон

    Макрос классный — однозначно!!! Но все же есть куда расти.

    Сегодня потратил полдня на поиски решения проблемы печати кучи форматок из одного файла из пространства модели. Все бы ничего, но doPDF каждый раз требует ввод имени файла, а DWG to PDF печатает все в один файл перезаписывая. В ВБА в Акаде есть две возможности печатать и вы использовали первый — там нельзя задать имя файла. А вот при втором варианте есть возможность задать имя файла (http://vbamodel.narod.ru/AutoCAD/idh_plottofile.htm)

    ОЧЕНЬ надо имя файла автоматом вводить, пусть это будет цифра — дальше уже сам смогу склеить. Это актуально для DWG to PDF.

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

    Ответить
  7. Андрей

    Спасибо, всё работает как надо!!!!!!!!!!

    Ответить
  8. iNecro

    Здравствуйте!

    Хочу сказать спасибо за Ваш труд — отличная работа!

    Скромно могу предложить улучшения:

    — организовать работу с пользовательскими наборами параметров листов (так можно уйти от выставления настроек принтеров в интерфейсе программы и заодно решить проблемы нестандартных форматов)

    -организовать оценку формата, ориентации обрабатываемой рамки совершая перебор наиболее подходящей из списка пользовательских наборов параметров листов

    Небольшое замечание: в больших файлах 19 мб процесс поиска и обработки(то есть с момента нажатия на autoselect до предложения распечатать N-ое количество листов) проходит по 15-20 минут возможно ли оптимизировать код для ускорения ? (в excel ,например, в коде VBA я отключал обновление, пересчет ячеек – здесь может регенерация вредит времени обработки или что-то еще?)

    Мне очень нравится макрос, представляю какой титанический труд был проделан для создания и отладки! Еще раз СПАСИБО!

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

    Здравствуйте, потихоньку начинаю быть любителем вашего макроса, только возникает такая проблемка при печати, автокад 2012, рамки все находит, однако при печати в ПДФ чертежи находятся не в области печати и лист ориентирован как альбомный. Прошу помощи, дабы очень хочется стать счастливым пользователем данного макроса!

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

    Сергей, действительно удобно будет искать слой в комбобоксе, обязательно добавлю в следующих версиях

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

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

    Private Sub NumericLayers(objList As ComboBox)

    Dim objLayer As AcadLayer

    Dim objAllLayers As AcadLayers

    Set objAllLayers = ThisDrawing.Layers

    For Each objLayer In objAllLayers

    If objLayer.Name «» Then

    objList.AddItem objLayer.Name

    If objLayer.Name = «Форматка» Then

    objList.Text = «Форматка»

    End If

    End If

    Next objLayer

    If objList.Text = «» Then

    objList.Text = objList.List(0)

    End If

    End Sub

    а в Sub UserForm_Activate() добавил строку

    NumericLayers Plot_U.TB_LAYERNAME

    теперь у пользователя есть возможность выбрать слой на котором его информатики.

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

    на автокаде 13 или 14 попробую тестовый файл, который идет вместе с макросом..

    > Хотелось бы узнать, ведутся ли работы в пользу дееспособности макроса в Автокадах 2013-14?

    Ответить
  13. Станислав

    Здравствуйте, ни с того ни с сего (по крайней мере, не помню причины) возникла ошибка, нет ни одного доступного принтера в макросе, выпадающее меню пустое, как победить?

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

    Здравствуйте

    Хотелось бы узнать, ведутся ли работы в пользу дееспособности макроса в Автокадах 2013-14?

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

    не думаю, что это проблема макроса.. и не побоюсь это слова, это проблема Autodesk подмигнуть

    Ответить
  16. Pavel

    когда вылечите Fatal Error?!

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

    Ответил на почту, скорее всего модель не первая вкладка это как вариант почему может начинает печатать не из модели.. Хотя не знаю, как можно модель сделать не первой вкладной) это невозможно)

    пришлите чертеж, чтобы точно можно было устранить ошибку

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

    здравствуйте

    являюсь давишним и благодарным пользователем этого макроса

    но давненько не смотрел обновления — последней версией пользовался 2.2

    при запуске 2.5.1.4 тех же самых чертежах, которые до этого печатались сразу, сейчас макрос печатает не из модели, а из layout. проблема лечится путем удаления всех layout’ов (благо все равно ими не пользуюсь. брал рыбу, а там в лэйоте рамку кто-то начертил, причем не стандартную…потом во все файлы всех моих проектов и перешло). был бы благоарен за помощь в устарнении этой накладке без удаления лэйотов (во всех файлов долговато буду удалять)

    Ответить
  19. pavlo

    здраствуйте, Вы можете поправить програму (добавить функцию) так чтоби можно былоби задать свой масштаб печати листов (тоесть припустим вместо «ВПИСАТЬ» задать 1:1.2). Спасибо

    Ответить
  20. volchok

    Здравствуйте. Автокад 2008. макрос 2.5 Рамки на чертеже горизонтальные, а при печати распологаются вертикально. Как это исправить. Настройки принтера не помогли.

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

    надо мне выслать пример с таким объектом, чтоб посмотреть..

    насчет автокада 13 не знаю, не юзал, но думаю, что должен работать

    Ответить
  22. Саша

    Пробовал запустить макрос для 2013 автокада, использовал версии 2.2, 2.5, 2012 — итог один, рамок 0(( будем ждать обновления. С отзеркаливанием ОЛЕ объектов не разобрался(

    Ответить
  23. Саша

    Здравствуйте! Очень хорошая программа! Спасает уйму времени! Есть только одна неясность : у меня в бланке штампов вставлены эмблемы разных фирм (OLE объекты). Так вот при распечатке по непонятной мне причине эти картинки зеркально переворачиваются, все остальные объекты автокада остаются на своих местах.Помогите пожалуйста! Очень прошу. А вообще ваш сайт находка! Спасибо.

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

    Да, печать на несколько принтеров в ближайшие недели будет сделана наряду с правильным вписыванием в чертеж и центрированием

    Ответить
  25. Lyolik

    Огроменное благодарствие автору за труд!!! Реально помог)) 15000 листов проекта я б год печатал выделяя каждый лист. Низкий поклон!! Планируеться ли доработка на отправку сразу на несколько принтеров? Конечно проблемы с этим нет ибо с нескольких файлов верстаю очередь печать в pdffactory и потом оттуда отправляю на печать но всёже былобы интересно)

    Ответить