126 lines
2.2 KiB
OpenSCAD
126 lines
2.2 KiB
OpenSCAD
|
// stoffel-hotend tripod fan mount for deltas
|
||
|
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||
|
// -> https://www.thingiverse.com/zeus
|
||
|
// -> https://github.com/zeus86
|
||
|
// 25.09.2014
|
||
|
|
||
|
mount_hole_distance=50;
|
||
|
height=40;
|
||
|
|
||
|
//=======================================
|
||
|
|
||
|
mount_arm_w=8;
|
||
|
mount_arm_block_l=mount_hole_distance/2;
|
||
|
mount_arm_l=mount_hole_distance/2+mount_arm_w/2;
|
||
|
mount_hole_dia=4.0;
|
||
|
|
||
|
fan_size=40;
|
||
|
fan_wall_t=2;
|
||
|
fan_wall_h=fan_size;
|
||
|
fan_wall_w=fan_size;
|
||
|
fan_hole_distance=32;
|
||
|
fan_hole_size=3.5;
|
||
|
fan_wheel_d = fan_size*0.95;
|
||
|
|
||
|
//=======================================
|
||
|
|
||
|
|
||
|
// ============= PILLARS =============
|
||
|
|
||
|
|
||
|
module base_plate(){
|
||
|
|
||
|
module base_mount_hole(){
|
||
|
cylinder(r=mount_hole_dia/2,h=height*2,center=true,$fn=16);
|
||
|
}
|
||
|
|
||
|
module base_pillar(){
|
||
|
difference(){
|
||
|
translate([-mount_arm_block_l/2,0,0]){
|
||
|
cylinder(r=mount_arm_w/2,h=height,center=true,$fn=12);
|
||
|
}
|
||
|
translate([-mount_arm_block_l/2,0,0]){
|
||
|
base_mount_hole();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
difference(){
|
||
|
union(){
|
||
|
rotate([0,0,0]){translate([-mount_arm_block_l/2,0,0]){base_pillar();}}
|
||
|
rotate([0,0,120]){translate([-mount_arm_block_l/2,0,0]){base_pillar();}}
|
||
|
rotate([0,0,-120]){translate([-mount_arm_block_l/2,0,0]){base_pillar();}}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
// ============ // ============// ============ // ============
|
||
|
|
||
|
|
||
|
module fan_mnt_hole(){
|
||
|
rotate([90,0,0]){cylinder(r=fan_hole_size/2,h=fan_wall_t+0.1,center=true,$fn=16);}
|
||
|
|
||
|
}
|
||
|
|
||
|
module fan_holes(){
|
||
|
translate([-fan_hole_distance/2,0,-fan_hole_distance/2]) {
|
||
|
fan_mnt_hole();
|
||
|
}
|
||
|
translate([fan_hole_distance/2,0,-fan_hole_distance/2]) {
|
||
|
fan_mnt_hole();
|
||
|
}
|
||
|
translate([-fan_hole_distance/2,0,fan_hole_distance/2]) {
|
||
|
fan_mnt_hole();
|
||
|
}
|
||
|
translate([fan_hole_distance/2,0,fan_hole_distance/2]) {
|
||
|
fan_mnt_hole();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module fan_wall(){
|
||
|
difference(){
|
||
|
cube([fan_wall_w,fan_wall_t,fan_wall_h],center=true);
|
||
|
rotate([90,0,0]){cylinder(r=fan_wheel_d/2,h=fan_wall_t+0.1,center=true);}
|
||
|
fan_holes();
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// ============ DRAWING ============
|
||
|
|
||
|
|
||
|
base_plate();
|
||
|
|
||
|
|
||
|
rotate([0,0,90]){
|
||
|
translate([0,-mount_arm_l/PI-mount_hole_dia*1.5,0]){
|
||
|
fan_wall();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
rotate([0,0,210]){
|
||
|
translate([0,-mount_arm_l/PI-mount_hole_dia*1.5,0]){
|
||
|
fan_wall();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
rotate([0,0,-30]){
|
||
|
translate([0,-mount_arm_l/PI-mount_hole_dia*1.5,0]){
|
||
|
fan_wall();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|