Compare commits

..

74 Commits
MK3S ... MK2.5

Author SHA1 Message Date
Alexandr Kukan 36a16f20e9
Update README.md 2021-01-14 15:58:47 +01:00
akukan a7184737ee
Updated with MMU2 part info 2018-10-23 14:28:30 +02:00
akukan ae00eba29b
X-carriage belt holder 2018-03-05 16:39:28 +01:00
akukan f177516793
X-carriage belt holder 2018-03-05 16:37:04 +01:00
akukan 2d20b07bfe
Delete x-carriage.scad 2018-03-05 16:36:35 +01:00
akukan 08d06a1120
X-carriage belt holder 2018-03-05 16:35:53 +01:00
akukan 1aa4d1fc54
Readme updated 2018-03-01 15:19:34 +01:00
akukan 72de42d0a1
Heatbed cable cover added 2018-02-22 14:20:37 +01:00
akukan 4355e47ebb
Heatbed cable cover added 2018-02-22 14:19:50 +01:00
akukan 85574cff11
Rambo-hinges added 2017-12-14 15:18:54 +01:00
akukan da78c264a0
Delete Rambo-Hinges.scad 2017-12-14 15:18:27 +01:00
akukan b31ab2ebf5
Rambo-hinges added 2017-12-14 15:18:07 +01:00
akukan 58274df9b1
Duplicity 2017-12-13 20:53:24 +01:00
akukan 83d8c04c30
Update README.md 2017-12-12 17:42:26 +01:00
akukan 1244cde3cf
Delete z-screw-cover.stl 2017-12-12 17:35:06 +01:00
akukan 3646b76875
Delete z-screw-cover.scad 2017-12-12 17:34:54 +01:00
akukan eebfc431c3
MK2.5 upgrade initial 2017-12-12 17:34:36 +01:00
akukan 09bb00c3c9
MK2.5 upgrade initial 2017-12-12 17:33:24 +01:00
akukan 91229ea048
Delete z-axis-top.stl 2017-12-12 17:32:27 +01:00
akukan 45b2b9bfa2
Delete z-axis-bottom.stl 2017-12-12 17:32:18 +01:00
akukan 26454b616d
Delete y-motor-holder.stl 2017-12-12 17:32:10 +01:00
akukan f0744da26d
Delete y-holder-rear.stl 2017-12-12 17:32:02 +01:00
akukan 2d6ba398a3
Delete y-holder-front.stl 2017-12-12 17:31:55 +01:00
akukan 763e494ba7
Delete y-belt-idler.stl 2017-12-12 17:31:44 +01:00
akukan cf10b529d3
Delete y-belt-holder.stl 2017-12-12 17:31:35 +01:00
akukan 6c14658cbe
Delete x-end-motor.stl 2017-12-12 17:31:28 +01:00
akukan 96833de6ff
Delete x-end-idler.stl 2017-12-12 17:31:20 +01:00
akukan b10faadde8
Delete x-carriage.stl 2017-12-12 17:30:49 +01:00
akukan 7d176ff315
Delete x-carriage-back.stl 2017-12-12 17:30:37 +01:00
akukan 3e71c92144
Delete nozzle-fan.stl 2017-12-12 17:30:06 +01:00
akukan 981f14cc28
Delete lcd-supports.stl 2017-12-12 17:29:58 +01:00
akukan 8b558effc0
Delete heatbed-cable-cover.stl 2017-12-12 17:29:51 +01:00
akukan ecdd5bacba
Delete filament-sensor-cover.stl 2017-12-12 17:29:41 +01:00
akukan 673ac37886
Delete extruder-idler.stl 2017-12-12 17:29:31 +01:00
akukan b0ec97e81f
Delete extruder-idler-plug.stl 2017-12-12 17:29:22 +01:00
akukan ebc86fd4c0
Delete extruder-cover.stl 2017-12-12 17:29:06 +01:00
akukan f4b2c2414d
Delete extruder-body.stl 2017-12-12 17:28:57 +01:00
akukan b430998fe7
Delete cable-holder.stl 2017-12-12 17:28:50 +01:00
akukan 2c63c80f68
Delete Spool-holder.stl 2017-12-12 17:28:43 +01:00
akukan 641824bf39
Delete LCD-cover-ORIGINAL-MK3.stl 2017-12-12 17:28:32 +01:00
akukan d2c6324edc
Delete Einsy-hinges.stl 2017-12-12 17:28:26 +01:00
akukan 092baa632b
Delete Einsy-doors.stl 2017-12-12 17:28:20 +01:00
akukan e347d0a493
Delete Einsy-base.stl 2017-12-12 17:28:13 +01:00
akukan afffd653d5
Delete z-axis-top.scad 2017-12-12 17:27:57 +01:00
akukan 60f02f58b2
Delete z-axis-bottom.scad 2017-12-12 17:27:50 +01:00
akukan bc9e842d3b
Delete y-motor-holder.scad 2017-12-12 17:27:42 +01:00
akukan 12b97e452f
Delete y-holder-rear.scad 2017-12-12 17:27:33 +01:00
akukan fdfd11dba6
Delete y-holder-front.scad 2017-12-12 17:27:25 +01:00
akukan e9bedc80ff
Delete y-belt-idler.scad 2017-12-12 17:27:17 +01:00
akukan d2c4981a3e
Delete y-belt-holder.scad 2017-12-12 17:27:07 +01:00
akukan 5d57b38125
Delete x-end.scad 2017-12-12 17:27:00 +01:00
akukan 1befafbefe
Delete x-end-motor.scad 2017-12-12 17:26:50 +01:00
akukan bdecc29e55
Delete x-end-idler.scad 2017-12-12 17:26:40 +01:00
akukan 061ce6f128
Delete x-carriage.scad 2017-12-12 17:26:32 +01:00
akukan 7663a972b2
Delete x-carriage-back.scad 2017-12-12 17:26:23 +01:00
akukan a958d9080b
Delete polyholes.scad 2017-12-12 17:26:15 +01:00
akukan d6e40a533d
Delete nozzle-fan.scad 2017-12-12 17:26:06 +01:00
akukan 61ee2dce96
Delete lcd-supports.scad 2017-12-12 17:25:57 +01:00
akukan 72898d229c
Delete heatbed-cable-cover.scad 2017-12-12 17:25:48 +01:00
akukan 039804df9d
Delete filament-sensor-cover.scad 2017-12-12 17:25:40 +01:00
akukan 51ecbfcaad
Delete extruder-idler.scad 2017-12-12 17:25:33 +01:00
akukan 88904f9aaa
Delete extruder-idler-plug.scad 2017-12-12 17:25:24 +01:00
akukan 304ef8600f
Delete extruder-cover.scad 2017-12-12 17:25:10 +01:00
akukan 22bedfffef
Delete extruder-body.scad 2017-12-12 17:24:59 +01:00
akukan a9c4005c03
Delete cable-holder.scad 2017-12-12 17:24:49 +01:00
akukan 0f9dc67c79
Delete bearing.scad 2017-12-12 17:24:40 +01:00
akukan c01a497b19
Delete LCD-cover-ORIGINAL-MK3.scad 2017-12-12 17:24:31 +01:00
akukan 55cd475da0
Delete Einsy-hinges.scad 2017-12-12 17:24:18 +01:00
akukan 2f87d280f1
Delete Einsy-doors.scad 2017-12-12 17:24:09 +01:00
akukan 7676015e60
Delete Einsy-base.scad 2017-12-12 17:23:59 +01:00
akukan 59b49ae991
Delete MK3v8b.dxf 2017-12-12 17:23:45 +01:00
akukan 60bb763684
Delete MK3-rear-plate.dxf 2017-12-12 17:23:35 +01:00
akukan d0c0657061
Delete MK3-front-plate.dxf 2017-12-12 17:23:27 +01:00
akukan 4fb6666bb3
Delete Extrusions.pdf 2017-12-12 17:23:18 +01:00
110 changed files with 187106 additions and 659054 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,977 +0,0 @@
// PRUSA iteration4
// Einsy base
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module CubicPattern(Xdim, Ydim)
{
for (x =[0:12:Xdim-10])
{
for (y =[0:12:Ydim-10])
{
translate([x,y,-0.2])cube([10,10,0.4]);
}
}
}
module BottomCubic()
{
difference()
{
translate([5,5,0]) CubicPattern(110,90);
translate([11,0,-1]) cube( [ 11, 40 , 4 ] );
translate([0,0,-1]) cube( [ 11, 28 , 4 ] );
translate([0,64,-1]) cube( [ 16, 28 , 4 ] );
translate([95,64,-1]) cube( [ 20, 28 , 4 ] );
translate([95,0,-1]) cube( [ 20, 28 , 4 ] );
translate([76,-10,-1]) cube( [ 20, 20 , 4 ] );
translate([52,76,-1]) cube( [ 12, 20 , 4 ] );
}
}
// main body
module main_body()
{
//raspberry frame
// side panel
cube( [ 118.5 , 92 , 2 ] );
// upper panel
cube( [ 1.5 , 92 , 35 ] );
// rear panel
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
// upper panel frame reinforcement
translate( [ 0 , 0 , 1 ] ) cube( [ 5 , 7 , 34 ] );
// side panel reinforcement
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
//
translate([21,81,0]) cylinder( h = 4.5, r = 2.5, $fn=30);
translate([21+58,81,0]) cylinder( h = 4.5, r = 2.5, $fn=30);
// ziptie cable managment
translate( [0 , 55 , 22 ] ) difference() {
translate( [0 , 0 , -2 ] ) cube( [ 5 , 8 , 10 ] );
translate( [0 , -1 , -3 ] ) rotate([0,45,0]) cube( [ 5 , 10 , 8 ] );
translate( [5, -1 , 6 ] ) rotate([0,-60,0]) cube( [ 5 , 10 , 8 ] );
union() {
translate( [1.5 , 2.5 , 3.5] ) cube( [ 2 , 3 ,10 ] );
translate( [3 , 2.5 , 2 ] ) cube( [ 5.5 , 3 ,2 ] );
translate( [2 , 2.5 , 6.5 ] ) cube( [ 5 , 3 ,3 ] );
difference () {
translate( [ 3 ,5.5 , 3.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1.5, $fn=30);
translate( [3.5 , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
difference () {
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1, $fn=30);
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 0.5, $fn=30);
translate( [3.5 , 1.5 , 4.5 ] ) cube( [ 5 , 5 ,3 ] );
translate( [4. , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
}
}
translate( [25 , 91.5 , 22 ] ) rotate([0,0,-90]) difference() {
translate( [0 , 0 , -2 ] ) cube( [ 5 , 8 , 10 ] );
translate( [0 , -1 , -3 ] ) rotate([0,45,0]) cube( [ 5 , 10 , 8 ] );
translate( [5, -1 , 6 ] ) rotate([0,-60,0]) cube( [ 5 , 10 , 8 ] );
union() {
translate( [1.5 , 2.5 , 3.5] ) cube( [ 2 , 3 ,10 ] );
translate( [3 , 2.5 , 2 ] ) cube( [ 5.5 , 3 ,2 ] );
translate( [2 , 2.5 , 6.5 ] ) cube( [ 5 , 3 ,3 ] );
difference () {
translate( [ 3 ,5.5 , 3.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1.5, $fn=30);
translate( [3.5 , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
difference () {
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1, $fn=30);
translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 0.5, $fn=30);
translate( [3.5 , 1.5 , 4.5 ] ) cube( [ 5 , 5 ,3 ] );
translate( [4. , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] );
}
}
}
difference()
{
// bottom side reinforcement
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
translate( [ 96 , 79 , 0 ] ) rotate([0,0,45]) cube( [ 7.5 , 6 , 36 ] );
}
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] );
// screw mounting block
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] );
// frame side panel
translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] );
// Einsy mounting holes
translate( [ 102.5 , 14 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 102.5 , 75 , 1 ] ) rotate([0,0,90]) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 7.5 , 14 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
translate( [ 7.5 , 75 , 1 ] ) cylinder( h = 7, r = 5.5, $fn=6);
// corners reinforcement
translate( [ 0 , 75 , 1 ] ) cube( [ 13 , 16 , 6 ] );
translate( [ 0 , 70.25 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
translate( [ 0 , 7.75 , 1 ] ) cube( [ 7.5 , 11 , 6 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 13 , 14 , 6 ] );
// frame mounting screw blocks
//upper
translate( [ 1 , 0 , 0 ] ) cube( [ 28 , 4 , 10 ] );
translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 4 , 5.5] );
//lower
translate( [ 98 , 0 , 0 ] ) cube( [ 20.5 , 4 , 10 ] );
// door closing corner
translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
// doors pin upper
translate( [ 2 , 85 , 31 ] ) cube( [ 6 , 7 , 4] );
translate( [ 4 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
// x-axis cables entry hole body
translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6);
}
module rambo_popout_cover () {
//raspberry cover
translate( [ 20 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 33 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 45.8 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 59 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [72.5 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 20 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 33 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 45.8 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 59 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [72.5 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] );
translate( [ 9 , 51.5 , 0] ) cube( [ 5 , 7 , 0.5] );
translate( [ 81 , 53.5 , 0] ) cube( [ 1 , 3 , 0.5] );
difference() {
translate( [ 14 , 38.5 , 0] ) cube( [ 67 , 33 , 2] );
translate( [ 0.5 , 0.5 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.2 , 41.7 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 13.5 , 41.7 , -1] ) cube( [ 12.7 , 9 , 9] );
translate( [ 17.2 , 38 , -1] ) cube( [ 9, 5 , 9] );
}
translate( [ 60 , 0 , 0] ) difference()
{
translate( [ 17.3 , 42.2 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.3 , 42.2 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 9.0 , 42 , -1] ) cube( [ 12 , 9 , 9] );
translate( [ 8.8 , 38.5 , -1] ) cube( [ 9, 5 , 9] );
}
translate( [ 60 , 26 , 0] ) difference()
{
translate( [ 17.3 , 41.8 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.4 , 41.8 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 8.5 , 33.5 , -1] ) cube( [ 9 , 12 , 9] );
translate( [ 17 , 33 , -1] ) cube( [ 4, 9 , 9] );
}
translate( [ 0 , 26 , 0] ) difference()
{
translate( [ 17.7 , 41.8 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.7 , 41.8 , -1] ) cylinder( h = 9, r = 3.7, $fn=40);
translate( [ 17.5 , 33.5 , -1] ) cube( [ 9 , 12 , 9] );
translate( [ 14 , 33.5 , -1] ) cube( [ 5, 9 , 9] );
} }}
module ventilation_holes()
{
difference () {
for ( i = [-5 : 8] ){
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+49.0,1.2]);
translate([46 + (i*5.5),10.5,-1]) cube([3.65,18,10]);
translate([46 + (i*5.5),10.5+25,-1]) cube([3.65,18,10]);
translate([46 + (i*5.5),10.5+50,-1]) cube([3.65,18,10]);
}
difference () {
translate( [ 13 , 35 , 0] ) cube( [ 71 , 39 , 2] );
translate( [ 14 , 40.5 , -0.1] ) cube( [ 63 , 29 , 2.2] );
}}
}
module cutouts(){
// extruder cable holder
translate([1.5,7,14.8]) rotate([0,45,0]) cube([3,40,5]);
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40,r = 5.5,$fn=30);
translate([-15,0,35]) cube([30,60,15]);
translate([-15,24,30]) cube([30,8,8]);
translate([-15,12,28]) cube([15,30,8]);
translate([-12,16.5,28]) cube([15,23,8]);
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.7,$fn=30);
// side
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
// Einsy M3 screws
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.9, $fn=30);
translate( [ 7.5 , 14 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 102.5 , 14 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 102.5 , 75 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 7.5 , 75 , 6 ] ) cylinder( h = 3, r1 = 1.9, r2=2.4, $fn=30);
translate( [ 2 , 0 , 0 ] )ventilation_holes();
// frame mounting screws
//upper
translate( [ 18.5, -2 , 15.6 ] ) rotate([0,45,0]) cube( [ 15 , 10 , 10] );
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
translate( [ 16.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
translate( [ 15.15 , -2 , 5 ] ) cube( [ 2.7 , 15 , 10] );
translate( [ 15.1 , -2 , 7 ] ) rotate([0,5,0]) cube( [ 2.8 , 15 , 10] );
translate( [ 15.1 , -2 , 7 ] ) rotate([0,-5,0]) cube( [ 2.8 , 15 , 10] );
//lower
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
translate( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
translate( [ 118.5 , -2 , 6 ] ) rotate([0,-45,0]) cube( [ 5 , 15 , 15] );
translate( [ 94.5 , -2 , 8.5 ] ) rotate([0,45,0]) cube( [ 5 , 8 , 15] );
translate( [ 0 , -2 , -5 ] ) cube( [ 120 , 15 , 5] );
translate( [ 109.15 , -2 , 5 ] ) cube( [ 2.7 , 15 , 10] );
translate( [ 109.3 , -2 , 6.5 ] ) rotate([0,5,0]) cube( [ 2.5 , 15 , 10] );
translate( [ 109.2 , -2 , 6.5 ] ) rotate([0,-5,0]) cube( [ 2.5 , 15 , 10] );
// USB connector hole
translate( [ -1 , 41.5 , 11 ] ) cube( [ 5.5 , 13 , 11 ] );
// reset button
translate( [ -2 , 65 , 14 ] ) rotate([0,90,0]) cylinder( h = 10, r = 2, $fn=30);
// door closing screw
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.9, $fn=30);
// nut traps HEX
translate( [ 7.5 , 14 , -1 ] ){
cylinder( h = 4, r = 3.2, $fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
translate( [ 102.5 , 14 , -1 ] ){
cylinder( h = 4, r = 3.2, $fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
translate( [ 102.5 , 75 , -1 ] ){
cylinder( h = 4, r = 3.2, $fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
translate( [ 7.5 , 75 , -1 ] ){
cylinder( h = 4, r = 3.2, $fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4, r = 3.5, $fn=6);
}
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 6, r2=3.2, $fn=6);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 6, r2=3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 6, r2=3.2, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 6, r2=3.2, $fn=6);
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=30);
// door closing corners
translate( [ 8 , 80 , 28 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 10] );
translate( [ 106 , 81 , 4 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 40] );
// inner edges cutout
translate( [ 54 , 79.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
//translate( [ 70 , 82.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] );
translate( [ 6 , 80 , 7 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 24] );
translate( [ 5.5 , 4 , 7 ] ) rotate([0,0,45]) cube( [ 3 , 5 , 29] );
// x axis cable hole
translate( [ 89 , 2 , -1 ] ) cylinder( h = 10, r = 4, $fn=6);
translate( [ 80 , -5 , -1 ] ) cube( [ 15, 5, 10] );
// large corner coutout
translate( [ -27 , 80 , -54 ] ) rotate([50,0,45]) cube( [ 50, 50, 50] );
translate( [ 137.5 , 60 , -10 ] ) rotate([0,0,45]) cube( [ 50, 50, 50] );
// screw body edge
translate( [ 65 ,74.2 , 2] ) rotate([0,0,45]) cube( [ 10 , 10 , 50 ] );
}
module raspberry()
{
//raspberry pcb
translate( [ 11 , 42 , -1] ) cube( [ 2.1 , 26 , 9] );
translate( [ 81.9 , 42 , -1] ) cube( [ 2.1 , 5 , 9] );
translate( [ 81.9 ,63 , -1] ) cube( [ 2.1 , 5 , 9] );
difference() {
translate( [ 13 , 37.5 , -1] ) cube( [ 69 , 35 , 9] );
translate( [ 0 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 13 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 17.5 , 37.5 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 10 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 9.5 , 37.5 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 9.5 , 34.5 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 18 , 34 , -1] ) cube( [ 4, 8 , 9] );
}
translate( [ 0 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40);
translate( [ 17.5 , 34.5 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 13 , 34 , -1] ) cube( [ 5, 8 , 9] );
} }}
module rambo_cover()
{
difference(){
rambo_popout_cover ();
cutouts();
}
difference(){
main_body();
cutouts();
raspberry();
// main hole
translate( [ -10 , 28 , 26 ] ) rotate([0,90,0]) cylinder( h = 24, r = 6.8, $fn=30);
// cable opening slot
translate( [ -15 , 25 , 30 ] ) cube( [ 30 , 6 , 10 ] );
}
}
difference()
{
union()
{
rambo_cover();
// extruder cable holder
difference(){
translate([0,0,15]) cube([5,40,20]);
translate([1.5,3,14.8]) rotate([0,45,0]) cube([3,40,5]);
}
translate([5,28,28]) rotate([0,90,0]) cylinder(h=5,r1=10,r2=8,$fn=30);
difference()
{
translate([-1.93,0,28.07]) rotate([0,45,0]) cube([9.8,25,9.8]);
translate([-5,-5,15]) cube([5,40,20]);
translate([10,-5,15]) cube([5,40,20]);
// screwdriver hole
translate( [ 7.5 , 14 , 15 ] ) cylinder( h = 25, r = 2, $fn=30);
translate( [ 7.5 , 12 , 15 ] ) cube( [ 8 , 4 , 25] );
}
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30);
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5,$fn=30);
difference()
{
translate([-5.5,23.5,16]) rotate([0,45,0]) cube([8,9,8]);
translate([1,0,10]) cube([5,40,20]);
}
// heatbed cable mounting reinforcement
translate([63,86.0,0.5]) cube([15,5,34.5]);
translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30);
translate([75,99,28]) rotate([90,0,0]) cylinder(h=9,r=13,$fn=30);
translate([75,101,28]) rotate([90,0,0]) cylinder(h=2,r1=9,r2=13,$fn=30);
difference(){
translate([70.3,88.5,12.7]) rotate([-45,0,0]) cube([9.5,5,10]);
translate([70.4,85.5,10]) cube([9.5,5,9]);
}
}
// extruder cable holder
translate([1.5,7.1,14.8]) rotate([0,45,0]) cube([3,40,5]);
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40,r = 5.5,$fn=30);
translate([-15,7,35]) cube([30,40,15]);
translate([-15,23.5,30]) cube([30,9,8]);
translate([-15,12,28]) cube([15,30,8]);
translate([-12,16.5,28]) cube([15,23,8]);
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.8,$fn=30);
//screw holes
translate([-2.7,19.5,20]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30);
translate([-2.7,36.5,20]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30);
// nuts with supports
translate([-5.7,19.5,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,0]) cube([12,5.7,2.7], center =true) ;
translate([-8.6,-5,0.35]) cube([10,15,0.75]);
translate([4.6,-5,0.35]) cube([4,15,0.75]);
translate([-2.6,-5.6,0.65]) cube([15,4,0.35]);
translate([-2.6,1.6,0.65]) cube([15,4,0.35]);
}
translate([-5.7,36.5,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,0]) cube([12,5.7,2.7], center =true) ;
translate([-8.6,-5,0.35]) cube([10,15,0.75]);
translate([4.6,-5,0.35]) cube([4,15,0.75]);
translate([-2.6,-5.6,0.65]) cube([15,4,0.35]);
translate([-2.6,1.6,0.65]) cube([15,4,0.35]);
}
translate([-2.7,36,12]) rotate([0,0,90]) cube([3,40,5]);
// new heatbed cable holder
translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=3.3,$fn=30);
// nuts with supports
translate([67,90.8 -4,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,90]) cube([10,5.7,2.7], center =true) ;
translate([-5.6,-5,0.65]) cube([4,15,0.5]);
translate([1.6,-5,0.65]) cube([4,15,0.5]);
translate([-5.6,-3.6,0.35]) cube([15,4,0.75]);
translate([-5.6,3.6,0.35]) cube([15,4,0.75]);
}
translate([83,98,24.5]) difference (){
translate([0,0,-0.25]) rotate([0,0,90]) cube([10,5.7,2.7], center =true) ;
translate([-5.6,-5,0.65]) cube([4,15,0.5]);
translate([1.6,-5,0.65]) cube([4,15,0.5]);
translate([-5.6,-7.6,0.35]) cube([15,4,0.75]);
translate([-5.6,-0.4,0.35]) cube([15,4,0.75]);
}
translate([67,88.8,20]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([83,96,20]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([60,92,28]) rotate([0,0,0]) cube([30,13,14]);
translate([60,80,35]) rotate([0,0,0]) cube([30,13,14]);
translate([72.5,80,30])rotate([0,0,0]) cube([5,13,14]);
translate([62.5,82,28]) rotate([0,0,0]) cube([25,20,14]);
translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.9, $fn=30);
translate( [ -16.2 , 28, 29 ] ) rotate([45,0,0]) cube( [ 40 , 12 , 12 ] );
//BottomCubic();
translate( [ 14.5, 10, -2 ] ) cube( [ 4 , 23 , 10 ] );
translate( [ 16.5, 10, -2 ] ) cylinder( h = 20, r = 2, $fn=30);
translate( [ 16.5, 33, -2 ] ) cylinder( h = 20, r = 2, $fn=30);
// lightening slots
translate( [ 100 ,21 , 2] ) cube( [ 5 , 48 , 5 ] );
translate( [ 3 ,21 , 2] ) cube( [ 4.5, 48 , 5 ] );
// bottom holes print supports
translate( [ 7.5 , 14 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 102.5 , 14 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 102.5 , 75 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 7.5 , 75 ,0] ){
translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true);
translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true);
}
translate( [ 58.5 , 88 ,0] ){
intersection(){cylinder(r=3.2, h=10, $fn=30);
translate( [ 0 , 0 , 2.5 ] ) cube([3.8,8,2], center=true);}
translate( [ 0 , 0 , 3 ] ) cube([3.8,3.8,2], center=true);
}
translate([21,81,-5]) cylinder( h = 24, r = 0.8, $fn=30);
translate([21+58,81,-5]) cylinder( h = 24, r = 0.8, $fn=30);
translate([115,68,1.5]) rotate([0,0,90]) linear_extrude(height = 0.8)
{ text("R3",font = "helvetica:style=Bold", size=6, center=true); }
}
module heatbed_cable_clip()
{
difference()
{
union()
{
difference()
{
union()
{
// body base
translate([75,99,28]) rotate([90,0,0]) cylinder( h = 15, r = 13, $fn=30);
translate([75,101,28]) rotate([90,0,0]) cylinder( h = 2, r1=9,r2 = 13, $fn=30);
}
// cut flat and shape
translate([60,82,14]) cube([30,20,14]);
translate([60,72,20]) cube([30,20,30]);
}
difference() {
translate([62.75,84,28]) cube([24.5,8,7]);
difference () {
translate([75,85,28]) rotate([90,0,0]) cube([30,20,10], center = true);
translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30);
}
}}
// cable opening
translate([61,102,28]) rotate([35,90,0])
difference (){
cylinder(h=35,r=4,$fn=30);
translate([0,0,3]) cylinder(h=5,r=4,$fn=30);
translate([0,0,12]) cylinder(h=1,r=4,$fn=30);
translate([0,0,16]) cylinder(h=1,r=4,$fn=30);
translate([0,0,20]) cylinder(h=1,r=4,$fn=30);
}
translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=3,$fn=30);
// screw heads
translate([67,88.8,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
translate([83,96,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
// screws
translate([67,88.8,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
translate([83,96,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
// grips
}
}
//translate([0,0,0]) heatbed_cable_clip();
module extruder_cable_clip()
{
difference(){
difference()
{
union()
{
// body shape
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30);
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5, $fn=30);
translate([0,16.6,28]) cube([2.9,22.8,7]);
}
// bottom cut and shape
translate([-15,7,13]) cube([30,40,15]);
translate([-20,28,28]) rotate([0,90,0]) cylinder(h=40,r=6, $fn=30);
// screws
translate([-2.7,19.5,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50);
translate([-2.7,36.5,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50);
translate([-2.7,36.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
translate([-2.7,19.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
// screw heads opening
translate([-2.7,16.4,35]) cube([10,6.2,15]);
translate([-2.7,33.4,35]) cube([10,6.2,15]);
}
difference()
{
// cable grip
translate([-8,28,28]) rotate([0,90,0]) cylinder( h = 10, r = 6, $fn=30);
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40, r = 5.5, $fn=30);
translate([-15,7,13]) cube([30,40,15]);
translate([-6,7,13]) cube([2,40,25]);
translate([-2,7,13]) cube([2,40,25]);
}
//nylon hole
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.8,$fn=30);}
}
//translate([0,0,0]) extruder_cable_clip();
module raspberry_cover () {
//holders
difference() {
union () {
translate( [ 11.5 , 42.5 , 0] ) cube( [ 2 , 4 , 3.5] );
translate( [ 11.5 ,63.5 , 0] ) cube( [ 2 , 4 , 3.5] );
translate( [ 81.5 , 42.5 , 0] ) cube( [ 2 , 4 , 2.5] );
translate( [ 81.5 ,63.5 , 0] ) cube( [ 2 , 4 , 2.5] );
translate( [ 10.4 , 42.5 , 2.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );
translate( [ 10.4 ,63.5 , 2.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );
translate( [ 81.7 , 42.5 , 1.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );
translate( [ 81.7 ,63.5 , 1.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );}
translate( [ 10.5 , 42 , 3.5] ) cube( [ 4 , 5 , 3.5] );
translate( [ 10.5 ,63 , 3.5] ) cube( [ 4 , 5 , 3.5] );
translate( [ 81.5 , 42 , 2.5] ) cube( [ 4 , 5 , 2.5] );
translate( [ 81.5 ,63 , 2.5] ) cube( [ 4 , 5 , 2.5] );
}
//body
difference() {
translate( [ 11.5 , 36 , -3] ) cube( [ 72 , 38 , 3] );
translate( [ -0.4 , -0.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 11.9 , 42 , -4] ) cube( [ 14 , 8 , 4] );
translate( [ 17.5 , 36.4 , -4] ) cube( [ 8, 6 , 4] );
}
translate( [ 60.4 , -0.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 9.1 , 42 , -4] ) cube( [ 14 , 8 , 4] );
translate( [ 9.5 , 36.4 , -4] ) cube( [ 8, 6 , 4] );
}
translate( [ 60.4 , 26.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 8.5 , 33.6 , -4] ) cube( [ 9 , 14 , 4] );
translate( [ 17.1 , 34 , -4] ) cube( [ 6, 8 , 4] );
}
translate( [ -0.4 , 26.4 , 0] ) difference()
{
translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40);
translate( [ 17.5 , 33.6 , -4] ) cube( [ 9 , 14 , 4] );
translate( [ 11.9 , 33.4 , -4] ) cube( [ 6, 9 , 4] );
}
// ventilation cutout
for ( i = [-5 : 6] ){
translate([43 + (i*5.5),42.3,-5]) cube([3.65,25.2,10]);
}
//raspberry pcb cutout
translate ([0,0,-2]) difference() {
translate( [ 13.5 , 38 , 0] ) cube( [ 68 , 34 , 9] );
translate( [ 0 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 13.5 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 17.5 , 38 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 0 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 9.5 , 42 , -1] ) cube( [ 12 , 8 , 9] );
translate( [ 9.5 , 38 , -1] ) cube( [ 8, 5 , 9] );
}
translate( [ 60 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 9.5 , 34 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 17.5 , 34 , -1] ) cube( [ 4, 8 , 9] );
}
translate( [ 0 , 26 , 0] ) difference()
{
translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40);
translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40);
translate( [ 17.5 , 34 , -1] ) cube( [ 8 , 12 , 9] );
translate( [ 13.5 , 34 , -1] ) cube( [ 5, 8 , 9] );
} }
}
}

View File

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

View File

@ -1,47 +0,0 @@
// PRUSA iteration4
// Einsy cover hinges
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module upper_hinge()
{
difference()
{
union(){
// body
cylinder( h = 26, r = 2.4, $fn=30);
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
translate( [ -5 , -10.7 , 0 ] ) cube( [ 7 , 10.7 , 21 ] );
}
// M3 screw hole
translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
translate( [ -1.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
// angle cut
translate([-2.9,-20,-1]) rotate([0,0,60]) cube([25,5,26]);
}
}
module lower_hinge()
{
difference()
{
union(){
// body
translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30);
translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30);
translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 10.7 , 10 ] );
}
// M3 screw
translate( [ -0.5 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
// angle cut
translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]);
}
}
upper_hinge();
lower_hinge();

View File

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

View File

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

View File

@ -1,201 +0,0 @@
// PRUSA iteration4
// LCD cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module main_body()
{
difference()
{
union()
{
// main body
translate( [ -77 , -4.5 , 0 ] ) cube( [ 155 , 59.8 , 2 ] );
translate( [ -77 , -4.5 , 0 ] ) rotate([35,0,0]) cube( [ 155 , 3 , 20.08 ] );
translate( [ -77 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] );
translate( [ 71 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] );
translate( [ -77 , -15.2 , 14.2 ] ) cube( [ 155 , 3.1 , 11.8 ] );
translate( [ -77 , 54 , 0 ] ) cube( [ 155 , 2 , 17 ] );
// M3 hole body
translate( [ 73.5 , 43.3 , 0.5 ] ) rotate([0,0,90]) cylinder( h = 14, r = 4, $fn=6);
translate( [ -72.5 , 43.5 , 0.5 ] ) rotate([0,0,90]) cylinder( h = 14, r = 4, $fn=6);
}
// LCD window
translate( [ -61.5 , 1 , 1.2 ] ) cube( [ 98.5 , 42 , 10 ] );
translate( [ -52.5 , 8 , -1 ] ) cube( [ 80 , 30.5 , 10 ] );
for(buzz = [55 : 2 : 67])
{
translate([buzz,1.5,-1]) cube([1.3,4,10]);
translate([buzz-0.75,1.5,-0.5]) rotate([0,45,0]) cube([2,4,2]);
if(buzz<67) translate([buzz+1.25,1.5,-0.5]) rotate([0,45,0]) cube([2,4,2]);
}
// knob hole
translate( [ 62.5 , 21 , -1 ] ) cylinder( h = 10, r = 6, $fn=30);
translate( [ 62.5 , 21 , -1.2 ] ) cylinder( h = 2, r1 = 7, r2 = 6, $fn=30);
// reset button cutout
translate( [ 44 , 26 , -1 ] ) cube( [ 1 , 6 , 9 ] );
translate( [ 48 , 26 , -1 ] ) cube( [ 1 , 2.5 , 9 ] );
translate( [ 68.5 , 36 , -1 ] ) cube( [ 1 , 8 , 9 ] );
translate( [ 56 , 43 , -1 ] ) cube( [ 13.5 , 1 , 9 ] );
translate( [ 50.5 , 30 , -1 ] ) cube( [ 13 , 1 , 9 ] );
translate( [ 44.7 , 31.28 , -1 ] ) rotate([0,0,45]) cube( [ 17 , 1 , 9 ] );
translate( [ 63.5 , 30 , -1 ] ) rotate([0,0,45]) cube( [ 8.5 , 1 , 9 ] );
translate( [ 48.7 , 27.8 , -1 ] ) rotate([0,0,45]) cube( [ 3.55 , 1 , 9 ] );
// rear support cutout
translate( [ -64.5 , -12.1 , 14 ] ) cube( [ 10 , 3 , 16 ] );
translate( [ 55.5 , -12.1 , 14 ] ) cube( [ 10 , 3 , 16 ] );
}
difference()
{
translate([-70,55.5,-2]) rotate([55,0,0]) cube([120,5,5]);
translate([-100,40,-9.5]) cube([200,50,10]);
}
}
module pcb_clip()
{
difference()
{
union()
{
translate( [ -3 , -12 , 17.5 ] ) cube( [ 7 , 4 , 5 ] );
translate( [ -3 , -10.6 , 12.5 ] ) cube( [ 1 , 2.6 , 7 ] );
translate( [ 3 , -10.6 , 12.5 ] ) cube( [ 1 , 2.6 , 7 ] );
}
translate( [ -4 , -8 , 18.5 ] ) rotate([30,0,0]) cube( [ 10 , 6 , 6 ] );
translate( [ 2.5 , -12 , 14.5 ] ) cube( [ 1 , 4 , 0.2 ] );
translate( [ -2.5 , -12 , 14.5 ] ) cube( [ 1 , 4 , 0.2 ] );
translate( [ 2.5 , -12 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] );
translate( [ -2.5 , -12 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] );
}
}
difference()
{
union()
{
pcb_clip();
main_body();
// reset button
translate( [ 62.5 , 37.3 , 0 ] ) cylinder( h = 7.2, r = 3.5, $fn=30);
//left side
translate( [ -77 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] );
translate( [ -76.5 , -15 , 0 ] ) cube( [ 4 , 70 , 14.6 ] );
//right side
translate( [ 76.5 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] );
translate( [ 73.5 , -14 , 0 ] ) cube( [ 4 , 70 , 14.5 ] );
//rear side reinforcement
translate( [ -54.5 , -11.7 , 8 ] ) cube( [ 110 , 4 , 6.5 ] );
translate( [ 65.5 , -11.7 , 8 ] ) cube( [ 12 , 4 , 6.5 ] );
translate( [ 65.5 , -13 , 14 ] ) cube( [ 12 , 2 , 12 ] );
translate( [ -76.5 , -11.7 , 8 ] ) cube( [ 12 , 4 , 6.5 ] );
translate( [ -76.5 , -14.7 , 14.5 ] ) cube( [ 12 , 4 , 11.5 ] );
translate( [ -44 , -14.7 , 14.5 ] ) cube( [ 89 , 4 , 11.5 ] );
translate( [ -43.5 , -10.7 , 15 ] ) rotate([90,0,0]) cylinder( h = 2, r = 11, $fn=60);
translate( [ 44.5 , -10.7 , 15 ] ) rotate([90,0,0]) cylinder( h = 2, r = 11, $fn=60);
//front left side reinforcement
difference()
{
union()
{
translate( [ -77 , 41.3 , 0 ] ) cube( [ 15 , 14 , 25 ] );
translate( [ -77 , 46.3 , 14 ] ) cube( [ 15 , 9 , 3 ] );
}
translate( [ -64.5 , 40 , -3 ] ) cube( [ 4 , 8 , 40 ] );
translate( [ -75.5 , 40.3 , 14.5 ] ) cube( [15 , 6.5 , 25 ] );
}
//front right side reinforcement
difference()
{
translate( [ 38 , 41.2 , 0 ] ) cube( [ 40 , 14 , 26 ] );
translate( [ 55 , 44.5 , 0 ] ) cube( [ 10.5 , 3.7 , 30 ] );
translate( [ 44 , 39.5 , 0 ] ) cube( [ 25.5 , 5 , 30 ] );
translate( [ 35 , 39.3 , 14.5 ] ) cube( [ 42.5 , 7 , 15 ] );
translate( [ 49 , 43.2 , 25 ] ) rotate([0,60,0]) cube( [ 12 , 5 , 10 ] );
}
}
// SD card opening
translate( [ -80 , 9 , 16.5 ] ) cube( [ 10 , 28 , 4.5 ] );
// front and rear angle
translate( [ -81 , -10.5 , -17 ] ) rotate([32,0,0]) cube( [ 164 , 14 , 54.08 ] );
translate( [ -78 , 72.7 , -3 ] ) rotate([45,0,0]) cube( [ 160 , 14 , 54.08 ] );
// M3 screw thread
translate( [ 72.5 , 43.2 , 3 ] ) cylinder( h = 20, r = 1.4, $fn=30);
translate( [ -72.5 , 42.7 , 3 ] ) cylinder( h = 20, r = 1.4, $fn=30);
translate( [ 72.5 , 43.2 , 11.7 ] ) cylinder( h = 3, r1 = 1.4, r2=2.2, $fn=30);
translate( [ -72.5 , 42.7 , 11.7 ] ) cylinder( h = 3, r = 1.4, r2=2.2, $fn=30);
// ORIGINAL PRUSA text
translate([-67,51,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
{ text("ORIGINAL",font = "helvetica:style=Bold", size=7, center=true); }
translate([-18,51,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
{ text("PRUSA",font = "helvetica:style=Bold", size=11, center=true); }
translate( [ -66 , 40.5 , -0.4 ] ) cube( [ 45 , 1.6 , 1 ] );
translate( [ -66 , 41.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
translate( [ -21 , 41.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
// front cleanup
translate( [ -100 , -64.6 , 0 ] ) cube( [ 200 , 50 , 50 ] );
// X sign on reset button
translate( [ 63 , 34 , -1 ] ) rotate([0,0,45]) cube( [ 2, 8, 2 ] );
translate( [ 57.5 , 35.5 , -1 ] ) rotate([0,0,-45]) cube( [ 2, 8, 2 ] );
// corners
translate([74.05,-5,-2.7]) rotate([0,35,0]) cube([7,80,7]);
translate([-82.8,-5,-1]) rotate([0,55,0]) cube([7,80,7]);
translate( [ -82 , 58.5 , -5 ] ) rotate([55,0,0]) cube( [ 200, 7, 7 ] );
translate( [ -77 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] );
translate( [ 78 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] );
translate( [ 78 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
translate( [ -77 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
// LCD corners
translate( [ -52.5 , 9.5 , -5.2 ] ) rotate([45,0,0]) cube( [ 80 , 5 , 5 ] ); // LCD window
translate( [ -52.5 , 37 , -5.2 ] ) rotate([45,0,0]) cube( [ 80 , 5 , 5 ] ); // LCD window
rotate([32,0,0]) translate( [ -78 , -9.1 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] );
rotate([32,0,0]) translate( [ 79 , -9.1 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] );
translate( [ -100 , -40 , -50 ] ) cube( [ 200 , 50 , 50 ] );
// version
translate([-73,15,4]) rotate([90,0,90]) linear_extrude(height = 2)
{ text("R7",font = "helvetica:style=Bold", size=7, center=true); }
}
// SD card window support
translate( [ -76.5 , 15 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] );
translate( [ -76.5 , 25 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] );

View File

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

View File

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

View File

@ -1,102 +0,0 @@
// PRUSA iteration4
// Heatbed cable cover clip MK3S
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module m3_nut()
{
difference()
{
union()
{
cylinder( h = 4, r = 3.15, $fn=6);
translate([0,0,2.5]) cylinder( h = 4, r1 = 3.15, r2=4,$fn=6);
translate([0,0,-9]) cylinder( h = 12, r = 1.7, $fn=30);
translate([0,0,-0.49]) cylinder( h = 0.5, r1 = 1.7, r2=1.95,$fn=30);
}
translate([1.7,-5,-1]) cube([5,10,2]);
translate([-6.7,-5,-1]) cube([5,10,2]);
translate([-5,1.7,-1.5]) cube([10,5,2]);
translate([-5,-6.7,-1.5]) cube([10,5,2]);
}
}
module clip()
{
difference()
{
// base body
translate([-15,15.5,-3]) cube([30,20.5,6]);
// inner angled cut
translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]);
translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]);
translate([3.5,15,0]) rotate([0,0,0]) cube([7,8,6]);
translate([-10.5,15,0]) rotate([0,0,0]) cube([7,8,6]);
translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]);
translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60);
translate([-7,15,0]) rotate([0,0,0]) cube([14,11,6]);
translate([3,14,1]) rotate([0,0,10]) cube([7,13,6]);
translate([-9.88,15.21,1]) rotate([0,0,-10]) cube([7,13,6]);
// cables cut
translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 187, r=4, $fn=60);
translate([-11,30,0]) rotate([0,180,30]) m3_nut();
translate([11,30,0]) rotate([0,180,30]) m3_nut();
// thermistor cable entry
translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3, $fn=60);
// edges
translate([-18.0,32,-5]) rotate([0,0,25]) cube([11,11,15]);
translate([18,32,-5]) rotate([0,0,65]) cube([11,11,15]);
}
// cable rims
difference()
{
difference()
{
translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 10, r=4.5, $fn=60);
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3, $fn=60);
}
translate([-15,18,3]) cube([30,20,6]);
translate([-15,27,-5]) cube([30,2,16]);
translate([-15,30,-5]) cube([30,2,16]);
translate([-15,33,-5]) cube([30,2,16]);
translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]);
translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]);
translate([-4,20,0]) rotate([0,0,0]) cube([8,11,6]);
}
}
clip();

View File

@ -1,137 +0,0 @@
// PRUSA iteration4
// Heatbed cable cover MK3S
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module m3_nut()
{
difference()
{
union()
{
cylinder( h = 4, r = 3.15, $fn=6);
translate([0,0,2.5]) cylinder( h = 4, r1 = 3.15, r2=4,$fn=6);
translate([0,0,-9]) cylinder( h = 12, r = 1.7, $fn=30);
translate([0,0,-0.49]) cylinder( h = 0.5, r1 = 1.7, r2=1.95,$fn=30);
}
translate([1.7,-5,-1]) cube([5,10,2]);
translate([-6.7,-5,-1]) cube([5,10,2]);
translate([-5,1.7,-1.5]) cube([10,5,2]);
translate([-5,-6.7,-1.5]) cube([10,5,2]);
}
}
module m3_head()
{
// heatbed screw
difference()
{
translate([0,0,5]) cylinder(h=4,r=3.15, $fn=50);
translate([-11.7,-7.5,0.8]) cube([10,40,5.7]);
translate([1.7,-7.5,0.8]) cube([10,40,5.7]);
translate([-5,-4.2-7.5,0.8]) cube([10,10,6]);
translate([-5,9.2-7.5,0.8]) cube([10,10,6]);
translate([-2,-7.5,0.4]) cube([10,40,5.7]);
}
translate([0,0,-1]) cylinder(h = 10, r=1.7, $fn=50);
translate([0,0,8.2]) cylinder(h = 2, r1=3.15, r2=4, $fn=50);
}
module cover()
{
difference()
{
// base block
translate([-18,0,0]) cube([36,36,9]);
// inner cut
difference()
{
translate([-15,-0.5,-3]) cube([30,16,9]);
translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 2.2, r=2.75, $fn=50);
}
translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=3.3, $fn=60);
translate([-15,15,-6]) cube([30,22,9]);
// inner edges
translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]);
translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]);
translate([2.5,15,0]) rotate([0,0,0]) cube([8,8,6]);
translate([-10.5,15,0]) rotate([0,0,0]) cube([8,8,6]);
translate([6.96,19.45,0]) rotate([0,0,45]) cube([5,10,6]);
translate([-6.96,19.45,0]) rotate([0,0,45]) cube([10,5,6]);
translate([3.96,18.45,0]) rotate([0,0,20]) cube([5,6,6]);
translate([-3.96,18.45,0]) rotate([0,0,70]) cube([6,5,6]);
translate([-0,20,0.5]) rotate([90,0,0]) cube([11,11,11], center = true);
translate([2,14,-1]) rotate([0,0,10]) cube([8,13,6]);
translate([-9.88,15.21,-1]) rotate([0,0,-10]) cube([8,13,6]);
// outer edges
translate([-18.0,32,-1]) rotate([0,0,25]) cube([11,11,11]);
translate([18,32,-1]) rotate([0,0,65]) cube([11,11,11]);
// heatbed terminal screw pockets
translate([8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50);
translate([-8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50);
// clip nuts with print supports
translate([11,30,0] ) m3_head();
translate([-11,30,0] ) m3_head();
// hold screw
translate([0,7.5,0]) m3_head();
// LED window
translate([-2.5,-1,-4]) cube([5,3.5,10]);
translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]);
// edges
translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]);
translate([-23.3,-1,9.7]) rotate([0,45,0]) cube([6,45,6]);
translate([14.8,-1,9.7]) rotate([0,45,0]) cube([6,45,5]);
}
// heatbed pcb support
translate([-17,0,4]) cube([3,20,2]);
translate([14,0,4]) cube([3,20,2]);
translate([-17,0,4]) cube([14,2,2]);
translate([3,0,4]) cube([14,2,2]);
}
rotate([0,180,0]) cover();

