Reese Chang

CNC Programmer & Machinist — Fusion 360 CAM, 3-axis and 4th axis

Reese CNC Machine Shop LLC · Decatur, GA

Production machinist and Fusion 360 CAM programmer. 1.75 years running a Haas VF-3SS in a production job shop — 3-axis CAM mastered, plus 4th-axis indexing (3+1) and simultaneous 4th-axis machining.

Everything below is real production work I programmed and ran — 6061 aluminum, 316/304/303 stainless, cast iron, tool steels and plastics. Not sample parts, not simulations.

Four years of Fusion 360 CAD came before the shop; running my own shop and writing my own CAM engine came after. The machining is the part worth your time, so it leads.

Click any thumbnail to play · videos have sound · click any photo to enlarge

Printed copy: each clip below is shown as a still frame. The moving footage (19 clips, with sound) is in the digital version of this portfolio.

1.75yrs
Production machining
Haas VF-3SS
3+1
Indexed & simultaneous
4th axis
7
Material families
alu · stainless · iron · plastics
37
Clips & photos
of real production work

Selected Work — start here if you only watch three

The three clips that best show how I program: multi-axis roughing strategy, in-program probing with post-processor sequencing, and aggressive but controlled material removal.

Large 4th-axis part — full roughing cycle My second 4th-axis job. A 2" PCD-insert face mill roughs and finishes the part on the same inserts. One face sits a few degrees off square — that tilt is why the job needed the rotary — and the external fillets are 3D-surfaced and blended into the surrounding toolpaths. Source-time ticker and speed overlay are burned in, so the real cycle time behind the sped-up sections stays visible.
4th AxisTicker + speed overlay
Post-processor sequencing + in-program probing The stock tool change runs seven moves in series. Mine overlaps them into three: retract, spindle stop and the first carousel move all start together; then the change; then spindle-on and the X, Y and Z repositions together. Probing routines are called inside the program rather than dialled in at setup.
ProbingPost-processor
High-MRR aluminum roughing 2" PCD face mill at 6,200 rpm and 0.008" per tooth — 250 ipm, 0.140" depth of cut, full-width passes, about 70 in³/min under ideal cutting conditions. The part rarely holds a full-width cut for long, so the average across the real cycle is well below that.
6061 AluminumHigh MRR

4th-Axis & Multi-Axis Machining — indexing, simultaneous, 3D surfacing

Indexed (3+1) and simultaneous 4th-axis work on large parts: roughing strategy, 3D surfacing passes, and reaching multiple faces in one setup.

Large 4th-axis part — material removal Second 4th-axis job I ran. One 2" PCD face mill roughs and finishes — same inserts for both. The part is not square: one face is tilted a few degrees, which is the reason it runs on the rotary at all.
4th Axis
Large 4th-axis part — 3D surfacing Surfacing the second part variant on the rotary. The external fillets are 3D-surfaced and blended into the toolpaths around them.
4th Axis3D Surfacing
Large 4th-axis part — 3D surfacing, second view The other part variant in this pair, from a second angle. The external fillets are 3D-surfaced and blended into the roughing and finishing passes around them.
4th Axis3D Surfacing
Multi-sided 4th-axis part — 1/2" roughing to finished The most complex part I have made. Two vises and the rotary take it from stock to complete — everything but the tapped holes — in two machine cycles, roughing the shape and holding the precision bore. Full 4th axis finishes four of the six sides. Originally quoted in 304 stainless; run in 303.
4th AxisMulti-sided
4th-axis small hole drilling setup
4th-axis small-hole drilling 48 small-diameter holes across 6 pockets. The pockets were milled in three axes and the holes drilled on the rotary in the same machine — no second setup, no transfer.
4th Axis

Probing, Post-Processing & Process Optimization — the unglamorous work that makes jobs repeatable

Where I spend the most programming effort: cutting setup time with in-program probing, reordering operations at the post-processor level, and fixing processes that were fighting the operator.

Post-processor sequencing optimization + in-program probing Haas runs a tool change as seven sequential moves. I rewrote the post to overlap them into three passes of motion — see the comparison below. Probing is called inside the program instead of at setup, so the cycle does not need a person.
ProbingPost-processor
Probing with the 4th axis The machine is a pre-NGC Haas control — no TCPC, no DWO. If the part is not perfectly centred on the rotary, the control will not compensate for you, so every indexed orientation gets probed on its own. Knowing exactly what those two features do for you is the residue of having worked without them.
Probing4th Axis
Process improvement — tapping arm, 8-32 in 304 SS deep hole An 8-32 tap deep in 304 stainless breaks. The mill is not delicate enough to tap it reliably, and by hand it is slow and still depends on the operator never losing concentration. I sourced and bought the tapping arm myself to take both failure modes out of the job.
304 SSProcess fix

The tool change, rewritten

Same machine, same tool change. The stock sequence runs seven moves one after another. Mine overlaps everything that does not depend on the move before it, and lands in three. That difference is paid on every single tool change, in every cycle, for the life of the program.

