Skip to content

Instantly share code, notes, and snippets.

@dcabines
Created February 14, 2022 16:44
Show Gist options
  • Save dcabines/eb2c039c12c2e6b61afaadc1d2a9d2ae to your computer and use it in GitHub Desktop.
Save dcabines/eb2c039c12c2e6b61afaadc1d2a9d2ae to your computer and use it in GitHub Desktop.
$fa = 1;
$fs = 1;
bell_height = 50;
bell_diameter = 10;
bell_wall = 1.2;
bell_foot_height = 10;
bell_foot_gap = 5;
snorkel_height = bell_height - 20;
snorkel_diameter = 5;
snorkel_wall = 1.2;
module tube(height, inner_diameter, outer_diameter) {
difference() {
cylinder(height, outer_diameter, outer_diameter, true);
cylinder(height + 2, inner_diameter, inner_diameter, true);
}
}
module bell() {
union(){
translate([0,0,(bell_height / 2) - (bell_wall / 2)])
cylinder(bell_wall, bell_diameter + bell_wall, bell_diameter + bell_wall, true);
tube(bell_height, bell_diameter, bell_diameter + bell_wall);
}
}
module snorkel() {
translate([bell_diameter,0,(bell_height / 2) - (snorkel_height / 2)])
union(){
translate([0,0,(snorkel_height / 2) - (snorkel_wall / 2)])
cylinder(snorkel_wall, snorkel_diameter + snorkel_wall, snorkel_diameter + snorkel_wall, true);
tube(snorkel_height, snorkel_diameter, snorkel_diameter + snorkel_wall);
}
}
module snorkel_connector() {
translate([bell_diameter,0,(bell_height/2)-snorkel_diameter-bell_wall])
rotate([0,90,0])
cylinder(bell_wall*2,snorkel_diameter,snorkel_diameter, true);
}
module bell_foot(){
translate([0,0,-(bell_height/2)])
translate([0,0,0.5])
difference(){
tube(bell_foot_height, bell_diameter - 1, bell_diameter + bell_wall + 1);
cube([(bell_diameter*2)+(bell_wall*2)+2, bell_foot_gap, bell_foot_height+1], true);
rotate([0,0,45*1])
cube([(bell_diameter*2)+(bell_wall*2)+2, bell_foot_gap, bell_foot_height+1], true);
rotate([0,0,45*2])
cube([(bell_diameter*2)+(bell_wall*2)+2, bell_foot_gap, bell_foot_height+1], true);
rotate([0,0,45*3])
cube([(bell_diameter*2)+(bell_wall*2)+2, bell_foot_gap, bell_foot_height+1], true);
}
}
rotate([180,0,0])
union(){
difference() {
bell();
snorkel_connector();
bell_foot();
}
difference() {
snorkel();
cylinder(bell_height, bell_diameter, bell_diameter, true);
}
}
@dcabines
Copy link
Author

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment