Refactored y frame. Split in two files.
authorVáclav 'Ax' Hůla <axtheb@gmail.com>
Wed, 30 May 2012 00:04:25 +0000 (02:04 +0200)
committerVáclav 'Ax' Hůla <axtheb@gmail.com>
Wed, 30 May 2012 00:04:25 +0000 (02:04 +0200)
y-axis-corner.scad
y-driverain.scad [new file with mode: 0644]

dissimilarity index 92%
index ceed339..5941e1e 100644 (file)
-// PRUSA Mendel  
-// Frame vertex
-// GNU GPL v3
-// Greg Frost
-// http://www.reprap.org/wiki/Prusa_Mendel
-// http://github.com/prusajr/PrusaMendel
-
-
-include <configuration.scad>
-
-module nutrod(){
-       rotate([0,90,0]){
-                       //translate(v = [0,0,-0.1]) nut(m8_nut_diameter,6.7,false);
-                       translate(v = [-7.5/2,0,7/2-1.5]) cube(size = [7.5,15,7], center=true);
-                       translate(v = [0,0,-1.5]) cylinder(h = 7, r=7.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 leftfront(thru = true){
-// translate so the rod is on x = 0
-translate(v = [-11,0,0])
-
-difference(){
-intersection(){
-cube(size = [22,22,50.5]);
-translate(v = [11,11,25]) rotate([0,0,45]) cube(size = [27,27,55], center=true);
-}
-
-translate(v = [-1,11,65]) rotate([0,45,0]) cube(size = [30,30,30], center=true);
-translate(v = [23,11,65]) rotate([0,45,0]) cube(size = [30,30,30], center=true);
-translate(v = [10,-4,65]) rotate([45,0,0]) cube(size = [30,30,30], center=true);
-
-
-
-translate(v = [0,11,10]) rotate([0,0,0]) nutrod();
-
-translate(v = [14,0,20]) rotate([0,0,90]) rotate([00,0,0]) nutrod();
-
-translate(v = [0,11,30]) rotate([0,0,0]) nutrod();
-
-if(thru==false){
-translate(v = [11,17,45+2.05]) rotate([0,0,0]) #cube(size = [8.2,30,4.1], center=true);
-translate(v = [11,2,45]) #rotate([0,90,90]) cylinder(h = 270, r=4.1);
-}else{
-translate(v = [11,17-5,45+2.05]) rotate([0,0,0]) #cube(size = [8.2,30,4.1], center=true);
-translate(v = [11,2-5,45]) #rotate([0,90,90]) cylinder(h = 270, r=4.1);
-}
-
-}
-}
-
-//leftfront positioned for printing
-module leftfrontprint(){
-       rotate([0,0,0])leftfront();
-}
-
-module motorholder(){
-difference(){
-       union(){
-               // Motor holding part
-               translate(v = [29,-21+50,0])
-               {
-                       //#cube(size = [42,42,2], center=true);
-                       difference(){
-                               union(){
-                               translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true);
-                               translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5);
-                               translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5);
-                               // Parts joining part
-                               translate(v = [-29,-21,0]) cube(size = [14,30,10]);
-                               }
-                               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);
-                               // holes for heads
-                               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);
-                               // Motor mounting holes
-                       }
-               }
-               
-               // 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);
-       }
-       translate(v = [0,10,-1]) cylinder(h = 12, r=4.5);       
-       translate(v = [0,30,-1])cylinder(h = 12, r=4.5);
-}
-
-
-
-
-//translate(v = [0,25,0])#cube(size = [22,50,1], center=true);
-}
-
-module idlermount(){
-       difference(){
-               union(){
-                       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);
-               }
-               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);
-       }
-}
-
-module idler(){
-       difference(){
-               union(){
-                       translate(v = [0,10,2.5])cube(size = [17,20,16], center=true);
-               }
-               translate(v = [0,0,-1]) cylinder(h = 20, r=4.5, $fn=15);
-       }
-       
-}
-//motorholder();
-//translate(v = [30,15,0]) idlermount();
-//translate(v = [10,15,0]) idlermount();
-//translate(v = [-15,15,0]) idler();
-//motorholder();
-//idlermount();
-print = 1;
-if(print==1){
-       leftfrontprint();
-       translate(v = [25,0,0]) mirror([1,0,0]) leftfrontprint();
-       translate(v = [12,2,28]) rotate([0,0,0]) cube(size = [10,4,1], center=true);
-
-       translate(v = [0,25,0]) {leftfrontprint();
-       translate(v = [25,0,0]) mirror([1,0,0]) leftfrontprint();
-       translate(v = [12,2,28]) rotate([0,0,0]) cube(size = [10,4,1], center=true);}
-}
-if(print==2){
-
-motorholder();
-// drawing corners
-leftfront(); 
-translate(v = [160,0,0]) mirror([1,0,0]) leftfront();
-translate(v = [0,350,0]) mirror([0,1,0]){
-       leftfront();
-       translate(v = [160,0,0]) mirror([1,0,0]) leftfront();
-       // back bottom threaded rod
-       translate(v = [0,10,10]) rotate([0,90,0]) cylinder(h = 160, r=4);
-
-       // back top threaded rod
-       translate(v = [0,10,30]) rotate([0,90,0]) cylinder(h = 160, r=4);
-}
-
-// front bottom threaded rod
-translate(v = [0,10,10]) rotate([0,90,0]) cylinder(h = 160, r=4);
-
-// front top threaded rod
-translate(v = [0,10,30]) rotate([0,90,0]) cylinder(h = 160, r=4);
-
-// left top rod
-translate(v = [0,0,45]) rotate([0,90,90]) cylinder(h = 350, r=4);
-//left bottom rod
-translate(v = [3,0,20]) rotate([0,90,90]) cylinder(h = 350, r=4);
-
-// right top rod
-translate(v = [160,0,45]) rotate([0,90,90]) cylinder(h = 350, r=4);
-//right bottom rod
-translate(v = [160-3,0,20]) rotate([0,90,90]) cylinder(h = 350, r=4);
-}
\ No newline at end of file
+// PRUSA Mendel
+// Y frame corner
+// GNU GPL v3
+// Greg Frost
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://github.com/prusajr/PrusaMendel
+
+use <functions.scad>
+include <configuration.scad>
+use <y-driverain.scad>
+
+module nutrod(){
+    rotate([0,90,0]){
+        //translate(v = [0,0,-0.1]) nut(m8_nut_diameter,6.7,false);
+        translate(v = [-7.5/2,0,7/2-1.5]) cube(size = [7.5,15,7], center=true);
+        translate(v = [0,0,-1.5]) cylinder(h = 7, r=7.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 leftfront(thru = true){
+    // translate so the rod is on x = 0
+    translate(v = [-11,0,0])
+
+        difference(){
+            cube_fillet([22,22,50.5], vertical=[4,4,4,4], top=[4,4,4,4], fn=8);
+
+            translate(v = [0,11,10]) rotate([0,0,0]) nutrod();
+            translate(v = [0,11,30]) rotate([0,0,0]) nutrod();
+
+            translate(v = [14,0,20]) rotate([0,0,90]) rotate([00,0,0]) nutrod();
+
+            if(thru==false){
+                translate(v = [11,17,45+2.05]) rotate([0,0,0]) #cube(size = [8.2,30,4.1], center=true);
+                translate(v = [11,2,45]) #rotate([0,90,90]) cylinder(h = 270, r=4.1);
+            }else{
+                translate(v = [11,17-5,45+2.05]) rotate([0,0,0]) #cube(size = [8.2,30,4.1], center=true);
+                translate(v = [11,2-5,45]) #rotate([0,90,90]) cylinder(h = 270, r=4.1);
+            }
+
+        }
+}
+
+//leftfront positioned for printing
+module leftfrontprint(){
+    rotate([0,0,0])leftfront();
+}
+
+
+print = 1;
+if(print==1){
+    leftfrontprint();
+    translate(v = [25,0,0]) mirror([1,0,0]) leftfrontprint();
+    translate(v = [12,2,28]) rotate([0,0,0]) cube(size = [10,4,1], center=true);
+
+    translate(v = [0,25,0]) {
+        leftfrontprint();
+        translate(v = [25,0,0]) mirror([1,0,0]) leftfrontprint();
+        translate(v = [12,2,28]) rotate([0,0,0]) cube(size = [10,4,1], center=true);
+    }
+
+}
+if(print==2){
+    //motor and idler holding parts
+    translate([100,10,0]) rotate([0,90,0]) rotate([0,0,90]) motorholder();
+    translate([114, 312, 22])  rotate([0,-90,0]) idlermount();
+    // drawing corners
+    leftfront();
+    translate(v = [160,0,0]) mirror([1,0,0]) leftfront();
+    translate(v = [0,350,0]) mirror([0,1,0]){
+        leftfront();
+        translate(v = [160,0,0]) mirror([1,0,0]) leftfront();
+        // back bottom threaded rod
+        translate(v = [0,10,10]) rotate([0,90,0]) cylinder(h = 160, r=4);
+
+        // back top threaded rod
+        translate(v = [0,10,30]) rotate([0,90,0]) cylinder(h = 160, r=4);
+    }
+
+    // front bottom threaded rod
+    translate(v = [0,10,10]) rotate([0,90,0]) cylinder(h = 160, r=4);
+
+    // front top threaded rod
+    translate(v = [0,10,30]) rotate([0,90,0]) cylinder(h = 160, r=4);
+
+    // left top rod
+    translate(v = [0,0,45]) rotate([0,90,90]) cylinder(h = 350, r=4);
+    //left bottom rod
+    translate(v = [3,0,20]) rotate([0,90,90]) cylinder(h = 350, r=4);
+
+    // right top rod
+    translate(v = [160,0,45]) rotate([0,90,90]) cylinder(h = 350, r=4);
+    //right bottom rod
+    translate(v = [160-3,0,20]) rotate([0,90,90]) cylinder(h = 350, r=4);
+}
+
diff --git a/y-driverain.scad b/y-driverain.scad
new file mode 100644 (file)
index 0000000..82beffb
--- /dev/null
@@ -0,0 +1,70 @@
+// PRUSA Mendel  
+// Y drivetrain (except bed parts)
+// GNU GPL v3
+// Josef Prusa
+// http://www.reprap.org/wiki/Prusa_Mendel
+// http://github.com/prusajr/PrusaMendel
+
+use <functions.scad>
+include <configuration.scad>
+
+module motorholder(thickness=10){
+    difference(){
+        union(){
+            // Motor holding part
+            translate(v = [29,-21+50,0])
+            {
+                //#cube(size = [42,42,2], center=true);
+                difference(){
+                    union(){
+                        translate(v = [-21+4.5,0,5]) cube(size = [9,31,thickness], center=true);
+                        nema([0,1,1,0], thickness=thickness);
+                        // Parts joining part
+                        translate(v = [-29,-21,0]) cube(size = [14,30,thickness]);
+                    }
+                    // Motor mounting holes
+                    translate([0,0,thickness]) mirror([0,0,1]) nema([0,1,1,0], thickness=thickness, holes=true);
+                }
+            }
+
+            // Front holding part
+            translate(v = [0,10,0]) cylinder(h = thickness, r=8);
+            translate(v = [0,20,5])cube(size = [16,20,thickness], center=true);
+            translate(v = [0,30,0])cylinder(h = thickness, r=8);
+        }
+        translate(v = [0,10,-1]) cylinder(h = 12, r=4.5);
+        translate(v = [0,30,-1])cylinder(h = 12, r=4.5);
+    }
+}
+
+
+module idlermount(support=false){
+    difference(){
+        union(){
+            translate(v = [8,8,0]) cylinder(h = 19, r=8);
+            translate(v = [8,33,0]) cylinder(h = 19, r=8);
+            translate(v = [0,7,0]) cube([16,27,19]);
+        }
+        translate(v = [8,8,-1]) cylinder(h = 120, r=4);
+        translate(v = [8,33,-1])cylinder(h = 25, r=4.5);
+
+        translate(v = [8,8,4])cylinder(h = 11, r=17);
+    }
+    if (support) {
+        translate([0,-2,15]) cube([16,16,0.4]);
+        translate([0,-2,0]) cube([16,1.3,15]);
+    }
+
+}
+
+module idler(){
+    difference(){
+        union(){
+            translate(v = [0,10,2.5])cube(size = [17,20,16], center=true);
+        }
+        translate(v = [0,0,-1]) cylinder(h = 20, r=4.5, $fn=15);
+    }
+}
+
+motorholder();
+translate([25,0,0])  idlermount(true);