Fabrication Techniques & Hardware
A milling machine has the limitation of using a round bit, which means that many traditional techniques of joinery cannot readily be made (but see below). There are also a number of fasteners and other sorts of hardware, many of which are made possible by modern technology and metallurgy and in their newness are somewhat obscure. This page is intended as a collection of such techniques and hardware, w/ links to actual implementations and usages.
- 1 Tolerances
- 2 Round Endmills and Square (or Rectangular) Features
- 3 Joinery
- 3.1 Interlocking part tolerance
- 3.2 Rabbets
- 3.3 Miter
- 3.4 Drawers
- 3.5 Dovetails
- 3.6 Japanese
- 3.7 Knapp Joints
- 3.8 Finger (box) Joints
- 3.9 Mortice and Tenon
- 3.10 Other Joints
- 3.11 Forum Discussions
- 3.12 References
- 4 Specialty Paths
- 5 Bending
- 6 Hinges
- 7 Lids
- 8 Step and Repeat
- 9 Tiling
- 10 Two-sided Cutting
- 11 Hardware
- 12 Glues
- 13 Clamping
- 14 Styles of Cutting
- 15 Post-processing Cuts
- 16 Other useful tools
- 17 Finishing
- 17.1 Engraving
- 17.2 Masking
- 17.3 Removing Fuzz
- 17.4 Metals
- 17.5 Wood Finishing
- 17.6 References
- 18 Tolerances
Any instance of one part fitting to another will require that one work out the appropriate tolerances for the fit.
Discussion of measuring various hole tolerances: https://www.reddit.com/r/CNC/comments/6bwhtu/what_does_a_machinist_do_differently_when/
Round Endmills and Square (or Rectangular) Features
One challenge in CNC is working around the limit of the rounded rectangles which endmills naturally leave behind when removing material. A 2" square cut to a depth of 0.5" using a #201 endmill:
Using a vector drawing program one can easily recreate the outline of the area which the endmill will cut / leave behind by insetting the pocket geometry by half the endmill diameter, then assigning it to have an expanded stroke equal to that diameter:
A Boolean operation will then allow one to isolate only the uncut corners:
While it seems one could merely expand the stroke and do a Boolean intersection to arrive at the desired geometry, a further consideration is one wishes to have the endmill begin and end its cuts orthogonal to the uncut ends.
There are many different techniques for making joints --- woodworking in particular has an old tradition of them, but many traditional joints are not readily made on a machine w/ only 3 axes using a rotating bit. The flexibility and control which CNC affords has however created the possibility of new classes of joints as noted below in Other Joints.
There are specialty software options for joints such as JointSCAD for OpenSCAD.
Interlocking part tolerance
MDF required about 0.015 inches (~0.381mm) clearance
- Double and blind rabbets are used in this wooden box.
- https://www.thisiscarpentry.com/2014/09/19/the-quarter-quarter-quarter-drawer-system/ 
- http://www.johneclark.com/cubism/  --- boxes made with 90 degree endmills and 45 degree miter joints
It should be easier to cut full-blind joints by using a jig which holds the two pieces to be joined at 45 degree angles to the mill.
Normal dovetails can be cut using a jig which holds two pieces of wood vertically at the front of the machine using an endmill and dovetail bit.
See https://www.shapeoko.com/wiki/index.php/Commercial_Software#Joints for commercial software for this and https://github.com/razeh/gcode-boxes for an opensource option.
https://github.com/marialarsson/tsugite http://ma-la.com/Tsugite_UIST20.pdf https://community.carbide3d.com/t/a-study-of-joinery/28492 https://community.carbide3d.com/t/community-challenge-6-2019-2020-edition/20846/37 --- instructions for running Python source: https://old.reddit.com/r/CNC/comments/mrexyn/has_anyone_successfully_used_this_software/gum58y1/
The freedom which CNC affords allows one to cut pretty much any design into the end of one board to the thickness of another, and the negative of the design into another, and so long as they fit together well, allow one to join them thus.
Finger (box) Joints
A later development, box joints are easily machined and quickly supplanted Knapp joints.
See: https://willadams.gitbook.io/design-into-3d/fingerjoints for a discussion of them, including a discussion and example fixture for holding boards vertically as is required when cutting traditional box joints using a CNC router.
There is specialty software for making them such as: https://fabrikisto.com/tailmaker-software/
Mortice and Tenon
Cutting mortices and tenons is complicated by using a round endmill to cut what is traditionally a rectangular pair of features --- another consideration is how the parts are presented to the machine --- if a rounded tenon is an option (the part with the tenon is presented to the machine vertically for cutting), then the parts will simply fit, so long as the endmill geometry allows this.
For the other cases, there are a couple of different options:
- dogbones --- for large-scale parts, or when using a small endmill, this is a viable option
- circle overcut:
Draw a circle equal to the endmill diameter + 10%, rotate it 45 degrees and then align a node against a corner. The illustration shows an instance where the part is too small / endmill too large for dogbones to be feasible.
- reshape the tenon
Dimensions and proportions: http://woodworkstuff.net/KnipMT.html
- Festool Domino
- Beadlock: http://www.beadlock.com/
A great resource is the "50 Digital Wood Joints" project by Jochen Gros. It contains 50 joints that can be cut with a CNC router such as the Shapeoko, and includes pictures of the joints as well as digital files of each joint (in various formats including DXF, and IGS).
Note - Although the download link for the 50 Digital Wood Joints archive file is broken, it can also be downloaded directly from Jochen Gros' website:
These files are open source under the Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
An overview and discussion of traditional joinery: https://furniturefab2013.files.wordpress.com/2013/09/joints.pdf
Commercial publication on snap-fit joints: http://www2.basf.us//PLASTICSWEB/displayanyfile?id=0901a5e1801499d5 c.f., https://www.fictiv.com/hwg/design/how-to-design-snap-fit-components
Imgur: Joints from Regional Championship Denmark --- hand-cut joints w/ diagrams including: Mortis and tenon with a miter, Mortis and tenon with 2 miters, Trinity joint, Lap bridle corner joint, Sliding dovetail, Plus extension joint
Blind box joints
Interesting hinge design suited for cutting on a machine in: http://www.shopnotes.com/files/issues/131/cnc-toolbox.pdf
- How to CNC a finger-jointed box?
- Keyhole cutting --- (w/ a keyhole bit) --- simple enough to do w/ hand-coded G-code.
- Joint Strength Contest And Repeat ability
https://furniturefab2013.files.wordpress.com/2013/09/joints.pdf --- includes a number of furniture design concepts
Discussion of adhesives: http://www.woodweb.com/knowledge_base/Glue_Joint_Failure.html
It should be one path (a rectangle) with two different toolpaths:
- first uses a narrow endmill to actually pocket to the full depth
- second uses the keyhole bit, starting at one end and doing a pocket cut which has a starting depth equal to the desired thickness of the support material at the back of the keyhole, and a depth equal to that thickness plus the height the keyhole cutter cuts and the depth per pass set to some larger number so as to get it done in one pass.
Do a test cut first — orientation will depend on where the path begins and its direction — might have to rotate 180 degrees.
the new build 316 shows where plunges happen so one can test these:
Lumberjocks: Lever-Action Boxes --- lid design where pressing one end lifts the other to allow opening.
Step and Repeat
In software which doesn't have this feature, one can simulate it in a number of ways:
- simply shift the machine zero a known amount and re-run the file, repeating this as necessary
- duplicate the geometry and re-create the toolpaths as many times as is necessary
- save multiple copies of the files with the parts in different areas and use a utility program to stitch them together --- https://wiki.shapeoko.com/index.php/Carbide_Create#Merging_files
- enlarge the stock area to the working area of the machine, output it multiple times shifting the location of the geometry as needed, then stitch the G-Code together
A step-by-step example: https://community.carbide3d.com/t/making-multiples-of-a-design-in-a-single-file/27102
Start with a panel the size of your supported cutting area with a pair of indexing holes at one end (a known dimension from the edge). Adjust its length until the other edge aligns against an empty area in the design. Clone the design and overlap it at that edge by twice the dimension the holes are inset. Repeat until one reaches the end. When setting up machining, do only those parts which are wholly enclosed by a given panel.
If you wish to have one continuous element which is cut along the length it will be necessary to use Boolean operations to break it up along the edges of the indexing regions, leaving those areas uncut as tabs or overlapping them so that they are cut out completely.
Online source for 3D models for hardware: http://www.tracepartsonline.net/
One can also use hardware to join pieces together.
- http://www.bolts-library.org/en/index.html --- a free and open-source standard parts library for CAD applications.
How to Build your Everything Really Really Fast by teamtestbot --- Instructable on different fasteners and their appropriate uses.
Fasteners for stacked items
- Chicago screws --- https://www.chicagoscrews.com/
Various sorts of threaded inserts are available.
Some may also be paired with specialty tools for installing them:
- http://dkprojects.net/openscad-threads/ --- ISO standard threads
Min. number of threads in aluminum: 3
Bolts are of course a fundamental fastener type, too broad to cover here in specifics, but there are a number of accessories available for them which are worth noting:
These can be surprisingly useful beyond their ostensible use to ease fastening by hand.
Notes on measuring a hinge to fit into a project: http://community.carbide3d.com/t/folding-bookshelf/5762/5
Installing bearings on a shaft: http://community.carbide3d.com/t/proper-way-to-insert-a-bearing-into-a-shaft/4991
Metal fasteners are an elastic system, which will only hold properly if stretched to a suitable degree by the application of the correct amount of torque.
http://cncexpo.com/MetricBoltTorque.aspx --- assumes steel--steel connections, adjust accordingly for aluminum
https://engineerdog.com/2015/01/11/10-tricks-engineers-need-to-know-about-fasteners/?wref=tp https://www.quora.com/Engineering-1/What-is-something-useful-about-Engineering-you-can-teach-within-10-minutes-and-make-me-feel-astonished-and-fascinated 
NASA Fastener Design Manual: https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19900009424.pdf
A good reference site for selecting adhesives for different materials is: http://www.thistothat.com/
A useful technique for applying glue to box joints is shown in https://woodgears.ca/box_joint/more.html
2 part epoxies also work.
http://www.roarockit.com/tap-kits.html --- manual vacuum clamping for laminates (skateboards)
Styles of Cutting
One option for holes which are in a different plane than the endmill can cut is to put a notch at the edge for locating a bit for manual drilling.
Without a perfectly calibrated plunge rate and spindle speed the machine can deflect resulting in a lozenge shaped hole.
Three options here:
- use a tool which supports drilling --- MakerCAM is one, and there's Gsharp which will convert peck-drill G-Code commands into step-by-step instructions Grbl will accept --- this will require that you get the plunge and speeds just so --- if you use a drill bit, then you will need to source one which has specifications which match the speeds at which one can spin the spindle - enlarge the holes so that they are at least 10% larger than the endmill - use a smaller endmill --- for 1/8" holes, 3mm isn't quite small enough, and I'm not aware of 2.75, so 2.5mm?
In terms of speed and efficiency, again you have a couple of options:
- manually create individual toolpaths for each circle - manually code the holes using peck drilling codes and Gsharp https://github.com/NRSoft/GSharp - post-process the G-Code so that each hole is cut in sequence --- list of utilities for this at: G-Code Utilities - use a CAM tool which generates more efficient code
https://community.carbide3d.com/t/using-advanced-vcarve-in-carbide-create-461-to-make-inlays/20828 Diagram for V inlays: https://community.carbide3d.com/t/inlay-with-carbide-create-with-advanced-v-carv/28552/4
- glass powder and casting resin
- Using ShapeOko 2 CNC Router for Inlay
- F-Engrave added explicit support for inlay in v1.50.
- YouTube: VCarve inlay - CNCnutz Episode 59 --- doing inlay by V carving a negative channel, mirror-imaged and slightly deeper than the actual inlay (to receive excess glue) and then slicing off the excess material with a bandsaw.
- Carbide Create Inlay http://community.carbide3d.com/t/inlays-using-carbide-create-and-other-sotware/7841
- http://community.carbide3d.com/t/inlay-art-done-with-cedar-pine-oak-and-maple/10801/6 --- V inlay technique
- http://www.shapeoko.com/forum/viewtopic.php?f=7&t=6807 --- discussion includes countersinking
Corner chisels can be used to clean up pockets.
Another possibility is to mill a narrow groove in a material suited for bending and then form it into a shape. http://www.reddit.com/r/shapeoko/comments/32zxej/a_really_good_shapeoko_companion_tool/
Cuts in metal can be deburred: http://www.grainger.com/category/machine-deburring-tools/finishing-supplies/machining/ecatalog/N-c3b 
Other useful tools
- Different coloured cut areas
- One way to do this is to paint one colour, mask it off (using a suitable material), then paint a succeeding colour and repeat, planing or sanding off the excess paint Wax helps
- Another option is to cover the entire piece in adhesive vinyl, do the cutting, paint and then peel off the vinyl.
- Or use epoxy: http://www.shapeoko.com/forum/viewtopic.php?f=11&t=4862&p=36015 --- note that eyeshadow is supposed to be the sort of pigment used.
For marking engravings in metal, the traditional thing is a lacquer marker: Lacquer-Stik Paintstick --- e.g., https://www.amazon.com/dp/B00Y3IOFS8
Patina solution --- http://www.sculptnouveau.com/Details.cfm?ProdID=78&category=6 
An alternative to engraving would be to use a drag knife to cut a resist mask and then chemically etch the material.
Polycarbonate V-engraving: put acrylic paint in the engraving (it gets all over the whole surface, but you have to force it down into the engraving), let dry, then use rubbing alcohol on a cloth to remove paint from the surface. This leaves a clean in-fill if you wipe carefully. then spray clear-coat.
It's basically going from one grit to the next progressively. Never jump double the grit size, keep everything clean.
The trick is after the 4k wet paper is used, to switch to Bon Ami. It's a common household cleaner that's over 6k grit. Beyond that, theirs talc at over 8k. You mix the powder with filtered water to make a thin slurry.
After that, you use a heavy paste wax (I like Johnson and Johnson) to seal the surface, before it oxidizes. At this point it'll be a mirror surface. If done right, it'll lack the wavyness of a buffed surface.
Lye can be used to strip the anodizing off of aluminum.
Types of finishes
Drying (true) oils
walnut oil, Boiled linseed oil, and Tung oil
Mostly natural oils that dry and harden in the wood.
Tung oil Finish, Danish oil, Antique oil, Odies oil, tried and true oil
Oils mixed with varnish and solvents
Film building finishes
hellac, lacquer, and polyurethane
One of the oldest finishes.
Burnishes well with kraft paper.
Will turn white when heat or moisture is applied (not suitable for use on coasters).
Darken wood with a torch and then sand.
Wood Finishing: Comprising Staining, Varnishing, and Polishing by Paul Nooncree Hasluck (Google Books)
Add radii to ease internal corners: https://www.xometry.com/blog/cnc-machining-optimizing-internal-corner-radii/