Добавил мета-траектории.
Что это такое?
Представьте, что есть доска, в нее вбиты гвозди (не до конца, шляпки торчат). Натягиваем на все это дело резинку, получаем замкнутый контур.
Гвозди могут быть разного диаметра.
Вот такой код, превращается в такую картинку (у метатраекторий есть отдельный просмотрищик)
Код: Выделить всё
# -*- coding: utf-8 -*-
from py2gcode import *
v = Meta()
#добавляем вершины
v.point(60, 10, 10)
v.point(110, 100, 10)
v.point(60, 190, 10)
v.point(40, 100, 30)
v.show(3) #предварительный просмотр траектории
def f():
G0(0, 0, 5)
G0(Z = 5)
z = -3
while z > -10:
v.to_gcode(z) #экспортируем мета-траекторию в GCode на глубине z
z -= 2
preview(f)
А вот так выглядит сама траектория (я сделал погружение по Z, чтобы было понятно, где-какие оси):
Если мы вдруг захотим сделать впадинку, то для этого нужно указать отрицательный радиус.
Изменям в программе список вершин:
Код: Выделить всё
v.point(60, 10, 10)
v.point(80, 80, -10) #радиус отрицательный, значит "резинка" обойдет его с другой стороны
v.point(110, 100, 10)
v.point(60, 190, 10)
v.point(40, 100, 30)
И получаем такую траекторию:
Можно указывать вершины без радиуса, тогда это будет просто точка.
Вершины нужно указывать по часовой стрелке.
Вся эта прелесть доступна на
Гитхабе
Жду замечаний, идей и хотелок
