OpenSCAD library to create multiple types of mechanical linkages in 2D and 3D.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
pics
v.01

### OpenSCAD library to create multiple types of mechanical linkages in 2D and 3D.

Thingiverse Thing: 2081445

v.02 - February 5, 2017

• Added help function: `linkagehelp();`
• Renamed modules to fit scheme
• `scale(in())` for inches
• `scale(cm())` for centimeters

v.01 - January 31, 2017

• linkageex.scad: examples of some of the operations and functions of the library

Add to your library folder in OpenSCAD and use the include function to begin using these modules.

`include <linkages.scad>`

Default units are mm.

1. `linkwidth(holeD,width,length,thick,slot=false);`
• holeD: diameter of the holes at each end
• width: width of the part (must be greater than holeD)
• length: distance between outer holes from center
• thick: thickness of the part or Z value
• slot: true for a slot
1. `linkwidththree(holeD,width,length,thick,three);`
• holeD: diameter of the holes at each end
• width: width of the part
• length: distance between outer holes from center
• thick: thickness of the part or Z value
• three: distance a third hole is from the first hole, choose length/2 for center hole
1. `linkwidthrot(holeD,width,length,thick,rot);`
• holeD: diameter of the holes at each end
• width: width of the part
• length: distance between outer holes from center
• thick: thickness of the part or Z value
• rot: angle of rotation for the second hole to create angular linkages
1. `linkwidthangle(holeD,width,length1,length2,thick,angle);`
• holeD: diameter of the holes at each end
• width: width of the part (must be greater than holeD)
• length1: distance between holes from center, first section
• length2: distance between holes from center, angled/second section
• thick: thickness of the part or Z value
• angle: angle of second section referenced from first section
1. `linksurround(holeD,surround,length,thick,slot=false);`
• holeD: diameter of the holes at each end
• surround: distance from the edge of the hole to the edge of the part
• length: distance between outer holes from center
• thick: thickness of the part or Z value
• slot: true for a slot
1. `linksurroundthree(holeD,surround,length,thick,three);`
• holeD: diameter of the holes at each end
• surround: distance from the edge of the hole to the edge of the part
• length: distance between outer holes from center
• thick: thickness of the part or Z value
• three: distance a third hole is from the first hole, choose length/2 for center hole
1. `linksurroundrot(holeD,surround,length,thick,rot);`
• holeD: diameter of the holes at each end
• surround: distance from the edge of the hole to the edge of the part
• length: distance between outer holes from center
• thick: thickness of the part or Z value
• rot: angle of rotation for the second hole to create angular linkages
1. `linksurroundangle(holeD,surround,length1, length2,thick, angle);`
• holeD: diameter of the holes at each end
• surround: distance from the edge of the hole to the edge of the part
• length1: distance between holes from center, first section
• length2: distance between holes from center, angled/second section
• thick: thickness of the part or Z value
• angle: angle of second section referenced from first section

1. `linkwidth2D(holeD,width,length,slot=false);`
• holeD: diameter of the holes at each end
• width: width of the part (must be greater than holeD)
• length: distance between outer holes from center
• slot: true for a slot
1. `linkwidththree2D(holeD,width,length,three);`
• holeD: diameter of the holes at each end
• width: width of the part
• length: distance between outer holes from center
• three: distance a third hole is from the first hole, choose length/2 for center hole
1. `linkwidthangle2D(holeD,width,length1,length2,angle);`
• holeD: diameter of the holes at each end
• width: width of the part (must be greater than holeD)
• length1: distance between holes from center, first section
• length2: distance between holes from center, angled/second section
• angle: angle of second section referenced from first section
1. `linksurround2D(holeD,surround,length,slot=false);`
• holeD: diameter of the holes at each end
• surround: distance from the edge of the hole to the edge of the part
• length: distance between outer holes from center
• slot: true for a slot
1. `linksurroundthree2D(holeD,surround,length,three);`
• holeD: diameter of the holes at each end
• surround: distance from the edge of the hole to the edge of the part
• length: distance between outer holes from center
• three: distance a third hole is from the first hole, choose length/2 for center hole
1. `linksurroundangle2D(holeD,surround,length1,length2,angle);`
• holeD: diameter of the holes at each end
• surround: distance from the edge of the hole to the edge of the part
• length1: distance between holes from center, first section
• length2: distance between holes from center, angled/second section
• angle: angle of second section referenced from first section

###Naming Strategy:

###Examples!

Using basic `linkwidth` and the slot:

```include <linkages.scad>

Comparison of `linkwidth` to `linksurround` with the same values in mm:

```include <linkages.scad>

Using basic `linkwidththree` to determine custom distance to middle hole using a specific number or dividing by length used for the linkage:

```include <linkages.scad>

Using `linkwidthrot` for complicated angled/twist linkages, using positive and negative degrees:

```include <linkages.scad>

Using `linkwidthrot` and 90 degree linkages with flat sides. This is accomplished by making the height value the same as the width value. For `linksurroundrot` the height would have to be holeD+surround+surround. This is the result:

```include <linkages.scad>

Using `linkwidthangle` to create flat angled linkages, using different length segments, positive and negative angles:

```include <linkages.scad>

Comparison of scaling the same linkage in inches, centimeters, and millimeters:

```include <linkages.scad>

Simple 2X Pantograph displaying pieces, colors, and wireframe:

```include <linkages.scad>

range=12;
thick=1;

color("red")
color("blue")
```include <linkages.scad>