-
-
Save rocktronica/9bf386b416345a472ef2b871b6a45c42 to your computer and use it in GitHub Desktop.
| module horn_goldilocks_array( | |
| height = 2.5, | |
| plot = 10, | |
| tolerances = [0, .1, .2, .3, .4, .5, .6, .7, .8, .9, 1], | |
| shim_counts = [0, 3, 6] | |
| ) { | |
| difference() { | |
| cube([ | |
| plot * len(tolerances), | |
| plot * len(shim_counts), | |
| height | |
| ]); | |
| for (i_tolerance = [0 : len(tolerances) - 1]) { | |
| for (i_shim_count = [0 : len(shim_counts) - 1]) { | |
| translate([ | |
| i_tolerance * plot + plot / 2, | |
| i_shim_count * plot + plot / 2, | |
| 0 | |
| ]) { | |
| // So now we have X and Y as tolerances[i_tolerance] and | |
| // shim_counts[i_shim_count], and they can be used to make | |
| // each individual test. | |
| // Here, for example, they're passed as arguments to an | |
| // external cavity() module. | |
| cavity( | |
| diameter = SERVO_SHAFT_DIAMETER | |
| + tolerances[i_tolerance] * 2, | |
| shim_count = shim_counts[i_shim_count], | |
| height = height | |
| ); | |
| } | |
| } | |
| } | |
| } | |
| } |
OpenSCAD (2019.05 ) complains about "cavity()" being an unknown -- am I missing an import or other helper function?
Thanks for the nudge; I've added a comment to hopefully explain... I'd left out cavity() because I wasn't actually expecting anybody to run the code, just get a feel for how the parent module is supposed to work.
Here's the missing stuff, if you want to give it a go and get the full picture in OpenSCAD. Just throw this above horn_goldilocks_array's definition
SERVO_SHAFT_DIAMETER = 5;
module cavity(
diameter,
height,
shim_count = 3,
shim_width = 1,
shim_length = .5,
) {
e = .005678;
difference() {
cylinder(
h = height,
d = diameter
);
if (shim_count > 0) {
for (i = [0 : shim_count - 1]) {
rotate([0, 0, i * 360 / shim_count]) {
translate([
shim_width / -2,
diameter / 2 - shim_length,
-e
]) {
cube([shim_width, shim_length, height + e * 2]);
}
}
}
}
}
}Hope that helps
Thanks! I'm still new to OpenSCAD and this will help me change stuff and see what happens. Love the idea of a servo horn variety pack for dialing in just the right sizes.
@DPHAD Oh, nice. I like OpenSCAD a lot. Feel free to email if you need anything else. I'm happy to help
OpenSCAD (2019.05 ) complains about "cavity()" being an unknown -- am I missing an import or other helper function?