Documentation Technical manual
CAM strategies and parameters
What each strategy does, what its parameters mean, and how the twin sets the cutting data. The numbers the twin gives are estimates from its physical models.
The parameters below are the ones a feature takes in a job (the program_generate tool's features). Lengths are in millimetres, angles in degrees.
Clearing a pocket: rings, zigzag and adaptive
A pocket's area is its shape less its islands, offset inwards by the tool's radius. It is cleared layer by layer, each layer no deeper than the depth of cut (ap). The strategy (strategy) sets the path in a layer:
| Strategy | Path | Use it for |
|---|---|---|
rings (default) | Offsets of the area from its deepest spot out to the wall, each ae apart | Most pockets |
zigzag | Straight passes to and fro at angle, ae apart | Open, shallow areas |
adaptive | A path that keeps the tool's engagement near ae everywhere | Deep pockets, harder materials |
A pocket with a fit finishes its walls at size in a pass of its own. See Fits.
Adaptive clearing cuts with a small radial engagement at a deeper ap. Its links move clear of the material, and it falls back to rings where the area is too narrow for it.
A finishing pass wraps the tool much further around a wall's inner corner than along a straight wall. Where it wraps more than 1.2 times as far, that part of the wall is cut in steps first (corner_steps, on by default; off when the feature gives its own finish_ap, unless it also gives corner_steps: true; corner_steps: false turns it off).
Rest machining
With rest: true, a pocket clears only what the tools before it left standing: the corners and narrow parts a larger tool could not reach. Studio works out what is left from the earlier pockets in the same program, or from the twin's workpiece when it has one.
Contours and tabs
A contour (side: outside, inside or on) follows an outline a layer at a time, climb milling. outside and inside offset the outline by the tool's radius; on follows it as it is.
Tabs (tabs: count, width and height) leave short bridges at the bottom, so that a part cut out stays in place. A tab is 1 mm high unless you give its height; where the cut is 1 mm deep or less, it is half the depth high.
Slots: layers and trochoidal
A slot (x0, y0, x1, y1, width) is cut with the strategy:
layers(default): the slot's middle at the full tool width in layers, then out to its width on each side;trochoidal: small loops along the slot, eachstepfurther on. The tool is engaged over a short arc only, so it can cut deeper in one pass. The slot must be wider than the tool.
How a tool goes into the material: helix, ramp, plunge
An end mill does not plunge into solid material. Each layer starts with:
- a helix, where the area has room for one (its diameter and angle are given in the answer's
entry); - a ramp along the path, where it does not;
- a straight plunge only into a hole or outside the blank.
The answer says, for each operation, how it went in first.
Holes
Drilling cycles
Holes at points, depth deep, are drilled with the controller's cycles. A hole deeper than three times the drill's diameter is pecked, 1.5 times the diameter a peck, unless peck gives another. The cycle's retract plane is 1 mm over the top.
Boring by helical interpolation
A hole of diameter d larger than the end mill is cut round a helix, then finished at size at the bottom. The hole can be at most twice the tool's diameter; larger holes are pocketed (shape: circle).
Reaming
A reamer (reamer 6 H7) of the hole's fit enters at its feed and leaves at the same feed, with no rapid out of the hole. The hole must be drilled before it in the same job, 0.05–0.6 mm smaller, or marked predrilled. The reamer's speed is a quarter of the end mill's cutting speed for the material, its feed per revolution 2.5 times the drill's.
Thread milling, tapered pipe threads too
A thread mill goes down the bore, then cuts the thread from the bottom up round a helix of one pitch a turn: right hand counter-clockwise (climb milling), left hand clockwise. The thread is named (thread: M8, M8x1, 1/4-20 UNC, G1/4) or given by d and pitch. Tapered pipe threads (1/4 NPT, Rc1/4) are cut round their cone, each turn in 48 arcs.
Ring grooves in a bore
groove cuts a ring groove into a bore's wall (for a circlip or an O-ring, or a light trap) with a T-slot cutter: a disc on a thinner neck. The cutter goes down the bore's centre to the groove, moves out to 0.1 mm from the wall and goes round a full turn (climb milling) for each step into the wall, then comes back to the centre and up. The job gives the groove's diameter d, the bore's diameter bore, the groove's lower edge depth and its height width (by default the disc's thickness; a higher groove is cut in passes from the bottom up). It is refused when the tool in the spindle is not a T-slot cutter, when the disc does not go down the bore with 0.2 mm to spare, when the groove is deeper than the disc reaches past its neck, and when the groove is not larger than the bore.
Chamfers, engraving and V-carving
- Chamfer: a V-bit follows the outline's edge at the depth that gives the
width. The width is limited by the cone. - Engrave: the tool follows lines, or text in a single-stroke or an outline font, at one
depth. - V-carve: the V-bit follows the shape's medial axis. Its depth at each point gives the width there, so the shape's corners come out sharp.
max_depthflattens wide areas at that depth.
To engrave on a curved surface, give surface: the name of a mesh from geometry_import. Each stroke is sampled every 0.2 mm, the tool is set onto the mesh and goes depth below where it touches; on a slope a V-bit touches on the uphill side first, so nowhere is cut deeper than depth. A stroke beyond the mesh is refused.
Perlage, the watchmakers' pattern of overlapping spots, is perlage: an end mill as wide as a spot goes down to depth (0.2 mm at most) at each point of a grid inside an outline, waits dwell seconds (0.2 by default) and lifts 0.3 mm above the face to go to the next. The rows are staggered by half the pitch (by default 0.65 of the tool's diameter), each spot covering part of the one before. margin keeps the spots' centres that far inside the outline.
3D roughing and finishing
A mesh is roughed in levels (rough3d), each level cleared adaptively. It is then finished (finish3d) with:
| Strategy | Path |
|---|---|
parallel | Passes in one direction across the part |
waterline | Level contours, for steep walls |
steep_shallow (default) | Waterline on the steep areas, parallel on the shallow ones |
pencil | Along the inner corners, after the others |
rest_from finishes only what an earlier tool left.
Rest roughing: with rest_from (the larger end mill or bull-nose that roughed before, by its specification or its tool number), rough3d cuts only what that tool left, such as the gaps between ribs it could not reach; rest_allowance is the allowance it left (by default this pass's own).
Cutting data from the twin
Studio starts from the material's data for the tool's kind: the cutting speed range and the feed per tooth. Values you give in cutting (rpm, feed, ap, ae, finish_ap) are kept as you give them. The other values are set with the twin's models.
Stability and chatter
The twin's chatter model computes the stability lobes for the tool in its holder: the depth of cut that stays stable at each spindle speed. The lobes lie only where the model of the tool and the machine puts them, so Studio does not aim at a lobe's peak: for each speed it takes the least stable depth within 10 % of it, chooses a speed within 0.7 to 1.8 times the one the material gives, and cuts at most 80 % of that depth.
Power, force and the tool's deflection
- Power: the cut takes at most about 80 % of the spindle's power at that speed.
- Force: the cutting force stays under half of what the fixture holds sideways.
- Deflection: a finishing pass is kept light enough that the twin's estimate of the tool's deflection stays small.
- Corners and arcs: the feed on an arc is limited by the acceleration the machine has, so that the controller does not slow down below the feed the cut was planned for. Finishing passes slow down in a pocket's inner corners, where the tool's engagement grows.
The closed loop: trying the program in the twin
With verification on, Studio runs the program on a fresh twin. When the run shows chatter, a load too high or a tool deflecting too much, Studio changes the program and tries again:
- shallower layers,
- another spindle speed, within 0.7 to 1.8 times the one set, where the cut stays stable even if the lobes lie a little off,
- spring passes on a fit's walls.
Each version tried is saved. A long program is tried behind the call, and its report comes later (run_status). The answer says what changed and why.
Several setups and nesting
- Setups: Studio writes each setup's program, then checks the setups in order in the twin, each on the workpiece the setups before it left. Where that workpiece differs from the blank, the setup's program is written again for it.
- Nesting: parts are placed on the plate by their outlines, a margin apart. Each part keeps its features, turned and moved with it.
Limits
- Three axes. No fourth axis, no tool tilt.
- STEP files are not read; export STL or 3MF from the CAD program.
- The cutting data and the twin's checks are estimates from physical models of the machine, the tool and the material. A tool or material that differs from its model cuts differently.
- Editions: adaptive clearing, the 3D finishing strategies other than
parallel, rest machining and several setups are in the Maker edition and up; nesting and the program optimizer are in the Pro edition.
How large a job can be
Past these limits Studio does not write the program. It says why, and what to change.
| What | Limit |
|---|---|
| Setups in a job | 8 |
| Nesting | 16 kinds of part, 200 copies of each |
| A mesh (STL, 3MF, OBJ, glTF) | 5 million triangles; the file up to 1 GB |
| An SVG, DXF or text file | 64 MB; a DXF drawing up to 2 million segments |
| Adaptive clearing | The walk's grid holds about 1.5 million cells. A pocket the size of the MC-1's travel clears with a 3 mm end mill; with a 1 mm one, use rings or zigzag, or a larger stepover. |
A job can have up to 32000 features; holes alike go as one feature with their points. The operation list, the reasons and the closed loop's repairs cover the first 64 features; a later feature that chatters is reported, not repaired. The setup sheet lists the first 64 operations and says so.
The program check and the setup sheet read up to 2 million moves. An arc counts as its short chords: about 50 for a full circle of 3 mm radius, about 220 for one of 50 mm. Past that, they say where they stopped. The setup sheet still gives the whole program's time, but not the operations' times or the tools' heights after that line. The trial run in the twin checks the whole program.
How long Studio takes to write a program, measured on two cores of a desktop PC (the trial run in the twin comes after):
| Job | Time | Memory |
|---|---|---|
| 20 pockets with islands on a 180 x 130 mm plate | under 1 s | 18 MB |
| A pocket the size of the travel, adaptive, 6 mm end mill | 12 s | 47 MB |
| The same with a 3 mm end mill | 37 s | 70 MB |
| 1000 characters engraved | 12 s | 25 MB |
| 200 washers nested on a plate | 5 s | 30 MB |
| 3D roughing of a relief the size of the travel (half a million triangles), 6 mm end mill | 8 min | 240 MB |
| The same relief from 3 million triangles | 20 min | 1 GB |
| 3D parallel finishing of it, 2 mm ball end mill, 0.01 mm scallop (half a million triangles) | 4 min | 270 MB |
| The same from 3 million triangles | 18 min | 1 GB |
For 3D work:
- Make the mesh only as fine as the part needs. Finishing takes about as much longer as the mesh has more triangles.
- On a gently undulating surface, finish with
parallelorsteep_shallow, notwaterline. Waterline makes many small loops there: on the relief above it moved more in the air than in the material, and its program had 2.8 million lines.