MK2.5 upgrade initial
This commit is contained in:
parent
91229ea048
commit
09bb00c3c9
|
|
@ -0,0 +1,49 @@
|
|||
// PRUSA iteration4
|
||||
// Extruder cable clip
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module extruder_cable_clip()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
// body shape
|
||||
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13,$fn=30);
|
||||
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8,r2=13, $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=5.5, $fn=30);
|
||||
|
||||
// screws
|
||||
translate([-2.7,20.0,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50);
|
||||
translate([-2.7,36,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50);
|
||||
translate([-2.7,36,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
|
||||
translate([-2.7,20.0,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
|
||||
|
||||
// screw heads opening
|
||||
translate([-2.7,16.9,35]) cube([10,6.2,15]);
|
||||
translate([-2.7,32.9,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, $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]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
translate([6,-28,-28]) extruder_cable_clip();
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
// PRUSA iteration4
|
||||
// Heatbed cable clip
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
module heatbed_cable_clip()
|
||||
{
|
||||
|
||||
difference()
|
||||
{
|
||||
|
||||
union()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
// 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);
|
||||
}
|
||||
|
||||
// screws
|
||||
translate([67,95,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
|
||||
translate([83,95,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
|
||||
|
||||
// cut flat and shape
|
||||
translate([60,82,14]) cube([30,20,14]);
|
||||
translate([60,72,20]) cube([30,20,30]);
|
||||
}
|
||||
translate([62.75,88.2,28]) cube([24.5,3.8,7]);
|
||||
}
|
||||
|
||||
// cable opening
|
||||
translate([75,105,28]) rotate([90,90,0]) cylinder(h=30,r=4.0,$fn=30);
|
||||
|
||||
// screws opening
|
||||
translate([67-3.2,90.2,35]) cube([6.4,5,7]);
|
||||
translate([83-3.2,90.2,35]) cube([6.4,5,7]);
|
||||
|
||||
// screw heads
|
||||
translate([67,95,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
|
||||
translate([83,95,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
|
||||
}
|
||||
|
||||
difference()
|
||||
{
|
||||
// cable grip
|
||||
translate([75,99,28]) rotate([90,90,0]) cylinder(h=10,r=4.5,$fn=30);
|
||||
translate([75,105,28]) rotate([90,90,0]) cylinder(h=30,r=3.5,$fn=30);
|
||||
translate([60,72,14]) cube([30,40,14]);
|
||||
translate([60,90,24]) cube([30,4,14]);
|
||||
translate([60,95,24]) cube([30,3,14]);
|
||||
}
|
||||
}
|
||||
|
||||
translate([-75,-99,-28]) heatbed_cable_clip();
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
// PRUSA iteration4
|
||||
// RAMBo cover hinges
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module upper_hinge()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
// body
|
||||
cylinder( h = 26, r = 2.4, $fn=30);
|
||||
cylinder( h = 21, r = 4.5, $fn=30);
|
||||
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
|
||||
translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 14 , 21 ] );
|
||||
}
|
||||
// M3 screw hole
|
||||
translate( [ -12.5 , -0 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
|
||||
translate( [ -1.5 , -0 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
|
||||
// angle cut
|
||||
translate([-3.9,-20,-1]) rotate([0,0,50]) cube([25,5,26]);
|
||||
}
|
||||
}
|
||||
|
||||
module lower_hinge()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
// body
|
||||
translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30);
|
||||
translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 4.5, $fn=30);
|
||||
translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
|
||||
translate( [ -5 , 3 , 0 ] ) cube( [ 7 , 13 , 10 ] );
|
||||
}
|
||||
// M3 screw
|
||||
translate( [ -0.5 , 6 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
|
||||
translate( [ -12 , 6 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
|
||||
// angle cut
|
||||
translate([-5.8,20,-1]) rotate([0,0,-50]) cube([20,5,20]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
translate([0,-4,0]) upper_hinge();
|
||||
lower_hinge();
|
||||
|
|
@ -0,0 +1,287 @@
|
|||
// PRUSA iteration4
|
||||
// RAMBo base
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
// main body
|
||||
module main_body()
|
||||
{
|
||||
|
||||
// side panel
|
||||
cube([118.5,92,2]);
|
||||
|
||||
// upper panel
|
||||
cube([1.5,92,35]);
|
||||
// rear panel
|
||||
translate( [0,90,0]) cube([105.5,2,35]);
|
||||
|
||||
// upper panel frame reinforcement
|
||||
translate([0,0,1]) cube([5.5,7,34]);
|
||||
|
||||
// side panel reinforcement
|
||||
translate([0,0,1]) cube([9,92,3]);
|
||||
translate([98,0,0]) cube([9,92,4]);
|
||||
|
||||
// raspberry
|
||||
translate([21,81,0]) cylinder( h = 4.5,r = 2.5,$fn=30);
|
||||
translate([21+58,81,0]) cylinder( h = 4.5,r = 2.5,$fn=30);
|
||||
|
||||
// heatbed cable mounting reinforcement
|
||||
translate([63,86.0,0.5]) cube([15,5,34.5]);
|
||||
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);
|
||||
translate([70.3,88,13.2]) rotate([-45,0,0]) cube([9.5,5,9]);
|
||||
translate([70.3,84,16.2]) rotate([-45,0,0]) cube([9.5,8,5]);
|
||||
|
||||
|
||||
|
||||
|
||||
difference()
|
||||
{
|
||||
// bottom side reinforcement
|
||||
translate([98,86,0]) cube([7.5,6,35]);
|
||||
translate([96,79,0]) rotate([0,0,45]) cube([7.5,6,36]);
|
||||
}
|
||||
translate([0,85,0]) cube([5.5,7,35]);
|
||||
|
||||
// screw mounting block
|
||||
translate([54,84,0]) cube([11,7,35]);
|
||||
|
||||
// frame side panel
|
||||
translate([20,0,0]) cube([80,3,5]);
|
||||
|
||||
// RAMBo mounting holes
|
||||
translate([102.5,14,1]) rotate([0,0,90]) cylinder( h = 7,r = 5.5,$fn=6);
|
||||
translate([102.5,75,1]) rotate([0,0,90]) cylinder( h = 7,r = 5.5,$fn=6);
|
||||
translate([7.5,14,1]) cylinder( h = 7,r = 5.5,$fn=6);
|
||||
translate([7.5,75,1]) cylinder( h = 7,r = 5.5,$fn=6);
|
||||
|
||||
// corners reinforcement
|
||||
translate([0,75,1]) cube([13,16,6]);
|
||||
translate([0,70.25,1]) cube([7.5,11,6]);
|
||||
translate([0,7.75,1]) cube([7.5,11,6]);
|
||||
translate([0,0,1]) cube([13,14,6]);
|
||||
|
||||
// frame mounting screw blocks
|
||||
//upper
|
||||
translate([1,0,0]) cube([28,4,10]);
|
||||
translate([18.45,0,0]) cube([3,4,5.5] );
|
||||
|
||||
//lower
|
||||
translate([98,0,0]) cube([20.5,4,10]);
|
||||
|
||||
// door closing corner
|
||||
translate([102,88.5,35]) cylinder( h = 3,r1=2.5,r2=1,$fn=30);
|
||||
|
||||
// doors pin upper
|
||||
translate([2,85,31]) cube([6,7,4] );
|
||||
translate([4,88.5,35]) cylinder( h = 3,r1=2.5,r2=1,$fn=30);
|
||||
|
||||
// x-axis cables entry hole body
|
||||
translate([89,2,0]) cylinder( h = 5,r = 6,$fn=6);
|
||||
|
||||
// extruder cable holder
|
||||
translate([0,0,15]) cube([5,40,20]);
|
||||
translate([5,28,28]) rotate([0,90,0]) cylinder(h=5,r1=10,r2=8,$fn=30);
|
||||
difference()
|
||||
{
|
||||
translate([-2,0,28]) rotate([0,45,0]) cube([9.8,25,9.8]);
|
||||
translate([-5,-5,15]) cube([5,40,20]);
|
||||
translate([10,-5,15]) cube([5,40,20]);
|
||||
}
|
||||
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13,$fn=30);
|
||||
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8,r2=13,$fn=30);
|
||||
|
||||
difference()
|
||||
{
|
||||
translate([-5.5,23.5,16]) rotate([0,45,0]) cube([8,9,8]);
|
||||
translate([1,0,10]) cube([5,40,20]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module ventilation_holes()
|
||||
{
|
||||
for ( i = [-5 : 8] )
|
||||
{
|
||||
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+49.0,1.2]);
|
||||
translate([46 + (i*5.5),10.5,-1]) cube([3.65,18,10]);
|
||||
translate([46 + (i*5.5),10.5+25,-1]) cube([3.65,18,10]);
|
||||
translate([46 + (i*5.5),10.5+50,-1]) cube([3.65,18,10]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module cutouts(){
|
||||
|
||||
|
||||
// extruder cable holder
|
||||
translate([1.5,7,14.8]) rotate([0,45,0]) cube([3,40,5]);
|
||||
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40,r = 5.5,$fn=30);
|
||||
translate([-15,7,35]) cube([30,40,15]);
|
||||
translate([-15,25,30]) cube([30,6,8]);
|
||||
|
||||
translate([-15,12,28]) cube([15,30,8]);
|
||||
translate([-12,16.5,28]) cube([15,23,8]);
|
||||
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.6,$fn=30);
|
||||
|
||||
translate([-2.7,20.0,22]) rotate([0,0,90]) cylinder( h = 10,r = 1.6,$fn=30);
|
||||
translate([-2.7,20.0,12]) rotate([0,0,90]) cylinder( h = 13,r = 3.1,$fn=6);
|
||||
translate([-2.7,36,10]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30);
|
||||
translate([-2.7,36,12]) rotate([0,0,90]) cylinder( h = 13,r = 3.1,$fn=6);
|
||||
|
||||
// side
|
||||
translate([12,19,1]) cube([85.5,51,3]);
|
||||
|
||||
// RAMBo M3 screws
|
||||
translate([7.5,14,-1]) cylinder( h = 10,r = 1.9,$fn=30);
|
||||
translate([102.5,14,-1]) cylinder( h = 10,r = 1.9,$fn=30);
|
||||
translate([102.5,75,-1]) cylinder( h = 10,r = 1.9,$fn=30);
|
||||
translate([7.5,75,-1]) cylinder( h = 10,r = 1.9,$fn=30);
|
||||
|
||||
translate([7.5,14,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
|
||||
translate([102.5,14,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
|
||||
translate([102.5,75,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
|
||||
translate([7.5,75,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
|
||||
|
||||
translate([2,0,0])ventilation_holes();
|
||||
|
||||
// frame mounting screws
|
||||
//upper
|
||||
translate([18.5,-2,15.6]) rotate([0,45,0]) cube([15,10,10] );
|
||||
translate([16.5,8,5]) rotate([90,0,0]) cylinder( h = 10,r = 1.6,$fn=30);
|
||||
translate([16.5,9,5]) rotate([90,0,0]) cylinder( h = 5,r = 3,$fn=30);
|
||||
translate([15.15,-2,5]) cube([2.7,15,10] );
|
||||
translate([15.1,-2,7]) rotate([0,5,0]) cube([2.8,15,10] );
|
||||
translate([15.1,-2,7]) rotate([0,-5,0]) cube([2.8,15,10] );
|
||||
|
||||
|
||||
//lower
|
||||
translate([110.5,9,5]) rotate([90,0,0]) cylinder( h = 10,r = 1.6,$fn=30);
|
||||
translate([110.5,9,5]) rotate([90,0,0]) cylinder( h = 5,r = 3,$fn=30);
|
||||
translate([118.5,-2,6]) rotate([0,-45,0]) cube([5,15,15] );
|
||||
translate([94.5,-2,8.5]) rotate([0,45,0]) cube([5,8,15] );
|
||||
translate([0,-2,-5]) cube([120,15,5] );
|
||||
translate([109.15,-2,5]) cube([2.7,15,10] );
|
||||
translate([109.3,-2,6.5]) rotate([0,5,0]) cube([2.5,15,10] );
|
||||
translate([109.2,-2,6.5]) rotate([0,-5,0]) cube([2.5,15,10] );
|
||||
|
||||
// USB connector hole
|
||||
translate([-1,41.5,11]) cube([5.5,13,11]);
|
||||
|
||||
// reset button
|
||||
translate([-2,65,14]) rotate([0,90,0]) cylinder( h = 10,r = 2,$fn=30);
|
||||
|
||||
// door closing screw
|
||||
translate([58.5,88,-1]) cylinder( h = 43,r = 1.9,$fn=30);
|
||||
|
||||
|
||||
|
||||
// new heatbed cable holder
|
||||
translate([75,105,28]) rotate([90,90,0]) cylinder(h=30,r=4.0,$fn=30);
|
||||
translate([67,95,15.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=6);
|
||||
translate([83,95,15.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=6);
|
||||
translate([67,95,14]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
|
||||
translate([83,95,14]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
|
||||
translate([60,92,28]) cube([30,13,14]);
|
||||
translate([60,80,35]) cube([30,13,14]);
|
||||
translate([72.5,80,30]) cube([5,13,14]);
|
||||
translate([75,92,25]) rotate([120,0,0]) cylinder(h=25,r=1.6,$fn=30);
|
||||
translate([62.5,88,28]) cube([25,15,14]);
|
||||
|
||||
// nut traps HEX
|
||||
translate([7.5,14,-1]){
|
||||
cylinder( h = 4,r = 3.2,$fn=6);
|
||||
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
}
|
||||
|
||||
translate([102.5,14,-1]){
|
||||
cylinder( h = 4,r = 3.2,$fn=6);
|
||||
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
}
|
||||
|
||||
translate([102.5,75,-1]){
|
||||
cylinder( h = 4,r = 3.2,$fn=6);
|
||||
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
}
|
||||
|
||||
translate([7.5,75,-1]){
|
||||
cylinder( h = 4,r = 3.2,$fn=6);
|
||||
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
|
||||
}
|
||||
|
||||
translate([7.5,14,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
|
||||
translate([102.5,14,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
|
||||
translate([102.5,75,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
|
||||
translate([7.5,75,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
|
||||
translate([58.5,88,-1]) cylinder( h = 4,r = 3.2,$fn=30);
|
||||
|
||||
// door closing corners
|
||||
translate([8,80,28]) rotate([0,0,45]) cube([5,5,10] );
|
||||
translate([106,81,4]) rotate([0,0,45]) cube([5,5,40] );
|
||||
|
||||
// inner edges cutout
|
||||
translate([54,79.5,2]) rotate([0,0,45]) cube([5,5,50] );
|
||||
translate([6,80,7]) rotate([0,0,45]) cube([5,5,24] );
|
||||
|
||||
// x axis cable hole
|
||||
translate([89,2,-1]) cylinder( h = 10,r = 4,$fn=6);
|
||||
translate([80,-5,-1]) cube([15,5,10] );
|
||||
|
||||
// large corner coutout
|
||||
translate([-27,80,-54]) rotate([50,0,45]) cube([50,50,50] );
|
||||
translate([137.5,60,-10]) rotate([0,0,45]) cube([50,50,50] );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
module RAMBo_base()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
main_body();
|
||||
cutouts();
|
||||
}
|
||||
|
||||
//BottomCubic();
|
||||
translate([14.5,10,-2]) cube([4,24,10]);
|
||||
translate([16.5,10,-2]) cylinder( h = 20,r = 2,$fn=30);
|
||||
translate([16.5,34,-2]) cylinder( h = 20,r = 2,$fn=30);
|
||||
|
||||
// lightening slots
|
||||
translate([100,21,2] ) cube([5,48,5]);
|
||||
translate([3,21,2] ) cube([4.5,48,5]);
|
||||
|
||||
translate([115,68,1.5]) rotate([0,0,90]) linear_extrude(height = 0.8)
|
||||
{text("R1",font = "helvetica:style=Bold",size=6,center=true); }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
RAMBo_base();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
// PRUSA iteration4
|
||||
// RAMBo doors
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
|
||||
module body()
|
||||
{
|
||||
// side panels
|
||||
cube([105.5,87.5,1.5]);
|
||||
cube([105.5,2,18]);
|
||||
cube([2,89.5,18]);
|
||||
|
||||
// corner reinforcement
|
||||
translate([98,1,0]) cube([7.5,5,18]);
|
||||
translate([0.5,0.5,0]) cube([5,6.5,18]);
|
||||
translate([1,0,0]) cube([10,87.5,6]);
|
||||
translate([99.5,0,0]) cube([6,87.5,7]);
|
||||
translate([10,0,0]) cube([6,5,6]);
|
||||
|
||||
// screw thread body
|
||||
translate([54,2,0]) cube([9.5,6,18]);
|
||||
|
||||
// rounded side
|
||||
translate([0,87.5,4.5]) rotate([0,90,0]) cylinder( h = 105.5,r = 4.5,$fn=30);
|
||||
|
||||
// upper hinge reinforcement
|
||||
translate([0.5,69,-9]) rotate([20,0,0]) cube([26,20,10]);
|
||||
|
||||
// door closing
|
||||
translate([4,3.5,14.8]) cylinder( h = 3.2,r1 = 1.8,r2= 3.5,$fn=30);
|
||||
translate([102,3.5,14.8]) cylinder( h = 3.2,r1 = 1.8,r2= 3.5,$fn=30);
|
||||
}
|
||||
|
||||
module ventilation_holes()
|
||||
{
|
||||
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+25,-1]) cube([3.65,19,10]);
|
||||
translate([40 + (i*6),10.5+50,-1]) cube([3.65,19,10]);
|
||||
}
|
||||
for ( i = [0 : -4] )
|
||||
{
|
||||
translate([40 + (i*6),10.5,-1]) cube([3.65,19+50,1.2]);
|
||||
}
|
||||
for ( i = [-6 : -7] )
|
||||
{
|
||||
translate([46 + (i*6),20.5,-1]) cube([3.65,19+40,1.2]);
|
||||
}
|
||||
translate([15,10,1]) cube([20,55,1.5]);
|
||||
}
|
||||
|
||||
module cutouts()
|
||||
{
|
||||
// door closing screw
|
||||
translate([58.5,4,1]) cylinder( h = 18,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,11.5] ){
|
||||
translate([0,0,2.5]) cube([5.7,3.8,1],center=true);
|
||||
translate([0,0,3]) cube([3.8,3.8,1],center=true);}
|
||||
|
||||
ventilation_holes();
|
||||
|
||||
// rounded side cutoff
|
||||
translate([26.5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 73,r = 3.5,$fn=30);
|
||||
translate([ 26.5,80,5]) cube([73,19,10]);
|
||||
translate([ 26.5,82.5,1]) cube([73,5,10]);
|
||||
|
||||
// upper hinge cut
|
||||
translate([0,60,-10]) cube([30,30,10]);
|
||||
translate([-1,80,-1]) rotate([-45,0,0]) cube([22.5,8,18]);
|
||||
|
||||
// upper hinge
|
||||
translate( [2,80,6] ) cube([19.5,10,10]);
|
||||
translate( [-2,88,5] ) rotate([50,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);
|
||||
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 26.5,r = 5,$fn=30);
|
||||
|
||||
// hinge hole
|
||||
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 120,r = 2.6,$fn=30);
|
||||
|
||||
// door closing
|
||||
translate([4,3.5,14.9]) cylinder( h = 3.2,r1 = 1.2,r2= 2.8,$fn=30);
|
||||
translate([102,3.5,14.9]) cylinder( h = 3.2,r1 = 1.2,r2= 2.8,$fn=30);
|
||||
|
||||
// M3 NUT
|
||||
translate( [55.65,0.5,12] ) cube([5.7,10,2.2]);
|
||||
|
||||
// side panel lightning slot
|
||||
translate( [2,10,3] ) cube([7,65,5]);
|
||||
translate( [101,10,3] ) cube([3,70,5]);
|
||||
|
||||
// corners - cut
|
||||
translate( [53,3,1.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]);
|
||||
|
||||
}
|
||||
|
||||
module RAMBo_doors()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
body();
|
||||
cutouts();
|
||||
// large corner cut
|
||||
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)
|
||||
{ text("R1",font = "helvetica:style=Bold",size=6,center=true); }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
RAMBo_doors();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
// PRUSA iteration3
|
||||
// Bearing holders
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <polyholes.scad>
|
||||
|
||||
bearing_diameter = 14.95;
|
||||
|
||||
module horizontal_bearing_base(bearings=1){
|
||||
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
|
||||
}
|
||||
|
||||
module horizontal_bearing_holes(bearings=1){
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
difference(){
|
||||
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
|
||||
// Bearing retainers
|
||||
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
}
|
||||
|
||||
// Ziptie cutouts
|
||||
ziptie_cut_ofset = 0;
|
||||
for ( i = [0 : bearings-1] ){
|
||||
// For easier positioning I move them by half of one
|
||||
// bearing holder then add each bearign lenght and then center again
|
||||
translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){
|
||||
union(){
|
||||
translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||
translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||
}
|
||||
translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module horizontal_bearing_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;
|
||||
bearing_size = bearing_diameter + 2 * thinwall;
|
||||
|
||||
module vertical_bearing_base(){
|
||||
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true);
|
||||
cylinder(h = 58, r=bearing_size/2, $fn = 90);
|
||||
}
|
||||
|
||||
module vertical_bearing_holes(){
|
||||
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2));
|
||||
translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5);
|
||||
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
|
||||
|
||||
}
|
||||
|
||||
//difference(){
|
||||
//vertical_bearing_base();
|
||||
//vertical_bearing_holes();
|
||||
//}
|
||||
//horizontal_bearing_test();
|
||||
//horizontal_bearing_base(1);
|
||||
//horizontal_bearing_holes(1);
|
||||
horizontal_bearing_holes_nozip(1);
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
//translate([0,0,0]) cylinder(r=1.5, h=40, $fn=30);
|
||||
//translate([0,0,20]) cylinder(r=3.1, h=4, $fn=30);
|
||||
|
||||
//translate([0,-4,0]) cube([3,10.0,25]);
|
||||
module zip()
|
||||
{
|
||||
translate([-5,-8,0]) cube([10,4,4]);
|
||||
translate([-12.5,-5,0]) cube([10,20.0,4]);
|
||||
translate([2.5,-5,0]) cube([10,20.0,4]);
|
||||
translate([2,-6,0]) rotate([0,0,45]) cube([5,2,4]);
|
||||
translate([-6,-2.4,0]) rotate([0,0,-45]) cube([5,2,4]);
|
||||
}
|
||||
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
translate([0,5,0]) cylinder(r=10, h=25, $fn=30);
|
||||
translate([-3,-9,0]) cube([6,10,25]);
|
||||
}
|
||||
|
||||
translate([0,10,-1]) cylinder(r=6, h=50, $fn=30);
|
||||
translate([0,0,-1]) cylinder(r=1.6, h=50, $fn=30);
|
||||
translate([3,-5,-1]) cube([10,20.0,50]);
|
||||
translate([-13,-5,-1]) cube([10,20.0,50]);
|
||||
|
||||
translate([-10,-18,-1]) rotate([-10,0,0]) cube([20,10,50]);
|
||||
|
||||
translate([0,-3.1,3]) rotate([-10,0,0]) zip();
|
||||
translate([0,-1.8,10.5]) rotate([-10,0,0]) zip();
|
||||
translate([0,-0.5,18]) rotate([-10,0,0]) zip();
|
||||
|
||||
translate([-13,-9,-10]) rotate([45,0,0]) cube([30,10.0,10]);
|
||||
translate([-13,-9,20.5]) rotate([35,0,0]) cube([30,10.0,10]);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
//
|
||||
// Mendel90
|
||||
//
|
||||
// GNU GPL v2
|
||||
// nop.head@gmail.com
|
||||
// hydraraptor.blogspot.com
|
||||
//
|
||||
// See http://hydraraptor.blogspot.com/2011/02/polyholes.html
|
||||
//
|
||||
function sides(r) = max(round(4 *r),3);
|
||||
function correctedRadius(r,n) = 0.1 + r / cos(180 / n);
|
||||
function correctedDiameter(d) = 0.2 + d / cos(180 / sides(d / 2));
|
||||
|
||||
module polyCircle(r, center = false) {
|
||||
n = sides(r);
|
||||
circle(r = correctedRadius(r,n), $fn = n, center = center);
|
||||
}
|
||||
|
||||
module poly_circle(r, center = false) {
|
||||
polyCircle(r, center);
|
||||
}
|
||||
|
||||
module polyCylinder(r, h, center = false) {
|
||||
n = sides(r);
|
||||
cylinder(h = h, r = correctedRadius(r,n), $fn = n, center = center);
|
||||
}
|
||||
|
||||
module poly_cylinder(r, h, center = false) {
|
||||
polyCylinder(r,h,center);
|
||||
}
|
||||
|
||||
module polydCylinder(r, center = false) {
|
||||
n = sides(r);
|
||||
r = correctedRadius(r,n);
|
||||
cylinder(h = h, r = r, $fn = n, center = center);
|
||||
translate([0, -r, 0])
|
||||
cube([r, 2 * r, h]);
|
||||
}
|
||||
|
||||
module poly_d_cylinder(r, center = false) {
|
||||
polydCylinder(r,center);
|
||||
}
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
// PRUSA iteration4
|
||||
// X carriage back 2.5 upgrade
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module m3head()
|
||||
{
|
||||
intersection(){
|
||||
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-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
|
||||
}
|
||||
|
||||
|
||||
|
||||
module x_back()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
|
||||
union()
|
||||
{
|
||||
// body base
|
||||
translate([-16,-39.0,15.1]) cube([33,72,8]);
|
||||
translate([-25.5,-5,15.1]) cube([52,39.5,8]);
|
||||
}
|
||||
//cables opening
|
||||
translate([-17,-22,7.5]) cube([35,4,10]);
|
||||
translate([-6.5,-18,15]) cube([10,4,10]);
|
||||
translate([-1.5,-18,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 );
|
||||
translate([-1.5,-14,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 );
|
||||
|
||||
// cables horizontal space
|
||||
translate([-20,-19.5,9]) cube([50,7.5,10]);
|
||||
|
||||
//bearings
|
||||
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([-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 );
|
||||
|
||||
// lower screws
|
||||
translate([-9.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
|
||||
translate([10.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $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([-12.6,-46,18]) cube([6.2,10,10]);
|
||||
translate([7.4,-46,18]) cube([6.2,10,10]);
|
||||
|
||||
// middle screw
|
||||
translate([1,4,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
|
||||
translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 );
|
||||
|
||||
// upper screws
|
||||
translate([13,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
|
||||
translate([-10.5,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $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 );
|
||||
|
||||
// hotend cables cut
|
||||
translate([0.5,-42.5,0]) rotate([-5,0,0]) cylinder( h=50, r=6, $fn=30 );
|
||||
|
||||
// cable holder screw
|
||||
translate([-1.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 );
|
||||
translate([-1.5,-27,16.5]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 );
|
||||
|
||||
// extruder hold together screws opening
|
||||
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 );
|
||||
|
||||
// corners
|
||||
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([-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([-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,35,21]) rotate([30,0,0]) cube([44,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]);
|
||||
|
||||
// upper side cuts
|
||||
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([17,22,13]) rotate([0,0,0]) cube([10,10,5]);
|
||||
translate([-24.5,22,13]) rotate([0,0,0]) cube([10,10,5]);
|
||||
|
||||
// side angle cuts
|
||||
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([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([-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]);
|
||||
|
||||
|
||||
// filament sensor cable
|
||||
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([4.5,-5,19.5]) rotate([0,0,0]) cube([3.5,35,4.3]);
|
||||
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([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([-18,11,22.8]) rotate([0,0,0]) linear_extrude(height = 0.4)
|
||||
{ text("MK2.5",font = "helvetica:style=Bold", size=5, center=true); }
|
||||
|
||||
translate([-15,3,15.6]) rotate([0,180,0]) linear_extrude(height = 1)
|
||||
{ text("R1",font = "helvetica:style=Bold", size=4, center=true); }
|
||||
|
||||
translate([-23,2.3,14.3]) cube([9,5.0,1]);
|
||||
|
||||
// upper ziptie left
|
||||
translate([-21.5,-25,0])
|
||||
difference()
|
||||
{
|
||||
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([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]);
|
||||
|
||||
// upper ziptie right
|
||||
translate([19,-25,0])
|
||||
difference()
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
// screw heads support
|
||||
translate([-17,26,5]) m3head();
|
||||
translate([-40.5,26,5]) m3head();
|
||||
translate([-29,-1,4]) m3head();
|
||||
translate([-19.5,-41,5]) m3head();
|
||||
translate([-39.5,-41,5]) m3head();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
rotate([0,180,0]) x_back();
|
||||
|
||||
|
|
@ -0,0 +1,331 @@
|
|||
// PRUSA iteration4
|
||||
// X carriage 2.5 upgrade
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <bearing.scad>
|
||||
|
||||
module x_carriage_body(){
|
||||
|
||||
// Small bearing holder
|
||||
translate([-33/2,0,1]) rotate([0,0,90]) horizontal_bearing_base(1);
|
||||
|
||||
// Long bearing holder
|
||||
translate([-33/2,45,1]) rotate([0,0,90]) horizontal_bearing_base(2);
|
||||
|
||||
// Base plate
|
||||
translate([-34,-14,1]) cube([34.5,70.5,6]);
|
||||
translate([-33,-15,1]) cube([33,7,14]);
|
||||
translate([-42.5,53.0,1]) cube([52,6.5,14]);
|
||||
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
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([-25,38,11]) rotate([43,0,0]) cube([20,8,8]);
|
||||
}
|
||||
|
||||
// upper motor screw block
|
||||
translate([-23,56.8,1]) rotate([0,0,0]) cube([32.5,18.2,7]);
|
||||
|
||||
// Belt holder base
|
||||
translate([-42.5,20,1]) cube([52,16,6]);
|
||||
translate([-16.5-12,24.5,1])cylinder(r=4.5, h=13, $fn=25);
|
||||
translate([-17.5+12,24.5,1])cylinder(r=4.5, h=13, $fn=25);
|
||||
translate([-16.5-12,24.5,14])cylinder(r1=4.5, r2=3.8, h=1, $fn=25);
|
||||
translate([-17.5+12,24.5,14])cylinder(r1=4.5, r2=3.8, h=1, $fn=25);
|
||||
|
||||
// Belt Insert R
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
translate([2,27,1]) cube([10,6,14]);
|
||||
translate([2,24-2.3-4.5,1]) cube([7.5,7.5,14]);
|
||||
translate([-0.5,27,1]) cube([8,7,1]);
|
||||
}
|
||||
translate([-3,25,5.5]) rotate([0,0,-40]) cube([5,5.5,10]);
|
||||
translate([8,17,5.5]) rotate([0,0,-60]) cube([2,5,10]);
|
||||
}
|
||||
|
||||
// Belt Insert L
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
translate([-33,3,0])
|
||||
{
|
||||
scale([-1,1,1])
|
||||
{
|
||||
translate([0,27,1]) cube([12.5,3,14]);
|
||||
translate([2,27-7.5-2.3,1]) cube([12.5,7.5,14]);
|
||||
//#translate([-0.5,27,1]) cube([8,7,1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
translate([-36.5,27.7,5.5]) rotate([0,0,-55]) cube([5,5.5,10]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
module x_carriage_holes(){
|
||||
// Small bearing holder holes cutter
|
||||
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(1);
|
||||
|
||||
// Long bearing holder holes cutter
|
||||
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(2);
|
||||
|
||||
// upper ziptie right
|
||||
translate([2,0,0])
|
||||
difference()
|
||||
{
|
||||
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);
|
||||
}
|
||||
// upper ziptie left
|
||||
translate([-38,0,0])
|
||||
difference()
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
// upper ziptie head
|
||||
translate([0,52.5,12]) cube([10,10,5]);
|
||||
translate([-45,52.5,12]) cube([13.5,10,5]);
|
||||
|
||||
// Extruder mounting holes
|
||||
translate([-17.5+12,24.5,-1])cylinder(r=1.8, h=20, $fn=25);
|
||||
translate([-17.5+12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $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.8, h=20, $fn=25);
|
||||
translate([-16.5-12,24.5,-0.1])cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
||||
translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25);
|
||||
|
||||
// Carriage slimer
|
||||
translate([-55.5+3,19,-1])cube([10,40,30]);
|
||||
translate([+12.5-3,19,-1])cube([10,40,30]);
|
||||
|
||||
translate([+12.5-3.5-2,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]);
|
||||
|
||||
}
|
||||
|
||||
module x_carriage_fancy()
|
||||
{
|
||||
// Top right corner
|
||||
translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]);
|
||||
|
||||
// Belt Smooth insert
|
||||
translate([0,36.5,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
|
||||
translate([-52.9,36.5+3,23.5]) rotate([45,0,0]) translate([0,-15,0]) cube([20,10,10]);
|
||||
|
||||
// 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([-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]);
|
||||
|
||||
// bottom side edges
|
||||
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([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([-33.5,55.9,12]) rotate([0,0,45]) cube([6,6,16]);
|
||||
|
||||
}
|
||||
|
||||
module cable_tray(){
|
||||
|
||||
// center screw block
|
||||
translate([-21,23,1]) cube([9,12,14]);
|
||||
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
translate([-20.8,24.8,1]) rotate([0,0,20]) cube([3,10,14]);
|
||||
translate([-15.5,25.8,1]) rotate([0,0,-20]) cube([3,10,14]);
|
||||
}
|
||||
translate([-25,34.2,1]) cube([20,10,14]);
|
||||
}
|
||||
|
||||
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,1]) cube([9,2,14]);
|
||||
translate([-39.9,5.5,1]) cube([9,2,14]);
|
||||
|
||||
//Right cable tray
|
||||
translate([-2,5.5,1]) cube([11.45,2,14]);
|
||||
translate([-2,11,7]) cube([11.45,2,8]);
|
||||
|
||||
translate([-31,11.5,7]) cube([30,1.5,8]);
|
||||
|
||||
difference()
|
||||
{
|
||||
translate([0,11,1]) cube([9.50,12,6]);
|
||||
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(){
|
||||
|
||||
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([0.5,10+3,-1])cube([7,9.2,6]);
|
||||
|
||||
|
||||
// filament hole
|
||||
translate([-18.5,8.8,0]) rotate([-5,0,0]) cylinder(r=1.52, h=40, $fn=10);
|
||||
translate([-18.5,9.7,10]) rotate([-5,0,0]) cylinder(r=1.52,r2=2, h=6, $fn=10);
|
||||
|
||||
// bottom back mounting screws
|
||||
translate([-6.5,-11,4]) rotate([0,0,0]) cylinder(r=1.65, h=20, $fn=30);
|
||||
translate([-26.5,-11,4]) rotate([0,0,0]) cylinder(r=1.65, h=20, $fn=30);
|
||||
translate([-29.5,-14,10]) cube([6,7,2.2]);
|
||||
translate([-09.5,-14,10]) cube([6,7,2.2]);
|
||||
translate([-28.2,-14,10.3]) cube([3.4,7,2.2]);
|
||||
translate([-08.2,-14,10.3]) cube([3.4,7,2.2]);
|
||||
|
||||
translate([-4,56,0]) rotate([0,0,0]) cylinder(r=1.65, h=40, $fn=30);
|
||||
translate([-27.5,56,0]) rotate([0,0,0]) cylinder(r=1.65, h=40, $fn=30);
|
||||
translate([-30.5,53,8]) cube([6,8,2]);
|
||||
translate([-7,53,8]) cube([6,8,2]);
|
||||
|
||||
translate([-16,29,0]) rotate([0,0,0]) cylinder(r=1.65, h=40, $fn=30);
|
||||
translate([-19,26,11]) cube([6,8,2]);
|
||||
translate([-21,33,11]) cube([10,8,6]);
|
||||
|
||||
|
||||
translate([-16.5,-18,-5]) rotate([-5,0,0]) cylinder(r=6, h=40, $fn=30);
|
||||
|
||||
}
|
||||
|
||||
// Final part
|
||||
module x_carriage_base()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
x_carriage_body();
|
||||
x_carriage_holes();
|
||||
x_carriage_fancy();
|
||||
}
|
||||
cable_tray();
|
||||
|
||||
difference()
|
||||
{
|
||||
translate([-24,7.7,1.5]) cube([10.5,4,13.5]);
|
||||
translate([-16.4,6.7,16]) rotate([0,45,0]) cube([5,7,5]);
|
||||
translate([-27.4,6.7,16]) rotate([0,45,0]) cube([5,7,5]);
|
||||
translate([-27.4,6.7,13.7]) rotate([45,0,0]) cube([20,7,5]);
|
||||
}
|
||||
}
|
||||
final_cutout();
|
||||
}
|
||||
}
|
||||
|
||||
module x_carriage()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
x_carriage_base();
|
||||
|
||||
// endstop
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
translate([-8.5,-16,1]) cube([18,5.5,11]);
|
||||
translate([2,-15.5,1]) rotate([0,0,60]) cube([5,5,11]);
|
||||
}
|
||||
translate([6,-17,0]) rotate([0,45,0]) cube([10,8,11]);
|
||||
translate([-12,-18.5,0]) rotate([0,0,-25]) cube([15,8,15]);
|
||||
translate([-6.5,-11,4]) rotate([0,0,0]) cylinder(r=1.65, h=20, $fn=30);
|
||||
translate([-09.5,-14,10]) cube([6,7,2.2]);
|
||||
}
|
||||
|
||||
}
|
||||
translate([2.5,67.5,-50]) rotate([0,0,0]) cylinder(r=1.8, h=100, $fn=30);
|
||||
translate([2.5,67.5,-0.1]) cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
|
||||
translate([2.5,67.5,5]) rotate([0,0,0]) cylinder(r=3.2, h=8, $fn=30);
|
||||
translate([0.5,22.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=7.0, $fn=25);
|
||||
|
||||
difference()
|
||||
{
|
||||
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]);
|
||||
}
|
||||
|
||||
// selective infill
|
||||
translate([-36.5,21.25,1.5]) cube([0.1,4.5,13.3]);
|
||||
translate([-38.6,21,1.5]) cube([0.1,6,13.3]);
|
||||
translate([-41,21,1.5]) cube([0.1,6,13.3]);
|
||||
|
||||
translate([3.5,21,6]) cube([0.1,2,8.8]);
|
||||
translate([5,21,6]) cube([0.1,3,8.8]);
|
||||
translate([6.8,21,5.5]) cube([0.1,3,9]);
|
||||
translate([8.5,21,5]) cube([0.1,3,9.8]);
|
||||
|
||||
translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]);
|
||||
|
||||
|
||||
|
||||
|
||||
translate([-19,24,1.5]) cube([5,0.4,13.0]);
|
||||
translate([-20.5,27,1.5]) rotate([0,0,20]) cube([0.4,5,13.0]);
|
||||
|
||||
|
||||
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]);
|
||||
|
||||
|
||||
|
||||
//version
|
||||
translate([-2,-8,1.5]) rotate([0,180,0]) linear_extrude(height = 0.6)
|
||||
{ text("R1",font = "helvetica:style=Bold", size=4, center=true); }
|
||||
|
||||
translate([-10,34,1.5]) rotate([0,180,0]) linear_extrude(height = 0.6)
|
||||
{ text("2.5",font = "helvetica:style=Bold", size=8, center=true); }
|
||||
}
|
||||
}
|
||||
|
||||
x_carriage();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue