1
0
mirror of https://github.com/nophead/Mendel90.git synced 2025-08-05 12:57:24 +02:00

Merge branch 'master' of github.com:zignig/Mendel90

This commit is contained in:
Simon Kirkby
2012-03-24 16:36:58 +08:00
16 changed files with 31722 additions and 30664 deletions

3
bom.py
View File

@@ -119,7 +119,8 @@ def boms(machine):
stack.pop() stack.pop()
else: else:
main.add_part(s) main.add_part(s)
main.assemblies[stack[-1]].add_part(s) if stack:
main.assemblies[stack[-1]].add_part(s)
main.print_bom(True, open(bom_dir + "/bom.txt","wt")) main.print_bom(True, open(bom_dir + "/bom.txt","wt"))

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,7 @@ plate_list = [
"cable_clips.stl", "cable_clips.stl",
"d_motor_brackets.stl", "d_motor_brackets.stl",
"ribbon_clamps.stl", "ribbon_clamps.stl",
"wades_extruder.stl",
"x_carriage_parts.stl", "x_carriage_parts.stl",
"y_bearing_mounts.stl", "y_bearing_mounts.stl",
"y_belt_anchors.stl", "y_belt_anchors.stl",

View File

@@ -79,6 +79,7 @@ wades_big_gear_color = plastic_part_color("lime");
wades_small_gear_color = plastic_part_color("red"); wades_small_gear_color = plastic_part_color("red");
wades_idler_block_color = plastic_part_color("lime"); wades_idler_block_color = plastic_part_color("lime");
wades_gear_spacer_color = plastic_part_color("red"); wades_gear_spacer_color = plastic_part_color("red");
wades_clamp_color = plastic_part_color("red");
x_carriage_color = plastic_part_color("red"); x_carriage_color = plastic_part_color("red");
x_belt_clamp_color = plastic_part_color("lime"); x_belt_clamp_color = plastic_part_color("lime");
x_end_bracket_color = plastic_part_color("lime"); x_end_bracket_color = plastic_part_color("lime");

View File

@@ -1,18 +1,20 @@
// //
// Mendel90 // Mendel90
// //
// Originally based on Josef Prusa's version but much hacked
//
// GNU GPL v2 // GNU GPL v2
// nop.head@gmail.com // nop.head@gmail.com
// hydraraptor.blogspot.com // hydraraptor.blogspot.com
// //
// Originally based on Josef Prusa's version but much hacked
//
include <conf/config.scad> include <conf/config.scad>
use <d-motor_bracket.scad> use <d-motor_bracket.scad>
Stoffle15_10mm = [10, 13, 5, false]; Stoffle15_10mm = [10, 13, 5, false];
Stoffle15_16mm = [16.5, 10, 6, false]; Stoffle15_16mm = [16.3, 10, 6, false];
Mendel90_12mm = [12, 10, 6 + 3/2 - 1, false];
Mendel90_12mm = [12, 10, 6 + 3/2, true];
Mendel90_12p5mm= [12.5, 10, 6.25 + 3/2, true];
function insulator_diameter(type) = type[0]; function insulator_diameter(type) = type[0];
function insulator_depth(type) = type[1]; function insulator_depth(type) = type[1];
@@ -21,7 +23,6 @@ function insulator_clamped(type) = type[3];
hot_end = Stoffle15_16mm; hot_end = Stoffle15_16mm;
clamp_width = 2 * (insulator_screw_pitch(hot_end) + screw_clearance_radius(M3_cap_screw) + min_wall);
module b608(h=7){ module b608(h=7){
difference(){ difference(){
@@ -43,14 +44,16 @@ motor_min = 26 + 5;
motor_max = 36; motor_max = 36;
motor_x = (motor_min + motor_max) / 2; motor_x = (motor_min + motor_max) / 2;
motor_leeway = motor_max - motor_min; motor_leeway = motor_max - motor_min;
thickness = 5; thickness = 5;
base_thickness = 6; base_thickness = 6;
width = 28;
height = 52;
mount_pitch = 25;
filament_x = 75; filament_x = 75;
filament_z = 15; filament_z = 15;
width = 28;
mount_pitch = 25;
pscrew_x = 60; pscrew_x = 60;
pscrew_y = [17.5, 45.5]; pscrew_y = [17.5, 45.5];
@@ -59,6 +62,10 @@ pscrew_z = [8.5, 21.5];
driven_x = 70; driven_x = 70;
driven_y = 31.5; driven_y = 31.5;
clamp_depth = insulator_depth(hot_end) - 1;
clamp_width = 2 * (insulator_screw_pitch(hot_end) + max(screw_clearance_radius(M3_cap_screw) + min_wall, clamp_depth / 2));
clamp_height = width - filament_z - 0.5;
function extruder_connector_offset() = [-filament_x + motor_x, filament_z - thickness, motor_y] + d_motor_connector_offset(NEMA17); function extruder_connector_offset() = [-filament_x + motor_x, filament_z - thickness, motor_y] + d_motor_connector_offset(NEMA17);
module wades_block_stl() { module wades_block_stl() {
@@ -68,29 +75,27 @@ module wades_block_stl() {
screw_pitch = insulator_screw_pitch(hot_end); screw_pitch = insulator_screw_pitch(hot_end);
insulator_depth = insulator_depth(hot_end); insulator_depth = insulator_depth(hot_end);
color(wades_block_color)
difference(){ difference(){
union(){ union(){
cube([81, 52, thickness]); // motor plate cube([81, height, thickness]); // motor plate
cube([filament_x + 25 - 3.5, base_thickness, 28]); // base cube([filament_x + 25 - 3.5, base_thickness, width]); // base
translate([filament_x + 25 - 3.5, base_thickness / 2, filament_z]) translate([filament_x + 25 - 3.5, base_thickness / 2, filament_z])
for(a = [-90, 90]) for(a = [-90, 90])
rotate([a, 0, 0]) rotate([a, 0, 0])
teardrop(r = 10.6, h = base_thickness, truncate = false, center = true); teardrop(r = 10.6, h = base_thickness, truncate = false, center = true);
translate([57, 0, 0]) translate([57, 0, 0])
cube([26, 52, width]); // bearing housing cube([24 + 2 * filament_width, 52, width]); // bearing housing
translate([80,1,0]) // fillet translate([80,1.5,0]) // fillet
cube([11,11, width]); cube([11,11, width]);
} }
translate([91,base_thickness,-1]) translate([92,base_thickness + 1,-1])
rotate([0,0,45]) rotate([0,0,45])
cube([9,9,30]); // chamfer on fillet cube([10,9,30]); // chamfer on fillet
translate([-11,-1,30]) rotate([0,60,0]) cube([30, base_thickness + 2, 60]); // base chamfers translate([-11,-1,30]) rotate([0,60,0]) cube([30, base_thickness + 2, 60]); // slope on base
translate([80, -1, width + eta]) cube([40, base_thickness + 2, 10]); translate([80, -1, width + eta]) cube([40, base_thickness + 2, 10]); // remove top of teardrop
translate([filament_x, 20, filament_z]) translate([filament_x, 20, filament_z])
rotate([90,0,0]) rotate([90,0,0])
@@ -129,29 +134,37 @@ module wades_block_stl() {
translate([-5,-1,-1]) cube([16,60,30]); // truncates tail translate([-5,-1,-1]) cube([16,60,30]); // truncates tail
translate([driven_x, driven_y, 7.5]) poly_cylinder(r = M8_clearance_radius + 0.25,h=30); // hole for hobbed bolt difference() {
translate([driven_x, driven_y, 6.99 + layer_height]) poly_cylinder(r = M8_clearance_radius + 0.25,h=30); // hole for hobbed bolt
translate([driven_x + 2, driven_y - 5, 11 + 8 - eta]) cube([10, 10, layer_height]); // support bridge
}
translate([driven_x, driven_y, 21.01]) b608(); // top bearing socket translate([driven_x, driven_y, 21.01]) b608(); // top bearing socket
translate([83, driven_y, 11.5]) b608(8); // clearance for idler translate([filament_x + 8, driven_y, 11.5]) b608(8); // clearance for idler
translate([driven_x, driven_y, -0.01]) b608(); // bottom bearing socket translate([driven_x, driven_y, -0.01]) b608(); // bottom bearing socket
// //
// Hole for hot end // Hole for hot end
// //
translate([filament_x, -15 + insulator_depth, filament_z]) translate([filament_x, 0, filament_z])
rotate([90,0,0]) { rotate([90,0,0]) {
teardrop(h = 30, r = insulator / 2, center=true); // insulator teardrop_plus(h = insulator_depth * 2, r = insulator / 2, center=true); // insulator
translate([0,0, -14.5]) translate([0,0, -insulator_depth + 0.5])
teardrop(h = 1 , r = insulator / 2 + 1, center=true); // relief to avoid radius so end is flat teardrop_plus(h = 1 , r = insulator / 2 + 1, center=true); // relief to avoid radius so end is flat
} }
if(insulator_clamped(hot_end)) if(insulator_clamped(hot_end)) {
translate([filament_x - clamp_width / 2, -eta, filament_z]) translate([filament_x, 0, filament_z - 0.5])
cube([clamp_width, insulator_depth, 100]); rounded_rectangle([clamp_width + 1, insulator_depth * 2, 20], r = insulator_depth / 2, center = false);
translate([filament_x, insulator_depth / 2, filament_z - 3])
slot(l = screw_pitch * 2, r = M3_clearance_radius, h = 100, center = false);
}
for(side = [-1, 1]) for(side = [-1, 1])
translate([filament_x + screw_pitch * side, screw_depth, -1]) translate([filament_x + screw_pitch * side, screw_depth, -1])
cylinder(h = 30, r = (3.3 / 2), $fn = 9); // retaining screws rotate([0, 0, -90 + 90 * side])
poly_cylinder(h = 30, r = M3_clearance_radius); // retaining screws
} }
} }
@@ -172,12 +185,6 @@ module wades_gear_spacer_stl() {
bfbext=false; bfbext=false;
*difference() {
wadeblock(bfbext);
*translate([-1,-1, filament_z])
cube([200,100,100]);
}
function extruder_connector_height() = motor_y - d_motor_bracket_offset(NEMA17); function extruder_connector_height() = motor_y - d_motor_bracket_offset(NEMA17);
module wades_big_gear_stl() { module wades_big_gear_stl() {
@@ -248,10 +255,37 @@ module wade_idler_assembly() {
} }
} }
module wades_clamp_stl() {
stl("wades_clamp");
screw_pitch = insulator_screw_pitch(hot_end);
difference() {
slot(l = screw_pitch * 2, r = clamp_depth / 2, h = clamp_height, center = false);
translate([0, 0, clamp_height + 0.5])
rotate([90, 0, 0])
teardrop_plus(h = insulator_depth(hot_end) * 2, r = insulator_diameter(hot_end) / 2, center=true);
for(side = [-1, 1])
translate([screw_pitch * side, 0, -1])
rotate([0, 0, -90 + 90 * side])
poly_cylinder(h = 30, r = M3_clearance_radius); // retaining screws
translate([0, 0, clamp_height - 3])
slot(l = screw_pitch * 2, r = M3_clearance_radius, h = 100, center = false);
}
}
module wades_assembly() { module wades_assembly() {
assembly("wades_assembly"); assembly("wades_assembly");
color(wades_block_color) render() wades_block_stl(); color(wades_block_color) render()
difference() {
wades_block_stl();
*translate([-1,-1, filament_z])
cube([200,100,100]);
}
// idler screws, washers and springs // idler screws, washers and springs
for(i = [0,1]) for(i = [0,1])
@@ -336,19 +370,40 @@ module wades_assembly() {
color(extruder_nozzle_color) cylinder(h = nozzle_length / 2, r = 3, center = true); color(extruder_nozzle_color) cylinder(h = nozzle_length / 2, r = 3, center = true);
} }
for(side = [-1, 1])
translate([filament_x + insulator_screw_pitch(hot_end) * side, screw_depth, width]) if(insulator_clamped(hot_end)) {
screw(M3_cap_screw, 30); translate([filament_x, screw_depth, filament_z + 0.5 + clamp_height])
rotate([180, 0, 0])
color(wades_clamp_color) render() wades_clamp_stl();
for(side = [-1, 1]) {
translate([filament_x + insulator_screw_pitch(hot_end) * side, screw_depth, 0])
rotate([180, 0, 0])
screw_and_washer(M3_cap_screw, 35);
translate([filament_x + insulator_screw_pitch(hot_end) * side, screw_depth, filament_z + 0.5 + clamp_height])
nut_and_washer(M3_nut, true);
}
}
else
for(side = [-1, 1])
translate([filament_x + insulator_screw_pitch(hot_end) * side, screw_depth, width])
screw(M3_cap_screw, 30);
end("wades_assembly"); end("wades_assembly");
} }
if(1) module wades_extruder_stl() {
wades_block_stl();
translate([96, driven_y + 1, 0]) rotate([0,0,90]) wades_idler_block_stl();
translate([motor_max, motor_y, 0]) wades_gear_spacer_stl();
if(insulator_clamped(hot_end))
translate([15 + clamp_width / 2, height - clamp_depth / 2, 0]) wades_clamp_stl();
}
if(0)
rotate([90, 0, 0]) rotate([90, 0, 0])
wades_assembly(); wades_assembly();
else
else { wades_extruder_stl();
wades_block_stl();
*wades_idler_block_stl();
*wades_gear_spacer_stl();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

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