Fabrication Techniques & Hardware

From ShapeOko
Revision as of 13:59, 7 June 2019 by Willadams (Talk | contribs) (References)

Jump to: navigation, search

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.

See also Designing for Fabrication for a more in-depth discussion. Note that some references on the Materials page contain engineering data and standards.



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/


Hardware Tolerances


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:

CC 2inchpocket 201.png

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:

FH 2inchpocket 201 roundcorners.png

A Boolean operation will then allow one to isolate only the uncut corners:

FH 2inchpocket 201 roundcorners remaining.png

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.

One may wish to use a jig to hold a part for cutting as was done in these Dowel Holders which were used in an elegant Plant Stand.

There are specialty software options for joints such as JointSCAD for OpenSCAD.

Interlocking part tolerance

MDF required about 0.015 inches (~0.381mm) clearance[1]


  • Double and blind rabbets are used in this wooden box.





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/cfinke/OpenSCAD-Dovetails [3]



Knapp Joints

Invented by Charles Knapp, sometimes referred to as a cove and pin joint,[4] or pin and scallop or half-moon[5]. It was the first machined drawer joint (produced from ~1870 to ~1900).[6]

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.

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

Floating Tenons

Other Joints

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)

50 Digital Wood Joints by Jochen Gros

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[7]

https://twitter.com/TheJoinery_jp [8]

Butterfly keys


Lock joints


Traditional Chinese



Interesting hinge design suited for cutting on a machine in: http://www.shopnotes.com/files/issues/131/cnc-toolbox.pdf

Mechanical joints

Forum Discussions






https://furniturefab2013.files.wordpress.com/2013/09/joints.pdf --- includes a number of furniture design concepts

https://twitter.com/TheJoinery_jp --- animations of traditional Japanese joints.[10]



Discussion of adhesives: http://www.woodweb.com/knowledge_base/Glue_Joint_Failure.html

Specialty Paths


http://community.carbide3d.com/uploads/default/original/2X/5/55522b7824ff919f5e34084dfb23115943b16771.pdf [11]




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:


discussion at: http://community.carbide3d.com/t/cutting-keyholes-in-plaques/8286




https://makezine.com/2014/07/08/kokopelli-quickstart-parametric-living-hinge/ http://www.mattkeeter.com/projects/kokopelli/ [12]


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



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.




https://www.youtube.com/watch?v=ery_AprhOjI&feature=youtu.be [14]




Online source for 3D models for hardware: http://www.tracepartsonline.net/

Identifying hardware: https://techcrunch.com/2018/07/19/amazons-new-ar-part-finder-helps-you-shop-for-those-odd-nuts-and-bolts/

One can also use hardware to join pieces together.

How to Build your Everything Really Really Fast by teamtestbot --- Instructable on different fasteners and their appropriate uses.[16]

http://www.quora.com/Engineering-1/What-is-something-useful-about-Engineering-you-can-teach-within-10-minutes-and-make-me-feel-astonished-and-fascinated [17]


Fasteners for stacked items






Threaded Inserts

Various sorts of threaded inserts are available.

Some may also be paired with specialty tools for installing them:

Youtube video noting some techniques (but with some inaccurate information as well): https://youtu.be/tIhEqoKE8Dc [19]

Thread specifications

Min. number of threads in aluminum: 3[20]


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.

3D printed


Wooden Box with hinged lid --- http://www.woodcraft.com/articles/426/boxes-with-pin-hinges.aspx



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


https://bornity.com/constant-force-joints [22]



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 [23]




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



  • Weldon/Acrylite[24]

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.[25]

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


Carbide Create has direct support for this, and an excellent opensource tool is F-Engrave.





Post-processing Cuts

Corner chisels can be used to clean up pockets.[28]

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 [29]

Other useful tools

10 x 10" Vacuum Forming Table



  • Different coloured cut areas
    • One way to do this is to paint one colour, mask it off (using a suitable material[30]), then paint a succeeding colour and repeat, planing or sanding off the excess paint[31] Wax helps[32]
    • Another option is to cover the entire piece in adhesive vinyl, do the cutting, paint and then peel off the vinyl.[33]
    • 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.[34]



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 [35]


An alternative to engraving would be to use a drag knife to cut a resist mask and then chemically etch the material.[36]



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.[37]


Removing Fuzz





Aluminum Rectification.

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.


http://protective.sherwin-williams.com/detail.jsp?A=sku-26000%3Aproduct-6787 [39]



Wood Finishing

Food safe


Types of finishes




Drying (true) oils

walnut oil, Boiled linseed oil, and Tung oil

Mostly natural oils that dry and harden in the wood.

Oil/Varnish blends

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.[40]

Will turn white when heat or moisture is applied (not suitable for use on coasters).[41]

Specific woods


Slick walnut finish









Darken wood with a torch and then sand.[42]


Wood Finishing: Comprising Staining, Varnishing, and Polishing by Paul Nooncree Hasluck (Google Books)