The McWire wasn’t just for 3D printing because its cartesian coordinate system made it equally suitable as a CNC mill. By adding a Dremel tool mount, I could cut acrylic, mill circuit boards, and create precision parts that complemented the 3D printing capabilities.
Adding the Dremel Milling Head#
I built a simple mounting bracket from materials on hand: aluminum angle stock for the base, C-channel extending downward to reach the work area, and a clamp bolted to grip the Dremel extension shaft. The grip was extremely firm, though I hadn’t tested it with actual milling yet because I still needed to acquire proper end mills. For PCB etching and light work, though, this setup proved adequate.
Learning G-Code#

As a test project, I sketched a NEMA 17 motor mount by hand and wrote the G-code manually to cut it from acrylic sheet. This turned out to be easier than expected because basic CNC milling only requires a handful of codes: rapid positioning, linear interpolation for cutting, and clockwise and counter-clockwise arcs.
I used several software packages to develop and test G-code. tkCNC provided basic 2D visualization that helped catch obvious errors before running on the actual machine. CNC Simulator featured an impressive 3D simulator that showed exactly what the tool path would produce, much better for catching subtle issues. CamBam’s demo version could convert DXF files to G-code automatically, far faster than writing G-code by hand. You could draw in any CAD program, export to DXF, and have toolpaths generated in seconds.

The simulator showed the tool path for the NEMA 17 motor mount. Being able to visualize before cutting saved material and prevented crashes.
First Milling Tests#


I found Rotozip bits at the hardware store and tested both for milling acrylic. The plan was to mill parts for a plastic extruder body, something the 3D printing side wasn’t producing reliably yet.
I started the Dremel at its lowest speed but increased to maximum by the end of the test. Several issues emerged: both the Dremel bracket and the bit itself flexed under cutting forces, affecting dimensional accuracy. I set the initial Z-height incorrectly and drove the mill into the baseplate, an expensive mistake avoided only because I was using a sacrificial surface. The feed rate started too high. Next time I planned to go slower with higher RPM for cleaner cuts.
Despite these problems, the first test was encouraging. The McWire’s motion system was accurate enough for useful milling work.


The cut quality was rough but functional. Chips cleared reasonably well, though I should have used compressed air or a vacuum.

Fresh off the machine with chips still attached.

After cleaning, the part was usable despite the rough finish. For functional components rather than finished products, this level of quality was acceptable.

The Z-height mishap left some interesting marks on the baseplate, a reminder to double-check setup before starting the spindle.
Simple G-Code Generator#

To help test extrusion settings (and later, simple milling operations), I wrote a basic G-code generator with settings for layer height, extrusion width, speed, and shape options. This wasn’t meant to replace proper slicing software like Skeinforge; it was purely for testing whether the machine worked at all. When struggling to get Skeinforge configured correctly, having a simple tool that generated known-good G-code was invaluable for isolating problems.
Lessons from CNC Milling#
Milling on the McWire taught several important lessons. Rigidity matters because every bit of flex in the system shows up in the final part. The Dremel mount needed reinforcement for serious work. Speeds and feeds are critical: too slow creates heat buildup and melting, too fast causes chatter and tool breakage. Finding the sweet spot requires experimentation. Z-height setup is crucial, and a few thousandths of an inch difference separates cutting air from destroying the machine. CAM software pays for itself: writing G-code by hand is educational but impractical for complex parts. Different operations need different tools: PCB etching, acrylic cutting, and aluminum milling all require different bits, speeds, and techniques.
CNC vs. 3D Printing#
Having both capabilities on one machine revealed interesting trade-offs. CNC milling offered better dimensional accuracy, smooth surface finish potential, work with various materials, no support structures needed, and faster processing for simple parts. 3D printing provided complex internal geometries, no material waste, quieter operation, capability for overhangs and bridges, and the ability to combine multiple materials in one print.
The ideal setup had both capabilities available, selecting the appropriate process for each job.
Editor’s Note (2025): This article combines posts from May-December 2009 about adding CNC milling capabilities to the McWire RepStrap. The language has been updated for clarity, but the technical content reflects actual experiences with hobby CNC in 2009. Modern hobby CNC machines are far more rigid and capable, with better spindles, closed-loop control, and sophisticated CAM software. However, the fundamental principles remain unchanged: proper speeds and feeds, rigid mounting, accurate tool height setting. The G-code generator mentioned is available in the sourceforge archive, though modern slicing software has made such tools obsolete.