Stock sequence 7 moves

  1. Z axis up
  2. Spindle off
  3. Tool change
  4. Spindle on
  5. Reposition X
  6. Reposition Y
  7. Reposition Z

My sequence 3 moves

  1. Z axis up + Spindle off + Carousel pot down all at the same time
  2. Tool change
  3. Spindle on + Reposition X, Y and Z all at the same time

Multi-Sided & Batch Production — 50-piece runs, multi-part fixtures, op1/op2

Production quantities, where the programming decision is how many parts fit per cycle and how the second op locates off the first.

Multi-sided stainless steel part Quoted in 304 stainless. I looked into it and moved the job to 303, which let me run the tools at least 50% faster for the same part. The first batch ran in 316 because that is what was on hand.
StainlessMulti-sided
Op 1 — multi-part fixture One bar in the vise jaws, four parts out of it. Less saw time, fewer operator interactions and fewer tool changes than running them one at a time.
Op 1
Op 2 — multi-part job A different job, second side: the parts are separated from the bar here.
Op 2
50-piece 304 stainless multi-sided part
50-piece 304 stainless multi-sided part A large 304 stainless run. Three views of the setup and the finished batch.
304 SS50 pcs
Multiple parts machined per cycle
Multiple parts per cycle Two vises, and each bar carries 11 parts. Vise one runs the first operation, vise two the second. Faster than one at a time, and because every face gets machined the parts come out better than buying stock to size and parting off.
Production
Op 2 multi-part job, finished parts
Op 2 multi-part job — finished The finished parts from the clip above, still in the vise.

Heavy Cutting & Material Removal — face milling, high-MRR roughing, large-hole drilling

Pushing the machine as hard as the setup allows. In stainless that means managing heat and work hardening; in aluminum it means finding the limit before chatter.

High-MRR aluminum roughing Adaptive roughing in 6061 run for material removal rate — long, uninterrupted and stable.
6061 AluminumHigh MRR
High-MRR aluminum — finished op 1 The part off the machine: a large 3D-surfaced step and 3D-surfaced external fillets.
6061 Aluminum
Heavy face milling — 316 stainless 95% spindle load on a 5-flute 2.5" face mill. The mill itself is the point: it replaced a single-sided square-insert cutter that gave 4 corners per insert with a double-sided octagonal one that gives 16 — 4× more life — and I sourced the inserts at $4 against the $20 these normally cost. 20× off the cost of this cutting.
316 SSHeavy cut
Large-hole drilling in 316 stainless A 1.476" 4×D indexable drill through 2.5" of 316 in 46 seconds. Later runs moved to a 1.55" 2×D drill at double the feed per tooth in 303.
316 SS
Face mill set up for a heavy cut
Face mill — heavy cut setup The older 4-sided square-insert face mill, taking a heavy cut in a large piece of tool steel. This is the cutter the octagonal-insert mill above replaced.
Heavy cut

Workholding & Fixturing — tabs, zero-point, and parts that don't want to be held

Most of the hard problems in a job shop are holding problems. These are the setups I built when the obvious method didn't work.

Tabbed, hard-to-hold part There is no way to hold this part in a vise, so it stays attached to the stock by tabs and comes out 100% machined in two operations before the thin tabs are broken out. Multiple angled faces, small features and 3D surfacing.
Tabs
Tabbed hard-to-hold part
Tabbed part — top and side Tabs ground off, then sandblasted. The triangle is not a right triangle — both top faces are angled.
Tabs
4th-axis zero-point fixturing
4th-axis zero-point fixturing A zero-point plate and vise on the rotary. Workholding swaps over in one move instead of indicating the fixture back in every time it changes.
4th AxisZero-point
Improvised bar feed for PVC tube
Improvised bar feed for PVC tube The tube needed two curved cuts, cut to length and aligned to each other. I milled a half circle through two aluminum blocks, passed the tube through, and milled it on both sides of them — parting it and finishing both ends in one setup, with no saw work to prep the stock.
Creative workholding

Materials & Finish Quality — cast iron, plastics, stainless, small parts

The same programmer across very different materials. Each one wants a different chip, a different coolant approach, and a different definition of a good finish.

Cast iron gear before machining
Cast iron gear — before & after Pocketed with an indexable end mill, then finished with a range of end mills and ball end mills to bring the small corner radii into spec. Click the strip for the after views and the close-up.
Cast Iron4 photos
Plastic milling Adaptive clearing with a long 3/4" end mill.
Plastics
Finished milled plastic part
Plastic milling — chip pile The chips the cycle above produced, piled on the part.
Plastics
Multi-sided stainless part with precision-bored hole
Multi-sided stainless part — precision boring The 303 stainless job. The bore is called out at +0.0005". I brought in special tooling and held ±0.0001" across an order of more than eight parts.
StainlessPrecision boring
Long stainless steel parts
Long stainless steel parts A long, thin part with most of its material removed. It spans three vises and will shift anywhere it is not supported. The photo shows warped parts beside one that was bent back flat, sitting on a surface plate.
Stainless
Small precision machined part
Small precision parts 17-4 stainless. The profile was wire EDM'd to size and every remaining feature milled in, which takes very small end mills and fixturing accurate enough to find the part again. Six cycle starts on an undeburred part; one cycle start — two vises, three setups — once deburred.
3 photos

