The program describes the part — the machine executes it
The machine type is defined by kinematics, not the brand. The cutting program is built from the part, verified by stock removal simulation and goes to the machine through the twin.
The author names the part, the platform calculates the passes
A cutting program describes the part: the blank and what to remove from it. The platform calculates toolpath, passes, speed and feed — from the part volume, the material and the tool in the machine slot.
The program text is the same for any machine that can cut. Everything that depends on place and equipment — where the blank sits, the part zero, the cutter stick-out — lives in the machine twin.
The program is written in the lab in the browser: code on the left, the part in 3D on the right, the result recalculates on every change. Dimensions are expressed as parameters and through each other — the part stays parametric.
A machine is created by choosing a type and numbers
| Type | Axes | What it does | Maturity |
|---|---|---|---|
| 3-axis mill | X Y Z | 2.5D machining and flat contour, servo drives over EtherCAT | production |
| 5-axis mill with a tilting rotary table | X Y Z B C | 3+2 machining: rotate, lock, cut with three axes | beta |
| 5-axis mill with a tilting head | X Y Z A C | the same 3+2 machining, the head gives the orientation | beta |
| Laser plotter | X Y | the beam is controlled like a spindle: power and switch-off | beta |
| 2-axis lathe | X Z | turning, facing, parting; in simulation | experimental |
| Wire EDM | X Y U V + Z | taper and rotary layout; in simulation | experimental |
Production — runs on hardware every day; beta — works outside the main line; experimental — research level. Two machines with the same kinematics are one type, even on drives from different manufacturers.
3-axis mill
The main class: three linear axes and a spindle, servo drives on a bus with feedback. No tilts or rotations — 2.5D and flat contour.
5-axis mill
The table tilts and rotates the part, or the head provides orientation. 3+2 machining: the same example program for both layouts; the difference is visible in the test bench’s answer.
Lathe, laser, EDM
A lathe has no Y axis. A beam has no Z axis and no tool table. A wire machine interpolates the lower and upper guides and feeds by gap; lathe and EDM run in simulation.
Four rules for reading a program
| Topic | Rule | Consequence |
|---|---|---|
| Coordinates | X and Y — from the near-left corner of the blank; Z = 0 — its top, negative into the material | Moving the blank on the table does not change the program by a single byte: the position lives in work offset G54 and the twin |
| Blank | The first line declares the blank and material; after that — only subtraction | Sacrificial plate, cut-through into it and raising on a spacer decide the fate of a through cut |
| Tool | A reference to a machine tool-table slot, not a diameter | The slot carries diameter, tip profile, stick-out, flutes and number; no such slot — a refusal listing what exists |
| Steps | Identical operations with one cutter — one step and one tool change | The order of steps is the order of tool changes on the machine |
The cost of breaking it is known
While the blank position was baked into coordinates, the controller added the offset a second time, and the program went past travel limits on the first cutting line. A test now holds the invariant.
No silent substitution
An operation without a named tool is not cut with “some cutter”: an explicit “diameter only” path works, marked that profile and stick-out are unknown.
Order as on the machine
Base — facing, then volume — pockets and contours, then holes, the edge — last. An outside contour separates the part, so it comes after everything else.
Operation vocabulary
Each operation subtracts a volume from the blank and prints its own piece of G-code.
| Operation | Why | What matters |
|---|---|---|
| Facing | Makes Z zero real: a cast or sawn top is not flat | Faces the whole top of the blank; a local area is a pocket |
| Pocket and area | A bearing seat, a board window: a rectangle, a circle or a polygon with islands and wall draft | An island narrower than the cutter stays uncut; a round pocket under two cutter diameters degenerates into drilling |
| Terraced pocket | Variable depth by nested contours: stepped seats, shoulders | Contours strictly nested — undercuts are not cut with three axes |
| Wall finish | A ball cutter along a sloped wall with a target scallop | Sloped wall only and ball cutter only |
| Drilling | All holes of one diameter — in one step, with pecks to clear chips | The check chain compares depth against drill stick-out and length |
| Thread milling | An internal thread without a tap: the cutter orbits, descending one pitch per revolution | Internal only; a cutter that cannot produce such a profile blocks the step |
| Contour | Following a polygon outside or inside | An outside contour is the last step of the program |
| Chamfer | With a V-bit along the edges | Width follows from depth and bit angle; hole countersinking cannot be expressed with it |
| Edge rounding | A ball cutter along the top edge | The number of passes is derived from the scallop |
| Engraving | With a cone along a polyline | Width follows from depth; text is given as path points |
| Turning, parting, grooving | Bar stock in the XZ plane, X in diameters | Tool nose radius compensation — only along X |
| Table rotation 3+2 | The table sets to a pose and stays; coordinates — by the face looking up | Positioning, not simultaneous motion of five axes |
Blind M8×1.25 thread in an aluminium plate
A 200 × 100 × 50 mm aluminium plate, thread in the centre. Two tools mean two steps and two tool changes.
| Step | Operation | Slot | What is set |
|---|---|---|---|
| 0 | Blank | — | 200 × 100 × 50 mm, aluminium |
| 1 | Drilling for the thread | T4 | Ø6.8 mm, blind 14 mm, in pecks |
| 2 | Thread milling | T8 | M8, pitch 1.25 mm, depth 12 mm, entry chamfer in the same pass |
Why 14 and not 12
The hole is 2 mm deeper than the thread: chips have somewhere to fall and the pass ends without hitting the bottom. 12 mm is one and a half nominal diameters.
How the G-code reads
A comment names the coordinate system in plain text, G54 takes the machine work offset, M6 T4 loads the slot, G43 H4 applies its length, M3 starts the spindle.
The reference passes clean
Each breed’s example program passes checks with no warnings and sending with no remarks: a complaint on the reference means the breed is not set up.
Slot, stick-out, cutting data
Machine tool-table slot
Answers five questions: diameter, tip profile, stick-out, flutes and cutter material, number for change and offset. The tool table is part of the twin.
Tool stick-out — two barriers
Before start, stick-out is measured by touch via drive torque — only on servo. At send time, a slot without a stick-out of named origin — datasheet or measurement — blocks sending.
Material
Chosen when the program is created. A mode the author did not name is calculated from material, cutter and machine; one named explicitly is not overridden. Speed is limited by the spindle datasheet from the twin.
| Material | Example grades | How cutting differs |
|---|---|---|
| Aluminium | 6061, 7075, 2024, cast AlSi | High cutting speeds with carbide |
| Steel | S235, C45, 40Kh | Lower than aluminium, falls as hardness rises |
| Stainless steel | AISI 304, AISI 303 | Work hardening: feed matters more than speed |
| Brass, bronze, copper | CuZn37, CuAl9Fe4, Cu-ETP | Copper is gummy, brass cuts easily |
| Titanium | VT1-0 | Low speeds, high thermal load on the edge |
| Wood and plywood | pine, birch, oak | High speeds, coarse chips |
| Plastics | POM, ABS, acrylic, PVC | Risk of melting — feed not below the minimum |
| Composites | fibreglass, carbon fibre | Abrasive, they wear the tool |
The platform filters the cutter catalogue by operation and material and shows the manufacturer’s cutting data next to the calculated values. The process engineer names the cutter: choosing a cutter is a decision about rigidity, stick-out and vibration.
Three levels — before the first cut
- Stock removal simulation in 3DThe part shape and remaining material are visible.
- Pre-start checksAxis, zone, spindle, cutter, material, blank — with a margin in millimetres and revolutions.
- Run on the machine without motionThe controller executes the same file, the drives stand still.
The module's scope is parametric 2.5D machining and 3+2 with the vertical from the browser to the servo drive. The cutter is named by the process engineer.
From a saved program to the machine’s answer
| Stage | What happens | What holds it |
|---|---|---|
| Setup | Where the blank sits, the part zero | Work offset G54 — from the twin |
| Checks before start | Air cuts, plunges, collisions, fit — against the twin | Errors lock the start, warnings do not |
| Start | The control configuration is generated from the twin and sent to the box | Mode — virtual axes or drives; no axis profile — a refusal in words |
| Home | Zeros from absolute encoders | Without homing a program does not start in automatic mode |
| Sending | The program is loaded into the controller and started | A slot without a stick-out of named origin blocks sending |
| Feedback | Positions, following error, drive status word | Facts go bottom-up: the twin reflects, it does not assign |
The configuration is not edited on the test bench
It is always generated from the twin at start time. Importing from a real machine seeds the twin but does not create a second truth.
The axis scale is derived
“Pulses per millimetre” is never typed by hand: lead screw pitch, gearbox and encoder resolution are entered, the consequence is calculated.
Axis binding is the drive’s identity
On binding, the system records exactly which drive sat at this bus position. Swap two drives and the system will refuse to run that axis.
Axes, limits and where the numbers come from
Everything the machine knows lives in the twin. A number describing a specific machine belongs to the twin; the configuration generator prints it but does not know it.
| What | Value | Source |
|---|---|---|
| Axis type | Linear or angular | Set by a person |
| Travel limits | Minimum and maximum in machine coordinates | Set by a person |
| Velocity and acceleration | mm/min and mm/s² | Set by a person |
| Following tolerance | Maximum and minimum following error | Set by a person |
| Backlash | mm, reaches the machine as compensation | Set by a person |
| Direction | Axis sign inversion — geometry, not a drive setting | Set by a person |
| Lead screw pitch, gearbox, encoder | mm per revolution, ratio, pulses per revolution | Set by a person |
| Pulses per millimetre | The number that decides “the machine moved exactly that much” | Derived, never typed by hand |
| Scale source | “Test bench default” or “twin commissioning” | Named in words |
| Drive binding | Bus position and a snapshot of the drive’s identity | Comes from commissioning |
| Virtual or disabled | The axis runs in a loop, the binding is kept | Flag |
An axis the commissioning engineer has not yet reached is marked “default”, even if its values are right: silence of the twin cannot mean knowledge. The part zero does not belong to the machine — it belongs to the blank setup.
What the module deliberately does not do
- 3D machining of free-form surfacesThere are no toolpaths over a free-form model. The closest are the terraced pocket and the wall finish.
- Continuous five-axis machiningThere is 3+2: rotate, lock, cut with three axes.
- Automatic tool selectionA person names the cutter; the platform suggests but does not decide.
- Coolant from the programCoolant is set up as a machine accessory role and controlled from the panel at the equipment.
- Traversal order optimisationDrill points are cut in the order they are listed.
What works and what is worked out in the implementation
- Runs3-axis mill on servo drives — every day; lab, material removal simulation, checks before start, sending to the machine.
- Beta5-axis mill with 3+2 machining, laser plotter.
- Experimental levelLathe and wire EDM — in simulation; the path on your drives is worked out in the implementation.
Discuss an implementation
Send a part drawing and the machine datasheet — we will build the program in the lab and propose an R&D stage on your equipment.
Request accessDiscuss an implementation
Describe the unit or line — we will tell you what we will verify and in what time. Target indicators are fixed in the implementation specification.
Request access