Final refactoring complete
authorprusajr <josefprusa@me.com>
Mon, 3 Sep 2012 06:36:42 +0000 (08:36 +0200)
committerprusajr <josefprusa@me.com>
Mon, 3 Sep 2012 06:36:42 +0000 (08:36 +0200)
44 files changed:
src/bearing-guide.scad [deleted file]
src/bearing.scad [new file with mode: 0644]
src/belt-guide.scad [new file with mode: 0644]
src/bushing.scad [deleted file]
src/common.tdoc [deleted file]
src/compact-extruder.scad
src/configuration.scad.dist [deleted file]
src/corners.scad [deleted file]
src/doc/boxframe.scad [deleted file]
src/doc/complete-printer.scad [deleted file]
src/doc/framestep1.png [deleted file]
src/doc/framestep2.png [deleted file]
src/doc/framestep3.png [deleted file]
src/doc/framestep4.png [deleted file]
src/doc/framestep5.png [deleted file]
src/doc/framestep6.png [deleted file]
src/doc/manual.txt [deleted file]
src/doc/ystep1.png [deleted file]
src/doc/ystep10.png [deleted file]
src/doc/ystep11.png [deleted file]
src/doc/ystep2.png [deleted file]
src/doc/ystep3.png [deleted file]
src/doc/ystep4.png [deleted file]
src/doc/ystep5.png [deleted file]
src/doc/ystep6.png [deleted file]
src/doc/ystep7.png [deleted file]
src/doc/ystep8.png [deleted file]
src/doc/ystep9.png [deleted file]
src/fan-mount.scad [new file with mode: 0644]
src/frame-connector.scad [deleted file]
src/inc/functions.scad [deleted file]
src/inc/metric.scad [deleted file]
src/test-holder.scad [deleted file]
src/x-carriage.scad
src/x-end-idler.scad [new file with mode: 0644]
src/x-end-motor.scad [new file with mode: 0644]
src/x-end.scad
src/y-belt-holder.scad
src/y-corners.scad [new file with mode: 0644]
src/y-drivetrain.scad [deleted file]
src/y-idler.scad [new file with mode: 0644]
src/y-motor.scad [new file with mode: 0644]
src/z-axis-bottom.scad
src/z-axis-top.scad

