Table of Contents

A 17-Inch Forged Aluminium Wheel, Optimized: HiNC's Feed Optimization Takes 45 % off Both Set-ups, with the Finishing Passes Left at Their Programmed Feed

The 17-inch forged wheel is a one-piece 6061-T6 wheel an AI agent designed from three public fitment numbers and programmed itself: two set-ups and six Fanuc G43.4 programs that HiNC wrote back from the agent's five-axis cutter locations and that replay exactly like them. Together the programs run 17 min 25 s. Here the agent hands those accepted programs to HiNC's feed optimization and asks what an engineer asks before using the result: how much time it saves, what it does to the finishing passes, and whether any line comes out slower than programmed.

Three versions were optimized and replayed on the whole wheel at a 0.5 mm grid on HiNC 3.2.45. V1 optimizes every pass: 9 min 36 s, 44.9 % less, with the spindle at most 0.925 of its continuous rating; on the finishing flank it also bends the tool further, from 94.4 to 140.2 µm at the largest step. V2 keeps the final flank loops and the floor level of each back pocket at their programmed feed: 10 min 01 s, 42.5 % less, and those passes replay step for step as programmed, so protecting them costs 25.7 s, 5 % of the saving. V3 adds HiNC's source-feedrate floor at 100 %, so no step runs slower than programmed: 9 min 40 s, 44.5 % less, 99 % of V1's saving with the finishing untouched. The finishing passes are held at their programmed feed rather than capped by a target force, because on this five-axis flank HiNC's force target did not hold the force.

Most of the time saved comes from the feed-per-tooth ceilings the agent gave each tool, typical values for aluminium rather than a tool maker's data: on 86 % of the roughing tool's cutting steps and on nearly every step of the other tools, the ceiling, not the spindle, set the feed. Everything here is simulated; no wheel was cut.

HiNC simulation of the optimized roughing program: the Ø20 mm end mill in its shrink-fit holder standing above one window of the wheel, the window's walls coloured by spindle power ratio, yellow to red and highest at the corner

V1's optimized roughing program (T1, Ø20 mm end mill, 60 mm out of an 85 mm shrink-fit holder) after cutting window 0, the walls coloured by the spindle power ratio of the step that cut them, 0 to 0.7: yellow to red, up to the 0.667 target at the corner. HiNC 3.2.45, 0.5 mm grid; the program was played on the stock of the 72° sector, where window 0's cut is the same as on the whole wheel (dilemma 8).

Measured on HiNC 3.2.45, whole wheel at 0.5 mm Source program V1, every pass optimized V2, finishing at programmed feed V3, V2 never slower than the source
Machining time, both set-ups 17:25.1 9:35.5 (−44.9 %) 10:01.1 (−42.5 %) 9:39.7 (−44.5 %)
T1 roughing, spindle power against the short-term / continuous rating 0.650 / 0.886 0.678 / 0.925 0.678 / 0.925 0.678 / 0.924
Highest tool stress, share of yield 0.367 (T5) 0.333 0.333 0.367 (T5, held by the floor)
T2 final flank loops, XY tool-tip deflection, largest / 99th percentile 94.4 / 62.4 µm 140.2 / 70.1 µm 94.4 / 62.4 µm 94.4 / 62.4 µm
T6 pocket floor level, XY tool-tip deflection, largest / 99th percentile 65.2 / 39.9 µm 82.5 / 57.9 µm 65.2 / 39.9 µm 65.2 / 39.9 µm
Milled faces within ±0.3 mm of the design, OP30 / OP40 99.98 % / 100 % 99.98 % / 100 % 99.98 % / 100 % 99.98 % / 100 %
Server time, optimization play and replay of both set-ups — 821 s 826 s 806 s
Peak memory, the OP30 optimization play — 24.1 GiB 23.8 GiB 22.8 GiB

The case

The wheel's own case page tells how the agent designed the wheel, wrote its toolpaths and brought both set-ups through an acceptance; this page starts where that one ends. What the agent was given:

  • Six accepted programs: the Fanuc programs HiNC wrote back from the agent's cutter locations, four for OP30 (face up: T1 roughs the five windows, T2 flanks their 7° drafted walls in five axes, T3 drills the stud holes, T4 cuts their 60° seats) and two for OP40 (turned over: T6 cuts the five back pockets from inside the barrel, T5 drills the valve hole at B 72.5°). They run 13 min 13.6 s and 4 min 11.5 s. The acceptance had found no collision, the spindle within its rating and the milled faces within −0.178 to +0.031 mm of the design.
  • The machine, the spindle and the tools of that case: a generic table-C / swivel-head-B five-axis machine, a synthesized 15,000 rpm spindle rated 22 kW continuous and 30 kW short-term, and six generic tools in holders of real proportions.
  • The request: showcases of HiNC's NC optimization built on existing cases, asked for by HiNC's product owner.

What nothing states:

  • How fast these tools may go. The tools are generic, so no maker's feed-per-tooth limit exists. The ceiling each tool is given is the agent's choice, and it decides most of the result.
  • Which passes are finishing. The programs carry no such mark. The agent knows from its own CAM: T2's second loop in each window is the final flank, and the last level of each back pocket finishes the floor and the walls to size.
  • Whether the grid reads the finishing allowance: 0.4 mm on the flank and 0.3 mm in the pockets, under the 0.5 mm grid the optimization runs on.

What the agent built

Each value is marked read (from the programs or the case), derived (computed from them), chosen (the agent's choice) or default (HiNC's default, kept).

Three versions, each one optimization play and one replay per set-up. The optimization play plays the source programs with an NC optimization setting before each and writes the optimized files after; its per-step results are therefore the “before”. The replay plays the optimized programs on the same machine at the same grid; its per-step results are the “after”. Twelve whole-wheel plays in all.

Version What changes What it answers
V1 Every program optimized, the finishing passes included; the same settings as the wheel's case page the time HiNC's optimization takes out with these ceilings
V2 V1, with T2's five final flank loops and T6's five pocket floor levels held at their programmed feed what protecting the finishing costs
V3 V2, with the source-feedrate floor at 100 %: no step slower than programmed how much of the gain survives a rule that the program may only get faster

The NC optimization setting placed before every program:

Setting Value Source
Feed optimization, re-interpolation on chosen
Forward, side and depth compensation off chosen: compensation is not part of this study
Spindle power and torque safety factors 1.5: the target is 67 % of the short-term rating, 20 kW input, under the 22 kW continuous rating default
Tool stress the tool's own optimization limit, safety factor 3: the stress is held to a third of yield; the mission's own yield and thermal-yield factors 0, which do not switch the tool's off default (tool), chosen (mission)
Target force none (Infinity) default
Feed rate, lowest and highest 300 and 20,000 mm/min chosen: HiNC's default lowest, 1 mm/min, is not a cutting feed
Feed for stretches with no cutting 20,000 mm/min chosen
Acceleration of feed changes 1,000 mm/s² chosen: the default 10 mm/s² would spread every change over hundreds of millimetres
Extended distance before and after a cut 2 mm and 2 mm default
Feed-rate assignment ratio 0.01 default
Source-feedrate floor off in V1 and V2; on at 100 % in V3 default (off), chosen (V3)
Maximum feed per tooth per tool, below chosen
Grid 0.5 mm for the machining and the stock chosen: the grid of the optimization on the wheel's case page, so the two compare directly (dilemma 3)

Each tool's own optimization limit was sent before every play through PUT api/Cutter/{id}/opt-limit and read back into the run record: optimization on, yield safety factor 3, the minimum-chip-thickness and relief-angle limits on, no minimum feed per tooth, and the ceiling below. The ceilings are typical values for carbide end mills and drills in aluminium, not a maker's data for these tools; each is set beside the feed per tooth the program already commands:

Tool Programmed feed per tooth (F ÷ rpm ÷ flutes) — derived Ceiling — chosen Ceiling ÷ programmed
T1 Ø20 end mill, 3 flutes, 12,000 rpm 0.119 mm (F4300); 0.072 mm where it cuts wide (F2600); 0.056 mm on the helical entries 0.18 mm 1.5
T2 Ø12 end mill, 3 flutes, 15,000 rpm 0.080 mm (F3600); 0.022 mm on the lead-in and lead-out 0.10 mm 1.25
T3 Ø15 drill, 2 flutes, 6,000 rpm 0.125 mm (F1500) 0.15 mm 1.2
T4 Ø25 60° countersink, 2 flutes, 4,000 rpm 0.050 mm on the seat (F400); 0.150 mm through the hole (F1200) 0.05 mm 1.0
T6 Ø12 end mill, 3 flutes, 14,000 rpm 0.060 mm (F2520); 0.029 mm on the ramps (F1200) 0.10 mm 1.67
T5 Ø11.3 drill, 2 flutes, 7,000 rpm 0.100 mm (F1400); 0.200 mm feeding back out of the wall (F2800) 0.14 mm 1.4

T4's ceiling equals the seat's programmed value, so the optimizer can only bring T4 back to it, never past it.

