[Из песочницы] «Костыль» для китайского лазера

Здравствуйте.

Работаю я оператором лазерного маркера. Наношу изображения на металлические шильдики. В данной заметке хочу поделиться маленькой хитростью, как сейчас принято говорить — «лайфхаком».

Вводная


Начну несколько издалека. Приставлен я к небольшой технологической установке, твердотельному волоконному лазеру Unilaser, произведённому в КНР. Управляется станок специализированным ПО, EzCad2 [Unilaser]. Программа обеспечивает ряд возможностей для отрисовки картинок для нанесения, управление режимами реза. Однако, точно позиционировать текст в ней весьма затруднительно, поэтому используется дополнительный векторный редактор. В качестве такового до последнего времени выступал Corel Draw X8.
В целом, алгоритм маркировки шильдика выглядит примерно так:

b1uex8hft3upoab_v73yefhzxcs.png

Из схемы видно, что на этапе подготовки изображения к нанесению, используются и модифицируются ранее утверждённые шаблоны, либо изображение создаётся с нуля под определённые требования. В зависимости от количества и сложности изображений, при создании может использоваться непосредственно EzCad2, либо векторный редактор. В моём случае — Corel Draw X8. Также часта ситуация, когда некий шаблон создаётся в векторе, а текст подгоняется под шаблон и изменяется уже в EzCad2.

Особенность заключается в том, что EzCad2 понимает не так много векторных форматов. Если точнее, то следующие типы файлов:

ocqasdqqopp_ku-esyemkc4eaeg.jpeg

До недавнего времени, преимущественным типом экспортируемого из векторного редактора файла у нас был принят *.svg.

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

На этом этапе я сделал попытку применить Inkscape, как редактор, наиболее полно использующий возможности формата svg. Однако EzCad2 абсолютно не хотел работать с SVG из Inkscape. На этом пробы прекратил, и продолжил работу в Corel. Также, опытным путём установил, что файлы DXF, экспортированные из Corel Draw, принимаются программой EzCad2 без проблем. Таким образом была минимизированна потребность в использовании SVG в рабочем процессе.

Всё благолепие вполне исправно функционировало до начала этой недели, когда Corel Draw при запуске настойчиво попросил позолотить ручку на $245.

Стал искать некий работающий способ продолжить работу, не теряя при этом файловый архив формата CDR v. 18.

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

Решение


На этапе поиска быстрого и работающего способа открыть CDR, вернулся к Inkscape. Свежая версия вполне корректно открыла файлы макетов. Однако проблема неработоспособности файлов SVG из Inkscape никуда не делась. Также не работали полученные из Inkscape файлы DXF, PLT, PS, AI. EzCad2 все векторы скидывал в кучку. При тестовой конвертации SVG в PLT программа попросила установить Uniconverter. Осуществил данную операцию, однако на выходе получал файл-кашу и ворох ошибок.

В ходе ряда безуспешных экспериментов, Uniconverter был запущен отдельно, вне Inkscape. Натравил его на нужный файл. И неожиданно получил работающий в EzCad2 plt-файл!

Попробовал повторить. Получилось не сразу.

Тут необходимо отметить следующий момент:

lkpvtji31_kinj5g-d-rfeyvst0.jpeg

Inkscape позволяет сохранять следующие типы файлов. Для наглядности зелёным выделил те форматы, которые якобы воспринимает EzCad2. Однако, как отметил выше, не все файлы открываются на самом деле. Из выделенных файлов единственный работающий вариант — «Оптимизированный SVG»

Проиллюстрирую вышесказанное.

Практика:


1) Запускаем Inkscape

vdpjdj5reiiucm3otyvhr1vowdg.jpeg

2) Запускаем Uniconverter

coaqazafxow7xlprqpewh5hz9ps.jpeg

3) в Inkscape открываем требуемый файл.

muuwgofbhr2mm064dgwrwrlodnq.jpeg

4) Обязательно (!) копируем предназначенный для экспорта фрагмент

5) создаём новый файл, вставляем содержимое буфера.

2cy89sallgzuikzkxlhsvovd1vs.jpeg

6) преобразуем в кривые

0vo1nly5pz0k3vzannkmcwrhrme.jpeg

7) Сохраняем документ как «Оптимизированный SVG». Щёлкаем в диалоге сохранения на кнопки.

donvw-gzagfqt7_yudf234jhbhy.jpeg

erieb9hybdw9xrq3xagrjc7qrva.jpeg

8) Открываем Uniconverter, в верхнем диалоге выбираем необходимый файл, в нижнем выбираем тип файла *.plt

Конвертируем.

bv3zigqzsmjqydtrpajtyaxhfig.jpeg

98mdaj72esmltt_9_hyrsnkcdrw.jpeg

9) заходим в EzCad2, импортируем векторный файл (Ctrl+B), выбираем получившийся файл PLT

xe1h8zoyhwhrlu8whkvtmdv1adu.jpeg

kk8vorwqetj2yphotznwo1jsdiw.jpeg

Готовим макет под печать.

10) работаем дальше:-)

g8daqalyxcsvmq9kxx0lo8a1jm0.jpeg

Для сравнения — то, что получатся при непосредственном экспорте того же SVG из Inkscape и импорта файла в EzCad2:

bljdpycuijwhs1kwpwzhvc8sc54.jpeg

diyqe9buaburlc6ronkfjdx8wxm.jpeg

Вывод


Согласен, что «костыль». Согласен, что требует лишних телодвижений. Однако, работает!!!

Теперь бы это как то автоматизировать чуть чуть. Типа выделил фрагмент в инкскейп, оно всё «фигакс» — и посчитало. Но пока несколько не до этого.

Спасибо за внимание, надеюсь, было интересно и/или полезно.

© Habrahabr.ru