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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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