Original-Prusa-i3/Printed-Parts/scad/main.scad

131 lines
4.2 KiB
OpenSCAD

module extruder_body(){
union(){
difference(){
// Main
union(){
cube([35,44,15]);
//fan nice look
translate([35,0,0]) cube([10,12,15]);
}
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,20]);
//Nozzle cutout
// Top
translate([35/2,-0.001,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7+0.5, $fn=120);
// Groove
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=6.13, h=20, $fn=120);
// Bottom
translate([35/2,9.8,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7, $fn=120);
// Main body
translate([35/2,13,15]) rotate([-90,0,0]) cylinder(r=11.53, h=33.001, $fn=80);
// Extruder cables path
translate([33+4,10,-1]) cylinder(r=2, h=17,$fn=30);
translate([33+4,12,9]) cube([4,4,20], center=true);
// Nozzle cooling airway
translate([31.001,43-15,15])rotate([0,90,0])cylinder(r2=14, r1=11.5, h=4, $fn=100);
translate([-1,43-15-2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
translate([-1,43-15,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
translate([-1,43-15+2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
// Fan screws
translate([35.001,40,3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20);
translate([35.001,40-24,3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20);
}
// Cooling grill
difference(){
union(){
// Fins up
translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
translate([0,32,0]) rotate([0,0,25]) cube([6,1.4,15]);
translate([0,27,0]) rotate([0,0,25]) cube([6,1.4,15]);
translate([0,22,0]) rotate([0,0,25]) cube([6,1.4,15]);
translate([0,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
// Structural support
translate([0,13,9]) rotate([0,0,0]) cube([4,30,1]);
translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
}
// Trim
translate([-35.001,0,-0.1])cube([35,43,16]);
}
}
mirror([1,0,0]){
// Filament visualisation
%translate([-35/2,-50,15])rotate([-90,0,0])cylinder(r=1.75/2, h=100, $fn=20);
// Motor visualisation
translate([-42,-42,-1]) %cube([42,42,1]);
translate([-21,-21,0])%cylinder(r=2.5, h=20, $fn=30);
translate([-21,-21,8])%cylinder(r=4, h=13, $fn=30);
// MOTOR
difference(){
union(){
//small in front
//translate([-10,-9.5,0])cube([10,5,5]);
// base
difference(){
translate([-42,-42,0]) cube([42,42,15]);
//main cut
translate([-21,-19.5-10-3,-1]) cube([42,23,17]);
translate([-15,-49.5,-1]) cube([42,23,17]);
translate([-35/2+3,-41,2+3+2.5]) cube([42,42,15]); // Michal Z+2.5
//base round cutout
translate([-21,-21,-2]) cylinder(r=11.5, h=20, $fn=200);
//filament hole
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r=2.2/2, h=20, $fn=20);
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r2=2.2/2,r1=3.6/2, h=1.5, $fn=20);
}
//filament guide
translate([-35/2-3,-19,15-4])cube([6,10,4]);
difference(){
translate([-35/2-3,-8.4+2+1.2,0.4]) rotate([45,0,0]) cube([6,15,15]);
translate([-35/2-4,-15,15]) cube([8,15,15]);
translate([-35/2-4,-1,2]) cube([8,15,15]);
}
}
// Dilament ptfe guide cutout
// PTFE secure ring
translate([-35/2,-3.99,15])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50);
translate([-35/2,-23,15])rotate([-90,0,0]) cylinder(r=4.2/2, h=25, $fn=50);
// drive pulley cutout
translate([-21,-21,8])cylinder(r=4, h=13, $fn=80);
// idler bearing cutout
translate([-21+13,-21,8])cylinder(r=8.5, h=13, $fn=80);
translate([-21,-27,8])cube([10,10,13]); // Michal
// filament clean hole
translate([-43,-21,15])rotate([90,0,90])cylinder(r=20/2, h=20, $fn=50);
translate([-43,-21,15])rotate([90,0,90])cylinder(r1=27/2,r2=20/2, h=5, $fn=50);
// round corners
translate([-2.5,-42+2.5,0]) rotate([0,0,-45]) translate([0,-5,-0.1]) cube([10,10,10]);
translate([-42+2.5,-42+2.5,0]) rotate([0,0,-45-90]) translate([0,-5,-0.1]) cube([10,10,20]);
// idler nut traps
translate([-23,-53.5,7.5-(5.5/2)-0.1])cube([2.5,20,5.7]);
translate([-32,-36.5-2.2,7.5-1.5])cube([40,4,3]);
}
}
}
extruder_body();