Compare commits

..

7 Commits
MK3S ... MK2

Author SHA1 Message Date
Alexandr Kukan b5e22772bb
Added missing part 2019-07-11 16:13:07 +02:00
veverkaondrej 9649565b55
initial version 2018-03-21 16:27:19 +01:00
veverkaondrej d3daf51d58
initial version 2018-03-21 16:26:21 +01:00
akukan d5676503af
Heatbed cable cover with screw clip 2018-01-10 09:31:17 +01:00
akukan 83266a1d49
Heatbed cable cover with screw clip 2018-01-10 09:29:26 +01:00
akukan c5e1dd9254
Heatbed cable cover with screw clip 2018-01-10 09:28:30 +01:00
akukan 2408cbe5b3 Update README.md 2017-03-16 10:19:49 +01:00
159 changed files with 481479 additions and 671823 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

16805
Heatbed MK42/Heatbed-MK24.brd Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,977 +0,0 @@
// PRUSA iteration4
// Einsy base
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module CubicPattern(Xdim, Ydim)
{
for (x =[0:12:Xdim-10])
{
for (y =[0:12:Ydim-10])
{
translate([x,y,-0.2])cube([10,10,0.4]);
}
}
}
module BottomCubic()
{
difference()
{
translate([5,5,0]) CubicPattern(110,90);
translate([11,0,-1]) cube( [ 11, 40 , 4 ] );
translate([0,0,-1]) cube( [ 11, 28 , 4 ] );
translate([0,64,-1]) cube( [ 16, 28 , 4 ] );
translate([95,64,-1]) cube( [ 20, 28 , 4 ] );
translate([95,0,-1]) cube( [ 20, 28 , 4 ] );
translate([76,-10,-1]) cube( [ 20, 20 , 4 ] );
translate([52,76,-1]) cube( [ 12, 20 , 4 ] );
}
}
// main body
module main_body()
{
//raspberry frame
// 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 , 7 , 34 ] );
// side panel reinforcement
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
//
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);
// ziptie cable managment
translate( [0 , 55 , 22 ] ) difference() {
translate( [0 , 0 , -2 ] ) cube( [ 5 , 8 , 10 ] );
translate( [0 , -1 , -3 ] ) rotate([0,45,0]) cube( [ 5 , 10 , 8 ] );
translate( [5, -1 , 6 ] ) rotate([0,-60,0]) cube( [ 5 , 10 , 8 ] );
union() {
translate( [1.5 , 2.5 , 3.5] ) cube( [ 2 , 3 ,10 ] );
translate( [3 , 2.5 , 2 ] ) cube( [ 5.5 , 3 ,2 ] );
translate( [2 , 2.5 , 6.5 ] ) cube( [ 5 , 3 ,3 ] );
difference () {
translate( [ 3 ,5.5 , 3.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1.5, $fn=30);
translate( [3.5 , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
difference () {
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1, $fn=30);
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 0.5, $fn=30);
translate( [3.5 , 1.5 , 4.5 ] ) cube( [ 5 , 5 ,3 ] );
translate( [4. , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
}
}
translate( [25 , 91.5 , 22 ] ) rotate([0,0,-90]) difference() {
translate( [0 , 0 , -2 ] ) cube( [ 5 , 8 , 10 ] );
translate( [0 , -1 , -3 ] ) rotate([0,45,0]) cube( [ 5 , 10 , 8 ] );
translate( [5, -1 , 6 ] ) rotate([0,-60,0]) cube( [ 5 , 10 , 8 ] );
union() {
translate( [1.5 , 2.5 , 3.5] ) cube( [ 2 , 3 ,10 ] );
translate( [3 , 2.5 , 2 ] ) cube( [ 5.5 , 3 ,2 ] );
translate( [2 , 2.5 , 6.5 ] ) cube( [ 5 , 3 ,3 ] );
difference () {
translate( [ 3 ,5.5 , 3.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1.5, $fn=30);
translate( [3.5 , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
difference () {
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1, $fn=30);
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 0.5, $fn=30);
translate( [3.5 , 1.5 , 4.5 ] ) cube( [ 5 , 5 ,3 ] );
translate( [4. , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
}
}
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( [ 9.5 , 7 , 35 ] );
// frame side panel
translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] );
// Einsy 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);
}
module rambo_popout_cover () {
//raspberry cover
translate( [ 20 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 33 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 45.8 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 59 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [72.5 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 20 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 33 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 45.8 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 59 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [72.5 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 9 , 51.5 , 0] ) cube( [ 5 , 7 , 0.5] );
translate( [ 81 , 53.5 , 0] ) cube( [ 1 , 3 , 0.5] );
difference() {
translate( [ 14 , 38.5 , 0] ) cube( [ 67 , 33 , 2] );
translate( [ 0.5 , 0.5 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.2 , 41.7 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 13.5 , 41.7 , -1] ) cube( [ 12.7 , 9 , 9] );
translate( [ 17.2 , 38 , -1] ) cube( [ 9, 5 , 9] );
}
translate( [ 60 , 0 , 0] ) difference()
{
translate( [ 17.3 , 42.2 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.3 , 42.2 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 9.0 , 42 , -1] ) cube( [ 12 , 9 , 9] );
translate( [ 8.8 , 38.5 , -1] ) cube( [ 9, 5 , 9] );
}
translate( [ 60 , 26 , 0] ) difference()
{
translate( [ 17.3 , 41.8 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.4 , 41.8 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 8.5 , 33.5 , -1] ) cube( [ 9 , 12 , 9] );
translate( [ 17 , 33 , -1] ) cube( [ 4, 9 , 9] );
}
translate( [ 0 , 26 , 0] ) difference()
{
translate( [ 17.7 , 41.8 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.7 , 41.8 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 17.5 , 33.5 , -1] ) cube( [ 9 , 12 , 9] );
translate( [ 14 , 33.5 , -1] ) cube( [ 5, 9 , 9] );
} }}
module ventilation_holes()
{
difference () {
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]);
}
difference () {
translate( [ 13 , 35 , 0] ) cube( [ 71 , 39 , 2] );
translate( [ 14 , 40.5 , -0.1] ) cube( [ 63 , 29 , 2.2] );
}}
}
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,0,35]) cube([30,60,15]);
translate([-15,24,30]) cube([30,8,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.7,$fn=30);
// side
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
// Einsy 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);
// 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( [ 70 , 82.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
translate( [ 6 , 80 , 7 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 24] );
translate( [ 5.5 , 4 , 7 ] ) rotate([0,0,45]) cube( [ 3 , 5 , 29] );
// 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] );
// screw body edge
translate( [ 65 ,74.2 , 2] ) rotate([0,0,45]) cube( [ 10 , 10 , 50 ] );
}
module raspberry()
{
//raspberry pcb
translate( [ 11 , 42 , -1] ) cube( [ 2.1 , 26 , 9] );
translate( [ 81.9 , 42 , -1] ) cube( [ 2.1 , 5 , 9] );
translate( [ 81.9 ,63 , -1] ) cube( [ 2.1 , 5 , 9] );
difference() {
translate( [ 13 , 37.5 , -1] ) cube( [ 69 , 35 , 9] );
translate( [ 0 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 13 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 17.5 , 37.5 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 10 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 9.5 , 37.5 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 9.5 , 34.5 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 18 , 34 , -1] ) cube( [ 4, 8 , 9] );
}
translate( [ 0 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 17.5 , 34.5 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 13 , 34 , -1] ) cube( [ 5, 8 , 9] );
} }}
module rambo_cover()
{
difference(){
rambo_popout_cover ();
cutouts();
}
difference(){
main_body();
cutouts();
raspberry();
// main hole
translate( [ -10 , 28 , 26 ] ) rotate([0,90,0]) cylinder( h = 24, r = 6.8, $fn=30);
// cable opening slot
translate( [ -15 , 25 , 30 ] ) cube( [ 30 , 6 , 10 ] );
}
}
difference()
{
union()
{
rambo_cover();
// extruder cable holder
difference(){
translate([0,0,15]) cube([5,40,20]);
translate([1.5,3,14.8]) rotate([0,45,0]) cube([3,40,5]);
}
translate([5,28,28]) rotate([0,90,0]) cylinder(h=5,r1=10,r2=8,$fn=30);
difference()
{
translate([-1.93,0,28.07]) 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]);
// screwdriver hole
translate( [ 7.5 , 14 , 15 ] ) cylinder( h = 25, r = 2, $fn=30);
translate( [ 7.5 , 12 , 15 ] ) cube( [ 8 , 4 , 25] );
}
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);
difference()
{
translate([-5.5,23.5,16]) rotate([0,45,0]) cube([8,9,8]);
translate([1,0,10]) cube([5,40,20]);
}
// heatbed cable mounting reinforcement
translate([63,86.0,0.5]) cube([15,5,34.5]);
translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30);
translate([75,99,28]) rotate([90,0,0]) cylinder(h=9,r=13,$fn=30);
translate([75,101,28]) rotate([90,0,0]) cylinder(h=2,r1=9,r2=13,$fn=30);
difference(){
translate([70.3,88.5,12.7]) rotate([-45,0,0]) cube([9.5,5,10]);
translate([70.4,85.5,10]) cube([9.5,5,9]);
}
}
// extruder cable holder
translate([1.5,7.1,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,23.5,30]) cube([30,9,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.8,$fn=30);
//screw holes
translate([-2.7,19.5,20]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30);
translate([-2.7,36.5,20]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30);
// nuts with supports
translate([-5.7,19.5,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,0]) cube([12,5.7,2.7], center =true) ;
translate([-8.6,-5,0.35]) cube([10,15,0.75]);
translate([4.6,-5,0.35]) cube([4,15,0.75]);
translate([-2.6,-5.6,0.65]) cube([15,4,0.35]);
translate([-2.6,1.6,0.65]) cube([15,4,0.35]);
}
translate([-5.7,36.5,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,0]) cube([12,5.7,2.7], center =true) ;
translate([-8.6,-5,0.35]) cube([10,15,0.75]);
translate([4.6,-5,0.35]) cube([4,15,0.75]);
translate([-2.6,-5.6,0.65]) cube([15,4,0.35]);
translate([-2.6,1.6,0.65]) cube([15,4,0.35]);
}
translate([-2.7,36,12]) rotate([0,0,90]) cube([3,40,5]);
// new heatbed cable holder
translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=3.3,$fn=30);
// nuts with supports
translate([67,90.8 -4,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,90]) cube([10,5.7,2.7], center =true) ;
translate([-5.6,-5,0.65]) cube([4,15,0.5]);
translate([1.6,-5,0.65]) cube([4,15,0.5]);
translate([-5.6,-3.6,0.35]) cube([15,4,0.75]);
translate([-5.6,3.6,0.35]) cube([15,4,0.75]);
}
translate([83,98,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,90]) cube([10,5.7,2.7], center =true) ;
translate([-5.6,-5,0.65]) cube([4,15,0.5]);
translate([1.6,-5,0.65]) cube([4,15,0.5]);
translate([-5.6,-7.6,0.35]) cube([15,4,0.75]);
translate([-5.6,-0.4,0.35]) cube([15,4,0.75]);
}
translate([67,88.8,20]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([83,96,20]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([60,92,28]) rotate([0,0,0]) cube([30,13,14]);
translate([60,80,35]) rotate([0,0,0]) cube([30,13,14]);
translate([72.5,80,30])rotate([0,0,0]) cube([5,13,14]);
translate([62.5,82,28]) rotate([0,0,0]) cube([25,20,14]);
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.9, $fn=30);
translate( [ -16.2 , 28, 29 ] ) rotate([45,0,0]) cube( [ 40 , 12 , 12 ] );
//BottomCubic();
translate( [ 14.5, 10, -2 ] ) cube( [ 4 , 23 , 10 ] );
translate( [ 16.5, 10, -2 ] ) cylinder( h = 20, r = 2, $fn=30);
translate( [ 16.5, 33, -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 ] );
// bottom holes print supports
translate( [ 7.5 , 14 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 102.5 , 14 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 102.5 , 75 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 7.5 , 75 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 58.5 , 88 ,0] ){
intersection(){cylinder(r=3.2, h=10, $fn=30);
translate( [ 0 , 0 , 2.5 ] ) cube([3.8,8,2], center=true);}
translate( [ 0 , 0 , 3 ] ) cube([3.8,3.8,2], center=true);
}
translate([21,81,-5]) cylinder( h = 24, r = 0.8, $fn=30);
translate([21+58,81,-5]) cylinder( h = 24, r = 0.8, $fn=30);
translate([115,68,1.5]) rotate([0,0,90]) linear_extrude(height = 0.8)
{ text("R3",font = "helvetica:style=Bold", size=6, center=true); }
}
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);
}
// 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]);
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,$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,30.5]) 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);
// grips
}
}
//translate([0,0,0]) heatbed_cable_clip();
module extruder_cable_clip()
{
difference(){
difference()
{
union()
{
// body shape
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]);
}
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();
module raspberry_cover () {
//holders
difference() {
union () {
translate( [ 11.5 , 42.5 , 0] ) cube( [ 2 , 4 , 3.5] );
translate( [ 11.5 ,63.5 , 0] ) cube( [ 2 , 4 , 3.5] );
translate( [ 81.5 , 42.5 , 0] ) cube( [ 2 , 4 , 2.5] );
translate( [ 81.5 ,63.5 , 0] ) cube( [ 2 , 4 , 2.5] );
translate( [ 10.4 , 42.5 , 2.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );
translate( [ 10.4 ,63.5 , 2.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );
translate( [ 81.7 , 42.5 , 1.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );
translate( [ 81.7 ,63.5 , 1.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );}
translate( [ 10.5 , 42 , 3.5] ) cube( [ 4 , 5 , 3.5] );
translate( [ 10.5 ,63 , 3.5] ) cube( [ 4 , 5 , 3.5] );
translate( [ 81.5 , 42 , 2.5] ) cube( [ 4 , 5 , 2.5] );
translate( [ 81.5 ,63 , 2.5] ) cube( [ 4 , 5 , 2.5] );
}
//body
difference() {
translate( [ 11.5 , 36 , -3] ) cube( [ 72 , 38 , 3] );
translate( [ -0.4 , -0.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 11.9 , 42 , -4] ) cube( [ 14 , 8 , 4] );
translate( [ 17.5 , 36.4 , -4] ) cube( [ 8, 6 , 4] );
}
translate( [ 60.4 , -0.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 9.1 , 42 , -4] ) cube( [ 14 , 8 , 4] );
translate( [ 9.5 , 36.4 , -4] ) cube( [ 8, 6 , 4] );
}
translate( [ 60.4 , 26.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 8.5 , 33.6 , -4] ) cube( [ 9 , 14 , 4] );
translate( [ 17.1 , 34 , -4] ) cube( [ 6, 8 , 4] );
}
translate( [ -0.4 , 26.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 17.5 , 33.6 , -4] ) cube( [ 9 , 14 , 4] );
translate( [ 11.9 , 33.4 , -4] ) cube( [ 6, 9 , 4] );
}
// ventilation cutout
for ( i = [-5 : 6] ){
translate([43 + (i*5.5),42.3,-5]) cube([3.65,25.2,10]);
}
//raspberry pcb cutout
translate ([0,0,-2]) difference() {
translate( [ 13.5 , 38 , 0] ) cube( [ 68 , 34 , 9] );
translate( [ 0 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 13.5 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 17.5 , 38 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 9.5 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 9.5 , 38 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 9.5 , 34 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 17.5 , 34 , -1] ) cube( [ 4, 8 , 9] );
}
translate( [ 0 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 17.5 , 34 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 13.5 , 34 , -1] ) cube( [ 5, 8 , 9] );
} }
}
}

