MK2.5 upgrade initial

This commit is contained in:
akukan 2017-12-12 17:33:24 +01:00 committed by GitHub
parent 91229ea048
commit 09bb00c3c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1215 additions and 0 deletions

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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);

View File

@ -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]);
}

View File

@ -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);
}

View File

@ -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();

View File

@ -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();