View File

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

View File

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

View File

@ -1,178 +0,0 @@
// PRUSA iteration4
// X carriage back
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module m3head()
{
intersection()
{
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut
translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true);
}
translate([30,5,17-4]) cube([3.4,3.4,1], center=true);
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut
}
module x_carriage_back()
{
difference()
{
union()
{
// base block
translate([-16,-40.0,15.1]) cube([33,73,8]);
translate([-25.5,4,15.1]) cube([52,30.5,8]);
}
// lower bearing cut
translate([-17,-22,7.5]) cube([35,4,10]);
// cables opening
translate([-4.5,-18,15]) cube([10,4,10]);
translate([0.5,-18,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 );
translate([0.5,-14,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 );
translate([-20,-19.5,9]) cube([50,7.5,10]);
// bearings
translate([-15,-25,11.75]) rotate([0,90,0]) cylinder( h=31, r=7.6, $fn=150 );
translate([-30,20,11.75]) rotate([0,90,0]) cylinder( h=60, r=7.6, $fn=150 );
translate([-17,-25,11.75]) rotate([0,90,0]) cylinder( h=60, r=7, $fn=30 );
translate([-32,20,11.75]) rotate([0,90,0]) cylinder( h=80, r=7, $fn=30 );
translate([-15,-25-2,18]) cube([30,4,2]);
translate([-30,20-2,18]) cube([60,4,2]);
// hold together screws
translate([-5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([1,4,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([13,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([-10.5,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 );
translate([13,31,19]) cylinder( h=50, r=3.1, $fn=30 );
translate([-10.5,31,19]) cylinder( h=50, r=3.1, $fn=30 );
// lower screw heads
translate([-5,-36,19]) cylinder( h=6, r=3.1, $fn=30 );
translate([-8.1,-46,18]) cube([6.2,10,10]);
// center screw head
translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 );
// heat cables cut
translate([10.15,-37,4]) rotate([0,-20,0])
union()
{
cylinder(r=3, h=40, $fn=30);
translate([-3,-10,0])cube([6,10,40]);
}
translate([5.85,-37,4]) rotate([0,-10,0])
union()
{
cylinder(r=3, h=40, $fn=30);
translate([-3,-10,0])cube([6,10,40]);
}
// cable holder screw
translate([0.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 );
translate([0.5,-27,16.75]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 );
// x-carriage screws in belt holders
translate([-11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 );
difference()
{
union()
{
translate([28,-4,10]) rotate([0,0,90]) cube([10,22,15]);
translate([-4,-4,10]) rotate([0,0,90]) cube([10,22,15]);
}
difference()
{
translate([-14,-4,30]) rotate([0,45,0]) cube([22,22,22]);
union()
{
translate([9,-4,15]) cube([22,22,22]);
translate([-28,-4,15]) cube([22,22,22]);
}
}
}
translate([9,0,16]) rotate([45,0,0]) cube([50,10,10]);
translate([-36,0,16]) rotate([45,0,0]) cube([30,10,10]);
// nice edges
translate([-20.8,-47.1,10]) rotate([0,0,45]) cube([10,10,15]);
translate([21.8,-47.1,10]) rotate([0,0,45]) cube([10,10,15]);
translate([-24.4,15.2,10]) rotate([0,0,45]) cube([14,10,15]);
translate([26.9,15.2,10]) rotate([0,0,45]) cube([10,14,15]);
translate([-19.55,28,10]) rotate([0,0,45]) cube([10,10,15]);
translate([22.05,28,10]) rotate([0,0,45]) cube([10,10,15]);
translate([-22,35,21]) rotate([30,0,0]) cube([44,10,10]);
translate([-22,35,17]) rotate([30,0,0]) cube([14.5,10,10]);
translate([10,35,17]) rotate([30,0,0]) cube([14.5,10,10]);
translate([-20.8,-40.5,16]) rotate([50,0,0]) cube([50,20,10]);
// upper side cuts
translate([17,25,10]) rotate([0,0,0]) cube([10,10,15]);
translate([-29.5,25,10]) rotate([0,0,0]) cube([15,15,15]);
translate([17,22,13]) rotate([0,0,0]) cube([10,10,5]);
translate([-24.5,22,13]) rotate([0,0,0]) cube([10,10,5]);
// side edges
translate([27,-20,16]) rotate([0,-30,0]) cube([10,50,10]);
translate([-34.2,-20,21]) rotate([0,30,0]) cube([10,50,10]);
translate([19.5,-50,16]) rotate([0,-30,0]) cube([10,50,10]);
translate([-27.1,-50,21]) rotate([0,30,0]) cube([10,50,10]);
// inner cable cleanup
translate([-1,-19.5,14]) rotate([0,30,0]) cube([10,7.5,10]);
translate([-5,-19.5,10]) rotate([0,-30,0]) cube([10,7.5,10]);
// upper ziptie left
translate([-21.5,-25,0])difference()
{
translate([1,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25);
}
translate([19.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]);
translate([-20.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]);
// upper ziptie right
translate([19,-25,0])difference()
{
translate([0.5,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25);
}
// supports
translate([-17,26,5]) m3head();
translate([-40.5,26,5]) m3head();
translate([-29,-1,4]) m3head();
translate([-35,-41,4]) m3head();
translate([-8.1,-40,17.5]) cube([6.2,4,5]);
translate([-8.1,-37.7,17.0]) cube([6.2,2,5]);
translate([-5,-36,11.51]) rotate([0,0,0]) cylinder( h=5, r=1.8, $fn=50 );
// selective infill
translate([5,-8,16]) cube([0.5,20,6.5]);
translate([-3.25,-8,16]) cube([0.5,20,6.5]);
translate([0.75,-8,16]) cube([0.5,7,6.5]);
// version
translate([-12,-29,22.6]) rotate([0,0,0]) linear_extrude(height = 0.6)
{ text("R7",font = "helvetica:style=Bold", size=4, center=true); }
}
}
rotate([0,180,0]) x_carriage_back();

View File

@ -1,462 +0,0 @@
// PRUSA iteration4
// X carriage
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <bearing.scad>
module belt_cut()
{
rotate([0,0,180])
{
translate([-20,0,0]) cube([39,0.75,15]);
translate([-20,0,5]) rotate([-7,0,0]) cube([39,0.75,10]);
translate([-20,0,5]) rotate([10,0,0]) cube([39,0.75,10]);
for (_step =[-20:2:18])
{
translate([_step,0.5,0]) cube([1,1.0,10]);
}
for (_step =[-20:2:18])
{
translate([_step,0.5,5]) rotate([-7,0,0]) cube([1,1,10]);
}
}
}
module x_carriage_base()
{
// Small bearing holder
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1);
// Long bearing holder
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2);
// Base plate
translate([-34,-14,0]) cube([34.5,70.5,7]);
translate([-34,-15,0]) cube([35,7,15]);
translate([-42.5,53.0,0]) cube([52,6.5,15]);
difference()
{
union()
{
translate([-12,30,1]) rotate([0,0,45]) cube([6,6,14]);
translate([-20,30,1]) rotate([0,0,45]) cube([6,6,14]);
}
translate([-25,38,11]) rotate([43,0,0]) cube([20,8,8]);
}
// upper motor screw block
translate([-34,56.8,0]) rotate([0,0,0]) cube([43.5,19.7,8]);
// Belt holder base
translate([-42.5,20,0]) cube([52,16,7]);
// new belt holder base block
translate([-42.5,18,7]) cube([52,16.3,8]);
}
module x_carriage_holes()
{
// Small bearing holder holes cutter
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip_smooth(1);
translate([-4,-2.5,4]) rotate([0,0,90]) cube([5,25,2]);
// Long bearing holder holes cutter
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip_smooth(2);
translate([8.5,45-2.5,4]) rotate([0,0,90]) cube([5,50,2]);
// upper ziptie right
translate([2,0,0])
difference()
{
translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8, h=3.5, $fn=25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=25);
}
// upper ziptie left
translate([-38,0,0])
difference()
{
translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8,h=3.5,$fn=25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=25);
}
// upper ziptie head
translate([0,52.5,12]) cube([10,10,5]);
translate([-45,52.5,12]) cube([13.5,10,5]);
// Extruder mounting holes
translate([-7,15.5,-1])cylinder(r=1.65, h=20, $fn=25);
translate([-27,15.5,-1])cylinder(r=1.65, h=20, $fn=25);
translate([-7,15.5,-1])cylinder(r2=1.65, r1=2.2,h=2, $fn=25);
translate([-27,15.5,-1])cylinder(r2=1.65, r1=2.2,h=2, $fn=25);
translate([-7,15.5,4])cylinder(r=3.1, h=4, $fn=6);
translate([-27,15.5,4])cylinder(r=3.1, h=4, $fn=6);
translate([-7,15.5,7])cylinder(r=4, h=30, $fn=6);
translate([-27,15.5,7])cylinder(r=3.5, h=30, $fn=6);
// Carriage slimer
translate([-55.5+3,19,-1])cube([10,40,30]);
translate([+12.5-3,19,-1])cube([10,40,30]);
translate([+12.5-3.5-2,35.8,-1])rotate([0,90-65,0])cube([10,55,30]);
translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]);
}
module x_carriage_fancy()
{
// Top right corner
translate([11.5,10.5,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,40,20]);
translate([12,65.3,-1]) rotate([0,0,45]) cube([10,10,20]);
translate([4.9,72.38,-1]) cube([10,10,20]);
// Top left corner
translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]);
translate([-35,93,5]) rotate([35,0,0]) translate([0,-15,0]) cube([55,15,15]);
translate([7.5,59.5,-18]) rotate([0,0,0]) cube([20,20,40]);
// bottom side edges
translate([-37,-12,-6]) rotate([40,0,0]) cube([50,8,25]);
translate([-35,-19.2,0]) rotate([0,0,45]) cube([6,6,16]);
translate([2,-20.4,0]) rotate([0,0,45]) cube([6,6,16]);
translate([2,55.9,12]) rotate([0,0,45]) cube([6,6,16]);
translate([-33.5,55.9,12]) rotate([0,0,45]) cube([6,6,16]);
}
module cable_tray()
{
// center screw block
translate([-21,23,0]) cube([9,12,15]);
difference()
{
union()
{
translate([-20.8,24.8,0]) rotate([0,0,20]) cube([3,10,15]);
translate([-15.5,25.8,0]) rotate([0,0,-20]) cube([3,10,15]);
}
translate([-25,34.2,0]) cube([20,10,15]);
}
translate([6.5,32,10]) cube([3,5,5]);
translate([-42.5,32,10]) cube([4,5,5]);
//Left cable tray
translate([-39.9,11,0]) cube([9,2,15]);
translate([-39.9,5.5,0]) cube([9,2,15]);
//Right cable tray
translate([-2,5.5,0]) cube([11.45,2,15]);
translate([-2,11,7]) cube([11.45,2,8]);
translate([-31,11.5,7]) cube([30,1.5,8]);
difference()
{
translate([0,11,0]) cube([9.50,22,7]);
translate([0,6,1])rotate([-30,0,0]) cube([7.5,12,7]);
translate([0,10+3,-1])cube([7.5,19,6]);
}
}
module final_cutout()
{
// cable guide edges
translate([-44,0,16]) rotate([0,45,0]) cube([5,15,5]);
translate([6,0,16]) rotate([0,45,0]) cube([5,15,5]);
// motor cable opening
difference()
{
union()
{
translate([0.5,10,-1]) cube([8,18,6]);
translate([0.5,28,0]) rotate([0,90,0]) cylinder(r=5, h=8, $fn=25);
translate([0.5,12,0.5]) rotate([45,0,0]) cube([8,4,6]);
}
translate([7.8,10,8]) rotate([0,85,0]) cube([15,25,10]);
}
// filament hole
difference ()
{
union()
{
translate([-14.199,9.05,0]) rotate([-5,0,22.5]) cylinder(r=1.62, h=40, $fn=8);
translate([-14.5,9.7,8]) rotate([-5,0,22.5]) cylinder(r=1.62,r2=3, h=8, $fn=8);
}
}
// bottom back mounting screws
translate([-22,-11,4]) cylinder(r=1.65, h=20, $fn=50);
difference()
{
union()
{
translate([-24.8,-14,10]) cube([5.6,7,2.1]);
}
translate([-36,-8.1,10]) cube([40,1,0.5]);
}
// better printing bridges
translate([-24.8,-12.65,10.35]) cube([5.6,3.3,2.1]);
translate([-23.65,-12.65,10.7]) cube([3.3,3.3,2.1]);
// x-carriage-back mounting screws
translate([-4,56,0]) cylinder(r=1.7, h=40, $fn=50);
translate([-27.5,56,0]) cylinder(r=1.7, h=40, $fn=50);
translate([-30.3,53,8]) cube([5.6,8,2]);
translate([-6.8,53,8]) cube([5.6,8,2]);
// better printing bridges
translate([-6.8,54.35,8.35]) cube([5.6,3.3,2]);
translate([-5.65,54.35,8.7]) cube([3.3,3.3,2]);
translate([-30.3,54.35,8.35]) cube([5.6,3.3,2]);
translate([-29.15,54.35,8.7]) cube([3.3,3.3,2]);
// center mounting screw
translate([-16,29,0]) cylinder(r=1.65, h=40, $fn=50);
translate([-18.8,26,10.5]) cube([5.6,12,2.1]);
translate([-21,33,11]) cube([10,8,6]);
// better printing bridges
translate([-18.8,27.35,10.9]) cube([5.6,3.3,2.1]);
translate([-17.65,27.35,11.25]) cube([3.3,3.3,2.1]);
// selective infill
translate([-23.7,57,5]) cube([15.9,0.7,9]);
translate([-23.7,54.5,5]) cube([15.9,0.7,9]);
difference()
{
union()
{
translate([-11,-12,1]) rotate([0,0,0]) cylinder(r=3, h=10, $fn=30);
translate([-11,-15,-0]) cube([3,6,10]);
}
translate([-8,-20,5]) rotate([0,-20,0]) cube([10,20,10]);
}
translate([0.5,-0,5])
difference()
{
rotate([0,-20,0])
union()
{
translate([-7,-12,-5]) rotate([0,0,0]) cylinder(r=3, h=30, $fn=30);
translate([-9,-12,-5]) rotate([0,0,0]) cylinder(r=3, h=30, $fn=30);
translate([-12,-18,-5]) cube([8,6,30]);
translate([-9,-15,-5]) cube([2,6,30]);
}
translate([-20,-20,-15]) cube([20,20,10]);
}
// 2.5 endstop hole
translate([-8,-11,11]) rotate([0,90,0]) cylinder(r=1.4, h=10, $fn=30);
translate([-0.5,-11,11]) rotate([0,90,0]) cylinder(r1=1.4, r2=1.7, h=2, $fn=30);
}
module x_carriage_block()
{
difference()
{
union()
{
difference()
{
x_carriage_base();
x_carriage_holes();
x_carriage_fancy();
}
cable_tray();
}
final_cutout();
}
}
module x_carriage()
{
difference()
{
x_carriage_block();
// upper motor screw
translate([2.5,67.5,-50]) cylinder(r=1.8, h=100, $fn=30);
translate([2.5,67.5,-0.1]) cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25);
translate([2.5,67.5,7.5]) cylinder(r=3.2, h=7, $fn=30);
translate([-28.5,67.5,7.5])cylinder(r=3.2, h=20, $fn=25);
translate([-28.5,67.5,-1])cylinder(r=1.65, h=20, $fn=25);
translate([-28.5,67.5,-1])cylinder(r2=1.65, r1=3, h=2, $fn=25);
translate([0.5,22.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=7.0, $fn=25);
// selective infill
translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]);
translate([5,-16.4,-1]) rotate([0,45,0]) cube([0.3,0.5,8]);
translate([5,-10.3,-1]) rotate([0,45,0]) cube([0.3,0.5,8]);
translate([6,-16.5,-1]) cube([1,0.5,5]);
translate([3,-16.5,-1]) cube([2,0.5,5]);
translate([6,-10.2,-1]) cube([1,0.5,5]);
translate([3,-10.2,-1]) cube([2,0.5,5]);
translate([-19,24,1.5]) cube([6,0.5,12.0]);
//cable openings in guides
translate([-40.8,7.5,0]) rotate([0,20,0]) cube([5,3.5,20]);
translate([-2.9,7.5,18]) rotate([0,80,0]) cube([20,3.55,5]);
// filament sensor connector
translate([-1.5,62,-1.3]) cube([1,5,5]);
translate([-3.5,65,-1.3]) cube([3,5,5]);
translate([-9,70.6,-1.3]) cube([9,15,15]);
translate([-8.5,68,-1.3]) cube([8,15,15]);
translate([-0.7,67.5,7.5]) cube([3.2,3.2,1]);
difference()
{
translate([-9,69,-1]) cube([8.5,6,7]);
translate([-9,77,2]) rotate([45,0,0]) cube([8.5,6,7]);
}
// filament sensor cable
difference()
{
translate([-1.5,30,-0.8]) cube([3.5,30,4.5]);
translate([0.5,34.46,-4]) cube([4,3,4.5]);
translate([2,34.46,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([2,34.46+3,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([0.5,54,-4]) cube([4,3,4.5]);
translate([2,54,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([2,57,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([-4.0,44,-4]) cube([4,3,4.5]);
translate([-1.5,44,-4]) cylinder(r=1.5, h=4.5, $fn=25);
translate([-1.5,47,-4]) cylinder(r=1.5, h=4.5, $fn=25);
}
translate([-1.05,58.25,-0.8]) rotate([0,0,30]) cube([3.5,13,4.5]);
translate([-9,66,-0.8]) cube([3.5,5,4.5]);
translate([-9,70.5,-0.8]) rotate([45,0,0]) cube([9,6,6]);
translate([0.45,30,-0.8]) cylinder(r=2, h=4.5, $fn=25);
translate([-3.5,68,3]) cylinder(r=2, h=6, $fn=25);
translate([-6.75,69,-0.8]) cube([4,10,10]);
// hold together screws clearance
translate([-4.5,25.5,-1]) cylinder(r1=2.2,r2=1.5, h=10, $fn=25);
translate([-28.5,25.5,-1]) cylinder(r1=2.2,r2=1.5, h=10, $fn=25);
translate([-4.5,25.5,-1]) cylinder(r2=2,r1=3,h=3, $fn=25);
translate([-28.5,25.5,-1]) cylinder(r2=2,r1=3,h=3, $fn=25);
translate([0,-0.5,0]) left_belt_cut();
translate([0,0.5,0]) right_belt_cut();
//version
translate([-12,-2,0.5]) rotate([0,180,0]) linear_extrude(height = 0.6)
{ text("R7",font = "helvetica:style=Bold", size=5, center=true); }
}
}
module left_belt_cut()
{
translate([-22.5,30.2,7]) cylinder(r=1.5, h=100, $fn=30);
translate([-23.0,20,7]) cube([2,10,30]);
translate([-56.5,28.5,7]) belt_cut();
translate([13.5,20.5,0]) rotate([0,0,25])
{
difference()
{
translate([-56.5,28.5,7]) belt_cut();
translate([-80,25,7]) cube([37.5,10,30]);
}
}
translate([13.2,2.38,0]) rotate([0,0,0])
{
difference()
{
translate([-56.5,28.5,7]) belt_cut();
translate([-82.42,25,7]) cube([37.5,10,30]);
}
}
translate([-45,18,4]) rotate([0,0,-13.5]) cube([10.5,3,32]);
translate([-31.5,30.4,10]) rotate([-10,0,15]) cylinder(r=0.2, h=100, $fn=30);
translate([-31.6,30.75,7]) rotate([0,0,0]) cylinder(r=0.2, h=100, $fn=30);
}
module right_belt_cut()
{
// right belt cut
translate([-9.6,29.7,7]) cylinder(r=1.5, h=100, $fn=30);
translate([-11.1,19.8,7]) cube([2,10,30]);
translate([22.5,25.5,7]) belt_cut();
translate([66.65,1.95,0]) rotate([0,0,0])
{
difference()
{
translate([-56.5,28.5,7]) belt_cut();
translate([-71.55,25,7]) cube([37.5,10,30]);
}
}
translate([43.2,-30.25,0]) rotate([0,0,-30])
{
difference()
{
translate([-56.5,28.5,7]) belt_cut();
translate([-82.1,25,7]) cube([10,10,30]);
translate([-61.5,25,7]) cube([20.5,10,30]);
}
}
translate([2,14.6,7]) rotate([0,0,15]) cube([10,3,30]);
translate([-5.1,30,10]) rotate([-10,0,-15]) cylinder(r=0.2, h=100, $fn=30);
translate([-5,30.3,7]) rotate([0,0,0]) cylinder(r=0.2, h=100, $fn=30);
}
x_carriage();

View File

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

View File

@ -1,193 +0,0 @@
// PRUSA iteration4
// X end motor
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <x-end.scad>
module x_end_motor_base()
{
x_end_base();
translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true);
}
module x_end_motor_holes()
{
x_end_holes();
// Position to place
translate(v=[-1,32,30.25])
{
// Belt hole
translate(v=[-19,-21,-12]) cube(size = [10,25,22]);
// Motor mounting holes
for (x =[-1:0.25:1])
{
translate(v=[0,-15.5+x,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=30, r=1.55, $fn=60);
translate(v=[0,-15.5+x,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60);
translate(v=[1,-15.5+x,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.05, $fn=60);
translate(v=[20,-15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[0,-15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60);
translate(v=[1,-15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
translate(v=[20,15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30);
translate(v=[0,15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60);
translate(v=[1,15.5+x,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30);
};
// Material saving cutout
translate(v=[-10,12,12]) cube(size = [60,42,42], center = true);
translate(v=[-25,10.5,-11]) rotate([45,0,0]) cube(size = [60,10,10]);
translate(v=[-25,21,-11]) rotate([45,0,0]) cube(size = [60,10,10]);
// Material saving cutout
translate(v=[-10,41,-30.5]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true);
}
}
// Motor shaft cutout
module x_end_motor_shaft_cutout()
{
union()
{
difference()
{
translate(v=[0,32,30]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6);
translate(v=[-10,-17+32,30]) cube(size = [60,2,10], center = true);
translate(v=[-10,-8+32,-15.5+30]) rotate(a=[60,0,0]) cube(size = [60,2,10], center = true);
translate(v=[-10,8+32,-15.5+30]) rotate(a=[-60,0,0]) cube(size = [60,2,10], center = true);
}
translate(v=[-30,25.2,-11.8 +30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3, $fn=30);
translate(v=[-30,19.05,30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3.5, $fn=100);
}
}
// Final part
module x_end_motor()
{
difference()
{
x_end_motor_base();
x_end_motor_shaft_cutout();
x_end_motor_holes();
// waste pocket
translate([-15,7,6]) rotate([90,0,0]) cylinder(h=3.5, r=5, $fn=30);
translate([-15,7,51]) rotate([90,0,0]) cylinder(h=3.5, r=5, $fn=30);
translate([-15,3.5,6]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
translate([-15,3.5,51]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30);
// rod contact window
translate([-17,3,55]) cube([4,4,10]);
translate([-17,3,-8]) cube([4,4,10]);
translate([-30,-30,58]) cube([30,30,10]);
// version
translate([-23.2,-20,2]) rotate([90,0,270]) linear_extrude(height = 0.6)
{ text("R6",font = "helvetica:style=Bold", size=4, center=true); }
}
translate([-15,10,6]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30);
translate([-15,10,51]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30);
// bearing stop
difference()
{
translate([0,0,57]) rotate([0,0,90]) cylinder( h=1, r=8, $fn=30);
translate([0,0,56.9]) rotate([0,0,90]) cylinder( h=0.5, r1=8, r2=7,$fn=30);
translate([0,0,56.5]) rotate([0,0,90]) cylinder( h=2, r=7, $fn=30);
translate([-0.18,-0.5,50]) rotate([0,0,-40]) cube([12,1,10]);
}
// bearings spacer
rotate([0,0,45]) difference()
{
translate([0,0,26]) rotate([0,0,90]) cylinder( h=6, r=8, $fn=30);
translate([0,0,25]) rotate([0,0,90]) cylinder( h=8, r=7.55, $fn=60);
translate([0,0,25.9]) rotate([0,0,90]) cylinder( h=2, r2=7.5, r1=7.7,$fn=30);
translate([0,0,31.4]) rotate([0,0,90]) cylinder( h=2, r1=7.5, r2=8.3,$fn=30);
rotate([0,0,310]) translate([-2.5,0,26]) cube([5,15,10]);
rotate([0,0,310-120]) translate([-2.5,0,26]) cube([5,15,10]);
rotate([0,0,310-240]) translate([-2.5,0,26]) cube([5,15,10]);
}
// nut trap print suports
translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true);
translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true);
translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true);
}
difference()
{
union()
{
x_end_motor();
translate([-8,-17,13.0]) rotate([0,0,44.7]) cube([10,1.5,1]);
// belt tensioner body
translate([-24,9,30.25]) rotate(a=[90,30,0]) cylinder(h=27, r=4, $fn=6);
difference()
{
translate([-30,9-27,30.25]) rotate(a=[0,45,0]) cube([11,27,11]);
translate([-37.465,9-27-1,20]) cube([10,30,21]);
translate([-29,9-27-1,35]) cube([10,30,21]);
translate([-20,9-27-1,20]) cube([25,30,21]);
}
difference()
{
translate([-24,-18,30.25]) rotate(a=[90,0,0]) cylinder(h=10.5, r=5, $fn=30);
translate([-24-19.5,-18,20]) rotate(a=[90,0,0]) cube([20,20,20]);
}
}
translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]);
translate([-20,-30.5,69]) rotate([0,45,0]) cube([20,20,20]);
translate([-25,-37,49]) rotate([45,0,0]) cube([30,20,20]);
translate([-25,23.5,49]) rotate([45,0,0]) cube([30,20,20]);
// belt tensioner
translate(v=[0,32,30.25])
{
translate([-24,-15.5-2.5,0]) rotate(a=[90,0,0]) cylinder(h=35, r=1.6, $fn=30);
translate([-24,-15.5-4.5-30,0]) rotate(a=[90,0,0]) cylinder(h=30, r=3.2, $fn=30);
translate([-24-10+2.8,-29,0-2.8]) cube([10,2.1,5.6]);
}
}

View File

@ -1,142 +0,0 @@
// PRUSA iteration4
// X end prototype
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <bearing.scad>
use <polyholes.scad>
rod_distance = 45;
module x_end_base()
{
// Main block
height = 58;
translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true);
translate([-8,-28.5,0]) cube(size = [5,1,13.5]);
// Bearing holder
vertical_bearing_base();
//Nut trap
// Cylinder
translate(v=[0,-17,0]) cylinder(h = 13.5, r=12.5, $fn=250);
difference()
{
translate(v=[0,-17,13]) poly_cylinder(h = 3, r=12.5, $fn=25);
translate(v=[8,-17,12]) rotate([0,0,0]) cube(size = [15,50,10], center = true);
translate(v=[8,-24,12]) rotate([0,0,0]) cube(size = [50,15,10], center = true);
translate(v=[0,-17, -1]) cylinder(h = 20, r = 6.7, $fn = 60);
}
}
module reinforcement_selective_infill()
{
rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,5],[8,0]] );
rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,5],[12,0]] );
}
x_end_base();
module x_end_holes()
{
vertical_bearing_holes();
// Belt hole
translate(v=[-1,0,0])
{
// Stress relief
difference()
{
translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true);
// Nice edges
translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true);
translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true);
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true);
translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true);
}
}
// Bottom pushfit rod
translate(v=[-15,-41,6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
// Top pushfit rod
translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50);
// TR Nut trap
// Hole for the nut
//#translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 6.7, $fn = 60);
translate(v=[0,-17, -1]) cylinder(h = 14.51, r = 6.7, $fn = 60);
translate(v=[0,-17, -0.1]) cylinder(h = 1, r1 = 7.2,r2 = 6.7, $fn = 60);
// Screw holes for TR nut
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -4]) cylinder(h = 19, r = 1.65, $fn=50);
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -4]) cylinder(h = 19, r = 1.65, $fn=50);
translate(v=[0,-17,0]) rotate([0,0,-135]) translate([0,9.5,-1]) cylinder(h=2, r1=2.2,r2=1.65, $fn=50);
translate(v=[0,-17,0]) rotate([0,0,-135]) translate([0,-9.5,-1]) cylinder(h=2, r1=2.2,r2=1.65,, $fn=50);
// Nut traps for TR nut screws
translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 11]) rotate([0, 0, 0])cylinder(h = 6, r = 3.15, $fn=6);
translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 3, r = 3.1, $fn=6);
translate([-5.5,-17.2,10]) rotate([0,0,30]) cube([5,5,3]);
translate([-0,-17.2,10]) rotate([0,0,60]) cube([5,10,3]);
translate([0,0,6.5])
difference()
{
translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,5.8]) rotate([0,0,30])cylinder(h = 1, r = 3.1, $fn=6);
translate([-11,-12.0,4.5]) rotate([0,0,45]) cube([8,3,3]);
translate([-6.5,-16.85,4.5]) rotate([0,0,45]) cube([8,3,3]);
}
}
// Final prototype
module x_end_plain()
{
difference()
{
union()
{
difference()
{
x_end_base();
x_end_holes();
}
translate(v=[-5.8,-13.3,13.5]) rotate([0,0,45.3]) cube(size = [10,2,1], center = true);
}
difference()
{
translate(v=[0,-17, 0.3]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 3, r = 3.2, $fn=6);
translate(v=[-5.8,-13.3,13.5]) rotate([0,0,45.3]) cube(size = [10,2,1], center = true);
}
}
}
module pushfit_rod(diameter,length)
{
poly_cylinder(h = length, r=diameter/2);
difference()
{
translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true);
translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true);
}
}
x_end_holes();

