pull/25/merge
Protoncek 2017-03-16 09:18:41 +00:00 committed by GitHub
commit 477b055a14
61 changed files with 250503 additions and 168446 deletions

View File

@ -5,27 +5,30 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
// body
difference(){ difference(){
union(){ union(){
cylinder(r=7,h = 7, $fn=30); cylinder(r=7,h = 7, $fn=30);
translate([2,-8,0]) cube([9.5,18,3]); translate([2,-8,0]) cube([9.5,18,3]);
translate([2,-9,0]) cube([5.5,5,3]); translate([2,-9,0]) cube([5.5,5,3]);
} }
// rod cutout
translate([0,0,-1]) cylinder(r=5,h = 10, $fn=30); translate([0,0,-1]) cylinder(r=5,h = 10, $fn=30);
translate([-4.5,0,-5]) cube([9,15,15]); translate([-4.5,0,-5]) cube([9,15,15]);
// LCD cable cut
translate([8,-12,-1]) cube([2,19,5]); translate([8,-12,-1]) cube([2,19,5]);
translate([9,7,-1]) cylinder(r=1,h = 5, $fn=30); translate([9,7,-1]) cylinder(r=1,h = 5, $fn=30);
//corners //corners
translate([2,-13.75,-1]) rotate([0,0,45]) cube([5,5,5]); translate([2,-13.75,-1]) rotate([0,0,45]) cube([5,5,5]);
translate([4,6,-1]) rotate([0,0,45]) cube([10,10,5]); translate([4,6,-1]) rotate([0,0,45]) cube([10,10,5]);
translate([14,6,-1]) rotate([0,0,45]) cube([10,10,5]); translate([14,6,-1]) rotate([0,0,45]) cube([10,10,5]);
translate([-3,3,-1]) rotate([0,0,45]) cube([5,5,10]); translate([-3,3,-1]) rotate([0,0,45]) cube([5,5,10]);
translate([3,3,3]) rotate([0,0,45]) cube([5,5,10]); translate([3,3,3]) rotate([0,0,45]) cube([5,5,10]);
} }
// LCD cable cut ends
translate([7.5,-8,0]) cylinder(r=1,h = 3, $fn=30); translate([7.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
translate([10.5,-8,0]) cylinder(r=1,h = 3, $fn=30); translate([10.5,-8,0]) cylinder(r=1,h = 3, $fn=30);

View File

@ -0,0 +1,189 @@
// PRUSA iteration3
// LCD cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module main_body(){
difference() {
union() {
// main body
translate( [ -77 , -4.5 , 0 ] ) cube( [ 155 , 59.8 , 2 ] );
translate( [ -77 , -4.5 , 0 ] ) rotate([35,0,0]) cube( [ 155 , 2 , 20.08 ] );
translate( [ -77 , -14.7 , 14.2 ] ) cube( [ 155 , 2 , 11.8 ] );
translate( [ -77 , 54 , 0 ] ) cube( [ 155 , 2 , 17 ] );
// M3 hole body
translate( [ 73.5 , 43.3 , 0.5 ] ) rotate([0,0,90]) cylinder( h = 14, r = 4, $fn=6);
translate( [ -72.5 , 43.5 , 0.5 ] ) rotate([0,0,90]) cylinder( h = 14, r = 4, $fn=6);
}
translate( [ -61.5 , 1 , 1.2 ] ) cube( [ 98.5 , 42 , 10 ] ); // LCD window
translate( [ -54.5 , 8 , -1 ] ) cube( [ 85 , 30.5 , 10 ] ); // LCD window
// buzzer holes
translate( [ 55 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 57 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 59 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 61 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 63 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 65 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 67 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
// buzzer holes corners
translate( [ 66.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 64.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 62.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 60.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 58.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 56.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 54.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
// knob hole
translate( [ 62.5 , 21 , -1 ] ) cylinder( h = 10, r = 6, $fn=30);
translate( [ 62.5 , 21 , -1.2 ] ) cylinder( h = 2, r1 = 7, r2 = 6, $fn=30);
// reset button cutout
translate( [ 44 , 26 , -1 ] ) cube( [ 1 , 6 , 9 ] );
translate( [ 48 , 26 , -1 ] ) cube( [ 1 , 2.5 , 9 ] );
translate( [ 68.5 , 36 , -1 ] ) cube( [ 1 , 8 , 9 ] );
translate( [ 56 , 43 , -1 ] ) cube( [ 13.5 , 1 , 9 ] );
translate( [ 50.5 , 30 , -1 ] ) cube( [ 13 , 1 , 9 ] );
translate( [ 44.7 , 31.28 , -1 ] ) rotate([0,0,45]) cube( [ 17 , 1 , 9 ] );
translate( [ 63.5 , 30 , -1 ] ) rotate([0,0,45]) cube( [ 8.5 , 1 , 9 ] );
translate( [ 48.7 , 27.8 , -1 ] ) rotate([0,0,45]) cube( [ 3.55 , 1 , 9 ] );
// rear support cutout
translate( [ -64.5 , -12.7 , 14 ] ) cube( [ 10 , 3 , 16 ] );
translate( [ 55.5 , -12.7 , 14 ] ) cube( [ 10 , 3 , 16 ] );
}
}
module pcb_clip(){
difference(){
union(){
translate( [ -3 , -12 , 17.5 ] ) cube( [ 7 , 4 , 5 ] );
translate( [ -3 , -10.6 , 12.5 ] ) cube( [ 1 , 2.6 , 7 ] );
translate( [ 3 , -10.6 , 12.5 ] ) cube( [ 1 , 2.6 , 7 ] );
}
translate( [ -4 , -8 , 18.5 ] ) rotate([30,0,0]) cube( [ 10 , 6 , 6 ] );
translate( [ 2.5 , -12 , 14.5 ] ) cube( [ 1 , 4 , 0.2 ] );
translate( [ -2.5 , -12 , 14.5 ] ) cube( [ 1 , 4 , 0.2 ] );
translate( [ 2.5 , -12 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] );
translate( [ -2.5 , -12 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] );
}
}
difference()
{
union()
{
pcb_clip();
main_body();
// reset button
translate( [ 62.5 , 37.3 , 0 ] ) cylinder( h = 7.2, r = 3.5, $fn=30);
//left side
translate( [ -77 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] );
translate( [ -76.5 , -15 , 0 ] ) cube( [ 4 , 70 , 14.6 ] );
//right side
translate( [ 76.5 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] );
translate( [ 73.5 , -14 , 0 ] ) cube( [ 4 , 70 , 14.5 ] );
//rear side reinforcement
translate( [ -54.5 , -11.7 , 8 ] ) cube( [ 110 , 4 , 6.5 ] );
translate( [ 65.5 , -11.7 , 8 ] ) cube( [ 12 , 4 , 6.5 ] );
translate( [ 65.5 , -13 , 14 ] ) cube( [ 12 , 2 , 12 ] );
translate( [ -76.5 , -11.7 , 8 ] ) cube( [ 12 , 4 , 6.5 ] );
translate( [ -76.5 , -14.7 , 14.5 ] ) cube( [ 12 , 4 , 11.5 ] );
translate( [ -44 , -14.7 , 14.5 ] ) cube( [ 89 , 4 , 11.5 ] );
translate( [ -43.5 , -10.7 , 15 ] ) rotate([90,0,0]) cylinder( h = 2, r = 11, $fn=60);
translate( [ 44.5 , -10.7 , 15 ] ) rotate([90,0,0]) cylinder( h = 2, r = 11, $fn=60);
//front left side reinforcement
difference()
{
union(){
translate( [ -77 , 41.3 , 0 ] ) cube( [ 15 , 14 , 25 ] );
translate( [ -77 , 46.3 , 14 ] ) cube( [ 15 , 9 , 3 ] );
}
translate( [ -64.5 , 40 , -3 ] ) cube( [ 4 , 8 , 40 ] );
translate( [ -75.5 , 40.3 , 14.5 ] ) cube( [15 , 6.5 , 25 ] );
}
//front right side reinforcement
difference(){
translate( [ 38 , 41.2 , 0 ] ) cube( [ 40 , 14 , 26 ] );
translate( [ 55 , 44.5 , 0 ] ) cube( [ 10.5 , 3.7 , 30 ] );
translate( [ 44 , 39.5 , 0 ] ) cube( [ 25.5 , 5 , 30 ] );
translate( [ 35 , 39.3 , 14.5 ] ) cube( [ 42.5 , 7 , 15 ] );
translate( [ 49 , 43.2 , 25 ] ) rotate([0,60,0]) cube( [ 12 , 5 , 10 ] );
}
}
// SD card opening
translate( [ -80 , 9 , 14.5 ] ) cube( [ 10 , 28 , 6 ] );
// front and rear angle
translate( [ -81 , -9.3 , -17 ] ) rotate([35,0,0]) cube( [ 164 , 14 , 54.08 ] );
translate( [ -78 , 72.7 , -3 ] ) rotate([45,0,0]) cube( [ 160 , 14 , 54.08 ] );
// M3 screw thread
translate( [ 72.7 , 43.2 , 3 ] ) cylinder( h = 20, r = 1.4, $fn=30);
translate( [ -72.5 , 42.7 , 3 ] ) cylinder( h = 20, r = 1.4, $fn=30);
translate( [ 72.7 , 43.2 , 14 ] ) cylinder( h = 1, r1 = 1.4, r2=2, $fn=30);
translate( [ -72.5 , 42.7 , 14 ] ) cylinder( h = 1, r = 1.4, r2=2, $fn=30);
// ORIGINAL PRUSA text
translate([-67,52,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
{ text("ORIGINAL",font = "helvetica:style=Bold", size=7, center=true); }
translate([-18,52,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
{ text("PRUSA",font = "helvetica:style=Bold", size=11, center=true); }
translate( [ -66 , 41.5 , -0.4 ] ) cube( [ 45 , 1.6 , 1 ] );
translate( [ -66 , 42.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
translate( [ -21 , 42.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
// front cleanup
translate( [ -100 , -64 , 0 ] ) cube( [ 200 , 50 , 50 ] );
// X sign on reset button
translate( [ 63 , 34 , -1 ] ) rotate([0,0,45]) cube( [ 2, 8, 2 ] );
translate( [ 57.5 , 35.5 , -1 ] ) rotate([0,0,-45]) cube( [ 2, 8, 2 ] );
// corners
translate( [ 76 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 5, 80, 5 ] );
translate( [ -82 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 5, 80, 5 ] );
translate( [ -82 , 58 , -4 ] ) rotate([45,0,0]) cube( [ 200, 5, 5 ] );
translate( [ -77 , 54 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
translate( [ 78 , 54 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
translate( [ 78 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
translate( [ -77 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
// LCD corners
translate( [ -54.5 , 9.5 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window
translate( [ -54.5 , 37 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window
rotate([35,0,0]) translate( [ -78 , -7 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
rotate([35,0,0]) translate( [ 79 , -7 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
}

View File

@ -25,6 +25,7 @@ union(){
module cutout() module cutout()
{ {
translate([ 22, 4 , -2 ]) cylinder( h = 20, r = 1.6, $fn=30); // M3 hole A translate([ 22, 4 , -2 ]) cylinder( h = 20, r = 1.6, $fn=30); // M3 hole A
translate([ 22, 4 , -1 ]) cylinder( h = 10, r = 3.2, $fn=6); // M3 nut body A translate([ 22, 4 , -1 ]) cylinder( h = 10, r = 3.2, $fn=6); // M3 nut body A
translate([ 22, 4 , -1 ]) cylinder( h = 14, r1 = 3.2, r1 = 5, $fn=6); // M3 nut hole fillet A translate([ 22, 4 , -1 ]) cylinder( h = 14, r1 = 3.2, r1 = 5, $fn=6); // M3 nut hole fillet A

View File

@ -1,166 +1,176 @@
// PRUSA iteration3 // PRUSA iteration3
// PSU Cover // PSU Cover
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module PSU_COVER() module CubeAdjust(Xdim, Zdim){
{ for (x =[6:11.2:Xdim-12]){
difference(){ for (z =[6:11.2:Zdim-12]){
union(){
translate([x,-0.2,z])cube([10,0.4,10]);
translate([0,0,-1])cube([95,50+15,56]); // Base }
}
translate([0,0,-3.5])cube([14-0.5,50+15,5]); // Back pillar 1
translate([60-0.5,0,-3.5])cube([14,50+15,5]); // Back pillar 2 }
translate([91+4,0,-1])cube([6,50+15,56]); // Base for bracket module nuttrap(){
rotate([0, 180, 0]) difference(){
translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right union(){
translate([-4.25,-7.5,0]) difference(){
translate([0,0,0]) cube([8.5, 9, 3]);
translate([0,35,46.5])scale([1.2,1,0.2])rotate([-28,-50,-58])cube([45,45,30]); rotate([45,0,0]) cube([11.5,5.7,5.7]);
}
}
//translate([94,20,13])scale([0.2,1.2,1])rotate([-29,-51,-48])cube([30,35,30]); translate([0,0, -0.2])rotate([0,0,30]) cylinder(r=3.5,h=15-1.5, $fn=6);
//translate([10,25,45])scale([1,1,0.3])rotate([-40,-50,-58])cube([40,30,30]); }
}
translate([-1.6,0,0])cube([1.65,65,2]); // Frame skirt 1
translate([-1.6,0,0])cube([1.65,30,55]); // Frame skirt 2 module PSU_COVER()
translate([-1.6,0,51])cube([1.65,65,4]); // Frame skirt 3 {
difference(){
} union(){
translate([0,0,-0.46])cube([95,50+15,54.25]); // Base
//pretty corners
translate([-11,-2,-2])rotate([0,0,-45])cube([10,10,58]); translate([0,0,-3.5])cube([14-0.5,50+15,5]); // Back pillar 1
translate([95-3+5+1,-2,-2])rotate([0,0,-45])cube([10,10,58]);
translate([60-0.5,0,-3.5])cube([14,50+15,5]); // Back pillar 2
translate([-3,-9,-5])rotate([-45,0,0])cube([130,10,10]);
translate([-3,-12,56])rotate([-45,0,0])cube([130,10,10]); translate([91+4,0,-0.46])cube([6,50+15,54.25]); // Base for bracket
translate([-3,45+15,-5])rotate([-45,0,0])cube([130,10,10]); translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right
translate([-3,48+15,56])rotate([-45,0,0])cube([130,10,10]);
translate([95-3+3,70,-2])rotate([0,0,-45])cube([10,10,58]); translate([-1.6,0,0])cube([1.65,65,2]); // Frame skirt 1
translate([-1.6,0,0])cube([1.65,30,53.78]); // Frame skirt 2
translate([-1.6,0,51.32])cube([1.65,65,2.46]); // Frame skirt 3
translate([95,0-10,-20])rotate([0,-45,-45])cube([20,20,20]);
translate([95,0-10,45])rotate([0,-45,-45])cube([20,20,20]); }
translate([95,60,-10])rotate([-35,-45,-45])cube([20,20,20]); //pretty corners
translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]); translate([-11,-2,-2])rotate([0,0,-45])cube([10,10,58]);
translate([95-3+5+1,-2,-2])rotate([0,0,-45])cube([10,10,58]);
translate([79,-5,68.5])rotate([0,45,0])cube([20,90,20]);
translate([-3,-9,-4.46])rotate([-45,0,0])cube([130,10,10]);
translate([79,4,-14.5])rotate([0,45,0])cube([20,90,20]); translate([-3,-12,54.78])rotate([-45,0,0])cube([130,10,10]);
translate([-3,45+15,-4.46])rotate([-45,0,0])cube([130,10,10]);
translate([-14,-5,68.5])rotate([0,45,0])cube([20,90,20]); translate([-3,48+15,54.78])rotate([-45,0,0])cube([130,10,10]);
translate([3,2,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout translate([95-3+3,70,-2])rotate([0,0,-45])cube([10,10,58]);
translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout
translate([95,0-10,-20])rotate([0,-45,-45])cube([20,20,20]);
translate([-3,50-16.4-15.6+15,2])cube([10,100,17]); // right bottom cutout translate([95,0-10,45])rotate([0,-45,-45])cube([20,20,20]);
translate([85+2,50-16.4-17.6+15+0.9,2])cube([10,100,50-0.7]); // left bottom cutout
translate([95,60,-10])rotate([-35,-45,-45])cube([20,20,20]);
translate([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]);
translate([5.5,0,0]){ translate([79,-5,67.28])rotate([0,45,0])cube([20,90,20]);
translate([45,2,40])cube([27.5,31.9,30]); // socket cutout
translate([45-4.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket right hole cutout translate([79,-5,-13.96])rotate([0,45,0])cube([20,90,20]);
translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket left hole cutout
translate([1,2,44])cube([20,14,30]); // switch cutout translate([-14,-5,67.28])rotate([0,45,0])cube([20,90,20]);
translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=3.25,h=15-1.5, $fn=6); // socket left hole cutout nuttrap translate([3,2,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout
translate([45-4.5,2+15.6,40])cylinder(r=3.25,h=15-1.5, $fn=6); // socket left hole cutout nuttrap
} translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout
translate([20,50,54.5])linear_extrude(height = 1) {
text("Prusa3D", center=true); translate([-3,50-16.4-15.6+15,2])cube([10,100,17]); // right bottom cutout
}
translate([85+2,50-16.4-17.6+15+0.9,2])cube([10,100,50-0.7]); // left bottom cutout
/*
translate([8,40-1+15,40])cylinder(r=2,h=50,$fn=15); // left front mounthole cutout translate([85+2,10,2])rotate([0,0,45]) cube([10*sqrt(2),10*sqrt(2),50-0.7]);
translate([8,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$fn=15); translate([85+2,2,2]) cube([10,18,50-0.7]);
translate([87,40-1+15,40])cylinder(r=2,h=50,$fn=15); // right front mounthole cutout translate([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout
translate([87,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$fn=15);
*/ translate([5.5,0,0]){
translate([45,2,40])cube([27.5,31.9,30]); // socket cutout
translate([7-0.5-0.5,40-1+15+0.7,-10])cylinder(r=2,h=50,$fn=15); // left back mounthole cutout translate([45-4.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket right hole cutout
translate([7-0.5-0.5,40-1+15+0.7,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15); translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket left hole cutout
translate([67.5-0.7-0.5,43.5-1+15+0.5,-10])cylinder(r=2,h=50,$fn=15); // right back mounthole cutout translate([1,2,44])cube([20,14,30]); // switch cutout
translate([67.5-0.7-0.5,43.5-1+15+0.5,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
translate([45-4.5+37-0.5,2+15.6,39.1]) rotate([0,0,30]) cylinder(r=3.25,h=15-2.8, $fn=6); // socket left hole cutout nuttrap
translate([45-4.5,2+15.6,39.1]) rotate([0,0,30]) cylinder(r=3.25,h=15-2.8, $fn=6); // socket left hole cutout nuttrap
translate([130,32+26,55-4-25])rotate([0,-90,0])cylinder(r=2.5,h=50,$fn=35); // Left side bracket screw hole }
translate([101.1,32+26,55-4-25])rotate([0,-90,0])cylinder(r2=2.5, r1=4.1,h=3,$fn=15);
translate([7-0.5-0.5,40-1+15+0.7,-10])cylinder(r=2,h=50,$fn=15); // left back mounthole cutout
for(i=[0:10]){ translate([7-0.5-0.5,40-1+15+0.7,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
translate([20+i,6,-10])cylinder(r=3,h=50); // left back mounthole cutout
} translate([67.5-0.7-0.5,43.5-1+15+0.5,-10])cylinder(r=2,h=50,$fn=15); // right back mounthole cutout
translate([67.5-0.7-0.5,43.5-1+15+0.5,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
} translate([130,32+26,55-4-25])rotate([0,-90,0])cylinder(r=2.5,h=50,$fn=35); // Left side bracket screw hole
} translate([101.1,32+26,55-4-25])rotate([0,-90,0])cylinder(r2=2.5, r1=4.1,h=3,$fn=15);
translate([-0.3,0,-1.2])CubeAdjust(102,54.25);
module PSU_Y_REINFORCEMENT()
{ for(i=[0:9]){
difference() translate([20+i,6.5,-10])cylinder(r=3.5,h=50); // left back mounthole cutout
{ }
union() // base shape
{
translate([ 59.5, 0, -18 ]) cube([ 33, 6, 19 ]); // reinforcement plate }
translate([ 73.5, 5, -18 ]) cube([ 5, 16, 19 ]); // vertical_reinforcement }
}
union () // cutouts module PSU_Y_REINFORCEMENT()
{ {
difference()
//translate([ 88-0.5, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A1 {
//translate([ 88, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A union() // base shape
//translate([ 88+0.5, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A2 {
translate([ 59.5, 0, -18 ]) cube([ 33, 6, 19 ]); // reinforcement plate
//translate([ 68-0.5, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B1 translate([ 73.5, 5, -18 ]) cube([ 5, 16, 19 ]); // vertical_reinforcement
//translate([ 68, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B }
//translate([ 68+0.5, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B2 union () // cutouts
{
translate([ 87.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
translate([ 52.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
translate([ 68.5, 20, -34 ]) rotate([ 45, 0, 0 ]) cube([ 15, 23, 20 ]); //vertical reinf cutout // corner cuts
translate([ 87.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
translate([ 52.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
// angled vertical support
translate([ 88, 8, -11.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A translate([ 68.5, 20, -34 ]) rotate([ 45, 0, 0 ]) cube([ 15, 23, 20 ]); //vertical reinf cutout
translate([ 68, 8, -11.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
// bottom surface cuts
translate([ 88, 8, -9.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A translate([ 66.2, -0.2, -5])cube([23.6, 0.4, 5.6]);
translate([ 68, 8, -9.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B translate([ 68 + 1.8 +2.6, -0.2, -7.7 -5.6])cube([11.2, 0.4, 5.6]);
translate([ 86.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension translate([ 88, 8, -11.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
translate([ 68, 8, -11.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
} translate([ 88, 8, -9.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
} translate([ 68, 8, -9.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
}
translate([ 86.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
module FINAL_PART(){ translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
union()
{
PSU_COVER();
PSU_Y_REINFORCEMENT(); }
} }
} }
FINAL_PART();
module FINAL_PART(){
union()
{
PSU_COVER();
PSU_Y_REINFORCEMENT();
translate([82.5,2+15.6,39.1+13.5]) nuttrap();
translate([46,2+15.6,39+13.5]) nuttrap();
}
}
FINAL_PART();

View File

@ -1,5 +1,5 @@
// PRUSA iteration3 // PRUSA iteration3
// RAMBo cover base // RAMBo base
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
@ -9,254 +9,315 @@
// main body // main body
module main_body(){ module main_body(){
cube( [ 114.5 , 92 , 2 ] ); // side panel
cube( [ 1.5 , 92 , 35 ] ); cube( [ 118.5 , 92 , 2 ] );
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.5 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] ); // upper panel
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] ); cube( [ 1.5 , 92 , 35 ] );
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] ); // rear panel
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] ); translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] ); // heatbed ziptie reinforcement
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] ); translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.5 ] );
translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] );
// RAMBo mounting holes // upper panel frame reinforcement
translate( [ 102.5 , 14 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6); translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] );
translate( [ 102.5 , 75 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 7.5 , 14 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 7.5 , 75 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
// corners reinforcement // side panel reinforcement
translate( [ 0 , 75 , 1 ] ) cube( [ 13 , 16 , 6 ] ); translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
translate( [ 0 , 70.25 , 1 ] ) cube( [ 7.5 , 11 , 6 ] ); translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
translate( [ 0 , 7.75 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 13 , 14 , 6 ] );
// frame mounting screw blocks difference()
translate( [ 98 , 0 , 0 ] ) cube( [ 16.5 , 8 , 8 ] ); {
translate( [ 1 , 0 , 0 ] ) cube( [ 19.5 , 8 , 8 ] ); // bottom side reinforcement
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 8, r = 5, $fn=30); translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
translate( [ 110.5 , 8 , 5 ] ) rotate([90,90,0]) cylinder( h = 8, r = 5, $fn=30); translate( [ 96 , 79 , 0 ] ) rotate([0,0,45]) cube( [ 7.5 , 6 , 36 ] );
translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 8 , 5.5] );
// heatbed filament holder body
translate( [ 81.6 , 90.35 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 5, $fn=6);
// door closing corner
translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
translate( [ 2 , 85 , 31 ] ) cube( [ 6 , 7 , 4] );
translate( [ 4 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6);
}
module inside_cable_holder(){
translate( [ 50 , 6 , 0.5 ] ) cube( [ 30, 2, 20] );
difference(){
translate( [ 50 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 30, r = 6, $fn=6);
translate( [ 49 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 34, r = 4, $fn=6);
translate( [ 49 , 8 , 10 ] ) cube( [ 34, 10, 25] );
}
} }
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] );
// screw mounting block
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] );
// frame side panel
translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] );
// RAMBo mounting holes
translate( [ 102.5 , 14 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 102.5 , 75 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 7.5 , 14 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 7.5 , 75 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
// corners reinforcement
translate( [ 0 , 75 , 1 ] ) cube( [ 13 , 16 , 6 ] );
translate( [ 0 , 70.25 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
translate( [ 0 , 7.75 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 13 , 14 , 6 ] );
// frame mounting screw blocks
//upper
translate( [ 1 , 0 , 0 ] ) cube( [ 28 , 4 , 10 ] );
translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 4 , 5.5] );
//lower
translate( [ 98 , 0 , 0 ] ) cube( [ 20.5 , 4 , 10 ] );
// heatbed filament holder body
translate( [ 81.6 , 90.35 , 24 ] ) rotate([0,90,0]) cylinder( h = 18, r = 5, $fn=6);
// door closing corner
translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
// doors pin upper
translate( [ 2 , 85 , 31 ] ) cube( [ 6 , 7 , 4] );
translate( [ 4 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
// x-axis cables entry hole body
translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6);
}
module ventilation_holes()
{
for ( i = [-6 : 8] ){
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+50,1.2]);
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19,10]);
translate([46 + (i*5.5),10.5+25,-1]) cube([3.65,19,10]);
translate([46 + (i*5.5),10.5+50,-1]) cube([3.65,19,10]);
}
}
module cutouts(){ module cutouts(){
// side // side
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] ); translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
// RAMBo M3 screws // RAMBo M3 screws
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30); translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30); translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30); translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30); translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 7.5 , 14 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 102.5 , 14 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 102.5 , 75 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 7.5 , 75 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 2 , 0 , 0 ] )ventilation_holes();
// frame mounting screws // frame mounting screws
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30); //upper
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30); translate( [ 18.5, -2 , 15.6 ] ) rotate([0,45,0]) cube( [ 15 , 10 , 10] );
translate( [ 16.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30); translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30); translate( [ 16.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
translate( [ 114.5 , -2 , -1 ] ) cube( [ 5 , 15 , 10] ); translate( [ 15.15 , -2 , 5 ] ) cube( [ 2.7 , 15 , 10] );
translate( [ 15.1 , -2 , 7 ] ) rotate([0,5,0]) cube( [ 2.8 , 15 , 10] );
// USB connector hole translate( [ 15.1 , -2 , 7 ] ) rotate([0,-5,0]) cube( [ 2.8 , 15 , 10] );
translate( [ -1 , 41.5 , 11 ] ) cube( [ 5.5 , 13 , 11 ] );
// reset button
translate( [ -2 , 65 , 14 ] ) rotate([0,90,0]) cylinder( h = 10, r = 2, $fn=30);
// door closing screw
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.8, $fn=30);
// heatbed cable opening hole //lower
translate( [ 75.5 , 94 , 24 ] ) rotate([90,90,0]) cylinder( h = 5, r = 7, $fn=6); translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
translate( [ 77.6 , 80 , 20.5 ] ) cube( [ 4 , 15 , 15] ); translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
translate( [ 69.4 , 95 , 27.5 ] ) rotate([90,60,0]) cube( [ 5 , 10 , 10] ); translate( [ 118.5 , -2 , 6 ] ) rotate([0,-45,0]) cube( [ 5 , 15 , 15] );
translate( [ 94.5 , -2 , 8.5 ] ) rotate([0,45,0]) cube( [ 5 , 8 , 15] );
translate( [ 0 , -2 , -5 ] ) cube( [ 120 , 15 , 5] );
translate( [ 109.15 , -2 , 5 ] ) cube( [ 2.7 , 15 , 10] );
translate( [ 109.3 , -2 , 6.5 ] ) rotate([0,5,0]) cube( [ 2.5 , 15 , 10] );
translate( [ 109.2 , -2 , 6.5 ] ) rotate([0,-5,0]) cube( [ 2.5 , 15 , 10] );
// heatbed cable ziptie holes // USB connector hole
translate( [ 64 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] ); translate( [ -1 , 41.5 , 11 ] ) cube( [ 5.5 , 13 , 11 ] );
translate( [ 64 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
// reset button
translate( [ -2 , 65 , 14 ] ) rotate([0,90,0]) cylinder( h = 10, r = 2, $fn=30);
// door closing screw
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.9, $fn=30);
// heatbed cable opening hole
difference()
{
translate( [ 75.5 , 94 , 24 ] ) rotate([90,90,0]) cylinder( h = 5, r = 7, $fn=6);
translate( [ 71 , 80 , 13.5 ] ) cube( [ 8 , 15 , 5] );
}
translate( [ 73 , 80 , 20.5 ] ) cube( [ 5 , 15 , 15] );
// heatbed cable ziptie holes
translate( [ 64 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
translate( [ 64 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
// heatbed filament holder hole // heatbed filament holder hole
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 1.6, $fn=30); translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 1.8, $fn=30);
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 2, r = 2, r2=1.6, $fn=30); translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 2, r = 2, r2=1.8, $fn=30);
translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] ); translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] );
// nut traps // nut traps HEX
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6); translate( [ 7.5 , 14 , -1 ] ){
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6); cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6); rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6); rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6); translate( [ 102.5 , 14 , -1 ] ){
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6); cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6); rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6); rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=30); rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
translate( [ 102.5 , 75 , -1 ] ){
cylinder( h = 4, r = 3.2, $fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
// door closing corners translate( [ 7.5 , 75 , -1 ] ){
translate( [ 8 , 80 , 28 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 10] ); cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 106 , 81 , 4 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 40] ); rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=30);
// door closing corners
translate( [ 8 , 80 , 28 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 10] );
translate( [ 106 , 81 , 4 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 40] );
// x axis cable hole // inner edges cutout
translate( [ 89 , 2 , -1 ] ) cylinder( h = 10, r = 4, $fn=6); translate( [ 54 , 79.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
translate( [ 80 , -5 , -1 ] ) cube( [ 15, 5, 10] ); translate( [ 70 , 82.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
translate( [ 6 , 80 , 7 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 24] );
translate( [ 5.5 , 4 , 7 ] ) rotate([0,0,45]) cube( [ 3 , 5 , 29] );
// x axis cable hole
translate( [ 89 , 2 , -1 ] ) cylinder( h = 10, r = 4, $fn=6);
translate( [ 80 , -5 , -1 ] ) cube( [ 15, 5, 10] );
// large corner coutout
translate( [ -27 , 80 , -54 ] ) rotate([50,0,45]) cube( [ 50, 50, 50] );
translate( [ 137.5 , 60 , -10 ] ) rotate([0,0,45]) cube( [ 50, 50, 50] );
// large corner coutout
translate( [ -25 , 80 , -54 ] ) rotate([50,0,45]) cube( [ 50, 50, 50] );
translate( [ 137.5 , 60 , -10 ] ) rotate([0,0,45]) cube( [ 50, 50, 50] );
} }
module ext_ziptie(){ // extruder cable holder
difference(){
translate( [ -6 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 3, r = 15, $fn=30);
translate( [ -7 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 5, r = 7, $fn=30);
}
}
module ext_cable_holder() module ext_cable_holder()
{ {
difference() difference()
{ {
// body
union(){ union(){
rotate([90,0,0]) translate([-8, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 7, r2=10, $fn=6); rotate([90,0,0]) translate([-8, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 8, r2=11, $fn=6);
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 10, r2=10, $fn=6); rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 11, r2=11, $fn=6);
rotate([90,0,0]) translate( [ 1.5 , 26 , -28 ] ) rotate([0,90,0]) cylinder( h = 10, r1 = 10, r2=7, $fn=6); rotate([90,0,0]) translate( [ 1.5 , 26 , -28 ] ) rotate([0,90,0]) cylinder( h = 10, r1 = 13, r2=7.5, $fn=6);
translate( [ -4.1 , 28 , 17.5 ] ) rotate([0,45,0]) cube( [ 7 , 5 , 8 ] ); translate( [-4, 28, 16.5 ] ) rotate([0,45,0]) cube( [ 6 , 5.5 , 7 ] );
} }
// upper cut
translate( [ -15 , 13 , 15] ) cube( [ 15 , 15 , 25 ] ); translate( [ -15 , 13 , 15] ) cube( [ 15 , 15 , 25 ] );
translate( [ 1.5 , 26 , 10] ) cube( [ 15 , 15 , 25 ] ); // lower cut
translate( [ 1.5 , 26 , 10] ) cube( [ 15 , 15 , 26 ] );
// ziptie holder
difference(){ difference(){
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 3.5, r = 8, $fn=30); rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 3.5, r = 8.5, $fn=30);
rotate([90,0,0]) translate([-5, 26, -28]) rotate([0,90,0]) cylinder( h = 5.5, r = 6.5, $fn=30); rotate([90,0,0]) translate([-5, 26, -28]) rotate([0,90,0]) cylinder( h = 5.5, r = 6.2, $fn=30);
} }
} }
} }
module rambo_cover() module rambo_cover()
{ {
difference() ext_cable_holder();
{ difference(){
main_body(); main_body();
cutouts(); cutouts();
} }
} }
difference(){
union(){
// extruder cable filament holder body
translate( [ 4.5 , 25.5 , 26 ] ) rotate([0,90,0]) cylinder( h = 7, r = 3.5, $fn=6);
translate( [ 4.5 , 22.5 , 22.5] ) cube( [ 7 , 3 , 7 ] );
translate( [ 4.5 , 23.5 , 20.8] ) cube( [ 7 , 2.5 , 7 ] );
translate( [ 4.5 , 24.7 , 26 ] ) rotate([0,90,0]) cylinder( h = 7, r = 3, $fn=30);
}
// extruder filament inner hole
translate( [ -5 , 25 , 26 ] ) rotate([0,90,0]) cylinder( h = 20, r = 1.75, $fn=30);
translate( [ 4, 25 , 26 ] ) rotate([0,90,0]) cylinder( h =3, r1 = 1.9, r2=1.75, $fn=30);
}
difference(){ difference(){
union(){
rambo_cover(); rambo_cover();
translate( [ 10 , 89 , 3] ) cube( [ 6 , 1 , 32 ] );
translate( [ 12 , 89 , 1] ) cube( [ 4 , 1 , 2 ] );
}
translate( [ 25 ,89 , 20.8] ) cube( [ 7.4 , 5 , 16 ] ); //Cube018
translate( [ 25 , 95 , 25 ] ) rotate([90,90,0]) cylinder( h = 7, r = 8.5, $fn=6);
// extruder cable zipties // upper extruder cable opening
translate( [ 11 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] ); translate( [ -5 , 28 , 26 ] ) rotate([0,90,-15]) cylinder( h = 20, r = 1.4, $fn=30);
translate( [ 11 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
// main hole
translate( [ -10 , 28 , 26 ] ) rotate([0,90,0]) cylinder( h = 24, r = 5.5, $fn=30);
// cable opening slot
translate( [ -15 , 26.5 , 30 ] ) cube( [ 30 , 3 , 10 ] );
// flatten on door side
translate( [ -15 , 20 , 35 ] ) cube( [ 30 , 20 , 20 ] );
// opening slot cuts
translate( [ -1.5 , 26 , 33] ) rotate([45,0,45]) cube( [ 3 , 3 , 3 ] );
translate( [ 1 , 28 , 33] ) rotate([45,0,45]) cube( [ 3 , 3 , 3 ] );
// screw body edge
translate( [ 65 ,74.2 , 2] ) rotate([0,0,45]) cube( [ 10 , 10 , 50 ] );
// lightening slots
translate( [ 100 ,21 , 2] ) cube( [ 5 , 48 , 5 ] );
translate( [ 3 ,21 , 2] ) cube( [ 4.5, 48 , 5 ] );
// bottom holes print supports
translate( [ 7.5 , 14 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 102.5 , 14 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 102.5 , 75 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 7.5 , 75 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 58.5 , 88 ,0] ){
intersection(){cylinder(r=3.2, h=10, $fn=30);
translate( [ 0 , 0 , 2.5 ] ) cube([3.8,8,2], center=true);}
translate( [ 0 , 0 , 3 ] ) cube([3.8,3.8,2], center=true);
}
} }
module extruder_filament_holder()
{
difference(){
translate( [ 33 , 90 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 8, $fn=4);
translate( [ 30 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 1.6, $fn=30);
translate( [ 32 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 3, r1 = 2, r2=1.6, $fn=30);
translate( [ 26 ,79 , 20.8] ) cube( [ 30 , 5 , 16 ] );
translate( [ 26 ,91 , 15] ) cube( [ 30 , 15 , 16 ] );
}
}
extruder_filament_holder();
// print part support
translate([0,1,0])
difference(){
translate( [ 18 ,90 , 15] ) cube( [ 7 , 1 , 19 ] );
translate( [ 17 ,90.6 , 29.4] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 30 ,90.6 , 13.1] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 30 ,89 , 13] ) rotate([0,-60,0]) cube( [ 10 , 3 , 10 ] );
translate( [ 20 ,100, 20 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
translate( [ 21 ,99, 31 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
}
// print part support
difference()
{
translate( [ 70 ,90.5 , 15] ) cube( [ 7.5 , 1 , 19 ] );
translate( [ 69 ,91 , 27.8] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 80 ,91 , 13.9] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 81.5 ,90 , 10] ) rotate([0,-60,0]) cube( [ 10 , 2 , 10 ] );
}

View File

@ -1,107 +0,0 @@
// PRUSA iteration3
// RAMBo cover door
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module body()
{
cube( [ 105.5 , 87.5 , 1 ] );
cube( [ 105.5 , 2 , 20 ] );
cube( [ 2 , 87.5 , 20 ] );
// corner reinforcement
translate( [ 98 , 1 , 0 ] ) cube( [ 7.5 , 5 , 20 ] );
translate( [ 0.5 , 0.5 , 0 ] ) cube( [ 5 , 6.5 , 20 ] );
translate( [ 1 , 0 , 0 ] ) cube( [ 10 , 87.5 , 6 ] );
translate( [ 99.5 , 0 , 0 ] ) cube( [ 6 , 87.5 , 7 ] );
translate( [ 10 , 0 , 0 ] ) cube( [ 6 , 5 , 6 ] );
// screw thread body
translate( [ 54 , 2 , 0 ] ) cube( [ 9.5 , 6 , 20 ] );
// rounded side
translate( [ 0 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 105.5, r = 4.5, $fn=30);
// upper hinge reinforcement
translate( [ 0.5 , 69 , -9 ] ) rotate([20,0,0]) cube( [ 26 , 20 , 10 ] );
// door closing
translate( [ 4 , 3.5 , 16.8 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.8, r2= 3.5, $fn=30);
translate( [ 102 , 3.5 , 16.8 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.8, r2= 3.5, $fn=30);
}
module ventilation_holes()
{
for ( i = [0 : 9] ){
translate([46 + (i*5.5),10.5,-1]) cube([3,19,10]);
translate([47.5 + (i*5.5),10.5,-1]) cylinder( h = 10, r = 1.5, $fn=30);;
translate([47.5 + (i*5.5),29.5,-1]) cylinder( h = 10, r = 1.5, $fn=30);;
}
}
module cutouts()
{
// door closing screw
translate( [ 58.5 , 4 , 5 ] ) cylinder( h = 17, r = 1.5, $fn=30);
translate( [ 58.5 , 4 , 18.5 ] ) cylinder( h = 2, r1 = 1.5, r2=1.9, $fn=30);
ventilation_holes();
translate([0,50,0]) ventilation_holes();
translate([0,25,0]) ventilation_holes();
// rounded side cutoff
translate( [ 26.5 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 73, r = 3.5, $fn=30);
translate([ 26.5 ,80,5]) cube([73,19,10]);
translate([ 26.5 ,82.5,1]) cube([73,5,10]);
translate( [ 0 , 60 , -10 ] ) cube( [ 30 , 30 , 10 ] );
translate( [ -1 , 87.5 , 0 ] ) cube( [ 22.5 , 10 , 10 ] );
// upper hinge
translate( [2 , 80, 6] ) cube( [ 19.5, 10 , 10 ] );
translate( [-2 , 89.7, 3] ) rotate([70,0,0]) cube( [ 19.5, 10 , 5 ] );
translate( [ -5 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 26.5, r = 2.5, $fn=30);
// hinge hole
translate( [ -5 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 120, r = 2.6, $fn=30);
// door closing
translate( [ 4 , 3.5 , 16.9 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30);
translate( [ 102 , 3.5 , 16.9 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30);
// M3 NUT
translate( [55.65 , 0.5, 16] ) cube( [ 5.7, 10 , 2.2 ] );
translate( [4 , 10, 4] ) cube( [ 4, 65 , 5 ] );
translate( [101 , 10, 4] ) cube( [ 3, 70 , 5 ] );
}
module RAMBo_cover_doors()
{
difference()
{
body();
cutouts();
translate( [0 , -20, -3] ) rotate([0,45,45]) cube( [ 30, 30 , 20 ] );
}
}
RAMBo_cover_doors();

View File

@ -0,0 +1,119 @@
// PRUSA iteration3
// RAMBo doors
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module body()
{
// side panels
cube( [ 105.5 , 87.5 , 1 ] );
cube( [ 105.5 , 2 , 20 ] );
cube( [ 2 , 87.5 , 20 ] );
// corner reinforcement
translate( [ 98 , 1 , 0 ] ) cube( [ 7.5 , 5 , 20 ] );
translate( [ 0.5 , 0.5 , 0 ] ) cube( [ 5 , 6.5 , 20 ] );
translate( [ 1 , 0 , 0 ] ) cube( [ 10 , 87.5 , 6 ] );
translate( [ 99.5 , 0 , 0 ] ) cube( [ 6 , 87.5 , 7 ] );
translate( [ 10 , 0 , 0 ] ) cube( [ 6 , 5 , 6 ] );
// screw thread body
translate( [ 54 , 2 , 0 ] ) cube( [ 9.5 , 6 , 20 ] );
// rounded side
translate( [ 0 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 105.5, r = 4.5, $fn=30);
// upper hinge reinforcement
translate( [ 0.5 , 69 , -9 ] ) rotate([20,0,0]) cube( [ 26 , 20 , 10 ] );
// door closing
translate( [ 4 , 3.5 , 16.8 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.8, r2= 3.5, $fn=30);
translate( [ 102 , 3.5 , 16.8 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.8, r2= 3.5, $fn=30);
}
module ventilation_holes()
{
for ( i = [0 : 9] ){
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+50,1.2]);
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19,10]);
translate([46 + (i*5.5),10.5+25,-1]) cube([3.65,19,10]);
translate([46 + (i*5.5),10.5+50,-1]) cube([3.65,19,10]);
}
for ( i = [0 : -6] ){
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+50,1.2]);
}
for ( i = [-6 : -7] ){
translate([46 + (i*5.5),20.5,-1]) cube([3.65,19+40,1.2]);
}
}
module cutouts()
{
// door closing screw
translate( [ 58.5 , 4 , 5 ] ) cylinder( h = 17, r = 1.8, $fn=30);
translate( [ 58.5 , 4 , 18.5 ] ) cylinder( h = 2.6, r1 = 1.8, r2=2.2, $fn=30);
translate( [ 58.5 , 4 ,15.5] ){
translate( [ 0 , 0 , 2.5 ] ) cube([5.7,3.8,1], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.8,3.8,1], center=true);}
ventilation_holes();
// rounded side cutoff
translate( [ 26.5 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 73, r = 3.5, $fn=30);
translate([ 26.5 ,80,5]) cube([73,19,10]);
translate([ 26.5 ,82.5,1]) cube([73,5,10]);
// upper hinge cut
translate( [ 0 , 60 , -10 ] ) cube( [ 30 , 30 , 10 ] );
translate( [ -1 , 87.5 , 0 ] ) cube( [ 22.5 , 10 , 10 ] );
// upper hinge
translate( [2 , 80, 6] ) cube( [ 19.5, 10 , 10 ] );
translate( [-2 , 89.7, 3] ) rotate([70,0,0]) cube( [ 19.5, 10 , 5 ] );
translate( [ -5 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 26.5, r = 2.5, $fn=30);
// hinge hole
translate( [ -5 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 120, r = 2.6, $fn=30);
// door closing
translate( [ 4 , 3.5 , 16.9 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30);
translate( [ 102 , 3.5 , 16.9 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30);
// M3 NUT
translate( [55.65 , 0.5, 16] ) cube( [ 5.7, 10 , 2.2 ] );
// side panel lightning slot
translate( [2 , 10, 3] ) cube( [ 7, 65 , 5 ] );
translate( [101 , 10, 3] ) cube( [ 3, 70 , 5 ] );
// corners - cut
translate( [53 , 3, 1] ) rotate([0,0,70]) cube( [ 10, 10 , 50 ] );
translate( [61 , 12, 1] ) rotate([0,0,-70]) cube( [ 10, 10 , 50 ] );
translate( [16 , 2, 1] ) rotate([0,0,45]) cube( [ 5, 5 , 50 ] );
}
module RAMBo_doors()
{
difference()
{
body();
cutouts();
// large corner cut
translate( [0 , -20, -3] ) rotate([0,45,45]) cube( [ 30, 30 , 20 ] );
}
}
RAMBo_doors();

View File

@ -10,12 +10,15 @@ module upper_hinge()
difference() difference()
{ {
union(){ union(){
// body
cylinder( h = 26, r = 2.4, $fn=30); cylinder( h = 26, r = 2.4, $fn=30);
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30); translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 11 , 21 ] ); translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 11 , 21 ] );
} }
translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.7, $fn=30); // M3 screw hole
translate( [ -2 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30); translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
translate( [ -1.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
// angle cut
translate([-2.9,-20,-1]) rotate([0,0,60]) cube([25,5,26]); translate([-2.9,-20,-1]) rotate([0,0,60]) cube([25,5,26]);
} }
} }
@ -25,17 +28,20 @@ module lower_hinge()
difference() difference()
{ {
union(){ union(){
// body
translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30); translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30);
translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30); translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30);
translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30); translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 11 , 10 ] ); translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 11 , 10 ] );
} }
translate( [ -1 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30); // M3 screw
translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.5, $fn=30); translate( [ -0.5 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
// angle cut
translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]); translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]);
} }
} }
upper_hinge(); upper_hinge();
lower_hinge(); lower_hinge();

View File

@ -1,81 +1,82 @@
// PRUSA iteration3 // PRUSA iteration3
// Bearing holders // Bearing holders
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
use <polyholes.scad> use <polyholes.scad>
bearing_diameter = 14.5; bearing_diameter = 14.95;
module horizontal_bearing_base(bearings=1){ module horizontal_bearing_base(bearings=1){
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true); translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
} }
module horizontal_bearing_holes(bearings=1){ module horizontal_bearing_holes(bearings=1){
cutter_lenght = 10+bearings*25; cutter_lenght = 10+bearings*25;
one_holder_lenght = 8+25; one_holder_lenght = 8+25;
holder_lenght = 8+bearings*25; holder_lenght = 8+bearings*25;
// Main bearing cut // Main bearing cut
difference(){ difference(){
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50); translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
// Bearing retainers // Bearing retainers
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true); translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true); translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
} }
// Ziptie cutouts // Ziptie cutouts
ziptie_cut_ofset = 0; ziptie_cut_ofset = 0;
for ( i = [0 : bearings-1] ){ for ( i = [0 : bearings-1] ){
// For easier positioning I move them by half of one // For easier positioning I move them by half of one
// bearing holder then add each bearign lenght and then center again // bearing holder then add each bearign lenght and then center again
translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){ translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){
union(){ union(){
translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
} }
translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50); translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
} }
} }
} }
module horizontal_bearing_test(){ module horizontal_bearing_test(){
difference(){ difference(){
horizontal_bearing_base(1); horizontal_bearing_base(1);
horizontal_bearing_holes(1); horizontal_bearing_holes(1);
} }
translate(v=[30,0,0]) difference(){ translate(v=[30,0,0]) difference(){
horizontal_bearing_base(2); horizontal_bearing_base(2);
#horizontal_bearing_holes(2); #horizontal_bearing_holes(2);
} }
translate(v=[60,0,0]) difference(){ translate(v=[60,0,0]) difference(){
horizontal_bearing_base(3); horizontal_bearing_base(3);
horizontal_bearing_holes(3); horizontal_bearing_holes(3);
} }
} }
thinwall = 3; thinwall = 3;
bearing_size = bearing_diameter + 2 * thinwall; bearing_size = bearing_diameter + 2 * thinwall;
module vertical_bearing_base(){ module vertical_bearing_base(){
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true); translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true);
cylinder(h = 58, r=bearing_size/2, $fn = 90); cylinder(h = 58, r=bearing_size/2, $fn = 90);
} }
module vertical_bearing_holes(){ module vertical_bearing_holes(){
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2)+0.1); translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2));
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]); translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5);
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
}
}
//difference(){
vertical_bearing_base(); //difference(){
vertical_bearing_holes(); //vertical_bearing_base();
//} vertical_bearing_holes();
//horizontal_bearing_test(); //}
//horizontal_bearing_base(1); //horizontal_bearing_test();
//horizontal_bearing_base(1);
//horizontal_bearing_holes(1); //horizontal_bearing_holes(1);

View File

@ -0,0 +1,76 @@
// PRUSA iteration3
// Cable holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module cable_holder()
{
difference()
{
union()
{
// body
translate([-21.1,3,35]) cube([2.5,13,13]);
difference()
{
translate([-21.1,3,35]) rotate([-15,0,0]) cube([2.5,7,35]);
rotate([-15,0,0]) translate([-21,0,38]) rotate([0,0,45]) cube([2.5,2.5,35]);
}
//round reinforcement
difference()
{
translate([-21.1,16,50]) rotate([0,90,0])cylinder(r=4, h=2.5, $fn=50);
translate([-22,16,50]) rotate([0,90,0])cylinder(r=1.7, h=4, $fn=50);
translate([-21.6,16,45]) cube([4,10,10]);
translate([-21.6,12,50]) cube([4,10,10]);
}
}
// side angle cut
translate([-22,-1.5,38]) rotate([-11,0,0]) cube([5,7,45]);
// side cut
translate([-22,-2,33]) cube([8,8,12]);
// angled side cut
rotate([-15,0,0]) translate([-18,-8,39]) rotate([0,0,45]) cube([3.5,2.5,35]);
//zipties
translate([-25,15,42]) rotate([0,0,-45]) cube([3,10,3]);
translate([-20,2,42]) rotate([0,0,45]) cube([3,10,3]);
translate([-25,15,36]) rotate([0,0,-45]) cube([3,10,3]);
translate([-20,2,36]) rotate([0,0,45]) cube([3,10,3]);
// M3 screw
translate([-18.5,11,19]) rotate([0,0,0])cylinder(r=1.52, h=23, $fn=50);
translate([-18.5,11,42]) rotate([0,0,0])cylinder(r=3, h=3, $fn=50);
// bottom cut
translate([-21.6,-9,25]) cube([4,26,10]);
//selective infill
translate([-20.8,11.5,46]) rotate([-15,0,0]) cube([2,0.4,10]);
translate([-20.8,10,46]) rotate([-15,0,0]) cube([2,0.4,18]);
translate([-20.8,8.5,46]) rotate([-15,0,0]) cube([2,0.4,10]);
}
}
cable_holder();
translate([0,40,0]) rotate([0,180,180]) mirror([0,0,1]) cable_holder();

View File

@ -1,14 +1,129 @@
use <extruder-main.scad> // PRUSA iteration3
// Extruder-body
// GNU GPL v3
module ext_body(){ // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
difference(){ // http://prusamendel.org
extruder_body();
extruder_mount_holes();
} use <extruder-main.scad>
}
module m3nut()
ext_body(); {
difference()
{
cube([2,6,8]);
translate([-0.5,3,3]) rotate([0,90,0]) cylinder(r=1.25, h=3, $fn=20);
}
}
module ext_body(){
difference(){
extruder_body();
extruder_mount_holes();
// PINDA entry hole
translate([-5.5,37,6])rotate([90,0,0])cylinder(r=4.4, h=4, $fn=20);
}
}
difference()
{
ext_body();
// remove old pinda
translate([-20,26,-2]) cube([20,30,30]);
// screw end larger hole
translate([-20,40,12])rotate([0,90,0])cylinder(r=1.5, h=24, $fn=20);
translate([2,40,11.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
translate([2,40,12])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
translate([2,40,12.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
// M3 nuts
translate([0,46,9]) m3nut();
translate([0,37,9]) m3nut();
}
module ex_body()
{
difference()
{
union()
{
// body
// round body
translate([-5.5,36.5,6])rotate([-90,0,0])cylinder(r=8.5, h=19, $fn=20);
// body block
translate([-13,36.5,5]) cube([17,19,10]);
translate([-13,36.5,15]) cube([5,19,1]);
// extruder body joint
translate([-0,33.5,0]) cube([3,2,15]);
translate([0,34,0]) cube([4,3,15]);
translate([0,35.5,0]) rotate([0,0,45]) cube([2,2,15]);
}
// PINDA lower hole
translate([-5.5,50,6])rotate([-90,0,0])cylinder(r=4.1, h=40, $fn=20);
// M3 screws
translate([-20,49,12])rotate([0,90,0])cylinder(r=1.5, h=24, $fn=20);
translate([-20,40,12])rotate([0,90,0])cylinder(r=1.5, h=24, $fn=20);
translate([-14,49,12])rotate([0,90,0])cylinder(r=3, h=5, $fn=20);
translate([-14,40,12])rotate([0,90,0])cylinder(r=3, h=5, $fn=20);
// lower M3 screw end opening
translate([2,49,11.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
translate([2,49,12])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
translate([2,49,12.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
// upper M3 screw end opening
translate([2,40,11.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
translate([2,40,12])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
translate([2,40,12.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
// M3 nuts opening
translate([0,46,9]) m3nut();
translate([0,37,9]) m3nut();
// flat bottom side
translate([-20,33,-10]) cube([30,35,10]);
// slot
translate([-6,33,8]) cube([1,25,10]);
// 45 / 30 deg edges
translate([-15,32,12]) rotate([45,0,0]) cube([15,10,10]);
translate([-20,55,13]) rotate([45,0,0]) cube([25,3,5]);
translate([-2,45,-1]) rotate([0,30,0]) cube([15,15,15]);
translate([7,46,-1]) rotate([0,0,30]) cube([15,11,25]);
//PINDA mounting hole
translate([-5.5,60,6])rotate([90,0,0])cylinder(r=4.2, h=30, $fn=20);
translate([-5.5,41,6])rotate([90,0,0])cylinder(r=4.4, h=5, $fn=20);
// bottom cut
translate([-15,54.5,-1]) cube([20 , 8,20]);
for ( i = [0 : 14] )
{
translate([-5.5,39+i,6])rotate([90,0,0])cylinder(r1=4.5, r2=3, h=1, $fn=20);
translate([-5.5,40+i,6])rotate([90,0,0])cylinder(r1=3, r2=4.5, h=1, $fn=20);
}
}
}
ex_body();

View File

@ -1,16 +1,23 @@
use <extruder-main.scad> // PRUSA iteration3
// Extruder cover
module ext_cover(){ // GNU GPL v3
difference(){ // Josef Průša <iam@josefprusa.cz> and contributors
extruder_cover(); // http://www.reprap.org/wiki/Prusa_Mendel
extruder_mount_holes(); // http://prusamendel.org
// Easy assembly trim use <extruder-main.scad>
cube([50,50,15.2]);
translate([-1,-10+0.2,0])cube([50,10,40]); module ext_cover(){
difference(){
} extruder_cover();
extruder_mount_holes();
}
// Easy assembly trim
translate([5,56,29.3])rotate([0,0,0])cylinder(r1=1.5, r2=1.9, h=1, $fn=20);
cube([50,50,15.2]);
translate([-1,-10+0.2,0])cube([50,10,40]);
}
}
ext_cover(); ext_cover();

View File

@ -1,78 +1,81 @@
// PRUSA iteration3
// Extruder idler
module part_body(){ // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
//bottom round edge // http://www.reprap.org/wiki/Prusa_Mendel
translate([ -7, 4, 6 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 ); // http://prusamendel.org
translate([ -7, 4, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
module part_body(){
translate([ 11, 8, 4 ]) cube([3.5,4,6]);
//bottom round edge
difference() translate([ -7, 4, 6 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
{ translate([ -7, 4, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
translate([ -7, 0, 4 ]) cube([21.5,5,6]); translate([ 11, 8, 4 ]) cube([3.5,4,6]);
translate([ -8, -1, 8 ]) rotate([45,0,0]) cube([25,5,6]);
}
difference()
translate([ -7, 8, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 ); {
translate([ -7, 0, 4 ]) cube([21.5,5,6]);
translate([ 11, 0, 4]) cube([3.5,12,2]); translate([ -8, -1, 8 ]) rotate([45,0,0]) cube([25,5,6]);
}
translate([ 11, 4, 8]) cube([3.5,4,2]);
translate([ 11, 4, 0]) cube([3.5,4,2]); translate([ -7, 8, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
translate([ 11, 0, 4]) cube([3.5,12,2]);
translate([ 11, 4, 8]) cube([3.5,4,2]);
// body translate([ 11, 4, 0]) cube([3.5,4,2]);
translate([ -7, 4, 0 ]) cube([18,10,10]);
translate([ -7, 0, 4 ]) cube([18,32,2]);
translate([ -5, 4, 3 ]) cube([10,48,7]); // body
translate([ -11, 11, 0 ]) cube([22,28,10]); translate([ -7, 4, 0 ]) cube([18,10,10]);
translate([ -9, 11, 0 ]) cube([18,30,10]); translate([ -7, 0, 4 ]) cube([18,32,2]);
translate([ -5, 4, 3 ]) cube([10,48,7]);
// upper round edges translate([ -11, 11, 0 ]) cube([22,28,10]);
translate([ 9, 39, 0 ]) cylinder(r=2, h=10, $fn=25); translate([ -9, 11, 0 ]) cube([18,30,10]);
translate([ -9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
// upper round edges
// upper round piece translate([ 9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
translate([ 0, 52, 6.5 ]) rotate([0,0,0]) cylinder(r=5, h=7, $fn=200, center=true); translate([ -9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
}
// upper round piece
module cut_away(){ translate([ 0, 52, 6.5 ]) rotate([0,0,0]) cylinder(r=5, h=7, $fn=200, center=true);
}
// axis
translate([ 0, 4, 6 ]) rotate([0,90,0]) cylinder(r=1.7, h=30, $fn=200, center=true); module cut_away(){
// bolt holes // axis
translate([ 7.5, 35.8, -1 ]) cylinder(r=1.75, h=12, $fn=20); translate([ 0, 4, 6 ]) rotate([0,90,0]) cylinder(r=1.7, h=30, $fn=200, center=true);
translate([ 7.5, 36.5, -1 ]) cylinder(r=1.75, h=12, $fn=20);
translate([ 7.5, 37.2, -1 ]) cylinder(r=1.75, h=12, $fn=20); // bolt holes
translate([ 7.5, 35.8, -1 ]) cylinder(r=1.75, h=12, $fn=20);
translate([ -7.5, 35.8, -1 ])cylinder(r=1.75, h=12, $fn=20); translate([ 7.5, 36.5, -1 ]) cylinder(r=1.75, h=12, $fn=20);
translate([ -7.5, 36.5, -1 ])cylinder(r=1.75, h=12, $fn=20); translate([ 7.5, 37.2, -1 ]) cylinder(r=1.75, h=12, $fn=20);
translate([ -7.5, 37.2, -1 ])cylinder(r=1.75, h=12, $fn=20);
translate([ -7.5, 35.8, -1 ])cylinder(r=1.75, h=12, $fn=20);
translate([0,52,0]) sphere(r=5, $fn=20); translate([ -7.5, 36.5, -1 ])cylinder(r=1.75, h=12, $fn=20);
translate([ -7.5, 37.2, -1 ])cylinder(r=1.75, h=12, $fn=20);
//bearing hole
translate([ 0, 20, 3 ]){ translate([0,52,0]) sphere(r=5, $fn=20);
rotate([0,90,0]){
cylinder(r=8.5, h=7.5, $fn=200, center=true); //bearing hole
%cylinder(r=8, h=7.5, $fn=200, center=true); translate([ 0, 20, 3 ]){
cylinder(r=2.5, h=17, $fn=200, center=true); rotate([0,90,0]){
} cylinder(r=8.5, h=7.5, $fn=200, center=true);
translate([0,0,-5]) cube([17,5,10], center=true); %cylinder(r=8, h=7.5, $fn=200, center=true);
translate([0,0,-5]) cube([7.5,17,10], center=true); cylinder(r=2.5, h=17, $fn=200, center=true);
} }
} translate([0,0,-5]) cube([17,5,10], center=true);
translate([0,0,-5]) cube([7.5,17,10], center=true);
module idler(){ }
}
// final part
translate([0,0,10]) mirror([0,0,1]) module idler(){
difference(){
part_body(); // final part
cut_away(); translate([0,0,10]) mirror([0,0,1])
} difference(){
} part_body();
cut_away();
}
}
idler(); idler();

View File

@ -1,335 +1,404 @@
module extruder_body(){ // PRUSA iteration3
union(){ // Extruder main
difference(){ // GNU GPL v3
// Main // Josef Průša <iam@josefprusa.cz> and contributors
union(){ // http://www.reprap.org/wiki/Prusa_Mendel
cube([35,44,15]); // http://prusamendel.org
// P.I.N.D.A. Probe mount
difference(){
translate([-15.5,40,0])cube([21.5,5,14]); module extruder_body(){
translate([9,41,-1]) rotate([0,0,45]) translate([0,-5,-0.1]) cube([10,12,20]); union(){
} difference(){
translate([-7.5,17,0])cube([8,8.5,2]); // P.I.N.D.A. and Fan cable tray guide // Main
//fan nice look union(){
translate([35,0,0]) cube([10,12,15]); cube([35,44,15]);
} // P.I.N.D.A. Probe mount
// Fan nice look edge cut difference(){
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,20]); translate([-15.5,40,0])cube([21.5,5,14]);
translate([9,41,-1]) rotate([0,0,45]) translate([0,-5,-0.1]) cube([10,12,20]);
// P.I.N.D.A. Probe mount edge cut }
translate([-28.5,40,5]) rotate([0,30,0]) translate([0,-5,-0.1]) cube([10,12,20]); // Top translate([-7.5,15,0])cube([8,10.5,3]); // P.I.N.D.A. and Fan cable tray guide ;
translate([-33,40,-5]) rotate([0,60,0]) translate([0,-5,-0.1]) cube([12,12,20]); // Bottom
//fan nice look
translate([35,0,0]) cube([10,12,15]);
// P.I.N.D.A. probe mount hole }
translate([35/2,0,6]){ // Fan nice look edge cut
translate([-23,35,0])rotate([-90,0,0])cylinder(r=14/2, h=8, $fn=6); translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,20]);
translate([-23,32.99,0])rotate([-90,0,0])cylinder(r=14/2, h=7, $fn=20);
translate([-23,0,0])rotate([-90,0,0])cylinder(r=8.5/2, h=50, $fn=20); // P.I.N.D.A. Probe mount edge cut
} translate([-28.5,40,5]) rotate([0,30,0]) translate([0,-5,-0.1]) cube([10,12,20]); // Top
translate([-33,40,-5]) rotate([0,60,0]) translate([0,-5,-0.1]) cube([12,12,20]); // Bottom
// P.I.N.D.A. and Fan cable tray cut
translate([-4.5,20,-1]) cube([4.499,3.5+5,5]);
// P.I.N.D.A. and Fan cable tray edge cut // P.I.N.D.A. probe mount hole
translate([-10,22,-1])rotate([0,0,45]) cube([10,5,10]); translate([35/2,0,6]){
translate([-13,16.5,-1])rotate([0,0,-45]) cube([10,5,10]); translate([-23,35,0])rotate([-90,0,0])cylinder(r=14/2, h=8, $fn=6);
translate([-23,32.99,0])rotate([-90,0,0])cylinder(r=14/2, h=7, $fn=20);
extruder_nozzle_cut(); translate([-23,26,0])rotate([-90,0,0])cylinder(r=8.5/2, h=40, $fn=20);
// larger groove for easy entry }
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=7.13, h=20, $fn=120);
// P.I.N.D.A. and Fan cable tray cut
// Extruder cables path translate([-4.5,20,-1]) cube([4.499,3.5+5,5]);
translate([33+4,10,-1]) cylinder(r=2, h=17,$fn=30); // P.I.N.D.A. and Fan cable tray edge cut
translate([33+4,12,9]) cube([4,4,20], center=true); translate([-10,22,-1])rotate([0,0,45]) cube([10,5,10]);
translate([-13,16.5,-1])rotate([0,0,-45]) cube([10,5,10]);
extruder_nozzle_cooling();
extruder_nozzle_cut();
} // larger groove for easy entry
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=7.13, h=20, $fn=120);
// Cooling grill
difference(){ // Extruder cables path
union(){ translate([33+4,10,-1]) cylinder(r=2, h=17,$fn=30);
// Fins up translate([33+4,12,9]) cube([4,4,20], center=true);
//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]); extruder_nozzle_cooling();
//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]);
// Cooling grill
// Structural support difference(){
translate([0,13,11]) rotate([0,0,0]) cube([4,30,1]); union(){
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]); // Fins up
} //translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
// Trim translate([0,32,0]) rotate([0,0,25]) cube([6,1.4,15]);
translate([-35,0,0])cube([35,43,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
mirror([1,0,0]){ translate([0,13,11]) rotate([0,0,0]) cube([4,30,1]);
// Filament visualisation //translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
%translate([-35/2,-50,15])rotate([-90,0,0])cylinder(r=1.75/2, h=100, $fn=20); }
// Trim
// Motor visualisation translate([-35,0,0])cube([35,43,15]);
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 mirror([1,0,0]){
difference(){ // Filament visualisation
union(){ %translate([-35/2,-50,15])rotate([-90,0,0])cylinder(r=1.75/2, h=100, $fn=20);
// base
difference(){ // Motor visualisation
translate([-42,-42,0]) cube([42,42,30]); translate([-42,-42,-1]) %cube([42,42,1]);
//main cut translate([-21,-21,0])%cylinder(r=2.5, h=20, $fn=30);
translate([-21,-19.5-10-3,-1]) cube([42,23,32]); translate([-21,-21,8])%cylinder(r=4, h=13, $fn=30);
translate([-15,-49.5,-1]) cube([42,23,32]);
translate([-51,-33,-1]) rotate([0,65,0]) cube([10,25,10]); // MOTOR
translate([-35/2+3+1.8+0.5,-41,2+3+2.5])cube([42,42,32]); difference(){
//base round cutout union(){
translate([-21,-21,-2]) cylinder(r=11.5, h=33, $fn=200); // base
difference(){
//filament hole translate([-42,-42,0]) cube([42,42,30]);
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r=2.5/2, h=20, $fn=20); //main cut
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r2=2.2/2,r1=3.6/2, h=1.5, $fn=20); translate([-21,-19.5-10-3,-1]) cube([42,23,32]);
} translate([-15,-49.5,-1]) cube([42,23,32]);
translate([-51,-33,-1]) rotate([0,65,0]) cube([10,25,10]);
//filament guide translate([-35/2+3+1.8+0.5,-41,2+3+2.5])cube([42,42,32]);
translate([-35/2-3,-19,15-4])cube([6,10,6.5]); //base round cutout
difference(){ translate([-21,-21,-2]) cylinder(r=11.5, h=33, $fn=200);
union(){
translate([-35/2-3,-8.4+2+1.2,0.4]) rotate([45,0,0]) cube([6,15,15]); //filament hole
translate([-35/2-3,-8.4+2+1.2,0.4+6.5]) rotate([45,0,0]) cube([6,15,15]); translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r=2.5/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);
translate([-35/2-4,-1,2]) cube([8,15,25]); }
} //filament guide
} translate([-35/2-3,-19,15-4])cube([6,10,6.5]);
// Filament ptfe guide cutout difference(){
union(){
// PTFE secure ring slot translate([-35/2-3,-8.4+2+1.2,0.4]) rotate([45,0,0]) cube([6,15,15]);
translate([-35/2,-3.99,15])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Bottom hole translate([-35/2-3,-8.4+2+1.2,0.4+6.5]) rotate([45,0,0]) cube([6,15,15]);
translate([-35/2,-3.99,21])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Top hole }
translate([-35/2 - 7.5/2,-3.99,21])rotate([-90,0,0])cube([7.5,6,8]); // Slot cut translate([-35/2-4,-1,2]) cube([8,15,25]);
// PTFE tube slot }
translate([-35/2,-23,15])rotate([-90,0,0]) cylinder(r=4.3/2, h=25, $fn=50); // Main hole }
translate([-35/2,-9,15])rotate([-60,0,0]) rotate([0,0,10])cylinder(r=4.3/2, h=25, $fn=50); // Top hole // Filament ptfe guide cutout
// Slot cut
difference(){ // PTFE secure ring slot
translate([-35/2,-8,14])rotate([-60,0,0]) rotate([0,0,30])cylinder(r=4.85/2, h=25, $fn=6); translate([-35/2,-3.99,15])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Bottom hole
translate([-22,-20,5])cube([10,50,10]); translate([-35/2,-3.99,21])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Top hole
} translate([-35/2 - 7.5/2,-3.99,21])rotate([-90,0,0])cube([7.5,6,8]); // Slot cut
// drive pulley cutout // PTFE tube slot
translate([-21,-21,8])cylinder(r=4, h=13, $fn=80); translate([-35/2,-23,15])rotate([-90,0,0]) cylinder(r=4.3/2, h=25, $fn=50); // Main hole
// idler bearing cutout translate([-35/2,-9,15])rotate([-60,0,0]) rotate([0,0,10])cylinder(r=4.3/2, h=25, $fn=50); // Top hole
translate([-21+13,-21,8])cylinder(r=8.5, h=13, $fn=80); // Slot cut
difference(){
translate([-21,-27,8])cube([10,10,13]); // Trim translate([-35/2,-8,14])rotate([-60,0,0]) rotate([0,0,30])cylinder(r=4.85/2, h=25, $fn=6);
translate([-22,-20,5])cube([10,50,10]);
}
// filament clean hole
translate([-43,-21,15])rotate([90,0,90])cylinder(r=20/2, h=20, $fn=6); // drive pulley cutout
translate([-43,-21,15])rotate([90,0,90])cylinder(r1=27/2,r2=20/2, h=5, $fn=6); translate([-21,-21,8])cylinder(r=4, h=13, $fn=80);
// idler bearing cutout
// round corners translate([-21+13,-21,8])cylinder(r=8.5, h=13, $fn=80);
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,33]); translate([-21,-27,8])cube([10,10,13]); // Trim
// filament clean hole
// idler nut traps Bottom translate([-43,-21,15])rotate([90,0,90])cylinder(r=20/2, h=20, $fn=6);
translate([-23,-53.5,7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap translate([-43,-21,15])rotate([90,0,90])cylinder(r1=27/2,r2=20/2, h=5, $fn=6);
translate([-32,-36.5-2.2,7.5-1.5])cube([40,4,3]); // Screw hole
// round corners
// idler nut traps Top translate([-2.5,-42+2.5,0]) rotate([0,0,-45]) translate([0,-5,-0.1]) cube([10,10,10]);
translate([-23,-53.5,30-7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap translate([-42+2.5,-42+2.5,0]) rotate([0,0,-45-90]) translate([0,-5,-0.1]) cube([10,10,33]);
translate([-32,-36.5-2.2,30-7.5-1.5])cube([40,4,3]); // Screw hole
}
}
} // idler nut traps Bottom
translate([-23,-53.5,7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
module extruder_cover(){ translate([-32,-36.5-2.2,7.5-1.5])cube([40,4,3]); // Screw hole
union(){
difference(){ // idler nut traps Top
// Main translate([-23,-53.5,30-7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
union(){ translate([-32,-36.5-2.2,30-7.5-1.5])cube([40,4,3]); // Screw hole
translate([0,0,15]) cube([35,44,15]); }
}
translate([34,42,23]) cube([1,18,7]); }
translate([34,56,23]) cube([4,5,7]);
//fan nice look module extruder_cover(){
translate([35,0,15]) cube([10,12,15]); union(){
} difference(){
// Fan nice look edge cut // Main
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,32]); union(){
translate([0,0,15]) cube([35,44,15]);
translate([38,58.3,20]) rotate([0,0,45]) cube([5,5,15]);
translate([34,42,23]) cube([1,18,7]);
extruder_nozzle_cut(); translate([34,56,23]) cube([4,5,7]);
//fan nice look
translate([35,0,15]) cube([10,12,15]);
// Extruder cables path }
translate([33+4,10,-1]) cylinder(r=2, h=32,$fn=30); // Fan nice look edge cut
translate([33+4,12,22]) cube([4,4,20], center=true); translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,32]);
extruder_nozzle_cooling(); translate([38,58.3,20]) rotate([0,0,45]) cube([5,5,15]);
} extruder_nozzle_cut();
// 5015 print fan mount pillar
translate([6,33,27])rotate([0,0,67]) cube([8,24,3]); // Connecting cube // Extruder cables path
translate([35/2+12-42.75,6.5+38.5,25])cylinder(r=5.8, h=5, $fn=6); // Hexagon at the end translate([33+4,10,-1]) cylinder(r=2, h=32,$fn=30);
translate([33+4,12,22]) cube([4,4,20], center=true);
// Print fan nozzle mount - right
translate([5,61-5,24])cylinder(r=7.5/2, h=6, $fn=6); extruder_nozzle_cooling();
}
// Print colling airway
translate([8,44,28])rotate([0,0,0]) cube([27,9,2]); // 5015 print fan mount pillar
difference(){ translate([6,33,27])rotate([0,0,67]) cube([8,24,3]); // Connecting cube
translate([8,51.6,28.5])rotate([-45,0,0]) cube([27,7,2]); translate([35/2+12-42.75,6.5+38.5,25])cylinder(r=5.8, h=5, $fn=6); // Hexagon at the end
translate([7,57,20])rotate([0,0,0]) cube([29,7,12]);
translate([7,53,22])rotate([0,0,0]) cube([29,7,2]); // Print fan nozzle mount - right
} translate([5,61-5,24])cylinder(r=7.5/2, h=6, $fn=6);
translate([34,44,24])rotate([0,0,0]) cube([1,13,6]);
translate([8-5,44,24])rotate([0,0,0]) cube([1+5,13,6]); // Print colling airway
translate([8,44,28])rotate([0,0,0]) cube([27,9,2]);
// Print fan nozzle mount - left difference(){
//#difference(){ translate([8,51.6,28.5])rotate([-45,0,0]) cube([27,7,2]);
//union(){ translate([7,57,20])rotate([0,0,0]) cube([29,7,12]);
// #translate([34,44,24])rotate([0,0,0]) cube([5,10,6]); translate([7,53,22])rotate([0,0,0]) cube([29,7,2]);
// #translate([37,61-5,24])cylinder(r=7.5/2, h=6, $fn=6); }
//}
//#translate([24,51.6,30.5])rotate([-45,0,0]) cube([10,7,8]); translate([34,44,24])rotate([0,0,0]) cube([1,13,6]);
//translate([37,61-5,23])cylinder(r=1.4, h=8, $fn=30); translate([8-5,44,24])rotate([0,0,0]) cube([1+5,13,6]);
//}
// Cooling grill // Cooling grill
difference(){ difference(){
union(){ union(){
// Fins up // Fins up
//translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]); //translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
translate([0,32,15]) rotate([0,0,25]) cube([6,1.4,15]); translate([0,32,15]) rotate([0,0,25]) cube([6,1.4,15]);
//translate([0,27,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,15]) rotate([0,0,25]) cube([6,1.4,15]); translate([0,22,15]) rotate([0,0,25]) cube([6,1.4,15]);
//translate([0,17,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 // Structural support
translate([0,13,19]) rotate([0,0,0]) cube([4,30,1]); translate([0,13,19]) rotate([0,0,0]) cube([4,30,1]);
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]); //translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
} }
// Trim // Trim
translate([-35,0,0])cube([35,43,35]); translate([-35,0,0])cube([35,43,35]);
} }
} }
} }
module extruder_mount_holes(){ module extruder_mount_holes(){
// Carriage mount right // Carriage mount right
translate([35/2-12,6.5,-0.01])cylinder(r=1.65, h=5, $fn=30); // Bottom hole translate([35/2-12,6.5,-0.01])cylinder(r=1.75, h=5, $fn=30); // Bottom hole
translate([35/2-12,6.5,6.5+0.2])cylinder(r=1.65, h=5, $fn=30); // Middle hole translate([35/2-12,6.5,-0.01])cylinder(r1=2.2, r2=1.75, h=0.5, $fn=30); // Bottom hole
translate([35/2-12,6.5,12.5+0.2])cylinder(r=1.65, h=14.3-0.2, $fn=30); // Top hole
translate([35/2-12,6.5,27])cylinder(r=3.1, h=5, $fn=30); // Head cut translate([35/2-12,6.5,6.5+0.2])cylinder(r=1.75, h=5, $fn=30); // Middle hole
translate([35/2-12-6.5,6.5-2.85,10])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut Trap top translate([35/2-12,6.5,12.5+0.2])cylinder(r=1.75, h=15, $fn=30); // Top hole
//translate([35/2-12,6.5,10])cylinder(r=3.3, h=2.5, $fn=6); translate([35/2-12,6.5,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
// bridged hole no clean
translate([35/2-12-6.5,6.5-2.85,4])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut trap bottom intersection(){
//translate([35/2-12,6.5,4])cylinder(r=3.3, h=2.5, $fn=6); translate([35/2-12,6.5,26]) cube([3.3, 6.2,4], center=true); // Screw hole
translate([35/2-12,6.5,26.5]) cylinder(r=3.1, h=8, $fn=30); // Head cut
translate([35/2-12-6.5+5,6.5-2.85-2.5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement }
translate([35/2-12,6.5,27]) cube([3.5, 3.5, 2], center=true); // Screw hole
translate([35/2-12-6.5+5,6.5-2.85+2.5+5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement // bridged hole no clean END
translate([35/2-12-6.5,6.25-2.85,10])rotate([0,0,0]) cube([9.5,6.2,2.5]); // Nut Trap top
// Carriage mount left //translate([35/2-12-6.5,6.5-2.85,10])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut Trap top old
translate([35/2+12+11,6.5-2,6.2])cylinder(r=1.7, h=20.8-0.2, $fn=30); // Screw hole translate([35/2-12-1.7,6.25-2.85,10.5])rotate([0,0,0]) cube([3.4,6.2,2.5]);
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r=3.2, h=6, $fn=6); // Nut trap translate([35/2-12-1.7,6.5-2.85+1.1,11])rotate([0,0,0]) cube([3.4,3.4,2.5]);
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r2=3.2, r1=4, h=3, $fn=6); // Nut trap //translate([35/2-12,6.5,10])cylinder(r=3.3, h=2.5, $fn=6);
translate([35/2+12+11,6.5-2,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
translate([35/2-12-6.5,6.25-2.85,4])rotate([0,0,0]) cube([9.5,6.2,2.5]); // Nut trap bottom
// Fan nozzle mount hole //translate([35/2-12-6.5,6.5-2.85,4])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut trap bottom old
translate([5,61-5,20])cylinder(r=3/2, h=12, $fn=30); translate([35/2-12-1.7,6.25-2.85,4.5])rotate([0,0,0]) cube([3.4,6.2,2.5]);
translate([35/2-12-1.7,6.5-2.85+1.1,5])rotate([0,0,0]) cube([3.4,3.4,2.5]);
// 5015 print fan top left mount hole //translate([35/2-12,6.5,4])cylinder(r=3.3, h=2.5, $fn=6);
translate([35/2+12,6.5,-0.01])cylinder(r=1.65, h=35, $fn=30); // Screw cut
translate([35/2+12,6.5,11]) rotate([0,0,30])cylinder(r=3.2, h=17.01, $fn=6); // Nut Trap translate([35/2-12-6.5+5,6.5-2.85-2.5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
translate([35/2+12,6.5,14]) rotate([0,0,30])cylinder(r=3.5, h=11.01, $fn=6); // Nut easy entry cut
translate([35/2-12-6.5+5,6.5-2.85+2.5+5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
// 5015 print fan bottom right mount hole
translate([35/2+12-42.75,6.5+38.5,15])cylinder(r=1.65, h=20, $fn=30); // Screw cut
translate([35/2+12-42.75,6.5+38.5,15]) cylinder(r=3.2, h=13.01, $fn=6); // Nut Trap // Carriage mount left
translate([35/2+12+11,6.5-2,6.2])cylinder(r=1.7, h=20.8-0.2, $fn=30); // Screw hole
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r=3.2, h=6, $fn=6); // Nut trap
// Motor mount holes
translate([21,-21,0]){ intersection(){
// Top right translate([35/2+12+11,6.5-2,5]) cube([3.4, 6.2,3], center=true); // Screw hole
translate([-15.5,-15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r=3.2, h=8, $fn=6); // Nut trap
translate([-15.5,-15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut }
translate([35/2+12+11,6.5-2,5.5]) cube([3.4, 3.4,3], center=true); // Screw hole
// Bottom right
translate([-15.5,15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r2=3.2, r1=4, h=3, $fn=6); // Nut trap
translate([-15.5,15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut translate([35/2+12+11,6.5-2,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
// bridged hole no clean
// Top left intersection(){
translate([15.5,-15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole translate([35/2+12+11,6.5-2,26]) cube([3.3, 6.2,4], center=true); // Screw hole
translate([15.5,-15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut translate([35/2+12+11,6.5-2,26.5]) cylinder(r=3.1, h=8, $fn=30); // Head cut
}
// Bottom left translate([35/2+12+11,6.5-2,27]) cube([3.5, 3.5,2], center=true); // Screw hole
translate([15.5,15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole // bridged hole no clean END
translate([15.5,15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
// Fan nozzle mount hole
} translate([5,61-5,20])cylinder(r=3/2, h=12, $fn=30);
// 5015 print fan top left mount hole
} translate([35/2+12,6.5,-0.01])cylinder(r=1.75, h=35, $fn=30); // Screw cut
translate([35/2+12,6.5,11]) rotate([0,0,30])cylinder(r=3.2, h=17.01, $fn=6); // Nut Trap
translate([35/2+12,6.5,14]) rotate([0,0,30])cylinder(r=3.5, h=11.01, $fn=6); // Nut easy entry cut
module extruder_nozzle_cut(){ // 5015 print fan bottom right mount hole
translate([35/2+12-42.75,6.5+38.5,15])cylinder(r=1.75, h=20, $fn=30); // Screw cut
//Nozzle cutout translate([35/2+12-42.75,6.5+38.5,15]) cylinder(r=3.4, h=13.01, $fn=6); // Nut Trap
// Top
translate([35/2,-0.001,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7+0.5, $fn=120);
// Groove // Motor mount holes
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=6.13, h=20, $fn=120); translate([21,-21,0]){
// Bottom
translate([35/2,9.8,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7, $fn=120); // Top right
// Main body translate([-15.5,-15.5,0]){
translate([35/2,13,15]) rotate([-90,0,0]) cylinder(r=11.53, h=33.001, $fn=80); translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
intersection(){
} translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
module extruder_nozzle_cooling(){ }
translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
// Nozzle cooling airway translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
difference(){ }
union(){
translate([31.001,43-15,15])rotate([0,90,0])cylinder(r2=14, r1=11.5, h=4, $fn=100); // Bottom right
translate([-1,43-15-2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80); translate([-15.5,15.5,0]){
translate([-1,43-15,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80); translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
translate([-1,43-15+2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80); intersection(){
} translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
translate([-10,40,0])cube([10,12,14]); translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
translate([-9,40,8])cube([10,10,4]); }
} translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
// Fan screws }
translate([35.001,40,3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20); // Top left
translate([35.001,40-24,3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20); translate([15.5,-15.5,0]){
translate([35.001,40,30-3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20); translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
translate([35.001,40-24,30-3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20); intersection(){
translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
} translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
}
//extruder_body(); translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
//extruder_mount_holes(); translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
//extruder_cover(); }
// Bottom left
translate([15.5,15.5,0]){
translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
intersection(){
translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
}
translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
}
}
//selective infill spikes EXT COVER
rotate([90,0,90]) translate ([40,23,33])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
rotate([90,0,90]) translate ([40,23,31])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
rotate([90,0,90]) translate ([40,23,4])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
rotate([90,0,90]) translate ([40,23,2])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
//selective infill spikes EXT BODY
mirror([0,0,1]) rotate([90,0,90]) translate ([40,-7,34])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
mirror([0,0,1]) rotate([90,0,90]) translate ([40,-7,32])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
mirror([0,0,1]) rotate([90,0,90]) translate ([40,-7,30])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
}
module extruder_nozzle_cut(){
//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);
}
module extruder_nozzle_cooling(){
// Nozzle cooling airway
difference(){
union(){
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);
}
translate([-10,40,0])cube([10,12,14]);
translate([-9,40,8])cube([10,10,4]);
}
// 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);
translate([35.001,40,30-3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20);
translate([35.001,40-24,30-3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20);
}
extruder_body();
extruder_mount_holes();
extruder_cover();

View File

@ -1,67 +1,76 @@
module fan_nozzle(){ // PRUSA iteration3
// Fan nozzle
difference(){ // GNU GPL v3
union(){ // Josef Průša <iam@josefprusa.cz> and contributors
cube([32,10,17]); // Main cube // http://www.reprap.org/wiki/Prusa_Mendel
translate([30,5,0])cylinder(r=5.8,h = 17, $fn=6); // http://prusamendel.org
translate([-3,0,-6]) cube([3,10,23]);
//#translate([-2,5,0])cylinder(r=5.8,h = 17, $fn=6); module fan_nozzle(){
}
// Mounting screw difference(){
translate([30,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut union(){
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut cube([32,10,17]); // Main cube
translate([30,5,0])cylinder(r=5.8,h = 17, $fn=6);
//#translate([-2,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut translate([-3,0,-6]) cube([3,10,23]);
//#translate([-2,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut }
// Fan entry hole // Mounting screw
translate([1,10-1.5,-1])cube([20,3,16.5]); translate([30,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut
translate([1,10-1.5,-1-5])cube([18,3,16.5]); intersection(){
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=15); // head cut
// Airway cutout translate([30,5,17-3.5]) cube([6.2,3.2,1], center=true);
difference(){ }
translate([1,1,-1])cube([25,8,16.5]); translate([30,5,17-4]) cube([3.2,3.2,1], center=true);
translate([0,0,10])rotate([45,0,0])cube([30,8,16.5]); translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut
translate([-1,-10,-1])rotate([0,0,45])cube([10,8,30]);
translate([20,0,16])rotate([0,20,0])cube([10,20,10]); // Fan entry hole
} translate([1,10-1.5,-1])cube([20,3,16.5]);
translate([2,-1,-4.5])cube([24,3,5]); translate([1,10-1.5,-1-5])cube([18,3,16.5]);
//#translate([-2,-1,-2])rotate([0,45,0])cube([5,10,5]);
translate([22,-1,-2])rotate([0,45,0])cube([5,10,5]); // Airway cutout
difference(){
} translate([1,1,-1])cube([25,8,16.5]);
translate([0,0,10])rotate([45,0,0])cube([30,8,16.5]);
// Air director translate([-1,-10,-1])rotate([0,0,45])cube([10,8,30]);
translate([18,0,7])rotate([0,0,30])cube([1,9,10]); translate([20,0,16])rotate([0,20,0])cube([10,20,10]);
}
} translate([2,-1,-4.5])cube([24,3,5]);
translate([22,-1,-2])rotate([0,45,0])cube([5,10,5]);
module fancy_corners(){
}
translate([-10,-10.5,13])rotate([-20,0,0])cube([50,10,15]);
translate([-16,-10.5,17.5])rotate([0,45,0])cube([10,30,15]); // Air director
translate([18,0,7])rotate([0,0,30])cube([1,9,10]);
translate([46.5,-10.5,15])rotate([0,-45,30])cube([10,30,15]);
translate([28.62,-10.5,15])rotate([0,-45,-30])cube([10,30,15]);
}
translate([-5,-1,-7])rotate([0,0,0]) cube([10,6,7]);
translate([-0.5,-1,-7])rotate([0,0,0]) cube([1,15,7]); module fancy_corners(){
translate([-5,4,-11])rotate([45,0,0]) cube([10,5,5]);
translate([-10,-10.5,13])rotate([-20,0,0])cube([50,10,15]);
//left cut translate([-16,-10.5,17.5])rotate([0,45,0])cube([10,30,15]);
translate([-6.5,-8,-5])rotate([0,0,45])cube([10,10,45]);
translate([-7,-5,12])rotate([0,-45,0])cube([10,30,15]); translate([46.5,-10.5,15])rotate([0,-45,30])cube([10,30,15]);
translate([28.62,-10.5,15])rotate([0,-45,-30])cube([10,30,15]);
translate([-7,5,-10])rotate([0,0,45])cube([10,10,35]);
translate([-5,-1,-7])rotate([0,0,0]) cube([10,6,7]);
} translate([-0.5,-1,-7])rotate([0,0,0]) cube([1,15,7]);
translate([-5,4,-11])rotate([45,0,0]) cube([10,5,5]);
module fan_n(){
difference(){ //left cut
fan_nozzle(); translate([-6.5,-8,-5])rotate([0,0,45])cube([10,10,45]);
fancy_corners(); translate([-7,-5,12])rotate([0,-45,0])cube([10,30,15]);
translate([2,3.5,16.5])linear_extrude(height = 0.6) {text("! HOT !", size = 5, font = "Helvetica Neue:style=Bold");}
} translate([-7,5,-10])rotate([0,0,45])cube([10,10,35]);
}
fan_n(); }
module fan_n(){
difference(){
fan_nozzle();
fancy_corners();
translate([2,3.5,16.5])linear_extrude(height = 0.6) {text("! HOT !", size = 5, font = "Helvetica Neue:style=Bold");}
}
}
fan_n();

View File

@ -1,3 +1,11 @@
// PRUSA iteration3
// Heatbed cable cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module cover() module cover()
{ {
translate([ -17.5, 0, 0 ]) cube([ 35, 21, 8 ]); // cover translate([ -17.5, 0, 0 ]) cube([ 35, 21, 8 ]); // cover
@ -39,12 +47,12 @@ module inside_cut(){
module filament_holder(){ module filament_holder(){
difference(){ difference(){
translate([ -2.5,15, 2 ]) rotate([0,0,0]) cube( [5,7,6 ] ); // body #translate([ -3.5,15, 2 ]) rotate([0,0,0]) cube( [7,7,6 ] ); // body ; previous translate([ -2.5,15, 2 ]) cube( [5,7,6 ] );
translate( [ 0 , 24 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 10, r = 1.4, $fn=12); // filament translate( [ 0 , 24 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 10, r = 1.4, $fn=12); // filament
translate( [ 0 , 22.1 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 1.5, r1 = 1.8, r2=1.4, $fn=12); // filament translate( [ 0 , 22.1 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 1.5, r1 = 1.8, r2=1.4, $fn=12); // filament
translate([ -5,15, 1 ]) rotate([0,45,0]) cube( [3,15,3 ] ); // corners #translate([ -6,15, 2 ]) rotate([0,45,0]) cube( [4,15,3 ] ); // corners ; previous ([ -5,15, 1 ]) cube( [3,15,3 ] )
translate([ 1,15, 1 ]) rotate([0,45,0]) cube( [3,15,3 ] ); // corners #translate([ 1,15, 1 ]) rotate([0,45,0]) cube( [3,15,4 ] ); // corners ; previous cube( [3,15,3 ] )
} }
} }
module m3_screw(){ module m3_screw(){
@ -56,7 +64,8 @@ module inside_cut(){
module nut_trap(){ module nut_trap(){
translate( [ 0 , 7.5 , 4.5 ] ) rotate( [0,0,90] ) cylinder( h = 2.5, r = 4.6, $fn=6); // M3 HEAD translate( [ 0 , 7.5 , 4.5 ] ) rotate( [0,0,90] ) cylinder( h = 2.5, r = 4.6, $fn=6); // M3 HEAD
translate( [ 0 , 7.5 , 4 ] ) rotate( [0,0,0] ) cylinder( h = 1, r = 3, $fn=30); translate( [ 0 , 7.5 , 4 ] ) rotate( [0,0,0] ) cylinder( h = 1, r = 3, $fn=30);
} }
difference(){ difference(){
@ -69,6 +78,8 @@ module inside_cut(){
nut_trap(); nut_trap();
} }
m3_screw(); m3_screw();
translate( [ 0 , 7.5 , 6.2 ] ) rotate( [0,0,0] ) cube( [5.7,3,1], center=true);
translate( [ 0 , 7.5 , 5.7 ] ) rotate( [0,0,0] ) cube( [3,3,1], center=true);
} }
filament_holder(); filament_holder();

View File

@ -1,13 +1,20 @@
module dxf_holder(){ // PRUSA iteration3
linear_extrude(height = 8, center = true, convexity = 5) // Spool holder
import (file = "spool holdahMK3.dxf", layer = "0"); // GNU GPL v3
} // Josef Průša <iam@josefprusa.cz> and contributors
module spool_holder_left(){ // http://www.reprap.org/wiki/Prusa_Mendel
dxf_holder(); // http://prusamendel.org
translate([51.53-3.5,123-5-3.5,3.9])cylinder(h = 10, r=8);
} module dxf_holder(){
module spool_holder_right(){ linear_extrude(height = 8, center = true, convexity = 5)
mirror([1,0,0])spool_holder_left(); import (file = "spool holdahMK3.dxf", layer = "0");
} }
translate([8,100,0])rotate([0,0,139])spool_holder_right(); module spool_holder_left(){
spool_holder_left(); dxf_holder();
translate([51.53-3.5,123-5-3.5,3.9])cylinder(h = 10, r=8);
}
module spool_holder_right(){
mirror([1,0,0])spool_holder_left();
}
translate([8,100,0])rotate([0,0,139])spool_holder_right();
spool_holder_left();

View File

@ -9,66 +9,61 @@ use <bearing.scad>
use <extruder-body.scad> use <extruder-body.scad>
//translate([-34,31,0]) rotate([0,180,180]) ext_body();
module x_carriage_base(){ module x_carriage_base(){
// Small bearing holder // Small bearing holder
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1); translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1);
// Long bearing holder // Long bearing holder
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2); translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2);
// Base plate // Base plate
translate([-33,-12,0]) cube([33,68.5,7]); translate([-33,-12,0]) cube([33,68.5,7]);
// upper motor srew block // upper motor screw block
translate([-19,56.8,0]) rotate([0,0,0]) cube([28.5,16.2,12]); translate([-19,56.8,0]) rotate([0,0,0]) cube([28.5,16.2,12]);
// Extruder cable tray // hotend cables guide
difference(){ difference(){
union(){ union(){
translate([-33/2 - 2.5-11.5,-17-3,3])cube([11.5,14,22]); //body
translate([-33/2 + 2.5,-17-3,3])cube([11.5,14,22]); translate([-33/2 - 2.5-11.5,-17-3,3])cube([11.5,14,22]);
translate([-33/2 + 2.5,-17,3])cube([3.5,9.75,22]); translate([-33/2 + 2.5,-17-3,3])cube([11.5,14,22]);
translate([-33/2 -2.5,-9,3])cube([5,2,22]); translate([-33/2 + 2.5,-17,3])cube([3.5,9.75,22]);
} translate([-33/2 -2.5,-13,3])cube([5,7,22]);
}
// cable entry opening sides
translate([-33/2 +7,-23,-8]) rotate([0,-25,0]) cube([5,10,22]);
translate([-33/2 +7,-22,-8]) rotate([0,-25,0]) cube([5,10,22]); translate([-33/2 -11.5,-23,-6.5]) rotate([0,25,0]) cube([5,10,22]);
translate([-33/2 -11.5,-22,-6.5]) rotate([0,25,0]) cube([5,10,22]);
// corner cuts
translate([-33/2 -21,-22,25]) rotate([0,45,0]) cube([8,20,8]);
translate([-33/2 +10,-22,25]) rotate([0,45,0]) cube([8,20,8]);
translate([-33/2 -15,-16.5,-8])rotate([30,0,0])cube([35,9.75,25]);
translate([-33/2 -15,-8.2,10])rotate([-9,0,0])cube([35,9.75,25]);
translate([-33/2 -21,-22,25]) rotate([0,45,0]) cube([8,20,8]); //zip tie holes
translate([-33/2 +10,-22,25]) rotate([0,45,0]) cube([8,20,8]); translate([-33/2 -4.5-1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
translate([-33/2 +2.5+1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
translate([-33/2 + 6.5-0.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
translate([-33/2 -6.5 - 4.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
translate([-33/2 -15,-16.5,-8])rotate([30,0,0])cube([35,9.75,25]); //right cutout
translate([-10,-30,0]) translate([0,-11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,34]);
translate([-33/2 -15,-9,10])rotate([-20,0,0])cube([35,9.75,25]);
//zip tie holes
translate([-33/2 -4.5-1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
translate([-33/2 +2.5+1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
translate([-33/2 + 6.5-0.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
translate([-33/2 -6.5 - 4.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
//right cutout
translate([-10,-30,0]) translate([0,-11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,34]);
} }
// Belt holder base
translate([-42.5,20,0]) cube([52,16,7]);
translate([-16.5-12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
translate([-16.5+12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
translate([-16.5-12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25); // Belt holder base
translate([-16.5+12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25); translate([-42.5,20,0]) cube([52,16,7]);
// Endstop trigger nipple // belt holders
difference(){ translate([-16.5-12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
union(){ translate([-16.5+12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
translate([-16.5-12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25);
translate([-16.5+12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25);
// Endstop trigger nipple
difference(){
union(){
translate([-2.5,-16,0]) cube([12,5.8,12]); translate([-2.5,-16,0]) cube([12,5.8,12]);
translate([-2.2,-12,0])cylinder(r=4.6, h=12, $fn=6); translate([-2.2,-12,0])cylinder(r=4.6, h=12, $fn=6);
} }
@ -78,7 +73,7 @@ module x_carriage_base(){
} }
// Belt Insert R // Belt Insert R
difference(){ difference(){
union(){ union(){
translate([2,27,0]) cube([10,6,15]); translate([2,27,0]) cube([10,6,15]);
@ -91,77 +86,68 @@ module x_carriage_base(){
// Belt Insert L // Belt Insert L
difference(){ difference(){
union(){ union(){
translate([-33,3,00]){scale([-1,1,1]){ translate([-33,3,00]){
translate([0,27,0]) cube([12.5,3,15]); scale([-1,1,1])
translate([2,27-7.5-2.3,0]) cube([12.5,7.5,15]); {
translate([-0.5,27,0]) cube([8,7,2]); translate([0,27,0]) cube([12.5,3,15]);
}} translate([2,27-7.5-2.3,0]) cube([12.5,7.5,15]);
translate([-0.5,27,0]) cube([8,7,2]);
}
}
}
translate([-36.5,27.7,5.5]) rotate([0,0,-55]) cube([5,5.5,10]);
} }
translate([-36.5,27.7,5.5]) rotate([0,0,-55]) cube([5,5.5,10]);
}
} }
module x_carriage_holes(){ module x_carriage_holes(){
// Small bearing holder holes cutter // Small bearing holder holes cutter
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes(1); translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes(1);
// Long bearing holder holes cutter // Long bearing holder holes cutter
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes(2); translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes(2);
// Extruder mounting holes // Extruder mounting holes
translate([-16.5+12,24.5,-1])cylinder(r=1.8, h=20, $fn=25); translate([-16.5+12,24.5,-1])cylinder(r=1.8, h=20, $fn=25);
translate([-16.5+12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25); translate([-16.5+12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
translate([-16.5+12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25); translate([-16.5+12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
translate([-16.5-12,24.5,-1])cylinder(r=1.8, h=20, $fn=25); translate([-16.5-12,24.5,-1])cylinder(r=1.8, h=20, $fn=25);
translate([-16.5-12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25); translate([-16.5-12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25); translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
// Carriage alignment // Cables keepout
// translate([-33,24.5-6-0.25,-0.01])cube([33,3.5,1.25]); translate([0,10+3,-2])cube([5,10,5]);
// Cables keepout
translate([0,10+3,-2])cube([5,10,5]);
// Carriage slimer // Carriage slimer
translate([-55.5+3,19,-1])cube([10,40,30]); translate([-55.5+3,19,-1])cube([10,40,30]);
translate([+12.5-3,19,-1])cube([10,40,30]); translate([+12.5-3,19,-1])cube([10,40,30]);
translate([+12.5-3.5-2,19,-1])rotate([0,90-65,0])cube([10,55,30]); translate([+12.5-3.5-2,19,-1])rotate([0,90-65,0])cube([10,55,30]);
translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]); translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]);
// Filament hole
translate([-33/2,7,1]) rotate([-15,0,0])cylinder(r=1.52, h=40, $fn=10);
} }
module x_carriage_fancy(){ module x_carriage_fancy(){
// Top right corner // Top right corner
translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]); translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]);
// Belt Smooth insert // Belt Smooth insert
translate([0,36.5,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]); translate([0,36.5,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
translate([-52.9,36.5+3,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]); translate([-52.9,36.5+3,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
// Bottom ĺeft corner // Bottom ĺeft corner
translate([-34,2,0]) translate([2,-11.5,-1]) rotate([0,0,-145]) translate([0,-15,0]) cube([30,30,34]); translate([-34,2,0]) translate([2,-11.5,-1]) rotate([0,0,-145]) translate([0,-15,0]) cube([30,30,34]);
// Top left corner // Top left corner
translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]); translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]);
translate([-23,72,14]) rotate([0,45,0]) translate([0,-15,0]) cube([5,25,5]); translate([-23,72,14]) rotate([0,45,0]) translate([0,-15,0]) cube([5,25,5]);
translate([-23,84,21]) rotate([45,0,0]) translate([0,-15,0]) cube([45,5,5]); translate([-23,84,21]) rotate([45,0,0]) translate([0,-15,0]) cube([45,5,5]);
translate([-8,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6); translate([-8,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6);
translate([-10,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6); translate([-10,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6);
} }
module cable_tray(){ module cable_tray(){
//Left cable tray //Left cable tray
translate([-38.9,11,0]) cube([8,2,15]); translate([-38.9,11,0]) cube([8,2,15]);
translate([-38.9,5.5,0]) cube([8,2,15]); translate([-38.9,5.5,0]) cube([8,2,15]);
//Right cable tray //Right cable tray
@ -176,128 +162,118 @@ module cable_tray(){
translate([0,3.5,6])rotate([-60,0,0]) cube([5.5,12,7]); translate([0,3.5,6])rotate([-60,0,0]) cube([5.5,12,7]);
translate([0,10+3,-1])cube([5.5,11,6]); translate([0,10+3,-1])cube([5.5,11,6]);
} }
}
}
module final_cutout()
module upper_ziptie_holder()
{ {
// body
difference(){
translate([-19,18,7]) cube([5,15,9]);
translate([-20,29,10]) rotate([45,0,0])cube([10,10,10]);
translate([-20,29,10]) cube([7,5,20]);
}
difference(){
union(){
difference(){
translate([-23,17.5,7]) cube([13,5,17]);
translate([-23,19,6]) rotate([0,0,45]) cube([5,5,19]);
translate([-10,19,6]) rotate([0,0,45]) cube([5,5,19]);
translate([-15,21,17])rotate([0,0,0])cube([5,2,5]);
translate([-23,21,17])rotate([0,0,0])cube([5,2,5]);
}
difference(){
translate([-23,11.5,15]) cube([13,7,9]);
#translate([-30,15.5,14.8]) rotate([0,90,0]) cylinder(r=2, h=22, $fn=30);
translate([-24,11,18]) rotate([45,0,0]) cube([20,10,10]);
}
}
//zip ties
translate([-20,5,17])rotate([0,0,0])cube([2,20,5]);
translate([-15,5,17])rotate([0,0,0])cube([2,20,5]);
// corners
translate([-28,12,25]) rotate([0,45,0]) cube([5,15,5]);
translate([-12,12,25]) rotate([0,45,0]) cube([5,15,5]);
}
}
module final_cutout(){
translate([-19,-16.4,13]) rotate([-45,0,0]) cube([5,5,5]);
translate([-43,0,16]) rotate([0,45,0]) cube([5,15,5]); translate([-43,0,16]) rotate([0,45,0]) cube([5,15,5]);
translate([5,0,16]) rotate([0,45,0]) cube([5,15,5]); translate([5,0,16]) rotate([0,45,0]) cube([5,15,5]);
translate([-4.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]); translate([-4.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]);
translate([-34.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]); translate([-34.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]);
translate([-19,7,13.5]) rotate([-15,0,0]) cube([5,5,50]);
} }
// Final part
module x_carriage(){ module x_carriage(){
difference(){ difference(){
union(){ union(){
difference() difference()
{ {
x_carriage_base(); x_carriage_base();
x_carriage_holes(); x_carriage_holes();
x_carriage_fancy(); x_carriage_fancy();
} }
cable_tray(); cable_tray();
upper_ziptie_holder();
} }
final_cutout(); final_cutout();
} }
} }
// belt keepout
//%translate([-42-9,30-16,7])cube([70,16,10]); module final_part()
{
difference(){ difference(){
union(){ union(){
x_carriage(); x_carriage();
//translate([7.3,-16,0])
//translate([2,-19,0]) cube([7.5,12,0.5]);
//translate([5,-16,0]) cube([4.5,1,5]);
//translate([5,-11.2,0]) cube([4.5,1,5]);
//translate([5.5,7.5,0]) cube([4,3.5,0.5]);
}
translate([2.5,67.5,-50]) rotate([0,0,0]) cylinder(r=1.8, h=100, $fn=30);
#translate([2.5,67.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
translate([2.5,67.5,5]) rotate([0,0,0]) cylinder(r=3.2, h=8, $fn=30);
translate([0,21,0]) rotate([0,90,0]) cylinder(r=5.2, h=5.5, $fn=25);
//translate([2 ,-5,-5])cube([20,50,30]);
translate([-36.5,21.25,1.5]) cube([0.1,4.5,13.3]);
translate([-38.6,21,1.5]) cube([0.1,6,13.3]);
translate([-41,21,1.5]) cube([0.1,6,13.3]);
translate([3.5,21,6]) cube([0.1,2,8.8]);
translate([5,21,6]) cube([0.1,3,8.8]);
translate([6.8,21,1.5]) cube([0.1,3,13.3]);
translate([8.5,21,5]) cube([0.1,3,9.8]);
translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]);
translate([7.45,6,-1]) cube([0.5,1,5]);
translate([7.45,11.5,-1]) cube([0.5,1.8,5]);
translate([5,-16.4,-1]) rotate([0,45,0]) cube([0.3,0.5,8]); // extruder cables holder
translate([5,-10.3,-1]) rotate([0,45,0]) cube([0.3,0.5,8]); difference()
translate([6,-16.5,-1]) cube([1,0.5,5]); {
translate([3,-16.5,-1]) cube([2,0.5,5]); union()
translate([6,-10.2,-1]) cube([1,0.5,5]); {
translate([3,-10.2,-1]) cube([2,0.5,5]); // body
translate([6,7.5,-1]) cube([1,0.5,5]); translate([-22,8.3,7]) cube([7,15,16]);
translate([6,10.5,-1]) cube([1,0.5,5]); translate([-22,18,7]) cube([11,15,19]);
}
// belt cutout
translate([-30,15.5,14.8]) rotate([0,90,0]) cylinder(r=2, h=22, $fn=30);
translate([-23,13.5,7]) cube([9,4,8]);
// angle cuts
translate([-10.0,13.0,7]) rotate([0,0,45]) cube([7,7,28]);
translate([-22.5,29.5,7]) rotate([0,0,45]) cube([5,5,28]);
translate([-10.5,29.5,7]) rotate([0,0,45]) cube([5,5,28]);
//upper ziptie slot
translate([-7,23,16])rotate([0,0,40])cube([2,10,4]);
translate([-13.5,19,13]) cube([3,15,11]);
translate([-23,21,19.5]) cube([10,5,11]);
translate([-27,20,16])rotate([0,0,-20])cube([2,30,4]);
translate([0,29.5,16])rotate([0,0,90])cube([2,30,4]);
translate([-11,21,16])rotate([0,0,20])cube([2,10,4]);
//half cut translate([-19,22,5]) cube([0.5,5,14]);
//translate([-50 ,-50,8])cube([100,100,30]); translate([-15,22,5]) cube([0.5,5,14]);
}
}
// upper screw
translate([2.5,67.5,-50]) rotate([0,0,0]) cylinder(r=1.8, h=100, $fn=30);
translate([2.5,67.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
translate([2.5,67.5,5]) rotate([0,0,0]) cylinder(r=3.2, h=8, $fn=30);
// cable guide round corner
translate([0,21,0]) rotate([0,90,0]) cylinder(r=5.2, h=5.5, $fn=25);
//selective infill
translate([-36.5,21.25,1.5]) cube([0.1,4.5,13.3]);
translate([-38.6,21,1.5]) cube([0.1,6,13.3]);
translate([-41,21,1.5]) cube([0.1,6,13.3]);
translate([3.5,21,6]) cube([0.1,2,8.8]);
translate([5,21,6]) cube([0.1,3,8.8]);
translate([6.8,21,1.5]) cube([0.1,3,13.3]);
translate([8.5,21,5]) cube([0.1,3,9.8]);
translate([3.5,21,5.5]) cube([0.5,2,9]);
translate([5,21,5.5]) cube([0.5,2,9]);
translate([6.5,21,5.5]) cube([0.5,2,9]);
translate([8,21,5]) cube([0.5,2,9]);
// filament holder
translate([-18.5,-10.5,12]) rotate([-8,0,0])cylinder(r=1.52, h=40, $fn=10);
// cable screw hole
translate([-18.5,11,-1]) rotate([0,0,0])cylinder(r=1.52, h=40, $fn=50);
translate([-18.5,11,-1]) rotate([0,0,0])cylinder(r1=4,r2=3.2, h=7, $fn=6);
translate([-18.5,11,-1]) rotate([0,0,0])cylinder(r1=5,r2=4, h=4, $fn=6);
// extruder cables front face cut
translate([-18.5,16,19.5]) rotate([0,0,0])cylinder(r=10, h=40, $fn=60);
translate([-18.5,19.5,23]) rotate([0,0,0])cylinder(r=15, h=40, $fn=60);
} }
// Cable hole vis }
//%translate([-33/2 - 2.5,-17,1])cube([5,25,30]);
final_part();

View File

@ -1,72 +1,111 @@
// PRUSA iteration3 // PRUSA iteration3
// X end idler // X end idler
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
use <x-end.scad> use <x-end.scad>
module x_end_idler_holes(){ module x_end_idler_holes(){
x_end_holes(); x_end_holes();
translate([0,3.5,0]){ translate([0,3.5,0]){
translate(v=[0,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.8, $fn=30); translate(v=[0,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.8, $fn=30);
translate(v=[1.5,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 10, r=3.1, $fn=30); translate(v=[1.5,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 10, r=3.1, $fn=30);
translate(v=[-21.5,-22,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 80, r=3.2, $fn=6); translate(v=[-21.5,-22,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 80, r=3.2, $fn=6);
} }
} }
module waste_pocket(){ module waste_pocket(){
// waste pocket // waste pocket
translate([-15,-1,6]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30); translate([-15,-1,6]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30);
translate([-15,-1,51]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30); translate([-15,-1,51]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30);
translate([-15,-5.9,6]) rotate([90,0,0]) cylinder( h=3, r1=5.5, r2=4.3, $fn=30); translate([-15,-5.9,6]) rotate([90,0,0]) cylinder( h=3, r1=5.5, r2=4.3, $fn=30);
translate([-15,-5.9,51]) rotate([90,0,0]) cylinder( h=3, r=5.5, r2=4.3, $fn=30); translate([-15,-5.9,51]) rotate([90,0,0]) cylinder( h=3, r=5.5, r2=4.3, $fn=30);
//M3 thread //M3 thread
translate([-15,8.5,6]) rotate([90,0,0]) cylinder( h=12, r=1.4, $fn=30); translate([-15,8.5,6]) rotate([90,0,0]) cylinder( h=12, r=1.7, $fn=30);
translate([-15,8.5,51]) rotate([90,0,0]) cylinder( h=12, r=1.4, $fn=30); translate([-15,8.5,51]) rotate([90,0,0]) cylinder( h=12, r=1.7, $fn=30);
//M3 heads //M3 heads
translate([-15,11.5,6]) rotate([90,0,0]) cylinder( h=4, r=2.9, $fn=30); translate([-15,11.5,6]) rotate([90,0,0]) cylinder( h=4, r=3, $fn=30);
translate([-15,11.5,51]) rotate([90,0,0]) cylinder( h=4, r=2.9, $fn=30); translate([-15,11.5,51]) rotate([90,0,0]) cylinder( h=4, r=3, $fn=30);
//M3 nut traps //M3 nut traps
translate([-17.9,0.5,52-3-1.6]) cube([5.8,3.1,20]); translate([-17.9,0.5,52-3-1.6]) cube([6,3,20]);
translate([-17.9,0.5,-10+1.5+1.6]) cube([5.8,3.1,16]); translate([-17.9,0.5,-10+1.5+1.6]) cube([6,3,16]);
} }
module x_end_idler_base(){ module x_end_idler_base(){
union(){ union(){
difference(){ difference(){
x_end_base(); x_end_base();
x_end_idler_holes(); x_end_idler_holes();
} }
translate([-15,8.5,6]) rotate([90,0,0]) cylinder( h=11, r=6, $fn=30); translate([-15,10.5,6]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30);
translate([-15,8.5,51]) rotate([90,0,0]) cylinder( h=11, r=6, $fn=30); translate([-15,10.5,51]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30);
} }
} }
module selective_infill()mirror([0,1,0]) translate([-50, -33, 0.6])
module x_end_idler(){ {
mirror([0,1,0]) difference()
difference(){ {
x_end_idler_base(); union()
waste_pocket(); {
difference()
} {
#translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=11.7, $fn=30);//0, 17, 0.6
} #translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=11.5, $fn=30);
}
//difference(){ difference()
x_end_idler(); {
//translate([-15,-50,0]) cube([100,100,100]); translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=10.7, $fn=30); //0, 17, 0.6
//} translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=10.5, $fn=30);
}
difference()
{
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9.9, $fn=30); //0, 17, 0.6
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=9.7, $fn=30);
}
difference()
{
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9, $fn=30); //0, 17, 0.6
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=8.8, $fn=30);
}
}
translate([57.5,50.5,-1]) rotate([0,0,45]) cube([8,10,9]);
translate([52,30.5,-1]) rotate([0,0,45]) cube([10,20,20]);
translate([32,35.5,-1]) cube([8,30,9]);
}
}
module reinforcement_selective_infill(){
rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,12],[8,0]] ); // bearings
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,12],[8,0]] ); //body
}
module x_end_idler(){
mirror([0,1,0])
difference()
{
x_end_idler_base();
waste_pocket();
selective_infill();
reinforcement_selective_infill();
}
}
x_end_idler();

View File

@ -1,104 +1,159 @@
// PRUSA iteration3 // PRUSA iteration3
// X end motor // X end motor
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
use <x-end.scad> use <x-end.scad>
module x_end_motor_base(){ module x_end_motor_base(){
x_end_base(); x_end_base();
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true); translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
} }
module x_end_motor_endstop_base(){ module x_end_motor_endstop_base(){
translate([-23.5,-28.5,58]){ translate([-23.5,-28.5,58]){
difference(){ difference(){
// Base block // Base block
cube([17,18.2,4]); cube([17,18.2,4]);
// Nice edge // Nice edge
translate([-1,10,10])rotate([-45,0,0])cube(20,20,20); translate([-1,10,10])rotate([-45,0,0])cube(20,20,20);
} }
} }
} }
module x_end_motor_endstop_holes(){ module x_end_motor_endstop_holes(){
translate([-23.5,-28.5,58]){ translate([-23.5,-28.5,58]){
translate([17/2,7.5,-3]){ translate([17/2,7.5,-3]){
// Back screw hole for endstop // Back screw hole for endstop
translate([-4.75,0,0])cylinder(r=1,h=19,$fn=20); translate([-4.75,0,0])cylinder(r=1,h=19,$fn=20);
// Front screw hole for endstop translate([-4.75,0,6])cylinder(r1=1, r2=1.5, h=2,$fn=20);
translate([4.75,0,0])cylinder(r=1,h=19,$fn=20); // Front screw hole for endstop
} translate([4.75,0,0])cylinder(r=1,h=19,$fn=20);
} translate([4.75,0,6])cylinder(r1=1, r2=1.5, h=2,$fn=20);
} }
}
module x_end_motor_holes(){ }
x_end_holes();
// Position to place
translate(v=[-1,32,30.25]){
// Belt hole module x_end_motor_holes(){
translate(v=[-14,1,0]) cube(size = [10,46,22], center = true); x_end_holes();
// Motor mounting holes // Position to place
translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30); translate(v=[-1,32,30.25]){
translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30); // Belt hole
translate(v=[20,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30); translate(v=[-14,1,0]) cube(size = [10,46,22], center = true);
translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30); // Motor mounting holes
translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30); translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30); translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
translate(v=[20,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30); translate(v=[20,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30); translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
// Material saving cutout translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
translate(v=[-10,12,10]) cube(size = [60,42,42], center = true); translate(v=[20,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
// Material saving cutout
translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true); // Material saving cutout
// Motor shaft cutout translate(v=[-10,12,10]) cube(size = [60,42,42], center = true);
//#translate(v=[0,0,0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
} // Material saving cutout
} translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
// Motor shaft cutout }
module x_end_motor_shaft_cutout(){ }
union(){
difference(){ // Motor shaft cutout
translate(v=[0,32,30]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6); module x_end_motor_shaft_cutout(){
union(){
translate(v=[-10,-17+32,30]) cube(size = [60,2,10], center = true); difference(){
translate(v=[-10,-8+32,-15.5+30]) rotate(a=[60,0,0]) cube(size = [60,2,10], center = true); /// translate(v=[0,32,30]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
translate(v=[-10,8+32,-15.5+30]) rotate(a=[-60,0,0]) cube(size = [60,2,10], center = true);
translate(v=[-10,-17+32,30]) cube(size = [60,2,10], center = true);
translate(v=[-10,-8+32,-15.5+30]) rotate(a=[60,0,0]) cube(size = [60,2,10], center = true);
} translate(v=[-10,8+32,-15.5+30]) rotate(a=[-60,0,0]) cube(size = [60,2,10], center = true);
translate(v=[-30,25.2,-11.8 +30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3, $fn=30);
translate(v=[-30,19.05,30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3.5, $fn=100);
} }
} translate(v=[-30,25.2,-11.8 +30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3, $fn=30);
translate(v=[-30,19.05,30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3.5, $fn=100);
}
}
// Final part
module x_end_motor(){
difference(){ module selective_infill()mirror([0,1,0]) translate([-50, -33, 0.6])
union(){ {
x_end_motor_base(); difference()
x_end_motor_endstop_base(); {
} union()
x_end_motor_shaft_cutout(); {
x_end_motor_holes(); difference()
x_end_motor_endstop_holes(); {
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=11.7, $fn=30);//0, 17, 0.6
translate([-12,-42,65]) rotate([-35,0,0]) rotate([0,0,45]) cube(10,10,10); translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=11.5, $fn=30);
translate([-15,8.5,6]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30); }
translate([-15,8.5,51]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30); difference()
translate([-15,3.5,6]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30); {
translate([-15,3.5,51]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30); translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=10.7, $fn=30); //0, 17, 0.6
//#translate([-16,-40,0])cube([50,100,100]); translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=10.5, $fn=30);
} }
difference()
} {
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9.9, $fn=30); //0, 17, 0.6
x_end_motor(); translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=9.7, $fn=30);
}
difference()
{
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9, $fn=30); //0, 17, 0.6
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=8.8, $fn=30);
}
}
translate([57.5,50.5,-1]) rotate([0,0,45]) cube([8,10,9]); // front
translate([52,30.5,-1]) rotate([0,0,45]) cube([10,20,20]); // front angled
translate([32,35.5,-1]) cube([8,30,9]); // inner horizontal
}
}
module reinforcement_selective_infill()
{
rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,12],[8,0]] ); //bearings
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,12],[8,0]] ); //body
}
// Final part
module x_end_motor(){
difference(){
union(){
x_end_motor_base();
x_end_motor_endstop_base();
}
x_end_motor_shaft_cutout();
x_end_motor_holes();
x_end_motor_endstop_holes();
selective_infill();
reinforcement_selective_infill();
translate([-12,-42,65]) rotate([-35,0,0]) rotate([0,0,45]) cube(10,10,10);
translate([-15,8.5,6]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30);
translate([-15,8.5,51]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30);
translate([-15,3.5,6]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
translate([-15,3.5,51]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
}
}
x_end_motor();

View File

@ -1,87 +1,99 @@
// PRUSA iteration3 // PRUSA iteration3
// X end prototype // X end prototype
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
use <bearing.scad> use <bearing.scad>
use <polyholes.scad> use <polyholes.scad>
rod_distance = 45; rod_distance = 45;
module x_end_base(){ module x_end_base(){
// Main block // Main block
height = 58; height = 58;
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true); translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
// Bearing holder // Bearing holder
vertical_bearing_base(); vertical_bearing_base();
//Nut trap //Nut trap
// Cylinder // Cylinder
translate(v=[0,-17,0]) poly_cylinder(h = 8, r=12.5, $fn=25); translate(v=[0,-17,0]) poly_cylinder(h = 8, r=12.5, $fn=25);
// Hexagon // Hexagon
//translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6); //translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6);
translate(v=[-6,-10.6,10]) rotate([0,0,48.2]) cube(size = [10,5,1], center = true); translate(v=[-6,-10.6,10]) rotate([0,0,48.2]) cube(size = [10,5,1], center = true);
}
rotate([90,0,-15,]) translate ([-1, 8, 24])linear_extrude(height = 4) polygon( points=[[0,0],[0,12],[8,0]] ); //vzpera lozisek
module x_end_holes(){ rotate([90,0,-50,]) translate ([9, 8, -0.6])linear_extrude(height = 4) polygon( points=[[0,0],[0,12],[8,0]] );
vertical_bearing_holes();
// Belt hole }
translate(v=[-1,0,0]){ module reinforcement_selective_infill(){
// Stress relief rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,12],[8,0]] ); //vzpera lozisek
translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true);
difference(){ rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,12],[12,0]] ); //vzpera tela
translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true);
}
//reinforcement_selective_infill();
// Nice edges
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true); module x_end_holes(){
translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true); vertical_bearing_holes();
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); // Belt hole
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); translate(v=[-1,0,0]){
// Stress relief
} translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true);
} difference(){
translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true);
// Bottom pushfit rod
translate(v=[-15,-41.5,6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
// Top pushfit rod
translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50); // Nice edges
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true);
// TR Nut trap translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true);
// Hole for the nut translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true);
translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 6.6, $fn = 25); translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true);
// Screw holes for TR nut }
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -1]) cylinder(h = 10, r = 1.55, $fn=25); }
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -1]) cylinder(h = 10, r = 1.55, $fn=25);
// Bottom pushfit rod
// Nut traps for TR nut screws translate(v=[-15,-41,6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 6]) rotate([0, 0, 0])cylinder(h = 3, r = 3.3, $fn=6); // Top pushfit rod
translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, 6]) rotate([0, 0, 30])cylinder(h = 3, r = 3.2, $fn=6);
translate([-5.5,-17.2,6]) rotate([0,0,30]) cube([5,5,3]); // TR Nut trap
translate([-0,-17.2,6]) rotate([0,0,60]) cube([5,10,3]); // Hole for the nut
} translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 7, $fn = 25);
translate(v=[0,-17, -0.1]) cylinder(h = 0.5, r1 = 6.8+0.8,r2 = 7, $fn = 25);
// Final prototype // Screw holes for TR nut
module x_end_plain(){ translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -1]) cylinder(h = 10, r = 1.8, $fn=25);
difference(){ translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -1]) cylinder(h = 10, r = 1.8, $fn=25);
x_end_base();
x_end_holes(); // Nut traps for TR nut screws
} translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 6]) rotate([0, 0, 0])cylinder(h = 3, r = 3.45, $fn=6);
}
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, 6]) rotate([0, 0, 30])cylinder(h = 3, r = 3.2, $fn=6);
x_end_plain(); translate([-5.5,-17.2,6]) rotate([0,0,30]) cube([5,5,3]);
translate([-0,-17.2,6]) rotate([0,0,60]) cube([5,10,3]);
}
module pushfit_rod(diameter,length){
poly_cylinder(h = length, r=diameter/2);
difference(){ // Final prototype
translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true); module x_end_plain(){
translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true); difference(){
} x_end_base();
//translate(v=[0,-diameter/2-2,length/2]) cube(size = [diameter,1,length], center = true); x_end_holes();
} }
}
x_end_plain();
module pushfit_rod(diameter,length){
poly_cylinder(h = length, r=diameter/2);
difference(){
translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true);
translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true);
}
}

View File

@ -14,12 +14,11 @@ translate([-10, 23, -1 ]) cube([ 52, 3, 15 ]);
module belt_holders() module belt_holders()
{ {
translate([ 16, 18, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // upper belt holder translate([ 16, 18, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // upper belt holder
translate([ 16, 18, 11 ]) cylinder( h=3, r1=3.5, r2=2.5, $fn=30 ); // upper belt holder cone translate([ 16, 18, 11 ]) cylinder( h=3, r1=3.5, r2=2.5, $fn=30 ); // upper belt holder cone
translate([ 12, 5, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // lower belt holder translate([ 12, 5, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // lower belt holder
translate([ 12, 5, 11 ]) cylinder( h=3 , r1=3.5, r2=2.5, $fn=30 ); // lower belt holder cone translate([ 12, 5, 11 ]) cylinder( h=3 , r1=3.5, r2=2.5, $fn=30 ); // lower belt holder cone
} }
module screws() module screws()
@ -41,15 +40,16 @@ module screws()
translate([35.5, 15, 4.5 ]) cube([ 6, 7, 6 ]); translate([35.5, 15, 4.5 ]) cube([ 6, 7, 6 ]);
} }
belt_holders(); //belt_holders();
module main()
{
difference() difference()
{ {
main_body(); main_body();
translate([ 16, 18, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // upper belt space cutaway translate([ 16, 18, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // upper belt space cutaway
translate([ 12, 5, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // lower belt space cutaway translate([ 12, 5, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // lower belt space cutaway
translate([-20, 9, 2]) cube([ 28, 2.1, 16 ]); translate([-20, 9, 2]) cube([ 28, 2.1, 16 ]);
rotate([0,0,40]) translate([11, 1, 2 ]) cube([ 10, 4, 16 ]); rotate([0,0,40]) translate([11, 1, 2 ]) cube([ 10, 4, 16 ]);
@ -57,23 +57,9 @@ translate([10, 7, 2 ]) cube([ 32, 2.1, 16 ]);
translate([16, 8, 11 ]) rotate([45,0,0]) cube([ 15, 5, 5 ]); translate([16, 8, 11 ]) rotate([45,0,0]) cube([ 15, 5, 5 ]);
translate([-2, 10, 11 ]) rotate([45,0,0]) cube([ 10, 5, 5 ]); translate([-2, 10, 11 ]) rotate([45,0,0]) cube([ 10, 5, 5 ]);
screws(); screws();
// print part reinforcement
translate([1,0.5,-0.5]) cube([0.1,5,13]);
translate([3,0.5,-0.5]) cube([0.1,5,13]);
translate([21.2,0.5,-0.5]) cube([0.1,4,12]);
translate([23.5,0.5,-0.5]) cube([0.1,4,12]);
translate([25.5,0.5,-0.5]) cube([0.1,4,12]);
translate([11.5,3,-0.5]) cube([1,0.3,12]);
translate([10,5,-0.5]) cube([4,0.3,12]);
translate([11.5,6.5,-0.5]) cube([1,0.3,12]);
translate([15.5,16,-0.5]) cube([1,0.3,12]);
translate([14,18,-0.5]) cube([4,0.3,12]);
translate([15.5,20,-0.5]) cube([1,0.3,12]);
// corner cutoff // corner cutoff
@ -81,6 +67,49 @@ screws();
translate([-2,-13,-2]) rotate([0,0,45]) cube([10,10,20]); translate([-2,-13,-2]) rotate([0,0,45]) cube([10,10,20]);
}
} }
module selective_infill()
{
// print part reinforcement
translate([1, 0.5, -0.5]) cube([0.1,5,13]);
translate([3, 0.5, -0.5]) cube([0.1,5,13]);
translate([21.5, 0.5, -0.5]) cube([0.1,4,12]);
translate([23.5, 0.5, -0.5]) cube([0.1,4,12]);
translate([25.5, 0.5, -0.5]) cube([0.1,4,12]);
translate([11.5, 3, -0.5]) cube([1,0.2,12]);
translate([10, 5, -0.5]) cube([4,0.2,12]);
translate([11.5, 6.5, -0.5]) cube([1,0.2,12]);
translate([15.5, 16, -0.5]) cube([1,0.2,12]);
translate([14, 18, -0.5]) cube([4,0.2,12]);
translate([15.5, 20, -0.5]) cube([1,0.2,12]);
translate([1, 5.5, -0.5]) cube([0.1,14,2]);
translate([3, 5.5, -0.5]) cube([0.1,14,2]);
translate([5, 0.5, -0.5]) cube([0.1,19,2]);
translate([7, 0.5, -0.5]) cube([0.1,19,2]);
translate([19.5, 0.5, -0.5]) cube([0.1,18,2]);
translate([21.5, 4.5, -0.5]) cube([0.1,14,2]);
translate([23.5, 4.5, -0.5]) cube([0.1,14,2]);
translate([25.5, 4.5, -0.5]) cube([0.1,14,2]);
}
module final_part()
{
difference()
{
union()
{
main();
belt_holders();
}
selective_infill();
}
}
final_part();

View File

@ -1,65 +1,92 @@
// PRUSA iteration3 // PRUSA iteration3
// Y frame corners // Y frame corners
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module corner_base(){ module corner_base(){
translate([-9,-11,0])cube([18,22,49]); translate([-9,-11,0])cube([18,22,49]);
}
}
module corner_holes(){
translate([-11,-11,0]){ module corner_holes(){
// Bottom hole translate([-11,-11,0]){
translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30); // Bottom hole
// Top hole translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30); // Top hole
// Middle hole translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
translate([11,0,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=5.4, $fn=30); // Middle hole
translate([11,0,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=5.4, $fn=30);
// Washer hole // Bottom hole bridge
translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30); translate([0,8.8,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=2.6, $fn=6);
// Top hole bridge
// Top smooth rod insert translate([0,8.8,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=2.6, $fn=6);
// Smooth rod place
translate([11,2.75,47]) rotate([0,90,90]) cylinder(h = 9.75, r=4.2, $fn=30); // Washer hole
// Ziptie translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30);
translate([-5,6,41]) cube([30,3.5,2]);
// Top smooth rod insert
// LM8UU keepout // Smooth rod place
difference(){ translate([11,2.75,47]) rotate([0,90,90]) cylinder(h = 10, r=4.2, $fn=30);
translate([11,12.5,46]) rotate([0,90,90]) cylinder(h = 270, r=8, $fn=30); // Ziptie
translate([21,12.5,62]) rotate([0,90,90]) cube([20,20,30]); translate([-5,6,41]) cube([30,3.5,2]);
}
translate([21,12.5,62-0.2]) rotate([0,90,90]) cube([20,20,0.2]); // LM8UU keepout
translate([21,12.5,42]) rotate([0,90,90]) cube([0.2,20,20]); difference(){
translate([11,12.5,46]) rotate([0,90,90]) cylinder(h = 270, r=8, $fn=30);
} translate([21,12.5,62]) rotate([0,90,90]) cube([20,20,30]);
} }
module corner_fancy(){ translate([21,12.5,57]) rotate([0,90,90]) cube([15.2,20,20]);
// Side corner cutouts
translate([-8,-9,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); }
translate([8,-9,0]) rotate([0,0,45-180]) translate([-15,0,-1]) cube([30,30,51]);
// Top corner cutouts }
translate([7,0,49]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
translate([-7,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]); module corner_fancy(){
rotate([0,0,90]){ // Side corner cutouts
translate([-9.5,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]); translate([-8,-9,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
} translate([8,-9,0]) rotate([0,0,45-180]) translate([-15,0,-1]) cube([30,30,51]);
} // Top corner cutouts
translate([7,0,49]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
translate([-7,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
// Final part rotate([0,0,90]){
module corner(){ translate([-9.5,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
// Rotate the part for better printing }
translate([0,0,11]) rotate([-90,0,0]) difference(){ }
corner_base();
corner_holes(); module selective_infill(){
corner_fancy();
} translate([7,2,0.8])cube([0.2,33,5]);
} translate([-7,2,0.8])cube([0.2,33,5]);
rotate([90,0,0]) corner(); translate([ 7,16,5.8])cube([0.2,8,11]);
translate([-7,16,5.8])cube([0.2,8,11]);
translate([7,2,16.8])cube([0.2,33,2]);
translate([-7,2,16.8])cube([0.2,33,2]);
}
// Final part
module corner(){
// Rotate the part for better printing
translate([0,0,11]) rotate([-90,0,0])
{
difference(){
corner_base();
corner_holes();
corner_fancy();
translate([0,11,0]) rotate([90,0,0])selective_infill();
}
}
}
corner();

View File

@ -1,80 +1,100 @@
// PRUSA iteration3 // PRUSA iteration3
// Y motor mount // Y motor mount
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
//include <configuration.scad> //include <configuration.scad>
module y_motor_base(){ module y_motor_base(){
// Motor holding part
translate(v = [29,-21+50,0]){ union()
translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true); {
translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5, $fn=50); // Motor holding part
translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50); translate(v = [29,-21+50,0]){
translate([-21,7,0]) rotate([0,0,45]) cube([2, 2, 10]);
difference()
//end stop {
translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50); union()
translate([-12,0,0]) cube([7, 15, 10]); {
translate([-16,16,0]) cube([6, 5, 10]); translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true);
translate([-21+6,8,0]) cube([12-2, 5, 28]); translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
translate([-21+6-2,8-5,0]) cube([4, 10, 28]); translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
translate([-21+9.5-2,7,0]) rotate([0,0,45]) cube([2, 2, 28]); translate([-21,7,0]) rotate([0,0,45]) cube([2, 2, 10]);
// Joins motor holder and rod plate
translate(v = [-29,-21,0]) cube(size = [14,30,10]); //end stop
} translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
// Front holding part translate([-12,0,0]) cube([7, 15, 10]);
translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80); translate([-16,16,0]) cube([6, 5, 10]);
translate(v = [0,20,5])cube(size = [16,20,10], center=true); translate([-21+6,8,0]) cube([12-2, 5, 28]);
translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80); translate([-21,8-5,0]) cube([8, 10, 28]);
} translate([-21+9.5-2,7,0]) rotate([0,0,45]) cube([2, 2, 28]);
// Joins motor holder and rod plate
module y_motor_holes(){ translate(v = [-29,-21,0]) cube(size = [14,30,10]);
translate(v = [29,-21+50,0]){ }
// Screw head holes //selective infill
translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20); translate([-14.5,5,0.3]) cube([0.1,5.5,27]);
translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20); translate([-16.5,5,0.3]) cube([0.1,5.5,27]);
// Screw holes translate([-18.5,5,0.3]) cube([0.1,5.5,25]);
translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30); translate([-10,9,1]) cube([0.1,3,26.3]);
translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30); translate([-8,9,6]) cube([0.1,3,21.3]);
}
translate(v = [0,10,-1]) cylinder(h = 12, r=4.1, $fn=50); }
translate(v = [0,30,-1]) cylinder(h = 12, r=4.1, $fn=50); }
}
//endstop // Front holding part
translate([25,29,0]) cylinder(h = 29, r=8, $fn=20); translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80);
translate(v = [0,20,5])cube(size = [16,20,10], center=true);
#translate([18,45,15]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20); translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
translate([18,42.2,15]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20); }
#translate([18,45,24.5]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20); module y_motor_holes(){
translate([18,42.2,24.5]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20); translate(v = [29,-21+50,0]){
// Screw head holes
// endstop corner cutout translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
translate([-5-2,30,28]) rotate([0,45,0]) cube([15, 19, 15]); translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
translate([-1,41,10]) cube([15, 5, 19]); // Screw holes
translate([27,33,0]) rotate([0,0,45]) cube([5, 5, 28]); translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
translate([12-2,28,10.01]) rotate([0,0,45]) cube([5, 5, 28]); translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30);
}
translate([19,32,0]) rotate([0,30,0]) cube([8, 20, 18]); translate(v = [0,10,-1]) cylinder(h = 12, r=4.2, $fn=50);
translate([24.5-2,32,17]) rotate([0,45,0]) cube([2, 20, 2]); translate(v = [0,30,-1]) cylinder(h = 12, r=4.2, $fn=50);
translate([23-2,32,29]) rotate([0,45,0]) cube([5, 20, 5]); //endstop
} translate([25,29,0]) cylinder(h = 29, r=8, $fn=20);
translate([18,45,15]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
translate([18,42.2,15]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
//#translate([18,40,10]) cube([8, 5, 5]); translate([18,45,24.5]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
translate([18,42.2,24.5]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
// Final part
module y_motor(){ // endstop corner cutout
difference(){ translate([-10,30,28]) rotate([0,45,0]) cube([15, 19, 15]);
y_motor_base(); translate([-1,41,10]) cube([15, 5, 19]);
y_motor_holes(); translate([27,33,0]) rotate([0,0,45]) cube([5, 5, 28]);
} translate([7,28,10.01]) rotate([0,0,45]) cube([5, 5, 28]);
}
translate([19,32,0]) rotate([0,30,0]) cube([8, 20, 18]);
y_motor(); translate([24.5-2,32,17]) rotate([0,45,0]) cube([2, 20, 2]);
translate([23-2,32,29]) rotate([0,45,0]) cube([5, 20, 5]);
}
// Final part
module y_motor(){
difference()
{
y_motor_base();
y_motor_holes();
}
}
y_motor();

View File

@ -13,49 +13,46 @@ module z_bottom_base(){
} }
module z_bottom_fancy(){ module z_bottom_fancy(){
// corner cutouts // corner cutouts
translate([0.5,-2.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); translate([0.5,-2.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
translate([0.5,40-0.5+5,0]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]); translate([0.5,40-0.5+5,0]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]);
//translate([-4,40+5,5]) rotate([0,0,-35-0]) translate([0,0,0.1]) cube([30,30,51]);
//translate([-4+11,40+5+5,0]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]); translate([8,0,12+20+6]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
translate([8,0,12+20+6]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); translate([20,-2,12+8]) rotate([45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
translate([20,-2,12+8]) rotate([45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); translate([25,20,12+30]) rotate([-45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
translate([25,20,12+30]) rotate([-45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); translate([50-2.5,-5+2.5+67,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
translate([50-2.5,-5+2.5+67,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); translate([50-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
translate([50-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
//translate([50-1.5,10-1.5,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); // Stiffner cut out
//translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]); translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]);
// Stiffner cut out
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]);
} }
module z_bottom_holes(){ module z_bottom_holes(){
// Frame mounting screw holes // Frame mounting screw holes
translate([-1,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30); translate([-1,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
translate([-1,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30); translate([-1,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
translate([-1,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30); translate([-1,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
// Frame mounting screw head holes // Frame mounting screw head holes
translate([4,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
translate([4,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
translate([4,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
translate([4,10+10-3.1,10+20+5]) cube([10,6.2,10]); translate([4,10+10-3.1,10+20+5]) cube([10,6.2,10]);
// Z rod holder // Z rod holder
translate([25+4.3,3,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.125, $fn=15); translate([25+4.3,3,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.125, $fn=15);
translate([25+4.3-1,3,0.6]) cube([2,10,7]); // it's bit up because it helps with printing translate([25+4.3,3,-1]) rotate([0,0,0]) cylinder(h = 1.6, r1=5, r2=4.125, $fn=15);
translate([25+4.3-1,3,0.6]) cube([2,10,7]); // it's bit up because it helps with printing
// motor mounting // motor mounting
translate([25+4.3,20,-1]){ translate([25+4.3,20,-1]){
//translate([15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
translate([15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
translate([15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30); translate([15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
translate([15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30); translate([-15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
translate([-15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30); translate([-15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
translate([-15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
translate([0,0,-1]) cylinder(h = 20, r=12, $fn=30);
translate([0,0,-1]) cylinder(h = 20, r=12, $fn=30);
} }
} }
@ -77,6 +74,20 @@ module z_bottom_left(){
} }
} }
//z_bottom_holder();
#z_bottom_right(); z_bottom_right();
#z_bottom_left(); z_bottom_left();

View File

@ -7,39 +7,35 @@
module z_top_base(){ module z_top_base(){
translate([0,-5,0]) cube([8,45,16]); // plate touching the base translate([0,-5,0]) cube([8,45,16]); // plate touching the base
translate([0,-5,0]) cube([30,4.01,12]); // plate touching the base translate([0,-5,0]) cube([30,4.01,12]); // plate touching the base
translate([0,-5,0]) cube([38,45,5]); // plate touching the base translate([0,-5,0]) cube([38,45,5]); // plate touching the base
} }
module z_top_fancy(){ module z_top_fancy(){
// Corner cutouts // Corner cutouts
translate([0.5,0.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); translate([0.5,0.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
translate([0.5,40-0.5,0]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]);
translate([-13,40+5+10.2,0]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]); // frame side angle
translate([8,28,0]) translate([0,0,-1]) cube([50,50,51]);
translate([4,0,12]) rotate([0,0, 0]) translate([0,-5,0]) cube([30,50,30]); translate([-13,40+5+10.2,0]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]); // frame side angle
translate([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]); translate([8,28,0]) translate([0,0,-1]) cube([50,50,51]);
translate([8,4,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
translate([38-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); translate([4,0,12]) rotate([0,0, 0]) translate([0,-5,0]) cube([30,50,30]);
translate([35,26,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); // outer corner translate([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]); translate([8,4,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
// Stiffner cut out translate([38-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]); translate([35,26,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); // outer corner
//easy cleanup fix translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]);
translate([0.5,0,0.5]) rotate([0,45,0]) translate([-2.5,0,-5]) cube([5,40,5]);
// Stiffner cut out
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
} }
module z_top_holes(){ module z_top_holes(){
// Screw holes frame // Screw holes frame
translate([-1,10,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30); translate([-1,10,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
translate([-1,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30); translate([-1,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
// Screw heads // Screw heads
translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
@ -51,14 +47,19 @@ module z_top_holes(){
translate([25+4.3,3.2,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.1, $fn=15); translate([25+4.3,3.2,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.1, $fn=15);
// material saving cut
// odlehceni A translate([16,10,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6);
translate([16,10,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); // odlehceni translate([16,28,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6);
translate([16,28,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); // odlehceni translate([25+4.3,3.2+17,-1]) rotate([0,0,0]) cylinder(h = 50, r=5.8, $fn=15); // screw hole
translate([25+4.3,3.2+17,-1]) rotate([0,0,0]) cylinder(h = 50, r=5, $fn=15); // screw hole
translate([25+4.3-1,3,0.6]) cube([2,15,7]); // it's bit up because it helps with printing translate([25+4.3-1,3,-1]) cube([2,15,7]); // it's bit up because it helps with printing
//selective infill
translate([36.5,1.5,0.5]) cube([0.1,20,3.5]);
translate([10,-3,0.5]) cube([22,0.1,3.5]);
translate([3,1,0.5]) cube([18,0.1,3.5]);
translate([1.5,19,0.5]) cube([21,0.1,3.5]);
} }
@ -71,7 +72,7 @@ module z_top_right(){
} }
module z_top_left(){ module z_top_left(){
translate([0,-13,0]) mirror([0,1,0]) translate([0,-15,0]) mirror([0,1,0])
difference(){ difference(){
z_top_base(); z_top_base();
z_top_fancy(); z_top_fancy();
@ -79,6 +80,7 @@ module z_top_left(){
} }
} }
// Final part // Final parts
z_top_left(); z_top_left();
z_top_right(); z_top_right();

View File

@ -25,9 +25,9 @@ difference()
{ {
union() union()
{ {
translate(v=[0, 0, 1]) cylinder(r1=8, r2=4.5, h = 4); translate(v=[0, 0, 1]) cylinder(r1=8, r2=4.6, h = 4);
cylinder(r=8, h = 1, $fn=60); cylinder(r=8, h = 1, $fn=60);
} }
translate(v=[0, 0, -1]) cylinder(r=4.2, h = 7, $fn=60); translate(v=[0, 0, -1]) cylinder(r=4.2, h = 7, $fn=60);
cylinder(r1=4.3, r2=4.2, h = 1, $fn=60); cylinder(r1=4.5, r2=4.2, h = 1, $fn=60);
} }

View File

@ -1210,20 +1210,6 @@ solid OpenSCAD_Model
vertex -4.68391 -5.20201 7 vertex -4.68391 -5.20201 7
endloop endloop
endfacet endfacet
facet normal -0.994522 -0.104529 0
outer loop
vertex -6.84703 -1.45538 0
vertex -7 0 7
vertex -7 0 0
endloop
endfacet
facet normal -0.994522 -0.104529 0
outer loop
vertex -7 0 7
vertex -6.84703 -1.45538 0
vertex -6.84703 -1.45538 7
endloop
endfacet
facet normal 0.587786 -0.809017 0 facet normal 0.587786 -0.809017 0
outer loop outer loop
vertex 3.5 -6.06218 3 vertex 3.5 -6.06218 3
@ -1252,6 +1238,20 @@ solid OpenSCAD_Model
vertex 3.5 -6.06218 3 vertex 3.5 -6.06218 3
endloop endloop
endfacet endfacet
facet normal -0.207912 -0.978148 0
outer loop
vertex -2.16312 -6.6574 0
vertex -0.731699 -6.96165 7
vertex -2.16312 -6.6574 7
endloop
endfacet
facet normal -0.207912 -0.978148 -0
outer loop
vertex -0.731699 -6.96165 7
vertex -2.16312 -6.6574 0
vertex -0.731699 -6.96165 0
endloop
endfacet
facet normal -0.951056 -0.309017 0 facet normal -0.951056 -0.309017 0
outer loop outer loop
vertex -6.39482 -2.84716 0 vertex -6.39482 -2.84716 0
@ -1266,6 +1266,20 @@ solid OpenSCAD_Model
vertex -6.39482 -2.84716 7 vertex -6.39482 -2.84716 7
endloop endloop
endfacet endfacet
facet normal -0.994522 -0.104529 0
outer loop
vertex -6.84703 -1.45538 0
vertex -7 0 7
vertex -7 0 0
endloop
endfacet
facet normal -0.994522 -0.104529 0
outer loop
vertex -7 0 7
vertex -6.84703 -1.45538 0
vertex -6.84703 -1.45538 7
endloop
endfacet
facet normal 0.743145 -0.66913 0 facet normal 0.743145 -0.66913 0
outer loop outer loop
vertex 4.68391 -5.20201 7 vertex 4.68391 -5.20201 7
@ -1308,20 +1322,6 @@ solid OpenSCAD_Model
vertex -3.5 -6.06218 0 vertex -3.5 -6.06218 0
endloop endloop
endfacet endfacet
facet normal -0.207912 -0.978148 0
outer loop
vertex -2.16312 -6.6574 0
vertex -0.731699 -6.96165 7
vertex -2.16312 -6.6574 7
endloop
endfacet
facet normal -0.207912 -0.978148 -0
outer loop
vertex -0.731699 -6.96165 7
vertex -2.16312 -6.6574 0
vertex -0.731699 -6.96165 0
endloop
endfacet
facet normal -0 0 1 facet normal -0 0 1
outer loop outer loop
vertex 10 7 3 vertex 10 7 3
@ -2071,20 +2071,6 @@ solid OpenSCAD_Model
vertex -3.34565 -3.71572 0 vertex -3.34565 -3.71572 0
endloop endloop
endfacet endfacet
facet normal 0.994522 0.104529 0
outer loop
vertex -4.89074 -1.03956 7
vertex -5 0 0
vertex -5 0 7
endloop
endfacet
facet normal 0.994522 0.104529 0
outer loop
vertex -5 0 0
vertex -4.89074 -1.03956 7
vertex -4.89074 -1.03956 0
endloop
endfacet
facet normal -0.587785 0.809017 0 facet normal -0.587785 0.809017 0
outer loop outer loop
vertex 3.34565 -3.71572 0 vertex 3.34565 -3.71572 0
@ -2141,6 +2127,20 @@ solid OpenSCAD_Model
vertex -4.56773 -2.03368 0 vertex -4.56773 -2.03368 0
endloop endloop
endfacet endfacet
facet normal 0.994522 0.104529 0
outer loop
vertex -4.89074 -1.03956 7
vertex -5 0 0
vertex -5 0 7
endloop
endfacet
facet normal 0.994522 0.104529 0
outer loop
vertex -5 0 0
vertex -4.89074 -1.03956 7
vertex -4.89074 -1.03956 0
endloop
endfacet
facet normal -0.743145 0.669131 0 facet normal -0.743145 0.669131 0
outer loop outer loop
vertex 3.34565 -3.71572 0 vertex 3.34565 -3.71572 0
@ -2701,18 +2701,18 @@ solid OpenSCAD_Model
vertex 8.30902 -8.58778 0 vertex 8.30902 -8.58778 0
endloop endloop
endfacet endfacet
facet normal 0.406737 -0.913545 0 facet normal 0 -1 0
outer loop outer loop
vertex 7.80902 -8.95106 0 vertex 7.5 -8.99452 0
vertex 8 -8.86602 3 vertex 7.60453 -8.99452 3
vertex 7.80902 -8.95106 3 vertex 7.5 -8.99452 3
endloop endloop
endfacet endfacet
facet normal 0.406737 -0.913545 0 facet normal 0 -1 -0
outer loop outer loop
vertex 8 -8.86602 3 vertex 7.60453 -8.99452 3
vertex 7.80902 -8.95106 0 vertex 7.5 -8.99452 0
vertex 8 -8.86602 0 vertex 7.60453 -8.99452 0
endloop endloop
endfacet endfacet
facet normal 0.587787 -0.809016 0 facet normal 0.587787 -0.809016 0
@ -2729,18 +2729,18 @@ solid OpenSCAD_Model
vertex 8.16913 -8.74314 0 vertex 8.16913 -8.74314 0
endloop endloop
endfacet endfacet
facet normal 0 -1 0 facet normal 0.406737 -0.913545 0
outer loop outer loop
vertex 7.5 -8.99452 0 vertex 7.80902 -8.95106 0
vertex 7.60453 -8.99452 3 vertex 8 -8.86602 3
vertex 7.5 -8.99452 3 vertex 7.80902 -8.95106 3
endloop endloop
endfacet endfacet
facet normal 0 -1 -0 facet normal 0.406737 -0.913545 0
outer loop outer loop
vertex 7.60453 -8.99452 3 vertex 8 -8.86602 3
vertex 7.5 -8.99452 0 vertex 7.80902 -8.95106 0
vertex 7.60453 -8.99452 0 vertex 8 -8.86602 0
endloop endloop
endfacet endfacet
facet normal 0.207909 -0.978148 0 facet normal 0.207909 -0.978148 0
@ -2897,6 +2897,20 @@ solid OpenSCAD_Model
vertex 11.309 -8.58778 0 vertex 11.309 -8.58778 0
endloop endloop
endfacet endfacet
facet normal -0.406739 -0.913545 0
outer loop
vertex 10 -8.86602 0
vertex 10.191 -8.95106 3
vertex 10 -8.86602 3
endloop
endfacet
facet normal -0.406739 -0.913545 -0
outer loop
vertex 10.191 -8.95106 3
vertex 10 -8.86602 0
vertex 10.191 -8.95106 0
endloop
endfacet
facet normal -0.743145 -0.66913 0 facet normal -0.743145 -0.66913 0
outer loop outer loop
vertex 9.83087 -8.74314 0 vertex 9.83087 -8.74314 0
@ -2925,34 +2939,6 @@ solid OpenSCAD_Model
vertex 10 -8.86602 0 vertex 10 -8.86602 0
endloop endloop
endfacet endfacet
facet normal 0 -1 0
outer loop
vertex 10.3955 -8.99452 0
vertex 10.6045 -8.99452 3
vertex 10.3955 -8.99452 3
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 10.6045 -8.99452 3
vertex 10.3955 -8.99452 0
vertex 10.6045 -8.99452 0
endloop
endfacet
facet normal -0.866025 -0.5 0
outer loop
vertex 9.69098 -8.58778 0
vertex 9.58645 -8.40674 3
vertex 9.58645 -8.40674 0
endloop
endfacet
facet normal -0.866025 -0.5 0
outer loop
vertex 9.58645 -8.40674 3
vertex 9.69098 -8.58778 0
vertex 9.69098 -8.58778 3
endloop
endfacet
facet normal -0.951055 -0.30902 0 facet normal -0.951055 -0.30902 0
outer loop outer loop
vertex 9.58645 -8.40674 0 vertex 9.58645 -8.40674 0
@ -2967,20 +2953,6 @@ solid OpenSCAD_Model
vertex 9.58645 -8.40674 3 vertex 9.58645 -8.40674 3
endloop endloop
endfacet endfacet
facet normal 0.587787 -0.809016 0
outer loop
vertex 11 -8.86602 0
vertex 11.1691 -8.74314 3
vertex 11 -8.86602 3
endloop
endfacet
facet normal 0.587787 -0.809016 0
outer loop
vertex 11.1691 -8.74314 3
vertex 11 -8.86602 0
vertex 11.1691 -8.74314 0
endloop
endfacet
facet normal 0.406737 -0.913545 0 facet normal 0.406737 -0.913545 0
outer loop outer loop
vertex 10.809 -8.95106 0 vertex 10.809 -8.95106 0
@ -2995,6 +2967,34 @@ solid OpenSCAD_Model
vertex 11 -8.86602 0 vertex 11 -8.86602 0
endloop endloop
endfacet endfacet
facet normal -0.866025 -0.5 0
outer loop
vertex 9.69098 -8.58778 0
vertex 9.58645 -8.40674 3
vertex 9.58645 -8.40674 0
endloop
endfacet
facet normal -0.866025 -0.5 0
outer loop
vertex 9.58645 -8.40674 3
vertex 9.69098 -8.58778 0
vertex 9.69098 -8.58778 3
endloop
endfacet
facet normal 0.587787 -0.809016 0
outer loop
vertex 11 -8.86602 0
vertex 11.1691 -8.74314 3
vertex 11 -8.86602 3
endloop
endfacet
facet normal 0.587787 -0.809016 0
outer loop
vertex 11.1691 -8.74314 3
vertex 11 -8.86602 0
vertex 11.1691 -8.74314 0
endloop
endfacet
facet normal -0.207909 -0.978148 0 facet normal -0.207909 -0.978148 0
outer loop outer loop
vertex 10.191 -8.95106 0 vertex 10.191 -8.95106 0
@ -3009,18 +3009,18 @@ solid OpenSCAD_Model
vertex 10.3955 -8.99452 0 vertex 10.3955 -8.99452 0
endloop endloop
endfacet endfacet
facet normal -0.406739 -0.913545 0 facet normal 0 -1 0
outer loop outer loop
vertex 10 -8.86602 0 vertex 10.3955 -8.99452 0
vertex 10.191 -8.95106 3 vertex 10.6045 -8.99452 3
vertex 10 -8.86602 3 vertex 10.3955 -8.99452 3
endloop endloop
endfacet endfacet
facet normal -0.406739 -0.913545 -0 facet normal 0 -1 -0
outer loop outer loop
vertex 10.191 -8.95106 3 vertex 10.6045 -8.99452 3
vertex 10 -8.86602 0 vertex 10.3955 -8.99452 0
vertex 10.191 -8.95106 0 vertex 10.6045 -8.99452 0
endloop endloop
endfacet endfacet
endsolid OpenSCAD_Model endsolid OpenSCAD_Model

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1483,20 +1483,6 @@ solid OpenSCAD_Model
vertex 7.23607 -12.3511 10 vertex 7.23607 -12.3511 10
endloop endloop
endfacet endfacet
facet normal 0 1 -0
outer loop
vertex 4.25116 -13.9921 0
vertex 3.74884 -13.9921 10
vertex 4.25116 -13.9921 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 3.74884 -13.9921 10
vertex 4.25116 -13.9921 0
vertex 3.74884 -13.9921 0
endloop
endfacet
facet normal 0.248691 0.968583 -0 facet normal 0.248691 0.968583 -0
outer loop outer loop
vertex 3.25047 -13.9291 0 vertex 3.25047 -13.9291 0
@ -1539,6 +1525,20 @@ solid OpenSCAD_Model
vertex 6.5497 -13.0821 0 vertex 6.5497 -13.0821 0
endloop endloop
endfacet endfacet
facet normal 0 1 -0
outer loop
vertex 4.25116 -13.9921 0
vertex 3.74884 -13.9921 10
vertex 4.25116 -13.9921 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 3.74884 -13.9921 10
vertex 4.25116 -13.9921 0
vertex 3.74884 -13.9921 0
endloop
endfacet
facet normal -0.998027 -0.0627918 0 facet normal -0.998027 -0.0627918 0
outer loop outer loop
vertex 8 10 0 vertex 8 10 0
@ -1777,6 +1777,20 @@ solid OpenSCAD_Model
vertex 6.14331 13.3773 0 vertex 6.14331 13.3773 0
endloop endloop
endfacet endfacet
facet normal -0.998027 0.0627917 0
outer loop
vertex 7.96846 9.49867 0
vertex 8 10 10
vertex 8 10 0
endloop
endfacet
facet normal -0.998027 0.0627917 0
outer loop
vertex 8 10 10
vertex 7.96846 9.49867 0
vertex 7.96846 9.49867 10
endloop
endfacet
facet normal -0.951057 0.309017 0 facet normal -0.951057 0.309017 0
outer loop outer loop
vertex 7.71911 8.5275 0 vertex 7.71911 8.5275 0
@ -1805,32 +1819,18 @@ solid OpenSCAD_Model
vertex 7.87433 9.00524 10 vertex 7.87433 9.00524 10
endloop endloop
endfacet endfacet
facet normal -0.684546 0.72897 0 facet normal -0.587785 0.809017 0
outer loop outer loop
vertex 6.91587 7.26181 0
vertex 6.5497 6.91795 10
vertex 6.91587 7.26181 10
endloop
endfacet
facet normal -0.684546 0.72897 0
outer loop
vertex 6.5497 6.91795 10
vertex 6.91587 7.26181 0
vertex 6.5497 6.91795 0 vertex 6.5497 6.91795 0
endloop
endfacet
facet normal -0.481754 0.876307 0
outer loop
vertex 6.14331 6.62269 0
vertex 5.70312 6.38069 10
vertex 6.14331 6.62269 10 vertex 6.14331 6.62269 10
vertex 6.5497 6.91795 10
endloop endloop
endfacet endfacet
facet normal -0.481754 0.876307 0 facet normal -0.587785 0.809017 0
outer loop outer loop
vertex 5.70312 6.38069 10 vertex 6.14331 6.62269 10
vertex 6.5497 6.91795 0
vertex 6.14331 6.62269 0 vertex 6.14331 6.62269 0
vertex 5.70312 6.38069 0
endloop endloop
endfacet endfacet
facet normal -0.844328 0.535826 0 facet normal -0.844328 0.535826 0
@ -1847,34 +1847,6 @@ solid OpenSCAD_Model
vertex 7.23607 7.64886 10 vertex 7.23607 7.64886 10
endloop endloop
endfacet endfacet
facet normal -0.998027 0.0627917 0
outer loop
vertex 7.96846 9.49867 0
vertex 8 10 10
vertex 8 10 0
endloop
endfacet
facet normal -0.998027 0.0627917 0
outer loop
vertex 8 10 10
vertex 7.96846 9.49867 0
vertex 7.96846 9.49867 10
endloop
endfacet
facet normal 0.248689 0.968583 -0
outer loop
vertex 3.25047 6.07085 0
vertex 3 6.13516 10
vertex 3.25047 6.07085 10
endloop
endfacet
facet normal 0.248689 0.968583 0
outer loop
vertex 3 6.13516 10
vertex 3.25047 6.07085 0
vertex 3 6.13516 0
endloop
endfacet
facet normal -0.770513 0.637424 0 facet normal -0.770513 0.637424 0
outer loop outer loop
vertex 6.91587 7.26181 0 vertex 6.91587 7.26181 0
@ -1889,18 +1861,18 @@ solid OpenSCAD_Model
vertex 6.91587 7.26181 10 vertex 6.91587 7.26181 10
endloop endloop
endfacet endfacet
facet normal -0.587785 0.809017 0 facet normal -0.481754 0.876307 0
outer loop outer loop
vertex 6.5497 6.91795 0 vertex 6.14331 6.62269 0
vertex 5.70312 6.38069 10
vertex 6.14331 6.62269 10 vertex 6.14331 6.62269 10
vertex 6.5497 6.91795 10
endloop endloop
endfacet endfacet
facet normal -0.587785 0.809017 0 facet normal -0.481754 0.876307 0
outer loop outer loop
vertex 6.14331 6.62269 10 vertex 5.70312 6.38069 10
vertex 6.5497 6.91795 0
vertex 6.14331 6.62269 0 vertex 6.14331 6.62269 0
vertex 5.70312 6.38069 0
endloop endloop
endfacet endfacet
facet normal -0.368126 0.929776 0 facet normal -0.368126 0.929776 0
@ -1931,6 +1903,34 @@ solid OpenSCAD_Model
vertex 7.50523 8.07298 10 vertex 7.50523 8.07298 10
endloop endloop
endfacet endfacet
facet normal 0 1 -0
outer loop
vertex 4.25116 6.00789 0
vertex 3.74884 6.00789 10
vertex 4.25116 6.00789 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 3.74884 6.00789 10
vertex 4.25116 6.00789 0
vertex 3.74884 6.00789 0
endloop
endfacet
facet normal 0.248689 0.968583 -0
outer loop
vertex 3.25047 6.07085 0
vertex 3 6.13516 10
vertex 3.25047 6.07085 10
endloop
endfacet
facet normal 0.248689 0.968583 0
outer loop
vertex 3 6.13516 10
vertex 3.25047 6.07085 0
vertex 3 6.13516 0
endloop
endfacet
facet normal 0.125333 0.992115 -0 facet normal 0.125333 0.992115 -0
outer loop outer loop
vertex 3.74884 6.00789 0 vertex 3.74884 6.00789 0
@ -1945,18 +1945,18 @@ solid OpenSCAD_Model
vertex 3.25047 6.07085 0 vertex 3.25047 6.07085 0
endloop endloop
endfacet endfacet
facet normal 0 1 -0 facet normal -0.684546 0.72897 0
outer loop outer loop
vertex 4.25116 6.00789 0 vertex 6.91587 7.26181 0
vertex 3.74884 6.00789 10 vertex 6.5497 6.91795 10
vertex 4.25116 6.00789 10 vertex 6.91587 7.26181 10
endloop endloop
endfacet endfacet
facet normal 0 1 0 facet normal -0.684546 0.72897 0
outer loop outer loop
vertex 3.74884 6.00789 10 vertex 6.5497 6.91795 10
vertex 4.25116 6.00789 0 vertex 6.91587 7.26181 0
vertex 3.74884 6.00789 0 vertex 6.5497 6.91795 0
endloop endloop
endfacet endfacet
facet normal 1 -0 0 facet normal 1 -0 0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,7 @@
# Original Prusa i3 MK2 # Original Prusa i3 MK2S
Original Prusa i3 MK2 is a 3D printer project maintained by PRUSA RESEARCH. Original Prusa i3 MK2S is a 3D printer project maintained by PRUSA RESEARCH.
Originates in RepRap project. Originates in RepRap project.
This repository contains SCAD files and STLs of the printed parts. This repository contains SCAD files and STLs of the printed parts.
@ -10,5 +10,5 @@ This repository contains SCAD files and STLs of the printed parts.
* Prusa Research website : http://prusa3d.com * Prusa Research website : http://prusa3d.com
* Product page : http://shop.prusa3d.com/en/3d-printers/59-original-prusa-i3-mk2-kit.html * Product page : http://shop.prusa3d.com/en/3d-printers/59-original-prusa-i3-mk2-kit.html
* Build manual : http://manual.prusa3d.com/c/English_manuals * Build manual : http://manual.prusa3d.com/c/Original_Prusa_i3_MK2S_kit_assembly
* Firmware : https://github.com/prusa3d/Prusa-Firmware * Firmware : https://github.com/prusa3d/Prusa-Firmware