diff --git a/src/bearing-guide.scad b/src/bearing-guide.scad
deleted file mode 100644 (file)
index 1a2b5fd..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// PRUSA iteration3
-// Bearing guide
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// Václav 'ax' Hůla <axtheb@gmail.com>
-// Original design by Greg Frost
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-
-/**
- * Helps to hold belt aligned on the bearing.
- * @id bearing-guide
- * @name Bearing guide
- * @category Printed
- */
-
-include <configuration.scad>
-
-thickness=0.9;
-height=7+thickness;
-wall_ascent=3;
-wall_descent=0.5;
-
-module inner()
-{
-    difference()
-    {
-        #cylinder(r=idler_size/2+single_wall_width,h=height);
-        translate([0,0,-1])
-            cylinder(r=idler_size/2,h=height+2);
-    }
-
-    difference()
-    {
-        cylinder(r=idler_size/2+wall_ascent,h=thickness);
-        translate([0,0,-1])
-            cylinder(r=idler_size/2-wall_descent,h=thickness+2);
-    }
-}
-
-module outer()
-{
-    difference()
-    {
-        cylinder(r=idler_size/2+2*single_wall_width+0.3,h=height);
-        translate([0,0,-1])
-            cylinder(r=idler_size/2+single_wall_width+0.3,h=height+2);
-    }
-
-    difference()
-    {
-        cylinder(r=idler_size/2+wall_ascent,h=thickness);
-        translate([0,0,-1])
-            cylinder(r=idler_size/2-wall_descent,h=thickness+2);
-    }
-}
-
-inner();
-translate([idler_size+2*wall_ascent+2,0,0])
-    outer();
-
-translate([0,idler_size+2*wall_ascent+2,0]){
-inner();
-translate([idler_size+2*wall_ascent+2,0,0])
-    outer();
-}
diff --git a/src/bearing.scad b/src/bearing.scad
new file mode 100644 (file)
index 0000000..8dcb6d2
--- /dev/null
@@ -0,0 +1,75 @@
+// 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
+
+bearing_diameter = 15;
+
+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, $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-6,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=12.5, $fn=50);
+    translate(v=[0,2+6,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=12.5, $fn=50);
+   }
+   translate(v=[0,10,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=10, $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 = 2;
+bearing_size = bearing_diameter + 2 * thinwall;
+
+module vertical_bearing_base(){
+ translate(v=[-2-bearing_size/4,0,30]) cube(size = [4+bearing_size/2,bearing_size,60], center = true);
+ cylinder(h = 60, r=bearing_size/2, $fn = 60);
+}
+
+module vertical_bearing_holes(){
+  translate(v=[0,0,-1]) cylinder(h = 62, r=bearing_diameter/2, $fn = 60);
+  rotate(a=[0,0,-60]) translate(v=[10,0,31]) cube(size = [10,1,62], center = true);
+}
+
+difference(){
+vertical_bearing_base();
+vertical_bearing_holes();
+}
\ No newline at end of file
diff --git a/src/belt-guide.scad b/src/belt-guide.scad
new file mode 100644 (file)
index 0000000..d000f05
--- /dev/null
@@ -0,0 +1,29 @@
+// PRUSA iteration3
+// 624 bearing belt guide
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+wall= 1.2;
+clearence= 0.1; 
+
+module belt_guide_base(){
+ cylinder(r=6.5+wall+clearence, h=4.5, $fn=50);
+ cylinder(r=6.5+wall+clearence+2*wall, h=0.4, $fn=50);
+}
+
+module belt_guide_holes(){
+ translate([0,0,1.5]) cylinder(r=6.5+clearence, h=10, $fn=50);
+ translate([0,0,-1]) cylinder(r=6.5+wall+clearence-2*wall, h=10, $fn=50);
+}
+
+// Final part
+module belt_guide(){
+ difference(){
+  belt_guide_base();
+  belt_guide_holes();
+ }
+}
+
+belt_guide();
\ No newline at end of file
diff --git a/src/bushing.scad b/src/bushing.scad
deleted file mode 100644 (file)
index 09608b7..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-module bushing(stiff, lenght=11){
-       difference(){
-               union(){
-                       translate(v=[-7.5,-8,0])cube(size = [15,8,lenght]);
-                       cylinder(h = lenght, r=7.5);
-               }
-       //cutout inside
-       //Opening
-       rotate(a=[0,0,45]) translate(v=[1,1,-1]) cube(size = [16,16,lenght+2]);
-       //Cutouts to make it more bendy
-       if(stiff){
-               translate(v=[-4.8,-6,-1]) cube(size = [0.8,6,lenght+2]);
-               translate(v=[4,-6,-1]) cube(size = [0.8,6,lenght+2]);
-       }else{
-               translate(v=[-4.8,-8,-1]) cube(size = [0.8,8,lenght+2]);
-               translate(v=[4,-8,-1]) cube(size = [0.8,8,lenght+2]);
-       }
-       translate(v=[0,5,(lenght+2)/2]) cube(size = [7,8,lenght+2], center=true);
-       translate(v=[0,0,-1]) cylinder(h = lenght+2, r=5);
-       }
-}
-
-
-module standart_bushing(){
-
-difference(){translate(v=[0,5,8])rotate(a=[90,0,0]){
-bushing(false, 10);
-translate(v=[-7,-13,0])cube(size = [14,5,10]);
-translate(v=[-2,-13,-3])cube(size = [4,5,16]);
-translate(v=[-2,-12,-3])cube(size = [4,7.5,2]);
-translate(v=[-2,-12,11])cube(size = [4,7.5,2]);
-}
-translate(v=[-3,-1,-16])rotate(a=[45,0,0])cube(size = [6,5,16]);
-
-mirror([ 0, 1, 0 ]) translate(v=[-3,-1,-16])rotate(a=[45,0,0])cube(size = [6,5,16]);}
-}
-
-
-// Includes small cutouts for better prints
-module vertical_bushing(stiff, lenght){
-difference(){
-bushing(stiff, lenght);
-translate(v=[-5,0,-1]) cube(size = [10,2.5,lenght+2]);
-}
-}
-
-
-//vertical_bushing(true, 11);
-
-module z_bushings(){
-// STUFF FOR X-ENDS
-difference(){
-// Slider.
-translate([0,6.5,30]) 
-cube([23,17,60],center=true);
-// Slider cutout.
-translate([0,10,32.5]) 
-cube([17,17,70],center=true);
-}
-union(){translate([0,9.5,0])vertical_bushing(true,13);
-       //translate([0,4,0.5])cube(size = [8,2,1], center = true);
-       //translate([0,4,12.5])cube(size = [8,2,1], center = true);
-       translate([0,9.5,48])vertical_bushing(true,13);
-       //translate([0,4,48+0.5])cube(size = [8,2,1], center = true);
-       //translate([0,4,48+12.5])cube(size = [8,2,1], center = true);
-       translate([0,9.5,32])
-       {
-               difference()
-               {
-                       bushing(true,16);
-                       translate([0,3,2]) 
-                       rotate([45,0,0])
-                       cube([16,30,16], center=true);
-               }
-       }
-}
-}
-
-
-// Linear bushing options
-
-lm8uu_diameter=(lme8uu==true) ? 16 : 15;
-lm8uu_length=24;
-lm8uu_radius = lm8uu_diameter / 2;
-block_height = 2*lm8uu_length+17;
-
-
-
-//z_bushings();
-//
-//linear_holder_base(60);
-//cut_corners(true, false, true, false); 
-
-module cut_corners(lf,lb,rf,rb){
-       difference(){
-       lm8uu_bearing_holder();
-       if(lf) translate(v=[(10)-3,(-28.5/2)+3,0]) rotate(a=[0,0,45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true);
-       if(lb)translate(v=[(-10)+3,(-28.5/2)+3,0]) rotate(a=[0,0,-45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true);
-       mirror([ 0, 1, 0 ]){
-       if(rf)translate(v=[(10)-3,(-28.5/2)+3,0]) rotate(a=[0,0,45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true);
-       if(rb)translate(v=[(-10)+3,(-28.5/2)+3,0]) rotate(a=[0,0,-45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true);
-       }
-}
-//lm8uu_bearing_holder();
-}
-
-module linear_holder_base(length){
-
-difference(){
-union(){
-//main block
-translate(v=[-(lm8uu_radius+2.5)/2,0,length/2]) cube(size = [lm8uu_radius+2.5,lm8uu_diameter+5,length], center = true);
-//translate(v=[-5,0,length/2]) cube(size = [10,20,length], center = true);
-
-//holder for main block in x-end
-// leaving it out now
-//translate(v=[0,0,0]) cylinder(h = length, r=10, $fn=60);
-
-//translate(v=[-5,0,15.8/2]) cube(size = [12,23,15.8], center = true);
-translate(v=[0,0,0]) cylinder(h = length, r=lm8uu_radius+2.5, $fn=60);
-}
-//main axis
-translate(v=[0,0,-2]) cylinder(h = length+4, r=(lm8uu_diameter+0.8)/2, $fn=50);
-// not needed for zip tie
-//main cut
-translate(v=[10,0,length/2]) cube(size = [20,14,length+4], center = true);
-//smooth entry cut
-translate(v=[12,0,length/2]) rotate(a=[0,0,45]) cube(size = [20,20,length+4], center = true);
-}
-}
-
-
-module y_linear_bearings(){
-       difference(){
-               union(){
-translate(v=[0,0,1.5]) cube(size = [26,14,3], center = true);
-translate(v=[-13,0,0])rotate(a=[0,0,30])cylinder(h = 3, r=7, $fn=6);
-translate(v=[13,0,0])rotate(a=[0,0,30])cylinder(h = 3, r=7, $fn=6); 
-}
-
-
-translate(v=[-14,0,0])polyhole(m3_diameter, 10);
-translate(v=[14,0,0])polyhole(m3_diameter, 10);
-//hack
-translate(v=[0,14.25,4.5]) rotate(a=[90,0,0]) translate(v=[0,9.5,0]) rotate(a=[0,0,90]){
-       translate(v=[0,0,lm8uu_length/2+0.5]) ziptie();
-}
-}
-
-cut_corners(true, true, true, true); 
-
-
-}
-
-lm8uu_holder_length = lm8uu_length+4.5;
-lm8uu_holder_width= lm8uu_diameter+5;
-
-module lm8uu_bearing_holder(){
-translate(v=[0,14.25,4.5])rotate(a=[90,0,0])translate(v=[0,9.5,0]) rotate(a=[0,0,90]){
-
-difference(){
-       union(){
-               linear_holder_base(lm8uu_length+4.5);
-               translate(v=[-10-2,0,lm8uu_holder_length/2]) cube(size = [4,20,lm8uu_holder_length], center = true);
-       }
-       translate(v=[0,0,12.5]) ziptie();
-}
-
-
-translate(v=[-(10-5.5)/2-5.5,0,0.75]) cube(size = [10-5.5,20,1.5], center = true);
-translate(v=[-(10-5.5)/2-5.5,0,lm8uu_length+3.75]) cube(size = [10-5.5,20,1.5], center = true);
-
-}
-}
-
-module lm8uu_bearing_cut()
-       {
-               translate([-lm8uu_holder_width/2,-lm8uu_holder_length/2,-5])cube([lm8uu_holder_width,lm8uu_holder_length,20]);
-       }
-
-
-module z_linear_bearings(){
-
-       translate(v=[0,9.5,0]) rotate(a=[0,0,90]){
-               //difference(){
-                       linear_holder_base(65);
-               //      translate(v=[0,0,14.5+2]) ziptie();
-               //      translate(v=[0,0,block_height-(12+2)-5]) ziptie();
-               //}
-
-               //x-end adapter
-               //difference(){ 
-               //      translate(v=[-6,0,15.8/2]) cube(size = [10,23,15.8], center = true);
-               //      translate(v=[0,0,-2]) cylinder(h = 20, r=7.9, $fn=50);
-               //}
-               translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,0+1]) cube(size = [10-5.5,20,2], center = true);
-               //translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,lm8uu_length+4.0]) cube(size = [10-5.5,20,2], center = true);
-               //translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,64-lm8uu_length-3]) cube(size = [10-5.5,20,2], center = true);
-               translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,64]) cube(size = [10-5.5,20,2], center = true);
-       }
-}
-
-module ziptie(){
-difference(){
-translate(v=[0,0,0]) cylinder(h = 3.9, r=lm8uu_diameter);
-translate(v=[0,0,0]) cylinder(h = 5, r=lm8uu_diameter-3, $fn=50);
-translate(v=[0,0,3]) cylinder(h = 1, r1=lm8uu_diameter-3, r2=lm8uu_diameter, $fn=50);
-}}
-
-
-z_linear_bearings();
\ No newline at end of file
diff --git a/src/common.tdoc b/src/common.tdoc
deleted file mode 100644 (file)
index 1cf0f62..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * Simple M8 nut or 5/16 in imperial variant.
- * also can be used for other screwing things :-D
- * @common
- * @name M8 nut
- * @category Nuts&bolts
- * @id m8nut
- */
-/**
- * @name M8 washer
- * @common
- * @category Nuts&bolts
- * @id m8washer
- */
-
-/**
- * @name M8 washer mudguard
- * @common
- * @category Nuts&bolts
- * @id m8washer-big
- */
-
-/**
- * @name M8 spring
- * @common
- * @category Nuts&bolts
- * @id m8spring
- */
-
-/**
- * @name M8 30mm screw
- * @common
- * @category Nuts&bolts
- * @id m8x30
- */
-/**
- * @name M3 nut
- * @common
- * @category Nuts&bolts
- * @id m3nut
- */
-/**
- * @name M4 nut
- * @common
- * @category Nuts&bolts
- * @id m4nut
- */
-/**
- * @name M3 washer
- * @common
- * @category Nuts&bolts
- * @id m3washer
- */
-
-/**
- * @name M3 10mm screw
- * @common
- * @category Nuts&bolts
- * @id m3x10
- */
-/**
- * @name M3 10mm screw with hex head
- * @common
- * @category Nuts&bolts
- * @id m3x10xhex
- */
-
-/**
- * @name M3 grub screw
- * @common
- * @category Nuts&bolts
- * @id m3xgrubscrew
- */
-/**
- * @name M3 10mm screw with flat head
- * @common
- * @category Nuts&bolts
- * @id m3x10xflat
- */
-/**
- * @name M3 20mm screw
- * @common
- * @category Nuts&bolts
- * @id m3x20
- */
-/**
- * @name M3 40mm screw
- * @common
- * @category Nuts&bolts
- * @id m3x40
- */
-
-/**
- * @name M3 20mm screw with hex head
- * @common
- * @category Nuts&bolts
- * @id m3x20xhex
- */
-/**
- * @name M3 25mm screw
- * @common
- * @category Nuts&bolts
- * @id m3x25
- */
-/**
- * @name M3 25mm screw with HEX head
- * @common
- * @category Nuts&bolts
- * @id m3x25xhex
- */
-/**
- * @name M3 15mm screw with HEX head
- * @common
- * @category Nuts&bolts
- * @id m3x15xhex
- */
-
-/**
- * @name M4 25mm screw
- * @common
- * @category Nuts&bolts
- * @id m4x25
- */
-/**
- * 608 Bearing. When you have troubles finding it, try your local skateshop, because its used in skateboards.
- * @name 608 skate bearing
- * @common
- * @image common/608.jpg
- * @category Nuts&bolts
- * @id bearing-608
- */
-/**
- * @name NEMA17 stepper motor
- * @common
- * @id NEMA17
- */
\ No newline at end of file
dissimilarity index 85%
index b1cb7e7..177b059 100644 (file)
-module base(){
-translate([-1,-2,0]) cube([22,56,23]);
-translate([-16,49,0]) cube([55,5,23]);
-translate([11,25,0]){
-translate([-12,24,0]) cylinder(r=5, h=23);
-translate([12,24,0]) cylinder(r=5, h=23);
-}
-}
-
-module holes(){
-//translate to center of the main block
- translate([11,25,0]){
-  translate([0,0,-1]) cylinder(r=8.5, h=25);
-  translate([0,21,-1]) cylinder(r=2, h=22);
-  translate([0,-21,-1]) cylinder(r=2, h=22);
-  translate([0,21,3]) cylinder(r=3.5, h=22);
-  translate([0,-21,3]) cylinder(r=3.5, h=22);
-
-translate([-12,24,-3]) cylinder(r=3.5, h=23);
-translate([12,24,-3]) cylinder(r=3.5, h=23);
-translate([-12,24,20.5]) cylinder(r=2, h=23);
-translate([12,24,20.5]) cylinder(r=2, h=23);
-
-  //cutout for bearing
-
-  translate([11,0,-4.5+10]) cylinder(r=11, h=20);
- }
-//filament hole 
- translate([1.5+11+3.5,65,10]) rotate([90,0,0])cylinder(r=2, h=70);
-
- translate([1.5+11+3.5+15,65,10]) rotate([90,0,0])cylinder(r=2, h=70);
- translate([1.5+11+3.5-25,65,10]) rotate([90,0,0])cylinder(r=2, h=70);
-       //idler holse
-       translate([11,25,10]){
-       translate([-30,15,-5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
-       translate([-30,-15,-5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
-       translate([-30,15,5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
-       translate([-30,-15,5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
-       }
-}
-
-translate([-25,0,0])difference(){
-base();
-holes();
-}
-
-
-//translate([-25,0,0]) difference(){
-//base();
-//holes();
-//}
-   //translate([1.5+11+3.5,65,10]) rotate([90,0,0])cylinder(r=1.5, h=70);
-
-
-module idler_base(){
-translate([0.25,5,0]) cube([19.5,40,8+3]);
-}
-
-module idler_holes(){
-translate([10,25,0]){
-cube([10,23,25], center= true);
-translate([-12,0,4.1+2])rotate([0,90,0])cylinder(r=4.1, h=24);
-
-
-translate([5,15,-1])cylinder(r=2.2, h=24);
-translate([5,-15,-1])cylinder(r=2.2, h=24);
-translate([-5,15,-1])cylinder(r=2.2, h=24);
-translate([-5,-15,-1])cylinder(r=2.2, h=24);
-}
-}
-
-difference(){
-idler_base();
-idler_holes();
-}
\ No newline at end of file
+// PRUSA iteration3
+// Compact extruder
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+
+module extruder_base(){
+ // Main body
+ translate([-1,-2,0]) cube([22,56,24]);
+ // Extruder plate mount
+ translate([-16,49,0]) cube([55,5,24]);
+ // Carriage mount cylinders
+ translate([11,25,0]){
+  translate([-12,24,0]) cylinder(r=5, h=24);
+  translate([12,24,0]) cylinder(r=5, h=24);
+ }
+}
+
+module extruder_holes(){
+ translate([11,25,0]){ // Translate to center of the main block
+  // Main shaft opening
+  translate([0,0,-1]) cylinder(r=8.5, h=26);
+  // Lower motor mount hole
+  translate([0,21,-1]) cylinder(r=2, h=22);
+  // Upper motor mount hole
+  translate([0,-21,-1]) cylinder(r=2, h=22);
+  // Lower motor mount hole screw head
+  translate([0,21,3]) cylinder(r=3.5, h=22);
+  // Upper motor mount hole screw head
+  translate([0,-21,3]) cylinder(r=3.5, h=22);
+  // Carriage mount right screw head hole
+  translate([-12,24,-3]) cylinder(r=3.5, h=23);
+  // Carriage mount left screw head hole
+  translate([12,24,-3]) cylinder(r=3.5, h=23);
+  // Carriage mount right screw hole
+  translate([-12,24,20.5]) cylinder(r=2, h=23);
+  // Carriage mount left screw head hole
+  translate([12,24,20.5]) cylinder(r=2, h=23);
+  // Idler bearing cutout
+  translate([11,0,-4.5+10]) cylinder(r=11, h=20);
+ }
+ // Filament path
+ translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
+ // Hole for drive gear check
+ translate([1.5+11+3.5-30,25,11]) rotate([90,0,90]) cylinder(r=4, h=70, $fn=20);
+ // Left extruder plate mounting hole
+ translate([1.5+11+3.5+15,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
+ // Right extruder plate mounting hole
+ translate([1.5+11+3.5-25,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
+  // Idler mounting holse
+  translate([11,25,10]){
+   // Nut traps
+   translate([-30,15,-5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
+   translate([-30,-15,-5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
+   translate([-30,15,5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
+   translate([-30,-15,5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
+   // Screws
+   translate([-30,15,-5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
+   translate([-30,-15,-5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
+   translate([-30,15,5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
+   translate([-30,-15,5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
+       }
+}
+
+module extruder_idler_base(){
+ translate([0.25,5,0]) cube([19.5,40,8+3]);
+}
+
+module extruder_idler_holes(){
+ translate([10,25,0]){
+  // Main cutout
+  cube([10,23,25], center= true);
+  // Idler shaft
+  translate([-12,0,4.1+2])rotate([0,90,0])cylinder(r=4.1, h=24);
+  // Screw holes
+  translate([5,15,-1])cylinder(r=2.2, h=24);
+  translate([5,-15,-1])cylinder(r=2.2, h=24);
+  translate([-5,15,-1])cylinder(r=2.2, h=24);
+  translate([-5,-15,-1])cylinder(r=2.2, h=24);
+ }
+}
+
+
+// Idler final part
+module idler(){
+ difference(){
+  extruder_idler_base();
+  extruder_idler_holes();
+ }
+}
+
+idler();
+
+// Extruder final part
+module extruder(){
+ translate([-23,2,0])difference(){
+  extruder_base();
+  extruder_holes();
+ }
+}
+
+extruder();
\ No newline at end of file
diff --git a/src/configuration.scad.dist b/src/configuration.scad.dist
deleted file mode 100644 (file)
index 2dcbb5b..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-// PRUSA iteration3
-// Configuration file
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// Václav 'ax' Hůla <axtheb@gmail.com>
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-// PLEASE SELECT ONE OF THE CONFIGURATIONS BELOW
-// BY UN-COMMENTING IT
-
-// Uncomment for metric settings
-// METRIC METRIC METRIC METRIC METRIC METRIC METRIC METRIC 
-
-include <inc/metric.scad>;
-
-// Custom settings here, tailor to your supplies and print settings
-
-// Select your belt type ******************************************************
-
-//T2.5
-belt_tooth_distance = 2.5;
-belt_tooth_stride = 0.5;
-
-//T5 (strongly discouraged)
-//belt_tooth_distance = 5;
-//belt_tooth_stride = 0.75;
-
-//HTD3
-//belt_tooth_distance = 3;
-//belt_tooth_stride = 0.75;
-
-// Choose bearing/bushing configuration ***************************************
-
-//Choose from:
-
-// 0 = Z as lm[e]8uu, X and Y bushings
-// 1 = all bushings
-// 2 = all bearings [default. Do not change unless you really know what you are doing]
-// DO NOT OFFER 0 or 1 VARIANTS FOR SALE. We really mean that. In the long run it hurts everyone.
-
-bearing_choice = 2;
-
-// Bushing version
-// 0 = square igus housings. By igus we mean JFM-0810-10 or GFM-0810-10
-// 1 = round igus (works better if printed precisely)
-// 2 = bronze self-aligning bushings
-bushing_type = 0;
-
-//Bearing version
-// 0 = default lm8uu
-// 1 = lme8uu
-bearing_type = 0;
-
-// Select idler bearing size **************************************************
-
-// 0 = 608 [standard skate bearings]
-// 1 = 624 [roughly same diameter as pulley, makes belt parallel so its prettier]
-
-idler_bearing = 0;
-
-// Thickness of the XZ plate board
-board_thickness = 16;
-
-//Layer height * width over thickness. Used for idler sleeve
-single_wall_width = 0.3*2.2;
-
-// END of custom settings
-
-
-// You are not supposed to change this
-board_to_xz_distance = 26;
-xaxis_rod_distance = 45;
-carriage_l = 74;
-carriage_hole_to_side = 5;
-carriage_hole_height = 4;
-
-//calculated from settings
-
-idler_size = (idler_bearing == 0) ? 22 : 13;
-
-//use 4.5 for 608, 2.5 for 624
-idler_size_inner_r = (idler_bearing == 0) ? 4.5 : 2.5;
-
-// CHANGE ONLY THE STUFF YOU KNOW
-// IT WILL REPLACE DEFAULT SETTING
-
-// RODS
-
-// threaded_rod_diameter = 0;
-// threaded_rod_diameter_horizontal = 0;
-// smooth_bar_diameter = 0;
-// smooth_bar_diameter_horizontal = 0;
-
-// Nuts and bolts
-
-// m8_diameter = 0;
-// m8_nut_diameter = 0;
-
-// m4_diameter = 0;
-// m4_nut_diameter = 0;
-
-// m3_diameter = 0;
-// m3_nut_diameter = 0;
-
-// Bushing holder
-
-// bushing_core_diameter = smooth_bar_diameter;
-// bushing_material_thickness = 0;
-
-///counted stuff
-m3_nut_diameter_bigger = ((m3_nut_diameter  / 2) / cos (180 / 6))*2;
-
-// functions
-include <inc/functions.scad>
-
-
-// These constants define the geometry of the complete-printer.scad
-
-x_smooth_rod_length=325;
-y_smooth_rod_length=405;
-z_smooth_rod_length=235;
-bed_x_size=225;
-bed_y_size=225;
diff --git a/src/corners.scad b/src/corners.scad
deleted file mode 100644 (file)
index 75aa177..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-// PRUSA iteration3
-// Y frame corners
-// GNU GPL v3
-// Josef Průša <iam@josefprusa.cz>
-// Contributors Kliment, AxTheB, vlnofka and others.
-// http://www.reprap.org/wiki/Prusa3
-// http://prusamendel.org
-
-include <configuration.scad>
-use <y-drivetrain.scad>
-
-module nutrod(){
-    rotate([0,90,0]){
-        //translate([0,0,-0.1]) nut(m8_nut_diameter,6.7,false);
-        //this is pretty but annoying
-        //translate([-7.5/2,0,7/2-1.5]) cube([7.5,15,7], center=true);
-        //translate([0,0,-1.5]) cylinder(h = 7, r=7.5);
-        translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
-    }
-}
-
-/*
-   20 mm betwenn the front threaded rods
-   25 mm between the side threaded and smooth rod
- */
-
-module corner_base(){  
- translate([-11,-11,0])cube([22,22,47]);
-}
-
-module corner_holes(){
- translate([-11,-11,0]){
-  translate([0,11,10]) rotate([0,0,0]) nutrod();
-  translate([0,11,30]) rotate([0,0,0]) nutrod();
-  translate([11,0,20]) rotate([0,0,90]) rotate([00,0,0]) nutrod();
-  translate([11,-2,49.5]) rotate([0,90,90]) cylinder(h = 270, r=5, $fn=30); // entry cutout
-  translate([11,2,45]) rotate([0,90,90]) cylinder(h = 270, r=4.2, $fn=30); // cutout for rod insert
-  translate([11-1,-2,38]) cube([2,25,8]); // flex allowing cutout
-  translate([-1,11-0.05,41]) cube([25,0.1,8]); // microcutout to make top sturdier
- }
-}
-
-module corner_fancy(){
- // corner cutouts
-  translate([-9,9,0]) rotate([0,0,45]) translate([-15,0,-1]) cube([30,30,51]);
-  translate([9,9,0]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]);
-  translate([-9,-9,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
-  translate([9,-9,0]) rotate([0,0,45-180]) translate([-15,0,-1]) cube([30,30,51]);
- // top cutouts
-  translate([9,0,49-2]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
-  translate([-9,0,49-2]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
-  rotate([0,0,90]){
-   translate([9,0,49-2]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
-   translate([-9,0,49-2]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
-  }
-}
-
-
-// final corner assembly
-module corner(){
- difference(){
-  corner_base();
-  corner_holes();
-  corner_fancy();
- }
-}
-
-corner();
-translate([25,0,0]) mirror([1,0,0]) corner();
-translate([0,25,0]) {
- //corner();
- //translate([25,0,0]) mirror([1,0,0]) corner();
-}
-
diff --git a/src/doc/boxframe.scad b/src/doc/boxframe.scad
deleted file mode 100644 (file)
index fdae30f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-module pl(x=100,y=100,z=12){
-       cube([x,y,z]);
-}
-module screw(depth=20){
-       color([1,1,0]){
-               cylinder(r1=4,r2=3.5/2,h=4);
-               cylinder(r1=3.5/2,r2=3.5/2,h=depth-2);
-               translate([0,0,depth-2])cylinder(r1=3.5/2,r2=0,h=2);
-               
-       }
-       
-}
-module p3bscorner(){
-translate([30,-12.5,6])rotate([-90,0,0])screw();
-translate([422,-12.5,6])rotate([-90,0,0])screw();
-translate([220,-12.5,6])rotate([-90,0,0])screw();
-color([0.5,0.5,0.5,0.8])pl(x=450);
-color([0.5,0.5,0.6,0.8])rotate([90,0,0])pl(x=450);
-}
-module p3bsgantry(){
-translate([440,-110,25])mirror([0,0,1])screw();
-translate([440,110+50,25])mirror([0,0,1])screw();
-translate([360,-110,25])mirror([0,0,1])screw();
-translate([360,110+50,25])mirror([0,0,1])screw();
-translate([360,-180,25])mirror([0,0,1])screw();
-translate([360,180+50,25])mirror([0,0,1])screw();
-color([0.5,0.5,0.6,0.9])translate([450,-200,12])rotate([0,0,90])pl(x=450);
-translate([0,-200,0])color([0,0,0,0.3])p3bscorner();
-translate([0,250,0])color([0,0,0,0.3])mirror([0,1,0])p3bscorner();
-}
-module boxframe(top=false){
-translate([285,-212.5,6])rotate([-90,0,0])screw();
-translate([220,-212.5,6])rotate([-90,0,0])screw();
-translate([285,262.5,6])rotate([90,0,0])screw();
-translate([220,262.5,6])rotate([90,0,0])screw();
-translate([312.5,-180,6])rotate([90,0,-90])screw();
-translate([312.5,-110,6])rotate([90,0,-90])screw();
-translate([312.5,240,6])rotate([90,0,-90])screw();
-translate([312.5,160,6])rotate([90,0,-90])screw();
-
-translate([300,-180,0])rotate([0,0,90])color([1,0,0,0.35])pl(x=400,z=3);
-translate([300,-200,3])rotate([0,0,90])color([0,0,1,0.55])pl(x=450);
-translate([312,0])rotate([0,-90,0])color([0,0,0,0.4])p3bsgantry();
-if(top){
-translate([220,-206,463])mirror([0,0,1])screw();
-translate([220,256,463])mirror([0,0,1])screw();
-translate([280,-206,463])mirror([0,0,1])screw();
-translate([280,256,463])mirror([0,0,1])screw();
-translate([306,-156,463])mirror([0,0,1])screw();
-translate([306,206,463])mirror([0,0,1])screw();
-translate([312,-212,450])rotate([0,0,90])color([0,0,1,0.55])pl(x=475);
-
-}
-}
-
-color([0,0,0,0.4])boxframe(true);
-
-color([0.8,0.8,0.2,0.35])translate([100,0,-100])cube([800,800,200],true);
diff --git a/src/doc/complete-printer.scad b/src/doc/complete-printer.scad
deleted file mode 100644 (file)
index 25eada6..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-// PRUSA iteration3
-// Complete printer visualisation
-// GNU GPL v3
-// Greg Frost
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-include <../configuration.scad>
-use <../y-drivetrain.scad>
-use <../y-axis-corner.scad>
-use <../z-axis.scad>
-use <../x-end.scad>
-use <../x-carriage.scad>
-
-module nutwasher(){
-       color("silver")
-       difference(){
-               union(){
-                       translate([0,0,2])cylinder(r=15/2,h=7,$fn=6);
-                       translate([0,0,0.5])cylinder(r=8.5,h=1);
-               }
-               translate([0,0,-1])cylinder(r=8/2,h=12);                
-       }
-}
-
-// y motor mount
-translate([56-yrodseparation/2,-y_smooth_rod_length/2+9,0]) 
-{
-       rotate([0,90,0]) rotate([0,0,90]) motorholder();
-       translate([10,0,30])rotate([0,90,0])nutwasher();
-       translate([0,0,30])rotate([0,90,180])nutwasher();
-       translate([10,0,10])rotate([0,90,0])nutwasher();
-       translate([0,0,10])rotate([0,90,180])nutwasher();
-}
-
-// y idler mount
-translate([70-yrodseparation/2,y_smooth_rod_length/2-9,30]) 
-{
-       translate([0,0-33,-8]) 
-       rotate([0,-90,0]) idlermount();
-       translate([0,0,0])rotate([0,90,0])nutwasher();
-       translate([-20,0,0])rotate([0,90,180])nutwasher();
-}
-
-yrodseparation=100;
-
-module yfront()
-{
-       // corners
-       leftfront();
-       translate([yrodseparation,0,0]) mirror([1,0,0]) leftfront();
-
-       // front bottom threaded rod
-       color("Aqua")
-       translate([-20,9,10]) rotate([0,90,0]) cylinder(h = 140, r=4);
-
-       translate([yrodseparation+11,9,10])rotate([0,90,0])nutwasher();
-       translate([yrodseparation-11,9,10])rotate([0,90,180])nutwasher();
-
-       translate([-11,9,10])rotate([0,90,180])nutwasher();
-       translate([11,9,10])rotate([0,90,0])nutwasher();
-       
-       // front top threaded rod
-       color("Aqua")
-       translate([-20,9,30]) rotate([0,90,0]) cylinder(h = 140, r=4);
-
-%      translate([-11,9,30])rotate([0,90,180])nutwasher();
-%      translate([11,9,30])rotate([0,90,0])nutwasher();
-
-%      translate([yrodseparation-11,9,30])rotate([0,90,180])nutwasher();
-%      translate([yrodseparation+11,9,30])rotate([0,90,0])nutwasher();
-}
-
-translate([-yrodseparation/2,-y_smooth_rod_length/2])
-{
-yfront();
-translate([0,y_smooth_rod_length,0]) 
-mirror([0,1,0])
-yfront();
-}
-
-module yside()
-{
-       translate([-yrodseparation/2,0])
-       {
-       // left top rod
-       color("MediumBlue")
-       translate([0,0,45]) rotate([0,90,90]) cylinder(h = y_smooth_rod_length, r=4,center=true);
-       //left bottom rod
-       color("Aqua")
-       translate([0,0,20]) rotate([0,90,90]) cylinder(h = 430, r=4,center=true);
-       // middle nuts
-       translate([0,0,20])rotate([0,-90,90])nutwasher();
-       translate([0,board_thickness,20])rotate([0,90,90])nutwasher();
-
-       // back nuts
-       translate([0,y_smooth_rod_length/2+2,20])rotate([0,90,90])nutwasher();
-       translate([0,y_smooth_rod_length/2+2-22,20])rotate([0,90,-90])nutwasher();
-       // front nuts
-       translate([0,-y_smooth_rod_length/2-2,20])rotate([0,90,-90])nutwasher();
-       translate([0,-y_smooth_rod_length/2-2+22,20])rotate([0,90,90])nutwasher();
-       }
-}
-
-yside();
-translate([yrodseparation,0,0])yside();
-
-// heat bed
-color("Lime",0.25)
-translate([0,0,58]) cube([bed_x_size,bed_y_size,6], center=true);
-
-board_sides=50;
-board_w=bed_x_size+10+2*board_sides;
-
-// XZ board
-translate([0,board_thickness/2,150])
-%difference()
-{
-       cube([board_w,board_thickness,300],true);
-       translate([0,0,-15])
-       cube([bed_x_size+10,board_thickness+2,200],true);
-}
-
-
-// Z motor mounts
-translate([-board_w/2-5,0,42])
-rotate(-90)
-zmotorholder();
-
-translate([board_w/2+5,0,42])
-rotate(-90)
-mirror([0,1,0])
-zmotorholder();
-
-// Z rod mounts
-translate([-board_w/2-5,0,260])
-rotate(-90)
-zrodholder();
-
-translate([board_w/2+5,0,260])
-rotate(-90)
-mirror([0,1,0])
-zrodholder();
-
-// Z rods
-module z_rods()
-{
-       color("MediumBlue")
-       translate([board_w/2-4,-26,42])cylinder(h=z_smooth_rod_length,r=4);
-}
-
-z_rods();
-mirror([1,0,0])z_rods();
-
-// X ends
-translate([-board_w/2+4,-26,200])
-rotate([0,0,90])
-rotate([0,180,0])
-x_end_motor();
-
-translate([board_w/2-4,-26,200])
-rotate(90)
-rotate([0,180,0])
-x_end_idler();
-
-// X rods
-for(i=[0:1])
-color("MediumBlue")
-translate([0,-12,149+i*45])rotate([0,90,0])cylinder(h=300,r=4,center=true);
-
-// X carriage
-translate([0,-12,149])
-rotate([0,90,0])
-x_carriage();
\ No newline at end of file
diff --git a/src/doc/framestep1.png b/src/doc/framestep1.png
deleted file mode 100644 (file)
index b12e8d0..0000000
Binary files a/src/doc/framestep1.png and /dev/null differ
diff --git a/src/doc/framestep2.png b/src/doc/framestep2.png
deleted file mode 100644 (file)
index 4392c44..0000000
Binary files a/src/doc/framestep2.png and /dev/null differ
diff --git a/src/doc/framestep3.png b/src/doc/framestep3.png
deleted file mode 100644 (file)
index 6b23936..0000000
Binary files a/src/doc/framestep3.png and /dev/null differ
diff --git a/src/doc/framestep4.png b/src/doc/framestep4.png
deleted file mode 100644 (file)
index a697672..0000000
Binary files a/src/doc/framestep4.png and /dev/null differ
diff --git a/src/doc/framestep5.png b/src/doc/framestep5.png
deleted file mode 100644 (file)
index 75156cd..0000000
Binary files a/src/doc/framestep5.png and /dev/null differ
diff --git a/src/doc/framestep6.png b/src/doc/framestep6.png
deleted file mode 100644 (file)
index 07f76bd..0000000
Binary files a/src/doc/framestep6.png and /dev/null differ
diff --git a/src/doc/manual.txt b/src/doc/manual.txt
deleted file mode 100644 (file)
index 2480d9b..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-Assembly
-
-This document will guide you through putting together your Prusa i3.  
-Please read it through briefly before starting your build, and make sure you have everything you need to continue. 
-It's frustrating to be stuck with a half-finished machine because you are missing a part or tool.
-It's recommended to do the assembly with 2 or more people. If you are doing this alone, do the instructions in order.
-If there are two of you, each step is marked P1 or P2. Decide which one of you is Player 1 and act accordingly.
-If there are more than two of you, split into two teams.
-
-
-===Assemble the extruder (P1)===
-There are multiple forms of extruder. These instructions cover two common variants.
-
-==The gregstruder==
-Plastic parts needed:
--Extruder body
--Extruder idler
--Extruder large gear
--Extruder small gear
-Other parts needed:
--1 NEMA17 motor
--1 hotend
--1 M3x8 grub screw
--6 M3 nuts
--3 M3x40 bolts
--1 M8x20 grub screw
--1 M8 hobbed bolt
--4 M8 washers
--2 M8 nuts
--3 608 skateboard bearings
--3 M3x10 bolts
-(optional) 2 short, stiff springs or silicone pads
-Tools needed
--Wrench/spanner to fit M8 (preferably 2)
--Soldering iron
--Drill with 8mm and 3mm bits
--File
--Screwdriver or allen key to fit your M3 bolt heads and the M3 grub screw
-
-Take the extruder body and snap off the small support piece attached to it. It should separate easily. If it leaves a messy surface, clean the surface up.
-Use the drill to drill through the 8mm hole in the extruder body, the 3mm holes for the motor bolts, the 2 3mm mounting holes on the bottom and the 3mm hole for the idler (where the support piece was).
-Melt two M3 nuts into the nut traps over the mounting holes.
-Drill through the filament channel to make sure it's clear.
-Place 1 608 bearing on the M8x20 grub screw and push it into the idler. It will only fit if the bearing is on the middle of the grub screw. It will click in place.
-Attach the idler to the extruder body and fix it with the M3x40 bolt. Make sure the bolt head is on the FLAT side of the extruder body. You can put a nut on the bolt if you want, but don't tighten it very tightly.
-Place an M3 nut in the small gear and fix it in place with the M3x8 grub screw. Slide the gear onto the motor shaft and fix it in place with the grub screw. Do not overtighten, and make sure the motor can turn freely with the gear in place.
-Attach the motor to the extruder body with the 3 M3x10 bolts. The bolt heads go on the FLAT side of the extruder body.
-Place 2 608 bearings in the recesses in the extruder body. 
-Place the hobbed bolt in the large gear. If it's too loose, pad it a bit until it sits tight. Place two washers on the opposite (flat) side of the gear and slide the hobbed bolt through the two bearings into the extruder body. The gear teeth will mesh with the small gear already there. If they don't, adjust the position of the motor and/or the gear on the motor shaft until they do. Make sure the bobbing on the bolt aligns with the filament channel. If necessary, add another washer between the gear and the extruder body. Place a washer followed by 2 M8 nuts on the opposite side of the extruder body to fix the bolt in place.
-If you are using springs or silicone pads, place those on the remaining two M3x40 bolts. Place two nuts into the nut recesses above the two bearings. Use the M3x40 bolts to fix the idler in place. You will adjust the tension later when you insert filament, so don't worry about that for now. 
-Assemble your hotend according to your specific hotend's assembly instructions. I am assuming you have a hotend that is matched to your extruder body.
-Attach the hotend to the extruder. If your hotend has a flat mounting plate, make sure the holes on it align with the holes on the extruder body so that the filament channel leads into the hotend. Redrill holes as necessary if something does not fit.
-
-==The raldrich geared stepper extruder==
-
-Plastic parts needed:
--Extruder body
--Extruder idler
--Extruder body spacer
-Other parts needed:
--1 geared stepper motor
--1 hotend
--2 M3x30 bolt
--6 M3 nuts
--1 filament drive gear
--1 M3x8 grub screw
--1 M4 x20 bolt
--1 624 bearing
--4 M3x40 bolts
--4 M3 washers
-(optional) 4 short, stiff springs or silicone pads
-Tools needed
--Soldering iron
--Drill with 8mm and 3mm bits
--File
--Screwdriver or allen key to fit your M3 and M4 bolt heads and the M3 grub screw
-
-Use the drill to drill through the 3mm holes for the motor bolts, the 2 3mm mounting holes on the bottom and the 4mm hole in the idler.
-Drill through the filament channel to make sure it's clear.
-Place the 624 bearing in the idler and fix it with the M4x20 bolt.
-Place the spacer on the motor and make sure it aligns correctly with the extruder body.
-Attach the drive gear to the motor shaft with the grub screw. Adjust the position of the drive gear to align with the filament channel.
-Use the M3x30 bolts and the M3 nuts to fix the extruder body to the motor, sandwiching the spacer plate between them.
-Place washers on the M3x40 bolts.
-If you are using springs or silicone pads, place those on the remaining M3x40 bolts.
-Place M3 nuts into the nut traps of the extruder body.
-Attach the idler to the extruder body, so that the bearing presses against the drive gear.
-Assemble your hotend according to your specific hotend's assembly instructions. I am assuming you have a hotend that is matched to your extruder body.
-Attach the hotend to the extruder. If your hotend has a flat mounting plate, make sure the holes on it align with the holes on the extruder body so that the filament channel leads into the hotend. Redrill holes as necessary if something does not fit.
-
-
-===Assemble the X axis (P2)===
-Plastic parts needed:
--x axis motor end
--x axis idler end
--x carriage
-Other parts needed:
--1 NEMA17 stepper motor
--1 T2.5 belt
--3 M3x10 bolt
--1 belt drive pulley
--1 M3x8 grub screw
--1 ??? bolt
--1 ??? bearing
--7 linear bearings
--2 smooth rods
-Tools needed
--Screwdriver or allen key to fit your M3 bolt heads and the M3 grub screw
-
-The X axis consists of 3 parts - the motor end, the idler end, and the carriage. 
-Insert four linear bearings (two per part) into the motor and idler ends of the x axis. 
-Slide a smooth rod through each pair of linear bearings to make sure they slide smoothly and don't move around. If they do move around, pad them with a folded sheet of paper.
-Insert two smooth rods into the motor end of the X axis (the one with the three mounting points for the motor). Push them in as far as they will go.
-Insert three linear bearings into the carriage. Slide the carriage onto the smooth rods.
-Attach the idler bearing onto the idler end using an ??? bolt.
-Push the idler onto the smooth rods, trapping the carriage in. Make sure it can move along the rods with minimal effort.
-Attach a NEMA17 motor to the motor end using 3 M3x10 bolts. The bolt heads will sink into the part, and the motor will be on the side opposite the linear bearings.
-Place a pulley on the motor and fasten it to the shaft using a grub screw. Make sure the belt path is aligned with the gap in the x end pieces.
-Insert a belt into the carriage belt holder such that it meshes with the printed teeth.
-Thread the belt through the motor and idler ends, so that it runs over the bearing and the pulley. Insert the other end of the belt into the belt holder.
-Do not cut the belt to size yet, as we will still have to adjust the location of the idler end along the smooth rods.
-
-===Assemble the Y axis(P2)===
-Plastic parts needed:
--y axis motor holder
--4 y corners
--y axis idler 
--y belt clamp
--3 y bearing holders
-Other parts needed:
--1 23x23cm 12mm plate (9"x9" 1/2" thick for people in inchy countries) (may be thinner)
--1 heated bed PCB, with wires attached
--1 glass plate covered with Kapton or PET tape
--1 NEMA17 stepper motor
--1 T2.5 belt
--2 M3x10 bolt
--1 belt drive pulley
--1 M3x8 grub screw
--1 ??? bolt
--1 ??? bearing
--3 linear bearings
--2 405mm smooth rods
--34 M8 nuts (substitute 5/16" for M8 in inchland)
--34 M8 washers
--4 140mm M8 (5/16") threaded rod (longer is ok)
--2 430mm M8 (5/16") threaded rod (longer is ok)
--9 3.5x12mm wood screws (or shorter if your plate is thinner)
-Tools needed:
--Screwdriver to fit your wood screws
--Screwdriver or allen key to fit your M3 bolt heads and the M3 grub screw
--13mm wrench
--Another 13mm wrench (optional but violently recommended)
--Pencil or marker that is visible on the plate material
--Drill with 3.2mm (1/8") or 3mm drill bit
--Tape for holding things in place
-
-Place the linear bearings in the linear bearing holders.
-Place the belt drive pulley on the motor shaft and tighten it with the grub screw.
-Attach the motor to the y axis motor holder using two M3x10 bolts. (ystep1.png)
-Thread two of the 140mm threaded rods through the motor holder. It should sit about 1/3 along the length of the rods, so that the motor is approximately centered.
-Use 4 M8 washers and nuts to fix the motor holder in place on the rods. (ystep2.png)
-Place a ??? bearing in the idler and fix it with the ??? bolt.
-Attach the idler to one of the remaining 140mm rods. Fix it with a nut and washer on each side. (ystep3.png)
-Place a pair of washers surrounded by nuts around the middle of each of the 430mm threaded rods.
-Place a nut and a washer on one end of each of the 430mm threaded rods. (ystep4.png)
-Snap a smooth rod into one of the y corners.
-Thread one end of the 430mm threaded rod through the y corner piece so it goes parallel to the smooth rod with the nut and washer against the plastic part.
-Put a washer and a nut on the outside of the plastic piece, fixing it to the threaded rod. (ystep5.png)
-Put a nut followed by a washer onto the other end of the threaded rod.
-Add another plastic y corner to the smooth and threaded rod's other end.
-Put a washer and a nut on the outside of the plastic piece, fixing it to the threaded rod. 
-Adjust the inner nut so the smooth rod is snugly held in place.(ystep6.png)
-Repeat this procedure for the other 430mm threaded rod.(ystep7.png)
-Place a nut and a washer on one end of each of the 140mm threaded rods. (ystep8.png)
-Place the assembled smooth and threaded rods on the ends of the 140mm rods. Adjust the motor and idler position if necessary. (ystep9.png)
-Place a nut and washer on the outside end of each of the 140mm rods. Do not tighten yet. (ystep10.png)
-Place an object of 10cm width between the smooth rods. One of the frame panels might be useful for this.
-Using the 10cm reference, make sure the distance between smooth rods is the same on both ends. 
-Measure as close as you can to the motor, and as close as you can to the idler. 
-Adjust the inner nuts and tighten the outer nuts, while checking the distance repeatedly. 
-Use two wrenches to tighten the nuts without moving the plastic part along the rod.
-Once done, pop the smooth rods out of the plastic parts. (ystep11.png)
-Place the three linear bearings in their holders, and slide them onto the rods. Two on one rod, one on the other.
-Place your heated bed PCB on the plate and tape it down so it doesn't move around.
-Mark and drill the 4 corner holes of the PCB with a 3.2mm (1/8") or 3mm drill.
-Remove the heated bed PCB from the plate and place the plate on a flat surface.
-Pop the smooth rods, with linear bearings attached, back into the plastic parts. 
-The rod with two linear bearings on it should go on the side where the motor pulley is.
-Place the entire assembly, upside down, onto the plate. Align it so the smooth rods are parallel to the plate edges and the assembly is approximately centered.
-Position the two linear bearings that share a rod so that they are both in the middle third of the plate.
-Position the last linear bearing so it's between the other two.
-Mark each linear bearing holder mounting hole.
-Drill all the holes and screw the linear bearing holders in with the wood screws.
-Place one end of the belt into the belt clamp. Run the belt along its path over the pulley and idler and back to the belt clamp. 
-Place the belt clamp in the middle of the plate along the belt path.
-Mark and drill the belt clamp mounting holes and screw the belt clamp down.
-Pull the belt tight and place the end into the belt clamp. Your Y axis is done.
-
-
-===Assemble the frame (P1)===
-The frame can be either one custom-cut plate or a box section composed of several precut pieces (you can have them cut to size at the hardware store).
-If you have a custom-cut plate, skip this step and move on to the Z axis below.
-
-Other parts needed:
--6 45x10cm 12mm plate (18"x4" 1/2" thick plate for you non-metric people)
--1 47.5x10cm 12mm plate (19"x4" 1/2" thick) (optional, needed only if you want to mount a spool on top of the machine.)
--Box of 3.5x20mm wood screws
-Tools needed
--Drill with 3mm or 3.2mm bit
--Countersink bit
--Screwdriver or power screwdriver to match the wood screws
--Clamps (optional but highly recommended, can be replaced by helpful friend)
--Pencil
--A shim/spacer, 3mm wide
-
-Place two of the 45x10 plates against each other on a flat surface, one standing up. 
-Make sure the ends are aligned exactly by pressing another plate against them. Clamp them down in this position (or have your friend hold them).
-Drill through the plate that is standing up into the side of the plate that is lying on the table, approximately halfway along the length of the plate. 
-Countersink the hole and add a screw. Add two more screws about 3cm from each end of the plate.
-Repeat this for another pair of plates.
-Lay the two pairs on the table and put another 45x10 plate between them. Align the new plate with one of the edges.
-Clamp the plates down and use 6 screws to attach the cross plate to the two corners.
-Place the 3mm spacer on the table, and put the last remaining 45x10 on top of it.
-Stand the remaining plates on end, and place them on top of the new plate. Use 8 screws to secure the bottom plate to the rest of the frame.
-If you want to, place the 47.5x10 plate on top of the entire structure and attach it with 6 screws. This is a convenient place to mount accessories, such as a filament roll holder.
-
-
-===Assemble the Z axis(P1)===
-
-
diff --git a/src/doc/ystep1.png b/src/doc/ystep1.png
deleted file mode 100644 (file)
index fe50589..0000000
Binary files a/src/doc/ystep1.png and /dev/null differ
diff --git a/src/doc/ystep10.png b/src/doc/ystep10.png
deleted file mode 100644 (file)
index b08e56a..0000000
Binary files a/src/doc/ystep10.png and /dev/null differ
diff --git a/src/doc/ystep11.png b/src/doc/ystep11.png
deleted file mode 100644 (file)
index 0f30786..0000000
Binary files a/src/doc/ystep11.png and /dev/null differ
diff --git a/src/doc/ystep2.png b/src/doc/ystep2.png
deleted file mode 100644 (file)
index 2df877e..0000000
Binary files a/src/doc/ystep2.png and /dev/null differ
diff --git a/src/doc/ystep3.png b/src/doc/ystep3.png
deleted file mode 100644 (file)
index b13d57e..0000000
Binary files a/src/doc/ystep3.png and /dev/null differ
diff --git a/src/doc/ystep4.png b/src/doc/ystep4.png
deleted file mode 100644 (file)
index ee758be..0000000
Binary files a/src/doc/ystep4.png and /dev/null differ
diff --git a/src/doc/ystep5.png b/src/doc/ystep5.png
deleted file mode 100644 (file)
index 2988be2..0000000
Binary files a/src/doc/ystep5.png and /dev/null differ
diff --git a/src/doc/ystep6.png b/src/doc/ystep6.png
deleted file mode 100644 (file)
index 4c56134..0000000
Binary files a/src/doc/ystep6.png and /dev/null differ
diff --git a/src/doc/ystep7.png b/src/doc/ystep7.png
deleted file mode 100644 (file)
index e03307e..0000000
Binary files a/src/doc/ystep7.png and /dev/null differ
diff --git a/src/doc/ystep8.png b/src/doc/ystep8.png
deleted file mode 100644 (file)
index 686e7c7..0000000
Binary files a/src/doc/ystep8.png and /dev/null differ
diff --git a/src/doc/ystep9.png b/src/doc/ystep9.png
deleted file mode 100644 (file)
index b676beb..0000000
Binary files a/src/doc/ystep9.png and /dev/null differ
diff --git a/src/fan-mount.scad b/src/fan-mount.scad
new file mode 100644 (file)
index 0000000..abbd8ca
--- /dev/null
@@ -0,0 +1,27 @@
+// PRUSA iteration3
+// Fan mount
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+module fan_mount_base(){
+ translate([0,0,0]) rotate([0,0,0]) cube([20,10, 4]);
+ translate([0,0,0]) rotate([0,45,0]) translate([-10,0,0]) cube([10,10, 4]);
+}
+
+module fan_mount_holes(){
+ translate([10,5,-1]) rotate([0,0,0]) cylinder(h=30, r=1.8, $fn=10);
+ translate([0,5,0]) rotate([0,45,0]) translate([-5,0,-1]) cylinder(h=30, r=2.2, $fn=10);
+}
+
+// Final part
+module fan_mount(){
+ difference(){
+  fan_mount_base();
+  fan_mount_holes();
+ }
+}
+
+fan_mount();
+
diff --git a/src/frame-connector.scad b/src/frame-connector.scad
deleted file mode 100644 (file)
index 870e838..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-difference(){
-       translate([-10,-10,0])cube([20,20,30]);
-translate([16,16,0]) rotate([0,0,45])translate([-20,-20,-1]) cube([40,40,40]);
-translate([-23,-23,0]) rotate([0,0,45])translate([-20,-20,-1]) cube([40,40,40]);
-translate([0,-20,5]) rotate([0,90,90]) cylinder(h = 50, r=2, $fn=20);
-translate([0,-20,25]) rotate([0,90,90]) cylinder(h = 50, r=2, $fn=20);
-translate([-20,0,5]) rotate([0,90,0]) cylinder(h = 50, r=2, $fn=20);
-translate([-20,0,25]) rotate([0,90,0]) cylinder(h = 50, r=2, $fn=20);
-
-translate([0,-5,5]) rotate([0,90,90]) cylinder(h = 50, r=4, $fn=20);
-translate([0,-5,25]) rotate([0,90,90]) cylinder(h = 50, r=4, $fn=20);
-translate([-5,0,5]) rotate([0,90,0]) cylinder(h = 50, r=4, $fn=20);
-translate([-5,0,25]) rotate([0,90,0]) cylinder(h = 50, r=4, $fn=20);
-}
diff --git a/src/inc/functions.scad b/src/inc/functions.scad
deleted file mode 100644 (file)
index 0900607..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-// PRUSA iteration3
-// Functions used in many files
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// Václav 'ax' Hůla <axtheb@gmail.com>
-// Vlnofka <>
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-
-module nut(d,h,horizontal=true){
-    cornerdiameter =  (d / 2) / cos (180 / 6);
-    cylinder(h = h, r = cornerdiameter, $fn = 6);
-    if(horizontal){
-        for(i = [1:6]){
-            rotate([0,0,60*i]) translate([-cornerdiameter-0.2,0,0]) rotate([0,0,-45]) cube([2,2,h]);
-        }
-    }
-}
-
-// Based on nophead research
-module polyhole(d, h, center=false) {
-    n = max(round(2 * d),3);
-    rotate([0,0,180])
-        cylinder(h = h, r = (d / 2) / cos (180 / n), $fn = n);
-}
-
-// make it interchangeable between this and cylinder
-module cylinder_poly(r, h, center=false){
-    polyhole(d=r*2, h=h, center=center);
-}
-
-module fillet(radius, height=100, $fn=0) {
-    //this creates acutal fillet
-    translate([-radius, -radius, -height/2-0.01])
-        difference() {
-            cube([radius*2, radius*2, height+0.02]);
-            cylinder(r=radius, h=height+0.02, $fn=$fn);
-        }
-}
-
-module cube_fillet(size, radius=-1, vertical=[3,3,3,3], top=[0,0,0,0], bottom=[0,0,0,0], center=false, $fn=0){
-    //
-    if (center) {
-        cube_fillet_inside(size, radius, vertical, top, bottom, $fn);
-    } else {
-        translate([size[0]/2, size[1]/2, size[2]/2])
-            cube_fillet_inside(size, radius, vertical, top, bottom, $fn);
-    }
-}
-
-module cube_negative_fillet(size, radius=-1, vertical=[3,3,3,3], top=[0,0,0,0], bottom=[0,0,0,0], $fn=0){
-
-    j=[1,0,1,0];
-
-    for (i=[0:3]) {
-        if (radius > -1) {
-            rotate([0, 0, 90*i]) translate([size[1-j[i]]/2, size[j[i]]/2, 0]) fillet(radius, size[2], $fn=$fn);
-        } else {
-            rotate([0, 0, 90*i]) translate([size[1-j[i]]/2, size[j[i]]/2, 0]) fillet(vertical[i], size[2], $fn=$fn);
-        }
-        rotate([90*i, -90, 0]) translate([size[2]/2, size[j[i]]/2, 0 ]) fillet(top[i], size[1-j[i]], $fn=$fn);
-        rotate([90*(4-i), 90, 0]) translate([size[2]/2, size[j[i]]/2, 0]) fillet(bottom[i], size[1-j[i]], $fn=$fn);
-
-    }
-}
-
-module cube_fillet_inside(size, radius=-1, vertical=[3,3,3,3], top=[0,0,0,0], bottom=[0,0,0,0], $fn=0){
-    //makes CENTERED cube with round corners
-    // if you give it radius, it will fillet vertical corners.
-    //othervise use vertical, top, bottom arrays
-    //when viewed from top, it starts in upper right corner (+x,+y quadrant) , goes counterclockwise
-    //top/bottom fillet starts in direction of Y axis and goes CCW too
-
-
-    if (radius == 0) {
-        cube(size, center=true);
-    } else {
-        difference() {
-            cube(size, center=true);
-            cube_negative_fillet(size, radius, vertical, top, bottom, $fn);
-        }
-    }
-}
-
-
-module nema17(places=[1,1,1,1], size=15.5, h=10, holes=false, shadow=false, $fn=0){
-    for (i=[0:3]) {
-        if (places[i] == 1) {
-            rotate([0, 0, 90*i]) translate([size, size, 0]) {
-                if (holes) {
-                    rotate([0, 0, -90*i])  translate([0,0,-10]) screw(r=1.7, slant=false, head_drop=13, $fn=$fn, h=h+12);
-                } else {
-                    rotate([0, 0, -90*i]) cylinder(h=h, r=5.5, $fn=$fn);
-                }
-            }
-        }
-    }
-    if (shadow != false) {
-        %translate ([0, 0, shadow+21+3]) cube([42,42,42], center = true);
-    //flange
-        %translate ([0, 0, shadow+21+3-21-1]) cylinder(r=11,h=2, center = true, $fn=20);
-    //shaft
-        %translate ([0, 0, shadow+21+3-21-7]) cylinder(r=2.5,h=14, center = true);
-    }
-}
-
-module screw(h=20, r=2, r_head=3.5, head_drop=0, slant=true, poly=false, $fn=0){
-    //makes screw with head
-    //for substraction as screw hole
-    if (poly) {
-        cylinder_poly(h=h, r=r, $fn=$fn);
-    } else {
-        cylinder(h=h, r=r, $fn=$fn);
-    }
-    if (slant) {
-        translate([0, 0, head_drop-0.01]) cylinder(h=r_head, r2=0, r1=r_head, $fn=$fn);
-    }
-
-    if (head_drop > 0) {
-        translate([0, 0, -0.01]) cylinder(h=head_drop+0.01, r=r_head, $fn=$fn);
-    }
-}
-
-//cube_fillet([10,20,30], vertical=[3,2,0,0], top=[3,2,0,5], bottom=[3,2,0,5]);
-//cube_fillet([10,20,30], radius=2, top=[7,2,7,2]);
diff --git a/src/inc/metric.scad b/src/inc/metric.scad
deleted file mode 100644 (file)
index 2b1b751..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// PRUSA iteration3
-// Default metric sizes
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-// DONT CHANGE THIS FILE! ALTER VALUES IN CONFIGURATION.SCAD INSTEAD
-
-// RODS
-
-threaded_rod_diameter = 8.7;
-threaded_rod_diameter_horizontal = 8.7;
-smooth_bar_diameter = 8;
-smooth_bar_diameter_horizontal = 8.5;
-
-// Nuts and bolts
-
-m8_diameter = 9;
-m8_nut_diameter = 14.1;
-
-m4_diameter = 4.5;
-m4_nut_diameter = 9;
-
-m3_diameter = 3.6;
-m3_nut_diameter = 5.3;
-m3_nut_diameter_horizontal = 6.1;
-
-// Bushing holder
-
-bushing_core_diameter = smooth_bar_diameter;
-bushing_material_thickness = 1;
-
-// Motors
-
-motor_shaft = 5.5;
diff --git a/src/test-holder.scad b/src/test-holder.scad
deleted file mode 100644 (file)
index a6d50ff..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-difference(){cube([13,25,20]);
-
-//rotate([0, -90, 0])
-translate([0,0,1]){
-translate([2, -1, 8]) cube([9,60,5.2]);
-translate([-1, 5, 5]) cube([15,2.5,7]);
-translate([-1, 5, 0]) cube([15,2.5,2]);
-
-translate([-1, 15, 5]) cube([15,2.5,7]);
-translate([-1, 15, 0]) cube([15,2.5,2]);
-translate([6.5, -1, 8]) rotate([-90, 0, 0]) rotate([0, 0, 30])  cylinder(h=70, r=5.2, $fn=6);
-translate([6.5, -3, 8]) rotate([-90, 0, 0])  cylinder(h=70, r=4, $fn=30);
-}}
\ No newline at end of file
dissimilarity index 96%
index ea733ae..d7b83e4 100644 (file)
-// PRUSA iteration3
-// X carriage
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// Václav 'ax' Hůla <axtheb@gmail.com>
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-include <configuration.scad>
-use <bushing.scad>
-
-carriage_l = 74;
-
-module x_carriage_base(){
-       
-       translate([-65,22,0]) cube([65,1,15]);
-       rotate([0,-90,0]) translate([10,0,0]) linear_holder_base(65);
-       translate([0,45,0]) rotate([0,-90,0]) translate([10,0,0]) linear_holder_base(32);
-       translate([-65,9,0]) cube([65,25,5]);
-       translate([-65,22,0]) cube([65,15,15]);
-       
-}
-
-module x_carriage_beltcut(){
-       translate([-66,21.5+10,3]) cube([67,1.5,15]);
-       translate([-66,21.5+10,12]) rotate([45,0,0]) cube([67,15,15]);
-       for ( i = [0 : 23] )
-       {
-           translate([0-i*3,21.5+8,3]) cube([1.7,3,15]);
-       }
-       
-       
-}
-
-difference(){x_carriage_base();
-x_carriage_beltcut();}
-
-
-module x_carriage(){
-    mirror([1,0,0]) {
-        difference() {
-            union() {
-                //upper bearing
-                rotate([0,0,180]) {
-                    if (bearing_choice == 2) {
-                        linear_bearing(fillet = true);
-                    } else {
-                        linear_bushing(27);
-                    }
-                }
-
-                //lower bearing
-                translate([xaxis_rod_distance,0,0]) {
-                    if (bearing_choice == 2) {
-                        linear_bearing(carriage_l, fillet = true);
-                    } else {
-                        linear_bushing(carriage_l);
-                    }
-                }
-
-                // main plate
-                //difference(){
-                translate([5.5,-10,0]) cube_fillet([xaxis_rod_distance - 11,5,carriage_l], radius=2);
-                //translate([55,-17.5, 67]) rotate([0,70,0]) cube([80,60,60], center = true);
-                //}
-
-                //reduce springiness
-
-                translate([6,5,20]) cube([xaxis_rod_distance - 13,5,8]);
-
-
-            translate([20,0,carriage_hole_to_side]) {
-                rotate([90,0,0]) cylinder(r=(carriage_hole_to_side > 5 ? 5 : carriage_hole_to_side), h=12, center=true);
-                }
-            translate([20,0,carriage_l - carriage_hole_to_side]) {
-               rotate([90,0,0]) cylinder(r=(carriage_hole_to_side > 5 ? 5 : carriage_hole_to_side), h=12, center=true);
-                }
-
-                translate([45/2,0,0]){
-
-                    // belt dummy
-                    %translate([0,0,carriage_l/2]) cube([20,6,carriage_l], center = true);
-
-                    //belt flat side
-                    difference() {
-                    translate([-13.5,0,carriage_l/2]) cube_fillet([7,14,carriage_l], vertical = [3,3,0,0], center = true);
-                    translate([-45/2,0,0]) bushing_negative();
-                    }
-
-                    difference(){
-                        translate([-3.0,0,carriage_l/2]) cube_fillet([11,14,carriage_l], vertical = [2,2,0,0], center = true);
-#translate([-3.5,0,carriage_l/2]) cube([13,10,40], center = true);
-
-                        intersection() {
-                            for (i = [0 : carriage_l/belt_tooth_distance])
-                            {
-                                translate([-8.5, 0, 1+i*belt_tooth_distance]) cube([2, 10, belt_tooth_distance*belt_tooth_stride], center = true);
-                            }
-                            translate([0, 0, carriage_l/2]) cube([20, 10, carriage_l], center = true);
-                        }
-                    }
-
-                }
-            }
-            #translate([20,-2,carriage_hole_to_side]) {
-                rotate([90,0,0]) cylinder(r=2.2, h=22, center=true);
-                translate([0,3,0]) rotate([90,90,0]) cylinder(r=9/2, h=carriage_hole_height, $fn=6, center=true);
-                translate([0,3,-3]) cube([8,carriage_hole_height,8], center=true);
-            }
-            #translate([20,-2,carriage_l-carriage_hole_to_side]) {
-                rotate([90,0,0]) cylinder(r=2.2, h=22, center=true);
-                translate([0,3,0]) rotate([90,90,0]) cylinder(r=9/2, h=carriage_hole_height, $fn=6, center=true);
-                translate([0,3,3]) cube([8,carriage_hole_height,8], center=true);
-            }
-
-        }
-    }
-
-    module holding_plate(){
-        translate([13,-10,0]){
-            difference(){
-                translate([2.5-13.8/2, -17.5,35]) cube([5,35,carriage_l], center = true);
-                translate([2.5-13.8/2, -17.5,35]) cube([7,25,25], center = true);
-                translate([0,-17.5, 35-25]) rotate([0,-90,0]) cylinder(h = 80, r=2.5, $fn=30);
-                translate([0,-17.5, 35+25]) rotate([0,-90,0]) cylinder(h = 80, r=2.5, $fn=30);
-            }
-
-            %translate([-7, -18 ,carriage_l/2]) rotate([-90,0,90]) groovemount();
-        }
-    }
-}
-
-//x_carriage();
-//holding_plate();
+// PRUSA iteration3
+// X carriage
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+use <bearing.scad>
+
+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,-11.5,0]) cube([33,68,7]);
+ // Belt holder base
+ translate([-33,20,0]) cube([33,16,17]);
+}
+
+module x_carriage_beltcut(){
+ // Cut in the middle for belt
+ translate([-2.5-16.5+1,19,7]) cube([4.5,13,15]);
+ // Cut clearing space for the belt
+ translate([-38,5,7]) cube([40,13,15]);
+ // Belt slit
+ translate([-66,21.5+10,6]) cube([67,1,15]);
+ // Smooth entrance
+ translate([-66,21.5+10,14]) rotate([45,0,0]) cube([67,15,15]);
+ // Teeth cuts
+ for ( i = [0 : 23] ){
+  translate([0-i*3,21.5+8,6]) cube([1.7,3,15]);
+ }
+}
+
+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);
+  // Extruder mounting holes
+  translate([-16.5+12,24,-1])cylinder(r=1.7, h=20, $fn=8);
+  translate([-16.5+12,24,10])cylinder(r=3.1, h=20, $fn=6); 
+  translate([-16.5-12,24,-1])cylinder(r=1.7, h=20, $fn=8);
+  translate([-16.5-12,24,10])cylinder(r=3.1, h=20, $fn=6);     
+}
+
+module x_carriage_fancy(){
+ // Top right corner
+ translate([13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]);
+ // Bottom right corner
+ translate([0,5,0]) translate([0,-11.5,-1]) rotate([0,0,-45]) translate([0,-15,0]) cube([30,30,20]);
+ // Bottom ĺeft corner
+ translate([-33,5,0]) translate([0,-11.5,-1]) rotate([0,0,-135]) translate([0,-15,0]) cube([30,30,20]);
+ // 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]); 
+}
+
+// Final part
+module x_carriage(){
+ difference(){
+  x_carriage_base();
+  x_carriage_beltcut();
+  x_carriage_holes();
+  x_carriage_fancy();
+ }
+}
+
+x_carriage();
\ No newline at end of file
diff --git a/src/x-end-idler.scad b/src/x-end-idler.scad
new file mode 100644 (file)
index 0000000..30539b6
--- /dev/null
@@ -0,0 +1,29 @@
+// 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_base(){
+ x_end_base();
+}
+
+module x_end_idler_holes(){
+ x_end_holes();
+ translate(v=[0,-25,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=2.2, $fn=30);
+}
+
+// Final part
+module x_end_idler(){
+ mirror([0,1,0]) difference(){
+  x_end_idler_base();
+  x_end_idler_holes();
+ }
+}
+
+x_end_idler();
+
+
diff --git a/src/x-end-motor.scad b/src/x-end-motor.scad
new file mode 100644 (file)
index 0000000..45b4bc9
--- /dev/null
@@ -0,0 +1,41 @@
+// 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=[-14,31,26.5]) cube(size = [17,44,53], center = true);
+}
+
+module x_end_motor_holes(){
+ x_end_holes();
+ // Position to place
+ translate(v=[-0,32,30.25]){
+  // Belt hole
+  translate(v=[-14,1,0]) cube(size = [10,46,22], center = true);
+  // Motor mounting holes
+  translate(v=[-10,-15.5,-15.5]) cube(size = [60,3.5,3.5], center = true);
+  translate(v=[-10,-15.5,15.5]) cube(size = [60,3.5,3.5], center = true);
+  translate(v=[-10,15.5,-15.5]) cube(size = [60,3.5,3.5], center = true);
+  translate(v=[-10,15.5,15.5]) cube(size = [60,3.5,3.5], 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 = 80, r=18, $fn=6);
+ }
+}
+
+// Final part
+module x_end_motor(){
+ difference(){
+  x_end_motor_base();
+  x_end_motor_holes();
+ }
+}
+
+x_end_motor();
\ No newline at end of file
dissimilarity index 96%
index ce52a92..16ea581 100644 (file)
-// PRUSA iteration3
-// X ends
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// Václav 'ax' Hůla <axtheb@gmail.com>
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-include <configuration.scad>
-use <bushing.scad>
-xaxis_rod_distance = 45;
-
-module x_end_motor(){
-    mirror([0,1,0]) {
-
-        x_end_base([3,3,0,0], thru=false);
-        /// motor dummy
-        //%translate([21-5,-21-11,25]) cube([42,42,42], center = true);
-
-
-        difference(){
-            union(){
-                translate([-13.75,-15,26]) cube_fillet([17.5,12,52], center = true, vertical=[0,0,3,1.5], top=[0,3,6,3]);
-                translate([-10,-34,9]) intersection(){
-                    cube_fillet([10,37,18], center = true, vertical=[0,0,0,0], top=[0,3,5,3]);
-                    translate([-10/2,10,-26]) rotate([45,0,0]) cube_fillet([10,60,60], radius=2);
-                }
-                translate([-15, -32, 30.25]) rotate([90, 0, 0])  rotate([0, 90, 0]) nema17(places=[1,0,1,1], h=10);
-            }
-
-            // motor screw holes
-            translate([21-5,-21-11,30.25]){
-                // belt hole
-                translate([-30,11,0]) cube([10,26,20], center = true);
-                //motor mounting holes
-                translate([-29, 0, 0]) rotate([0, 0, 0])  rotate([0, 90, 0]) nema17(places=[1,1,0,1], holes=true, shadow=5, $fn=7, h=8);
-            }
-        }
-        //smooth rod caps
-        translate([-22, -10, 0]) cube([17, 2, 15]);
-        translate([-22, -10, 45]) cube([17, 2, 10]);
-    }
-}
-
-
-module x_end_base(vfillet=[3,3,3,3], thru=true, len=40){
-    difference(){
-        union(){
-            difference(){
-                translate([-13.75,-10+len/2,30]) cube_fillet([17.5,len,60], center = true, vertical=vfillet, top=[5,3,5,3]);
-                bushing_negative(60);
-            }
-            //rotate([0,0,0]) translate([0,-9.5,0]) 
-            if (bearing_choice == 1) {
-                linear_bushing(60);
-            } else {
-                linear_bearing(60);
-            }
-            // Nut trap
-            difference(){
-                if ((bearing_choice != 1) || (bushing_type == 2)) {
-                translate([-2,17.5,4]) cube_fillet([16,18,8], center = true, vertical=[3,0,0,0]);
-                } else {
-                translate([-2,17.5,4]) cube_fillet([16,18,8], center = true, vertical=[3,0,0,3]);
-                }
-
-                //bottom hole
-                
-                translate([0,17,-1]) cylinder(h = 4, r=2.75);
-                //nut slid in
-                translate([5,17,4]) cube([9.2*2,9.2*sqrt(3/4),4.1], center = true);
-
-                translate([0,17,6.5]) cylinder(h = 4, r=2.75);
-            }
-        }
-
-        // belt hole
-        translate([-5.5-10+1.5,22-9,30]) cube([10,55,32], center = true);
-
-        if(thru == true){
-            translate([-14,-11,6]) rotate([-90,0,0]) pushfit_rod(8,50);
-            translate([-14,-11,xaxis_rod_distance+6]) rotate([-90,0,0]) pushfit_rod(8,50);
-        } else {
-            translate([-14,-7,6]) rotate([-90,0,0]) pushfit_rod(8,50);
-            translate([-14,-7,xaxis_rod_distance+6]) rotate([-90,0,0]) pushfit_rod(8,50);
-        }
-
-
-    }
-
-    //threaded rod
-    translate([0,17,0]) %cylinder(h = 70, r=2.5);
-
-}
-
-
-module x_end_idler(){
-    difference() {
-        x_end_base(len=42+idler_size_inner_r);
-        // idler hole
-        translate([0,17+6+idler_size_inner_r,30.25-((bearing_type==0)? 3 : 0)]) rotate([0,-90,0]) cylinder(h = 80, r=idler_size_inner_r-0.2, $fn=30);
-        if (bearing_type == 0) 
-        translate([-9,17+6+idler_size_inner_r,30.25-3]) {
-            rotate([0,-90,0]) cylinder(h = 10, r=idler_size/2+4, $fn=30);
-            translate([-5,10,0]) cube([10,20,idler_size+8], center=true);
-        }
-    }
-}
-
-mirror([0,0,0]) x_end_idler(thru=true);
-// translate([40,40,0]) x_end_idler(thru=false);
-translate([40,0,0]) x_end_motor();
-
-module pushfit_rod(diameter,length){
-    cylinder(h = length, r=diameter/2, $fn=30);
-    translate([0,-diameter/4,length/2]) cube([diameter,diameter/2,length], center = true);
-
-    translate([0,-diameter/2-1.2,length/2]) cube([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>
+rod_distance = 45;
+
+module x_end_base(){
+// Main block
+translate(v=[-14,-10,30]) cube(size = [17,39,60], center = true);
+// Bearing holder
+vertical_bearing_base();       
+//Nut trap
+ // Cube
+ translate(v=[-2-2,-17,4]) cube(size = [8,16,8], center = true);
+ // Hexagon
+ translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6);
+}
+
+module x_end_holes(){
+vertical_bearing_holes();
+// Belt hole
+translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,32], center = true);
+// Bottom pushfit rod
+translate(v=[-14,-40,6]) rotate(a=[-90,0,0]) pushfit_rod(8,50);
+// Top pushfit rod
+translate(v=[-14,-40,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(8,50);
+// Nut trap
+ translate(v=[0,-17,-1]) cylinder(h = 10, r=2.45);
+ translate(v=[0,-17,3]) rotate([0,0,30]) cylinder(h = 5, r=4.5, $fn = 6);
+}
+
+
+// Final prototype
+module x_end_plain(){
+ difference(){
+  x_end_base();
+  x_end_holes();
+ }
+}
+
+//x_end_plain();
+
+
+module pushfit_rod(diameter,length){
+ cylinder(h = length, r=diameter/2, $fn=30);
+ translate(v=[0,-diameter/4,length/2]) cube(size = [diameter,diameter/2,length], center = true);
+ translate(v=[0,-diameter/2-2,length/2]) cube(size = [diameter,1,length], center = true);
+}
+
dissimilarity index 93%
index 8b3e325..4f723cc 100644 (file)
-// PRUSA iteration3
-// X carriage
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// Václav 'ax' Hůla <axtheb@gmail.com>
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-include <configuration.scad>
-use <bushing.scad>
-
-carriage_l = 74;
-
-module x_carriage_base(){
- translate([-33-8.5,0,0]) cube([33,15,15]); 
- translate([-33-8.5,11,0]) cube([33,15,15]);
- translate([-50,22,0]) cube([50,4,15]);        
-}
-
-
-position_tweak=-0.2;
-module x_carriage_beltcut(){
- translate([-66,-0.5+10,3]) cube([67,1,15]);
- translate([-66,-0.5+10,12]) rotate([45,0,0]) cube([67,15,15]);
- for ( i = [0 : 23] ){
-  translate([0-i*3+position_tweak,-0.5+8,3]) cube([1.7,3,15]);
- }
- //top opening
- translate([-2-25,-1,3]) cube([4,11,15]);      
-}
-
-module holes(){
- translate([-5,0,7.5]) rotate([-90,0,0]) cylinder(h=30, r=1.7, $fn=10);
- translate([-45,0,7.5]) rotate([-90,0,0]) cylinder(h=30, r=1.7, $fn=10);
-}
-
-difference(){
- x_carriage_base();
- x_carriage_beltcut();
- holes();
-}
-
-
-module x_carriage(){
-    mirror([1,0,0]) {
-        difference() {
-            union() {
-                //upper bearing
-                rotate([0,0,180]) {
-                    if (bearing_choice == 2) {
-                        linear_bearing(fillet = true);
-                    } else {
-                        linear_bushing(27);
-                    }
-                }
-
-                //lower bearing
-                translate([xaxis_rod_distance,0,0]) {
-                    if (bearing_choice == 2) {
-                        linear_bearing(carriage_l, fillet = true);
-                    } else {
-                        linear_bushing(carriage_l);
-                    }
-                }
-
-                // main plate
-                //difference(){
-                translate([5.5,-10,0]) cube_fillet([xaxis_rod_distance - 11,5,carriage_l], radius=2);
-                //translate([55,-17.5, 67]) rotate([0,70,0]) cube([80,60,60], center = true);
-                //}
-
-                //reduce springiness
-
-                translate([6,5,20]) cube([xaxis_rod_distance - 13,5,8]);
-
-
-            translate([20,0,carriage_hole_to_side]) {
-                rotate([90,0,0]) cylinder(r=(carriage_hole_to_side > 5 ? 5 : carriage_hole_to_side), h=12, center=true);
-                }
-            translate([20,0,carriage_l - carriage_hole_to_side]) {
-               rotate([90,0,0]) cylinder(r=(carriage_hole_to_side > 5 ? 5 : carriage_hole_to_side), h=12, center=true);
-                }
-
-                translate([45/2,0,0]){
-
-                    // belt dummy
-                    %translate([0,0,carriage_l/2]) cube([20,6,carriage_l], center = true);
-
-                    //belt flat side
-                    difference() {
-                    translate([-13.5,0,carriage_l/2]) cube_fillet([7,14,carriage_l], vertical = [3,3,0,0], center = true);
-                    translate([-45/2,0,0]) bushing_negative();
-                    }
-
-                    difference(){
-                        translate([-3.0,0,carriage_l/2]) cube_fillet([11,14,carriage_l], vertical = [2,2,0,0], center = true);
-#translate([-3.5,0,carriage_l/2]) cube([13,10,40], center = true);
-
-                        intersection() {
-                            for (i = [0 : carriage_l/belt_tooth_distance])
-                            {
-                                translate([-8.5, 0, 1+i*belt_tooth_distance]) cube([2, 10, belt_tooth_distance*belt_tooth_stride], center = true);
-                            }
-                            translate([0, 0, carriage_l/2]) cube([20, 10, carriage_l], center = true);
-                        }
-                    }
-
-                }
-            }
-            #translate([20,-2,carriage_hole_to_side]) {
-                rotate([90,0,0]) cylinder(r=2.2, h=22, center=true);
-                translate([0,3,0]) rotate([90,90,0]) cylinder(r=9/2, h=carriage_hole_height, $fn=6, center=true);
-                translate([0,3,-3]) cube([8,carriage_hole_height,8], center=true);
-            }
-            #translate([20,-2,carriage_l-carriage_hole_to_side]) {
-                rotate([90,0,0]) cylinder(r=2.2, h=22, center=true);
-                translate([0,3,0]) rotate([90,90,0]) cylinder(r=9/2, h=carriage_hole_height, $fn=6, center=true);
-                translate([0,3,3]) cube([8,carriage_hole_height,8], center=true);
-            }
-
-        }
-    }
-
-    module holding_plate(){
-        translate([13,-10,0]){
-            difference(){
-                translate([2.5-13.8/2, -17.5,35]) cube([5,35,carriage_l], center = true);
-                translate([2.5-13.8/2, -17.5,35]) cube([7,25,25], center = true);
-                translate([0,-17.5, 35-25]) rotate([0,-90,0]) cylinder(h = 80, r=2.5, $fn=30);
-                translate([0,-17.5, 35+25]) rotate([0,-90,0]) cylinder(h = 80, r=2.5, $fn=30);
-            }
-
-            %translate([-7, -18 ,carriage_l/2]) rotate([-90,0,90]) groovemount();
-        }
-    }
-}
-
-//x_carriage();
-//holding_plate();
+// PRUSA iteration3
+// Y belt holder
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+
+module belt_holder_base(){
+ translate([-33-8.5,0,-1]) cube([33,15,16]); 
+ translate([-33-8.5,11,-1]) cube([33,15,16]);
+ translate([-50,22,-1]) cube([50,4,16]);       
+}
+
+module belt_holder_beltcut(){
+ position_tweak=-0.2;
+ // Belt slit
+ translate([-66,-0.5+10,3]) cube([67,1,15]);
+ // Smooth insert cutout
+ translate([-66,-0.5+10,12]) rotate([45,0,0]) cube([67,15,15]);
+ // Individual teeth
+ for ( i = [0 : 23] ){
+  translate([0-i*3+position_tweak,-0.5+8,3]) cube([1.7,3,15]);
+ }
+ // Middle opening
+ translate([-2-25,-1,3]) cube([4,11,15]);      
+}
+
+module belt_holder_holes(){
+ translate([-4.5,0,7.5]) rotate([-90,0,0]) cylinder(h=30, r=1.7, $fn=10);
+ translate([-45.5,0,7.5]) rotate([-90,0,0]) cylinder(h=30, r=1.7, $fn=10);
+}
+
+// Final part
+module belt_holder(){
+ difference(){
+  belt_holder_base();
+  belt_holder_beltcut();
+  belt_holder_holes();
+ }
+}
+
+belt_holder();
\ No newline at end of file
diff --git a/src/y-corners.scad b/src/y-corners.scad
new file mode 100644 (file)
index 0000000..7a3237c
--- /dev/null
@@ -0,0 +1,55 @@
+// 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,47]);
+}
+
+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=4.4, $fn=30);
+
+  // Top smooth rod insert
+  // Smooth entry cutout
+  translate([11,-2,48.5]) rotate([0,90,90]) cylinder(h = 270, r=5, $fn=30); 
+  // Smooth rod place
+  translate([11,2,45]) rotate([0,90,90]) %cylinder(h = 270, r=4.2, $fn=30); 
+  // Ziptie
+  translate([-5,9,39])  cube([30,3.5,2]);
+ }
+}
+
+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-2]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
+  translate([-7,0,49-2]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
+  rotate([0,0,90]){
+   translate([-9,0,49-2]) 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();
+ }
+}
+
+corner();
diff --git a/src/y-drivetrain.scad b/src/y-drivetrain.scad
deleted file mode 100644 (file)
index 245dc0e..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// PRUSA iteration3
-// Y drivetrain (idler and stepper holders)
-// GNU GPL v3
-// Josef Průša <josefprusa@me.com>
-// Václav 'ax' Hůla <axtheb@gmail.com>
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-include <configuration.scad>
-
-module motorholder(thickness=10){
-    difference(){
-        union(){
-            // Motor holding part
-            translate([29,-21+50,0])
-            {
-                //#cube([42,42,2], center=true);
-                difference(){
-                    union(){
-                        translate([-21+4.5,0,5]) cube([9,31,thickness], center=true);
-                        nema17([0,1,1,0], thickness=thickness, shadow=false);
-                        mirror([0,0,1])translate([0,0,-10])nema17([0,1,1,0], thickness=thickness, shadow=7);
-                        // Parts joining part
-                        translate([-29,-21,0]) cube([14,30,thickness]);
-                    }
-                    // Motor mounting holes
-                    translate([0,0,thickness]) mirror([0,0,1]) nema17([0,1,1,0], thickness=thickness, holes=true);
-                }
-            }
-
-            // Front holding part
-            translate([0,10,0]) cylinder(h = thickness, r=8);
-            translate([0,20,5]) cube([16,20,thickness], center=true);
-            translate([0,30,0]) cylinder(h = thickness, r=8);
-        }
-        translate([0,10,-1]) cylinder(h = 12, r=4.5);
-        translate([0,30,-1]) cylinder(h = 12, r=4.5);
-    }
-}
-
-
-module idlermount(support=false){
-    difference(){
-        union(){
-            translate([8,8,0]) cylinder(h = 19, r=8);
-            translate([8,33,0]) cylinder(h = 19, r=8);
-            translate([0,7,0]) cube([16,27,19]);
-        }
-        translate([8,8,-1]) cylinder(h = 120, r=idler_size_inner_r);
-        translate([8,33,-1]) cylinder(h = 25, r=4.5);
-
-        translate([8,8,4]) {
-            %translate([0,0,1]) cylinder(h = 9, r=(idler_size/2)+2*single_wall_width);
-            cylinder(h = 11, r=(idler_size/2)+8);
-        }
-    }
-    if (support) {
-        translate([0,-2,15]) cube([16,16,0.4]);
-        translate([0,-2,0]) cube([16,1.3,15]);
-    }
-
-}
-
-motorholder();
-translate([25,0,0])  idlermount(true);
-
diff --git a/src/y-idler.scad b/src/y-idler.scad
new file mode 100644 (file)
index 0000000..caf38d7
--- /dev/null
@@ -0,0 +1,30 @@
+// PRUSA iteration3
+// Y idler
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+
+module y_idler_base(){
+ translate(v = [0,0,0]) cylinder(h = 19, r=8); 
+ translate(v = [0,20,0]) cylinder(h = 19, r=8);
+ translate(v = [0,10,9.5]) cube(size = [16,20,19], center=true);
+ translate(v = [-4,10,9.5]) cube(size = [8,16+20,19], center=true);
+}
+
+module y_idler_holes(){
+ translate(v = [0,0,-1]) cylinder(h = 120, r=2.5);     
+ translate(v = [0,20,-1]) cylinder(h = 25, r=4.5);
+ translate(v = [0,0,4]) cylinder(h = 11, r=12);
+}
+
+// Final part
+module y_idler(){
+ translate(v = [0,0,8])rotate([0,-90,0]) difference(){
+  y_idler_base();
+  y_idler_holes();
+ }
+}
+
+y_idler();
diff --git a/src/y-motor.scad b/src/y-motor.scad
new file mode 100644 (file)
index 0000000..6f70b52
--- /dev/null
@@ -0,0 +1,46 @@
+// 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);
+  translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5);
+  // 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);
+ translate(v = [0,20,5])cube(size = [16,20,10], center=true);  
+ translate(v = [0,30,0])cylinder(h = 10, r=8);
+}
+
+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.7);
+  translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.7);
+  // Screw holes
+  translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5);
+  translate(v = [-15.5,+15.5,7]) cylinder(h = 7, r=3.5);
+ }
+ translate(v = [0,10,-1]) cylinder(h = 12, r=4.5);     
+ translate(v = [0,30,-1])cylinder(h = 12, r=4.5);
+}
+
+// Final part
+module y_motor(){
+ difference(){
+  y_motor_base();
+  y_motor_holes();
+ }
+}
+
+y_motor();
index 34fbc76..5c16674 100644 (file)
@@ -1,41 +1,39 @@
-module holder_base(){
-translate([0,0,0]) cube([8,40,16+25]); // plate touching the base
-translate([0,-5,0]) cube([50,15,5]); // plate touching the base
-translate([0,-5,0]) cube([18,50,5]);
+// PRUSA iteration3
+// Z axis bottom holder
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+module z_bottom_base(){
+ translate([0,0,0]) cube([8,40,16+25]); // plate touching the base
+ translate([0,-5,0]) cube([50,15,5]); // plate touching the base
+ translate([0,-5,0]) cube([18,50,5]);
 }
 
-module holder_fancy(){
+module z_bottom_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([-4,40+5,5]) rotate([0,0,-45-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+3]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
- translate([8,0,12+5]) rotate([45,0,0]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
- translate([8,20,12+25]) rotate([-45,0,0]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
-
+ translate([0.5,40-0.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+3]) rotate([0,-55,0]) translate([0,-5,0]) cube([30,50,30]);
+ translate([8,0,12+10]) rotate([45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]);
+ translate([8,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,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]);
 }
 
-module holder_holes(){
- // screw holes
+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);
 
- // screw heads
+ // 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-3.1,10]) cube([10,6.2,10]);
  translate([4,10+20,10+5]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
- //translate([4,10+20-3.1,10]) cube([10,6.2,10]);
-
  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]);
 
@@ -47,23 +45,25 @@ module holder_holes(){
  translate([25+4.3,21,-1]){
  //translate([15.5,15.5,-1]) cylinder(h = 20, r=1.8, $fn=30);
  
- translate([15.5,-15.5,3.3]) cylinder(h = 20, r=1.8, $fn=30);
- translate([-15.5,15.5,3.3]) cylinder(h = 20, r=1.8, $fn=30);
- translate([-15.5,-15.5,3.3]) cylinder(h = 20, r=1.8, $fn=30);
- translate([15.5,-15.5,-1]) cylinder(h = 4, r=3.1, $fn=30);
- translate([-15.5,15.5,-1]) cylinder(h = 4, r=3.1, $fn=30);
- translate([-15.5,-15.5,-1]) cylinder(h = 4, r=3.1, $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);
  }
 
 }
 
-difference(){
- holder_base();
- holder_fancy();
- holder_holes();
+// Final part
+module z_bottom_holder(){
+ difference(){
+  z_bottom_base();
+  z_bottom_fancy();
+  z_bottom_holes();
+ }
+ translate([0,-13,0]) mirror([0,1,0]) difference(){
+  z_bottom_base();
+  z_bottom_fancy();
+  z_bottom_holes();
+ }
 }
-translate([0,-13,0]) mirror([0,1,0]) difference(){
- holder_base();
- holder_fancy();
- holder_holes();
-}
\ No newline at end of file
+
+z_bottom_holder();
index b13be0c..9e292f5 100644 (file)
@@ -1,29 +1,32 @@
-module holder_base(){
-translate([0,0,0]) cube([8,40,16]); // plate touching the base
-translate([0,-5,0]) cube([38,15,5]); // plate touching the base
+// PRUSA iteration3
+// Z axis top holder
+// GNU GPL v3
+// Josef Průša <iam@josefprusa.cz> and contributors
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://prusamendel.org
+
+module z_top_base(){
+ translate([0,0,0]) cube([8,40,16]); // plate touching the base
+ translate([0,-5,0]) cube([38,15,5]); // plate touching the base
 }
 
-module holder_fancy(){
- // corner cutouts
+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([-4,40+5,0]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]);
-
-
  translate([8,0,12]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
-
  translate([38-2.5,-5+2.5,0]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]);
  translate([38-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]);
 }
 
-module holder_holes(){
- // screw holes
+module z_top_holes(){
+ // Screw holes
  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
+ // Screw heads
  translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
  translate([4,10-3.1,10]) cube([10,6.2,10]);
  translate([4,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
@@ -34,13 +37,18 @@ module holder_holes(){
  translate([25+4.3-1,3,0.6]) cube([2,10,7]); // it's bit up because it helps with printing
 }
 
-difference(){
- holder_base();
- holder_fancy();
- holder_holes();
-}
-translate([0,-13,0]) mirror([0,1,0]) difference(){
- holder_base();
- holder_fancy();
- holder_holes();
+// Final part
+module z_top(){
+ difference(){
+  z_top_base();
+  z_top_fancy();
+  z_top_holes();
+ }
+ translate([0,-13,0]) mirror([0,1,0]) difference(){
+  z_top_base();
+  z_top_fancy();
+  z_top_holes();
+ }
 }
+
+z_top();
\ No newline at end of file