42.1s
· 1426/2034t · $0.0221
diff vs bare: +5/-5
$fn = 96;
w = 50;
d = 40;
h = 40;
t = 3;
hole_d = 4.5;
cs_d = 8;
cs_depth = 2;
edge_offset = 10;
eps = 0.05;
hole_x = [
-w / 2 + edge_offset,
w / 2 - edge_offset
];
module bracket_body() {
union() {
- // Horizontal flange: +Y direction, thickness toward -Z
+ // Horizontal flange: +Y direction, outside face at -Z
translate([-w / 2, 0, -t])
cube([w, d, t]);
- // Vertical flange: +Z direction, thickness toward -Y
+ // Vertical flange: +Z direction, outside face at -Y
translate([-w / 2, -t, 0])
cube([w, t, h]);
- // Bend/corner material outside the inner corner
+ // Solid outside corner to make the bend/manifold
translate([-w / 2, -t, -t])
cube([w, t, t]);
}
}
module horizontal_hole(x, y) {
- // Through hole
+ // Through hole, normal to horizontal flange
translate([x, y, -t - eps])
cylinder(h = t + 2 * eps, d = hole_d);
// Countersink on outside face (-Z)
translate([x, y, -t - eps])
cylinder(h = cs_depth + 2 * eps, r1 = cs_d / 2, r2 = hole_d / 2);
}
module vertical_hole(x, z) {
- // Through hole
+ // Through hole, normal to vertical flange
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = t + 2 * eps, d = hole_d);
// Countersink on outside face (-Y)
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = cs_depth + 2 * eps, r1 = cs_d / 2, r2 = hole_d / 2);
}
difference() {
bracket_body();
for (x = hole_x) {
horizontal_hole(x, d / 2);
vertical_hole(x, h / 2);
}
}
SCAD (65 lines)
$fn = 96;
w = 50;
d = 40;
h = 40;
t = 3;
hole_d = 4.5;
cs_d = 8;
cs_depth = 2;
edge_offset = 10;
eps = 0.05;
hole_x = [
-w / 2 + edge_offset,
w / 2 - edge_offset
];
module bracket_body() {
union() {
// Horizontal flange: +Y direction, outside face at -Z
translate([-w / 2, 0, -t])
cube([w, d, t]);
// Vertical flange: +Z direction, outside face at -Y
translate([-w / 2, -t, 0])
cube([w, t, h]);
// Solid outside corner to make the bend/manifold
translate([-w / 2, -t, -t])
cube([w, t, t]);
}
}
module horizontal_hole(x, y) {
// Through hole, normal to horizontal flange
translate([x, y, -t - eps])
cylinder(h = t + 2 * eps, d = hole_d);
// Countersink on outside face (-Z)
translate([x, y, -t - eps])
cylinder(h = cs_depth + 2 * eps, r1 = cs_d / 2, r2 = hole_d / 2);
}
module vertical_hole(x, z) {
// Through hole, normal to vertical flange
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = t + 2 * eps, d = hole_d);
// Countersink on outside face (-Y)
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = cs_depth + 2 * eps, r1 = cs_d / 2, r2 = hole_d / 2);
}
difference() {
bracket_body();
for (x = hole_x) {
horizontal_hole(x, d / 2);
vertical_hole(x, h / 2);
}
}
91.6s
· 1439/4029t · $0.0421
diff vs i1: +9/-9
$fn = 96;
w = 50;
d = 40;
h = 40;
t = 3;
hole_d = 4.5;
cs_d = 8;
cs_depth = 2;
edge_offset = 10;
eps = 0.05;
hole_x = [
-w / 2 + edge_offset,
w / 2 - edge_offset
];
module bracket_body() {
union() {
- // Horizontal flange: +Y direction, outside face at -Z
translate([-w / 2, 0, -t])
cube([w, d, t]);
- // Vertical flange: +Z direction, outside face at -Y
translate([-w / 2, -t, 0])
cube([w, t, h]);
- // Solid outside corner to make the bend/manifold
translate([-w / 2, -t, -t])
cube([w, t, t]);
}
}
module horizontal_hole(x, y) {
- // Through hole, normal to horizontal flange
translate([x, y, -t - eps])
cylinder(h = t + 2 * eps, d = hole_d);
- // Countersink on outside face (-Z)
translate([x, y, -t - eps])
- cylinder(h = cs_depth + 2 * eps, r1 = cs_d / 2, r2 = hole_d / 2);
+ cylinder(h = eps, d = cs_d);
+
+ translate([x, y, -t])
+ cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
module vertical_hole(x, z) {
- // Through hole, normal to vertical flange
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = t + 2 * eps, d = hole_d);
- // Countersink on outside face (-Y)
translate([x, -t - eps, z])
rotate([-90, 0, 0])
- cylinder(h = cs_depth + 2 * eps, r1 = cs_d / 2, r2 = hole_d / 2);
+ cylinder(h = eps, d = cs_d);
+
+ translate([x, -t, z])
+ rotate([-90, 0, 0])
+ cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
difference() {
bracket_body();
for (x = hole_x) {
horizontal_hole(x, d / 2);
vertical_hole(x, h / 2);
}
}
SCAD (65 lines)
$fn = 96;
w = 50;
d = 40;
h = 40;
t = 3;
hole_d = 4.5;
cs_d = 8;
cs_depth = 2;
edge_offset = 10;
eps = 0.05;
hole_x = [
-w / 2 + edge_offset,
w / 2 - edge_offset
];
module bracket_body() {
union() {
translate([-w / 2, 0, -t])
cube([w, d, t]);
translate([-w / 2, -t, 0])
cube([w, t, h]);
translate([-w / 2, -t, -t])
cube([w, t, t]);
}
}
module horizontal_hole(x, y) {
translate([x, y, -t - eps])
cylinder(h = t + 2 * eps, d = hole_d);
translate([x, y, -t - eps])
cylinder(h = eps, d = cs_d);
translate([x, y, -t])
cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
module vertical_hole(x, z) {
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = t + 2 * eps, d = hole_d);
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = eps, d = cs_d);
translate([x, -t, z])
rotate([-90, 0, 0])
cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
difference() {
bracket_body();
for (x = hole_x) {
horizontal_hole(x, d / 2);
vertical_hole(x, h / 2);
}
}
90.1s
· 1398/4065t · $0.0424
diff vs i2: +0/-0
$fn = 96;
w = 50;
d = 40;
h = 40;
t = 3;
hole_d = 4.5;
cs_d = 8;
cs_depth = 2;
edge_offset = 10;
eps = 0.05;
hole_x = [
-w / 2 + edge_offset,
w / 2 - edge_offset
];
module bracket_body() {
union() {
translate([-w / 2, 0, -t])
cube([w, d, t]);
translate([-w / 2, -t, 0])
cube([w, t, h]);
translate([-w / 2, -t, -t])
cube([w, t, t]);
}
}
module horizontal_hole(x, y) {
translate([x, y, -t - eps])
cylinder(h = t + 2 * eps, d = hole_d);
translate([x, y, -t - eps])
cylinder(h = eps, d = cs_d);
translate([x, y, -t])
cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
module vertical_hole(x, z) {
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = t + 2 * eps, d = hole_d);
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = eps, d = cs_d);
translate([x, -t, z])
rotate([-90, 0, 0])
cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
difference() {
bracket_body();
for (x = hole_x) {
horizontal_hole(x, d / 2);
vertical_hole(x, h / 2);
}
}
SCAD (65 lines)
$fn = 96;
w = 50;
d = 40;
h = 40;
t = 3;
hole_d = 4.5;
cs_d = 8;
cs_depth = 2;
edge_offset = 10;
eps = 0.05;
hole_x = [
-w / 2 + edge_offset,
w / 2 - edge_offset
];
module bracket_body() {
union() {
translate([-w / 2, 0, -t])
cube([w, d, t]);
translate([-w / 2, -t, 0])
cube([w, t, h]);
translate([-w / 2, -t, -t])
cube([w, t, t]);
}
}
module horizontal_hole(x, y) {
translate([x, y, -t - eps])
cylinder(h = t + 2 * eps, d = hole_d);
translate([x, y, -t - eps])
cylinder(h = eps, d = cs_d);
translate([x, y, -t])
cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
module vertical_hole(x, z) {
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = t + 2 * eps, d = hole_d);
translate([x, -t - eps, z])
rotate([-90, 0, 0])
cylinder(h = eps, d = cs_d);
translate([x, -t, z])
rotate([-90, 0, 0])
cylinder(h = cs_depth, r1 = cs_d / 2, r2 = hole_d / 2);
}
difference() {
bracket_body();
for (x = hole_x) {
horizontal_hole(x, d / 2);
vertical_hole(x, h / 2);
}
}