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