dormouse писал(а):как мы узнаем глубины "потом", на втором проходе? Или я сильно отвлёкся и не могу ухватить суть беседы?
1. AreaCurves "условно-ненужный", т.к. это просто дубликат--динамическая втяжка--G-code, но с клавиатуры вводятся числа отступа. ( при обычном ручном методе я так и не увидел глюков, т.е. при уширяем контур в режиме "округлости" и преобразование его в путь).
2. Алгоритм средней линии заменить нечем из стандартного арсенала. После его работы остаётся кривая со значением радиуса (ширины) в каждой точке. Мне казалось, что сохранить внутри узлов эту информацию представляется возможным только цветом либо шириной контура (самый наглядный путь) -- можно сделать разрывные безье-фрагменты чтоб разная ширина хранилась.
Поясните, пожалуйста, каким образом мы будем узнавать глубину на стадии формирования G-кода?
1. В процессе вычисления кривой находятся необходимые заглубления.
2. Если мы хотим сразу все конвертировать в Gкод, то, по большому счету, можно даже эту кривую не рисовать, сразу вычисляем Gкод для всех сегментов кривой. (Функция для вычисления Gкода уже есть - это часть Path to Gcode). Как я уже писал, зная сегмент кривой, заглубление в начале сегмента и в конце сегмента пишем biarc(sp1,sp2, z1,z2) (для аппроксимации сегмента биарками) потом generate_gcode (функция организует вывод внутреннего формата в Gкод) и получаем необходимый Gcode
3. Конечно можно нарисовать кривую, с переменной толщиной штриха и дать пользователю возможность ее отредактировать перед экспортом...
P.S. Ошибка, приведённая ранее показывается и на других версиях скрипта. Лечится убиранием self.header/footer из кода. я так и не понял, почему инициализация не проходит.
Не проходит потому, что это небольшой баг. Я вынес процедуру проверки наличия директория в отдельную функцию. Она проверяет, если директория не существует, то выдать ошибку + "return" раньше это означало, выход из программы, а теперь только выдает ошибку "Directory does not exists" и идет дальше но при этом не назначает header и footer, что вызывает последующие ошибки. Исправил в новой версии, но она пока не готова и ее использовать не надо!
Единственное, что меня может оправдать, что в любом случае вывода Gкода быть не должно, т.к. некуда выводить - директория нет!
Столкнулся с проблемой:
1. Я убрал правую и левую части контура.
2. Теперь для вычисления отступа пробегаемся по всем сегментам.
Но появляется проблема с углом:
Если при вычислении отступа учитывать соседние элементы, то на конце отрезка минимальная ближайшая точка - начало следующего отрезка, т.е. 0 (нижняя часть рисунка), а если не учитывать соседние сегменты, то получается что в угле образуется проблема (верхняя часть рисунка).
Чтобы такое придумать

?