Merge 1c749aabe1 into bf050898da
commit
477b055a14
|
|
@ -5,27 +5,30 @@
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
|
// body
|
||||||
difference(){
|
difference(){
|
||||||
union(){
|
union(){
|
||||||
cylinder(r=7,h = 7, $fn=30);
|
cylinder(r=7,h = 7, $fn=30);
|
||||||
translate([2,-8,0]) cube([9.5,18,3]);
|
translate([2,-8,0]) cube([9.5,18,3]);
|
||||||
translate([2,-9,0]) cube([5.5,5,3]);
|
translate([2,-9,0]) cube([5.5,5,3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// rod cutout
|
||||||
translate([0,0,-1]) cylinder(r=5,h = 10, $fn=30);
|
translate([0,0,-1]) cylinder(r=5,h = 10, $fn=30);
|
||||||
translate([-4.5,0,-5]) cube([9,15,15]);
|
translate([-4.5,0,-5]) cube([9,15,15]);
|
||||||
|
|
||||||
|
// LCD cable cut
|
||||||
translate([8,-12,-1]) cube([2,19,5]);
|
translate([8,-12,-1]) cube([2,19,5]);
|
||||||
translate([9,7,-1]) cylinder(r=1,h = 5, $fn=30);
|
translate([9,7,-1]) cylinder(r=1,h = 5, $fn=30);
|
||||||
|
|
||||||
//corners
|
//corners
|
||||||
translate([2,-13.75,-1]) rotate([0,0,45]) cube([5,5,5]);
|
translate([2,-13.75,-1]) rotate([0,0,45]) cube([5,5,5]);
|
||||||
|
|
||||||
translate([4,6,-1]) rotate([0,0,45]) cube([10,10,5]);
|
translate([4,6,-1]) rotate([0,0,45]) cube([10,10,5]);
|
||||||
translate([14,6,-1]) rotate([0,0,45]) cube([10,10,5]);
|
translate([14,6,-1]) rotate([0,0,45]) cube([10,10,5]);
|
||||||
translate([-3,3,-1]) rotate([0,0,45]) cube([5,5,10]);
|
translate([-3,3,-1]) rotate([0,0,45]) cube([5,5,10]);
|
||||||
translate([3,3,3]) rotate([0,0,45]) cube([5,5,10]);
|
translate([3,3,3]) rotate([0,0,45]) cube([5,5,10]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LCD cable cut ends
|
||||||
translate([7.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
|
translate([7.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
|
||||||
translate([10.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
|
translate([10.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
|
||||||
|
|
@ -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()
|
module cutout()
|
||||||
{
|
{
|
||||||
|
|
||||||
translate([ 22, 4 , -2 ]) cylinder( h = 20, r = 1.6, $fn=30); // M3 hole A
|
translate([ 22, 4 , -2 ]) cylinder( h = 20, r = 1.6, $fn=30); // M3 hole A
|
||||||
translate([ 22, 4 , -1 ]) cylinder( h = 10, r = 3.2, $fn=6); // M3 nut body A
|
translate([ 22, 4 , -1 ]) cylinder( h = 10, r = 3.2, $fn=6); // M3 nut body A
|
||||||
translate([ 22, 4 , -1 ]) cylinder( h = 14, r1 = 3.2, r1 = 5, $fn=6); // M3 nut hole fillet A
|
translate([ 22, 4 , -1 ]) cylinder( h = 14, r1 = 3.2, r1 = 5, $fn=6); // M3 nut hole fillet A
|
||||||
|
|
|
||||||
|
|
@ -1,166 +1,176 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// PSU Cover
|
// PSU Cover
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
module PSU_COVER()
|
module CubeAdjust(Xdim, Zdim){
|
||||||
{
|
for (x =[6:11.2:Xdim-12]){
|
||||||
difference(){
|
for (z =[6:11.2:Zdim-12]){
|
||||||
union(){
|
|
||||||
|
translate([x,-0.2,z])cube([10,0.4,10]);
|
||||||
translate([0,0,-1])cube([95,50+15,56]); // Base
|
}
|
||||||
|
}
|
||||||
translate([0,0,-3.5])cube([14-0.5,50+15,5]); // Back pillar 1
|
|
||||||
|
|
||||||
translate([60-0.5,0,-3.5])cube([14,50+15,5]); // Back pillar 2
|
}
|
||||||
|
|
||||||
translate([91+4,0,-1])cube([6,50+15,56]); // Base for bracket
|
module nuttrap(){
|
||||||
|
rotate([0, 180, 0]) difference(){
|
||||||
translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right
|
union(){
|
||||||
|
translate([-4.25,-7.5,0]) difference(){
|
||||||
|
translate([0,0,0]) cube([8.5, 9, 3]);
|
||||||
translate([0,35,46.5])scale([1.2,1,0.2])rotate([-28,-50,-58])cube([45,45,30]);
|
rotate([45,0,0]) cube([11.5,5.7,5.7]);
|
||||||
|
}
|
||||||
|
}
|
||||||
//translate([94,20,13])scale([0.2,1.2,1])rotate([-29,-51,-48])cube([30,35,30]);
|
translate([0,0, -0.2])rotate([0,0,30]) cylinder(r=3.5,h=15-1.5, $fn=6);
|
||||||
//translate([10,25,45])scale([1,1,0.3])rotate([-40,-50,-58])cube([40,30,30]);
|
}
|
||||||
|
}
|
||||||
translate([-1.6,0,0])cube([1.65,65,2]); // Frame skirt 1
|
|
||||||
translate([-1.6,0,0])cube([1.65,30,55]); // Frame skirt 2
|
module PSU_COVER()
|
||||||
translate([-1.6,0,51])cube([1.65,65,4]); // Frame skirt 3
|
{
|
||||||
|
difference(){
|
||||||
}
|
union(){
|
||||||
|
|
||||||
|
translate([0,0,-0.46])cube([95,50+15,54.25]); // Base
|
||||||
//pretty corners
|
|
||||||
translate([-11,-2,-2])rotate([0,0,-45])cube([10,10,58]);
|
translate([0,0,-3.5])cube([14-0.5,50+15,5]); // Back pillar 1
|
||||||
translate([95-3+5+1,-2,-2])rotate([0,0,-45])cube([10,10,58]);
|
|
||||||
|
translate([60-0.5,0,-3.5])cube([14,50+15,5]); // Back pillar 2
|
||||||
translate([-3,-9,-5])rotate([-45,0,0])cube([130,10,10]);
|
|
||||||
translate([-3,-12,56])rotate([-45,0,0])cube([130,10,10]);
|
translate([91+4,0,-0.46])cube([6,50+15,54.25]); // Base for bracket
|
||||||
|
|
||||||
translate([-3,45+15,-5])rotate([-45,0,0])cube([130,10,10]);
|
translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right
|
||||||
translate([-3,48+15,56])rotate([-45,0,0])cube([130,10,10]);
|
|
||||||
|
|
||||||
translate([95-3+3,70,-2])rotate([0,0,-45])cube([10,10,58]);
|
translate([-1.6,0,0])cube([1.65,65,2]); // Frame skirt 1
|
||||||
|
translate([-1.6,0,0])cube([1.65,30,53.78]); // Frame skirt 2
|
||||||
|
translate([-1.6,0,51.32])cube([1.65,65,2.46]); // Frame skirt 3
|
||||||
translate([95,0-10,-20])rotate([0,-45,-45])cube([20,20,20]);
|
|
||||||
translate([95,0-10,45])rotate([0,-45,-45])cube([20,20,20]);
|
}
|
||||||
|
|
||||||
|
|
||||||
translate([95,60,-10])rotate([-35,-45,-45])cube([20,20,20]);
|
//pretty corners
|
||||||
translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]);
|
translate([-11,-2,-2])rotate([0,0,-45])cube([10,10,58]);
|
||||||
|
translate([95-3+5+1,-2,-2])rotate([0,0,-45])cube([10,10,58]);
|
||||||
translate([79,-5,68.5])rotate([0,45,0])cube([20,90,20]);
|
|
||||||
|
translate([-3,-9,-4.46])rotate([-45,0,0])cube([130,10,10]);
|
||||||
translate([79,4,-14.5])rotate([0,45,0])cube([20,90,20]);
|
translate([-3,-12,54.78])rotate([-45,0,0])cube([130,10,10]);
|
||||||
|
|
||||||
|
translate([-3,45+15,-4.46])rotate([-45,0,0])cube([130,10,10]);
|
||||||
translate([-14,-5,68.5])rotate([0,45,0])cube([20,90,20]);
|
translate([-3,48+15,54.78])rotate([-45,0,0])cube([130,10,10]);
|
||||||
|
|
||||||
translate([3,2,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout
|
translate([95-3+3,70,-2])rotate([0,0,-45])cube([10,10,58]);
|
||||||
|
|
||||||
translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout
|
|
||||||
|
translate([95,0-10,-20])rotate([0,-45,-45])cube([20,20,20]);
|
||||||
translate([-3,50-16.4-15.6+15,2])cube([10,100,17]); // right bottom cutout
|
translate([95,0-10,45])rotate([0,-45,-45])cube([20,20,20]);
|
||||||
|
|
||||||
translate([85+2,50-16.4-17.6+15+0.9,2])cube([10,100,50-0.7]); // left bottom cutout
|
|
||||||
|
translate([95,60,-10])rotate([-35,-45,-45])cube([20,20,20]);
|
||||||
translate([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout
|
translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]);
|
||||||
|
|
||||||
translate([5.5,0,0]){
|
translate([79,-5,67.28])rotate([0,45,0])cube([20,90,20]);
|
||||||
translate([45,2,40])cube([27.5,31.9,30]); // socket cutout
|
|
||||||
translate([45-4.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket right hole cutout
|
translate([79,-5,-13.96])rotate([0,45,0])cube([20,90,20]);
|
||||||
translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket left hole cutout
|
|
||||||
|
|
||||||
translate([1,2,44])cube([20,14,30]); // switch cutout
|
translate([-14,-5,67.28])rotate([0,45,0])cube([20,90,20]);
|
||||||
|
|
||||||
translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=3.25,h=15-1.5, $fn=6); // socket left hole cutout nuttrap
|
translate([3,2,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout
|
||||||
translate([45-4.5,2+15.6,40])cylinder(r=3.25,h=15-1.5, $fn=6); // socket left hole cutout nuttrap
|
|
||||||
}
|
translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout
|
||||||
translate([20,50,54.5])linear_extrude(height = 1) {
|
|
||||||
text("Prusa3D", center=true);
|
translate([-3,50-16.4-15.6+15,2])cube([10,100,17]); // right bottom cutout
|
||||||
}
|
|
||||||
|
translate([85+2,50-16.4-17.6+15+0.9,2])cube([10,100,50-0.7]); // left bottom cutout
|
||||||
/*
|
|
||||||
translate([8,40-1+15,40])cylinder(r=2,h=50,$fn=15); // left front mounthole cutout
|
translate([85+2,10,2])rotate([0,0,45]) cube([10*sqrt(2),10*sqrt(2),50-0.7]);
|
||||||
translate([8,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$fn=15);
|
translate([85+2,2,2]) cube([10,18,50-0.7]);
|
||||||
|
|
||||||
translate([87,40-1+15,40])cylinder(r=2,h=50,$fn=15); // right front mounthole cutout
|
translate([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout
|
||||||
translate([87,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$fn=15);
|
|
||||||
*/
|
translate([5.5,0,0]){
|
||||||
|
translate([45,2,40])cube([27.5,31.9,30]); // socket cutout
|
||||||
translate([7-0.5-0.5,40-1+15+0.7,-10])cylinder(r=2,h=50,$fn=15); // left back mounthole cutout
|
translate([45-4.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket right hole cutout
|
||||||
translate([7-0.5-0.5,40-1+15+0.7,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
|
translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket left hole cutout
|
||||||
|
|
||||||
translate([67.5-0.7-0.5,43.5-1+15+0.5,-10])cylinder(r=2,h=50,$fn=15); // right back mounthole cutout
|
translate([1,2,44])cube([20,14,30]); // switch cutout
|
||||||
translate([67.5-0.7-0.5,43.5-1+15+0.5,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
|
|
||||||
|
translate([45-4.5+37-0.5,2+15.6,39.1]) rotate([0,0,30]) cylinder(r=3.25,h=15-2.8, $fn=6); // socket left hole cutout nuttrap
|
||||||
|
translate([45-4.5,2+15.6,39.1]) rotate([0,0,30]) cylinder(r=3.25,h=15-2.8, $fn=6); // socket left hole cutout nuttrap
|
||||||
translate([130,32+26,55-4-25])rotate([0,-90,0])cylinder(r=2.5,h=50,$fn=35); // Left side bracket screw hole
|
}
|
||||||
translate([101.1,32+26,55-4-25])rotate([0,-90,0])cylinder(r2=2.5, r1=4.1,h=3,$fn=15);
|
|
||||||
|
translate([7-0.5-0.5,40-1+15+0.7,-10])cylinder(r=2,h=50,$fn=15); // left back mounthole cutout
|
||||||
for(i=[0:10]){
|
translate([7-0.5-0.5,40-1+15+0.7,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
|
||||||
translate([20+i,6,-10])cylinder(r=3,h=50); // left back mounthole cutout
|
|
||||||
}
|
translate([67.5-0.7-0.5,43.5-1+15+0.5,-10])cylinder(r=2,h=50,$fn=15); // right back mounthole cutout
|
||||||
|
translate([67.5-0.7-0.5,43.5-1+15+0.5,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
|
||||||
|
|
||||||
|
|
||||||
}
|
translate([130,32+26,55-4-25])rotate([0,-90,0])cylinder(r=2.5,h=50,$fn=35); // Left side bracket screw hole
|
||||||
}
|
translate([101.1,32+26,55-4-25])rotate([0,-90,0])cylinder(r2=2.5, r1=4.1,h=3,$fn=15);
|
||||||
|
translate([-0.3,0,-1.2])CubeAdjust(102,54.25);
|
||||||
module PSU_Y_REINFORCEMENT()
|
|
||||||
{
|
for(i=[0:9]){
|
||||||
difference()
|
translate([20+i,6.5,-10])cylinder(r=3.5,h=50); // left back mounthole cutout
|
||||||
{
|
}
|
||||||
union() // base shape
|
|
||||||
{
|
|
||||||
translate([ 59.5, 0, -18 ]) cube([ 33, 6, 19 ]); // reinforcement plate
|
}
|
||||||
translate([ 73.5, 5, -18 ]) cube([ 5, 16, 19 ]); // vertical_reinforcement
|
}
|
||||||
}
|
|
||||||
union () // cutouts
|
module PSU_Y_REINFORCEMENT()
|
||||||
{
|
{
|
||||||
|
difference()
|
||||||
//translate([ 88-0.5, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A1
|
{
|
||||||
//translate([ 88, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A
|
union() // base shape
|
||||||
//translate([ 88+0.5, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A2
|
{
|
||||||
|
translate([ 59.5, 0, -18 ]) cube([ 33, 6, 19 ]); // reinforcement plate
|
||||||
//translate([ 68-0.5, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B1
|
translate([ 73.5, 5, -18 ]) cube([ 5, 16, 19 ]); // vertical_reinforcement
|
||||||
//translate([ 68, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B
|
}
|
||||||
//translate([ 68+0.5, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B2
|
union () // cutouts
|
||||||
|
{
|
||||||
translate([ 87.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
|
|
||||||
translate([ 52.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
|
|
||||||
translate([ 68.5, 20, -34 ]) rotate([ 45, 0, 0 ]) cube([ 15, 23, 20 ]); //vertical reinf cutout
|
// corner cuts
|
||||||
|
translate([ 87.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
|
||||||
|
translate([ 52.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
|
||||||
|
|
||||||
|
// angled vertical support
|
||||||
translate([ 88, 8, -11.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
|
translate([ 68.5, 20, -34 ]) rotate([ 45, 0, 0 ]) cube([ 15, 23, 20 ]); //vertical reinf cutout
|
||||||
translate([ 68, 8, -11.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
|
|
||||||
|
// bottom surface cuts
|
||||||
translate([ 88, 8, -9.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
|
translate([ 66.2, -0.2, -5])cube([23.6, 0.4, 5.6]);
|
||||||
translate([ 68, 8, -9.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
|
translate([ 68 + 1.8 +2.6, -0.2, -7.7 -5.6])cube([11.2, 0.4, 5.6]);
|
||||||
|
|
||||||
translate([ 86.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
|
|
||||||
translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
|
translate([ 88, 8, -11.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
|
||||||
|
translate([ 68, 8, -11.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
|
||||||
|
|
||||||
}
|
translate([ 88, 8, -9.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
|
||||||
}
|
translate([ 68, 8, -9.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
|
||||||
}
|
|
||||||
|
translate([ 86.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
|
||||||
module FINAL_PART(){
|
translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
|
||||||
union()
|
|
||||||
{
|
|
||||||
PSU_COVER();
|
|
||||||
PSU_Y_REINFORCEMENT();
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FINAL_PART();
|
|
||||||
|
module FINAL_PART(){
|
||||||
|
union()
|
||||||
|
{
|
||||||
|
PSU_COVER();
|
||||||
|
PSU_Y_REINFORCEMENT();
|
||||||
|
translate([82.5,2+15.6,39.1+13.5]) nuttrap();
|
||||||
|
translate([46,2+15.6,39+13.5]) nuttrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FINAL_PART();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// RAMBo cover base
|
// RAMBo base
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
|
|
@ -9,254 +9,315 @@
|
||||||
|
|
||||||
// main body
|
// main body
|
||||||
module main_body(){
|
module main_body(){
|
||||||
cube( [ 114.5 , 92 , 2 ] );
|
// side panel
|
||||||
cube( [ 1.5 , 92 , 35 ] );
|
cube( [ 118.5 , 92 , 2 ] );
|
||||||
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
|
|
||||||
translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.5 ] );
|
|
||||||
|
|
||||||
translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] );
|
// upper panel
|
||||||
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
|
cube( [ 1.5 , 92 , 35 ] );
|
||||||
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
|
// rear panel
|
||||||
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
|
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
|
||||||
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] );
|
// heatbed ziptie reinforcement
|
||||||
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] );
|
translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.5 ] );
|
||||||
translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] );
|
|
||||||
|
|
||||||
// RAMBo mounting holes
|
// upper panel frame reinforcement
|
||||||
translate( [ 102.5 , 14 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
|
translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] );
|
||||||
translate( [ 102.5 , 75 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
|
|
||||||
translate( [ 7.5 , 14 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
|
|
||||||
translate( [ 7.5 , 75 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
|
|
||||||
|
|
||||||
// corners reinforcement
|
// side panel reinforcement
|
||||||
translate( [ 0 , 75 , 1 ] ) cube( [ 13 , 16 , 6 ] );
|
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
|
||||||
translate( [ 0 , 70.25 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
|
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
|
||||||
translate( [ 0 , 7.75 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
|
|
||||||
translate( [ 0 , 0 , 1 ] ) cube( [ 13 , 14 , 6 ] );
|
|
||||||
|
|
||||||
// frame mounting screw blocks
|
difference()
|
||||||
translate( [ 98 , 0 , 0 ] ) cube( [ 16.5 , 8 , 8 ] );
|
{
|
||||||
translate( [ 1 , 0 , 0 ] ) cube( [ 19.5 , 8 , 8 ] );
|
// bottom side reinforcement
|
||||||
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 8, r = 5, $fn=30);
|
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
|
||||||
translate( [ 110.5 , 8 , 5 ] ) rotate([90,90,0]) cylinder( h = 8, r = 5, $fn=30);
|
translate( [ 96 , 79 , 0 ] ) rotate([0,0,45]) cube( [ 7.5 , 6 , 36 ] );
|
||||||
translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 8 , 5.5] );
|
|
||||||
|
|
||||||
// heatbed filament holder body
|
|
||||||
translate( [ 81.6 , 90.35 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 5, $fn=6);
|
|
||||||
|
|
||||||
// door closing corner
|
|
||||||
translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
|
|
||||||
|
|
||||||
translate( [ 2 , 85 , 31 ] ) cube( [ 6 , 7 , 4] );
|
|
||||||
translate( [ 4 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
|
|
||||||
translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module inside_cable_holder(){
|
|
||||||
|
|
||||||
translate( [ 50 , 6 , 0.5 ] ) cube( [ 30, 2, 20] );
|
|
||||||
difference(){
|
|
||||||
translate( [ 50 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 30, r = 6, $fn=6);
|
|
||||||
translate( [ 49 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 34, r = 4, $fn=6);
|
|
||||||
translate( [ 49 , 8 , 10 ] ) cube( [ 34, 10, 25] );
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] );
|
||||||
|
|
||||||
|
// screw mounting block
|
||||||
|
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] );
|
||||||
|
|
||||||
|
// frame side panel
|
||||||
|
translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] );
|
||||||
|
|
||||||
|
// RAMBo mounting holes
|
||||||
|
translate( [ 102.5 , 14 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
|
||||||
|
translate( [ 102.5 , 75 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
|
||||||
|
translate( [ 7.5 , 14 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
|
||||||
|
translate( [ 7.5 , 75 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
|
||||||
|
|
||||||
|
// corners reinforcement
|
||||||
|
translate( [ 0 , 75 , 1 ] ) cube( [ 13 , 16 , 6 ] );
|
||||||
|
translate( [ 0 , 70.25 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
|
||||||
|
translate( [ 0 , 7.75 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
|
||||||
|
translate( [ 0 , 0 , 1 ] ) cube( [ 13 , 14 , 6 ] );
|
||||||
|
|
||||||
|
// frame mounting screw blocks
|
||||||
|
//upper
|
||||||
|
translate( [ 1 , 0 , 0 ] ) cube( [ 28 , 4 , 10 ] );
|
||||||
|
translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 4 , 5.5] );
|
||||||
|
|
||||||
|
//lower
|
||||||
|
translate( [ 98 , 0 , 0 ] ) cube( [ 20.5 , 4 , 10 ] );
|
||||||
|
|
||||||
|
// heatbed filament holder body
|
||||||
|
translate( [ 81.6 , 90.35 , 24 ] ) rotate([0,90,0]) cylinder( h = 18, r = 5, $fn=6);
|
||||||
|
|
||||||
|
// door closing corner
|
||||||
|
translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
|
||||||
|
|
||||||
|
// doors pin upper
|
||||||
|
translate( [ 2 , 85 , 31 ] ) cube( [ 6 , 7 , 4] );
|
||||||
|
translate( [ 4 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
|
||||||
|
|
||||||
|
// x-axis cables entry hole body
|
||||||
|
translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module ventilation_holes()
|
||||||
|
{
|
||||||
|
for ( i = [-6 : 8] ){
|
||||||
|
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+50,1.2]);
|
||||||
|
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19,10]);
|
||||||
|
translate([46 + (i*5.5),10.5+25,-1]) cube([3.65,19,10]);
|
||||||
|
translate([46 + (i*5.5),10.5+50,-1]) cube([3.65,19,10]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module cutouts(){
|
module cutouts(){
|
||||||
// side
|
// side
|
||||||
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
|
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
|
||||||
|
|
||||||
// RAMBo M3 screws
|
// RAMBo M3 screws
|
||||||
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
|
||||||
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
|
||||||
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
|
||||||
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
|
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
|
||||||
|
|
||||||
|
translate( [ 7.5 , 14 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
|
||||||
|
translate( [ 102.5 , 14 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
|
||||||
|
translate( [ 102.5 , 75 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
|
||||||
|
translate( [ 7.5 , 75 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
|
||||||
|
|
||||||
|
translate( [ 2 , 0 , 0 ] )ventilation_holes();
|
||||||
|
|
||||||
// frame mounting screws
|
// frame mounting screws
|
||||||
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
|
//upper
|
||||||
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
|
translate( [ 18.5, -2 , 15.6 ] ) rotate([0,45,0]) cube( [ 15 , 10 , 10] );
|
||||||
translate( [ 16.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
|
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
|
||||||
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
|
translate( [ 16.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
|
||||||
translate( [ 114.5 , -2 , -1 ] ) cube( [ 5 , 15 , 10] );
|
translate( [ 15.15 , -2 , 5 ] ) cube( [ 2.7 , 15 , 10] );
|
||||||
|
translate( [ 15.1 , -2 , 7 ] ) rotate([0,5,0]) cube( [ 2.8 , 15 , 10] );
|
||||||
// USB connector hole
|
translate( [ 15.1 , -2 , 7 ] ) rotate([0,-5,0]) cube( [ 2.8 , 15 , 10] );
|
||||||
translate( [ -1 , 41.5 , 11 ] ) cube( [ 5.5 , 13 , 11 ] );
|
|
||||||
|
|
||||||
// reset button
|
|
||||||
translate( [ -2 , 65 , 14 ] ) rotate([0,90,0]) cylinder( h = 10, r = 2, $fn=30);
|
|
||||||
|
|
||||||
// door closing screw
|
|
||||||
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.8, $fn=30);
|
|
||||||
|
|
||||||
|
|
||||||
// heatbed cable opening hole
|
//lower
|
||||||
translate( [ 75.5 , 94 , 24 ] ) rotate([90,90,0]) cylinder( h = 5, r = 7, $fn=6);
|
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
|
||||||
translate( [ 77.6 , 80 , 20.5 ] ) cube( [ 4 , 15 , 15] );
|
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
|
||||||
translate( [ 69.4 , 95 , 27.5 ] ) rotate([90,60,0]) cube( [ 5 , 10 , 10] );
|
translate( [ 118.5 , -2 , 6 ] ) rotate([0,-45,0]) cube( [ 5 , 15 , 15] );
|
||||||
|
translate( [ 94.5 , -2 , 8.5 ] ) rotate([0,45,0]) cube( [ 5 , 8 , 15] );
|
||||||
|
translate( [ 0 , -2 , -5 ] ) cube( [ 120 , 15 , 5] );
|
||||||
|
translate( [ 109.15 , -2 , 5 ] ) cube( [ 2.7 , 15 , 10] );
|
||||||
|
translate( [ 109.3 , -2 , 6.5 ] ) rotate([0,5,0]) cube( [ 2.5 , 15 , 10] );
|
||||||
|
translate( [ 109.2 , -2 , 6.5 ] ) rotate([0,-5,0]) cube( [ 2.5 , 15 , 10] );
|
||||||
|
|
||||||
// heatbed cable ziptie holes
|
// USB connector hole
|
||||||
translate( [ 64 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
|
translate( [ -1 , 41.5 , 11 ] ) cube( [ 5.5 , 13 , 11 ] );
|
||||||
translate( [ 64 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
|
|
||||||
|
// reset button
|
||||||
|
translate( [ -2 , 65 , 14 ] ) rotate([0,90,0]) cylinder( h = 10, r = 2, $fn=30);
|
||||||
|
|
||||||
|
// door closing screw
|
||||||
|
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.9, $fn=30);
|
||||||
|
|
||||||
|
|
||||||
|
// heatbed cable opening hole
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
translate( [ 75.5 , 94 , 24 ] ) rotate([90,90,0]) cylinder( h = 5, r = 7, $fn=6);
|
||||||
|
translate( [ 71 , 80 , 13.5 ] ) cube( [ 8 , 15 , 5] );
|
||||||
|
}
|
||||||
|
translate( [ 73 , 80 , 20.5 ] ) cube( [ 5 , 15 , 15] );
|
||||||
|
|
||||||
|
|
||||||
|
// heatbed cable ziptie holes
|
||||||
|
translate( [ 64 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
|
||||||
|
translate( [ 64 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// heatbed filament holder hole
|
// heatbed filament holder hole
|
||||||
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 1.6, $fn=30);
|
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 1.8, $fn=30);
|
||||||
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 2, r = 2, r2=1.6, $fn=30);
|
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 2, r = 2, r2=1.8, $fn=30);
|
||||||
translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] );
|
translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] );
|
||||||
|
|
||||||
|
|
||||||
// nut traps
|
// nut traps HEX
|
||||||
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
translate( [ 7.5 , 14 , -1 ] ){
|
||||||
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
cylinder( h = 4, r = 3.2, $fn=6);
|
||||||
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
|
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
}
|
||||||
|
|
||||||
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
translate( [ 102.5 , 14 , -1 ] ){
|
||||||
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
cylinder( h = 4, r = 3.2, $fn=6);
|
||||||
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=30);
|
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate( [ 102.5 , 75 , -1 ] ){
|
||||||
|
cylinder( h = 4, r = 3.2, $fn=6);
|
||||||
|
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
}
|
||||||
|
|
||||||
// door closing corners
|
translate( [ 7.5 , 75 , -1 ] ){
|
||||||
translate( [ 8 , 80 , 28 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 10] );
|
cylinder( h = 4, r = 3.2, $fn=6);
|
||||||
translate( [ 106 , 81 , 4 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 40] );
|
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
||||||
|
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
||||||
|
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
||||||
|
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
|
||||||
|
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=30);
|
||||||
|
|
||||||
|
// door closing corners
|
||||||
|
translate( [ 8 , 80 , 28 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 10] );
|
||||||
|
translate( [ 106 , 81 , 4 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 40] );
|
||||||
|
|
||||||
// x axis cable hole
|
// inner edges cutout
|
||||||
translate( [ 89 , 2 , -1 ] ) cylinder( h = 10, r = 4, $fn=6);
|
translate( [ 54 , 79.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
|
||||||
translate( [ 80 , -5 , -1 ] ) cube( [ 15, 5, 10] );
|
translate( [ 70 , 82.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
|
||||||
|
translate( [ 6 , 80 , 7 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 24] );
|
||||||
|
translate( [ 5.5 , 4 , 7 ] ) rotate([0,0,45]) cube( [ 3 , 5 , 29] );
|
||||||
|
|
||||||
|
// x axis cable hole
|
||||||
|
translate( [ 89 , 2 , -1 ] ) cylinder( h = 10, r = 4, $fn=6);
|
||||||
|
translate( [ 80 , -5 , -1 ] ) cube( [ 15, 5, 10] );
|
||||||
|
|
||||||
|
// large corner coutout
|
||||||
|
translate( [ -27 , 80 , -54 ] ) rotate([50,0,45]) cube( [ 50, 50, 50] );
|
||||||
|
translate( [ 137.5 , 60 , -10 ] ) rotate([0,0,45]) cube( [ 50, 50, 50] );
|
||||||
|
|
||||||
// large corner coutout
|
|
||||||
translate( [ -25 , 80 , -54 ] ) rotate([50,0,45]) cube( [ 50, 50, 50] );
|
|
||||||
translate( [ 137.5 , 60 , -10 ] ) rotate([0,0,45]) cube( [ 50, 50, 50] );
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module ext_ziptie(){
|
// extruder cable holder
|
||||||
difference(){
|
|
||||||
translate( [ -6 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 3, r = 15, $fn=30);
|
|
||||||
translate( [ -7 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 5, r = 7, $fn=30);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
module ext_cable_holder()
|
module ext_cable_holder()
|
||||||
{
|
{
|
||||||
difference()
|
difference()
|
||||||
{
|
{
|
||||||
|
// body
|
||||||
union(){
|
union(){
|
||||||
rotate([90,0,0]) translate([-8, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 7, r2=10, $fn=6);
|
rotate([90,0,0]) translate([-8, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 8, r2=11, $fn=6);
|
||||||
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 10, r2=10, $fn=6);
|
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 11, r2=11, $fn=6);
|
||||||
rotate([90,0,0]) translate( [ 1.5 , 26 , -28 ] ) rotate([0,90,0]) cylinder( h = 10, r1 = 10, r2=7, $fn=6);
|
rotate([90,0,0]) translate( [ 1.5 , 26 , -28 ] ) rotate([0,90,0]) cylinder( h = 10, r1 = 13, r2=7.5, $fn=6);
|
||||||
translate( [ -4.1 , 28 , 17.5 ] ) rotate([0,45,0]) cube( [ 7 , 5 , 8 ] );
|
translate( [-4, 28, 16.5 ] ) rotate([0,45,0]) cube( [ 6 , 5.5 , 7 ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// upper cut
|
||||||
translate( [ -15 , 13 , 15] ) cube( [ 15 , 15 , 25 ] );
|
translate( [ -15 , 13 , 15] ) cube( [ 15 , 15 , 25 ] );
|
||||||
translate( [ 1.5 , 26 , 10] ) cube( [ 15 , 15 , 25 ] );
|
// lower cut
|
||||||
|
translate( [ 1.5 , 26 , 10] ) cube( [ 15 , 15 , 26 ] );
|
||||||
|
|
||||||
|
// ziptie holder
|
||||||
difference(){
|
difference(){
|
||||||
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 3.5, r = 8, $fn=30);
|
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 3.5, r = 8.5, $fn=30);
|
||||||
rotate([90,0,0]) translate([-5, 26, -28]) rotate([0,90,0]) cylinder( h = 5.5, r = 6.5, $fn=30);
|
rotate([90,0,0]) translate([-5, 26, -28]) rotate([0,90,0]) cylinder( h = 5.5, r = 6.2, $fn=30);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module rambo_cover()
|
module rambo_cover()
|
||||||
{
|
{
|
||||||
difference()
|
ext_cable_holder();
|
||||||
{
|
difference(){
|
||||||
main_body();
|
main_body();
|
||||||
cutouts();
|
cutouts();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
difference(){
|
||||||
|
union(){
|
||||||
|
// extruder cable filament holder body
|
||||||
|
translate( [ 4.5 , 25.5 , 26 ] ) rotate([0,90,0]) cylinder( h = 7, r = 3.5, $fn=6);
|
||||||
|
translate( [ 4.5 , 22.5 , 22.5] ) cube( [ 7 , 3 , 7 ] );
|
||||||
|
translate( [ 4.5 , 23.5 , 20.8] ) cube( [ 7 , 2.5 , 7 ] );
|
||||||
|
translate( [ 4.5 , 24.7 , 26 ] ) rotate([0,90,0]) cylinder( h = 7, r = 3, $fn=30);
|
||||||
|
}
|
||||||
|
// extruder filament inner hole
|
||||||
|
translate( [ -5 , 25 , 26 ] ) rotate([0,90,0]) cylinder( h = 20, r = 1.75, $fn=30);
|
||||||
|
translate( [ 4, 25 , 26 ] ) rotate([0,90,0]) cylinder( h =3, r1 = 1.9, r2=1.75, $fn=30);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
difference(){
|
difference(){
|
||||||
|
|
||||||
union(){
|
|
||||||
rambo_cover();
|
rambo_cover();
|
||||||
translate( [ 10 , 89 , 3] ) cube( [ 6 , 1 , 32 ] );
|
|
||||||
translate( [ 12 , 89 , 1] ) cube( [ 4 , 1 , 2 ] );
|
|
||||||
}
|
|
||||||
|
|
||||||
translate( [ 25 ,89 , 20.8] ) cube( [ 7.4 , 5 , 16 ] ); //Cube018
|
|
||||||
translate( [ 25 , 95 , 25 ] ) rotate([90,90,0]) cylinder( h = 7, r = 8.5, $fn=6);
|
|
||||||
|
|
||||||
// extruder cable zipties
|
// upper extruder cable opening
|
||||||
translate( [ 11 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
|
translate( [ -5 , 28 , 26 ] ) rotate([0,90,-15]) cylinder( h = 20, r = 1.4, $fn=30);
|
||||||
translate( [ 11 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
|
|
||||||
|
|
||||||
|
// main hole
|
||||||
|
translate( [ -10 , 28 , 26 ] ) rotate([0,90,0]) cylinder( h = 24, r = 5.5, $fn=30);
|
||||||
|
// cable opening slot
|
||||||
|
translate( [ -15 , 26.5 , 30 ] ) cube( [ 30 , 3 , 10 ] );
|
||||||
|
|
||||||
|
// flatten on door side
|
||||||
|
translate( [ -15 , 20 , 35 ] ) cube( [ 30 , 20 , 20 ] );
|
||||||
|
|
||||||
|
// opening slot cuts
|
||||||
|
translate( [ -1.5 , 26 , 33] ) rotate([45,0,45]) cube( [ 3 , 3 , 3 ] );
|
||||||
|
translate( [ 1 , 28 , 33] ) rotate([45,0,45]) cube( [ 3 , 3 , 3 ] );
|
||||||
|
|
||||||
|
|
||||||
|
// screw body edge
|
||||||
|
translate( [ 65 ,74.2 , 2] ) rotate([0,0,45]) cube( [ 10 , 10 , 50 ] );
|
||||||
|
|
||||||
|
// lightening slots
|
||||||
|
translate( [ 100 ,21 , 2] ) cube( [ 5 , 48 , 5 ] );
|
||||||
|
translate( [ 3 ,21 , 2] ) cube( [ 4.5, 48 , 5 ] );
|
||||||
|
|
||||||
|
|
||||||
|
// bottom holes print supports
|
||||||
|
translate( [ 7.5 , 14 ,0] ){
|
||||||
|
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
|
||||||
|
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate( [ 102.5 , 14 ,0] ){
|
||||||
|
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
|
||||||
|
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate( [ 102.5 , 75 ,0] ){
|
||||||
|
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
|
||||||
|
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate( [ 7.5 , 75 ,0] ){
|
||||||
|
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
|
||||||
|
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate( [ 58.5 , 88 ,0] ){
|
||||||
|
intersection(){cylinder(r=3.2, h=10, $fn=30);
|
||||||
|
translate( [ 0 , 0 , 2.5 ] ) cube([3.8,8,2], center=true);}
|
||||||
|
translate( [ 0 , 0 , 3 ] ) cube([3.8,3.8,2], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module extruder_filament_holder()
|
|
||||||
{
|
|
||||||
difference(){
|
|
||||||
translate( [ 33 , 90 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 8, $fn=4);
|
|
||||||
translate( [ 30 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 1.6, $fn=30);
|
|
||||||
translate( [ 32 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 3, r1 = 2, r2=1.6, $fn=30);
|
|
||||||
translate( [ 26 ,79 , 20.8] ) cube( [ 30 , 5 , 16 ] );
|
|
||||||
translate( [ 26 ,91 , 15] ) cube( [ 30 , 15 , 16 ] );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extruder_filament_holder();
|
|
||||||
|
|
||||||
// print part support
|
|
||||||
translate([0,1,0])
|
|
||||||
difference(){
|
|
||||||
translate( [ 18 ,90 , 15] ) cube( [ 7 , 1 , 19 ] );
|
|
||||||
translate( [ 17 ,90.6 , 29.4] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
|
|
||||||
translate( [ 30 ,90.6 , 13.1] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
|
|
||||||
translate( [ 30 ,89 , 13] ) rotate([0,-60,0]) cube( [ 10 , 3 , 10 ] );
|
|
||||||
|
|
||||||
translate( [ 20 ,100, 20 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
|
|
||||||
translate( [ 21 ,99, 31 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// print part support
|
|
||||||
difference()
|
|
||||||
{
|
|
||||||
translate( [ 70 ,90.5 , 15] ) cube( [ 7.5 , 1 , 19 ] );
|
|
||||||
translate( [ 69 ,91 , 27.8] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
|
|
||||||
translate( [ 80 ,91 , 13.9] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
|
|
||||||
translate( [ 81.5 ,90 , 10] ) rotate([0,-60,0]) cube( [ 10 , 2 , 10 ] );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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()
|
difference()
|
||||||
{
|
{
|
||||||
union(){
|
union(){
|
||||||
|
// body
|
||||||
cylinder( h = 26, r = 2.4, $fn=30);
|
cylinder( h = 26, r = 2.4, $fn=30);
|
||||||
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
|
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
|
||||||
translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 11 , 21 ] );
|
translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 11 , 21 ] );
|
||||||
}
|
}
|
||||||
translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.7, $fn=30);
|
// M3 screw hole
|
||||||
translate( [ -2 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
|
translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
|
||||||
|
translate( [ -1.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
|
||||||
|
// angle cut
|
||||||
translate([-2.9,-20,-1]) rotate([0,0,60]) cube([25,5,26]);
|
translate([-2.9,-20,-1]) rotate([0,0,60]) cube([25,5,26]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -25,17 +28,20 @@ module lower_hinge()
|
||||||
difference()
|
difference()
|
||||||
{
|
{
|
||||||
union(){
|
union(){
|
||||||
|
// body
|
||||||
translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30);
|
translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30);
|
||||||
translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30);
|
translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30);
|
||||||
translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
|
translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
|
||||||
translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 11 , 10 ] );
|
translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 11 , 10 ] );
|
||||||
}
|
}
|
||||||
translate( [ -1 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
|
// M3 screw
|
||||||
translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.5, $fn=30);
|
translate( [ -0.5 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
|
||||||
|
translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
|
||||||
|
// angle cut
|
||||||
translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]);
|
translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
upper_hinge();
|
upper_hinge();
|
||||||
lower_hinge();
|
lower_hinge();
|
||||||
|
|
|
||||||
|
|
@ -1,81 +1,82 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// Bearing holders
|
// Bearing holders
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
use <polyholes.scad>
|
use <polyholes.scad>
|
||||||
|
|
||||||
bearing_diameter = 14.5;
|
bearing_diameter = 14.95;
|
||||||
|
|
||||||
module horizontal_bearing_base(bearings=1){
|
module horizontal_bearing_base(bearings=1){
|
||||||
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
|
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
|
||||||
}
|
}
|
||||||
module horizontal_bearing_holes(bearings=1){
|
module horizontal_bearing_holes(bearings=1){
|
||||||
cutter_lenght = 10+bearings*25;
|
cutter_lenght = 10+bearings*25;
|
||||||
one_holder_lenght = 8+25;
|
one_holder_lenght = 8+25;
|
||||||
holder_lenght = 8+bearings*25;
|
holder_lenght = 8+bearings*25;
|
||||||
|
|
||||||
// Main bearing cut
|
// Main bearing cut
|
||||||
difference(){
|
difference(){
|
||||||
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
|
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
|
||||||
// Bearing retainers
|
// Bearing retainers
|
||||||
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||||
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ziptie cutouts
|
// Ziptie cutouts
|
||||||
ziptie_cut_ofset = 0;
|
ziptie_cut_ofset = 0;
|
||||||
for ( i = [0 : bearings-1] ){
|
for ( i = [0 : bearings-1] ){
|
||||||
// For easier positioning I move them by half of one
|
// For easier positioning I move them by half of one
|
||||||
// bearing holder then add each bearign lenght and then center again
|
// bearing holder then add each bearign lenght and then center again
|
||||||
translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){
|
translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){
|
||||||
union(){
|
union(){
|
||||||
translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||||
translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||||
}
|
}
|
||||||
translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
|
translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module horizontal_bearing_test(){
|
module horizontal_bearing_test(){
|
||||||
difference(){
|
difference(){
|
||||||
horizontal_bearing_base(1);
|
horizontal_bearing_base(1);
|
||||||
horizontal_bearing_holes(1);
|
horizontal_bearing_holes(1);
|
||||||
}
|
}
|
||||||
translate(v=[30,0,0]) difference(){
|
translate(v=[30,0,0]) difference(){
|
||||||
horizontal_bearing_base(2);
|
horizontal_bearing_base(2);
|
||||||
#horizontal_bearing_holes(2);
|
#horizontal_bearing_holes(2);
|
||||||
}
|
}
|
||||||
translate(v=[60,0,0]) difference(){
|
translate(v=[60,0,0]) difference(){
|
||||||
horizontal_bearing_base(3);
|
horizontal_bearing_base(3);
|
||||||
horizontal_bearing_holes(3);
|
horizontal_bearing_holes(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
thinwall = 3;
|
thinwall = 3;
|
||||||
bearing_size = bearing_diameter + 2 * thinwall;
|
bearing_size = bearing_diameter + 2 * thinwall;
|
||||||
|
|
||||||
module vertical_bearing_base(){
|
module vertical_bearing_base(){
|
||||||
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true);
|
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true);
|
||||||
cylinder(h = 58, r=bearing_size/2, $fn = 90);
|
cylinder(h = 58, r=bearing_size/2, $fn = 90);
|
||||||
}
|
}
|
||||||
|
|
||||||
module vertical_bearing_holes(){
|
module vertical_bearing_holes(){
|
||||||
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2)+0.1);
|
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2));
|
||||||
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
|
translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5);
|
||||||
|
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
|
||||||
}
|
|
||||||
|
}
|
||||||
//difference(){
|
|
||||||
vertical_bearing_base();
|
//difference(){
|
||||||
vertical_bearing_holes();
|
//vertical_bearing_base();
|
||||||
//}
|
vertical_bearing_holes();
|
||||||
//horizontal_bearing_test();
|
//}
|
||||||
//horizontal_bearing_base(1);
|
//horizontal_bearing_test();
|
||||||
|
//horizontal_bearing_base(1);
|
||||||
//horizontal_bearing_holes(1);
|
//horizontal_bearing_holes(1);
|
||||||
|
|
@ -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>
|
// PRUSA iteration3
|
||||||
|
// Extruder-body
|
||||||
|
// GNU GPL v3
|
||||||
module ext_body(){
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
difference(){
|
// http://prusamendel.org
|
||||||
extruder_body();
|
|
||||||
extruder_mount_holes();
|
|
||||||
}
|
use <extruder-main.scad>
|
||||||
|
|
||||||
}
|
|
||||||
|
module m3nut()
|
||||||
ext_body();
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
cube([2,6,8]);
|
||||||
|
translate([-0.5,3,3]) rotate([0,90,0]) cylinder(r=1.25, h=3, $fn=20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module ext_body(){
|
||||||
|
|
||||||
|
difference(){
|
||||||
|
extruder_body();
|
||||||
|
extruder_mount_holes();
|
||||||
|
|
||||||
|
// PINDA entry hole
|
||||||
|
translate([-5.5,37,6])rotate([90,0,0])cylinder(r=4.4, h=4, $fn=20);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
ext_body();
|
||||||
|
|
||||||
|
// remove old pinda
|
||||||
|
translate([-20,26,-2]) cube([20,30,30]);
|
||||||
|
|
||||||
|
// screw end larger hole
|
||||||
|
translate([-20,40,12])rotate([0,90,0])cylinder(r=1.5, h=24, $fn=20);
|
||||||
|
translate([2,40,11.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
translate([2,40,12])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
translate([2,40,12.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
|
||||||
|
// M3 nuts
|
||||||
|
translate([0,46,9]) m3nut();
|
||||||
|
translate([0,37,9]) m3nut();
|
||||||
|
}
|
||||||
|
|
||||||
|
module ex_body()
|
||||||
|
{
|
||||||
|
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
|
||||||
|
union()
|
||||||
|
{
|
||||||
|
// body
|
||||||
|
// round body
|
||||||
|
translate([-5.5,36.5,6])rotate([-90,0,0])cylinder(r=8.5, h=19, $fn=20);
|
||||||
|
// body block
|
||||||
|
translate([-13,36.5,5]) cube([17,19,10]);
|
||||||
|
translate([-13,36.5,15]) cube([5,19,1]);
|
||||||
|
|
||||||
|
// extruder body joint
|
||||||
|
translate([-0,33.5,0]) cube([3,2,15]);
|
||||||
|
translate([0,34,0]) cube([4,3,15]);
|
||||||
|
translate([0,35.5,0]) rotate([0,0,45]) cube([2,2,15]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// PINDA lower hole
|
||||||
|
translate([-5.5,50,6])rotate([-90,0,0])cylinder(r=4.1, h=40, $fn=20);
|
||||||
|
|
||||||
|
// M3 screws
|
||||||
|
translate([-20,49,12])rotate([0,90,0])cylinder(r=1.5, h=24, $fn=20);
|
||||||
|
translate([-20,40,12])rotate([0,90,0])cylinder(r=1.5, h=24, $fn=20);
|
||||||
|
translate([-14,49,12])rotate([0,90,0])cylinder(r=3, h=5, $fn=20);
|
||||||
|
translate([-14,40,12])rotate([0,90,0])cylinder(r=3, h=5, $fn=20);
|
||||||
|
|
||||||
|
// lower M3 screw end opening
|
||||||
|
translate([2,49,11.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
translate([2,49,12])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
translate([2,49,12.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
|
||||||
|
// upper M3 screw end opening
|
||||||
|
translate([2,40,11.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
translate([2,40,12])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
translate([2,40,12.5])rotate([0,90,0])cylinder(r=1.5, h=3, $fn=20);
|
||||||
|
|
||||||
|
// M3 nuts opening
|
||||||
|
translate([0,46,9]) m3nut();
|
||||||
|
translate([0,37,9]) m3nut();
|
||||||
|
|
||||||
|
// flat bottom side
|
||||||
|
translate([-20,33,-10]) cube([30,35,10]);
|
||||||
|
|
||||||
|
// slot
|
||||||
|
translate([-6,33,8]) cube([1,25,10]);
|
||||||
|
|
||||||
|
// 45 / 30 deg edges
|
||||||
|
translate([-15,32,12]) rotate([45,0,0]) cube([15,10,10]);
|
||||||
|
translate([-20,55,13]) rotate([45,0,0]) cube([25,3,5]);
|
||||||
|
|
||||||
|
translate([-2,45,-1]) rotate([0,30,0]) cube([15,15,15]);
|
||||||
|
translate([7,46,-1]) rotate([0,0,30]) cube([15,11,25]);
|
||||||
|
|
||||||
|
//PINDA mounting hole
|
||||||
|
translate([-5.5,60,6])rotate([90,0,0])cylinder(r=4.2, h=30, $fn=20);
|
||||||
|
translate([-5.5,41,6])rotate([90,0,0])cylinder(r=4.4, h=5, $fn=20);
|
||||||
|
|
||||||
|
// bottom cut
|
||||||
|
translate([-15,54.5,-1]) cube([20 , 8,20]);
|
||||||
|
|
||||||
|
|
||||||
|
for ( i = [0 : 14] )
|
||||||
|
{
|
||||||
|
translate([-5.5,39+i,6])rotate([90,0,0])cylinder(r1=4.5, r2=3, h=1, $fn=20);
|
||||||
|
translate([-5.5,40+i,6])rotate([90,0,0])cylinder(r1=3, r2=4.5, h=1, $fn=20);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ex_body();
|
||||||
|
|
@ -1,16 +1,23 @@
|
||||||
use <extruder-main.scad>
|
// PRUSA iteration3
|
||||||
|
// Extruder cover
|
||||||
module ext_cover(){
|
// GNU GPL v3
|
||||||
difference(){
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
extruder_cover();
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
extruder_mount_holes();
|
// http://prusamendel.org
|
||||||
|
|
||||||
// Easy assembly trim
|
use <extruder-main.scad>
|
||||||
cube([50,50,15.2]);
|
|
||||||
translate([-1,-10+0.2,0])cube([50,10,40]);
|
module ext_cover(){
|
||||||
|
difference(){
|
||||||
}
|
extruder_cover();
|
||||||
|
extruder_mount_holes();
|
||||||
}
|
|
||||||
|
|
||||||
|
// Easy assembly trim
|
||||||
|
translate([5,56,29.3])rotate([0,0,0])cylinder(r1=1.5, r2=1.9, h=1, $fn=20);
|
||||||
|
cube([50,50,15.2]);
|
||||||
|
translate([-1,-10+0.2,0])cube([50,10,40]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ext_cover();
|
ext_cover();
|
||||||
|
|
@ -1,78 +1,81 @@
|
||||||
|
// PRUSA iteration3
|
||||||
|
// Extruder idler
|
||||||
module part_body(){
|
// GNU GPL v3
|
||||||
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
//bottom round edge
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
translate([ -7, 4, 6 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
|
// http://prusamendel.org
|
||||||
translate([ -7, 4, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
|
|
||||||
|
module part_body(){
|
||||||
translate([ 11, 8, 4 ]) cube([3.5,4,6]);
|
|
||||||
|
//bottom round edge
|
||||||
difference()
|
translate([ -7, 4, 6 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
|
||||||
{
|
translate([ -7, 4, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
|
||||||
translate([ -7, 0, 4 ]) cube([21.5,5,6]);
|
translate([ 11, 8, 4 ]) cube([3.5,4,6]);
|
||||||
translate([ -8, -1, 8 ]) rotate([45,0,0]) cube([25,5,6]);
|
|
||||||
}
|
|
||||||
|
difference()
|
||||||
translate([ -7, 8, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
|
{
|
||||||
|
translate([ -7, 0, 4 ]) cube([21.5,5,6]);
|
||||||
translate([ 11, 0, 4]) cube([3.5,12,2]);
|
translate([ -8, -1, 8 ]) rotate([45,0,0]) cube([25,5,6]);
|
||||||
|
}
|
||||||
translate([ 11, 4, 8]) cube([3.5,4,2]);
|
|
||||||
translate([ 11, 4, 0]) cube([3.5,4,2]);
|
translate([ -7, 8, 4 ]) rotate([0,90,0]) cylinder(r=4, h=21.5, $fn=200 );
|
||||||
|
translate([ 11, 0, 4]) cube([3.5,12,2]);
|
||||||
|
translate([ 11, 4, 8]) cube([3.5,4,2]);
|
||||||
// body
|
translate([ 11, 4, 0]) cube([3.5,4,2]);
|
||||||
translate([ -7, 4, 0 ]) cube([18,10,10]);
|
|
||||||
translate([ -7, 0, 4 ]) cube([18,32,2]);
|
|
||||||
translate([ -5, 4, 3 ]) cube([10,48,7]);
|
// body
|
||||||
translate([ -11, 11, 0 ]) cube([22,28,10]);
|
translate([ -7, 4, 0 ]) cube([18,10,10]);
|
||||||
translate([ -9, 11, 0 ]) cube([18,30,10]);
|
translate([ -7, 0, 4 ]) cube([18,32,2]);
|
||||||
|
translate([ -5, 4, 3 ]) cube([10,48,7]);
|
||||||
// upper round edges
|
translate([ -11, 11, 0 ]) cube([22,28,10]);
|
||||||
translate([ 9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
translate([ -9, 11, 0 ]) cube([18,30,10]);
|
||||||
translate([ -9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
|
||||||
|
// upper round edges
|
||||||
// upper round piece
|
translate([ 9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
||||||
translate([ 0, 52, 6.5 ]) rotate([0,0,0]) cylinder(r=5, h=7, $fn=200, center=true);
|
translate([ -9, 39, 0 ]) cylinder(r=2, h=10, $fn=25);
|
||||||
}
|
|
||||||
|
// upper round piece
|
||||||
module cut_away(){
|
translate([ 0, 52, 6.5 ]) rotate([0,0,0]) cylinder(r=5, h=7, $fn=200, center=true);
|
||||||
|
}
|
||||||
// axis
|
|
||||||
translate([ 0, 4, 6 ]) rotate([0,90,0]) cylinder(r=1.7, h=30, $fn=200, center=true);
|
module cut_away(){
|
||||||
|
|
||||||
// bolt holes
|
// axis
|
||||||
translate([ 7.5, 35.8, -1 ]) cylinder(r=1.75, h=12, $fn=20);
|
translate([ 0, 4, 6 ]) rotate([0,90,0]) cylinder(r=1.7, h=30, $fn=200, center=true);
|
||||||
translate([ 7.5, 36.5, -1 ]) cylinder(r=1.75, h=12, $fn=20);
|
|
||||||
translate([ 7.5, 37.2, -1 ]) cylinder(r=1.75, h=12, $fn=20);
|
// bolt holes
|
||||||
|
translate([ 7.5, 35.8, -1 ]) cylinder(r=1.75, h=12, $fn=20);
|
||||||
translate([ -7.5, 35.8, -1 ])cylinder(r=1.75, h=12, $fn=20);
|
translate([ 7.5, 36.5, -1 ]) cylinder(r=1.75, h=12, $fn=20);
|
||||||
translate([ -7.5, 36.5, -1 ])cylinder(r=1.75, h=12, $fn=20);
|
translate([ 7.5, 37.2, -1 ]) cylinder(r=1.75, h=12, $fn=20);
|
||||||
translate([ -7.5, 37.2, -1 ])cylinder(r=1.75, h=12, $fn=20);
|
|
||||||
|
translate([ -7.5, 35.8, -1 ])cylinder(r=1.75, h=12, $fn=20);
|
||||||
translate([0,52,0]) sphere(r=5, $fn=20);
|
translate([ -7.5, 36.5, -1 ])cylinder(r=1.75, h=12, $fn=20);
|
||||||
|
translate([ -7.5, 37.2, -1 ])cylinder(r=1.75, h=12, $fn=20);
|
||||||
//bearing hole
|
|
||||||
translate([ 0, 20, 3 ]){
|
translate([0,52,0]) sphere(r=5, $fn=20);
|
||||||
rotate([0,90,0]){
|
|
||||||
cylinder(r=8.5, h=7.5, $fn=200, center=true);
|
//bearing hole
|
||||||
%cylinder(r=8, h=7.5, $fn=200, center=true);
|
translate([ 0, 20, 3 ]){
|
||||||
cylinder(r=2.5, h=17, $fn=200, center=true);
|
rotate([0,90,0]){
|
||||||
}
|
cylinder(r=8.5, h=7.5, $fn=200, center=true);
|
||||||
translate([0,0,-5]) cube([17,5,10], center=true);
|
%cylinder(r=8, h=7.5, $fn=200, center=true);
|
||||||
translate([0,0,-5]) cube([7.5,17,10], center=true);
|
cylinder(r=2.5, h=17, $fn=200, center=true);
|
||||||
}
|
}
|
||||||
}
|
translate([0,0,-5]) cube([17,5,10], center=true);
|
||||||
|
translate([0,0,-5]) cube([7.5,17,10], center=true);
|
||||||
module idler(){
|
}
|
||||||
|
}
|
||||||
// final part
|
|
||||||
translate([0,0,10]) mirror([0,0,1])
|
module idler(){
|
||||||
difference(){
|
|
||||||
part_body();
|
// final part
|
||||||
cut_away();
|
translate([0,0,10]) mirror([0,0,1])
|
||||||
}
|
difference(){
|
||||||
}
|
part_body();
|
||||||
|
cut_away();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
idler();
|
idler();
|
||||||
|
|
@ -1,335 +1,404 @@
|
||||||
module extruder_body(){
|
// PRUSA iteration3
|
||||||
union(){
|
// Extruder main
|
||||||
difference(){
|
// GNU GPL v3
|
||||||
// Main
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
union(){
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
cube([35,44,15]);
|
// http://prusamendel.org
|
||||||
// P.I.N.D.A. Probe mount
|
|
||||||
difference(){
|
|
||||||
translate([-15.5,40,0])cube([21.5,5,14]);
|
module extruder_body(){
|
||||||
translate([9,41,-1]) rotate([0,0,45]) translate([0,-5,-0.1]) cube([10,12,20]);
|
union(){
|
||||||
}
|
difference(){
|
||||||
translate([-7.5,17,0])cube([8,8.5,2]); // P.I.N.D.A. and Fan cable tray guide
|
// Main
|
||||||
//fan nice look
|
union(){
|
||||||
translate([35,0,0]) cube([10,12,15]);
|
cube([35,44,15]);
|
||||||
}
|
// P.I.N.D.A. Probe mount
|
||||||
// Fan nice look edge cut
|
difference(){
|
||||||
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,20]);
|
translate([-15.5,40,0])cube([21.5,5,14]);
|
||||||
|
translate([9,41,-1]) rotate([0,0,45]) translate([0,-5,-0.1]) cube([10,12,20]);
|
||||||
// P.I.N.D.A. Probe mount edge cut
|
}
|
||||||
translate([-28.5,40,5]) rotate([0,30,0]) translate([0,-5,-0.1]) cube([10,12,20]); // Top
|
translate([-7.5,15,0])cube([8,10.5,3]); // P.I.N.D.A. and Fan cable tray guide ;
|
||||||
translate([-33,40,-5]) rotate([0,60,0]) translate([0,-5,-0.1]) cube([12,12,20]); // Bottom
|
|
||||||
|
//fan nice look
|
||||||
|
translate([35,0,0]) cube([10,12,15]);
|
||||||
// P.I.N.D.A. probe mount hole
|
}
|
||||||
translate([35/2,0,6]){
|
// Fan nice look edge cut
|
||||||
translate([-23,35,0])rotate([-90,0,0])cylinder(r=14/2, h=8, $fn=6);
|
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,20]);
|
||||||
translate([-23,32.99,0])rotate([-90,0,0])cylinder(r=14/2, h=7, $fn=20);
|
|
||||||
translate([-23,0,0])rotate([-90,0,0])cylinder(r=8.5/2, h=50, $fn=20);
|
// P.I.N.D.A. Probe mount edge cut
|
||||||
}
|
translate([-28.5,40,5]) rotate([0,30,0]) translate([0,-5,-0.1]) cube([10,12,20]); // Top
|
||||||
|
translate([-33,40,-5]) rotate([0,60,0]) translate([0,-5,-0.1]) cube([12,12,20]); // Bottom
|
||||||
// P.I.N.D.A. and Fan cable tray cut
|
|
||||||
translate([-4.5,20,-1]) cube([4.499,3.5+5,5]);
|
|
||||||
// P.I.N.D.A. and Fan cable tray edge cut
|
// P.I.N.D.A. probe mount hole
|
||||||
translate([-10,22,-1])rotate([0,0,45]) cube([10,5,10]);
|
translate([35/2,0,6]){
|
||||||
translate([-13,16.5,-1])rotate([0,0,-45]) cube([10,5,10]);
|
translate([-23,35,0])rotate([-90,0,0])cylinder(r=14/2, h=8, $fn=6);
|
||||||
|
translate([-23,32.99,0])rotate([-90,0,0])cylinder(r=14/2, h=7, $fn=20);
|
||||||
extruder_nozzle_cut();
|
translate([-23,26,0])rotate([-90,0,0])cylinder(r=8.5/2, h=40, $fn=20);
|
||||||
// larger groove for easy entry
|
}
|
||||||
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=7.13, h=20, $fn=120);
|
|
||||||
|
// P.I.N.D.A. and Fan cable tray cut
|
||||||
// Extruder cables path
|
translate([-4.5,20,-1]) cube([4.499,3.5+5,5]);
|
||||||
translate([33+4,10,-1]) cylinder(r=2, h=17,$fn=30);
|
// P.I.N.D.A. and Fan cable tray edge cut
|
||||||
translate([33+4,12,9]) cube([4,4,20], center=true);
|
translate([-10,22,-1])rotate([0,0,45]) cube([10,5,10]);
|
||||||
|
translate([-13,16.5,-1])rotate([0,0,-45]) cube([10,5,10]);
|
||||||
extruder_nozzle_cooling();
|
|
||||||
|
extruder_nozzle_cut();
|
||||||
}
|
// larger groove for easy entry
|
||||||
|
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=7.13, h=20, $fn=120);
|
||||||
// Cooling grill
|
|
||||||
difference(){
|
// Extruder cables path
|
||||||
union(){
|
translate([33+4,10,-1]) cylinder(r=2, h=17,$fn=30);
|
||||||
// Fins up
|
translate([33+4,12,9]) cube([4,4,20], center=true);
|
||||||
//translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
|
||||||
translate([0,32,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
extruder_nozzle_cooling();
|
||||||
//translate([0,27,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
|
||||||
translate([0,22,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
}
|
||||||
//translate([0,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
|
||||||
|
// Cooling grill
|
||||||
// Structural support
|
difference(){
|
||||||
translate([0,13,11]) rotate([0,0,0]) cube([4,30,1]);
|
union(){
|
||||||
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
|
// Fins up
|
||||||
}
|
//translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
// Trim
|
translate([0,32,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
translate([-35,0,0])cube([35,43,15]);
|
//translate([0,27,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
|
translate([0,22,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
}
|
//translate([0,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
}
|
|
||||||
|
// Structural support
|
||||||
mirror([1,0,0]){
|
translate([0,13,11]) rotate([0,0,0]) cube([4,30,1]);
|
||||||
// Filament visualisation
|
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
|
||||||
%translate([-35/2,-50,15])rotate([-90,0,0])cylinder(r=1.75/2, h=100, $fn=20);
|
}
|
||||||
|
// Trim
|
||||||
// Motor visualisation
|
translate([-35,0,0])cube([35,43,15]);
|
||||||
translate([-42,-42,-1]) %cube([42,42,1]);
|
|
||||||
translate([-21,-21,0])%cylinder(r=2.5, h=20, $fn=30);
|
}
|
||||||
translate([-21,-21,8])%cylinder(r=4, h=13, $fn=30);
|
}
|
||||||
|
|
||||||
// MOTOR
|
mirror([1,0,0]){
|
||||||
difference(){
|
// Filament visualisation
|
||||||
union(){
|
%translate([-35/2,-50,15])rotate([-90,0,0])cylinder(r=1.75/2, h=100, $fn=20);
|
||||||
// base
|
|
||||||
difference(){
|
// Motor visualisation
|
||||||
translate([-42,-42,0]) cube([42,42,30]);
|
translate([-42,-42,-1]) %cube([42,42,1]);
|
||||||
//main cut
|
translate([-21,-21,0])%cylinder(r=2.5, h=20, $fn=30);
|
||||||
translate([-21,-19.5-10-3,-1]) cube([42,23,32]);
|
translate([-21,-21,8])%cylinder(r=4, h=13, $fn=30);
|
||||||
translate([-15,-49.5,-1]) cube([42,23,32]);
|
|
||||||
translate([-51,-33,-1]) rotate([0,65,0]) cube([10,25,10]);
|
// MOTOR
|
||||||
translate([-35/2+3+1.8+0.5,-41,2+3+2.5])cube([42,42,32]);
|
difference(){
|
||||||
//base round cutout
|
union(){
|
||||||
translate([-21,-21,-2]) cylinder(r=11.5, h=33, $fn=200);
|
// base
|
||||||
|
difference(){
|
||||||
//filament hole
|
translate([-42,-42,0]) cube([42,42,30]);
|
||||||
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r=2.5/2, h=20, $fn=20);
|
//main cut
|
||||||
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r2=2.2/2,r1=3.6/2, h=1.5, $fn=20);
|
translate([-21,-19.5-10-3,-1]) cube([42,23,32]);
|
||||||
}
|
translate([-15,-49.5,-1]) cube([42,23,32]);
|
||||||
|
translate([-51,-33,-1]) rotate([0,65,0]) cube([10,25,10]);
|
||||||
//filament guide
|
translate([-35/2+3+1.8+0.5,-41,2+3+2.5])cube([42,42,32]);
|
||||||
translate([-35/2-3,-19,15-4])cube([6,10,6.5]);
|
//base round cutout
|
||||||
difference(){
|
translate([-21,-21,-2]) cylinder(r=11.5, h=33, $fn=200);
|
||||||
union(){
|
|
||||||
translate([-35/2-3,-8.4+2+1.2,0.4]) rotate([45,0,0]) cube([6,15,15]);
|
//filament hole
|
||||||
translate([-35/2-3,-8.4+2+1.2,0.4+6.5]) rotate([45,0,0]) cube([6,15,15]);
|
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r=2.5/2, h=20, $fn=20);
|
||||||
}
|
translate([-35/2,-42,15])rotate([-90,0,0])cylinder(r2=2.2/2,r1=3.6/2, h=1.5, $fn=20);
|
||||||
translate([-35/2-4,-1,2]) cube([8,15,25]);
|
}
|
||||||
|
|
||||||
}
|
//filament guide
|
||||||
}
|
translate([-35/2-3,-19,15-4])cube([6,10,6.5]);
|
||||||
// Filament ptfe guide cutout
|
difference(){
|
||||||
|
union(){
|
||||||
// PTFE secure ring slot
|
translate([-35/2-3,-8.4+2+1.2,0.4]) rotate([45,0,0]) cube([6,15,15]);
|
||||||
translate([-35/2,-3.99,15])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Bottom hole
|
translate([-35/2-3,-8.4+2+1.2,0.4+6.5]) rotate([45,0,0]) cube([6,15,15]);
|
||||||
translate([-35/2,-3.99,21])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Top hole
|
}
|
||||||
translate([-35/2 - 7.5/2,-3.99,21])rotate([-90,0,0])cube([7.5,6,8]); // Slot cut
|
translate([-35/2-4,-1,2]) cube([8,15,25]);
|
||||||
|
|
||||||
// PTFE tube slot
|
}
|
||||||
translate([-35/2,-23,15])rotate([-90,0,0]) cylinder(r=4.3/2, h=25, $fn=50); // Main hole
|
}
|
||||||
translate([-35/2,-9,15])rotate([-60,0,0]) rotate([0,0,10])cylinder(r=4.3/2, h=25, $fn=50); // Top hole
|
// Filament ptfe guide cutout
|
||||||
// Slot cut
|
|
||||||
difference(){
|
// PTFE secure ring slot
|
||||||
translate([-35/2,-8,14])rotate([-60,0,0]) rotate([0,0,30])cylinder(r=4.85/2, h=25, $fn=6);
|
translate([-35/2,-3.99,15])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Bottom hole
|
||||||
translate([-22,-20,5])cube([10,50,10]);
|
translate([-35/2,-3.99,21])rotate([-90,0,0]) cylinder(r=7.5/2, h=5, $fn=50); // Top hole
|
||||||
}
|
translate([-35/2 - 7.5/2,-3.99,21])rotate([-90,0,0])cube([7.5,6,8]); // Slot cut
|
||||||
|
|
||||||
// drive pulley cutout
|
// PTFE tube slot
|
||||||
translate([-21,-21,8])cylinder(r=4, h=13, $fn=80);
|
translate([-35/2,-23,15])rotate([-90,0,0]) cylinder(r=4.3/2, h=25, $fn=50); // Main hole
|
||||||
// idler bearing cutout
|
translate([-35/2,-9,15])rotate([-60,0,0]) rotate([0,0,10])cylinder(r=4.3/2, h=25, $fn=50); // Top hole
|
||||||
translate([-21+13,-21,8])cylinder(r=8.5, h=13, $fn=80);
|
// Slot cut
|
||||||
|
difference(){
|
||||||
translate([-21,-27,8])cube([10,10,13]); // Trim
|
translate([-35/2,-8,14])rotate([-60,0,0]) rotate([0,0,30])cylinder(r=4.85/2, h=25, $fn=6);
|
||||||
|
translate([-22,-20,5])cube([10,50,10]);
|
||||||
|
}
|
||||||
// filament clean hole
|
|
||||||
translate([-43,-21,15])rotate([90,0,90])cylinder(r=20/2, h=20, $fn=6);
|
// drive pulley cutout
|
||||||
translate([-43,-21,15])rotate([90,0,90])cylinder(r1=27/2,r2=20/2, h=5, $fn=6);
|
translate([-21,-21,8])cylinder(r=4, h=13, $fn=80);
|
||||||
|
// idler bearing cutout
|
||||||
// round corners
|
translate([-21+13,-21,8])cylinder(r=8.5, h=13, $fn=80);
|
||||||
translate([-2.5,-42+2.5,0]) rotate([0,0,-45]) translate([0,-5,-0.1]) cube([10,10,10]);
|
|
||||||
translate([-42+2.5,-42+2.5,0]) rotate([0,0,-45-90]) translate([0,-5,-0.1]) cube([10,10,33]);
|
translate([-21,-27,8])cube([10,10,13]); // Trim
|
||||||
|
|
||||||
|
|
||||||
|
// filament clean hole
|
||||||
// idler nut traps Bottom
|
translate([-43,-21,15])rotate([90,0,90])cylinder(r=20/2, h=20, $fn=6);
|
||||||
translate([-23,-53.5,7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
translate([-43,-21,15])rotate([90,0,90])cylinder(r1=27/2,r2=20/2, h=5, $fn=6);
|
||||||
translate([-32,-36.5-2.2,7.5-1.5])cube([40,4,3]); // Screw hole
|
|
||||||
|
// round corners
|
||||||
// idler nut traps Top
|
translate([-2.5,-42+2.5,0]) rotate([0,0,-45]) translate([0,-5,-0.1]) cube([10,10,10]);
|
||||||
translate([-23,-53.5,30-7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
translate([-42+2.5,-42+2.5,0]) rotate([0,0,-45-90]) translate([0,-5,-0.1]) cube([10,10,33]);
|
||||||
translate([-32,-36.5-2.2,30-7.5-1.5])cube([40,4,3]); // Screw hole
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
// idler nut traps Bottom
|
||||||
|
translate([-23,-53.5,7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
||||||
module extruder_cover(){
|
translate([-32,-36.5-2.2,7.5-1.5])cube([40,4,3]); // Screw hole
|
||||||
union(){
|
|
||||||
difference(){
|
// idler nut traps Top
|
||||||
// Main
|
translate([-23,-53.5,30-7.5-(5.5/2)-0.1])cube([2.5,20,5.7]); // Nut trap
|
||||||
union(){
|
translate([-32,-36.5-2.2,30-7.5-1.5])cube([40,4,3]); // Screw hole
|
||||||
translate([0,0,15]) cube([35,44,15]);
|
}
|
||||||
|
}
|
||||||
translate([34,42,23]) cube([1,18,7]);
|
}
|
||||||
translate([34,56,23]) cube([4,5,7]);
|
|
||||||
//fan nice look
|
module extruder_cover(){
|
||||||
translate([35,0,15]) cube([10,12,15]);
|
union(){
|
||||||
}
|
difference(){
|
||||||
// Fan nice look edge cut
|
// Main
|
||||||
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,32]);
|
union(){
|
||||||
|
translate([0,0,15]) cube([35,44,15]);
|
||||||
translate([38,58.3,20]) rotate([0,0,45]) cube([5,5,15]);
|
|
||||||
|
translate([34,42,23]) cube([1,18,7]);
|
||||||
extruder_nozzle_cut();
|
translate([34,56,23]) cube([4,5,7]);
|
||||||
|
//fan nice look
|
||||||
|
translate([35,0,15]) cube([10,12,15]);
|
||||||
// Extruder cables path
|
}
|
||||||
translate([33+4,10,-1]) cylinder(r=2, h=32,$fn=30);
|
// Fan nice look edge cut
|
||||||
translate([33+4,12,22]) cube([4,4,20], center=true);
|
translate([+52.6,-3.49,0]) rotate([0,0,-45-180]) translate([0,-5,-0.1]) cube([10,10,32]);
|
||||||
|
|
||||||
extruder_nozzle_cooling();
|
translate([38,58.3,20]) rotate([0,0,45]) cube([5,5,15]);
|
||||||
|
|
||||||
}
|
extruder_nozzle_cut();
|
||||||
|
|
||||||
// 5015 print fan mount pillar
|
|
||||||
translate([6,33,27])rotate([0,0,67]) cube([8,24,3]); // Connecting cube
|
// Extruder cables path
|
||||||
translate([35/2+12-42.75,6.5+38.5,25])cylinder(r=5.8, h=5, $fn=6); // Hexagon at the end
|
translate([33+4,10,-1]) cylinder(r=2, h=32,$fn=30);
|
||||||
|
translate([33+4,12,22]) cube([4,4,20], center=true);
|
||||||
// Print fan nozzle mount - right
|
|
||||||
translate([5,61-5,24])cylinder(r=7.5/2, h=6, $fn=6);
|
extruder_nozzle_cooling();
|
||||||
|
|
||||||
|
}
|
||||||
// Print colling airway
|
|
||||||
translate([8,44,28])rotate([0,0,0]) cube([27,9,2]);
|
// 5015 print fan mount pillar
|
||||||
difference(){
|
translate([6,33,27])rotate([0,0,67]) cube([8,24,3]); // Connecting cube
|
||||||
translate([8,51.6,28.5])rotate([-45,0,0]) cube([27,7,2]);
|
translate([35/2+12-42.75,6.5+38.5,25])cylinder(r=5.8, h=5, $fn=6); // Hexagon at the end
|
||||||
translate([7,57,20])rotate([0,0,0]) cube([29,7,12]);
|
|
||||||
translate([7,53,22])rotate([0,0,0]) cube([29,7,2]);
|
// Print fan nozzle mount - right
|
||||||
}
|
translate([5,61-5,24])cylinder(r=7.5/2, h=6, $fn=6);
|
||||||
|
|
||||||
translate([34,44,24])rotate([0,0,0]) cube([1,13,6]);
|
|
||||||
translate([8-5,44,24])rotate([0,0,0]) cube([1+5,13,6]);
|
// Print colling airway
|
||||||
|
translate([8,44,28])rotate([0,0,0]) cube([27,9,2]);
|
||||||
// Print fan nozzle mount - left
|
difference(){
|
||||||
//#difference(){
|
translate([8,51.6,28.5])rotate([-45,0,0]) cube([27,7,2]);
|
||||||
//union(){
|
translate([7,57,20])rotate([0,0,0]) cube([29,7,12]);
|
||||||
// #translate([34,44,24])rotate([0,0,0]) cube([5,10,6]);
|
translate([7,53,22])rotate([0,0,0]) cube([29,7,2]);
|
||||||
// #translate([37,61-5,24])cylinder(r=7.5/2, h=6, $fn=6);
|
}
|
||||||
//}
|
|
||||||
//#translate([24,51.6,30.5])rotate([-45,0,0]) cube([10,7,8]);
|
translate([34,44,24])rotate([0,0,0]) cube([1,13,6]);
|
||||||
//translate([37,61-5,23])cylinder(r=1.4, h=8, $fn=30);
|
translate([8-5,44,24])rotate([0,0,0]) cube([1+5,13,6]);
|
||||||
//}
|
|
||||||
|
|
||||||
// Cooling grill
|
// Cooling grill
|
||||||
difference(){
|
difference(){
|
||||||
union(){
|
union(){
|
||||||
// Fins up
|
// Fins up
|
||||||
//translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
//translate([0,37,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
translate([0,32,15]) rotate([0,0,25]) cube([6,1.4,15]);
|
translate([0,32,15]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
//translate([0,27,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
//translate([0,27,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
translate([0,22,15]) rotate([0,0,25]) cube([6,1.4,15]);
|
translate([0,22,15]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
//translate([0,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
//translate([0,17,0]) rotate([0,0,25]) cube([6,1.4,15]);
|
||||||
|
|
||||||
// Structural support
|
// Structural support
|
||||||
translate([0,13,19]) rotate([0,0,0]) cube([4,30,1]);
|
translate([0,13,19]) rotate([0,0,0]) cube([4,30,1]);
|
||||||
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
|
//translate([0,13,14.5]) rotate([0,0,0]) cube([4,30,0.5]);
|
||||||
}
|
}
|
||||||
// Trim
|
// Trim
|
||||||
translate([-35,0,0])cube([35,43,35]);
|
translate([-35,0,0])cube([35,43,35]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module extruder_mount_holes(){
|
module extruder_mount_holes(){
|
||||||
|
|
||||||
// Carriage mount right
|
// Carriage mount right
|
||||||
translate([35/2-12,6.5,-0.01])cylinder(r=1.65, h=5, $fn=30); // Bottom hole
|
translate([35/2-12,6.5,-0.01])cylinder(r=1.75, h=5, $fn=30); // Bottom hole
|
||||||
translate([35/2-12,6.5,6.5+0.2])cylinder(r=1.65, h=5, $fn=30); // Middle hole
|
translate([35/2-12,6.5,-0.01])cylinder(r1=2.2, r2=1.75, h=0.5, $fn=30); // Bottom hole
|
||||||
translate([35/2-12,6.5,12.5+0.2])cylinder(r=1.65, h=14.3-0.2, $fn=30); // Top hole
|
|
||||||
translate([35/2-12,6.5,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
|
translate([35/2-12,6.5,6.5+0.2])cylinder(r=1.75, h=5, $fn=30); // Middle hole
|
||||||
translate([35/2-12-6.5,6.5-2.85,10])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut Trap top
|
translate([35/2-12,6.5,12.5+0.2])cylinder(r=1.75, h=15, $fn=30); // Top hole
|
||||||
//translate([35/2-12,6.5,10])cylinder(r=3.3, h=2.5, $fn=6);
|
translate([35/2-12,6.5,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
|
||||||
|
// bridged hole no clean
|
||||||
translate([35/2-12-6.5,6.5-2.85,4])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut trap bottom
|
intersection(){
|
||||||
//translate([35/2-12,6.5,4])cylinder(r=3.3, h=2.5, $fn=6);
|
translate([35/2-12,6.5,26]) cube([3.3, 6.2,4], center=true); // Screw hole
|
||||||
|
translate([35/2-12,6.5,26.5]) cylinder(r=3.1, h=8, $fn=30); // Head cut
|
||||||
translate([35/2-12-6.5+5,6.5-2.85-2.5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
|
}
|
||||||
|
translate([35/2-12,6.5,27]) cube([3.5, 3.5, 2], center=true); // Screw hole
|
||||||
translate([35/2-12-6.5+5,6.5-2.85+2.5+5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
|
// bridged hole no clean END
|
||||||
|
|
||||||
|
translate([35/2-12-6.5,6.25-2.85,10])rotate([0,0,0]) cube([9.5,6.2,2.5]); // Nut Trap top
|
||||||
// Carriage mount left
|
//translate([35/2-12-6.5,6.5-2.85,10])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut Trap top old
|
||||||
translate([35/2+12+11,6.5-2,6.2])cylinder(r=1.7, h=20.8-0.2, $fn=30); // Screw hole
|
translate([35/2-12-1.7,6.25-2.85,10.5])rotate([0,0,0]) cube([3.4,6.2,2.5]);
|
||||||
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r=3.2, h=6, $fn=6); // Nut trap
|
translate([35/2-12-1.7,6.5-2.85+1.1,11])rotate([0,0,0]) cube([3.4,3.4,2.5]);
|
||||||
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r2=3.2, r1=4, h=3, $fn=6); // Nut trap
|
//translate([35/2-12,6.5,10])cylinder(r=3.3, h=2.5, $fn=6);
|
||||||
translate([35/2+12+11,6.5-2,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
|
|
||||||
|
translate([35/2-12-6.5,6.25-2.85,4])rotate([0,0,0]) cube([9.5,6.2,2.5]); // Nut trap bottom
|
||||||
// Fan nozzle mount hole
|
//translate([35/2-12-6.5,6.5-2.85,4])rotate([0,0,0]) cube([9.5,5.7,2.5]); // Nut trap bottom old
|
||||||
translate([5,61-5,20])cylinder(r=3/2, h=12, $fn=30);
|
translate([35/2-12-1.7,6.25-2.85,4.5])rotate([0,0,0]) cube([3.4,6.2,2.5]);
|
||||||
|
translate([35/2-12-1.7,6.5-2.85+1.1,5])rotate([0,0,0]) cube([3.4,3.4,2.5]);
|
||||||
// 5015 print fan top left mount hole
|
//translate([35/2-12,6.5,4])cylinder(r=3.3, h=2.5, $fn=6);
|
||||||
translate([35/2+12,6.5,-0.01])cylinder(r=1.65, h=35, $fn=30); // Screw cut
|
|
||||||
translate([35/2+12,6.5,11]) rotate([0,0,30])cylinder(r=3.2, h=17.01, $fn=6); // Nut Trap
|
translate([35/2-12-6.5+5,6.5-2.85-2.5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
|
||||||
translate([35/2+12,6.5,14]) rotate([0,0,30])cylinder(r=3.5, h=11.01, $fn=6); // Nut easy entry cut
|
|
||||||
|
translate([35/2-12-6.5+5,6.5-2.85+2.5+5,3])rotate([0,0,0]) cube([5,0.4,10.5]); // Nut Trap reinforcement
|
||||||
// 5015 print fan bottom right mount hole
|
|
||||||
translate([35/2+12-42.75,6.5+38.5,15])cylinder(r=1.65, h=20, $fn=30); // Screw cut
|
|
||||||
translate([35/2+12-42.75,6.5+38.5,15]) cylinder(r=3.2, h=13.01, $fn=6); // Nut Trap
|
// Carriage mount left
|
||||||
|
translate([35/2+12+11,6.5-2,6.2])cylinder(r=1.7, h=20.8-0.2, $fn=30); // Screw hole
|
||||||
|
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r=3.2, h=6, $fn=6); // Nut trap
|
||||||
// Motor mount holes
|
|
||||||
translate([21,-21,0]){
|
intersection(){
|
||||||
// Top right
|
translate([35/2+12+11,6.5-2,5]) cube([3.4, 6.2,3], center=true); // Screw hole
|
||||||
translate([-15.5,-15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r=3.2, h=8, $fn=6); // Nut trap
|
||||||
translate([-15.5,-15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
}
|
||||||
|
translate([35/2+12+11,6.5-2,5.5]) cube([3.4, 3.4,3], center=true); // Screw hole
|
||||||
// Bottom right
|
|
||||||
translate([-15.5,15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
translate([35/2+12+11,6.5-2,-0.01])rotate([0,0,-15])cylinder(r2=3.2, r1=4, h=3, $fn=6); // Nut trap
|
||||||
translate([-15.5,15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
translate([35/2+12+11,6.5-2,27])cylinder(r=3.1, h=5, $fn=30); // Head cut
|
||||||
|
// bridged hole no clean
|
||||||
// Top left
|
intersection(){
|
||||||
translate([15.5,-15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
translate([35/2+12+11,6.5-2,26]) cube([3.3, 6.2,4], center=true); // Screw hole
|
||||||
translate([15.5,-15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
translate([35/2+12+11,6.5-2,26.5]) cylinder(r=3.1, h=8, $fn=30); // Head cut
|
||||||
|
}
|
||||||
// Bottom left
|
translate([35/2+12+11,6.5-2,27]) cube([3.5, 3.5,2], center=true); // Screw hole
|
||||||
translate([15.5,15.5,4]) cylinder(r=1.65, h=50, $fn=30); // Screw hole
|
// bridged hole no clean END
|
||||||
translate([15.5,15.5,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
|
||||||
|
// Fan nozzle mount hole
|
||||||
}
|
translate([5,61-5,20])cylinder(r=3/2, h=12, $fn=30);
|
||||||
|
|
||||||
|
// 5015 print fan top left mount hole
|
||||||
}
|
translate([35/2+12,6.5,-0.01])cylinder(r=1.75, h=35, $fn=30); // Screw cut
|
||||||
|
translate([35/2+12,6.5,11]) rotate([0,0,30])cylinder(r=3.2, h=17.01, $fn=6); // Nut Trap
|
||||||
|
translate([35/2+12,6.5,14]) rotate([0,0,30])cylinder(r=3.5, h=11.01, $fn=6); // Nut easy entry cut
|
||||||
|
|
||||||
module extruder_nozzle_cut(){
|
// 5015 print fan bottom right mount hole
|
||||||
|
translate([35/2+12-42.75,6.5+38.5,15])cylinder(r=1.75, h=20, $fn=30); // Screw cut
|
||||||
//Nozzle cutout
|
translate([35/2+12-42.75,6.5+38.5,15]) cylinder(r=3.4, h=13.01, $fn=6); // Nut Trap
|
||||||
// Top
|
|
||||||
translate([35/2,-0.001,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7+0.5, $fn=120);
|
|
||||||
// Groove
|
// Motor mount holes
|
||||||
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=6.13, h=20, $fn=120);
|
translate([21,-21,0]){
|
||||||
// Bottom
|
|
||||||
translate([35/2,9.8,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7, $fn=120);
|
// Top right
|
||||||
// Main body
|
translate([-15.5,-15.5,0]){
|
||||||
translate([35/2,13,15]) rotate([-90,0,0]) cylinder(r=11.53, h=33.001, $fn=80);
|
translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
|
||||||
|
intersection(){
|
||||||
}
|
translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
|
||||||
|
translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
|
||||||
module extruder_nozzle_cooling(){
|
}
|
||||||
|
translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
|
||||||
// Nozzle cooling airway
|
translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||||
difference(){
|
}
|
||||||
union(){
|
|
||||||
translate([31.001,43-15,15])rotate([0,90,0])cylinder(r2=14, r1=11.5, h=4, $fn=100);
|
// Bottom right
|
||||||
translate([-1,43-15-2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
|
translate([-15.5,15.5,0]){
|
||||||
translate([-1,43-15,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
|
translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
|
||||||
translate([-1,43-15+2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
|
intersection(){
|
||||||
}
|
translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
|
||||||
translate([-10,40,0])cube([10,12,14]);
|
translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
|
||||||
translate([-9,40,8])cube([10,10,4]);
|
}
|
||||||
}
|
translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
|
||||||
|
translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||||
// Fan screws
|
}
|
||||||
translate([35.001,40,3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20);
|
// Top left
|
||||||
translate([35.001,40-24,3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20);
|
translate([15.5,-15.5,0]){
|
||||||
translate([35.001,40,30-3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20);
|
translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
|
||||||
translate([35.001,40-24,30-3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20);
|
intersection(){
|
||||||
|
translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
|
||||||
}
|
translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
|
||||||
|
}
|
||||||
//extruder_body();
|
translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
|
||||||
//extruder_mount_holes();
|
translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||||
//extruder_cover();
|
}
|
||||||
|
|
||||||
|
// Bottom left
|
||||||
|
translate([15.5,15.5,0]){
|
||||||
|
translate([0,0,4]) cylinder(r=1.75, h=50, $fn=30); // Screw hole
|
||||||
|
intersection(){
|
||||||
|
translate([0,0,2]) cube([3.3, 6.2,4], center=true); // Screw hole
|
||||||
|
translate([0,0,-1]) cylinder(r=3.1, h=8, $fn=30); // Head cut
|
||||||
|
}
|
||||||
|
translate([0,0,2]) cube([3.5, 3.5,5], center=true); // Screw hole
|
||||||
|
translate([0,0,-1]) cylinder(r=3.1, h=4.5, $fn=30); // Head cut
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//selective infill spikes EXT COVER
|
||||||
|
rotate([90,0,90]) translate ([40,23,33])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
|
||||||
|
rotate([90,0,90]) translate ([40,23,31])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
|
||||||
|
rotate([90,0,90]) translate ([40,23,4])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
|
||||||
|
rotate([90,0,90]) translate ([40,23,2])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
|
||||||
|
|
||||||
|
//selective infill spikes EXT BODY
|
||||||
|
mirror([0,0,1]) rotate([90,0,90]) translate ([40,-7,34])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
|
||||||
|
mirror([0,0,1]) rotate([90,0,90]) translate ([40,-7,32])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
|
||||||
|
mirror([0,0,1]) rotate([90,0,90]) translate ([40,-7,30])linear_extrude(height = 0.2) polygon( points=[[3,-7],[1.5,-2],[-1,2],[1,2],[3,6]] );
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module extruder_nozzle_cut(){
|
||||||
|
|
||||||
|
//Nozzle cutout
|
||||||
|
// Top
|
||||||
|
translate([35/2,-0.001,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7+0.5, $fn=120);
|
||||||
|
// Groove
|
||||||
|
translate([35/2,0,15]) rotate([-90,0,0]) cylinder(r=6.13, h=20, $fn=120);
|
||||||
|
// Bottom
|
||||||
|
translate([35/2,9.8,15]) rotate([-90,0,0]) cylinder(r=8.13, h=3.7, $fn=120);
|
||||||
|
// Main body
|
||||||
|
translate([35/2,13,15]) rotate([-90,0,0]) cylinder(r=11.53, h=33.001, $fn=80);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module extruder_nozzle_cooling(){
|
||||||
|
|
||||||
|
// Nozzle cooling airway
|
||||||
|
difference(){
|
||||||
|
union(){
|
||||||
|
translate([31.001,43-15,15])rotate([0,90,0])cylinder(r2=14, r1=11.5, h=4, $fn=100);
|
||||||
|
translate([-1,43-15-2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
|
||||||
|
translate([-1,43-15,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
|
||||||
|
translate([-1,43-15+2.5,15])rotate([0,90,0])cylinder(r=11.5, h=40, $fn=80);
|
||||||
|
}
|
||||||
|
translate([-10,40,0])cube([10,12,14]);
|
||||||
|
translate([-9,40,8])cube([10,10,4]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fan screws
|
||||||
|
translate([35.001,40,3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20);
|
||||||
|
translate([35.001,40-24,3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20);
|
||||||
|
translate([35.001,40,30-3])rotate([0,-90,0])cylinder(r=1.5, h=8, $fn=20);
|
||||||
|
translate([35.001,40-24,30-3])rotate([0,-90,0])cylinder(r=1.35, h=8, $fn=20);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
extruder_body();
|
||||||
|
extruder_mount_holes();
|
||||||
|
extruder_cover();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,67 +1,76 @@
|
||||||
module fan_nozzle(){
|
// PRUSA iteration3
|
||||||
|
// Fan nozzle
|
||||||
difference(){
|
// GNU GPL v3
|
||||||
union(){
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
cube([32,10,17]); // Main cube
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
translate([30,5,0])cylinder(r=5.8,h = 17, $fn=6);
|
// http://prusamendel.org
|
||||||
translate([-3,0,-6]) cube([3,10,23]);
|
|
||||||
//#translate([-2,5,0])cylinder(r=5.8,h = 17, $fn=6);
|
module fan_nozzle(){
|
||||||
}
|
|
||||||
// Mounting screw
|
difference(){
|
||||||
translate([30,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut
|
union(){
|
||||||
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut
|
cube([32,10,17]); // Main cube
|
||||||
|
translate([30,5,0])cylinder(r=5.8,h = 17, $fn=6);
|
||||||
//#translate([-2,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut
|
translate([-3,0,-6]) cube([3,10,23]);
|
||||||
//#translate([-2,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut
|
}
|
||||||
|
|
||||||
// Fan entry hole
|
// Mounting screw
|
||||||
translate([1,10-1.5,-1])cube([20,3,16.5]);
|
translate([30,5,-10])cylinder(r=3.2/2,h = 24.5-0.2, $fn=15); // Screw cut
|
||||||
translate([1,10-1.5,-1-5])cube([18,3,16.5]);
|
intersection(){
|
||||||
|
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=15); // head cut
|
||||||
// Airway cutout
|
translate([30,5,17-3.5]) cube([6.2,3.2,1], center=true);
|
||||||
difference(){
|
}
|
||||||
translate([1,1,-1])cube([25,8,16.5]);
|
translate([30,5,17-4]) cube([3.2,3.2,1], center=true);
|
||||||
translate([0,0,10])rotate([45,0,0])cube([30,8,16.5]);
|
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=15); // head cut
|
||||||
translate([-1,-10,-1])rotate([0,0,45])cube([10,8,30]);
|
|
||||||
translate([20,0,16])rotate([0,20,0])cube([10,20,10]);
|
// Fan entry hole
|
||||||
}
|
translate([1,10-1.5,-1])cube([20,3,16.5]);
|
||||||
translate([2,-1,-4.5])cube([24,3,5]);
|
translate([1,10-1.5,-1-5])cube([18,3,16.5]);
|
||||||
//#translate([-2,-1,-2])rotate([0,45,0])cube([5,10,5]);
|
|
||||||
translate([22,-1,-2])rotate([0,45,0])cube([5,10,5]);
|
// Airway cutout
|
||||||
|
difference(){
|
||||||
}
|
translate([1,1,-1])cube([25,8,16.5]);
|
||||||
|
translate([0,0,10])rotate([45,0,0])cube([30,8,16.5]);
|
||||||
// Air director
|
translate([-1,-10,-1])rotate([0,0,45])cube([10,8,30]);
|
||||||
translate([18,0,7])rotate([0,0,30])cube([1,9,10]);
|
translate([20,0,16])rotate([0,20,0])cube([10,20,10]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
translate([2,-1,-4.5])cube([24,3,5]);
|
||||||
|
translate([22,-1,-2])rotate([0,45,0])cube([5,10,5]);
|
||||||
module fancy_corners(){
|
|
||||||
|
}
|
||||||
translate([-10,-10.5,13])rotate([-20,0,0])cube([50,10,15]);
|
|
||||||
translate([-16,-10.5,17.5])rotate([0,45,0])cube([10,30,15]);
|
// Air director
|
||||||
|
translate([18,0,7])rotate([0,0,30])cube([1,9,10]);
|
||||||
translate([46.5,-10.5,15])rotate([0,-45,30])cube([10,30,15]);
|
|
||||||
translate([28.62,-10.5,15])rotate([0,-45,-30])cube([10,30,15]);
|
|
||||||
|
}
|
||||||
translate([-5,-1,-7])rotate([0,0,0]) cube([10,6,7]);
|
|
||||||
translate([-0.5,-1,-7])rotate([0,0,0]) cube([1,15,7]);
|
module fancy_corners(){
|
||||||
translate([-5,4,-11])rotate([45,0,0]) cube([10,5,5]);
|
|
||||||
|
translate([-10,-10.5,13])rotate([-20,0,0])cube([50,10,15]);
|
||||||
//left cut
|
translate([-16,-10.5,17.5])rotate([0,45,0])cube([10,30,15]);
|
||||||
translate([-6.5,-8,-5])rotate([0,0,45])cube([10,10,45]);
|
|
||||||
translate([-7,-5,12])rotate([0,-45,0])cube([10,30,15]);
|
translate([46.5,-10.5,15])rotate([0,-45,30])cube([10,30,15]);
|
||||||
|
translate([28.62,-10.5,15])rotate([0,-45,-30])cube([10,30,15]);
|
||||||
translate([-7,5,-10])rotate([0,0,45])cube([10,10,35]);
|
|
||||||
|
translate([-5,-1,-7])rotate([0,0,0]) cube([10,6,7]);
|
||||||
}
|
translate([-0.5,-1,-7])rotate([0,0,0]) cube([1,15,7]);
|
||||||
|
translate([-5,4,-11])rotate([45,0,0]) cube([10,5,5]);
|
||||||
module fan_n(){
|
|
||||||
difference(){
|
//left cut
|
||||||
fan_nozzle();
|
translate([-6.5,-8,-5])rotate([0,0,45])cube([10,10,45]);
|
||||||
fancy_corners();
|
translate([-7,-5,12])rotate([0,-45,0])cube([10,30,15]);
|
||||||
translate([2,3.5,16.5])linear_extrude(height = 0.6) {text("! HOT !", size = 5, font = "Helvetica Neue:style=Bold");}
|
|
||||||
}
|
translate([-7,5,-10])rotate([0,0,45])cube([10,10,35]);
|
||||||
}
|
|
||||||
fan_n();
|
}
|
||||||
|
|
||||||
|
module fan_n(){
|
||||||
|
difference(){
|
||||||
|
fan_nozzle();
|
||||||
|
fancy_corners();
|
||||||
|
translate([2,3.5,16.5])linear_extrude(height = 0.6) {text("! HOT !", size = 5, font = "Helvetica Neue:style=Bold");}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fan_n();
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
|
// PRUSA iteration3
|
||||||
|
// Heatbed cable cover
|
||||||
|
// GNU GPL v3
|
||||||
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
|
// http://prusamendel.org
|
||||||
|
|
||||||
|
|
||||||
module cover()
|
module cover()
|
||||||
{
|
{
|
||||||
translate([ -17.5, 0, 0 ]) cube([ 35, 21, 8 ]); // cover
|
translate([ -17.5, 0, 0 ]) cube([ 35, 21, 8 ]); // cover
|
||||||
|
|
@ -39,12 +47,12 @@ module inside_cut(){
|
||||||
|
|
||||||
module filament_holder(){
|
module filament_holder(){
|
||||||
difference(){
|
difference(){
|
||||||
translate([ -2.5,15, 2 ]) rotate([0,0,0]) cube( [5,7,6 ] ); // body
|
#translate([ -3.5,15, 2 ]) rotate([0,0,0]) cube( [7,7,6 ] ); // body ; previous translate([ -2.5,15, 2 ]) cube( [5,7,6 ] );
|
||||||
translate( [ 0 , 24 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 10, r = 1.4, $fn=12); // filament
|
translate( [ 0 , 24 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 10, r = 1.4, $fn=12); // filament
|
||||||
translate( [ 0 , 22.1 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 1.5, r1 = 1.8, r2=1.4, $fn=12); // filament
|
translate( [ 0 , 22.1 , 4.5 ] ) rotate( [90,0,0] ) cylinder( h = 1.5, r1 = 1.8, r2=1.4, $fn=12); // filament
|
||||||
|
|
||||||
translate([ -5,15, 1 ]) rotate([0,45,0]) cube( [3,15,3 ] ); // corners
|
#translate([ -6,15, 2 ]) rotate([0,45,0]) cube( [4,15,3 ] ); // corners ; previous ([ -5,15, 1 ]) cube( [3,15,3 ] )
|
||||||
translate([ 1,15, 1 ]) rotate([0,45,0]) cube( [3,15,3 ] ); // corners
|
#translate([ 1,15, 1 ]) rotate([0,45,0]) cube( [3,15,4 ] ); // corners ; previous cube( [3,15,3 ] )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module m3_screw(){
|
module m3_screw(){
|
||||||
|
|
@ -56,7 +64,8 @@ module inside_cut(){
|
||||||
|
|
||||||
module nut_trap(){
|
module nut_trap(){
|
||||||
translate( [ 0 , 7.5 , 4.5 ] ) rotate( [0,0,90] ) cylinder( h = 2.5, r = 4.6, $fn=6); // M3 HEAD
|
translate( [ 0 , 7.5 , 4.5 ] ) rotate( [0,0,90] ) cylinder( h = 2.5, r = 4.6, $fn=6); // M3 HEAD
|
||||||
translate( [ 0 , 7.5 , 4 ] ) rotate( [0,0,0] ) cylinder( h = 1, r = 3, $fn=30);
|
translate( [ 0 , 7.5 , 4 ] ) rotate( [0,0,0] ) cylinder( h = 1, r = 3, $fn=30);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
difference(){
|
difference(){
|
||||||
|
|
@ -69,6 +78,8 @@ module inside_cut(){
|
||||||
nut_trap();
|
nut_trap();
|
||||||
}
|
}
|
||||||
m3_screw();
|
m3_screw();
|
||||||
|
translate( [ 0 , 7.5 , 6.2 ] ) rotate( [0,0,0] ) cube( [5.7,3,1], center=true);
|
||||||
|
translate( [ 0 , 7.5 , 5.7 ] ) rotate( [0,0,0] ) cube( [3,3,1], center=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
filament_holder();
|
filament_holder();
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,20 @@
|
||||||
module dxf_holder(){
|
// PRUSA iteration3
|
||||||
linear_extrude(height = 8, center = true, convexity = 5)
|
// Spool holder
|
||||||
import (file = "spool holdahMK3.dxf", layer = "0");
|
// GNU GPL v3
|
||||||
}
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
module spool_holder_left(){
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
dxf_holder();
|
// http://prusamendel.org
|
||||||
translate([51.53-3.5,123-5-3.5,3.9])cylinder(h = 10, r=8);
|
|
||||||
}
|
module dxf_holder(){
|
||||||
module spool_holder_right(){
|
linear_extrude(height = 8, center = true, convexity = 5)
|
||||||
mirror([1,0,0])spool_holder_left();
|
import (file = "spool holdahMK3.dxf", layer = "0");
|
||||||
}
|
}
|
||||||
translate([8,100,0])rotate([0,0,139])spool_holder_right();
|
module spool_holder_left(){
|
||||||
spool_holder_left();
|
dxf_holder();
|
||||||
|
translate([51.53-3.5,123-5-3.5,3.9])cylinder(h = 10, r=8);
|
||||||
|
}
|
||||||
|
module spool_holder_right(){
|
||||||
|
mirror([1,0,0])spool_holder_left();
|
||||||
|
}
|
||||||
|
translate([8,100,0])rotate([0,0,139])spool_holder_right();
|
||||||
|
spool_holder_left();
|
||||||
|
|
|
||||||
|
|
@ -9,66 +9,61 @@ use <bearing.scad>
|
||||||
use <extruder-body.scad>
|
use <extruder-body.scad>
|
||||||
|
|
||||||
|
|
||||||
//translate([-34,31,0]) rotate([0,180,180]) ext_body();
|
|
||||||
|
|
||||||
module x_carriage_base(){
|
module x_carriage_base(){
|
||||||
// Small bearing holder
|
// Small bearing holder
|
||||||
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1);
|
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1);
|
||||||
// Long bearing holder
|
// Long bearing holder
|
||||||
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2);
|
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2);
|
||||||
// Base plate
|
// Base plate
|
||||||
translate([-33,-12,0]) cube([33,68.5,7]);
|
translate([-33,-12,0]) cube([33,68.5,7]);
|
||||||
// upper motor srew block
|
// upper motor screw block
|
||||||
translate([-19,56.8,0]) rotate([0,0,0]) cube([28.5,16.2,12]);
|
translate([-19,56.8,0]) rotate([0,0,0]) cube([28.5,16.2,12]);
|
||||||
|
|
||||||
// Extruder cable tray
|
// hotend cables guide
|
||||||
difference(){
|
difference(){
|
||||||
union(){
|
union(){
|
||||||
translate([-33/2 - 2.5-11.5,-17-3,3])cube([11.5,14,22]);
|
//body
|
||||||
translate([-33/2 + 2.5,-17-3,3])cube([11.5,14,22]);
|
translate([-33/2 - 2.5-11.5,-17-3,3])cube([11.5,14,22]);
|
||||||
translate([-33/2 + 2.5,-17,3])cube([3.5,9.75,22]);
|
translate([-33/2 + 2.5,-17-3,3])cube([11.5,14,22]);
|
||||||
translate([-33/2 -2.5,-9,3])cube([5,2,22]);
|
translate([-33/2 + 2.5,-17,3])cube([3.5,9.75,22]);
|
||||||
}
|
translate([-33/2 -2.5,-13,3])cube([5,7,22]);
|
||||||
|
}
|
||||||
|
// cable entry opening sides
|
||||||
|
translate([-33/2 +7,-23,-8]) rotate([0,-25,0]) cube([5,10,22]);
|
||||||
translate([-33/2 +7,-22,-8]) rotate([0,-25,0]) cube([5,10,22]);
|
translate([-33/2 -11.5,-23,-6.5]) rotate([0,25,0]) cube([5,10,22]);
|
||||||
translate([-33/2 -11.5,-22,-6.5]) rotate([0,25,0]) cube([5,10,22]);
|
|
||||||
|
|
||||||
|
// corner cuts
|
||||||
|
translate([-33/2 -21,-22,25]) rotate([0,45,0]) cube([8,20,8]);
|
||||||
|
translate([-33/2 +10,-22,25]) rotate([0,45,0]) cube([8,20,8]);
|
||||||
|
translate([-33/2 -15,-16.5,-8])rotate([30,0,0])cube([35,9.75,25]);
|
||||||
|
translate([-33/2 -15,-8.2,10])rotate([-9,0,0])cube([35,9.75,25]);
|
||||||
|
|
||||||
translate([-33/2 -21,-22,25]) rotate([0,45,0]) cube([8,20,8]);
|
//zip tie holes
|
||||||
translate([-33/2 +10,-22,25]) rotate([0,45,0]) cube([8,20,8]);
|
translate([-33/2 -4.5-1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
|
||||||
|
translate([-33/2 +2.5+1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
|
||||||
|
translate([-33/2 + 6.5-0.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
|
||||||
|
translate([-33/2 -6.5 - 4.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
|
||||||
|
|
||||||
translate([-33/2 -15,-16.5,-8])rotate([30,0,0])cube([35,9.75,25]);
|
//right cutout
|
||||||
|
translate([-10,-30,0]) translate([0,-11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,34]);
|
||||||
translate([-33/2 -15,-9,10])rotate([-20,0,0])cube([35,9.75,25]);
|
|
||||||
|
|
||||||
//zip tie holes
|
|
||||||
translate([-33/2 -4.5-1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
|
|
||||||
translate([-33/2 +2.5+1.3,-24,20])rotate([0,0,0])cube([2,20,4]);
|
|
||||||
|
|
||||||
translate([-33/2 + 6.5-0.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
|
|
||||||
|
|
||||||
translate([-33/2 -6.5 - 4.1,0,12]) rotate([0,90,0])cylinder(r = 11.6, h=4.2, $fn=50);
|
|
||||||
|
|
||||||
//right cutout
|
|
||||||
translate([-10,-30,0]) translate([0,-11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,34]);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Belt holder base
|
|
||||||
translate([-42.5,20,0]) cube([52,16,7]);
|
|
||||||
|
|
||||||
translate([-16.5-12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
|
|
||||||
translate([-16.5+12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
|
|
||||||
|
|
||||||
translate([-16.5-12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25);
|
// Belt holder base
|
||||||
translate([-16.5+12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25);
|
translate([-42.5,20,0]) cube([52,16,7]);
|
||||||
|
|
||||||
// Endstop trigger nipple
|
// belt holders
|
||||||
difference(){
|
translate([-16.5-12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
|
||||||
union(){
|
translate([-16.5+12,24.5,0])cylinder(r=4.5, h=14, $fn=25);
|
||||||
|
translate([-16.5-12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25);
|
||||||
|
translate([-16.5+12,24.5,14])cylinder(r1=4.5, r2=3.8, h=2, $fn=25);
|
||||||
|
|
||||||
|
// Endstop trigger nipple
|
||||||
|
difference(){
|
||||||
|
union(){
|
||||||
translate([-2.5,-16,0]) cube([12,5.8,12]);
|
translate([-2.5,-16,0]) cube([12,5.8,12]);
|
||||||
translate([-2.2,-12,0])cylinder(r=4.6, h=12, $fn=6);
|
translate([-2.2,-12,0])cylinder(r=4.6, h=12, $fn=6);
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +73,7 @@ module x_carriage_base(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Belt Insert R
|
// Belt Insert R
|
||||||
difference(){
|
difference(){
|
||||||
union(){
|
union(){
|
||||||
translate([2,27,0]) cube([10,6,15]);
|
translate([2,27,0]) cube([10,6,15]);
|
||||||
|
|
@ -91,77 +86,68 @@ module x_carriage_base(){
|
||||||
// Belt Insert L
|
// Belt Insert L
|
||||||
difference(){
|
difference(){
|
||||||
union(){
|
union(){
|
||||||
translate([-33,3,00]){scale([-1,1,1]){
|
translate([-33,3,00]){
|
||||||
translate([0,27,0]) cube([12.5,3,15]);
|
scale([-1,1,1])
|
||||||
translate([2,27-7.5-2.3,0]) cube([12.5,7.5,15]);
|
{
|
||||||
translate([-0.5,27,0]) cube([8,7,2]);
|
translate([0,27,0]) cube([12.5,3,15]);
|
||||||
}}
|
translate([2,27-7.5-2.3,0]) cube([12.5,7.5,15]);
|
||||||
|
translate([-0.5,27,0]) cube([8,7,2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([-36.5,27.7,5.5]) rotate([0,0,-55]) cube([5,5.5,10]);
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([-36.5,27.7,5.5]) rotate([0,0,-55]) cube([5,5.5,10]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module x_carriage_holes(){
|
module x_carriage_holes(){
|
||||||
// Small bearing holder holes cutter
|
// Small bearing holder holes cutter
|
||||||
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes(1);
|
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes(1);
|
||||||
// Long bearing holder holes cutter
|
// Long bearing holder holes cutter
|
||||||
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes(2);
|
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes(2);
|
||||||
|
|
||||||
// Extruder mounting holes
|
// Extruder mounting holes
|
||||||
translate([-16.5+12,24.5,-1])cylinder(r=1.8, h=20, $fn=25);
|
translate([-16.5+12,24.5,-1])cylinder(r=1.8, h=20, $fn=25);
|
||||||
translate([-16.5+12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
translate([-16.5+12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
||||||
translate([-16.5+12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
|
translate([-16.5+12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
|
||||||
translate([-16.5-12,24.5,-1])cylinder(r=1.8, h=20, $fn=25);
|
translate([-16.5-12,24.5,-1])cylinder(r=1.8, h=20, $fn=25);
|
||||||
translate([-16.5-12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
translate([-16.5-12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
||||||
translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
|
translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
|
||||||
|
|
||||||
// Carriage alignment
|
// Cables keepout
|
||||||
// translate([-33,24.5-6-0.25,-0.01])cube([33,3.5,1.25]);
|
translate([0,10+3,-2])cube([5,10,5]);
|
||||||
|
|
||||||
// Cables keepout
|
|
||||||
translate([0,10+3,-2])cube([5,10,5]);
|
|
||||||
|
|
||||||
// Carriage slimer
|
// Carriage slimer
|
||||||
translate([-55.5+3,19,-1])cube([10,40,30]);
|
translate([-55.5+3,19,-1])cube([10,40,30]);
|
||||||
translate([+12.5-3,19,-1])cube([10,40,30]);
|
translate([+12.5-3,19,-1])cube([10,40,30]);
|
||||||
|
|
||||||
translate([+12.5-3.5-2,19,-1])rotate([0,90-65,0])cube([10,55,30]);
|
translate([+12.5-3.5-2,19,-1])rotate([0,90-65,0])cube([10,55,30]);
|
||||||
translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]);
|
translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]);
|
||||||
|
|
||||||
// Filament hole
|
|
||||||
translate([-33/2,7,1]) rotate([-15,0,0])cylinder(r=1.52, h=40, $fn=10);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module x_carriage_fancy(){
|
module x_carriage_fancy(){
|
||||||
// Top right corner
|
// Top right corner
|
||||||
translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]);
|
translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]);
|
||||||
// Belt Smooth insert
|
// Belt Smooth insert
|
||||||
translate([0,36.5,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
|
translate([0,36.5,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
|
||||||
translate([-52.9,36.5+3,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
|
translate([-52.9,36.5+3,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
|
||||||
|
|
||||||
// Bottom ĺeft corner
|
// Bottom ĺeft corner
|
||||||
translate([-34,2,0]) translate([2,-11.5,-1]) rotate([0,0,-145]) translate([0,-15,0]) cube([30,30,34]);
|
translate([-34,2,0]) translate([2,-11.5,-1]) rotate([0,0,-145]) translate([0,-15,0]) cube([30,30,34]);
|
||||||
// Top left corner
|
// Top left corner
|
||||||
translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]);
|
translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]);
|
||||||
translate([-23,72,14]) rotate([0,45,0]) translate([0,-15,0]) cube([5,25,5]);
|
translate([-23,72,14]) rotate([0,45,0]) translate([0,-15,0]) cube([5,25,5]);
|
||||||
translate([-23,84,21]) rotate([45,0,0]) translate([0,-15,0]) cube([45,5,5]);
|
translate([-23,84,21]) rotate([45,0,0]) translate([0,-15,0]) cube([45,5,5]);
|
||||||
|
|
||||||
translate([-8,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6);
|
translate([-8,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6);
|
||||||
translate([-10,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6);
|
translate([-10,64,5]) rotate([0,0,0]) cylinder(r=6, h=22, $fn=6);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module cable_tray(){
|
module cable_tray(){
|
||||||
|
|
||||||
//Left cable tray
|
//Left cable tray
|
||||||
translate([-38.9,11,0]) cube([8,2,15]);
|
translate([-38.9,11,0]) cube([8,2,15]);
|
||||||
translate([-38.9,5.5,0]) cube([8,2,15]);
|
translate([-38.9,5.5,0]) cube([8,2,15]);
|
||||||
|
|
||||||
//Right cable tray
|
//Right cable tray
|
||||||
|
|
@ -176,128 +162,118 @@ module cable_tray(){
|
||||||
translate([0,3.5,6])rotate([-60,0,0]) cube([5.5,12,7]);
|
translate([0,3.5,6])rotate([-60,0,0]) cube([5.5,12,7]);
|
||||||
translate([0,10+3,-1])cube([5.5,11,6]);
|
translate([0,10+3,-1])cube([5.5,11,6]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
module final_cutout()
|
||||||
module upper_ziptie_holder()
|
|
||||||
{
|
{
|
||||||
|
|
||||||
// body
|
|
||||||
difference(){
|
|
||||||
translate([-19,18,7]) cube([5,15,9]);
|
|
||||||
translate([-20,29,10]) rotate([45,0,0])cube([10,10,10]);
|
|
||||||
translate([-20,29,10]) cube([7,5,20]);
|
|
||||||
}
|
|
||||||
|
|
||||||
difference(){
|
|
||||||
union(){
|
|
||||||
difference(){
|
|
||||||
translate([-23,17.5,7]) cube([13,5,17]);
|
|
||||||
translate([-23,19,6]) rotate([0,0,45]) cube([5,5,19]);
|
|
||||||
translate([-10,19,6]) rotate([0,0,45]) cube([5,5,19]);
|
|
||||||
translate([-15,21,17])rotate([0,0,0])cube([5,2,5]);
|
|
||||||
translate([-23,21,17])rotate([0,0,0])cube([5,2,5]);
|
|
||||||
}
|
|
||||||
difference(){
|
|
||||||
translate([-23,11.5,15]) cube([13,7,9]);
|
|
||||||
#translate([-30,15.5,14.8]) rotate([0,90,0]) cylinder(r=2, h=22, $fn=30);
|
|
||||||
translate([-24,11,18]) rotate([45,0,0]) cube([20,10,10]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//zip ties
|
|
||||||
translate([-20,5,17])rotate([0,0,0])cube([2,20,5]);
|
|
||||||
translate([-15,5,17])rotate([0,0,0])cube([2,20,5]);
|
|
||||||
|
|
||||||
// corners
|
|
||||||
translate([-28,12,25]) rotate([0,45,0]) cube([5,15,5]);
|
|
||||||
translate([-12,12,25]) rotate([0,45,0]) cube([5,15,5]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
module final_cutout(){
|
|
||||||
|
|
||||||
translate([-19,-16.4,13]) rotate([-45,0,0]) cube([5,5,5]);
|
|
||||||
translate([-43,0,16]) rotate([0,45,0]) cube([5,15,5]);
|
translate([-43,0,16]) rotate([0,45,0]) cube([5,15,5]);
|
||||||
translate([5,0,16]) rotate([0,45,0]) cube([5,15,5]);
|
translate([5,0,16]) rotate([0,45,0]) cube([5,15,5]);
|
||||||
|
|
||||||
translate([-4.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]);
|
translate([-4.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]);
|
||||||
translate([-34.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]);
|
translate([-34.5,0,18.5]) rotate([0,45,0]) cube([5,15,5]);
|
||||||
|
|
||||||
|
|
||||||
translate([-19,7,13.5]) rotate([-15,0,0]) cube([5,5,50]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Final part
|
|
||||||
module x_carriage(){
|
module x_carriage(){
|
||||||
difference(){
|
difference(){
|
||||||
union(){
|
union(){
|
||||||
difference()
|
difference()
|
||||||
{
|
{
|
||||||
x_carriage_base();
|
x_carriage_base();
|
||||||
x_carriage_holes();
|
x_carriage_holes();
|
||||||
x_carriage_fancy();
|
x_carriage_fancy();
|
||||||
}
|
}
|
||||||
cable_tray();
|
cable_tray();
|
||||||
upper_ziptie_holder();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final_cutout();
|
final_cutout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// belt keepout
|
|
||||||
//%translate([-42-9,30-16,7])cube([70,16,10]);
|
module final_part()
|
||||||
|
{
|
||||||
|
|
||||||
difference(){
|
difference(){
|
||||||
union(){
|
union(){
|
||||||
x_carriage();
|
x_carriage();
|
||||||
//translate([7.3,-16,0])
|
|
||||||
//translate([2,-19,0]) cube([7.5,12,0.5]);
|
|
||||||
//translate([5,-16,0]) cube([4.5,1,5]);
|
|
||||||
//translate([5,-11.2,0]) cube([4.5,1,5]);
|
|
||||||
//translate([5.5,7.5,0]) cube([4,3.5,0.5]);
|
|
||||||
}
|
|
||||||
translate([2.5,67.5,-50]) rotate([0,0,0]) cylinder(r=1.8, h=100, $fn=30);
|
|
||||||
#translate([2.5,67.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
|
||||||
translate([2.5,67.5,5]) rotate([0,0,0]) cylinder(r=3.2, h=8, $fn=30);
|
|
||||||
translate([0,21,0]) rotate([0,90,0]) cylinder(r=5.2, h=5.5, $fn=25);
|
|
||||||
//translate([2 ,-5,-5])cube([20,50,30]);
|
|
||||||
|
|
||||||
translate([-36.5,21.25,1.5]) cube([0.1,4.5,13.3]);
|
|
||||||
translate([-38.6,21,1.5]) cube([0.1,6,13.3]);
|
|
||||||
translate([-41,21,1.5]) cube([0.1,6,13.3]);
|
|
||||||
|
|
||||||
|
|
||||||
translate([3.5,21,6]) cube([0.1,2,8.8]);
|
|
||||||
translate([5,21,6]) cube([0.1,3,8.8]);
|
|
||||||
translate([6.8,21,1.5]) cube([0.1,3,13.3]);
|
|
||||||
translate([8.5,21,5]) cube([0.1,3,9.8]);
|
|
||||||
|
|
||||||
translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]);
|
|
||||||
translate([7.45,6,-1]) cube([0.5,1,5]);
|
|
||||||
translate([7.45,11.5,-1]) cube([0.5,1.8,5]);
|
|
||||||
|
|
||||||
translate([5,-16.4,-1]) rotate([0,45,0]) cube([0.3,0.5,8]);
|
// extruder cables holder
|
||||||
translate([5,-10.3,-1]) rotate([0,45,0]) cube([0.3,0.5,8]);
|
difference()
|
||||||
translate([6,-16.5,-1]) cube([1,0.5,5]);
|
{
|
||||||
translate([3,-16.5,-1]) cube([2,0.5,5]);
|
union()
|
||||||
translate([6,-10.2,-1]) cube([1,0.5,5]);
|
{
|
||||||
translate([3,-10.2,-1]) cube([2,0.5,5]);
|
// body
|
||||||
translate([6,7.5,-1]) cube([1,0.5,5]);
|
translate([-22,8.3,7]) cube([7,15,16]);
|
||||||
translate([6,10.5,-1]) cube([1,0.5,5]);
|
translate([-22,18,7]) cube([11,15,19]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// belt cutout
|
||||||
|
translate([-30,15.5,14.8]) rotate([0,90,0]) cylinder(r=2, h=22, $fn=30);
|
||||||
|
translate([-23,13.5,7]) cube([9,4,8]);
|
||||||
|
|
||||||
|
// angle cuts
|
||||||
|
translate([-10.0,13.0,7]) rotate([0,0,45]) cube([7,7,28]);
|
||||||
|
translate([-22.5,29.5,7]) rotate([0,0,45]) cube([5,5,28]);
|
||||||
|
translate([-10.5,29.5,7]) rotate([0,0,45]) cube([5,5,28]);
|
||||||
|
|
||||||
|
//upper ziptie slot
|
||||||
|
translate([-7,23,16])rotate([0,0,40])cube([2,10,4]);
|
||||||
|
translate([-13.5,19,13]) cube([3,15,11]);
|
||||||
|
translate([-23,21,19.5]) cube([10,5,11]);
|
||||||
|
translate([-27,20,16])rotate([0,0,-20])cube([2,30,4]);
|
||||||
|
translate([0,29.5,16])rotate([0,0,90])cube([2,30,4]);
|
||||||
|
translate([-11,21,16])rotate([0,0,20])cube([2,10,4]);
|
||||||
|
|
||||||
//half cut
|
translate([-19,22,5]) cube([0.5,5,14]);
|
||||||
//translate([-50 ,-50,8])cube([100,100,30]);
|
translate([-15,22,5]) cube([0.5,5,14]);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// upper screw
|
||||||
|
translate([2.5,67.5,-50]) rotate([0,0,0]) cylinder(r=1.8, h=100, $fn=30);
|
||||||
|
translate([2.5,67.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
||||||
|
translate([2.5,67.5,5]) rotate([0,0,0]) cylinder(r=3.2, h=8, $fn=30);
|
||||||
|
|
||||||
|
// cable guide round corner
|
||||||
|
translate([0,21,0]) rotate([0,90,0]) cylinder(r=5.2, h=5.5, $fn=25);
|
||||||
|
|
||||||
|
//selective infill
|
||||||
|
translate([-36.5,21.25,1.5]) cube([0.1,4.5,13.3]);
|
||||||
|
translate([-38.6,21,1.5]) cube([0.1,6,13.3]);
|
||||||
|
translate([-41,21,1.5]) cube([0.1,6,13.3]);
|
||||||
|
|
||||||
|
translate([3.5,21,6]) cube([0.1,2,8.8]);
|
||||||
|
translate([5,21,6]) cube([0.1,3,8.8]);
|
||||||
|
translate([6.8,21,1.5]) cube([0.1,3,13.3]);
|
||||||
|
translate([8.5,21,5]) cube([0.1,3,9.8]);
|
||||||
|
|
||||||
|
translate([3.5,21,5.5]) cube([0.5,2,9]);
|
||||||
|
translate([5,21,5.5]) cube([0.5,2,9]);
|
||||||
|
translate([6.5,21,5.5]) cube([0.5,2,9]);
|
||||||
|
translate([8,21,5]) cube([0.5,2,9]);
|
||||||
|
|
||||||
|
// filament holder
|
||||||
|
translate([-18.5,-10.5,12]) rotate([-8,0,0])cylinder(r=1.52, h=40, $fn=10);
|
||||||
|
|
||||||
|
|
||||||
|
// cable screw hole
|
||||||
|
translate([-18.5,11,-1]) rotate([0,0,0])cylinder(r=1.52, h=40, $fn=50);
|
||||||
|
translate([-18.5,11,-1]) rotate([0,0,0])cylinder(r1=4,r2=3.2, h=7, $fn=6);
|
||||||
|
translate([-18.5,11,-1]) rotate([0,0,0])cylinder(r1=5,r2=4, h=4, $fn=6);
|
||||||
|
|
||||||
|
// extruder cables front face cut
|
||||||
|
translate([-18.5,16,19.5]) rotate([0,0,0])cylinder(r=10, h=40, $fn=60);
|
||||||
|
translate([-18.5,19.5,23]) rotate([0,0,0])cylinder(r=15, h=40, $fn=60);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Cable hole vis
|
}
|
||||||
//%translate([-33/2 - 2.5,-17,1])cube([5,25,30]);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
final_part();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,72 +1,111 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// X end idler
|
// X end idler
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
use <x-end.scad>
|
use <x-end.scad>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module x_end_idler_holes(){
|
module x_end_idler_holes(){
|
||||||
x_end_holes();
|
x_end_holes();
|
||||||
translate([0,3.5,0]){
|
translate([0,3.5,0]){
|
||||||
translate(v=[0,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.8, $fn=30);
|
translate(v=[0,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.8, $fn=30);
|
||||||
translate(v=[1.5,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 10, r=3.1, $fn=30);
|
translate(v=[1.5,-22,30.25]) rotate(a=[0,-90,0]) cylinder(h = 10, r=3.1, $fn=30);
|
||||||
translate(v=[-21.5,-22,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 80, r=3.2, $fn=6);
|
translate(v=[-21.5,-22,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 80, r=3.2, $fn=6);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module waste_pocket(){
|
module waste_pocket(){
|
||||||
// waste pocket
|
// waste pocket
|
||||||
translate([-15,-1,6]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30);
|
translate([-15,-1,6]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30);
|
||||||
translate([-15,-1,51]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30);
|
translate([-15,-1,51]) rotate([90,0,0]) cylinder( h=5, r=5.5, $fn=30);
|
||||||
translate([-15,-5.9,6]) rotate([90,0,0]) cylinder( h=3, r1=5.5, r2=4.3, $fn=30);
|
translate([-15,-5.9,6]) rotate([90,0,0]) cylinder( h=3, r1=5.5, r2=4.3, $fn=30);
|
||||||
translate([-15,-5.9,51]) rotate([90,0,0]) cylinder( h=3, r=5.5, r2=4.3, $fn=30);
|
translate([-15,-5.9,51]) rotate([90,0,0]) cylinder( h=3, r=5.5, r2=4.3, $fn=30);
|
||||||
|
|
||||||
|
|
||||||
//M3 thread
|
//M3 thread
|
||||||
translate([-15,8.5,6]) rotate([90,0,0]) cylinder( h=12, r=1.4, $fn=30);
|
translate([-15,8.5,6]) rotate([90,0,0]) cylinder( h=12, r=1.7, $fn=30);
|
||||||
translate([-15,8.5,51]) rotate([90,0,0]) cylinder( h=12, r=1.4, $fn=30);
|
translate([-15,8.5,51]) rotate([90,0,0]) cylinder( h=12, r=1.7, $fn=30);
|
||||||
|
|
||||||
//M3 heads
|
//M3 heads
|
||||||
translate([-15,11.5,6]) rotate([90,0,0]) cylinder( h=4, r=2.9, $fn=30);
|
translate([-15,11.5,6]) rotate([90,0,0]) cylinder( h=4, r=3, $fn=30);
|
||||||
translate([-15,11.5,51]) rotate([90,0,0]) cylinder( h=4, r=2.9, $fn=30);
|
translate([-15,11.5,51]) rotate([90,0,0]) cylinder( h=4, r=3, $fn=30);
|
||||||
|
|
||||||
//M3 nut traps
|
//M3 nut traps
|
||||||
translate([-17.9,0.5,52-3-1.6]) cube([5.8,3.1,20]);
|
translate([-17.9,0.5,52-3-1.6]) cube([6,3,20]);
|
||||||
translate([-17.9,0.5,-10+1.5+1.6]) cube([5.8,3.1,16]);
|
translate([-17.9,0.5,-10+1.5+1.6]) cube([6,3,16]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module x_end_idler_base(){
|
module x_end_idler_base(){
|
||||||
union(){
|
union(){
|
||||||
difference(){
|
difference(){
|
||||||
x_end_base();
|
x_end_base();
|
||||||
x_end_idler_holes();
|
x_end_idler_holes();
|
||||||
}
|
}
|
||||||
translate([-15,8.5,6]) rotate([90,0,0]) cylinder( h=11, r=6, $fn=30);
|
translate([-15,10.5,6]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30);
|
||||||
translate([-15,8.5,51]) rotate([90,0,0]) cylinder( h=11, r=6, $fn=30);
|
translate([-15,10.5,51]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module selective_infill()mirror([0,1,0]) translate([-50, -33, 0.6])
|
||||||
module x_end_idler(){
|
{
|
||||||
mirror([0,1,0])
|
difference()
|
||||||
difference(){
|
{
|
||||||
x_end_idler_base();
|
union()
|
||||||
waste_pocket();
|
{
|
||||||
|
difference()
|
||||||
}
|
{
|
||||||
|
#translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=11.7, $fn=30);//0, 17, 0.6
|
||||||
}
|
#translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=11.5, $fn=30);
|
||||||
|
}
|
||||||
//difference(){
|
difference()
|
||||||
x_end_idler();
|
{
|
||||||
//translate([-15,-50,0]) cube([100,100,100]);
|
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=10.7, $fn=30); //0, 17, 0.6
|
||||||
//}
|
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=10.5, $fn=30);
|
||||||
|
}
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9.9, $fn=30); //0, 17, 0.6
|
||||||
|
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=9.7, $fn=30);
|
||||||
|
}
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9, $fn=30); //0, 17, 0.6
|
||||||
|
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=8.8, $fn=30);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([57.5,50.5,-1]) rotate([0,0,45]) cube([8,10,9]);
|
||||||
|
translate([52,30.5,-1]) rotate([0,0,45]) cube([10,20,20]);
|
||||||
|
translate([32,35.5,-1]) cube([8,30,9]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module reinforcement_selective_infill(){
|
||||||
|
rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,12],[8,0]] ); // bearings
|
||||||
|
|
||||||
|
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,12],[8,0]] ); //body
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module x_end_idler(){
|
||||||
|
mirror([0,1,0])
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
x_end_idler_base();
|
||||||
|
waste_pocket();
|
||||||
|
selective_infill();
|
||||||
|
reinforcement_selective_infill();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
x_end_idler();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,104 +1,159 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// X end motor
|
// X end motor
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
use <x-end.scad>
|
use <x-end.scad>
|
||||||
|
|
||||||
module x_end_motor_base(){
|
module x_end_motor_base(){
|
||||||
x_end_base();
|
x_end_base();
|
||||||
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
|
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
module x_end_motor_endstop_base(){
|
module x_end_motor_endstop_base(){
|
||||||
translate([-23.5,-28.5,58]){
|
translate([-23.5,-28.5,58]){
|
||||||
difference(){
|
difference(){
|
||||||
// Base block
|
// Base block
|
||||||
cube([17,18.2,4]);
|
cube([17,18.2,4]);
|
||||||
// Nice edge
|
// Nice edge
|
||||||
translate([-1,10,10])rotate([-45,0,0])cube(20,20,20);
|
translate([-1,10,10])rotate([-45,0,0])cube(20,20,20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module x_end_motor_endstop_holes(){
|
module x_end_motor_endstop_holes(){
|
||||||
translate([-23.5,-28.5,58]){
|
translate([-23.5,-28.5,58]){
|
||||||
translate([17/2,7.5,-3]){
|
translate([17/2,7.5,-3]){
|
||||||
// Back screw hole for endstop
|
// Back screw hole for endstop
|
||||||
translate([-4.75,0,0])cylinder(r=1,h=19,$fn=20);
|
translate([-4.75,0,0])cylinder(r=1,h=19,$fn=20);
|
||||||
// Front screw hole for endstop
|
translate([-4.75,0,6])cylinder(r1=1, r2=1.5, h=2,$fn=20);
|
||||||
translate([4.75,0,0])cylinder(r=1,h=19,$fn=20);
|
// Front screw hole for endstop
|
||||||
}
|
translate([4.75,0,0])cylinder(r=1,h=19,$fn=20);
|
||||||
}
|
translate([4.75,0,6])cylinder(r1=1, r2=1.5, h=2,$fn=20);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
module x_end_motor_holes(){
|
}
|
||||||
x_end_holes();
|
|
||||||
// Position to place
|
|
||||||
translate(v=[-1,32,30.25]){
|
|
||||||
// Belt hole
|
module x_end_motor_holes(){
|
||||||
translate(v=[-14,1,0]) cube(size = [10,46,22], center = true);
|
x_end_holes();
|
||||||
// Motor mounting holes
|
// Position to place
|
||||||
translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
translate(v=[-1,32,30.25]){
|
||||||
translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
// Belt hole
|
||||||
translate(v=[20,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
translate(v=[-14,1,0]) cube(size = [10,46,22], center = true);
|
||||||
translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
// Motor mounting holes
|
||||||
translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
||||||
translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
||||||
translate(v=[20,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
translate(v=[20,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
||||||
translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
||||||
|
translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
||||||
// Material saving cutout
|
translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
||||||
translate(v=[-10,12,10]) cube(size = [60,42,42], center = true);
|
translate(v=[20,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=1.8, $fn=30);
|
||||||
|
translate(v=[1,15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 10, r=3.1, $fn=30);
|
||||||
// Material saving cutout
|
|
||||||
translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
|
// Material saving cutout
|
||||||
// Motor shaft cutout
|
translate(v=[-10,12,10]) cube(size = [60,42,42], center = true);
|
||||||
//#translate(v=[0,0,0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
|
|
||||||
}
|
// Material saving cutout
|
||||||
}
|
translate(v=[-10,40,-30]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
|
||||||
|
|
||||||
// Motor shaft cutout
|
}
|
||||||
module x_end_motor_shaft_cutout(){
|
}
|
||||||
union(){
|
|
||||||
difference(){
|
// Motor shaft cutout
|
||||||
translate(v=[0,32,30]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
|
module x_end_motor_shaft_cutout(){
|
||||||
|
union(){
|
||||||
translate(v=[-10,-17+32,30]) cube(size = [60,2,10], center = true);
|
difference(){
|
||||||
translate(v=[-10,-8+32,-15.5+30]) rotate(a=[60,0,0]) cube(size = [60,2,10], center = true); ///
|
translate(v=[0,32,30]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
|
||||||
translate(v=[-10,8+32,-15.5+30]) rotate(a=[-60,0,0]) cube(size = [60,2,10], center = true);
|
|
||||||
|
translate(v=[-10,-17+32,30]) cube(size = [60,2,10], center = true);
|
||||||
|
translate(v=[-10,-8+32,-15.5+30]) rotate(a=[60,0,0]) cube(size = [60,2,10], center = true);
|
||||||
}
|
translate(v=[-10,8+32,-15.5+30]) rotate(a=[-60,0,0]) cube(size = [60,2,10], center = true);
|
||||||
translate(v=[-30,25.2,-11.8 +30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3, $fn=30);
|
|
||||||
translate(v=[-30,19.05,30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3.5, $fn=100);
|
|
||||||
}
|
}
|
||||||
}
|
translate(v=[-30,25.2,-11.8 +30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3, $fn=30);
|
||||||
|
translate(v=[-30,19.05,30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3.5, $fn=100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Final part
|
|
||||||
module x_end_motor(){
|
|
||||||
difference(){
|
module selective_infill()mirror([0,1,0]) translate([-50, -33, 0.6])
|
||||||
union(){
|
{
|
||||||
x_end_motor_base();
|
difference()
|
||||||
x_end_motor_endstop_base();
|
{
|
||||||
}
|
union()
|
||||||
x_end_motor_shaft_cutout();
|
{
|
||||||
x_end_motor_holes();
|
difference()
|
||||||
x_end_motor_endstop_holes();
|
{
|
||||||
|
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=11.7, $fn=30);//0, 17, 0.6
|
||||||
translate([-12,-42,65]) rotate([-35,0,0]) rotate([0,0,45]) cube(10,10,10);
|
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=11.5, $fn=30);
|
||||||
translate([-15,8.5,6]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30);
|
}
|
||||||
translate([-15,8.5,51]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30);
|
difference()
|
||||||
translate([-15,3.5,6]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
|
{
|
||||||
translate([-15,3.5,51]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
|
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=10.7, $fn=30); //0, 17, 0.6
|
||||||
//#translate([-16,-40,0])cube([50,100,100]);
|
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=10.5, $fn=30);
|
||||||
}
|
}
|
||||||
|
difference()
|
||||||
}
|
{
|
||||||
|
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9.9, $fn=30); //0, 17, 0.6
|
||||||
x_end_motor();
|
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=9.7, $fn=30);
|
||||||
|
}
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9, $fn=30); //0, 17, 0.6
|
||||||
|
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=8.8, $fn=30);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([57.5,50.5,-1]) rotate([0,0,45]) cube([8,10,9]); // front
|
||||||
|
translate([52,30.5,-1]) rotate([0,0,45]) cube([10,20,20]); // front angled
|
||||||
|
translate([32,35.5,-1]) cube([8,30,9]); // inner horizontal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module reinforcement_selective_infill()
|
||||||
|
{
|
||||||
|
rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,12],[8,0]] ); //bearings
|
||||||
|
|
||||||
|
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,12],[8,0]] ); //body
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Final part
|
||||||
|
module x_end_motor(){
|
||||||
|
difference(){
|
||||||
|
union(){
|
||||||
|
x_end_motor_base();
|
||||||
|
x_end_motor_endstop_base();
|
||||||
|
|
||||||
|
}
|
||||||
|
x_end_motor_shaft_cutout();
|
||||||
|
x_end_motor_holes();
|
||||||
|
x_end_motor_endstop_holes();
|
||||||
|
selective_infill();
|
||||||
|
reinforcement_selective_infill();
|
||||||
|
|
||||||
|
translate([-12,-42,65]) rotate([-35,0,0]) rotate([0,0,45]) cube(10,10,10);
|
||||||
|
translate([-15,8.5,6]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30);
|
||||||
|
translate([-15,8.5,51]) rotate([90,0,0]) cylinder(h=5, r=5, $fn=30);
|
||||||
|
translate([-15,3.5,6]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
|
||||||
|
translate([-15,3.5,51]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
x_end_motor();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,87 +1,99 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// X end prototype
|
// X end prototype
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
use <bearing.scad>
|
use <bearing.scad>
|
||||||
use <polyholes.scad>
|
use <polyholes.scad>
|
||||||
rod_distance = 45;
|
rod_distance = 45;
|
||||||
|
|
||||||
module x_end_base(){
|
module x_end_base(){
|
||||||
// Main block
|
// Main block
|
||||||
height = 58;
|
height = 58;
|
||||||
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
|
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
|
||||||
// Bearing holder
|
// Bearing holder
|
||||||
vertical_bearing_base();
|
vertical_bearing_base();
|
||||||
//Nut trap
|
//Nut trap
|
||||||
// Cylinder
|
// Cylinder
|
||||||
translate(v=[0,-17,0]) poly_cylinder(h = 8, r=12.5, $fn=25);
|
translate(v=[0,-17,0]) poly_cylinder(h = 8, r=12.5, $fn=25);
|
||||||
// Hexagon
|
// Hexagon
|
||||||
//translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6);
|
//translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6);
|
||||||
translate(v=[-6,-10.6,10]) rotate([0,0,48.2]) cube(size = [10,5,1], center = true);
|
translate(v=[-6,-10.6,10]) rotate([0,0,48.2]) cube(size = [10,5,1], center = true);
|
||||||
}
|
|
||||||
|
rotate([90,0,-15,]) translate ([-1, 8, 24])linear_extrude(height = 4) polygon( points=[[0,0],[0,12],[8,0]] ); //vzpera lozisek
|
||||||
module x_end_holes(){
|
rotate([90,0,-50,]) translate ([9, 8, -0.6])linear_extrude(height = 4) polygon( points=[[0,0],[0,12],[8,0]] );
|
||||||
vertical_bearing_holes();
|
|
||||||
// Belt hole
|
}
|
||||||
translate(v=[-1,0,0]){
|
module reinforcement_selective_infill(){
|
||||||
// Stress relief
|
rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,12],[8,0]] ); //vzpera lozisek
|
||||||
translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true);
|
|
||||||
difference(){
|
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,12],[12,0]] ); //vzpera tela
|
||||||
translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true);
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//reinforcement_selective_infill();
|
||||||
// Nice edges
|
|
||||||
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true);
|
module x_end_holes(){
|
||||||
translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true);
|
vertical_bearing_holes();
|
||||||
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true);
|
// Belt hole
|
||||||
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true);
|
translate(v=[-1,0,0]){
|
||||||
|
// Stress relief
|
||||||
}
|
translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true);
|
||||||
}
|
difference(){
|
||||||
|
translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true);
|
||||||
// Bottom pushfit rod
|
|
||||||
translate(v=[-15,-41.5,6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
|
|
||||||
// Top pushfit rod
|
|
||||||
translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
|
// Nice edges
|
||||||
|
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true);
|
||||||
// TR Nut trap
|
translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true);
|
||||||
// Hole for the nut
|
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true);
|
||||||
translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 6.6, $fn = 25);
|
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true);
|
||||||
|
|
||||||
// Screw holes for TR nut
|
}
|
||||||
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -1]) cylinder(h = 10, r = 1.55, $fn=25);
|
}
|
||||||
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -1]) cylinder(h = 10, r = 1.55, $fn=25);
|
|
||||||
|
// Bottom pushfit rod
|
||||||
// Nut traps for TR nut screws
|
translate(v=[-15,-41,6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
|
||||||
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 6]) rotate([0, 0, 0])cylinder(h = 3, r = 3.3, $fn=6);
|
// Top pushfit rod
|
||||||
|
translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
|
||||||
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, 6]) rotate([0, 0, 30])cylinder(h = 3, r = 3.2, $fn=6);
|
|
||||||
translate([-5.5,-17.2,6]) rotate([0,0,30]) cube([5,5,3]);
|
// TR Nut trap
|
||||||
translate([-0,-17.2,6]) rotate([0,0,60]) cube([5,10,3]);
|
// Hole for the nut
|
||||||
}
|
translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 7, $fn = 25);
|
||||||
|
translate(v=[0,-17, -0.1]) cylinder(h = 0.5, r1 = 6.8+0.8,r2 = 7, $fn = 25);
|
||||||
|
|
||||||
// Final prototype
|
// Screw holes for TR nut
|
||||||
module x_end_plain(){
|
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -1]) cylinder(h = 10, r = 1.8, $fn=25);
|
||||||
difference(){
|
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -1]) cylinder(h = 10, r = 1.8, $fn=25);
|
||||||
x_end_base();
|
|
||||||
x_end_holes();
|
// Nut traps for TR nut screws
|
||||||
}
|
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 6]) rotate([0, 0, 0])cylinder(h = 3, r = 3.45, $fn=6);
|
||||||
}
|
|
||||||
|
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, 6]) rotate([0, 0, 30])cylinder(h = 3, r = 3.2, $fn=6);
|
||||||
x_end_plain();
|
translate([-5.5,-17.2,6]) rotate([0,0,30]) cube([5,5,3]);
|
||||||
|
translate([-0,-17.2,6]) rotate([0,0,60]) cube([5,10,3]);
|
||||||
|
}
|
||||||
module pushfit_rod(diameter,length){
|
|
||||||
poly_cylinder(h = length, r=diameter/2);
|
|
||||||
difference(){
|
// Final prototype
|
||||||
translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true);
|
module x_end_plain(){
|
||||||
translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true);
|
difference(){
|
||||||
}
|
x_end_base();
|
||||||
//translate(v=[0,-diameter/2-2,length/2]) cube(size = [diameter,1,length], center = true);
|
x_end_holes();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
x_end_plain();
|
||||||
|
|
||||||
|
|
||||||
|
module pushfit_rod(diameter,length){
|
||||||
|
poly_cylinder(h = length, r=diameter/2);
|
||||||
|
difference(){
|
||||||
|
translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true);
|
||||||
|
translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,11 @@ translate([-10, 23, -1 ]) cube([ 52, 3, 15 ]);
|
||||||
|
|
||||||
module belt_holders()
|
module belt_holders()
|
||||||
{
|
{
|
||||||
|
|
||||||
translate([ 16, 18, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // upper belt holder
|
translate([ 16, 18, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // upper belt holder
|
||||||
translate([ 16, 18, 11 ]) cylinder( h=3, r1=3.5, r2=2.5, $fn=30 ); // upper belt holder cone
|
translate([ 16, 18, 11 ]) cylinder( h=3, r1=3.5, r2=2.5, $fn=30 ); // upper belt holder cone
|
||||||
|
|
||||||
translate([ 12, 5, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // lower belt holder
|
translate([ 12, 5, 0 ]) cylinder( h=11, r=3.5, $fn=30 ); // lower belt holder
|
||||||
translate([ 12, 5, 11 ]) cylinder( h=3 , r1=3.5, r2=2.5, $fn=30 ); // lower belt holder cone
|
translate([ 12, 5, 11 ]) cylinder( h=3 , r1=3.5, r2=2.5, $fn=30 ); // lower belt holder cone
|
||||||
}
|
}
|
||||||
|
|
||||||
module screws()
|
module screws()
|
||||||
|
|
@ -41,15 +40,16 @@ module screws()
|
||||||
translate([35.5, 15, 4.5 ]) cube([ 6, 7, 6 ]);
|
translate([35.5, 15, 4.5 ]) cube([ 6, 7, 6 ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
belt_holders();
|
//belt_holders();
|
||||||
|
module main()
|
||||||
|
|
||||||
|
{
|
||||||
difference()
|
difference()
|
||||||
{
|
{
|
||||||
main_body();
|
main_body();
|
||||||
|
|
||||||
translate([ 16, 18, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // upper belt space cutaway
|
translate([ 16, 18, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // upper belt space cutaway
|
||||||
translate([ 12, 5, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // lower belt space cutaway
|
translate([ 12, 5, 2 ]) cylinder( h = 16, r = 7.2, $fn=30 ); // lower belt space cutaway
|
||||||
|
|
||||||
translate([-20, 9, 2]) cube([ 28, 2.1, 16 ]);
|
translate([-20, 9, 2]) cube([ 28, 2.1, 16 ]);
|
||||||
rotate([0,0,40]) translate([11, 1, 2 ]) cube([ 10, 4, 16 ]);
|
rotate([0,0,40]) translate([11, 1, 2 ]) cube([ 10, 4, 16 ]);
|
||||||
|
|
||||||
|
|
@ -57,23 +57,9 @@ translate([10, 7, 2 ]) cube([ 32, 2.1, 16 ]);
|
||||||
|
|
||||||
translate([16, 8, 11 ]) rotate([45,0,0]) cube([ 15, 5, 5 ]);
|
translate([16, 8, 11 ]) rotate([45,0,0]) cube([ 15, 5, 5 ]);
|
||||||
translate([-2, 10, 11 ]) rotate([45,0,0]) cube([ 10, 5, 5 ]);
|
translate([-2, 10, 11 ]) rotate([45,0,0]) cube([ 10, 5, 5 ]);
|
||||||
|
|
||||||
screws();
|
screws();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// print part reinforcement
|
|
||||||
translate([1,0.5,-0.5]) cube([0.1,5,13]);
|
|
||||||
translate([3,0.5,-0.5]) cube([0.1,5,13]);
|
|
||||||
translate([21.2,0.5,-0.5]) cube([0.1,4,12]);
|
|
||||||
translate([23.5,0.5,-0.5]) cube([0.1,4,12]);
|
|
||||||
translate([25.5,0.5,-0.5]) cube([0.1,4,12]);
|
|
||||||
translate([11.5,3,-0.5]) cube([1,0.3,12]);
|
|
||||||
translate([10,5,-0.5]) cube([4,0.3,12]);
|
|
||||||
translate([11.5,6.5,-0.5]) cube([1,0.3,12]);
|
|
||||||
translate([15.5,16,-0.5]) cube([1,0.3,12]);
|
|
||||||
translate([14,18,-0.5]) cube([4,0.3,12]);
|
|
||||||
translate([15.5,20,-0.5]) cube([1,0.3,12]);
|
|
||||||
|
|
||||||
|
|
||||||
// corner cutoff
|
// corner cutoff
|
||||||
|
|
@ -81,6 +67,49 @@ screws();
|
||||||
translate([-2,-13,-2]) rotate([0,0,45]) cube([10,10,20]);
|
translate([-2,-13,-2]) rotate([0,0,45]) cube([10,10,20]);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module selective_infill()
|
||||||
|
{
|
||||||
|
// print part reinforcement
|
||||||
|
translate([1, 0.5, -0.5]) cube([0.1,5,13]);
|
||||||
|
translate([3, 0.5, -0.5]) cube([0.1,5,13]);
|
||||||
|
translate([21.5, 0.5, -0.5]) cube([0.1,4,12]);
|
||||||
|
translate([23.5, 0.5, -0.5]) cube([0.1,4,12]);
|
||||||
|
translate([25.5, 0.5, -0.5]) cube([0.1,4,12]);
|
||||||
|
translate([11.5, 3, -0.5]) cube([1,0.2,12]);
|
||||||
|
translate([10, 5, -0.5]) cube([4,0.2,12]);
|
||||||
|
translate([11.5, 6.5, -0.5]) cube([1,0.2,12]);
|
||||||
|
translate([15.5, 16, -0.5]) cube([1,0.2,12]);
|
||||||
|
translate([14, 18, -0.5]) cube([4,0.2,12]);
|
||||||
|
translate([15.5, 20, -0.5]) cube([1,0.2,12]);
|
||||||
|
|
||||||
|
translate([1, 5.5, -0.5]) cube([0.1,14,2]);
|
||||||
|
translate([3, 5.5, -0.5]) cube([0.1,14,2]);
|
||||||
|
translate([5, 0.5, -0.5]) cube([0.1,19,2]);
|
||||||
|
translate([7, 0.5, -0.5]) cube([0.1,19,2]);
|
||||||
|
|
||||||
|
translate([19.5, 0.5, -0.5]) cube([0.1,18,2]);
|
||||||
|
translate([21.5, 4.5, -0.5]) cube([0.1,14,2]);
|
||||||
|
translate([23.5, 4.5, -0.5]) cube([0.1,14,2]);
|
||||||
|
translate([25.5, 4.5, -0.5]) cube([0.1,14,2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module final_part()
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
union()
|
||||||
|
{
|
||||||
|
main();
|
||||||
|
belt_holders();
|
||||||
|
}
|
||||||
|
selective_infill();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final_part();
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,65 +1,92 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// Y frame corners
|
// Y frame corners
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
|
|
||||||
module corner_base(){
|
module corner_base(){
|
||||||
translate([-9,-11,0])cube([18,22,49]);
|
translate([-9,-11,0])cube([18,22,49]);
|
||||||
}
|
|
||||||
|
}
|
||||||
module corner_holes(){
|
|
||||||
translate([-11,-11,0]){
|
module corner_holes(){
|
||||||
// Bottom hole
|
translate([-11,-11,0]){
|
||||||
translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
|
// Bottom hole
|
||||||
// Top hole
|
translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
|
||||||
translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
|
// Top hole
|
||||||
// Middle hole
|
translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
|
||||||
translate([11,0,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=5.4, $fn=30);
|
// Middle hole
|
||||||
|
translate([11,0,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=5.4, $fn=30);
|
||||||
// Washer hole
|
// Bottom hole bridge
|
||||||
translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30);
|
translate([0,8.8,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=2.6, $fn=6);
|
||||||
|
// Top hole bridge
|
||||||
// Top smooth rod insert
|
translate([0,8.8,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=2.6, $fn=6);
|
||||||
// Smooth rod place
|
|
||||||
translate([11,2.75,47]) rotate([0,90,90]) cylinder(h = 9.75, r=4.2, $fn=30);
|
// Washer hole
|
||||||
// Ziptie
|
translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30);
|
||||||
translate([-5,6,41]) cube([30,3.5,2]);
|
|
||||||
|
// Top smooth rod insert
|
||||||
// LM8UU keepout
|
// Smooth rod place
|
||||||
difference(){
|
translate([11,2.75,47]) rotate([0,90,90]) cylinder(h = 10, r=4.2, $fn=30);
|
||||||
translate([11,12.5,46]) rotate([0,90,90]) cylinder(h = 270, r=8, $fn=30);
|
// Ziptie
|
||||||
translate([21,12.5,62]) rotate([0,90,90]) cube([20,20,30]);
|
translate([-5,6,41]) cube([30,3.5,2]);
|
||||||
}
|
|
||||||
translate([21,12.5,62-0.2]) rotate([0,90,90]) cube([20,20,0.2]);
|
// LM8UU keepout
|
||||||
translate([21,12.5,42]) rotate([0,90,90]) cube([0.2,20,20]);
|
difference(){
|
||||||
|
translate([11,12.5,46]) rotate([0,90,90]) cylinder(h = 270, r=8, $fn=30);
|
||||||
}
|
translate([21,12.5,62]) rotate([0,90,90]) cube([20,20,30]);
|
||||||
}
|
}
|
||||||
|
|
||||||
module corner_fancy(){
|
translate([21,12.5,57]) rotate([0,90,90]) cube([15.2,20,20]);
|
||||||
// Side corner cutouts
|
|
||||||
translate([-8,-9,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
}
|
||||||
translate([8,-9,0]) rotate([0,0,45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
|
||||||
// Top corner cutouts
|
}
|
||||||
translate([7,0,49]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
|
||||||
translate([-7,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
module corner_fancy(){
|
||||||
rotate([0,0,90]){
|
// Side corner cutouts
|
||||||
translate([-9.5,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
translate([-8,-9,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
}
|
translate([8,-9,0]) rotate([0,0,45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
}
|
// Top corner cutouts
|
||||||
|
translate([7,0,49]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
||||||
|
translate([-7,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
||||||
// Final part
|
rotate([0,0,90]){
|
||||||
module corner(){
|
translate([-9.5,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
|
||||||
// Rotate the part for better printing
|
}
|
||||||
translate([0,0,11]) rotate([-90,0,0]) difference(){
|
}
|
||||||
corner_base();
|
|
||||||
corner_holes();
|
module selective_infill(){
|
||||||
corner_fancy();
|
|
||||||
}
|
translate([7,2,0.8])cube([0.2,33,5]);
|
||||||
}
|
translate([-7,2,0.8])cube([0.2,33,5]);
|
||||||
|
|
||||||
rotate([90,0,0]) corner();
|
translate([ 7,16,5.8])cube([0.2,8,11]);
|
||||||
|
translate([-7,16,5.8])cube([0.2,8,11]);
|
||||||
|
|
||||||
|
translate([7,2,16.8])cube([0.2,33,2]);
|
||||||
|
translate([-7,2,16.8])cube([0.2,33,2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Final part
|
||||||
|
module corner(){
|
||||||
|
// Rotate the part for better printing
|
||||||
|
translate([0,0,11]) rotate([-90,0,0])
|
||||||
|
{
|
||||||
|
difference(){
|
||||||
|
corner_base();
|
||||||
|
corner_holes();
|
||||||
|
corner_fancy();
|
||||||
|
translate([0,11,0]) rotate([90,0,0])selective_infill();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
corner();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,80 +1,100 @@
|
||||||
// PRUSA iteration3
|
// PRUSA iteration3
|
||||||
// Y motor mount
|
// Y motor mount
|
||||||
// GNU GPL v3
|
// GNU GPL v3
|
||||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||||
// http://prusamendel.org
|
// http://prusamendel.org
|
||||||
|
|
||||||
//include <configuration.scad>
|
//include <configuration.scad>
|
||||||
|
|
||||||
module y_motor_base(){
|
module y_motor_base(){
|
||||||
// Motor holding part
|
|
||||||
translate(v = [29,-21+50,0]){
|
union()
|
||||||
translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true);
|
{
|
||||||
translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
// Motor holding part
|
||||||
translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
translate(v = [29,-21+50,0]){
|
||||||
translate([-21,7,0]) rotate([0,0,45]) cube([2, 2, 10]);
|
|
||||||
|
difference()
|
||||||
//end stop
|
{
|
||||||
translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
union()
|
||||||
translate([-12,0,0]) cube([7, 15, 10]);
|
{
|
||||||
translate([-16,16,0]) cube([6, 5, 10]);
|
translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true);
|
||||||
translate([-21+6,8,0]) cube([12-2, 5, 28]);
|
translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
||||||
translate([-21+6-2,8-5,0]) cube([4, 10, 28]);
|
translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
||||||
translate([-21+9.5-2,7,0]) rotate([0,0,45]) cube([2, 2, 28]);
|
translate([-21,7,0]) rotate([0,0,45]) cube([2, 2, 10]);
|
||||||
// Joins motor holder and rod plate
|
|
||||||
translate(v = [-29,-21,0]) cube(size = [14,30,10]);
|
//end stop
|
||||||
}
|
translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
|
||||||
// Front holding part
|
translate([-12,0,0]) cube([7, 15, 10]);
|
||||||
translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80);
|
translate([-16,16,0]) cube([6, 5, 10]);
|
||||||
translate(v = [0,20,5])cube(size = [16,20,10], center=true);
|
translate([-21+6,8,0]) cube([12-2, 5, 28]);
|
||||||
translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
|
translate([-21,8-5,0]) cube([8, 10, 28]);
|
||||||
}
|
translate([-21+9.5-2,7,0]) rotate([0,0,45]) cube([2, 2, 28]);
|
||||||
|
// Joins motor holder and rod plate
|
||||||
module y_motor_holes(){
|
translate(v = [-29,-21,0]) cube(size = [14,30,10]);
|
||||||
translate(v = [29,-21+50,0]){
|
}
|
||||||
// Screw head holes
|
//selective infill
|
||||||
translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
translate([-14.5,5,0.3]) cube([0.1,5.5,27]);
|
||||||
translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
translate([-16.5,5,0.3]) cube([0.1,5.5,27]);
|
||||||
// Screw holes
|
translate([-18.5,5,0.3]) cube([0.1,5.5,25]);
|
||||||
translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
|
translate([-10,9,1]) cube([0.1,3,26.3]);
|
||||||
translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30);
|
translate([-8,9,6]) cube([0.1,3,21.3]);
|
||||||
}
|
|
||||||
translate(v = [0,10,-1]) cylinder(h = 12, r=4.1, $fn=50);
|
}
|
||||||
translate(v = [0,30,-1]) cylinder(h = 12, r=4.1, $fn=50);
|
}
|
||||||
|
}
|
||||||
//endstop
|
// Front holding part
|
||||||
translate([25,29,0]) cylinder(h = 29, r=8, $fn=20);
|
translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80);
|
||||||
|
translate(v = [0,20,5])cube(size = [16,20,10], center=true);
|
||||||
#translate([18,45,15]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
|
translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
|
||||||
translate([18,42.2,15]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
|
}
|
||||||
|
|
||||||
#translate([18,45,24.5]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
|
module y_motor_holes(){
|
||||||
translate([18,42.2,24.5]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
|
translate(v = [29,-21+50,0]){
|
||||||
|
// Screw head holes
|
||||||
// endstop corner cutout
|
translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
||||||
translate([-5-2,30,28]) rotate([0,45,0]) cube([15, 19, 15]);
|
translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
|
||||||
translate([-1,41,10]) cube([15, 5, 19]);
|
// Screw holes
|
||||||
translate([27,33,0]) rotate([0,0,45]) cube([5, 5, 28]);
|
translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
|
||||||
translate([12-2,28,10.01]) rotate([0,0,45]) cube([5, 5, 28]);
|
translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30);
|
||||||
|
}
|
||||||
translate([19,32,0]) rotate([0,30,0]) cube([8, 20, 18]);
|
translate(v = [0,10,-1]) cylinder(h = 12, r=4.2, $fn=50);
|
||||||
translate([24.5-2,32,17]) rotate([0,45,0]) cube([2, 20, 2]);
|
translate(v = [0,30,-1]) cylinder(h = 12, r=4.2, $fn=50);
|
||||||
|
|
||||||
translate([23-2,32,29]) rotate([0,45,0]) cube([5, 20, 5]);
|
//endstop
|
||||||
}
|
translate([25,29,0]) cylinder(h = 29, r=8, $fn=20);
|
||||||
|
|
||||||
|
translate([18,45,15]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
|
||||||
|
translate([18,42.2,15]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
|
||||||
|
|
||||||
//#translate([18,40,10]) cube([8, 5, 5]);
|
translate([18,45,24.5]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
|
||||||
|
translate([18,42.2,24.5]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
|
||||||
// Final part
|
|
||||||
module y_motor(){
|
// endstop corner cutout
|
||||||
difference(){
|
translate([-10,30,28]) rotate([0,45,0]) cube([15, 19, 15]);
|
||||||
y_motor_base();
|
translate([-1,41,10]) cube([15, 5, 19]);
|
||||||
y_motor_holes();
|
translate([27,33,0]) rotate([0,0,45]) cube([5, 5, 28]);
|
||||||
}
|
translate([7,28,10.01]) rotate([0,0,45]) cube([5, 5, 28]);
|
||||||
}
|
|
||||||
|
translate([19,32,0]) rotate([0,30,0]) cube([8, 20, 18]);
|
||||||
y_motor();
|
translate([24.5-2,32,17]) rotate([0,45,0]) cube([2, 20, 2]);
|
||||||
|
|
||||||
|
translate([23-2,32,29]) rotate([0,45,0]) cube([5, 20, 5]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Final part
|
||||||
|
module y_motor(){
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
y_motor_base();
|
||||||
|
y_motor_holes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
y_motor();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,49 +13,46 @@ module z_bottom_base(){
|
||||||
}
|
}
|
||||||
|
|
||||||
module z_bottom_fancy(){
|
module z_bottom_fancy(){
|
||||||
// corner cutouts
|
// corner cutouts
|
||||||
translate([0.5,-2.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
translate([0.5,-2.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
translate([0.5,40-0.5+5,0]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]);
|
translate([0.5,40-0.5+5,0]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
//translate([-4,40+5,5]) rotate([0,0,-35-0]) translate([0,0,0.1]) cube([30,30,51]);
|
|
||||||
//translate([-4+11,40+5+5,0]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]);
|
translate([8,0,12+20+6]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
|
||||||
translate([8,0,12+20+6]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
|
translate([20,-2,12+8]) rotate([45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
|
||||||
translate([20,-2,12+8]) rotate([45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
|
translate([25,20,12+30]) rotate([-45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
|
||||||
translate([25,20,12+30]) rotate([-45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
|
translate([50-2.5,-5+2.5+67,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
translate([50-2.5,-5+2.5+67,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
translate([50-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
translate([50-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
|
||||||
//translate([50-1.5,10-1.5,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]);
|
// Stiffner cut out
|
||||||
//translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]);
|
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]);
|
||||||
// Stiffner cut out
|
|
||||||
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module z_bottom_holes(){
|
module z_bottom_holes(){
|
||||||
// Frame mounting screw holes
|
// Frame mounting screw holes
|
||||||
translate([-1,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([-1,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
translate([-1,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([-1,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
translate([-1,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([-1,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
|
|
||||||
// Frame mounting screw head holes
|
// Frame mounting screw head holes
|
||||||
translate([4,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
translate([4,10,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
||||||
translate([4,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
translate([4,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
||||||
translate([4,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
translate([4,10+10,10+20+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
||||||
translate([4,10+10-3.1,10+20+5]) cube([10,6.2,10]);
|
translate([4,10+10-3.1,10+20+5]) cube([10,6.2,10]);
|
||||||
|
|
||||||
// Z rod holder
|
// Z rod holder
|
||||||
translate([25+4.3,3,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.125, $fn=15);
|
translate([25+4.3,3,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.125, $fn=15);
|
||||||
translate([25+4.3-1,3,0.6]) cube([2,10,7]); // it's bit up because it helps with printing
|
translate([25+4.3,3,-1]) rotate([0,0,0]) cylinder(h = 1.6, r1=5, r2=4.125, $fn=15);
|
||||||
|
translate([25+4.3-1,3,0.6]) cube([2,10,7]); // it's bit up because it helps with printing
|
||||||
|
|
||||||
// motor mounting
|
// motor mounting
|
||||||
translate([25+4.3,20,-1]){
|
translate([25+4.3,20,-1]){
|
||||||
//translate([15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
|
||||||
|
translate([15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
translate([15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
translate([15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([-15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
translate([-15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([-15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
translate([-15.5,-15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
|
|
||||||
|
translate([0,0,-1]) cylinder(h = 20, r=12, $fn=30);
|
||||||
|
|
||||||
translate([0,0,-1]) cylinder(h = 20, r=12, $fn=30);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -77,6 +74,20 @@ module z_bottom_left(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//z_bottom_holder();
|
|
||||||
#z_bottom_right();
|
z_bottom_right();
|
||||||
#z_bottom_left();
|
z_bottom_left();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,39 +7,35 @@
|
||||||
|
|
||||||
|
|
||||||
module z_top_base(){
|
module z_top_base(){
|
||||||
translate([0,-5,0]) cube([8,45,16]); // plate touching the base
|
translate([0,-5,0]) cube([8,45,16]); // plate touching the base
|
||||||
translate([0,-5,0]) cube([30,4.01,12]); // plate touching the base
|
translate([0,-5,0]) cube([30,4.01,12]); // plate touching the base
|
||||||
translate([0,-5,0]) cube([38,45,5]); // plate touching the base
|
translate([0,-5,0]) cube([38,45,5]); // plate touching the base
|
||||||
}
|
}
|
||||||
|
|
||||||
module z_top_fancy(){
|
module z_top_fancy(){
|
||||||
// Corner cutouts
|
// Corner cutouts
|
||||||
translate([0.5,0.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
translate([0.5,0.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
translate([0.5,40-0.5,0]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]);
|
|
||||||
|
|
||||||
|
|
||||||
translate([-13,40+5+10.2,0]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]); // frame side angle
|
|
||||||
translate([8,28,0]) translate([0,0,-1]) cube([50,50,51]);
|
|
||||||
|
|
||||||
translate([4,0,12]) rotate([0,0, 0]) translate([0,-5,0]) cube([30,50,30]);
|
translate([-13,40+5+10.2,0]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]); // frame side angle
|
||||||
translate([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
|
translate([8,28,0]) translate([0,0,-1]) cube([50,50,51]);
|
||||||
translate([8,4,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
|
|
||||||
|
|
||||||
translate([38-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
translate([4,0,12]) rotate([0,0, 0]) translate([0,-5,0]) cube([30,50,30]);
|
||||||
translate([35,26,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); // outer corner
|
translate([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
|
||||||
translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]);
|
translate([8,4,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
|
||||||
|
|
||||||
// Stiffner cut out
|
translate([38-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
|
||||||
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
|
translate([35,26,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); // outer corner
|
||||||
//easy cleanup fix
|
translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]);
|
||||||
translate([0.5,0,0.5]) rotate([0,45,0]) translate([-2.5,0,-5]) cube([5,40,5]);
|
|
||||||
|
// Stiffner cut out
|
||||||
|
translate([30,0,5.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
|
||||||
}
|
}
|
||||||
|
|
||||||
module z_top_holes(){
|
module z_top_holes(){
|
||||||
// Screw holes frame
|
// Screw holes frame
|
||||||
translate([-1,10,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([-1,10,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
translate([-1,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
translate([-1,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=1.8, $fn=30);
|
||||||
|
|
||||||
|
|
||||||
// Screw heads
|
// Screw heads
|
||||||
translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
|
||||||
|
|
@ -51,14 +47,19 @@ module z_top_holes(){
|
||||||
translate([25+4.3,3.2,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.1, $fn=15);
|
translate([25+4.3,3.2,-1]) rotate([0,0,0]) cylinder(h = 50, r=4.1, $fn=15);
|
||||||
|
|
||||||
|
|
||||||
|
// material saving cut
|
||||||
// odlehceni A
|
translate([16,10,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6);
|
||||||
translate([16,10,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); // odlehceni
|
translate([16,28,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6);
|
||||||
translate([16,28,-1]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); // odlehceni
|
translate([25+4.3,3.2+17,-1]) rotate([0,0,0]) cylinder(h = 50, r=5.8, $fn=15); // screw hole
|
||||||
|
|
||||||
translate([25+4.3,3.2+17,-1]) rotate([0,0,0]) cylinder(h = 50, r=5, $fn=15); // screw hole
|
|
||||||
|
|
||||||
translate([25+4.3-1,3,0.6]) cube([2,15,7]); // it's bit up because it helps with printing
|
translate([25+4.3-1,3,-1]) cube([2,15,7]); // it's bit up because it helps with printing
|
||||||
|
|
||||||
|
//selective infill
|
||||||
|
translate([36.5,1.5,0.5]) cube([0.1,20,3.5]);
|
||||||
|
translate([10,-3,0.5]) cube([22,0.1,3.5]);
|
||||||
|
translate([3,1,0.5]) cube([18,0.1,3.5]);
|
||||||
|
translate([1.5,19,0.5]) cube([21,0.1,3.5]);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,7 +72,7 @@ module z_top_right(){
|
||||||
}
|
}
|
||||||
|
|
||||||
module z_top_left(){
|
module z_top_left(){
|
||||||
translate([0,-13,0]) mirror([0,1,0])
|
translate([0,-15,0]) mirror([0,1,0])
|
||||||
difference(){
|
difference(){
|
||||||
z_top_base();
|
z_top_base();
|
||||||
z_top_fancy();
|
z_top_fancy();
|
||||||
|
|
@ -79,6 +80,7 @@ module z_top_left(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Final part
|
// Final parts
|
||||||
z_top_left();
|
z_top_left();
|
||||||
z_top_right();
|
z_top_right();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,9 @@ difference()
|
||||||
{
|
{
|
||||||
union()
|
union()
|
||||||
{
|
{
|
||||||
translate(v=[0, 0, 1]) cylinder(r1=8, r2=4.5, h = 4);
|
translate(v=[0, 0, 1]) cylinder(r1=8, r2=4.6, h = 4);
|
||||||
cylinder(r=8, h = 1, $fn=60);
|
cylinder(r=8, h = 1, $fn=60);
|
||||||
}
|
}
|
||||||
translate(v=[0, 0, -1]) cylinder(r=4.2, h = 7, $fn=60);
|
translate(v=[0, 0, -1]) cylinder(r=4.2, h = 7, $fn=60);
|
||||||
cylinder(r1=4.3, r2=4.2, h = 1, $fn=60);
|
cylinder(r1=4.5, r2=4.2, h = 1, $fn=60);
|
||||||
}
|
}
|
||||||
|
|
@ -1210,20 +1210,6 @@ solid OpenSCAD_Model
|
||||||
vertex -4.68391 -5.20201 7
|
vertex -4.68391 -5.20201 7
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.994522 -0.104529 0
|
|
||||||
outer loop
|
|
||||||
vertex -6.84703 -1.45538 0
|
|
||||||
vertex -7 0 7
|
|
||||||
vertex -7 0 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.994522 -0.104529 0
|
|
||||||
outer loop
|
|
||||||
vertex -7 0 7
|
|
||||||
vertex -6.84703 -1.45538 0
|
|
||||||
vertex -6.84703 -1.45538 7
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0.587786 -0.809017 0
|
facet normal 0.587786 -0.809017 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 3.5 -6.06218 3
|
vertex 3.5 -6.06218 3
|
||||||
|
|
@ -1252,6 +1238,20 @@ solid OpenSCAD_Model
|
||||||
vertex 3.5 -6.06218 3
|
vertex 3.5 -6.06218 3
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal -0.207912 -0.978148 0
|
||||||
|
outer loop
|
||||||
|
vertex -2.16312 -6.6574 0
|
||||||
|
vertex -0.731699 -6.96165 7
|
||||||
|
vertex -2.16312 -6.6574 7
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.207912 -0.978148 -0
|
||||||
|
outer loop
|
||||||
|
vertex -0.731699 -6.96165 7
|
||||||
|
vertex -2.16312 -6.6574 0
|
||||||
|
vertex -0.731699 -6.96165 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal -0.951056 -0.309017 0
|
facet normal -0.951056 -0.309017 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex -6.39482 -2.84716 0
|
vertex -6.39482 -2.84716 0
|
||||||
|
|
@ -1266,6 +1266,20 @@ solid OpenSCAD_Model
|
||||||
vertex -6.39482 -2.84716 7
|
vertex -6.39482 -2.84716 7
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal -0.994522 -0.104529 0
|
||||||
|
outer loop
|
||||||
|
vertex -6.84703 -1.45538 0
|
||||||
|
vertex -7 0 7
|
||||||
|
vertex -7 0 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.994522 -0.104529 0
|
||||||
|
outer loop
|
||||||
|
vertex -7 0 7
|
||||||
|
vertex -6.84703 -1.45538 0
|
||||||
|
vertex -6.84703 -1.45538 7
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal 0.743145 -0.66913 0
|
facet normal 0.743145 -0.66913 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 4.68391 -5.20201 7
|
vertex 4.68391 -5.20201 7
|
||||||
|
|
@ -1308,20 +1322,6 @@ solid OpenSCAD_Model
|
||||||
vertex -3.5 -6.06218 0
|
vertex -3.5 -6.06218 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.207912 -0.978148 0
|
|
||||||
outer loop
|
|
||||||
vertex -2.16312 -6.6574 0
|
|
||||||
vertex -0.731699 -6.96165 7
|
|
||||||
vertex -2.16312 -6.6574 7
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.207912 -0.978148 -0
|
|
||||||
outer loop
|
|
||||||
vertex -0.731699 -6.96165 7
|
|
||||||
vertex -2.16312 -6.6574 0
|
|
||||||
vertex -0.731699 -6.96165 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0 0 1
|
facet normal -0 0 1
|
||||||
outer loop
|
outer loop
|
||||||
vertex 10 7 3
|
vertex 10 7 3
|
||||||
|
|
@ -2071,20 +2071,6 @@ solid OpenSCAD_Model
|
||||||
vertex -3.34565 -3.71572 0
|
vertex -3.34565 -3.71572 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0.994522 0.104529 0
|
|
||||||
outer loop
|
|
||||||
vertex -4.89074 -1.03956 7
|
|
||||||
vertex -5 0 0
|
|
||||||
vertex -5 0 7
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0.994522 0.104529 0
|
|
||||||
outer loop
|
|
||||||
vertex -5 0 0
|
|
||||||
vertex -4.89074 -1.03956 7
|
|
||||||
vertex -4.89074 -1.03956 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.587785 0.809017 0
|
facet normal -0.587785 0.809017 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 3.34565 -3.71572 0
|
vertex 3.34565 -3.71572 0
|
||||||
|
|
@ -2141,6 +2127,20 @@ solid OpenSCAD_Model
|
||||||
vertex -4.56773 -2.03368 0
|
vertex -4.56773 -2.03368 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal 0.994522 0.104529 0
|
||||||
|
outer loop
|
||||||
|
vertex -4.89074 -1.03956 7
|
||||||
|
vertex -5 0 0
|
||||||
|
vertex -5 0 7
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.994522 0.104529 0
|
||||||
|
outer loop
|
||||||
|
vertex -5 0 0
|
||||||
|
vertex -4.89074 -1.03956 7
|
||||||
|
vertex -4.89074 -1.03956 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal -0.743145 0.669131 0
|
facet normal -0.743145 0.669131 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 3.34565 -3.71572 0
|
vertex 3.34565 -3.71572 0
|
||||||
|
|
@ -2701,18 +2701,18 @@ solid OpenSCAD_Model
|
||||||
vertex 8.30902 -8.58778 0
|
vertex 8.30902 -8.58778 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0.406737 -0.913545 0
|
facet normal 0 -1 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 7.80902 -8.95106 0
|
vertex 7.5 -8.99452 0
|
||||||
vertex 8 -8.86602 3
|
vertex 7.60453 -8.99452 3
|
||||||
vertex 7.80902 -8.95106 3
|
vertex 7.5 -8.99452 3
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0.406737 -0.913545 0
|
facet normal 0 -1 -0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 8 -8.86602 3
|
vertex 7.60453 -8.99452 3
|
||||||
vertex 7.80902 -8.95106 0
|
vertex 7.5 -8.99452 0
|
||||||
vertex 8 -8.86602 0
|
vertex 7.60453 -8.99452 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0.587787 -0.809016 0
|
facet normal 0.587787 -0.809016 0
|
||||||
|
|
@ -2729,18 +2729,18 @@ solid OpenSCAD_Model
|
||||||
vertex 8.16913 -8.74314 0
|
vertex 8.16913 -8.74314 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0 -1 0
|
facet normal 0.406737 -0.913545 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 7.5 -8.99452 0
|
vertex 7.80902 -8.95106 0
|
||||||
vertex 7.60453 -8.99452 3
|
vertex 8 -8.86602 3
|
||||||
vertex 7.5 -8.99452 3
|
vertex 7.80902 -8.95106 3
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0 -1 -0
|
facet normal 0.406737 -0.913545 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 7.60453 -8.99452 3
|
vertex 8 -8.86602 3
|
||||||
vertex 7.5 -8.99452 0
|
vertex 7.80902 -8.95106 0
|
||||||
vertex 7.60453 -8.99452 0
|
vertex 8 -8.86602 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0.207909 -0.978148 0
|
facet normal 0.207909 -0.978148 0
|
||||||
|
|
@ -2897,6 +2897,20 @@ solid OpenSCAD_Model
|
||||||
vertex 11.309 -8.58778 0
|
vertex 11.309 -8.58778 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal -0.406739 -0.913545 0
|
||||||
|
outer loop
|
||||||
|
vertex 10 -8.86602 0
|
||||||
|
vertex 10.191 -8.95106 3
|
||||||
|
vertex 10 -8.86602 3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.406739 -0.913545 -0
|
||||||
|
outer loop
|
||||||
|
vertex 10.191 -8.95106 3
|
||||||
|
vertex 10 -8.86602 0
|
||||||
|
vertex 10.191 -8.95106 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal -0.743145 -0.66913 0
|
facet normal -0.743145 -0.66913 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 9.83087 -8.74314 0
|
vertex 9.83087 -8.74314 0
|
||||||
|
|
@ -2925,34 +2939,6 @@ solid OpenSCAD_Model
|
||||||
vertex 10 -8.86602 0
|
vertex 10 -8.86602 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0 -1 0
|
|
||||||
outer loop
|
|
||||||
vertex 10.3955 -8.99452 0
|
|
||||||
vertex 10.6045 -8.99452 3
|
|
||||||
vertex 10.3955 -8.99452 3
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0 -1 -0
|
|
||||||
outer loop
|
|
||||||
vertex 10.6045 -8.99452 3
|
|
||||||
vertex 10.3955 -8.99452 0
|
|
||||||
vertex 10.6045 -8.99452 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.866025 -0.5 0
|
|
||||||
outer loop
|
|
||||||
vertex 9.69098 -8.58778 0
|
|
||||||
vertex 9.58645 -8.40674 3
|
|
||||||
vertex 9.58645 -8.40674 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.866025 -0.5 0
|
|
||||||
outer loop
|
|
||||||
vertex 9.58645 -8.40674 3
|
|
||||||
vertex 9.69098 -8.58778 0
|
|
||||||
vertex 9.69098 -8.58778 3
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.951055 -0.30902 0
|
facet normal -0.951055 -0.30902 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 9.58645 -8.40674 0
|
vertex 9.58645 -8.40674 0
|
||||||
|
|
@ -2967,20 +2953,6 @@ solid OpenSCAD_Model
|
||||||
vertex 9.58645 -8.40674 3
|
vertex 9.58645 -8.40674 3
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0.587787 -0.809016 0
|
|
||||||
outer loop
|
|
||||||
vertex 11 -8.86602 0
|
|
||||||
vertex 11.1691 -8.74314 3
|
|
||||||
vertex 11 -8.86602 3
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0.587787 -0.809016 0
|
|
||||||
outer loop
|
|
||||||
vertex 11.1691 -8.74314 3
|
|
||||||
vertex 11 -8.86602 0
|
|
||||||
vertex 11.1691 -8.74314 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0.406737 -0.913545 0
|
facet normal 0.406737 -0.913545 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 10.809 -8.95106 0
|
vertex 10.809 -8.95106 0
|
||||||
|
|
@ -2995,6 +2967,34 @@ solid OpenSCAD_Model
|
||||||
vertex 11 -8.86602 0
|
vertex 11 -8.86602 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal -0.866025 -0.5 0
|
||||||
|
outer loop
|
||||||
|
vertex 9.69098 -8.58778 0
|
||||||
|
vertex 9.58645 -8.40674 3
|
||||||
|
vertex 9.58645 -8.40674 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.866025 -0.5 0
|
||||||
|
outer loop
|
||||||
|
vertex 9.58645 -8.40674 3
|
||||||
|
vertex 9.69098 -8.58778 0
|
||||||
|
vertex 9.69098 -8.58778 3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.587787 -0.809016 0
|
||||||
|
outer loop
|
||||||
|
vertex 11 -8.86602 0
|
||||||
|
vertex 11.1691 -8.74314 3
|
||||||
|
vertex 11 -8.86602 3
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.587787 -0.809016 0
|
||||||
|
outer loop
|
||||||
|
vertex 11.1691 -8.74314 3
|
||||||
|
vertex 11 -8.86602 0
|
||||||
|
vertex 11.1691 -8.74314 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal -0.207909 -0.978148 0
|
facet normal -0.207909 -0.978148 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 10.191 -8.95106 0
|
vertex 10.191 -8.95106 0
|
||||||
|
|
@ -3009,18 +3009,18 @@ solid OpenSCAD_Model
|
||||||
vertex 10.3955 -8.99452 0
|
vertex 10.3955 -8.99452 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.406739 -0.913545 0
|
facet normal 0 -1 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 10 -8.86602 0
|
vertex 10.3955 -8.99452 0
|
||||||
vertex 10.191 -8.95106 3
|
vertex 10.6045 -8.99452 3
|
||||||
vertex 10 -8.86602 3
|
vertex 10.3955 -8.99452 3
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.406739 -0.913545 -0
|
facet normal 0 -1 -0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 10.191 -8.95106 3
|
vertex 10.6045 -8.99452 3
|
||||||
vertex 10 -8.86602 0
|
vertex 10.3955 -8.99452 0
|
||||||
vertex 10.191 -8.95106 0
|
vertex 10.6045 -8.99452 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
endsolid OpenSCAD_Model
|
endsolid OpenSCAD_Model
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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
|
vertex 7.23607 -12.3511 10
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0 1 -0
|
|
||||||
outer loop
|
|
||||||
vertex 4.25116 -13.9921 0
|
|
||||||
vertex 3.74884 -13.9921 10
|
|
||||||
vertex 4.25116 -13.9921 10
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0 1 0
|
|
||||||
outer loop
|
|
||||||
vertex 3.74884 -13.9921 10
|
|
||||||
vertex 4.25116 -13.9921 0
|
|
||||||
vertex 3.74884 -13.9921 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0.248691 0.968583 -0
|
facet normal 0.248691 0.968583 -0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 3.25047 -13.9291 0
|
vertex 3.25047 -13.9291 0
|
||||||
|
|
@ -1539,6 +1525,20 @@ solid OpenSCAD_Model
|
||||||
vertex 6.5497 -13.0821 0
|
vertex 6.5497 -13.0821 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal 0 1 -0
|
||||||
|
outer loop
|
||||||
|
vertex 4.25116 -13.9921 0
|
||||||
|
vertex 3.74884 -13.9921 10
|
||||||
|
vertex 4.25116 -13.9921 10
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex 3.74884 -13.9921 10
|
||||||
|
vertex 4.25116 -13.9921 0
|
||||||
|
vertex 3.74884 -13.9921 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal -0.998027 -0.0627918 0
|
facet normal -0.998027 -0.0627918 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 8 10 0
|
vertex 8 10 0
|
||||||
|
|
@ -1777,6 +1777,20 @@ solid OpenSCAD_Model
|
||||||
vertex 6.14331 13.3773 0
|
vertex 6.14331 13.3773 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal -0.998027 0.0627917 0
|
||||||
|
outer loop
|
||||||
|
vertex 7.96846 9.49867 0
|
||||||
|
vertex 8 10 10
|
||||||
|
vertex 8 10 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.998027 0.0627917 0
|
||||||
|
outer loop
|
||||||
|
vertex 8 10 10
|
||||||
|
vertex 7.96846 9.49867 0
|
||||||
|
vertex 7.96846 9.49867 10
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal -0.951057 0.309017 0
|
facet normal -0.951057 0.309017 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 7.71911 8.5275 0
|
vertex 7.71911 8.5275 0
|
||||||
|
|
@ -1805,32 +1819,18 @@ solid OpenSCAD_Model
|
||||||
vertex 7.87433 9.00524 10
|
vertex 7.87433 9.00524 10
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.684546 0.72897 0
|
facet normal -0.587785 0.809017 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 6.91587 7.26181 0
|
|
||||||
vertex 6.5497 6.91795 10
|
|
||||||
vertex 6.91587 7.26181 10
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.684546 0.72897 0
|
|
||||||
outer loop
|
|
||||||
vertex 6.5497 6.91795 10
|
|
||||||
vertex 6.91587 7.26181 0
|
|
||||||
vertex 6.5497 6.91795 0
|
vertex 6.5497 6.91795 0
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.481754 0.876307 0
|
|
||||||
outer loop
|
|
||||||
vertex 6.14331 6.62269 0
|
|
||||||
vertex 5.70312 6.38069 10
|
|
||||||
vertex 6.14331 6.62269 10
|
vertex 6.14331 6.62269 10
|
||||||
|
vertex 6.5497 6.91795 10
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.481754 0.876307 0
|
facet normal -0.587785 0.809017 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 5.70312 6.38069 10
|
vertex 6.14331 6.62269 10
|
||||||
|
vertex 6.5497 6.91795 0
|
||||||
vertex 6.14331 6.62269 0
|
vertex 6.14331 6.62269 0
|
||||||
vertex 5.70312 6.38069 0
|
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.844328 0.535826 0
|
facet normal -0.844328 0.535826 0
|
||||||
|
|
@ -1847,34 +1847,6 @@ solid OpenSCAD_Model
|
||||||
vertex 7.23607 7.64886 10
|
vertex 7.23607 7.64886 10
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.998027 0.0627917 0
|
|
||||||
outer loop
|
|
||||||
vertex 7.96846 9.49867 0
|
|
||||||
vertex 8 10 10
|
|
||||||
vertex 8 10 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.998027 0.0627917 0
|
|
||||||
outer loop
|
|
||||||
vertex 8 10 10
|
|
||||||
vertex 7.96846 9.49867 0
|
|
||||||
vertex 7.96846 9.49867 10
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0.248689 0.968583 -0
|
|
||||||
outer loop
|
|
||||||
vertex 3.25047 6.07085 0
|
|
||||||
vertex 3 6.13516 10
|
|
||||||
vertex 3.25047 6.07085 10
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal 0.248689 0.968583 0
|
|
||||||
outer loop
|
|
||||||
vertex 3 6.13516 10
|
|
||||||
vertex 3.25047 6.07085 0
|
|
||||||
vertex 3 6.13516 0
|
|
||||||
endloop
|
|
||||||
endfacet
|
|
||||||
facet normal -0.770513 0.637424 0
|
facet normal -0.770513 0.637424 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 6.91587 7.26181 0
|
vertex 6.91587 7.26181 0
|
||||||
|
|
@ -1889,18 +1861,18 @@ solid OpenSCAD_Model
|
||||||
vertex 6.91587 7.26181 10
|
vertex 6.91587 7.26181 10
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.587785 0.809017 0
|
facet normal -0.481754 0.876307 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 6.5497 6.91795 0
|
vertex 6.14331 6.62269 0
|
||||||
|
vertex 5.70312 6.38069 10
|
||||||
vertex 6.14331 6.62269 10
|
vertex 6.14331 6.62269 10
|
||||||
vertex 6.5497 6.91795 10
|
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.587785 0.809017 0
|
facet normal -0.481754 0.876307 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 6.14331 6.62269 10
|
vertex 5.70312 6.38069 10
|
||||||
vertex 6.5497 6.91795 0
|
|
||||||
vertex 6.14331 6.62269 0
|
vertex 6.14331 6.62269 0
|
||||||
|
vertex 5.70312 6.38069 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal -0.368126 0.929776 0
|
facet normal -0.368126 0.929776 0
|
||||||
|
|
@ -1931,6 +1903,34 @@ solid OpenSCAD_Model
|
||||||
vertex 7.50523 8.07298 10
|
vertex 7.50523 8.07298 10
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
|
facet normal 0 1 -0
|
||||||
|
outer loop
|
||||||
|
vertex 4.25116 6.00789 0
|
||||||
|
vertex 3.74884 6.00789 10
|
||||||
|
vertex 4.25116 6.00789 10
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0 1 0
|
||||||
|
outer loop
|
||||||
|
vertex 3.74884 6.00789 10
|
||||||
|
vertex 4.25116 6.00789 0
|
||||||
|
vertex 3.74884 6.00789 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.248689 0.968583 -0
|
||||||
|
outer loop
|
||||||
|
vertex 3.25047 6.07085 0
|
||||||
|
vertex 3 6.13516 10
|
||||||
|
vertex 3.25047 6.07085 10
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.248689 0.968583 0
|
||||||
|
outer loop
|
||||||
|
vertex 3 6.13516 10
|
||||||
|
vertex 3.25047 6.07085 0
|
||||||
|
vertex 3 6.13516 0
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
facet normal 0.125333 0.992115 -0
|
facet normal 0.125333 0.992115 -0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 3.74884 6.00789 0
|
vertex 3.74884 6.00789 0
|
||||||
|
|
@ -1945,18 +1945,18 @@ solid OpenSCAD_Model
|
||||||
vertex 3.25047 6.07085 0
|
vertex 3.25047 6.07085 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0 1 -0
|
facet normal -0.684546 0.72897 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 4.25116 6.00789 0
|
vertex 6.91587 7.26181 0
|
||||||
vertex 3.74884 6.00789 10
|
vertex 6.5497 6.91795 10
|
||||||
vertex 4.25116 6.00789 10
|
vertex 6.91587 7.26181 10
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 0 1 0
|
facet normal -0.684546 0.72897 0
|
||||||
outer loop
|
outer loop
|
||||||
vertex 3.74884 6.00789 10
|
vertex 6.5497 6.91795 10
|
||||||
vertex 4.25116 6.00789 0
|
vertex 6.91587 7.26181 0
|
||||||
vertex 3.74884 6.00789 0
|
vertex 6.5497 6.91795 0
|
||||||
endloop
|
endloop
|
||||||
endfacet
|
endfacet
|
||||||
facet normal 1 -0 0
|
facet normal 1 -0 0
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
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.
|
Originates in RepRap project.
|
||||||
|
|
||||||
This repository contains SCAD files and STLs of the printed parts.
|
This repository contains SCAD files and STLs of the printed parts.
|
||||||
|
|
@ -10,5 +10,5 @@ This repository contains SCAD files and STLs of the printed parts.
|
||||||
|
|
||||||
* Prusa Research website : http://prusa3d.com
|
* Prusa Research website : http://prusa3d.com
|
||||||
* Product page : http://shop.prusa3d.com/en/3d-printers/59-original-prusa-i3-mk2-kit.html
|
* Product page : http://shop.prusa3d.com/en/3d-printers/59-original-prusa-i3-mk2-kit.html
|
||||||
* Build manual : http://manual.prusa3d.com/c/English_manuals
|
* Build manual : http://manual.prusa3d.com/c/Original_Prusa_i3_MK2S_kit_assembly
|
||||||
* Firmware : https://github.com/prusa3d/Prusa-Firmware
|
* Firmware : https://github.com/prusa3d/Prusa-Firmware
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue