Created
November 6, 2024 20:38
-
-
Save ABillBlakely/602dbe7353f41d9160f793bf255c0529 to your computer and use it in GitHub Desktop.
example addition of a center brace to the wavetable speaker stand.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module speaker_stand(){ | |
// This module extrudes the profile() to create the | |
// solid model of the stand excludin the backstop. | |
linear_extrude(width, center = true) | |
profile(); | |
// Adding a center brace | |
brace(); | |
} | |
module brace(){ | |
// Adjust these 3 variables to adjust the center brace. | |
// They don't have to be based on the outer vars, but that should help it auto scale with the rest of the design. | |
// Note that brace_depth doesn't directly correspond to something you could measure on the finished product. | |
// The actual width of the brace 'web' that can be measured will depend on brace_angle and maybe other parameters. | |
brace_depth = top_depth / 3; | |
brace_angle = 3 * angle; | |
brace_thickness = thickness / 4; | |
translate([0, 0, -brace_thickness / 2]) | |
linear_extrude(brace_thickness) | |
difference(){ | |
// hull of the profile fills in the center of the profile() | |
hull() profile(); | |
// subtract a big chunk since brace of the full area seems overkill, | |
// also rotate the subtraction so it matches the design better. | |
translate([brace_depth, 0, 0]) | |
rotate([0, 0, -brace_angle]) | |
square([2 * top_depth - brace_depth, 2 * height]); | |
} | |
} |
Legend. I will give it a shot, if not I will finish it off in Fusion where I am a bit more comfortable :)
Just responding to say this worked great. My Diamond 10.1s sound even better. Thank you!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Heh, yeah that is generally one of the harder things to do in openscad. Look into the BOSL2 library which has a fillet() function:
https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-fillet
I've not used the library though so I'm not sure it even applies here.
For this model, about as far as I would recommend going would be placing a cylinder at the front edge of the brace. Here is a quick and dirty version, you might need to tweak the values if the cylinder sticks out or leaves a gap. Smoothing the edges into the rest of the model is more difficult, although not impossible. If you are up for the challenge I could point you in the right direction though.