I love Ukraine

Описание алгоритма печати


Маленькое пояснение относительно того КАК программка узнает что и как ей печатать.


Печать вызывается из двух точек: 

  • - из закладки "Файлы проекта" - "Вывод на печать" 
  • - из окна "Утилиты всякие" - "Распечатка отдельных чертежей не подключенных в проект".


Для того чтобы что-то распечатать программе нужно узнать где (на каком чертеже) и что именно (какие рамки и как) распечатывать.

Первый вопрос решается просто - мы распечатываем или конкретные файлы (проекта или отдельные), или что-то из текущего открытого чертежа. 

Теперь стоит вопрос КАК программа узнает что ей печатать. Решение тоже не особенно сложное - мы указываем особенное имя блока, который обычно и представляет собой форматную рамку. Но не обязательно. Программе наполнение блока графикой - глубоко пофик, хоть чёртиков нарисуйте. Главное - размеры этого блока.  Блок просто указывает своими размерами область печати.

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

Теперь вопрос с именем блока. Дело в том, что форматные рамки, и соответственно блоки, у всех разные и имена тоже могут быть разные. Ну у кого как сложилось, кто к чему привык. Потому везде перед печатью можно указать имя блока. Вернее это часть имени блока, этакая сигнатура - метка в виде набора символов в составе имени блока, по которым программа будет искать и находить блок. По умолчанию эта фраза "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