Skip to content

Instantly share code, notes, and snippets.

@Cadair
Created May 13, 2022 10:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Cadair/9b154c03e9928dce6df142c85568435d to your computer and use it in GitHub Desktop.
Save Cadair/9b154c03e9928dce6df142c85568435d to your computer and use it in GitHub Desktop.
Pole holder
curve_radius = 0;
inner_radius = (34.8 / 2) + curve_radius;
wall_thickness = 4.4;
offset_amount = 2;
support_radius = 6 + curve_radius;
number_supports = 8;
height = 8 - 2*curve_radius;
module multiple_circles(n, outer_radius, circle_radius) {
delta_i = 360 / n;
two_r = 2 * circle_radius;
for (i=[0:delta_i:359]) {
translate([outer_radius*cos(i), outer_radius*sin(i), 0])
circle(circle_radius, $fn=50);
}
}
module 2d_pole_support(n_circles) {
circle_r = inner_radius + wall_thickness + support_radius;
offset(-offset_amount) offset(offset_amount) difference() {
multiple_circles(n_circles, circle_r, support_radius + wall_thickness);
multiple_circles(n_circles, circle_r, support_radius);
}
difference() {
circle(inner_radius + wall_thickness);
circle(inner_radius, $fn=50);
}
}
if (curve_radius){
minkowski() {
linear_extrude(height) 2d_pole_support(number_supports);
sphere(curve_radius, $fn=40);
}
} else {
linear_extrude(height) 2d_pole_support(number_supports);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment