Jump to content

Смещение содержимого листа при смене принтера


Recommended Posts

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

Наш рабочий процесс требует печатать как на pdf, так и на принтер,
приходится постоянно корректировать положение содержимого на листе, что крайне неудобно.

На видео показано:

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

шпаргалка из справки))

710461086_.png.06aeb3121f90ab90eb6ba15b1bb99c99.png

 

Вопрос:
Что сделать, чтобы после компоновки листа, содержимое листа не сдвигалось при выборе/смене устройства печати.

 

Edited by СПиС
  • Like 1
Link to comment
Share on other sites

Ваша проблема в общем понятна. А теперь вопрос.

 

Допустим, у вас есть чертёж на форматке А4. Вы его выводите на PDF-принтер у которого поля нулевые на бумагу А4. Область печати совпадает с размером бумаги. Всё отлично помещается на листе. Теперь вы хотите вывести этот же чертёж на физический принтер у которого поля, допустим, по 10мм по каждой стороне. Итого, область печати физического принтера меньше области печати PDF-принтера на 20мм по каждому измерению. Что по-вашему должен сделать nanoCAD? Какое действие (или последовательность действий вас и программы) вы бы посчитали правильным?

Link to comment
Share on other sites

В 17.12.2020 в 19:54, СПиС сказал:

Вопрос:
Что сделать, чтобы после компоновки листа, содержимое листа не сдвигалось при выборе/смене устройства печати.

Ниже продемонстрированы настройки

Также вас возможно заинтересуют эти видео:

Создание шаблона печати

Автоматический подбор листа по чертежу

Link to comment
Share on other sites

15 часов назад, bay сказал:

 Что по-вашему должен сделать nanoCAD?

NanoCAD должен не менять расположение чертежа относительно листа при изменении области печати.

 

" Какое действие (или последовательность действий вас и программы) вы бы посчитали правильным?"

 

Фактическая ситуация:

Как Вы и говорили, при выборе PDF-принтера, у которого поля нулевые, начало области печати ((0;0)ОП) совпадает с началом  чертежа ((0;0)Ч) и с  началом границы листа ((0;0)ГЛ)

При выборе физического принтера, у которого поля (допустим - 10 мм), (0;0) ОП совпадает с (0;0) Ч, а (0;0) ГЛ смещается на величину поля (10 мм)

Соответственно чертеж смещается относительно листа на величину поля (10мм)

Хотелось бы:

    - чтобы начало границы листа ((0;0)ГЛ) и чертежа ((0;0)Ч) совпадали, а не зависели от области печати (ОП), а ОП  смещалась на величину поля (10 мм) относительно листа;

    - чтобы расположение Ч на листе было зафиксировано и ОП никак не влияла на это, иными словами, чтобы ОП сдвигалась относительно листа, а не наоборот.

 

В итоге при смене принтера подобная проблема не возникала бы.

 

Untitled-2.png

уцк.png

Edited by СПиС
Link to comment
Share on other sites

1 час назад, СПиС сказал:

В итоге при смене принтера подобная проблема не возникала бы.

Согласен, но тогда возникает другая проблема: при печати на принтере с ненулевыми полями часть чертежа будет попадать в область полей и не будет напечатана на бумаге. А поля бывают достаточно большие: например по 6мм сверху слева и справа и 20мм снизу листа. Для форматки А4 это будет почти катастрофа. Как быть в этом случае?

 

Второй вопрос. cad@maxsoft.ru предложил несколько способов для обхода вашей проблемы. По сути все они сводятся к вписыванию чертежа в область печати конкретного принтера с нарушением точного масштаба (т.е. будет использоваться "пользовательский" масштаб вместо предопределённого). Чем вас не устраивает этот подход?

Link to comment
Share on other sites

1 час назад, bay сказал:

По сути все они сводятся к вписыванию чертежа в область печати конкретного принтера с нарушением точного масштаба (т.е. будет использоваться "пользовательский" масштаб вместо предопределённого). Чем вас не устраивает этот подход?

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

В нашей практике были случаи, когда проверяющие инстанции линейкой (!) измеряли длину рамки.

При несовпадении (184,5 вместо 185 мм) поднималась серьезная буча с обвинением в жульничестве, т.к. де неправильно посчитаны длины и т.д. и т.п..

Оправдания, что расчеты велись по значениям из акада, а не с распечатанного листа, отклика не находили. Как-то так...

 

Данная проблема обычно относится к печати форматов А3 и А4 на принтеры с предварительно загруженной бумагой сооответствующего формата в определенные лотки. Т.е., такая проблема не характерна для плоттеров  с рулонной подачей (хотя там тоже могут быть нюансы).

Одним из способов решения проблемы печати на принтеры (А3 и А4) у нас применялась следующая методика:

1. область печати задавалась по внутренней рамке с захватом левого нижнего угла бокового штампа и правого верхнего угла внутренней рамки.

2. для указанной области устанавливалась опция "Центрировать" и масштаб указывался 1:1 (не вписывать!)

 

В результате:

-смещение могло и присутствовать в пределах 0,5 мм (визуально практически не заметно)

-искажения масштабов не происходит

-вся содержательная часть чертежа попадает в область печати (внешняя рамка - это все-таки просто обозначение границы, а не чертеж)

-pdf создавался корректно (с небольшим смещением и без искажения масштаба) на листе необходимого размера.

 

Как вариант, можно центрировать область печати, принятую по внешней рамке.

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

  • Like 1
Link to comment
Share on other sites

19 часов назад, EdwardSt сказал:

В нашей практике были случаи, когда проверяющие инстанции линейкой (!) измеряли длину рамки.

Да, согласен, это аргумент.

 

Фактически, вы идёте тем же путём, что предлагает СПиС: жертвуете частью форматки, которая попадёт на поля листа, ради точного соблюдения масштаба и попадания содержательной части чертежа в область печати.

Link to comment
Share on other sites

21 минуту назад, bay сказал:

Фактически, вы идёте тем же путём, что предлагает СПиС: жертвуете частью форматки, которая попадёт на поля листа, ради точного соблюдения масштаба и попадания содержательной части чертежа в область печати.

 

Не совсем так.

Принципиальная разница в подходе к тому, кто решает, какая часть чертежа является содержательной.

 

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

 

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

И дальше вопрос к принтеру - может ли он разместить эту часть на доступной ему поверхности листа.

 

На мой взгляд, вариант с точным программным анализом того, что хочет проектировщик, пока еще в области будущего, пусть и недалекого.

А прямое указание работает уже прямо сейчас. 

Link to comment
Share on other sites

13 минут назад, EdwardSt сказал:

Не совсем так.

Принципиальная разница в подходе к тому, кто решает, какая часть чертежа является содержательной.

На сколько я понял из второго поста СПиС (в части "Хотелось бы..."), предлагается все объекты, размещаемые в пространстве бумаги, привязывать к левому нижнему углу листа (начало координат совпадает с левым нижним углом листа). И никакого программного анализа, что является содержательной частью чертежа, не производится.

 

Получается, что если печать производится на принтере без полей, то результат будет точно соответствовать изображению на экране. Если печать производится на принтер с полями (размер полей зависит от принтера), то часть чертежа, которая попадёт в область полей, не будет напечатана.

 

Такой подход в программе можно реализовать достаточно просто. Однако при этом теряется совместимость с Autocad: там начало координат пространства бумаги привязано к левому нижнему углу области печати.

 

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

 

Сейчас логика работы nanoCAD (и Autocad) следующая:

  1. Начало координат в пространстве бумаги совпадает с левым нижним углом области печати.
  2. Форматку (левый нижний угол её габаритного прямоугольника) необходимо ставить в точку (0, 0).
  3. При изменении области печати при смене принтера начало координат пространства бумаги изменяет своё положение относительно физического листа. При этом возможно чертёж будет обрезан справа и/или сверху.
  4. Дополнительную регулировку положения чертежа относительно области печати можно задать указанием смещений по осям X и Y.

 

Link to comment
Share on other sites

Я вижу решение проблемы в следующей последовательности действий:

  1. Чертёж на листе размещать относительно (0, 0) области печати.
  2. Для каждого принтера, на который предполагается делать вывод, и для каждого формата бумаги создать свой набор параметров листа. В наборе параметров листа отрегулировать положение чертежа относительно области печати указанием смещений по осям X и Y.
  3. К листам с одинаковым форматом бумаги применить соответствующий набор параметров листа для одного и того же принтера.
  4. Окончательную настройку и вывод на печать осуществлять через команду PUBLISH. Для вывода на "другой" принтер к листам применить наборы параметров листа, соответствующие этому принтеру, и с учётом формата бумаги (кнопка Параметры листа...).

Как-то так.

 

Единственный минус: в п.4 для каждого листа набор параметров листа придётся настраивать индивидуально. Пока нет возможности выделить в списке группу листов и назначить для них нужный набор параметров листа.

Link to comment
Share on other sites

16 минут назад, bay сказал:

Я вижу решение проблемы в следующей последовательности действий:

...

 

 

Возможно минусов несколько больше...

  1. Чертёж на листе размещать относительно (0, 0) области печати. А каким образом вы предполагаете получать границы области печати на листе? Сходу такого способа не просматривается...
  2. Для каждого принтера, на который предполагается делать вывод, и для каждого формата бумаги создать свой набор параметров листа. В наборе параметров листа отрегулировать положение чертежа относительно области печати указанием смещений по осям X и Y. Случай из практики (отнюдь не уникальный): сисадмин заливает новые драйверы под тот же сетевой принтер . Вчерашняя область печати стала отличной от сегодняшней. Фэйл печати .... 
  3. К листам с одинаковым форматом бумаги применить соответствующий набор параметров листа для одного и того же принтера. Настройки печати включают не только формат бумаги, но и способ размещения (справа, влево, по центру и т.д.). Как быть с этим?
  4. Окончательную настройку и вывод на печать осуществлять через команду PUBLISH. Для вывода на "другой" принтер к листам применить наборы параметров листа, соответствующие этому принтеру, и с учётом формата бумаги (кнопка Параметры листа...). У каждого может быть свой набор приемов работы. Но навязывать вместо естественной операции "Печать" использование операции "Публикация" - все-таки перебор. Имхо

Как-то так...

 

PS.  И все эти проблемы (или большинство) снимаются при предложенном мною выше методе

Edited by EdwardSt
Link to comment
Share on other sites

EdwardSt, моё предложение совершенно не отрицает ваше. Более того, их можно применять совместно.

 

47 минут назад, EdwardSt сказал:

А каким образом вы предполагаете получать границы области печати на листе? Сходу такого способа не просматривается...

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

 

1 час назад, EdwardSt сказал:

Случай из практики (отнюдь не уникальный): сисадмин заливает новые драйверы под тот же сетевой принтер . Вчерашняя область печати стала отличной от сегодняшней. Фэйл печати .... 

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

 

Кстати, наборы параметров листа можно создавать/изменять/распространять централизованно через файлы стандартов САПР (*.dws).

Также для этого можно использовать *.dwg, *.dwt, *.dxf. Но идейно правильнее - через файлы стандартов САПР .

 

1 час назад, EdwardSt сказал:

Настройки печати включают не только формат бумаги, но и способ размещения (справа, влево, по центру и т.д.). Как быть с этим?

Да, а в чём проблема? Используйте те параметры, которые вам необходимы. Не нужно задавать такие значения параметров, которые потенциально могут вызвать проблемы. Иначе - ССЗБ.

 

Топикстартер работает в режиме Лист (параметр диалога печати Область печати). Для него выравнивание (вправо/влево/по центру) не работает. Вы устанавливаете этот параметр в значение Рамка. Здесь выравнивание доступно. В этом режиме точно также можно настроить расположение чертежа относительно области печати и сохранить набор параметров листа.

 

1 час назад, EdwardSt сказал:

У каждого может быть свой набор приемов работы. Но навязывать вместо естественной операции "Печать" использование операции "Публикация" - все-таки перебор. Имхо

Ни кто ничего не навязывает. Выбор за вами.

 

Операция ПУБЛИКАЦИЯ нужна, если необходимо выпускать большие комплекты документации. При этом проблема смещения содержимого листа при смене принтера стоит особенно остро. Поэтому я и порекомендовал менять наборы параметров листа в диалоге этой команды. Но вы можете применять к листу заранее созданные наборы параметров листа и в диалоге команды ПЕЧАТЬ.

 

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

Link to comment
Share on other sites

20 часов назад, bay сказал:
22 часа назад, EdwardSt сказал:

А каким образом вы предполагаете получать границы области печати на листе? Сходу такого способа не просматривается...

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

..........

 

Извиняюсь, но "совет хозяйке" определить абсолютные координаты пунктирной рамки, чтоб их потом ввести  через# - это действительно только "на заметку", а не для практики. Или имелось ввиду что-то другое?.

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

 

 

А можно просто указать явно рамкой содержательную часть чертежа и получить нужный результат на ЛЮБОМ принтере, если он может эту содержательную часть разместить на листе с указанным масштабом.  

 

PS. Кстати, указание области печати через выбор рамкой дает более устойчивые результаты при смене принтеров и даже CADов. Например, на практике неоднократно сталкивался со случаями, когда метод выбора через "Границы" дает разные результат в AutoCAD и NanoCAD при попытке печати одного и того же файла. Именно поэтому теперь я всегда рекомендую проектировщикам рамку, а не лист и границы.

