Joints made easy, with JointSCAD
Often times 3D prints must be printed in parts. This might be due to unavoidable overhangs, or size limitations of the printer itself. Sometimes it is easier to paint individual parts which can be put together, and other times it is required in as part of an object in motion.
JointSCAD aims to be a single stop OpenSCAD library for simple, parametric joint creation.
The dist directory contains all .scad
files used by JointSCAD.
The simplest way to get JointSCAD working, is to have all JointSCAD files in the same directory and include it into your SCAD project:
include <path/to/JointSCAD.scad;
See the Contributing document for more information on contributing.
See the License document for more information on licensing.
Creates the centre part, which rests in between the gap created by the two 'fingers' of its counterpart.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
Creates the two 'fingers', which is intended to receive its counterpart.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
Creates the "dovetails", which rests in between the gaps created by its counterpart.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
numberOfDovetails |
Number | A number which specifies the number of dovetails to use in the joint. This should be the same when used with its counterpart to ensure correct sizing. |
Creates a block with gaps designed to allow the specified number of dovetails to rest in.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
numberOfDovetails |
Number | A number which specifies the number of dovetails to use in the joint. This should be the same when used with its counterpart to ensure correct sizing. |
Creates a dowel using a prism, instead of a cylinder. This is because:
- cylinders are readily available from OpenSCAD
- some 3D printers struggle to print round things exactly
- sometimes a prism is preferable
Parameter | Data Type | Description |
---|---|---|
sides |
Number | Specifies the number of sides the polygon should have. This polygon is extruded to create the prism. |
radius |
Number | The distance from the centre point to place each corner of the polygon. |
length |
Number | The length of the extruded prism |
Note: Dowel does not have a counterpart. If the counterpart hole is required, use difference().
Creates one set of "fingers", which are designed to rest in between another set of "fingers".
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
fingerCount |
Number | A number which specifies the number of fingers to use in the joint. This should be the same when used with its counterpart to ensure correct sizing. |
Creates the other set of "fingers", which are designed to rest in between the initial set of "fingers".
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
fingerCount |
Number | A number which specifies the number of fingers to use in the joint. This should be the same when used with its counterpart to ensure correct sizing. |
Creates a mortise, allowing space for a counterpart tenon to be inserted.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionsOfTenon |
Number[3] | An array/vector of three numbers, which describes proportions of the [x, y, z] dimensions of the tenon slot respectively. This should be the same when used with its counterpart to ensure correct sizing. |
Creates a tenon, designed to be inserted into a matching mortise.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionsOfTenon |
Number[3] | An array/vector of three numbers, which describes proportions of the [x, y, z] dimensions of the tenon respectively. This should be the same when used with its counterpart to ensure correct sizing. |
Creates a mortise, allowing space for a counterpart tenon to be inserted. In addition, this adds a respective amount of slots for pins to be inserted.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionsOfTenon |
Number[3] | An array/vector of three numbers, which describes proportions of the [x, y, z] dimensions of the tenon slot respectively. This should be the same when used with its counterpart to ensure correct sizing. |
numberOfDowels |
Number | The number of pins/dowels to be used in joint creation. These pins are evenly spread, vertically, along the centre of the joint. |
dowelSides |
Number | The number of sides the polygon to be extruded should have, which is used to create the slot for each pin/dowel. |
dowelRadius |
Number | The distance of each corner in the polygon, from its centre. |
Creates a tenon, designed to be inserted into a matching mortise. In addition, this adds a respective amount of slots for pins to be inserted.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionsOfTenon |
Number[3] | An array/vector of three numbers, which describes proportions of the [x, y, z] dimensions of the tenon respectively. This should be the same when used with its counterpart to ensure correct sizing. |
numberOfDowels |
Number | The number of pins/dowels to be used in joint creation. These pins are evenly spread, vertically, along the centre of the joint. |
dowelSides |
Number | The number of sides the polygon to be extruded should have, which is used to create the slot for each pin/dowel. |
dowelRadius |
Number | The distance of each corner in the polygon, from its centre. |
Creates a mortise, allowing space for a counterpart tenon to be inserted. In addition, adds two supporting shoulders for the tenon.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionsOfTenon |
Number[3] | An array/vector of three numbers, which describes proportions of the [x, y, z] dimensions of the tenon slot respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionOfShoulder |
Number | The width of the shoulder, in relation to the tenon, rather than the entire joint. |
Creates a tenon, designed to be inserted into a matching mortise. In addition, adds two supporting shoulders for the tenon.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionsOfTenon |
Number[3] | An array/vector of three numbers, which describes proportions of the [x, y, z] dimensions of the tenon respectively. This should be the same when used with its counterpart to ensure correct sizing. |
proportionOfShoulder |
Number | The width of the shoulder, in relation to the tenon, rather than the entire joint. |
Creates one half of a scarf joint. This half is the upper/left half of a scarf joint.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |
Creates the other half of a scarf joint. This half is the lower/right half of a scarf joint.
Parameter | Data Type | Description |
---|---|---|
dimensions |
Number[3] | An array/vector of three numbers, which describes the [x, y, z] dimensions of the joint respectively. This should be the same when used with its counterpart to ensure correct sizing. |