Cleanup of whitespace, codestyle, indentation

This commit is contained in:
Marius van Witzenburg 2018-10-14 15:54:49 +02:00
parent e987f158c8
commit 5277728a47
39 changed files with 3479 additions and 4162 deletions

View File

@ -337,4 +337,3 @@ proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

View File

@ -24,7 +24,7 @@ nozzle-fan-45deg-support (1x) https://raw.githubusercontent.com/prusa3d/Origina
Black parts bundle (Extruder parts MUST BE printed in BLACK): Black parts bundle (Extruder parts MUST BE printed in BLACK):
X-carriage* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage.stl X-carriage* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage.stl
X-carriage-back* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage-back.stl X-carriage-back* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage-back.stl
Cable-holder* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/cable-holder.stl Cable-holder* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/cable-holder.stl
Extruder-body* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-body.stl Extruder-body* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-body.stl
Extruder-cover* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-cover.stl Extruder-cover* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-cover.stl

File diff suppressed because it is too large Load Diff

View File

@ -8,122 +8,111 @@
module body() module body()
{ {
// side panels // side panels
cube([105.5,87.5,1.5]); cube([105.5, 87.5, 1.5]);
cube([105.5,2,16]); cube([105.5, 2, 16]);
cube([2,87.5,16]); cube([2, 87.5, 16]);
// corner reinforcement // corner reinforcement
translate([98,1,0]) cube([7.5,5,16]); translate([98, 1, 0]) cube([7.5, 5, 16]);
translate([0.5,0.5,0]) cube([5,6.5,16]); translate([0.5, 0.5, 0]) cube([5, 6.5, 16]);
translate([1,0,0]) cube([10,87.5,6]); translate([1, 0, 0]) cube([10, 87.5, 6]);
translate([99.5,0,0] ) cube([6,87.5,7]); translate([99.5, 0, 0]) cube([6, 87.5, 7]);
translate([10,0,0]) cube([6,5,6]); translate([10, 0, 0]) cube([6, 5, 6]);
// screw thread body // screw thread body
translate([54,2,0]) cube([9.5,6,16]); translate([54, 2, 0]) cube([9.5, 6, 16]);
// rounded side // rounded side
translate([0,87.5,4.5]) rotate([0,90,0]) cylinder( h=105.5, r=4.5, $fn=30); translate([0, 87.5, 4.5]) rotate([0, 90, 0]) cylinder(h = 105.5, r = 4.5, $fn = 30);
// upper hinge reinforcement // upper hinge reinforcement
translate([0.5,69,-9]) rotate([20,0,0]) cube([26,20,10]); translate([0.5, 69, -9]) rotate([20, 0, 0]) cube([26, 20, 10]);
// door closing // door closing
translate([4,3.5,12.8]) rotate([0,0,0]) cylinder( h=3.2, r1=1.8, r2=3.5, $fn=30); translate([4, 3.5, 12.8]) rotate([0, 0, 0]) cylinder(h = 3.2, r1 = 1.8, r2 = 3.5, $fn = 30);
translate([102,3.5,12.8]) rotate([0,0,0]) cylinder( h=3.2, r1=1.8, r2=3.5, $fn=30); translate([102, 3.5, 12.8]) rotate([0, 0, 0]) cylinder(h = 3.2, r1 = 1.8, r2 = 3.5, $fn = 30);
} }
module ventilation_holes() module ventilation_holes()
{
for (i = [0 : 9])
{ {
for ( i = [0 : 9] ) translate([40 + (i * 6), 10.5, -1]) cube([3.65, 19 + 50, 1.2]);
{ translate([40 + (i * 6), 10.5, -1]) cube([3.65, 19, 10]);
translate([40 + (i*6),10.5,-1]) cube([3.65,19+50,1.2]); translate([40 + (i * 6), 10.5 + 25, -1]) cube([3.65, 19, 10]);
translate([40 + (i*6),10.5,-1]) cube([3.65,19,10]); translate([40 + (i * 6), 10.5 + 50, -1]) cube([3.65, 19, 10]);
translate([40 + (i*6),10.5+25,-1]) cube([3.65,19,10]);
translate([40 + (i*6),10.5+50,-1]) cube([3.65,19,10]);
} }
for ( i = [0 : -4] ) for (i = [0 : -4])
{ {
translate([40 + (i*6),10.5,-1]) cube([3.65,19+50,1.2]); translate([40 + (i * 6), 10.5, -1]) cube([3.65, 19 + 50, 1.2]);
} }
for ( i = [-6 : -7] ) for (i = [-6 : -7])
{ {
translate([46 + (i*6),20.5,-1]) cube([3.65,19+40,1.2]); translate([46 + (i * 6), 20.5, -1]) cube([3.65, 19 + 40, 1.2]);
} }
translate([15,10,1]) cube([20,55,1.5]); translate([15, 10, 1]) cube([20, 55, 1.5]);
} }
module cutouts() module cutouts()
{ {
// door closing screw // door closing screw
translate([58.5,4,1]) cylinder( h = 17, r = 1.8, $fn=30); translate([58.5, 4, 1]) cylinder(h = 17, r = 1.8, $fn = 30);
translate([58.5,4,14.5]) cylinder( h = 2.6, r1 = 1.8, r2=2.2, $fn=30); translate([58.5, 4, 14.5]) cylinder(h = 2.6, r1 = 1.8, r2 = 2.2, $fn = 30);
translate([58.5,4,11.5]) translate([58.5, 4, 11.5])
{ {
translate([0,0,2.5]) cube([5.7,3.8,1], center=true); translate([0, 0, 2.5]) cube([5.7, 3.8, 1], center = true);
translate([0,0,3]) cube([3.8,3.8,1], center=true); translate([0, 0, 3]) cube([3.8, 3.8, 1], center = true);
} }
ventilation_holes(); ventilation_holes();
// rounded side cutoff
translate([26.5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 73, r = 3.5, $fn=30);
translate([26.5,80,5]) cube([73,19,10]);
translate([26.5,82.5,1]) cube([73,5,10]);
// upper hinge cut
translate([0,60,-10]) cube([30,30,10]);
translate([-1,87.5,0]) cube([22.5,10,10]);
// upper hinge // rounded side cutoff
translate([2,80,6]) cube([19.5,10,10]); translate([26.5, 87.5, 4.5]) rotate([0, 90, 0]) cylinder(h = 73, r = 3.5, $fn = 30);
translate([-2,89.7,3]) rotate([70,0,0]) cube([19.5,10,5]); translate([26.5, 80, 5]) cube([73, 19, 10]);
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 26.5, r = 2.5, $fn=30); translate([26.5, 82.5, 1]) cube([73, 5, 10]);
// upper hinge cut
translate([0, 60, -10]) cube([30, 30, 10]);
translate([-1, 87.5, 0]) cube([22.5, 10, 10]);
// upper hinge
translate([2, 80, 6]) cube([19.5, 10, 10]);
translate([-2, 89.7, 3]) rotate([70, 0, 0]) cube([19.5, 10, 5]);
translate([-5, 87.5, 4.5]) rotate([0, 90, 0]) cylinder(h = 26.5, r = 2.5, $fn = 30);
// hinge hole // hinge hole
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 120, r = 2.6, $fn=30); translate([-5, 87.5, 4.5]) rotate([0, 90, 0]) cylinder(h = 120, r = 2.6, $fn = 30);
// door closing // door closing
translate([4,3.5,12.9]) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30); translate([4, 3.5, 12.9]) rotate([0, 0, 0]) cylinder(h = 3.2, r1 = 1.2, r2 = 2.8, $fn = 30);
translate([102,3.5,12.9]) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30); translate([102, 3.5, 12.9]) rotate([0, 0, 0]) cylinder(h = 3.2, r1 = 1.2, r2 = 2.8, $fn = 30);
// M3 nut // M3 nut
translate([55.65,0.5,12]) cube([5.7,10,2.2]); translate([55.65, 0.5, 12]) cube([5.7, 10, 2.2]);
// side panel lightning slot // side panel lightning slot
translate([2,10,3] ) cube([7,65,5]); translate([2, 10, 3]) cube([7, 65, 5]);
translate([101,10,3] ) cube([3,70,5]); translate([101, 10, 3]) cube([3, 70, 5]);
// corners - cut // corners - cut
translate([53,3,1.5]) rotate([0,0,70]) cube([10,10,50]); translate([53, 3, 1.5]) rotate([0, 0, 70]) cube([10, 10, 50]);
translate([61,12,1.5]) rotate([0,0,-70]) cube([10,10,50]); translate([61, 12, 1.5]) rotate([0, 0, -70]) cube([10, 10, 50]);
translate([16,2,1.5]) rotate([0,0,45]) cube([5,5,50]); translate([16, 2, 1.5]) rotate([0, 0, 45]) cube([5, 5, 50]);
} }
module Einsy_doors() module Einsy_doors()
{ {
difference() difference()
{ {
body(); body();
cutouts(); cutouts();
// large corner cut // large corner cut
translate( [0 , -20, -3] ) rotate([0,45,45]) cube( [ 30, 30 , 20 ] ); translate([0, -20, -3]) rotate([0, 45, 45]) cube([30, 30, 20]);
translate([30,79,1]) rotate([0,0,-90]) linear_extrude(height = 0.8) translate([30, 79, 1]) rotate([0, 0, -90]) linear_extrude(height = 0.8)
{ text("R1",font = "helvetica:style=Bold", size=6, center=true); } { text("R1", font = "helvetica:style = Bold", size = 6, center = true); }
}
} }
}
Einsy_doors(); Einsy_doors();

View File

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

View File