Fusion 360 CAM

3-axis mastered; 4th-axis indexing (3+1) and simultaneous machining. Adaptive clearing, contour, pocketing, drilling and 3D surfacing, with feeds and speeds tuned per material rather than left at library defaults.

I also work below the CAM tree — post-processor sequencing changes and in-program probing routines — which is usually where the real cycle time and the real reliability come from.

3-axis CAM

Adaptive clearing, 2D/3D contour, pocketing, drilling and tapping cycles, 3D surfacing and finishing.

4th axis

Indexed (3+1) multi-face work and simultaneous rotary machining, including surfacing on rotary-held parts.

Probing

In-program probing routines to establish offsets and cut setup time, including probing against a rotary centerline.

Post-processor work

Sequencing optimization at the post level so the output program runs in the order the machine wants.

Workholding design

Tabbed stock, zero-point fixturing, multi-part fixtures, and improvised solutions when standard workholding won't reach.

Process improvement

Finding the operation that's costing time or breaking tools, and changing the process instead of pushing harder.

6061 Aluminum 316 Stainless 304 Stainless 303 Stainless Cast Iron Tool Steels Plastics

Moving to 5-Axis & Automated Cells — what transfers, and what doesn't

Worth being straight about, because it's the first thing anyone sensible will ask.

The control transfers

I spent 1.75 years on a Haas VF-3SS. Offsets, work and tool coordinate systems, macro variables, probing cycles, and the habits around setup and edit-at-the-machine are the same family — I'm not learning a control from zero.

The strategy mostly transfers

Indexed 3+1 work is the same thinking as 5-axis positioning: orient the part, cut in three axes, own the tool-length and clearance problem at every orientation. Simultaneous 4th-axis work is the honest start on simultaneous motion.

Automation is a programming problem

A pallet changer only pays off if the program doesn't need a person. That's exactly the probing, post-processor sequencing and repeatable workholding on this page — the work that makes a cycle survive unattended.

What I haven't done

I have not run simultaneous 5-axis in production, and I won't pretend otherwise. Tool-axis control, collision avoidance through full rotary travel, and TCPC behaviour on a real post are the gap — and they're a study problem, not a talent problem.

The straightforward way to test this: send me a sample model and I'll program it and send back the toolpaths, the posted code and a setup sheet — free, no commitment. That's a faster read on whether I'm useful to you than anything I could write here.

Customer models, drawings and program files stay confidential and are never used outside the work they were sent for.

Experience

RoleWhereWhat
Machinist / CAM Programmer Arbiser Machine
Production job shop
Ran a Haas VF-3SS for 1.75 years. Programmed and ran production parts across aluminum, stainless, cast iron, tool steels and plastics — 3-axis and 4th axis, including probing and post-processor work.
Robotics — BEST competition Fernbank LINKS Machined rack & pinion and wheels on a CNC mill; C++ controls work.

Earlier Projects — CAD & robotics before the shop

Four years of daily Fusion 360 CAD — 36 projects, 35 with interactive A360 models — and two competition robots. Personal design exercises from before the shop, shown for the modelling and mechanism work: they're why I read a model the way its designer intended, and why I catch the features that'll be a problem to hold before the job reaches the machine.

Past projects, not services — the shop's work is the CAM programming above.

Monolithic receiver housing
Monolithic receiver housingSingle-piece housing consolidating a two-part assembly — custom internal geometry with extended bolt travel.
Bullpup chassis layout
Bullpup chassis layoutRear-set action layout with a modular rail and handguard.
Polymer frame with recoil-damping mechanism
Polymer frame — recoil dampingGas-driven tungsten counterweights and a ported brake, sized to cancel recoil impulse.
Solenoid-actuated chassis conversion
Solenoid-actuated chassisBolt-on chassis conversion driven by a solenoid actuator and linkage.

Also: the Fernbank LINKS BEST-competition robot and an MTRE 1000 mechatronics robot — rack & pinion and wheels machined on a CNC mill, controls written in C++.

Now — the shop and the software

Founded Reese CNC Machine Shop LLC (Decatur, GA), and building the tooling that most programmers only use.

Reese CNC Machine Shop LLC

Single-member LLC in Decatur, GA — a machine shop organized around CAM programming as the core service.

Custom CAM software

Building my own CAM engine — toolpath generation, simulation and G-code output — in Python. Knowing CAM below the interface is what lets me push a stock install further than most.

Nesting engine

Writing a CNC nesting algorithm to maximize sheet utilization — the same optimization mindset I apply to cycle time and tool life.