Merge 1c749aabe1 into bf050898da
commit
477b055a14
|
|
@ -5,27 +5,30 @@
|
|||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
// body
|
||||
difference(){
|
||||
union(){
|
||||
cylinder(r=7,h = 7, $fn=30);
|
||||
translate([2,-8,0]) cube([9.5,18,3]);
|
||||
translate([2,-9,0]) cube([5.5,5,3]);
|
||||
}
|
||||
|
||||
// rod cutout
|
||||
translate([0,0,-1]) cylinder(r=5,h = 10, $fn=30);
|
||||
translate([-4.5,0,-5]) cube([9,15,15]);
|
||||
|
||||
// LCD cable cut
|
||||
translate([8,-12,-1]) cube([2,19,5]);
|
||||
translate([9,7,-1]) cylinder(r=1,h = 5, $fn=30);
|
||||
|
||||
//corners
|
||||
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([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,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([10.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
|
||||
|
|
@ -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 ] );
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -25,6 +25,7 @@ union(){
|
|||
|
||||
module cutout()
|
||||
{
|
||||
|
||||
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 = 14, r1 = 3.2, r1 = 5, $fn=6); // M3 nut hole fillet A
|
||||
|
|
|
|||
|
|
@ -1,166 +1,176 @@
|
|||
// PRUSA iteration3
|
||||
// PSU Cover
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module PSU_COVER()
|
||||
{
|
||||
difference(){
|
||||
union(){
|
||||
|
||||
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
|
||||
|
||||
translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right
|
||||
|
||||
|
||||
translate([0,35,46.5])scale([1.2,1,0.2])rotate([-28,-50,-58])cube([45,45,30]);
|
||||
|
||||
|
||||
//translate([94,20,13])scale([0.2,1.2,1])rotate([-29,-51,-48])cube([30,35,30]);
|
||||
//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
|
||||
translate([-1.6,0,51])cube([1.65,65,4]); // Frame skirt 3
|
||||
|
||||
}
|
||||
|
||||
|
||||
//pretty corners
|
||||
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([-3,-9,-5])rotate([-45,0,0])cube([130,10,10]);
|
||||
translate([-3,-12,56])rotate([-45,0,0])cube([130,10,10]);
|
||||
|
||||
translate([-3,45+15,-5])rotate([-45,0,0])cube([130,10,10]);
|
||||
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([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]);
|
||||
translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]);
|
||||
|
||||
translate([79,-5,68.5])rotate([0,45,0])cube([20,90,20]);
|
||||
|
||||
translate([79,4,-14.5])rotate([0,45,0])cube([20,90,20]);
|
||||
|
||||
|
||||
translate([-14,-5,68.5])rotate([0,45,0])cube([20,90,20]);
|
||||
|
||||
translate([3,2,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout
|
||||
|
||||
translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout
|
||||
|
||||
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([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout
|
||||
|
||||
translate([5.5,0,0]){
|
||||
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([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([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([45-4.5,2+15.6,40])cylinder(r=3.25,h=15-1.5, $fn=6); // socket left hole cutout nuttrap
|
||||
}
|
||||
translate([20,50,54.5])linear_extrude(height = 1) {
|
||||
text("Prusa3D", center=true);
|
||||
}
|
||||
|
||||
/*
|
||||
translate([8,40-1+15,40])cylinder(r=2,h=50,$fn=15); // left front mounthole cutout
|
||||
translate([8,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$fn=15);
|
||||
|
||||
translate([87,40-1+15,40])cylinder(r=2,h=50,$fn=15); // right front mounthole cutout
|
||||
translate([87,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$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
|
||||
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([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);
|
||||
|
||||
for(i=[0:10]){
|
||||
translate([20+i,6,-10])cylinder(r=3,h=50); // left back mounthole cutout
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module PSU_Y_REINFORCEMENT()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
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
|
||||
{
|
||||
|
||||
//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
|
||||
//translate([ 88+0.5, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A2
|
||||
|
||||
//translate([ 68-0.5, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B1
|
||||
//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
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
||||
translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module FINAL_PART(){
|
||||
union()
|
||||
{
|
||||
PSU_COVER();
|
||||
PSU_Y_REINFORCEMENT();
|
||||
}
|
||||
}
|
||||
|
||||
FINAL_PART();
|
||||
|
||||
|
||||
// PRUSA iteration3
|
||||
// PSU Cover
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module CubeAdjust(Xdim, Zdim){
|
||||
for (x =[6:11.2:Xdim-12]){
|
||||
for (z =[6:11.2:Zdim-12]){
|
||||
|
||||
translate([x,-0.2,z])cube([10,0.4,10]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module nuttrap(){
|
||||
rotate([0, 180, 0]) difference(){
|
||||
union(){
|
||||
translate([-4.25,-7.5,0]) difference(){
|
||||
translate([0,0,0]) cube([8.5, 9, 3]);
|
||||
rotate([45,0,0]) cube([11.5,5.7,5.7]);
|
||||
}
|
||||
}
|
||||
translate([0,0, -0.2])rotate([0,0,30]) cylinder(r=3.5,h=15-1.5, $fn=6);
|
||||
}
|
||||
}
|
||||
|
||||
module PSU_COVER()
|
||||
{
|
||||
difference(){
|
||||
union(){
|
||||
|
||||
translate([0,0,-0.46])cube([95,50+15,54.25]); // 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,-0.46])cube([6,50+15,54.25]); // Base for bracket
|
||||
|
||||
translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right
|
||||
|
||||
|
||||
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
|
||||
|
||||
}
|
||||
|
||||
|
||||
//pretty corners
|
||||
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([-3,-9,-4.46])rotate([-45,0,0])cube([130,10,10]);
|
||||
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([-3,48+15,54.78])rotate([-45,0,0])cube([130,10,10]);
|
||||
|
||||
translate([95-3+3,70,-2])rotate([0,0,-45])cube([10,10,58]);
|
||||
|
||||
|
||||
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]);
|
||||
translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]);
|
||||
|
||||
translate([79,-5,67.28])rotate([0,45,0])cube([20,90,20]);
|
||||
|
||||
translate([79,-5,-13.96])rotate([0,45,0])cube([20,90,20]);
|
||||
|
||||
|
||||
translate([-14,-5,67.28])rotate([0,45,0])cube([20,90,20]);
|
||||
|
||||
translate([3,2,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout
|
||||
|
||||
translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout
|
||||
|
||||
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([85+2,10,2])rotate([0,0,45]) cube([10*sqrt(2),10*sqrt(2),50-0.7]);
|
||||
translate([85+2,2,2]) cube([10,18,50-0.7]);
|
||||
|
||||
translate([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout
|
||||
|
||||
translate([5.5,0,0]){
|
||||
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([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([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([7-0.5-0.5,40-1+15+0.7,-10])cylinder(r=2,h=50,$fn=15); // left back mounthole 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([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);
|
||||
|
||||
for(i=[0:9]){
|
||||
translate([20+i,6.5,-10])cylinder(r=3.5,h=50); // left back mounthole cutout
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module PSU_Y_REINFORCEMENT()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
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
|
||||
{
|
||||
|
||||
|
||||
// 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([ 68.5, 20, -34 ]) rotate([ 45, 0, 0 ]) cube([ 15, 23, 20 ]); //vertical reinf cutout
|
||||
|
||||
// bottom surface cuts
|
||||
translate([ 66.2, -0.2, -5])cube([23.6, 0.4, 5.6]);
|
||||
translate([ 68 + 1.8 +2.6, -0.2, -7.7 -5.6])cube([11.2, 0.4, 5.6]);
|
||||
|
||||
|
||||
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
|
||||
translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// PRUSA iteration3
|
||||
// RAMBo cover base
|
||||
// RAMBo base
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
|
|
@ -9,254 +9,315 @@
|
|||
|
||||
// main body
|
||||
module main_body(){
|
||||
cube( [ 114.5 , 92 , 2 ] );
|
||||
cube( [ 1.5 , 92 , 35 ] );
|
||||
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
|
||||
translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.5 ] );
|
||||
// side panel
|
||||
cube( [ 118.5 , 92 , 2 ] );
|
||||
|
||||
translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] );
|
||||
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
|
||||
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
|
||||
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
|
||||
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] );
|
||||
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] );
|
||||
translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] );
|
||||
// upper panel
|
||||
cube( [ 1.5 , 92 , 35 ] );
|
||||
// rear panel
|
||||
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
|
||||
// heatbed ziptie reinforcement
|
||||
translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.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);
|
||||
// upper panel frame reinforcement
|
||||
translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] );
|
||||
|
||||
// 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 ] );
|
||||
// side panel reinforcement
|
||||
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
|
||||
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
|
||||
|
||||
// frame mounting screw blocks
|
||||
translate( [ 98 , 0 , 0 ] ) cube( [ 16.5 , 8 , 8 ] );
|
||||
translate( [ 1 , 0 , 0 ] ) cube( [ 19.5 , 8 , 8 ] );
|
||||
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 8, r = 5, $fn=30);
|
||||
translate( [ 110.5 , 8 , 5 ] ) rotate([90,90,0]) cylinder( h = 8, r = 5, $fn=30);
|
||||
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] );
|
||||
}
|
||||
|
||||
difference()
|
||||
{
|
||||
// bottom side reinforcement
|
||||
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
|
||||
translate( [ 96 , 79 , 0 ] ) rotate([0,0,45]) cube( [ 7.5 , 6 , 36 ] );
|
||||
}
|
||||
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(){
|
||||
// side
|
||||
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
|
||||
// side
|
||||
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
|
||||
|
||||
// RAMBo M3 screws
|
||||
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
||||
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
||||
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
||||
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
||||
// RAMBo M3 screws
|
||||
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.9, $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.9, $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
|
||||
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 = 10, r = 1.6, $fn=30);
|
||||
translate( [ 16.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
|
||||
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
|
||||
translate( [ 114.5 , -2 , -1 ] ) cube( [ 5 , 15 , 10] );
|
||||
|
||||
// USB connector hole
|
||||
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);
|
||||
// frame mounting screws
|
||||
//upper
|
||||
translate( [ 18.5, -2 , 15.6 ] ) rotate([0,45,0]) cube( [ 15 , 10 , 10] );
|
||||
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
|
||||
translate( [ 16.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
|
||||
translate( [ 15.15 , -2 , 5 ] ) cube( [ 2.7 , 15 , 10] );
|
||||
translate( [ 15.1 , -2 , 7 ] ) rotate([0,5,0]) cube( [ 2.8 , 15 , 10] );
|
||||
translate( [ 15.1 , -2 , 7 ] ) rotate([0,-5,0]) cube( [ 2.8 , 15 , 10] );
|
||||
|
||||
|
||||
// heatbed cable opening hole
|
||||
translate( [ 75.5 , 94 , 24 ] ) rotate([90,90,0]) cylinder( h = 5, r = 7, $fn=6);
|
||||
translate( [ 77.6 , 80 , 20.5 ] ) cube( [ 4 , 15 , 15] );
|
||||
translate( [ 69.4 , 95 , 27.5 ] ) rotate([90,60,0]) cube( [ 5 , 10 , 10] );
|
||||
//lower
|
||||
translate( [ 110.5 , 9 , 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( [ 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
|
||||
translate( [ 64 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
|
||||
translate( [ 64 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
|
||||
// USB connector hole
|
||||
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.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
|
||||
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 = 2, r = 2, r2=1.6, $fn=30);
|
||||
translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] );
|
||||
// heatbed filament holder hole
|
||||
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.8, $fn=30);
|
||||
translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] );
|
||||
|
||||
|
||||
// nut traps
|
||||
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
||||
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
||||
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
||||
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
||||
// nut traps HEX
|
||||
translate( [ 7.5 , 14 , -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);
|
||||
}
|
||||
|
||||
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);
|
||||
translate( [ 102.5 , 14 , -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);
|
||||
}
|
||||
|
||||
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( [ 8 , 80 , 28 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 10] );
|
||||
translate( [ 106 , 81 , 4 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 40] );
|
||||
translate( [ 7.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);
|
||||
}
|
||||
|
||||
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
|
||||
translate( [ 89 , 2 , -1 ] ) cylinder( h = 10, r = 4, $fn=6);
|
||||
translate( [ 80 , -5 , -1 ] ) cube( [ 15, 5, 10] );
|
||||
// inner edges cutout
|
||||
translate( [ 54 , 79.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
|
||||
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(){
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// extruder cable holder
|
||||
module ext_cable_holder()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
// body
|
||||
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([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 10, r2=10, $fn=6);
|
||||
rotate([90,0,0]) translate( [ 1.5 , 26 , -28 ] ) rotate([0,90,0]) cylinder( h = 10, r1 = 10, r2=7, $fn=6);
|
||||
translate( [ -4.1 , 28 , 17.5 ] ) rotate([0,45,0]) cube( [ 7 , 5 , 8 ] );
|
||||
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 = 11, r2=11, $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, 28, 16.5 ] ) rotate([0,45,0]) cube( [ 6 , 5.5 , 7 ] );
|
||||
}
|
||||
|
||||
// upper cut
|
||||
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(){
|
||||
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([-5, 26, -28]) rotate([0,90,0]) cylinder( h = 5.5, r = 6.5, $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.2, $fn=30);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
module rambo_cover()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
ext_cable_holder();
|
||||
difference(){
|
||||
main_body();
|
||||
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(){
|
||||
|
||||
union(){
|
||||
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
|
||||
translate( [ 11 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
|
||||
translate( [ 11 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
|
||||
// upper extruder cable opening
|
||||
translate( [ -5 , 28 , 26 ] ) rotate([0,90,-15]) cylinder( h = 20, r = 1.4, $fn=30);
|
||||
|
||||
// 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 ] );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -10,12 +10,15 @@ module upper_hinge()
|
|||
difference()
|
||||
{
|
||||
union(){
|
||||
// body
|
||||
cylinder( h = 26, r = 2.4, $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( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.7, $fn=30);
|
||||
translate( [ -2 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
|
||||
// M3 screw hole
|
||||
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]);
|
||||
}
|
||||
}
|
||||
|
|
@ -25,17 +28,20 @@ module lower_hinge()
|
|||
difference()
|
||||
{
|
||||
union(){
|
||||
// body
|
||||
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 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
|
||||
translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 11 , 10 ] );
|
||||
}
|
||||
translate( [ -1 , 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.5, $fn=30);
|
||||
// M3 screw
|
||||
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]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
upper_hinge();
|
||||
lower_hinge();
|
||||
lower_hinge();
|
||||
|
|
|
|||
|
|
@ -1,81 +1,82 @@
|
|||
// PRUSA iteration3
|
||||
// Bearing holders
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <polyholes.scad>
|
||||
|
||||
bearing_diameter = 14.5;
|
||||
|
||||
module horizontal_bearing_base(bearings=1){
|
||||
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
|
||||
}
|
||||
module horizontal_bearing_holes(bearings=1){
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
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);
|
||||
// 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);
|
||||
}
|
||||
|
||||
// Ziptie cutouts
|
||||
ziptie_cut_ofset = 0;
|
||||
for ( i = [0 : bearings-1] ){
|
||||
// For easier positioning I move them by half of one
|
||||
// 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(){
|
||||
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,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module horizontal_bearing_test(){
|
||||
difference(){
|
||||
horizontal_bearing_base(1);
|
||||
horizontal_bearing_holes(1);
|
||||
}
|
||||
translate(v=[30,0,0]) difference(){
|
||||
horizontal_bearing_base(2);
|
||||
#horizontal_bearing_holes(2);
|
||||
}
|
||||
translate(v=[60,0,0]) difference(){
|
||||
horizontal_bearing_base(3);
|
||||
horizontal_bearing_holes(3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
thinwall = 3;
|
||||
bearing_size = bearing_diameter + 2 * thinwall;
|
||||
|
||||
module vertical_bearing_base(){
|
||||
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);
|
||||
}
|
||||
|
||||
module vertical_bearing_holes(){
|
||||
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2)+0.1);
|
||||
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();
|
||||
vertical_bearing_holes();
|
||||
//}
|
||||
//horizontal_bearing_test();
|
||||
//horizontal_bearing_base(1);
|
||||
// PRUSA iteration3
|
||||
// Bearing holders
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <polyholes.scad>
|
||||
|
||||
bearing_diameter = 14.95;
|
||||
|
||||
module horizontal_bearing_base(bearings=1){
|
||||
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
|
||||
}
|
||||
module horizontal_bearing_holes(bearings=1){
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
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);
|
||||
// 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);
|
||||
}
|
||||
|
||||
// Ziptie cutouts
|
||||
ziptie_cut_ofset = 0;
|
||||
for ( i = [0 : bearings-1] ){
|
||||
// For easier positioning I move them by half of one
|
||||
// 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(){
|
||||
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,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module horizontal_bearing_test(){
|
||||
difference(){
|
||||
horizontal_bearing_base(1);
|
||||
horizontal_bearing_holes(1);
|
||||
}
|
||||
translate(v=[30,0,0]) difference(){
|
||||
horizontal_bearing_base(2);
|
||||
#horizontal_bearing_holes(2);
|
||||
}
|
||||
translate(v=[60,0,0]) difference(){
|
||||
horizontal_bearing_base(3);
|
||||
horizontal_bearing_holes(3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
thinwall = 3;
|
||||
bearing_size = bearing_diameter + 2 * thinwall;
|
||||
|
||||
module vertical_bearing_base(){
|
||||
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);
|
||||
}
|
||||
|
||||
module vertical_bearing_holes(){
|
||||
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2));
|
||||
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();
|
||||
vertical_bearing_holes();
|
||||
//}
|
||||
//horizontal_bearing_test();
|
||||
//horizontal_bearing_base(1);
|
||||
//horizontal_bearing_holes(1);
|
||||
|
|
@ -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();
|
||||
|
|
@ -1,14 +1,129 @@
|
|||
use <extruder-main.scad>
|
||||
|
||||
|
||||
module ext_body(){
|
||||
|
||||
difference(){
|
||||
extruder_body();
|
||||
extruder_mount_holes();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ext_body();
|
||||
|
||||
// PRUSA iteration3
|
||||
// Extruder-body
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
use <extruder-main.scad>
|
||||
|
||||
|
||||
module m3nut()
|
||||
{
|
||||
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();
|
||||
|
|
@ -1,16 +1,23 @@
|
|||
use <extruder-main.scad>
|
||||
|
||||
module ext_cover(){
|
||||
difference(){
|
||||
extruder_cover();
|
||||
extruder_mount_holes();
|
||||
|
||||
// Easy assembly trim
|
||||
cube([50,50,15.2]);
|
||||
translate([-1,-10+0.2,0])cube([50,10,40]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// PRUSA iteration3
|
||||
// Extruder cover
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <extruder-main.scad>
|
||||
|
||||
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();
|
||||
|
|
@ -1,78 +1,81 @@
|
|||
|
||||
|
||||
module part_body(){
|
||||
|
||||
//bottom round edge
|
||||
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([ 11, 8, 4 ]) cube([3.5,4,6]);
|
||||
|
||||
difference()
|
||||
{
|
||||
translate([ -7, 0, 4 ]) cube([21.5,5,6]);
|
||||
translate([ -8, -1, 8 ]) rotate([45,0,0]) cube([25,5,6]);
|
||||
}
|
||||
|
||||
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]);
|
||||
translate([ 11, 4, 0]) cube([3.5,4,2]);
|
||||
|
||||
|
||||
// body
|
||||
translate([ -7, 4, 0 ]) cube([18,10,10]);
|
||||
translate([ -7, 0, 4 ]) cube([18,32,2]);
|
||||
translate([ -5, 4, 3 ]) cube([10,48,7]);
|
||||
translate([ -11, 11, 0 ]) cube([22,28,10]);
|
||||
translate([ -9, 11, 0 ]) cube([18,30,10]);
|
||||
|
||||
// upper round edges
|
||||
translate([ 9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
||||
translate([ -9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
||||
|
||||
// upper round piece
|
||||
translate([ 0, 52, 6.5 ]) rotate([0,0,0]) cylinder(r=5, h=7, $fn=200, center=true);
|
||||
}
|
||||
|
||||
module cut_away(){
|
||||
|
||||
// axis
|
||||
translate([ 0, 4, 6 ]) rotate([0,90,0]) cylinder(r=1.7, h=30, $fn=200, center=true);
|
||||
|
||||
// bolt holes
|
||||
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, 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([ -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([0,52,0]) sphere(r=5, $fn=20);
|
||||
|
||||
//bearing hole
|
||||
translate([ 0, 20, 3 ]){
|
||||
rotate([0,90,0]){
|
||||
cylinder(r=8.5, h=7.5, $fn=200, center=true);
|
||||
%cylinder(r=8, h=7.5, $fn=200, 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])
|
||||
difference(){
|
||||
part_body();
|
||||
cut_away();
|
||||
}
|
||||
}
|
||||
|
||||
// PRUSA iteration3
|
||||
// Extruder idler
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module part_body(){
|
||||
|
||||
//bottom round edge
|
||||
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([ 11, 8, 4 ]) cube([3.5,4,6]);
|
||||
|
||||
|
||||
difference()
|
||||
{
|
||||
translate([ -7, 0, 4 ]) cube([21.5,5,6]);
|
||||
translate([ -8, -1, 8 ]) rotate([45,0,0]) cube([25,5,6]);
|
||||
}
|
||||
|
||||
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]);
|
||||
translate([ 11, 4, 0]) cube([3.5,4,2]);
|
||||
|
||||
|
||||
// body
|
||||
translate([ -7, 4, 0 ]) cube([18,10,10]);
|
||||
translate([ -7, 0, 4 ]) cube([18,32,2]);
|
||||
translate([ -5, 4, 3 ]) cube([10,48,7]);
|
||||
translate([ -11, 11, 0 ]) cube([22,28,10]);
|
||||
translate([ -9, 11, 0 ]) cube([18,30,10]);
|
||||
|
||||
// upper round edges
|
||||
translate([ 9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
||||
translate([ -9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
||||
|
||||
// upper round piece
|
||||
translate([ 0, 52, 6.5 ]) rotate([0,0,0]) cylinder(r=5, h=7, $fn=200, center=true);
|
||||
}
|
||||
|
||||
module cut_away(){
|
||||
|
||||
// axis
|
||||
translate([ 0, 4, 6 ]) rotate([0,90,0]) cylinder(r=1.7, h=30, $fn=200, center=true);
|
||||
|
||||
// bolt holes
|
||||
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, 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([ -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([0,52,0]) sphere(r=5, $fn=20);
|
||||
|
||||
//bearing hole
|
||||
translate([ 0, 20, 3 ]){
|
||||
rotate([0,90,0]){
|
||||
cylinder(r=8.5, h=7.5, $fn=200, center=true);
|
||||
%cylinder(r=8, h=7.5, $fn=200, 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])
|
||||
difference(){
|
||||
part_body();
|
||||
cut_away();
|
||||
}
|
||||
}
|
||||
|
||||
idler();
|
||||
|
|
@ -1,335 +1,404 @@
|
|||
module extruder_body(){
|
||||
union(){
|
||||
difference(){
|
||||
// Main
|
||||
union(){
|
||||
cube([35,44,15]);
|
||||
// P.I.N.D.A. Probe mount
|
||||
difference(){
|
||||
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]);
|
||||
}
|
||||
translate([-7.5,17,0])cube([8,8.5,2]); // P.I.N.D.A. and Fan cable tray guide
|
||||
//fan nice look
|
||||
translate([35,0,0]) cube([10,12,15]);
|
||||
}
|
||||
// Fan nice look edge cut
|
||||
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,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. probe mount hole
|
||||
translate([35/2,0,6]){
|
||||
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);
|
||||
translate([-23,0,0])rotate([-90,0,0])cylinder(r=8.5/2, h=50, $fn=20);
|
||||
}
|
||||
|
||||
// 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
|
||||
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_cut();
|
||||
// larger groove for easy entry
|
||||
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=7.13, h=20, $fn=120);
|
||||
|
||||
// Extruder cables path
|
||||
translate([33+4,10,-1]) cylinder(r=2, h=17,$fn=30);
|
||||
translate([33+4,12,9]) cube([4,4,20], center=true);
|
||||
|
||||
extruder_nozzle_cooling();
|
||||
|
||||
}
|
||||
|
||||
// Cooling grill
|
||||
difference(){
|
||||
union(){
|
||||
// Fins up
|
||||
//translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
translate([0,32,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
//translate([0,27,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
translate([0,22,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
//translate([0,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
|
||||
// Structural support
|
||||
translate([0,13,11]) rotate([0,0,0]) cube([4,30,1]);
|
||||
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
|
||||
}
|
||||
// Trim
|
||||
translate([-35,0,0])cube([35,43,15]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
mirror([1,0,0]){
|
||||
// Filament visualisation
|
||||
%translate([-35/2,-50,15])rotate([-90,0,0])cylinder(r=1.75/2, h=100, $fn=20);
|
||||
|
||||
// Motor visualisation
|
||||
translate([-42,-42,-1]) %cube([42,42,1]);
|
||||
translate([-21,-21,0])%cylinder(r=2.5, h=20, $fn=30);
|
||||
translate([-21,-21,8])%cylinder(r=4, h=13, $fn=30);
|
||||
|
||||
// MOTOR
|
||||
difference(){
|
||||
union(){
|
||||
// base
|
||||
difference(){
|
||||
translate([-42,-42,0]) cube([42,42,30]);
|
||||
//main cut
|
||||
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]);
|
||||
translate([-35/2+3+1.8+0.5,-41,2+3+2.5])cube([42,42,32]);
|
||||
//base round cutout
|
||||
translate([-21,-21,-2]) cylinder(r=11.5, h=33, $fn=200);
|
||||
|
||||
//filament hole
|
||||
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);
|
||||
}
|
||||
|
||||
//filament guide
|
||||
translate([-35/2-3,-19,15-4])cube([6,10,6.5]);
|
||||
difference(){
|
||||
union(){
|
||||
translate([-35/2-3,-8.4+2+1.2,0.4]) rotate([45,0,0]) cube([6,15,15]);
|
||||
translate([-35/2-3,-8.4+2+1.2,0.4+6.5]) rotate([45,0,0]) cube([6,15,15]);
|
||||
}
|
||||
translate([-35/2-4,-1,2]) cube([8,15,25]);
|
||||
|
||||
}
|
||||
}
|
||||
// Filament ptfe guide cutout
|
||||
|
||||
// PTFE secure ring slot
|
||||
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.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
|
||||
|
||||
// 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
|
||||
// Slot cut
|
||||
difference(){
|
||||
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]);
|
||||
}
|
||||
|
||||
// drive pulley cutout
|
||||
translate([-21,-21,8])cylinder(r=4, h=13, $fn=80);
|
||||
// idler bearing cutout
|
||||
translate([-21+13,-21,8])cylinder(r=8.5, h=13, $fn=80);
|
||||
|
||||
translate([-21,-27,8])cube([10,10,13]); // Trim
|
||||
|
||||
|
||||
// filament clean hole
|
||||
translate([-43,-21,15])rotate([90,0,90])cylinder(r=20/2, h=20, $fn=6);
|
||||
translate([-43,-21,15])rotate([90,0,90])cylinder(r1=27/2,r2=20/2, h=5, $fn=6);
|
||||
|
||||
// round corners
|
||||
translate([-2.5,-42+2.5,0]) rotate([0,0,-45]) translate([0,-5,-0.1]) cube([10,10,10]);
|
||||
translate([-42+2.5,-42+2.5,0]) rotate([0,0,-45-90]) translate([0,-5,-0.1]) cube([10,10,33]);
|
||||
|
||||
|
||||
|
||||
// idler nut traps Bottom
|
||||
translate([-23,-53.5,7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
||||
translate([-32,-36.5-2.2,7.5-1.5])cube([40,4,3]); // Screw hole
|
||||
|
||||
// idler nut traps Top
|
||||
translate([-23,-53.5,30-7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
||||
translate([-32,-36.5-2.2,30-7.5-1.5])cube([40,4,3]); // Screw hole
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module extruder_cover(){
|
||||
union(){
|
||||
difference(){
|
||||
// Main
|
||||
union(){
|
||||
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
|
||||
translate([35,0,15]) cube([10,12,15]);
|
||||
}
|
||||
// Fan nice look edge cut
|
||||
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,32]);
|
||||
|
||||
translate([38,58.3,20]) rotate([0,0,45]) cube([5,5,15]);
|
||||
|
||||
extruder_nozzle_cut();
|
||||
|
||||
|
||||
// Extruder cables path
|
||||
translate([33+4,10,-1]) cylinder(r=2, h=32,$fn=30);
|
||||
translate([33+4,12,22]) cube([4,4,20], center=true);
|
||||
|
||||
extruder_nozzle_cooling();
|
||||
|
||||
}
|
||||
|
||||
// 5015 print fan mount pillar
|
||||
translate([6,33,27])rotate([0,0,67]) cube([8,24,3]); // Connecting cube
|
||||
translate([35/2+12-42.75,6.5+38.5,25])cylinder(r=5.8, h=5, $fn=6); // Hexagon at the end
|
||||
|
||||
// Print fan nozzle mount - right
|
||||
translate([5,61-5,24])cylinder(r=7.5/2, h=6, $fn=6);
|
||||
|
||||
|
||||
// Print colling airway
|
||||
translate([8,44,28])rotate([0,0,0]) cube([27,9,2]);
|
||||
difference(){
|
||||
translate([8,51.6,28.5])rotate([-45,0,0]) cube([27,7,2]);
|
||||
translate([7,57,20])rotate([0,0,0]) cube([29,7,12]);
|
||||
translate([7,53,22])rotate([0,0,0]) cube([29,7,2]);
|
||||
}
|
||||
|
||||
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 fan nozzle mount - left
|
||||
//#difference(){
|
||||
//union(){
|
||||
// #translate([34,44,24])rotate([0,0,0]) cube([5,10,6]);
|
||||
// #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([37,61-5,23])cylinder(r=1.4, h=8, $fn=30);
|
||||
//}
|
||||
|
||||
// Cooling grill
|
||||
difference(){
|
||||
union(){
|
||||
// Fins up
|
||||
//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,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,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
|
||||
// Structural support
|
||||
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]);
|
||||
}
|
||||
// Trim
|
||||
translate([-35,0,0])cube([35,43,35]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
module extruder_mount_holes(){
|
||||
|
||||
// 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,6.5+0.2])cylinder(r=1.65, h=5, $fn=30); // Middle 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-2.85,10])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut Trap top
|
||||
//translate([35/2-12,6.5,10])cylinder(r=3.3, h=2.5, $fn=6);
|
||||
|
||||
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
|
||||
//translate([35/2-12,6.5,4])cylinder(r=3.3, h=2.5, $fn=6);
|
||||
|
||||
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+5,6.5-2.85+2.5+5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
|
||||
|
||||
|
||||
// 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
|
||||
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+11,6.5-2,27])cylinder(r=3.1, h=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.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,14]) rotate([0,0,30])cylinder(r=3.5, h=11.01, $fn=6); // Nut easy entry cut
|
||||
|
||||
// 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
|
||||
|
||||
|
||||
// Motor mount holes
|
||||
translate([21,-21,0]){
|
||||
// Top right
|
||||
translate([-15.5,-15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
||||
translate([-15.5,-15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||
|
||||
// Bottom right
|
||||
translate([-15.5,15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
||||
translate([-15.5,15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||
|
||||
// Top left
|
||||
translate([15.5,-15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
||||
translate([15.5,-15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||
|
||||
// Bottom left
|
||||
translate([15.5,15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
||||
translate([15.5,15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
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();
|
||||
|
||||
// PRUSA iteration3
|
||||
// Extruder main
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
module extruder_body(){
|
||||
union(){
|
||||
difference(){
|
||||
// Main
|
||||
union(){
|
||||
cube([35,44,15]);
|
||||
// P.I.N.D.A. Probe mount
|
||||
difference(){
|
||||
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]);
|
||||
}
|
||||
translate([-7.5,15,0])cube([8,10.5,3]); // P.I.N.D.A. and Fan cable tray guide ;
|
||||
|
||||
//fan nice look
|
||||
translate([35,0,0]) cube([10,12,15]);
|
||||
}
|
||||
// Fan nice look edge cut
|
||||
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,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. probe mount hole
|
||||
translate([35/2,0,6]){
|
||||
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);
|
||||
translate([-23,26,0])rotate([-90,0,0])cylinder(r=8.5/2, h=40, $fn=20);
|
||||
}
|
||||
|
||||
// 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
|
||||
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_cut();
|
||||
// larger groove for easy entry
|
||||
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=7.13, h=20, $fn=120);
|
||||
|
||||
// Extruder cables path
|
||||
translate([33+4,10,-1]) cylinder(r=2, h=17,$fn=30);
|
||||
translate([33+4,12,9]) cube([4,4,20], center=true);
|
||||
|
||||
extruder_nozzle_cooling();
|
||||
|
||||
}
|
||||
|
||||
// Cooling grill
|
||||
difference(){
|
||||
union(){
|
||||
// Fins up
|
||||
//translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
translate([0,32,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
//translate([0,27,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
translate([0,22,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
//translate([0,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
|
||||
// Structural support
|
||||
translate([0,13,11]) rotate([0,0,0]) cube([4,30,1]);
|
||||
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
|
||||
}
|
||||
// Trim
|
||||
translate([-35,0,0])cube([35,43,15]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
mirror([1,0,0]){
|
||||
// Filament visualisation
|
||||
%translate([-35/2,-50,15])rotate([-90,0,0])cylinder(r=1.75/2, h=100, $fn=20);
|
||||
|
||||
// Motor visualisation
|
||||
translate([-42,-42,-1]) %cube([42,42,1]);
|
||||
translate([-21,-21,0])%cylinder(r=2.5, h=20, $fn=30);
|
||||
translate([-21,-21,8])%cylinder(r=4, h=13, $fn=30);
|
||||
|
||||
// MOTOR
|
||||
difference(){
|
||||
union(){
|
||||
// base
|
||||
difference(){
|
||||
translate([-42,-42,0]) cube([42,42,30]);
|
||||
//main cut
|
||||
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]);
|
||||
translate([-35/2+3+1.8+0.5,-41,2+3+2.5])cube([42,42,32]);
|
||||
//base round cutout
|
||||
translate([-21,-21,-2]) cylinder(r=11.5, h=33, $fn=200);
|
||||
|
||||
//filament hole
|
||||
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);
|
||||
}
|
||||
|
||||
//filament guide
|
||||
translate([-35/2-3,-19,15-4])cube([6,10,6.5]);
|
||||
difference(){
|
||||
union(){
|
||||
translate([-35/2-3,-8.4+2+1.2,0.4]) rotate([45,0,0]) cube([6,15,15]);
|
||||
translate([-35/2-3,-8.4+2+1.2,0.4+6.5]) rotate([45,0,0]) cube([6,15,15]);
|
||||
}
|
||||
translate([-35/2-4,-1,2]) cube([8,15,25]);
|
||||
|
||||
}
|
||||
}
|
||||
// Filament ptfe guide cutout
|
||||
|
||||
// PTFE secure ring slot
|
||||
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.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
|
||||
|
||||
// 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
|
||||
// Slot cut
|
||||
difference(){
|
||||
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]);
|
||||
}
|
||||
|
||||
// drive pulley cutout
|
||||
translate([-21,-21,8])cylinder(r=4, h=13, $fn=80);
|
||||
// idler bearing cutout
|
||||
translate([-21+13,-21,8])cylinder(r=8.5, h=13, $fn=80);
|
||||
|
||||
translate([-21,-27,8])cube([10,10,13]); // Trim
|
||||
|
||||
|
||||
// filament clean hole
|
||||
translate([-43,-21,15])rotate([90,0,90])cylinder(r=20/2, h=20, $fn=6);
|
||||
translate([-43,-21,15])rotate([90,0,90])cylinder(r1=27/2,r2=20/2, h=5, $fn=6);
|
||||
|
||||
// round corners
|
||||
translate([-2.5,-42+2.5,0]) rotate([0,0,-45]) translate([0,-5,-0.1]) cube([10,10,10]);
|
||||
translate([-42+2.5,-42+2.5,0]) rotate([0,0,-45-90]) translate([0,-5,-0.1]) cube([10,10,33]);
|
||||
|
||||
|
||||
|
||||
// idler nut traps Bottom
|
||||
translate([-23,-53.5,7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
||||
translate([-32,-36.5-2.2,7.5-1.5])cube([40,4,3]); // Screw hole
|
||||
|
||||
// idler nut traps Top
|
||||
translate([-23,-53.5,30-7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
||||
translate([-32,-36.5-2.2,30-7.5-1.5])cube([40,4,3]); // Screw hole
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module extruder_cover(){
|
||||
union(){
|
||||
difference(){
|
||||
// Main
|
||||
union(){
|
||||
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
|
||||
translate([35,0,15]) cube([10,12,15]);
|
||||
}
|
||||
// Fan nice look edge cut
|
||||
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,32]);
|
||||
|
||||
translate([38,58.3,20]) rotate([0,0,45]) cube([5,5,15]);
|
||||
|
||||
extruder_nozzle_cut();
|
||||
|
||||
|
||||
// Extruder cables path
|
||||
translate([33+4,10,-1]) cylinder(r=2, h=32,$fn=30);
|
||||
translate([33+4,12,22]) cube([4,4,20], center=true);
|
||||
|
||||
extruder_nozzle_cooling();
|
||||
|
||||
}
|
||||
|
||||
// 5015 print fan mount pillar
|
||||
translate([6,33,27])rotate([0,0,67]) cube([8,24,3]); // Connecting cube
|
||||
translate([35/2+12-42.75,6.5+38.5,25])cylinder(r=5.8, h=5, $fn=6); // Hexagon at the end
|
||||
|
||||
// Print fan nozzle mount - right
|
||||
translate([5,61-5,24])cylinder(r=7.5/2, h=6, $fn=6);
|
||||
|
||||
|
||||
// Print colling airway
|
||||
translate([8,44,28])rotate([0,0,0]) cube([27,9,2]);
|
||||
difference(){
|
||||
translate([8,51.6,28.5])rotate([-45,0,0]) cube([27,7,2]);
|
||||
translate([7,57,20])rotate([0,0,0]) cube([29,7,12]);
|
||||
translate([7,53,22])rotate([0,0,0]) cube([29,7,2]);
|
||||
}
|
||||
|
||||
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]);
|
||||
|
||||
|
||||
// Cooling grill
|
||||
difference(){
|
||||
union(){
|
||||
// Fins up
|
||||
//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,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,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||
|
||||
// Structural support
|
||||
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]);
|
||||
}
|
||||
// Trim
|
||||
translate([-35,0,0])cube([35,43,35]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
module extruder_mount_holes(){
|
||||
|
||||
// Carriage mount right
|
||||
translate([35/2-12,6.5,-0.01])cylinder(r=1.75, h=5, $fn=30); // Bottom 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,6.5+0.2])cylinder(r=1.75, h=5, $fn=30); // Middle hole
|
||||
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,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
|
||||
// bridged hole no clean
|
||||
intersection(){
|
||||
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,27]) cube([3.5, 3.5, 2], center=true); // Screw hole
|
||||
// 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
|
||||
//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-1.7,6.25-2.85,10.5])rotate([0,0,0]) cube([3.4,6.2,2.5]);
|
||||
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,6.5,10])cylinder(r=3.3, h=2.5, $fn=6);
|
||||
|
||||
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
|
||||
//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([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]);
|
||||
//translate([35/2-12,6.5,4])cylinder(r=3.3, h=2.5, $fn=6);
|
||||
|
||||
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+5,6.5-2.85+2.5+5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
|
||||
|
||||
|
||||
// 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
|
||||
|
||||
intersection(){
|
||||
translate([35/2+12+11,6.5-2,5]) cube([3.4, 6.2,3], center=true); // 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([35/2+12+11,6.5-2,5.5]) cube([3.4, 3.4,3], center=true); // 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([35/2+12+11,6.5-2,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
|
||||
// bridged hole no clean
|
||||
intersection(){
|
||||
translate([35/2+12+11,6.5-2,26]) cube([3.3, 6.2,4], center=true); // Screw hole
|
||||
translate([35/2+12+11,6.5-2,26.5]) cylinder(r=3.1, h=8, $fn=30); // Head cut
|
||||
}
|
||||
translate([35/2+12+11,6.5-2,27]) cube([3.5, 3.5,2], center=true); // Screw hole
|
||||
// bridged hole no clean END
|
||||
|
||||
// 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
|
||||
|
||||
// 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
|
||||
translate([35/2+12-42.75,6.5+38.5,15]) cylinder(r=3.4, h=13.01, $fn=6); // Nut Trap
|
||||
|
||||
|
||||
// Motor mount holes
|
||||
translate([21,-21,0]){
|
||||
|
||||
// Top right
|
||||
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
|
||||
}
|
||||
|
||||
// Bottom right
|
||||
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
|
||||
}
|
||||
// Top 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
|
||||
}
|
||||
|
||||
// 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();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,67 +1,76 @@
|
|||
module fan_nozzle(){
|
||||
|
||||
difference(){
|
||||
union(){
|
||||
cube([32,10,17]); // Main cube
|
||||
translate([30,5,0])cylinder(r=5.8,h = 17, $fn=6);
|
||||
translate([-3,0,-6]) cube([3,10,23]);
|
||||
//#translate([-2,5,0])cylinder(r=5.8,h = 17, $fn=6);
|
||||
}
|
||||
// Mounting screw
|
||||
translate([30,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut
|
||||
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut
|
||||
|
||||
//#translate([-2,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut
|
||||
//#translate([-2,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut
|
||||
|
||||
// Fan entry hole
|
||||
translate([1,10-1.5,-1])cube([20,3,16.5]);
|
||||
translate([1,10-1.5,-1-5])cube([18,3,16.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]);
|
||||
translate([-1,-10,-1])rotate([0,0,45])cube([10,8,30]);
|
||||
translate([20,0,16])rotate([0,20,0])cube([10,20,10]);
|
||||
}
|
||||
translate([2,-1,-4.5])cube([24,3,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]);
|
||||
|
||||
}
|
||||
|
||||
// Air director
|
||||
translate([18,0,7])rotate([0,0,30])cube([1,9,10]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
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]);
|
||||
|
||||
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]);
|
||||
translate([-5,4,-11])rotate([45,0,0]) cube([10,5,5]);
|
||||
|
||||
//left cut
|
||||
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([-7,5,-10])rotate([0,0,45])cube([10,10,35]);
|
||||
|
||||
}
|
||||
|
||||
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();
|
||||
// PRUSA iteration3
|
||||
// Fan nozzle
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module fan_nozzle(){
|
||||
|
||||
difference(){
|
||||
union(){
|
||||
cube([32,10,17]); // Main cube
|
||||
translate([30,5,0])cylinder(r=5.8,h = 17, $fn=6);
|
||||
translate([-3,0,-6]) cube([3,10,23]);
|
||||
}
|
||||
|
||||
// Mounting screw
|
||||
translate([30,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut
|
||||
intersection(){
|
||||
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=15); // head cut
|
||||
translate([30,5,17-3.5]) cube([6.2,3.2,1], center=true);
|
||||
}
|
||||
translate([30,5,17-4]) cube([3.2,3.2,1], center=true);
|
||||
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut
|
||||
|
||||
// Fan entry hole
|
||||
translate([1,10-1.5,-1])cube([20,3,16.5]);
|
||||
translate([1,10-1.5,-1-5])cube([18,3,16.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]);
|
||||
translate([-1,-10,-1])rotate([0,0,45])cube([10,8,30]);
|
||||
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]);
|
||||
|
||||
}
|
||||
|
||||
// Air director
|
||||
translate([18,0,7])rotate([0,0,30])cube([1,9,10]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
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]);
|
||||
|
||||
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]);
|
||||
translate([-5,4,-11])rotate([45,0,0]) cube([10,5,5]);
|
||||
|
||||
//left cut
|
||||
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([-7,5,-10])rotate([0,0,45])cube([10,10,35]);
|
||||
|
||||
}
|
||||
|
||||
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();
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
translate([ -17.5, 0, 0 ]) cube([ 35, 21, 8 ]); // cover
|
||||
|
|
@ -39,12 +47,12 @@ module inside_cut(){
|
|||
|
||||
module filament_holder(){
|
||||
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 , 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([ 1,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,4 ] ); // corners ; previous cube( [3,15,3 ] )
|
||||
}
|
||||
}
|
||||
module m3_screw(){
|
||||
|
|
@ -56,7 +64,8 @@ module inside_cut(){
|
|||
|
||||
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 ] ) 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(){
|
||||
|
|
@ -69,6 +78,8 @@ module inside_cut(){
|
|||
nut_trap();
|
||||
}
|
||||
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();
|
||||
|
|
|
|||
|
|
@ -1,13 +1,20 @@
|
|||
module dxf_holder(){
|
||||
linear_extrude(height = 8, center = true, convexity = 5)
|
||||
import (file = "spool holdahMK3.dxf", layer = "0");
|
||||
}
|
||||
module 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();
|
||||
// PRUSA iteration3
|
||||
// Spool holder
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module dxf_holder(){
|
||||
linear_extrude(height = 8, center = true, convexity = 5)
|
||||
import (file = "spool holdahMK3.dxf", layer = "0");
|
||||
}
|
||||
module 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();
|
||||
|
|
|
|||
|
|
@ -9,66 +9,61 @@ use <bearing.scad>
|
|||
use <extruder-body.scad>
|
||||
|
||||
|
||||
//translate([-34,31,0]) rotate([0,180,180]) ext_body();
|
||||
|
||||
module x_carriage_base(){
|
||||
// Small bearing holder
|
||||
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1);
|
||||
// Long bearing holder
|
||||
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2);
|
||||
// Base plate
|
||||
translate([-33,-12,0]) cube([33,68.5,7]);
|
||||
// upper motor srew block
|
||||
translate([-19,56.8,0]) rotate([0,0,0]) cube([28.5,16.2,12]);
|
||||
// Small bearing holder
|
||||
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1);
|
||||
// Long bearing holder
|
||||
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2);
|
||||
// Base plate
|
||||
translate([-33,-12,0]) cube([33,68.5,7]);
|
||||
// upper motor screw block
|
||||
translate([-19,56.8,0]) rotate([0,0,0]) cube([28.5,16.2,12]);
|
||||
|
||||
// Extruder cable tray
|
||||
difference(){
|
||||
union(){
|
||||
translate([-33/2 - 2.5-11.5,-17-3,3])cube([11.5,14,22]);
|
||||
translate([-33/2 + 2.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,-9,3])cube([5,2,22]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
translate([-33/2 +7,-22,-8]) rotate([0,-25,0]) cube([5,10,22]);
|
||||
translate([-33/2 -11.5,-22,-6.5]) rotate([0,25,0]) cube([5,10,22]);
|
||||
// hotend cables guide
|
||||
difference(){
|
||||
union(){
|
||||
//body
|
||||
translate([-33/2 - 2.5-11.5,-17-3,3])cube([11.5,14,22]);
|
||||
translate([-33/2 + 2.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,-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 -11.5,-23,-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]);
|
||||
translate([-33/2 +10,-22,25]) rotate([0,45,0]) cube([8,20,8]);
|
||||
//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);
|
||||
|
||||
translate([-33/2 -15,-16.5,-8])rotate([30,0,0])cube([35,9.75,25]);
|
||||
|
||||
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]);
|
||||
|
||||
//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);
|
||||
translate([-16.5+12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25);
|
||||
// Belt holder base
|
||||
translate([-42.5,20,0]) cube([52,16,7]);
|
||||
|
||||
// Endstop trigger nipple
|
||||
difference(){
|
||||
union(){
|
||||
// belt holders
|
||||
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);
|
||||
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.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(){
|
||||
union(){
|
||||
translate([2,27,0]) cube([10,6,15]);
|
||||
|
|
@ -91,77 +86,68 @@ module x_carriage_base(){
|
|||
// Belt Insert L
|
||||
difference(){
|
||||
union(){
|
||||
translate([-33,3,00]){scale([-1,1,1]){
|
||||
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([-33,3,00]){
|
||||
scale([-1,1,1])
|
||||
{
|
||||
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(){
|
||||
// Small bearing holder holes cutter
|
||||
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes(1);
|
||||
// Long bearing holder holes cutter
|
||||
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes(2);
|
||||
// Small bearing holder holes cutter
|
||||
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes(1);
|
||||
// Long bearing holder holes cutter
|
||||
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes(2);
|
||||
|
||||
// Extruder mounting holes
|
||||
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,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,-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,-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,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,-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);
|
||||
|
||||
// Carriage alignment
|
||||
// translate([-33,24.5-6-0.25,-0.01])cube([33,3.5,1.25]);
|
||||
|
||||
// Cables keepout
|
||||
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([+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([-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(){
|
||||
// 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]);
|
||||
// Belt Smooth insert
|
||||
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]);
|
||||
|
||||
// Bottom ĺeft corner
|
||||
translate([-34,2,0]) translate([2,-11.5,-1]) rotate([0,0,-145]) translate([0,-15,0]) cube([30,30,34]);
|
||||
// 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([-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]);
|
||||
// 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]);
|
||||
// Belt Smooth insert
|
||||
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]);
|
||||
|
||||
// Bottom ĺeft corner
|
||||
translate([-34,2,0]) translate([2,-11.5,-1]) rotate([0,0,-145]) translate([0,-15,0]) cube([30,30,34]);
|
||||
// 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([-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([-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([-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);
|
||||
}
|
||||
|
||||
module 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]);
|
||||
|
||||
//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,10+3,-1])cube([5.5,11,6]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module upper_ziptie_holder()
|
||||
module final_cutout()
|
||||
{
|
||||
|
||||
// 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([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([-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(){
|
||||
difference(){
|
||||
union(){
|
||||
difference()
|
||||
{
|
||||
x_carriage_base();
|
||||
x_carriage_holes();
|
||||
x_carriage_fancy();
|
||||
}
|
||||
{
|
||||
x_carriage_base();
|
||||
x_carriage_holes();
|
||||
x_carriage_fancy();
|
||||
}
|
||||
cable_tray();
|
||||
upper_ziptie_holder();
|
||||
}
|
||||
|
||||
final_cutout();
|
||||
}
|
||||
}
|
||||
|
||||
// belt keepout
|
||||
//%translate([-42-9,30-16,7])cube([70,16,10]);
|
||||
|
||||
module final_part()
|
||||
{
|
||||
|
||||
difference(){
|
||||
union(){
|
||||
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]);
|
||||
translate([5,-10.3,-1]) rotate([0,45,0]) cube([0.3,0.5,8]);
|
||||
translate([6,-16.5,-1]) cube([1,0.5,5]);
|
||||
translate([3,-16.5,-1]) cube([2,0.5,5]);
|
||||
translate([6,-10.2,-1]) cube([1,0.5,5]);
|
||||
translate([3,-10.2,-1]) cube([2,0.5,5]);
|
||||
translate([6,7.5,-1]) cube([1,0.5,5]);
|
||||
translate([6,10.5,-1]) cube([1,0.5,5]);
|
||||
// extruder cables holder
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
// body
|
||||
translate([-22,8.3,7]) cube([7,15,16]);
|
||||
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([-50 ,-50,8])cube([100,100,30]);
|
||||
translate([-19,22,5]) cube([0.5,5,14]);
|
||||
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();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,72 +1,111 @@
|
|||
// PRUSA iteration3
|
||||
// X end idler
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <x-end.scad>
|
||||
|
||||
|
||||
|
||||
module x_end_idler_holes(){
|
||||
x_end_holes();
|
||||
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=[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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module waste_pocket(){
|
||||
// waste pocket
|
||||
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,-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);
|
||||
|
||||
|
||||
//M3 thread
|
||||
translate([-15,8.5,6]) 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.4, $fn=30);
|
||||
|
||||
//M3 heads
|
||||
translate([-15,11.5,6]) 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=2.9, $fn=30);
|
||||
|
||||
//M3 nut traps
|
||||
translate([-17.9,0.5,52-3-1.6]) cube([5.8,3.1,20]);
|
||||
translate([-17.9,0.5,-10+1.5+1.6]) cube([5.8,3.1,16]);
|
||||
}
|
||||
|
||||
|
||||
module x_end_idler_base(){
|
||||
union(){
|
||||
difference(){
|
||||
x_end_base();
|
||||
x_end_idler_holes();
|
||||
}
|
||||
translate([-15,8.5,6]) rotate([90,0,0]) cylinder( h=11, r=6, $fn=30);
|
||||
translate([-15,8.5,51]) rotate([90,0,0]) cylinder( h=11, r=6, $fn=30);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module x_end_idler(){
|
||||
mirror([0,1,0])
|
||||
difference(){
|
||||
x_end_idler_base();
|
||||
waste_pocket();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//difference(){
|
||||
x_end_idler();
|
||||
//translate([-15,-50,0]) cube([100,100,100]);
|
||||
//}
|
||||
|
||||
|
||||
// PRUSA iteration3
|
||||
// X end idler
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <x-end.scad>
|
||||
|
||||
|
||||
|
||||
module x_end_idler_holes(){
|
||||
x_end_holes();
|
||||
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=[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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module waste_pocket(){
|
||||
// waste pocket
|
||||
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,-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);
|
||||
|
||||
|
||||
//M3 thread
|
||||
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.7, $fn=30);
|
||||
|
||||
//M3 heads
|
||||
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=3, $fn=30);
|
||||
|
||||
//M3 nut traps
|
||||
translate([-17.9,0.5,52-3-1.6]) cube([6,3,20]);
|
||||
translate([-17.9,0.5,-10+1.5+1.6]) cube([6,3,16]);
|
||||
}
|
||||
|
||||
|
||||
module x_end_idler_base(){
|
||||
union(){
|
||||
difference(){
|
||||
x_end_base();
|
||||
x_end_idler_holes();
|
||||
}
|
||||
translate([-15,10.5,6]) rotate([90,0,0]) cylinder( h=13, 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])
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
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()
|
||||
{
|
||||
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();
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,104 +1,159 @@
|
|||
// PRUSA iteration3
|
||||
// X end motor
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <x-end.scad>
|
||||
|
||||
module x_end_motor_base(){
|
||||
x_end_base();
|
||||
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
|
||||
}
|
||||
|
||||
module x_end_motor_endstop_base(){
|
||||
translate([-23.5,-28.5,58]){
|
||||
difference(){
|
||||
// Base block
|
||||
cube([17,18.2,4]);
|
||||
// Nice edge
|
||||
translate([-1,10,10])rotate([-45,0,0])cube(20,20,20);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module x_end_motor_endstop_holes(){
|
||||
translate([-23.5,-28.5,58]){
|
||||
translate([17/2,7.5,-3]){
|
||||
// Back screw hole for endstop
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module x_end_motor_holes(){
|
||||
x_end_holes();
|
||||
// Position to place
|
||||
translate(v=[-1,32,30.25]){
|
||||
// Belt hole
|
||||
translate(v=[-14,1,0]) cube(size = [10,46,22], center = true);
|
||||
// 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=[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=[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=[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=[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,12,10]) cube(size = [60,42,42], center = true);
|
||||
|
||||
// Material saving cutout
|
||||
translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
|
||||
// Motor shaft cutout
|
||||
//#translate(v=[0,0,0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
|
||||
}
|
||||
}
|
||||
|
||||
// Motor shaft cutout
|
||||
module x_end_motor_shaft_cutout(){
|
||||
union(){
|
||||
difference(){
|
||||
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,-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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 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();
|
||||
|
||||
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);
|
||||
//#translate([-16,-40,0])cube([50,100,100]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
x_end_motor();
|
||||
// PRUSA iteration3
|
||||
// X end motor
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <x-end.scad>
|
||||
|
||||
module x_end_motor_base(){
|
||||
x_end_base();
|
||||
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
|
||||
}
|
||||
|
||||
module x_end_motor_endstop_base(){
|
||||
translate([-23.5,-28.5,58]){
|
||||
difference(){
|
||||
// Base block
|
||||
cube([17,18.2,4]);
|
||||
// Nice edge
|
||||
translate([-1,10,10])rotate([-45,0,0])cube(20,20,20);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module x_end_motor_endstop_holes(){
|
||||
translate([-23.5,-28.5,58]){
|
||||
translate([17/2,7.5,-3]){
|
||||
// Back 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);
|
||||
// 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
|
||||
translate(v=[-14,1,0]) cube(size = [10,46,22], center = true);
|
||||
// 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=[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=[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=[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=[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,12,10]) cube(size = [60,42,42], center = true);
|
||||
|
||||
// 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(){
|
||||
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,-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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module selective_infill()mirror([0,1,0]) translate([-50, -33, 0.6])
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
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()
|
||||
{
|
||||
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]); // 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,87 +1,99 @@
|
|||
// PRUSA iteration3
|
||||
// X end prototype
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <bearing.scad>
|
||||
use <polyholes.scad>
|
||||
rod_distance = 45;
|
||||
|
||||
module x_end_base(){
|
||||
// Main block
|
||||
height = 58;
|
||||
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
|
||||
// Bearing holder
|
||||
vertical_bearing_base();
|
||||
//Nut trap
|
||||
// Cylinder
|
||||
translate(v=[0,-17,0]) poly_cylinder(h = 8, r=12.5, $fn=25);
|
||||
// Hexagon
|
||||
//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);
|
||||
}
|
||||
|
||||
module x_end_holes(){
|
||||
vertical_bearing_holes();
|
||||
// Belt hole
|
||||
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);
|
||||
|
||||
|
||||
|
||||
// Nice edges
|
||||
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true);
|
||||
translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true);
|
||||
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true);
|
||||
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) 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);
|
||||
|
||||
// TR Nut trap
|
||||
// Hole for the nut
|
||||
translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 6.6, $fn = 25);
|
||||
|
||||
// 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);
|
||||
|
||||
// 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.3, $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);
|
||||
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]);
|
||||
}
|
||||
|
||||
|
||||
// Final prototype
|
||||
module x_end_plain(){
|
||||
difference(){
|
||||
x_end_base();
|
||||
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);
|
||||
}
|
||||
//translate(v=[0,-diameter/2-2,length/2]) cube(size = [diameter,1,length], center = true);
|
||||
}
|
||||
|
||||
// PRUSA iteration3
|
||||
// X end prototype
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <bearing.scad>
|
||||
use <polyholes.scad>
|
||||
rod_distance = 45;
|
||||
|
||||
module x_end_base(){
|
||||
// Main block
|
||||
height = 58;
|
||||
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
|
||||
// Bearing holder
|
||||
vertical_bearing_base();
|
||||
//Nut trap
|
||||
// Cylinder
|
||||
translate(v=[0,-17,0]) poly_cylinder(h = 8, r=12.5, $fn=25);
|
||||
// Hexagon
|
||||
//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);
|
||||
|
||||
rotate([90,0,-15,]) translate ([-1, 8, 24])linear_extrude(height = 4) polygon( points=[[0,0],[0,12],[8,0]] ); //vzpera lozisek
|
||||
rotate([90,0,-50,]) translate ([9, 8, -0.6])linear_extrude(height = 4) polygon( points=[[0,0],[0,12],[8,0]] );
|
||||
|
||||
}
|
||||
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]] ); //vzpera lozisek
|
||||
|
||||
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
|
||||
|
||||
}
|
||||
|
||||
//reinforcement_selective_infill();
|
||||
|
||||
module x_end_holes(){
|
||||
vertical_bearing_holes();
|
||||
// Belt hole
|
||||
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);
|
||||
|
||||
|
||||
|
||||
// Nice edges
|
||||
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true);
|
||||
translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true);
|
||||
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true);
|
||||
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Bottom pushfit rod
|
||||
translate(v=[-15,-41,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);
|
||||
|
||||
// TR Nut trap
|
||||
// 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);
|
||||
|
||||
// Screw holes for TR nut
|
||||
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -1]) cylinder(h = 10, r = 1.8, $fn=25);
|
||||
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -1]) cylinder(h = 10, r = 1.8, $fn=25);
|
||||
|
||||
// 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);
|
||||
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]);
|
||||
}
|
||||
|
||||
|
||||
// Final prototype
|
||||
module x_end_plain(){
|
||||
difference(){
|
||||
x_end_base();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,12 +14,11 @@ translate([-10, 23, -1 ]) cube([ 52, 3, 15 ]);
|
|||
|
||||
module belt_holders()
|
||||
{
|
||||
|
||||
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, 11 ]) cylinder( h=3 , r1=3.5, r2=2.5, $fn=30 ); // lower belt holder cone
|
||||
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
|
||||
}
|
||||
|
||||
module screws()
|
||||
|
|
@ -41,15 +40,16 @@ module screws()
|
|||
translate([35.5, 15, 4.5 ]) cube([ 6, 7, 6 ]);
|
||||
}
|
||||
|
||||
belt_holders();
|
||||
//belt_holders();
|
||||
module main()
|
||||
|
||||
{
|
||||
difference()
|
||||
{
|
||||
main_body();
|
||||
|
||||
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([-20, 9, 2]) cube([ 28, 2.1, 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([-2, 10, 11 ]) rotate([45,0,0]) cube([ 10, 5, 5 ]);
|
||||
|
||||
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
|
||||
|
|
@ -81,6 +67,49 @@ screws();
|
|||
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();
|
||||
|
||||
|
||||
|
|
@ -1,65 +1,92 @@
|
|||
// PRUSA iteration3
|
||||
// Y frame corners
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
module corner_base(){
|
||||
translate([-9,-11,0])cube([18,22,49]);
|
||||
}
|
||||
|
||||
module corner_holes(){
|
||||
translate([-11,-11,0]){
|
||||
// Bottom hole
|
||||
translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
|
||||
// Top hole
|
||||
translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.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
|
||||
translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30);
|
||||
|
||||
// Top smooth rod insert
|
||||
// Smooth rod place
|
||||
translate([11,2.75,47]) rotate([0,90,90]) cylinder(h = 9.75, r=4.2, $fn=30);
|
||||
// Ziptie
|
||||
translate([-5,6,41]) cube([30,3.5,2]);
|
||||
|
||||
// LM8UU keepout
|
||||
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]);
|
||||
}
|
||||
translate([21,12.5,62-0.2]) rotate([0,90,90]) cube([20,20,0.2]);
|
||||
translate([21,12.5,42]) rotate([0,90,90]) cube([0.2,20,20]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module corner_fancy(){
|
||||
// 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]);
|
||||
rotate([0,0,90]){
|
||||
translate([-9.5,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
|
||||
rotate([90,0,0]) corner();
|
||||
// PRUSA iteration3
|
||||
// Y frame corners
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
module corner_base(){
|
||||
translate([-9,-11,0])cube([18,22,49]);
|
||||
|
||||
}
|
||||
|
||||
module corner_holes(){
|
||||
translate([-11,-11,0]){
|
||||
// Bottom hole
|
||||
translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
|
||||
// Top hole
|
||||
translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.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);
|
||||
// Bottom hole bridge
|
||||
translate([0,8.8,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=2.6, $fn=6);
|
||||
// Top hole bridge
|
||||
translate([0,8.8,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=2.6, $fn=6);
|
||||
|
||||
// Washer hole
|
||||
translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30);
|
||||
|
||||
// Top smooth rod insert
|
||||
// Smooth rod place
|
||||
translate([11,2.75,47]) rotate([0,90,90]) cylinder(h = 10, r=4.2, $fn=30);
|
||||
// Ziptie
|
||||
translate([-5,6,41]) cube([30,3.5,2]);
|
||||
|
||||
// LM8UU keepout
|
||||
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]);
|
||||
}
|
||||
|
||||
translate([21,12.5,57]) rotate([0,90,90]) cube([15.2,20,20]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module corner_fancy(){
|
||||
// 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]);
|
||||
rotate([0,0,90]){
|
||||
translate([-9.5,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
||||
}
|
||||
}
|
||||
|
||||
module selective_infill(){
|
||||
|
||||
translate([7,2,0.8])cube([0.2,33,5]);
|
||||
translate([-7,2,0.8])cube([0.2,33,5]);
|
||||
|
||||
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();
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,80 +1,100 @@
|
|||
// PRUSA iteration3
|
||||
// Y motor mount
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
//include <configuration.scad>
|
||||
|
||||
module y_motor_base(){
|
||||
// Motor holding part
|
||||
translate(v = [29,-21+50,0]){
|
||||
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);
|
||||
translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
||||
translate([-21,7,0]) rotate([0,0,45]) cube([2, 2, 10]);
|
||||
|
||||
//end stop
|
||||
translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
||||
translate([-12,0,0]) cube([7, 15, 10]);
|
||||
translate([-16,16,0]) cube([6, 5, 10]);
|
||||
translate([-21+6,8,0]) cube([12-2, 5, 28]);
|
||||
translate([-21+6-2,8-5,0]) cube([4, 10, 28]);
|
||||
translate([-21+9.5-2,7,0]) rotate([0,0,45]) cube([2, 2, 28]);
|
||||
// Joins motor holder and rod plate
|
||||
translate(v = [-29,-21,0]) cube(size = [14,30,10]);
|
||||
}
|
||||
// Front holding part
|
||||
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(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
|
||||
}
|
||||
|
||||
module y_motor_holes(){
|
||||
translate(v = [29,-21+50,0]){
|
||||
// Screw head holes
|
||||
translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
||||
translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
||||
// Screw holes
|
||||
translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
|
||||
translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30);
|
||||
}
|
||||
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
|
||||
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,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);
|
||||
|
||||
// endstop corner cutout
|
||||
translate([-5-2,30,28]) rotate([0,45,0]) cube([15, 19, 15]);
|
||||
translate([-1,41,10]) cube([15, 5, 19]);
|
||||
translate([27,33,0]) rotate([0,0,45]) cube([5, 5, 28]);
|
||||
translate([12-2,28,10.01]) rotate([0,0,45]) cube([5, 5, 28]);
|
||||
|
||||
translate([19,32,0]) rotate([0,30,0]) cube([8, 20, 18]);
|
||||
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]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//#translate([18,40,10]) cube([8, 5, 5]);
|
||||
|
||||
// Final part
|
||||
module y_motor(){
|
||||
difference(){
|
||||
y_motor_base();
|
||||
y_motor_holes();
|
||||
}
|
||||
}
|
||||
|
||||
y_motor();
|
||||
// PRUSA iteration3
|
||||
// Y motor mount
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
//include <configuration.scad>
|
||||
|
||||
module y_motor_base(){
|
||||
|
||||
union()
|
||||
{
|
||||
// Motor holding part
|
||||
translate(v = [29,-21+50,0]){
|
||||
|
||||
difference()
|
||||
{
|
||||
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);
|
||||
translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
||||
translate([-21,7,0]) rotate([0,0,45]) cube([2, 2, 10]);
|
||||
|
||||
//end stop
|
||||
translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
||||
translate([-12,0,0]) cube([7, 15, 10]);
|
||||
translate([-16,16,0]) cube([6, 5, 10]);
|
||||
translate([-21+6,8,0]) cube([12-2, 5, 28]);
|
||||
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
|
||||
translate(v = [-29,-21,0]) cube(size = [14,30,10]);
|
||||
}
|
||||
//selective infill
|
||||
translate([-14.5,5,0.3]) cube([0.1,5.5,27]);
|
||||
translate([-16.5,5,0.3]) cube([0.1,5.5,27]);
|
||||
translate([-18.5,5,0.3]) cube([0.1,5.5,25]);
|
||||
translate([-10,9,1]) cube([0.1,3,26.3]);
|
||||
translate([-8,9,6]) cube([0.1,3,21.3]);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
// Front holding part
|
||||
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(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
|
||||
}
|
||||
|
||||
module y_motor_holes(){
|
||||
translate(v = [29,-21+50,0]){
|
||||
// Screw head holes
|
||||
translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
||||
translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
||||
// Screw holes
|
||||
translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
|
||||
translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30);
|
||||
}
|
||||
translate(v = [0,10,-1]) cylinder(h = 12, r=4.2, $fn=50);
|
||||
translate(v = [0,30,-1]) cylinder(h = 12, r=4.2, $fn=50);
|
||||
|
||||
//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,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);
|
||||
|
||||
// endstop corner cutout
|
||||
translate([-10,30,28]) rotate([0,45,0]) cube([15, 19, 15]);
|
||||
translate([-1,41,10]) cube([15, 5, 19]);
|
||||
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]);
|
||||
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();
|
||||
|
||||
|
|
|
|||
|
|
@ -13,49 +13,46 @@ module z_bottom_base(){
|
|||
}
|
||||
|
||||
module z_bottom_fancy(){
|
||||
// corner cutouts
|
||||
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([-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([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([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-1.5,10-1.5,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]);
|
||||
//translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]);
|
||||
// Stiffner cut out
|
||||
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]);
|
||||
// corner cutouts
|
||||
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([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([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,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
||||
|
||||
// Stiffner cut out
|
||||
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]);
|
||||
}
|
||||
|
||||
module z_bottom_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+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);
|
||||
// Frame mounting screw holes
|
||||
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+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
||||
|
||||
// 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+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-3.1,10+20+5]) cube([10,6.2,10]);
|
||||
// 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+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-3.1,10+20+5]) cube([10,6.2,10]);
|
||||
|
||||
// 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-1,3,0.6]) cube([2,10,7]); // it's bit up because it helps with printing
|
||||
// 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 = 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
|
||||
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([0,0,-1]) cylinder(h = 20, r=12, $fn=30);
|
||||
// motor mounting
|
||||
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([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_left();
|
||||
|
||||
z_bottom_right();
|
||||
z_bottom_left();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,39 +7,35 @@
|
|||
|
||||
|
||||
module z_top_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([38,45,5]); // 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([38,45,5]); // plate touching the base
|
||||
}
|
||||
|
||||
module z_top_fancy(){
|
||||
// Corner cutouts
|
||||
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]);
|
||||
// Corner cutouts
|
||||
translate([0.5,0.5,0]) rotate([0,0,-45-180]) 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([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
|
||||
translate([8,4,10]) rotate([0,-45, 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([8,28,0]) translate([0,0,-1]) cube([50,50,51]);
|
||||
|
||||
translate([38-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
||||
translate([35,26,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); // outer corner
|
||||
translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]);
|
||||
translate([4,0,12]) rotate([0,0, 0]) translate([0,-5,0]) cube([30,50,30]);
|
||||
translate([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
|
||||
translate([8,4,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
|
||||
|
||||
// Stiffner cut out
|
||||
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
|
||||
//easy cleanup fix
|
||||
translate([0.5,0,0.5]) rotate([0,45,0]) translate([-2.5,0,-5]) cube([5,40,5]);
|
||||
translate([38-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
||||
translate([35,26,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); // outer corner
|
||||
translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]);
|
||||
|
||||
// Stiffner cut out
|
||||
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
|
||||
}
|
||||
|
||||
module z_top_holes(){
|
||||
// Screw holes frame
|
||||
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);
|
||||
|
||||
// Screw holes frame
|
||||
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);
|
||||
|
||||
|
||||
// Screw heads
|
||||
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);
|
||||
|
||||
|
||||
|
||||
// odlehceni A
|
||||
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); // odlehceni
|
||||
|
||||
translate([25+4.3,3.2+17,-1]) rotate([0,0,0]) cylinder(h = 50, r=5, $fn=15); // screw hole
|
||||
// material saving cut
|
||||
translate([16,10,-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);
|
||||
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-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(){
|
||||
translate([0,-13,0]) mirror([0,1,0])
|
||||
translate([0,-15,0]) mirror([0,1,0])
|
||||
difference(){
|
||||
z_top_base();
|
||||
z_top_fancy();
|
||||
|
|
@ -79,6 +80,7 @@ module z_top_left(){
|
|||
}
|
||||
}
|
||||
|
||||
// Final part
|
||||
z_top_left();
|
||||
z_top_right();
|
||||
// Final parts
|
||||
z_top_left();
|
||||
z_top_right();
|
||||
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ difference()
|
|||
{
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
|
@ -1210,20 +1210,6 @@ solid OpenSCAD_Model
|
|||
vertex -4.68391 -5.20201 7
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 3.5 -6.06218 3
|
||||
|
|
@ -1252,6 +1238,20 @@ solid OpenSCAD_Model
|
|||
vertex 3.5 -6.06218 3
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex -6.39482 -2.84716 0
|
||||
|
|
@ -1266,6 +1266,20 @@ solid OpenSCAD_Model
|
|||
vertex -6.39482 -2.84716 7
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 4.68391 -5.20201 7
|
||||
|
|
@ -1308,20 +1322,6 @@ solid OpenSCAD_Model
|
|||
vertex -3.5 -6.06218 0
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 10 7 3
|
||||
|
|
@ -2071,20 +2071,6 @@ solid OpenSCAD_Model
|
|||
vertex -3.34565 -3.71572 0
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 3.34565 -3.71572 0
|
||||
|
|
@ -2141,6 +2127,20 @@ solid OpenSCAD_Model
|
|||
vertex -4.56773 -2.03368 0
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 3.34565 -3.71572 0
|
||||
|
|
@ -2701,18 +2701,18 @@ solid OpenSCAD_Model
|
|||
vertex 8.30902 -8.58778 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.406737 -0.913545 0
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex 7.80902 -8.95106 0
|
||||
vertex 8 -8.86602 3
|
||||
vertex 7.80902 -8.95106 3
|
||||
vertex 7.5 -8.99452 0
|
||||
vertex 7.60453 -8.99452 3
|
||||
vertex 7.5 -8.99452 3
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.406737 -0.913545 0
|
||||
facet normal 0 -1 -0
|
||||
outer loop
|
||||
vertex 8 -8.86602 3
|
||||
vertex 7.80902 -8.95106 0
|
||||
vertex 8 -8.86602 0
|
||||
vertex 7.60453 -8.99452 3
|
||||
vertex 7.5 -8.99452 0
|
||||
vertex 7.60453 -8.99452 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.587787 -0.809016 0
|
||||
|
|
@ -2729,18 +2729,18 @@ solid OpenSCAD_Model
|
|||
vertex 8.16913 -8.74314 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
facet normal 0.406737 -0.913545 0
|
||||
outer loop
|
||||
vertex 7.5 -8.99452 0
|
||||
vertex 7.60453 -8.99452 3
|
||||
vertex 7.5 -8.99452 3
|
||||
vertex 7.80902 -8.95106 0
|
||||
vertex 8 -8.86602 3
|
||||
vertex 7.80902 -8.95106 3
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 -0
|
||||
facet normal 0.406737 -0.913545 0
|
||||
outer loop
|
||||
vertex 7.60453 -8.99452 3
|
||||
vertex 7.5 -8.99452 0
|
||||
vertex 7.60453 -8.99452 0
|
||||
vertex 8 -8.86602 3
|
||||
vertex 7.80902 -8.95106 0
|
||||
vertex 8 -8.86602 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.207909 -0.978148 0
|
||||
|
|
@ -2897,6 +2897,20 @@ solid OpenSCAD_Model
|
|||
vertex 11.309 -8.58778 0
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 9.83087 -8.74314 0
|
||||
|
|
@ -2925,34 +2939,6 @@ solid OpenSCAD_Model
|
|||
vertex 10 -8.86602 0
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 9.58645 -8.40674 0
|
||||
|
|
@ -2967,20 +2953,6 @@ solid OpenSCAD_Model
|
|||
vertex 9.58645 -8.40674 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.406737 -0.913545 0
|
||||
outer loop
|
||||
vertex 10.809 -8.95106 0
|
||||
|
|
@ -2995,6 +2967,34 @@ solid OpenSCAD_Model
|
|||
vertex 11 -8.86602 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.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
|
||||
outer loop
|
||||
vertex 10.191 -8.95106 0
|
||||
|
|
@ -3009,18 +3009,18 @@ solid OpenSCAD_Model
|
|||
vertex 10.3955 -8.99452 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.406739 -0.913545 0
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex 10 -8.86602 0
|
||||
vertex 10.191 -8.95106 3
|
||||
vertex 10 -8.86602 3
|
||||
vertex 10.3955 -8.99452 0
|
||||
vertex 10.6045 -8.99452 3
|
||||
vertex 10.3955 -8.99452 3
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.406739 -0.913545 -0
|
||||
facet normal 0 -1 -0
|
||||
outer loop
|
||||
vertex 10.191 -8.95106 3
|
||||
vertex 10 -8.86602 0
|
||||
vertex 10.191 -8.95106 0
|
||||
vertex 10.6045 -8.99452 3
|
||||
vertex 10.3955 -8.99452 0
|
||||
vertex 10.6045 -8.99452 0
|
||||
endloop
|
||||
endfacet
|
||||
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.
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
File diff suppressed because it is too large
Load Diff
|
|
@ -1483,20 +1483,6 @@ solid OpenSCAD_Model
|
|||
vertex 7.23607 -12.3511 10
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 3.25047 -13.9291 0
|
||||
|
|
@ -1539,6 +1525,20 @@ solid OpenSCAD_Model
|
|||
vertex 6.5497 -13.0821 0
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 8 10 0
|
||||
|
|
@ -1777,6 +1777,20 @@ solid OpenSCAD_Model
|
|||
vertex 6.14331 13.3773 0
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 7.71911 8.5275 0
|
||||
|
|
@ -1805,32 +1819,18 @@ solid OpenSCAD_Model
|
|||
vertex 7.87433 9.00524 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.684546 0.72897 0
|
||||
facet normal -0.587785 0.809017 0
|
||||
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
|
||||
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.5497 6.91795 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.481754 0.876307 0
|
||||
facet normal -0.587785 0.809017 0
|
||||
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 5.70312 6.38069 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.844328 0.535826 0
|
||||
|
|
@ -1847,34 +1847,6 @@ solid OpenSCAD_Model
|
|||
vertex 7.23607 7.64886 10
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 6.91587 7.26181 0
|
||||
|
|
@ -1889,18 +1861,18 @@ solid OpenSCAD_Model
|
|||
vertex 6.91587 7.26181 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.587785 0.809017 0
|
||||
facet normal -0.481754 0.876307 0
|
||||
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.5497 6.91795 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.587785 0.809017 0
|
||||
facet normal -0.481754 0.876307 0
|
||||
outer loop
|
||||
vertex 6.14331 6.62269 10
|
||||
vertex 6.5497 6.91795 0
|
||||
vertex 5.70312 6.38069 10
|
||||
vertex 6.14331 6.62269 0
|
||||
vertex 5.70312 6.38069 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.368126 0.929776 0
|
||||
|
|
@ -1931,6 +1903,34 @@ solid OpenSCAD_Model
|
|||
vertex 7.50523 8.07298 10
|
||||
endloop
|
||||
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
|
||||
outer loop
|
||||
vertex 3.74884 6.00789 0
|
||||
|
|
@ -1945,18 +1945,18 @@ solid OpenSCAD_Model
|
|||
vertex 3.25047 6.07085 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 -0
|
||||
facet normal -0.684546 0.72897 0
|
||||
outer loop
|
||||
vertex 4.25116 6.00789 0
|
||||
vertex 3.74884 6.00789 10
|
||||
vertex 4.25116 6.00789 10
|
||||
vertex 6.91587 7.26181 0
|
||||
vertex 6.5497 6.91795 10
|
||||
vertex 6.91587 7.26181 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
facet normal -0.684546 0.72897 0
|
||||
outer loop
|
||||
vertex 3.74884 6.00789 10
|
||||
vertex 4.25116 6.00789 0
|
||||
vertex 3.74884 6.00789 0
|
||||
vertex 6.5497 6.91795 10
|
||||
vertex 6.91587 7.26181 0
|
||||
vertex 6.5497 6.91795 0
|
||||
endloop
|
||||
endfacet
|
||||
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.
Binary file not shown.
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
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.
|
|
@ -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.
|
||||
|
||||
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
|
||||
* 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
|
||||
|
|
|
|||
Loading…
Reference in New Issue