From 53d1ea93cd339d3fb6e085be9314d7ec0b547796 Mon Sep 17 00:00:00 2001 From: Chris Palmer Date: Sun, 30 Jun 2024 12:30:29 +0100 Subject: [PATCH] Can now specify a rotation angle for a geared_stepper's shaft. --- readme.md | 2 +- vitamins/geared_stepper.scad | 25 +++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/readme.md b/readme.md index 640946e..33b32ad 100644 --- a/readme.md +++ b/readme.md @@ -1459,7 +1459,7 @@ Geared tin can steppers ### Modules | Module | Description | |:--- |:--- | -| `geared_stepper(type)` | Draw the specified geared stepper | +| `geared_stepper(type, angle = 0)` | Draw the specified geared stepper with optional shaft angle. | | `geared_stepper_screw_positions(type)` | Place children at the screw positions | ![geared_steppers](tests/png/geared_steppers.png) diff --git a/vitamins/geared_stepper.scad b/vitamins/geared_stepper.scad index 93c1ff1..b91fff4 100644 --- a/vitamins/geared_stepper.scad +++ b/vitamins/geared_stepper.scad @@ -52,7 +52,7 @@ module geared_stepper_screw_positions(type) //! Place children at the screw posi motor_colour = "#9BA2AC"; gearbox_colour = "#FFF7EE"; -module geared_stepper(type) { //! Draw the specified geared stepper +module geared_stepper(type, angle = 0) { //! Draw the specified geared stepper with optional shaft angle. vitamin(str("geared_stepper(", type[0], "): Geared stepper - ", type[1])); radius = gs_diameter(type) / 2; @@ -125,19 +125,20 @@ module geared_stepper(type) { //! Draw the specified geared stepper f = gs_shaft_flat(type); two_flats = f < 0; vflip() - color(two_flats ? brass : gearbox_colour) { - d = gs_shaft_d(type); - h = gs_shaft_length(type); - linear_extrude(h) - intersection() { - circle(d = d); + rotate(angle) + color(two_flats ? brass : gearbox_colour) { + d = gs_shaft_d(type); + h = gs_shaft_length(type); + linear_extrude(h) + intersection() { + circle(d = d); - translate([0, two_flats ? 0 : (f - d) / 2]) - square([d + 1, abs(f)], center = true); - } + translate([0, two_flats ? 0 : (f - d) / 2]) + square([d + 1, abs(f)], center = true); + } - cylinder(d = d, h = h - gs_flat_length(type)); - } + cylinder(d = d, h = h - gs_flat_length(type)); + } // Wire block color(bulge_z ? "white" : "skyblue") {