Compare commits
304 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
529e5ad689 | |
|
|
b34f8cb3fb | |
|
|
e439111a60 | |
|
|
a1a532a25f | |
|
|
1f5072f2c1 | |
|
|
7c7ad15237 | |
|
|
bc7818d10d | |
|
|
d7f81f2ef2 | |
|
|
e1982c8dda | |
|
|
d05a61a896 | |
|
|
d14c21ea89 | |
|
|
f60f00539e | |
|
|
88e9bc3533 | |
|
|
d4f24eb334 | |
|
|
c4281ea05c | |
|
|
b6ecb46f0f | |
|
|
fb1976ccb7 | |
|
|
5e0dca5306 | |
|
|
e55953ff51 | |
|
|
1bfc29ac0a | |
|
|
8b40bbb56c | |
|
|
a79344d866 | |
|
|
b52521ebfe | |
|
|
3175670635 | |
|
|
3117792b4f | |
|
|
62163d3b2f | |
|
|
803096cd2e | |
|
|
96856ce2ae | |
|
|
435cacfa8b | |
|
|
f35614d48b | |
|
|
c3713af117 | |
|
|
9d5c125e71 | |
|
|
a85b78b219 | |
|
|
cc82a4ec15 | |
|
|
3dc4e39104 | |
|
|
66e5114c90 | |
|
|
e9ba2ee1ed | |
|
|
4726f0892f | |
|
|
f41d7d656a | |
|
|
2246cdfa6f | |
|
|
eff1f295c8 | |
|
|
706a90d689 | |
|
|
b07f019bf3 | |
|
|
11122ca288 | |
|
|
93218fea29 | |
|
|
51d22ee474 | |
|
|
4ecca74ce7 | |
|
|
27d5be65f5 | |
|
|
e34c1c5a1a | |
|
|
e50f11aea5 | |
|
|
1f15da8dd1 | |
|
|
8e4a652d06 | |
|
|
74e435fc37 | |
|
|
b5007df863 | |
|
|
a4509ce139 | |
|
|
c9ac47dcff | |
|
|
17a1e0b019 | |
|
|
bbabf2b6ea | |
|
|
1e9c1d8e4b | |
|
|
d9e5d502b8 | |
|
|
93a88c63cb | |
|
|
3b3c073009 | |
|
|
cc11113b97 | |
|
|
fdd82146fd | |
|
|
6d0f2585ee | |
|
|
80998773af | |
|
|
3cdbebde97 | |
|
|
1f94de423e | |
|
|
684a74e9ce | |
|
|
800770f865 | |
|
|
b3d3a839d3 | |
|
|
7b3c846508 | |
|
|
d3c2147bdb | |
|
|
4f392f7660 | |
|
|
352f9353b3 | |
|
|
8b3554debb | |
|
|
22ea3d0024 | |
|
|
b900fa4381 | |
|
|
e486101ab1 | |
|
|
1b905ea4f0 | |
|
|
64f02fd453 | |
|
|
9b50c0305c | |
|
|
707258f919 | |
|
|
195949d302 | |
|
|
a83a3c1f1a | |
|
|
036dbcb873 | |
|
|
c98e112583 | |
|
|
429cb43fb8 | |
|
|
c395b01691 | |
|
|
c8ee2eaad1 | |
|
|
67a4212557 | |
|
|
b2c33fbad8 | |
|
|
35ede11705 | |
|
|
9004fc7777 | |
|
|
0bb85a3cff | |
|
|
ddde89ee76 | |
|
|
0076f897d4 | |
|
|
c5af9ab95e | |
|
|
09d22ee46a | |
|
|
6d7bdf8b7e | |
|
|
578f77c460 | |
|
|
c101b88b16 | |
|
|
8f9d917d21 | |
|
|
5f17685b3c | |
|
|
d62cd44730 | |
|
|
1819da93df | |
|
|
74dca33153 | |
|
|
2bd1ce6267 | |
|
|
eda499287c | |
|
|
74db1d268d | |
|
|
c8636c8c46 | |
|
|
983b1fa3f7 | |
|
|
e987f158c8 | |
|
|
feb44f2e18 | |
|
|
ed430589a8 | |
|
|
1cb5e931fc | |
|
|
c11bb609d0 | |
|
|
9df80861c0 | |
|
|
5fa1eb0c00 | |
|
|
39dc93f8d7 | |
|
|
956e7df7f2 | |
|
|
e5a4833ae4 | |
|
|
13c08fe4f0 | |
|
|
0c39ee077d | |
|
|
123e2f451c | |
|
|
42e71a0de5 | |
|
|
90d4f3d8dd | |
|
|
e0b1ad6ad9 | |
|
|
dd9744c2b3 | |
|
|
56ee8d459c | |
|
|
6ec7d5187d | |
|
|
563bec3b06 | |
|
|
7ad646016c | |
|
|
322fbc244f | |
|
|
07a2e1b711 | |
|
|
20dfcb0d59 | |
|
|
35daacd141 | |
|
|
051018ecf2 | |
|
|
01ca411464 | |
|
|
850447485d | |
|
|
15fc687b66 | |
|
|
3a50da854b | |
|
|
cd66d94f6f | |
|
|
125676633a | |
|
|
c3aefb438d | |
|
|
2feecfb5db | |
|
|
5e5b1d8f61 | |
|
|
2445e3d675 | |
|
|
c3e79da9f7 | |
|
|
f4460d0d63 | |
|
|
f3ee52d6bf | |
|
|
a80f2fd7ac | |
|
|
dfda09d8ad | |
|
|
69395a6d32 | |
|
|
a36890099f | |
|
|
21866670bf | |
|
|
61775c1b87 | |
|
|
74d3b9b925 | |
|
|
4252b344d5 | |
|
|
24792afc19 | |
|
|
214722d86e | |
|
|
a2877c65fe | |
|
|
99c33e938b | |
|
|
216172084b | |
|
|
77242858f3 | |
|
|
4eb97cf144 | |
|
|
3af2a8317b | |
|
|
1ae1fa3a3f | |
|
|
818445e403 | |
|
|
f99289f4be | |
|
|
a5dc2d9023 | |
|
|
8dfe8721be | |
|
|
154df78c22 | |
|
|
2d85e1b1fd | |
|
|
a0d2e1ac72 | |
|
|
eb7715e923 | |
|
|
d00ce565f5 | |
|
|
72ca9bb549 | |
|
|
495341bedb | |
|
|
0fd33a2aa3 | |
|
|
6b9d9e8150 | |
|
|
47ff359fe1 | |
|
|
5d2499efdc | |
|
|
ef207a49a2 | |
|
|
737b6b1c37 | |
|
|
166cee0447 | |
|
|
1a224d8ee1 | |
|
|
7dec17ca03 | |
|
|
ad994c49ac | |
|
|
92fc7de934 | |
|
|
142f2cf82e | |
|
|
de881a9a44 | |
|
|
700fcd21ed | |
|
|
b6b1f1a951 | |
|
|
6f3022b461 | |
|
|
3e2ca3bf85 | |
|
|
5816f597ec | |
|
|
b44b999e61 | |
|
|
0406e906a7 | |
|
|
f160de9c7a | |
|
|
f89c00d1fd | |
|
|
85d9682977 | |
|
|
abda6211cf | |
|
|
f6462d6244 | |
|
|
7cd141fdbf | |
|
|
653881f62f | |
|
|
576ff8fbe6 | |
|
|
7599870458 | |
|
|
46f10417d3 | |
|
|
b71c8f3c08 | |
|
|
ce0396c5bd | |
|
|
a97e0c213b | |
|
|
839394efe6 | |
|
|
585d7b048d | |
|
|
d6aa325fdc | |
|
|
eb6a5f64a9 | |
|
|
0dd8cb902e | |
|
|
e7fa7238e3 | |
|
|
2b72d22a20 | |
|
|
ce1d38f47c | |
|
|
9ae408cc70 | |
|
|
0f1ee01698 | |
|
|
7979040296 | |
|
|
c924f73204 | |
|
|
ae2a9a1052 | |
|
|
f83cb78659 | |
|
|
85a377a4c2 | |
|
|
b593d3d091 | |
|
|
524e47bf4b | |
|
|
1472494fbf | |
|
|
035540a665 | |
|
|
4f6a58f242 | |
|
|
12474ef439 | |
|
|
b188f8bd51 | |
|
|
48a9879ad9 | |
|
|
38148bbd7e | |
|
|
eb6f98bda6 | |
|
|
97c7607b95 | |
|
|
1f44ea04ba | |
|
|
1c069488bb | |
|
|
4096f29428 | |
|
|
60474d65ff | |
|
|
bc47d7f0f7 | |
|
|
ff5fef2a30 | |
|
|
18d6e6a5f6 | |
|
|
689bd131ff | |
|
|
9a515608cf | |
|
|
809e8240ad | |
|
|
98e7301c41 | |
|
|
1c41a389c4 | |
|
|
60b4dc56ad | |
|
|
71f1b9ab46 | |
|
|
55eb9ba47d | |
|
|
2bdf721d98 | |
|
|
3510e37c78 | |
|
|
591f33ed01 | |
|
|
cbf0952820 | |
|
|
6046c9b6c5 | |
|
|
3bd17aca1d | |
|
|
6ca360cd9f | |
|
|
e98a5714fd | |
|
|
08b6b37288 | |
|
|
bc80775c38 | |
|
|
4893c17f80 | |
|
|
35bfa58c70 | |
|
|
11a0922136 | |
|
|
886b9ced1a | |
|
|
095bd6323a | |
|
|
a3fe58fd97 | |
|
|
4182de7ef5 | |
|
|
803c9c19a7 | |
|
|
b71b40425f | |
|
|
8f66620199 | |
|
|
4807f56793 | |
|
|
3dbd5153c9 | |
|
|
d9b18fff82 | |
|
|
bb5395254d | |
|
|
b49b927b77 | |
|
|
e65619caf7 | |
|
|
341f8f8239 | |
|
|
4bff36e2c5 | |
|
|
fe0af63648 | |
|
|
81642987ac | |
|
|
a87274c727 | |
|
|
5eedba7d28 | |
|
|
b3673e0252 | |
|
|
a4538f07b2 | |
|
|
5ff2d6dcae | |
|
|
391defaa1e | |
|
|
9b7ef3b6bb | |
|
|
0d1a233a99 | |
|
|
e97eb2ad7c | |
|
|
09925c1281 | |
|
|
d573c998c2 | |
|
|
15325ad366 | |
|
|
7ee6ae3e08 | |
|
|
035291391a | |
|
|
b320767d15 | |
|
|
2cc4777729 | |
|
|
c62605e6a4 | |
|
|
1be96ee627 | |
|
|
8991e42292 | |
|
|
b9cfcd0619 | |
|
|
066961f04c |
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
|
|
@ -0,0 +1,977 @@
|
|||
// 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] );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
// 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,47 +1,47 @@
|
|||
// PRUSA iteration3
|
||||
// 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);
|
||||
translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30);
|
||||
translate( [ -5 , -11 , 0 ] ) cube( [ 7 , 11 , 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 , 11 , 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();
|
||||
// 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();
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
// PRUSA iteration4
|
||||
// Extruder cable clip
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module extruder_cable_clip()
|
||||
{
|
||||
|
||||
difference(){
|
||||
difference()
|
||||
{
|
||||
union()
|
||||
{
|
||||
// body shape
|
||||
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30);
|
||||
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5, $fn=30);
|
||||
translate([0,16.6,28]) cube([2.9,22.8,7]);
|
||||
}
|
||||
|
||||
// bottom cut and shape
|
||||
translate([-15,7,13]) cube([30,40,15]);
|
||||
translate([-20,28,28]) rotate([0,90,0]) cylinder(h=40,r=6, $fn=30);
|
||||
|
||||
// screws
|
||||
translate([-2.7,19.5,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50);
|
||||
translate([-2.7,36.5,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50);
|
||||
translate([-2.7,36.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
|
||||
translate([-2.7,19.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30);
|
||||
|
||||
// screw heads opening
|
||||
translate([-2.7,16.4,35]) cube([10,6.2,15]);
|
||||
translate([-2.7,33.4,35]) cube([10,6.2,15]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
difference()
|
||||
{
|
||||
// cable grip
|
||||
translate([-8,28,28]) rotate([0,90,0]) cylinder( h = 10, r = 6, $fn=30);
|
||||
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40, r = 5.5, $fn=30);
|
||||
translate([-15,7,13]) cube([30,40,15]);
|
||||
translate([-6,7,13]) cube([2,40,25]);
|
||||
translate([-2,7,13]) cube([2,40,25]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//nylon hole
|
||||
|
||||
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.8,$fn=30);}}
|
||||
|
||||
|
||||
//translate([0,0,0]) extruder_cable_clip();
|
||||
|
||||
translate([6,-28,-28]) extruder_cable_clip();
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
// 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();
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
// 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();
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
// 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 ] );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,317 @@
|
|||
// 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,82 +1,118 @@
|
|||
// PRUSA iteration3
|
||||
// Bearing holders
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <polyholes.scad>
|
||||
|
||||
bearing_diameter = 14.95;
|
||||
|
||||
module horizontal_bearing_base(bearings=1){
|
||||
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
|
||||
}
|
||||
module horizontal_bearing_holes(bearings=1){
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
difference(){
|
||||
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
|
||||
// Bearing retainers
|
||||
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
}
|
||||
|
||||
// Ziptie cutouts
|
||||
ziptie_cut_ofset = 0;
|
||||
for ( i = [0 : bearings-1] ){
|
||||
// For easier positioning I move them by half of one
|
||||
// bearing holder then add each bearign lenght and then center again
|
||||
translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){
|
||||
union(){
|
||||
translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||
translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||
}
|
||||
translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module horizontal_bearing_test(){
|
||||
difference(){
|
||||
horizontal_bearing_base(1);
|
||||
horizontal_bearing_holes(1);
|
||||
}
|
||||
translate(v=[30,0,0]) difference(){
|
||||
horizontal_bearing_base(2);
|
||||
#horizontal_bearing_holes(2);
|
||||
}
|
||||
translate(v=[60,0,0]) difference(){
|
||||
horizontal_bearing_base(3);
|
||||
horizontal_bearing_holes(3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
thinwall = 3;
|
||||
bearing_size = bearing_diameter + 2 * thinwall;
|
||||
|
||||
module vertical_bearing_base(){
|
||||
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true);
|
||||
cylinder(h = 58, r=bearing_size/2, $fn = 90);
|
||||
}
|
||||
|
||||
module vertical_bearing_holes(){
|
||||
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(bearing_diameter/2));
|
||||
translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5);
|
||||
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
|
||||
|
||||
}
|
||||
|
||||
//difference(){
|
||||
//vertical_bearing_base();
|
||||
vertical_bearing_holes();
|
||||
//}
|
||||
//horizontal_bearing_test();
|
||||
//horizontal_bearing_base(1);
|
||||
//horizontal_bearing_holes(1);
|
||||
// PRUSA iteration3
|
||||
// Bearing holders
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
use <polyholes.scad>
|
||||
|
||||
bearing_diameter = 14.95;
|
||||
|
||||
module horizontal_bearing_base(bearings=1){
|
||||
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
|
||||
}
|
||||
|
||||
module horizontal_bearing_holes(bearings=1){
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
difference(){
|
||||
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
|
||||
// Bearing retainers
|
||||
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
}
|
||||
|
||||
// Ziptie cutouts
|
||||
ziptie_cut_ofset = 0;
|
||||
for ( i = [0 : bearings-1] ){
|
||||
// For easier positioning I move them by half of one
|
||||
// bearing holder then add each bearign lenght and then center again
|
||||
translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){
|
||||
union(){
|
||||
translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||
translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50);
|
||||
}
|
||||
translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module horizontal_bearing_holes_nozip(bearings=1)
|
||||
{
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
difference()
|
||||
{
|
||||
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50);
|
||||
// Bearing retainers
|
||||
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module horizontal_bearing_holes_nozip_smooth(bearings=1)
|
||||
{
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
difference()
|
||||
{
|
||||
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=150);
|
||||
// Bearing retainers
|
||||
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module horizontal_bearing_holes_smooth_nozip(bearings=1)
|
||||
{
|
||||
cutter_lenght = 10+bearings*25;
|
||||
one_holder_lenght = 8+25;
|
||||
holder_lenght = 8+bearings*25;
|
||||
|
||||
// Main bearing cut
|
||||
difference()
|
||||
{
|
||||
translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=120);
|
||||
// Bearing retainers
|
||||
translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
thinwall = 3;
|
||||
bearing_size = bearing_diameter + 2 * thinwall;
|
||||
|
||||
module vertical_bearing_base(){
|
||||
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true);
|
||||
cylinder(h = 58, r=bearing_size/2, $fn = 250);
|
||||
}
|
||||
|
||||
module vertical_bearing_holes(){
|
||||
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(14.80/2));
|
||||
translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5);
|
||||
rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
|
||||
|
||||
}
|
||||
|
||||
//difference(){
|
||||
//vertical_bearing_base();
|
||||
vertical_bearing_holes();
|
||||
//}
|
||||
//horizontal_bearing_test();
|
||||
//horizontal_bearing_base(1);
|
||||
//horizontal_bearing_holes(1);
|
||||
//horizontal_bearing_holes_nozip(1);
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
// 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();
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
// 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
// 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
// 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
0
Printed-Parts/scad/polyholes.scad → Printed-Parts/SCAD/polyholes.scad
Executable file → Normal file
0
Printed-Parts/scad/polyholes.scad → Printed-Parts/SCAD/polyholes.scad
Executable file → Normal file
|
|
@ -0,0 +1,40 @@
|
|||
// 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]);
|
||||
}
|
||||
|
|
@ -0,0 +1,178 @@
|
|||
// 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();
|
||||
|
||||
|
|
@ -0,0 +1,462 @@
|
|||
// 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,192 @@
|
|||
// 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]);
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,193 @@
|
|||
// 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]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
// 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();
|
||||
|
|
@ -0,0 +1,176 @@
|
|||
// 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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
// 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();
|
||||
|
||||
2
Printed-Parts/scad/z-screw-cover.scad → Printed-Parts/SCAD/z-screw-cover.scad
Executable file → Normal file
2
Printed-Parts/scad/z-screw-cover.scad → Printed-Parts/SCAD/z-screw-cover.scad
Executable file → Normal file
|
|
@ -1,4 +1,4 @@
|
|||
// PRUSA iteration3
|
||||
// PRUSA iteration4
|
||||
// Z screw cover
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
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.
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
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
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.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
12308
Printed-Parts/stl/z-screw-cover.stl → Printed-Parts/STL/z-screw-cover.stl
Executable file → Normal file
12308
Printed-Parts/stl/z-screw-cover.stl → Printed-Parts/STL/z-screw-cover.stl
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,34 +0,0 @@
|
|||
// PRUSA iteration3
|
||||
// LCD cable clip
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
// body
|
||||
difference(){
|
||||
union(){
|
||||
cylinder(r=7,h = 7, $fn=30);
|
||||
translate([2,-8,0]) cube([9.5,18,3]);
|
||||
translate([2,-9,0]) cube([5.5,5,3]);
|
||||
}
|
||||
|
||||
// rod cutout
|
||||
translate([0,0,-1]) cylinder(r=5,h = 10, $fn=30);
|
||||
translate([-4.5,0,-5]) cube([9,15,15]);
|
||||
|
||||
// LCD cable cut
|
||||
translate([8,-12,-1]) cube([2,19,5]);
|
||||
translate([9,7,-1]) cylinder(r=1,h = 5, $fn=30);
|
||||
|
||||
//corners
|
||||
translate([2,-13.75,-1]) rotate([0,0,45]) cube([5,5,5]);
|
||||
translate([4,6,-1]) rotate([0,0,45]) cube([10,10,5]);
|
||||
translate([14,6,-1]) rotate([0,0,45]) cube([10,10,5]);
|
||||
translate([-3,3,-1]) rotate([0,0,45]) cube([5,5,10]);
|
||||
translate([3,3,3]) rotate([0,0,45]) cube([5,5,10]);
|
||||
}
|
||||
|
||||
// LCD cable cut ends
|
||||
translate([7.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
|
||||
translate([10.5,-8,0]) cylinder(r=1,h = 3, $fn=30);
|
||||
|
|
@ -1,189 +0,0 @@
|
|||
// PRUSA iteration3
|
||||
// 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 , 2 , 20.08 ] );
|
||||
translate( [ -77 , -14.7 , 14.2 ] ) cube( [ 155 , 2 , 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);
|
||||
|
||||
}
|
||||
translate( [ -61.5 , 1 , 1.2 ] ) cube( [ 98.5 , 42 , 10 ] ); // LCD window
|
||||
translate( [ -54.5 , 8 , -1 ] ) cube( [ 85 , 30.5 , 10 ] ); // LCD window
|
||||
|
||||
|
||||
// buzzer holes
|
||||
translate( [ 55 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
|
||||
translate( [ 57 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
|
||||
translate( [ 59 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
|
||||
translate( [ 61 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
|
||||
translate( [ 63 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
|
||||
translate( [ 65 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
|
||||
translate( [ 67 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] );
|
||||
|
||||
// buzzer holes corners
|
||||
translate( [ 66.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
|
||||
translate( [ 64.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
|
||||
translate( [ 62.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
|
||||
translate( [ 60.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
|
||||
translate( [ 58.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
|
||||
translate( [ 56.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
|
||||
translate( [ 54.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] );
|
||||
|
||||
// knob hole
|
||||
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.7 , 14 ] ) cube( [ 10 , 3 , 16 ] );
|
||||
translate( [ 55.5 , -12.7 , 14 ] ) cube( [ 10 , 3 , 16 ] );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
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 , 14.5 ] ) cube( [ 10 , 28 , 6 ] );
|
||||
|
||||
// front and rear angle
|
||||
translate( [ -81 , -9.3 , -17 ] ) rotate([35,0,0]) cube( [ 164 , 14 , 54.08 ] );
|
||||
translate( [ -78 , 72.7 , -3 ] ) rotate([45,0,0]) cube( [ 160 , 14 , 54.08 ] );
|
||||
|
||||
// M3 screw thread
|
||||
translate( [ 72.7 , 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.7 , 43.2 , 14 ] ) cylinder( h = 1, r1 = 1.4, r2=2, $fn=30);
|
||||
translate( [ -72.5 , 42.7 , 14 ] ) cylinder( h = 1, r = 1.4, r2=2, $fn=30);
|
||||
|
||||
|
||||
// ORIGINAL PRUSA text
|
||||
translate([-67,52,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
|
||||
{ text("ORIGINAL",font = "helvetica:style=Bold", size=7, center=true); }
|
||||
|
||||
translate([-18,52,0.6]) rotate([180,0,0]) linear_extrude(height = 2)
|
||||
{ text("PRUSA",font = "helvetica:style=Bold", size=11, center=true); }
|
||||
|
||||
translate( [ -66 , 41.5 , -0.4 ] ) cube( [ 45 , 1.6 , 1 ] );
|
||||
translate( [ -66 , 42.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
|
||||
translate( [ -21 , 42.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30);
|
||||
|
||||
// front cleanup
|
||||
translate( [ -100 , -64 , 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( [ 76 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 5, 80, 5 ] );
|
||||
translate( [ -82 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 5, 80, 5 ] );
|
||||
translate( [ -82 , 58 , -4 ] ) rotate([45,0,0]) cube( [ 200, 5, 5 ] );
|
||||
translate( [ -77 , 54 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
|
||||
translate( [ 78 , 54 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
|
||||
translate( [ 78 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
|
||||
translate( [ -77 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
|
||||
|
||||
// LCD corners
|
||||
translate( [ -54.5 , 9.5 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window
|
||||
translate( [ -54.5 , 37 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window
|
||||
|
||||
rotate([35,0,0]) translate( [ -78 , -7 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
|
||||
rotate([35,0,0]) translate( [ 79 , -7 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] );
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
// PRUSA iteration3
|
||||
// PSU-Y reinforcement part
|
||||
// GNU GPL v3
|
||||
// Josef Průša <iam@josefprusa.cz> and contributors
|
||||
// http://www.reprap.org/wiki/Prusa_Mendel
|
||||
// http://prusamendel.org
|
||||
|
||||
module base()
|
||||
{
|
||||
union(){
|
||||
difference(){
|
||||
union(){
|
||||
translate([ 5, -23, 0 ]) cube([ 25, 38, 17.5 ]); // horizontal plate
|
||||
translate([ -23, -2, 0 ]) cube([ 28, 17, 28 ]); // Y_Corner block
|
||||
}
|
||||
translate( [ 4 , -25 , -1 ] ) cube( [ 9 , 23 , 20 ] ); // holder side cut
|
||||
}
|
||||
difference(){
|
||||
translate([ 8, -7, 0 ]) cube([ 5, 5, 17.5 ]); // fillet block
|
||||
translate([ 8, -7, -1 ]) cylinder( h = 28, r = 5, $fn=30); // fillet cut
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module cutout()
|
||||
{
|
||||
|
||||
translate([ 22, 4 , -2 ]) cylinder( h = 20, r = 1.7, $fn=30); // M3 hole A
|
||||
translate([ 22, 4 , 8 ]) cylinder( h = 10, r1 = 1.7, r2=1.9,$fn=30); // M3 hole A
|
||||
translate([ 22, 4 , -1 ]) cylinder( h = 5, r1 = 3.4, r2=3.2,$fn=6); // M3 nut body A
|
||||
translate([ 22, 4 , -1 ]) cylinder( h = 5, r2 = 0.1, r1 = 5, $fn=6); // M3 nut hole fillet A
|
||||
#translate([ 22, 4 , 4.2 ]) cube([ 3.3 , 5.8 , 0.4 ], center = true ); // bridge force A
|
||||
|
||||
translate([ 22, -16 , -2 ]) cylinder( h = 20, r = 1.7, $fn=30); // M3 hole B
|
||||
translate([ 22, -16 , 8 ]) cylinder( h = 10, r1 = 1.7, r2=1.9, $fn=30); // M3 hole B
|
||||
translate([ 22, -16 , -1 ]) cylinder( h = 5, r1 = 3.4, r2=3.2, $fn=6); // M3 nut body B
|
||||
translate([ 22, -16 , -1 ]) cylinder( h = 5, r2 = 0.1, r1 = 5, $fn=6); // M3 nut hole B fillet
|
||||
#translate([ 22, -16 , 4.2 ]) cube([ 3.3 , 5.8 , 0.4 ], center = true ); // bridge force B
|
||||
|
||||
translate([ -13, 14 , 14 ]) rotate([90,0,0]) cylinder( h = 25, r = 5.2, $fn=30); // threaded rod
|
||||
|
||||
translate([ -13, 0 , 14 ]) rotate([90,0,0]) cylinder( h = 4, r = 13, $fn=30); // washer
|
||||
translate([ -29, -7 , 14 ]) cube([ 29, 7, 18 ]); // washer upper cut
|
||||
|
||||
translate([ -24, 13 , -1 ]) cube([ 20, 15, 30 ]); // Y_Corner cutaway
|
||||
|
||||
//vertical corners 45 degree cut
|
||||
translate( [ 12, -31 , -2 ] ) rotate( [0,0,45] ) cube([ 10 , 10 , 21 ]);
|
||||
translate([ 31, 9, -2 ]) rotate( [0,0,45] ) cube([ 10, 10, 21 ]);
|
||||
translate([ 31, -31, -2 ]) rotate( [0,0,45] ) cube([ 10, 10, 21 ]);
|
||||
|
||||
// horizontal corners 45 degree cut
|
||||
translate([ -8.5, -8, 31 ]) rotate( [0,45,0] ) cube([ 19, 40, 20 ]);
|
||||
translate([ -31, -6, 30 ]) rotate( [0,45,0]) cube([ 10, 35, 10 ]);
|
||||
translate([ -31, -6, -2 ]) rotate( [0,45,0] ) cube([ 10, 35, 10 ]);
|
||||
translate([ -26, -4, 2.5 ]) rotate( [45,0,0] ) cube([ 5, 5, 5 ]);
|
||||
translate([ -1, -4, 16.5 ]) rotate( [45,0,0] ) cube([ 5, 5, 5 ]);
|
||||
translate([ -1, -5, 20 ]) cube([ 5, 5, 5 ]);
|
||||
translate([ -5, 16.6, 20.5 ]) rotate( [45,0,0] ) cube([ 6, 5, 5 ]);
|
||||
translate([ -5, 13, 24 ]) cube([ 6, 5, 5 ]);
|
||||
translate([ -30, 15, -5 ]) rotate( [45,0,0] ) cube([ 70, 5, 5 ]);
|
||||
|
||||
translate([ 31, -7, -1 ]) rotate([0,0,45]) cylinder( h = 25, r = 3, $fn=30);
|
||||
translate([ -12, 6.5, 27 ]) rotate([0,0,45]) cylinder( h = 25, r = 4, $fn=30);
|
||||
|
||||
translate([ -5, 9, 1.5 ]) cube([ 21, 0.5, 14 ]);
|
||||
translate([ -5, 6, 1.5 ]) cube([ 20, 0.5, 14 ]);
|
||||
translate([ -5, 3, 1.5 ]) cube([ 19, 0.5, 14 ]);
|
||||
translate([ -21, 2, 5 ]) cube([ 0.5, 9, 18 ]);
|
||||
}
|
||||
|
||||
module final_part(){
|
||||
difference()
|
||||
{
|
||||
base();
|
||||
cutout();
|
||||
}
|
||||
}
|
||||
|
||||
final_part();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue