Gas & Ignition Subroutines
Updated v2.4.4At a glance
- Gas and ignition run through two subroutines you own — never fixed M-codes
- o<fire_oxy_torch> takes the cut chart's preheat height, preheat time, pierce delay and cut height
- o<oxy_torch_off> lifts the torch clear at the end of each contour
- Ready-made templates ship with the app — import and edit under Subroutines
- Templates assume the common setup: light it, tune it, leave it lit, Z is the only control
- Marked insertion points for tables that automate the cutting oxygen
- Works the same whether your torch is hand-lit or has an auto igniter
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 lives on whatever spare relay happened to be free. Baking any of that into the post processor would be wrong for almost everyone, so JetCad3 does not: it calls two subroutines and you write what they do.
The two calls
o<fire_oxy_torch> call [preheat_height] [preheat_time] [pierce_delay] [cut_height]
o<oxy_torch_off> callfire_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 four 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 shipped templates
Both subroutines ship as starter templates. Import them under Edit → Machines → Subroutines, then edit freely — they are ordinary G-code.
They are written for the setup most oxy tables actually run:
- Touch off Z on the plate surface, so Z0 is the plate.
- Raise the torch to its parked height.
- Light the torch and tune the gas by hand.
- Run the program.
The torch then stays lit for the whole job and Z height is the only control — down and it cuts,
up and it does not. So fire_oxy_torch lowers the already-burning torch to the preheat standoff,
soaks, holds until the plate is pierced through, then feeds down to cutting height.
oxy_torch_off settles, then lifts clear. Nothing is ignited or extinguished by the program, and
nothing probes or re-zeros — you set Z once, by hand.
The clearance height matters in this mode. Rapids between contours happen with the flame still
burning, at whatever height oxy_torch_off leaves the torch. Too low and the preheat flame will
scorch the plate on the way across. Raise it until traverses leave no mark on your material.
If your table automates the gas
Both templates carry a marked insertion point. Open the cutting oxygen in fire_oxy_torch right
after the preheat soak, close it at the top of oxy_torch_off, and everything else stays as it is —
no change to the post, no change to the cut charts. The same place is where an auto igniter or a
second fuel circuit goes.
That is also why the templates keep the preheat soak and the pierce hold as two separate dwells even though a continuously lit torch burns straight through both: it leaves the exact spot where the oxygen belongs, and keeps both chart values visible in the program.
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.