diff --git a/libtest.png b/libtest.png
index 5207d5c..86a1c36 100644
Binary files a/libtest.png and b/libtest.png differ
diff --git a/readme.md b/readme.md
index 79911c5..af53976 100644
--- a/readme.md
+++ b/readme.md
@@ -3481,6 +3481,7 @@ Shaft couplings
| `sc_diameter(type)` | Coupling outer diameter |
| `sc_diameter1(type)` | Diameter of smaller shaft |
| `sc_diameter2(type)` | Diameter of larger shaft |
+| `sc_flexible(type)` | Flexible coupling |
| `sc_length(type)` | Coupling length |
### Modules
@@ -3494,6 +3495,7 @@ Shaft couplings
| Qty | Module call | BOM entry |
| ---:|:--- |:---|
| 1 | `shaft_coupling(SC_5x8_rigid)` | Shaft coupling SC_5x8_rigid |
+| 1 | `shaft_coupling(SC_6x8_flex)` | Shaft coupling SC_6x8_flex |
Top
diff --git a/tests/png/shaft_couplings.png b/tests/png/shaft_couplings.png
index 3cd1f9e..2459298 100644
Binary files a/tests/png/shaft_couplings.png and b/tests/png/shaft_couplings.png differ
diff --git a/vitamins/shaft_coupling.scad b/vitamins/shaft_coupling.scad
index 105ccf4..1cfec15 100644
--- a/vitamins/shaft_coupling.scad
+++ b/vitamins/shaft_coupling.scad
@@ -26,6 +26,7 @@ function sc_length(type) = type[1]; //! Coupling length
function sc_diameter(type) = type[2]; //! Coupling outer diameter
function sc_diameter1(type) = type[3]; //! Diameter of smaller shaft
function sc_diameter2(type) = type[4]; //! Diameter of larger shaft
+function sc_flexible(type) = type[5]; //! Flexible coupling
module shaft_coupling(type, colour = "silver") { //! Draw the shaft coupling
vitamin(str("shaft_coupling(", type[0], "): Shaft coupling ", type[0]));
@@ -34,6 +35,7 @@ module shaft_coupling(type, colour = "silver") { //! Draw the shaft coupling
radius = sc_diameter(type) / 2;
r1 = sc_diameter1(type) / 2;
r2 = sc_diameter2(type) / 2;
+ flexible = is_undef(sc_flexible(type)) ? false : sc_flexible(type);
grub_length = 3;
module grub_screw_positions() {
@@ -54,6 +56,11 @@ module shaft_coupling(type, colour = "silver") { //! Draw the shaft coupling
tube(radius, r2, length / 2, false);
}
+ if (flexible) {
+ linear_extrude(length/3, center=true, convexity = 20, twist = -5 * 360)
+ translate([r1,0,0])
+ square(radius-r1,1);
+ }
grub_screw_positions()
rotate([180, 0, 0])
cylinder(r = screw_radius(M3_grub_screw), h = 5);
diff --git a/vitamins/shaft_couplings.scad b/vitamins/shaft_couplings.scad
index b041274..1893d59 100644
--- a/vitamins/shaft_couplings.scad
+++ b/vitamins/shaft_couplings.scad
@@ -21,9 +21,9 @@
//! Shaft couplings
//
-// L D d1 d2
-SC_5x8_rigid = [ "SC_5x8_rigid", 25, 12.5, 5, 8 ];
-
-shaft_couplings = [SC_5x8_rigid];
+// L D d1 d2 flex?
+SC_5x8_rigid = [ "SC_5x8_rigid", 25, 12.5, 5, 8, false ];
+SC_6x8_flex = [ "SC_6x8_flex", 25, 19, 6, 8, true ];
+shaft_couplings = [SC_5x8_rigid, SC_6x8_flex];
use