Screws threaded - GillesBouissac/agentscad GitHub Wiki

Full functional threads 3D printable

Prerequisites

See instructions here

Adapt the reading to the standard you need

This tutorial applies to all standards. The examples are given for metric coarse standard.

Changes to do in the reading to adapt to other standards are summarized in this table:

  • MXC: Metric Coarse standard (International standard)
  • MXF: Metric Fine standard (International standard)
  • UNC: Unified National Coarse standard (US standard)
  • UNF: Unified National Fine standard (US standard)
  • BSW: British Standard Whitworth standard (UK standard)
  • BSF: British Standard Fine standard standard (UK standard)
Tutorial code MXC MXF UNC UNF BSW BSF
mx-screw.scad
mx-screw.scad
mxf-screw.scad
unc-screw.scad
unf-screw.scad
bsw-screw.scad
bsf-screw.scad
mx-thread.scad
mx-thread.scad
mxf-thread.scad
unc-thread.scad
unf-thread.scad
bsw-thread.scad
bsf-thread.scad
mxBolt
mxBolt
mxfBolt
uncBolt
unfBolt
bswBolt
bsfBolt
mxNut
mxNut
mxfNut
uncNut
unfNut
bswNut
bsfNut
mxThread
mxThread
mxfThread
uncThread
unfThread
bswThread
bsfThread
M6
M6
MF6
UNC1_4
UNF1_4
BSW5_32
BSF5_32

This very simple code shows differences between standards:

Tutorial

Step Code Result
Hexagonal nut
use <agentscad/mx-screw.scad>
use <agentscad/mx-thread.scad>

$fn=50; screw = M6(); mxNutHexagonalThreaded(screw);
Square nut
use <agentscad/mx-screw.scad>
use <agentscad/mx-thread.scad>

$fn=50; screw = M6(); mxNutSquareThreaded(screw);
Hexagonal bolt
use <agentscad/mx-screw.scad>
use <agentscad/mx-thread.scad>

// M6 bolt with 10mm thread length $fn=50; screw = M6(); mxBoltHexagonalThreaded(screw,10);
Allen bolt
use <agentscad/mx-screw.scad>
use <agentscad/mx-thread.scad>

// M6 bolt with 20mm thread length $fn=50; screw = M6(); mxBoltAllenThreaded(screw,20);
Internal Thread alone
use <agentscad/mx-screw.scad>
use <agentscad/mx-thread.scad>

// M6 bolt with 20mm thread length $fn=50; screw = M6(); mxThreadInternal(screw);
External Thread alone
use <agentscad/mx-screw.scad>
use <agentscad/mx-thread.scad>

// M6 bolt with 20mm thread length $fn=50; screw = M6(); mxThreadExternal(screw);
⚠️ **GitHub.com Fallback** ⚠️