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

    если рамка нижним левым углом находится в координатах 0,0, то выдает ошибку деления на ноль

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

    >ну так кто-то ж их добавил изначально)) нужно было и настраивать сразу))

    я эти видовые экраны и делаю). Если разносить их на разные листы — теряется полнота картины и поиск нужного листа с помощью ограниченной полоски не айс.

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

    > Настраивать порядка 50-100 отдельных листов

    ну так кто-то ж их добавил изначально)) нужно было и настраивать сразу))

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

    > Вроде если грамотно сделать лист, то печать всех листов в один пдф называется опубликование, встроенная функция, может, не все так гладко, но все же

    В пространстве листа оформлены видовые окна с модели. Настраивать порядка 50-100 отдельных листов очень муторно и не приносит должного результата.

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

    >Будет реализована кнопка для вызова программы?

    Это можно сделать повесив на кнопку или действие в настройках автокада, вроде все настраиваемо

    > Будет ли реализована пакетная печать из пространства Листа?

    Вроде если грамотно сделать лист, то печать всех листов в один пдф называется опубликование, встроенная функция, может, не все так гладко, но все же

    > На 2016 версии автокада не хочет запускаться, или не поддерживает это версия?

    Вроде должна запускаться, может, у вас без vba модуля?

    Ответить
  6. Иван

    На 2016 версии автокада не хочет запускаться, или не поддерживает это версия?

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

    Программа супер! очень облегчает трудсыр

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

    1.Будет реализована кнопка для вызова программы?

    2.Будет ли реализована пакетная печать из пространства Листа?

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

    скорее всего какие-то ограничения в автокаде вашем в настройках.. нужно конкретно на вашей машине потыкать подмигнуть

    Ответить
  9. Наталья

    Автоматическая печатает все листы, а в ручной 1 лист

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

    а автоматическая печать идет по всем рамкам без ошибок? в файле с примерами?

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

    Ответить
  11. Наталья

    В файлах, что идут в архиве выдает туже ошибку. Сообщение выдает кол-во рамок 2 и выделила я 2, а если одну выделить , то печатает

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

    1. Попробуйте на файлах, что идут в архиве, при ручном выделении выпадает ошибка или нет

    2. Перед появлением ошибки должно появится сообщение с информацией Кол-во рамок… печатать дальше.. Какое кол-во выдает это сообщение и сколько на самом деле вы выделяете?

    Ответить
  13. Наталья

    не помогло. Через автоматическое выделение печатаются все листы, а при выборе через ручное выделение только один лист, если выбрать два или больше выдает опятьRun-time error ‘6’: Overflow; и подсвечивается строка: x1=LimitsArray (T).p1(0).

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

    мб у вас чертежи находятся в координатах миллионов? попробуйте перенести ближе к центру координат

    Ответить
  15. Наталья

    автокад выдает ошибку: Run-time error ‘6’: Overflow; если в появившемся окне ошибки нажать Debug, то попадаешь на листинг программы, причем подсвечивается строка: x1=LimitsArray (T).p1(0).

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

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

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

    Добрый день. Программа замечательная, но так и не смог ни в одном принтере добиться чтобы печатала хоть в каком то порядке, хоть по столбцам, хоть по строкам. Выводит листы на печать как ей хочется. Листы все одинаковые, формат А3 1:1. Пробовал печатать в PDF24 и PDF creator, больше бесплатных программ чтобы выводили все в один файл не нашел. В принтерах в настройках потыкался, ничего не изменилось. В чем может быть проблема?

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

    Автор, спасибо тебе огромное за программу! Уже порядка 2-х лет пользуюсь ей! Есть вопрос по расширении функционала, можно ли функционально сделать так, чтобы в качестве второго принтера было сохранение этого фрагмента в отдельном файле DWG? Типа второй принтер это принтер DWG ну или вызов команды ПБЛОК. Проблема заключается в следующем: работаем в модели, порядка 150 чертежей формата А3, а после разбиваем этот чертеж на отдельные 150 файлов DWG (1 файл — 1 чертеж) для архива заказчика. Данная операция занимает оооочень много времени, с учетом того, что таких файлов по 150 чертежей порядка 5-6 шт.

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

    Здравствуйте. При загрузке макроса AutoCAD 2016 начинает грузить процессор пополной. Выгрузка макроса не помогает, приходится перезапускать автокад.

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

    > При переводе в PDF через PDF Creator размеры форматок становятся другими

    если печатаете в больших форматах, то должна быть опция Печать всех форматов A0,A1,A2 включена + все рамки должны быть в масштабе 1:1

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

    Здравствуйте. При переводе в PDF через PDF Creator размеры форматок становятся другими. А2(420х594)-получается 297х210; А1(594х841)-900х1245; А0(841х1189)-900х1245,

    А4,А3-нормальные размеры. Подскажите, что можно сделать?

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

    Ищите строчку…и после нее вставьте

    Увы, печатает только в формате А4. Пробовал и так и эдак. Можно кусок кода с уже внедрённой строкой увидеть?

    не очень понял..

    Я имел в виду, что в данном конкретном случае, при печати с помощью макроса пакета чертежей сначала в формате А3, а потом сразу в формате А4, без изменений параметров чертежа, только с изменениями настроек макроса, «превьюшка» вместо первого чертежа распечаталась только в формате А3. В формате А4 первый чертёж был распечатан без замечаний.

    «Превьюшка» — обзор всего рабочего пространства файла с полным набором чертежей в нём.

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

    Прошу прощения за путанное объяснение.

    надо тему изучать, пока решения нет

    Жаль. Это очень бы помогло.

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

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

    неочень понял..

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

    > Было бы здорово, если бы макрос мог автоматически присваивать имена формируемым PDF файлам

    это наверно вряд ли можно (или трудно) сделать внутри макроса, нужна поддержка со стороны принтера pdf.. надо тему изучать, пока решения нет

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

    > Подскажите, пожалуйста, где копать, что бы вторым принтером именно А4 (А3) можно было печатать.

    Ищите строчку

    If bOneToOne And a & b <> "11" And a & b <> "21" Then usePrinter = 2

    и после нее вставьте

    If Not bOneToOne And a & b <> "11" Then usePrinter = 2

    На форме ставить во второй принтер A3, в первый A4, отмечаете использовать второй принтер, ставите 2ой принтер для крупного формата и ОБЯЗАТЕЛЬНО отключаете галочку печать всех форматов (1:1)

    и после такого первый печатает только A4, второй A3

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

    Ответить