Печать документов А4 на листах формата А4

Автор Виталий, 17.01.03, 01:57:21

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Администратор

Цитата: AndNot от 24.11.09, 18:13:43
Где? Я уже устал повторять, что пользуюсь облегченной версией, возможностей которой мне за глаза хватает, ибо нет нужды в трехмерном моделировании. Нет там настроек печати.

Это ограничение некоммерческой версии. Вы на основе этого ограничения некоммерческой версии делаете неверный вывод о том, что профессиональная версия не позволяет «нормально печатать».

Моё мнение: было бы Вам нужно оформление без внешней рамки, Вы бы его уже 10 раз получили (на Форуме были такие просьбы и ответы). Вам же надо доказать, что Вы умнее всех программистов АСКОНа, вместе взятых. Вот такие люди, как Вы, и создают в этом топике аномальную активность. :)

Олег Лысенко

Цитата: AndNot от 24.11.09, 18:13:43
Опять 25. Не нужно ничего вырезать. Достаточно сделать нормальные настройки печати.

Так они ведь есть, я не вижу что там не нормального в настройках печати. 
Это конечно касается полной версии.  Да в LT эти возможности урезаны, но и их можно обойти, если внимательно почитать форум то можно найти ответ.



AndNot

Цитата: Администратор от 24.11.09, 18:17:05
Вы САМИ создали в КОМПАСе документ с внешней рамкой и габаритами 210*297мм, а в Ворде — документ БЕЗ внешней рамки с габаритами 185*287мм. А потом ставите Ворд КОМПАСу в пример: он по-другому печатает документ с другими габаритами (какое достижение!).
Я создал в ворде документ с нужными мне габаритами, а вот в компасе я этого не могу - только из шаблона. Разницу чувствуете?

Цитата: Администратор от 24.11.09, 18:17:05
Вы сравните печать документов с одинаковыми габаритами. И увидите, что все программы выводят их на один и тот же принтер одинаково.
Вы бы сами попробовали, прежде чем говорить, тогда бы поняли, что другие программы работают по другому. А чтобы не быть голословным, то вот Вам принтскрин с ворда, где я задал отступы равными нулю. Как видите он не строит из себя умника и послушно распечатает только то, что попадет в область видимости принтера, обрезав края. Именно об этом я и пытаюсь разъяснить весь день, а почему то Вам лень было даже глянуть.

Администратор

Кстати, существует способ распечатать из LT чертёж  с внешней рамкой так, что эта рамка не напечатается, а отступы от края листа до внутренней рамки будут по ГОСТу.

ДА, этот способ подразумевает несколько лишних телодвижений. Но при использовании в образовательных целях, при печати 3-5 документов в неделю этот способ вполне приемлем.
ДА, сотни документов в день выводить этим способом с «лишними телодвижениями» — посинеешь. Но LT-версия и не подразумевает промышленные объёмы печати.

А для профессионального использования есть профессиональная версия с расширенными настройками печати.

Вообще мне сдаётся, что Ваши, AndNot, проблемы и недовольство вызваны именно тем, что Вы пытаетесь учебную версию использовать в коммерческих целях ;)


Администратор

Цитата: AndNot от 24.11.09, 18:34:17
Как видите он не строит из себя умника и послушно распечатает только то, что попадет в область видимости принтера, обрезав края.

:))))) :))))) :)))))

Цитата: Администратор от 24.11.09, 14:20:20
А если — не такой уж редкий и невозможный случай — что-то начерчено вне рамки чертежа? Что тут КОМПАСу делать? Тоже самому решить «а, фигня, раз вне рамки, значит ненужное, не буду печатать»? Так после этого сюда придёт очередной недовольный Юрик, Павлик или Вовик. И будет возмущаться, что тупой КОМПАС не печатает то, что находится в документе.

