initial commit

This commit is contained in:
akukan 2018-08-29 14:28:31 +02:00 committed by GitHub
parent 7a61ad3021
commit 8897214524
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 1207923 additions and 0 deletions

View File

@ -0,0 +1,33 @@
// PRUSA MMU2
// blade-holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module blade_holder()
{
difference()
{
// base shape
translate([40,-28,5]) cube([25,4,16]);
// screws
translate([45,-20,16]) rotate([90,0,0]) cylinder(r=1.7, h=10, $fn=50);
translate([55,-20,12]) rotate([90,0,0]) cylinder(r=1.7, h=10, $fn=50);
translate([45,-22,16]) rotate([90,0,0]) cylinder(r=3.1, h=4, $fn=50);
translate([55,-22,12]) rotate([90,0,0]) cylinder(r=3.1, h=4, $fn=50);
// edges
translate([38,-24,1]) rotate([46,0,0]) cube([30,7,5]);
translate([38,-23,19]) rotate([45,0,0]) cube([30,5,5]);
// filament path
translate([59,-20,4]) rotate([90,0,0]) cylinder(r=1.3, h=10, $fn=50);
}
}
rotate([90,0,0])
blade_holder();

159
SCAD/mmu2-ele-cover.scad Normal file
View File

@ -0,0 +1,159 @@
// PRUSA MMU2
// ele-cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module nut_cut()
{
translate([0,0,2]) cylinder(r=3.1, r2=4, h=4, $fn=6);
difference()
{
cylinder(r=3.1, h=4, $fn=6);
translate([-3.65,-5,-0.4]) cube([2,10,1]);
translate([1.65,-5,-0.4]) cube([2,10,1]);
translate([-2,1.65,-0.7]) cube([4,4,1]);
translate([-2,-5.65,-0.7]) cube([4,4,1]);
}
}
module head_cut()
{
translate([0,0,2.5]) cylinder(r=3.1, r2=4, h=4, $fn=30);
difference()
{
cylinder(r=3.1, h=4, $fn=30);
translate([-3.65,-5,-0.4]) cube([2,10,1]);
translate([1.65,-5,-0.4]) cube([2,10,1]);
translate([-2,1.65,-0.7]) cube([4,4,1]);
translate([-2,-5.65,-0.7]) cube([4,4,1]);
}
}
module ele_cover()
{
difference(){
translate([-29,-21,23]) cube([125,56,15]);
difference()
{
translate([-21,-11.5,21]) cube([108,48,15]);
translate([73,8,34]) cylinder(r=5, h=3, $fn=6);
translate([30,22,34]) cylinder(r=5, h=3, $fn=6);
translate([-10,1,34]) cylinder(r=5, h=3, $fn=6);
translate([-14,1,34]) cylinder(r=5, h=3, $fn=6);
translate([-19,1,34]) cylinder(r=5, h=3, $fn=6);
}
difference()
{
translate([-30,-23,22]) rotate([45,0,0]) cube([130,47,10]);
translate([-30,-12.5,22]) rotate([0,0,0]) cube([130,30,30]);
}
// angled side for buttons
translate([-17,-20,22]) rotate([55,0,0]) cube([33,13,10]);
// LED
for (i =[0:4])
{
translate([22+(i*13.716),-21,29.5]) cube([4,10,3]);
translate([22+(i*13.716),-10,31]) rotate([90,0,0]) cylinder(r=1.5, h=18, $fn=50);
translate([26+(i*13.716),-10,31]) rotate([90,0,0]) cylinder(r=1.5, h=18, $fn=50);
}
// buttons
translate([11,-11,28.5]) rotate([90,0,0]) cylinder(r=2.5, h=18, $fn=50);
translate([-1,-11,28.5]) rotate([90,0,0]) cylinder(r=2.5, h=18, $fn=50);
translate([-13,-11,28.5]) rotate([90,0,0]) cylinder(r=2.5, h=18, $fn=50);
// reset button
translate([78,7.5,28.5]) rotate([0,90,0]) cylinder(r=2.5, h=20, $fn=50);
// usb
translate([80,-8.5,29]) cube([20,12,7]);
translate([78,1.5,29]) rotate([0,90,0]) cylinder(r=2, h=20, $fn=50);
translate([78,-6.5,29]) rotate([0,90,0]) cylinder(r=2, h=20, $fn=50);
translate([75,-6.5,27]) cube([25,8,3]);
// mounting screws
translate([73,8,28.5]) cylinder(r=1.65, h=15, $fn=50);
translate([30,22,28.5]) cylinder(r=1.65, h=15, $fn=50);
translate([-10,1,28.5]) cylinder(r=1.65, h=15, $fn=50);
translate([73,8,35.0]) nut_cut();
translate([30,22,35.0]) nut_cut();
translate([-10,1,35.0]) nut_cut();
// edges
translate([-30,-16,33]) rotate([45,0,0]) cube([130,10,10]);
translate([-40,-16,37.5]) rotate([0,30,0]) cube([10,60,10]);
translate([99.5,-16,30]) rotate([0,-30,0]) cube([10,60,10]);
// ventilation
for (i =[0:3])
{
translate([15-(i*6),0,30]) cube([4,23,20]);
translate([17-(i*6),0,30]) cylinder(r=2, h=20, $fn=6);
translate([17-(i*6),23,30]) cylinder(r=2, h=20, $fn=6);
}
for (i =[0:1])
{
translate([-10-(i*6),8,30]) cube([4,15,20]);
translate([-8-(i*6),8,30]) cylinder(r=2, h=20, $fn=6);
translate([-8-(i*6),23,30]) cylinder(r=2, h=20, $fn=6);
}
// sheep ventilation
translate([21,0,30]) cube([15,15.5,20]);
translate([23,0,30]) cylinder(r=2, h=20, $fn=6);
translate([34,0,30]) cylinder(r=2, h=20, $fn=6);
translate([23,15.5,30]) cylinder(r=2, h=20, $fn=6);
translate([34,15.5,30]) cylinder(r=2, h=20, $fn=6);
translate([23,-1.75,30]) cube([10,19,20]);
translate([-4,-2,35]) cube([35,19.5,2]);
translate([-19,5.5,35]) cube([40,19.5,2]);
// mounting screws
translate([-24,8,35]) head_cut();
translate([-24,8,10]) cylinder(r=1.65, h=30, $fn=50);
translate([91,14,35]) head_cut();
translate([91,14,10]) cylinder(r=1.65, h=30, $fn=50);
for (i =[0:3])
{
translate([40+(i*14),-8,37.7]) cube([10,10,10]);
translate([40+(i*14),22,37.7]) cube([10,10,10]);
}
//version
translate([-19,-4.5,36.5]) rotate([0,180,180]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=6, center=true); }
}
difference()
{
translate([-21,5,34]) cube([2,6,2]);
translate([-24,8,35]) cylinder(r=3.1, h=4, $fn=50);
}
}
rotate([0,180,0])
ele_cover();

