Но почему именно «цифровой»? Да хотя бы потому, что для плоттера траектория движения инструмента задаётся в виде набора координат (цифр) последовательных точек. Таким образом, непрерывные для глаза линии чертежа необходимо превратить в векторы: первая пара координат — это точка начала вектора, вторая пара координат — это конечная точка, направление вектора — от первой точки ко второй; далее вторая точка становится началом, а третья точка концом следующего вектора и т. д. Однако, что значит «непрерывные для глаза линии»? А это зависит от того, где мы видим эти линии. В файле чертежа они недоступны для глаза, хотя и там чертёж есть цифровое представление прямых, окружностей, дуг, сплайнов… А видеть мы можем, когда чертёж выведен на экран или бумагу. Вывод чертежа на бумагу с помощью цифрового плоттера означает тот же цифровой вывод векторов, такой же как и у режущего. Принтер тоже даёт чертёж в виде растра (точек) — помните такую характеристику, как разрешение принтера?
Что касается экрана, то расскажу байку из своей практики. В начале 90-х «моя» команда разработала технологический чертёжный пакет (САПР — в тогдашней терминологии) для швейников. Только что появились ЖК-мониторы: пиксель у них был крупнее, чем сейчас, и мы начали получать претензии, что горизонтальные и вертикальные линии слегка наклонны. Выяснилось, что конструктор видит на экране, например, на горизонтальной линии ступеньку размером «в пиксель». Мы смогли доказать, что линии действительно горизонтальны или вертикальны таким экстравагантным способом: конструктор мог щёлкнуть на «неправильной» прямой и увидеть совпадающие координаты точек начала и конца с заданной точностью. Вскоре эта функция сделала своё дело и стала ненужной.
Основные элементы чертежа — это отрезок прямой, окружность, дуга и кривая (обычно это сплайн или Безье). Эти элементы необходимо подготовить к выводу на цифровое устройство. Прежде всего надо сказать, что существуют два де-факто стандартных значения инкременты, отрабатываемых плоттером — 0,025 мм и 0,01 мм. Инкремент — это минимальная длина вектора вдоль осей X и Y, которую может отработать плоттер. При расчёте координат алгоритм должен округлять значения в соответствии со значением разрешённой инкременты данного устройства. Второй аспект — как обрабатывает плоттер окружности/дуги. Возможны два варианта: когда внутренняя программа управления сама формирует траекторию движения инструмента для дуги и когда внешняя программа вывода рассчитывает вектора траектории, эмулирующей окружность/дугу.
Где же находятся критические «точки» округления координат векторов вывода? Прежде всего это обеспечение стыковки начала замкнутого контура с его концом. Так как каждый последующий вектор использует в качестве начальной точки последнюю точку предыдущего вектора, вопрос непрерывности «внутренних» векторов решается автоматически. А вот первая и последняя точки соответственно первого и последнего векторов контура в принципе «независимы» в массиве координат. Самое простое решение — проверять и назначать значениям координат последней точки значения первой.
Второй момент — это стыковка контуров при выводе длинного чертежа по «кадрам», то есть концы линий одной части контура должны совпадать с соответствующими концами другой части при выводе следующего кадра. Особенность в этом случае — это совмещение конечной границы первого кадра с начальной границей следующего кадра.
С дугами (окружность можно рассматривать как дугу с центральным углом в 360°) ситуация сложнее. Параметры, определяющие дугу, никак не связаны с самой дугой с точки зрения графики, и практически при любых расчётах так или иначе будет участвовать число π. Для варианта, когда внешняя программа вывода сама рассчитывает набор векторов, представляющих аппроксимацию дуги, важно определение минимального количества отрезков, которые при выводе будут похожи на плавную кривую, а не на ломаную. Справедливости ради надо сказать, что эти проблемы расчёта отрезков для дуги — те же и для внутренних программ управления. Другой вопрос, что в вывод дуги могут быть вовлечены и «аппаратные» возможности устройства.
Любая кривая, отличная от дуги, для вывода аппроксимируется набором отрезков или отрезков и дуг, то есть всё сводится к тому же: выводу отрезков и дуг. Что важно понимать: и сплайн, и Безье — это формулы, по которым рассчитывается графическая кривая. И, например, если укоротить длину сплайна, может измениться кривая. Чаще малозаметно, но изменения будут, так как изменились граничные условия для пересчёта.
Практический вывод из вышесказанного: дешёвое устройство использует дешёвые, простые алгоритмы вывода, иногда даже работает только с большим инкрементом 0,025 мм, что сказывается на скорости и качестве вывода. Следующий «этап» удержания цены невысокой — это достаточно простое программно-аппаратное решение управлением самого плоттера, а компенсация «дыр» от внутренней простоты дополнительно вставляется в собственную фронт-энд программу.
Грамотная, качественная реализация системы внутреннего управления плоттером, усиленное мощными возможностями фронт-энд программы, естественно, увеличивает стоимость устройства, причём ощутимо.
|
Об авторе: Виктор Миленин (vmilenin1954@gmail.com) — эксперт в области цифровой резки и инструментов для конструирования упаковки.