Open core: don’t reinvent the wheel — build your fenestration software on ours.

Skip to main content

A machining op is anything the saw line or CNC does to a bar besides cutting it to length: a
notch, a drilled hole, a weep or drainage slot, a routed handle or lock pocket, a strike prep, an end-mill (cope) on a
mullion end. You do not draw ops per order. You describe each op once, as a small block of rules in a series,
and every unit built from that series gets the op on the right bar, at the right place for its size. The
technical reference is Notching & Machining Operations and
Machining Operation Rules; this page is the shop version.

An op is a sentence made of rules

Write every op as one sentence: “On this kind of bar, on this side, only on this profile, run this machine
program, at this distance, when this is true.”
Each part of the sentence is one rule, in this order, with
consecutive rule numbers. The op ends where the next start rule (142 or 143) begins.

Part of the sentence Rule Type What you type, and where
Start the op, measured from the end of a bar 143 Add Op Hardware Etc. Description
= a name you choose (“WEEP HOLES”). Use it for frames, sashes, sills, stiles, and mullion ends.
Start the op, measured from where a mullion or meeting rail crosses a bar 142 Add Op
Mullion
Description = a name. Use it for notches and holes that must line up with a mullion, meeting rail
or coupler.
Which kind of bar gets machined 158 Set Op on Level=? Value 1: 1 frame,
2 sash, 3 mullion, 4 meeting rail, 5 glazing bead, 99 coupler, 201 / 202 = only sash leaf 1 / leaf 2.
Which side of that frame or sash 153 Set Op if Side? Value 1: 1 top,
2 bottom, 3 left, 4 right, 5 top + bottom, 6 left + right.
Only on this profile 154 Set Op If Part Ref1 (155 for Reference 2) Description =
the part’s Reference (Parts → Extra → Reference), e.g. 8500F. Not case-sensitive.
Blank = any profile.
What the machine runs 144 Set Op Pattern No. Description = the pattern
(program) name exactly as the saw or CNC knows it, e.g. WEEP, 61TH. Required: an op
without a pattern is thrown away.
Where along the bar (143) 148 Set Op posX (149 / 150 for Y / Z) Description = a
number or formula: 8, L-8, L/2, (H/2)-0.0625.
Where, from the centre line (142) 152 Set Op Pos=+/-CM Description = offset from
the mullion or meeting-rail centre line. 0 = dead centre; -0.25 = a quarter inch
before it.
A row of ops (optional) 171 Repeat Start, 172 Repeat End, 173 Step Description = first
op this far from the start, last op this far from the far end, one every Step between. Step 0 = only the two
end ops.
Extras (optional) 146 tool, 147 track, 169 machine, 151 sequence, 159 / 160 comments, 298 feed direction,
176 picture
Description holds the value; 298: 1 clockwise, 2 counter-clockwise;
176: Value 1 = the part whose picture prints on the work order.

When the op happens is set the usual way: the rule’s Condition (for mullions and meeting rails:
which end runs into the frame) and Has Test rule tests (an option answer, opening type, size range, leaf
number). Give every rule of the block the same tests; that is how all live data is written. Test help:
Conditions.

Distances and formulas

  • Numbers are in the series’ unit: inches on an imperial series, mm on a metric one.
  • L = length of the bar on the rule’s side (for a mullion op, the mullion’s length);
    W / H = width / height of the frame or sash being built. These letters carry
    imperial values; a metric series uses Lm, Wm, Hm. More in
    Units & position expressions and Formulas.
  • On a top or bottom bar X is counted from the left end; on a left stile from the bottom up; on a right stile from
    the top down. So the same handle height is 42.28 on a left stile and L-42.28 on a right
    one.

Where the op shows up

  • On the bar’s BOM / cut-list line as notch text, e.g. |D:8|P:WEEP|POS:2|SR:155 - 304. SR:
    tells you which series and start rule made it.
  • The cut list pattern report and the Feeder station screen’s Notches column.
  • The saw file (RazorGage feed): the first 5 ops of the bar, sorted by distance.
  • The cut-list optimizer only groups identical bars when their ops match too.

Add one in the Rules tab, step by step

  1. Open OJ Setup → Sub-Routines (or Series) → the series → Rules tab. Best practice: keep
    ops in a sub-routine such as “6000 MR Ops” and call it from the product with one Rule Segment
    rule (see Sub-Routines).
  2. (Optional) New, Rule Type Comment, Description = what the op is (“Weep holes every
    16””).
  3. New; pick the Level in the Select a level tree (Frame, Sash Leaf, Mullion, Meeting Rail
    … the bar family whose rules run the op); Rule Type Add Op Hardware Etc. or Add Op Mullion;
    Position (Top / Bottom / Left / Right for frames and sashes; Vertical / Horizontal / V & H for mullions);
    Condition (mullions: L/T Out or R/B Out = that end meets the frame; L/T In / R/B
    In
    = it meets another bar).
  4. Add the attribute rules with the same Level, Position and Condition, in the table order: Set Op on
    Level=?
    and Set Op if Side? (type the code in Value 1), then Set Op If Part Ref1, Set Op
    Pattern No.
    , the repeat rules if any, and Set Op posX or Set Op Pos=+/-CM, typing the value in
    Description.
  5. Tick Has Test and add the same tests on every rule of the block if the op depends on an option, opening
    type, size or leaf. Leave Affects Design unticked; keep Active ticked. Use Insert to add a
    missing rule inside a block so the ids stay consecutive.
  6. Check: build a unit, open its BOM or cut list, and look for SR:<series> - <start rule>
    on the bar you expected. Missing? Work through Troubleshooting, part Reference
    first.
Rules saved in the Rules tab before 2026-10-27For machining rule types
(142–174) and 298 the setting lives in the Description. The Rules tab now keeps that text exactly as typed.
Before this fix, saving such a rule replaced the text with the rule-type name (e.g. “Set Op Pattern No.”
instead of WEEP). If a machining rule stopped working after it was saved in the Rules tab before
2026-10-27, re-type its Description.
There is no op libraryA pattern is free text that must match the
program name on your machine. OpenJanela does not store the tool, size or shape of the op; the machine does.

Not confirmed: the end X counts from was read from the code, not checked on a printed cut list, and feed
direction (298) can change it; what side codes 1 / 2 mean on a mullion bar (they behave like “start
end” / “far end”); the exact difference between level codes 3 (mullion) and 4 (meeting rail);
and rule type 174 Set Op Last Rule.