View File

@ -1,129 +0,0 @@
// PRUSA iteration4
// Einsy 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,16]);
cube([2,87.5,16]);
// corner reinforcement
translate([98,1,0]) cube([7.5,5,16]);
translate([0.5,0.5,0]) cube([5,6.5,16]);
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,16]);
// 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,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()
{
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 = 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,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,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
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 120, r = 2.6, $fn=30);
// 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([102,3.5,12.9]) rotate([0,0,0]) 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 Einsy_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); }
}
}
Einsy_doors();

View File

@ -1,58 +0,0 @@
// 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(){
difference()
{
union()
{
// body shape
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]);
}
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([6,-28,-28]) extruder_cable_clip();

View File

@ -1,83 +0,0 @@
// 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);
}
// 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]);
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);
}
}
translate([-70,-110,0]) heatbed_cable_clip();

View File

@ -1,83 +0,0 @@
// 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);
}
// 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]);
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);
}
}
translate([-70,-110,0]) heatbed_cable_clip();

View File

@ -1,201 +0,0 @@
// PRUSA iteration4
// LCD cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module main_body()
{
difference()
{
union()
{
// main body
translate( [ -77 , -4.5 , 0 ] ) cube( [ 155 , 59.8 , 2 ] );
translate( [ -77 , -4.5 , 0 ] ) rotate([35,0,0]) cube( [ 155 , 3 , 20.08 ] );
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( [ -77 , -15.2 , 14.2 ] ) cube( [ 155 , 3.1 , 11.8 ] );
translate( [ -77 , 54 , 0 ] ) cube( [ 155 , 2 , 17 ] );
// M3 hole body
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);
}
// LCD window
translate( [ -61.5 , 1 , 1.2 ] ) cube( [ 98.5 , 42 , 10 ] );
translate( [ -52.5 , 8 , -1 ] ) cube( [ 80 , 30.5 , 10 ] );
for(buzz = [55 : 2 : 67])
{
translate([buzz,1.5,-1]) cube([1.3,4,10]);
translate([buzz-0.75,1.5,-0.5]) rotate([0,45,0]) cube([2,4,2]);
if(buzz<67) translate([buzz+1.25,1.5,-0.5]) rotate([0,45,0]) cube([2,4,2]);
}
// knob hole
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);
// reset button cutout
translate( [ 44 , 26 , -1 ] ) cube( [ 1 , 6 , 9 ] );
translate( [ 48 , 26 , -1 ] ) cube( [ 1 , 2.5 , 9 ] );
translate( [ 68.5 , 36 , -1 ] ) cube( [ 1 , 8 , 9 ] );
translate( [ 56 , 43 , -1 ] ) cube( [ 13.5 , 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( [ 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 ] );
// rear support cutout
translate( [ -64.5 , -12.1 , 14 ] ) cube( [ 10 , 3 , 16 ] );
translate( [ 55.5 , -12.1 , 14 ] ) cube( [ 10 , 3 , 16 ] );
}
difference()
{
translate([-70,55.5,-2]) rotate([55,0,0]) cube([120,5,5]);
translate([-100,40,-9.5]) cube([200,50,10]);
}
}
module pcb_clip()
{
difference()
{
union()
{
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( [ -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 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] );
translate( [ -2.5 , -12 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] );
}
}
difference()
{
union()
{
pcb_clip();
main_body();
// reset button
translate( [ 62.5 , 37.3 , 0 ] ) cylinder( h = 7.2, r = 3.5, $fn=30);
//left side
translate( [ -77 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] );
translate( [ -76.5 , -15 , 0 ] ) cube( [ 4 , 70 , 14.6 ] );
//right side
translate( [ 76.5 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] );
translate( [ 73.5 , -14 , 0 ] ) cube( [ 4 , 70 , 14.5 ] );
//rear side reinforcement
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 , -13 , 14 ] ) cube( [ 12 , 2 , 12 ] );
translate( [ -76.5 , -11.7 , 8 ] ) cube( [ 12 , 4 , 6.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( [ -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);
//front left side reinforcement
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 ] );
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
translate( [ -80 , 9 , 16.5 ] ) cube( [ 10 , 28 , 4.5 ] );
// front and rear angle
translate( [ -81 , -10.5 , -17 ] ) rotate([32,0,0]) cube( [ 164 , 14 , 54.08 ] );
translate( [ -78 , 72.7 , -3 ] ) rotate([45,0,0]) cube( [ 160 , 14 , 54.08 ] );
// M3 screw thread
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 , 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);
// ORIGINAL PRUSA text
translate([-67,51,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
{ text("ORIGINAL",font = "helvetica:style=Bold", size=7, center=true); }
translate([-18,51,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
{ text("PRUSA",font = "helvetica:style=Bold", size=11, center=true); }
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( [ -21 , 41.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
// front cleanup
translate( [ -100 , -64.6 , 0 ] ) cube( [ 200 , 50 , 50 ] );
// X sign on reset button
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 ] );
// corners
translate([74.05,-5,-2.7]) rotate([0,35,0]) cube([7,80,7]);
translate([-82.8,-5,-1]) rotate([0,55,0]) cube([7,80,7]);
translate( [ -82 , 58.5 , -5 ] ) rotate([55,0,0]) cube( [ 200, 7, 7 ] );
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 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
translate( [ -77 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
// LCD corners
translate( [ -52.5 , 9.5 , -5.2 ] ) rotate([45,0,0]) cube( [ 80 , 5 , 5 ] ); // LCD window
translate( [ -52.5 , 37 , -5.2 ] ) rotate([45,0,0]) cube( [ 80 , 5 , 5 ] ); // LCD window
rotate([32,0,0]) translate( [ -78 , -9.1 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] );
rotate([32,0,0]) translate( [ 79 , -9.1 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] );
translate( [ -100 , -40 , -50 ] ) cube( [ 200 , 50 , 50 ] );
// version
translate([-73,15,4]) rotate([90,0,90]) linear_extrude(height = 2)
{ text("R7",font = "helvetica:style=Bold", size=7, center=true); }
}
// SD card window support
translate( [ -76.5 , 15 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] );
translate( [ -76.5 , 25 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] );

View File

@ -1,317 +0,0 @@
// PRUSA iteration3
// PSU Cover MK3
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module CubeAdjust(Xdim, Zdim)
{
for (x =[6:11.2:Xdim-12])
{
for (z =[6:11.2:Zdim-12])
{
translate([x,-0.2,z])cube([10,0.4,10]);
}
}
}
module nuttrap()
{
rotate([0, 180, 0]) difference()
{
union()
{
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.2])rotate([0,0,30]) cylinder(r=3.5,h=15-1.5, $fn=6);
}
}
module m3_screw()
{
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,14]) cylinder(r=2.8,h=5, $fn=30);
}
module PSU_COVER()
{
difference()
{
union()
{
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([-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([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([-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,51.32])cube([1.65,65,2.46]); // Frame skirt 3
}
//pretty corners
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([-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,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([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,45])rotate([0,-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([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([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([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-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout
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
}
}
}
module PSU_Y_REINFORCEMENT()
{
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(){
difference()
{
union()
{
PSU_COVER();
PSU_Y_REINFORCEMENT();
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([-5,-9,-30]) cube([150,10,100]);
}
}
module upper_part()
{
difference()
{
union()
{
psu_main();
translate([30,3.5,49.5]) 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([37,9,39]) rotate([0,0,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([52,9,14.5]) rotate([0,180,0]) m3_screw();
//version
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); }
}
}
module lower_part()
{
difference()
{
union()
{
difference()
{
union()
{
psu_main(); // base cover
translate([50,0.5,40]) cube([40,3,13.8]);
translate([5,0.5,4]) cube([90,4,45]);
}
translate([-5,3.5,-20]) cube([120,100,120]); // cut
}
// frame side wall
translate([3.1,3,5]) cube([3,10,40]);
translate([5.1,3,20]) cube([3,10,10]);
// rear wall
translate([93.9,3,5]) cube([3,10,40]);
translate([91.1,3,20]) cube([3,10,10]);
// switch side wall
translate([30,3,44.5]) cube([15,11,5]);
// nut inserts
translate([32,1,44]) cube([10,1,5]);
translate([3,1,20]) cube([5,11,10]);
translate([92,1,20]) cube([5,11,10]);
translate([45,2,3.5]) cube([15,11,5]);
translate([46.5,1,3.5]) cube([10,2,5]);
// floor reinforcement
difference()
{
translate([5,0.5,4]) cube([90,3.5,45]);
translate([53.5,-1,34]) cube([27.5,8,20]);
}
}
// rear side nut
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([-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
translate([0,15,38]) rotate([45,0,0]) cube([15,15,15]);
translate([90,15,38]) rotate([45,0,0]) cube([15,15,15]);
translate([0,15,-9]) rotate([45,0,0]) cube([15,15,15]);
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
translate([31.5+2.8,0,47.5-2]) cube([5.6,9+2.8,2.3]);
translate([37,9,43 ]) rotate([0,0,90]) cylinder(h=15,r=1.6, $fn=30 );
// reinforcement side nut
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]);
// cleanup
translate([-5,-8,-20]) cube([120,10,120]);
// 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([100,23,-2]) rotate([90,0,180]) lower_part();

View File

@ -1,118 +0,0 @@
// 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);
}
}
module horizontal_bearing_holes_nozip_smooth(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=150);
// 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_smooth_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=120);
// 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 = 250);
}
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);
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

@ -1,32 +0,0 @@
// PRUSA iteration4
// Endstop block
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module endstop_block()
{
difference()
{
union()
{
// body
translate([1,-16,1]) cube([12,9,14]);
translate([1,-16,1]) rotate([0,0,45]) cube([3,2.2,14]);
translate([0.5,-8,1]) cube([3,1,14]);
}
// screw
translate([-4,-11,11]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=30);
translate([5,-11,11]) rotate([0,90,0]) cylinder(r=3.1, h=10, $fn=30);
// edges
translate([-13,-22,-0]) rotate([45,45,0]) cube([15,15,15]);
translate([-1,-0,-10]) rotate([60,0,0]) cube([15,15,15]);
translate([-12,-20,0]) rotate([0,50,0]) cube([15,15,15]);
}
}
rotate([0,180,0]) endstop_block();

View File

@ -1,102 +0,0 @@
// PRUSA iteration4
// Heatbed cable cover clip MK3S
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module m3_nut()
{
difference()
{
union()
{
cylinder( h = 4, r = 3.15, $fn=6);
translate([0,0,2.5]) cylinder( h = 4, r1 = 3.15, r2=4,$fn=6);
translate([0,0,-9]) cylinder( h = 12, r = 1.7, $fn=30);
translate([0,0,-0.49]) cylinder( h = 0.5, r1 = 1.7, r2=1.95,$fn=30);
}
translate([1.7,-5,-1]) cube([5,10,2]);
translate([-6.7,-5,-1]) cube([5,10,2]);
translate([-5,1.7,-1.5]) cube([10,5,2]);
translate([-5,-6.7,-1.5]) cube([10,5,2]);
}
}
module clip()
{
difference()
{
// base body
translate([-15,15.5,-3]) cube([30,20.5,6]);
// inner angled cut
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([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([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([-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([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]);
// cables cut
translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 187, r=4, $fn=60);
translate([-11,30,0]) rotate([0,180,30]) m3_nut();
translate([11,30,0]) rotate([0,180,30]) m3_nut();
// 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
difference()
{
difference()
{
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([-15,18,3]) cube([30,20,6]);
translate([-15,27,-5]) cube([30,2,16]);
translate([-15,30,-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([10,5,6]);
translate([-4,20,0]) rotate([0,0,0]) cube([8,11,6]);
}
}
clip();

View File

@ -1,137 +0,0 @@
// PRUSA iteration4
// Heatbed cable cover MK3S
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module m3_nut()
{
difference()
{
union()
{
cylinder( h = 4, r = 3.15, $fn=6);
translate([0,0,2.5]) cylinder( h = 4, r1 = 3.15, r2=4,$fn=6);
translate([0,0,-9]) cylinder( h = 12, r = 1.7, $fn=30);
translate([0,0,-0.49]) cylinder( h = 0.5, r1 = 1.7, r2=1.95,$fn=30);
}
translate([1.7,-5,-1]) cube([5,10,2]);
translate([-6.7,-5,-1]) cube([5,10,2]);
translate([-5,1.7,-1.5]) cube([10,5,2]);
translate([-5,-6.7,-1.5]) cube([10,5,2]);
}
}
module m3_head()
{
// heatbed screw
difference()
{
translate([0,0,5]) cylinder(h=4,r=3.15, $fn=50);
translate([-11.7,-7.5,0.8]) cube([10,40,5.7]);
translate([1.7,-7.5,0.8]) cube([10,40,5.7]);
translate([-5,-4.2-7.5,0.8]) cube([10,10,6]);
translate([-5,9.2-7.5,0.8]) cube([10,10,6]);
translate([-2,-7.5,0.4]) cube([10,40,5.7]);
}
translate([0,0,-1]) cylinder(h = 10, r=1.7, $fn=50);
translate([0,0,8.2]) cylinder(h = 2, r1=3.15, r2=4, $fn=50);
}
module cover()
{
difference()
{
// base block
translate([-18,0,0]) cube([36,36,9]);
// inner cut
difference()
{
translate([-15,-0.5,-3]) cube([30,16,9]);
translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 2.2, r=2.75, $fn=50);
}
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=3.3, $fn=60);
translate([-15,15,-6]) cube([30,22,9]);
// inner edges
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([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([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([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([-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]);
// outer edges
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]);
// 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
translate([11,30,0] ) m3_head();
translate([-11,30,0] ) m3_head();
// hold screw
translate([0,7.5,0]) m3_head();
// 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]);
// 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
translate([-17,0,4]) cube([3,20,2]);
translate([14,0,4]) cube([3,20,2]);
translate([-17,0,4]) cube([14,2,2]);
translate([3,0,4]) cube([14,2,2]);
}
rotate([0,180,0]) cover();

View File

@ -1,119 +0,0 @@
// PRUSA iteration4
// lcd supports
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module body()
{
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()
{
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()
{
support();
rotate([0,0,45]) difference()
{
// sd card shield
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,58,20]) rotate([0,90,0]) cylinder( h=4, r=7, $fn=30);
}
}
translate([-60,-2,0]) rotate([0,0,180]) support();
left_lcd_support();

View File

@ -1,40 +0,0 @@
// PRUSA iteration4
// Print fan support
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
difference()
{
union()
{
translate([-4,-47,23]) rotate([0,0,0])cylinder(h = 5, r=5, $fn=50);
translate([-2,-57,23]) rotate([0,0,0]) cube([5,15,30]);
translate([-5,-52,23]) rotate([0,0,0]) cube([8,10,5]);
translate([-5,-48,45]) rotate([48,0,0])cylinder(h = 10, r=6, $fn=6);
}
translate([-5,-48,45]) rotate([48,0,0])cylinder(h = 30, r=1.65, $fn=50);
difference()
{
union()
{
translate([-5,-48,45]) rotate([48,0,0])cylinder(h = 6, r=3.1, $fn=6);
translate([-5,-47.9,45]) rotate([48,0,0])cylinder(h = 4, r2=3.1,r1=4, $fn=6);
}
translate([-2,-55,40]) rotate([0,0.6,0]) cube([10,10,10]);
}
translate([-5,-47,10]) rotate([0,0,0])cylinder(h = 25, r=1.65, $fn=50);
translate([-5,-47,27]) rotate([0,0,0])cylinder(h = 1.1, r=3.1, $fn=50);
translate([10,-85,15]) rotate([0,-48,90]) cube([60,50,20]);
translate([-15,-71,15]) rotate([10,0,0]) cube([50,20,40]);
translate([-15,-41,15]) rotate([5,0,0]) cube([50,20,40]);
translate([-15,-39.5,44]) rotate([48,0,0]) cube([20,20,20]);
translate([-15,-60,52.5]) rotate([0,0,0]) cube([20,20,20]);
}

View File

@ -1,178 +0,0 @@
// PRUSA iteration4
// X carriage back
// 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_carriage_back()
{
difference()
{
union()
{
// base block
translate([-16,-40.0,15.1]) cube([33,73,8]);
translate([-25.5,4,15.1]) cube([52,30.5,8]);
}
// lower bearing cut
translate([-17,-22,7.5]) cube([35,4,10]);
// cables opening
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,-14,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 );
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=150 );
translate([-30,20,11.75]) rotate([0,90,0]) cylinder( h=60, r=7.6, $fn=150 );
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([-15,-25-2,18]) cube([30,4,2]);
translate([-30,20-2,18]) cube([60,4,2]);
// hold together screws
translate([-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([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([13,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
translate([-5,-36,19]) cylinder( h=6, r=3.1, $fn=30 );
translate([-8.1,-46,18]) cube([6.2,10,10]);
// center screw head
translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 );
// heat cables cut
translate([10.15,-37,4]) rotate([0,-20,0])
union()
{
cylinder(r=3, h=40, $fn=30);
translate([-3,-10,0])cube([6,10,40]);
}
translate([5.85,-37,4]) rotate([0,-10,0])
union()
{
cylinder(r=3, h=40, $fn=30);
translate([-3,-10,0])cube([6,10,40]);
}
// cable holder screw
translate([0.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 );
translate([0.5,-27,16.75]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 );
// x-carriage screws in belt holders
translate([-11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 );
difference()
{
union()
{
translate([28,-4,10]) rotate([0,0,90]) cube([10,22,15]);
translate([-4,-4,10]) rotate([0,0,90]) cube([10,22,15]);
}
difference()
{
translate([-14,-4,30]) rotate([0,45,0]) cube([22,22,22]);
union()
{
translate([9,-4,15]) cube([22,22,22]);
translate([-28,-4,15]) cube([22,22,22]);
}
}
}
translate([9,0,16]) rotate([45,0,0]) cube([50,10,10]);
translate([-36,0,16]) rotate([45,0,0]) cube([30,10,10]);
// nice edges
translate([-20.8,-47.1,10]) rotate([0,0,45]) cube([10,10,15]);
translate([21.8,-47.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]);
translate([-20.8,-40.5,16]) rotate([50,0,0]) cube([50,20,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 edges
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,-50,16]) rotate([0,-30,0]) cube([10,50,10]);
translate([-27.1,-50,21]) rotate([0,30,0]) cube([10,50,10]);
// inner cable cleanup
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]);
// 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);
}
// supports
translate([-17,26,5]) m3head();
translate([-40.5,26,5]) m3head();
translate([-29,-1,4]) m3head();
translate([-35,-41,4]) m3head();
translate([-8.1,-40,17.5]) cube([6.2,4,5]);
translate([-8.1,-37.7,17.0]) cube([6.2,2,5]);
translate([-5,-36,11.51]) rotate([0,0,0]) cylinder( h=5, r=1.8, $fn=50 );
// selective infill
translate([5,-8,16]) cube([0.5,20,6.5]);
translate([-3.25,-8,16]) cube([0.5,20,6.5]);
translate([0.75,-8,16]) cube([0.5,7,6.5]);
// version
translate([-12,-29,22.6]) rotate([0,0,0]) linear_extrude(height = 0.6)
{ text("R7",font = "helvetica:style=Bold", size=4, center=true); }
}
}
rotate([0,180,0]) x_carriage_back();

View File

@ -1,462 +0,0 @@
// PRUSA iteration4
// X carriage
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <bearing.scad>
module belt_cut()
{
rotate([0,0,180])
{
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([10,0,0]) cube([39,0.75,10]);
for (_step =[-20:2:18])
{
translate([_step,0.5,0]) cube([1,1.0,10]);
}
for (_step =[-20:2:18])
{
translate([_step,0.5,5]) rotate([-7,0,0]) cube([1,1,10]);
}
}
}
module x_carriage_base()
{
// Small bearing holder
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1);
// Long bearing holder
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2);
// Base plate
translate([-34,-14,0]) cube([34.5,70.5,7]);
translate([-34,-15,0]) cube([35,7,15]);
translate([-42.5,53.0,0]) cube([52,6.5,15]);
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([-34,56.8,0]) rotate([0,0,0]) cube([43.5,19.7,8]);
// Belt holder base
translate([-42.5,20,0]) cube([52,16,7]);
// new belt holder base block
translate([-42.5,18,7]) cube([52,16.3,8]);
}
module x_carriage_holes()
{
// Small bearing holder holes cutter
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip_smooth(1);
translate([-4,-2.5,4]) rotate([0,0,90]) cube([5,25,2]);
// Long bearing holder holes cutter
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip_smooth(2);
translate([8.5,45-2.5,4]) rotate([0,0,90]) cube([5,50,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([-7,15.5,-1])cylinder(r=1.65, h=20, $fn=25);
translate([-27,15.5,-1])cylinder(r=1.65, h=20, $fn=25);
translate([-7,15.5,-1])cylinder(r2=1.65, r1=2.2,h=2, $fn=25);
translate([-27,15.5,-1])cylinder(r2=1.65, r1=2.2,h=2, $fn=25);
translate([-7,15.5,4])cylinder(r=3.1, h=4, $fn=6);
translate([-27,15.5,4])cylinder(r=3.1, h=4, $fn=6);
translate([-7,15.5,7])cylinder(r=4, h=30, $fn=6);
translate([-27,15.5,7])cylinder(r=3.5, h=30, $fn=6);
// 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,35.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,10.5,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,40,20]);
translate([12,65.3,-1]) rotate([0,0,45]) cube([10,10,20]);
translate([4.9,72.38,-1]) cube([10,10,20]);
// Top left corner
translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]);
translate([-35,93,5]) rotate([35,0,0]) translate([0,-15,0]) cube([55,15,15]);
translate([7.5,59.5,-18]) rotate([0,0,0]) cube([20,20,40]);
// bottom side edges
translate([-37,-12,-6]) rotate([40,0,0]) cube([50,8,25]);
translate([-35,-19.2,0]) rotate([0,0,45]) cube([6,6,16]);
translate([2,-20.4,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,0]) cube([9,12,15]);
difference()
{
union()
{
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([-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,22,7]);
translate([0,6,1])rotate([-30,0,0]) cube([7.5,12,7]);
translate([0,10+3,-1])cube([7.5,19,6]);
}
}
module final_cutout()
{
// cable guide edges
translate([-44,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
difference()
{
union()
{
translate([0.5,10,-1]) cube([8,18,6]);
translate([0.5,28,0]) rotate([0,90,0]) cylinder(r=5, h=8, $fn=25);
translate([0.5,12,0.5]) rotate([45,0,0]) cube([8,4,6]);
}
translate([7.8,10,8]) rotate([0,85,0]) cube([15,25,10]);
}
// filament hole
difference ()
{
union()
{
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);
}
}
// bottom back mounting screws
translate([-22,-11,4]) cylinder(r=1.65, h=20, $fn=50);
difference()
{
union()
{
translate([-24.8,-14,10]) cube([5.6,7,2.1]);
}
translate([-36,-8.1,10]) cube([40,1,0.5]);
}
// better printing bridges
translate([-24.8,-12.65,10.35]) cube([5.6,3.3,2.1]);
translate([-23.65,-12.65,10.7]) cube([3.3,3.3,2.1]);
// x-carriage-back mounting screws
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([-30.3,53,8]) cube([5.6,8,2]);
translate([-6.8,53,8]) cube([5.6,8,2]);
// better printing bridges
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([-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]);
// center mounting screw
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([-21,33,11]) cube([10,8,6]);
// better printing bridges
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]);
// selective infill
translate([-23.7,57,5]) cube([15.9,0.7,9]);
translate([-23.7,54.5,5]) cube([15.9,0.7,9]);
difference()
{
union()
{
translate([-11,-12,1]) rotate([0,0,0]) cylinder(r=3, h=10, $fn=30);
translate([-11,-15,-0]) cube([3,6,10]);
}
translate([-8,-20,5]) rotate([0,-20,0]) cube([10,20,10]);
}
translate([0.5,-0,5])
difference()
{
rotate([0,-20,0])
union()
{
translate([-7,-12,-5]) rotate([0,0,0]) cylinder(r=3, h=30, $fn=30);
translate([-9,-12,-5]) rotate([0,0,0]) cylinder(r=3, h=30, $fn=30);
translate([-12,-18,-5]) cube([8,6,30]);
translate([-9,-15,-5]) cube([2,6,30]);
}
translate([-20,-20,-15]) cube([20,20,10]);
}
// 2.5 endstop hole
translate([-8,-11,11]) rotate([0,90,0]) cylinder(r=1.4, h=10, $fn=30);
translate([-0.5,-11,11]) rotate([0,90,0]) cylinder(r1=1.4, r2=1.7, h=2, $fn=30);
}
module x_carriage_block()
{
difference()
{
union()
{
difference()
{
x_carriage_base();
x_carriage_holes();
x_carriage_fancy();
}
cable_tray();
}
final_cutout();
}
}
module x_carriage()
{
difference()
{
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,7.5]) cylinder(r=3.2, h=7, $fn=30);
translate([-28.5,67.5,7.5])cylinder(r=3.2, h=20, $fn=25);
translate([-28.5,67.5,-1])cylinder(r=1.65, h=20, $fn=25);
translate([-28.5,67.5,-1])cylinder(r2=1.65, r1=3, h=2, $fn=25);
translate([0.5,22.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=7.0, $fn=25);
// selective infill
translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]);
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([-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([-1.5,62,-1.3]) cube([1,5,5]);
translate([-3.5,65,-1.3]) cube([3,5,5]);
translate([-9,70.6,-1.3]) cube([9,15,15]);
translate([-8.5,68,-1.3]) cube([8,15,15]);
translate([-0.7,67.5,7.5]) cube([3.2,3.2,1]);
difference()
{
translate([-9,69,-1]) cube([8.5,6,7]);
translate([-9,77,2]) rotate([45,0,0]) cube([8.5,6,7]);
}
// filament sensor cable
difference()
{
translate([-1.5,30,-0.8]) cube([3.5,30,4.5]);
translate([0.5,34.46,-4]) cube([4,3,4.5]);
translate([2,34.46,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([2,34.46+3,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([0.5,54,-4]) cube([4,3,4.5]);
translate([2,54,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([2,57,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([-4.0,44,-4]) cube([4,3,4.5]);
translate([-1.5,44,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([-1.5,47,-4]) cylinder(r=1.5, h=4.5, $fn=25);
}
translate([-1.05,58.25,-0.8]) rotate([0,0,30]) cube([3.5,13,4.5]);
translate([-9,66,-0.8]) cube([3.5,5,4.5]);
translate([-9,70.5,-0.8]) rotate([45,0,0]) cube([9,6,6]);
translate([0.45,30,-0.8]) cylinder(r=2, h=4.5, $fn=25);
translate([-3.5,68,3]) cylinder(r=2, h=6, $fn=25);
translate([-6.75,69,-0.8]) cube([4,10,10]);
// hold together screws clearance
translate([-4.5,25.5,-1]) cylinder(r1=2.2,r2=1.5, h=10, $fn=25);
translate([-28.5,25.5,-1]) cylinder(r1=2.2,r2=1.5, h=10, $fn=25);
translate([-4.5,25.5,-1]) cylinder(r2=2,r1=3,h=3, $fn=25);
translate([-28.5,25.5,-1]) cylinder(r2=2,r1=3,h=3, $fn=25);
translate([0,-0.5,0]) left_belt_cut();
translate([0,0.5,0]) right_belt_cut();
//version
translate([-12,-2,0.5]) rotate([0,180,0]) linear_extrude(height = 0.6)
{ text("R7",font = "helvetica:style=Bold", size=5, center=true); }
}
}
module left_belt_cut()
{
translate([-22.5,30.2,7]) cylinder(r=1.5, h=100, $fn=30);
translate([-23.0,20,7]) cube([2,10,30]);
translate([-56.5,28.5,7]) belt_cut();
translate([13.5,20.5,0]) rotate([0,0,25])
{
difference()
{
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,18,4]) rotate([0,0,-13.5]) cube([10.5,3,32]);
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()
{
// right belt cut
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([22.5,25.5,7]) belt_cut();
translate([66.65,1.95,0]) rotate([0,0,0])
{
difference()
{
translate([-56.5,28.5,7]) belt_cut();
translate([-71.55,25,7]) cube([37.5,10,30]);
}
}
translate([43.2,-30.25,0]) rotate([0,0,-30])
{
difference()
{
translate([-56.5,28.5,7]) belt_cut();
translate([-82.1,25,7]) cube([10,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([-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);
}
x_carriage();

View File

@ -1,192 +0,0 @@
// PRUSA iteration4
// X end idler
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <x-end.scad>
module x_end_idler_holes()
{
x_end_holes();
translate([0,3.5,0])
{
// pulley screw
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=[-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
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([-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]);
}
}
module waste_pocket()
{
// waste pocket
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,-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);
// opening window
translate([-17,-1,51]) rotate([90,0,0]) cube([4,15,4]);
translate([-17,-1,-1]) rotate([90,0,0]) cube([4,15,4]);
}
module x_end_idler_base()
{
difference()
{
union()
{
x_end_base();
difference()
{
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(v=[-5.5,-19,13.5]) rotate([90,0,-35]) cube([1.5,45,6]);
}
// pulley nut support
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]);
}
}
x_end_idler_holes();
}
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);
difference()
{
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(v=[0,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=30);
}
// 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=[-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=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
}
module selective_infill()
mirror([0,1,0]) translate([-50, -33, 0.6])
{
difference()
{
union()
{
difference()
{
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);
}
difference()
{
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);
}
difference()
{
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);
}
difference()
{
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([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([32,35.5,-1]) cube([8,30,9]);
}
}
module x_end_idler()
{
mirror([0,1,0])
difference()
{
x_end_idler_base();
waste_pocket();
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]);
//version
translate([-23.7,-25,2]) rotate([90,0,90]) linear_extrude(height = 0.6)
{ text("R6",font = "helvetica:style=Bold", size=4, center=true); }
}
// bearings stop
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.2,-0.5,50]) rotate([0,0,40]) cube([12,1,10]);
}
// bearings spacer
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]);
}
}
difference()
{
union()
{
x_end_idler();
translate([-8,15,13.0]) rotate([0,0,-45.4]) cube([10,1.5,1]);
}
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([-25,37,49]) rotate([45,0,0]) cube([30,20,20]);
}

View File

@ -1,193 +0,0 @@
// PRUSA iteration4
// X end motor
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <x-end.scad>
module x_end_motor_base()
{
x_end_base();
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
}
module x_end_motor_holes()
{
x_end_holes();
// Position to place
translate(v=[-1,32,30.25])
{
// Belt hole
translate(v=[-19,-21,-12]) cube(size = [10,25,22]);
// Motor mounting holes
for (x =[-1:0.25:1])
{
translate(v=[0,-15.5+x,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+x,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+x,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.05, $fn=60);
translate(v=[20,-15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[0,-15.5+x,-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+x,-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+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[0,15.5+x,-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+x,-15.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
translate(v=[-10,41,-30.5]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
}
}
// Motor shaft cutout
module x_end_motor_shaft_cutout()
{
union()
{
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=[-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=[-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);
}
}
// Final part
module x_end_motor()
{
difference()
{
x_end_motor_base();
x_end_motor_shaft_cutout();
x_end_motor_holes();
// waste pocket
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,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);
// rod contact window
translate([-17,3,55]) cube([4,4,10]);
translate([-17,3,-8]) cube([4,4,10]);
translate([-30,-30,58]) cube([30,30,10]);
// version
translate([-23.2,-20,2]) rotate([90,0,270]) linear_extrude(height = 0.6)
{ text("R6",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);
// bearing stop
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,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 suports
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=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
}
difference()
{
union()
{
x_end_motor();
translate([-8,-17,13.0]) rotate([0,0,44.7]) cube([10,1.5,1]);
// belt tensioner body
translate([-24,9,30.25]) rotate(a=[90,30,0]) cylinder(h=27, r=4, $fn=6);
difference()
{
translate([-30,9-27,30.25]) rotate(a=[0,45,0]) cube([11,27,11]);
translate([-37.465,9-27-1,20]) cube([10,30,21]);
translate([-29,9-27-1,35]) cube([10,30,21]);
translate([-20,9-27-1,20]) cube([25,30,21]);
}
difference()
{
translate([-24,-18,30.25]) rotate(a=[90,0,0]) cylinder(h=10.5, r=5, $fn=30);
translate([-24-19.5,-18,20]) rotate(a=[90,0,0]) cube([20,20,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([-25,-37,49]) rotate([45,0,0]) cube([30,20,20]);
translate([-25,23.5,49]) rotate([45,0,0]) cube([30,20,20]);
// belt tensioner
translate(v=[0,32,30.25])
{
translate([-24,-15.5-2.5,0]) rotate(a=[90,0,0]) cylinder(h=35, r=1.6, $fn=30);
translate([-24,-15.5-4.5-30,0]) rotate(a=[90,0,0]) cylinder(h=30, r=3.2, $fn=30);
translate([-24-10+2.8,-29,0-2.8]) cube([10,2.1,5.6]);
}
}

View File

@ -1,142 +0,0 @@
// PRUSA iteration4
// X end prototype
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <bearing.scad>
use <polyholes.scad>
rod_distance = 45;
module x_end_base()
{
// Main block
height = 58;
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
translate([-8,-28.5,0]) cube(size = [5,1,13.5]);
// Bearing holder
vertical_bearing_base();
//Nut trap
// Cylinder
translate(v=[0,-17,0]) cylinder(h = 13.5, r=12.5, $fn=250);
difference()
{
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,-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);
}
}
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,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,5],[12,0]] );
}
x_end_base();
module x_end_holes()
{
vertical_bearing_holes();
// Belt hole
translate(v=[-1,0,0])
{
// Stress relief
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-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);
// Top pushfit rod
translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
// TR Nut trap
// 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);
// Screw holes for TR 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, 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.15, $fn=6);
translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 3, r = 3.1, $fn=6);
translate([-5.5,-17.2,10]) rotate([0,0,30]) cube([5,5,3]);
translate([-0,-17.2,10]) rotate([0,0,60]) cube([5,10,3]);
translate([0,0,6.5])
difference()
{
translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,5.8]) rotate([0,0,30])cylinder(h = 1, r = 3.1, $fn=6);
translate([-11,-12.0,4.5]) rotate([0,0,45]) cube([8,3,3]);
translate([-6.5,-16.85,4.5]) rotate([0,0,45]) cube([8,3,3]);
}
}
// Final prototype
module x_end_plain()
{
difference()
{
union()
{
difference()
{
x_end_base();
x_end_holes();
}
translate(v=[-5.8,-13.3,13.5]) rotate([0,0,45.3]) cube(size = [10,2,1], center = true);
}
difference()
{
translate(v=[0,-17, 0.3]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 3, r = 3.2, $fn=6);
translate(v=[-5.8,-13.3,13.5]) rotate([0,0,45.3]) cube(size = [10,2,1], center = true);
}
}
}
module pushfit_rod(diameter,length)
{
poly_cylinder(h = length, r=diameter/2);
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/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true);
}
}
x_end_holes();

View File

@ -1,176 +0,0 @@
// PRUSA iteration4
// Z axis bottom holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module z_bottom_base()
{
translate([0,-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,42,0]) cube([30,5.5,22]); // plate touching the base
translate([0,-5,0]) cube([50,52.5,7]); // plate touching the base
}
module z_bottom_fancy()
{
// corner cutouts
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([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([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,-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]);
// Stiffner cut out
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,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([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]);
}
module z_bottom_holes()
{
// Frame mounting screw holes
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+10,32]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=50);
// Frame mounting screw head holes
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+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,38]) rotate([0,45,0]) cube([10,20,10]);
// 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()
{
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([-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()
{
difference()
{
difference()
{
z_bottom_base();
z_bottom_fancy();
z_bottom_holes();
}
translate([7.3,24,14]) rotate([90,180,90]) linear_extrude(height = 0.6)
{ text("R5",font = "helvetica:style=Bold", size=5, center=true); }
translate([7,24,25]) rotate([90,180,90]) linear_extrude(height = 0.9)
{ text("R",font = "helvetica:style=Bold", size=8, center=true); }
}
}
module z_bottom_left()
{
difference()
{
translate([0,-13,0]) mirror([0,1,0])
difference()
{
z_bottom_base();
z_bottom_fancy();
z_bottom_holes();
}
translate([7.3,-28.5,14]) rotate([90,180,90]) linear_extrude(height = 0.6)
{ text("R5",font = "helvetica:style=Bold", size=5, center=true); }
translate([7,-29,25]) rotate([90,180,90]) linear_extrude(height = 0.9)
{ text("L",font = "helvetica:style=Bold", size=8, center=true); }
}
}
z_bottom_right();
z_bottom_left();

View File

@ -1,107 +0,0 @@
// PRUSA iteration4
// Z axis top holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module z_top_base()
{
translate([0,-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([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);
}
module z_top_fancy()
{
// Corner cutouts
translate([0.5,0.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
// frame side angle
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]);
// cut to shape
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([8,3.9,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]);
// nice edges
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]);
// outer corner
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]);
// Stiffner cut out
translate([33,-1,7.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]);
// side cut out
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]);
}
module z_top_holes()
{
// Screw holes frame
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);
// Screw heads
translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
translate([4,10-3.1,10]) cube([10,6.2,10]);
translate([4,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30);
translate([4,10+20-3.1,10]) cube([10,6.2,10]);
// 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,3.4]) rotate([0,0,0]) cylinder(h = 4.2, r2=4.3, r1=4.05, $fn=50);
// material saving cut
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);
// 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,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
//selective infill
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([3,1,0.5]) cube([18,0.1,3.5]);
translate([1.5,19,0.5]) cube([21,0.1,3.5]);
}
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()
{
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
z_top_left();
z_top_right();

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
// PRUSA iteration3
// LCD cable clip
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
difference(){
union(){
cylinder(r=7,h = 7, $fn=30);
translate([2,-8,0]) cube([9.5,18,3]);
translate([2,-9,0]) cube([5.5,5,3]);
}
translate([0,0,-1]) cylinder(r=5,h = 10, $fn=30);
translate([-4.5,0,-5]) cube([9,15,15]);
translate([8,-12,-1]) cube([2,19,5]);
translate([9,7,-1]) cylinder(r=1,h = 5, $fn=30);
//corners
translate([2,-13.75,-1]) rotate([0,0,45]) cube([5,5,5]);
translate([4,6,-1]) rotate([0,0,45]) cube([10,10,5]);
translate([14,6,-1]) rotate([0,0,45]) cube([10,10,5]);
translate([-3,3,-1]) rotate([0,0,45]) cube([5,5,10]);
translate([3,3,3]) rotate([0,0,45]) cube([5,5,10]);
}
translate([7.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
translate([10.5,-8,0]) cylinder(r=1,h = 3, $fn=30);

View File

@ -0,0 +1,56 @@
// PRUSA iteration3
// LCD Knob
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
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);
// 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]);
// 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 () {
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

@ -0,0 +1,66 @@
// PRUSA iteration3
// PSU-Y reinforcement part
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module base()
{
union(){
difference(){
union(){
translate([ 5, -23, 0 ]) cube([ 25, 38, 15 ]); // horizontal plate
translate([ -23, -2, 0 ]) cube([ 28, 17, 28 ]); // Y_Corner block
}
translate( [ 4 , -25 , -1 ] ) cube( [ 9 , 23 , 18 ] ); // holder side cut
}
difference(){
translate([ 8, -7, 0 ]) cube([ 5, 5, 15 ]); // fillet block
translate([ 8, -7, -1 ]) cylinder( h = 28, r = 5, $fn=30); // fillet cut
}
}
}
module cutout()
{
translate([ 22, 4 , -2 ]) cylinder( h = 20, r = 1.6, $fn=30); // M3 hole A
translate([ 22, 4 , -1 ]) cylinder( h = 10, r = 3.2, $fn=6); // M3 nut body A
translate([ 22, 4 , -1 ]) cylinder( h = 14, r1 = 3.2, r1 = 5, $fn=6); // M3 nut hole fillet A
translate([ 22, -16 , -2 ]) cylinder( h = 20, r = 1.6, $fn=30); // M3 hole B
translate([ 22, -16 , -1 ]) cylinder( h = 10, r = 3.2, $fn=6); // M3 nut body B
translate([ 22, -16 , -1 ]) cylinder( h = 14, r1 = 3.2, r1 = 5, $fn=6); // M3 nut hole B fillet
translate([ -13, 14 , 14 ]) rotate([90,0,0]) cylinder( h = 25, r = 5.2, $fn=30); // threaded rod
translate([ -13, 0 , 14 ]) rotate([90,0,0]) cylinder( h = 4, r = 13, $fn=30); // washer
translate([ -29, -7 , 14 ]) cube([ 29, 7, 18 ]); // washer upper cut
translate([ -24, 13 , -1 ]) cube([ 20, 15, 30 ]); // Y_Corner cutaway
//vertical corners 45 degree cut
translate( [ 12, -31 , -2 ] ) rotate( [0,0,45] ) cube([ 10 , 10 , 21 ]);
translate([ 31, 9, -2 ]) rotate( [0,0,45] ) cube([ 10, 10, 21 ]);
translate([ 31, -31, -2 ]) rotate( [0,0,45] ) cube([ 10, 10, 21 ]);
// horizontal corners 45 degree cut
translate([ -8.5, -8, 28.5 ]) rotate( [0,45,0] ) cube([ 19, 40, 20 ]);
translate([ -31, -6, 30 ]) rotate( [0,45,0]) cube([ 10, 35, 10 ]);
translate([ -31, -6, -2 ]) rotate( [0,45,0] ) cube([ 10, 35, 10 ]);
translate([ -26, -4, 2.5 ]) rotate( [45,0,0] ) cube([ 5, 5, 5 ]);
translate([ -1, -4, 16.5 ]) rotate( [45,0,0] ) cube([ 5, 5, 5 ]);
translate([ -5, 16.6, 20.5 ]) rotate( [45,0,0] ) cube([ 5, 5, 5 ]);
translate([ -30, 15, -5 ]) rotate( [45,0,0] ) cube([ 70, 5, 5 ]);
}
module final_part(){
difference()
{
base();
cutout();
}
}
final_part();

View File

@ -0,0 +1,166 @@
// PRUSA iteration3
// PSU Cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module PSU_COVER()
{
difference(){
union(){
translate([0,0,-1])cube([95,50+15,56]); // Base
translate([0,0,-3.5])cube([14-0.5,50+15,5]); // Back pillar 1
translate([60-0.5,0,-3.5])cube([14,50+15,5]); // Back pillar 2
translate([91+4,0,-1])cube([6,50+15,56]); // Base for bracket
translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right
translate([0,35,46.5])scale([1.2,1,0.2])rotate([-28,-50,-58])cube([45,45,30]);
//translate([94,20,13])scale([0.2,1.2,1])rotate([-29,-51,-48])cube([30,35,30]);
//translate([10,25,45])scale([1,1,0.3])rotate([-40,-50,-58])cube([40,30,30]);
translate([-1.6,0,0])cube([1.65,65,2]); // Frame skirt 1
translate([-1.6,0,0])cube([1.65,30,55]); // Frame skirt 2
translate([-1.6,0,51])cube([1.65,65,4]); // Frame skirt 3
}
//pretty corners
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([-3,-9,-5])rotate([-45,0,0])cube([130,10,10]);
translate([-3,-12,56])rotate([-45,0,0])cube([130,10,10]);
translate([-3,45+15,-5])rotate([-45,0,0])cube([130,10,10]);
translate([-3,48+15,56])rotate([-45,0,0])cube([130,10,10]);
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,45])rotate([0,-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([79,-5,68.5])rotate([0,45,0])cube([20,90,20]);
translate([79,4,-14.5])rotate([0,45,0])cube([20,90,20]);
translate([-14,-5,68.5])rotate([0,45,0])cube([20,90,20]);
translate([3,2,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,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout
translate([5.5,0,0]){
translate([45,2,40])cube([27.5,31.9,30]); // socket cutout
translate([45-4.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket right hole cutout
translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=2,h=50, $fn=8); // socket left hole cutout
translate([1,2,44])cube([20,14,30]); // switch cutout
translate([45-4.5+37-0.5,2+15.6,40])cylinder(r=3.25,h=15-1.5, $fn=6); // socket left hole cutout nuttrap
translate([45-4.5,2+15.6,40])cylinder(r=3.25,h=15-1.5, $fn=6); // socket left hole cutout nuttrap
}
translate([20,50,54.5])linear_extrude(height = 1) {
text("Prusa3D", center=true);
}
/*
translate([8,40-1+15,40])cylinder(r=2,h=50,$fn=15); // left front mounthole cutout
translate([8,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$fn=15);
translate([87,40-1+15,40])cylinder(r=2,h=50,$fn=15); // right front mounthole cutout
translate([87,40-1+15,53.6])cylinder(r1=2, r2=3.5,h=1.5,$fn=15);
*/
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);
for(i=[0:10]){
translate([20+i,6,-10])cylinder(r=3,h=50); // left back mounthole cutout
}
}
}
module PSU_Y_REINFORCEMENT()
{
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([ 88-0.5, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A1
//translate([ 88, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A
//translate([ 88+0.5, 8, -10.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole A2
//translate([ 68-0.5, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B1
//translate([ 68, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B
//translate([ 68+0.5, 8, -10.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.6, $fn=30 ); //hole B2
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([ 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 FINAL_PART(){
union()
{
PSU_COVER();
PSU_Y_REINFORCEMENT();
}
}
FINAL_PART();

View File

@ -0,0 +1,262 @@
// PRUSA iteration3
// RAMBo cover 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(){
cube( [ 114.5 , 92 , 2 ] );
cube( [ 1.5 , 92 , 35 ] );
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.5 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] );
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] );
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
translate( [ 98 , 0 , 0 ] ) cube( [ 16.5 , 8 , 8 ] );
translate( [ 1 , 0 , 0 ] ) cube( [ 19.5 , 8 , 8 ] );
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 8, r = 5, $fn=30);
translate( [ 110.5 , 8 , 5 ] ) rotate([90,90,0]) cylinder( h = 8, r = 5, $fn=30);
translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 8 , 5.5] );
// heatbed filament holder body
translate( [ 81.6 , 90.35 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 5, $fn=6);
// door closing corner
translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
translate( [ 2 , 85 , 31 ] ) cube( [ 6 , 7 , 4] );
translate( [ 4 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6);
}
module inside_cable_holder(){
translate( [ 50 , 6 , 0.5 ] ) cube( [ 30, 2, 20] );
difference(){
translate( [ 50 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 30, r = 6, $fn=6);
translate( [ 49 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 34, r = 4, $fn=6);
translate( [ 49 , 8 , 10 ] ) cube( [ 34, 10, 25] );
}
}
module cutouts(){
// side
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
// RAMBo M3 screws
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
// frame mounting screws
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
translate( [ 110.5 , 9 , 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( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
translate( [ 114.5 , -2 , -1 ] ) cube( [ 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.8, $fn=30);
// heatbed cable opening hole
translate( [ 75.5 , 94 , 24 ] ) rotate([90,90,0]) cylinder( h = 5, r = 7, $fn=6);
translate( [ 77.6 , 80 , 20.5 ] ) cube( [ 4 , 15 , 15] );
translate( [ 69.4 , 95 , 27.5 ] ) rotate([90,60,0]) cube( [ 5 , 10 , 10] );
// heatbed cable ziptie holes
translate( [ 64 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
translate( [ 64 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
// heatbed filament holder hole
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 1.6, $fn=30);
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 2, r = 2, r2=1.6, $fn=30);
translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] );
// nut traps
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, 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] );
// 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( [ -25 , 80 , -54 ] ) rotate([50,0,45]) cube( [ 50, 50, 50] );
translate( [ 137.5 , 60 , -10 ] ) rotate([0,0,45]) cube( [ 50, 50, 50] );
}
module ext_ziptie(){
difference(){
translate( [ -6 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 3, r = 15, $fn=30);
translate( [ -7 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 5, r = 7, $fn=30);
}
}
module ext_cable_holder()
{
difference()
{
union(){
rotate([90,0,0]) translate([-8, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 7, r2=10, $fn=6);
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 10, r2=10, $fn=6);
rotate([90,0,0]) translate( [ 1.5 , 26 , -28 ] ) rotate([0,90,0]) cylinder( h = 10, r1 = 10, r2=7, $fn=6);
translate( [ -4.1 , 28 , 17.5 ] ) rotate([0,45,0]) cube( [ 7 , 5 , 8 ] );
}
translate( [ -15 , 13 , 15] ) cube( [ 15 , 15 , 25 ] );
translate( [ 1.5 , 26 , 10] ) cube( [ 15 , 15 , 25 ] );
difference(){
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 3.5, r = 8, $fn=30);
rotate([90,0,0]) translate([-5, 26, -28]) rotate([0,90,0]) cylinder( h = 5.5, r = 6.5, $fn=30);
}
}
}
module rambo_cover()
{
difference()
{
main_body();
cutouts();
}
}
difference(){
union(){
rambo_cover();
translate( [ 10 , 89 , 3] ) cube( [ 6 , 1 , 32 ] );
translate( [ 12 , 89 , 1] ) cube( [ 4 , 1 , 2 ] );
}
translate( [ 25 ,89 , 20.8] ) cube( [ 7.4 , 5 , 16 ] ); //Cube018
translate( [ 25 , 95 , 25 ] ) rotate([90,90,0]) cylinder( h = 7, r = 8.5, $fn=6);
// extruder cable zipties
translate( [ 11 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
translate( [ 11 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
}
module extruder_filament_holder()
{
difference(){
translate( [ 33 , 90 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 8, $fn=4);
translate( [ 30 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 1.6, $fn=30);
translate( [ 32 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 3, r1 = 2, r2=1.6, $fn=30);
translate( [ 26 ,79 , 20.8] ) cube( [ 30 , 5 , 16 ] );
translate( [ 26 ,91 , 15] ) cube( [ 30 , 15 , 16 ] );
}
}
extruder_filament_holder();
// print part support
translate([0,1,0])
difference(){
translate( [ 18 ,90 , 15] ) cube( [ 7 , 1 , 19 ] );
translate( [ 17 ,90.6 , 29.4] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 30 ,90.6 , 13.1] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 30 ,89 , 13] ) rotate([0,-60,0]) cube( [ 10 , 3 , 10 ] );
translate( [ 20 ,100, 20 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
translate( [ 21 ,99, 31 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
}
// print part support
difference()
{
translate( [ 70 ,90.5 , 15] ) cube( [ 7.5 , 1 , 19 ] );
translate( [ 69 ,91 , 27.8] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 80 ,91 , 13.9] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 81.5 ,90 , 10] ) rotate([0,-60,0]) cube( [ 10 , 2 , 10 ] );
}

View File

@ -0,0 +1,107 @@
// PRUSA iteration3
// RAMBo cover door
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module body()
{
cube( [ 105.5 , 87.5 , 1 ] );
cube( [ 105.5 , 2 , 20 ] );
cube( [ 2 , 87.5 , 20 ] );
// corner reinforcement
translate( [ 98 , 1 , 0 ] ) cube( [ 7.5 , 5 , 20 ] );
translate( [ 0.5 , 0.5 , 0 ] ) cube( [ 5 , 6.5 , 20 ] );
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 , 20 ] );
// 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 , 16.8 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.8, r2= 3.5, $fn=30);
translate( [ 102 , 3.5 , 16.8 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.8, r2= 3.5, $fn=30);
}
module ventilation_holes()
{
for ( i = [0 : 9] ){
translate([46 + (i*5.5),10.5,-1]) cube([3,19,10]);
translate([47.5 + (i*5.5),10.5,-1]) cylinder( h = 10, r = 1.5, $fn=30);;
translate([47.5 + (i*5.5),29.5,-1]) cylinder( h = 10, r = 1.5, $fn=30);;
}
}
module cutouts()
{
// door closing screw
translate( [ 58.5 , 4 , 5 ] ) cylinder( h = 17, r = 1.5, $fn=30);
translate( [ 58.5 , 4 , 18.5 ] ) cylinder( h = 2, r1 = 1.5, r2=1.9, $fn=30);
ventilation_holes();
translate([0,50,0]) ventilation_holes();
translate([0,25,0]) 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]);
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
translate( [ -5 , 87.5 , 4.5 ] ) rotate([0,90,0]) cylinder( h = 120, r = 2.6, $fn=30);
// door closing
translate( [ 4 , 3.5 , 16.9 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30);
translate( [ 102 , 3.5 , 16.9 ] ) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30);
// M3 NUT
translate( [55.65 , 0.5, 16] ) cube( [ 5.7, 10 , 2.2 ] );
translate( [4 , 10, 4] ) cube( [ 4, 65 , 5 ] );
translate( [101 , 10, 4] ) cube( [ 3, 70 , 5 ] );
}
module RAMBo_cover_doors()
{
difference()
{
body();
cutouts();
translate( [0 , -20, -3] ) rotate([0,45,45]) cube( [ 30, 30 , 20 ] );
}
}
RAMBo_cover_doors();

View File

@ -1,47 +1,41 @@
// PRUSA iteration4 // PRUSA iteration3
// Einsy cover hinges // RAMBo cover hinges
// GNU GPL v3 // GNU GPL v3
// 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 upper_hinge() module upper_hinge()
{ {
difference() difference()
{ {
union(){ union(){
// body cylinder( h = 26, r = 2.4, $fn=30);
cylinder( h = 26, r = 2.4, $fn=30); translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30); translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 11 , 21 ] );
translate( [ -5 , -10.7 , 0 ] ) cube( [ 7 , 10.7 , 21 ] ); }
} translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.7, $fn=30);
// M3 screw hole translate( [ -2 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30); translate([-2.9,-20,-1]) rotate([0,0,60]) cube([25,5,26]);
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()
} {
difference()
module lower_hinge() {
{ union(){
difference() translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30);
{ translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30);
union(){ translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
// body translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 11 , 10 ] );
translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30); }
translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30); translate( [ -1 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30); translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.5, $fn=30);
translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 10.7 , 10 ] ); translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]);
} }
// M3 screw }
translate( [ -0.5 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
// angle cut upper_hinge();
translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]);
}
}
upper_hinge();
lower_hinge(); lower_hinge();

View File

@ -0,0 +1,33 @@
// PRUSA iteration3
// X carriage
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
difference()
{
//body
union()
{
translate([3,-18,0]) cube([5,36,10]);
translate([8,-18,0]) cube([4,36,10]);
}
union()
{
//rods
translate(v = [4,-10,-1]) cylinder(h = 12, r=4, $fn=50);
translate(v = [4,10,-1]) cylinder(h = 12, r=4, $fn=50);
//cables
translate([10,5,3]) cube([8,9,10]);
}
//corners
translate([-5,24,3]) rotate([45,0,0]) cube([20,10,10]);
translate([-5,24,-7]) rotate([45,0,0]) cube([20,10,10]);
translate([-5,-24,3]) rotate([45,0,0]) cube([20,10,10]);
translate([-5,-24,-7]) rotate([45,0,0]) cube([20,10,10]);
}

Some files were not shown because too many files have changed in this diff Show More