Описание алгоритма печати |
Маленькое пояснение относительно того КАК программка узнает что и как ей печатать.
Печать вызывается из двух точек:
- - из закладки "Файлы проекта" - "Вывод на печать"
- - из окна "Утилиты всякие" - "Распечатка отдельных чертежей не подключенных в проект".
Для того чтобы что-то распечатать программе нужно узнать где (на каком чертеже) и что именно (какие рамки и как) распечатывать.
Первый вопрос решается просто - мы распечатываем или конкретные файлы (проекта или отдельные), или что-то из текущего открытого чертежа.
Теперь стоит вопрос КАК программа узнает что ей печатать. Решение тоже не особенно сложное - мы указываем особенное имя блока, который обычно и представляет собой форматную рамку. Но не обязательно. Программе наполнение блока графикой - глубоко пофик, хоть чёртиков нарисуйте. Главное - размеры этого блока. Блок просто указывает своими размерами область печати.
Во время печати программа ищет блоки (вообще-то правильнее "вхождения блоков", проекции блока на чертеж) с указанным именем на текущем чертеже, и если находит, то составляет список, сортирует список по расположению на листе, последовательно настраивает для каждого блока параметры печати и печатает.
Теперь вопрос с именем блока. Дело в том, что форматные рамки, и соответственно блоки, у всех разные и имена тоже могут быть разные. Ну у кого как сложилось, кто к чему привык. Потому везде перед печатью можно указать имя блока. Вернее это часть имени блока, этакая сигнатура - метка в виде набора символов в составе имени блока, по которым программа будет искать и находить блок. По умолчанию эта фраза "PageESKD" и располагается в начале имени блока. Это имя я придумал много лет назад и привык к нему.
Например это легальное имя блока: "FDSJDFBFPageESKD2837634959875". Вы же можете задавать свое имя блока, как вам нравится.
Однако есть пожелание. Желательно что бы в имени блока присутствовало определение формата. Это сильно облегчает жизнь программке и экономит время печати. Строки, которые нужно добавить в имя соответствующего формату блока следующие:
- стандартные вертикальные размеры
"A4 portret" - "_A4P"
"A3 portret" - "_A3P"
"A2 portret" - "_A2P"
"A1 portret" - "_A1P"
"A0 portret" - "_A0P"
- стандартные горизонтальные размеры
"A4 landscape (не ГОСТ!)" - "_A4L"
"A3 landscape" - "_A3L"
"A2 landscape" - "_A2L"
"A1 landscape" - "_A1L"
"A0 landscape" - "_A0L"
- дополнительные размеры A4
"A4x9" - "_A4x9"
"A4x8" - "_A4x8"
"A4x7" - "_A4x7"
"A4x6" - "_A4x6"
"A4x5" - "_A4x5"
"A4x4" - "_A4x4"
"A4x3" - "_A4x3"
- дополнительные размеры A3
"A3x7" - "_A3x7"
"A3x6" - "_A3x6"
"A3x5" - "_A3x5"
"A3x4" - "_A3x4"
"A3x3" - "_A3x3"
- дополнительные размеры A2
"A2x5" - "_A2x5"
"A2x4" - "_A2x4"
"A2x3" - "_A2x3"
- дополнительные размеры A1
"A1x4" - "_A1x4"
"A1x3" - "_A1x3"
- дополнительные размеры A0
"A0x3" - "_A0x3"
"A0x2" - "_A0x2"
Когда создается блок форматной рамки средствами программки (закладка "Форматки"), то генерируется стандартное имя блока. Например "RamkaESKD_A3L_UkrFrm3" или "RamkaESKD_A2x5_UkrFrm3". Красным выделено часть в имени блока, которая определяет формат листа.
Если блок будет уникальным (не будет создан программкой, а изысканной ручной работы) и в имени блока не будет указан формат, то формат определяется во время печати по фактическим размерам блока.
Сначала делается попытка определить очень точно размер. Если по каким-то причинам не получилось, то предпринимается попытка "вписать" блок в любой подходящий формат, который размерами чуть больше чем блок, с минимальным зазором.
Если на этом этапе не удалось определить нужный формат листа, то процесс прекращается и выдается соответствующее предупреждение. Тут хз что печатать на каком листе и т.д.
Есть еще вариант когда была создана форматная рамка по всем правилам, но "растянута" на изображение, путем увеличения масштаба блока. Так любят поступать первичники, геологи, геодезисты и т.д. :-) Вместо того что бы использовать листы и настроить подшивку, они лепят рамки прямо на лист с масштабом 200:1 и более. Программа в таком случае четко знает какой формат нужен (по масштабу блока) и знает что нужно вписать рамку в нужный формат. Это делается автоматически в настройках. Но, есть нюанс! Блок должен быть создан в масштабе 1:1, по размерам листа, и после должен быть отмастшабирован в нужный размер. Иначе программа запутается.
Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single source