dormouse писал(а):
3-х точечный метод оффсета и масштаба
Идея задавать на объекте 3 точки и их координаты (сопоставлять реальные маркеры, отметки на заготовке). Таким образом можно деталь на станок класть любым образом, далее подводить центр к этим точкам (или спец. измерительную часть) получать координаты, вводить эти 3 тройки чисел (две пары для плоского случая) в наш плагин, он сопоставляет: реальные координаты станка --> 3 точки на заготовке --> 3 точки на отдельном слое поверх требуемой векторной картинки. Так отпадут проблемы масштаба и т.п. + появится возможность "продолжить" или "доделать" уже начатые действия (другими словами - сделать работу не на чистом куске породы, а нанести что-то на уже имеющееся изделие).
Это хорошая очень хорошая идея... Нужно продумать реализацию... 
Варианты: 
1. 8 полей (x1,y1)->(x2,y2) (x3,y3)->(x4,y4). Тут нужно учесть, что поля можно располагать только в столбик по одному, т.е. будет 8 строчек. (Это для плоского случая, для объемного 18 полей.)
2. Кнопка, по которой создаются двве контрольные точки с заданными координатами, которые можно в ручную переместить, потом возможно два варианта: 
а. автоматически вычислять трансформацию, при выполнении Path to gcode. 
б. заполнять поля оффсетов, и масштабирования по нажатию кнопки. 
3. ... 
О! нужно еще ввести поля поворота в плоскости. Правда поворот возможен только в плоскости XY, иначе G02 и G03 будут некорректно работать. 
Нужно определиться есть ли необходимость позиционирования в пространстве (по трем точкам) или хватит только плоскости?
Кстати, если брать не одинаковое масштабирование по осям х и у, то нужно на одну точку больше.
dormouse писал(а):
Сеточный метод оконтуривания
Пугать проблемой сложности оффсета не надо. Мой метод имеет растровые корни и весьма прост: накидать NхM точек (квадратная сетка), далее для всех оказавшихся внутри контура точек сетки (число пересечений с любым из вертикальных или горизонтальных ЛУЧЕЙ, исходящих из этой точки) проверить что окружность диаметра нашей фрезы не пересекает границ контура. После этого из каждой по правилу спирали обрисовываем траекторию вплоть до "касания изнутри" нашего контура. Полученные итоговые графики сеточных функций проверяем на совпадения, выкидываем дубликаты.
Полученные сеточные границы расширяем наружу вплоть до заданной точности. Результат - готовое оконтуривание.
Предлагаю обсудить данный метод.
Мне не очень нравятся растровые корни, сразу теряются все преимущества векторной графики... Кстати пересечение окружности и кривой тоже нетривиально, в отличие от пересечения прямой и кривой.
Есть идея - глянуть на исполнение оффсета в инкскейпе, возможно, даже скорее всего они ищут точки пересечения кривых методами приближенных вычислений, возможно, если исправить там некоторые параметры, то оффсет будет работать точно, хотя и медленнее. Возможно, удастся уговорить разработчиков внести настройки качества оффсета в настройки программы, тогда не нужно будет писать свой собственный оффсет и работать все будет быстрее.
Когда я пытался писать свой оффсет, я глядел исходники inkscape, но не очень внимательно... Нужно посмотреть еще раз...