mirror of
https://github.com/nophead/Mendel90.git
synced 2025-08-05 12:57:24 +02:00
Replaced minkowski with scale, child with children, and removed assign.
Added thinner fan for Huxley. Added missing nut for M2 screw. Ball bearings can now position children.
This commit is contained in:
@@ -138,19 +138,19 @@ module atx_screw_positions(psu, base = false) {
|
|||||||
psu_width(psu) / 2 - sb_corner_offset - sb_base_width / 2,
|
psu_width(psu) / 2 - sb_corner_offset - sb_base_width / 2,
|
||||||
psu_height(psu) + sb_wall - sb_height / 2 + layer_height + sb_clearance])
|
psu_height(psu) + sb_wall - sb_height / 2 + layer_height + sb_clearance])
|
||||||
rotate([90, 0, 90])
|
rotate([90, 0, 90])
|
||||||
child();
|
children();
|
||||||
|
|
||||||
else {
|
else {
|
||||||
for(end = [-1, 1])
|
for(end = [-1, 1])
|
||||||
translate([end * (length / 2 - tab_length - width / 2) - offset, -psu_width(psu) / 2 - width / 2, thickness])
|
translate([end * (length / 2 - tab_length - width / 2) - offset, -psu_width(psu) / 2 - width / 2, thickness])
|
||||||
child();
|
children();
|
||||||
|
|
||||||
if(sb_frame_screw)
|
if(sb_frame_screw)
|
||||||
translate([-psu_length(psu) / 2 + sb_corner_offset + sb_frame_width / 2,
|
translate([-psu_length(psu) / 2 + sb_corner_offset + sb_frame_width / 2,
|
||||||
psu_width(psu) / 2 + sb_frame_offset - sb_frame_thickness + (frame_nut_traps ? nut_trap_depth(frame_nut) : 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])
|
psu_height(psu) + sb_wall - sb_height / 2 + sb_clearance])
|
||||||
rotate([90, 0, 0])
|
rotate([90, 0, 0])
|
||||||
child();
|
children();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,11 +192,12 @@ module atx_bracket_assembly(show_psu = false) {
|
|||||||
psu(psu);
|
psu(psu);
|
||||||
|
|
||||||
for(j = [0 : len(sleeving) - 1])
|
for(j = [0 : len(sleeving) - 1])
|
||||||
for(i = [0 : sleeving[j][1] - 1])
|
for(i = [0 : sleeving[j][1] - 1]) {
|
||||||
assign(od = tubing_od(sleeving[j][0]))
|
od = tubing_od(sleeving[j][0]);
|
||||||
translate([psu_length(psu) / 2 + 8, psu_width(psu) / 2 - 15 - sleeve_pos(j), 12 + i * (od + 1) + od / 2])
|
translate([psu_length(psu) / 2 + 8, psu_width(psu) / 2 - 15 - sleeve_pos(j), 12 + i * (od + 1) + od / 2])
|
||||||
rotate([0, 90, 0])
|
rotate([0, 90, 0])
|
||||||
tubing(sleeving[j][0]);
|
tubing(sleeving[j][0]);
|
||||||
|
}
|
||||||
|
|
||||||
translate([psu_length(psu) / 2 + 10, -psu_width(psu) / 2 + 20, 20])
|
translate([psu_length(psu) / 2 + 10, -psu_width(psu) / 2 + 20, 20])
|
||||||
rotate([90, 0, 0])
|
rotate([90, 0, 0])
|
||||||
|
@@ -76,7 +76,7 @@ module mains_inlet_holes()
|
|||||||
for(z = side > 0 ? [depth - holes, holes] : [depth - terminal_depth - holes])
|
for(z = side > 0 ? [depth - holes, holes] : [depth - terminal_depth - holes])
|
||||||
translate([side * (mains_inlet_width() / 2 - tab / 2), -mains_inlet_height() / 2 + foot, z])
|
translate([side * (mains_inlet_width() / 2 - tab / 2), -mains_inlet_height() / 2 + foot, z])
|
||||||
rotate([-90, 0, 0])
|
rotate([-90, 0, 0])
|
||||||
child();
|
children();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -26,6 +26,9 @@ module ball_bearing(type) {
|
|||||||
cylinder(r = (type[0] + rim) / 2, h = 3, center = true);
|
cylinder(r = (type[0] + rim) / 2, h = 3, center = true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if($children)
|
||||||
|
translate([0, 0, ball_bearing_width(type) / 2])
|
||||||
|
children();
|
||||||
}
|
}
|
||||||
|
|
||||||
module bearing_ball(dia) {
|
module bearing_ball(dia) {
|
||||||
|
@@ -26,26 +26,14 @@ module bulldog_shape(depth, height, radius, open) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module shell(length, width, height, wall) {
|
module shell(length, width, height, wall) {
|
||||||
difference() {
|
linear_extrude(height = height, center = true, convexity = 5)
|
||||||
linear_extrude(height = height, center = true, convexity = 5)
|
difference() {
|
||||||
child();
|
children();
|
||||||
linear_extrude(height = height + 1, center = true, convexity = 5)
|
offset(-wall)
|
||||||
difference() {
|
children();
|
||||||
square([length - 2 * wall, width - 2 * wall], center = true);
|
}
|
||||||
minkowski() {
|
|
||||||
difference() {
|
|
||||||
square([length + 1, width + 1], center = true);
|
|
||||||
translate([10,0])
|
|
||||||
square([length + 1, 2 * wall + eta], center = true);
|
|
||||||
child();
|
|
||||||
}
|
|
||||||
circle(r = wall, center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module bulldog(type, open = 4) {
|
module bulldog(type, open = 4) {
|
||||||
tube = bulldog_tube(type);
|
tube = bulldog_tube(type);
|
||||||
thickness = bulldog_thickness(type);
|
thickness = bulldog_thickness(type);
|
||||||
@@ -61,6 +49,7 @@ module bulldog(type, open = 4) {
|
|||||||
rotate([90, 0, 0])
|
rotate([90, 0, 0])
|
||||||
shell(depth, bulldog_height(type), bulldog_length(type), thickness)
|
shell(depth, bulldog_height(type), bulldog_length(type), thickness)
|
||||||
bulldog_shape(depth, bulldog_height(type), bulldog_radius(type), gap);
|
bulldog_shape(depth, bulldog_height(type), bulldog_radius(type), gap);
|
||||||
|
|
||||||
translate([depth - tube - eta, 0, 0])
|
translate([depth - tube - eta, 0, 0])
|
||||||
cube([depth, bulldog_length(type) + 1, 100], center = true);
|
cube([depth, bulldog_length(type) + 1, 100], center = true);
|
||||||
}
|
}
|
||||||
|
@@ -105,7 +105,7 @@ function al_clad_wire_length(type) = type[10];
|
|||||||
module al_clad_resistor_hole_positions(type)
|
module al_clad_resistor_hole_positions(type)
|
||||||
for(end = [-1,1])
|
for(end = [-1,1])
|
||||||
translate([end * al_clad_hpitch(type) / 2, end * al_clad_vpitch(type) / 2, al_clad_thickness(type)])
|
translate([end * al_clad_hpitch(type) / 2, end * al_clad_vpitch(type) / 2, al_clad_thickness(type)])
|
||||||
child();
|
children();
|
||||||
|
|
||||||
module al_clad_resistor_holes(type) {
|
module al_clad_resistor_holes(type) {
|
||||||
al_clad_resistor_hole_positions(type)
|
al_clad_resistor_hole_positions(type)
|
||||||
|
@@ -27,11 +27,12 @@ function controller_accessories(type) = type[4];
|
|||||||
module controller_screw_positions(type) {
|
module controller_screw_positions(type) {
|
||||||
inset = controller_hole_inset(type);
|
inset = controller_hole_inset(type);
|
||||||
|
|
||||||
for($i = [0:3])
|
for($i = [0:3]) {
|
||||||
assign(x = [inset, controller_width(type) - inset][$i % 2])
|
x = [inset, controller_width(type) - inset][$i % 2];
|
||||||
assign(y = [inset, controller_length(type) - inset][$i / 2])
|
y = [inset, controller_length(type) - inset][$i / 2];
|
||||||
translate([x, y, 0])
|
translate([x, y, 0])
|
||||||
child();
|
children();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module controller(type) {
|
module controller(type) {
|
||||||
@@ -133,5 +134,5 @@ module psu(type) {
|
|||||||
module psu_screw_positions(type) {
|
module psu_screw_positions(type) {
|
||||||
for(point = psu_hole_list(type))
|
for(point = psu_hole_list(type))
|
||||||
translate(point)
|
translate(point)
|
||||||
child();
|
children();
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,7 @@
|
|||||||
// based on http://www.thingiverse.com/thing:8063 by MiseryBot, CC license
|
// based on http://www.thingiverse.com/thing:8063 by MiseryBot, CC license
|
||||||
|
|
||||||
fan80x38 = [80, 38, 75, 35.75, M4_cap_screw, 40, 4.3, 84];
|
fan80x38 = [80, 38, 75, 35.75, M4_cap_screw, 40, 4.3, 84];
|
||||||
|
fan80x25 = [80, 25, 75, 35.75, M4_cap_screw, 40, 4.3, 84];
|
||||||
fan70x15 = [70, 15, 66, 30.75, M4_cap_screw, 29, 3.8, 70];
|
fan70x15 = [70, 15, 66, 30.75, M4_cap_screw, 29, 3.8, 70];
|
||||||
fan60x25 = [60, 25, 57, 25, M4_cap_screw, 31.5, 3.6, 64];
|
fan60x25 = [60, 25, 57, 25, M4_cap_screw, 31.5, 3.6, 64];
|
||||||
fan60x15 = [60, 15, 57, 25, M4_cap_screw, 29, 2.4, 60];
|
fan60x15 = [60, 15, 57, 25, M4_cap_screw, 29, 2.4, 60];
|
||||||
@@ -72,7 +73,7 @@ module fan_hole_positions(type) {
|
|||||||
for(x = [-hole_pitch, hole_pitch])
|
for(x = [-hole_pitch, hole_pitch])
|
||||||
for(y = [-hole_pitch, hole_pitch])
|
for(y = [-hole_pitch, hole_pitch])
|
||||||
translate([x, y, fan_depth(type) / 2])
|
translate([x, y, fan_depth(type) / 2])
|
||||||
child();
|
children();
|
||||||
}
|
}
|
||||||
|
|
||||||
module fan_holes(type, poly = false) {
|
module fan_holes(type, poly = false) {
|
||||||
|
@@ -49,6 +49,9 @@ module nut(type, nyloc = false, brass = false) {
|
|||||||
translate([0, 0, -1])
|
translate([0, 0, -1])
|
||||||
cylinder(r = hole_rad, h = nyloc_thickness + 2);
|
cylinder(r = hole_rad, h = nyloc_thickness + 2);
|
||||||
}
|
}
|
||||||
|
if($children)
|
||||||
|
translate([0, 0, thickness])
|
||||||
|
children();
|
||||||
}
|
}
|
||||||
|
|
||||||
module nut_and_washer(type, nyloc) {
|
module nut_and_washer(type, nyloc) {
|
||||||
|
@@ -13,7 +13,7 @@ hs_cs = 2; // counter sunk
|
|||||||
hs_hex = 3;
|
hs_hex = 3;
|
||||||
hs_grub= 4; // pulley set screw
|
hs_grub= 4; // pulley set screw
|
||||||
|
|
||||||
M2_cap_screw = ["CS020", "M2 cap screw", hs_cap, 2, 3.8, 1.5, M2_washer, false, M2_tap_radius, M2_clearance_radius];
|
M2_cap_screw = ["CS020", "M2 cap screw", hs_cap, 2, 3.8, 1.5, M2_washer, M2_nut, M2_tap_radius, M2_clearance_radius];
|
||||||
|
|
||||||
M2p5_pan_screw = ["PS025", "M2.5 pan screw", hs_pan, 2.5, 4.7, 1.7, M2p5_washer, false, M2p5_tap_radius, M2p5_clearance_radius];
|
M2p5_pan_screw = ["PS025", "M2.5 pan screw", hs_pan, 2.5, 4.7, 1.7, M2p5_washer, false, M2p5_tap_radius, M2p5_clearance_radius];
|
||||||
M2p5_cap_screw = ["CS025", "M2.5 cap screw", hs_cap, 2.5, 4.7, 2.0, M2p5_washer, false, M2p5_tap_radius, M2p5_clearance_radius];
|
M2p5_cap_screw = ["CS025", "M2.5 cap screw", hs_cap, 2.5, 4.7, 2.0, M2p5_washer, false, M2p5_tap_radius, M2p5_clearance_radius];
|
||||||
@@ -73,9 +73,9 @@ module screw(type, length, hob_point = 0) {
|
|||||||
cylinder(r = 0.2, h = 10 * exploded);
|
cylinder(r = 0.2, h = 10 * exploded);
|
||||||
translate([0, 0, exploded ? (length + 10) * exploded : 0]) {
|
translate([0, 0, exploded ? (length + 10) * exploded : 0]) {
|
||||||
if(head_type == hs_cap) {
|
if(head_type == hs_cap) {
|
||||||
assign(head_height = rad * 2,
|
head_height = rad * 2;
|
||||||
socket_rad = type[5] / cos(30) / 2,
|
socket_rad = type[5] / cos(30) / 2;
|
||||||
socket_depth = 2 * rad / 3)
|
socket_depth = 2 * rad / 3;
|
||||||
color(screw_cap_color) render() difference() {
|
color(screw_cap_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
cylinder(r = head_rad, h = head_height);
|
cylinder(r = head_rad, h = head_height);
|
||||||
@@ -87,8 +87,8 @@ module screw(type, length, hob_point = 0) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(head_type == hs_grub) {
|
if(head_type == hs_grub) {
|
||||||
assign(socket_rad = type[4] / 2,
|
socket_rad = type[4] / 2;
|
||||||
socket_depth = type[5])
|
socket_depth = type[5];
|
||||||
color(screw_grub_color) render() difference() {
|
color(screw_grub_color) render() difference() {
|
||||||
translate([0, 0, -length])
|
translate([0, 0, -length])
|
||||||
cylinder(r = rad, h = length);
|
cylinder(r = rad, h = length);
|
||||||
@@ -97,7 +97,7 @@ module screw(type, length, hob_point = 0) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(head_type == hs_hex) {
|
if(head_type == hs_hex) {
|
||||||
assign(head_height =type[5])
|
head_height =type[5];
|
||||||
color(screw_hex_color) render() union() {
|
color(screw_hex_color) render() union() {
|
||||||
cylinder(r = head_rad, h = head_height, $fn = 6);
|
cylinder(r = head_rad, h = head_height, $fn = 6);
|
||||||
translate([0,0, - length + eta])
|
translate([0,0, - length + eta])
|
||||||
@@ -105,9 +105,9 @@ module screw(type, length, hob_point = 0) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(head_type == hs_pan) {
|
if(head_type == hs_pan) {
|
||||||
assign(head_height = type[5],
|
head_height = type[5];
|
||||||
socket_rad = 0.6 * head_rad,
|
socket_rad = 0.6 * head_rad;
|
||||||
socket_depth = 0.5 * type[5])
|
socket_depth = 0.5 * type[5];
|
||||||
color(screw_pan_color) render() difference() {
|
color(screw_pan_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
rounded_cylinder(r = head_rad, h = head_height, r2 = head_height / 2);
|
rounded_cylinder(r = head_rad, h = head_height, r2 = head_height / 2);
|
||||||
@@ -121,10 +121,10 @@ module screw(type, length, hob_point = 0) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(head_type == hs_cs) {
|
if(head_type == hs_cs) {
|
||||||
assign(head_height = head_rad,
|
head_height = head_rad;
|
||||||
socket_rad = 0.6 * head_rad,
|
socket_rad = 0.6 * head_rad;
|
||||||
socket_depth = 0.3 * head_rad,
|
socket_depth = 0.3 * head_rad;
|
||||||
socket_width = 1)
|
socket_width = 1;
|
||||||
color(screw_cs_color) render() difference() {
|
color(screw_cs_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
translate([0,0, -head_height])
|
translate([0,0, -head_height])
|
||||||
|
@@ -80,12 +80,14 @@ module taped_area(type, tape_width, w, d, overlap) {
|
|||||||
pitch = total_width / strips;
|
pitch = total_width / strips;
|
||||||
intersection() {
|
intersection() {
|
||||||
group() {
|
group() {
|
||||||
for(i = [0 : strips - 1])
|
for(i = [0 : strips - 1]) {
|
||||||
assign(k = ((i % 2) ? 0.9 : 1), c = sheet_colour(type))
|
k = (i % 2) ? 0.9 : 1;
|
||||||
translate([-w / 2 - overlap + tape_width / 2 + i * pitch, 0, sheet_thickness(type) / 2 + i * eta])
|
c = sheet_colour(type);
|
||||||
explode([0, 0, d / 2 + i * 10])
|
translate([-w / 2 - overlap + tape_width / 2 + i * pitch, 0, sheet_thickness(type) / 2 + i * eta])
|
||||||
color([c[0] * k, c[1] * k, c[2] * k, c[3]])
|
explode([0, 0, d / 2 + i * 10])
|
||||||
sheet(type, tape_width, d + 2 * overlap);
|
color([c[0] * k, c[1] * k, c[2] * k, c[3]])
|
||||||
|
sheet(type, tape_width, d + 2 * overlap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(!exploded)
|
if(!exploded)
|
||||||
cube([w + 2 * eta, d + 2 * eta, 100], center = true);
|
cube([w + 2 * eta, d + 2 * eta, 100], center = true);
|
||||||
|
@@ -65,7 +65,7 @@ module comp_spring(type, l = 0) {
|
|||||||
|
|
||||||
if($children)
|
if($children)
|
||||||
translate([0, 0, l])
|
translate([0, 0, l])
|
||||||
child();
|
children();
|
||||||
}
|
}
|
||||||
|
|
||||||
//comp_spring(extruder_spring);
|
//comp_spring(extruder_spring);
|
||||||
|
@@ -41,7 +41,7 @@ module washer(type) {
|
|||||||
}
|
}
|
||||||
if($children)
|
if($children)
|
||||||
translate([0, 0, thickness])
|
translate([0, 0, thickness])
|
||||||
child();
|
children();
|
||||||
}
|
}
|
||||||
|
|
||||||
module star_washer(type) {
|
module star_washer(type) {
|
||||||
@@ -63,5 +63,5 @@ module star_washer(type) {
|
|||||||
}
|
}
|
||||||
if($children)
|
if($children)
|
||||||
translate([0, 0, thickness])
|
translate([0, 0, thickness])
|
||||||
child();
|
children();
|
||||||
}
|
}
|
||||||
|
@@ -82,7 +82,7 @@ module bearing_mount_holes()
|
|||||||
for(end = [-1, 1])
|
for(end = [-1, 1])
|
||||||
translate([end * (bearing_holder_width(Y_bearings) / 2 + tab_length / 2 + nut_offset),
|
translate([end * (bearing_holder_width(Y_bearings) / 2 + tab_length / 2 + nut_offset),
|
||||||
-end * (bearing_holder_length(Y_bearings) - bearing_clamp_tab ) / 2, 0])
|
-end * (bearing_holder_length(Y_bearings) - bearing_clamp_tab ) / 2, 0])
|
||||||
child();
|
children();
|
||||||
|
|
||||||
module y_bearing_assembly(height)
|
module y_bearing_assembly(height)
|
||||||
{
|
{
|
||||||
|
@@ -83,7 +83,7 @@ nut_offset = base_nut_traps ? -tab_length / 2 + nut_radius(base_nut) + 0.5 : 0;
|
|||||||
|
|
||||||
module y_idler_screw_hole_position()
|
module y_idler_screw_hole_position()
|
||||||
translate([0, dia / 2 + wall + tab_length / 2 + nut_offset,0])
|
translate([0, dia / 2 + wall + tab_length / 2 + nut_offset,0])
|
||||||
child();
|
children();
|
||||||
|
|
||||||
module y_idler_screw_hole()
|
module y_idler_screw_hole()
|
||||||
y_idler_screw_hole_position()
|
y_idler_screw_hole_position()
|
||||||
|
@@ -29,7 +29,7 @@ module y_motor_bracket_holes()
|
|||||||
for(z = [thickness - depth + holes, thickness - holes])
|
for(z = [thickness - depth + holes, thickness - holes])
|
||||||
translate([side * (y_motor_bracket_width() / 2 - tab / 2 + nut_offset), -y_motor_bracket_height() / 2 + part_base_thickness, z])
|
translate([side * (y_motor_bracket_width() / 2 - tab / 2 + nut_offset), -y_motor_bracket_height() / 2 + part_base_thickness, z])
|
||||||
rotate([-90, 0, 0])
|
rotate([-90, 0, 0])
|
||||||
child();
|
children();
|
||||||
|
|
||||||
module y_motor_bracket() {
|
module y_motor_bracket() {
|
||||||
height = y_motor_bracket_height();
|
height = y_motor_bracket_height();
|
||||||
|
@@ -48,7 +48,7 @@ module z_limit_screw_positions() {
|
|||||||
for(z = [0, screw_spacing])
|
for(z = [0, screw_spacing])
|
||||||
translate([slot_x, -thickness, bottom_z + hinge_post + leg_width / 2 + adjustment - down_adjustment + z])
|
translate([slot_x, -thickness, bottom_z + hinge_post + leg_width / 2 + adjustment - down_adjustment + z])
|
||||||
rotate([90, 0, 0])
|
rotate([90, 0, 0])
|
||||||
child();
|
children();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user