thinkyhead

G5 - Bézier cubic spline

1.1.0 motion Cubic B-spline with XYE destination and IJPQ offsets

Description

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.

Notes

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). However, P and Q are required (otherwise you just get a linear movement).

Usage

G5 [E<pos>] [F<rate>] I<pos> J<pos> P<pos> Q<pos> [S<power>] X<pos> Y<pos>

Parameters

[E<pos>]

The length of filament to feed into the extruder between the start and end point

[F<rate>]

The maximum feedrate of the move between the start and end point (in current units per second). This value applies to all subsequent moves.

I<pos>

Offset from the X start point to first control point

J<pos>

Offset from the Y start point to first control point

P<pos>

Offset from the X end point to second control point

Q<pos>

Offset from the Y end point to the second control point

[S<power>] 2.0.8

Set the Laser power for the move. (Requires LASER_MOVE_POWER)

X<pos>

A destination coordinate on the X axis

Y<pos>

A destination coordinate on the Y axis

Related Media

Examples

For example, to program a curvy “N” shape:

G0 X0 Y0
G5 I0 J3 P0 Q-3 X1 Y1

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