Milling and drilling laminates and thermoplastics with a robot
Trimming contours with an end mill and drilling holes in laminates, composites and thermoplastics: the recipe, the chip load, depth passes and finding holes in the CAD.
What to expect from a robot
Under load a robot arm springs: accuracy is in the order of 0.1–0.5 mm. That is enough for laminates, composites (GFRP, CFRP), thermoplastics (PP, PE, ABS, PMMA, PC) and foams. It is not enough for metal parts with tight tolerances.Contour milling (trimming)
The recipe of the "Milling (router) cut" process in the "WPS & fixtures" tab:- spindle speed (spindle_rpm), feed (travel_speed_mm_s), cutter diameter (tool_diameter_mm);
- depth (depth_mm) — the sheet thickness plus the cutter's exit below the sheet;
- plunge speed (plunge_speed_mm_s);
- optional: step-down (step_down_mm), number of flutes (flutes), chip-load limits (chip_load_min_mm, chip_load_max_mm), milling direction (milling_direction: climb or conventional).
What the system does with the CAD line (the finished edge):
- the cutter runs its radius from the edge on the scrap side, its tip at the set depth;
- it plunges vertically in the scrap, one diameter away, and enters the contour;
- a thick sheet is cut in several passes: the shallow ones first, the last at full depth. The reach check runs on the deepest pass, the others are the same path raised, and every pass enters through the same checked arm configuration;
- direction: with a clockwise spindle, climb milling is when the material is on the right of the travel. If the line is drawn the other way, the system runs it backwards.
The scrap side comes from "Torch orientation from 3D" (or cut_side in the recipe).
Chip load
Chip load per tooth = feed ÷ (rpm/60 × flutes). The program shows it to the operator. If the recipe sets limits:- below the minimum the cutter rubs instead of cutting: a thermoplastic melts and sticks. Generation stops — raise the feed or lower the speed;
- above the maximum a laminate delaminates, the edge frays and the cutter may break. Generation stops too.
Take the limits from the cutter maker's catalogue for your material — the system does not invent them.
Drilling
A hole in the system is a path along its axis from the entry to the bottom.In Robotics Studio, "Find holes for drilling" looks for round holes of 1–50 mm in the CAD: two coaxial circles of the same diameter, the wall between them facing the axis (shafts and bosses are skipped). Each hole gets a hole path (H-1, H-2…) with its diameter and depth in the note. The entry is the higher end of the hole. Holes that already have a path are not duplicated.
The "Drilling" recipe:
- spindle speed, feed along the axis (travel_speed_mm_s), drill diameter (tool_diameter_mm);
- optional: peck depth (peck_mm), dwell at the bottom (dwell_ms), breakthrough past the bottom (breakthrough_mm).
With pecking the drill goes one peck deep, comes back to the entry to clear the chips, returns quickly to just above the depth reached and carries on. At the bottom — a dwell, then out.
Toolpath from CAM
For milling surfaces, pockets and 3D shapes, your CAM (Fusion, FreeCAD, Kiri:Moto and so on) makes the toolpath and the robot runs it. In Robotics Studio — "Import a CAM toolpath (G-code / APT)":- G-code — 3-axis (G0, G1, G2/G3 arcs, inches or mm, absolute or incremental). The tool axis is down the program's Z;
- APT CL — for 5-axis paths: the tool axis at every point comes from the file, so it does not depend on the machine the CAM posted for.
The system asks where the CAM program zero is on the part (offset X, Y, Z and a turn about Z). If the CAM worked on the same part model, keep 0, 0, 0, 0. Every cut between rapid moves becomes its own toolpath "TP-1", "TP-2"… in the file's order; the robot makes the rapid moves itself, and the planner goes around obstacles.
Give the toolpaths the "Milling (CAM toolpath)" recipe: spindle speed, feed, cutter diameter. The CAM has already done the cutter compensation and the depths — the system follows the file exactly and shifts nothing.
Not read, and refused with a reason: rotary axes A / B / C in G-code (they depend on the machine — export APT CL), drilling cycles G81–G89 (drill them as holes), CIRCLE arcs in APT (set the post to output points).
Spindle and dust
The spindle runs up before the tool approaches the part: the program waits for the at-speed signal (spindle_at_speed) or waits the run-up time from the recipe (spinup_ms).Laminate and composite dust is harmful, and carbon dust also conducts electricity. The dust_extraction_ok signal: if it is mapped, the program waits for the extraction before starting.