Вы просто даже близко не представляете себе, какую волну возмущения поднимут 99,9% пользователей, если КОМПАС по собственной воле НЕ будет печатать ХОТЬ ЧТО-ТО, находящееся в документе.

Повторяю: в профессиональной версии КОМПАСа есть ВСЕ инструменты, чтобы быстро, удобно и однозначно указать КОМПАСу, что надо печатать, а что не надо. А вот в Ворде, кстати, Вы вряд ли добьётесь распечатки всей площади созданного Вами документа без полей (хотя бы на несколькизх листах)

Администратор

Цитата: AndNot от 24.11.09, 18:34:17
Я создал в ворде документ с нужными мне габаритами, а вот в компасе я этого не могу - только из шаблона. Разницу чувствуете?

Неа. В профессиональном коммерческом КОМПАСе Вы тоже это сможете. Любые габариты чертежа, хоть стандартные, хоть нет. Любые свои шаблоны.
А бесплатная образовательная версия — да, у неё есть ограничения (НЕ препятствующие её использованию в образовательных целях, но, да, создающие некоторые неудобства в промышленнолй эксплуатации).  А почему их не должно быть?


Цитата: AndNot от 24.11.09, 18:34:17А чтобы не быть голословным, то вот Вам принтскрин с ворда, где я задал отступы равными нулю. Как видите он не строит из себя умника и послушно распечатает только то, что попадет в область видимости принтера, обрезав края.

Уже написала выше, что точно то же самое можно сделать и в КОМПАС-LT — с несколькими лишними нажатиями кнопки мыши. А почему Вы считаете, что бесплатная версия КОМПАСа должн апредоставлять такой же сервис, как платная версия Ворда?

AndNot

Цитата: Администратор от 24.11.09, 18:22:42
Это ограничение некоммерческой версии. Вы на основе этого ограничения некоммерческой версии делаете неверный вывод о том, что профессиональная версия не позволяет «нормально печатать».
Открою Вам по секрету, я пробовал и платную версию ;) И в ней настройки расположены так хитро, что не сразу и сообразишь где и что искать. Это недостатки именно интерфейса программы. Зачем внешнюю рамку выносить в штамп? Нелогично это. И для чего эти надписи? Что бы помучиться, пока не сообразишь как их убрать?

Цитата: Администратор от 24.11.09, 18:22:42
Моё мнение: было бы Вам нужно оформление без внешней рамки, Вы бы его уже 10 раз получили (на Форуме были такие просьбы и ответы). Вам же надо доказать, что Вы умнее всех программистов АСКОНа, вместе взятых. Вот такие люди, как Вы, и создают в этом топике аномальную активность. :)
У меня стойкое ощущение, что моих постов не читают :) Я уже несколько раз писал, что эту "проблему" уже давно решил. Добавлю, способом не описанным в этой теме ;)  Но я Вас понимаю, куда проще наклеить на пользователя штампик "ламер" и уйти от обсуждения его предложений, так спокойнее и проще живется :) Только такой подход не привлекает потенциальных клиентов ;)

Цитата: Администратор от 24.11.09, 18:35:19
Вообще мне сдаётся, что Ваши, AndNot, проблемы и недовольство вызваны именно тем, что Вы пытаетесь учебную версию использовать в коммерческих целях ;)
Если бы мне действительно понадобилась приблуда в коммерческих целях, то я бы не посмотрел на законы и спокойно скачал бы хакнутую версию, их уже полно в инете лежит, на любой вкус :) Но я ведь пользуюсь лайтом. Как думаете, почему?

Цитата: Администратор от 24.11.09, 18:43:37
Вы просто даже близко не представляете себе, какую волну возмущения поднимут 99,9% пользователей, если КОМПАС по собственной воле НЕ будет печатать ХОТЬ ЧТО-ТО, находящееся в документе.
Я разве выдвигал такие идеи? Я просто предложил дополнить компас такой возможностью. Что у Вас за самоуверенность, что это никому не нужно? Вам то откуда знать, кому и для чего это понадобится?

