41 lines
1.0 KiB
OpenSCAD
41 lines
1.0 KiB
OpenSCAD
main_inner_dia = 60;
|
|
main_outer_dia = 70;
|
|
inner_dia_small = 40;
|
|
height = 15;
|
|
|
|
thickness = (main_outer_dia - main_inner_dia)/2;
|
|
|
|
inner_radius = 2;
|
|
outer_radius = inner_radius + thickness;
|
|
|
|
extra_size = (main_inner_dia - inner_dia_small) / 2 - inner_radius;
|
|
|
|
module ring(inner_radius, outer_radius){
|
|
difference(){
|
|
circle(r=outer_radius);
|
|
circle(r=inner_radius);
|
|
}
|
|
}
|
|
|
|
module quarter_ring(inner_r, outer_r,){
|
|
difference(){
|
|
ring(inner_r, outer_r);
|
|
difference(){
|
|
square(size=[2*outer_r, 2*outer_r], center=true);
|
|
translate([0,-outer_r,0])
|
|
square(size=[outer_r, outer_r], center=false);
|
|
}
|
|
}
|
|
}
|
|
|
|
rotate_extrude(convexity=10, $fn=100) {
|
|
translate([main_inner_dia/2,0,0]){
|
|
union(){
|
|
square(size=[thickness, height]);
|
|
translate([-inner_radius,0,0])
|
|
quarter_ring(inner_radius, outer_radius);
|
|
translate([-extra_size-inner_radius,-thickness-inner_radius,0])
|
|
square(size=[extra_size, thickness]);
|
|
}
|
|
}
|
|
} |