View File

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

View File

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

View File

@ -1,33 +0,0 @@
// PRUSA iteration4
// Z screw cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
translate(v=[-4.2, 0, 4.3]) rotate([0,90,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60);
translate(v=[4.2, 0, 4.3]) rotate([0,-90,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60);
translate(v=[0, 4.2, 4.3]) rotate([90,0,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60);
translate(v=[0, -4.2, 4.3]) rotate([-90,0,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60);
translate(v=[-4.2, 0.5, 4.0]) rotate([0,90,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60);
translate(v=[4.2, -0.5, 4.0]) rotate([0,-90,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60);
translate(v=[0.5, 4.2, 4.0]) rotate([90,0,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60);
translate(v=[-0.5, -4.2, 4.0]) rotate([-90,0,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60);
translate(v=[-4.2, 1, 3.7]) rotate([0,90,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
translate(v=[4.2, -1, 3.7]) rotate([0,-90,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
translate(v=[1, 4.2, 3.7]) rotate([90,0,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
translate(v=[-1, -4.2, 3.7]) rotate([-90,0,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60);
difference()
{
union()
{
translate(v=[0, 0, 1]) cylinder(r1=8, r2=4.6, h = 4);
cylinder(r=8, h = 1, $fn=60);
}
translate(v=[0, 0, -1]) cylinder(r=4.2, h = 7, $fn=60);
cylinder(r1=4.5, r2=4.2, h = 1, $fn=60);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,58 +1,49 @@
// PRUSA iteration4 // PRUSA iteration4
// Extruder cable clip // Extruder cable clip
// 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 extruder_cable_clip() module extruder_cable_clip()
{ {
difference()
difference(){ {
difference() union()
{ {
union() // body shape
{ translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13,$fn=30);
// body shape translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8,r2=13, $fn=30);
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30); translate([0,16.6,28]) cube([2.9,22.8,7]);
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5, $fn=30); }
translate([0,16.6,28]) cube([2.9,22.8,7]);
} // bottom cut and shape
translate([-15,7,13]) cube([30,40,15]);
// bottom cut and shape translate([-20,28,28]) rotate([0,90,0]) cylinder(h=40,r=5.5, $fn=30);
translate([-15,7,13]) cube([30,40,15]);
translate([-20,28,28]) rotate([0,90,0]) cylinder(h=40,r=6, $fn=30); // screws
translate([-2.7,20.0,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50);
// screws translate([-2.7,36,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50);
translate([-2.7,19.5,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50); translate([-2.7,36,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
translate([-2.7,36.5,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50); translate([-2.7,20.0,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
translate([-2.7,36.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
translate([-2.7,19.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30); // screw heads opening
translate([-2.7,16.9,35]) cube([10,6.2,15]);
// screw heads opening translate([-2.7,32.9,35]) cube([10,6.2,15]);
translate([-2.7,16.4,35]) cube([10,6.2,15]); }
translate([-2.7,33.4,35]) cube([10,6.2,15]);
difference()
{
} // cable grip
translate([-8,28,28]) rotate([0,90,0]) cylinder( h = 10, r = 6, $fn=30);
difference() translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40, r = 5, $fn=30);
{ translate([-15,7,13]) cube([30,40,15]);
// cable grip translate([-6,7,13]) cube([2,40,25]);
translate([-8,28,28]) rotate([0,90,0]) cylinder( h = 10, r = 6, $fn=30); translate([-2,7,13]) cube([2,40,25]);
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40, r = 5.5, $fn=30); }
translate([-15,7,13]) cube([30,40,15]);
translate([-6,7,13]) cube([2,40,25]);
translate([-2,7,13]) cube([2,40,25]); }
}
//nylon hole
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.8,$fn=30);}}
//translate([0,0,0]) extruder_cable_clip();
translate([6,-28,-28]) extruder_cable_clip(); translate([6,-28,-28]) extruder_cable_clip();

View File

@ -0,0 +1,60 @@
// PRUSA iteration4
// Heatbed cable clip
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module heatbed_cable_clip()
{
difference()
{
union()
{
difference()
{
union()
{
// body base
translate([75,99,28]) rotate([90,0,0]) cylinder( h = 15, r = 13, $fn=30);
translate([75,101,28]) rotate([90,0,0]) cylinder( h = 2, r1=9,r2 = 13, $fn=30);
}
// screws
translate([67,95,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
translate([83,95,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50);
// cut flat and shape
translate([60,82,14]) cube([30,20,14]);
translate([60,72,20]) cube([30,20,30]);
}
translate([62.75,88.2,28]) cube([24.5,3.8,7]);
}
// cable opening
translate([75,105,28]) rotate([90,90,0]) cylinder(h=30,r=4.0,$fn=30);
// screws opening
translate([67-3.2,90.2,35]) cube([6.4,5,7]);
translate([83-3.2,90.2,35]) cube([6.4,5,7]);
// screw heads
translate([67,95,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
translate([83,95,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30);
}
difference()
{
// cable grip
translate([75,99,28]) rotate([90,90,0]) cylinder(h=10,r=4.5,$fn=30);
translate([75,105,28]) rotate([90,90,0]) cylinder(h=30,r=3.5,$fn=30);
translate([60,72,14]) cube([30,40,14]);
translate([60,90,24]) cube([30,4,14]);
translate([60,95,24]) cube([30,3,14]);
}
}
translate([-75,-99,-28]) heatbed_cable_clip();

View File

@ -0,0 +1,50 @@
// PRUSA iteration4
// RAMBo cover hinges
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module upper_hinge()
{
difference()
{
union()
{
// body
cylinder( h = 26, r = 2.4, $fn=30);
cylinder( h = 21, r = 4.5, $fn=30);
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 14 , 21 ] );
}
// M3 screw hole
translate( [ -12.5 , -0 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
translate( [ -1.5 , -0 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30);
// angle cut
translate([-3.9,-20,-1]) rotate([0,0,50]) cube([25,5,26]);
}
}
module lower_hinge()
{
difference()
{
union()
{
// body
translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30);
translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 4.5, $fn=30);
translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30);
translate( [ -5 , 3 , 0 ] ) cube( [ 7 , 13 , 10 ] );
}
// M3 screw
translate( [ -0.5 , 6 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30);
translate( [ -12 , 6 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30);
// angle cut
translate([-5.8,20,-1]) rotate([0,0,-50]) cube([20,5,20]);
}
}
translate([0,-4,0]) upper_hinge();
lower_hinge();

View File

@ -0,0 +1,287 @@
// PRUSA iteration4
// RAMBo base
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
// main body
module main_body()
{
// side panel
cube([118.5,92,2]);
// upper panel
cube([1.5,92,35]);
// rear panel
translate( [0,90,0]) cube([105.5,2,35]);
// upper panel frame reinforcement
translate([0,0,1]) cube([5.5,7,34]);
// side panel reinforcement
translate([0,0,1]) cube([9,92,3]);
translate([98,0,0]) cube([9,92,4]);
// raspberry
translate([21,81,0]) cylinder( h = 4.5,r = 2.5,$fn=30);
translate([21+58,81,0]) cylinder( h = 4.5,r = 2.5,$fn=30);
// heatbed cable mounting reinforcement
translate([63,86.0,0.5]) cube([15,5,34.5]);
translate([75,99,28]) rotate([90,0,0]) cylinder(h=15,r=13,$fn=30);
translate([75,101,28]) rotate([90,0,0]) cylinder(h=2,r1=9,r2=13,$fn=30);
translate([70.3,88,13.2]) rotate([-45,0,0]) cube([9.5,5,9]);
translate([70.3,84,16.2]) rotate([-45,0,0]) cube([9.5,8,5]);
difference()
{
// bottom side reinforcement
translate([98,86,0]) cube([7.5,6,35]);
translate([96,79,0]) rotate([0,0,45]) cube([7.5,6,36]);
}
translate([0,85,0]) cube([5.5,7,35]);
// screw mounting block
translate([54,84,0]) cube([11,7,35]);
// frame side panel
translate([20,0,0]) cube([80,3,5]);
// RAMBo mounting holes
translate([102.5,14,1]) rotate([0,0,90]) cylinder( h = 7,r = 5.5,$fn=6);
translate([102.5,75,1]) rotate([0,0,90]) cylinder( h = 7,r = 5.5,$fn=6);
translate([7.5,14,1]) cylinder( h = 7,r = 5.5,$fn=6);
translate([7.5,75,1]) cylinder( h = 7,r = 5.5,$fn=6);
// corners reinforcement
translate([0,75,1]) cube([13,16,6]);
translate([0,70.25,1]) cube([7.5,11,6]);
translate([0,7.75,1]) cube([7.5,11,6]);
translate([0,0,1]) cube([13,14,6]);
// frame mounting screw blocks
//upper
translate([1,0,0]) cube([28,4,10]);
translate([18.45,0,0]) cube([3,4,5.5] );
//lower
translate([98,0,0]) cube([20.5,4,10]);
// door closing corner
translate([102,88.5,35]) cylinder( h = 3,r1=2.5,r2=1,$fn=30);
// doors pin upper
translate([2,85,31]) cube([6,7,4] );
translate([4,88.5,35]) cylinder( h = 3,r1=2.5,r2=1,$fn=30);
// x-axis cables entry hole body
translate([89,2,0]) cylinder( h = 5,r = 6,$fn=6);
// extruder cable holder
translate([0,0,15]) cube([5,40,20]);
translate([5,28,28]) rotate([0,90,0]) cylinder(h=5,r1=10,r2=8,$fn=30);
difference()
{
translate([-2,0,28]) rotate([0,45,0]) cube([9.8,25,9.8]);
translate([-5,-5,15]) cube([5,40,20]);
translate([10,-5,15]) cube([5,40,20]);
}
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13,$fn=30);
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8,r2=13,$fn=30);
difference()
{
translate([-5.5,23.5,16]) rotate([0,45,0]) cube([8,9,8]);
translate([1,0,10]) cube([5,40,20]);
}
}
module ventilation_holes()
{
for ( i = [-5 : 8] )
{
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+49.0,1.2]);
translate([46 + (i*5.5),10.5,-1]) cube([3.65,18,10]);
translate([46 + (i*5.5),10.5+25,-1]) cube([3.65,18,10]);
translate([46 + (i*5.5),10.5+50,-1]) cube([3.65,18,10]);
}
}
module cutouts(){
// extruder cable holder
translate([1.5,7,14.8]) rotate([0,45,0]) cube([3,40,5]);
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40,r = 5.5,$fn=30);
translate([-15,7,35]) cube([30,40,15]);
translate([-15,25,30]) cube([30,6,8]);
translate([-15,12,28]) cube([15,30,8]);
translate([-12,16.5,28]) cube([15,23,8]);
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.6,$fn=30);
translate([-2.7,20.0,22]) rotate([0,0,90]) cylinder( h = 10,r = 1.6,$fn=30);
translate([-2.7,20.0,12]) rotate([0,0,90]) cylinder( h = 13,r = 3.1,$fn=6);
translate([-2.7,36,10]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30);
translate([-2.7,36,12]) rotate([0,0,90]) cylinder( h = 13,r = 3.1,$fn=6);
// side
translate([12,19,1]) cube([85.5,51,3]);
// RAMBo M3 screws
translate([7.5,14,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([102.5,14,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([102.5,75,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([7.5,75,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([7.5,14,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([102.5,14,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([102.5,75,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([7.5,75,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([2,0,0])ventilation_holes();
// frame mounting screws
//upper
translate([18.5,-2,15.6]) rotate([0,45,0]) cube([15,10,10] );
translate([16.5,8,5]) rotate([90,0,0]) cylinder( h = 10,r = 1.6,$fn=30);
translate([16.5,9,5]) rotate([90,0,0]) cylinder( h = 5,r = 3,$fn=30);
translate([15.15,-2,5]) cube([2.7,15,10] );
translate([15.1,-2,7]) rotate([0,5,0]) cube([2.8,15,10] );
translate([15.1,-2,7]) rotate([0,-5,0]) cube([2.8,15,10] );
//lower
translate([110.5,9,5]) rotate([90,0,0]) cylinder( h = 10,r = 1.6,$fn=30);
translate([110.5,9,5]) rotate([90,0,0]) cylinder( h = 5,r = 3,$fn=30);
translate([118.5,-2,6]) rotate([0,-45,0]) cube([5,15,15] );
translate([94.5,-2,8.5]) rotate([0,45,0]) cube([5,8,15] );
translate([0,-2,-5]) cube([120,15,5] );
translate([109.15,-2,5]) cube([2.7,15,10] );
translate([109.3,-2,6.5]) rotate([0,5,0]) cube([2.5,15,10] );
translate([109.2,-2,6.5]) rotate([0,-5,0]) cube([2.5,15,10] );
// USB connector hole
translate([-1,41.5,11]) cube([5.5,13,11]);
// reset button
translate([-2,65,14]) rotate([0,90,0]) cylinder( h = 10,r = 2,$fn=30);
// door closing screw
translate([58.5,88,-1]) cylinder( h = 43,r = 1.9,$fn=30);
// new heatbed cable holder
translate([75,105,28]) rotate([90,90,0]) cylinder(h=30,r=4.0,$fn=30);
translate([67,95,15.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=6);
translate([83,95,15.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=6);
translate([67,95,14]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([83,95,14]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([60,92,28]) cube([30,13,14]);
translate([60,80,35]) cube([30,13,14]);
translate([72.5,80,30]) cube([5,13,14]);
translate([75,92,25]) rotate([120,0,0]) cylinder(h=25,r=1.6,$fn=30);
translate([62.5,88,28]) cube([25,15,14]);
// nut traps HEX
translate([7.5,14,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([102.5,14,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([102.5,75,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([7.5,75,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([7.5,14,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([102.5,14,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([102.5,75,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([7.5,75,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([58.5,88,-1]) cylinder( h = 4,r = 3.2,$fn=30);
// door closing corners
translate([8,80,28]) rotate([0,0,45]) cube([5,5,10] );
translate([106,81,4]) rotate([0,0,45]) cube([5,5,40] );
// inner edges cutout
translate([54,79.5,2]) rotate([0,0,45]) cube([5,5,50] );
translate([6,80,7]) rotate([0,0,45]) cube([5,5,24] );
// x axis cable hole
translate([89,2,-1]) cylinder( h = 10,r = 4,$fn=6);
translate([80,-5,-1]) cube([15,5,10] );
// large corner coutout
translate([-27,80,-54]) rotate([50,0,45]) cube([50,50,50] );
translate([137.5,60,-10]) rotate([0,0,45]) cube([50,50,50] );
}
module RAMBo_base()
{
difference()
{
difference()
{
main_body();
cutouts();
}
//BottomCubic();
translate([14.5,10,-2]) cube([4,24,10]);
translate([16.5,10,-2]) cylinder( h = 20,r = 2,$fn=30);
translate([16.5,34,-2]) cylinder( h = 20,r = 2,$fn=30);
// lightening slots
translate([100,21,2] ) cube([5,48,5]);
translate([3,21,2] ) cube([4.5,48,5]);
translate([115,68,1.5]) rotate([0,0,90]) linear_extrude(height = 0.8)
{text("R1",font = "helvetica:style=Bold",size=6,center=true); }
}
}
RAMBo_base();

View File

@ -0,0 +1,130 @@
// PRUSA iteration4
// RAMBo doors
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module body()
{
// side panels
cube([105.5,87.5,1.5]);
cube([105.5,2,18]);
cube([2,89.5,18]);
// corner reinforcement
translate([98,1,0]) cube([7.5,5,18]);
translate([0.5,0.5,0]) cube([5,6.5,18]);
translate([1,0,0]) cube([10,87.5,6]);
translate([99.5,0,0]) cube([6,87.5,7]);
translate([10,0,0]) cube([6,5,6]);
// screw thread body
translate([54,2,0]) cube([9.5,6,18]);
// rounded side
translate([0,87.5,4.5]) rotate([0,90,0]) cylinder( h = 105.5,r = 4.5,$fn=30);
// upper hinge reinforcement
translate([0.5,69,-9]) rotate([20,0,0]) cube([26,20,10]);
// door closing
translate([4,3.5,14.8]) cylinder( h = 3.2,r1 = 1.8,r2= 3.5,$fn=30);
translate([102,3.5,14.8]) cylinder( h = 3.2,r1 = 1.8,r2= 3.5,$fn=30);
}
module ventilation_holes()
{
for ( i = [0 : 9] )
{
translate([40 + (i*6),10.5,-1]) cube([3.65,19+50,1.2]);
translate([40 + (i*6),10.5,-1]) cube([3.65,19,10]);
translate([40 + (i*6),10.5+25,-1]) cube([3.65,19,10]);
translate([40 + (i*6),10.5+50,-1]) cube([3.65,19,10]);
}
for ( i = [0 : -4] )
{
translate([40 + (i*6),10.5,-1]) cube([3.65,19+50,1.2]);
}
for ( i = [-6 : -7] )
{
translate([46 + (i*6),20.5,-1]) cube([3.65,19+40,1.2]);
}
translate([15,10,1]) cube([20,55,1.5]);
}
module cutouts()
{
// door closing screw
translate([58.5,4,1]) cylinder( h = 18,r = 1.8,$fn=30);
translate([58.5,4,14.5]) cylinder( h = 2.6,r1 = 1.8,r2=2.2,$fn=30);
translate([58.5,4,11.5] ){
translate([0,0,2.5]) cube([5.7,3.8,1],center=true);
translate([0,0,3]) cube([3.8,3.8,1],center=true);}
ventilation_holes();
// rounded side cutoff
translate([26.5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 73,r = 3.5,$fn=30);
translate([ 26.5,80,5]) cube([73,19,10]);
translate([ 26.5,82.5,1]) cube([73,5,10]);
// upper hinge cut
translate([0,60,-10]) cube([30,30,10]);
translate([-1,80,-1]) rotate([-45,0,0]) cube([22.5,8,18]);
// upper hinge
translate( [2,80,6] ) cube([19.5,10,10]);
translate( [-2,88,5] ) rotate([50,0,0]) cube([19.5,10,5]);
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 26.5,r = 2.5,$fn=30);
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 26.5,r = 5,$fn=30);
// hinge hole
translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 120,r = 2.6,$fn=30);
// door closing
translate([4,3.5,14.9]) cylinder( h = 3.2,r1 = 1.2,r2= 2.8,$fn=30);
translate([102,3.5,14.9]) cylinder( h = 3.2,r1 = 1.2,r2= 2.8,$fn=30);
// M3 NUT
translate( [55.65,0.5,12] ) cube([5.7,10,2.2]);
// side panel lightning slot
translate( [2,10,3] ) cube([7,65,5]);
translate( [101,10,3] ) cube([3,70,5]);
// corners - cut
translate( [53,3,1.5] ) rotate([0,0,70]) cube([10,10,50]);
translate( [61,12,1.5] ) rotate([0,0,-70]) cube([10,10,50]);
translate( [16,2,1.5] ) rotate([0,0,45]) cube([5,5,50]);
}
module RAMBo_doors()
{
difference()
{
body();
cutouts();
// large corner cut
translate( [0,-20,-3] ) rotate([0,45,45]) cube([30,30,20]);
translate([30,79,1]) rotate([0,0,-90]) linear_extrude(height = 0.8)
{ text("R1",font = "helvetica:style=Bold",size=6,center=true); }
}
}
RAMBo_doors();

View File

@ -42,67 +42,32 @@ 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(){
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(14.80/2)); translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2));
translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5); translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5);
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]); rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
@ -110,9 +75,9 @@ module vertical_bearing_holes(){
//difference(){ //difference(){
//vertical_bearing_base(); //vertical_bearing_base();
vertical_bearing_holes(); //vertical_bearing_holes();
//} //}
//horizontal_bearing_test(); //horizontal_bearing_test();
//horizontal_bearing_base(1); //horizontal_bearing_base(1);
//horizontal_bearing_holes(1); //horizontal_bearing_holes(1);
//horizontal_bearing_holes_nozip(1); horizontal_bearing_holes_nozip(1);

View File

@ -0,0 +1,36 @@
//translate([0,0,0]) cylinder(r=1.5, h=40, $fn=30);
//translate([0,0,20]) cylinder(r=3.1, h=4, $fn=30);
//translate([0,-4,0]) cube([3,10.0,25]);
module zip()
{
translate([-5,-8,0]) cube([10,4,4]);
translate([-12.5,-5,0]) cube([10,20.0,4]);
translate([2.5,-5,0]) cube([10,20.0,4]);
translate([2,-6,0]) rotate([0,0,45]) cube([5,2,4]);
translate([-6,-2.4,0]) rotate([0,0,-45]) cube([5,2,4]);
}
difference()
{
union()
{
translate([0,5,0]) cylinder(r=10, h=25, $fn=30);
translate([-3,-9,0]) cube([6,10,25]);
}
translate([0,10,-1]) cylinder(r=6, h=50, $fn=30);
translate([0,0,-1]) cylinder(r=1.6, h=50, $fn=30);
translate([3,-5,-1]) cube([10,20.0,50]);
translate([-13,-5,-1]) cube([10,20.0,50]);
translate([-10,-18,-1]) rotate([-10,0,0]) cube([20,10,50]);
translate([0,-3.1,3]) rotate([-10,0,0]) zip();
translate([0,-1.8,10.5]) rotate([-10,0,0]) zip();
translate([0,-0.5,18]) rotate([-10,0,0]) zip();
translate([-13,-9,-10]) rotate([45,0,0]) cube([30,10.0,10]);
translate([-13,-9,20.5]) rotate([35,0,0]) cube([30,10.0,10]);
}

View File

@ -0,0 +1,225 @@
// 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,36,3]) rotate([90,0,0]) cylinder(h = 21, r=4, $fn=60);
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]) rotate([0,0,30]) cylinder(h = 4, r1=3.15, r2=5, $fn=6);
translate([11,30,8]) rotate([0,0,-30]) cylinder(h = 4, r1=3.15, r2=5, $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,5.4]) rotate([0,0,30]) cylinder(h = 4, r=3.15, $fn=6);
translate([11,30,5.4]) rotate([0,0,-30]) cylinder(h = 4, r=3.15, $fn=6);
}
translate([-9.4,4,0]) cube([18.8,40,5.7]);
translate([-17.6,4,0]) cube([5,40,5.7]);
translate([12.6,4,0]) cube([5,40,5.7]);
translate([-22,18.4,0]) cube([70,10,6]);
translate([-20,31.6,0]) cube([70,10,6]);
}
difference()
{
union()
{
translate([0,7.5,5.7]) cylinder(h = 4, r=3.15, $fn=60);
}
translate([-11.6,0,0.9]) cube([10,40,5.7]);
translate([1.6,0,0.9]) cube([10,40,5.7]);
translate([-5,-4.1,0.9]) cube([10,10,6]);
translate([-5,9.1,0.9]) cube([10,10,6]);
}
// heatbed screw
translate([0,7.5,8]) cylinder(h = 4, r1=2.75, r2=5, $fn=50);
translate([0,7.5,3]) cylinder(h = 4, r=1.6, $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.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 = 4, r=2.75, $fn=50);
translate([0,7.5,6.3]) 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,147 @@
// PRUSA iteration4
// X carriage back 2.5 upgrade
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module m3head()
{
intersection(){
translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut
translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true);
}
translate([30,5,17-4]) cube([3.4,3.4,1], center=true);
translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut
}
module x_back()
{
difference()
{
union()
{
// body base
translate([-16,-39.0,15.1]) cube([33,72,8]);
translate([-25.5,-5,15.1]) cube([52,39.5,8]);
}
//cables opening
translate([-17,-22,7.5]) cube([35,4,10]);
translate([-6.5,-18,15]) cube([10,4,10]);
translate([-1.5,-18,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 );
translate([-1.5,-14,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 );
// cables horizontal space
translate([-20,-19.5,9]) cube([50,7.5,10]);
//bearings
translate([-15,-25,11.75]) rotate([0,90,0]) cylinder( h=31, r=7.6, $fn=30 );
translate([-30,20,11.75]) rotate([0,90,0]) cylinder( h=60, r=7.6, $fn=30 );
translate([-17,-25,11.75]) rotate([0,90,0]) cylinder( h=60, r=7, $fn=30 );
translate([-32,20,11.75]) rotate([0,90,0]) cylinder( h=80, r=7, $fn=30 );
// lower screws
translate([-9.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
translate([10.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
translate([-9.5,-36,19]) cylinder( h=6, r=3.1, $fn=30 );
translate([10.5,-36,19]) cylinder( h=50, r=3.1, $fn=30 );
translate([-12.6,-46,18]) cube([6.2,10,10]);
translate([7.4,-46,18]) cube([6.2,10,10]);
// middle screw
translate([1,4,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 );
// upper screws
translate([13,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
translate([-10.5,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.6, $fn=30 );
translate([13,31,19]) cylinder( h=50, r=3.1, $fn=30 );
translate([-10.5,31,19]) cylinder( h=50, r=3.1, $fn=30 );
// hotend cables cut
translate([0.5,-42.5,0]) rotate([-5,0,0]) cylinder( h=50, r=6, $fn=30 );
// cable holder screw
translate([-1.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 );
translate([-1.5,-27,16.5]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 );
// extruder hold together screws opening
translate([11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 );
translate([-11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 );
// corners
translate([-20.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]);
translate([21.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]);
translate([-24.4,15.2,10]) rotate([0,0,45]) cube([14,10,15]);
translate([26.9,15.2,10]) rotate([0,0,45]) cube([10,14,15]);
translate([-19.55,28,10]) rotate([0,0,45]) cube([10,10,15]);
translate([22.05,28,10]) rotate([0,0,45]) cube([10,10,15]);
translate([-22,35,21]) rotate([30,0,0]) cube([44,10,10]);
translate([-22,35,17]) rotate([30,0,0]) cube([14.5,10,10]);
translate([10,35,17]) rotate([30,0,0]) cube([14.5,10,10]);
// upper side cuts
translate([17,25,10]) rotate([0,0,0]) cube([10,10,15]);
translate([-29.5,25,10]) rotate([0,0,0]) cube([15,15,15]);
translate([17,22,13]) rotate([0,0,0]) cube([10,10,5]);
translate([-24.5,22,13]) rotate([0,0,0]) cube([10,10,5]);
// side angle cuts
translate([27,-20,16]) rotate([0,-30,0]) cube([10,50,10]);
translate([-34.2,-20,21]) rotate([0,30,0]) cube([10,50,10]);
translate([19.5,-55,16]) rotate([0,-30,0]) cube([10,50,10]);
translate([-27.1,-55,21]) rotate([0,30,0]) cube([10,50,10]);
translate([-1,-19.5,14]) rotate([0,30,0]) cube([10,7.5,10]);
translate([-5,-19.5,10]) rotate([0,-30,0]) cube([10,7.5,10]);
// filament sensor cable
translate([4.5,28.5,12]) rotate([0,0,0]) cube([3.5,4,20]);
translate([0.5,28.5,12]) rotate([0,0,0]) cube([4.5,7,20]);
translate([4.5,-5,19.5]) rotate([0,0,0]) cube([3.5,35,4.3]);
translate([-1.55,-9.60,19.5]) rotate([0,0,-45]) cube([3.5,10,4]);
translate([-1.9,-9.95,15]) rotate([45,0,-45]) cube([3.5,10,4]);
translate([4.5,29,16]) rotate([45,0,0]) cube([3.5,5,5]);
translate([3.5,-4.60,19.5]) rotate([0,0,-15]) cube([3,4,4]);
translate([-18,11,22.8]) rotate([0,0,0]) linear_extrude(height = 0.4)
{ text("MK2.5",font = "helvetica:style=Bold", size=5, center=true); }
translate([-15,3,15.6]) rotate([0,180,0]) linear_extrude(height = 1)
{ text("R1",font = "helvetica:style=Bold", size=4, center=true); }
translate([-23,2.3,14.3]) cube([9,5.0,1]);
// upper ziptie left
translate([-21.5,-25,0])
difference()
{
translate([1,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25);
}
translate([19.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]);
translate([-20.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]);
// upper ziptie right
translate([19,-25,0])
difference()
{
translate([0.5,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25);
}
// screw heads support
translate([-17,26,5]) m3head();
translate([-40.5,26,5]) m3head();
translate([-29,-1,4]) m3head();
translate([-19.5,-41,5]) m3head();
translate([-39.5,-41,5]) m3head();
}
}
rotate([0,180,0]) x_back();

View File

@ -0,0 +1,386 @@
// PRUSA iteration4
// X carriage 2.5 upgrade
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
use <bearing.scad>
module belt_cut()
{
rotate([0,0,180])
{
translate([-20,0,0]) cube([39,0.75,15]);
translate([-20,0,5]) rotate([-7,0,0]) cube([39,0.75,10]);
translate([-20,0,5]) rotate([10,0,0]) cube([39,0.75,10]);
for (_step =[-20:2:18])
{
translate([_step,0.5,0]) cube([1,1.0,10]);
}
for (_step =[-20:2:18])
{
translate([_step,0.5,5]) rotate([-7,0,0]) cube([1,1,10]);
}
}
}
module 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,17.6,4]) rotate([0,0,-15]) cube([10,3,30]);
translate([-31.5,30.4,10]) rotate([-10,0,15]) cylinder(r=0.2, h=100, $fn=30);
translate([-31.6,30.75,7]) rotate([0,0,0]) cylinder(r=0.2, h=100, $fn=30);
}
module right_belt_cut()
{
// 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);
}
module x_carriage_body(){
// Small bearing holder
translate([-33/2,0,1]) rotate([0,0,90]) horizontal_bearing_base(1);
// Long bearing holder
translate([-33/2,45,1]) rotate([0,0,90]) horizontal_bearing_base(2);
// Base plate
translate([-34,-14,1]) cube([34.5,70.5,6]);
translate([-33,-15,1]) cube([33,7,14]);
translate([-42.5,53.0,1]) cube([52,6.5,14]);
difference()
{
union()
{
translate([-12,30,1]) rotate([0,0,45]) cube([6,6,14]);
translate([-20,30,1]) rotate([0,0,45]) cube([6,6,14]);
}
translate([-25,38,11]) rotate([43,0,0]) cube([20,8,8]);
}
// upper motor screw block
translate([-23,56.8,1]) rotate([0,0,0]) cube([32.5,18.2,7]);
// Belt holder base
translate([-42.5,20,1]) cube([52,16,6]);
// new belt holder base block
translate([-42.5,18,7]) cube([52,16.3,8]);
}
module x_carriage_holes(){
// Small bearing holder holes cutter
translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(1);
// Long bearing holder holes cutter
translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(2);
// upper ziptie right
translate([2,0,0])
difference()
{
translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8, h=3.5, $fn=50);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=50);
}
// upper ziptie left
translate([-38,0,0])
difference()
{
translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8,h=3.5,$fn=50);
translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=50);
}
// upper ziptie head
translate([0,52.5,12]) cube([10,10,5]);
translate([-45,52.5,12]) cube([13.5,10,5]);
// Extruder mounting holes
translate([-17.5+12,24.5,-1])cylinder(r=1.65, h=20, $fn=50);
translate([-17.5+12,24.5,0.9])cylinder(r1=2.0,r2=1.65, h=1, $fn=50);
translate([-17.5+12,24.5,12])cylinder(r=5.8/2, h=20, $fn=50);
translate([-16.5-12,24.5,-1])cylinder(r=1.65, h=20, $fn=50);
translate([-16.5-12,24.5,0.9])cylinder(r1=2.1,r2=1.65, h=1, $fn=50);
translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=50);
// Carriage slimer
translate([-55.5+3,19,-1])cube([10,40,30]);
translate([+12.5-3,19,-1])cube([10,40,30]);
translate([+12.5-3.5-2,30.8,-1])rotate([0,90-65,0])cube([10,55,30]);
translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]);
}
module x_carriage_fancy()
{
// Top right corner
translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]);
// Top left corner
translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]);
translate([-27,74.5,9]) rotate([0,45,0]) translate([0,-15,0]) cube([5,25,5]);
translate([-23,86,16]) rotate([45,0,0]) translate([0,-15,0]) cube([45,5,5]);
// bottom side edges
translate([-40,-15,-5]) rotate([30,0,0]) cube([45,6,15]);
translate([-35,-19.2,0]) rotate([0,0,45]) cube([6,6,16]);
translate([2,-19.2,0]) rotate([0,0,45]) cube([6,6,16]);
translate([2,55.9,12]) rotate([0,0,45]) cube([6,6,16]);
translate([-33.5,55.9,12]) rotate([0,0,45]) cube([6,6,16]);
}
module cable_tray(){
// center screw block
translate([-21,23,1]) cube([9,12,14]);
difference()
{
union()
{
translate([-20.8,24.8,1]) rotate([0,0,20]) cube([3,10,14]);
translate([-15.5,25.8,1]) rotate([0,0,-20]) cube([3,10,14]);
}
translate([-25,34.2,1]) cube([20,10,14]);
}
translate([6.5,32,10]) cube([3,5,5]);
translate([-42.5,32,10]) cube([4,5,5]);
//Left cable tray
translate([-39.9,11,1]) cube([9,2,14]);
translate([-39.9,5.5,1]) cube([9,2,14]);
//Right cable tray
translate([-2,5.5,1]) cube([11.45,2,14]);
translate([-2,11,7]) cube([11.45,2,8]);
translate([-31,11.5,7]) cube([30,1.5,8]);
difference()
{
translate([0,11,1]) cube([9.50,12,6]);
translate([0,6,1])rotate([-30,0,0]) cube([7.5,12,7]);
translate([0,3.5,6])rotate([-60,0,0]) cube([7.5,12,7]);
translate([0,10+3,-1])cube([7.5,11,6]);
}
}
module final_cutout(){
translate([-44,0,16]) rotate([0,45,0]) cube([5,15,5]);
translate([6,0,16]) rotate([0,45,0]) cube([5,15,5]);
translate([0.5,10+3,-1])cube([7,9.2,6]);
// filament hole
translate([-18.5,8.8,0]) rotate([-5,0,0]) cylinder(r=1.52, h=40, $fn=10);
translate([-18.5,9.7,10]) rotate([-5,0,0]) cylinder(r=1.52,r2=2, h=6, $fn=10);
// bottom back mounting screws
translate([-6.5,-11,4]) rotate([0,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([-26.5,-11,4]) rotate([0,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([-29.3,-14,10]) cube([5.6,7,2.1]);
translate([-09.3,-14,10]) cube([5.6,7,2.1]);
// better printing bridges
translate([-29.3,-12.65,10.35]) cube([5.6,3.3,2.1]);
translate([-09.3,-12.65,10.35]) cube([5.6,3.3,2.1]);
translate([-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]);
// x-carriage-back mounting screws
translate([-4,56,0]) rotate([0,0,0]) cylinder(r=1.65, h=40, $fn=50);
translate([-27.5,56,0]) rotate([0,0,0]) cylinder(r=1.65, h=40, $fn=50);
translate([-30.3,53,8]) cube([5.6,8,2.1]);
translate([-6.8,53,8]) cube([5.6,8,2.1]);
// better printing bridges
translate([-6.8,54.35,8.35]) cube([5.6,3.3,2]);
translate([-5.65,54.35,8.7]) cube([3.3,3.3,2]);
translate([-30.3,54.35,8.35]) cube([5.6,3.3,2]);
translate([-29.15,54.35,8.7]) cube([3.3,3.3,2]);
// center mounting screw
translate([-16,29,0]) rotate([0,0,0]) cylinder(r=1.65, h=40, $fn=50);
translate([-18.8,26,11]) cube([5.6,8,2.1]);
translate([-21,33,11]) cube([10,8,6]);
// better printing bridges
translate([-18.8,27.35,11]) cube([5.6,3.3,2.1]);
translate([-17.65,27.35,11.25]) cube([3.3,3.3,2.1]);
translate([-16.5,-18,-5]) rotate([-5,0,0]) cylinder(r=6, h=40, $fn=50);
}
// Final part
module x_carriage_base()
{
difference()
{
union()
{
difference()
{
x_carriage_body();
x_carriage_holes();
x_carriage_fancy();
}
cable_tray();
difference()
{
translate([-24,7.7,1.5]) cube([10.5,4,13.5]);
translate([-16.4,6.7,16]) rotate([0,45,0]) cube([5,7,5]);
translate([-27.4,6.7,16]) rotate([0,45,0]) cube([5,7,5]);
translate([-27.4,6.7,13.7]) rotate([45,0,0]) cube([20,7,5]);
}
}
final_cutout();
}
}
module x_carriage()
{
difference()
{
union()
{
x_carriage_base();
// endstop
difference()
{
union()
{
translate([-8.5,-16,1]) cube([18,5.5,11]);
translate([2,-15.5,1]) rotate([0,0,60]) cube([5,5,11]);
}
translate([6,-17,0]) rotate([0,45,0]) cube([10,8,11]);
translate([-12,-18.5,0]) rotate([0,0,-25]) cube([15,8,15]);
translate([-6.5,-11,4]) rotate([0,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([-09.5,-14,10]) cube([6,7,2.2]);
}
}
translate([2.5,67.5,-50]) rotate([0,0,0]) cylinder(r=1.65, h=100, $fn=50);
translate([2.5,67.5,0.9]) cylinder(r1=2.1,r2=1.8, h=1, $fn=50);
translate([2.5,67.5,5]) rotate([0,0,0]) cylinder(r=3.1, h=8, $fn=50);
translate([0.5,22.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=7.0, $fn=50);
difference()
{
translate([2.5,21.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=5.0, $fn=25);
translate([2,16,-10]) cube([10,6,20]);
}
translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]);
translate([-40.8,7.5,0]) rotate([0,20,0]) cube([5,3.5,20]);
translate([-2.9,7.5,18]) rotate([0,80,0]) cube([20,3.55,5]);
// filament sensor connector
translate([-12.5,64,-3]) cube([4,11.2,14]);
translate([-12.5,65.75,-3]) cube([5,2.5,14]);
translate([-12.5,71.75,-3]) cube([5,2.5,14]);
translate([-14.5,67,-3]) cube([4,6,14]);
translate([-14.5,65,4.7]) cube([4,10.2,5]);
translate([-12.5,54.5,8]) cube([3.5,10.2,14]);
translate([-12.5,57.5,9.5]) rotate([35,0,0]) cube([3.5,10.2,14]);
translate([-12.5,58,8]) rotate([0,0,45]) cube([3,3,14]);
translate([-10,58,8]) rotate([0,0,45]) cube([3,3,14]);
translate([0,-0.5,0]) left_belt_cut();
translate([0,0.5,0]) right_belt_cut();
//version
translate([-2,-8,1.5]) rotate([0,180,0]) linear_extrude(height = 0.6)
{ text("R2",font = "helvetica:style=Bold", size=4, center=true); }
translate([-10,34,1.5]) rotate([0,180,0]) linear_extrude(height = 0.6)
{ text("2.5",font = "helvetica:style=Bold", size=8, center=true); }
}
}
x_carriage();

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