thinkyhead

G5 - Bézier Cubic Spline

1.1.0 motion Cubic Bézier 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.

                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