Skip to content

Instantly share code, notes, and snippets.

@GilesBathgate
Created April 7, 2016 19:29
Show Gist options
  • Save GilesBathgate/fde54e3ab1b8bd47fb3b94ccdf3e4873 to your computer and use it in GitHub Desktop.
Save GilesBathgate/fde54e3ab1b8bd47fb3b94ccdf3e4873 to your computer and use it in GitHub Desktop.
duct_wall=1;
gap=6;
inner_radius=18;
outer_radius=inner_radius+gap;
height=14;
nozzle_height=6;
taper_angle=30;
skew=nozzle_height*tan(taper_angle);
top_height=height-nozzle_height;
mouth_width=12;
mouth_height=20;
pipe_length=40;
mount_width=5;
mount_depth=2.5;
module nozzle(radius)
difference(){
union(){
cylinder(r=radius,h=top_height);
translate([0,0,top_height])
cylinder(r1=radius,r2=radius-skew,h=nozzle_height);
}
cylinder(r=radius-duct_wall,h=top_height);
translate([0,0,top_height])
cylinder(r1=radius-duct_wall,r2=radius-skew-duct_wall,h=nozzle_height);
}
module duct(){
difference(){
nozzle(outer_radius);
translate([-outer_radius+duct_wall,0,duct_wall])
cube([(outer_radius-inner_radius),pipe_length,top_height-(2*duct_wall)]);
}
nozzle(inner_radius);
difference(){
union(){
cylinder(r=outer_radius,h=duct_wall);
difference(){
translate([-outer_radius,0,0])
cube([mouth_width,pipe_length,top_height]);
translate([-outer_radius+duct_wall,0,duct_wall])
cube([mouth_width-(2*duct_wall),pipe_length,top_height-(2*duct_wall)]);
cylinder(r=outer_radius,h=top_height);
}
}
cylinder(r=inner_radius,h=top_height);
}
}
module heater_block(){
translate([0,0,nozzle_height])
align([0,0,-1])
cube([17.5,20,11.5],c=true);
}
//heater_block();
duct();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment