Как написать дуги непосредственно в G-коде?

Как я могу написать G-код для треугольника без острых наконечников?

Example of required triangle

Я хочу сгенерировать углы вручную, а не с помощью среза, чтобы сгенерировать их, просто чтобы знать, как это делается.

, 👍4

Обсуждение

ваш вопрос чрезвычайно лаконичен. Вы хотите сгенерировать углы вручную или хотите понять, как их режет слайсер? Как это делает ХАМ?!, @Trish

С множеством и множеством крошечных сегментов., @towe

@towe Верно, даже если вы используете G2/G3, @0scar


2 ответа


5

У Марлина есть команды G2 (дуга по часовой стрелке) и G3 (дуга против часовой стрелки), которые можно использовать для этого. Вы можете найти подробную документацию по этой команде здесь.

В принципе, вы можете использовать

G2 R1 X5 Y5

нарисовать дугу (по часовой стрелке) от текущего положения до $(X,Y)=(5,5)$ с радиусом $1$.

Таким образом, ваш закругленный треугольник можно нарисовать с помощью 3 ходов по прямой линии и 3 ходов по дуге. Определение точных координат для каждого движения было бы довольно сложным геометрическим упражнением, так как вам нужно было бы знать, где заканчивается прямая часть каждой стороны и начинается закругленная часть.


,

хотя это простое упражнение с сапром, @Trish

Обратите внимание, что в встроенном ПО поддержка G2/G3 должна быть включена в встроенном ПО, например, в Marlin по определению "#define ARC_SUPPORT " в файле Configuration_adv.h. Кроме того, разве ваша плата принтера не должна иметь достаточно мощный процессор для обработки вычислений для этой опции?, @0scar

круги @0scar довольно обычны в командах с ЧПУ, и большинство печатных плат могут удваиваться для них. Я предполагаю, что вы, возможно, захотите использовать аргумент IJ вместо аргумента R, хотя., @Trish

@Trish В вопросе указывается, что G-код должен быть создан "вручную". Я не уверен, что использование САПР по-прежнему считается ручным., @Tom van der Zanden


6

Во-первых, преобразуйте данные измерения в эскиз...

Sketched out dimensions

Махинации с G-кодом

на самом деле у нас есть принтер, делающий круги.. давайте разберемся с этим...

Plotted all start-ends and centers

Используя это, легко написать G-код, используя документацию для G1 и G2. Вам придется добавить значения E, чтобы вытянуть что-то вдоль путей, но ваш эскиз превратится в этот путь:

G92 X0 Y0 ; текущая позиция сейчас (0,0) на XY
G90 ;Отмените режим для всего...
M83 ;...но для электронного аргумента, так что вы можете просто указать длину в выдавливаниях, которые должны быть выполнены
G0 X10.66 Y2 
G2 R5 X6.33 Y9.5 ; Альтернативный вариант: G3 I0 J5 X6.33 Y9.5
G1 X45.66 Y77.638 
G2 R5 X54.33 Y77.638 ; Альтернативный вариант: G3 I4.33 Y-2,5 X54.33 Y77.638
G1 93,67 Лет 9,5
G2 R5 X89.33 Года ; Альтернативный вариант: G3 I-4,33 Года-2,5 X89.33 Года
G1 X10.66 Y2
G0 X0 Y0
G91 ; возврат к относительным координатам

Этот код должен предваряться перемещением туда, где вы хотите запустить шаблон, и не будет знать, сдвинете ли вы его с монтажной пластины, поэтому держите 100 мм X и 87 мм в Y от допустимой монтажной пластины. Все закончится именно там, где вы это начали.

Итеративный подход

Во многих случаях использования g-кода закругленные углы на самом деле являются n-углами с очень большим числом n. Тогда нам нужен только G1, и мы можем легко рассчитать длину отрезков и заполнить G1. Нам нужно перейти к несколько круговому...

Давайте начнем итерацию с n=3, он же треугольник, который дает прямую линию над углом, дает следующее:

Iteration 1

переход к n=6 (шестиугольник) намного лучше повторяет кривую...

Iteration 2

переход к n=12 выглядит почти круглым в большем масштабе...

Iteration 3

и когда мы достигнем n=24, мы окажемся довольно близко к кругу..

iteration 4

И когда мы поднимаемся выше n=6, мы также получаем более простую математику для углов, так как мы всегда получаем одинаковые длины движения вдоль X и Y, просто поменявшиеся местами из-за симметрии.

Определив все эти отрезки, мы могли бы легко начать работать в относительных координатах, опять же без E, и только для нижнего левого угла:

G0 X10.66 Y2 
G1 X-1.294 Y0.17
G1 X-1.206 Y0.5
G1 X-1.036 Y0.795
G1 X-0.795 X1.036
G1 X-0.5 Y1.206
G1 X-0.17 Y1.294
G1 X0.17 Y1.294
G1 X0.5 Y1.036
...
,

Убийственное объяснение ... очень нравится графика, которая полностью помогает пониманию. +1, @Pᴀᴜʟsᴛᴇʀ2

Прекрасно иллюстрированный, но он отвечает на вопрос, который, по-видимому, касался написания дуг в g-коде, а не того, как можно имитировать дуги с помощью линейных сегментов., @cmm