Link to comment
Share on other sites

1 час назад, EdwardSt сказал:

Извиняюсь, но "совет хозяйке" определить абсолютные координаты пунктирной рамки, чтоб их потом ввести  через# - это действительно только "на заметку", а не для практики. Или имелось ввиду что-то другое?.

Не надо определять абсолютные координаты пунктирной рамки. Они уже определены. Её левый нижний угол соответствует началу координат области печати. Поэтому, когда вы, допустим, вставляете на лист форматку, её надо ставить в точку (0, 0), а не в точку, визуально соответствующую изображению листа бумаги.

paper02.png.0966d42eed6c9b62047bbdf67fa60ed6.png

 

2 часа назад, EdwardSt сказал:

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

Вообще-то я говорил про "благодарность" производителю драйвера/принтера.

 

2 часа назад, EdwardSt сказал:

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

Я не спорю с вами.

Можно делать по вашей методике, можно делать так, как написал я. Можно скомбинировать эти два способа.

Это уже будет зависеть от потребностей и предпочтений топикстартера.

Link to comment
Share on other sites

Извините, но я так и не понял, каким образом мне нужно определить величину смещения, чтоб на вашем примере (см. рисунок выше) добиться попадания  содержательной части (внутренняя рамка, боковой штамп) в область печати. Смещение на какой-то вектор всех элементов, включая форматку и все видовые экраны? И так под каждый новый принтер, включая новую версию драйвера? А потом еще отслеживать наборы параметров? Да еще держать в уме, что при передаче этого файла (например, заказчику) возможно использование как NanoCAD, так и AutoCAD?

 

Как-то все это выглядит очень хлопотным...

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

Как-то так...

Link to comment
Share on other sites

В 17.12.2020 в 16:54, СПиС сказал:

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

Наш рабочий процесс требует печатать как на pdf, так и на принтер,

 

Как успехи в решении проблемы ?

Можете приложить файл примера ?

Link to comment
Share on other sites

11 часов назад, bay сказал:

Вы прочитали обсуждение?

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

Link to comment
Share on other sites

В 06.01.2021 в 10:00, maratovich сказал:

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

Вам известно мнение автора темы?

 

Изложенная проблема на самом деле проблемой не является.

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

Просто такова реальность и к ней необходимо приспособиться.

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

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

Link to comment
Share on other sites

Парни, если честно - я вообще то автора спрашивал.

У меня вообще с этим проблем нет. И решение своё есть. Нажал две кнопки - распечатал в PDF 100500 форматов, сразу нажал две другие кнопки и пошла печать на физический.

И хотелось обсудить с автором, может быть ему бы помогло.

 

  • Thanks 2
  • Haha 1
Link to comment
Share on other sites

  • 3 months later...

Читал, читал и и ничего не понял....:(

В приложении 2 файла с настройками печати на физ принтер и PDF.

Форматка стоит по краю листа и при печати на физ принтере обрубается только надпись с форматом, масштаб печати 1:1, такой вариант нас устраивает, но при печати через PDF принтер, и край смещается с точки 0;0 в минусовую зону и рамка съезжает, что можно сделать в таком варианте.

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

p.s. если выбрать область печати границы для принтера pdf, то все норм, но как это сделать при пакетной печати?

p.s.s. можно область печати выбрать рамку и центрировать, тогда при смене принтера будет все нормально, но интересует вариант настройки именно самого pdf принтера по умолчанию

p.s.s.s. Слепой не заметил сразу что в нанокаде при пакетной печати можно настраивать параметры листа из сохраненных. В принципе это самый удобный для меня вариант.

Печать принтер пдф.JPG

Печать физический принтер.JPG

Edited by Xekkuc
Link to comment
Share on other sites

  • 2 years later...
В 24.12.2020 в 21:13, bay сказал:

Сейчас логика работы nanoCAD (и Autocad) следующая:

  1. Начало координат в пространстве бумаги совпадает с левым нижним углом области печати.

Извиняюсь, что влезаю в старую тему. В AutoCAD есть 2 варианта: начало координат в пространстве листа совпадает с левым нижним углом области печати ИЛИ с левым нижним углом листа. Можно выбрать, что удобно/нужно. В nanoCAD сколько не искал - не вижу возможности включения второго варианта. Она вообще существует?

Link to comment
Share on other sites

47 минут назад, DmitryM сказал:

Она вообще существует?

в нано переменная PLOTOFFSET не реализована

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

советую при работе  в нано забыть про область печати ЛИСТ и использовать область печати рамка

 

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...