1
0
mirror of https://github.com/nophead/Mendel90.git synced 2025-08-31 16:51:45 +02:00

This version used for kits 7-

Nut traps moved further from the edge of most parts.
Fixed ribbon clamp slots too deep.
Modified for JHeadMK5.
Changed bed thermsitor type.
Extruder block is now thinner so it can protrude below the carriage.
The idler bolts no go the other way round so the nuts are captive instead of the heads.
60 mm carriage fan.
Spool holders now have tabs for nut traps instead of P clip.
Belt lengths corrected and rounded to tooth pitch.
Metal pulleys modelled.
exploded variable now 0/1 instead of boolean.
Dibond version now has mouse holes for wires and the Y wires run underneath the base.
Added jigs for inserting Jhead and drilling tubes.

Hobbed bolt not shows hob position on the BOM.
Everything in the kit is now in the model and so appears on the BOM.
   Added ribbon cable, wire, heat shrink sleeving, foam spunge, PLA sample.

Completed the kit build manual.
Sub assemblies restructured to reflect the build order.
View files added to make the assembly diagrams.

Fixed sheets.py not working first time run.
This commit is contained in:
Chris Palmer
2012-11-17 10:33:00 +00:00
parent 4141634677
commit 2f70825078
530 changed files with 627906 additions and 537822 deletions

View File

@@ -9,8 +9,6 @@
//
include <conf/config.scad>
include <positions.scad>
frame_nutty = cnc_sheets && frame_nuts;
base_nutty = cnc_sheets && base_nuts;
wall = 3;
@@ -25,7 +23,7 @@ tab_length = psu_hole_x + washer_diameter(M4_washer) / 2 + 1;
tab_height = psu_hole_z * 2;
tab_height2 = psu_hole_z * 2 + psu_hole_z2 - psu_hole_z;
tab_thickness = 5;
nut_depth = frame_nutty ? nut_trap_depth(screw_nut(frame_screw)) : 0;
nut_depth = frame_nut_traps ? nut_trap_depth(frame_nut) : 0;
module atx_long_bracket_stl() {
stl("atx_long_bracket");
@@ -44,7 +42,7 @@ module atx_long_bracket_stl() {
translate([end * (length / 2 - tab_length / 2 - eta), -(width - tab_thickness) / 2, (height - thickness) / 2])
cube([tab_length, tab_thickness, height], center = true);
if(frame_nutty)
if(frame_nut_traps)
for(end = [-1, 1])
translate([end * (length / 2 - tab_length - width / 2), 0, eta])
linear_extrude(height = thickness / 2 + nut_depth, convexity = 5)
@@ -57,8 +55,8 @@ module atx_long_bracket_stl() {
rotate([0, 0, 180])
for(end = [-1, 1])
translate([end * (length / 2 - tab_length - width / 2), 0, thickness / 2 + nut_depth + eta])
if(frame_nutty)
nut_trap(screw_clearance_radius(frame_screw), nut_radius(screw_nut(frame_screw)), nut_depth);
if(frame_nut_traps)
nut_trap(screw_clearance_radius(frame_screw), nut_radius(frame_nut), nut_depth);
else
poly_cylinder(r = screw_clearance_radius(frame_screw), h = 100, center = true);
@@ -70,43 +68,17 @@ module atx_long_bracket_stl() {
}
module atx_tall_bracket_stl() {
stl("atx_tall_bracket");
length = psu_height(psu) + wall;
translate([0, 0, 0]) difference() {
cube([length, width * 2, width]);
translate([-wall, -width - wall, wall])
cube([length, width * 2, width]);
translate([thickness + nut_depth, width, -0.5])
cube([length, width * 2, width + 1]);
translate([thickness + nut_depth, 3 * width / 2, width / 2])
rotate([90, 0, 90])
if(frame_nutty)
nut_trap(screw_clearance_radius(frame_screw), nut_radius(screw_nut(frame_screw)), nut_depth, true);
else
teardrop_plus(r = screw_clearance_radius(frame_screw), h = 100, center = true);
}
}
frame_washer = screw_washer(frame_screw);
sb_wall = 4;
sb_frame_offset = psu_y - psu_width(psu) / 2 - gantry_Y - sheet_thickness(frame);
sb_corner_offset = max(5, fixing_block_height() - sb_frame_offset + base_clearance);
sb_clearance = 0.5;
sb_frame_width = 1 + 2 * sb_wall + (frame_nutty ? nut_radius(screw_nut(frame_screw)) * 2 : washer_diameter(screw_washer(frame_screw)));
sb_base_width = 1 + 2 * sb_wall + ( base_nutty ? nut_radius(screw_nut( base_screw)) * 2 : washer_diameter(screw_washer( base_screw)));
sb_frame_width = 1 + 2 * sb_wall + (frame_nut_traps ? nut_radius(frame_nut) * 2 : washer_diameter(frame_washer));
sb_base_width = 1 + 2 * sb_wall + ( base_nut_traps ? nut_radius(base_nut) * 2 : washer_diameter(base_washer));
sb_height = max(sb_base_width, sb_frame_width);
sb_frame_thickness = part_base_thickness + (frame_nutty ? nut_trap_depth(screw_nut(frame_screw)) : 0);
sb_base_thickness = part_base_thickness + ( base_nutty ? nut_trap_depth(screw_nut( base_screw)) : 0);
sb_frame_thickness = part_base_thickness + (frame_nut_traps ? nut_trap_depth(frame_nut) : 0);
sb_base_thickness = part_base_thickness + ( base_nut_traps ? nut_trap_depth(base_nut) : 0);
sb_base_offset = psu_z - psu_length(psu) / 2;
sb_frame_screw = sb_frame_offset > (frame_nutty ? sb_frame_thickness
sb_frame_screw = sb_frame_offset > (frame_nut_traps ? sb_frame_thickness
: sb_frame_thickness + washer_thickness(frame_washer) + screw_head_height(frame_screw));
module atx_short_bracket_stl() {
@@ -135,8 +107,8 @@ module atx_short_bracket_stl() {
if(sb_frame_screw)
translate([sb_corner_offset + sb_frame_width / 2, -sb_frame_offset + sb_frame_thickness, sb_height / 2])
rotate([90, 0, 0])
if(frame_nutty)
nut_trap(screw_clearance_radius(frame_screw), nut_radius(screw_nut(frame_screw)), nut_trap_depth(screw_nut(frame_screw)), true);
if(frame_nut_traps)
nut_trap(screw_clearance_radius(frame_screw), nut_radius(frame_nut), nut_trap_depth(frame_nut), true);
else
teardrop(r = screw_clearance_radius(frame_screw), h = 100, center = true);
@@ -145,8 +117,8 @@ module atx_short_bracket_stl() {
translate([-sb_base_offset + sb_base_thickness, sb_corner_offset + sb_base_width / 2, sb_height / 2])
rotate([90, 0, 90])
if(frame_nutty)
nut_trap(screw_clearance_radius(base_screw), nut_radius(screw_nut(base_screw)), nut_trap_depth(screw_nut(base_screw)), true);
if(frame_nut_traps)
nut_trap(screw_clearance_radius(base_screw), nut_radius(base_nut), nut_trap_depth(base_nut), true);
else
teardrop(r = screw_clearance_radius(base_screw), h = 100, center = true);
}
@@ -154,7 +126,7 @@ module atx_short_bracket_stl() {
module atx_screw_positions(psu, base = false) {
if(base)
translate([-psu_length(psu) / 2 - sb_base_offset + sb_base_thickness - (base_nutty ? nut_trap_depth(screw_nut(base_screw)) : 0),
translate([-psu_length(psu) / 2 - sb_base_offset + sb_base_thickness - (base_nut_traps ? nut_trap_depth(base_nut) : 0),
psu_width(psu) / 2 - sb_corner_offset - sb_base_width / 2,
psu_height(psu) + sb_wall - sb_height / 2 + sb_clearance])
rotate([90, 0, 90])
@@ -165,13 +137,9 @@ module atx_screw_positions(psu, base = false) {
translate([end * (length / 2 - tab_length - width / 2) - offset, -psu_width(psu) / 2 - width / 2, thickness])
child();
*translate([psu_length(psu) / 2 + wall - width / 2, psu_width(psu) / 2 + width / 2 + wall, thickness])
rotate([0, 0, 90])
child();
if(sb_frame_screw)
translate([-psu_length(psu) / 2 + sb_corner_offset + sb_frame_width / 2,
psu_width(psu) / 2 + sb_frame_offset - sb_frame_thickness + (frame_nutty ? nut_trap_depth(screw_nut(frame_screw)) : 0),
psu_width(psu) / 2 + sb_frame_offset - sb_frame_thickness + (frame_nut_traps ? nut_trap_depth(frame_nut) : 0),
psu_height(psu) + sb_wall - sb_height / 2 + sb_clearance])
rotate([90, 0, 0])
child();
@@ -183,6 +151,13 @@ second_resistor_pos = controller == Melzi ?
[psu_length(psu) / 2 + 3 * al_clad_wire_length(res) / 2 + 30, -psu_width(psu) / 2 + al_clad_width(res) / 2, 0]
: [psu_length(psu) / 2 + al_clad_wire_length(res) / 2 + 15, -psu_width(psu) / 2 + 4 * al_clad_width(res) / 2, 0];
sleeving = [
[HSHRNK24, 3], // -5V, -12V and PWRGOOD
[HSHRNK32, 1], // 3 * 3.3V
[HSHRNK64, 2], // 6 * 5V, 6 * 12V
[HSHRNK100, 1], // 12 * 0V
];
module atx_bracket_assembly(show_psu = false) {
rotate([0, 0, 180]) {
translate([0, psu_width(psu) / 2, 0]) {
@@ -193,10 +168,6 @@ module atx_bracket_assembly(show_psu = false) {
screw_and_washer(No632_pan_screw, 9.5, true);
}
}
*translate([psu_length(psu) / 2 + wall, psu_width(psu) / 2 - width + wall, 0])
rotate([0, -90, 0])
color(plastic_part_color("lime")) render() atx_tall_bracket_stl();
translate([-psu_length(psu) / 2, psu_width(psu) / 2, psu_height(psu) + sb_wall + sb_clearance])
rotate([180, 0, 0])
color(plastic_part_color("lime")) render() atx_short_bracket_stl();
@@ -210,6 +181,20 @@ module atx_bracket_assembly(show_psu = false) {
if(show_psu)
psu(psu);
for(j = [0 : len(sleeving) - 1])
for(i = [0 : sleeving[j][1] - 1])
translate([psu_length(psu) / 2 + 8, - 10 * j, psu_height(psu) / 2 + 10 * i])
rotate([0, 90, 0])
tubing(sleeving[j][0]);
translate([psu_length(psu) / 2 + 10, -psu_width(psu) / 2 + 20, 20])
rotate([90, 0, 0])
ziptie(small_ziptie, 5);
translate([psu_length(psu) / 2 + 10, psu_width(psu) / 2, 20])
rotate([0, 90, 0])
ziptie(small_ziptie, 10);
translate([psu_length(psu) / 2 + al_clad_wire_length(res) / 2 + 15, -psu_width(psu) / 2 + al_clad_width(res) / 2, 0])
al_clad_resistor_assembly(res, "10R");
@@ -229,9 +214,6 @@ module atx_brackets_stl() {
rotate([0, 0, 180])
atx_long_bracket_stl();
*translate([-psu_height(psu) / 2, width + 2, 0])
atx_tall_bracket_stl();
translate([-length / 2 - offset + sb_corner_offset - 2, sb_base_offset - width + 2, 0])
rotate([0, 0, 90])
atx_short_bracket_stl();
@@ -248,7 +230,10 @@ module pair() {
if(1)
atx_bracket_assembly(true);
else
if(1)
if(0) {
pair();
translate([0, 41, 0])
pair();
}
else
atx_brackets_stl();