Compare commits

..

1 Commits
MK3S ... MK3

Author SHA1 Message Date
Alexandr Kukan 902885a413
Wall thickness adjusted for better printing 2019-02-19 17:41:38 +01:00
127 changed files with 1126214 additions and 361309 deletions

View File

@ -0,0 +1,47 @@
Original Prusa i3 MK2S to Original Prusa i3 MK3 upgrade
ATTENTION: Before printing the parts, check the version of the heatbed you have in your package. There are two versions with different cable cover.
Soldered power cable - old design, use "MK3_Black_parts_PETG...soldered.gcode" or respective parts labeled "old".
Not soldered power cable - new design, use "MK3_Black_parts_PETG...notsoldered.gcode" or respective part labeled "new".
G-codes can be downloaded here: https://www.prusa3d.com/downloads/others/mk3_upgrade_gcodes.zip
Recommended print settings:
0.2 mm layer height, infill 20% GRID, no supports and material PETG, only exception is nozzle-fan, which must be from ABS!
Orange parts bundle (parts can be also printed in black):
X-end-motor (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-end-motor.stl
X-end-idler (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-end-idler.stl
Y-rod-holder (4x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/y-rod-holder.stl
Y-motor-holder (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/y-motor-holder.stl
Y-belt-holder (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/y-belt-holder.stl
Y-belt-idler (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/y-belt-idler.stl
Z-axis-top (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/z-axis-top.stl
Z-axis-bottom (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/z-axis-bottom.stl
LCD-supports (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/lcd-supports.stl
nozzle-fan-45deg (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/nozzle-fan-45deg.stl
nozzle-fan-45deg-support (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/nozzle-fan-45deg-support.stl
Black parts bundle (Extruder parts MUST BE printed in BLACK):
X-carriage* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage.stl
X-carriage-back* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage-back.stl
Cable-holder* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/cable-holder.stl
Extruder-body* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-body.stl
Extruder-cover* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-cover.stl
Extruder-idler-plug* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-idler-plug.stl
Extruder-idler* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-idler.stl
Filament-sensor-cover* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/filament-sensor-cover.stl
Heatbed-cable-cover-new** (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/heatbed-cable-cover.stl
Heatbed-cable-cover-old*** (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/heatbed-cable-cover-no-screw.stl
Einsy-base (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/Einsy-base.stl
Extruder-cable-clip.stl (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/Extruder-cable-clip.stl
Heatbed-cable-clip.stl (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/Heatbed-cable-clip.stl
Einsy-doors (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/Einsy-doors.stl
Einsy-hinges (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/Einsy-hinges.stl
License GNU GPL v3
https://www.prusa3d.com/prusa-i3-printable-parts/
* Extruder parts MUST BE printed in BLACK.
** Use this part for heatbed WITHOUT soldered power cable.
*** Use these parts for heatbed WITH soldered power cable.

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

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.

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

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.

View File

@ -14,10 +14,10 @@ module main_body()
{ {
// main body // main body
translate( [ -77 , -4.5 , 0 ] ) cube( [ 155 , 59.8 , 2 ] ); translate( [ -77 , -4.5 , 0 ] ) cube( [ 155 , 59.8 , 2 ] );
translate( [ -77 , -4.5 , 0 ] ) rotate([35,0,0]) cube( [ 155 , 3 , 20.08 ] ); translate( [ -77 , -4.5 , 0 ] ) rotate([35,0,0]) cube( [ 155 , 2 , 20.08 ] );
translate( [ -77 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] ); translate( [ -77 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] );
translate( [ 71 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] ); translate( [ 71 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] );
translate( [ -77 , -15.2 , 14.2 ] ) cube( [ 155 , 3.1 , 11.8 ] ); translate( [ -77 , -14.7 , 14.2 ] ) cube( [ 155 , 2 , 11.8 ] );
translate( [ -77 , 54 , 0 ] ) cube( [ 155 , 2 , 17 ] ); translate( [ -77 , 54 , 0 ] ) cube( [ 155 , 2 , 17 ] );
// M3 hole body // M3 hole body
@ -27,14 +27,25 @@ module main_body()
// LCD window // LCD window
translate( [ -61.5 , 1 , 1.2 ] ) cube( [ 98.5 , 42 , 10 ] ); translate( [ -61.5 , 1 , 1.2 ] ) cube( [ 98.5 , 42 , 10 ] );
translate( [ -52.5 , 8 , -1 ] ) cube( [ 80 , 30.5 , 10 ] ); translate( [ -54.5 , 8 , -1 ] ) cube( [ 85 , 30.5 , 10 ] );
for(buzz = [55 : 2 : 67]) // buzzer holes
{ translate( [ 55 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate([buzz,1.5,-1]) cube([1.3,4,10]); translate( [ 57 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate([buzz-0.75,1.5,-0.5]) rotate([0,45,0]) cube([2,4,2]); translate( [ 59 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
if(buzz<67) translate([buzz+1.25,1.5,-0.5]) rotate([0,45,0]) cube([2,4,2]); translate( [ 61 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
} translate( [ 63 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 65 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
translate( [ 67 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
// buzzer holes corners
translate( [ 66.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 64.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 62.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 60.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 58.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 56.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
translate( [ 54.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
// knob hole // knob hole
translate( [ 62.5 , 21 , -1 ] ) cylinder( h = 10, r = 6, $fn=30); translate( [ 62.5 , 21 , -1 ] ) cylinder( h = 10, r = 6, $fn=30);
@ -51,17 +62,10 @@ module main_body()
translate( [ 48.7 , 27.8 , -1 ] ) rotate([0,0,45]) cube( [ 3.55 , 1 , 9 ] ); translate( [ 48.7 , 27.8 , -1 ] ) rotate([0,0,45]) cube( [ 3.55 , 1 , 9 ] );
// rear support cutout // rear support cutout
translate( [ -64.5 , -12.1 , 14 ] ) cube( [ 10 , 3 , 16 ] ); translate( [ -64.5 , -12.7 , 14 ] ) cube( [ 10 , 3 , 16 ] );
translate( [ 55.5 , -12.1 , 14 ] ) cube( [ 10 , 3 , 16 ] ); translate( [ 55.5 , -12.7 , 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() module pcb_clip()
@ -141,7 +145,7 @@ difference()
translate( [ -80 , 9 , 16.5 ] ) cube( [ 10 , 28 , 4.5 ] ); translate( [ -80 , 9 , 16.5 ] ) cube( [ 10 , 28 , 4.5 ] );
// front and rear angle // front and rear angle
translate( [ -81 , -10.5 , -17 ] ) rotate([32,0,0]) cube( [ 164 , 14 , 54.08 ] ); translate( [ -81 , -9.3 , -17 ] ) rotate([35,0,0]) cube( [ 164 , 14 , 54.08 ] );
translate( [ -78 , 72.7 , -3 ] ) rotate([45,0,0]) cube( [ 160 , 14 , 54.08 ] ); translate( [ -78 , 72.7 , -3 ] ) rotate([45,0,0]) cube( [ 160 , 14 , 54.08 ] );
// M3 screw thread // M3 screw thread
@ -160,42 +164,37 @@ difference()
translate( [ -21 , 41.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30); translate( [ -21 , 41.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
// front cleanup // front cleanup
translate( [ -100 , -64.6 , 0 ] ) cube( [ 200 , 50 , 50 ] ); translate( [ -100 , -64 , 0 ] ) cube( [ 200 , 50 , 50 ] );
// X sign on reset button // X sign on reset button
translate( [ 63 , 34 , -1 ] ) rotate([0,0,45]) cube( [ 2, 8, 2 ] ); translate( [ 63 , 34 , -1 ] ) rotate([0,0,45]) cube( [ 2, 8, 2 ] );
translate( [ 57.5 , 35.5 , -1 ] ) rotate([0,0,-45]) cube( [ 2, 8, 2 ] ); translate( [ 57.5 , 35.5 , -1 ] ) rotate([0,0,-45]) cube( [ 2, 8, 2 ] );
// corners // corners
translate([74.05,-5,-2.7]) rotate([0,35,0]) cube([7,80,7]); translate( [ 73 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 7, 80, 7 ] );
translate([-82.8,-5,-1]) rotate([0,55,0]) cube([7,80,7]); translate( [ -82 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 7, 80, 7 ] );
translate( [ -82 , 58.5 , -5 ] ) rotate([55,0,0]) cube( [ 200, 7, 7 ] );
translate( [ -82 , 58 , -5 ] ) rotate([45,0,0]) cube( [ 200, 7, 7 ] );
translate( [ -77 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] ); translate( [ -77 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] );
translate( [ 78 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] ); translate( [ 78 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] );
translate( [ 78 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] ); translate( [ 78 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
translate( [ -77 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] ); translate( [ -77 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
// LCD corners // LCD corners
translate( [ -52.5 , 9.5 , -5.2 ] ) rotate([45,0,0]) cube( [ 80 , 5 , 5 ] ); // LCD window translate( [ -54.5 , 9.5 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window
translate( [ -52.5 , 37 , -5.2 ] ) rotate([45,0,0]) cube( [ 80 , 5 , 5 ] ); // LCD window translate( [ -54.5 , 37 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window
rotate([32,0,0]) translate( [ -78 , -9.1 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] ); rotate([35,0,0]) translate( [ -78 , -8 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] );
rotate([32,0,0]) translate( [ 79 , -9.1 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] ); rotate([35,0,0]) translate( [ 79 , -8 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] );
translate( [ -100 , -40 , -50 ] ) cube( [ 200 , 50 , 50 ] ); translate( [ -100 , -40 , -50 ] ) cube( [ 200 , 50 , 50 ] );
// version // version
translate([-73,15,4]) rotate([90,0,90]) linear_extrude(height = 2) translate([-73,15,4]) rotate([90,0,90]) linear_extrude(height = 2)
{ text("R7",font = "helvetica:style=Bold", size=7, center=true); } { text("R2",font = "helvetica:style=Bold", size=7, center=true); }
} }
// SD card window support // print support for SD card opening
translate( [ -76.5 , 15 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] ); translate( [ -76.5 , 15 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] );
translate( [ -76.5 , 25 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] ); translate( [ -76.5 , 25 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] );

View File

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

@ -42,63 +42,28 @@ module horizontal_bearing_holes(bearings=1){
} }
module horizontal_bearing_holes_nozip(bearings=1) module horizontal_bearing_holes_nozip(bearings=1){
{ cutter_lenght = 10+bearings*25;
cutter_lenght = 10+bearings*25; one_holder_lenght = 8+25;
one_holder_lenght = 8+25; holder_lenght = 8+bearings*25;
holder_lenght = 8+bearings*25;
// Main bearing cut // Main bearing cut
difference() 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);
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
// 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); 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; thinwall = 3;
bearing_size = bearing_diameter + 2 * thinwall; bearing_size = bearing_diameter + 2 * thinwall;
module vertical_bearing_base(){ module vertical_bearing_base(){
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true); 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); cylinder(h = 58, r=bearing_size/2, $fn = 90);
} }
module vertical_bearing_holes(){ module vertical_bearing_holes(){

View File

@ -0,0 +1,85 @@
// PRUSA iteration4
// cable holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module zip_main()
{
// ziptie cut for upper cables
translate([-10,-30.5,24]) cube([20,2,3]);
translate([-6,-30.5,24]) cube([2,20,3]);
translate([5,-30.5,24]) cube([2,20,3]);
difference()
{
translate([0.5,-26,24]) rotate([0,0,90]) cylinder( h=3, r=6, $fn=30 );
translate([0.5,-26,23]) rotate([0,0,90]) cylinder( h=5, r=4.6, $fn=30 );
translate([-10,-35.5,23]) cube([20,5,5]);
translate([-10,-27,23]) cube([20,10,5]);
}
}
module zip_ext_cables()
{
// ziptie cut for lower cables
translate([-10,-25.5,24]) cube([20,2,3]);
translate([-4.5,-45.5,24]) cube([2,20,3]);
translate([3.5,-45.5,24]) cube([2,20,3]);
}
module cable_holder()
{
difference()
{
union()
{
// base block
translate([0.5,-26,24]) rotate([0,0,90]) cylinder( h=39.5, r=5, $fn=30 );
translate([-4.5,-26,24]) cube([10,9,39.5]);
translate([-3,-35,24]) cube([7,10,39.5]);
}
// screw
translate([0.5,-27,19.5]) rotate([0,0,90]) cylinder( h=42, r=1.75, $fn=30 );
translate([0.5,-27,19.5+41]) rotate([0,0,90]) cylinder( h=5, r=3.15, $fn=30 );
// upper cables cut
translate([0.5,-18,23]) rotate([0,5,90]) cylinder( h=41, r=5, $fn=30 );
translate([-10,-20,23]) rotate([-5,0,0]) cube([20,9,45]);
// lower angled cut
translate([-10,-44,23]) rotate([-4,0,0]) cube([20,9,45]);
// wires
translate([-0.8,-35,23]) rotate([0,4,90]) cylinder( h=41, r=1.25, $fn=30 );
translate([1.8,-35,23]) rotate([0,4,90]) cylinder( h=41, r=1.25, $fn=30 );
// ziptie openings
translate([0,0,5]) zip_main();
translate([0,0,18]) zip_main();
translate([0,0,32]) zip_main();
translate([0,0,11]) zip_ext_cables();
translate([0,0,25]) zip_ext_cables();
// round edge cut
translate([0,1.8,-1.5])
difference()
{
translate([-10,-32,63]) rotate([0,90,0]) cylinder( h=41, r=4, $fn=30 );
translate([-10,-32,63]) rotate([0,90,0]) cylinder( h=41, r=2, $fn=30 );
translate([-10,-36,53]) rotate([0,0,0]) cube([20,9,10]);
translate([-10,-32,58]) rotate([0,0,0]) cube([20,9,10]);
}
}
}
cable_holder();

View File

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

View File

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

View File

@ -0,0 +1,32 @@
// PRUSA iteration4
// Extruder idler plug
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module plug()
{
difference()
{
union()
{
// Base shape
translate([-17,43,-18.5]) rotate([90,0,90]) cylinder( h=10, r=2.8, $fn=30 );
translate([-17,43,-21.3]) cube([10,4+3.5,5.6]);
translate([-17,43+3,-21.3]) cube([10.6,4.5,5.6]);
}
// Motor screw slot
translate([-11.5,42.5,-32]) cylinder( h=30, r=1.5, $fn=30 );
translate([-11.5-1.5,42.5-5,-25]) cube([3,5,10]);
// Pretty corner
translate([-18,47,-32]) rotate([0,0,30]) cube([15,10,30]);
}
}
rotate([0,0,0])
{
plug();
}

View File

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

View File

@ -0,0 +1,49 @@
// PRUSA iteration4
// Filament sensor cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module part()
{
difference()
{
union()
{
// base shape
translate([-6,50,-30.5]) cube([24,3,36]);
translate([0,60,-17]) rotate([90,0,0]) cylinder(r=4.2,h = 10, $fn=30);
translate([0,61.5,-17]) rotate([90,0,0]) cylinder(r1=3, r2=4.2, h=1.5, $fn=30);
}
// mounting screws
translate([12,60,-12]) rotate([90,0,0]) cylinder(r=1.6,h = 20, $fn=30);
translate([-1,60,-24.5]) rotate([90,0,0]) cylinder(r=1.6,h = 20, $fn=30);
translate([12,54.5,-12]) rotate([90,0,0]) cylinder(r=3.1,h = 3, $fn=30);
translate([-1,54.5,-24.5]) rotate([90,0,0]) cylinder(r=3.1,h = 3, $fn=30);
// filament guide
translate([0,59.8,-17]) rotate([90,0,0]) cylinder(r=2.2,h = 9.8, $fn=30);
translate([0,61,-17]) rotate([90,0,0]) cylinder(r=1,h = 20, $fn=30);
translate([0,62.5,-17]) rotate([90,0,0]) cylinder(r2=1.2, r1=3,h = 3, $fn=30);
translate([0,53.9,-17]) rotate([90,0,0]) cylinder(r1=2.2, r2=3,h = 4, $fn=30);
// nice edges
translate([19,50,-40]) rotate([0,0,45]) cube([10,10,50]);
translate([-9,49,-38]) rotate([0,0,45]) cube([6,5,50]);
translate([-8,56.5,-39]) rotate([45,0,0]) cube([50,10,10]);
translate([-8,56.5,-1]) rotate([45,0,0]) cube([50,10,10]);
translate([7,50.4,0]) rotate([90,180,0]) linear_extrude(height = 0.6)
{ text("R1",font = "helvetica:style=Bold", size=5, center=true); }
}
}
rotate([90,0,0]) part();

View File

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

View File

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

View File

@ -0,0 +1,244 @@
// PRUSA iteration4
// Heatbed cover MK2.5
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module cover()
{
difference()
{
// base block
translate([-18,0,0]) cube([36,36,9]);
// inner cut
translate([-15,-0.5,-3]) cube([30,16,9]);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=3.3, $fn=60);
translate([-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]);
// screw holes for clip
translate([-11,30,0]) cylinder(h = 10, r=1.6, $fn=50);
translate([11,30,0]) cylinder(h = 10, r=1.6, $fn=50);
// clip nuts entry
translate([-11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
translate([11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
// 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
difference()
{
union()
{
translate( [ 11 , 30 , 6 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
translate( [ -11 , 30 , 6 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
}
translate([-9.4,4,0.6]) cube([18.8,40,5.7]);
translate([-17.6,4,0.6]) cube([5,40,5.7]);
translate([12.6,4,0.6]) cube([5,40,5.7]);
translate([-22,18.4,0.6]) cube([70,10,6]);
translate([-20,31.6,0.6]) cube([70,10,6]);
}
difference()
{
union()
{
translate( [ 0 , 7.5 , 5.4 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
}
translate([-11.6,0,1]) cube([10,40,5.7]);
translate([1.6,0,1]) cube([10,40,5.7]);
translate([-5,-4.1,1]) cube([10,10,6]);
translate([-5,9.1,1]) cube([10,10,6]);
}
// heatbed screw nut entry
translate([0,7.5,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
// LED window
translate([-2.5,-1,-4]) cube([5,3.5,10]);
translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
// 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]);
// heatbed screw body
difference()
{
translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 3.9, r=2.75, $fn=50);
translate([0,7.5,6.5]) cylinder(h = 4, r=2.76, $fn=50);
translate([0,7.5,3]) cylinder(h = 4, r=1.6, $fn=50);
}
}
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);
// screws
translate([-11,30,-3]) cylinder(h = 10, r=1.6, $fn=50);
translate([11,30,-3]) cylinder(h = 10, r=1.6, $fn=50);
translate([-11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50);
translate([11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50);
// print support for nut heads
difference()
{
union()
{
translate([-11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
translate([11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
}
translate([-30,18.4,-0.8]) cube([60,10,2]);
translate([-30,31.6,-0.8]) cube([60,10,2]);
translate([-9.4,25,-1.1]) cube([18.8,10,2]);
translate([-22.6,25,-1.1]) cube([10,10,2]);
translate([12.6,25,-1.1]) cube([10,10,2]);
}
// thermistor cable entry
translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3, $fn=60);
// edges
translate([-18.0,32,-5]) rotate([0,0,25]) cube([11,11,15]);
translate([18,32,-5]) rotate([0,0,65]) cube([11,11,15]);
}
// 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]);
}
}
translate([0,40,3])
clip();
translate([0,40,9]) rotate([180,0,0])
cover();

View File

@ -0,0 +1,244 @@
// PRUSA iteration4
// Heatbed cover MK2.5
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module cover()
{
difference()
{
// base block
translate([-18,0,0]) cube([36,36,9]);
// inner cut
translate([-15,-0.5,-3]) cube([30,16,9]);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60);
translate([-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]);
// screw holes for clip
translate([-11,30,0]) cylinder(h = 10, r=1.6, $fn=50);
translate([11,30,0]) cylinder(h = 10, r=1.6, $fn=50);
// clip nuts entry
translate([-11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
translate([11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
// 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
difference()
{
union()
{
translate( [ 11 , 30 , 6 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
translate( [ -11 , 30 , 6 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
}
translate([-9.4,4,0.6]) cube([18.8,40,5.7]);
translate([-17.6,4,0.6]) cube([5,40,5.7]);
translate([12.6,4,0.6]) cube([5,40,5.7]);
translate([-22,18.4,0.6]) cube([70,10,6]);
translate([-20,31.6,0.6]) cube([70,10,6]);
}
difference()
{
union()
{
translate( [ 0 , 7.5 , 5.4 ] ){
cylinder( h = 4, r = 3.15, $fn=6);
}
}
translate([-11.6,0,1]) cube([10,40,5.7]);
translate([1.6,0,1]) cube([10,40,5.7]);
translate([-5,-4.1,1]) cube([10,10,6]);
translate([-5,9.1,1]) cube([10,10,6]);
}
// heatbed screw nut entry
translate([0,7.5,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6);
// LED window
translate([-2.5,-1,-4]) cube([5,3.5,10]);
translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
// 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]);
// heatbed screw body
difference()
{
translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 3.9, r=2.75, $fn=50);
translate([0,7.5,6.5]) cylinder(h = 4, r=2.76, $fn=50);
translate([0,7.5,3]) cylinder(h = 4, r=1.6, $fn=50);
}
}
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);
// screws
translate([-11,30,-3]) cylinder(h = 10, r=1.6, $fn=50);
translate([11,30,-3]) cylinder(h = 10, r=1.6, $fn=50);
translate([-11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50);
translate([11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50);
// print support for nut heads
difference()
{
union()
{
translate([-11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
translate([11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50);
}
translate([-30,18.4,-0.8]) cube([60,10,2]);
translate([-30,31.6,-0.8]) cube([60,10,2]);
translate([-9.4,25,-1.1]) cube([18.8,10,2]);
translate([-22.6,25,-1.1]) cube([10,10,2]);
translate([12.6,25,-1.1]) cube([10,10,2]);
}
// thermistor cable entry
translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3, $fn=60);
// edges
translate([-18.0,32,-5]) rotate([0,0,25]) cube([11,11,15]);
translate([18,32,-5]) rotate([0,0,65]) cube([11,11,15]);
}
// 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.5, $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]);
}
}
translate([0,40,3])
clip();
translate([0,40,9]) rotate([180,0,0])
cover();

View File

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

View File

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

View File

@ -5,7 +5,6 @@
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module m3head() module m3head()
{ {
intersection() intersection()
@ -16,9 +15,8 @@ module m3head()
translate([30,5,17-4]) cube([3.4,3.4,1], center=true); translate([30,5,17-4]) cube([3.4,3.4,1], center=true);
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut
} }
module x_carriage_back() module x_carriage_back()
{ {
difference() difference()
@ -26,8 +24,8 @@ module x_carriage_back()
union() union()
{ {
// base block // base block
translate([-16,-40.0,15.1]) cube([33,73,8]); translate([-16,-39.0,15.1]) cube([33,72,8]);
translate([-25.5,4,15.1]) cube([52,30.5,8]); translate([-25.5,-5,15.1]) cube([52,39.5,8]);
} }
// lower bearing cut // lower bearing cut
@ -40,17 +38,14 @@ module x_carriage_back()
translate([-20,-19.5,9]) cube([50,7.5,10]); translate([-20,-19.5,9]) cube([50,7.5,10]);
// bearings // bearings
translate([-15,-25,11.75]) rotate([0,90,0]) cylinder( h=31, r=7.6, $fn=150 ); translate([-15,-25,11.75]) rotate([0,90,0]) cylinder( h=31, r=7.6, $fn=30 );
translate([-30,20,11.75]) rotate([0,90,0]) cylinder( h=60, r=7.6, $fn=150 ); translate([-30,20,11.75]) rotate([0,90,0]) cylinder( h=60, r=7.6, $fn=30 );
translate([-17,-25,11.75]) rotate([0,90,0]) cylinder( h=60, r=7, $fn=30 ); translate([-17,-25,11.75]) rotate([0,90,0]) cylinder( h=60, r=7, $fn=30 );
translate([-32,20,11.75]) rotate([0,90,0]) cylinder( h=80, r=7, $fn=30 ); translate([-32,20,11.75]) rotate([0,90,0]) cylinder( h=80, r=7, $fn=30 );
translate([-15,-25-2,18]) cube([30,4,2]);
translate([-30,20-2,18]) cube([60,4,2]);
// hold together screws // hold together screws
translate([-5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([-9.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([10.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([1,4,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([1,4,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([13,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([13,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([-10.5,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); translate([-10.5,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
@ -58,56 +53,28 @@ module x_carriage_back()
translate([-10.5,31,19]) cylinder( h=50, r=3.1, $fn=30 ); translate([-10.5,31,19]) cylinder( h=50, r=3.1, $fn=30 );
// lower screw heads // lower screw heads
translate([-5,-36,19]) cylinder( h=6, r=3.1, $fn=30 ); translate([-9.5,-36,19]) cylinder( h=6, r=3.1, $fn=30 );
translate([-8.1,-46,18]) cube([6.2,10,10]); translate([10.5,-36,19]) cylinder( h=50, r=3.1, $fn=30 );
translate([-12.6,-46,18]) cube([6.2,10,10]);
translate([7.4,-46,18]) cube([6.2,10,10]);
// center screw head // center screw head
translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 ); translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 );
// heat cables cut // heat cables cut
translate([10.15,-37,4]) rotate([0,-20,0]) translate([0.5,-42.5,0]) rotate([-5,0,0]) cylinder( h=50, r=6, $fn=30 );
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 // cable holder screw
translate([0.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 ); translate([0.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 );
translate([0.5,-27,16.75]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 ); translate([0.5,-27,16.5]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 );
// x-carriage screws in belt holders // x-carriage screws in belt holders
translate([11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 );
translate([-11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 ); translate([-11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 );
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 // nice edges
translate([-20.8,-47.1,10]) rotate([0,0,45]) cube([10,10,15]); translate([-20.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]);
translate([21.8,-47.1,10]) rotate([0,0,45]) cube([10,10,15]); translate([21.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]);
translate([-24.4,15.2,10]) rotate([0,0,45]) cube([14,10,15]); translate([-24.4,15.2,10]) rotate([0,0,45]) cube([14,10,15]);
translate([26.9,15.2,10]) rotate([0,0,45]) cube([10,14,15]); translate([26.9,15.2,10]) rotate([0,0,45]) cube([10,14,15]);
translate([-19.55,28,10]) rotate([0,0,45]) cube([10,10,15]); translate([-19.55,28,10]) rotate([0,0,45]) cube([10,10,15]);
@ -116,8 +83,6 @@ module x_carriage_back()
translate([-22,35,17]) rotate([30,0,0]) cube([14.5,10,10]); translate([-22,35,17]) rotate([30,0,0]) cube([14.5,10,10]);
translate([10,35,17]) rotate([30,0,0]) cube([14.5,10,10]); translate([10,35,17]) rotate([30,0,0]) cube([14.5,10,10]);
translate([-20.8,-40.5,16]) rotate([50,0,0]) cube([50,20,10]);
// upper side cuts // upper side cuts
translate([17,25,10]) rotate([0,0,0]) cube([10,10,15]); translate([17,25,10]) rotate([0,0,0]) cube([10,10,15]);
translate([-29.5,25,10]) rotate([0,0,0]) cube([15,15,15]); translate([-29.5,25,10]) rotate([0,0,0]) cube([15,15,15]);
@ -127,13 +92,30 @@ module x_carriage_back()
// side edges // side edges
translate([27,-20,16]) rotate([0,-30,0]) cube([10,50,10]); translate([27,-20,16]) rotate([0,-30,0]) cube([10,50,10]);
translate([-34.2,-20,21]) rotate([0,30,0]) cube([10,50,10]); translate([-34.2,-20,21]) rotate([0,30,0]) cube([10,50,10]);
translate([19.5,-50,16]) rotate([0,-30,0]) cube([10,50,10]); translate([19.5,-55,16]) rotate([0,-30,0]) cube([10,50,10]);
translate([-27.1,-50,21]) rotate([0,30,0]) cube([10,50,10]); translate([-27.1,-55,21]) rotate([0,30,0]) cube([10,50,10]);
// inner cable cleanup // inner cable cleanup
translate([-1,-19.5,14]) rotate([0,30,0]) cube([10,7.5,10]); translate([-1,-19.5,14]) rotate([0,30,0]) cube([10,7.5,10]);
translate([-5,-19.5,10]) rotate([0,-30,0]) cube([10,7.5,10]); translate([-5,-19.5,10]) rotate([0,-30,0]) cube([10,7.5,10]);
// filament sensor cable
translate([4.5,28.5,12]) rotate([0,0,0]) cube([3.5,4,20]);
translate([0.5,28.5,12]) rotate([0,0,0]) cube([4.5,7,20]);
translate([4.5,-5,19.5]) rotate([0,0,0]) cube([3.5,35,4.3]);
translate([4.5,17.5,16.5]) rotate([0,0,0]) cube([3.5,5,4.3]);
translate([-1.55,-9.60,19.5]) rotate([0,0,-45]) cube([3.5,10,4]);
translate([-1.9,-9.95,15]) rotate([45,0,-45]) cube([3.5,10,4]);
translate([4.5,29,16]) rotate([45,0,0]) cube([3.5,5,5]);
translate([3.5,-4.60,19.5]) rotate([0,0,-15]) cube([3,4,4]);
// version
translate([-14.5,13,22.8]) rotate([0,0,0]) linear_extrude(height = 0.4)
{ text("MK3",font = "helvetica:style=Bold", size=6, center=true); }
translate([-15,3,15.8]) rotate([0,180,0]) linear_extrude(height = 0.8)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); }
translate([-23,2.3,14.3]) cube([9,5.0,1]);
// upper ziptie left // upper ziptie left
translate([-21.5,-25,0])difference() translate([-21.5,-25,0])difference()
@ -155,22 +137,9 @@ module x_carriage_back()
translate([-17,26,5]) m3head(); translate([-17,26,5]) m3head();
translate([-40.5,26,5]) m3head(); translate([-40.5,26,5]) m3head();
translate([-29,-1,4]) m3head(); translate([-29,-1,4]) m3head();
translate([-35,-41,4]) m3head(); translate([-19.5,-41,5]) m3head();
translate([-8.1,-40,17.5]) cube([6.2,4,5]); translate([-39.5,-41,5]) m3head();
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); }
} }
} }

View File

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

@ -11,29 +11,35 @@ module x_end_idler_holes()
{ {
x_end_holes(); x_end_holes();
translate([0,3.5,0]) translate([0,3.5,0])
{ {
// pulley screw // pulley screw
translate(v=[0,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=50); translate(v=[0,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=50);
translate(v=[-4,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 4, r=3, $fn=50); translate(v=[-4,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 4, r=3, $fn=50);
translate(v=[-21.5,-19,30.25]) rotate([0,-90,0]){ translate(v=[-21.5,-19,30.25]) rotate([0,-90,0]){
rotate([0,0,30])cylinder( h = 4, r = 3.1, $fn=6); rotate([0,0,30])cylinder( h = 4, r = 3.1, $fn=6);
} }
translate(v=[-24,-19,30.25]) rotate([0,-90,0]){ translate(v=[-24,-19,30.25]) rotate([0,-90,0]){
rotate([0,0,30])cylinder( h = 4, r1 = 3.1, r2 = 7, $fn=6); 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(v=[-4.5,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 1, r2=3, r1=4, $fn=50);
translate([-16.1,-35,39.25]) rotate([0,45,0]) cube([5,20,5]);
// 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() module waste_pocket()
@ -59,21 +65,34 @@ module x_end_idler_base()
x_end_base(); x_end_base();
difference() difference()
{ {
translate(v=[-6.5,-21,13.5]) cube([1,12.5,42]); translate(v=[-6.5,-21,13.5]) cube([1,12.5,42]);
translate([-24,-11.5,19]) cube([20,10,24]);
translate(v=[-6.5,-10,55.5]) rotate([180,-45,0]) cube([1.5,19,5]); translate([-24,-11.5,19]) cube([20,10,24]);
translate(v=[-6.5,-29,13.5]) rotate([0,45,0]) cube([1.5,19,5]); 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]); translate(v=[-5.5,-19,13.5]) rotate([90,0,-35]) cube([1.5,45,6]);
} }
// pulley nut support // pulley nut support
difference() difference() {
{ translate(v=[-23.5,-15.5,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 1,r1=5.5, r2=3.7, $fn=30);
translate(v=[-23.5,-15.5,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 1,r1=5.5, r2=3.7, $fn=30); translate([-26,-11.5,19]) cube([20,10,24]);
translate([-26,-11.5,19]) cube([20,10,24]);
}
}
} }
x_end_idler_holes(); x_end_idler_holes();
@ -91,11 +110,16 @@ module x_end_idler_base()
translate(v=[0,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=30); translate(v=[0,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=30);
} }
// nut trap print supoorts // nut trap print supoorts
translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true); translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true);
translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
} }
@ -146,9 +170,9 @@ module x_end_idler()
translate(v=[-8,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 20, r=1.55, $fn=30); translate(v=[-8,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 20, r=1.55, $fn=30);
translate([-25,7.5,-1]) rotate([0,0,45]) cube([10,10,100]); translate([-25,7.5,-1]) rotate([0,0,45]) cube([10,10,100]);
//version //version
translate([-23.7,-25,2]) rotate([90,0,90]) linear_extrude(height = 0.6) translate([-23.7,-25,2]) rotate([90,0,90]) linear_extrude(height = 0.6)
{ text("R6",font = "helvetica:style=Bold", size=4, center=true); } { text("R3",font = "helvetica:style=Bold", size=4, center=true); }
} }
// bearings stop // bearings stop
@ -185,6 +209,8 @@ difference()
x_end_idler(); x_end_idler();
translate([-8,15,13.0]) rotate([0,0,-45.4]) cube([10,1.5,1]); translate([-8,15,13.0]) rotate([0,0,-45.4]) cube([10,1.5,1]);
} }
// chamfers
translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]); translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]);
translate([-20,10.5,69]) rotate([0,45,0]) cube([20,20,20]); translate([-20,10.5,69]) rotate([0,45,0]) cube([20,20,20]);
translate([-25,37,49]) rotate([45,0,0]) cube([30,20,20]); translate([-25,37,49]) rotate([45,0,0]) cube([30,20,20]);

View File

@ -11,13 +11,11 @@ module x_end_motor_base()
{ {
x_end_base(); x_end_base();
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true); translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
} }
module x_end_motor_holes() module x_end_motor_holes()
{ {
x_end_holes(); x_end_holes();
// Position to place // Position to place
translate(v=[-1,32,30.25]) translate(v=[-1,32,30.25])
@ -26,23 +24,28 @@ module x_end_motor_holes()
translate(v=[-19,-21,-12]) cube(size = [10,25,22]); translate(v=[-19,-21,-12]) cube(size = [10,25,22]);
// Motor mounting holes // Motor mounting holes
translate(v=[0,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=30, r=1.55, $fn=60);
for (x =[-1:0.25:1]) translate(v=[0,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60);
{ translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.05, $fn=60);
translate(v=[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=[20,-15,-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,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[1,-15.5+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,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[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=[20,-16,-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,-16,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[1,15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); translate(v=[20,-16.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
}; translate(v=[1,-16.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[20,16.,-15.0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[1,16.,-15.0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[20,15,-16]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[1,15,-16]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[20,14.5,-16.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[1,14.5,-16.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
// Material saving cutout // Material saving cutout
translate(v=[-10,12,12]) cube(size = [60,42,42], center = true); translate(v=[-10,12,12]) cube(size = [60,42,42], center = true);
translate(v=[-25,10.5,-11]) rotate([45,0,0]) cube(size = [60,10,10]); translate(v=[-25,10.5,-11]) rotate([45,0,0]) cube(size = [60,10,10]);
@ -52,9 +55,11 @@ module x_end_motor_holes()
translate(v=[-10,41,-30.5]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true); translate(v=[-10,41,-30.5]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
translate([-15,-2,-33]) rotate([-45,0,0]) cylinder(h=25, r=1.7, $fn=30);
translate([-15,-2,-33]) rotate([-45,0,0]) cylinder(h=28-18, r=3.2, $fn=30);
translate([-35+2.8,10,-25]) rotate([45,0,0]) cube(size = [20,2,5.6]);
} }
} }
// Motor shaft cutout // Motor shaft cutout
@ -100,11 +105,10 @@ module x_end_motor()
translate([-17,3,55]) cube([4,4,10]); translate([-17,3,55]) cube([4,4,10]);
translate([-17,3,-8]) cube([4,4,10]); translate([-17,3,-8]) cube([4,4,10]);
translate([-30,-30,58]) cube([30,30,10]); translate([-30,-30,58]) cube([30,30,10]);
// version // version
translate([-23.2,-20,2]) rotate([90,0,270]) linear_extrude(height = 0.6) translate([-23.2,-20,2]) rotate([90,0,270]) linear_extrude(height = 0.6)
{ text("R6",font = "helvetica:style=Bold", size=4, center=true); } { text("R3",font = "helvetica:style=Bold", size=4, center=true); }
} }
translate([-15,10,6]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30); translate([-15,10,6]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30);
@ -132,13 +136,15 @@ module x_end_motor()
rotate([0,0,310-240]) 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 // nut trap print supoorts
translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true); translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true);
translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
} }
@ -148,37 +154,12 @@ difference()
{ {
x_end_motor(); x_end_motor();
translate([-8,-17,13.0]) rotate([0,0,44.7]) cube([10,1.5,1]); translate([-8,-17,13.0]) rotate([0,0,44.7]) cube([10,1.5,1]);
// 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]);
}
} }
//chamfers
translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]); translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]);
translate([-20,-30.5,69]) rotate([0,45,0]) cube([20,20,20]); translate([-20,-30.5,69]) rotate([0,45,0]) cube([20,20,20]);
translate([-25,-37,49]) rotate([45,0,0]) cube([30,20,20]); translate([-25,-37,49]) rotate([45,0,0]) cube([30,20,20]);
translate([-25,23.5,49]) rotate([45,0,0]) cube([30,20,20]); translate([-25,23.5,49]) rotate([45,0,0]) cube([30,20,20]);
// 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

@ -11,6 +11,9 @@ rod_distance = 45;
module x_end_base() module x_end_base()
{ {
// Main block // Main block
height = 58; height = 58;
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true); translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
@ -21,7 +24,7 @@ module x_end_base()
//Nut trap //Nut trap
// Cylinder // Cylinder
translate(v=[0,-17,0]) cylinder(h = 13.5, r=12.5, $fn=250); translate(v=[0,-17,0]) cylinder(h = 13.5, r=12.5, $fn=100);
difference() difference()
{ {
translate(v=[0,-17,13]) poly_cylinder(h = 3, r=12.5, $fn=25); translate(v=[0,-17,13]) poly_cylinder(h = 3, r=12.5, $fn=25);
@ -31,6 +34,11 @@ module x_end_base()
} }
} }
module reinforcement_selective_infill() module reinforcement_selective_infill()
{ {
@ -38,8 +46,7 @@ module reinforcement_selective_infill()
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,5],[12,0]] ); rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,5],[12,0]] );
} }
x_end_base();
module x_end_holes() module x_end_holes()
{ {
@ -48,6 +55,7 @@ module x_end_holes()
translate(v=[-1,0,0]) translate(v=[-1,0,0])
{ {
// Stress relief // Stress relief
translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true);
difference() difference()
{ {
@ -76,27 +84,29 @@ module x_end_holes()
translate(v=[0,-17, -0.1]) cylinder(h = 1, r1 = 7.2,r2 = 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 // 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, -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);
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 // 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, 11]) rotate([0, 0, 0])cylinder(h = 6, r = 3.1, $fn=6);
translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 3, r = 3.1, $fn=6); translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 4, r = 3.2, $fn=6);
translate([-5.5,-17.2,10]) rotate([0,0,30]) cube([5,5,3]); translate([-5.5,-17.2,10]) rotate([0,0,32]) cube([5,5.9,3.5]);
translate([-0,-17.2,10]) rotate([0,0,60]) cube([5,10,3]); translate([-0,-17.2,10]) rotate([0,0,58]) cube([5,10,3.5]);
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]);
}
} }
@ -112,13 +122,9 @@ module x_end_plain()
x_end_base(); x_end_base();
x_end_holes(); 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);
} }
} }
@ -128,7 +134,6 @@ module x_end_plain()
module pushfit_rod(diameter,length) module pushfit_rod(diameter,length)
{ {
poly_cylinder(h = length, r=diameter/2); poly_cylinder(h = length, r=diameter/2);
@ -138,5 +143,8 @@ module pushfit_rod(diameter,length)
translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true); translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true);
} }
} }
difference () {
x_end_holes(); x_end_plain();
//translate([-50,-50,-1]) rotate([0,0,0]) cube([100,100,5]);
}
//

View File

@ -0,0 +1,78 @@
// PRUSA iteration4
// Y belt holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module y_belt_holder()
{
difference()
{
// base block
union()
{
translate([-7,-24,44.5]) cube([14,48,8]);
translate([-5,-15,29]) cube([12,30,17]);
}
// belt entry
translate([-7.5,-16,39.9]) rotate([0,45,0]) cube([3,32,3]);
translate([-7.5,-16,34.9]) rotate([0,45,0]) cube([3,32,3]);
// lower belt slot
translate([-8.5,-16,34.2]) cube([11.5,32,0.75]);
translate([-8.5,-16,35.4]) rotate([0,5,0]) cube([11.5,32,0.2]);
translate([-8.5,-16,33.6]) rotate([0,-5,0]) cube([11.5,32,0.2]);
for (_step =[-16:2:16])
{
translate([-8.5,_step,33]) cube([11.5,1,1.5]);
}
// upper belt slot
translate([-8.5,-16,39.2]) cube([11.5,32,0.75]);
translate([-8.5,-16,40.4]) rotate([0,5,0]) cube([11.5,32,0.2]);
translate([-8.5,-16,38.6]) rotate([0,-5,0]) cube([11.5,32,0.2]);
for (_step =[-17:2:16])
{
translate([-8.5,_step,38.2]) cube([11.5,1,1.5]);
}
// nice edges
translate([-8,-20,21.8]) rotate([45,0,0]) cube([16,10,10]);
translate([-8,20,21.8]) rotate([45,0,0]) cube([16,10,10]);
translate([-8,-30,37]) rotate([45,0,0]) cube([16,10,10]);
translate([-8,30,37]) rotate([45,0,0]) cube([16,10,10]);
translate([-12.2,-30,44.4]) rotate([0,45,0]) cube([5,60,5]);
// mounting screw holes
translate([0,-19.50,40]) cylinder( h=30, r=1.65, $fn=50 );
translate([0,19.50,40]) cylinder( h=30, r=1.65, $fn=50 );
translate([0,-19.25,40]) cylinder( h=30, r=1.65, $fn=50 );
translate([0,19.25,40]) cylinder( h=30, r=1.65, $fn=50 );
translate([0,-19.0,40]) cylinder( h=30, r=1.65, $fn=50 );
translate([0,19.0,40]) cylinder( h=30, r=1.65, $fn=50 );
translate([0,-19.5,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,19.5,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,-19.25,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,19.25,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,-19.0,43.5]) cylinder( h=7, r=3.1, $fn=50 );
translate([0,19.0,43.5]) cylinder( h=7, r=3.1, $fn=50 );
}
}
difference()
{
translate([-40,0,7]) rotate([0,90,0]) y_belt_holder();
//version
translate([8.5,3.5,0.5]) rotate([0,180,90]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); }
}

View File

@ -0,0 +1,63 @@
// PRUSA iteration4
// Y belt idler
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module Y_belt_idler()
{
difference()
{
// base block
translate([-12.5,-20,5]) cube([25,20,35]);
translate([-4.75,-27,-1]) cube([9.5,20,50]);
// angled front side
translate([-15,-19.5,-15]) rotate([37,0,0]) cube([30,20,40]);
translate([-15,-12,-15]) rotate([60,0,0]) cube([30,20,40]);
translate([-15,-20,29.5]) rotate([38,0,0]) cube([30,20,20]);
// screws
translate([0,1,36]) rotate([90,0,0]) cylinder( h=25, r=1.65, $fn=50 );
translate([0,-2,36]) rotate([90,0,0]) cylinder( h=6, r=3.1 , $fn=6 );
translate([0,1,10]) rotate([90,0,0]) cylinder( h=25, r=1.65, $fn=50 );
translate([0,-2,10]) rotate([90,0,0]) cylinder( h=6, r=3.1 , $fn=6 );
translate([0,-5,36]) rotate([90,0,0]) cylinder( h=6, r=3.1 , r2=3.9, $fn=6 );
translate([0,-5,10]) rotate([90,0,0]) cylinder( h=6, r=3.1 , r2=3.9, $fn=6 );
translate([0,1,36]) rotate([90,0,0]) cylinder( h=2, r=2.5, r2=1.65,$fn=50 );
translate([0,1,10]) rotate([90,0,0]) cylinder( h=2, r=2.5, r2=1.65,$fn=50 );
// pulley cut
translate([-5,-14,22.5]) rotate([0,90,0]) cylinder( h=10, r=10, $fn=30 );
// pulley screw axis
translate([-13.5,-14,22.5]) rotate([0,90,0]) cylinder( h=30, r=1.6, $fn=50 );
translate([-14,-14,22.5]) rotate([0,90,0]) cylinder( h=7, r=3.1, $fn=6 );
translate([-14,-14,22.5]) rotate([0,90,0]) cylinder( h=4, r2=3.1, r1=4, $fn=6 );
translate([8,-14,22.5]) rotate([0,90,0]) cylinder( h=6, r=3.1, $fn=50 );
// selective infill
translate([-10,-18,18]) cube([3,17,0.5]);
translate([8,-18,18]) cube([3,17,0.5]);
translate([-10,-18,27]) cube([3,17,0.5]);
translate([8,-18,27]) cube([3,17,0.5]);
translate([-10,-17,16]) cube([3,15,0.5]);
translate([8,-17,16]) cube([3,15,0.5]);
translate([-10,-16,29]) cube([3,15,0.5]);
translate([8,-16,29]) cube([3,15,0.5]);
translate([-8,-2,30]) cube([16,1,0.5]);
translate([-8,-2,13]) cube([16,1,0.5]);
// upper side mark
translate([8.5,-3.5,39]) rotate([0,0,0]) cylinder( h=2, r=1.5, $fn=30 );
//version
translate([3.5,-0.5,20]) rotate([90,0,180]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); }
}
}
rotate([-90,0,0]) Y_belt_idler();

View File

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

View File

@ -0,0 +1,94 @@
// PRUSA iteration4
// Y holder front
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module ziptie_round_edge()
{
difference()
{
translate([0,0,0]) rotate([90,0,0]) cylinder( h=3.2, r=4, $fn=50 );
translate([0,1,0]) rotate([90,0,0]) cylinder( h=5, r=2, $fn=50 );
translate([-10,-4,0]) cube([20,5,5]);
translate([-20,-4,-13]) cube([20,5,20]);
}
}
module part()
{
difference()
{
union()
{
// body block
difference() {
translate([-13,-3,0]) cube([26,10,12]);
// upper corners
translate([4,-3.5,20]) rotate([0,60,0]) cube([20,30,20]);
translate([-21.2,-3.5,30]) rotate([0,120,0]) cube([20,30,20]);
translate([-15,-3.3,-6]) rotate([45,0,0]) cube([30,5,5]);
translate([15,7.3,-6]) rotate([45,0,180]) cube([30,5,5]);
}
difference() {
translate([-4,2,-2]) cube([8,5,3]);
// upper corners
translate([-15,2,-7.07]) rotate([45,0,0]) cube([30,5,5]);
translate([15,9.5,-6]) rotate([45,0,180]) cube([30,5,5]);
}
}
// y-axis cut
translate([0,11,10.5]) rotate([90,0,0]) cylinder( h=14, r=4, $fn=50 );
translate([0,8,10.5]) rotate([90,0,0]) cylinder( h=2, r1=4.5, r2=4, $fn=50 );
translate([0,-2,10.5]) rotate([90,0,0]) cylinder( h=2, r1=4, r2=4.5, $fn=50 );
translate([-7,-4,14.5]) rotate([0,45,0]) cube([10,20,10]);
translate([0,8,10.5]) rotate([90,0,0]) cylinder( h=1.4, r1=5, r2=4, $fn=50 );
// screw holes
translate([-5.5,4,3.5]) rotate([90,0,0]) cylinder( h=20, r=1.55, $fn=60 );
translate([5.5,4,3.5]) rotate([90,0,0]) cylinder( h=20, r=1.55, $fn=60 );
translate([-5.5,-2.4,3.5]) rotate([90,0,0]) cylinder( h=2, r1=1.5, r2=2.6, $fn=60 );
translate([5.5,-2.4,3.5]) rotate([90,0,0]) cylinder( h=2, r1=1.5, r2=2.6, $fn=60 );
// ziptie
translate([7.8,5.75,9]) ziptie_round_edge();
translate([-7.8,2.55,9]) rotate([0,0,180]) ziptie_round_edge();
translate([-8.1,2.55,5]) cube([16.2,3.2,2]);
translate([0.8,2.55,25]) rotate([0,60,0]) cube([20,3.2,2]);
translate([-1.8,2.55,27]) rotate([0,120,0]) cube([20,3.2,2]);
// nuts
difference () {
union(){
translate([-8.2,-0.45,-3.4]) cube([5.6,2.1,10]);
translate([2.8,-0.45,-3.4]) cube([5.6,2.1,10]);}
// nut holding '
translate([-14,-0.45,-0.02]) cube([24,0.5,0.5]);
}
// nut print supports
translate([-8.2,-0.25,3.5-3.2/2]) cube([5.6,2.1,3.2]);
translate([2.8,-0.25,3.5-3.2/2]) cube([5.6,2.1,3.2]);
translate([-7.1,0,3.5-3.2/2]) cube([3.2,2.1,3.2]);
translate([3.9,0,3.5-3.2/2]) cube([3.2,2.1,3.2]);
// upper corners
}
}
rotate([90,0,0])part();

View File

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

11958
Printed-Parts/stl/LCD-knob.stl Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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