Browse Learn topics

Learn/Oxyfuel/Machine & Setup

Gas & Ignition Subroutines

Updated v2.4.9

At a glance

  • Gas and ignition run through two subroutines you own — never fixed M-codes
  • o<fire_oxy_torch> takes the chart's preheat height and time, pierce height and delay, and cut height
  • The pierce is a timed descent — the plunge feed is computed from the chart, no inverse-time G-code
  • o<oxy_torch_off> closes the cutting oxygen (if enabled) and lifts the torch clear
  • Optional cutting-oxygen relay, off by default — a hand-tuned two-hose torch runs with zero setup
  • Ready-made templates ship with the app — import and edit under Subroutines
  • Dry-run toggle traces the motion without the soaks or the relay

Oxyfuel plumbing differs on nearly every table. Some are lit by hand, some have an auto igniter. Some run one fuel circuit, some run a small idle flame and a large preheat flame on separate circuits. The cutting oxygen might be under the operator's lever or on a solenoid wired to a spare relay. Baking any of that into the post processor would be wrong for almost everyone, so JetCad3 does not: it calls two subroutines and you own what they do.

The two calls

o<fire_oxy_torch> call [preheat_height] [preheat_time] [pierce_height] [pierce_delay] [cut_height]
o<oxy_torch_off>  call

fire_oxy_torch owns everything between arriving at the pierce point and starting to cut. oxy_torch_off owns everything between finishing the cut and being clear. Between them the post writes only the cut path itself, so the subroutines own all Z motion — the posted program contains no Z words of its own.

The five arguments come from the cut chart row for the plate being cut, so one subroutine serves every thickness. Cutting 1/8 inch and 4 inch plate in the same program calls the same subroutine with different numbers.

The fire cycle

The preheat flame set stays lit for the whole job — you light it and tune it by hand before the run, and Z0 is the plate surface, touched off once. From there fire_oxy_torch runs the sequence a flame torch actually needs:

  1. Down to preheat height — the soak standoff, close to the plate.
  2. Soak for the chart's preheat time, until the spot reaches ignition temperature.
  3. Up to pierce height — clear of the slag blast before the oxygen hits, so the blowback doesn't foul the tip.
  4. Cutting oxygen on — if the relay toggle is enabled (see below).
  5. Feed down to cut height, burning through on the way. The chart's pierce delay is how long that descent takes; the subroutine computes the plunge feed from the heights and the delay itself. There is no inverse-time G-code and nothing extra to configure on the controller.

oxy_torch_off closes the oxygen (if enabled), settles, then lifts clear. Nothing probes or re-zeros — you set Z once, by hand.

The clearance height matters. Rapids between contours happen with the preheat flames still burning, at whatever height oxy_torch_off leaves the torch. Too low and they scorch the plate on the way across. Raise it until traverses leave no mark on your material.

The cutting-oxygen relay

Both templates carry a relay option, off by default:

  • Off — for a hand-tuned two-hose torch. The operator owns the oxygen lever; the program drives only Z, and the chart's preheat and pierce values alone do the work. No configuration needed — this is how the templates run out of the box.
  • On — for tables with a solenoid on a spare digital output. Enable the Oxygen Relay toggle in each subroutine's settings and set the output index in both: the fire subroutine opens the oxygen at pierce height, synchronized with motion, and oxy_torch_off closes it the instant each cut ends. If the machine also runs a plasma torch, put the oxygen solenoid on a different output than the plasma torch relay.

Auto igniters and staged fuel circuits still go in at the marked insertion points — ordinary G-code, no change to the post or the charts.

Dry run

The fire subroutine's Dry Run toggle traces the full motion — soak standoff, raise, descent — while skipping the dwells and never throwing the relay, so you can prove a program's motion without sitting through minute-long preheats or opening oxygen over the plate.

Naming

The defaults are fire_oxy_torch and oxy_torch_off — distinct from the plasma pair (fire_torch / torch_off) so both can live in the same subroutine library without colliding. If your shop already has its own naming, change it on the post's properties; the post calls whatever you name there.

Related: Torch Selection & Cut Charts, G-code Post Processor.