The finishing passes held in V2 and V3 — read from the agent's CAM. In a copy of each program, T2's second loop in each of the five windows (936 lines each, from its first G01 to the retract) and the level of each of the five back pockets that reaches the floor (124 to 128 lines each, from the ramp's first G01 to the retract) are wrapped in (@@BeginPreserve();) … (@@^EndPreserve();); the agent's script checked that every other line of the copy is the source's. The motion is unchanged, so the “before” of V2 and V3 is the same play as V1's.

Not changed by the optimizer: rapid moves, tool changes and the G43.4 / G49 lines. The wheel has no drilling cycle: the drills are written as G01 moves, so they are optimized like any other cut.

How the agent managed the work

  • Criteria and settings first. Nine criteria and every setting with its source were written down before the first optimization play, the trials included. What the trials changed was written beside the plan before V2's first play, the original left as written.
  • Trimmed first. The 72° sector of the wheel — one window, its stud hole, the valve and half of two back pockets — went through the whole chain at 1 mm (optimize, replay, check that the optimizer really changed the feed and that an embedded target reached the finishing passes), then at 0.5 and 0.25 mm to see whether the grid reads the finishing allowance. Fifteen trial plays, 20 to 230 s and 1.7 to 17.8 GiB each.
  • One whole-wheel run per version. A private copy of HiNC 3.2.45 on a 32-thread server shared with live instances and other agents' studies. Before every heavy play the instance was restarted and the project reloaded from its file, so no setting from an earlier play could carry over; the plays queued on a lock shared with the other studies and started only with 40 GB of the server's memory free, and a read-only check every three minutes looked at the alarms, the line the play had reached, contact and loads. It raised no alert.
  • Settings read back. The optimization setting and each tool's limit were read back from the instance after every play and kept with the results, beside the messages, the server time and the memory.
  • Where a person stepped in. HiNC's product owner asked for NC-optimization showcases built on existing cases; the versions, the settings and the criteria are the agent's.

The criteria as written before the first optimization play, with the cutting steps defined as the steps in contact that remove more than 0.01 mm³/s:

# Criterion
O1 Every optimized program replays to its end with no new alarm: no Collided, no Play-RapidCut--Detected, no stroke alarm, no error in any message sink; every warning of a replay already seen in the optimization play; every optimization play ends with as many files optimized as it has programs
O2 On the replay, for every tool, at least 99 % of the cutting steps within the targets: short-term power and torque ratios ≤ 0.667, stress ratio ≤ 0.333; and every step: power and torque ratios ≤ 1, stress ratio < 1, continuous power ratio ≤ 1.05. Steps V3's floor holds above a target are counted apart
O3 The shape does not change: the part HiNC exports at 0.5 mm has at least 99 % of the milled faces within ±0.3 mm of the design, and their 1st and 99th percentiles each within 0.05 mm of the source program's at the same grid
O4 Time, predicted: V1 −45 % ± 3 points; V2 slower than V1 by at most 40 s; V3 no slower than V2 and at most 10 s faster; the times recorded as measured
O5 The finishing passes in V2 and V3: largest XY tool-tip deflection on their cutting steps ≤ the source's largest × 1.02, 99th percentile ≤ the source's × 1.02; V1 recorded only; all three set beside the 0.2 mm tolerance
O6 The feed for cutting in air never lands on stock: no replay step commanded at 20,000 mm/min or more is in contact; each tool's contact steps within 1 % of the source's; the optimizer log's untouched rows match the source's untouched steps; a sector program optimized at 0.5 mm and replayed at 0.25 mm has no air-feed step in contact either
O7 The output files really are rewritten, cleanly: each optimized file differs from its source; no error in the program manipulation messages; line counts and feed ranges recorded
O9 What set the feed: each tool's cutting steps classified by the limit that set them; predicted T1 about 86 % at the ceiling and 14 % on spindle power, T2 and T6 almost all at the ceiling

A ninth criterion in the plan, O8, predicted a reading of HiNC's tool-deflection model itself rather than anything the optimization does, and is not repeated here.

The dilemmas

Each is told as its situation, the risk had it been missed, how it was noticed, the resolution, and the evidence that the resolution held.

1. The force target did not hold on the five-axis flank

  • Situation. The plan first held the finishing passes with a target force embedded in the program: a (@@OptPreferedForce_N=…;) comment on the first line of each finishing block, released again at its retract, so the optimizer would cap the force, and with it the deflection, only there.
  • Risk. Had it been used as planned, V2 would have looked like a protected finishing pass while the finishing ran at the ceiling, as in V1.
  • How noticed. On the 72° sector at 1 mm, the embedded target reached exactly the finishing steps (2,660 of T2's and 1,954 of T6's carried it). The agent's check script then compared, for every step already above the target before optimization, the feed per tooth the force criterion allowed in the optimizer's per-step log with what would bring that step down to the target.
  • What it showed. On T2's five-axis flank, all 228 steps above a 343 N target were allowed the full 0.10 mm ceiling (the largest force 552 N); set for the whole program at 300 N, all 3,414 steps above it were allowed the ceiling too, and the optimized flank program came out the same as V1's apart from comments. On the three-axis tools the target held in part: at 700 N on the roughing, 768 of the 7,656 steps above it still reached the 0.18 mm ceiling; at 354 N on the pocket floor level, 2 of the 38 steps above it reached the ceiling, and the sector's replay peaked at 399 N on that level, against 667 N in the source program and 891 N with every pass optimized.
  • Resolution. Written beside the plan before V2's first play: the finishing passes are held at their programmed feed with BeginPreserve() … EndPreserve(), the fallback the plan had named.
  • Evidence. V2's and V3's finishing passes replay step for step as the source: the same 13,298 cutting steps on T2's final loops, the largest deflection 94.4 µm and the 99th percentile 62.4 µm, as before the optimization (criterion O5).

T2's final flank loop in window 0, tool-tip deflection and commanded feed against time: V1 runs at 4,500 mm/min, ends at 6.2 s and bends up to 137 µm at its entry; the source, V2 and V3 lie on one curve at 3,600 mm/min and end at 8.2 s

T2's final flank loop in window 0. V1 takes the loop from 3,600 to its 4,500 mm/min ceiling: 6.2 s instead of 8.2 s, with more deflection all along and the most at the entry. V2 and V3 lie on the source's curve.

2. A cap rule that would have held one step

  • Situation. The plan derived the target force from the finishing steps' own compliance: the allowed deflection was the largest XY tip deflection of the pass before optimization; every step predicted to bend more than that at the ceiling gave a cap, the allowance divided by the step's compliance, and the target was the smallest of those caps.
  • Risk. The largest deflection sat on the entry step of the finishing loop, at 0.022 mm per tooth, so the allowance was high and the rule bound one step. Typical finishing steps would have bent about 25 % more, the 99th percentile from 73 to 92 µm by a linear prediction, against criterion O5.
  • How noticed. The agent's exploration script on the trial data.
  • Resolution. Replaced, together with dilemma 1, by holding the passes at their programmed feed. The targets the rule gives on the whole wheel, 499 N for T2 and 562 N for T6, are recorded and were never used.
  • Evidence. O5 is met on the 99th percentile as well as on the largest step.

3. A grid coarser than the finishing allowance

  • Situation. The study runs at 0.5 mm, the grid of the optimization on the wheel's case page; on the sector, a 0.25 mm optimization play took 230 s and 17.8 GiB against 80 s and 6.5 GiB at 0.5 mm. The finishing allowance is 0.4 mm on the flank and 0.3 mm in the pockets.
  • Risk. A grid can read a real cut as air. The optimizer would then write that stretch at the 20,000 mm/min it is given for cutting in air, and the replay would drive the tool into the stock at it.
  • How noticed. Written into the plan as a risk before the first play.
  • Resolution. The sector at both grids: T2's contact steps 5,306 at 0.5 mm and 5,306 at 0.25 mm; T6's 15,241 and 15,706, 3 % fewer at 0.5 mm; the finishing deflection, 99th percentile and largest, 62.3 / 87.2 µm and 59.3 / 87.3 µm on T2, 38.5 / 46.6 µm and 36.8 / 44.8 µm on T6. The sector programs optimized at 0.5 mm were replayed at 0.25 mm: no step at the air feed touched the stock for T1, T2, T3, T4 or T6.
  • Evidence. On the whole wheel no step at the air feed removed anything (criterion O6, dilemma 6).

4. Most of the pocket tool's cutting was ramping

  • Situation. Of the source program's 188.9 s of T6 cutting, 136.5 s ran at 0.029 mm per tooth: the F1200 of the 3° helical ramp into each level, 4 mm deep and 128 lines long on most levels, as the agent's own CAM wrote it. The optimizer took these steps to the 0.10 mm ceiling, 4,200 mm/min. That is most of T6's −54 % in V1.
  • Risk. A ramp in a closed pocket is where the chips have the hardest way out, and the model does not see chip evacuation. Read as a plain gain, the 54 % overstates what a shop would accept.
  • How noticed. The time-weighted feed-per-tooth histogram of each tool.
  • Resolution. Reported as it is, with the advice a shop would follow: give the ramps a ceiling of their own, or hold them at their programmed feed like the finishing passes. The ramp into each floor level is already held in V2 and V3, as part of the finishing block.
  • Evidence. The histogram below: T6's source time sits at 0.029 mm (ramps) and 0.060 mm (levels); V1's at the 0.10 mm ceiling.

Time-weighted feed per tooth on the cutting steps of each tool, the source program dashed and V1 solid: the source's bars sit at the programmed values, V1's at each tool's ceiling, which is marked by a dotted line

Feed per tooth on the cutting steps, weighted by time, the source program and V1. The dotted line is each tool's ceiling. T1's source time is spread over 0.056, 0.072 and 0.119 mm; V1 puts almost all of it at 0.18 mm. T3's bar at 0.033 mm is the relief-angle limit at the drill's entry.

5. The never-slower floor saved twice what was predicted

  • Situation. Criterion O4 predicted V3 no slower than V2 and at most 10 s faster. V3 came in 21.5 s faster.
  • Risk. Read without the breakdown, the floor looks like a setting that can only cost time, or the miss like noise.
  • How noticed. The per-program times of V2 and V3.
  • Resolution. The verdict stays as written: O4 is not met for V3. The breakdown: the floor removed the drill's slow-down at its entry (T3, −2.3 s) and T4's through-hole moves pulled down to the seat's ceiling (−2.8 s), and it stopped the smoothing from dragging the feed transitions of T1 and T6 below their programmed feed (−9.0 s and −7.3 s). It also kept the lines of each level's first contact step off the 300 mm/min minimum (results, below).
  • Evidence. The chart below: V3 is the fastest of the three on T1, T3 and T4.

Each program's time as a share of its source program's, three bars per program for V1, V2 and V3: the drill's V1 and V2 bars pass 100 %, V3's stays under; T2 and T6 are slower in V2 and V3 than in V1 because their finishing passes are held

Each program's time against its source. Only V1 and V2 make a program slower than the source, the Ø15 drill by 9 %; V3, which may only speed lines up, is 11 % faster there.

6. A criterion that counted the wrong thing

  • Situation. Criterion O6 asked that each tool's contact steps stay within 1 % of the source's. A step is one spindle revolution, so a faster program has fewer of them: T1's 129,623 became 84,307. Its first clause did not hold to the letter either: in each replay, one step of the valve drill's exit line, run at the air feed, read contact with nothing removed and no force.
  • Risk. As written, the criterion flags a faster program as one that lost its cutting.
  • Resolution. Judged as written, not met, and its intent checked another way: each program's removed volume, the removal rate times the step time summed over the steps, came within −1.5 % to +1.1 % of the source's; no step at the air feed removed anything; and the optimizer log's untouched rows plus the rapid steps equal the source's untouched steps in all six programs.
  • Evidence. The removed-volume table in the results.

7. One lock for five plays

  • Situation. Each heavy play queued on a lock shared with other agents' studies; one waited 986 s behind another study's play.
  • Risk. Queued one by one, the remaining five plays would have taken one to two hours.
  • Resolution. The five ran in a chain under one hold of the lock, about 16 minutes.
  • Evidence. The queue times kept with every play's record.

8. Before and after from the same view

  • Situation. The pictures had to show the same place from the same camera before and after, with the holder in view and the tool standing at the same point in both, without a whole-wheel play for each picture.
  • Resolution. The whole wheel's T1 program, source and V1's, played on the stock of the 72° sector — window 0's cut is the same as on the whole wheel — each followed by the same short program that moves the tool only in air to its picture pose.
  • Evidence. The pictures here and at the top of the page: the same camera, the walls coloured by the step that cut them. The two picture plays took 125 s and 95 s.

HiNC simulation of the source roughing program: the same view as the picture at the top, the window walls mostly green, about 0.45 of the spindle's rating

Before: the source program in window 0, coloured by spindle power ratio, 0 to 0.7. The walls are mostly green, about 0.45; compare the picture at the top of the page, after V1.

HiNC simulation of the source roughing program coloured by feed per tooth, from 0 to 0.18 mm: the window walls yellow-green at the program's 0.12 mm and green where it slows down

Before, coloured by feed per tooth, 0 to 0.18 mm: the program's 0.119 mm, and 0.072 mm where it cuts wide.

HiNC simulation of V1's optimized roughing program coloured by feed per tooth: almost every wall red at the 0.18 mm ceiling, lower only at one corner

After V1, the same colouring: almost every step at the 0.18 mm ceiling, lower only at the corner where the spindle power target holds the feed.

Results and benefits

Measured on HiNC 3.2.45 on the whole wheel at 0.5 mm. The criteria are the ones written before the first optimization play.

# Verdict Measured
O1 met All twelve plays ran to the end. The six replays: no Collided, no Play-RapidCut--Detected, no stroke alarm, no warning or error in the four message sinks. Each optimization play wrote as many files as it had programs. The one warning of the twelve plays was V3's OP40 optimization play: NcOpt-Feed--SourceFloorOverTarget, one step (yield), the floor's expected report
O2 met Cutting steps above a target: T1 0.066 % in V1 and V2, 0.26 % in V3, every other tool 0 %; no step with a power or torque ratio above 1 or a stress ratio of 1 or more; the continuous power ratio at most 0.925. Counted apart: V3's valve drill, 2 of 57 steps at 0.367 of yield, the source program's own value held up by the floor
O3 met Milled faces within ±0.3 mm: OP30 99.98 % in every version, the same five points below −0.3 mm as the source (lowest −0.366 mm, on edges the 0.5 mm grid rounds); OP40 100 %. The 1st and 99th percentiles within 0.0003 mm of the source's
O4 V1 met, V2 met, V3 not met V1 −44.9 % (predicted −45 ± 3); V2 25.7 s slower than V1 (predicted at most 40 s); V3 21.5 s faster than V2 (predicted at most 10 s; dilemma 5)
O5 met (V2, V3) T2's final loops, largest / 99th percentile XY tip deflection: source 94.4 / 62.4 µm, V1 140.2 / 70.1 µm, V2 and V3 94.4 / 62.4 µm; T6's floor level: 65.2 / 39.9 µm, V1 82.5 / 57.9 µm, V2 and V3 65.2 / 39.9 µm. All under the 0.2 mm tolerance
O6 not met as written, met in intent Dilemma 6
O7 met All 18 optimized files differ from their sources; no program manipulation message; line counts and feed ranges below
O9 met As predicted; the table below

The time, program by program (simulated seconds, without tool changes or loading; the totals are the plays' own end times, so the rounded programs of V2 add up to 0.1 s more than its total):

Program Source V1 V2 V3
T1 Ø20 roughing 685.4 369.5 (−46 %) 369.5 (−46 %) 360.5 (−47 %)
T2 Ø12 flank 86.5 66.7 (−23 %) 76.7 (−11 %) 76.7 (−11 %)
T3 Ø15 drill 11.2 12.2 (+9 %) 12.2 (+9 %) 9.9 (−11 %)
T4 60° countersink 10.5 10.0 (−5 %) 10.0 (−5 %) 7.2 (−32 %)
T6 Ø12 back pockets 248.3 114.4 (−54 %) 130.1 (−48 %) 122.8 (−51 %)
T5 Ø11.3 valve drill 3.2 2.7 (−16 %) 2.7 (−16 %) 2.6 (−17 %)
Both set-ups 17:25.1 9:35.5 (−44.9 %) 10:01.1 (−42.5 %) 9:39.7 (−44.5 %)

The whole wheel's simulated machining time, stacked by program, for the source program and the three versions: 17:25.1, 9:35.5, 10:01.1 and 9:39.7

The whole wheel by program. T1's roughing is two thirds of the source program's time and most of the saving.

Where V1's time went. Of the 469.6 s V1 saves, the steps that touch the part give most and the moves in air the rest; the optimizer runs a stretch with no cutting at the 20,000 mm/min it is given for cutting in air:

Tool Steps touching the part Steps in air
T1 −244.2 s −71.8 s
T6 −112.1 s −21.8 s
T2 −14.5 s −5.2 s
T3 +0.6 s +0.4 s
T4 +1.9 s −2.5 s
T5 0.0 s −0.6 s

Where V1's time went, per program: the change on the steps that touch the part and on the steps in air; T1 −244.2 and −71.8 s, T6 −112.1 and −21.8 s, the drills and the countersink within a few seconds

V1 against the source, per program. Three places go the other way: the Ø15 drill's entry, where the relief-angle limit holds the feed per tooth to 0.033 mm (391 mm/min) while the point enters; the countersink's moves through the hole at F1200 that already touch its edge, brought down to the 0.05 mm ceiling, 400 mm/min; and the first contact step of each new level, written at the 300 mm/min minimum.

What the loads did. V1, each program's peaks before and after on its cutting steps:

Program Spindle power, short-term Continuous, after Torque, after Stress, of yield Largest force XY tip deflection, 99th pct / largest Steps at the ceiling
T1 Ø20 roughing 0.650 → 0.678 0.925 0.378 0.150 → 0.207 919 → 1,253 N 47.9 / 53.6 → 66.6 / 74.1 µm 86.4 %
T2 Ø12 flank 0.278 → 0.375 0.512 0.186 0.251 → 0.333 551 → 715 N 81.8 / 101.4 → 94.6 / 140.2 µm 99.7 %
T3 Ø15 drill 0.305 → 0.362 0.493 0.145 0.033 → 0.039 456 → 530 N 0.0 / 4.5 → 1.0 / 2.8 µm 94.5 %
T4 60° countersink 0.172 → 0.172 0.234 0.050 0.009 → 0.009 118 → 59 N 0.39 / 0.39 → 0.22 / 0.22 µm 100 %
T6 Ø12 back pockets 0.433 → 0.541 0.738 0.236 0.264 → 0.333 820 → 1,013 N 34.3 / 65.2 → 49.6 / 82.5 µm 99.85 %
T5 Ø11.3 valve drill 0.164 → 0.224 0.306 0.083 0.367 → 0.332 498 → 451 N 104.6 / 111.6 → 107.8 / 108.4 µm 76.8 %

The deflection is the reading of HiNC's tool-beam model, not a measurement. With no target force set, the optimizer held power, torque and stress, not force: where it sped up cuts that used little power, the largest force rose, by a third on T1. In V2 and V3 the peaks of T6 stay at the source's (0.433 and 820 N), because its heaviest steps are in the held floor level.

The whole of OP30, largest spindle input power per half second, the source program above and V1 below, with the 30 kW short-term and 22 kW continuous ratings and the 20 kW target: the source peaks below 20 kW over 13 min 13.6 s; V1 runs flat along 20 kW and ends at 7 min 38.4 s

All of OP30, the largest spindle input power per 0.5 s. V1 flattens the roughing onto the 20 kW target, the spindle's input power at 67 % of its short-term rating, and the set-up ends at 7:38.4 instead of 13:13.6.

T1's roughing of window 0, six levels: the largest input power and the commanded feed on the cutting steps against time, the source dashed and V1 solid; V1 runs at 6,480 mm/min, its power touching the 20 kW target, and finishes the window in 74.6 s against 137.7 s

T1 in window 0: V1 runs the 0.18 mm ceiling, 6,480 mm/min, wherever the spindle allows, and slows where its power reaches the 20 kW target: 74.6 s instead of 137.7 s. The two dips to 300 mm/min are the first contact steps of new levels.

What set the feed. The optimizer writes, for every step, the feed per tooth each limit allows; the lowest is the step's. These plays kept the smoothing on, which carries neighbouring steps into what the log records, so the shares below are the limits as the log records them, not each step tested on its own with the smoothing off. V1's cutting steps by the limit that set them:

Tool Cutting steps Feed-per-tooth ceiling Spindle power Tool stress Relief angle Other
T1 129,608 86.4 % 13.6 % — — minimum feed 0.07 %
T2 26,525 99.7 % — 0.3 % — —
T3 655 94.5 % — — 5.5 % —
T4 225 100 % — — — —
T6 45,520 99.85 % 1 step 1 step — minimum feed 0.12 %, spindle torque 13 steps
T5 56 76.8 % — 21.4 % 1.8 % —

In V3 the floor sets T4's 225 steps, 20 of T1's, 12 of T6's and 1 of T5's, and no line is written at the 300 mm/min minimum.

What set the feed of each cutting step, per tool and version, as shares: the feed-per-tooth ceiling for most of every tool, spindle power for 14 % of T1, tool stress for about a fifth of T5, the relief angle for 5 % of T3, and the source-feedrate floor for all of T4 in V3

The limit that set each cutting step's feed, from the optimizer's per-step log. V2 and V3 count only the steps the optimizer solved: the finishing passes they hold are not in the log.

For each tool, the share of cutting steps whose governing ratio, the largest of power ÷ 0.667, torque ÷ 0.667 and stress ÷ 0.333, exceeds a value, the source program and three versions: T1's optimized curves run to 1.0, the target; the source's T5 and V3's T5 reach 1.10

How close each step comes to its target. T1 is the only tool the spindle holds; tool stress holds a fifth of T5's steps and a few of T2's at 1; the rest stop at their ceiling well below 1. T5 reaches 1.10 in the source program and in V3, where the floor keeps two steps at their programmed feed and 0.367 of yield.

The finishing passes. On their cutting steps, the XY tool-tip deflection and the force:

Finishing pass Cutting steps, source Source V1 V2 V3
T2 final flank loops, largest / 99th percentile deflection 13,298 94.4 / 62.4 µm 140.2 / 70.1 µm 94.4 / 62.4 µm 94.4 / 62.4 µm
T2 final flank loops, largest force 512 N 715 N 512 N 512 N
T6 pocket floor level, largest / 99th percentile deflection 6,555 65.2 / 39.9 µm 82.5 / 57.9 µm 65.2 / 39.9 µm 65.2 / 39.9 µm
T6 pocket floor level, largest force 820 N 1,013 N 820 N 820 N

The finishing passes, share of cutting steps whose XY tip deflection exceeds a value: on T2's final loops and on T6's floor level V1's curve lies to the right, reaching 137 µm and 80 µm; V2 and V3 lie on the source program's curve

The finishing passes' deflection, share of cutting steps above a value. The dotted line is the source program's largest step; V1 passes it on both tools, V2 and V3 lie on the source's curve.

The shape. The part HiNC exports after each set-up against the design, at 0.5 mm:

Part, milled faces Points Lowest Highest 1st percentile 99th percentile Within ±0.3 mm
OP30, source program 24,643 −0.3657 mm +0.0061 mm −0.0607 mm +0.0032 mm 99.98 %
OP30, V1 replay 24,643 −0.3657 mm +0.0073 mm −0.0608 mm +0.0035 mm 99.98 %
OP30, V2 and V3 replays 24,643 −0.3657 mm +0.0061 mm −0.0607 mm +0.0032 mm 99.98 %
OP40, source and every replay 29,515 −0.2684 mm +0.0099 mm −0.0186 mm +0.0065 mm 100 %

The turned faces read the same in every version: OP30 10 of 275,357 points below −0.3 mm (lowest −0.392 mm) and 2 above +0.3 mm, OP40 1 of 270,485 below and 2 above; at 0.5 mm the grid's picture of the turned blank, which the wheel's acceptance at 0.25 mm reads within ±0.3 mm but for one point per set-up.

What was removed. Criterion O6's intent, program by program; removed volume is the removal rate times the step time, summed:

Program Source V1 V2 V3 Air-feed steps in contact, removed
T1 1,733,353 mm³ +0.22 % +0.22 % +0.22 % none
T2 65,229 mm³ +0.60 % +0.30 % +0.30 % none
T3 26,515 mm³ +0.28 % +0.28 % +0.58 % none
T4 4,036 mm³ −1.54 % −1.54 % 0.00 % none
T6 67,556 mm³ +1.07 % +0.90 % +0.90 % none
T5 586.5 mm³ −0.99 % −0.99 % −1.09 % 1 step in each version, 0 mm³

The optimized files. V1's six programs (the optimizer splits lines where it re-interpolates the feed):

Program Lines, source → optimized Feed words Feeds written Lines at the air feed Lines at the 300 mm/min minimum
T1 30,992 → 38,513 10,162 300–20,000 mm/min 106 10
T2 9,404 → 9,542 182 1,809–20,000 mm/min 20 0
T3 49 → 75 36 391–20,000 mm/min 5 0
T4 39 → 44 10 400–20,000 mm/min 5 0
T6 5,110 → 5,435 378 300–20,000 mm/min 59 14
T5 21 → 29 9 1,247–20,000 mm/min 2 0

In V3 the lowest feed written is each program's own lowest — T1 2,000, T3 1,500, T6 1,200 mm/min — and no line is at the minimum.

What the runs cost on the shared 32-thread server, server time and peak memory:

Play V1 V2 V3
OP30 optimization play (plays the source, writes the optimized files) 390.6 s, 24.13 GiB 385.5 s, 23.82 GiB 375.5 s, 22.77 GiB
OP30 replay 235.3 s, 5.91 GiB 245.3 s, 6.19 GiB 240.3 s, 6.06 GiB
OP40 optimization play 120.2 s, 6.98 GiB 115.1 s, 6.95 GiB 115.1 s, 6.11 GiB
OP40 replay 75.1 s, 5.08 GiB 80.1 s, 5.33 GiB 75.1 s, 3.78 GiB
The version 821 s 826 s 806 s

The twelve plays took 2,453 s, 41 minutes; the fifteen sector trials 20 to 230 s and 1.7 to 17.8 GiB each, the 0.25 mm one the largest; the two picture plays on the sector 125 s and 95 s.

For a machining engineer. On a five-axis wheel program whose loads were already inside the spindle's rating, HiNC's optimization took 44.9 % off the machining time without changing the shape. On this wheel the ceilings given to each tool decide most of it, so they deserve the same care as a cutting parameter. Two settings make the result one to send to a machine: hold the finishing passes at their programmed feed, which here cost 25.7 s of the 469.6 s saved, and floor every step at its programmed feed, which made no line slower and saved 21.5 s more. The per-step log says which limit set each step, and the time-weighted histogram shows where the time went: most of the pocket tool's saving is in its ramps, which a shop would cap on its own.

For a teacher or a student. One program shows what this optimization held — spindle power, torque, tool stress, the ceiling — and what it did not: force, for which no target was set here; deflection, for which the optimizer has no criterion of its own; and the wall it leaves. It shows how a ceiling, a target and a floor decide a step together, why a finishing pass is protected, why a step is one revolution and a faster program has fewer of them, and why the ratio of two simulated times is the part to trust.

For someone weighing the approach. From six accepted programs to three optimized versions with their replays took twelve whole-wheel plays, 41 minutes of server time and at most 24 GiB, and fifteen sector trials. The agent wrote its criteria first, found on a trial that the force target did not hold the flank and changed the protection before the version ran, and wrote down where its predictions missed. What it leaves to an engineer are the ceilings and the ramps.

Honest limits

  • The force target does not hold on this five-axis flank. Steps already above the target were still allowed the full ceiling; on the three-axis tools it held in part. The finishing passes are therefore held at their programmed feed rather than capped by a force target; the optimizer has no criterion for deflection itself.
  • The gain rests on the agent's ceilings, typical values for carbide end mills and drills in aluminium, not a maker's data for these tools.
  • Deflection is HiNC's tool-beam reading, and the removal geometry here does not include it. The projects play with HiNC's deflection transformation off, so the comparison with the design reads the programmed path and a finishing pass that bends more leaves no trace there; the deflection columns are the only place it shows.
  • Chip evacuation, chatter and surface finish are not modelled. Most of T6's saving is in ramps into closed pockets.
  • The first contact step of each level is written at the 300 mm/min minimum — in V1, 10 lines of T1 and 14 of T6 — though that step's own force is near zero (at most 0.19 N on T6 and 0.41 N on T1): all three criteria stop at the lower limit there. V3's floor keeps those lines at their programmed feed.
  • An optimization setting embedded as a script comment can be broken by the optimizer's line note. Where the optimizer appends its (src(...)) note to a line that carries an @@ script, the replay reads the note as part of the script and reports Script-Compile--Error. A sector trial with embedded force targets showed it on one and two lines; the programs on this page keep their held lines verbatim and carry no such note.
  • The times are HiNC's ideal-feed estimate, without acceleration, look-ahead or tool changes: the ratio between versions is sound, the absolute times are not shop-floor times — see Machining Time Estimation.
  • The shape is read at 0.5 mm, which rounds edges: the five OP30 points below −0.3 mm are the same in every version and in the source.
  • The machine, the spindle and the tools are generic, and the loads come from HiNC's library coefficients for 6061-T6; nothing was measured on a machine.

What a reader can take to their own case

  • Mark the finishing passes before optimizing, and hold them with BeginPreserve() … EndPreserve() when nothing else holds them; here it cost 5 % of the saving.
  • Check that a cap caps. Compare the feed each criterion allowed in the per-step log with the step's load before optimization; a target that never binds looks exactly like one that does. With EnableDepthSplition on, its default, a force row that repeats the step's own feed per tooth marks a step the target pinned on the floor, not one it let through.
  • Read which limit set each step. When it is your ceiling, the result is only as good as the ceiling.
  • Floor a proven program at its own feed. At 100 %, the source-feedrate floor made no line slower than programmed and here also saved time, by keeping the smoothing above the programmed feed.
  • Check the grid against the finishing allowance before trusting an optimization of a finishing pass: compare contact at two grids, and replay the optimized program on the finer one.
  • Count what a criterion means. Removed volume says whether a faster program still cuts; step counts do not.
  • Look where the saving comes from. A ramp feed that dominates a tool's time is a CAM decision to revisit, not only a gain to take.
  • Budget the memory. An optimization play can need several times what its replay does: 24 GiB against 6 GiB for OP30 at 0.5 mm, though 7.0 against 5.1 GiB for the shorter OP40.

Source and licence

  • Wheel size numbers: ANKUSI Open Wheel Fitment Dataset: bolt pattern, centre bore and OE wheel specifications for 7,603 vehicle variants, ANKUSI Wheels engineering team, figshare, version 4, 2026-09-20, https://doi.org/10.6084/m9.figshare.33921994. Licence: CC BY 4.0. Search terms if the link moves: ANKUSI Open Wheel Fitment Dataset, figshare 33921994.
  • Flange height: de.wikipedia, Autofelge, “Form J, entspricht einer Höhe von 17,3 mm”.
  • Attribution: “Wheel size numbers from the ANKUSI Open Wheel Fitment Dataset (ANKUSI Wheels engineering team, figshare, doi:10.6084/m9.figshare.33921994, CC BY 4.0). Wheel design by Tech Coordinate's agent.” The data set is provided as is, without warranty.
  • What was used and changed: three numbers only; the CSV itself was not kept. The wheel design, the stock, the fixture, the machine, the spindle, every toolpath and the programs optimized here are the agent's, as the wheel's case page tells. The pictures are HiNC simulations and the charts are drawn from HiNC's per-step results. Everything on this page is simulated; no wheel was cut.

See Also