Skip to content

The Sequencer

The Sequencer is the heart of FocuZ. A job is an ordered list of actions that FocuZ runs top to bottom when you press Run. If you're used to the object/pen model of other galvo software, read How FocuZ works first — the sequence-of-actions idea is what everything below builds on.

Structure: groups, layers, sublayers

Your job is organized as a tree:

  • Groups hold layers and can repeat as a unit.
  • Layers carry an action and its marking parameters.
  • Sublayers are extra passes attached to a layer (a second marking pass, a jog, a cut, etc.).

Each node has an Enable checkbox — disable a node to skip it without deleting it. Groups can be collapsed to keep a big job tidy. (Drag-to-reorder isn't available yet — build the order as you add.)

Repeats & run-every-Nth

  • Passes repeat a layer's mark N times.
  • Group repeat runs a whole group multiple times.
  • Run every N on a sublayer fires it only on every Nth pass or 3D slice (e.g. a jog or accessory step every 10th slice rather than every one).
  • Run once after all on a Mark or Cut sublayer fires it once more after its layer's final pass and that pass's sublayers — a finishing or cleaning pass. Set Run every to 0 to make it fire only at the end. Not offered on rotary actions.

Action types

Adding an action opens a picker grouped by purpose:

Marking

  • 2D Import — mark imported 2D art (see Importing Geometry).
  • 2D Cut — mark an offset cut band around imported 2D art (see The Cut Band).
  • 3D Slice — slice a 3D model and mark it layer by layer.
  • 3D Cut — mark an offset cut band around a 3D model's outline (see The Cut Band).
  • 3D Shadow — flatten a 3D model to its floor outline and fill it like 2D art (see below).
  • Rotary › — one action per rotary fixture, each using its own Rotary Setup profile (see Rotary Marking): 2D Rotary (Chuck) and 2D Rotary (Roller) mark 2D art wrapped around a cylindrical part, with the job's own part and split settings; 2D Grid (Chuck) marks each split as a checkerboard of cells shared between two layers (see The 2D Grid action). A fixture whose profile is disabled in Rotary Setup isn't listed.

Sequencer

  • Delay — wait a set time.
  • Pause — stop and wait for you to continue (a modal prompt).
  • Stop — end the sequence here.
  • Goto — loop the sequence back to an earlier action. Pick the target action and a Repeat count: on reaching the Goto, the sequence returns to that action Repeat times (so the actions in between run Repeat + 1 times total). Repeat 0 passes straight through, as if the Goto weren't there. A run won't start until the Goto has both a target and a repeat count set. Goto loops can be nested — a Goto whose loop sits inside another Goto's loop runs its own repeats each time the outer loop comes back around.
  • Select Action — a no-op placeholder (skipped at marking); useful while building.

Motion — every action that moves an axis, whichever controller drives it. Items marked (FocuZ) run on the FocuZ:grbl controller; (BJJCZ) items run on the laser board's rotary port.

  • Linear Axis Jog (FocuZ) — move an axis as a job step.
  • Rotary Jog (BJJCZ) — turn the rotary as a job step: pick the fixture (its Rotary Setup profile applies), Rotation (degrees) or Distance (mm) of part surface, the direction and the amount. A distance needs the part diameter — on the action, or blank for the profile's default (see Rotary Jog).
  • Return to Start (FocuZ) — return the axes you tick to the machine position they were at when the run started, Z first, then X, then Y, at the feedrate you set (mm/min). All three axes are listed with their live lens (LPos) and machine (MPos) position, so you can set the action up with no controller connected; a warning icon shows beside Copy while the controller is disconnected or no trusted position is available (axes not homed); hover it for the reason. The run-start position is recorded after the Run checks pass, and those checks gate a disabled axis or a missing controller, plus the usual homing check because these are absolute moves.
  • Return to Saved 0 (FocuZ) — the same panel, but each ticked axis moves to its saved 0 (Z = the selected lens's saved focal position; X/Y saved zeros are not available yet). Requires that axis's limit switches to be enabled in both + and − (Device Setup ▸ Enable Limit Switches); the warning icon says so.

Return actions only raise Z

Both Return actions may only move Z in the + direction. Before a run starts, FocuZ walks the sequence's Z moves and blocks the run if a Return action would have to move Z down — or if it can't tell where Z will be at that point (for example after a homing command). Fix the sequence so Z is at or below the return position when the action runs. X and Y move either way.

  • Command (FocuZ) — send raw G-code/M-code, one command per line — including switching accessory relays (air assist, vacuum) on/off mid-job. Lines run in order, and the sequence doesn't advance until every line — and any motion it started — has fully completed. Arcs (G2/G3) and probing (G38) aren't supported on the motion controller — FocuZ flags those lines before the run so you can correct them. See the relay section.

Calibration

Listed in the order you'd normally work through them:

Adding, copying & removing actions

  • Add Action (top of the Sequencer) appends a new action slot.
  • Each slot starts on the Select Action chooser — pick a type from the picker to configure it.
  • Once a real type is picked, the slot shows Delete and Copy: Copy duplicates the action (its type and settings) as a new slot; Delete removes it. An empty chooser slot shows Delete only — there's nothing to copy yet — and the sole remaining slot shows no buttons at all.
  • The list always keeps at least one slot. Deleting the last remaining action returns it to the empty chooser instead of leaving an empty list; deleting any earlier action shifts the rest up and renumbers them. All of this is undoable.

Marking parameters

Per layer:

Parameter What it does
Speed (mm/s) Galvo speed while marking.
Power (%) Laser power (0–100).
Frequency (kHz) Pulse frequency, clamped to the device min/max.
Q-Pulse Pulse-width / energy-per-pulse control.
# of Passes Repeats each fill line (or, for a contour fill, each ring) that many times before moving on — like a per-segment pass count. Hidden for Wobble and Hilbert, where it doesn't apply. The whole-layer pass count is Repeat in the layer header.

Fill types

Pick a fill to engrave a filled area (leave it off to mark just the outline):

  • Unidirectional / Bidirectional / Cross — straight line fills (one direction, back-and-forth, or crossed). Set Spacing and Angle.
  • Snake — a continuous serpentine fill.
  • Contour — concentric rings that follow the shape.
  • Thatch — a textured/wobble fill (set its size and phase).

Common controls: Spacing and Angle for line fills, Auto Rotate (+ Step) to turn the fill angle each pass, and Center (where the rings start, as a % of the spacing) for Contour.

On 2D Import layers, two extra rows shape the filled area itself:

  • Fill Offset — grow (+) or shrink (−) the fill past the shape's boundary.
  • Hole Inset — keep the fill a set distance short of the shape's interior holes.

Both shape the area after the layer's fill grouping has decided what counts as filled, so overlapping shapes keep the behaviour you picked — a Winding # or Union overlap stays filled once you grow it, and an Intersection grows the shared area rather than losing it.

3D layers: the Perimeter

3D actions (3D Slice, 3D Cut, 3D Shadow) can carry a perimeter — a closed boundary that bounds the fill around the model's footprint (for a 3D Slice, the area between the perimeter and the model is what gets carved). Pick a source from the Perimeter ▾ menu on the layer:

  • Import… — load a closed 2D path from a file.
  • Hull — the model's outline where it meets the floor (Z 0), plus everything Fill Through carves above it, generated for you, so an overhanging model still gets a perimeter around its whole footprint; move the model up or down in Z and the Hull follows its cross-section there. Re-importing the model refreshes it.
  • Circle / Square — a simple shape centered on the model's footprint (set its width/length).

A perimeter is a normal canvas object — select it to move it or edit it. With Hull or Import selected, the size fields become a single Off: (offset) box that grows or shrinks the boundary evenly all the way around; setting it back to 0 restores the original outline exactly.

Respect holes (on by default) — the model's through-holes are treated as real empty space with any perimeter, or none. The checkbox sits next to Fill Through in the slice section; with a Hull perimeter, the same setting also makes the Hull itself follow the holes (a ring's outline becomes a ring, not a disc — the Hull's own checkbox toggles the same thing). What a hole becomes depends on the setup: with a perimeter, the hole is carved at full depth along with the background; without one, it is simply left unmarked and stands at the surface. Uncheck it to fill holes solid (legacy behavior). Clean, watertight meshes give the truest holes. An imported multi-contour perimeter still clips with its outer outline only.

3D Shadow

3D Shadow turns a 3D model into a flat engraving: the model is flattened to its floor outline (only geometry at or above the floor counts) and the interior is filled like a 2D import — with the usual fill types, an Offset to grow/shrink the outline first, and an optional perimeter to clip the fill. The Group setting controls how the outline's through-holes fill: Even / Odd leaves holes open, Union fills them solid.

Variation

Variation sweeps a parameter across a fill so it changes as the mark progresses:

  • Scope — Layer, Action, or Sublayer.
  • Type — Linear, Sine, or Random.
  • Per-parameter — enable variation on Speed, Power, Frequency, and/or Q-Pulse, each with a value range.

Use it for gradients, test ramps, or texture effects.

Timings

Per-layer or per-action overrides for laser/jump timing (laser on/off, polygon corner, end delays; jump speed and ramp). Choose Device to use the global device defaults, or Custom to override for that layer/action. Defaults from your markcfg7 import are a good starting point.

Sublayers

A sublayer attaches an extra step to a layer. Set its mode:

  • Mark (Sub) — a second marking pass with its own parameters (+ Run-every-N and Run once after all).
  • Jog — move an axis (via the FocuZ:grbl controller) between passes/slices. Right of the Distance box the panel shows the total travel the run will produce (distance × how many times it fires, from the layer's passes or the 3D slice count, Run every, and the group repeat), so a Z step of −0.025 every 6 passes over 580 passes reads as −2.4 mm total.
  • Terminal — send raw GRBL command lines (e.g. switch a relay) as a step.
  • Cut — mark an offset band around the path:
    • Source — an imported file, the layer Perimeter, or a Border.
    • Offset (how far out from the path) and Distance (band width).
    • Optional outline, or a wobble fill for the band.

See also