Администратор

Из всего, что похоже у Вас не предложение, я вижу только обще-неопределённое желание, чтобы КОМПАС печатал документы А4 «как Ворд». Причём, заметьте, Вы начали свою деятельность на Форуме не с самого этого частного предложения по поводу печати, а с хамского наезда на разработчиков всей системы.

Я правильно понимаю Ваше пожелание? Если правильно, то не могли бы Вы детальнее раскрыть алгоритм этого усовершенствования?

Давайте для начала на одном конкретном примере (а потом перейдём к общему случаю).
Дано: файл КОМПАС-чертёжа формата А4. Внешняя рамка либо включена, либо выключена (возьмите тот вариант, который удобнее для Ваших рассуждений). Драйвер принтера «говорит» КОМПАСу, что размер поля печати — 198.0*285,5мм.
Что должен делать КОМПАС (по шагам)? Если он должен использовать какую-то дополнительную информацию (цифры, настройки) — откуда он её должен брать?

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

AndNot

Не, ворд только как наглядный пример.
Ну давайте по порядку. Поскольку словами обойтись трудно, то прибегну к Си. На момент печати нам известны следующие данные:
RECT ListSize - размер бумаги в принтере (это задает пользователь, из списка поддерживаемых принтером форматов)
RECT PrintSize - размер поля печати (данные от драйвера устройства)
RECT UserSize - размеры отступов заданные пользователем (слева, справа, сверху и снизу)
RECT GrafSize - размер получаемого из чертежа битмапа (с учетом формата, масштабирования, рамки и тд., в общем юзер настраивает)
BOOL UsePrintSize - флажок использования/игнорирования данных драйвера принтера
BOOL ClipImage - флажок обрезания изображения, т.е. по сути задает режим: onepage/multipage
RECT VirtSize - размер поля печати, но не от принтера, а сами вычислим.

Для начала определяем VirtSize:
if (UsePrintSize) {
  VirtSize = PrintSize;
} else {
  VirtSize = ListSize;
};
Теперь учитываем размеры заданных пользователем отступов:
VirtSize.left += UserSize.left;
VirtSize.top += UserSize.top;
VirtSize.right -= UserSize.right;
VirtSize.bottom -= UserSize.bottom;
Все, имеем заданный пользователем размер поля печати. Теперь определяемся, как будем выводить изображение:
if (ClipImage) {
  // задан режим обрезания краев, поэтому отбрасываем все что не влезет в VirtSize
  // и по сути получаем только одну страницу на вывод
  ClipRect(&GrafSize, &VirtSize);
};
Теперь разбиваем изображение на листы и выводим:
int numListWidth = GrafSize.width / VirtSize.width; // количество листов по ширине
int numListHeight = GrafSize.height / VirtSize.height; // количество листов по высоте
Все, получили количество листов, которые необходимы для вывода изображения. Дальше цикл и выводим каждый лист:
for (int j = 0; j < numListHeight; j++) {
  for (int i = 0; i < numListWidth; i++) {
    // получаем очередную порцию изображения, размером (VirtSize)
    RECT r = GetRect(&Image, i*VirtSize.width, j*VirtSize.height, VirtSize.width, VirtSize.height);
    // поскольку VirtSize не обязательно совпадает с размерами полей принтера, то обрезаем порцию по полям принтера
    ClipRect(&r, &PrintSize);
    // отсылаем на принтер
    PutToPrinter(&r);
    }
};
То есть разбивка на листы идет не по размеру полей принтера, а по заданным пользователем. В большинстве случаев размер VirtSize будет совпадать с размером полей принтера и печать будет точно такой же как и сейчас. Но стоит пользователю включить галочку ClipImage, как не умещающееся на один лист изображение будет отброшено. Отбрасываемое изображение можно будет легко регулировать через UserRect и UsePrintSize. В общем за счет небольшого изменения логики программы появляются довольно неплохие возможности для печати на один лист. Разумеется для распечатки на множество листов это особо не нужно, но тогда просто не задействуются ClipImage и UsePrintSize.