View File

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

View File

@ -0,0 +1,67 @@
// PRUSA MMU2
// front-ptfe-holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module front_PTFE_holder()
{
difference()
{
union()
{
// base shape
translate([-16,-30,-15]) cube([84,15,19]);
translate([-16,-25,-15]) cube([84,10,22.5]);
}
// blade space
translate([-17,-28,2.2]) rotate([45,0,0]) cube([86,2.7,2.7]);
translate([-17,-31,3.5]) cube([86,2.7,2.7]);
translate([-17,-25,5.5]) rotate([45,0,0]) cube([86,4,4]);
// PTFE housing
for (i =[0:4])
{
translate([3+(i*14),-15,4]) rotate([90,0,0]) cylinder(r=2.2, h=10, $fn=50);
translate([3+(i*14),-15,4]) rotate([90,0,0]) cylinder(r=1.3, h=18, $fn=50);
translate([3+(i*14),-25,4]) rotate([90,0,0]) cylinder(r1=1.3, r2=1.8,h=6, $fn=50);
translate([3+(i*14),-23,4]) rotate([90,0,0]) cylinder(r1=1.4, r2=1.1,h=5, $fn=50);
translate([3+(i*14),-14,4]) rotate([90,0,0]) cylinder(r2=2.1, r1=2.6,h=3, $fn=50);
}
// angled front side
translate([-19,-21,-25]) rotate([52,0,0]) cube([95,10,19]);
translate([-19,-38.5,-15]) rotate([5,0,0]) cube([91,10,19]);
translate([-10,-42,-15]) rotate([0,0,50]) cube([15,30,30]);
translate([60,-39,-15]) rotate([0,0,-20]) cube([15,30,30]);
// front PTFE tubes holder screws
translate([9,-14,-1.5]) rotate([90,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([9,-14,-1.5]) rotate([90,0,0]) cylinder(r2=1.65, r1=2.5, h=2, $fn=50);
translate([9,-20,-1.5]) rotate([90,0,0]) cylinder(r=3.1, h=10, $fn=50);
translate([23,-14,-1.5]) rotate([90,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([23,-14,-1.5]) rotate([90,0,0]) cylinder(r2=1.65, r1=2.5, h=2, $fn=50);
translate([23,-20,-1.5]) rotate([90,0,0]) cylinder(r=3.1, h=10, $fn=50);
translate([37,-14,-1.5]) rotate([90,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([37,-14,-1.5]) rotate([90,0,0]) cylinder(r2=1.65, r1=2.5, h=2, $fn=50);
translate([37,-20,-1.5]) rotate([90,0,0]) cylinder(r=3.1, h=10, $fn=50);
translate([51,-14,-1.5]) rotate([90,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([51,-14,-1.5]) rotate([90,0,0]) cylinder(r2=1.65, r1=2.5, h=2, $fn=50);
translate([51,-20,-1.5]) rotate([90,0,0]) cylinder(r=3.1, h=10, $fn=50);
//version
translate([-2,-15.5,-7]) rotate([-90,180,0]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=6, center=true); }
}
}
rotate([-90,0,0])
front_PTFE_holder();

223
SCAD/mmu2-idler-body.scad Normal file
View File

@ -0,0 +1,223 @@
// PRUSA MMU2
// idler-body
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module motor_screws()
{
translate([-34,15.5,15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,15.5,15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
translate([-24.1,15.5-3.2,15.5]) cube([15,6.4,10]);
translate([-10,15.5-2,15.5]) rotate([0,-30,0]) cube([20,4,10]);
translate([-34,-15.5,15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,-15.5,15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
translate([-24.1,-15.5-3.2,15.5]) cube([15,6.4,10]);
translate([-10,-15.5-2,15.5]) rotate([0,-30,0]) cube([20,4,10]);
translate([-34,15.5,-15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,15.5,-15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
translate([-34,-15.5,-15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,-15.5,-15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
}
module idler_spring_screws()
{
translate([0,-27,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([0,-27.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([0,-26.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-1.7,-27.5,-4.2]) cube([1.7*2,1,10]);
translate([0,-27,9]) rotate([-175,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([0,-27,9]) rotate([-185,0,0]) cylinder(r=1.7, h=30, $fn=50);
difference()
{
union()
{
translate([0,-27,5.5]) rotate([0,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([0,-27.5,5.5]) rotate([3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([0,-26.5,5.5]) rotate([-3,0,0]) cylinder(r=3.5, h=30, $fn=50);
}
translate([-5,-35,-4.5]) cube([10,20,10]);
translate([-5,-33.6,-4.2]) cube([10,4.4,10]);
translate([-5,-24.8,-4.2]) cube([10,4.4,10]);
}
}
module idler_body_base()
{
difference()
{
// body
union()
{
translate([-29,-25,0]) cube([125,50,23]);
translate([-29,-25,-20]) cube([10,49,42]);
translate([70.5,0,0]) rotate([0,90,0]) cylinder(r=7, h=10, $fn=50);
// spring screw mounts
translate([86,-33,-2]) cube([10,57,25]);
translate([-27,-33,-2]) cube([10,57,25]);
translate([91,-33,-2]) rotate([0,0,0]) cylinder(r=5, h=25, $fn=6);
translate([-22,-33,-2]) rotate([0,0,0]) cylinder(r=5, h=25, $fn=6);
//translate([-27,-20,-8]) rotate([20,0,0]) cube([8,10,10]);
// hold together shaft housing
translate([81,30,-24]) rotate([0,90,0]) cylinder(r=11, h=10, $fn=50);
translate([-29,30,-24]) rotate([0,90,0]) cylinder(r=11, h=10, $fn=50);
translate([81,21,-24]) cube([10,20,46]);
translate([-29,21,-24]) cube([10,20,46]);
}
// shaft
translate([70,0,0]) rotate([0,90,0]) cylinder(r=2.55, h=12, $fn=50);
translate([80.5,0,0]) rotate([0,90,0]) cylinder(r=3, h=20, $fn=50);
translate([81,-3,-10]) cube([20,6,10]);
translate([85,0,-11.5]) rotate([45,0,0]) cube([15,10,10]);
translate([83.5,0,-9]) rotate([0,0,0]) cylinder(r=3, h=12, $fn=50);
translate([83.5,0,0]) rotate([0,0,0]) cylinder(r=1.4, h=12, $fn=50);
translate([83.5,0,2]) rotate([0,0,0]) cylinder(r2=1.4,r1=1.7, h=3, $fn=50);
// hold together shafts
translate([80,30,-24]) rotate([0,90,0]) cylinder(r=2.55, h=12, $fn=50);
translate([-30,30,-24]) rotate([0,90,0]) cylinder(r=2.55, h=12, $fn=50);
translate([89,30,-24]) rotate([0,90,0]) cylinder(r1=2.55, r2=3, h=3, $fn=50);
translate([-30,30,-24]) rotate([0,90,0]) cylinder(r2=2.55, r1=3, h=3, $fn=50);
translate([80,30,-25.5]) rotate([0,90,0]) cylinder(r=1.5, h=12, $fn=50);
translate([-30,30,-25.5]) rotate([0,90,0]) cylinder(r=1.5, h=12, $fn=50);
translate([80,30,-19]) rotate([0,90,0]) cylinder(r=1.4, h=12, $fn=50);
translate([-30,30,-19]) rotate([0,90,0]) cylinder(r=1.4, h=12, $fn=50);
translate([89,30,-19]) rotate([0,90,0]) cylinder(r1=1.4, r2=1.8, h=3, $fn=50);
translate([-31,30,-19]) rotate([0,90,0]) cylinder(r2=1.4, r1=1.8, h=3, $fn=50);
// idler bearing spaces
translate([-0.5,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+14,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+28,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+42,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+56,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
// idler body space
translate([-5,0,0]) rotate([0,90,0]) cylinder(r=18, h=75.5, $fn=50);
translate([-30,0,0]) rotate([0,90,0]) cylinder(r=11.5, h=5, $fn=50);
translate([-30,0,-8]) rotate([0,90,0]) cylinder(r=4, h=5, $fn=50);
// motor coupling space
translate([-26,0,0]) rotate([0,90,0]) cylinder(r=18, h=22, $fn=50);
translate([-24.1,-10,-30]) cube([15,20,20]);
// motor screws
motor_screws();
// idler tension springs and screws
translate([-22,-27,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([91,-27,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-22,-27.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([91,-27.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-22,-26.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([91,-26.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-22,-27,6]) rotate([0,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([-22,-26.5,6.5]) rotate([-3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([-22,-27.5,6.5]) rotate([3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,-27,6]) rotate([0,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,-27.5,6.5]) rotate([3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,-26.5,6.5]) rotate([-3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,0,0]) idler_spring_screws();
translate([-22,0,0]) idler_spring_screws();
// front edge
translate([-30,-35,-27]) cube([15,15,25]);
translate([-30,-24,-35]) rotate([45,0,0]) cube([15,15,15]);
translate([-30,-40,-23]) rotate([45,0,0]) cube([150,15,25]);
// rear edge
translate([-30,44,-20]) rotate([25,0,0]) cube([130,20,55]);
translate([105.2,11.5,-20]) rotate([0,0,45]) cube([20,20,55]);
translate([-19,44,-20]) rotate([25,0,0]) cube([100,20,55]);
translate([-19,20,-17]) rotate([10,0,0]) cube([100,20,20]);
// easy printing
translate([10,3,22.7]) cube([15,15,1]);
translate([30,3,22.7]) cube([15,15,1]);
translate([70,3,22.7]) cube([15,15,1]);
translate([50,3,22.7]) cube([15,15,1]);
translate([10,-17,22.7]) cube([15,15,1]);
translate([30,-17,22.7]) cube([15,15,1]);
translate([50,-17,22.7]) cube([15,15,1]);
translate([70,-17,22.7]) cube([15,15,1]);
translate([-10,-7,22.7]) cube([15,15,1]);
// endstop mount
translate([-0,15,-3]) cube([20,12,8]);
// cover nuts
translate([91,14,10]) cylinder(r=1.65, h=25, $fn=50);
translate([91,14,22]) cylinder(r1=1.65, r2=2.2,h=2, $fn=50);
translate([-24,8,10]) cylinder(r=1.65, h=25, $fn=50);
translate([-24,8,22]) cylinder(r1=1.65, r2=2.2,h=2, $fn=50);
translate([91-2.9,14-2.8,18]) cube([10,5.6,2]);
translate([-34+2.8,8-2.8,18]) cube([10,5.6,2]);
translate([91-1.65,14-2.8,17.4]) cube([1.65*2,5.6,2]);
translate([-27.3+1.65,8-2.8,17.4]) cube([1.65*2,5.6,2]);
// cover edges
translate([-17,-34,18]) rotate([-31,0,0]) cube([33,10,20]);
translate([-17,-36,18]) rotate([-31,0,0]) cube([103,10,20]);
translate([-17,-25,-3]) rotate([-45,0,0]) cube([88,11,11]);
//version
translate([-5,24.4,7]) rotate([-90,180,0]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=5, center=true); }
}
}
module endstop_block()
{
difference()
{
translate([-1,15.5,3]) cube([22,9.5,5]);
translate([-1,14,2.4]) rotate([45,0,0]) cube([22,10,5]);
translate([-0.8,11,2]) rotate([0,0,45]) cube([5,5,5]);
translate([20.8,11,2]) rotate([0,0,45]) cube([5,5,5]);
}
}
module idler_body()
{
endstop_block();
idler_body_base();
}
rotate([0,180,0])
idler_body();

161
SCAD/mmu2-idler.scad Normal file
View File

@ -0,0 +1,161 @@
// PRUSA MMU2
// idler
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module idler_segment_l()
{
translate([0,0,-12]) rotate([0,90,0]) cylinder(r=8.5, h=6, $fn=50);
translate([-6,0,-12]) rotate([0,90,0]) cylinder(r=2.55, h=60, $fn=50);
translate([-70,0,-12.5]) rotate([0,90,0]) cylinder(r=1.6, h=75, $fn=50);
translate([-70,0,-12]) rotate([0,90,0]) cylinder(r=1.4, h=75, $fn=50);
translate([10,0,-12]) rotate([0,90,0]) cylinder(r=2.7, h=44, $fn=50);
translate([0,-8.5,-32]) cube([6,17,20]);
}
module idler_segment_r()
{
translate([0,0,-12]) rotate([0,90,0]) cylinder(r=8.5, h=6, $fn=50);
translate([-48,0,-12]) rotate([0,90,0]) cylinder(r=2.55, h=60, $fn=50);
translate([0,0,-12]) rotate([0,90,0]) cylinder(r=1.4, h=80, $fn=50);
translate([0,0,-12.5]) rotate([0,90,0]) cylinder(r=1.6, h=80, $fn=50);
translate([-48-17,0,-12]) rotate([0,90,0]) cylinder(r=2.7, h=60, $fn=50);
translate([0,-8.5,-32]) cube([6,17,20]);
}
module idler()
{
difference()
{
union()
{
// base body
translate([-3,0,0]) rotate([0,90,0]) cylinder(r=17, h=71, $fn=50);
translate([-5,0,0]) rotate([0,90,0]) cylinder(r2=17,r1=16, h=2, $fn=50);
translate([68,0,0]) rotate([0,90,0]) cylinder(r1=17, r2=16, h=2, $fn=50);
// motor shaft coupling
rotate([-60,0,0])
difference()
{
union()
{
translate([-25,0,0]) rotate([0,90,0]) cylinder(r=9, h=20, $fn=50);
translate([-25,-6,5]) cube([20,12,9]);
translate([-25,-5,-5]) rotate([60,0,0]) cube([20,16,10]);
}
// screws
translate([-10,0,0]) cylinder(r=1.6, h=12.5, $fn=50);
translate([-10,0,10.4]) cylinder(r=3.1, h=5, $fn=50);
translate([-20,0,0]) cylinder(r=1.6, h=12.5, $fn=50);
translate([-20,0,10.4]) cylinder(r=3.1, h=5, $fn=50);
// nuts
translate([-12.8,-2.8,7]) cube([5.6,10,2]);
translate([-22.8,-2.8,7]) cube([5.6,10,2]);
translate([-12.8,2.8,6.9]) cube([5.6,10,2.2]);
translate([-22.8,2.8,6.9]) cube([5.6,10,2.2]);
translate([-26,6.5,10]) rotate([30,0,0]) cube([21,16,10]);
}
}
// shaft reinforcement
difference()
{
translate([-21,0,0]) rotate([0,90,0]) cylinder(r=7, h=15, $fn=50);
translate([-21,0,0]) rotate([0,90,0]) cylinder(r=6, h=15, $fn=50);
translate([-30,-3,15]) rotate([-60,0,0]) cube([30,100,10]);
}
// idler bearing segments
rotate([-160/2,0,0])
{
translate([0,0,0]) idler_segment_r();
translate([14,0,0]) rotate([40,0,0]) idler_segment_r();
translate([28,0,0]) rotate([80,0,0]) idler_segment_l();
translate([42,0,0]) rotate([120,0,0]) idler_segment_l();
translate([56,0,0]) rotate([160,0,0]) idler_segment_l();
}
// shaft
difference()
{
union()
{
translate([-26,0,0]) rotate([0,90,0]) cylinder(r=2.55, h=25, $fn=50);
translate([-26,0,0]) rotate([0,90,0]) cylinder(r2=2.55, r1=3, h=3, $fn=50);
}
translate([-25,-0.15,5]) rotate([-60,0,0]) cube([20,12,9]);
}
translate([62,0,0]) rotate([0,90,0]) cylinder(r=2.55, h=4, $fn=50);
translate([-26,0,0]) rotate([0,90,0]) cylinder(r=2, h=150, $fn=50);
// shaft bearing
translate([65,0,0]) rotate([0,90,0]) cylinder(r=8, h=6, $fn=50);
translate([64,0,0]) rotate([0,90,0]) cylinder(r=6.5, h=6, $fn=50);
translate([68.5,0,0]) rotate([0,90,0]) cylinder(r1=8, r2=9, h=5, $fn=50);
// endstop cut
difference()
{
translate([-1,0,0]) rotate([0,90,0]) cylinder(r=20, h=22, $fn=50);
translate([-1,0,0]) rotate([0,90,0]) cylinder(r=14.5, h=22, $fn=50);
difference()
{
translate([-5,-48,-30]) cube([30,50,50]);
translate([-5,-16,9]) cube([30,30,30]);
}
}
// removal opening
translate([-1,6.72,-10.5]) rotate([-50,0,0]) cube([22,10,3.2]);
translate([-1,8,-10.5]) rotate([-110,0,0]) cube([22,5,3.2]);
translate([-1,8,-12.2]) rotate([-10,0,0]) cube([22,5,3.2]);
translate([-1,14,-6.8]) rotate([40,0,0]) cube([22,3,5]);
translate([-1,13,-8]) rotate([00,0,0]) cube([22,3,5]);
translate([-1,12,-4]) rotate([-10,0,0]) cube([22,5,3.2]);
translate([-1,15.5,-4]) rotate([30,0,0]) cube([22,5,3.2]);
translate([-1,-20,10.9]) rotate([0,0,0]) cube([1,50,5]);
translate([20,-20,10.9]) rotate([0,0,0]) cube([1,50,5]);
translate([-1,-19.95,4.0]) rotate([30,0,0]) cube([22,10,10]);
// flat bottom
translate([-30,-25,11]) cube([150,50,15]);
// version
translate([6,-1.5,10.5]) rotate([0,0,0]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=5, center=true); }
}
}
rotate([0,180,0])
idler();

276
SCAD/mmu2-pulley-body.scad Normal file
View File

@ -0,0 +1,276 @@
// PRUSA MMU2
// pulley-body
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module front_PTFE()
{
for (i =[0:4])
{
translate([3+(i*14),-10.5,4]) rotate([90,0,0]) cylinder(r=2.2, h=15, $fn=50);
translate([3+(i*14),-10.5,5.5]) rotate([90,0,0]) cylinder(r=1, h=15, $fn=50);
translate([3+(i*14),-15.5,4]) rotate([90,0,0]) cylinder(r1=2.2, r2=2.4, h=5, $fn=50);
translate([3+(i*14),0,4]) rotate([90,0,0]) cylinder(r=1.1, h=35, $fn=50);
translate([3+(i*14),-2,4]) rotate([90,0,0]) cylinder(r1=2,r2=1.1, h=5, $fn=50);
}
}
module rear_PTFE()
{
for (i =[0:4])
{
translate([3+(i*14),15,4]) rotate([90,0,0]) cylinder(r=1.2, h=15, $fn=50);
translate([3+(i*14),11.5,4]) rotate([90,0,0]) cylinder(r2=1.2, r1=1.5, h=3, $fn=50);
translate([3+(i*14),15,4]) rotate([92,0,0]) cylinder(r1=1.1, r2=1.3, h=15, $fn=50);
translate([3+(i*14),25,4]) rotate([90,0,0]) cylinder(r=2.05, h=15, $fn=50);
translate([3+(i*14),17,4.25]) rotate([95,0,0]) cylinder(r=2.05, h=3, $fn=50);
translate([3+(i*14),36.4,1.4]) rotate([80,0,0]) cylinder(r=2.05, h=15, $fn=50);
translate([2+(i*14),4.5,4]) cube([2,4,10]);
}
}
module pulley_body()
{
difference()
{
// body
union()
{
// body
translate([-18.5,-20,-24]) cube([114.5,41,31]);
translate([-27,-65,-25]) cube([123,92,1]);
translate([-27,-65,-25]) cube([123,2,3]);
difference()
{
translate([-5,-5,-24]) cube([72,41,31]);
translate([-15,40,-0]) rotate([45,0,0]) cube([90,41,31]);
}
translate([86,-69,-24]) cube([10,90,45]);
translate([-27,-69,-24]) cube([10,90,26]);
translate([-27,-69,-24]) cube([10,47,45]);
translate([-18.5,-30,-24]) cube([1.5,45,31]);
// shaft bearing body
translate([-18.5,0,-0.5]) rotate([0,90,0]) cylinder(r=9.5, h=11.5, $fn=50);
// left hold together bearing housing
translate([-18.5,30,0]) rotate([0,90,0]) cylinder(r=11, h=14, $fn=50);
translate([-18.5,-15,-9]) cube([14,45,16]);
translate([-18.5,-7,-24]) cube([14,45,24]);
// right hold together bearing housing
translate([66.5,30,0]) rotate([0,90,0]) cylinder(r=11, h=14, $fn=50);
translate([66.5,15,-9]) cube([14,15,16]);
translate([66.5,-7,-24]) cube([14,45,24]);
}
// left hold together shaft bearing
translate([-28.5,30,0]) rotate([0,90,0]) cylinder(r=13, h=10, $fn=50);
translate([-18.5,30,0]) rotate([0,90,0]) cylinder(r=8, h=5, $fn=50);
translate([-18.5,30,0]) rotate([0,90,0]) cylinder(r=6.5, h=6, $fn=50);
translate([-15,30,0]) rotate([0,90,0]) cylinder(r=2.8, h=6, $fn=50);
translate([-20,30,0]) rotate([0,90,0]) cylinder(r2=8, r1=8.5, h=3, $fn=50);
translate([-19.5,30,5]) rotate([0,90,0]) cylinder(r=4, h=6, $fn=50);
// right hold together shaft bearing
translate([80.5,30,0]) rotate([0,90,0]) cylinder(r=13, h=12, $fn=50);
translate([75.5,30,0]) rotate([0,90,0]) cylinder(r=8, h=6, $fn=50);
translate([74.5,30,0]) rotate([0,90,0]) cylinder(r=6.5, h=6, $fn=50);
translate([71.5,30,0]) rotate([0,90,0]) cylinder(r=2.8, h=6, $fn=50);
translate([79,30,0]) rotate([0,90,0]) cylinder(r1=8, r2=8.5, h=3, $fn=50);
translate([80.5,19.5,30]) rotate([0,90,0]) cube([30,30,12]);
translate([75.5,30,5]) rotate([0,90,0]) cylinder(r=4, h=6, $fn=50);
// hold together shafts removal
translate([-15,30,0]) rotate([0,90,0]) cylinder(r=2, h=100, $fn=50);
translate([-2,28,0]) cube([65,4,10]);
// selector shafts
translate([-28,-48,-3]) rotate([0,90,0]) cylinder(r=4.3, h=130, $fn=50);
translate([-26,-48,16]) rotate([0,90,0]) cylinder(r=2.7, h=130, $fn=50);
translate([-26,-48,-19]) rotate([0,90,0]) cylinder(r=2.6, h=130, $fn=50);
translate([-19,-48,16]) rotate([0,90,0]) cylinder(r1=2.65, r2=3,h=3, $fn=50);
translate([-19,-48,-19]) rotate([0,90,0]) cylinder(r1=2.6, r2=3, h=3, $fn=50);
translate([94,-48,16]) rotate([0,90,0]) cylinder(r1=2.65, r2=3,h=3, $fn=50);
translate([94,-48,-19]) rotate([0,90,0]) cylinder(r1=2.6, r2=3, h=3, $fn=50);
translate([-30,-48,16]) rotate([0,90,0]) cylinder(r=1.5, h=15, $fn=50);
translate([-30,-48,-19]) rotate([0,90,0]) cylinder(r=1.5, h=15, $fn=50);
// PTFE tubes
front_PTFE();
rear_PTFE();
// rear PTFE tubes holder
translate([-2,15,4]) cube([65,30,10]);
translate([-2,15,5]) rotate([-10,0,0]) cube([65,30,10]);
// pulley space
translate([-7,0,0]) rotate([0,90,0]) cylinder(r=5, h=71, $fn=50);
translate([-7,-5,0]) cube([71,10,10]);
translate([-7,0,24.5]) rotate([0,90,0]) cylinder(r=21, h=71, $fn=50);
// grub screws space
for (i =[-6:14:50])
{
translate([i,0,0]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=50);
}
// coupling space
translate([63.9,0,-0.5]) rotate([0,90,0]) cylinder(r=11.5, h=32, $fn=50);
translate([63.9,-11,-0.5]) cube([22.1,22,10]);
// shaft bearing
translate([-28,0,-0.5]) rotate([0,90,0]) cylinder(r=2.8, h=15, $fn=50);
translate([-14,0,-0.5]) rotate([0,90,0]) cylinder(r=8, h=5, $fn=50);
translate([-15,0,-0.5]) rotate([0,90,0]) cylinder(r=6.5, h=6, $fn=50);
translate([-10.5,0,-0.5]) rotate([0,90,0]) cylinder(r1=8, r2=9, h=3, $fn=50);
translate([-9,0,-0.5]) rotate([0,90,0]) cylinder(r=9, h=7, $fn=50);
translate([-9,-9,-0.5]) cube([7,18,10]);
translate([-7,-6,2]) cube([7,12,10]);
translate([-28.5,0,-3.5]) rotate([0,90,0]) cylinder(r=5, h=10, $fn=50);
translate([-28,-5,-3.5]) cube([9.5,10,10]);
translate([-28,-0,-3.5]) rotate([45,0,0]) cube([9.5,20,20]);
// top bearing cut
translate([-19,-9,7]) cube([17,18,10]);
translate([-14,-5,3]) cube([17,10,10]);
// rear PTFE tubes holder screws
for (i =[10:14:52])
{
translate([i,14,-30]) rotate([-20,0,0]) cylinder(r=1.7, h=36, $fn=50);
translate([i,14,-30]) rotate([-20,0,0]) cylinder(r=3.1, h=31, $fn=6);
translate([i,14,-30]) rotate([-20,0,0]) cylinder(r=3.6, h=28, $fn=6);
translate([i,14,-30]) rotate([-20,0,0]) cylinder(r1=4, r2=3.1, h=22, $fn=6);
translate([i,23.1,-5]) rotate([-20,0,0]) cylinder(r1=3.6, r2=3.1, h=3, $fn=6);
}
// front PTFE tubes holder screws
for (i=[9:14:23])
{
translate([i,-14,-1.5]) rotate([90,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([i-2.8,-18,-1.5-2.9]) cube([5.6,2,19]);
translate([i+28,-14,-1.5]) rotate([90,0,0]) cylinder(r=1.65, h=20, $fn=50);
translate([i-2.8+28,-18,-1.5-2.9]) cube([5.6,2,19]);
}
// front corners
translate([-29,-68,-35]) rotate([45,0,0]) cube([130,10,20]);
translate([-29,-73,12]) rotate([45,0,0]) cube([130,20,10]);
translate([-29.5,-77.7,-35]) rotate([0,0,35]) cube([10,10,90]);
// front waste pocket and material saving
difference()
{
translate([-17,-32,-15]) rotate([-60,0,0]) cube([78,20,10]);
translate([-17,-58,-34]) cube([103,50,10]);
}
// rear corners
translate([-29,27,12]) rotate([45,0,0]) cube([130,10,20]);
translate([-29,-21,12]) rotate([20,0,0]) cube([100,10,20]);
// rear angled side
translate([-35,49.6,-45]) rotate([55,0,0]) cube([150,41,31]);
translate([-35,21,-45]) cube([16.5,41,31]);
translate([80.5,21,-45]) cube([16.5,41,31]);
// idler spring screws
translate([-22,-27,0]) rotate([0,0,0]) cylinder(r=1.8, h=50, $fn=50);
translate([91,-27,0]) rotate([0,0,0]) cylinder(r=1.8, h=50, $fn=50);
translate([-22-2.9,-27-2.8,14]) cube([10,5.6,2.1]);
translate([91-2.9,-27-2.8,14]) cube([20,5.6,2.1]);
translate([-22-1.8,-27-2.8,14.4]) cube([1.8*2,5.6,2.1]);
translate([91-1.8,-27-2.8,14.4]) cube([1.8*2,5.6,2.1]);
// pulley motor screws and opening
translate([93,0,-0.5]) rotate([0,90,0]) cylinder(r=11.5, h=5, $fn=50);
translate([80,0,7.5]) rotate([0,90,0]) cylinder(r=4, h=20, $fn=50);
translate([91,-15.5,-15.5-0.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([91,15.5,-15.5-0.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([91,-15.5,15.5-0.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([91,15.5,15.5-0.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([76,-15.5,-15.5-0.5]) rotate([0,90,0]) cylinder(r=3.1, h=15, $fn=50);
translate([76,15.5,-15.5-0.5]) rotate([0,90,0]) cylinder(r=3.1, h=15, $fn=50);
translate([81,-15.5,15.5-0.5]) rotate([0,90,0]) cylinder(r=3.1, h=10, $fn=50);
translate([81,15.5,15.5-0.5]) rotate([0,90,0]) cylinder(r=3.1, h=10, $fn=50);
translate([76,-15.5-3.1,-25-0.5]) cube([15,6.2,10]);
translate([76,15.5-3.1,-25-0.5]) cube([15,6.2,10]);
translate([66,-15.5-1.5,-33-0.5]) rotate([0,-30,0]) cube([20,3,10]);
translate([66,15.5-1.5,-33-0.5]) rotate([0,-30,0]) cube([20,3,10]);
// selector motor screws and opening
translate([93,-48,-3]) rotate([0,90,0]) cylinder(r=11.5, h=5, $fn=50);
translate([93,-48,5]) rotate([0,90,0]) cylinder(r=4, h=5, $fn=50);
translate([85,-48,-3]) rotate([0,90,0]) cylinder(r=8, h=15, $fn=50);
translate([85,-48,1.5]) rotate([0,90,0]) cylinder(r=4, h=15, $fn=50);
translate([91,-48-15.5,-3-15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([91,-48-15.5,-3+15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([91,-48+15.5,-3+15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([81,-48-15.5,-3-15.5]) rotate([0,90,0]) cylinder(r=3.1, h=10, $fn=50);
translate([81,-48-15.5,-3+15.5]) rotate([0,90,0]) cylinder(r=3.1, h=10, $fn=50);
translate([81,-48+15.5,-3+15.5]) rotate([0,90,0]) cylinder(r=3.1, h=10, $fn=50);
translate([85,-48-10,-3]) rotate([0,90,0]) cylinder(r=4, h=5, $fn=50);
translate([85,-48+10,-3]) rotate([0,90,0]) cylinder(r=4, h=5, $fn=50);
translate([85,-48-10,-7]) cube([5,20,8]);
// frame holders
translate([91,7,-26]) cylinder(r=1.65, h=15, $fn=50);
translate([-22,7,-26]) cylinder(r=1.65, h=15, $fn=50);
translate([-32+2.9,4.1,-21]) cube([10,5.8,2]);
translate([91-2.9,4.1,-21]) cube([10,5.8,2]);
translate([-23.65,4.1,-20.6]) cube([1.65*2,5.8,2]);
translate([89.35,4.1,-20.6]) cube([1.65*2,5.8,2]);
translate([91,-57,-26]) cylinder(r=1.65, h=15, $fn=50);
translate([-22,-57,-26]) cylinder(r=1.65, h=15, $fn=50);
translate([-32+2.9,-59.9,-21]) cube([10,5.8,2]);
translate([91-2.9,-59.9,-21]) cube([10,5.8,2]);
translate([-23.65,-59.9,-20.6]) cube([1.65*2,5.8,2]);
translate([89.35,-59.9,-20.6]) cube([1.65*2,5.8,2]);
// material saving
translate([-24,-33,-3]) rotate([0,90,0]) cylinder(r=9, h=9, $fn=6);
translate([-24,-61,-3]) rotate([0,90,0]) cylinder(r=7, h=9, $fn=6);
translate([-30,-70,7.1]) rotate([40,0,0]) cube([20,30,10]);
// better printing
translate([0,-15,-25.75]) cube([15,15,1]);
translate([25,-15,-25.75]) cube([15,15,1]);
translate([-15,-37,-25.75]) cube([15,15,1]);
translate([-15,-58,-25.75]) cube([15,15,1]);
for (i=[5:20:65])
{
translate([i,-37,-25.75]) cube([15,15,1]);
translate([i,-58,-25.75]) cube([15,15,1]);
}
//version
translate([-14,-5.5,-24.4]) rotate([0,180,180]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=5, center=true); }
}
}
pulley_body();

View File

@ -0,0 +1,52 @@
// PRUSA MMU2
// rear-PTFE-holder
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module rear_PTFE_holder()
{
difference()
{
// base shape
translate([-1.8,15.2,0]) cube([64.6,20.8,7]);
for (i =[10:14:52])
{
translate([i,14,-30]) rotate([-20,0,0]) cylinder(r=1.7, h=46, $fn=50);
translate([i,26.75,5]) rotate([-20,0,0]) cylinder(r=3.1, h=46, $fn=50);
}
for (i =[0:4])
{
translate([3+(i*14),15,4]) rotate([90,0,0]) cylinder(r=1.1, h=15, $fn=50);
translate([3+(i*14),22,4]) rotate([90,0,0]) cylinder(r=2.05, h=15, $fn=50);
translate([3+(i*14),36.4,1.4]) rotate([80,0,0]) cylinder(r=2, h=15, $fn=50);
}
difference()
{
translate([-2,15,-4]) cube([65,30,10]);
translate([-2,15,4]) cube([65,30,10]);
translate([-2,15,5]) rotate([-10,0,0]) cube([65,30,10]);
}
// markers
difference()
{
translate([5,17,6.5]) cube([10,10,10]);
translate([5,18,5.5]) rotate([0,0,45]) cube([10,10,12]);
translate([8,25,5.5]) rotate([0,0,-45]) cube([10,10,12]);
}
//version
translate([49,17,6.6]) rotate([0,0,0]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=5, center=true); }
}
}
rotate([0,180,0])
rear_PTFE_holder();

View File

@ -0,0 +1,23 @@
// PRUSA MMU2
// s-holder-endstop
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
difference()
{
union()
{
// outside shape
translate([0,0,0]) cylinder( h=1, r=11.5, $fn=60 );
translate([0,0,0]) cylinder( h=4, r=7.5, $fn=60 );
translate([0,0,4]) cylinder( h=2, r=7.5, r2=6, $fn=60 );
}
// rod
translate([0,0,0]) cylinder( h=5, r=4.5, $fn=60 );
translate([0,0,-0.5]) cylinder( h=2.5, r2=4.5, r1=5, $fn=60 );
}

View File

@ -0,0 +1,170 @@
// PRUSA MMU2
// selector-finda
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module blade()
{
difference()
{
translate([0,0,0]) cube([17,0.5,9]);
translate([11.5,-0.5,10]) rotate([0,61,0]) cube([21,1.5,9]);
translate([-9.3,-0.5,9]) rotate([0,61,0]) cube([21,1.5,9]);
}
}
module selector()
{
difference()
{
union()
{
// base shape
translate([40,-61,-23.5]) cube([25,30.5,44.5]);
translate([40,-57.75,5.1]) cube([25,30,15.9]);
translate([50,-61,21]) cube([15,22,10]);
translate([59,-51,22]) cylinder(r=9.2, h=9, $fn=50);
}
// filament path
translate([59,-30,4]) rotate([90,0,0]) cylinder(r=1.3, h=40, $fn=50);
translate([59,-27,4]) rotate([90,0,0]) cylinder(r2=1.3, r1=1.4,h=15, $fn=50);
translate([59,-60,4]) rotate([90,0,0]) cylinder(r2=2.5, r1=1.3,h=2, $fn=50);
translate([59,-55,4]) rotate([90,0,0]) cylinder(r2=1.3, r1=2.5,h=3, $fn=50);
translate([59,-52,4]) rotate([90,0,0]) cylinder(r2=2.5, r1=1.3,h=3, $fn=50);
// cutter space
translate([39,-39,2.1]) cube([16,12,3]);
translate([39,-39,2]) rotate([-20,0,0]) cube([16,10,3.2]);
difference()
{
translate([37,-38,-3.5]) rotate([-30,-30,0]) cube([13,10,5]);
translate([39,-39,5]) cube([16,12,3]);
translate([39,-48,-10]) cube([16,12,30]);
}
// TR nut screws
translate([55,-33.5,-3]) rotate([0,90,0]) cylinder(r=1.65, h=12, $fn=50);
translate([9,-52.5,-3]) rotate([0,90,0]) cylinder(r=1.65, h=180, $fn=50);
// TR nut nuts
translate([58,-33.5-2.8,-5.8]) cube([2.1,7,5.6]);
translate([40,-52.5,-3]) rotate([0,90,0]) cylinder(r=3.1, h=21, $fn=6);
translate([36,-52.5,-3]) rotate([0,90,0]) cylinder(r=3.3, h=21, $fn=6);
// TR nut
translate([9,-43,-3]) rotate([0,90,0]) cylinder(r=4.6, h=180, $fn=50);
translate([9,-38.8,-3]) rotate([0,90,0]) cylinder(r=1, h=180, $fn=50);
translate([63.5,-43,-3]) rotate([0,90,0]) cylinder(r=12.8, h=5, $fn=50);
translate([37,-43,-3]) rotate([0,90,0]) cylinder(r2=4.6, r1=6, h=5, $fn=50);
translate([63.5,-50,-8]) cube([4,50,10]);
translate([63.5,-45,-18]) cube([4,4,10]);
// linear rods
translate([-28,-43,16]) rotate([0,90,0]) cylinder(r=3.05, h=130, $fn=50);
translate([-28,-43,-19]) rotate([0,90,0]) cylinder(r=3.05, h=130, $fn=50);
translate([30,-43-6,-19.25]) cube([40,12,0.5]);
translate([30,-41.5,-19.25-1.9]) rotate([45,0,0]) cube([40,3,3]);
translate([30,-43-4,15.75]) cube([40,10,0.5]);
translate([30,-41.5,15.75-1.9]) rotate([45,0,0]) cube([40,3,3]);
translate([39,-43,16]) rotate([0,90,0]) cylinder(r2=3.05,r1=3.5, h=4, $fn=50);
translate([45,-43,16]) rotate([0,90,0]) cylinder(r1=3.05,r2=3.3, h=4.01, $fn=50);
translate([49,-43,16]) rotate([0,90,0]) cylinder(r2=3.05,r1=3.3, h=4, $fn=50);
translate([54,-43,16]) rotate([0,90,0]) cylinder(r1=3.05,r2=3.3, h=4.01, $fn=50);
translate([58,-43,16]) rotate([0,90,0]) cylinder(r2=3.05,r1=3.3, h=4, $fn=50);
translate([39,-43,-19]) rotate([0,90,0]) cylinder(r2=3.05,r1=3.5, h=4, $fn=50);
translate([45,-43,-19]) rotate([0,90,0]) cylinder(r1=3.05,r2=3.3, h=4.01, $fn=50);
translate([49,-43,-19]) rotate([0,90,0]) cylinder(r2=3.05,r1=3.3, h=4, $fn=50);
translate([54,-43,-19]) rotate([0,90,0]) cylinder(r1=3.05,r2=3.3, h=4.01, $fn=50);
translate([58,-43,-19]) rotate([0,90,0]) cylinder(r2=3.05,r1=3.3, h=4, $fn=50);
// blade holder
difference()
{
translate([39.4,-28.15,6.0]) rotate([0,10.0,0]) blade();
translate([40.5,-29,3.1]) rotate([0,-24,0]) cube([4,2,11]);
}
// blade holder screws
translate([45,-27,16]) rotate([90,0,0]) cylinder(r=1.7, h=10, $fn=50);
translate([55,-27,12]) rotate([90,0,0]) cylinder(r=1.7, h=10, $fn=50);
// blade holder nuts
translate([55-2.9,-33,12-2.95]) cube([5.8,2.0,13]);
translate([55-2.9,-34,17]) cube([5.8,4,13]);
translate([45-2.9,-33,16-2.95]) cube([5.8,2.0,13]);
// edges
translate([39,-37,-30]) rotate([-20,0,0]) cube([40,12,30]);
translate([39,-54,-35]) rotate([50,0,0]) cube([40,12,40]);
// front cover mount
translate([59,-48,-8]) rotate([90,0,0]) cylinder(r=1.65, h=30, $fn=50);
translate([59,-59,-8]) rotate([90,0,0]) cylinder(r1=1.65, r2=2.2,h=3, $fn=50);
translate([59-2.8,-58.5,-8-2.8]) cube([10,2.1,5.6]);
translate([59,-48,15]) rotate([90,0,0]) cylinder(r=1.65, h=30, $fn=50);
translate([59,-59,15]) rotate([90,0,0]) cylinder(r1=1.65, r2=2.2,h=3, $fn=50);
translate([59-2.8,-58.5,15-2.8]) cube([10,2.1,5.6]);
// F.I.N.D.A.
translate([59,-47.5,4.5]) cylinder(r=1, h=30, $fn=60);
translate([59,-51,6.5]) cylinder(r=4.05, h=30, $fn=60);
translate([59,-51,6.5]) cylinder(r2= 4.05,r1=4.2, h=5, $fn=60);
translate([59,-51,29]) cylinder(r1=4.05, r2=5, h=10, $fn=60);
translate([59,-51,6.70]) sphere(4.2, $fn=100);
translate([58.5,-65,21]) cube([1,15,30]);
translate([58.5,-65,21]) cube([10,15,1]);
translate([49,-57,26.5]) rotate([0,90,0]) cylinder(r=1.65, h=15, $fn=50);
translate([62,-57,26.5]) rotate([0,90,0]) cylinder(r=3.2, h=6, $fn=50);
translate([53,-67+2.9,21+2.8]) cube([2.2,10,5.6]);
// edges
translate([47,-45,32]) rotate([-45,0,0]) cube([20,15,10]);
translate([30,-82,32]) rotate([-50,0,0]) cube([20,30,30]);
// better printing
// blade holder
translate([55-2.9,-33,12-1.7]) cube([5.8,2.35,3.4]);
translate([55-1.7,-33,12-1.7]) cube([3.4,2.6,3.4]);
translate([45-2.9,-33,16-1.7]) cube([5.8,2.35,3.4]);
translate([45-1.7,-33,16-1.7]) cube([3.4,2.6,3.4]);
// front plate holder
translate([59-1.65,-58.5,-8-2.8]) cube([3.3,2.4,5.6]);
translate([59-1.65,-58.5,15-2.8]) cube([3.3,2.4,5.6]);
translate([59-1.65,-58.5,-8-1.65]) cube([3.3,2.7,3.3]);
translate([59-1.65,-58.5,15-1.65]) cube([3.3,2.7,3.3]);
//version
translate([49,-40,-23.3]) rotate([0,180,180]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=5, center=true); }
}
}
rotate([90,0,0])
selector();

View File

@ -0,0 +1,39 @@
// PRUSA MMU2
// selector-front-plate
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module front_plate()
{
difference()
{
translate([50,-65.5,-13.5]) cube([15,4.5,34.5]);
// screws
translate([59,-48,-8]) rotate([90,0,0]) cylinder(r=1.65, h=30, $fn=50);
translate([59,-48,15]) rotate([90,0,0]) cylinder(r=1.65, h=30, $fn=50);
translate([59,-60,-8]) rotate([90,0,0]) cylinder(r2=1.65,r1=2.5, h=1.5, $fn=50);
translate([59,-60,15]) rotate([90,0,0]) cylinder(r2=1.65,r1=2.5, h=1.5, $fn=50);
translate([59,-65,-8]) rotate([90,0,0]) cylinder(r=3.2, h=5, $fn=50);
translate([59,-65,15]) rotate([90,0,0]) cylinder(r=3.2, h=5, $fn=50);
// brass insert
translate([59,-60,4]) rotate([90,0,0]) cylinder(r=3.8, h=6, $fn=50);
translate([59,-63,4]) rotate([90,0,0]) cylinder(r2=5, r1=3.5, h=2, $fn=50);
translate([59,-59.5-1,4]) rotate([90,0,0]) cylinder(r1=5, r2=3.5, h=2, $fn=50);
translate([59,-64,4]) rotate([90,0,0]) cylinder(r1=5,r2=5.5, h=2, $fn=50);
// edges
translate([45,-64,-15]) rotate([0,0,-45]) cube([15,4,40]);
translate([45,-64,-18.5]) rotate([45,0,0]) cube([25,4,42]);
translate([45,-71,19]) rotate([-45,0,0]) cube([25,4,40]);
}
}
rotate([-90,0,0])
front_plate();

10025
STEP/mmu2-frame-holder.step Normal file

File diff suppressed because it is too large Load Diff

7804
STEP/mmu2-s-holder-a.step Normal file

File diff suppressed because it is too large Load Diff

17836
STEP/mmu2-s-holder-b.step Normal file

File diff suppressed because it is too large Load Diff

31007
STEP/mmu2-s-holder-base.step Normal file

File diff suppressed because it is too large Load Diff

6190
STL/mmu2-blade-holder.stl Normal file

File diff suppressed because it is too large Load Diff

33126
STL/mmu2-ele-cover.stl Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

BIN
STL/mmu2-frame-holder.stl Normal file

Binary file not shown.

47098
STL/mmu2-front-PTFE-holder.stl Normal file

File diff suppressed because it is too large Load Diff

70618
STL/mmu2-idler-body.stl Normal file

File diff suppressed because it is too large Load Diff

76428
STL/mmu2-idler.stl Normal file

File diff suppressed because it is too large Load Diff

208952
STL/mmu2-pulley-body.stl Normal file

File diff suppressed because it is too large Load Diff

25930
STL/mmu2-rear-PTFE-holder.stl Normal file

File diff suppressed because it is too large Load Diff

219788
STL/mmu2-s-holder-base.stl Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

72928
STL/mmu2-s-holder-lever-a.stl Normal file

File diff suppressed because it is too large Load Diff

219354
STL/mmu2-s-holder-lever-b.stl Normal file

File diff suppressed because it is too large Load Diff

126898
STL/mmu2-selector-finda.stl Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff