flexi-bot/docs/marlin/_gcode/G005.md
2023-09-05 20:38:49 +02:00

3.1 KiB

tag title brief author experimental since group codes videos notes parameters examples
g005 Bézier cubic spline Cubic B-spline with XYE destination and IJPQ offsets thinkyhead true 1.1.0 motion
G5
aVwxzDHniEw
It is an error if an axis other than `X` or `Y` is specified.
The first control point is the current position of the head. `XY` is the destination (the last control point of the spline).
The next control-points are the current position plus `IJ` and the current position plus `PQ`.
`I` and `J` can be omitted, which results in these offsets being zero. This produces a 3-point spline (try the [interactive demo](//www.geogebra.org/m/WPHQ9rUt)). However, `P` and `Q` are required (otherwise you just get a linear movement).
tag optional description values
X false A destination coordinate on the X axis
tag type
pos float
tag optional description values
Y false A destination coordinate on the Y axis
tag type
pos float
tag optional description values
E true The length of filament to feed into the extruder between the start and end point
tag type
pos float
tag optional description values
F true The maximum feedrate of the move between the start and end point (in current units per second). This value applies to all subsequent moves.
tag type
rate float
tag optional description values
I false Offset from the `X` start point to first control point
tag type
pos float
tag optional description values
J false Offset from the `Y` start point to first control point
tag type
pos float
tag optional description values
P false Offset from the `X` end point to second control point
tag type
pos float
tag optional description values
Q false Offset from the `Y` end point to the second control point
tag type
pos float
tag optional since description values
S true 2.0.8 Set the Laser power for the move.
tag type
power float
pre code
For example, to program a curvy "N" shape:
G0 X0 Y0
G5 I0 J3 P0 Q-3 X1 Y1
pre code
A second curvy "N" that attaches smoothly to this one can now be made without specifying `I` and `J`:
G5 P0 Q-3 X2 Y2

G5 creates a cubic B-spline in the XY plane with the X and Y axes only. P and Q parameters are required. I and J are required for the first G5 command in a series. For subsequent G5 commands, either both I and J must be specified, or neither. If I and J are unspecified, the starting direction of the cubic will automatically match the ending direction of the previous cubic (as if I and J are the negation of the previous P and Q).

See This interactive demo to understand how Bézier control points work.