Естественно псевдокод очень упрощен, но думаю логику описывает вполне ясно. Если нет, то поясню более детально :)

Для примера посмотрите настройку печати WinDJV. Он тоже может печатать многостраничные документы, но очень гибок в настройках. Поле "Не учитывать поля принтера" соответствует UsePrintSize, поле "Обрезать края" соответствует ClipImage. В результате в этом диалоге довольно легко настраивается печать под любые требования, вплоть до двусторонней печати. А главное даже новички легко осваивают, тут все самое важное на виду, не нужно рыскать по менюшкам и ждать всплывающих подсказок пиктограмм. Это ли не главные требования по удобству интерфейса?

Олег Лысенко

Цитата: AndNot от 24.11.09, 23:26:00

Читал, читал и так и не понял что здесь есть такого чего нет в полной версии Компаса, все это есть. 

Администратор

Уважаемый AndNot!

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

К сожалению, предложенная Вами последовательность действий не решает задачу «умной» распечатки документов А4 на принтерах и бумаге А4 без масштабирования и с заданными пользователем полями.
Ну, может, для _некоторых_ документов у 1% пользователей это сработает, но в общем виде алгоритм не годится. Извините уж.

Поверите на слово или публично разобрать, где «дыры»?  :)


Цитата: Олег Лысенко от 25.11.09, 10:17:30
Читал, читал и так и не понял что здесь есть такого чего нет в полной версии Компаса, все это есть. 

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

Да, часть этого алгоритма показывает нам, что делает КОМПАС при многолистовой печати. Зачем эта часть, которая уже реализована? А вот как печатать в однолистовом режиме, ответ не дан — есть попытка ответа, но с кучей неучтённых факторов...

AndNot

Ну почему же не решает? То что в предложенном "коде" есть неучтенные моменты я и сам знаю, но тогда бы код выглядел в несколько раз большим и идея потерялась бы :)
График формата А4 размером не больше листа А4, поэтому предложенный алгоритм позволяет одним кликом по checkbox'у разместить его на один лист, не обращая внимания на реальное поле печати. Естественно, что не попадающая в поле печати принтера часть графика будет просто отброшена. Но во первых, как правило график ограничен рамками ГОСТа, а значит наиболее значимая часть графика полюбому попадет в поле печати большинства меделей принтеров. Во вторых, если конкретный принтер имеет слишком большие отступы от краев бумаги, то не отпечатанную рамку легко дорисовать вручную, это значительно проще нежели вырезать и склеивать листы (а я с этим сталкивался). И в третьих, бывают случаи, когда нужно быстренько отпечатать часть чертежа, допустим из графика А2 на лист А4. Естественно сейчас это можно сделать, но с предложенной поправкой это будет проще и быстрее, к тому же станет возможной отпечатка на листы с заранее прорисованной рамкой.

Администратор

8-)  :%:
Простите, мы здесь говорим о создании универсального функционала для всех пользователей САПР КОМПАС?
Или о печати лично для Вас какого-то графика с дорисовкой рамки вручную?

Urik

Цитата: Администратор от 24.11.09, 14:20:20
...
КОМПАС позволяет создать документ как с «прямоугольничком», так и без оного. Вы сами, самостоятельно и сознательно, в здравом уме и твёрдой памяти, создаёте документ с внешней рамкой. Тем самым Вы говорите Компасу, что она Вам нужна.
В чертеже - это границы листа. И да, я говорю Компасу, что она мне нужна, просто удобно.
Цитировать
При печати Вы эту внешнюю рамку тоже не отключаете, хотя такая возможность есть. Тем самым Вы снова подтверждаете, что внешняя рамка Вам нужна и при печати.
В нынешней ситуации в предпросмотре мы имеем жесткие границы области печати и внешнюю рамку, которая к листу в принтере никакого отношения не имеет. Как Вы сказали, это я ее нарисовал. Ну хорошо, я согласился ее отображать, но придумали-то ее разработчики. И, наверно, именно в качестве границ листа. И что, при печати это уже не лист, а графика конструктора?
Когда формат документа совпадает с форматом листа внешняя рамка вообще не должна быть видна в предпросмотре.
Почему граница листа в чертеже становиться элементом чертежа при печати (если ее не отключить)?
Цитировать
При этом, заметьте, Вы МЕНЯ спрашиваете: «А зачем он, этот прямоугольничек, если он никогда в область печати не помещается?». А я не знаю, зачем он ВАМ и зачем ВЫ САМИ его поместили в свой документ, если он никогда в область печати не помещается.
...
Вобще-то это установки Компаса по-умолчанию. Еще раз повторю: В чертеже этот прямоугольничек - границы листа. (Или сотрудники Аскона считают по-другому?) Это НЕ элемент чертежа!
А масштабировать если надо, то только штамп. То что изображено на чертеже, как правило, уже имеет свой масштаб и обычно скомпановано так, что целиком помещается на лист.


AndNot

Цитата: Администратор от 26.11.09, 10:49:11
8-)  :%:
Простите, мы здесь говорим о создании универсального функционала для всех пользователей САПР КОМПАС?
Извините, но пока еще в компасе универсального функционала и близко нет. Есть только жестко заданная программистами линия "поведения" компаса, несколько однобокая и линейная. А шаг влево, шаг вправо - расстрел :) И не только в компасе, но и на форуме :)))))
Цитата: Администратор от 26.11.09, 10:49:11
Или о печати лично для Вас какого-то графика с дорисовкой рамки вручную?
Так компас для пользователей создан? Или по Вашему это пользователи обязаны приспосабливаться к неудобствам программы?

Администратор

Цитата: Urik от 26.11.09, 13:26:32
В чертеже этот прямоугольничек - границы листа. (Или сотрудники Аскона считают по-другому?) Это НЕ элемент чертежа!

Сотрудники АСКОН считают по-другому. Внешняя рамка является реальным графическим (а не виртуальным условным) объектом, и он необходим именно как графика при печати документов на широкоформатном плоттере. Вы тоже просто воспринимайте внешнюю рамку как 4 отрезка, и всё встанет на свои места. Тут же не теоретический философский вопрос, кто чем считает рамку. Она фактически реализована вот именно так. Это просто данность.

...А лично я считаю, что в данный момент Вы уже просто _придумываете_ искусственные доводы, чтобы поспорить (непонятно с чем).

Цитата: Urik от 26.11.09, 13:26:32
Когда формат документа совпадает с форматом листа внешняя рамка вообще не должна быть видна в предпросмотре.

А вот это хорошее предложение. Только надо понимать следующее: да, его реализация в _некоторых_ случаях позволит распечатать А4 на одном А4 без масштабирования и без отключения рамки вручную. Но она всё равно не позволит сразу, автоматически и предсказуемо, разместить чертёж на бумаге (упрощённо говоря, автоматическое отбрасывание внешней рамки всё равно не обеспечит нужные отступы от края листа до внутренней рамки).

Кто сейчас Вам не даёт самому отключить внешнюю рамку в фильтрах вывода на печать? Объясните, что в этом сложного? При работе в чертеже она будет видна. А на печать не пойдёт. Вам же это нужно? Так зачем писать дополнительный функционал, когда того же самого можно добиться существующим функционалом?