@ -7,52 +7,47 @@
module extruder_cable_clip() module extruder_cable_clip()
{ {
difference(){
difference() difference()
{ {
union() difference()
{ {
// body shape union()
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30); {
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5, $fn=30); // body shape
translate([0,16.6,28]) cube([2.9,22.8,7]); translate([-6, 28, 28]) rotate([0, 90, 0]) cylinder(h = 6, r = 13.5, $fn = 30);
translate([-10, 28, 28]) rotate([0, 90, 0]) cylinder(h = 4, r1 = 8.5, r2 = 13.5, $fn = 30);
translate([0, 16.6, 28]) cube([2.9, 22.8, 7]);
}
// bottom cut and shape
translate([-15, 7, 13]) cube([30, 40, 15]);
translate([-20, 28, 28]) rotate([0, 90, 0]) cylinder(h = 40, r = 6, $fn = 30);
// screws
translate([-2.7, 19.5, 25]) rotate([0, 0, 90]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([-2.7, 36.5, 25]) rotate([0, 0, 90]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([-2.7, 36.5, 32]) rotate([0, 0, 90]) cylinder(h = 13, r = 3.1, $fn = 30);
translate([-2.7, 19.5, 32]) rotate([0, 0, 90]) cylinder(h = 13, r = 3.1, $fn = 30);
// screw heads opening
translate([-2.7, 16.4, 35]) cube([10, 6.2, 15]);
translate([-2.7, 33.4, 35]) cube([10, 6.2, 15]);
} }
// bottom cut and shape difference()
translate([-15,7,13]) cube([30,40,15]); {
translate([-20,28,28]) rotate([0,90,0]) cylinder(h=40,r=6, $fn=30); // cable grip
translate([-8, 28, 28]) rotate([0, 90, 0]) cylinder(h = 10, r = 6, $fn = 30);
// screws translate([-20, 28, 28]) rotate([0, 90, 0]) cylinder(h = 40, r = 5.5, $fn = 30);
translate([-2.7,19.5,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50); translate([-15, 7, 13]) cube([30, 40, 15]);
translate([-2.7,36.5,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50); translate([-6, 7, 13]) cube([2, 40, 25]);
translate([-2.7,36.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30); translate([-2, 7, 13]) cube([2, 40, 25]);
translate([-2.7,19.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30); }
// screw heads opening //nylon hole
translate([-2.7,16.4,35]) cube([10,6.2,15]); translate([-3, 28, 28]) rotate([35, 90, 0]) cylinder(h = 24, r = 1.8, $fn = 30);
translate([-2.7,33.4,35]) cube([10,6.2,15]);
} }
}
difference()
{
// cable grip
translate([-8,28,28]) rotate([0,90,0]) cylinder( h = 10, r = 6, $fn=30);
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40, r = 5.5, $fn=30);
translate([-15,7,13]) cube([30,40,15]);
translate([-6,7,13]) cube([2,40,25]);
translate([-2,7,13]) cube([2,40,25]);
}
//nylon hole
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.8,$fn=30);}}
//translate([0, 0, 0]) extruder_cable_clip();
//translate([0,0,0]) extruder_cable_clip(); translate([6, -28, -28]) extruder_cable_clip();
translate([6,-28,-28]) extruder_cable_clip();

View File

@ -5,79 +5,59 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module heatbed_cable_clip()
module heatbed_cable_clip()
{ {
difference()
difference()
{
union()
{ {
difference() union()
{ {
union() difference()
{ {
// body base union()
translate([75,99,28]) rotate([90,0,0]) cylinder( h = 15, r = 13, $fn=30); {
translate([75,101,28]) rotate([90,0,0]) cylinder( h = 2, r1=9,r2 = 13, $fn=30); // body base
translate([75, 99, 28]) rotate([90, 0, 0]) cylinder(h = 15, r = 13, $fn = 30);
translate([75, 101, 28]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 9, r2 = 13, $fn = 30);
}
// cut flat and shape
translate([60, 82, 14]) cube([30, 20, 14]);
translate([60, 72, 20]) cube([30, 20, 30]);
} }
difference()
{
translate([62.75, 84, 28]) cube([24.5, 8, 7]);
// cut flat and shape difference()
translate([60,82,14]) cube([30,20,14]); {
translate([60,72,20]) cube([30,20,30]); translate([75, 85, 28]) rotate([90, 0, 0]) cube([30, 20, 10], center = true);
translate([75, 90, 28]) rotate([90, 0, 0]) cylinder(h = 6, r1 = 16.5, r2 = 11, $fn = 30);
}
}
} }
difference() {
translate([62.75,84,28]) cube([24.5,8,7]);
difference () {
translate([75,85,28]) rotate([90,0,0]) cube([30,20,10], center = true);
translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30);
}
}}
// cable opening
translate([61,102,28]) rotate([35,90,0])
difference (){
cylinder(h=35,r=4,$fn=30);
translate([0,0,3]) cylinder(h=5,r=4,$fn=30);
translate([0,0,12]) cylinder(h=1,r=4,$fn=30);
translate([0,0,16]) cylinder(h=1,r=4,$fn=30);
translate([0,0,20]) cylinder(h=1,r=4,$fn=30);
}
translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=3.3,$fn=30);
// screw heads
translate([67,88.8,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
translate([83,96,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
// screws
translate([67,88.8,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
translate([83,96,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
// cable opening
translate([61, 102, 28]) rotate([35, 90, 0])
difference()
{
cylinder(h = 35, r = 4, $fn = 30);
translate([0, 0, 3]) cylinder(h = 5, r = 4, $fn = 30);
translate([0, 0, 12]) cylinder(h = 1, r = 4, $fn = 30);
translate([0, 0, 16]) cylinder(h = 1, r = 4, $fn = 30);
translate([0, 0, 20]) cylinder(h = 1, r = 4, $fn = 30);
}
translate([61, 102, 28]) rotate([35, 90, 0]) cylinder(h = 35, r = 3.3, $fn = 30);
// screw heads
translate([67, 88.8, 30.5]) rotate([0, 0, 0]) cylinder(h = 10, r = 3.2, $fn = 30);
translate([83, 96, 31]) rotate([0, 0, 0]) cylinder(h = 10, r = 3.2, $fn = 30);
// screws
translate([67, 88.8, 14]) rotate([0, 0, 0]) cylinder(h = 35, r = 1.6, $fn = 50);
translate([83, 96, 14]) rotate([0, 0, 0]) cylinder(h = 35, r = 1.6, $fn = 50);
}
} }
translate([-70, -110, 0]) heatbed_cable_clip();
}
translate([-70,-110,0]) heatbed_cable_clip();

View File

@ -5,79 +5,60 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module heatbed_cable_clip()
module heatbed_cable_clip()
{ {
difference()
difference()
{
union()
{ {
difference() union()
{ {
union() difference()
{ {
// body base union()
translate([75,99,28]) rotate([90,0,0]) cylinder( h = 15, r = 13, $fn=30); {
translate([75,101,28]) rotate([90,0,0]) cylinder( h = 2, r1=9,r2 = 13, $fn=30); // body base
translate([75, 99, 28]) rotate([90, 0, 0]) cylinder(h = 15, r = 13, $fn = 30);
translate([75, 101, 28]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 9, r2 = 13, $fn = 30);
}
// cut flat and shape
translate([60, 82, 14]) cube([30, 20, 14]);
translate([60, 72, 20]) cube([30, 20, 30]);
} }
difference()
{
translate([62.75, 84, 28]) cube([24.5, 8, 7]);
// cut flat and shape difference()
translate([60,82,14]) cube([30,20,14]); {
translate([60,72,20]) cube([30,20,30]); translate([75, 85, 28]) rotate([90, 0, 0]) cube([30, 20, 10], center = true);
translate([75, 90, 28]) rotate([90, 0, 0]) cylinder(h = 6, r1 = 16.5, r2 = 11, $fn = 30);
}
}
} }
difference() {
translate([62.75,84,28]) cube([24.5,8,7]);
difference () {
translate([75,85,28]) rotate([90,0,0]) cube([30,20,10], center = true);
translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30);
}
}}
// cable opening
translate([61,102,28]) rotate([35,90,0])
difference (){
cylinder(h=35,r=5,$fn=30);
//translate([0,0,3]) cylinder(h=5,r=5,$fn=30);
translate([0,0,12]) cylinder(h=1,r=5,$fn=30);
translate([0,0,16]) cylinder(h=1,r=5,$fn=30);
translate([0,0,20]) cylinder(h=1,r=5,$fn=30);
}
translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=4.3,$fn=30);
// screw heads
translate([67,88.8,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
translate([83,96,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
// screws
translate([67,88.8,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
translate([83,96,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
// cable opening
translate([61, 102, 28]) rotate([35, 90, 0])
difference()
{
cylinder(h = 35, r = 5, $fn = 30);
//translate([0, 0, 3]) cylinder(h = 5, r = 5, $fn = 30);
translate([0, 0, 12]) cylinder(h = 1, r = 5, $fn = 30);
translate([0, 0, 16]) cylinder(h = 1, r = 5, $fn = 30);
translate([0, 0, 20]) cylinder(h = 1, r = 5, $fn = 30);
}
translate([61, 102, 28]) rotate([35, 90, 0]) cylinder(h = 35, r = 4.3, $fn = 30);
// screw heads
translate([67, 88.8, 30.5]) rotate([0, 0, 0]) cylinder(h = 10, r = 3.2, $fn = 30);
translate([83, 96, 31]) rotate([0, 0, 0]) cylinder(h = 10, r = 3.2, $fn = 30);
// screws
translate([67, 88.8, 14]) rotate([0, 0, 0]) cylinder(h = 35, r = 1.6, $fn = 50);
translate([83, 96, 14]) rotate([0, 0, 0]) cylinder(h = 35, r = 1.6, $fn = 50);
}
} }
translate([-70, -110, 0]) heatbed_cable_clip();
}
translate([-70,-110,0]) heatbed_cable_clip();

View File

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

View File

@ -5,52 +5,41 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
difference () { difference()
{
// main body
translate([0, 0, 0]) rotate(a = [0, 0, 0]) cylinder(h = 7.5, r1 = 10, r = 7.25, $fn = 60);
translate([0, 0, 20]) rotate(a = [0, 0, 0]) sphere(14);
// main body // knob cutout
translate([0, 0, -0.1]) rotate(a = [0, 0, 0]) cylinder(h = 4.6, d = 6.1, $fn = 60);
translate([0, 0, -0.1]) rotate(a = [0, 0, 0]) cylinder(h = 0.6, d1 = 7.1, d2 = 6.1 , $fn = 30);
translate([0, 0.75, -0.1]) rotate(a = [0, 0, -90]) cube([1.5, 5.3, 4.6]);
translate([0,0,0]) rotate(a=[0,0,0]) cylinder(h = 7.5, r1=10, r=7.25, $fn=60); // first layer correction
union()
translate([0,0,20]) rotate(a=[0,0,0]) sphere(14); {
difference()
// knob cutout {
translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 4.6, d=6.1, $fn=60); translate([0, 0, -0.1]) rotate(a = [0, 0, 0]) cylinder(h = 2, d1 = 11.5, d2 = 10.5, $fn = 60);
translate([0, 0, -0.15]) rotate(a = [0, 0, 0]) cylinder(h = 2, d1 = 9.5, d2 = 10.5, $fn = 60);
translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 0.6, d1=7.1, d2=6.1 , $fn=30); translate([0, 0, 1]) rotate(a = [0, 0, 0]) cylinder(h = 2, d = 13, $fn = 30);
translate([-13.5, -6, -0.1]) rotate(a = [0, 0, 0]) cube([10, 12, 4.6]);
translate([0,0.75,-0.1]) rotate(a=[0,0,-90]) cube([1.5,5.3,4.6]); }
// first layer correction
union () {
difference (){
translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 2,d1= 11.5, d2=10.5, $fn=60);
translate([0,0,-0.15]) rotate(a=[0,0,0]) cylinder(h = 2,d1= 9.5, d2=10.5, $fn=60);
translate([0,0,1]) rotate(a=[0,0,0]) cylinder(h = 2,d= 13, $fn=30);
translate([-13.5,-6,-0.1]) rotate(a=[0,0,0]) cube([10,12,4.6]);
}
}
difference () {
translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 4.6, d=11, $fn=60);
translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 4.6, d= 10, $fn=60);
translate([-13.5,-6,-0.1]) rotate(a=[0,0,0]) cube([10,12,4.6]);
}
} }
// handle difference()
{
difference () { translate([0, 0, -0.1]) rotate(a = [0, 0, 0]) cylinder(h = 4.6, d = 11, $fn = 60);
translate([0, 0, -0.1]) rotate(a = [0, 0, 0]) cylinder(h = 4.6, d = 10, $fn = 60);
translate([-2.1,6.5,0]) rotate(a=[0,0,0]) cube([4.2,12,7.5]); translate([-13.5, -6, -0.1]) rotate(a = [0, 0, 0]) cube([10, 12, 4.6]);
translate([-2.5,15,7.7]) rotate(a=[-67,0,0]) cube([5.5,11,7.5]); }
translate([-2.2,18.22,-0.1]) rotate(a=[0,0,0]) cube([4.4,12,0.21]);
} }
// handle
difference()
{
translate([-2.1, 6.5, 0]) rotate(a = [0, 0, 0]) cube([4.2, 12, 7.5]);
translate([-2.5, 15, 7.7]) rotate(a = [-67, 0, 0]) cube([5.5, 11, 7.5]);
translate([-2.2, 18.22, -0.1]) rotate(a = [0, 0, 0]) cube([4.4, 12, 0.21]);
}

View File

@ -7,209 +7,180 @@
module CubeAdjust(Xdim, Zdim) module CubeAdjust(Xdim, Zdim)
{ {
for (x =[6:11.2:Xdim-12]) for (x = [6 : 11.2 : Xdim - 12])
{
for (z = [6 : 11.2 : Zdim - 12])
{ {
for (z =[6:11.2:Zdim-12]) translate([x, -0.2, z]) cube([10, 0.4, 10]);
{
translate([x,-0.2,z])cube([10,0.4,10]);
}
} }
}
} }
module nuttrap() module nuttrap()
{ {
rotate([0, 180, 0]) difference() rotate([0, 180, 0]) difference()
{ {
union() union()
{ {
translate([-4.25,-7.5,0]) difference(){ translate([-4.25, -7.5, 0]) difference()
translate([0,0,0]) cube([8.5, 9.2, 3]); {
translate([-1,10.6,0]) rotate([45,0,0]) cube([11.5,5.7,5.7]); translate([0, 0, 0]) cube([8.5, 9.2, 3]);
} translate([-1, 10.6, 0]) rotate([45, 0, 0]) cube([11.5, 5.7, 5.7]);
} }
translate([0,0, -0.2])rotate([0,0,30]) cylinder(r=3.5,h=15-1.5, $fn=6); }
} translate([0, 0, -0.2]) rotate([0, 0, 30]) cylinder(r = 3.5, h = 15 - 1.5, $fn = 6);
}
} }
module m3_screw() module m3_screw()
{ {
translate([0,0,-0]) cylinder(r=1.5,h=12, $fn=30); translate([0, 0, -0]) cylinder(r = 1.5, h = 12, $fn = 30);
translate([0,0,12]) cylinder(r2=2.8, r1=1.5,h=2, $fn=30); translate([0, 0, 12]) cylinder(r2 = 2.8, r1 = 1.5, h = 2, $fn = 30);
translate([0,0,14]) cylinder(r=2.8,h=5, $fn=30); translate([0, 0, 14]) cylinder(r = 2.8, h = 5, $fn = 30);
} }
module PSU_COVER() module PSU_COVER()
{ {
difference() difference()
{ {
union() union()
{ {
translate([0,0,-0.46])cube([95,50+15,54.25]); // Base translate([0, 0, -0.46]) cube([95, 50 + 15, 54.25]); // Base
translate([0,0,-3.5])cube([14-0.5,50+15,5]); // Back pillar 1 translate([0, 0, -3.5]) cube([14 - 0.5, 50 + 15, 5]); // Back pillar 1
translate([-1.6,1,51.5])cube([5,64,3]); // Back pillar 1 translate([-1.6, 1, 51.5]) cube([5, 64, 3]); // Back pillar 1
translate([60-0.5,0,-3.5])cube([14,50+15,5]); // Back pillar 2 translate([60 - 0.5, 0, -3.5]) cube([14, 50 + 15, 5]); // Back pillar 2
translate([91+4,0,-0.46])cube([6,50+15,54.25]); // Base for bracket translate([91 + 4, 0, -0.46]) cube([6, 50 + 15, 54.25]); // Base for bracket
translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right translate([-2, 45.4 - 4.6, 19]) cube([2, 3, 15]); // nipple on the right
translate([-1.6,0,0])cube([1.65,65,2]); // Frame skirt 1 translate([-1.6, 0, 0]) cube([1.65, 65, 2]); // Frame skirt 1
translate([-1.6,0,0])cube([1.65,30,53.78]); // Frame skirt 2 translate([-1.6, 0, 0]) cube([1.65, 30, 53.78]); // Frame skirt 2
translate([-1.6,0,51.32])cube([1.65,65,2.46]); // Frame skirt 3 translate([-1.6, 0, 51.32]) cube([1.65, 65, 2.46]); // Frame skirt 3
} }
//pretty corners //pretty corners
translate([-11,-2,-2])rotate([0,0,-45])cube([10,10,58]); translate([-11, -2, -2]) rotate([0, 0, -45]) cube([10, 10, 58]);
translate([95-3+5+1,-2,-2])rotate([0,0,-45])cube([10,10,58]); translate([95 - 3 + 5 + 1, -2, -2]) rotate([0, 0, -45]) cube([10, 10, 58]);
translate([-3,-9,-4.46])rotate([-45,0,0])cube([130,10,10]); translate([-3, -9, -4.46]) rotate([-45, 0, 0]) cube([130, 10, 10]);
translate([-3,-12,54.78])rotate([-45,0,0])cube([130,10,10]); translate([-3, -12, 54.78]) rotate([-45, 0, 0]) cube([130, 10, 10]);
translate([-3,45+15,-4.46])rotate([-45,0,0])cube([130,10,10]); translate([-3, 45 + 15, -4.46]) rotate([-45, 0, 0]) cube([130, 10, 10]);
translate([-3,48+15,54.78])rotate([-45,0,0])cube([130,10,10]); translate([-3, 48 + 15, 54.78]) rotate([-45, 0, 0]) cube([130, 10, 10]);
translate([95-3+3,70,-2])rotate([0,0,-45])cube([10,10,58]); translate([95 - 3 + 3, 70, -2]) rotate([0, 0, -45]) cube([10, 10, 58]);
translate([95,0-10,-20])rotate([0,-45,-45])cube([20,20,20]); translate([95, 0 - 10, -20]) rotate([0, -45, -45]) cube([20, 20, 20]);
translate([95,0-10,45])rotate([0,-45,-45])cube([20,20,20]); translate([95, 0 - 10, 45]) rotate([0, -45, -45]) cube([20, 20, 20]);
translate([95,60,-10])rotate([-35,-45,-45])cube([20,20,20]); translate([95, 60, -10]) rotate([-35, -45, -45]) cube([20, 20, 20]);
translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]); translate([95, 60, 65]) rotate([-55, 48, -48]) cube([20, 20, 20]);
translate([79,-5,67.28])rotate([0,45,0])cube([20,90,20]); translate([79, -5, 67.28]) rotate([0, 45, 0]) cube([20, 90, 20]);
translate([79,-5,-13.96])rotate([0,45,0])cube([20,90,20]); translate([79, -5, -13.96]) rotate([0, 45, 0]) cube([20, 90, 20]);
translate([3, 3, 2]) cube([89.02, 50.02 + 15, 50.02 - 0.7]); // main cutout
translate([-3, 50 - 16.4 + 15, 2]) cube([100, 16.5, 50 - 0.7]); // insert cutout
translate([-3, 50 - 16.4 - 15.6 + 15, 2]) cube([10, 100, 17]); // right bottom cutout
translate([85 + 2, 50 - 16.4 - 17.6 + 15 + 0.9, 2]) cube([10, 100, 50 - 0.7]); // left bottom cutout
translate([3,3,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout translate([85 + 2, 10, 2]) rotate([0, 0, 45]) cube([10 * sqrt(2), 10 * sqrt(2), 50 - 0.7]);
translate([85 + 2, 3, 2]) cube([10, 17, 50 - 0.7]);
translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout
translate([-3,50-16.4-15.6+15,2])cube([10,100,17]); // right bottom cutout
translate([85+2,50-16.4-17.6+15+0.9,2])cube([10,100,50-0.7]); // left bottom cutout
translate([85+2,10,2])rotate([0,0,45]) cube([10*sqrt(2),10*sqrt(2),50-0.7]); translate([-3, 50 - 16.4 - 17.6 + 15 + 0.9, 2]) cube([100, 100, 10]); // bottom cutout
translate([85+2,3,2]) cube([10,17,50-0.7]);
translate([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout translate([5.5, 0.5, 0])
translate([5.5,0.5,0])
{
translate([48,1.5,40])cube([27.5,32.9,30]); // socket cutout
translate([48-4.5,3+15.6+0.5,40])cylinder(r=2,h=50, $fn=8); // socket right hole cutout
translate([48-4.5+37-0.5,3+15.6+0.5,40])cylinder(r=2,h=50, $fn=8); // socket left hole cutout
translate([1,6,44])cube([12.5,20,30]); // switch cutout
}
translate([7-0.5-0.5,40-1+15+0.7,-10])cylinder(r=2,h=50,$fn=15); // left back mounthole cutout
translate([7-0.5-0.5,40-1+15+0.7,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
translate([67.5-0.7-0.5,43.5-1+15+0.5,-10])cylinder(r=2,h=50,$fn=15); // right back mounthole cutout
translate([67.5-0.7-0.5,43.5-1+15+0.5,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15);
translate([130,32+26,55-4-25])rotate([0,-90,0])cylinder(r=2.5,h=50,$fn=35); // Left side bracket screw hole
translate([101.1,32+26,55-4-25])rotate([0,-90,0])cylinder(r2=2.5, r1=4.1,h=3,$fn=15);
translate([-0.3,1,-1.2]) CubeAdjust(102,54.25);
for(i=[0:9])
{ {
translate([20+i,6.8,-10])cylinder(r=3.5,h=50); // left back mounthole cutout translate([48, 1.5, 40]) cube([27.5, 32.9, 30]); // socket cutout
translate([48 - 4.5, 3 + 15.6 + 0.5, 40]) cylinder(r = 2, h = 50, $fn = 8); // socket right hole cutout
translate([48 - 4.5 + 37 - 0.5, 3 + 15.6 + 0.5, 40]) cylinder(r = 2, h = 50, $fn = 8); // socket left hole cutout
translate([1, 6, 44]) cube([12.5, 20, 30]); // switch cutout
} }
translate([7 - 0.5 - 0.5, 40 - 1 + 15 + 0.7, -10]) cylinder(r = 2, h = 50, $fn = 15); // left back mounthole cutout
translate([7 - 0.5 - 0.5, 40 - 1 + 15 + 0.7, -3.7]) cylinder(r2 = 2, r1 = 3.5, h = 1.5, $fn = 15);
translate([67.5 - 0.7 - 0.5, 43.5 - 1 + 15 + 0.5, -10]) cylinder(r = 2, h = 50, $fn = 15); // right back mounthole cutout
translate([67.5 - 0.7 - 0.5, 43.5 - 1 + 15 + 0.5, -3.7]) cylinder(r2 = 2, r1 = 3.5, h = 1.5, $fn = 15);
} translate([130, 32 + 26, 55 - 4 - 25]) rotate([0, -90, 0]) cylinder(r = 2.5, h = 50, $fn = 35); // Left side bracket screw hole
translate([101.1, 32 + 26, 55 - 4 - 25]) rotate([0, -90, 0]) cylinder(r2 = 2.5, r1 = 4.1, h = 3, $fn = 15);
translate([-0.3, 1, -1.2]) CubeAdjust(102, 54.25);
for (i = [0 : 9])
{
translate([20 + i, 6.8, -10]) cylinder(r = 3.5, h = 50); // left back mounthole cutout
}
}
} }
module PSU_Y_REINFORCEMENT() module PSU_Y_REINFORCEMENT()
{ {
difference() difference()
{
union() // base shape
{
translate([59.5, 0, -18]) cube([33, 6, 19]); // reinforcement plate
translate([73.5, 5, -18]) cube([5, 16, 19]); // vertical_reinforcement
}
union() // cutouts
{
translate([87.5, -8, -20]) rotate([0, 45, 0]) cube([10, 20, 10]); //corner cut
translate([52.5, -8, -20]) rotate([0, 45, 0]) cube([10, 20, 10]); //corner cut
translate([68.5, 20, -34]) rotate([45, 0, 0]) cube([15, 23, 20]); //vertical reinf cutout
translate([66.2, -0.2, -5]) cube([23.6, 0.4, 5.6]);
translate([68 + 1.8 + 2.6, -0.2, -7.7 - 5.6]) cube([11.2, 0.4, 5.6]);
translate([88, 8, -11.5]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.8, $fn = 30); //hole A
translate([68, 8, -11.5]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.8, $fn = 30); //hole B
translate([88, 8, -9.5]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.8, $fn = 30); //hole A
translate([68, 8, -9.5]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.8, $fn = 30); //hole B
translate([86.2, -10, -11.5]) cube([3.6, 20, 2]); // hole cut extension
translate([66.2, -10, -11.5]) cube([3.6, 20, 2]); // hole cut extension
}
}
}
module psu_main()
{ {
union() // base shape difference()
{ {
translate([ 59.5, 0, -18 ]) cube([ 33, 6, 19 ]); // reinforcement plate
translate([ 73.5, 5, -18 ]) cube([ 5, 16, 19 ]); // vertical_reinforcement
}
union () // cutouts
{
translate([ 87.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
translate([ 52.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut
translate([ 68.5, 20, -34 ]) rotate([ 45, 0, 0 ]) cube([ 15, 23, 20 ]); //vertical reinf cutout
translate([ 66.2, -0.2, -5])cube([23.6, 0.4, 5.6]);
translate([ 68 + 1.8 +2.6, -0.2, -7.7 -5.6])cube([11.2, 0.4, 5.6]);
translate([ 88, 8, -11.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
translate([ 68, 8, -11.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
translate([ 88, 8, -9.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A
translate([ 68, 8, -9.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B
translate([ 86.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension
}
}
}
module psu_main(){
difference()
{
union() union()
{ {
PSU_COVER(); PSU_COVER();
PSU_Y_REINFORCEMENT(); PSU_Y_REINFORCEMENT();
translate([85.5,4+15.6+0.5,39.1+13.5]) rotate([0,0,180]) nuttrap(); translate([85.5, 4 + 15.6 + 0.5, 39.1 + 13.5]) rotate([0, 0, 180]) nuttrap();
translate([49,4+15.6+0.5,39+13.5]) rotate([0,0,180]) nuttrap(); translate([49, 4 + 15.6 + 0.5, 39 + 13.5]) rotate([0, 0, 180]) nuttrap();
} }
translate([-5,-9,-30]) cube([150,10,100]); translate([-5, -9, -30]) cube([150, 10, 100]);
} }
} }
module upper_part() module upper_part()
{ {
difference() difference()
{ {
union() union()
{ {
psu_main(); psu_main();
translate([30,3.5,49.5]) cube([15,11,2.5]); translate([30, 3.5, 49.5]) cube([15, 11, 2.5]);
translate([45,3.5,1]) cube([15,11,2.5]); translate([45, 3.5, 1]) cube([15, 11, 2.5]);
} }
translate([-5,0,-20]) cube([120,3.5,120]); translate([-5, 0, -20]) cube([120, 3.5, 120]);
translate([37,9,39]) rotate([0,0,0]) m3_screw(); translate([37, 9, 39]) rotate([0, 0, 0]) m3_screw();
translate([14.5,8,25]) rotate([0,-90,0]) m3_screw(); translate([14.5, 8, 25]) rotate([0, -90, 0]) m3_screw();
translate([85.5,8,25]) rotate([0,90,0]) m3_screw(); translate([85.5, 8, 25]) rotate([0, 90, 0]) m3_screw();
translate([52,9,14.5]) rotate([0,180,0]) m3_screw(); translate([52, 9, 14.5]) rotate([0, 180, 0]) m3_screw();
//version //version
translate([73,7.5,1.5]) rotate([0,0,0]) linear_extrude(height = 0.6) translate([73, 7.5, 1.5]) rotate([0, 0, 0]) linear_extrude(height = 0.6)
{ text("R1",font = "helvetica:style=Bold", size=6, center=true); } { text("R1", font = "helvetica:style = Bold", size = 6, center = true); }
} }
} }
module lower_part() module lower_part()
{ {
difference() difference()
@ -217,101 +188,85 @@ module lower_part()
union() union()
{ {
difference() difference()
{ {
union() union()
{ {
psu_main(); // base cover psu_main(); // base cover
translate([50,0.5,40]) cube([40,3,13.8]); translate([50, 0.5, 40]) cube([40, 3, 13.8]);
translate([5,0.5,4]) cube([90,4,45]); translate([5, 0.5, 4]) cube([90, 4, 45]);
}
translate([-5,3.5,-20]) cube([120,100,120]); // cut
} }
translate([-5, 3.5, -20]) cube([120, 100, 120]); // cut
}
// frame side wall // frame side wall
translate([3.1,3,5]) cube([3,10,40]); translate([3.1, 3, 5]) cube([3, 10, 40]);
translate([5.1,3,20]) cube([3,10,10]); translate([5.1, 3, 20]) cube([3, 10, 10]);
// rear wall // rear wall
translate([93.9,3,5]) cube([3,10,40]); translate([93.9, 3, 5]) cube([3, 10, 40]);
translate([91.1,3,20]) cube([3,10,10]); translate([91.1, 3, 20]) cube([3, 10, 10]);
// switch side wall // switch side wall
translate([30,3,44.5]) cube([15,11,5]); translate([30, 3, 44.5]) cube([15, 11, 5]);
// nut inserts // nut inserts
translate([32,1,44]) cube([10,1,5]); translate([32, 1, 44]) cube([10, 1, 5]);
translate([3,1,20]) cube([5,11,10]); translate([3, 1, 20]) cube([5, 11, 10]);
translate([92,1,20]) cube([5,11,10]); translate([92, 1, 20]) cube([5, 11, 10]);
translate([45,2,3.5]) cube([15,11,5]); translate([45, 2, 3.5]) cube([15, 11, 5]);
translate([46.5,1,3.5]) cube([10,2,5]); translate([46.5, 1, 3.5]) cube([10, 2, 5]);
// floor reinforcement // floor reinforcement
difference() difference()
{ {
translate([5,0.5,4]) cube([90,3.5,45]); translate([5, 0.5, 4]) cube([90, 3.5, 45]);
translate([53.5,-1,34]) cube([27.5,8,20]); translate([53.5, -1, 34]) cube([27.5, 8, 20]);
} }
} }
// rear side nut // rear side nut
translate([4.5,-3.4,22.2]) cube([2.3,15,5.6]); translate([4.5, -3.4, 22.2]) cube([2.3, 15, 5.6]);
translate([-4,8,25 ]) rotate([0,90,0]) cylinder(h=15,r=1.6, $fn=30 ); translate([-4, 8, 25]) rotate([0, 90, 0]) cylinder(h = 15, r = 1.6, $fn = 30);
translate([-2,8,25 ]) rotate([0,90,0]) cylinder(h=4,r=3.1, $fn=30 ); translate([-2, 8, 25]) rotate([0, 90, 0]) cylinder(h = 4, r = 3.1, $fn = 30);
// frame side nut
translate([93,-3.4,22.2]) cube([2.3,15,5.6]);
translate([88,8,25 ]) rotate([0,90,0]) cylinder(h=15,r=1.6, $fn=30 );
translate([98,8,25 ]) rotate([0,90,0]) cylinder(h=4,r=3.1, $fn=30 );
// edges // frame side nut
translate([0,15,38]) rotate([45,0,0]) cube([15,15,15]); translate([93, -3.4, 22.2]) cube([2.3, 15, 5.6]);
translate([90,15,38]) rotate([45,0,0]) cube([15,15,15]); translate([88, 8, 25]) rotate([0, 90, 0]) cylinder(h = 15, r = 1.6, $fn = 30);
translate([0,15,-9]) rotate([45,0,0]) cube([15,15,15]); translate([98, 8, 25]) rotate([0, 90, 0]) cylinder(h = 4, r = 3.1, $fn = 30);
translate([90,15,-9]) rotate([45,0,0]) cube([15,15,15]);
translate([25,6,38]) rotate([0,0,45]) cube([15,15,15]);
translate([49.5,6,38]) rotate([0,0,45]) cube([15,15,15]);
translate([41,6,3]) rotate([0,0,45]) cube([15,15,15]);
translate([64,6,3]) rotate([0,0,45]) cube([15,15,15]);
// switch side nut // edges
translate([31.5+2.8,0,47.5-2]) cube([5.6,9+2.8,2.3]); translate([0, 15, 38]) rotate([45, 0, 0]) cube([15, 15, 15]);
translate([37,9,43 ]) rotate([0,0,90]) cylinder(h=15,r=1.6, $fn=30 ); translate([90, 15, 38]) rotate([45, 0, 0]) cube([15, 15, 15]);
translate([0, 15, -9]) rotate([45, 0, 0]) cube([15, 15, 15]);
// reinforcement side nut translate([90, 15, -9]) rotate([45, 0, 0]) cube([15, 15, 15]);
translate([52,9,-5 ]) rotate([0,0,90]) cylinder(h=15,r=1.6, $fn=30 ); translate([25, 6, 38]) rotate([0, 0, 45]) cube([15, 15, 15]);
translate([46+2.8,0,5]) cube([5.6,9+2.8,2.3]); translate([49.5, 6, 38]) rotate([0, 0, 45]) cube([15, 15, 15]);
translate([41, 6, 3]) rotate([0, 0, 45]) cube([15, 15, 15]);
// cleanup translate([64, 6, 3]) rotate([0, 0, 45]) cube([15, 15, 15]);
translate([-5,-8,-20]) cube([120,10,120]);
// switch side nut
// nut edges translate([31.5 + 2.8, 0, 47.5 - 2]) cube([5.6, 9 + 2.8, 2.3]);
translate([46+2.8,1.5,4]) rotate([45,0,0]) cube([5.6,3,3]); translate([37, 9, 43]) rotate([0, 0, 90]) cylinder(h = 15, r = 1.6, $fn = 30);
translate([31.5+2.8,1.5,44.5]) rotate([45,0,0]) cube([5.6,3,3]);
translate([5.5,-0.5,22.2]) rotate([0,0,45]) cube([3,3,5.6]); // reinforcement side nut
translate([94,-0.5,22.2]) rotate([0,0,45]) cube([3,3,5.6]); translate([52, 9, -5]) rotate([0, 0, 90]) cylinder(h = 15, r = 1.6, $fn = 30);
translate([46 + 2.8, 0, 5]) cube([5.6, 9 + 2.8, 2.3]);
//version // cleanup
translate([10,3.6,20]) rotate([90,-90,180]) linear_extrude(height = 0.8) translate([-5, -8, -20]) cube([120, 10, 120]);
{ text("R1",font = "helvetica:style=Bold", size=6, center=true); }
// nut edges
translate([46 + 2.8, 1.5, 4]) rotate([45, 0, 0]) cube([5.6, 3, 3]);
translate([31.5 + 2.8, 1.5, 44.5]) rotate([45, 0, 0]) cube([5.6, 3, 3]);
translate([5.5, -0.5, 22.2]) rotate([0, 0, 45]) cube([3, 3, 5.6]);
translate([94, -0.5, 22.2]) rotate([0, 0, 45]) cube([3, 3, 5.6]);
//version
translate([10, 3.6, 20]) rotate([90, -90, 180]) linear_extrude(height = 0.8)
{ text("R1", font = "helvetica:style = Bold", size = 6, center = true); }
} }
} }
translate([0, 0, -3.5]) rotate([90, 0, 0]) upper_part();
translate([0,0,-3.5]) rotate([90,0,0]) upper_part(); translate([100, 23, -2]) rotate([90, 0, 180]) lower_part();
translate([100,23,-2]) rotate([90,0,180]) lower_part();

View File

@ -9,68 +9,74 @@ use <polyholes.scad>
bearing_diameter = 14.95; bearing_diameter = 14.95;
module horizontal_bearing_base(bearings=1){ module horizontal_bearing_base(bearings = 1)
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true); {
translate(v = [0, 0, 6]) cube(size = [24, 8 + bearings * 25, 12], center = true);
} }
module horizontal_bearing_holes(bearings=1){ module horizontal_bearing_holes(bearings = 1)
cutter_lenght = 10+bearings*25; {
one_holder_lenght = 8+25; cutter_lenght = 10 + bearings * 25;
holder_lenght = 8+bearings*25; one_holder_lenght = 8 + 25;
holder_lenght = 8 + bearings * 25;
// Main bearing cut
difference(){ // Main bearing cut
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50); difference()
// Bearing retainers {
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true); translate(v = [0, 0, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, -cutter_lenght / 2]) cylinder(h = cutter_lenght, r = (bearing_diameter / 2) + 0.2, $fn = 50);
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true); // 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] ){ // Ziptie cutouts
// For easier positioning I move them by half of one ziptie_cut_ofset = 0;
// bearing holder then add each bearign lenght and then center again for (i = [0 : bearings - 1])
translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){ {
union(){ // For easier positioning I move them by half of one
translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); // bearing holder then add each bearign lenght and then center again
translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); translate(v = [0, -holder_lenght / 2, 0]) translate(v = [0, one_holder_lenght / 2 + i * 25, 0]) difference()
} {
translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50); union()
} {
} translate(v = [0, 2 - 8.5, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 4, r = 11.5, $fn = 50);
translate(v = [0, 2 + 8.5, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 4, r = 11.5, $fn = 50);
} }
translate(v = [0, 12, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 24, r = 9, $fn = 50);
module horizontal_bearing_holes_nozip(bearings=1){ }
cutter_lenght = 10+bearings*25; }
one_holder_lenght = 8+25;
holder_lenght = 8+bearings*25;
// Main bearing cut
difference(){
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
// Bearing retainers
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
}
} }
module horizontal_bearing_holes_nozip(bearings = 1)
{
cutter_lenght = 10 + bearings * 25;
one_holder_lenght = 8 + 25;
holder_lenght = 8 + bearings * 25;
// Main bearing cut
difference()
{
translate(v = [0, 0, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, -cutter_lenght / 2]) cylinder(h = cutter_lenght, r = (bearing_diameter / 2) + 0.2, $fn = 50);
// Bearing retainers
translate(v = [0, 1 - holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true);
translate(v = [0, -1 + holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true);
}
}
thinwall = 3; thinwall = 3;
bearing_size = bearing_diameter + 2 * thinwall; bearing_size = bearing_diameter + 2 * thinwall;
module vertical_bearing_base(){ module vertical_bearing_base()
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true); {
cylinder(h = 58, r=bearing_size/2, $fn = 90); translate(v = [-2 - bearing_size / 4, 0, 29]) cube(size = [4 + bearing_size / 2, bearing_size, 58], center = true);
cylinder(h = 58, r = bearing_size / 2, $fn = 90);
} }
module vertical_bearing_holes(){ module vertical_bearing_holes()
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(14.80/2)); {
translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5); translate(v = [0, 0, -1]) poly_cylinder(h = 62, r = (14.80 / 2));
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]); translate(v = [0, 0, -0.1]) cylinder(r1 = (bearing_diameter / 2) + 0.7, r2 = (bearing_diameter / 2), h = 0.5);
rotate(a = [0, 0, -40]) translate(v = [bearing_diameter / 2 - 2.9, -0.5, 0.5]) cube(size = [thinwall * 2, 1, 62]);
} }
//difference(){ //difference(){
@ -80,4 +86,4 @@ vertical_bearing_holes();
//horizontal_bearing_test(); //horizontal_bearing_test();
//horizontal_bearing_base(1); //horizontal_bearing_base(1);
//horizontal_bearing_holes(1); //horizontal_bearing_holes(1);
//horizontal_bearing_holes_nozip(1); //horizontal_bearing_holes_nozip(1);

View File

@ -9,77 +9,74 @@
module zip_main() module zip_main()
{ {
// ziptie cut for upper cables // ziptie cut for upper cables
translate([-10,-30.5,24]) cube([20,2,3]); translate([-10, -30.5, 24]) cube([20, 2, 3]);
translate([-6,-30.5,24]) cube([2,20,3]); translate([-6, -30.5, 24]) cube([2, 20, 3]);
translate([5,-30.5,24]) cube([2,20,3]); translate([5, -30.5, 24]) cube([2, 20, 3]);
difference() difference()
{ {
translate([0.5,-26,24]) rotate([0,0,90]) cylinder( h=3, r=6, $fn=30 ); translate([0.5, -26, 24]) rotate([0, 0, 90]) cylinder(h = 3, r = 6, $fn = 30);
translate([0.5,-26,23]) rotate([0,0,90]) cylinder( h=5, r=4.6, $fn=30 ); translate([0.5, -26, 23]) rotate([0, 0, 90]) cylinder(h = 5, r = 4.6, $fn = 30);
translate([-10,-35.5,23]) cube([20,5,5]); translate([-10, -35.5, 23]) cube([20, 5, 5]);
translate([-10,-27,23]) cube([20,10,5]); translate([-10, -27, 23]) cube([20, 10, 5]);
} }
} }
module zip_ext_cables() module zip_ext_cables()
{ {
// ziptie cut for lower cables // ziptie cut for lower cables
translate([-10, -25.5, 24]) cube([20, 2, 3]);
translate([-10,-25.5,24]) cube([20,2,3]); translate([-4.5, -45.5, 24]) cube([2, 20, 3]);
translate([-4.5,-45.5,24]) cube([2,20,3]); translate([3.5, -45.5, 24]) cube([2, 20, 3]);
translate([3.5,-45.5,24]) cube([2,20,3]);
} }
module cable_holder() module cable_holder()
{ {
difference() difference()
{ {
union() union()
{ {
// base block // base block
translate([0.5,-26,24]) rotate([0,0,90]) cylinder( h=39.5, r=5, $fn=30 ); translate([0.5, -26, 24]) rotate([0, 0, 90]) cylinder(h = 39.5, r = 5, $fn = 30);
translate([-4.5,-26,24]) cube([10,9,39.5]); translate([-4.5, -26, 24]) cube([10, 9, 39.5]);
translate([-3,-35,24]) cube([7,10,39.5]); translate([-3, -35, 24]) cube([7, 10, 39.5]);
} }
// screw // screw
translate([0.5,-27,19.5]) rotate([0,0,90]) cylinder( h=42, r=1.75, $fn=30 ); translate([0.5, -27, 19.5]) rotate([0, 0, 90]) cylinder(h = 42, r = 1.75, $fn = 30);
translate([0.5,-27,19.5+41]) rotate([0,0,90]) cylinder( h=5, r=3.15, $fn=30 ); translate([0.5, -27, 19.5 + 41]) rotate([0, 0, 90]) cylinder(h = 5, r = 3.15, $fn = 30);
// upper cables cut // upper cables cut
translate([0.5,-18,23]) rotate([0,5,90]) cylinder( h=41, r=5, $fn=30 ); translate([0.5, -18, 23]) rotate([0, 5, 90]) cylinder(h = 41, r = 5, $fn = 30);
translate([-10,-20,23]) rotate([-5,0,0]) cube([20,9,45]); translate([-10, -20, 23]) rotate([-5, 0, 0]) cube([20, 9, 45]);
// lower angled cut
translate([-10,-44,23]) rotate([-4,0,0]) cube([20,9,45]);
// wires
translate([-0.8,-35,23]) rotate([0,4,90]) cylinder( h=41, r=1.25, $fn=30 );
translate([1.8,-35,23]) rotate([0,4,90]) cylinder( h=41, r=1.25, $fn=30 );
// lower angled cut
translate([-10, -44, 23]) rotate([-4, 0, 0]) cube([20, 9, 45]);
// wires
translate([-0.8, -35, 23]) rotate([0, 4, 90]) cylinder(h = 41, r = 1.25, $fn = 30);
translate([1.8, -35, 23]) rotate([0, 4, 90]) cylinder(h = 41, r = 1.25, $fn = 30);
// ziptie openings // ziptie openings
translate([0,0,5]) zip_main(); translate([0, 0, 5]) zip_main();
translate([0,0,18]) zip_main(); translate([0, 0, 18]) zip_main();
translate([0,0,32]) zip_main(); translate([0, 0, 32]) zip_main();
translate([0,0,11]) zip_ext_cables(); translate([0, 0, 11]) zip_ext_cables();
translate([0,0,25]) zip_ext_cables(); translate([0, 0, 25]) zip_ext_cables();
// round edge cut // round edge cut
translate([0,1.8,-1.5]) translate([0, 1.8, -1.5])
difference() difference()
{ {
translate([-10,-32,63]) rotate([0,90,0]) cylinder( h=41, r=4, $fn=30 ); translate([-10, -32, 63]) rotate([0, 90, 0]) cylinder(h = 41, r = 4, $fn = 30);
translate([-10,-32,63]) rotate([0,90,0]) cylinder( h=41, r=2, $fn=30 ); translate([-10, -32, 63]) rotate([0, 90, 0]) cylinder(h = 41, r = 2, $fn = 30);
translate([-10,-36,53]) rotate([0,0,0]) cube([20,9,10]); translate([-10, -36, 53]) rotate([0, 0, 0]) cube([20, 9, 10]);
translate([-10,-32,58]) rotate([0,0,0]) cube([20,9,10]); translate([-10, -32, 58]) rotate([0, 0, 0]) cube([20, 9, 10]);
} }
} }
} }
cable_holder(); cable_holder();

View File

@ -5,102 +5,96 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module m3head() module m3head()
{ {
intersection() intersection()
{ {
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 30); // head cut
translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true);
} }
translate([30,5,17-4]) cube([3.4,3.4,1], center=true); translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true);
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 30); // head cut
} }
module m3nuthead() module m3nuthead()
{ {
intersection() intersection()
{ {
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=6); // head cut translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 6); // head cut
translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true);
} }
translate([30,5,17-4]) cube([3.4,3.4,1], center=true); translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true);
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=6); // head cut translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 6); // head cut
} }
module grill() module grill()
{ {
difference() difference()
{ {
translate([24,-5,-17]) cylinder( h=17, r=20.4, $fn=50 ); translate([24, -5, -17]) cylinder(h = 17, r = 20.4, $fn = 50);
translate([24,-5,-21]) cylinder( h=23, r=19, $fn=50 ); translate([24, -5, -21]) cylinder(h = 23, r = 19, $fn = 50);
translate([23,-30,-30]) cube([30,60,32]); translate([23, -30, -30]) cube([30, 60, 32]);
translate([-11,-30,-30]) cube([30,60,32]); translate([-11, -30, -30]) cube([30, 60, 32]);
translate([-19,-20,-30]) cube([60,60,32]); translate([-19, -20, -30]) cube([60, 60, 32]);
} }
translate([23,-24.65,-17]) cylinder( h=17, r=0.72, $fn=50 ); translate([23, -24.65, -17]) cylinder(h = 17, r = 0.72, $fn = 50);
translate([19,-24.01,-17]) cylinder( h=17, r=0.72, $fn=50 ); translate([19, -24.01, -17]) cylinder(h = 17, r = 0.72, $fn = 50);
} }
module pinda_holder() module pinda_holder()
{ {
difference() difference()
{
union()
{ {
union() translate([-32, -45, -20]) cube([18, 15, 20]);
{ translate([-26, -18, -3]) cube([9, 11, 3]);
translate([-32,-45,-20]) cube([18,15,20]); translate([-23, -38, -3]) cube([6, 15, 3]);
translate([-26,-18,-3]) cube([9,11,3]);
translate([-23,-38,-3]) cube([6,15,3]);
}
translate([-23,-5,-12]) rotate([90,0,0]) cylinder( h=50, r=4.05, $fn=30 );
translate([-35,-38.5,-5]) rotate([0,90,0]) cylinder( h=25, r=1.6, $fn=30 );
translate([-33,-38.5,-5]) rotate([0,90,0]) cylinder( h=6, r=3.1, $fn=30 );
translate([-35,-52.5,-24]) rotate([0,0,45]) cube([10,10,30]);
translate([-36.5,-39,-25]) rotate([0,0,45]) cube([20,10,30]);
translate([-11,-36,-26]) rotate([0,0,50]) cube([10,10,23]);
translate([-22.5,-30,-20]) rotate([0,0,45]) cube([10,8,23]);
translate([-35,-29,-30]) rotate([45,0,0]) cube([30,10,10]);
translate([-35,-46,-30]) rotate([45,0,0]) cube([30,10,10]);
translate([-41,-52,-19.5]) rotate([0,45,0]) cube([12,30,10]);
translate([-12.5,-53,-21]) rotate([0,0,45]) cube([10,10,30]);
translate([-10,-54,-25]) rotate([0,0,65]) cube([14.5,10,30]);
translate([-19.6,-41.5,-8.1]) cube([2.4,6,10]);
translate([-24,-48,-10]) cube([1.4,20,12]);
translate([-23.7,-48,-10]) rotate([0,-5,0]) cube([1.4,20,12]);
translate([-25.5,-48,-0]) rotate([0,45,0]) cube([3,30,3]);
translate([-17.5,-37,-22]) cube([5,7,5]);
// hook cut
translate([-23,-20,-3.5]) cube([6,8,4.5]);
translate([-26,-10,-3.5]) rotate([0,0,45]) cube([5,5,5]);
translate([-26,-23,-3.5]) rotate([0,0,45]) cube([5,5,5]);
translate([-29,-34,-16]) cube([1,1,15]);
translate([-29,-43,-16]) cube([1,1,15]);
translate([-17,-33,-16]) cube([1,1,15]);
} }
} translate([-23, -5, -12]) rotate([90, 0, 0]) cylinder(h = 50, r = 4.05, $fn = 30);
translate([-35, -38.5, -5]) rotate([0, 90, 0]) cylinder(h = 25, r = 1.6, $fn = 30);
translate([-33, -38.5, -5]) rotate([0, 90, 0]) cylinder(h = 6, r = 3.1, $fn = 30);
translate([-35, -52.5, -24]) rotate([0, 0, 45]) cube([10, 10, 30]);
translate([-36.5, -39, -25]) rotate([0, 0, 45]) cube([20, 10, 30]);
translate([-11, -36, -26]) rotate([0, 0, 50]) cube([10, 10, 23]);
translate([-22.5, -30, -20]) rotate([0, 0, 45]) cube([10, 8, 23]);
translate([-35, -29, -30]) rotate([45, 0, 0]) cube([30, 10, 10]);
translate([-35, -46, -30]) rotate([45, 0, 0]) cube([30, 10, 10]);
translate([-41, -52, -19.5]) rotate([0, 45, 0]) cube([12, 30, 10]);
translate([-12.5, -53, -21]) rotate([0, 0, 45]) cube([10, 10, 30]);
translate([-10, -54, -25]) rotate([0, 0, 65]) cube([14.5, 10, 30]);
translate([-19.6, -41.5, -8.1]) cube([2.4, 6, 10]);
translate([-24, -48, -10]) cube([1.4, 20, 12]);
translate([-23.7, -48, -10]) rotate([0, -5, 0]) cube([1.4, 20, 12]);
translate([-25.5, -48, -0]) rotate([0, 45, 0]) cube([3, 30, 3]);
translate([-17.5, -37, -22]) cube([5, 7, 5]);
// hook cut
translate([-23, -20, -3.5]) cube([6, 8, 4.5]);
translate([-26, -10, -3.5]) rotate([0, 0, 45]) cube([5, 5, 5]);
translate([-26, -23, -3.5]) rotate([0, 0, 45]) cube([5, 5, 5]);
translate([-29, -34, -16]) cube([1, 1, 15]);
translate([-29, -43, -16]) cube([1, 1, 15]);
translate([-17, -33, -16]) cube([1, 1, 15]);
}
}
module extruder_body() module extruder_body()
{ {
difference() difference()
{ {
union() union()
{ {
// cables hook above fan // cables hook above fan
difference() difference()
{ {
translate([22.5,-3,-17]) cube([9,8.75,17]); translate([22.5, -3, -17]) cube([9, 8.75, 17]);
translate([33,-0.0,-21]) rotate([0,0,45]) cube([12,12,22]); translate([33, -0.0, -21]) rotate([0, 0, 45]) cube([12, 12, 22]);
} }
difference() difference()
@ -108,284 +102,257 @@ difference()
// base body shape // base body shape
union() union()
{ {
translate([-17,-36.5,-30.5]) cube([42,86.5,30.5]); translate([-17, -36.5, -30.5]) cube([42, 86.5, 30.5]);
translate([16,-38.5,-20]) rotate([0,0,45]) cube([3,3,20]); translate([16, -38.5, -20]) rotate([0, 0, 45]) cube([3, 3, 20]);
} }
translate([22.5,-3,-20]) cube([9,8.75,20]); translate([22.5, -3, -20]) cube([9, 8.75, 20]);
//opening to pulleys from motor side //opening to pulleys from motor side
translate([4,27,-33]) rotate([0,0,0]) cylinder( h=40, r=12, $fn=30 ); translate([4, 27, -33]) rotate([0, 0, 0]) cylinder(h = 40, r = 12, $fn = 30);
// idler cut // idler cut
difference() difference()
{ {
translate([-39,15,-33.5]) cube([44,24,32]); translate([-39, 15, -33.5]) cube([44, 24, 32]);
difference() difference()
{ {
translate([-12,5.5,-4.5]) rotate([0,0,30]) cube([12,10,3]); translate([-12, 5.5, -4.5]) rotate([0, 0, 30]) cube([12, 10, 3]);
translate([-39,15,-36]) cube([44,24,32]); translate([-39, 15, -36]) cube([44, 24, 32]);
} }
} }
translate([-20,9.5,-36.5]) rotate([0,0,30])cube([20,20,32]); translate([-20, 9.5, -36.5]) rotate([0, 0, 30]) cube([20, 20, 32]);
translate([-26,29,-36.5]) cube([20,22,32]); translate([-26, 29, -36.5]) cube([20, 22, 32]);
translate([-18,24,-36.5]) rotate([0,0,45]) cube([20,20,32]); translate([-18, 24, -36.5]) rotate([0, 0, 45]) cube([20, 20, 32]);
translate([-26,22,-33.5]) rotate([0,0,45]) cube([20,20,32]); translate([-26, 22, -33.5]) rotate([0, 0, 45]) cube([20, 20, 32]);
translate([-26,9,-33.5]) rotate([0,0,30]) cube([20,20,32]); translate([-26, 9, -33.5]) rotate([0, 0, 30]) cube([20, 20, 32]);
} }
// bottom pulley space // bottom pulley space
difference() difference()
{ {
translate([-4,15,-30.5]) cube([26,6.5,30.5]); translate([-4, 15, -30.5]) cube([26, 6.5, 30.5]);
translate([-8,16.5,-36]) rotate([0,0,45]) cube([10,10,32]); translate([-8, 16.5, -36]) rotate([0, 0, 45]) cube([10, 10, 32]);
} }
translate([-8,15,-4]) cube([30,6.5,4]); translate([-8, 15, -4]) cube([30, 6.5, 4]);
translate([15.5,-44,-17]) cube([5,8,17]); translate([15.5, -44, -17]) cube([5, 8, 17]);
// idler tension screw heads // idler tension screw heads
translate([3,18.5,-25]) rotate([0,90,0]) cylinder( h=22, r=3,r2=5, $fn=30 ); translate([3, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 22, r = 3, r2 = 5, $fn = 30);
translate([3,18.5,-10]) rotate([0,90,0]) cylinder( h=22, r=3,r2=5, $fn=30 ); translate([3, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 22, r = 3, r2 = 5, $fn = 30);
// filament entry to hotend // filament entry to hotend
difference() difference()
{ {
translate([0,10.5,-26]) rotate([0,0,45]) cube([9,9,15]); translate([0, 10.5, -26]) rotate([0, 0, 45]) cube([9, 9, 15]);
translate([-5,25,-17]) rotate([30,0,0]) cube([10,10,10]); translate([-5, 25, -17]) rotate([30, 0, 0]) cube([10, 10, 10]);
translate([-5,18,-30]) rotate([-45,0,0]) cube([10,10,10]); translate([-5, 18, -30]) rotate([-45, 0, 0]) cube([10, 10, 10]);
translate([-13,14,-26]) cube([10,12,20]); translate([-13, 14, -26]) cube([10, 12, 20]);
} }
// filament entry
// filament entry
difference() difference()
{ {
translate([0,30.5,-26]) rotate([0,0,45]) cube([12,12,21]); translate([0, 30.5, -26]) rotate([0, 0, 45]) cube([12, 12, 21]);
translate([-10,19,-13]) rotate([-40,0,0]) cube([20,10,25]); translate([-10, 19, -13]) rotate([-40, 0, 0]) cube([20, 10, 25]);
translate([-5,23,-27]) rotate([-45,0,0]) cube([10,10,10]); translate([-5, 23, -27]) rotate([-45, 0, 0]) cube([10, 10, 10]);
translate([-14,30,-29]) cube([10,12,25]); translate([-14, 30, -29]) cube([10, 12, 25]);
translate([3,30,-29]) cube([10,12,30]); translate([3, 30, -29]) cube([10, 12, 30]);
translate([-5,45,-29]) cube([10,12,25]); translate([-5, 45, -29]) cube([10, 12, 25]);
} }
} }
translate([4,27,-33]) rotate([0,0,0]) cylinder( h=4, r=15, $fn=30 ); translate([4, 27, -33]) rotate([0, 0, 0]) cylinder(h = 4, r = 15, $fn = 30);
translate([4,27,-32]) rotate([0,0,0]) cylinder( h=4, r=13, $fn=30 ); translate([4, 27, -32]) rotate([0, 0, 0]) cylinder(h = 4, r = 13, $fn = 30);
// side entry to pulleys // side entry to pulleys
translate([5,32,-18]) rotate([0,90,0]) cylinder( h=40, r=8, $fn=6 ); translate([5, 32, -18]) rotate([0, 90, 0]) cylinder(h = 40, r = 8, $fn = 6);
translate([18,32,-18]) rotate([0,90,0]) cylinder( h=10, r1=8, r2=11, $fn=6 ); translate([18, 32, -18]) rotate([0, 90, 0]) cylinder(h = 10, r1 = 8, r2 = 11, $fn = 6);
// cover cutout // cover cutout
translate([-18,-39,-49]) cube([44,45,32]); translate([-18, -39, -49]) cube([44, 45, 32]);
// hotend cooling tube input
// hotend cooling tube input translate([12, -21.5, -20]) rotate([0, 90, 0]) cylinder(h = 10, r2 = 20.5, r1 = 12, $fn = 80);
translate([12,-21.5,-20]) rotate([0,90,0]) cylinder( h=10, r2=20.5, r1=12, $fn=80 ); translate([1, -20.5, -20.5]) rotate([0, 84, 0]) cylinder(h = 25, r2 = 17.5, r1 = 12, $fn = 80);
translate([1,-20.5,-20.5]) rotate([0,84,0]) cylinder( h=25, r2=17.5, r1=12, $fn=80 ); translate([-10, -35, -40.55]) cube([30, 26, 32]);
translate([-10,-35,-40.55]) cube([30,26,32]); translate([0, -35, -38.8]) cube([20, 14, 32]);
translate([0,-35,-38.8]) cube([20,14,32]);
// hotend cooling tube OUTPUT
// hotend cooling tube OUTPUT difference()
difference() {
{ translate([-28, -35, -34]) rotate([0, 15, 0]) cube([44, 26, 32]);
translate([-28,-35,-34]) rotate([0,15,0]) cube([44,26,32]); translate([-18, -53.5, -30]) rotate([0, 0, 65]) cube([20, 20, 32]);
translate([-18,-53.5,-30]) rotate([0,0,65]) cube([20,20,32]); }
translate([-10, -35, -17.5]) rotate([0, 0, 0]) cube([10, 26, 12]);
// e3d nozzle cut
translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 60, r = 11.1, $fn = 50);
translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 26, r = 11.5, $fn = 50);
translate([0, -3.4, -17]) rotate([90, 0, 0]) cylinder(h = 10, r = 8.05, $fn = 50);
translate([0, 8, -17]) rotate([90, 0, 0]) cylinder(h = 5.6, r = 8.05, $fn = 50);
translate([0, 8.9, -17]) rotate([90, 0, 0]) cylinder(h = 3, r = 9, $fn = 50);
translate([0, 4, -17]) rotate([90, 0, 0]) cylinder(h = 8, r = 6.05, $fn = 50);
translate([0, 2.5, -17]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 8.05, r2 = 7, $fn = 50);
// filament PTFE and entry from hotend
translate([0, 10, -17]) rotate([90, 0, 0]) cylinder(h = 10, r = 3.5, $fn = 50);
translate([0, 30, -17]) rotate([90, 0, 0]) cylinder(h = 80, r = 2.1, $fn = 50);
translate([0, 18, -17]) rotate([90, 0, 0]) cylinder(h = 12, r1 = 2, r2 = 4.3, $fn = 50);
translate([0, 16, -17]) rotate([110, 0, 0]) cylinder(h = 13, r1 = 2, r2 = 4, $fn = 50);
translate([0, 16, -17]) rotate([100, 0, 0]) cylinder(h = 13, r1 = 2, r2 = 4, $fn = 50);
translate([0, 80, -17]) rotate([90, 0, 0]) cylinder(h = 80, r = 1.0, $fn = 50);
// upper PTFE housing
translate([0, 50.8, -17]) rotate([90, 0, 0]) cylinder(h = 4, r = 2.1, $fn = 50);
translate([0, 49, -17]) rotate([90, 0, 0]) cylinder(h = 4.5, r = 1.5, $fn = 50);
translate([0, 51, -17]) rotate([90, 0, 0]) cylinder(h = 22, r = 1.1, $fn = 50);
translate([0, 41, -17]) rotate([90, 0, 0]) cylinder(h = 5, r1 = 2, r2 = 1, $fn = 50);
translate([1, 46.5, -17.5]) cube([2, 4, 1]);
translate([1, 48, -17.5]) rotate([-30, 0, 0]) cube([2, 4, 1]);
translate([0, 10, -17]) rotate([90, 0, 0]) cylinder(h = 3, r = 7, $fn = 50);
// motor screws
translate([-11.5, 11.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50);
translate([19.5, 11.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50);
translate([-11.5, 42.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50);
translate([19.5, 42.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50);
translate([-11.5, 11.5, -3.75]) rotate([0, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 50);
translate([19.5, 11.5, -3.75]) rotate([0, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 50);
translate([-11.5, 42.5, -3]) rotate([0, 0, 0]) cylinder(h = 4, r = 3.1, $fn = 50);
translate([19.5, 42.5, -4.5]) rotate([0, 0, 0]) cylinder(h = 5, r1 = 1.6, r2 = 2.4, $fn = 50);
// better printing
translate([-10.5, 6.5, -17]) m3head();
translate([-41.5, 6.5, -17]) m3head();
translate([-41.5, 37.5, -16.2]) m3head();
translate([-13, -2, -26]) m3nuthead();
translate([-8, 16.5, -33.5]) rotate([0, 0, 45]) cube([10, 10, 32]);
translate([-18, 16.5, -33.5]) cube([10, 10, 32]);
// hold together screws
translate([-20.5, -3.2, -14]) cube([12, 5.6, 2.1]);
translate([-20.5, -3.2, -5]) cube([12, 5.6, 2.1]);
translate([-13.2, -3.2, -14.3]) cube([3.4, 5.6, 2]);
translate([-13.2, -2.2, -14.6]) cube([3.4, 3.4, 2]);
translate([-13.2, -3.2, -5.3]) cube([3.4, 5.6, 2.3]);
translate([-13.2, -2.2, -5.6]) cube([3.4, 3.4, 2.3]);
translate([-11.5, -0.5, -35]) cylinder(h = 65, r = 1.65, $fn = 50);
translate([-11.5, -0.5, -2]) cylinder(h = 5, r1 = 1.65, r2 = 2.2, $fn = 50);
translate([11.5, -0.5, -30]) cylinder(h = 60, r = 1.65, $fn = 50);
translate([11.5, -0.5, -3]) cylinder(h = 5, r1 = 1.65, r2 = 2.2, $fn = 50);
translate([11.5, -0.5, -16]) cylinder(h = 5, r1 = 3.5, r2 = 3.1, $fn = 6);
translate([11.5, -0.5, -21]) cylinder(h = 7, r = 3.5, $fn = 6);
// idler tension screws
translate([9, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 21, r = 2.7, $fn = 30);
translate([-18, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 30);
translate([19, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 10, r = 4, $fn = 30);
translate([9, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 21, r = 2.7, $fn = 30);
translate([-18, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 30);
translate([19, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 10, r = 4, $fn = 30);
// fan cut and screws
translate([20.5, -41.5, -30]) cube([15, 40, 40]);
translate([6, -5.5, -4]) rotate([0, 90, 0]) cylinder(h = 15, r = 1.4, $fn = 30);
translate([12, -37.5, -4]) rotate([0, 90, 0]) cylinder(h = 10, r = 1.4, $fn = 30);
translate([12, -37.5, -4]) rotate([0, 90, 0]) cylinder(h = 3, r = 1.6, $fn = 30);
translate([19, -5.5, -4]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30);
translate([19, -37.5, -4]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30);
// extruder cover nut
translate([17, 3, -25]) rotate([0, 0, 0]) cylinder(h = 19, r = 1.7, $fn = 30);
translate([17, 3, -5]) rotate([0, 0, 0]) cylinder(h = 6, r = 3.5, $fn = 6);
translate([17, 3, -10]) rotate([0, 0, 0]) cylinder(h = 6, r1 = 3.1, r2 = 3.6, $fn = 6);
// cable guide above fan
difference()
{
translate([20.5, -2.5, -25]) cube([4, 5, 30]);
translate([19, -1.5, -25]) rotate([0, 0, 60]) cube([5, 5, 30]);
}
// corners
translate([25, 43, -40]) rotate([0, 0, 45]) cube([10, 10, 50]);
translate([-18, 43, -40]) rotate([0, 0, 45]) cube([10, 10, 50]);
// filament senzor
translate([2.5, 40, -25.2]) cube([3, 11, 22.4]);
translate([6.5, 51, -3.9]) rotate([90, 0, 0]) cylinder(h = 11, r = 3.1, $fn = 30);
difference()
{
translate([3.5, 40, -7]) cube([6, 11, 12]);
translate([6, 40, -7]) rotate([0, 45, 0]) cube([5, 12, 12]);
}
translate([3.5, 40, -10.5]) rotate([0, -45, 0]) cube([2, 12, 5]);
translate([0, 40, -7]) cube([4, 11, 5]);
translate([1.5, 40, -25.2]) cube([4, 11, 5]);
translate([1.8, 40, -21]) cube([4, 11, 8]);
translate([0, 52.3, -21]) rotate([50, 0, 0]) cube([4, 2, 5]);
// filament senzor mounting screw
translate([3, 45, -9]) rotate([0, 90, 0]) cylinder(h = 12, r = 1.4, $fn = 30);
translate([5, 45, -9]) rotate([0, 90, 0]) cylinder(h = 4, r = 1.6, r2 = 1.5, $fn = 30);
translate([8.5, 45, -9]) rotate([0, 90, 0]) cylinder(h = 1, r = 1.6, r2 = 1.4, $fn = 30);
translate([-7, 45, -9]) rotate([0, 90, 0]) cylinder(h = 13, r = 1.4, $fn = 30);
translate([-10, 45, -9]) rotate([0, 90, 0]) cylinder(h = 13, r = 3.3, $fn = 30);
// filament sensor cover screws
translate([12, 51, -12]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.4, $fn = 30);
translate([12, 51, -12]) rotate([90, 0, 0]) cylinder(h = 4, r1 = 1.9, r2 = 1.4, $fn = 30);
translate([-1, 51, -24.5]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.4, $fn = 30);
translate([-1, 51, -24.5]) rotate([90, 0, 0]) cylinder(h = 4, r1 = 1.9, r2 = 1.4, $fn = 30);
// filament sensor window
translate([-9.5, 43, -17]) rotate([0, 90, 0]) cylinder(h = 13, r = 3, $fn = 30);
translate([0, 40, -17.5]) cube([5, 11, 2]);
translate([0, 40, -18.5]) rotate([0, 40, 0]) cube([5, 11, 2]);
translate([3.5, 38, -1]) cube([5, 11, 2]);
} }
translate([-10,-35,-17.5]) rotate([0,0,0]) cube([10,26,12]);
// e3d nozzle cut
translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=60, r=11.1, $fn=50 );
translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=26, r=11.5, $fn=50 );
translate([0,-3.4,-17]) rotate([90,0,0]) cylinder( h=10, r=8.05, $fn=50 );
translate([0,8,-17]) rotate([90,0,0]) cylinder( h=5.6, r=8.05, $fn=50 );
translate([0,8.9,-17]) rotate([90,0,0]) cylinder( h=3, r=9, $fn=50 );
translate([0,4,-17]) rotate([90,0,0]) cylinder( h=8, r=6.05, $fn=50 );
translate([0,2.5,-17]) rotate([90,0,0]) cylinder( h=2, r1=8.05, r2=7, $fn=50 );
// filament PTFE and entry from hotend pinda_holder();
translate([0,10,-17]) rotate([90,0,0]) cylinder( h=10, r=3.5, $fn=50 ); translate([5.5, 40, -14]) cube([4, 10, 1]);
translate([0,30,-17]) rotate([90,0,0]) cylinder( h=80, r=2.1, $fn=50 ); translate([5.5, 40, -13]) rotate([0, 45, 0]) cube([2, 10, 2]);
translate([0,18,-17]) rotate([90,0,0]) cylinder( h=12, r1=2, r2=4.3, $fn=50 );
translate([0,16,-17]) rotate([110,0,0]) cylinder( h=13, r1=2, r2=4, $fn=50 );
translate([0,16,-17]) rotate([100,0,0]) cylinder( h=13, r1=2, r2=4, $fn=50 );
translate([0,80,-17]) rotate([90,0,0]) cylinder( h=80, r=1.0, $fn=50 );
// upper PTFE housing
translate([0,50.8,-17]) rotate([90,0,0]) cylinder( h=4, r=2.1, $fn=50 );
translate([0,49,-17]) rotate([90,0,0]) cylinder( h=4.5, r=1.5, $fn=50 );
translate([0,51,-17]) rotate([90,0,0]) cylinder( h=22, r=1.1, $fn=50 );
translate([0,41,-17]) rotate([90,0,0]) cylinder( h=5, r1=2, r2=1, $fn=50 );
translate([1,46.5,-17.5]) cube([2,4,1]);
translate([1,48,-17.5]) rotate([-30,0,0]) cube([2,4,1]);
translate([0,10,-17]) rotate([90,0,0]) cylinder( h=3, r=7, $fn=50 );
// motor screws
translate([-11.5,11.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 );
translate([19.5,11.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 );
translate([-11.5,42.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 );
translate([19.5,42.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 );
translate([-11.5,11.5,-3.75]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=50 );
translate([19.5,11.5,-3.75]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=50 );
translate([-11.5,42.5,-3]) rotate([0,0,0]) cylinder( h=4, r=3.1, $fn=50 );
translate([19.5,42.5,-4.5]) rotate([0,0,0]) cylinder( h=5, r1=1.6,r2=2.4, $fn=50 );
// better printing
translate([-10.5,6.5,-17]) m3head();
translate([-41.5,6.5,-17]) m3head();
translate([-41.5,37.5,-16.2]) m3head();
translate([-13,-2,-26]) m3nuthead();
translate([-8,16.5,-33.5]) rotate([0,0,45]) cube([10,10,32]);
translate([-18,16.5,-33.5]) cube([10,10,32]);
// hold together screws
translate([-20.5,-3.2,-14]) cube([12,5.6,2.1]);
translate([-20.5,-3.2,-5]) cube([12,5.6,2.1]);
translate([-13.2,-3.2,-14.3]) cube([3.4,5.6,2]);
translate([-13.2,-2.2,-14.6]) cube([3.4,3.4,2]);
translate([-13.2,-3.2,-5.3]) cube([3.4,5.6,2.3]);
translate([-13.2,-2.2,-5.6]) cube([3.4,3.4,2.3]);
translate([-11.5,-0.5,-35]) cylinder( h=65, r=1.65, $fn=50 );
translate([-11.5,-0.5,-2]) cylinder( h=5, r1=1.65, r2=2.2,$fn=50 );
translate([11.5,-0.5,-30]) cylinder( h=60, r=1.65, $fn=50 );
translate([11.5,-0.5,-3]) cylinder( h=5, r1=1.65, r2=2.2,$fn=50 );
translate([11.5,-0.5,-16]) cylinder( h=5, r1=3.5, r2=3.1, $fn=6 );
translate([11.5,-0.5,-21]) cylinder( h=7, r=3.5, $fn=6 );
// idler tension screws
translate([9,18.5,-25]) rotate([0,90,0]) cylinder( h=21, r=2.7, $fn=30 );
translate([-18,18.5,-25]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=30 );
translate([19,18.5,-25]) rotate([0,90,0]) cylinder( h=10, r=4, $fn=30 );
translate([9,18.5,-10]) rotate([0,90,0]) cylinder( h=21, r=2.7, $fn=30 );
translate([-18,18.5,-10]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=30 );
translate([19,18.5,-10]) rotate([0,90,0]) cylinder( h=10, r=4, $fn=30 );
// fan cut and screws
translate([20.5,-41.5,-30]) cube([15,40,40]);
translate([6,-5.5,-4]) rotate([0,90,0]) cylinder( h=15, r=1.4, $fn=30 );
translate([12,-37.5,-4]) rotate([0,90,0]) cylinder( h=10, r=1.4, $fn=30 );
translate([12,-37.5,-4]) rotate([0,90,0]) cylinder( h=3, r=1.6, $fn=30 );
translate([19,-5.5,-4]) rotate([0,90,0]) cylinder( h=2, r1=1.4,r2=2, $fn=30 );
translate([19,-37.5,-4]) rotate([0,90,0]) cylinder( h=2, r1=1.4,r2=2, $fn=30 );
// extruder cover nut
translate([17,3,-25]) rotate([0,0,0]) cylinder( h=19, r=1.7, $fn=30 );
translate([17,3,-5]) rotate([0,0,0]) cylinder( h=6, r=3.5, $fn=6 );
translate([17,3,-10]) rotate([0,0,0]) cylinder( h=6, r1=3.1, r2=3.6, $fn=6 );
// cable guide above fan
difference()
{
translate([20.5,-2.5,-25]) cube([4,5,30]);
translate([19,-1.5,-25]) rotate([0,0,60]) cube([5,5,30]);
}
// corners
translate([25,43,-40]) rotate([0,0,45]) cube([10,10,50]);
translate([-18,43,-40]) rotate([0,0,45]) cube([10,10,50]);
// filament senzor
translate([2.5,40,-25.2]) cube([3,11,22.4]);
translate([6.5,51,-3.9]) rotate([90,0,0]) cylinder( h=11, r=3.1, $fn=30 );
difference()
{
translate([3.5,40,-7]) cube([6,11,12]);
translate([6,40,-7]) rotate([0,45,0]) cube([5,12,12]);
}
translate([3.5,40,-10.5]) rotate([0,-45,0]) cube([2,12,5]);
translate([0,40,-7]) cube([4,11,5]);
translate([1.5,40,-25.2]) cube([4,11,5]);
translate([1.8,40,-21]) cube([4,11,8]);
translate([0,52.3,-21]) rotate([50,0,0]) cube([4,2,5]);
// filament senzor mounting screw
translate([3,45,-9]) rotate([0,90,0]) cylinder( h=12, r=1.4, $fn=30 );
translate([5,45,-9]) rotate([0,90,0]) cylinder( h=4, r=1.6, r2=1.5, $fn=30 );
translate([8.5,45,-9]) rotate([0,90,0]) cylinder( h=1, r=1.6, r2=1.4, $fn=30 );
translate([-7,45,-9]) rotate([0,90,0]) cylinder( h=13, r=1.4, $fn=30 );
translate([-10,45,-9]) rotate([0,90,0]) cylinder( h=13, r=3.3, $fn=30 );
// filament sensor cover screws
translate([12,51,-12]) rotate([90,0,0]) cylinder( h=10, r=1.4, $fn=30 );
translate([12,51,-12]) rotate([90,0,0]) cylinder( h=4, r1=1.9, r2=1.4,$fn=30 );
translate([-1,51,-24.5]) rotate([90,0,0]) cylinder( h=10, r=1.4, $fn=30 );
translate([-1,51,-24.5]) rotate([90,0,0]) cylinder( h=4, r1=1.9, r2=1.4,$fn=30 );
// filament sensor window
translate([-9.5,43,-17]) rotate([0,90,0]) cylinder( h=13, r=3, $fn=30 );
translate([0,40,-17.5]) cube([5,11,2]);
translate([0,40,-18.5]) rotate([0,40,0]) cube([5,11,2]);
translate([3.5,38,-1]) cube([5,11,2]);
} }
pinda_holder();
translate([5.5,40,-14]) cube([4,10,1]);
translate([5.5,40,-13]) rotate([0,45,0]) cube([2,10,2]);
}
module final_part() module final_part()
{ {
difference() difference()
{ {
extruder_body(); extruder_body();
translate([-35,-29,-30]) rotate([45,0,0]) cube([30,10,10]); translate([-35, -29, -30]) rotate([45, 0, 0]) cube([30, 10, 10]);
//version
translate([-4, -34, -0.4]) rotate([0, 0, 0]) linear_extrude(height = 0.6)
{ text("R2", font = "helvetica:style = Bold", size = 4, center = true); }
//version
translate([-4,-34,-0.4]) rotate([0,0,0]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); }
// selective infill // selective infill
translate([-15,-7,-16]) cube([5,0.4,15]); translate([-15, -7, -16]) cube([5, 0.4, 15]);
} }
// print supports // print supports
translate([-28,-35,-0.3]) cube([8,4,0.3]); translate([-28, -35, -0.3]) cube([8, 4, 0.3]);
translate([-28,-44,-0.3]) cube([8,4,0.3]); translate([-28, -44, -0.3]) cube([8, 4, 0.3]);
// grill // grill
translate([-35.25,10,0]) grill(); translate([-35.25, 10, 0]) grill();
translate([-35.25,0,0]) grill(); translate([-35.25, 0, 0]) grill();
translate([-16.5,-34,-12]) cube([4,30,1]); translate([-16.5, -34, -12]) cube([4, 30, 1]);
translate([-16.5,-6,-11.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); translate([-16.5, -6, -11.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50);
translate([-12.5,-6,-11.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); translate([-12.5, -6, -11.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50);
} }
rotate([0, 180, 0]) final_part();
rotate([0,180,0]) final_part();

View File

@ -6,150 +6,142 @@
// http://prusamendel.org // http://prusamendel.org
//import("extruder_body.stl"); //import("extruder_body.stl");
//translate([11.5,-0.5,-37.5]) cylinder( h=30, r=3.0, $fn=50 ); //translate([11.5, -0.5, -37.5]) cylinder(h = 30, r = 3.0, $fn = 50);
module m3head() module m3head()
{ {
intersection() intersection()
{ {
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 30); // head cut
translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true);
} }
translate([30,5,17-4]) cube([3.4,3.4,1], center=true); translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true);
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 30); // head cut
} }
module grill() module grill()
{ {
difference() difference()
{ {
translate([24,-5,-20]) cylinder( h=23, r=20.4, $fn=50 ); translate([24, -5, -20]) cylinder(h = 23, r = 20.4, $fn = 50);
translate([24,-5,-21]) cylinder( h=26, r=19, $fn=50 ); translate([24, -5, -21]) cylinder(h = 26, r = 19, $fn = 50);
translate([23,-30,-30]) cube([30,60,35]); translate([23, -30, -30]) cube([30, 60, 35]);
translate([-11,-30,-30]) cube([30,60,35]); translate([-11, -30, -30]) cube([30, 60, 35]);
translate([-19,-20,-30]) cube([60,60,35]); translate([-19, -20, -30]) cube([60, 60, 35]);
} }
translate([23,-24.65,-20]) cylinder( h=23, r=0.72, $fn=50 ); translate([23, -24.65, -20]) cylinder(h = 23, r = 0.72, $fn = 50);
translate([19,-24.01,-20]) cylinder( h=23, r=0.72, $fn=50 ); translate([19, -24.01, -20]) cylinder(h = 23, r = 0.72, $fn = 50);
} }
translate([-35.25, 10, -20]) grill();
translate([-35.25, 0, -20]) grill();
translate([-35.25,10,-20]) grill();
translate([-35.25,0,-20]) grill();
// horizontal fins // horizontal fins
translate([-16.5,-35,-25]) cube([4,31,1]); translate([-16.5, -35, -25]) cube([4, 31, 1]);
translate([-16.5,-6,-24.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); translate([-16.5, -6, -24.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50);
translate([-12.5,-6,-24.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); translate([-12.5, -6, -24.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50);
module extruder_cover() module extruder_cover()
{ {
difference() difference()
{ {
union() union()
{ {
// base block // base block
translate([-17,-36.5,-40.0]) cube([41.5,42.25,23.0]); translate([-17, -36.5, -40.0]) cube([41.5, 42.25, 23.0]);
translate([-37.75,-38.5,-40]) rotate([0,0,0]) cylinder( h=5, r=5.9, $fn=6 ); translate([-37.75, -38.5, -40]) rotate([0, 0, 0]) cylinder(h = 5, r = 5.9, $fn = 6);
translate([-34,-41.5,-40]) rotate([0,0,20]) cube([30,8,4]); translate([-34, -41.5, -40]) rotate([0, 0, 20]) cube([30, 8, 4]);
translate([16,-38.5,-40]) rotate([0,0,45]) cube([3,3,23]); translate([16, -38.5, -40]) rotate([0, 0, 45]) cube([3, 3, 23]);
// fan nozzle mount // fan nozzle mount
translate([11.5,-44,-40]) cube([7,9,7]); translate([11.5, -44, -40]) cube([7, 9, 7]);
translate([15.5,-44,-40]) cube([5,9,23]); translate([15.5, -44, -40]) cube([5, 9, 23]);
translate([-15,-44,-40]) cube([6.2,17,6]); translate([-15, -44, -40]) cube([6.2, 17, 6]);
translate([-11,-44,-40]) cube([28,20,1]); translate([-11, -44, -40]) cube([28, 20, 1]);
// cable guide above fan // cable guide above fan
translate([23.5,-1.5,-40]) cube([8,7.25,23]); translate([23.5, -1.5, -40]) cube([8, 7.25, 23]);
} }
// side fan cut // side fan cut
translate([20.5,-37.5,-41]) cube([20,36,30]); translate([20.5, -37.5, -41]) cube([20, 36, 30]);
// cables hook // cables hook
translate([34,-1.0,-41]) rotate([0,0,45]) cube([10,10,25]); translate([34, -1.0, -41]) rotate([0, 0, 45]) cube([10, 10, 25]);
difference() difference()
{ {
translate([20.5,-2.5,-41]) cube([4,5,25]); translate([20.5, -2.5, -41]) cube([4, 5, 25]);
translate([20.0,-0.5,-41]) rotate([0,0,60]) cube([5,5,25]); translate([20.0, -0.5, -41]) rotate([0, 0, 60]) cube([5, 5, 25]);
} }
// e3d nozzle cut
translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=30, r=11.1, $fn=50 );
translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=26, r=11.5, $fn=50 );
translate([0,-3.4,-17]) rotate([90,0,0]) cylinder( h=10, r=8.05, $fn=50 );
translate([0,8,-17]) rotate([90,0,0]) cylinder( h=5.6, r=8.05, $fn=50 );
translate([0,4,-17]) rotate([90,0,0]) cylinder( h=8, r=6.05, $fn=50 );
// hotend cooling tube
// input
translate([12,-21.5,-20]) rotate([0,90,0]) cylinder( h=10, r2=20.5, r1=12, $fn=80 );
translate([1,-20.5,-15.5]) rotate([0,99,0]) cylinder( h=25, r2=17.5, r1=12, $fn=80 );
translate([-10,-35,-28.3]) cube([30,26,32]);
// output
difference()
{
translate([-17.2,-35,-36]) rotate([0,-23,0]) cube([44,26,32]);
translate([-18,-53.5,-40]) rotate([0,0,65]) cube([20,20,32]);
}
// fan screws
translate([7,-37.5,-36]) rotate([0,90,0]) cylinder( h=14, r=1.4, $fn=30 );
translate([7,-5.5,-36]) rotate([0,90,0]) cylinder( h=14, r=1.4, $fn=30 );
translate([19,-37.5,-36]) rotate([0,90,0]) cylinder( h=2, r1=1.4, r2=2, $fn=30 );
translate([19,-5.5,-36]) rotate([0,90,0]) cylinder( h=2, r1=1.4, r2=2, $fn=30 );
// left hold together screw // e3d nozzle cut
translate([17,3,-44]) rotate([0,0,0]) cylinder( h=40, r=1.6, $fn=60 ); translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 30, r = 11.1, $fn = 50);
translate([17,3,-41]) rotate([0,0,0]) cylinder( h=8, r=3.1, $fn=30 ); translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 26, r = 11.5, $fn = 50);
translate([13.9,3.1,-41]) cube([6.2,10,9]); translate([0, -3.4, -17]) rotate([90, 0, 0]) cylinder(h = 10, r = 8.05, $fn = 50);
translate([0, 8, -17]) rotate([90, 0, 0]) cylinder(h = 5.6, r = 8.05, $fn = 50);
// right hold together screw translate([0, 4, -17]) rotate([90, 0, 0]) cylinder(h = 8, r = 6.05, $fn = 50);
translate([-11.5,-0.5,-43]) cylinder( h=60, r=1.65, $fn=50 );
translate([-11.5,-0.5,-41]) cylinder( h=5, r=3.1, $fn=30 ); // hotend cooling tube
// input
// upper cooling fan screw translate([12, -21.5, -20]) rotate([0, 90, 0]) cylinder(h = 10, r2 = 20.5, r1 = 12, $fn = 80);
translate([5.5,-0.5,-40]) cylinder( h=15, r=1.65, $fn=50 ); translate([1, -20.5, -15.5]) rotate([0, 99, 0]) cylinder(h = 25, r2 = 17.5, r1 = 12, $fn = 80);
translate([5.5,-0.5,-42]) cylinder( h=3, r1=3, r2=1.65, $fn=50 ); translate([-10, -35, -28.3]) cube([30, 26, 32]);
// nuts // output
translate([2.8,-4,-39]) cube([5.6,15,2.1]); difference()
translate([2.8,-2.2,-39]) cube([5.6,3.4,2.5]); {
translate([3.8,-2.2,-39]) cube([3.4,3.4,2.9]); translate([-17.2, -35, -36]) rotate([0, -23, 0]) cube([44, 26, 32]);
translate([2.8,5.4,-38.4]) rotate([45,0,0]) cube([5.6,10,2]); translate([-18, -53.5, -40]) rotate([0, 0, 65]) cube([20, 20, 32]);
}
// lower cooling fan screw
translate([-37.75,-38.5,-42]) cylinder( h=20, r=1.6, $fn=30 ); // fan screws
translate([-37.75,-38.5,-39.4]) cylinder( h=4, r=3.1, $fn=6 ); translate([7, -37.5, -36]) rotate([0, 90, 0]) cylinder(h = 14, r = 1.4, $fn = 30);
translate([-37.75,-38.5,-37.5]) cylinder( h=3, r1=3.1, r2=4.0, $fn=6 ); translate([7, -5.5, -36]) rotate([0, 90, 0]) cylinder(h = 14, r = 1.4, $fn = 30);
translate([19, -37.5, -36]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30);
// nozzle screw translate([19, -5.5, -36]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30);
translate([14.5,-40.5,-42]) cylinder( h=10, r=1.4, $fn=30 );
translate([14.5,-40.5,-41]) cylinder( h=3, r1=2.1, r2=1.4, $fn=30 ); // left hold together screw
translate([17, 3, -44]) rotate([0, 0, 0]) cylinder(h = 40, r = 1.6, $fn = 60);
// fan and motor cables translate([17, 3, -41]) rotate([0, 0, 0]) cylinder(h = 8, r = 3.1, $fn = 30);
translate([21.5,-5.9,-41]) cube([3,5,25]); translate([13.9, 3.1, -41]) cube([6.2, 10, 9]);
translate([20.5,-5.9,-41]) cube([4,5,25]);
translate([13.2,-49.5,-33]) rotate([0,0,20]) cube([6,10,25]); // right hold together screw
translate([-11.5, -0.5, -43]) cylinder(h = 60, r = 1.65, $fn = 50);
translate([18.5,-5.5,-22]) rotate([0,180,0]) m3head(); translate([-11.5, -0.5, -41]) cylinder(h = 5, r = 3.1, $fn = 30);
translate([47,-2,-19]) rotate([0,180,0]) m3head();
// upper cooling fan screw
translate([5.5, -0.5, -40]) cylinder(h = 15, r = 1.65, $fn = 50);
//version translate([5.5, -0.5, -42]) cylinder(h = 3, r1 = 3, r2 = 1.65, $fn = 50);
translate([-3,-36,-38]) rotate([90,0,0]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); } // nuts
translate([2.8, -4, -39]) cube([5.6, 15, 2.1]);
translate([2.8, -2.2, -39]) cube([5.6, 3.4, 2.5]);
translate([3.8, -2.2, -39]) cube([3.4, 3.4, 2.9]);
translate([11.5,-0.5,-21]) cylinder( h=5, r=2.0, $fn=50 ); translate([2.8, 5.4, -38.4]) rotate([45, 0, 0]) cube([5.6, 10, 2]);
// lower cooling fan screw
translate([-37.75, -38.5, -42]) cylinder(h = 20, r = 1.6, $fn = 30);
translate([-37.75, -38.5, -39.4]) cylinder(h = 4, r = 3.1, $fn = 6);
translate([-37.75, -38.5, -37.5]) cylinder(h = 3, r1 = 3.1, r2 = 4.0, $fn = 6);
// nozzle screw
translate([14.5, -40.5, -42]) cylinder(h = 10, r = 1.4, $fn = 30);
translate([14.5, -40.5, -41]) cylinder(h = 3, r1 = 2.1, r2 = 1.4, $fn = 30);
// fan and motor cables
translate([21.5, -5.9, -41]) cube([3, 5, 25]);
translate([20.5, -5.9, -41]) cube([4, 5, 25]);
translate([13.2, -49.5, -33]) rotate([0, 0, 20]) cube([6, 10, 25]);
translate([18.5, -5.5, -22]) rotate([0, 180, 0]) m3head();
translate([47, -2, -19]) rotate([0, 180, 0]) m3head();
//version
translate([-3, -36, -38]) rotate([90, 0, 0]) linear_extrude(height = 0.6)
{ text("R2", font = "helvetica:style = Bold", size = 4, center = true); }
translate([11.5, -0.5, -21]) cylinder(h = 5, r = 2.0, $fn = 50);
} }
}
}
extruder_cover(); extruder_cover();

View File

@ -8,25 +8,25 @@
module plug() module plug()
{ {
difference() difference()
{
union()
{ {
union() // Base shape
{ translate([-17, 43, -18.5]) rotate([90, 0, 90]) cylinder(h = 10, r = 2.8, $fn = 30);
// Base shape translate([-17, 43, -21.3]) cube([10, 4 + 3.5, 5.6]);
translate([-17,43,-18.5]) rotate([90,0,90]) cylinder( h=10, r=2.8, $fn=30 ); translate([-17, 43 + 3, -21.3]) cube([10.6, 4.5, 5.6]);
translate([-17,43,-21.3]) cube([10,4+3.5,5.6]);
translate([-17,43+3,-21.3]) cube([10.6,4.5,5.6]);
}
// Motor screw slot
translate([-11.5,42.5,-32]) cylinder( h=30, r=1.5, $fn=30 );
translate([-11.5-1.5,42.5-5,-25]) cube([3,5,10]);
// Pretty corner
translate([-18,47,-32]) rotate([0,0,30]) cube([15,10,30]);
} }
// Motor screw slot
translate([-11.5, 42.5, -32]) cylinder(h = 30, r = 1.5, $fn = 30);
translate([-11.5 - 1.5, 42.5 - 5, -25]) cube([3, 5, 10]);
// Pretty corner
translate([-18, 47, -32]) rotate([0, 0, 30]) cube([15, 10, 30]);
}
} }
rotate([0,0,0]) rotate([0, 0, 0])
{ {
plug(); plug();
} }

View File

@ -4,108 +4,88 @@
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module part() module part()
{ {
difference() difference()
{ {
union() union()
{ {
// base shape // base shape
translate([-11.5,42.5,-31.5]) cylinder( h=25, r=5, $fn=50 ); translate([-11.5, 42.5, -31.5]) cylinder(h = 25, r = 5, $fn = 50);
translate([-17,12,-31.5]) cube([8,34,25.0]); translate([-17, 12, -31.5]) cube([8, 34, 25.0]);
// pulley holders // pulley holders
translate([-4,27,-22.75]) cylinder(h=1, r1=4, r2=3, $fn=50); translate([-4, 27, -22.75]) cylinder(h = 1, r1 = 4, r2 = 3, $fn = 50);
translate([-4,27,-27]) cylinder(h=4.25, r=4, $fn=50); translate([-4, 27, -27]) cylinder(h = 4.25, r = 4, $fn = 50);
translate([-14,22,-26.75]) cube([10.5,10,4]); translate([-14, 22, -26.75]) cube([10.5, 10, 4]);
translate([-16.5,22,-6.5]) cube([13,10,3]); translate([-16.5, 22, -6.5]) cube([13, 10, 3]);
translate([-4,27,-6.5]) cylinder(h=3, r=4, $fn=50); translate([-4, 27, -6.5]) cylinder(h = 3, r = 4, $fn = 50);
translate([-4,27,-7.25]) cylinder(h=0.75, r1=3, r2=4, $fn=50); translate([-4, 27, -7.25]) cylinder(h = 0.75, r1 = 3, r2 = 4, $fn = 50);
} }
// motor rim cut // motor rim cut
translate([7,27,-32.75]) cylinder( h=6, r=18, $fn=80 ); translate([7, 27, -32.75]) cylinder(h = 6, r = 18, $fn = 80);
// axis // axis
translate([-4,27,-32]) cylinder( h=40, r=1.45, $fn=50 ); translate([-4, 27, -32]) cylinder(h = 40, r = 1.45, $fn = 50);
translate([-11.5,42.5,-32]) cylinder( h=30, r=1.65, $fn=50 ); translate([-11.5, 42.5, -32]) cylinder(h = 30, r = 1.65, $fn = 50);
translate([-18,44,-32]) rotate([0,0,30]) cube([15,10,30]); translate([-18, 44, -32]) rotate([0, 0, 30]) cube([15, 10, 30]);
translate([-18,47,-32]) cube([15,10,30]); translate([-18, 47, -32]) cube([15, 10, 30]);
translate([-16,0.5,-32]) rotate([0,0,30]) cube([15,10,30]); translate([-16, 0.5, -32]) rotate([0, 0, 30]) cube([15, 10, 30]);
translate([-18,3,-33]) cube([15,10,30]); translate([-18, 3, -33]) cube([15, 10, 30]);
// idler nuts // idler nuts
translate([-15,15.7,-39.4]) cube([2.1,5.6,16]); translate([-15, 15.7, -39.4]) cube([2.1, 5.6, 16]);
translate([-15,15.7,-14.6]) cube([2.1,5.6,16]); translate([-15, 15.7, -14.6]) cube([2.1, 5.6, 16]);
// better printing // better printing
translate([-14.7,15.6,-28.2]) cube([2.1,5.8,3.4]); translate([-14.7, 15.6, -28.2]) cube([2.1, 5.8, 3.4]);
translate([-14.4,16.8,-28.2]) cube([2.1,3.4,3.4]); translate([-14.4, 16.8, -28.2]) cube([2.1, 3.4, 3.4]);
translate([-14.7,15.6,-13.2]) cube([2.1,5.8,3.4]); translate([-14.7, 15.6, -13.2]) cube([2.1, 5.8, 3.4]);
translate([-14.4,16.8,-13.2]) cube([2.1,3.4,3.4]); translate([-14.4, 16.8, -13.2]) cube([2.1, 3.4, 3.4]);
// idler screws // idler screws
translate([-18,18.5,-26.5]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=50 ); translate([-18, 18.5, -26.5]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 50);
translate([-18,18.5,-11.5]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=50 ); translate([-18, 18.5, -11.5]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 50);
translate([-18,18.5,-26.5]) rotate([0,90,0]) cylinder( h=2.5, r1=3, r2=1.7, $fn=50 ); translate([-18, 18.5, -26.5]) rotate([0, 90, 0]) cylinder(h = 2.5, r1 = 3, r2 = 1.7, $fn = 50);
translate([-18,18.5,-11.5]) rotate([0,90,0]) cylinder( h=2.5, r1=3, r2=1.7, $fn=50 ); translate([-18, 18.5, -11.5]) rotate([0, 90, 0]) cylinder(h = 2.5, r1 = 3, r2 = 1.7, $fn = 50);
translate([-12,18.5,-26.5]) rotate([0,90,0]) cylinder( h=4, r1=1.7, r2=2.2, $fn=50 ); translate([-12, 18.5, -26.5]) rotate([0, 90, 0]) cylinder(h = 4, r1 = 1.7, r2 = 2.2, $fn = 50);
translate([-12,18.5,-11.5]) rotate([0,90,0]) cylinder( h=4, r1=1.7, r2=2.2, $fn=50 ); translate([-12, 18.5, -11.5]) rotate([0, 90, 0]) cylinder(h = 4, r1 = 1.7, r2 = 2.2, $fn = 50);
translate([-5.3, 16.2, -33]) rotate([0, 0, 30]) cube([5, 5, 40]);
translate([-7.8, 33.5, -33]) rotate([0, 0, -30]) cube([5, 5, 40]);
translate([-18, 29, -17.6]) rotate([90, 0, 0]) rotate([0, 90, 0]) cylinder(h = 10, r1 = 9, r2 = 6, $fn = 6);
translate([-5.3,16.2,-33]) rotate([0,0,30]) cube([5,5,40]);
translate([-7.8,33.5,-33]) rotate([0,0,-30]) cube([5,5,40]);
translate([-18,29,-17.6]) rotate([90,0,0]) rotate([0,90,0]) cylinder( h=10, r1=9, r2=6, $fn=6 );
// nice edges // nice edges
translate([-26,10,-2]) rotate([0,45,0]) cube([10,40,10]); translate([-26, 10, -2]) rotate([0, 45, 0]) cube([10, 40, 10]);
translate([-26,10,-35.5]) rotate([0,45,0]) cube([10,40,10]); translate([-26, 10, -35.5]) rotate([0, 45, 0]) cube([10, 40, 10]);
translate([-10,2,-35]) cube([20,20,50]); translate([-10, 2, -35]) cube([20, 20, 50]);
//selective infill //selective infill
translate([-11,24,-5]) cube([5,6,0.2]); translate([-11, 24, -5]) cube([5, 6, 0.2]);
translate([-11,24,-26]) cube([5,6,0.2]); translate([-11, 24, -26]) cube([5, 6, 0.2]);
// filament sensor cleaning window // filament sensor cleaning window
translate([-20,43,-18.5]) rotate([90,0,90]) cylinder( h=15, r=3, $fn=30 ); translate([-20, 43, -18.5]) rotate([90, 0, 90]) cylinder(h = 15, r = 3, $fn = 30);
translate([-20,43,-21.5]) cube([21,10,6]); translate([-20, 43, -21.5]) cube([21, 10, 6]);
} }
difference() difference()
{ {
// side cut // side cut
translate([-17,22,-8]) cube([4,17,4.5]); translate([-17, 22, -8]) cube([4, 17, 4.5]);
translate([-9.5,33,-9]) rotate([0,0,45]) cube([10,10,6]); translate([-9.5, 33, -9]) rotate([0, 0, 45]) cube([10, 10, 6]);
// side cut edges // side cut edges
translate([-26,10,1]) rotate([0,45,0]) cube([10,40,10]); translate([-26, 10, 1]) rotate([0, 45, 0]) cube([10, 40, 10]);
translate([-22.5,14,-10]) rotate([0,0,45]) cube([10,10,10]); translate([-22.5, 14, -10]) rotate([0, 0, 45]) cube([10, 10, 10]);
translate([-22.5,33,-10]) rotate([0,0,45]) cube([10,10,10]); translate([-22.5, 33, -10]) rotate([0, 0, 45]) cube([10, 10, 10]);
} }
translate([-11.5, 28, -8]) rotate([0, 0, 45]) cube([3, 6, 4.5]);
translate([-11.5,28,-8]) rotate([0,0,45]) cube([3,6,4.5]);
} }
rotate([0,-90,0]) part(); rotate([0, -90, 0]) part();

View File

@ -10,40 +10,34 @@ module part()
difference() difference()
{ {
union() union()
{ {
// base shape // base shape
translate([-6,50,-30.5]) cube([24,3,36]); translate([-6, 50, -30.5]) cube([24, 3, 36]);
translate([0,60,-17]) rotate([90,0,0]) cylinder(r=4.2,h = 10, $fn=30); translate([0, 60, -17]) rotate([90, 0, 0]) cylinder(r = 4.2, h = 10, $fn = 30);
translate([0,61.5,-17]) rotate([90,0,0]) cylinder(r1=3, r2=4.2, h=1.5, $fn=30); translate([0, 61.5, -17]) rotate([90, 0, 0]) cylinder(r1 = 3, r2 = 4.2, h = 1.5, $fn = 30);
} }
// mounting screws
translate([12,60,-12]) rotate([90,0,0]) cylinder(r=1.6,h = 20, $fn=30);
translate([-1,60,-24.5]) rotate([90,0,0]) cylinder(r=1.6,h = 20, $fn=30);
translate([12,54.5,-12]) rotate([90,0,0]) cylinder(r=3.1,h = 3, $fn=30);
translate([-1,54.5,-24.5]) rotate([90,0,0]) cylinder(r=3.1,h = 3, $fn=30);
// filament guide // mounting screws
translate([0,59.8,-17]) rotate([90,0,0]) cylinder(r=2.2,h = 9.8, $fn=30); translate([12, 60, -12]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 20, $fn = 30);
translate([0,61,-17]) rotate([90,0,0]) cylinder(r=1,h = 20, $fn=30); translate([-1, 60, -24.5]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 20, $fn = 30);
translate([0,62.5,-17]) rotate([90,0,0]) cylinder(r2=1.2, r1=3,h = 3, $fn=30); translate([12, 54.5, -12]) rotate([90, 0, 0]) cylinder(r = 3.1, h = 3, $fn = 30);
translate([0,53.9,-17]) rotate([90,0,0]) cylinder(r1=2.2, r2=3,h = 4, $fn=30); translate([-1, 54.5, -24.5]) rotate([90, 0, 0]) cylinder(r = 3.1, h = 3, $fn = 30);
// nice edges
translate([19,50,-40]) rotate([0,0,45]) cube([10,10,50]);
translate([-9,49,-38]) rotate([0,0,45]) cube([6,5,50]);
translate([-8,56.5,-39]) rotate([45,0,0]) cube([50,10,10]);
translate([-8,56.5,-1]) rotate([45,0,0]) cube([50,10,10]);
// filament guide
translate([0, 59.8, -17]) rotate([90, 0, 0]) cylinder(r = 2.2, h = 9.8, $fn = 30);
translate([0, 61, -17]) rotate([90, 0, 0]) cylinder(r = 1, h = 20, $fn = 30);
translate([0, 62.5, -17]) rotate([90, 0, 0]) cylinder(r2 = 1.2, r1 = 3, h = 3, $fn = 30);
translate([0, 53.9, -17]) rotate([90, 0, 0]) cylinder(r1 = 2.2, r2 = 3, h = 4, $fn = 30);
translate([7,50.4,0]) rotate([90,180,0]) linear_extrude(height = 0.6) // nice edges
{ text("R1",font = "helvetica:style=Bold", size=5, center=true); } translate([19, 50, -40]) rotate([0, 0, 45]) cube([10, 10, 50]);
translate([-9, 49, -38]) rotate([0, 0, 45]) cube([6, 5, 50]);
translate([-8, 56.5, -39]) rotate([45, 0, 0]) cube([50, 10, 10]);
translate([-8, 56.5, -1]) rotate([45, 0, 0]) cube([50, 10, 10]);
translate([7, 50.4, 0]) rotate([90, 180, 0]) linear_extrude(height = 0.6)
{ text("R1", font = "helvetica:style = Bold", size = 5, center = true); }
} }
} }
rotate([90, 0, 0]) part();
rotate([90,0,0]) part();

View File

@ -5,202 +5,171 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module cover() module cover()
{ {
difference() difference()
{ {
// base block // base block
translate([-18,0,0]) cube([36,32,8.6]); translate([-18, 0, 0]) cube([36, 32, 8.6]);
// inner cut // inner cut
translate([-15,-0.5,-3]) cube([30,16.5,9]); translate([-15, -0.5, -3]) cube([30, 16.5, 9]);
translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=3.3, $fn=60); translate([-0, 33, 3]) rotate([90, 0, 0]) cylinder(h = 15, r = 3.3, $fn = 60);
translate([-15,15,-6]) cube([30,19,9]); translate([-15, 15, -6]) cube([30, 19, 9]);
// inner edges // inner edges
translate([-4,4.5,0]) rotate([0,0,45]) cube([15,15,6]); translate([-4, 4.5, 0]) rotate([0, 0, 45]) cube([15, 15, 6]);
translate([4.0,4.51,0]) rotate([0,0,45]) cube([15,15,6]); translate([4.0, 4.51, 0]) rotate([0, 0, 45]) cube([15, 15, 6]);
// outer edges // outer edges
translate([-18.0,25,-1]) rotate([0,0,45]) cube([11,11,10]); translate([-18.0, 25, -1]) rotate([0, 0, 45]) cube([11, 11, 10]);
translate([18,25,-1]) rotate([0,0,45]) cube([11,11,10]); translate([18, 25, -1]) rotate([0, 0, 45]) cube([11, 11, 10]);
// screw holes for clip // screw holes for clip
translate([-10,25,0]) cylinder(h = 10, r=1.7, $fn=50); translate([-10, 25, 0]) cylinder(h = 10, r = 1.7, $fn = 50);
translate([10,25,0]) cylinder(h = 10, r=1.7, $fn=50); translate([10, 25, 0]) cylinder(h = 10, r = 1.7, $fn = 50);
// clip nuts entry // clip nuts entry
translate([-10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([-10, 25, 8]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([10, 25, 8]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
// clip nuts with print supports // clip nuts with print supports
difference() difference()
{ {
union() union()
{ {
translate([-10, 25, 5.65])
{
translate( [ -10 , 25 , 5.65 ] ){ cylinder(h = 4, r = 3.15, $fn = 6);
cylinder( h = 4, r = 3.15, $fn=6); }
translate([10, 25, 5.65])
} {
cylinder(h = 4, r = 3.15, $fn = 6);
}
translate( [ 10 , 25 , 5.65 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
} }
translate([-8.3,0,0.25]) cube([16.6,40,5.7]); translate([-8.3, 0, 0.25]) cube([16.6, 40, 5.7]);
translate([-16.7,0,0.25]) cube([5,40,5.7]); translate([-16.7, 0, 0.25]) cube([5, 40, 5.7]);
translate([11.7,0,0.25]) cube([5,40,5.7]); translate([11.7, 0, 0.25]) cube([5, 40, 5.7]);
translate([-20,13.3,0.25]) cube([70,10,6]); translate([-20, 13.3, 0.25]) cube([70, 10, 6]);
translate([-20,26.7,0.25]) cube([70,10,6]); translate([-20, 26.7, 0.25]) cube([70, 10, 6]);
} }
// pcb nut
// pcb nut
difference() difference()
{ {
union() union()
{ {
translate([0, 7.5, 5.5])
translate( [ 0 , 7.5 , 5.5 ] ){ {
cylinder( h = 4, r = 3.15, $fn=6); cylinder(h = 4, r = 3.15, $fn = 6);
}
}
} }
translate([-11.7,0,0.8]) cube([10,40,5.5]); translate([-11.7, 0, 0.8]) cube([10, 40, 5.5]);
translate([1.7,0,.8]) cube([10,40,5.5]); translate([1.7, 0, .8]) cube([10, 40, 5.5]);
translate([-5,-4.2,1.1]) cube([10,10,5.5]); translate([-5, -4.2, 1.1]) cube([10, 10, 5.5]);
translate([-5,9.2,1.1]) cube([10,10,5.5]); translate([-5, 9.2, 1.1]) cube([10, 10, 5.5]);
} }
// heatbed screw
translate([0,7.5,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
translate([0,7.5,3]) cylinder(h = 6, r=1.7, $fn=50);
// LED window // heatbed screw
translate([-2.5,-1,-4]) cube([5,3.5,10]); translate([0, 7.5, 8]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); translate([0, 7.5, 3]) cylinder(h = 6, r = 1.7, $fn = 50);
translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
// edges // LED window
translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]); translate([-2.5, -1, -4]) cube([5, 3.5, 10]);
translate([-23,-1,8.5]) rotate([0,45,0]) cube([5,45,6]); translate([-14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
translate([15.8,-1,8.7]) rotate([0,45,0]) cube([6,45,5]); translate([14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
translate([30,12,8.7]) rotate([0,45,45]) cube([6,45,5]);
translate([-40.6,12,9.7]) rotate([0,45,-45]) cube([6,45,5]); // edges
} translate([-20, -0, 6.5]) rotate([45, 0, 0]) cube([40, 5, 5]);
translate([-23, -1, 8.5]) rotate([0, 45, 0]) cube([5, 45, 6]);
translate([15.8, -1, 8.7]) rotate([0, 45, 0]) cube([6, 45, 5]);
translate([30, 12, 8.7]) rotate([0, 45, 45]) cube([6, 45, 5]);
translate([-40.6, 12, 9.7]) rotate([0, 45, -45]) cube([6, 45, 5]);
}
// heatbed pcb support // heatbed pcb support
translate([-17,0,4]) cube([3,20,2]); translate([-17, 0, 4]) cube([3, 20, 2]);
translate([14,0,4]) cube([3,20,2]); translate([14, 0, 4]) cube([3, 20, 2]);
translate([-17,0,4]) cube([14,2,2]); translate([-17, 0, 4]) cube([14, 2, 2]);
translate([3,0,4]) cube([14,2,2]); translate([3, 0, 4]) cube([14, 2, 2]);
// heatbed screw body // heatbed screw body
difference() difference()
{ {
translate([0,7.5,4]) cylinder(h = 2.1, r=5, $fn=6); translate([0, 7.5, 4]) cylinder(h = 2.1, r = 5, $fn = 6);
translate([0,7.5,6.05]) cylinder(h = 4, r=3.15, $fn=6); translate([0, 7.5, 6.05]) cylinder(h = 4, r = 3.15, $fn = 6);
translate([0,7.5,3]) cylinder(h = 7, r=1.7, $fn=50); translate([0, 7.5, 3]) cylinder(h = 7, r = 1.7, $fn = 50);
} }
} }
module clip() module clip()
{ {
difference() difference()
{ {
// base body // base body
translate([-15,15.5,-3]) cube([30,16.5,6]); translate([-15, 15.5, -3]) cube([30, 16.5, 6]);
// cables cut
translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60);
// screws
translate([-10,25,-3]) cylinder(h = 10, r=1.7, $fn=50);
translate([10,25,-3]) cylinder(h = 10, r=1.7, $fn=50);
translate([-10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50);
translate([10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50);
// print support for nut heads
difference()
{
union()
{
translate([-10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
translate([10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
}
translate([-30,13.3,-0.8]) cube([60,10,2]);
translate([-30,26.7,-0.8]) cube([60,10,2]);
translate([-8.3,20,-1.1]) cube([16.6,10,2]);
translate([-21.7,20,-1.1]) cube([10,10,2]);
translate([11.7,20,-1.1]) cube([10,10,2]);
}
// thermistor cable entry
translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3.3, $fn=60);
// edges
translate([-18.0,25,-5]) rotate([0,0,45]) cube([11,11,15]);
translate([18,25,-5]) rotate([0,0,45]) cube([11,11,15]);
// inner angled cut // cables cut
translate([-0, 33, 3]) rotate([90, 0, 0]) cylinder(h = 15, r = 4, $fn = 60);
// screws
translate([-10, 25, -3]) cylinder(h = 10, r = 1.7, $fn = 50);
translate([10, 25, -3]) cylinder(h = 10, r = 1.7, $fn = 50);
translate([-10, 25, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
translate([10, 25, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
// print support for nut heads
difference() difference()
{ {
translate([-15,15,0]) cube([30,11,4]); union()
translate([-14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); {
translate([14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); translate([-10, 25, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
translate([10, 25, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
translate([-13,11,-1]) rotate([-45,0,45]) cube([20,20,6]); }
translate([13,11,-1]) rotate([0,45,45]) cube([20,20,6]); translate([-30, 13.3, -0.8]) cube([60, 10, 2]);
translate([-10,16,-10]) rotate([30,0,0]) cube([20,20,6]); translate([-30, 26.7, -0.8]) cube([60, 10, 2]);
translate([-8.3, 20, -1.1]) cube([16.6, 10, 2]);
translate([-21.7, 20, -1.1]) cube([10, 10, 2]);
translate([11.7, 20, -1.1]) cube([10, 10, 2]);
} }
// thermistor cable entry
translate([-0, 22, 4]) rotate([115, 0, 0]) cylinder(h = 15, r = 3.3, $fn = 60);
// edges
translate([-18.0, 25, -5]) rotate([0, 0, 45]) cube([11, 11, 15]);
translate([18, 25, -5]) rotate([0, 0, 45]) cube([11, 11, 15]);
// inner angled cut
difference()
{
translate([-15, 15, 0]) cube([30, 11, 4]);
translate([-14.5, 14.5, -1]) rotate([0, 0, 45]) cube([17, 17, 6]);
translate([14.5, 14.5, -1]) rotate([0, 0, 45]) cube([17, 17, 6]);
translate([-13, 11, -1]) rotate([-45, 0, 45]) cube([20, 20, 6]);
translate([13, 11, -1]) rotate([0, 45, 45]) cube([20, 20, 6]);
translate([-10, 16, -10]) rotate([30, 0, 0]) cube([20, 20, 6]);
}
} }
// cable rims // cable rims
difference() difference()
{ {
difference() difference()
{ {
translate([-0,32,3]) rotate([90,0,0]) cylinder(h = 7, r=4.5, $fn=60); translate([-0, 32, 3]) rotate([90, 0, 0]) cylinder(h = 7, r = 4.5, $fn = 60);
translate([-0,34,3]) rotate([90,0,0]) cylinder(h = 17, r=3, $fn=60); translate([-0, 34, 3]) rotate([90, 0, 0]) cylinder(h = 17, r = 3, $fn = 60);
} }
translate([-15,17,3]) cube([30,20,6]); translate([-15, 17, 3]) cube([30, 20, 6]);
translate([-15,26,-5]) cube([30,2,16]); translate([-15, 26, -5]) cube([30, 2, 16]);
translate([-15,29,-5]) cube([30,2,16]); translate([-15, 29, -5]) cube([30, 2, 16]);
} }
} }
translate([0, 0, 8.6]) rotate([0, 180, 0])
translate([0,0,8.6]) rotate([0,180,0])
{ {
translate([0,20,5.6]) rotate([0,180,0]) clip(); translate([0, 20, 5.6]) rotate([0, 180, 0]) clip();
cover(); cover();
} }

View File

@ -5,202 +5,171 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module cover() module cover()
{ {
difference() difference()
{ {
// base block // base block
translate([-18,0,0]) cube([36,32,8.6]); translate([-18, 0, 0]) cube([36, 32, 8.6]);
// inner cut // inner cut
translate([-15,-0.5,-3]) cube([30,16.5,9]); translate([-15, -0.5, -3]) cube([30, 16.5, 9]);
translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60); translate([-0, 33, 3]) rotate([90, 0, 0]) cylinder(h = 15, r = 4, $fn = 60);
translate([-15,15,-6]) cube([30,19,9]); translate([-15, 15, -6]) cube([30, 19, 9]);
// inner edges // inner edges
translate([-4,4.5,0]) rotate([0,0,45]) cube([15,15,6]); translate([-4, 4.5, 0]) rotate([0, 0, 45]) cube([15, 15, 6]);
translate([4.0,4.51,0]) rotate([0,0,45]) cube([15,15,6]); translate([4.0, 4.51, 0]) rotate([0, 0, 45]) cube([15, 15, 6]);
// outer edges // outer edges
translate([-18.0,25,-1]) rotate([0,0,45]) cube([11,11,10]); translate([-18.0, 25, -1]) rotate([0, 0, 45]) cube([11, 11, 10]);
translate([18,25,-1]) rotate([0,0,45]) cube([11,11,10]); translate([18, 25, -1]) rotate([0, 0, 45]) cube([11, 11, 10]);
// screw holes for clip // screw holes for clip
translate([-10,25,0]) cylinder(h = 10, r=1.7, $fn=50); translate([-10, 25, 0]) cylinder(h = 10, r = 1.7, $fn = 50);
translate([10,25,0]) cylinder(h = 10, r=1.7, $fn=50); translate([10, 25, 0]) cylinder(h = 10, r = 1.7, $fn = 50);
// clip nuts entry // clip nuts entry
translate([-10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([-10, 25, 8]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([10, 25, 8]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
// clip nuts with print supports // clip nuts with print supports
difference() difference()
{ {
union() union()
{ {
translate([-10, 25, 5.65])
{
translate( [ -10 , 25 , 5.65 ] ){ cylinder(h = 4, r = 3.15, $fn = 6);
cylinder( h = 4, r = 3.15, $fn=6); }
translate([10, 25, 5.65])
} {
cylinder(h = 4, r = 3.15, $fn = 6);
}
translate( [ 10 , 25 , 5.65 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
} }
translate([-8.3,0,0.25]) cube([16.6,40,5.7]); translate([-8.3, 0, 0.25]) cube([16.6, 40, 5.7]);
translate([-16.7,0,0.25]) cube([5,40,5.7]); translate([-16.7, 0, 0.25]) cube([5, 40, 5.7]);
translate([11.7,0,0.25]) cube([5,40,5.7]); translate([11.7, 0, 0.25]) cube([5, 40, 5.7]);
translate([-20,13.3,0.25]) cube([70,10,6]); translate([-20, 13.3, 0.25]) cube([70, 10, 6]);
translate([-20,26.7,0.25]) cube([70,10,6]); translate([-20, 26.7, 0.25]) cube([70, 10, 6]);
} }
// pcb nut
// pcb nut
difference() difference()
{ {
union() union()
{ {
translate([0, 7.5, 5.5])
translate( [ 0 , 7.5 , 5.5 ] ){ {
cylinder( h = 4, r = 3.15, $fn=6); cylinder(h = 4, r = 3.15, $fn = 6);
}
}
} }
translate([-11.7,0,0.8]) cube([10,40,5.5]); translate([-11.7, 0, 0.8]) cube([10, 40, 5.5]);
translate([1.7,0,.8]) cube([10,40,5.5]); translate([1.7, 0, .8]) cube([10, 40, 5.5]);
translate([-5,-4.2,1.1]) cube([10,10,5.5]); translate([-5, -4.2, 1.1]) cube([10, 10, 5.5]);
translate([-5,9.2,1.1]) cube([10,10,5.5]); translate([-5, 9.2, 1.1]) cube([10, 10, 5.5]);
} }
// heatbed screw
translate([0,7.5,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
translate([0,7.5,3]) cylinder(h = 6, r=1.7, $fn=50);
// LED window // heatbed screw
translate([-2.5,-1,-4]) cube([5,3.5,10]); translate([0, 7.5, 8]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); translate([0, 7.5, 3]) cylinder(h = 6, r = 1.7, $fn = 50);
translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
// edges // LED window
translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]); translate([-2.5, -1, -4]) cube([5, 3.5, 10]);
translate([-23,-1,8.5]) rotate([0,45,0]) cube([5,45,6]); translate([-14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
translate([15.8,-1,8.7]) rotate([0,45,0]) cube([6,45,5]); translate([14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
translate([30,12,8.7]) rotate([0,45,45]) cube([6,45,5]);
translate([-40.6,12,9.7]) rotate([0,45,-45]) cube([6,45,5]); // edges
} translate([-20, -0, 6.5]) rotate([45, 0, 0]) cube([40, 5, 5]);
translate([-23, -1, 8.5]) rotate([0, 45, 0]) cube([5, 45, 6]);
translate([15.8, -1, 8.7]) rotate([0, 45, 0]) cube([6, 45, 5]);
translate([30, 12, 8.7]) rotate([0, 45, 45]) cube([6, 45, 5]);
translate([-40.6, 12, 9.7]) rotate([0, 45, -45]) cube([6, 45, 5]);
}
// heatbed pcb support // heatbed pcb support
translate([-17,0,4]) cube([3,20,2]); translate([-17, 0, 4]) cube([3, 20, 2]);
translate([14,0,4]) cube([3,20,2]); translate([14, 0, 4]) cube([3, 20, 2]);
translate([-17,0,4]) cube([14,2,2]); translate([-17, 0, 4]) cube([14, 2, 2]);
translate([3,0,4]) cube([14,2,2]); translate([3, 0, 4]) cube([14, 2, 2]);
// heatbed screw body // heatbed screw body
difference() difference()
{ {
translate([0,7.5,4]) cylinder(h = 2.1, r=5, $fn=6); translate([0, 7.5, 4]) cylinder(h = 2.1, r = 5, $fn = 6);
translate([0,7.5,6.05]) cylinder(h = 4, r=3.15, $fn=6); translate([0, 7.5, 6.05]) cylinder(h = 4, r = 3.15, $fn = 6);
translate([0,7.5,3]) cylinder(h = 7, r=1.7, $fn=50); translate([0, 7.5, 3]) cylinder(h = 7, r = 1.7, $fn = 50);
} }
} }
module clip() module clip()
{ {
difference() difference()
{ {
// base body // base body
translate([-15,15.5,-3]) cube([30,16.5,6]); translate([-15, 15.5, -3]) cube([30, 16.5, 6]);
// cables cut
translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60);
// screws
translate([-10,25,-3]) cylinder(h = 10, r=1.7, $fn=50);
translate([10,25,-3]) cylinder(h = 10, r=1.7, $fn=50);
translate([-10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50);
translate([10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50);
// print support for nut heads
difference()
{
union()
{
translate([-10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
translate([10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
}
translate([-30,13.3,-0.8]) cube([60,10,2]);
translate([-30,26.7,-0.8]) cube([60,10,2]);
translate([-8.3,20,-1.1]) cube([16.6,10,2]);
translate([-21.7,20,-1.1]) cube([10,10,2]);
translate([11.7,20,-1.1]) cube([10,10,2]);
}
// thermistor cable entry
translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3.3, $fn=60);
// edges
translate([-18.0,25,-5]) rotate([0,0,45]) cube([11,11,15]);
translate([18,25,-5]) rotate([0,0,45]) cube([11,11,15]);
// inner angled cut // cables cut
translate([-0, 33, 3]) rotate([90, 0, 0]) cylinder(h = 15, r = 4, $fn = 60);
// screws
translate([-10, 25, -3]) cylinder(h = 10, r = 1.7, $fn = 50);
translate([10, 25, -3]) cylinder(h = 10, r = 1.7, $fn = 50);
translate([-10, 25, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
translate([10, 25, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
// print support for nut heads
difference() difference()
{ {
translate([-15,15,0]) cube([30,11,4]); union()
translate([-14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); {
translate([14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); translate([-10, 25, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
translate([10, 25, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
translate([-13,11,-1]) rotate([-45,0,45]) cube([20,20,6]); }
translate([13,11,-1]) rotate([0,45,45]) cube([20,20,6]); translate([-30, 13.3, -0.8]) cube([60, 10, 2]);
translate([-10,16,-10]) rotate([30,0,0]) cube([20,20,6]); translate([-30, 26.7, -0.8]) cube([60, 10, 2]);
translate([-8.3, 20, -1.1]) cube([16.6, 10, 2]);
translate([-21.7, 20, -1.1]) cube([10, 10, 2]);
translate([11.7, 20, -1.1]) cube([10, 10, 2]);
}
// thermistor cable entry
translate([-0, 22, 4]) rotate([115, 0, 0]) cylinder(h = 15, r = 3.3, $fn = 60);
// edges
translate([-18.0, 25, -5]) rotate([0, 0, 45]) cube([11, 11, 15]);
translate([18, 25, -5]) rotate([0, 0, 45]) cube([11, 11, 15]);
// inner angled cut
difference()
{
translate([-15, 15, 0]) cube([30, 11, 4]);
translate([-14.5, 14.5, -1]) rotate([0, 0, 45]) cube([17, 17, 6]);
translate([14.5, 14.5, -1]) rotate([0, 0, 45]) cube([17, 17, 6]);
translate([-13, 11, -1]) rotate([-45, 0, 45]) cube([20, 20, 6]);
translate([13, 11, -1]) rotate([0, 45, 45]) cube([20, 20, 6]);
translate([-10, 16, -10]) rotate([30, 0, 0]) cube([20, 20, 6]);
} }
} }
// cable rims // cable rims
difference() difference()
{ {
difference() difference()
{ {
translate([-0,32,3]) rotate([90,0,0]) cylinder(h = 7, r=4.5, $fn=60); translate([-0, 32, 3]) rotate([90, 0, 0]) cylinder(h = 7, r = 4.5, $fn = 60);
translate([-0,34,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); translate([-0, 34, 3]) rotate([90, 0, 0]) cylinder(h = 17, r = 3.5, $fn = 60);
} }
translate([-15,17,3]) cube([30,20,6]); translate([-15, 17, 3]) cube([30, 20, 6]);
translate([-15,26,-5]) cube([30,2,16]); translate([-15, 26, -5]) cube([30, 2, 16]);
translate([-15,29,-5]) cube([30,2,16]); translate([-15, 29, -5]) cube([30, 2, 16]);
} }
} }
translate([0, 0, 8.6]) rotate([0, 180, 0])
translate([0,0,8.6]) rotate([0,180,0])
{ {
translate([0,20,5.6]) rotate([0,180,0]) clip(); translate([0, 20, 5.6]) rotate([0, 180, 0]) clip();
cover(); cover();
} }

View File

@ -7,238 +7,193 @@
module cover() module cover()
{ {
difference() difference()
{ {
// base block // base block
translate([-18,0,0]) cube([36,36,9]); translate([-18, 0, 0]) cube([36, 36, 9]);
// inner cut // inner cut
translate([-15,-0.5,-3]) cube([30,16,9]); translate([-15, -0.5, -3]) cube([30, 16, 9]);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=3.3, $fn=60); translate([-0, 37, 3]) rotate([90, 0, 0]) cylinder(h = 15, r = 3.3, $fn = 60);
translate([-15,15,-6]) cube([30,22,9]); translate([-15, 15, -6]) cube([30, 22, 9]);
// inner edges // inner edges
translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([3.5, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([-14, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([2.5,15,0]) rotate([0,0,0]) cube([8,8,6]); translate([2.5, 15, 0]) rotate([0, 0, 0]) cube([8, 8, 6]);
translate([-10.5,15,0]) rotate([0,0,0]) cube([8,8,6]); translate([-10.5, 15, 0]) rotate([0, 0, 0]) cube([8, 8, 6]);
translate([6.96,19.45,0]) rotate([0,0,45]) cube([5,10,6]); translate([6.96, 19.45, 0]) rotate([0, 0, 45]) cube([5, 10, 6]);
translate([-6.96,19.45,0]) rotate([0,0,45]) cube([10,5,6]); translate([-6.96, 19.45, 0]) rotate([0, 0, 45]) cube([10, 5, 6]);
translate([3.96,18.45,0]) rotate([0,0,20]) cube([5,6,6]); translate([3.96, 18.45, 0]) rotate([0, 0, 20]) cube([5, 6, 6]);
translate([-3.96,18.45,0]) rotate([0,0,70]) cube([6,5,6]); translate([-3.96, 18.45, 0]) rotate([0, 0, 70]) cube([6, 5, 6]);
translate([-0, 20, 0.5]) rotate([90, 0, 0]) cube([11, 11, 11], center = true);
translate([-0,20,0.5]) rotate([90,0,0]) cube([11,11,11], center = true); translate([2, 14, -1]) rotate([0, 0, 10]) cube([8, 13, 6]);
translate([-9.88, 15.21, -1]) rotate([0, 0, -10]) cube([8, 13, 6]);
translate([2,14,-1]) rotate([0,0,10]) cube([8,13,6]);
translate([-9.88,15.21,-1]) rotate([0,0,-10]) cube([8,13,6]);
// outer edges // outer edges
translate([-18.0,32,-1]) rotate([0,0,25]) cube([11,11,11]); translate([-18.0, 32, -1]) rotate([0, 0, 25]) cube([11, 11, 11]);
translate([18,32,-1]) rotate([0,0,65]) cube([11,11,11]); translate([18, 32, -1]) rotate([0, 0, 65]) cube([11, 11, 11]);
// screw holes for clip // screw holes for clip
translate([-11,30,0]) cylinder(h = 10, r=1.6, $fn=50); translate([-11, 30, 0]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([11,30,0]) cylinder(h = 10, r=1.6, $fn=50); translate([11, 30, 0]) cylinder(h = 10, r = 1.6, $fn = 50);
// clip nuts entry // clip nuts entry
translate([-11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([-11, 30, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([11, 30, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
// heatbed terminal screw pockets
translate([8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50);
translate([-8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50);
// heatbed terminal screw pockets
translate([8.5, 7.5, 0]) cylinder(h = 8.6, r = 3.25, $fn = 50);
translate([-8.5, 7.5, 0]) cylinder(h = 8.6, r = 3.25, $fn = 50);
// clip nuts with print supports // clip nuts with print supports
difference() difference()
{ {
union() union()
{ {
translate([11, 30, 6])
{
translate( [ 11 , 30 , 6 ] ){ cylinder(h = 4, r = 3.15, $fn = 6);
cylinder( h = 4, r = 3.15, $fn=6); }
translate([-11, 30, 6])
} {
cylinder(h = 4, r = 3.15, $fn = 6);
}
translate( [ -11 , 30 , 6 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
} }
translate([-9.4,4,0.6]) cube([18.8,40,5.7]); translate([-9.4, 4, 0.6]) cube([18.8, 40, 5.7]);
translate([-17.6,4,0.6]) cube([5,40,5.7]); translate([-17.6, 4, 0.6]) cube([5, 40, 5.7]);
translate([12.6,4,0.6]) cube([5,40,5.7]); translate([12.6, 4, 0.6]) cube([5, 40, 5.7]);
translate([-22,18.4,0.6]) cube([70,10,6]); translate([-22, 18.4, 0.6]) cube([70, 10, 6]);
translate([-20,31.6,0.6]) cube([70,10,6]); translate([-20, 31.6, 0.6]) cube([70, 10, 6]);
} }
difference() difference()
{ {
union() union()
{ {
translate([0, 7.5, 5.4])
{
translate( [ 0 , 7.5 , 5.4 ] ){ cylinder(h = 4, r = 3.15, $fn = 6);
cylinder( h = 4, r = 3.15, $fn=6); }
}
} }
translate([-11.6,0,1]) cube([10,40,5.7]); translate([-11.6, 0, 1]) cube([10, 40, 5.7]);
translate([1.6,0,1]) cube([10,40,5.7]); translate([1.6, 0, 1]) cube([10, 40, 5.7]);
translate([-5,-4.1,1]) cube([10,10,6]); translate([-5, -4.1, 1]) cube([10, 10, 6]);
translate([-5,9.1,1]) cube([10,10,6]); translate([-5, 9.1, 1]) cube([10, 10, 6]);
} }
// heatbed screw nut entry // heatbed screw nut entry
translate([0, 7.5, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([0,7.5,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); // LED window
translate([-2.5, -1, -4]) cube([5, 3.5, 10]);
translate([-14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
translate([14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
// LED window // edges
translate([-2.5,-1,-4]) cube([5,3.5,10]); translate([-20, -0, 6.5]) rotate([45, 0, 0]) cube([40, 5, 5]);
translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); translate([-23.3, -1, 9.7]) rotate([0, 45, 0]) cube([6, 45, 6]);
translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); translate([14.8, -1, 9.7]) rotate([0, 45, 0]) cube([6, 45, 5]);
}
// edges
translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]);
translate([-23.3,-1,9.7]) rotate([0,45,0]) cube([6,45,6]);
translate([14.8,-1,9.7]) rotate([0,45,0]) cube([6,45,5]);
}
// heatbed pcb support // heatbed pcb support
translate([-17,0,4]) cube([3,20,2]); translate([-17, 0, 4]) cube([3, 20, 2]);
translate([14,0,4]) cube([3,20,2]); translate([14, 0, 4]) cube([3, 20, 2]);
translate([-17,0,4]) cube([14,2,2]); translate([-17, 0, 4]) cube([14, 2, 2]);
translate([3,0,4]) cube([14,2,2]); translate([3, 0, 4]) cube([14, 2, 2]);
// heatbed screw body // heatbed screw body
difference() difference()
{ {
translate([0, 7.5, 4]) rotate(90, v = [0, 0, 1]) cylinder(h = 3.9, r = 2.75, $fn = 50);
translate([0, 7.5, 6.5]) cylinder(h = 4, r = 2.76, $fn = 50);
translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 3.9, r=2.75, $fn=50); translate([0, 7.5, 3]) cylinder(h = 4, r = 1.6, $fn = 50);
translate([0,7.5,6.5]) cylinder(h = 4, r=2.76, $fn=50);
translate([0,7.5,3]) cylinder(h = 4, r=1.6, $fn=50);
} }
} }
module clip() module clip()
{ {
difference() difference()
{ {
// base body // base body
translate([-15,15.5,-3]) cube([30,20.5,6]); translate([-15, 15.5, -3]) cube([30, 20.5, 6]);
// inner angled cut // inner angled cut
translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([3.5, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([-14, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([3.5,15,0]) rotate([0,0,0]) cube([7,8,6]); translate([3.5, 15, 0]) rotate([0, 0, 0]) cube([7, 8, 6]);
translate([-10.5,15,0]) rotate([0,0,0]) cube([7,8,6]); translate([-10.5, 15, 0]) rotate([0, 0, 0]) cube([7, 8, 6]);
translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); translate([6.96, 19.45, 1]) rotate([0, 0, 45]) cube([5, 10, 6]);
translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); translate([-6.96, 19.45, 1]) rotate([0, 0, 45]) cube([10, 5, 6]);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); translate([-0, 37, 3]) rotate([90, 0, 0]) cylinder(h = 17, r = 3.5, $fn = 60);
translate([-7,15,0]) rotate([0,0,0]) cube([14,11,6]); translate([-7, 15, 0]) rotate([0, 0, 0]) cube([14, 11, 6]);
translate([3,14,1]) rotate([0,0,10]) cube([7,13,6]); translate([3, 14, 1]) rotate([0, 0, 10]) cube([7, 13, 6]);
translate([-9.88,15.21,1]) rotate([0,0,-10]) cube([7,13,6]); translate([-9.88, 15.21, 1]) rotate([0, 0, -10]) cube([7, 13, 6]);
// cables cut // cables cut
translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 187, r=4, $fn=60); translate([-0, 36, 3]) rotate([90, 0, 0]) cylinder(h = 187, r = 4, $fn = 60);
// screws // screws
translate([-11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); translate([-11, 30, -3]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); translate([11, 30, -3]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([-11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50); translate([-11, 30, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
translate([11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50); translate([11, 30, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
// print support for nut heads // print support for nut heads
difference() difference()
{
union()
{ {
translate([-11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); union()
translate([11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); {
translate([-11, 30, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
translate([11, 30, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
}
translate([-30, 18.4, -0.8]) cube([60, 10, 2]);
translate([-30, 31.6, -0.8]) cube([60, 10, 2]);
translate([-9.4, 25, -1.1]) cube([18.8, 10, 2]);
translate([-22.6, 25, -1.1]) cube([10, 10, 2]);
translate([12.6, 25, -1.1]) cube([10, 10, 2]);
} }
translate([-30,18.4,-0.8]) cube([60,10,2]);
translate([-30,31.6,-0.8]) cube([60,10,2]);
translate([-9.4,25,-1.1]) cube([18.8,10,2]);
translate([-22.6,25,-1.1]) cube([10,10,2]);
translate([12.6,25,-1.1]) cube([10,10,2]);
}
// thermistor cable entry
translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3, $fn=60);
// edges
translate([-18.0,32,-5]) rotate([0,0,25]) cube([11,11,15]);
translate([18,32,-5]) rotate([0,0,65]) cube([11,11,15]);
// thermistor cable entry
translate([-0, 22, 4]) rotate([115, 0, 0]) cylinder(h = 15, r = 3, $fn = 60);
// edges
translate([-18.0, 32, -5]) rotate([0, 0, 25]) cube([11, 11, 15]);
translate([18, 32, -5]) rotate([0, 0, 65]) cube([11, 11, 15]);
} }
// cable rims // cable rims
difference() difference()
{ {
difference() difference()
{ {
translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 10, r=4.5, $fn=60); translate([-0, 36, 3]) rotate([90, 0, 0]) cylinder(h = 10, r = 4.5, $fn = 60);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3, $fn=60); translate([-0, 37, 3]) rotate([90, 0, 0]) cylinder(h = 17, r = 3, $fn = 60);
} }
translate([-15,18,3]) cube([30,20,6]); translate([-15, 18, 3]) cube([30, 20, 6]);
translate([-15,27,-5]) cube([30,2,16]); translate([-15, 27, -5]) cube([30, 2, 16]);
translate([-15,30,-5]) cube([30,2,16]); translate([-15, 30, -5]) cube([30, 2, 16]);
translate([-15,33,-5]) cube([30,2,16]); translate([-15, 33, -5]) cube([30, 2, 16]);
translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); translate([6.96, 19.45, 1]) rotate([0, 0, 45]) cube([5, 10, 6]);
translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); translate([-6.96, 19.45, 1]) rotate([0, 0, 45]) cube([10, 5, 6]);
translate([-4,20,0]) rotate([0,0,0]) cube([8,11,6]); translate([-4, 20, 0]) rotate([0, 0, 0]) cube([8, 11, 6]);
} }
} }
translate([0, 40, 3])
translate([0,40,3])
clip(); clip();
translate([0,40,9]) rotate([180,0,0]) translate([0, 40, 9]) rotate([180, 0, 0])
cover(); cover();

View File

@ -7,238 +7,192 @@
module cover() module cover()
{ {
difference() difference()
{ {
// base block // base block
translate([-18,0,0]) cube([36,36,9]); translate([-18, 0, 0]) cube([36, 36, 9]);
// inner cut // inner cut
translate([-15,-0.5,-3]) cube([30,16,9]); translate([-15, -0.5, -3]) cube([30, 16, 9]);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60); translate([-0, 37, 3]) rotate([90, 0, 0]) cylinder(h = 15, r = 4, $fn = 60);
translate([-15,15,-6]) cube([30,22,9]); translate([-15, 15, -6]) cube([30, 22, 9]);
// inner edges // inner edges
translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([3.5, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([-14, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([2.5,15,0]) rotate([0,0,0]) cube([8,8,6]); translate([2.5, 15, 0]) rotate([0, 0, 0]) cube([8, 8, 6]);
translate([-10.5,15,0]) rotate([0,0,0]) cube([8,8,6]); translate([-10.5, 15, 0]) rotate([0, 0, 0]) cube([8, 8, 6]);
translate([6.96,19.45,0]) rotate([0,0,45]) cube([5,10,6]); translate([6.96, 19.45, 0]) rotate([0, 0, 45]) cube([5, 10, 6]);
translate([-6.96,19.45,0]) rotate([0,0,45]) cube([10,5,6]); translate([-6.96, 19.45, 0]) rotate([0, 0, 45]) cube([10, 5, 6]);
translate([3.96,18.45,0]) rotate([0,0,20]) cube([5,6,6]); translate([3.96, 18.45, 0]) rotate([0, 0, 20]) cube([5, 6, 6]);
translate([-3.96,18.45,0]) rotate([0,0,70]) cube([6,5,6]); translate([-3.96, 18.45, 0]) rotate([0, 0, 70]) cube([6, 5, 6]);
translate([-0, 20, 0.5]) rotate([90, 0, 0]) cube([11, 11, 11], center = true);
translate([-0,20,0.5]) rotate([90,0,0]) cube([11,11,11], center = true); translate([2, 14, -1]) rotate([0, 0, 10]) cube([8, 13, 6]);
translate([-9.88, 15.21, -1]) rotate([0, 0, -10]) cube([8, 13, 6]);
translate([2,14,-1]) rotate([0,0,10]) cube([8,13,6]);
translate([-9.88,15.21,-1]) rotate([0,0,-10]) cube([8,13,6]);
// outer edges // outer edges
translate([-18.0,32,-1]) rotate([0,0,25]) cube([11,11,11]); translate([-18.0, 32, -1]) rotate([0, 0, 25]) cube([11, 11, 11]);
translate([18,32,-1]) rotate([0,0,65]) cube([11,11,11]); translate([18, 32, -1]) rotate([0, 0, 65]) cube([11, 11, 11]);
// screw holes for clip // screw holes for clip
translate([-11,30,0]) cylinder(h = 10, r=1.6, $fn=50); translate([-11, 30, 0]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([11,30,0]) cylinder(h = 10, r=1.6, $fn=50); translate([11, 30, 0]) cylinder(h = 10, r = 1.6, $fn = 50);
// clip nuts entry // clip nuts entry
translate([-11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([-11, 30, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); translate([11, 30, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
// heatbed terminal screw pockets
translate([8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50);
translate([-8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50);
// heatbed terminal screw pockets
translate([8.5, 7.5, 0]) cylinder(h = 8.6, r = 3.25, $fn = 50);
translate([-8.5, 7.5, 0]) cylinder(h = 8.6, r = 3.25, $fn = 50);
// clip nuts with print supports // clip nuts with print supports
difference() difference()
{ {
union() union()
{ {
translate([11, 30, 6])
{
translate( [ 11 , 30 , 6 ] ){ cylinder(h = 4, r = 3.15, $fn = 6);
cylinder( h = 4, r = 3.15, $fn=6); }
translate([-11, 30, 6])
} {
cylinder(h = 4, r = 3.15, $fn = 6);
}
translate( [ -11 , 30 , 6 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
} }
translate([-9.4,4,0.6]) cube([18.8,40,5.7]); translate([-9.4, 4, 0.6]) cube([18.8, 40, 5.7]);
translate([-17.6,4,0.6]) cube([5,40,5.7]); translate([-17.6, 4, 0.6]) cube([5, 40, 5.7]);
translate([12.6,4,0.6]) cube([5,40,5.7]); translate([12.6, 4, 0.6]) cube([5, 40, 5.7]);
translate([-22,18.4,0.6]) cube([70,10,6]); translate([-22, 18.4, 0.6]) cube([70, 10, 6]);
translate([-20,31.6,0.6]) cube([70,10,6]); translate([-20, 31.6, 0.6]) cube([70, 10, 6]);
} }
difference() difference()
{ {
union() union()
{ {
translate([0, 7.5, 5.4])
{
translate( [ 0 , 7.5 , 5.4 ] ){ cylinder(h = 4, r = 3.15, $fn = 6);
cylinder( h = 4, r = 3.15, $fn=6); }
}
} }
translate([-11.6,0,1]) cube([10,40,5.7]); translate([-11.6, 0, 1]) cube([10, 40, 5.7]);
translate([1.6,0,1]) cube([10,40,5.7]); translate([1.6, 0, 1]) cube([10, 40, 5.7]);
translate([-5,-4.1,1]) cube([10,10,6]); translate([-5, -4.1, 1]) cube([10, 10, 6]);
translate([-5,9.1,1]) cube([10,10,6]); translate([-5, 9.1, 1]) cube([10, 10, 6]);
} }
// heatbed screw nut entry // heatbed screw nut entry
translate([0, 7.5, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6);
translate([0,7.5,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); // LED window
translate([-2.5, -1, -4]) cube([5, 3.5, 10]);
translate([-14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
translate([14, -4, -6]) rotate([0, 0, 45]) cube([5, 5, 10]);
// LED window // edges
translate([-2.5,-1,-4]) cube([5,3.5,10]); translate([-20, -0, 6.5]) rotate([45, 0, 0]) cube([40, 5, 5]);
translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); translate([-23.3, -1, 9.7]) rotate([0, 45, 0]) cube([6, 45, 6]);
translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); translate([14.8, -1, 9.7]) rotate([0, 45, 0]) cube([6, 45, 5]);
// edges }
translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]);
translate([-23.3,-1,9.7]) rotate([0,45,0]) cube([6,45,6]);
translate([14.8,-1,9.7]) rotate([0,45,0]) cube([6,45,5]);
}
// heatbed pcb support // heatbed pcb support
translate([-17,0,4]) cube([3,20,2]); translate([-17, 0, 4]) cube([3, 20, 2]);
translate([14,0,4]) cube([3,20,2]); translate([14, 0, 4]) cube([3, 20, 2]);
translate([-17,0,4]) cube([14,2,2]); translate([-17, 0, 4]) cube([14, 2, 2]);
translate([3,0,4]) cube([14,2,2]); translate([3, 0, 4]) cube([14, 2, 2]);
// heatbed screw body // heatbed screw body
difference() difference()
{ {
translate([0, 7.5, 4]) rotate(90, v = [0, 0, 1]) cylinder(h = 3.9, r = 2.75, $fn = 50);
translate([0, 7.5, 6.5]) cylinder(h = 4, r = 2.76, $fn = 50);
translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 3.9, r=2.75, $fn=50); translate([0, 7.5, 3]) cylinder(h = 4, r = 1.6, $fn = 50);
translate([0,7.5,6.5]) cylinder(h = 4, r=2.76, $fn=50);
translate([0,7.5,3]) cylinder(h = 4, r=1.6, $fn=50);
} }
} }
module clip() module clip()
{ {
difference() difference()
{ {
// base body // base body
translate([-15,15.5,-3]) cube([30,20.5,6]); translate([-15, 15.5, -3]) cube([30, 20.5, 6]);
// inner angled cut // inner angled cut
translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([3.5, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); translate([-14, 2, 0]) rotate([0, 0, 0]) cube([10.5, 15, 6]);
translate([3.5,15,0]) rotate([0,0,0]) cube([7,8,6]); translate([3.5, 15, 0]) rotate([0, 0, 0]) cube([7, 8, 6]);
translate([-10.5,15,0]) rotate([0,0,0]) cube([7,8,6]); translate([-10.5, 15, 0]) rotate([0, 0, 0]) cube([7, 8, 6]);
translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); translate([6.96, 19.45, 1]) rotate([0, 0, 45]) cube([5, 10, 6]);
translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); translate([-6.96, 19.45, 1]) rotate([0, 0, 45]) cube([10, 5, 6]);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); translate([-0, 37, 3]) rotate([90, 0, 0]) cylinder(h = 17, r = 3.5, $fn = 60);
translate([-7,15,0]) rotate([0,0,0]) cube([14,11,6]); translate([-7, 15, 0]) rotate([0, 0, 0]) cube([14, 11, 6]);
translate([3,14,1]) rotate([0,0,10]) cube([7,13,6]); translate([3, 14, 1]) rotate([0, 0, 10]) cube([7, 13, 6]);
translate([-9.88,15.21,1]) rotate([0,0,-10]) cube([7,13,6]); translate([-9.88, 15.21, 1]) rotate([0, 0, -10]) cube([7, 13, 6]);
// cables cut // cables cut
translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 187, r=4, $fn=60); translate([-0, 36, 3]) rotate([90, 0, 0]) cylinder(h = 187, r = 4, $fn = 60);
// screws // screws
translate([-11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); translate([-11, 30, -3]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); translate([11, 30, -3]) cylinder(h = 10, r = 1.6, $fn = 50);
translate([-11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50); translate([-11, 30, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
translate([11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50); translate([11, 30, -5.5]) cylinder(h = 3, r2 = 3.1, r1 = 5, $fn = 50);
// print support for nut heads // print support for nut heads
difference() difference()
{
union()
{ {
translate([-11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); union()
translate([11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); {
translate([-11, 30, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
translate([11, 30, -3.5]) cylinder(h = 3, r = 3.1, $fn = 50);
}
translate([-30, 18.4, -0.8]) cube([60, 10, 2]);
translate([-30, 31.6, -0.8]) cube([60, 10, 2]);
translate([-9.4, 25, -1.1]) cube([18.8, 10, 2]);
translate([-22.6, 25, -1.1]) cube([10, 10, 2]);
translate([12.6, 25, -1.1]) cube([10, 10, 2]);
} }
translate([-30,18.4,-0.8]) cube([60,10,2]);
translate([-30,31.6,-0.8]) cube([60,10,2]);
translate([-9.4,25,-1.1]) cube([18.8,10,2]);
translate([-22.6,25,-1.1]) cube([10,10,2]);
translate([12.6,25,-1.1]) cube([10,10,2]);
}
// thermistor cable entry
translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3, $fn=60);
// edges
translate([-18.0,32,-5]) rotate([0,0,25]) cube([11,11,15]);
translate([18,32,-5]) rotate([0,0,65]) cube([11,11,15]);
// thermistor cable entry
translate([-0, 22, 4]) rotate([115, 0, 0]) cylinder(h = 15, r = 3, $fn = 60);
// edges
translate([-18.0, 32, -5]) rotate([0, 0, 25]) cube([11, 11, 15]);
translate([18, 32, -5]) rotate([0, 0, 65]) cube([11, 11, 15]);
} }
// cable rims // cable rims
difference() difference()
{ {
difference() difference()
{ {
translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 10, r=4.5, $fn=60); translate([-0, 36, 3]) rotate([90, 0, 0]) cylinder(h = 10, r = 4.5, $fn = 60);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); translate([-0, 37, 3]) rotate([90, 0, 0]) cylinder(h = 17, r = 3.5, $fn = 60);
} }
translate([-15,18,3]) cube([30,20,6]); translate([-15, 18, 3]) cube([30, 20, 6]);
translate([-15,27,-5]) cube([30,2,16]); translate([-15, 27, -5]) cube([30, 2, 16]);
translate([-15,30,-5]) cube([30,2,16]); translate([-15, 30, -5]) cube([30, 2, 16]);
translate([-15,33,-5]) cube([30,2,16]); translate([-15, 33, -5]) cube([30, 2, 16]);
translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); translate([6.96, 19.45, 1]) rotate([0, 0, 45]) cube([5, 10, 6]);
translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); translate([-6.96, 19.45, 1]) rotate([0, 0, 45]) cube([10, 5, 6]);
translate([-4,20,0]) rotate([0,0,0]) cube([8,11,6]); translate([-4, 20, 0]) rotate([0, 0, 0]) cube([8, 11, 6]);
} }
} }
translate([0, 40, 3])
translate([0,40,3])
clip(); clip();
translate([0,40,9]) rotate([180,0,0]) translate([0, 40, 9]) rotate([180, 0, 0])
cover(); cover();

View File

@ -11,109 +11,88 @@
module body() module body()
{ {
difference() difference()
{
// base block
translate([-55,-2,0]) cube([69,81,10]);
union ()
{
// outer body shape
translate([-69.6,32,-1]) rotate([0,0,45]) cube([60,53,15]);
translate([13.7,89.7,-1]) rotate([0,0,135]) cube([60,42,15]);
translate([-19,-9,-1]) cube([60,9,15] );
translate([7,-3,-1]) cube([60,68,16]);
translate([-16,60,-1]) cube([60,50,15] );
translate([-41, -45,-1]) rotate([0,0,45]) cube([60,80,13]);
// pcb cout out
translate([4,1.5,-1]) cube([1.8,56.5,17]);
translate([0,7.5,-1]) cube([5.8,44.5,17]);
translate([4.8,3.5,-1]) cube([5.8,52.5,17]);
translate([8,-5,-1] ) rotate([0,0,45]) cube([5,5,17]);
translate([8,58,-1]) rotate([0,0,45]) cube([5,5,17]);
}
// pcb inserts
translate([4,3,8]) rotate([45,0,0]) cube([1.8,5,5]);
translate([4,56.5,8]) rotate([45,0,0]) cube([1.8,5,5]);
translate([4,3,-5]) rotate([45,0,0]) cube([1.8,5,5]);
translate([4,56.5,-5]) rotate([45,0,0]) cube([1.8,5,5]);
}
}
module support()
{
difference()
{ {
// base block
translate([-55, -2, 0]) cube([69, 81, 10]);
union() union()
{ {
rotate([0,0,45]) body(); // outer body shape
// screw block translate([-69.6, 32, -1]) rotate([0, 0, 45]) cube([60, 53, 15]);
translate([-72,22,0]) cube([30,16,10]); translate([13.7, 89.7, -1]) rotate([0, 0, 135]) cube([60, 42, 15]);
translate([-19, -9, -1]) cube([60, 9, 15]);
translate([7, -3, -1]) cube([60, 68, 16]);
translate([-16, 60, -1]) cube([60, 50, 15]);
translate([-41, -45, -1]) rotate([0, 0, 45]) cube([60, 80, 13]);
// pcb cout out
translate([4, 1.5, -1]) cube([1.8, 56.5, 17]);
translate([0, 7.5, -1]) cube([5.8, 44.5, 17]);
translate([4.8, 3.5, -1]) cube([5.8, 52.5, 17]);
translate([8, -5, -1]) rotate([0, 0, 45]) cube([5, 5, 17]);
translate([8, 58, -1]) rotate([0, 0, 45]) cube([5, 5, 17]);
} }
// lower angled part cut // pcb inserts
translate([-75,-2,-1]) cube([20,14,15]); translate([4, 3, 8]) rotate([45, 0, 0]) cube([1.8, 5, 5]);
translate([-70,-2,-1]) cube([20,14,15]); translate([4, 56.5, 8]) rotate([45, 0, 0]) cube([1.8, 5, 5]);
translate([-50,-16.3,-1]) rotate([0,0,45]) cube([20,20,15]); translate([4, 3, -5]) rotate([45, 0, 0]) cube([1.8, 5, 5]);
translate([4, 56.5, -5]) rotate([45, 0, 0]) cube([1.8, 5, 5]);
translate([-76.5,-2,-1]) cube([15,40,15]);
difference()
{
translate([-28,0,-1]) rotate([0,0,45]) cube([10,40,15]);
translate([-38,-12,-1]) cube([20,20,15]);
translate([-58,23.5,-1]) cube([25,25,15]);
}
// screw holes
translate([-71,18+4,5]) rotate([0,90,0]) cylinder(h=22, r=1.75, $fn=30);
translate([-70,29+4,5]) rotate([0,90,0]) cylinder(h=22, r=1.75, $fn=30);
// nut traps
translate([-58,15.1+4,5-2.8]) cube([2.2,5.8,29.7]);
translate([-58,26.1+4,5-2.8]) cube([2.2,5.8,29.7]);
// version
translate([-20,2,9.5]) rotate([0,0,0]) linear_extrude(height = 0.6)
{ text("R1",font = "helvetica:style=Bold", size=5, center=true); }
} }
} }
module support()
{
difference()
{
union()
{
rotate([0, 0, 45]) body();
// screw block
translate([-72, 22, 0]) cube([30, 16, 10]);
}
// lower angled part cut
translate([-75, -2, -1]) cube([20, 14, 15]);
translate([-70, -2, -1]) cube([20, 14, 15]);
translate([-50, -16.3, -1]) rotate([0, 0, 45]) cube([20, 20, 15]);
translate([-76.5, -2, -1]) cube([15, 40, 15]);
difference()
{
translate([-28, 0, -1]) rotate([0, 0, 45]) cube([10, 40, 15]);
translate([-38, -12, -1]) cube([20, 20, 15]);
translate([-58, 23.5, -1]) cube([25, 25, 15]);
}
// screw holes
translate([-71, 18 + 4, 5]) rotate([0, 90, 0]) cylinder(h = 22, r = 1.75, $fn = 30);
translate([-70, 29 + 4, 5]) rotate([0, 90, 0]) cylinder(h = 22, r = 1.75, $fn = 30);
// nut traps
translate([-58, 15.1 + 4, 5 - 2.8]) cube([2.2, 5.8, 29.7]);
translate([-58, 26.1 + 4, 5 - 2.8]) cube([2.2, 5.8, 29.7]);
// version
translate([-20, 2, 9.5]) rotate([0, 0, 0]) linear_extrude(height = 0.6)
{ text("R1", font = "helvetica:style = Bold", size = 5, center = true); }
}
}
module left_lcd_support() module left_lcd_support()
{ {
support(); support();
rotate([0,0,45]) difference() rotate([0, 0, 45]) difference()
{ {
// sd card shield // sd card shield
translate([-3,3,10]) cube([2,55,10]); translate([-3, 3, 10]) cube([2, 55, 10]);
translate([-4,3,20]) rotate([0,90,0]) cylinder( h=4, r=7, $fn=30); translate([-4, 3, 20]) rotate([0, 90, 0]) cylinder(h = 4, r = 7, $fn = 30);
translate([-4,58,20]) rotate([0,90,0]) cylinder( h=4, r=7, $fn=30); translate([-4, 58, 20]) rotate([0, 90, 0]) cylinder(h = 4, r = 7, $fn = 30);
} }
} }
translate([-60,-2,0]) rotate([0,0,180]) support(); translate([-60, -2, 0]) rotate([0, 0, 180]) support();
left_lcd_support(); left_lcd_support();

View File

@ -1,36 +1,32 @@
//#import("nozzle-fan.stl"); //#import("nozzle-fan.stl");
//#translate([0,-4.5,0]) rotate([90,0,180]) import("extruder-body.stl"); //#translate([0, -4.5, 0]) rotate([90, 0, 180]) import("extruder-body.stl");
//translate([0,-4.5,0]) rotate([90,0,0]) import("extruder-cover.stl"); //translate([0, -4.5, 0]) rotate([90, 0, 0]) import("extruder-cover.stl");
//translate([0,0,0]) rotate([0,0,0]) import("hot21_45_2.stl"); //translate([0, 0, 0]) rotate([0, 0, 0]) import("hot21_45_2.stl");
//use<nozzle-fan-old.scad>; //use<nozzle-fan-old.scad>;
//%rotate([90,0,0]) fan_nozzle_old(); //%rotate([90, 0, 0]) fan_nozzle_old();
difference() difference()
{ {
union() union()
{ {
translate([-4,35.5,-25]) cube([6,45,30]); translate([-4, 35.5, -25]) cube([6, 45, 30]);
translate([-4,35.5,-25]) cube([15,10,30]); translate([-4, 35.5, -25]) cube([15, 10, 30]);
translate([-4,68,-12]) rotate([51,0,0]) cube([10,15,11.1]); translate([-4, 68, -12]) rotate([51, 0, 0]) cube([10, 15, 11.1]);
translate([5.5,66.3,-5.8]) rotate([50,0,0]) cylinder(r=6.1,h = 6, $fn=6); translate([5.5, 66.3, -5.8]) rotate([50, 0, 0]) cylinder(r = 6.1, h = 6, $fn = 6);
}
translate([5.5, 42, 1]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 10, $fn = 30);
translate([5.5, 46.9, 1]) rotate([90, 0, 0]) cylinder(r = 3.1, h = 5, $fn = 30);
//#translate([5.5, 70, -7]) rotate([50, 0, 0]) cylinder(r = 1.6, h = 15, $fn = 60);
translate([5.5, 70, -9]) rotate([50, 0, 0]) cylinder(r = 1.6, h = 15, $fn = 60);
translate([5.5, 65, -4.8]) rotate([50, 0, 0]) cylinder(r = 3.1, h = 17, $fn = 6);
translate([-25, 46.5, -55]) rotate([52, 0, 0]) cube([50, 150, 15]);
translate([-25, 46.5, -66]) rotate([50, 0, 0]) cube([50, 150, 15]);
translate([-25, 86, 4]) rotate([50 + 90, 0, 0]) cube([50, 150, 15]);
translate([-25, 86, 13.5]) rotate([170, 0, 0]) cube([50, 150, 15]);
translate([-25, 86, -12]) rotate([175, 0, 0]) cube([50, 150, 15]);
translate([-5, 35, -25]) cube([20, 45, 16]);
} }
translate([5.5,42,1]) rotate([90,0,0]) cylinder(r=1.6,h = 10, $fn=30);
translate([5.5,46.9,1]) rotate([90,0,0]) cylinder(r=3.1,h = 5, $fn=30);
//#translate([5.5,70,-7]) rotate([50,0,0]) cylinder(r=1.6,h = 15, $fn=60);
translate([5.5,70,-9]) rotate([50,0,0]) cylinder(r=1.6,h = 15, $fn=60);
translate([5.5,65,-4.8]) rotate([50,0,0]) cylinder(r=3.1,h = 17, $fn=6);
translate([-25,46.5,-55]) rotate([52,0,0]) cube([50,150,15]);
translate([-25,46.5,-66]) rotate([50,0,0]) cube([50,150,15]);
translate([-25,86,4]) rotate([50+90,0,0]) cube([50,150,15]);
translate([-25,86,13.5]) rotate([170,0,0]) cube([50,150,15]);
translate([-25,86,-12]) rotate([175,0,0]) cube([50,150,15]);
translate([-5,35,-25]) cube([20,45,16]);
}

View File

@ -5,67 +5,66 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module fan() module fan()
{ {
cube([19.5,15,50]); cube([19.5, 15, 50]);
translate([0,9.5,0]) cube([19.5,5.5,50]); translate([0, 9.5, 0]) cube([19.5, 5.5, 50]);
translate([0,0,0]) cube([19.5,6,50]); translate([0, 0, 0]) cube([19.5, 6, 50]);
translate([-1.50,6,0]) cube([1.5,3,50]); translate([-1.50, 6, 0]) cube([1.5, 3, 50]);
translate([9,-5,40]) cube([1,5.5,10]); translate([9, -5, 40]) cube([1, 5.5, 10]);
} }
module inner_half() module inner_half()
{ {
difference() difference()
{ {
union() union()
{
// outlets
difference()
{ {
union() // outlets
{
translate([-8,12,-63]) rotate([25,0,0]) cube([18,30,6]);
translate([-6,10.2,-60]) rotate([25,0,60]) cube([9,20,4]);
}
translate([-28,0,-55]) rotate([0,0,70]) cube([65,20,15]);
}
// inner body
difference()
{
// base shape
translate([-25,14,-52]) rotate([0,0,0]) cube([25,37,7]);
translate([-14,2,-55]) rotate([0,0,60]) cube([10,20,15]);
translate([-28,0,-55]) rotate([0,0,70]) cube([65,20,15]);
difference() difference()
{ {
// heatblock cut union()
translate([-13,10,-55]) rotate([0,0,0]) cube([20,20,15]); {
translate([-16,21.7,-55]) rotate([0,0,45]) cube([20,20,15]); translate([-8, 12, -63]) rotate([25, 0, 0]) cube([18, 30, 6]);
translate([-6, 10.2, -60]) rotate([25, 0, 60]) cube([9, 20, 4]);
}
translate([-28, 0, -55]) rotate([0, 0, 70]) cube([65, 20, 15]);
}
// inner body
difference()
{
// base shape
translate([-25, 14, -52]) rotate([0, 0, 0]) cube([25, 37, 7]);
translate([-14, 2, -55]) rotate([0, 0, 60]) cube([10, 20, 15]);
translate([-28, 0, -55]) rotate([0, 0, 70]) cube([65, 20, 15]);
difference()
{
// heatblock cut
translate([-13, 10, -55]) rotate([0, 0, 0]) cube([20, 20, 15]);
translate([-16, 21.7, -55]) rotate([0, 0, 45]) cube([20, 20, 15]);
}
// front shape
translate([-8, 15, -55]) rotate([25, 0, 0]) cube([16, 30, 6]);
translate([-25, 0, -55]) rotate([25, 0, 0]) cube([16, 30, 6]);
translate([-15, 51, -58]) rotate([45, 0, 0]) cube([16, 30, 6]);
} }
// front shape
translate([-8,15,-55]) rotate([25,0,0]) cube([16,30,6]);
translate([-25,0,-55]) rotate([25,0,0]) cube([16,30,6]);
translate([-15,51,-58]) rotate([45,0,0]) cube([16,30,6]);
} }
}
difference() difference()
{ {
translate([-16.8,19.5,-55])cylinder(r=6,h = 12, $fn=30); translate([-16.8, 19.5, -55]) cylinder(r = 6, h = 12, $fn = 30);
translate([-16.8,19.5,-55])cylinder(r=4,h = 30, $fn=30); translate([-16.8, 19.5, -55]) cylinder(r = 4, h = 30, $fn = 30);
translate([-25,21,-58]) cube([20,20,16]); translate([-25, 21, -58]) cube([20, 20, 16]);
translate([-18,11,-58]) cube([20,220,16]); translate([-18, 11, -58]) cube([20, 220, 16]);
} }
translate([-6,9,-56]) rotate([25,-15,60]) cube([20,25,5]); translate([-6, 9, -56]) rotate([25, -15, 60]) cube([20, 25, 5]);
translate([-20,50,-54]) rotate([50,0,0]) cube([21,10,20]); translate([-20, 50, -54]) rotate([50, 0, 0]) cube([21, 10, 20]);
translate([-14,2,-48]) rotate([0,50,60]) cube([10,25,18]); translate([-14, 2, -48]) rotate([0, 50, 60]) cube([10, 25, 18]);
translate([-12,3.4,-60]) rotate([25,0,60]) cube([9,20,7]); translate([-12, 3.4, -60]) rotate([25, 0, 60]) cube([9, 20, 7]);
} }
} }
@ -74,21 +73,21 @@ module inner()
{ {
difference() difference()
{ {
union() union()
{ {
inner_half(); inner_half();
mirror([1,0,0]) inner_half(); mirror([1, 0, 0]) inner_half();
// fan cut // fan cut
translate([9.8,48,-53]) rotate([40,0,180]) fan(); translate([9.8, 48, -53]) rotate([40, 0, 180]) fan();
difference() difference()
{ {
translate([-9.7,41.65,-60.7]) rotate([50,0,0]) cube([9.75*2,20,15]); translate([-9.7, 41.65, -60.7]) rotate([50, 0, 0]) cube([9.75 * 2, 20, 15]);
translate([-10,32,-67]) rotate([0,0,0]) cube([20,20,15]); translate([-10, 32, -67]) rotate([0, 0, 0]) cube([20, 20, 15]);
} }
}
translate([-20, 44, -57]) cube([40, 10, 5]);
} }
translate([-20,44,-57]) cube([40,10,5]);
}
} }
module outer_half() module outer_half()
@ -97,98 +96,87 @@ module outer_half()
{ {
union() union()
{ {
translate([-25,13,-53]) rotate([0,0,0]) cube([25,39,9]); translate([-25, 13, -53]) rotate([0, 0, 0]) cube([25, 39, 9]);
translate([-18,45,-55]) rotate([50,0,0]) cube([18,10,15]); translate([-18, 45, -55]) rotate([50, 0, 0]) cube([18, 10, 15]);
} }
// front shape // front shape
translate([-14,0,-55]) rotate([0,0,60]) cube([10,20,15]); translate([-14, 0, -55]) rotate([0, 0, 60]) cube([10, 20, 15]);
// sides // sides
translate([-30,0,-55]) rotate([0,0,70]) cube([65,20,15]); translate([-30, 0, -55]) rotate([0, 0, 70]) cube([65, 20, 15]);
difference() difference()
{ {
translate([-12,9,-55]) rotate([0,0,0]) cube([20,20,15]); translate([-12, 9, -55]) rotate([0, 0, 0]) cube([20, 20, 15]);
translate([-16,20.7,-55]) rotate([0,0,45]) cube([20,20,15]); translate([-16, 20.7, -55]) rotate([0, 0, 45]) cube([20, 20, 15]);
} }
translate([-25,-2,-55]) rotate([25,0,0]) cube([16,30,6]);
translate([-15,54,-58]) rotate([60,0,0]) cube([16,30,6]);
translate([-6,8,-54]) rotate([25,-15,60]) cube([20,25,5]);
translate([-20,51,-52]) rotate([50,0,0]) cube([21,10,20]);
translate([-20,40,-63]) cube([21,10,10]);
}
}
translate([-25, -2, -55]) rotate([25, 0, 0]) cube([16, 30, 6]);
translate([-15, 54, -58]) rotate([60, 0, 0]) cube([16, 30, 6]);
translate([-6, 8, -54]) rotate([25, -15, 60]) cube([20, 25, 5]);
translate([-20, 51, -52]) rotate([50, 0, 0]) cube([21, 10, 20]);
translate([-20, 40, -63]) cube([21, 10, 10]);
}
}
module outer() module outer()
{ {
outer_half(); outer_half();
mirror([1,0,0]) outer_half(); mirror([1, 0, 0]) outer_half();
translate([-11.2,50.5,-52]) rotate([50,0,0]) cube([22.5,2,1.3]); translate([-11.2, 50.5, -52]) rotate([50, 0, 0]) cube([22.5, 2, 1.3]);
translate([9.5,50.5,-52]) rotate([50,0,0]) cube([1.8,2,17.3]); translate([9.5, 50.5, -52]) rotate([50, 0, 0]) cube([1.8, 2, 17.3]);
translate([-11.5,37.7,-42]) rotate([50,0,0]) cube([23,2.6,1.05]); translate([-11.5, 37.7, -42]) rotate([50, 0, 0]) cube([23, 2.6, 1.05]);
} }
module nozzle_fan() module nozzle_fan()
{ {
difference() difference()
{ {
union() union()
{ {
outer(); outer();
translate([10.5,35,-53]) cube([8,5,17]); translate([10.5, 35, -53]) cube([8, 5, 17]);
} }
inner(); inner();
translate([14.5,46,-40.5]) rotate([90,0,0]) cylinder(r=3,h=8,$fn=30); translate([14.5, 46, -40.5]) rotate([90, 0, 0]) cylinder(r = 3, h = 8, $fn = 30);
translate([14.5,45,-40.5]) rotate([90,0,0]) cylinder(r=1.6,h=30,$fn=30); translate([14.5, 45, -40.5]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 30, $fn = 30);
translate([-25,30,-44]) cube([50,5,17]); translate([-25, 30, -44]) cube([50, 5, 17]);
} }
// center fin // center fin
difference() difference()
{ {
translate([-0.3,29,-53]) cube([0.6,20,11]); translate([-0.3, 29, -53]) cube([0.6, 20, 11]);
translate([-2.5,35.5,-41]) rotate([-45,0,0]) cube([5,20,9]); translate([-2.5, 35.5, -41]) rotate([-45, 0, 0]) cube([5, 20, 9]);
translate([-2.5,26,-44]) cube([5,10,9]); translate([-2.5, 26, -44]) cube([5, 10, 9]);
translate([-2.5,26.5,-43]) cube([5,10,9]); translate([-2.5, 26.5, -43]) cube([5, 10, 9]);
} }
// right fin // right fin
difference() difference()
{ {
translate([-8,29,-53]) cube([0.6,20,11]); translate([-8, 29, -53]) cube([0.6, 20, 11]);
translate([-9,31,-42]) rotate([-45,0,0]) cube([5,20,14]); translate([-9, 31, -42]) rotate([-45, 0, 0]) cube([5, 20, 14]);
translate([-9,26,-44]) cube([5,10,9]); translate([-9, 26, -44]) cube([5, 10, 9]);
translate([-9,26.5,-43]) cube([5,10,9]); translate([-9, 26.5, -43]) cube([5, 10, 9]);
} }
// left fin // left fin
difference() difference()
{ {
translate([7.4,29,-53]) cube([0.6,20,11]); translate([7.4, 29, -53]) cube([0.6, 20, 11]);
translate([7,31,-42]) rotate([-45,0,0]) cube([5,20,14]); translate([7, 31, -42]) rotate([-45, 0, 0]) cube([5, 20, 14]);
translate([7,26,-44]) cube([5,10,9]); translate([7, 26, -44]) cube([5, 10, 9]);
translate([7,26.5,-43]) cube([5,10,9]); translate([7, 26.5, -43]) cube([5, 10, 9]);
} }
// front sides // front sides
translate([-13,13,-53]) cube([1,12,3]); translate([-13, 13, -53]) cube([1, 12, 3]);
translate([12,13,-53]) cube([1,12,2]); translate([12, 13, -53]) cube([1, 12, 2]);
translate([-13,17,-52]) cube([1,8,3]); translate([-13, 17, -52]) cube([1, 8, 3]);
translate([12,17,-52]) cube([1,8,3]); translate([12, 17, -52]) cube([1, 8, 3]);
} }
nozzle_fan(); nozzle_fan();

View File

@ -7,36 +7,42 @@
// //
// See http://hydraraptor.blogspot.com/2011/02/polyholes.html // See http://hydraraptor.blogspot.com/2011/02/polyholes.html
// //
function sides(r) = max(round(4 *r),3);
function sides(r) = max(round(4 * r),3);
function correctedRadius(r,n) = 0.1 + r / cos(180 / n); function correctedRadius(r,n) = 0.1 + r / cos(180 / n);
function correctedDiameter(d) = 0.2 + d / cos(180 / sides(d / 2)); function correctedDiameter(d) = 0.2 + d / cos(180 / sides(d / 2));
module polyCircle(r, center = false) { module polyCircle(r, center = false)
{
n = sides(r); n = sides(r);
circle(r = correctedRadius(r,n), $fn = n, center = center); circle(r = correctedRadius(r, n), $fn = n, center = center);
} }
module poly_circle(r, center = false) { module poly_circle(r, center = false)
polyCircle(r, center); {
polyCircle(r, center);
} }
module polyCylinder(r, h, center = false) { module polyCylinder(r, h, center = false)
{
n = sides(r); n = sides(r);
cylinder(h = h, r = correctedRadius(r,n), $fn = n, center = center); cylinder(h = h, r = correctedRadius(r, n), $fn = n, center = center);
} }
module poly_cylinder(r, h, center = false) { module poly_cylinder(r, h, center = false)
polyCylinder(r,h,center); {
polyCylinder(r, h, center);
} }
module polydCylinder(r, center = false) { module polydCylinder(r, center = false)
{
n = sides(r); n = sides(r);
r = correctedRadius(r,n); r = correctedRadius(r, n);
cylinder(h = h, r = r, $fn = n, center = center); cylinder(h = h, r = r, $fn = n, center = center);
translate([0, -r, 0]) translate([0, -r, 0]) cube([r, 2 * r, h]);
cube([r, 2 * r, h]);
} }
module poly_d_cylinder(r, center = false) { module poly_d_cylinder(r, center = false)
polydCylinder(r,center); {
polydCylinder(r, center);
} }

View File

@ -9,14 +9,14 @@ module m3head()
{ {
intersection() intersection()
{ {
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 30); // head cut
translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true);
} }
translate([30,5,17-4]) cube([3.4,3.4,1], center=true); translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true);
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 30); // head cut
} }
module x_carriage_back() module x_carriage_back()
{ {
difference() difference()
@ -24,124 +24,123 @@ module x_carriage_back()
union() union()
{ {
// base block // base block
translate([-16,-39.0,15.1]) cube([33,72,8]); translate([-16, -39.0, 15.1]) cube([33, 72, 8]);
translate([-25.5,-5,15.1]) cube([52,39.5,8]); translate([-25.5, -5, 15.1]) cube([52, 39.5, 8]);
} }
// lower bearing cut // lower bearing cut
translate([-17,-22,7.5]) cube([35,4,10]); translate([-17, -22, 7.5]) cube([35, 4, 10]);
// cables opening // cables opening
translate([-4.5,-18,15]) cube([10,4,10]); translate([-4.5, -18, 15]) cube([10, 4, 10]);
translate([0.5,-18,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 ); translate([0.5, -18, 10]) rotate([0, 0, 90]) cylinder(h = 32, r = 5, $fn = 30);
translate([0.5,-14,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 ); translate([0.5, -14, 10]) rotate([0, 0, 90]) cylinder(h = 32, r = 5, $fn = 30);
translate([-20,-19.5,9]) cube([50,7.5,10]); translate([-20, -19.5, 9]) cube([50, 7.5, 10]);
// bearings // bearings
translate([-15,-25,11.75]) rotate([0,90,0]) cylinder( h=31, r=7.6, $fn=30 ); translate([-15, -25, 11.75]) rotate([0, 90, 0]) cylinder(h = 31, r = 7.6, $fn = 30);
translate([-30,20,11.75]) rotate([0,90,0]) cylinder( h=60, r=7.6, $fn=30 ); translate([-30, 20, 11.75]) rotate([0, 90, 0]) cylinder(h = 60, r = 7.6, $fn = 30);
translate([-17,-25,11.75]) rotate([0,90,0]) cylinder( h=60, r=7, $fn=30 ); translate([-17, -25, 11.75]) rotate([0, 90, 0]) cylinder(h = 60, r = 7, $fn = 30);
translate([-32,20,11.75]) rotate([0,90,0]) cylinder( h=80, r=7, $fn=30 ); translate([-32, 20, 11.75]) rotate([0, 90, 0]) cylinder(h = 80, r = 7, $fn = 30);
// hold together screws // hold together screws
translate([-9.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([-9.5, -36, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([10.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([10.5, -36, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([1,4,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([1, 4, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([13,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([13, 31, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([-10.5,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([-10.5, 31, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([13,31,19]) cylinder( h=50, r=3.1, $fn=30 ); translate([13, 31, 19]) cylinder(h = 50, r = 3.1, $fn = 30);
translate([-10.5,31,19]) cylinder( h=50, r=3.1, $fn=30 ); translate([-10.5, 31, 19]) cylinder(h = 50, r = 3.1, $fn = 30);
// lower screw heads // lower screw heads
translate([-9.5,-36,19]) cylinder( h=6, r=3.1, $fn=30 ); translate([-9.5, -36, 19]) cylinder(h = 6, r = 3.1, $fn = 30);
translate([10.5,-36,19]) cylinder( h=50, r=3.1, $fn=30 ); translate([10.5, -36, 19]) cylinder(h = 50, r = 3.1, $fn = 30);
translate([-12.6,-46,18]) cube([6.2,10,10]); translate([-12.6, -46, 18]) cube([6.2, 10, 10]);
translate([7.4,-46,18]) cube([6.2,10,10]); translate([7.4, -46, 18]) cube([6.2, 10, 10]);
// center screw head // center screw head
translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 ); translate([1, 4, 18]) cylinder(h = 7, r = 3.1, $fn = 30);
// heat cables cut // heat cables cut
translate([0.5,-42.5,0]) rotate([-5,0,0]) cylinder( h=50, r=6, $fn=30 ); translate([0.5, -42.5, 0]) rotate([-5, 0, 0]) cylinder(h = 50, r = 6, $fn = 30);
// cable holder screw // cable holder screw
translate([0.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 ); translate([0.5, -27, 11]) rotate([0, 0, 90]) cylinder(h = 40, r = 1.6, $fn = 30);
translate([0.5,-27,16.5]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 ); translate([0.5, -27, 16.5]) rotate([0, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 6);
// x-carriage screws in belt holders // x-carriage screws in belt holders
translate([11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 ); translate([11.5, -0.5, 10]) rotate([0, 0, 90]) cylinder(h = 40, r = 3, $fn = 30);
translate([-11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 ); translate([-11.5, -0.5, 10]) rotate([0, 0, 90]) cylinder(h = 40, r = 3, $fn = 30);
// nice edges // nice edges
translate([-20.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]); translate([-20.8, -46.1, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([21.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]); translate([21.8, -46.1, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([-24.4,15.2,10]) rotate([0,0,45]) cube([14,10,15]); translate([-24.4, 15.2, 10]) rotate([0, 0, 45]) cube([14, 10, 15]);
translate([26.9,15.2,10]) rotate([0,0,45]) cube([10,14,15]); translate([26.9, 15.2, 10]) rotate([0, 0, 45]) cube([10, 14, 15]);
translate([-19.55,28,10]) rotate([0,0,45]) cube([10,10,15]); translate([-19.55, 28, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([22.05,28,10]) rotate([0,0,45]) cube([10,10,15]); translate([22.05, 28, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([-22,35,21]) rotate([30,0,0]) cube([44,10,10]); translate([-22, 35, 21]) rotate([30, 0, 0]) cube([44, 10, 10]);
translate([-22,35,17]) rotate([30,0,0]) cube([14.5,10,10]); translate([-22, 35, 17]) rotate([30, 0, 0]) cube([14.5, 10, 10]);
translate([10,35,17]) rotate([30,0,0]) cube([14.5,10,10]); translate([10, 35, 17]) rotate([30, 0, 0]) cube([14.5, 10, 10]);
// upper side cuts // upper side cuts
translate([17,25,10]) rotate([0,0,0]) cube([10,10,15]); translate([17, 25, 10]) rotate([0, 0, 0]) cube([10, 10, 15]);
translate([-29.5,25,10]) rotate([0,0,0]) cube([15,15,15]); translate([-29.5, 25, 10]) rotate([0, 0, 0]) cube([15, 15, 15]);
translate([17,22,13]) rotate([0,0,0]) cube([10,10,5]); translate([17, 22, 13]) rotate([0, 0, 0]) cube([10, 10, 5]);
translate([-24.5,22,13]) rotate([0,0,0]) cube([10,10,5]); translate([-24.5, 22, 13]) rotate([0, 0, 0]) cube([10, 10, 5]);
// side edges // side edges
translate([27,-20,16]) rotate([0,-30,0]) cube([10,50,10]); translate([27, -20, 16]) rotate([0, -30, 0]) cube([10, 50, 10]);
translate([-34.2,-20,21]) rotate([0,30,0]) cube([10,50,10]); translate([-34.2, -20, 21]) rotate([0, 30, 0]) cube([10, 50, 10]);
translate([19.5,-55,16]) rotate([0,-30,0]) cube([10,50,10]); translate([19.5, -55, 16]) rotate([0, -30, 0]) cube([10, 50, 10]);
translate([-27.1,-55,21]) rotate([0,30,0]) cube([10,50,10]); translate([-27.1, -55, 21]) rotate([0, 30, 0]) cube([10, 50, 10]);
// inner cable cleanup // inner cable cleanup
translate([-1,-19.5,14]) rotate([0,30,0]) cube([10,7.5,10]); translate([-1, -19.5, 14]) rotate([0, 30, 0]) cube([10, 7.5, 10]);
translate([-5,-19.5,10]) rotate([0,-30,0]) cube([10,7.5,10]); translate([-5, -19.5, 10]) rotate([0, -30, 0]) cube([10, 7.5, 10]);
// filament sensor cable // filament sensor cable
translate([4.5,28.5,12]) rotate([0,0,0]) cube([3.5,4,20]); translate([4.5, 28.5, 12]) rotate([0, 0, 0]) cube([3.5, 4, 20]);
translate([0.5,28.5,12]) rotate([0,0,0]) cube([4.5,7,20]); translate([0.5, 28.5, 12]) rotate([0, 0, 0]) cube([4.5, 7, 20]);
translate([4.5,-5,19.5]) rotate([0,0,0]) cube([3.5,35,4.3]); translate([4.5, -5, 19.5]) rotate([0, 0, 0]) cube([3.5, 35, 4.3]);
translate([4.5,17.5,16.5]) rotate([0,0,0]) cube([3.5,5,4.3]); translate([4.5, 17.5, 16.5]) rotate([0, 0, 0]) cube([3.5, 5, 4.3]);
translate([-1.55,-9.60,19.5]) rotate([0,0,-45]) cube([3.5,10,4]); translate([-1.55, -9.60, 19.5]) rotate([0, 0, -45]) cube([3.5, 10, 4]);
translate([-1.9,-9.95,15]) rotate([45,0,-45]) cube([3.5,10,4]); translate([-1.9, -9.95, 15]) rotate([45, 0, -45]) cube([3.5, 10, 4]);
translate([4.5,29,16]) rotate([45,0,0]) cube([3.5,5,5]); translate([4.5, 29, 16]) rotate([45, 0, 0]) cube([3.5, 5, 5]);
translate([3.5,-4.60,19.5]) rotate([0,0,-15]) cube([3,4,4]); translate([3.5, -4.60, 19.5]) rotate([0, 0, -15]) cube([3, 4, 4]);
// version // version
translate([-14.5,13,22.8]) rotate([0,0,0]) linear_extrude(height = 0.4) translate([-14.5, 13, 22.8]) rotate([0, 0, 0]) linear_extrude(height = 0.4)
{ text("MK3",font = "helvetica:style=Bold", size=6, center=true); } { text("MK3", font = "helvetica:style = Bold", size = 6, center = true); }
translate([-15,3,15.8]) rotate([0,180,0]) linear_extrude(height = 0.8) translate([-15, 3, 15.8]) rotate([0, 180, 0]) linear_extrude(height = 0.8)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); } { text("R2", font = "helvetica:style = Bold", size = 4, center = true); }
translate([-23,2.3,14.3]) cube([9,5.0,1]); translate([-23, 2.3, 14.3]) cube([9, 5.0, 1]);
// upper ziptie left // upper ziptie left
translate([-21.5,-25,0])difference() translate([-21.5, -25, 0]) difference()
{ {
translate([1,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25); translate([1, 45, 12]) rotate([0, 90, 0]) cylinder(r = 8.5, h = 4, $fn = 25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25); translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 7, h = 6, $fn = 25);
} }
translate([19.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]); translate([19.5, 8, 14.5]) rotate([-60, 0, 0]) cube([4, 3, 10]);
translate([-20.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]); translate([-20.5, 8, 14.5]) rotate([-60, 0, 0]) cube([4, 3, 10]);
// upper ziptie right // upper ziptie right
translate([19,-25,0])difference() translate([19, -25, 0]) difference()
{ {
translate([0.5,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25); translate([0.5, 45, 12]) rotate([0, 90, 0]) cylinder(r = 8.5, h = 4, $fn = 25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25); translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 7, h = 6, $fn = 25);
} }
// supports // supports
translate([-17,26,5]) m3head(); translate([-17, 26, 5]) m3head();
translate([-40.5,26,5]) m3head(); translate([-40.5, 26, 5]) m3head();
translate([-29,-1,4]) m3head(); translate([-29, -1, 4]) m3head();
translate([-19.5,-41,5]) m3head(); translate([-19.5, -41, 5]) m3head();
translate([-39.5,-41,5]) m3head(); translate([-39.5, -41, 5]) m3head();
} }
} }
rotate([0,180,0]) x_carriage_back(); rotate([0, 180, 0]) x_carriage_back();

View File

@ -9,18 +9,18 @@ use <bearing.scad>
module belt_cut() module belt_cut()
{ {
rotate([0,0,180]) rotate([0, 0, 180])
{ {
translate([-20,0,0]) cube([39,0.75,15]); translate([-20, 0, 0]) cube([39, 0.75, 15]);
translate([-20,0,5]) rotate([-7,0,0]) cube([39,0.75,10]); translate([-20, 0, 5]) rotate([-7, 0, 0]) cube([39, 0.75, 10]);
translate([-20,0,5]) rotate([10,0,0]) cube([39,0.75,10]); translate([-20, 0, 5]) rotate([10, 0, 0]) cube([39, 0.75, 10]);
for (_step =[-20:2:18]) for (_step = [-20 : 2 : 18])
{ {
translate([_step,0.5,0]) cube([1,1.0,10]); translate([_step, 0.5, 0]) cube([1, 1.0, 10]);
} }
for (_step =[-20:2:18]) for (_step = [-20 : 2 : 18])
{ {
translate([_step,0.5,5]) rotate([-7,0,0]) cube([1,1,10]); translate([_step, 0.5, 5]) rotate([-7, 0, 0]) cube([1, 1, 10]);
} }
} }
} }
@ -28,354 +28,331 @@ module belt_cut()
module x_carriage_base() module x_carriage_base()
{ {
// Small bearing holder // Small bearing holder
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1); translate([-33 / 2, 0, 0]) rotate([0, 0, 90]) horizontal_bearing_base(1);
// Long bearing holder // Long bearing holder
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2); translate([-33 / 2, 45, 0]) rotate([0, 0, 90]) horizontal_bearing_base(2);
// Base plate // Base plate
translate([-34,-14,0]) cube([34.5,70.5,7]); translate([-34, -14, 0]) cube([34.5, 70.5, 7]);
translate([-33,-15,0]) cube([33,7,15]); translate([-33, -15, 0]) cube([33, 7, 15]);
translate([-42.5,53.0,0]) cube([52,6.5,15]); translate([-42.5, 53.0, 0]) cube([52, 6.5, 15]);
difference() difference()
{ {
union() union()
{ {
translate([-12,30,1]) rotate([0,0,45]) cube([6,6,14]); translate([-12, 30, 1]) rotate([0, 0, 45]) cube([6, 6, 14]);
translate([-20,30,1]) rotate([0,0,45]) cube([6,6,14]); translate([-20, 30, 1]) rotate([0, 0, 45]) cube([6, 6, 14]);
} }
translate([-25,38,11]) rotate([43,0,0]) cube([20,8,8]); translate([-25, 38, 11]) rotate([43, 0, 0]) cube([20, 8, 8]);
} }
// upper motor screw block // upper motor screw block
translate([-23,56.8,0]) rotate([0,0,0]) cube([32.5,18.2,8]); translate([-23, 56.8, 0]) rotate([0, 0, 0]) cube([32.5, 18.2, 8]);
// Belt holder base // Belt holder base
translate([-42.5,20,0]) cube([52,16,7]); translate([-42.5, 20, 0]) cube([52, 16, 7]);
// new belt holder base block // new belt holder base block
translate([-42.5,18,7]) cube([52,16.3,8]); translate([-42.5, 18, 7]) cube([52, 16.3, 8]);
} }
module x_carriage_holes() module x_carriage_holes()
{ {
// Small bearing holder holes cutter // Small bearing holder holes cutter
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(1); translate([-33 / 2, 0, 0]) rotate([0, 0, 90]) horizontal_bearing_holes_nozip(1);
// Long bearing holder holes cutter // Long bearing holder holes cutter
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(2); translate([-33 / 2, 45, 0]) rotate([0, 0, 90]) horizontal_bearing_holes_nozip(2);
// upper ziptie right // upper ziptie right
translate([2,0,0]) translate([2, 0, 0])
difference() difference()
{ {
translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8, h=3.5, $fn=25); translate([0.75, 45, 12]) rotate([0, 90, 0]) cylinder(r = 10.8, h = 3.5, $fn = 25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=25); translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 9, h = 6, $fn = 25);
} }
// upper ziptie left // upper ziptie left
translate([-38,0,0]) translate([-38, 0, 0])
difference() difference()
{ {
translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8,h=3.5,$fn=25); translate([0.75, 45, 12]) rotate([0, 90, 0]) cylinder(r = 10.8, h = 3.5, $fn = 25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=25); translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 9, h = 6, $fn = 25);
} }
// upper ziptie head // upper ziptie head
translate([0,52.5,12]) cube([10,10,5]); translate([0, 52.5, 12]) cube([10, 10, 5]);
translate([-45,52.5,12]) cube([13.5,10,5]); translate([-45, 52.5, 12]) cube([13.5, 10, 5]);
// Extruder mounting holes // Extruder mounting holes
translate([-17.5+12,24.5,-1])cylinder(r=1.65, h=20, $fn=25); translate([-17.5 + 12, 24.5, -1]) cylinder(r = 1.65, h = 20, $fn = 25);
translate([-17.5+12,24.5,-0.1])cylinder(r1=2.1,r2=1.65, h=0.5, $fn=25); translate([-17.5 + 12, 24.5, -0.1]) cylinder(r1 = 2.1, r2 = 1.65, h = 0.5, $fn = 25);
translate([-17.5+12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25); translate([-17.5 + 12, 24.5, 12]) cylinder(r = 5.8 / 2, h = 20, $fn = 25);
translate([-16.5 - 12, 24.5, -1]) cylinder(r = 1.65, h = 20, $fn = 25);
translate([-16.5 - 12, 24.5, -0.1]) cylinder(r1 = 2.1, r2 = 1.65, h = 0.5, $fn = 25);
translate([-16.5 - 12, 24.5, 12]) cylinder(r = 5.8 / 2, h = 20, $fn = 25);
translate([-16.5-12,24.5,-1])cylinder(r=1.65, h=20, $fn=25);
translate([-16.5-12,24.5,-0.1])cylinder(r1=2.1,r2=1.65, h=0.5, $fn=25);
translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
// Carriage slimer // Carriage slimer
translate([-55.5+3,19,-1])cube([10,40,30]); translate([-55.5 + 3, 19, -1]) cube([10, 40, 30]);
translate([+12.5-3,19,-1])cube([10,40,30]); translate([12.5 - 3, 19, -1]) cube([10, 40, 30]);
translate([+12.5-3.5-2,30.8,-1])rotate([0,90-65,0])cube([10,55,30]); translate([12.5 - 3.5 - 2, 30.8, -1]) rotate([0, 90 - 65, 0]) cube([10, 55, 30]);
translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]); translate([-55.5 + 6.7 + 2, 19, -10]) rotate([0, -90 + 65, 0]) cube([10, 40, 30]);
} }
module x_carriage_fancy() module x_carriage_fancy()
{ {
// Top right corner // Top right corner
translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]); translate([11.5, 8, 0]) translate([0, 45 + 11.5, -1]) rotate([0, 0, 45]) translate([0, -15, 0]) cube([30, 30, 20]);
// Top left corner // Top left corner
translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]); translate([-33 - 13.5, -5, 0]) translate([0, 45 + 11.5, -1]) rotate([0, 0, 135]) translate([0, -15, 0]) cube([30, 30, 20]);
translate([-27,74.5,9]) rotate([0,45,0]) translate([0,-15,0]) cube([5,25,5]); translate([-27, 74.5, 9]) rotate([0, 45, 0]) translate([0, -15, 0]) cube([5, 25, 5]);
translate([-23,86,16]) rotate([45,0,0]) translate([0,-15,0]) cube([45,5,5]); translate([-23, 86, 16]) rotate([45, 0, 0]) translate([0, -15, 0]) cube([45, 5, 5]);
// bottom side edges // bottom side edges
translate([-40,-15,-5]) rotate([30,0,0]) cube([45,6,15]); translate([-40, -15, -5]) rotate([30, 0, 0]) cube([45, 6, 15]);
translate([-35,-19.2,0]) rotate([0,0,45]) cube([6,6,16]); translate([-35, -19.2, 0]) rotate([0, 0, 45]) cube([6, 6, 16]);
translate([2,-19.2,0]) rotate([0,0,45]) cube([6,6,16]); translate([2, -19.2, 0]) rotate([0, 0, 45]) cube([6, 6, 16]);
translate([2,55.9,12]) rotate([0,0,45]) cube([6,6,16]); translate([2, 55.9, 12]) rotate([0, 0, 45]) cube([6, 6, 16]);
translate([-33.5,55.9,12]) rotate([0,0,45]) cube([6,6,16]); translate([-33.5, 55.9, 12]) rotate([0, 0, 45]) cube([6, 6, 16]);
} }
module cable_tray() module cable_tray()
{ {
// center screw block // center screw block
translate([-21,23,0]) cube([9,12,15]); translate([-21, 23, 0]) cube([9, 12, 15]);
difference() difference()
{ {
union() union()
{ {
translate([-20.8,24.8,0]) rotate([0,0,20]) cube([3,10,15]); translate([-20.8, 24.8, 0]) rotate([0, 0, 20]) cube([3, 10, 15]);
translate([-15.5,25.8,0]) rotate([0,0,-20]) cube([3,10,15]); translate([-15.5, 25.8, 0]) rotate([0, 0, -20]) cube([3, 10, 15]);
} }
translate([-25,34.2,0]) cube([20,10,15]); translate([-25, 34.2, 0]) cube([20, 10, 15]);
} }
translate([6.5,32,10]) cube([3,5,5]);
translate([-42.5,32,10]) cube([4,5,5]);
//Left cable tray
translate([-39.9,11,0]) cube([9,2,15]);
translate([-39.9,5.5,0]) cube([9,2,15]);
//Right cable tray
translate([-2,5.5,0]) cube([11.45,2,15]);
translate([-2,11,7]) cube([11.45,2,8]);
translate([-31,11.5,7]) cube([30,1.5,8]);
difference(){
translate([0,11,0]) cube([9.50,12,7]);
translate([0,6,1])rotate([-30,0,0]) cube([7.5,12,7]);
translate([0,3.5,6])rotate([-60,0,0]) cube([7.5,12,7]);
translate([0,10+3,-1])cube([7.5,11,6]);
}
}
translate([6.5, 32, 10]) cube([3, 5, 5]);
translate([-42.5, 32, 10]) cube([4, 5, 5]);
//Left cable tray
translate([-39.9, 11, 0]) cube([9, 2, 15]);
translate([-39.9, 5.5, 0]) cube([9, 2, 15]);
//Right cable tray
translate([-2, 5.5, 0]) cube([11.45, 2, 15]);
translate([-2, 11, 7]) cube([11.45, 2, 8]);
translate([-31, 11.5, 7]) cube([30, 1.5, 8]);
difference()
{
translate([0, 11, 0]) cube([9.50, 12, 7]);
translate([0, 6, 1]) rotate([-30, 0, 0]) cube([7.5, 12, 7]);
translate([0, 3.5, 6]) rotate([-60, 0, 0]) cube([7.5, 12, 7]);
translate([0, 10 + 3, -1]) cube([7.5, 11, 6]);
}
}
module final_cutout() module final_cutout()
{ {
// cable guide edges // cable guide edges
translate([-44,0,16]) rotate([0,45,0]) cube([5,15,5]); translate([-44, 0, 16]) rotate([0, 45, 0]) cube([5, 15, 5]);
translate([6,0,16]) rotate([0,45,0]) cube([5,15,5]); translate([6, 0, 16]) rotate([0, 45, 0]) cube([5, 15, 5]);
// motor cable opening // motor cable opening
translate([0.5,10+3,-1])cube([7,9.2,6]); translate([0.5, 10 + 3, -1]) cube([7, 9.2, 6]);
// filament hole // filament hole
difference()
{
difference () { union()
{
union() { translate([-14.199, 9.05, 0]) rotate([-5, 0, 22.5]) cylinder(r = 1.62, h = 40, $fn = 8);
translate([-14.199,9.05,0]) rotate([-5,0,22.5]) cylinder(r=1.62, h=40, $fn=8); translate([-14.5, 9.7, 8]) rotate([-5, 0, 22.5]) cylinder(r = 1.62, r2 = 3, h = 8, $fn = 8);
translate([-14.5,9.7,8]) rotate([-5,0,22.5]) cylinder(r=1.62,r2=3, h=8, $fn=8);
} }
//translate([-18,6.7,12]) cube([7,7,5]); //translate([-18, 6.7, 12]) cube([7, 7, 5]);
} }
// bottom back mounting screws // bottom back mounting screws
translate([-6.5,-11,4]) cylinder(r=1.65, h=20, $fn=50); translate([-6.5, -11, 4]) cylinder(r = 1.65, h = 20, $fn = 50);
translate([-26.5,-11,4]) cylinder(r=1.65, h=20, $fn=50); translate([-26.5, -11, 4]) cylinder(r = 1.65, h = 20, $fn = 50);
difference() { difference()
union(){ {
translate([-29.3,-14,10]) cube([5.6,7,2.1]); union()
translate([-09.3,-14,10]) cube([5.6,7,2.1]); {
translate([-29.3, -14, 10]) cube([5.6, 7, 2.1]);
translate([-09.3, -14, 10]) cube([5.6, 7, 2.1]);
}
translate([-36, -8.1, 10]) cube([40, 1, 0.5]);
} }
translate([-36,-8.1,10]) cube([40,1,0.5]);
}
// better printing bridges // better printing bridges
translate([-29.3,-12.65,10.35]) cube([5.6,3.3,2.1]); translate([-29.3, -12.65, 10.35]) cube([5.6, 3.3, 2.1]);
translate([-09.3,-12.65,10.35]) cube([5.6,3.3,2.1]); translate([-09.3, -12.65, 10.35]) cube([5.6, 3.3, 2.1]);
translate([-28.15,-12.65,10.7]) cube([3.3,3.3,2.1]); translate([-28.15, -12.65, 10.7]) cube([3.3, 3.3, 2.1]);
translate([-8.15,-12.65,10.7]) cube([3.3,3.3,2.1]); translate([-8.15, -12.65, 10.7]) cube([3.3, 3.3, 2.1]);
// x-carriage-back mounting screws // x-carriage-back mounting screws
translate([-4,56,0]) cylinder(r=1.7, h=40, $fn=50); translate([-4, 56, 0]) cylinder(r = 1.7, h = 40, $fn = 50);
translate([-27.5,56,0]) cylinder(r=1.7, h=40, $fn=50); translate([-27.5, 56, 0]) cylinder(r = 1.7, h = 40, $fn = 50);
translate([-30.3,53,8]) cube([5.6,8,2]); translate([-30.3, 53, 8]) cube([5.6, 8, 2]);
translate([-6.8,53,8]) cube([5.6,8,2]); translate([-6.8, 53, 8]) cube([5.6, 8, 2]);
// better printing bridges // better printing bridges
translate([-6.8,54.35,8.35]) cube([5.6,3.3,2]); translate([-6.8, 54.35, 8.35]) cube([5.6, 3.3, 2]);
translate([-5.65,54.35,8.7]) cube([3.3,3.3,2]); translate([-5.65, 54.35, 8.7]) cube([3.3, 3.3, 2]);
translate([-30.3,54.35,8.35]) cube([5.6,3.3,2]); translate([-30.3, 54.35, 8.35]) cube([5.6, 3.3, 2]);
translate([-29.15,54.35,8.7]) cube([3.3,3.3,2]); translate([-29.15, 54.35, 8.7]) cube([3.3, 3.3, 2]);
// center mounting screw // center mounting screw
translate([-16,29,0]) cylinder(r=1.65, h=40, $fn=50); translate([-16, 29, 0]) cylinder(r = 1.65, h = 40, $fn = 50);
translate([-18.8,26,10.5]) cube([5.6,12,2.1]); translate([-18.8, 26, 10.5]) cube([5.6, 12, 2.1]);
translate([-21,33,11]) cube([10,8,6]); translate([-21, 33, 11]) cube([10, 8, 6]);
// better printing bridges // better printing bridges
translate([-18.8,27.35,10.9]) cube([5.6,3.3,2.1]); translate([-18.8, 27.35, 10.9]) cube([5.6, 3.3, 2.1]);
translate([-17.65,27.35,11.25]) cube([3.3,3.3,2.1]); translate([-17.65, 27.35, 11.25]) cube([3.3, 3.3, 2.1]);
// opening for power cables to hotend & termistor cable // opening for power cables to hotend & termistor cable
translate([-16.5,-18,-5]) rotate([-5,0,0]) cylinder(r=6, h=40, $fn=30); translate([-16.5, -18, -5]) rotate([-5, 0, 0]) cylinder(r = 6, h = 40, $fn = 30);
} }
module x_carriage_block() module x_carriage_block()
{ {
difference() difference()
{
union()
{ {
union() difference()
{ {
difference() x_carriage_base();
{ x_carriage_holes();
x_carriage_base(); x_carriage_fancy();
x_carriage_holes();
x_carriage_fancy();
}
cable_tray();
} }
final_cutout(); cable_tray();
} }
final_cutout();
}
} }
module x_carriage() module x_carriage()
{ {
difference() difference()
{ {
x_carriage_block(); x_carriage_block();
// upper motor screw
translate([2.5,67.5,-50]) cylinder(r=1.8, h=100, $fn=30);
translate([2.5,67.5,-0.1]) cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
translate([2.5,67.5,5]) cylinder(r=3.2, h=8, $fn=30);
translate([0.5,22.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=7.0, $fn=25);
// cable management cleanup // upper motor screw
difference() translate([2.5, 67.5, -50]) cylinder(r = 1.8, h = 100, $fn = 30);
{ translate([2.5, 67.5, -0.1]) cylinder(r1 = 2.1, r2 = 1.8, h = 0.5, $fn = 25);
translate([2.5,21.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=5.0, $fn=25); translate([2.5, 67.5, 5]) cylinder(r = 3.2, h = 8, $fn = 30);
translate([2,16,-10]) cube([10,6,20]); translate([0.5, 22.5, 0]) rotate([0, 90, 0]) cylinder(r = 5.2, h = 7.0, $fn = 25);
}
// selective infill // cable management cleanup
difference()
translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]); {
translate([8.45,11.5,1]) cube([0.5,1.8,4]); translate([2.5, 21.5, 0]) rotate([0, 90, 0]) cylinder(r = 5.2, h = 5.0, $fn = 25);
translate([2, 16, -10]) cube([10, 6, 20]);
translate([5,-16.4,-1]) rotate([0,45,0]) cube([0.3,0.5,8]); }
translate([5,-10.3,-1]) rotate([0,45,0]) cube([0.3,0.5,8]);
translate([6,-16.5,-1]) cube([1,0.5,5]);
translate([3,-16.5,-1]) cube([2,0.5,5]);
translate([6,-10.2,-1]) cube([1,0.5,5]);
translate([3,-10.2,-1]) cube([2,0.5,5]);
translate([6,7.5,-1]) cube([1,0.5,5]);
translate([6,10.5,-1]) cube([1,0.5,5]);
translate([-19,24,1.5]) cube([6,0.5,12.0]);
//cable openings in guides
translate([-40.8,7.5,0]) rotate([0,20,0]) cube([5,3.5,20]);
translate([-2.9,7.5,18]) rotate([0,80,0]) cube([20,3.55,5]);
// filament sensor connector
translate([-12.5,64,-3]) cube([4,11.2,14]);
translate([-12.5,65.75,-3]) cube([5,2.5,14]);
translate([-12.5,71.75,-3]) cube([5,2.5,14]);
translate([-14.5,67,-3]) cube([4,6,14]);
translate([-14.5,65,4.7]) cube([4,10.2,5]);
translate([-12.5,54.5,8]) cube([3.5,10.2,14]);
translate([-12.5,57.5,9.5]) rotate([35,0,0]) cube([3.5,10.2,14]);
translate([-12.5,58,8]) rotate([0,0,45]) cube([3,3,14]);
translate([-10,58,8]) rotate([0,0,45]) cube([3,3,14]);
translate([0,-0.5,0]) left_belt_cut();
translate([0,0.5,0]) right_belt_cut();
//version
translate([-2,-8,0.5]) rotate([0,180,0]) linear_extrude(height = 0.6)
{ text("R3",font = "helvetica:style=Bold", size=5, center=true); }
// selective infill
translate([5, -15.4, -1]) rotate([0, 45, 0]) cube([0.3, 4.6, 8]);
translate([8.45, 11.5, 1]) cube([0.5, 1.8, 4]);
translate([5, -16.4, -1]) rotate([0, 45, 0]) cube([0.3, 0.5, 8]);
translate([5, -10.3, -1]) rotate([0, 45, 0]) cube([0.3, 0.5, 8]);
translate([6, -16.5, -1]) cube([1, 0.5, 5]);
translate([3, -16.5, -1]) cube([2, 0.5, 5]);
translate([6, -10.2, -1]) cube([1, 0.5, 5]);
translate([3, -10.2, -1]) cube([2, 0.5, 5]);
translate([6, 7.5, -1]) cube([1, 0.5, 5]);
translate([6, 10.5, -1]) cube([1, 0.5, 5]);
translate([-19, 24, 1.5]) cube([6, 0.5, 12.0]);
//cable openings in guides
translate([-40.8, 7.5, 0]) rotate([0, 20, 0]) cube([5, 3.5, 20]);
translate([-2.9, 7.5, 18]) rotate([0, 80, 0]) cube([20, 3.55, 5]);
// filament sensor connector
translate([-12.5, 64, -3]) cube([4, 11.2, 14]);
translate([-12.5, 65.75, -3]) cube([5, 2.5, 14]);
translate([-12.5, 71.75, -3]) cube([5, 2.5, 14]);
translate([-14.5, 67, -3]) cube([4, 6, 14]);
translate([-14.5, 65, 4.7]) cube([4, 10.2, 5]);
translate([-12.5, 54.5, 8]) cube([3.5, 10.2, 14]);
translate([-12.5, 57.5, 9.5]) rotate([35, 0, 0]) cube([3.5, 10.2, 14]);
translate([-12.5, 58, 8]) rotate([0, 0, 45]) cube([3, 3, 14]);
translate([-10, 58, 8]) rotate([0, 0, 45]) cube([3, 3, 14]);
translate([0, -0.5, 0]) left_belt_cut();
translate([0, 0.5, 0]) right_belt_cut();
//version
translate([-2, -8, 0.5]) rotate([0, 180, 0]) linear_extrude(height = 0.6)
{ text("R3", font = "helvetica:style = Bold", size = 5, center = true); }
} }
} }
module left_belt_cut() module left_belt_cut()
{ {
translate([-22.5, 30.2, 7]) cylinder(r = 1.5, h = 100, $fn = 30);
translate([-22.5,30.2,7]) cylinder(r=1.5, h=100, $fn=30); translate([-23.0, 20, 7]) cube([2, 10, 30]);
translate([-23.0,20,7]) cube([2,10,30]); translate([-56.5, 28.5, 7]) belt_cut();
translate([-56.5,28.5,7]) belt_cut(); translate([13.5, 20.5, 0]) rotate([0, 0, 25])
translate([13.5,20.5,0]) rotate([0,0,25]) {
difference()
{ {
difference() translate([-56.5, 28.5, 7]) belt_cut();
{ translate([-80, 25, 7]) cube([37.5, 10, 30]);
translate([-56.5,28.5,7]) belt_cut();
translate([-80,25,7]) cube([37.5,10,30]);
}
} }
translate([13.2,2.38,0]) rotate([0,0,0])
{
difference()
{
translate([-56.5,28.5,7]) belt_cut();
translate([-82.42,25,7]) cube([37.5,10,30]);
}
}
translate([-45,17.6,4]) rotate([0,0,-15]) cube([10,3,30]);
translate([-31.5,30.4,10]) rotate([-10,0,15]) cylinder(r=0.2, h=100, $fn=30);
translate([-31.6,30.75,7]) rotate([0,0,0]) cylinder(r=0.2, h=100, $fn=30);
} }
translate([13.2, 2.38, 0]) rotate([0, 0, 0])
{
difference()
{
translate([-56.5, 28.5, 7]) belt_cut();
translate([-82.42, 25, 7]) cube([37.5, 10, 30]);
}
}
translate([-45, 17.6, 4]) rotate([0, 0, -15]) cube([10, 3, 30]);
translate([-31.5, 30.4, 10]) rotate([-10, 0, 15]) cylinder(r = 0.2, h = 100, $fn = 30);
translate([-31.6, 30.75, 7]) rotate([0, 0, 0]) cylinder(r = 0.2, h = 100, $fn = 30);
}
module right_belt_cut() module right_belt_cut()
{ {
// right belt cut // right belt cut
translate([-9.6,29.7,7]) cylinder(r=1.5, h=100, $fn=30); translate([-9.6, 29.7, 7]) cylinder(r = 1.5, h = 100, $fn = 30);
translate([-11.1,19.8,7]) cube([2,10,30]); translate([-11.1, 19.8, 7]) cube([2, 10, 30]);
translate([22.5,25.5,7]) belt_cut(); translate([22.5, 25.5, 7]) belt_cut();
translate([66.65,1.95,0]) rotate([0,0,0]) translate([66.65, 1.95, 0]) rotate([0, 0, 0])
{ {
difference() difference()
{ {
translate([-56.5,28.5,7]) belt_cut(); translate([-56.5, 28.5, 7]) belt_cut();
translate([-71.55,25,7]) cube([37.5,10,30]); translate([-71.55, 25, 7]) cube([37.5, 10, 30]);
} }
} }
translate([43.2,-30.25,0]) rotate([0,0,-30]) translate([43.2, -30.25, 0]) rotate([0, 0, -30])
{ {
difference() difference()
{ {
translate([-56.5,28.5,7]) belt_cut(); translate([-56.5, 28.5, 7]) belt_cut();
translate([-82.1,25,7]) cube([10,10,30]); translate([-82.1, 25, 7]) cube([10, 10, 30]);
translate([-61.5,25,7]) cube([20.5,10,30]); translate([-61.5, 25, 7]) cube([20.5, 10, 30]);
} }
} }
translate([2,14.6,7]) rotate([0,0,15]) cube([10,3,30]); translate([2, 14.6, 7]) rotate([0, 0, 15]) cube([10, 3, 30]);
translate([-5.1,30,10]) rotate([-10,0,-15]) cylinder(r=0.2, h=100, $fn=30); translate([-5.1, 30, 10]) rotate([-10, 0, -15]) cylinder(r = 0.2, h = 100, $fn = 30);
translate([-5,30.3,7]) rotate([0,0,0]) cylinder(r=0.2, h=100, $fn=30); translate([-5, 30.3, 7]) rotate([0, 0, 0]) cylinder(r = 0.2, h = 100, $fn = 30);
} }
x_carriage(); x_carriage();

View File

@ -10,49 +10,45 @@ use <x-end.scad>
module x_end_idler_holes() module x_end_idler_holes()
{ {
x_end_holes(); x_end_holes();
translate([0,3.5,0]) translate([0, 3.5, 0])
{ {
// pulley screw // pulley screw
translate(v=[0,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=50); translate(v = [0, -19, 30.25]) rotate(a = [0, -90, 0]) cylinder(h = 80, r = 1.55, $fn = 50);
translate(v=[-4,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 4, r=3, $fn=50); translate(v = [-4, -19, 30.25]) rotate(a = [0, -90, 0]) cylinder(h = 4, r = 3, $fn = 50);
translate(v = [-21.5, -19, 30.25]) rotate([0, -90, 0])
{
rotate([0, 0, 30]) cylinder(h = 4, r = 3.1, $fn = 6);
}
translate(v = [-24, -19, 30.25]) rotate([0, -90, 0])
{
rotate([0, 0, 30]) cylinder(h = 4, r1 = 3.1, r2 = 7, $fn = 6);
}
translate(v = [-4.5, -19, 30.25]) rotate(a = [0, -90, 0]) cylinder(h = 1, r2 = 3, r1 = 4, $fn = 50);
translate(v=[-21.5,-19,30.25]) rotate([0,-90,0]){
rotate([0,0,30])cylinder( h = 4, r = 3.1, $fn=6);
}
translate(v=[-24,-19,30.25]) rotate([0,-90,0]){
rotate([0,0,30])cylinder( h = 4, r1 = 3.1, r2 = 7, $fn=6);
}
translate(v=[-4.5,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 1, r2=3, r1=4, $fn=50);
// pulley side cut // pulley side cut
translate(v=[-9,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 9, r=9.5, $fn=30); translate(v = [-9, -19, 30.25]) rotate(a = [0, -90, 0]) cylinder(h = 9, r = 9.5, $fn = 30);
translate([-19,-35,21.25]) cube([10,20,18]); translate([-19, -35, 21.25]) cube([10, 20, 18]);
translate([-16.1,-35,21.3]) rotate([0,45,0]) cube([5,20,5]); translate([-16.1, -35, 21.3]) rotate([0, 45, 0]) cube([5, 20, 5]);
translate([-16.1,-35,39.25]) rotate([0,45,0]) cube([5,20,5]); translate([-16.1, -35, 39.25]) rotate([0, 45, 0]) cube([5, 20, 5]);
}
} }
}
module waste_pocket() module waste_pocket()
{ {
// waste pocket // waste pocket
translate([-15,-1,6]) rotate([90,0,0]) cylinder( h=5, r=5, $fn=30); translate([-15, -1, 6]) rotate([90, 0, 0]) cylinder(h = 5, r = 5, $fn = 30);
translate([-15,-1,51]) rotate([90,0,0]) cylinder( h=5, r=5, $fn=30); translate([-15, -1, 51]) rotate([90, 0, 0]) cylinder(h = 5, r = 5, $fn = 30);
translate([-15,-5.9,6]) rotate([90,0,0]) cylinder( h=3, r1=5, r2=4.3, $fn=30); translate([-15, -5.9, 6]) rotate([90, 0, 0]) cylinder(h = 3, r1 = 5, r2 = 4.3, $fn = 30);
translate([-15,-5.9,51]) rotate([90,0,0]) cylinder( h=3, r=5, r2=4.3, $fn=30); translate([-15, -5.9, 51]) rotate([90, 0, 0]) cylinder(h = 3, r = 5, r2 = 4.3, $fn = 30);
// opening window // opening window
translate([-17,-1,51]) rotate([90,0,0]) cube([4,15,4]); translate([-17, -1, 51]) rotate([90, 0, 0]) cube([4, 15, 4]);
translate([-17,-1,-1]) rotate([90,0,0]) cube([4,15,4]); translate([-17, -1, -1]) rotate([90, 0, 0]) cube([4, 15, 4]);
} }
@ -65,141 +61,110 @@ module x_end_idler_base()
x_end_base(); x_end_base();
difference() difference()
{ {
translate(v = [-6.5, -21, 13.5]) cube([1, 12.5, 42]);
translate(v=[-6.5,-21,13.5]) cube([1,12.5,42]); translate([-24, -11.5, 19]) cube([20, 10, 24]);
translate(v = [-6.5, -10, 55.5]) rotate([180, -45, 0]) cube([1.5, 19, 5]);
translate(v = [-6.5, -29, 13.5]) rotate([0, 45, 0]) cube([1.5, 19, 5]);
translate([-24,-11.5,19]) cube([20,10,24]); translate(v = [-5.5, -19, 13.5]) rotate([90, 0, -35]) cube([1.5, 45, 6]);
translate(v=[-6.5,-10,55.5]) rotate([180,-45,0]) cube([1.5,19,5]);
translate(v=[-6.5,-29,13.5]) rotate([0,45,0]) cube([1.5,19,5]);
translate(v=[-5.5,-19,13.5]) rotate([90,0,-35]) cube([1.5,45,6]);
} }
// pulley nut support // pulley nut support
difference() { difference()
translate(v=[-23.5,-15.5,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 1,r1=5.5, r2=3.7, $fn=30); {
translate([-26,-11.5,19]) cube([20,10,24]); translate(v = [-23.5, -15.5, 30.25]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 30]) cylinder(h = 1, r1 = 5.5, r2 = 3.7, $fn = 30);
translate([-26, -11.5, 19]) cube([20, 10, 24]);
}
}
} }
x_end_idler_holes(); x_end_idler_holes();
} }
translate([-15,10.5,6]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30); translate([-15, 10.5, 6]) rotate([90, 0, 0]) cylinder(h = 13, r = 6, $fn = 30);
translate([-15,10.5,51]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30); translate([-15, 10.5, 51]) rotate([90, 0, 0]) cylinder(h = 13, r = 6, $fn = 30);
difference() difference()
{ {
translate(v=[-19,-16.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 1, r1=9, r2=12, $fn=30); translate(v = [-19, -16.5, 30.25]) rotate(a = [0, -90, 0]) cylinder(h = 1, r1 = 9, r2 = 12, $fn = 30);
translate([-25,-11.5,19]) cube([20,10,24]); translate([-25, -11.5, 19]) cube([20, 10, 24]);
translate(v=[0,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=30); translate(v = [0, -15.5, 30.25]) rotate(a = [0, -90, 0]) cylinder(h = 80, r = 1.55, $fn = 30);
} }
// nut trap print supoorts // nut trap print supoorts
translate(v = [-5.8, -13.149, 13.5]) rotate([0, 0, 45]) cube(size = [10, 2.1, 1], center = true);
translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true); translate(v = [-9.8, -11, 13.7]) rotate([0, 0, 135]) cube(size = [8, 2.1, 0.4], center = true);
translate(v = [-5.2, -8, 13.7]) rotate([0, 0, 135]) cube(size = [8, 2.1, 0.4], center = true);
translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); translate(v = [-8.8, -8.55, 13.5]) rotate([0, 0, 45]) cube(size = [8, 2.1, 1], center = true);
translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
} }
module selective_infill() module selective_infill()
mirror([0,1,0]) translate([-50, -33, 0.6]) mirror([0, 1, 0]) translate([-50, -33, 0.6])
{ {
difference() difference()
{ {
union() union()
{ {
difference() difference()
{ {
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=11.7, $fn=30); translate([50, 50, 0.6]) rotate([0, 0, 90]) cylinder(h = 6, r = 11.7, $fn = 30);
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=11.5, $fn=30); translate([50, 50, -1]) rotate([0, 0, 90]) cylinder(h = 10, r = 11.5, $fn = 30);
} }
difference() difference()
{ {
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=10.7, $fn=30); translate([50, 50, 0.6]) rotate([0, 0, 90]) cylinder(h = 6, r = 10.7, $fn = 30);
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=10.5, $fn=30); translate([50, 50, -1]) rotate([0, 0, 90]) cylinder(h = 10, r = 10.5, $fn = 30);
} }
difference() difference()
{ {
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9.9, $fn=30); translate([50, 50, 0.6]) rotate([0, 0, 90]) cylinder(h = 6, r = 9.9, $fn = 30);
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=9.7, $fn=30); translate([50, 50, -1]) rotate([0, 0, 90]) cylinder(h = 10, r = 9.7, $fn = 30);
} }
difference() difference()
{ {
translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9, $fn=30); translate([50, 50, 0.6]) rotate([0, 0, 90]) cylinder(h = 6, r = 9, $fn = 30);
translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=8.8, $fn=30); translate([50, 50, -1]) rotate([0, 0, 90]) cylinder(h = 10, r = 8.8, $fn = 30);
} }
} }
translate([57.5,50.5,-1]) rotate([0,0,45]) cube([8,10,9]); translate([57.5, 50.5, -1]) rotate([0, 0, 45]) cube([8, 10, 9]);
translate([52,30.5,-1]) rotate([0,0,45]) cube([10,20,20]); translate([52, 30.5, -1]) rotate([0, 0, 45]) cube([10, 20, 20]);
translate([32,35.5,-1]) cube([8,30,9]); translate([32, 35.5, -1]) cube([8, 30, 9]);
} }
} }
module x_end_idler() module x_end_idler()
{ {
mirror([0,1,0]) mirror([0, 1, 0])
difference() difference()
{ {
x_end_idler_base(); x_end_idler_base();
waste_pocket(); waste_pocket();
translate(v=[-8,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 20, r=1.55, $fn=30); translate(v = [-8, -15.5, 30.25]) rotate(a = [0, -90, 0]) cylinder(h = 20, r = 1.55, $fn = 30);
translate([-25,7.5,-1]) rotate([0,0,45]) cube([10,10,100]); translate([-25, 7.5, -1]) rotate([0, 0, 45]) cube([10, 10, 100]);
//version //version
translate([-23.7,-25,2]) rotate([90,0,90]) linear_extrude(height = 0.6) translate([-23.7, -25, 2]) rotate([90, 0, 90]) linear_extrude(height = 0.6)
{ text("R3",font = "helvetica:style=Bold", size=4, center=true); } { text("R3", font = "helvetica:style = Bold", size = 4, center = true); }
} }
// bearings stop // bearings stop
difference() difference()
{ {
translate([0,0,57]) rotate([0,0,90]) cylinder( h=1, r=8, $fn=30); translate([0, 0, 57]) rotate([0, 0, 90]) cylinder(h = 1, r = 8, $fn = 30);
translate([0,0,56.9]) rotate([0,0,90]) cylinder( h=0.5, r1=8, r2=7,$fn=30); translate([0, 0, 56.9]) rotate([0, 0, 90]) cylinder(h = 0.5, r1 = 8, r2 = 7, $fn = 30);
translate([0,0,56.5]) rotate([0,0,90]) cylinder( h=2, r=7, $fn=30); translate([0, 0, 56.5]) rotate([0, 0, 90]) cylinder(h = 2, r = 7, $fn = 30);
translate([0.2,-0.5,50]) rotate([0,0,40]) cube([12,1,10]); translate([0.2, -0.5, 50]) rotate([0, 0, 40]) cube([12, 1, 10]);
} }
// bearings spacer // bearings spacer
difference() difference()
{ {
translate([0,0,26]) rotate([0,0,90]) cylinder( h=6, r=8, $fn=30); translate([0, 0, 26]) rotate([0, 0, 90]) cylinder(h = 6, r = 8, $fn = 30);
translate([0,0,25]) rotate([0,0,90]) cylinder( h=8, r=7.55, $fn=60); translate([0, 0, 25]) rotate([0, 0, 90]) cylinder(h = 8, r = 7.55, $fn = 60);
translate([0,0,25.9]) rotate([0,0,90]) cylinder( h=2, r2=7.5, r1=7.7,$fn=30); translate([0, 0, 25.9]) rotate([0, 0, 90]) cylinder(h = 2, r2 = 7.5, r1 = 7.7, $fn = 30);
translate([0,0,31.4]) rotate([0,0,90]) cylinder( h=2, r1=7.5, r2=8.3,$fn=30); translate([0, 0, 31.4]) rotate([0, 0, 90]) cylinder(h = 2, r1 = 7.5, r2 = 8.3, $fn = 30);
rotate([0,0,310]) translate([-2.5,0,26]) cube([5,15,10]);
rotate([0,0,310-120]) translate([-2.5,0,26]) cube([5,15,10]);
rotate([0,0,310-240]) translate([-2.5,0,26]) cube([5,15,10]);
}
rotate([0, 0, 310]) translate([-2.5, 0, 26]) cube([5, 15, 10]);
rotate([0, 0, 310 - 120]) translate([-2.5, 0, 26]) cube([5, 15, 10]);
rotate([0, 0, 310 - 240]) translate([-2.5, 0, 26]) cube([5, 15, 10]);
}
} }
difference() difference()
@ -207,12 +172,11 @@ difference()
union() union()
{ {
x_end_idler(); x_end_idler();
translate([-8,15,13.0]) rotate([0,0,-45.4]) cube([10,1.5,1]); translate([-8, 15, 13.0]) rotate([0, 0, -45.4]) cube([10, 1.5, 1]);
} }
// chamfers // chamfers
translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]); translate([-47, -40, 60]) rotate([0, 45, 0]) cube([20, 80, 20]);
translate([-20,10.5,69]) rotate([0,45,0]) cube([20,20,20]); translate([-20, 10.5, 69]) rotate([0, 45, 0]) cube([20, 20, 20]);
translate([-25,37,49]) rotate([45,0,0]) cube([30,20,20]); translate([-25, 37, 49]) rotate([45, 0, 0]) cube([30, 20, 20]);
} }

View File

@ -10,55 +10,55 @@ use <x-end.scad>
module x_end_motor_base() module x_end_motor_base()
{ {
x_end_base(); x_end_base();
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true); translate(v = [-15, 31, 26.5]) cube(size = [17, 44, 53], center = true);
} }
module x_end_motor_holes() module x_end_motor_holes()
{ {
x_end_holes(); x_end_holes();
// Position to place // Position to place
translate(v=[-1,32,30.25]) translate(v = [-1, 32, 30.25])
{ {
// Belt hole // Belt hole
translate(v=[-19,-21,-12]) cube(size = [10,25,22]); translate(v = [-19, -21, -12]) cube(size = [10, 25, 22]);
// Motor mounting holes // Motor mounting holes
translate(v=[0,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=30, r=1.55, $fn=60); translate(v = [0, -15.5, 15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 30, r = 1.55, $fn = 60);
translate(v=[0,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60); translate(v = [0, -15.5, 15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 18, r2 = 1.55, r1 = 1.7, $fn = 60);
translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.05, $fn=60); translate(v = [1, -15.5, 15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.05, $fn = 60);
translate(v=[20,-15,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, -15, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,-15,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, -15, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, -15.5, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, -15.5, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
translate(v=[20,-16,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, -16, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,-16,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, -16, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
translate(v=[20,-16.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, -16.5, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,-16.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, -16.5, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
translate(v=[20,16.,-15.0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, 16, -15.0]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,16.,-15.0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, 16, -15.0]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, 15.5, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, 15.5, -15.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
translate(v=[20,15,-16]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, 15, -16]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,15,-16]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, 15, -16]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
translate(v=[20,14.5,-16.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); translate(v = [20, 14.5, -16.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 1.6, $fn = 30);
translate(v=[1,14.5,-16.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v = [1, 14.5, -16.5]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 10, r = 3.1, $fn = 30);
// Material saving cutout
translate(v=[-10,12,12]) cube(size = [60,42,42], center = true);
translate(v=[-25,10.5,-11]) rotate([45,0,0]) cube(size = [60,10,10]);
translate(v=[-25,21,-11]) rotate([45,0,0]) cube(size = [60,10,10]);
// Material saving cutout // Material saving cutout
translate(v=[-10,41,-30.5]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true); translate(v = [-10, 12, 12]) cube(size = [60, 42, 42], center = true);
translate(v = [-25, 10.5, -11]) rotate([45, 0, 0]) cube(size = [60, 10, 10]);
translate(v = [-25, 21, -11]) rotate([45, 0, 0]) cube(size = [60, 10, 10]);
translate([-15,-2,-33]) rotate([-45,0,0]) cylinder(h=25, r=1.7, $fn=30);
translate([-15,-2,-33]) rotate([-45,0,0]) cylinder(h=28-18, r=3.2, $fn=30); // Material saving cutout
translate([-35+2.8,10,-25]) rotate([45,0,0]) cube(size = [20,2,5.6]); translate(v = [-10, 41, -30.5]) rotate(a = [45, 0, 0]) cube(size = [60, 42, 42], center = true);
translate([-15, -2, -33]) rotate([-45, 0, 0]) cylinder(h = 25, r = 1.7, $fn = 30);
translate([-15, -2, -33]) rotate([-45, 0, 0]) cylinder(h = 28 - 18, r = 3.2, $fn = 30);
translate([-35 + 2.8, 10, -25]) rotate([45, 0, 0]) cube(size = [20, 2, 5.6]);
} }
} }
@ -69,83 +69,71 @@ module x_end_motor_shaft_cutout()
{ {
difference() difference()
{ {
translate(v=[0,32,30]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6); translate(v = [0, 32, 30]) rotate(a = [0, -90, 0]) rotate(a = [0, 0, 90]) cylinder(h = 70, r = 17, $fn = 6);
translate(v=[-10,-17+32,30]) cube(size = [60,2,10], center = true); translate(v = [-10, -17 + 32, 30]) cube(size = [60, 2, 10], center = true);
translate(v=[-10,-8+32,-15.5+30]) rotate(a=[60,0,0]) cube(size = [60,2,10], center = true); translate(v = [-10, -8 + 32, -15.5 + 30]) rotate(a = [60, 0, 0]) cube(size = [60, 2, 10], center = true);
translate(v=[-10,8+32,-15.5+30]) rotate(a=[-60,0,0]) cube(size = [60,2,10], center = true); translate(v = [-10, 8 + 32, -15.5 + 30]) rotate(a = [-60, 0, 0]) cube(size = [60, 2, 10], center = true);
} }
translate(v=[-30,25.2,-11.8 +30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3, $fn=30); translate(v = [-30, 25.2, -11.8 + 30]) rotate(a = [0, 90, 0]) cylinder(h = 30, r = 3, $fn = 30);
translate(v=[-30,19.05,30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3.5, $fn=100); translate(v = [-30, 19.05, 30]) rotate(a = [0, 90, 0]) cylinder(h = 30, r = 3.5, $fn = 100);
} }
} }
// Final part // Final part
module x_end_motor() module x_end_motor()
{ {
difference() difference()
{ {
x_end_motor_base(); x_end_motor_base();
x_end_motor_shaft_cutout(); x_end_motor_shaft_cutout();
x_end_motor_holes(); x_end_motor_holes();
// waste pocket
// waste pocket translate([-15, 7, 6]) rotate([90, 0, 0]) cylinder(h = 3.5, r = 5, $fn = 30);
translate([-15,7,6]) rotate([90,0,0]) cylinder(h=3.5, r=5, $fn=30); translate([-15, 7, 51]) rotate([90, 0, 0]) cylinder(h = 3.5, r = 5, $fn = 30);
translate([-15,7,51]) rotate([90,0,0]) cylinder(h=3.5, r=5, $fn=30); translate([-15, 3.5, 6]) rotate([90, 0, 0]) cylinder(h = 3, r1 = 5, r2 = 4, $fn = 30);
translate([-15,3.5,6]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30); translate([-15, 3.5, 51]) rotate([90, 0, 0]) cylinder(h = 3, r1 = 5, r2 = 4, $fn = 30);
translate([-15,3.5,51]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
// rod contact window
// rod contact window translate([-17, 3, 55]) cube([4, 4, 10]);
translate([-17,3,55]) cube([4,4,10]); translate([-17, 3, -8]) cube([4, 4, 10]);
translate([-17,3,-8]) cube([4,4,10]); translate([-30, -30, 58]) cube([30, 30, 10]);
translate([-30,-30,58]) cube([30,30,10]);
// version
// version translate([-23.2, -20, 2]) rotate([90, 0, 270]) linear_extrude(height = 0.6)
translate([-23.2,-20,2]) rotate([90,0,270]) linear_extrude(height = 0.6) { text("R3", font = "helvetica:style = Bold", size = 4, center = true); }
{ text("R3",font = "helvetica:style=Bold", size=4, center=true); } }
}
translate([-15, 10, 6]) rotate([90, 0, 0]) cylinder(h = 3, r = 5, $fn = 30);
translate([-15, 10, 51]) rotate([90, 0, 0]) cylinder(h = 3, r = 5, $fn = 30);
translate([-15,10,6]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30);
translate([-15,10,51]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30);
// bearing stop // bearing stop
difference() difference()
{
translate([0,0,57]) rotate([0,0,90]) cylinder( h=1, r=8, $fn=30);
translate([0,0,56.9]) rotate([0,0,90]) cylinder( h=0.5, r1=8, r2=7,$fn=30);
translate([0,0,56.5]) rotate([0,0,90]) cylinder( h=2, r=7, $fn=30);
translate([-0.18,-0.5,50]) rotate([0,0,-40]) cube([12,1,10]);
}
// bearings spacer
rotate([0,0,45]) difference()
{ {
translate([0,0,26]) rotate([0,0,90]) cylinder( h=6, r=8, $fn=30); translate([0, 0, 57]) rotate([0, 0, 90]) cylinder(h = 1, r = 8, $fn = 30);
translate([0,0,25]) rotate([0,0,90]) cylinder( h=8, r=7.55, $fn=60); translate([0, 0, 56.9]) rotate([0, 0, 90]) cylinder(h = 0.5, r1 = 8, r2 = 7, $fn = 30);
translate([0,0,25.9]) rotate([0,0,90]) cylinder( h=2, r2=7.5, r1=7.7,$fn=30); translate([0, 0, 56.5]) rotate([0, 0, 90]) cylinder(h = 2, r = 7, $fn = 30);
translate([0,0,31.4]) rotate([0,0,90]) cylinder( h=2, r1=7.5, r2=8.3,$fn=30); translate([-0.18, -0.5, 50]) rotate([0, 0, -40]) cube([12, 1, 10]);
rotate([0,0,310]) translate([-2.5,0,26]) cube([5,15,10]);
rotate([0,0,310-120]) translate([-2.5,0,26]) cube([5,15,10]);
rotate([0,0,310-240]) translate([-2.5,0,26]) cube([5,15,10]);
} }
// bearings spacer
rotate([0, 0, 45]) difference()
{
translate([0, 0, 26]) rotate([0, 0, 90]) cylinder(h = 6, r = 8, $fn = 30);
translate([0, 0, 25]) rotate([0, 0, 90]) cylinder(h = 8, r = 7.55, $fn = 60);
translate([0, 0, 25.9]) rotate([0, 0, 90]) cylinder(h = 2, r2 = 7.5, r1 = 7.7, $fn = 30);
translate([0, 0, 31.4]) rotate([0, 0, 90]) cylinder(h = 2, r1 = 7.5, r2 = 8.3, $fn = 30);
rotate([0, 0, 310]) translate([-2.5, 0, 26]) cube([5, 15, 10]);
rotate([0, 0, 310 - 120]) translate([-2.5, 0, 26]) cube([5, 15, 10]);
rotate([0, 0, 310 - 240]) translate([-2.5, 0, 26]) cube([5, 15, 10]);
}
// nut trap print supoorts // nut trap print supoorts
translate(v = [-5.8, -13.149, 13.5]) rotate([0, 0, 45]) cube(size = [10, 2.1, 1], center = true);
translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true); translate(v = [-9.8, -11, 13.7]) rotate([0, 0, 135]) cube(size = [8, 2.1, 0.4], center = true);
translate(v = [-5.2, -8, 13.7]) rotate([0, 0, 135]) cube(size = [8, 2.1, 0.4], center = true);
translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); translate(v = [-8.8, -8.55, 13.5]) rotate([0, 0, 45]) cube(size = [8, 2.1, 1], center = true);
translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
} }
difference() difference()
@ -153,22 +141,11 @@ difference()
union() union()
{ {
x_end_motor(); x_end_motor();
translate([-8,-17,13.0]) rotate([0,0,44.7]) cube([10,1.5,1]); translate([-8, -17, 13.0]) rotate([0, 0, 44.7]) cube([10, 1.5, 1]);
} }
//chamfers //chamfers
translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]); translate([-47, -40, 60]) rotate([0, 45, 0]) cube([20, 80, 20]);
translate([-20,-30.5,69]) rotate([0,45,0]) cube([20,20,20]); translate([-20, -30.5, 69]) rotate([0, 45, 0]) cube([20, 20, 20]);
translate([-25,-37,49]) rotate([45,0,0]) cube([30,20,20]); translate([-25, -37, 49]) rotate([45, 0, 0]) cube([30, 20, 20]);
translate([-25,23.5,49]) rotate([45,0,0]) cube([30,20,20]); translate([-25, 23.5, 49]) rotate([45, 0, 0]) cube([30, 20, 20]);
} }

View File

@ -11,140 +11,107 @@ rod_distance = 45;
module x_end_base() module x_end_base()
{ {
// Main block // Main block
height = 58; height = 58;
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true); translate(v = [-15, -9, height / 2]) cube(size = [17, 39, height], center = true);
translate([-8,-28.5,0]) cube(size = [5,1,13.5]); translate([-8, -28.5, 0]) cube(size = [5, 1, 13.5]);
// Bearing holder // Bearing holder
vertical_bearing_base(); vertical_bearing_base();
//Nut trap //Nut trap
// Cylinder // Cylinder
translate(v=[0,-17,0]) cylinder(h = 13.5, r=12.5, $fn=100); translate(v = [0, -17, 0]) cylinder(h = 13.5, r = 12.5, $fn = 100);
difference() difference()
{ {
translate(v=[0,-17,13]) poly_cylinder(h = 3, r=12.5, $fn=25); translate(v = [0, -17, 13]) poly_cylinder(h = 3, r = 12.5, $fn = 25);
translate(v=[8,-17,12]) rotate([0,0,0]) cube(size = [15,50,10], center = true); translate(v = [8, -17, 12]) rotate([0, 0, 0]) cube(size = [15, 50, 10], center = true);
translate(v=[8,-24,12]) rotate([0,0,0]) cube(size = [50,15,10], center = true); translate(v = [8, -24, 12]) rotate([0, 0, 0]) cube(size = [50, 15, 10], center = true);
translate(v=[0,-17, -1]) cylinder(h = 20, r = 6.7, $fn = 60); translate(v = [0, -17, -1]) cylinder(h = 20, r = 6.7, $fn = 60);
} }
} }
module reinforcement_selective_infill() module reinforcement_selective_infill()
{ {
rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,5],[8,0]] ); rotate([90, 0, -15]) translate([-1.5, 8, 26]) linear_extrude(height = 0.2) polygon(points = [[-2, 0], [0, 5], [8, 0]]);
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,5],[12,0]] ); rotate([90, 0, -50]) translate([8.5, 8, 1.4]) linear_extrude(height = 0.2) polygon(points = [[0, 0], [0, 5], [12, 0]]);
} }
module x_end_holes() module x_end_holes()
{ {
vertical_bearing_holes(); vertical_bearing_holes();
// Belt hole // Belt hole
translate(v=[-1,0,0]) translate(v = [-1, 0, 0])
{ {
// Stress relief // Stress relief
translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true); translate(v = [-5.5 - 10 + 1.5, -10 - 1, 30]) cube(size = [18, 1, 28], center = true);
difference() difference()
{ {
translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true);
// Nice edges translate(v = [-5.5 - 10 + 1.5, -10, 30]) cube(size = [10, 46, 28], center = true);
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true);
translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true);
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true);
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true);
// Nice edges
translate(v = [-5.5 - 10 + 1.5 - 5, -10, 30 + 23]) rotate([0, 20, 0]) cube(size = [10, 46, 28], center = true);
translate(v = [-5.5 - 10 + 1.5 + 5, -10, 30 + 23]) rotate([0, -20, 0]) cube(size = [10, 46, 28], center = true);
translate(v = [-5.5 - 10 + 1.5, -10, 30 - 23]) rotate([0, 45, 0]) cube(size = [10, 46, 28], center = true);
translate(v = [-5.5 - 10 + 1.5, -10, 30 - 23]) rotate([0, -45, 0]) cube(size = [10, 46, 28], center = true);
} }
} }
// Bottom pushfit rod
translate(v = [-15, -41, 6]) rotate(a = [-90, 0, 0]) pushfit_rod(7.8, 50);
// Bottom pushfit rod // Top pushfit rod
translate(v=[-15,-41,6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50); translate(v = [-15, -41.5, rod_distance + 6]) rotate(a = [-90, 0, 0]) pushfit_rod(7.8, 50);
// Top pushfit rod // TR Nut trap
translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50); // Hole for the nut
//#translate(v = [0, -17, -1]) poly_cylinder(h = 9.01, r = 6.7, $fn = 60);
translate(v = [0, -17, -1]) cylinder(h = 14.51, r = 6.7, $fn = 60);
translate(v = [0, -17, -0.1]) cylinder(h = 1, r1 = 7.2, r2 = 6.7, $fn = 60);
// TR Nut trap // Screw holes for TR nut
// Hole for the nut translate(v = [0, -17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -4]) cylinder(h = 19, r = 1.65, $fn = 50);
//#translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 6.7, $fn = 60); translate(v = [0, -17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -4]) cylinder(h = 19, r = 1.65, $fn = 50);
translate(v=[0,-17, -1]) cylinder(h = 14.51, r = 6.7, $fn = 60); translate(v = [0, -17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -1]) cylinder(h = 2, r1 = 2.2, r2 = 1.65, $fn = 50);
translate(v=[0,-17, -0.1]) cylinder(h = 1, r1 = 7.2,r2 = 6.7, $fn = 60); translate(v = [0, -17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -1]) cylinder(h = 2, r1 = 2.2, r2 = 1.65, , $fn = 50);
// Screw holes for TR nut // Nut traps for TR nut screws
translate(v = [0, -17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 11]) rotate([0, 0, 0]) cylinder(h = 6, r = 3.1, $fn = 6);
translate(v = [0, -17, 0]) rotate([0, 0, -135]) translate([0, -9.5, 10]) rotate([0, 0, 30]) cylinder(h = 4, r = 3.2, $fn = 6);
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -4]) cylinder(h = 19, r = 1.65, $fn=50); translate([-5.5, -17.2, 10]) rotate([0, 0, 32]) cube([5, 5.9, 3.5]);
translate([-0, -17.2, 10]) rotate([0, 0, 58]) cube([5, 10, 3.5]);
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -4]) cylinder(h = 19, r = 1.65, $fn=50);
translate(v=[0,-17,0]) rotate([0,0,-135]) translate([0,9.5,-1]) cylinder(h=2, r1=2.2,r2=1.65, $fn=50);
translate(v=[0,-17,0]) rotate([0,0,-135]) translate([0,-9.5,-1]) cylinder(h=2, r1=2.2,r2=1.65,, $fn=50);
// Nut traps for TR nut screws
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 11]) rotate([0, 0, 0])cylinder(h = 6, r = 3.1, $fn=6);
translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 4, r = 3.2, $fn=6);
translate([-5.5,-17.2,10]) rotate([0,0,32]) cube([5,5.9,3.5]);
translate([-0,-17.2,10]) rotate([0,0,58]) cube([5,10,3.5]);
} }
// Final prototype // Final prototype
module x_end_plain() module x_end_plain()
{ {
difference() difference()
{ {
union() union()
{
difference()
{ {
x_end_base(); difference()
x_end_holes(); {
x_end_base();
x_end_holes();
}
} }
} }
}
} }
module pushfit_rod(diameter, length)
module pushfit_rod(diameter,length)
{ {
poly_cylinder(h = length, r=diameter/2); poly_cylinder(h = length, r = diameter / 2);
difference() difference()
{ {
translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true); translate(v = [0, -diameter / 2.85, length / 2]) rotate([0, 0, 45]) cube(size = [diameter / 2, diameter / 2, length], center = true);
translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true); translate(v = [0, -diameter / 4 - diameter / 2 - 0.4, length / 2]) rotate([0, 0, 0]) cube(size = [diameter, diameter / 2, length], center = true);
} }
} }
difference () { difference()
x_end_plain(); {
//translate([-50,-50,-1]) rotate([0,0,0]) cube([100,100,5]); x_end_plain();
//translate([-50, -50, -1]) rotate([0, 0, 0]) cube([100, 100, 5]);
} }
// //

View File

@ -7,72 +7,66 @@
module y_belt_holder() module y_belt_holder()
{ {
difference() difference()
{ {
// base block // base block
union() union()
{ {
translate([-7,-24,44.5]) cube([14,48,8]); translate([-7, -24, 44.5]) cube([14, 48, 8]);
translate([-5,-15,29]) cube([12,30,17]); translate([-5, -15, 29]) cube([12, 30, 17]);
} }
// belt entry // belt entry
translate([-7.5,-16,39.9]) rotate([0,45,0]) cube([3,32,3]); translate([-7.5, -16, 39.9]) rotate([0, 45, 0]) cube([3, 32, 3]);
translate([-7.5,-16,34.9]) rotate([0,45,0]) cube([3,32,3]); translate([-7.5, -16, 34.9]) rotate([0, 45, 0]) cube([3, 32, 3]);
// lower belt slot // lower belt slot
translate([-8.5,-16,34.2]) cube([11.5,32,0.75]); translate([-8.5, -16, 34.2]) cube([11.5, 32, 0.75]);
translate([-8.5,-16,35.4]) rotate([0,5,0]) cube([11.5,32,0.2]); translate([-8.5, -16, 35.4]) rotate([0, 5, 0]) cube([11.5, 32, 0.2]);
translate([-8.5,-16,33.6]) rotate([0,-5,0]) cube([11.5,32,0.2]); translate([-8.5, -16, 33.6]) rotate([0, -5, 0]) cube([11.5, 32, 0.2]);
for (_step =[-16:2:16]) for (_step = [-16 : 2 : 16])
{ {
translate([-8.5,_step,33]) cube([11.5,1,1.5]); translate([-8.5, _step, 33]) cube([11.5, 1, 1.5]);
} }
// upper belt slot // upper belt slot
translate([-8.5,-16,39.2]) cube([11.5,32,0.75]); translate([-8.5, -16, 39.2]) cube([11.5, 32, 0.75]);
translate([-8.5,-16,40.4]) rotate([0,5,0]) cube([11.5,32,0.2]); translate([-8.5, -16, 40.4]) rotate([0, 5, 0]) cube([11.5, 32, 0.2]);
translate([-8.5,-16,38.6]) rotate([0,-5,0]) cube([11.5,32,0.2]); translate([-8.5, -16, 38.6]) rotate([0, -5, 0]) cube([11.5, 32, 0.2]);
for (_step =[-17:2:16]) for (_step = [-17 : 2 : 16])
{ {
translate([-8.5,_step,38.2]) cube([11.5,1,1.5]); translate([-8.5, _step, 38.2]) cube([11.5, 1, 1.5]);
} }
// nice edges // nice edges
translate([-8,-20,21.8]) rotate([45,0,0]) cube([16,10,10]); translate([-8, -20, 21.8]) rotate([45, 0, 0]) cube([16, 10, 10]);
translate([-8,20,21.8]) rotate([45,0,0]) cube([16,10,10]); translate([-8, 20, 21.8]) rotate([45, 0, 0]) cube([16, 10, 10]);
translate([-8, -30, 37]) rotate([45, 0, 0]) cube([16, 10, 10]);
translate([-8, 30, 37]) rotate([45, 0, 0]) cube([16, 10, 10]);
translate([-12.2, -30, 44.4]) rotate([0, 45, 0]) cube([5, 60, 5]);
translate([-8,-30,37]) rotate([45,0,0]) cube([16,10,10]);
translate([-8,30,37]) rotate([45,0,0]) cube([16,10,10]);
translate([-12.2,-30,44.4]) rotate([0,45,0]) cube([5,60,5]);
// mounting screw holes // mounting screw holes
translate([0,-19.50,40]) cylinder( h=30, r=1.65, $fn=50 ); translate([0, -19.50, 40]) cylinder(h=30, r=1.65, $fn=50);
translate([0,19.50,40]) cylinder( h=30, r=1.65, $fn=50 ); translate([0, 19.50, 40]) cylinder(h=30, r=1.65, $fn=50);
translate([0,-19.25,40]) cylinder( h=30, r=1.65, $fn=50 ); translate([0, -19.25, 40]) cylinder(h=30, r=1.65, $fn=50);
translate([0,19.25,40]) cylinder( h=30, r=1.65, $fn=50 ); translate([0, 19.25, 40]) cylinder(h=30, r=1.65, $fn=50);
translate([0,-19.0,40]) cylinder( h=30, r=1.65, $fn=50 ); translate([0, -19.0, 40]) cylinder(h=30, r=1.65, $fn=50);
translate([0,19.0,40]) cylinder( h=30, r=1.65, $fn=50 ); translate([0, 19.0, 40]) cylinder(h=30, r=1.65, $fn=50);
translate([0,-19.5,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,19.5,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,-19.25,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,19.25,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,-19.0,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,19.0,43.5]) cylinder( h=7, r=3.1, $fn=50 );
}
translate([0, -19.5, 43.5]) cylinder(h=7, r=3.1, $fn=50);
translate([0, 19.5, 43.5]) cylinder(h=7, r=3.1, $fn=50);
translate([0, -19.25, 43.5]) cylinder(h=7, r=3.1, $fn=50);
translate([0, 19.25, 43.5]) cylinder(h=7, r=3.1, $fn=50);
translate([0, -19.0, 43.5]) cylinder(h=7, r=3.1, $fn=50);
translate([0, 19.0, 43.5]) cylinder(h=7, r=3.1, $fn=50);
}
} }
difference() difference()
{ {
translate([-40,0,7]) rotate([0,90,0]) y_belt_holder(); translate([-40, 0, 7]) rotate([0, 90, 0]) y_belt_holder();
//version //version
translate([8.5,3.5,0.5]) rotate([0,180,90]) linear_extrude(height = 0.6) translate([8.5, 3.5, 0.5]) rotate([0, 180, 90]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); } { text("R2", font = "helvetica:style=Bold", size=4, center=true); }
} }

View File

@ -8,56 +8,55 @@
module Y_belt_idler() module Y_belt_idler()
{ {
difference() difference()
{ {
// base block // base block
translate([-12.5,-20,5]) cube([25,20,35]); translate([-12.5, -20, 5]) cube([25, 20, 35]);
translate([-4.75,-27,-1]) cube([9.5,20,50]); translate([-4.75, -27, -1]) cube([9.5, 20, 50]);
// angled front side // angled front side
translate([-15,-19.5,-15]) rotate([37,0,0]) cube([30,20,40]); translate([-15, -19.5, -15]) rotate([37, 0, 0]) cube([30, 20, 40]);
translate([-15,-12,-15]) rotate([60,0,0]) cube([30,20,40]); translate([-15, -12, -15]) rotate([60, 0, 0]) cube([30, 20, 40]);
translate([-15,-20,29.5]) rotate([38,0,0]) cube([30,20,20]); translate([-15, -20, 29.5]) rotate([38, 0, 0]) cube([30, 20, 20]);
// screws // screws
translate([0,1,36]) rotate([90,0,0]) cylinder( h=25, r=1.65, $fn=50 ); translate([0, 1, 36]) rotate([90, 0, 0]) cylinder(h = 25, r = 1.65, $fn = 50);
translate([0,-2,36]) rotate([90,0,0]) cylinder( h=6, r=3.1 , $fn=6 ); translate([0, -2, 36]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, $fn = 6);
translate([0,1,10]) rotate([90,0,0]) cylinder( h=25, r=1.65, $fn=50 ); translate([0, 1, 10]) rotate([90, 0, 0]) cylinder(h = 25, r = 1.65, $fn = 50);
translate([0,-2,10]) rotate([90,0,0]) cylinder( h=6, r=3.1 , $fn=6 ); translate([0, -2, 10]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, $fn = 6);
translate([0,-5,36]) rotate([90,0,0]) cylinder( h=6, r=3.1 , r2=3.9, $fn=6 ); translate([0, -5, 36]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, r2 = 3.9, $fn = 6);
translate([0,-5,10]) rotate([90,0,0]) cylinder( h=6, r=3.1 , r2=3.9, $fn=6 ); translate([0, -5, 10]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, r2 = 3.9, $fn = 6);
translate([0,1,36]) rotate([90,0,0]) cylinder( h=2, r=2.5, r2=1.65,$fn=50 ); translate([0, 1, 36]) rotate([90, 0, 0]) cylinder(h = 2, r = 2.5, r2 = 1.65, $fn = 50);
translate([0,1,10]) rotate([90,0,0]) cylinder( h=2, r=2.5, r2=1.65,$fn=50 ); translate([0, 1, 10]) rotate([90, 0, 0]) cylinder(h = 2, r = 2.5, r2 = 1.65, $fn = 50);
// pulley cut
translate([-5,-14,22.5]) rotate([0,90,0]) cylinder( h=10, r=10, $fn=30 );
// pulley screw axis
translate([-13.5,-14,22.5]) rotate([0,90,0]) cylinder( h=30, r=1.6, $fn=50 );
translate([-14,-14,22.5]) rotate([0,90,0]) cylinder( h=7, r=3.1, $fn=6 );
translate([-14,-14,22.5]) rotate([0,90,0]) cylinder( h=4, r2=3.1, r1=4, $fn=6 );
translate([8,-14,22.5]) rotate([0,90,0]) cylinder( h=6, r=3.1, $fn=50 );
// selective infill
translate([-10,-18,18]) cube([3,17,0.5]);
translate([8,-18,18]) cube([3,17,0.5]);
translate([-10,-18,27]) cube([3,17,0.5]);
translate([8,-18,27]) cube([3,17,0.5]);
translate([-10,-17,16]) cube([3,15,0.5]);
translate([8,-17,16]) cube([3,15,0.5]);
translate([-10,-16,29]) cube([3,15,0.5]);
translate([8,-16,29]) cube([3,15,0.5]);
translate([-8,-2,30]) cube([16,1,0.5]);
translate([-8,-2,13]) cube([16,1,0.5]);
// upper side mark
translate([8.5,-3.5,39]) rotate([0,0,0]) cylinder( h=2, r=1.5, $fn=30 );
//version
translate([3.5,-0.5,20]) rotate([90,0,180]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); }
}
}
rotate([-90,0,0]) Y_belt_idler();
// pulley cut
translate([-5, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 10, r = 10, $fn = 30);
// pulley screw axis
translate([-13.5, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 30, r = 1.6, $fn = 50);
translate([-14, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 7, r = 3.1, $fn = 6);
translate([-14, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 4, r2 = 3.1, r1 = 4, $fn = 6);
translate([8, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 6, r = 3.1, $fn = 50);
// selective infill
translate([-10, -18, 18]) cube([3, 17, 0.5]);
translate([8, -18, 18]) cube([3, 17, 0.5]);
translate([-10, -18, 27]) cube([3, 17, 0.5]);
translate([8, -18, 27]) cube([3, 17, 0.5]);
translate([-10, -17, 16]) cube([3, 15, 0.5]);
translate([8, -17, 16]) cube([3, 15, 0.5]);
translate([-10, -16, 29]) cube([3, 15, 0.5]);
translate([8, -16, 29]) cube([3, 15, 0.5]);
translate([-8, -2, 30]) cube([16, 1, 0.5]);
translate([-8, -2, 13]) cube([16, 1, 0.5]);
// upper side mark
translate([8.5, -3.5, 39]) rotate([0, 0, 0]) cylinder(h = 2, r = 1.5, $fn = 30);
//version
translate([3.5, -0.5, 20]) rotate([90, 0, 180]) linear_extrude(height = 0.6)
{ text("R2", font = "helvetica:style = Bold", size = 4, center = true); }
}
}
rotate([-90, 0, 0]) Y_belt_idler();

View File

@ -10,90 +10,86 @@ module holder()
difference() difference()
{ {
// base body // base body
translate([-6,-1.5,0]) cube([19,42,47]); translate([-6, -1.5, 0]) cube([19, 42, 47]);
// shape cuts // shape cuts
translate([-20,19.5,26]) rotate([0,90,0]) cylinder( h=35, r=11.5, $fn=50 ); translate([-20, 19.5, 26]) rotate([0, 90, 0]) cylinder(h = 35, r = 11.5, $fn = 50);
translate([-11,20,15]) cube([26,23,64]); translate([-11, 20, 15]) cube([26, 23, 64]);
translate([-20,5.5,-1]) cube([26,41,64]); translate([-20, 5.5, -1]) cube([26, 41, 64]);
translate([-20,-5,37]) cube([26,21,20]); translate([-20, -5, 37]) cube([26, 21, 20]);
translate([-20,-1,37]) cube([26,30,20]); translate([-20, -1, 37]) cube([26, 30, 20]);
// lower motor screw // lower motor screw
translate([-20,35 ,10.5]) rotate([0,90,0]) cylinder( h=40, r=1.65, $fn=50 ); translate([-20, 35, 10.5]) rotate([0, 90, 0]) cylinder(h = 40, r = 1.65, $fn = 50);
translate([-7,35,10.5]) rotate([0,90,0]) cylinder( h=15, r=3.1, $fn=50 ); translate([-7, 35, 10.5]) rotate([0, 90, 0]) cylinder(h = 15, r = 3.1, $fn = 50);
// upper motor screw // upper motor screw
translate([-20,4,41.5]) rotate([0,90,0]) cylinder( h=40, r=1.65, $fn=50 ); translate([-20, 4, 41.5]) rotate([0, 90, 0]) cylinder(h = 40, r = 1.65, $fn = 50);
translate([4,4,41.5]) rotate([0,90,0]) cylinder( h=4, r=3.1, $fn=50 ); translate([4, 4, 41.5]) rotate([0, 90, 0]) cylinder(h = 4, r = 3.1, $fn = 50);
// lower frame screw // lower frame screw
translate([0,12,7]) rotate([90,0,0]) cylinder( h=40, r=1.6, $fn=50 ); translate([0, 12, 7]) rotate([90, 0, 0]) cylinder(h = 40, r = 1.6, $fn = 50);
translate([0,7,7]) rotate([90,0,0]) cylinder( h=5, r=3.1, $fn=6 ); translate([0, 7, 7]) rotate([90, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 6);
translate([0,6.6,7]) rotate([90,0,0]) cylinder( h=2, r2=3.1, r1=4, $fn=6 ); translate([0, 6.6, 7]) rotate([90, 0, 0]) cylinder(h = 2, r2 = 3.1, r1 = 4, $fn = 6);
// upper frame screw // upper frame screw
translate([0,12,29]) rotate([90,0,0]) cylinder( h=40, r=1.6, $fn=50 ); translate([0, 12, 29]) rotate([90, 0, 0]) cylinder(h = 40, r = 1.6, $fn = 50);
translate([0,7,29]) rotate([90,0,0]) cylinder( h=5, r=3.1, $fn=6 ); translate([0, 7, 29]) rotate([90, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 6);
translate([0,6.6,29]) rotate([90,0,0]) cylinder( h=2, r2=3.1, r1=4, $fn=6 ); translate([0, 6.6, 29]) rotate([90, 0, 0]) cylinder(h = 2, r2 = 3.1, r1 = 4, $fn = 6);
// corners // corners
translate([-10,20,42]) rotate([45,0,0]) cube([60,10,10]); translate([-10, 20, 42]) rotate([45, 0, 0]) cube([60, 10, 10]);
translate([-10,-5,42]) rotate([45,0,0]) cube([60,10,10]); translate([-10, -5, 42]) rotate([45, 0, 0]) cube([60, 10, 10]);
translate([-10,38,-7]) rotate([45,0,0]) cube([60,20,10]); translate([-10, 38, -7]) rotate([45, 0, 0]) cube([60, 20, 10]);
translate([-10,43,10]) rotate([45,0,0]) cube([60,20,20]); translate([-10, 43, 10]) rotate([45, 0, 0]) cube([60, 20, 20]);
translate([-14,-10,-2]) rotate([0,45,0]) cube([10,50,10]); translate([-14, -10, -2]) rotate([0, 45, 0]) cube([10, 50, 10]);
translate([-14,-10,37]) rotate([0,45,0]) cube([10,50,10]); translate([-14, -10, 37]) rotate([0, 45, 0]) cube([10, 50, 10]);
translate([18,-10,-5]) rotate([0,0,45]) cube([10,10,60]); translate([18, -10, -5]) rotate([0, 0, 45]) cube([10, 10, 60]);
} }
// reinforcement // reinforcement
translate([7.8,1.9,0]) rotate([0,0,55]) cube([5,5,18]); translate([7.8, 1.9, 0]) rotate([0, 0, 55]) cube([5, 5, 18]);
difference() difference()
{ {
translate([7.8,1.9,13.6]) rotate([0,0,55]) cube([5,5,23.4]); translate([7.8, 1.9, 13.6]) rotate([0, 0, 55]) cube([5, 5, 23.4]);
translate([-20,19.5,26]) rotate([0,90,0]) cylinder( h=35, r=12, $fn=30 ); translate([-20, 19.5, 26]) rotate([0, 90, 0]) cylinder(h = 35, r = 12, $fn = 30);
} }
} }
module y_motor_holder() module y_motor_holder()
{ {
rotate([0,90,0]) rotate([0, 90, 0])
difference() difference()
{ {
holder(); holder();
// selective infill
translate([-0,3.4,33.3]) cube([12,0.5,2]);
translate([-0,1.6,33.3]) cube([12,0.5,2]);
translate([-0,-0.2,32.8]) cube([12,0.5,2.5]);
translate([-1.75,-0.2,1.4]) cube([13.75,0.5,2.2]);
translate([-1.75,1.6,1.4]) cube([13.75,0.5,1.6]);
translate([-1.75,3.4,1.4]) cube([13.75,0.5,1.6]);
translate([-5,-0.1,14.1]) cube([17,0.5,6.4]);
translate([-5,1.9,14.1]) cube([17,0.5,6.4]);
translate([-5,3.7,14.1]) cube([17,0.5,6.4]);
translate([-5,4.2,13]) rotate([90,0,0]) cube([17,0.5,4.3]);
translate([-5,4.2,11.5]) rotate([90,0,0]) cube([17,0.5,4.3]);
translate([-5,4.2,21]) rotate([90,0,0]) cube([17,0.5,4.3]);
translate([-5,4.2,22.5]) rotate([90,0,0]) cube([17,0.5,4.3]);
translate([-5,4.2,24]) rotate([90,0,0]) cube([17,0.5,4.3]);
//version
translate([-1,-1,15]) rotate([90,0,0]) linear_extrude(height = 0.6)
{ text("R3",font = "helvetica:style=Bold", size=5, center=true); }
} // selective infill
} translate([-0, 3.4, 33.3]) cube([12, 0.5, 2]);
translate([-0, 1.6, 33.3]) cube([12, 0.5, 2]);
y_motor_holder(); translate([-0, -0.2, 32.8]) cube([12, 0.5, 2.5]);
translate([-1.75, -0.2, 1.4]) cube([13.75, 0.5, 2.2]);
translate([-1.75, 1.6, 1.4]) cube([13.75, 0.5, 1.6]);
translate([-1.75, 3.4, 1.4]) cube([13.75, 0.5, 1.6]);
translate([-5, -0.1, 14.1]) cube([17, 0.5, 6.4]);
translate([-5, 1.9, 14.1]) cube([17, 0.5, 6.4]);
translate([-5, 3.7, 14.1]) cube([17, 0.5, 6.4]);
translate([-5, 4.2, 13]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]);
translate([-5, 4.2, 11.5]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]);
translate([-5, 4.2, 21]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]);
translate([-5, 4.2, 22.5]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]);
translate([-5, 4.2, 24]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]);
//version
translate([-1, -1, 15]) rotate([90, 0, 0]) linear_extrude(height = 0.6)
{ text("R3", font = "helvetica:style = Bold", size = 5, center = true); }
}
}
y_motor_holder();

View File

@ -9,86 +9,85 @@ module ziptie_round_edge()
{ {
difference() difference()
{ {
translate([0,0,0]) rotate([90,0,0]) cylinder( h=3.2, r=4, $fn=50 ); translate([0, 0, 0]) rotate([90, 0, 0]) cylinder(h = 3.2, r = 4, $fn = 50);
translate([0,1,0]) rotate([90,0,0]) cylinder( h=5, r=2, $fn=50 ); translate([0, 1, 0]) rotate([90, 0, 0]) cylinder(h = 5, r = 2, $fn = 50);
translate([-10,-4,0]) cube([20,5,5]); translate([-10, -4, 0]) cube([20, 5, 5]);
translate([-20,-4,-13]) cube([20,5,20]); translate([-20, -4, -13]) cube([20, 5, 20]);
} }
} }
module part()
module part()
{ {
difference() difference()
{ {
union() union()
{ {
// body block // body block
difference() { difference()
translate([-13,-3,0]) cube([26,10,12]); {
translate([-13, -3, 0]) cube([26, 10, 12]);
// upper corners // upper corners
translate([4,-3.5,20]) rotate([0,60,0]) cube([20,30,20]); translate([4, -3.5, 20]) rotate([0, 60, 0]) cube([20, 30, 20]);
translate([-21.2,-3.5,30]) rotate([0,120,0]) cube([20,30,20]); translate([-21.2, -3.5, 30]) rotate([0, 120, 0]) cube([20, 30, 20]);
translate([-15,-3.3,-6]) rotate([45,0,0]) cube([30,5,5]); translate([-15, -3.3, -6]) rotate([45, 0, 0]) cube([30, 5, 5]);
translate([15,7.3,-6]) rotate([45,0,180]) cube([30,5,5]); translate([15, 7.3, -6]) rotate([45, 0, 180]) cube([30, 5, 5]);
} }
difference() { difference()
translate([-4,2,-2]) cube([8,5,3]); {
translate([-4, 2, -2]) cube([8, 5, 3]);
// upper corners
translate([-15,2,-7.07]) rotate([45,0,0]) cube([30,5,5]); // upper corners
translate([15,9.5,-6]) rotate([45,0,180]) cube([30,5,5]); translate([-15, 2, -7.07]) rotate([45, 0, 0]) cube([30, 5, 5]);
translate([15, 9.5, -6]) rotate([45, 0, 180]) cube([30, 5, 5]);
} }
} }
// y-axis cut // y-axis cut
translate([0,11,10.5]) rotate([90,0,0]) cylinder( h=14, r=4, $fn=50 ); translate([0, 11, 10.5]) rotate([90, 0, 0]) cylinder(h = 14, r = 4, $fn = 50);
translate([0,8,10.5]) rotate([90,0,0]) cylinder( h=2, r1=4.5, r2=4, $fn=50 ); translate([0, 8, 10.5]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 4.5, r2 = 4, $fn = 50);
translate([0,-2,10.5]) rotate([90,0,0]) cylinder( h=2, r1=4, r2=4.5, $fn=50 ); translate([0, -2, 10.5]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 4, r2 = 4.5, $fn = 50);
translate([-7,-4,14.5]) rotate([0,45,0]) cube([10,20,10]); translate([-7, -4, 14.5]) rotate([0, 45, 0]) cube([10, 20, 10]);
translate([0,8,10.5]) rotate([90,0,0]) cylinder( h=1.4, r1=5, r2=4, $fn=50 ); translate([0, 8, 10.5]) rotate([90, 0, 0]) cylinder(h = 1.4, r1 = 5, r2 = 4, $fn = 50);
// screw holes // screw holes
translate([-5.5,4,3.5]) rotate([90,0,0]) cylinder( h=20, r=1.55, $fn=60 ); translate([-5.5, 4, 3.5]) rotate([90, 0, 0]) cylinder(h = 20, r = 1.55, $fn = 60);
translate([5.5,4,3.5]) rotate([90,0,0]) cylinder( h=20, r=1.55, $fn=60 ); translate([5.5, 4, 3.5]) rotate([90, 0, 0]) cylinder(h = 20, r = 1.55, $fn = 60);
translate([-5.5,-2.4,3.5]) rotate([90,0,0]) cylinder( h=2, r1=1.5, r2=2.6, $fn=60 ); translate([-5.5, -2.4, 3.5]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 1.5, r2 = 2.6, $fn = 60);
translate([5.5,-2.4,3.5]) rotate([90,0,0]) cylinder( h=2, r1=1.5, r2=2.6, $fn=60 ); translate([5.5, -2.4, 3.5]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 1.5, r2 = 2.6, $fn = 60);
// ziptie // ziptie
translate([7.8,5.75,9]) ziptie_round_edge(); translate([7.8, 5.75, 9]) ziptie_round_edge();
translate([-7.8,2.55,9]) rotate([0,0,180]) ziptie_round_edge(); translate([-7.8, 2.55, 9]) rotate([0, 0, 180]) ziptie_round_edge();
translate([-8.1,2.55,5]) cube([16.2,3.2,2]); translate([-8.1, 2.55, 5]) cube([16.2, 3.2, 2]);
translate([0.8,2.55,25]) rotate([0,60,0]) cube([20,3.2,2]); translate([0.8, 2.55, 25]) rotate([0, 60, 0]) cube([20, 3.2, 2]);
translate([-1.8,2.55,27]) rotate([0,120,0]) cube([20,3.2,2]); translate([-1.8, 2.55, 27]) rotate([0, 120, 0]) cube([20, 3.2, 2]);
// nuts // nuts
difference () { difference()
union(){ {
translate([-8.2,-0.45,-3.4]) cube([5.6,2.1,10]); union()
translate([2.8,-0.45,-3.4]) cube([5.6,2.1,10]);} {
translate([-8.2, -0.45, -3.4]) cube([5.6, 2.1, 10]);
// nut holding ' translate([2.8, -0.45, -3.4]) cube([5.6, 2.1, 10]);
translate([-14,-0.45,-0.02]) cube([24,0.5,0.5]); }
}
// nut print supports
translate([-8.2,-0.25,3.5-3.2/2]) cube([5.6,2.1,3.2]);
translate([2.8,-0.25,3.5-3.2/2]) cube([5.6,2.1,3.2]);
translate([-7.1,0,3.5-3.2/2]) cube([3.2,2.1,3.2]);
translate([3.9,0,3.5-3.2/2]) cube([3.2,2.1,3.2]);
// nut holding '
translate([-14, -0.45, -0.02]) cube([24, 0.5, 0.5]);
}
// nut print supports
translate([-8.2, -0.25, 3.5 - 3.2 / 2]) cube([5.6, 2.1, 3.2]);
translate([2.8, -0.25, 3.5 - 3.2 / 2]) cube([5.6, 2.1, 3.2]);
translate([-7.1, 0, 3.5 - 3.2 / 2]) cube([3.2, 2.1, 3.2]);
translate([3.9, 0, 3.5 - 3.2 / 2]) cube([3.2, 2.1, 3.2]);
// upper corners // upper corners
} }
} }
rotate([90, 0, 0]) part();
rotate([90,0,0])part();

View File

@ -7,116 +7,103 @@
module z_bottom_base() module z_bottom_base()
{ {
translate([0,-1.5,0]) cube([7.5,49,16+20]); // plate touching the base translate([0, -1.5, 0]) cube([7.5, 49, 16 + 20]); // plate touching the base
translate([0,-5,0]) cube([30,3.7,22]); // plate touching the base translate([0, -5, 0]) cube([30, 3.7, 22]); // plate touching the base
translate([0,42,0]) cube([30,5.5,22]); // plate touching the base translate([0, 42, 0]) cube([30, 5.5, 22]); // plate touching the base
translate([0,-5,0]) cube([50,52.5,7]); // plate touching the base translate([0, -5, 0]) cube([50, 52.5, 7]); // plate touching the base
} }
module z_bottom_fancy() module z_bottom_fancy()
{ {
// corner cutouts // corner cutouts
translate([0.5,-2.5,-2]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); translate([0.5, -2.5, -2]) rotate([0, 0, -45 - 180]) translate([-15, 0, -1]) cube([30, 30, 51]);
translate([0.5,40-0.5+5,-2]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]); translate([0.5, 40 - 0.5 + 5, -2]) rotate([0, 0, -45 + 90]) translate([-15, 0, -1]) cube([30, 30, 51]);
translate([8,0,12+20+6]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); translate([8, 0, 12 + 20 + 6]) rotate([0, -90, 0]) translate([0, -5, 0]) cube([30, 50, 30]);
translate([21,-2,12+8]) rotate([45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); translate([21, -2, 12 + 8]) rotate([45, 0, 0]) rotate([0, -90, 0]) translate([0, -5, 0]) cube([30, 50, 30]);
translate([25,20,12+30]) rotate([-45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); translate([25, 20, 12 + 30]) rotate([-45, 0, 0]) rotate([0, -90, 0]) translate([0, -5, 0]) cube([30, 50, 30]);
translate([50-2.5,-5+2.5+67,-2]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); translate([50 - 2.5, -5 + 2.5 + 67, -2]) rotate([0, 0, -45 - 90]) translate([-15, 0, -1]) cube([30, 30, 51]);
translate([50-2.5,-5+2.5,-2]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); translate([50 - 2.5, -5 + 2.5, -2]) rotate([0, 0, -45 - 90]) translate([-15, 0, -1]) cube([30, 30, 51]);
translate([-38,-10,-2]) rotate([0,45,0]) cube([30,60,30]); translate([-38, -10, -2]) rotate([0, 45, 0]) cube([30, 60, 30]);
// Stiffner cut out // Stiffner cut out
translate([30,0,7.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]); translate([30, 0, 7.5]) rotate([0, -45, 0]) translate([0, -5, 0]) cube([30, 60, 30]);
translate([-5,-10,-8.0]) rotate([45,0,0]) cube([60,10,10]); translate([-5, -10, -8.0]) rotate([45, 0, 0]) cube([60, 10, 10]);
translate([-5,52.0,-8.5]) rotate([45,0,0]) cube([60,10,10]); translate([-5, 52.0, -8.5]) rotate([45, 0, 0]) cube([60, 10, 10]);
translate([47,-10,-2]) rotate([0,45,0]) cube([30,60,30]); translate([47, -10, -2]) rotate([0, 45, 0]) cube([30, 60, 30]);
translate([49,37.5,-2]) rotate([0,45,45]) cube([30,30,30]); translate([49, 37.5, -2]) rotate([0, 45, 45]) cube([30, 30, 30]);
translate([29,-16.7,-2]) rotate([0,45,-45]) cube([30,30,30]); translate([29, -16.7, -2]) rotate([0, 45, -45]) cube([30, 30, 30]);
} }
module z_bottom_holes() module z_bottom_holes()
{ {
// Frame mounting screw holes // Frame mounting screw holes
translate([-1,10,12]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=50); translate([-1, 10, 12]) rotate([0, 90, 0]) cylinder(h = 20, r = 1.6, $fn = 50);
translate([-1,10+20,12]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=50); translate([-1, 10 + 20, 12]) rotate([0, 90, 0]) cylinder(h = 20, r = 1.6, $fn = 50);
translate([-1,10+10,32]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=50); translate([-1, 10 + 10, 32]) rotate([0, 90, 0]) cylinder(h = 20, r = 1.6, $fn = 50);
// Frame mounting screw head holes // Frame mounting screw head holes
translate([4,10,12]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4, 10, 12]) rotate([0, 90, 0]) cylinder(h = 20, r = 3.1, $fn = 30);
translate([4,10+20,12]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4, 10 + 20, 12]) rotate([0, 90, 0]) cylinder(h = 20, r = 3.1, $fn = 30);
translate([4,10+10,32]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4, 10 + 10, 32]) rotate([0, 90, 0]) cylinder(h = 20, r = 3.1, $fn = 30);
translate([4,10+10-3.1,10+20+2]) cube([10,6.2,10]); translate([4, 10 + 10 - 3.1, 10 + 20 + 2]) cube([10, 6.2, 10]);
translate([4,10,38]) rotate([0,45,0]) cube([10,20,10]); translate([4, 10, 38]) rotate([0, 45, 0]) cube([10, 20, 10]);
// Z rod holder // Z rod holder
difference() {
translate([25+4.3,3,-0.1]) rotate([0,0,0]) cylinder(h = 5.6, r=4.05, $fn=50);
translate([23.3,-5,5.45-0.222]) cube([5,20,5]);
translate([23.3+7,-5,5.45-0.22]) cube([5,20,5]);
}
translate([25+4.3-1,2,4.5]) rotate([0,0,0]) cube([2,10,3]) ;
translate([25+4.3,3,-2.1]) rotate([0,0,0]) cylinder(h = 2.6, r1=6, r2=4, $fn=50);
translate([25+4.3-1,3,0.5]) cube([2,10,8]); // it's bit up because it helps with printing
// motor mounting
translate([25+4.3,20,-1]){
translate([15.5,15.5,-1]) cylinder(h = 20, r=1.65, $fn=50);
translate([15.5,-15.5,-1]) cylinder(h = 20, r=1.65, $fn=50);
translate([-15.5,15.5,-1]) cylinder(h = 20, r=1.65, $fn=50);
translate([-15.5,-15.5,-1]) cylinder(h = 20, r=1.65, $fn=50);
translate([15.5,15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.2,$fn=50);
translate([15.5,-15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.2, $fn=50);
translate([-15.5,15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.2, $fn=50);
translate([-15.5,-15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.26, $fn=50);
// motor opening
translate([0,0,-1]) cylinder(h = 20, r=11.2, $fn=30);
translate([0,0,-0]) cylinder(h = 2, r2=11.2, r1=12, $fn=30);
difference() difference()
{ {
union() translate([25 + 4.3, 3, -0.1]) rotate([0, 0, 0]) cylinder(h = 5.6, r = 4.05, $fn = 50);
translate([23.3, -5, 5.45 - 0.222]) cube([5, 20, 5]);
translate([23.3 + 7, -5, 5.45 - 0.22]) cube([5, 20, 5]);
}
translate([25 + 4.3 - 1, 2, 4.5]) rotate([0, 0, 0]) cube([2, 10, 3]);
translate([25 + 4.3, 3, -2.1]) rotate([0, 0, 0]) cylinder(h = 2.6, r1 = 6, r2 = 4, $fn = 50);
translate([25 + 4.3 - 1, 3, 0.5]) cube([2, 10, 8]); // it's bit up because it helps with printing
// motor mounting
translate([25 + 4.3, 20, -1])
{
translate([15.5, 15.5, -1]) cylinder(h = 20, r = 1.65, $fn = 50);
translate([15.5, -15.5, -1]) cylinder(h = 20, r = 1.65, $fn = 50);
translate([-15.5, 15.5, -1]) cylinder(h = 20, r = 1.65, $fn = 50);
translate([-15.5, -15.5, -1]) cylinder(h = 20, r = 1.65, $fn = 50);
translate([15.5, 15.5, -0.5]) cylinder(h = 2, r1 = 4.5, r2 = 3.2, $fn = 50);
translate([15.5, -15.5, -0.5]) cylinder(h = 2, r1 = 4.5, r2 = 3.2, $fn = 50);
translate([-15.5, 15.5, -0.5]) cylinder(h = 2, r1 = 4.5, r2 = 3.2, $fn = 50);
translate([-15.5, -15.5, -0.5]) cylinder(h = 2, r1 = 4.5, r2 = 3.26, $fn = 50);
// motor opening
translate([0, 0, -1]) cylinder(h = 20, r = 11.2, $fn = 30);
translate([0, 0, -0]) cylinder(h = 2, r2 = 11.2, r1 = 12, $fn = 30);
difference()
{ {
translate([15.5,15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); union()
translate([15.5,-15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); {
translate([-15.5,15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); translate([15.5, 15.5, 0.9]) cylinder(h = 2.9, r = 3.2, $fn = 50);
translate([-15.5,-15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); translate([15.5, -15.5, 0.9]) cylinder(h = 2.9, r = 3.2, $fn = 50);
translate([-15.5, 15.5, 0.9]) cylinder(h = 2.9, r = 3.2, $fn = 50);
translate([-15.5, -15.5, 0.9]) cylinder(h = 2.9, r = 3.2, $fn = 50);
}
translate([-25, 3.85, 3.2]) cube([55, 10, 2]);
translate([-25, -27.15, 3.2]) cube([55, 10, 2]);
translate([-25, -13.85, 3.2]) cube([55, 10, 2]);
translate([-25, 17.15, 3.2]) cube([55, 10, 2]);
translate([17.15, -20, 3.5]) cube([10, 60, 2]);
translate([3.85, -20, 3.5]) cube([10, 60, 2]);
translate([-27.15, -20, 3.5]) cube([10, 60, 2]);
translate([-13.85, -20, 3.5]) cube([10, 60, 2]);
} }
translate([-25,3.85,3.2]) cube([55,10,2]); }
translate([-25,-27.15,3.2]) cube([55,10,2]);
translate([-25,-13.85,3.2]) cube([55,10,2]);
translate([-25,17.15,3.2]) cube([55,10,2]);
translate([17.15,-20,3.5]) cube([10,60,2]);
translate([3.85,-20,3.5]) cube([10,60,2]);
translate([-27.15,-20,3.5]) cube([10,60,2]);
translate([-13.85,-20,3.5]) cube([10,60,2]);
}
}
} }
module z_bottom_right() module z_bottom_right()
{ {
difference() difference()
@ -127,8 +114,8 @@ module z_bottom_right()
z_bottom_fancy(); z_bottom_fancy();
z_bottom_holes(); z_bottom_holes();
} }
translate([7.3,25,14]) rotate([90,180,90]) linear_extrude(height = 0.6) translate([7.3, 25, 14]) rotate([90, 180, 90]) linear_extrude(height = 0.6)
{ text("R3",font = "helvetica:style=Bold", size=5, center=true); } { text("R3", font = "helvetica:style = Bold", size = 5, center = true); }
} }
} }
@ -136,33 +123,17 @@ module z_bottom_left()
{ {
difference() difference()
{ {
translate([0,-13,0]) mirror([0,1,0]) translate([0, -13, 0]) mirror([0, 1, 0])
difference() difference()
{ {
z_bottom_base(); z_bottom_base();
z_bottom_fancy(); z_bottom_fancy();
z_bottom_holes(); z_bottom_holes();
} }
translate([7.3,-28.5,14]) rotate([90,180,90]) linear_extrude(height = 0.6) translate([7.3, -28.5, 14]) rotate([90, 180, 90]) linear_extrude(height = 0.6)
{ text("R3",font = "helvetica:style=Bold", size=5, center=true); } { text("R3", font = "helvetica:style = Bold", size = 5, center = true); }
} }
} }
z_bottom_right(); z_bottom_right();
z_bottom_left(); z_bottom_left();

View File

@ -7,101 +7,101 @@
module z_top_base() module z_top_base()
{ {
translate([0,-5,0]) cube([8,45,16]); // plate touching the base translate([0, -5, 0]) cube([8, 45, 16]); // plate touching the base
translate([0,-5,0]) cube([33,3.6,12]); // plate touching the base translate([0, -5, 0]) cube([33, 3.6, 12]); // plate touching the base
translate([0,-5,0]) cube([38,45,5]); // plate touching the base translate([0, -5, 0]) cube([38, 45, 5]); // plate touching the base
translate([25+4.3,3.2,5]) rotate([0,0,0]) cylinder(h = 2.5, r=7, $fn=60); translate([25 + 4.3, 3.2, 5]) rotate([0, 0, 0]) cylinder(h = 2.5, r = 7, $fn = 60);
} }
module z_top_fancy() module z_top_fancy()
{ {
// Corner cutouts // Corner cutouts
translate([0.5,0.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); translate([0.5, 0.5, 0]) rotate([0, 0, -45 - 180]) translate([-15, 0, -1]) cube([30, 30, 51]);
// frame side angle // frame side angle
translate([-13,40+5+10.2,-3]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]); translate([-13, 40 + 5 + 10.2, -3]) rotate([0, 0, -45 - 0]) translate([0, 0, -1]) cube([30, 30, 51]);
translate([8,28,-3]) translate([0,0,-1]) cube([50,50,51]); translate([8, 28, -3]) translate([0, 0, -1]) cube([50, 50, 51]);
// cut to shape // cut to shape
translate([4,-1,12]) rotate([0,0, 0]) translate([0,-5,0]) cube([30,50,30]); translate([4, -1, 12]) rotate([0, 0, 0]) translate([0, -5, 0]) cube([30, 50, 30]);
translate([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]); translate([6, 0, 12]) rotate([0, -45, 0]) translate([0, -5, 0]) cube([30, 50, 30]);
translate([8,3.9,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]); translate([8, 3.9, 10]) rotate([0, -45, 0]) translate([0, -5, 0]) cube([30, 50, 30]);
// nice edges // nice edges
translate([38-2.5,-5+2.5,-3]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); translate([38 - 2.5, -5 + 2.5, -3]) rotate([0, 0, -45 - 90]) translate([-15, 0, -1]) cube([30, 30, 51]);
translate([-10,49,3.2]) rotate([45,0,0]) translate([-15,0,-1]) cube([50,20,20]); translate([-10, 49, 3.2]) rotate([45, 0, 0]) translate([-15, 0, -1]) cube([50, 20, 20]);
// outer corner // outer corner
translate([35,26,-3]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); translate([35, 26, -3]) 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]); translate([0, 0, 5]) rotate([45 + 180, 0, 0]) rotate([0, 0, -45 + 90]) translate([0, 0, -15]) cube([30, 30, 30]);
// Stiffner cut out // Stiffner cut out
translate([33,-1,7.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]); translate([33, -1, 7.5]) rotate([0, -45, 0]) translate([0, -5, 0]) cube([30, 50, 30]);
// side cut out // side cut out
translate([-6,-5,-5.55]) rotate([45,0,0]) cube([50,5,5]); translate([-6, -5, -5.55]) rotate([45, 0, 0]) cube([50, 5, 5]);
translate([-6,-5,-0.8]) rotate([0,45,0]) cube([5,50,5]); translate([-6, -5, -0.8]) rotate([0, 45, 0]) cube([5, 50, 5]);
} }
module z_top_holes() module z_top_holes()
{ {
// Screw holes frame // Screw holes frame
translate([-1,10,10]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=30); translate([-1, 10, 10]) rotate([0, 90, 0]) cylinder(h = 20, r = 1.6, $fn = 30);
translate([-1,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=30); translate([-1, 10 + 20, 10]) rotate([0, 90, 0]) cylinder(h = 20, r = 1.6, $fn = 30);
// Screw heads // Screw heads
translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); translate([4, 10, 10]) rotate([0, 90, 0]) cylinder(h = 20, r = 3.1, $fn = 30);
translate([4,10-3.1,10]) cube([10,6.2,10]); 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); translate([4, 10 + 20, 10]) 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 + 20 - 3.1, 10]) cube([10, 6.2, 10]);
// Z rod holder // Z rod holder
translate([25+4.3,3,0.6]) rotate([0,0,0]) cylinder(h = 50, r=4.05, $fn=50); translate([25 + 4.3, 3, 0.6]) rotate([0, 0, 0]) cylinder(h = 50, r = 4.05, $fn = 50);
translate([25+4.3,3,3.4]) rotate([0,0,0]) cylinder(h = 4.2, r2=4.3, r1=4.05, $fn=50); translate([25 + 4.3, 3, 3.4]) rotate([0, 0, 0]) cylinder(h = 4.2, r2 = 4.3, r1 = 4.05, $fn = 50);
// material saving cut // material saving cut
translate([16,10,-4]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); translate([16, 10, -4]) rotate([0, 0, 0]) cylinder(h = 50, r = 8, $fn = 6);
translate([16,28,-4]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); translate([16, 28, -4]) rotate([0, 0, 0]) cylinder(h = 50, r = 8, $fn = 6);
// z screw hole // z screw hole
translate([25+4.3,3+17,3]) rotate([0,0,0]) cylinder(h = 50, r=5.8, $fn=15); // screw hole translate([25 + 4.3, 3 + 17, 3]) rotate([0, 0, 0]) cylinder(h = 50, r = 5.8, $fn = 15); // screw hole
translate([25+4.3,3+17,0.6]) rotate([0,0,0]) cylinder(h = 50, r=5.8, $fn=15); // screw hole translate([25 + 4.3, 3 + 17, 0.6]) rotate([0, 0, 0]) cylinder(h = 50, r = 5.8, $fn = 15); // screw hole
translate([25+4.3-1,3,0.6]) cube([2,15,8]); // it's bit up because it helps with printing translate([25 + 4.3 - 1, 3, 0.6]) cube([2, 15, 8]); // it's bit up because it helps with printing
//selective infill //selective infill
translate([36.5,1.5,0.5]) cube([0.1,20,3.5]); translate([36.5, 1.5, 0.5]) cube([0.1, 20, 3.5]);
translate([10,-3,0.5]) cube([22,0.1,3.5]); translate([10, -3, 0.5]) cube([22, 0.1, 3.5]);
translate([3,1,0.5]) cube([18,0.1,3.5]); translate([3, 1, 0.5]) cube([18, 0.1, 3.5]);
translate([1.5,19,0.5]) cube([21,0.1,3.5]); translate([1.5, 19, 0.5]) cube([21, 0.1, 3.5]);
} }
module z_top_right(){ module z_top_right()
difference() {
{
z_top_base();
z_top_fancy();
z_top_holes();
//version
translate([12,-1.5,10]) rotate([90,180,180]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); }
}
}
module z_top_left(){
translate([0,-12,0]) mirror([0,1,0])
difference() difference()
{ {
z_top_base(); z_top_base();
z_top_fancy(); z_top_fancy();
z_top_holes(); z_top_holes();
//version //version
translate([19,-1,10]) rotate([90,180,0]) linear_extrude(height = 0.6) translate([12, -1.5, 10]) rotate([90, 180, 180]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); } { text("R2", font = "helvetica:style = Bold", size = 4, center = true); }
}
}
module z_top_left()
{
translate([0, -12, 0]) mirror([0, 1, 0])
difference()
{
z_top_base();
z_top_fancy();
z_top_holes();
//version
translate([19, -1, 10]) rotate([90, 180, 0]) linear_extrude(height = 0.6)
{ text("R2", font = "helvetica:style = Bold", size = 4, center = true); }
} }
} }
// Final parts // Final parts
z_top_left(); z_top_left();
z_top_right(); z_top_right();

View File

@ -5,29 +5,28 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
translate(v = [-4.2, 0, 4.3]) rotate([0, 90, 0]) cylinder(r1 = 0.6, r2 = 0.4, h = 1, $fn = 60);
translate(v = [4.2, 0, 4.3]) rotate([0, -90, 0]) cylinder(r1 = 0.6, r2 = 0.4, h = 1, $fn = 60);
translate(v = [0, 4.2, 4.3]) rotate([90, 0, 0]) cylinder(r1 = 0.6, r2 = 0.4, h = 1, $fn = 60);
translate(v = [0, -4.2, 4.3]) rotate([-90, 0, 0]) cylinder(r1 = 0.6, r2 = 0.4, h = 1, $fn = 60);
translate(v=[-4.2, 0, 4.3]) rotate([0,90,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); translate(v = [-4.2, 0.5, 4.0]) rotate([0, 90, 0]) cylinder(r1 = 0.6, r2 = 0.3, h = 0.8, $fn = 60);
translate(v=[4.2, 0, 4.3]) rotate([0,-90,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); translate(v = [4.2, -0.5, 4.0]) rotate([0, -90, 0]) cylinder(r1 = 0.6, r2 = 0.3, h = 0.8, $fn = 60);
translate(v=[0, 4.2, 4.3]) rotate([90,0,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); translate(v = [0.5, 4.2, 4.0]) rotate([90, 0, 0]) cylinder(r1 = 0.6, r2 = 0.3, h = 0.8, $fn = 60);
translate(v=[0, -4.2, 4.3]) rotate([-90,0,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); translate(v = [-0.5, -4.2, 4.0]) rotate([-90, 0, 0]) cylinder(r1 = 0.6, r2 = 0.3, h = 0.8, $fn = 60);
translate(v=[-4.2, 0.5, 4.0]) rotate([0,90,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); translate(v = [-4.2, 1, 3.7]) rotate([0, 90, 0]) cylinder(r1 = 0.5, r2 = 0.3, h = 0.6, $fn = 60);
translate(v=[4.2, -0.5, 4.0]) rotate([0,-90,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); translate(v = [4.2, -1, 3.7]) rotate([0, -90, 0]) cylinder(r1 = 0.5, r2 = 0.3, h = 0.6, $fn = 60);
translate(v=[0.5, 4.2, 4.0]) rotate([90,0,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); translate(v = [1, 4.2, 3.7]) rotate([90, 0, 0]) cylinder(r1 = 0.5, r2 = 0.3, h = 0.6, $fn = 60);
translate(v=[-0.5, -4.2, 4.0]) rotate([-90,0,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); translate(v = [-1, -4.2, 3.7]) rotate([-90, 0, 0]) cylinder(r1 = 0.5, r2 = 0.3, h = 0.6, $fn = 60);
translate(v=[-4.2, 1, 3.7]) rotate([0,90,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
translate(v=[4.2, -1, 3.7]) rotate([0,-90,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
translate(v=[1, 4.2, 3.7]) rotate([90,0,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
translate(v=[-1, -4.2, 3.7]) rotate([-90,0,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
difference() difference()
{ {
union() union()
{ {
translate(v=[0, 0, 1]) cylinder(r1=8, r2=4.6, h = 4); translate(v = [0, 0, 1]) cylinder(r1 = 8, r2 = 4.6, h = 4);
cylinder(r=8, h = 1, $fn=60); cylinder(r = 8, h = 1, $fn = 60);
} }
translate(v=[0, 0, -1]) cylinder(r=4.2, h = 7, $fn=60); translate(v = [0, 0, -1]) cylinder(r = 4.2, h = 7, $fn = 60);
cylinder(r1=4.5, r2=4.2, h = 1, $fn=60); cylinder(r1 = 4.5, r2 = 4.2, h = 1, $fn = 60);
} }

View File

@ -15,4 +15,3 @@ This repository contains SCAD files and STLs of the printed parts.
* MK52 heatbed : https://github.com/prusa3d/Heatbed_MK52_magnetic * MK52 heatbed : https://github.com/prusa3d/Heatbed_MK52_magnetic
* Laser filament sensor : https://github.com/prusa3d/PRUSA_Laser_filament_sensor * Laser filament sensor : https://github.com/prusa3d/PRUSA_Laser_filament_sensor
* MK3 Power panic : https://github.com/prusa3d/MK3_Power_Panic * MK3 Power panic : https://github.com/prusa3d/MK3_Power_Panic