Моё личное мнение:
Процесс печати в КОМПАСе имеет _небольшие_ реальные резервы для улучшения. В основном за счёт умного распознавания типовых ситуаций печати (например, принтер А4 для документа А4) и за счёт объединения в одну команду типовых наборов уже существующих действий (например, центрировать документ на поле печати, и только после этого «отбросить» внешнюю рамку) и за счёт сохранения настроек печати в разных комбинациях.
У меня таких предложений есть около десятка. Но я их выдвигать и продвигать даже не собираюсь. Именно потому, что для каждого такого предложения я сразу точно вижу его неуниверсальность и ограниченную сферу применения.

Это анонимный пользователь Форума может легко себе позволить сказать «если конкретный принтер имеет слишком большие отступы от краев бумаги, то не отпечатанную рамку легко дорисовать вручную».
А если АСКОН выпустит систему с такой чудо-функцией, то представьте себе сами, что мы услышим в ответ на предложение дорисовать непропечатанные рамки вручную.

Повторюсь: сейчас в КОМПАСе можно получить любой нужный вариант печати. Любой. Вообще абсолютно любой.
Ни один человек в этой теме не назвал задачу печати, которую невозможно выполнить в проф.версии. Просто наименее опытные пользователи склонны формулировать свою проблему как «аааа, АСКОН дураки, не могут реализовать то, что мне нужно!», а не как «Я не разобрался, как мне получить нужный результат — подскажите, пожалуйста».
Ни один человек в этой теме не предложил реальных рабочих способов улучшения печати, которые устроят всех пользователей.
Ни одному пламенному борцуну не пришла в голову мысль: «ведь эти люди пишут профессиональный коммерческий САПР по 10-20 лет, _может быть_, они действительно знают какие-то факторы, которые не вижу я? Ну _может быть_, они не от тупости и упрямства не пишут вот эту очевидную для меня вещь, а по какой-то объективной причине?»

Каждого пишущего сюда прошу предварительно задуматься: вы какую цель преследуете? Получать результат или доказывать, что его получение невозможно? Учиться самому или обличать разработчиков? Топать ногами, что всё плохо, или предложить _реальный_ путь улучшения?

Администратор

Цитата: AndNot от 26.11.09, 14:36:45
Извините, но пока еще в компасе универсального функционала и близко нет. Есть только жестко заданная программистами линия "поведения" компаса, несколько однобокая и линейная.

Вы просто не знакомы с функционалом печати профессиональной версии КОМПАСа. Он позволяет получить ВСЕ необходимые пользователям варианты печати в любой комбинации.


Цитата: Администратор от 26.11.09, 10:49:11
Так компас для пользователей создан? Или по Вашему это пользователи обязаны приспосабливаться к неудобствам программы?

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

То, что для Вас является «неудобством программы» (например, печать внешней рамки):
1. Для другого пользователя является огромным удобством и обязательной функцией, с которой он не согласен расстаться.
2. Легко отключается или перенастраивается.

AndNot

Если у вашей программы все так прекрасно, то откуда такое огромное количество жалоб пользователей? ;) Вы сами себе противоречите.

sulyco

Цитата: Urik от 26.11.09, 13:26:32
...А масштабировать если надо, то только штамп. То что изображено на чертеже, как правило, уже имеет свой масштаб и обычно скомпановано так, что целиком помещается на лист.
Конгениально! 88)) Масштабировать рамку и штамп и не масштабировать чертеж. (Правда хотелось бы с выбором "все/рамку")
п.с. Ну простите уж за очередную хотелку

AndNot

Цитата: Администратор от 26.11.09, 15:01:57
Цитата: AndNot от 26.11.09, 14:36:45
Извините, но пока еще в компасе универсального функционала и близко нет. Есть только жестко заданная программистами линия "поведения" компаса, несколько однобокая и линейная.

Вы просто не знакомы с функционалом печати профессиональной версии КОМПАСа. Он позволяет получить ВСЕ необходимые пользователям варианты печати в любой комбинации.
Компас не может мой вариант поддержать, так что Вы поторопились с утверждением, что компас позволяет  получить ВСЕ необходимые пользователям варианты ;)