1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
include <settings.scad>;
use <hardware.scad>;
module frame_vertex(round = false) color(c) difference() {
union() {
for(side = [1, -1]) {
rotate([0, 0, side * 30]) translate([0, vertexoffset, 0]) {
if (round) {
translate([-side * partthick / 4, 0, 0]) cube([partthick / 2, partthick, partthick], center = true);
rotate([0, 90, 0]) cylinder(h = partthick, r = partthick / 2, center = true, $fn = fn);
rotate([90, 0, 0]) cylinder(h = partthick, r = partthick / 2, center = true, $fn = fn);
} else cube([partthick, partthick, partthick], center = true);
translate([side * -rodsize, 0, 0]) cylinder(h = partthick, r = partthick / 2, center = true, $fn = fn);
}
}
translate([0, partthick, 0]) difference() {
rotate_extrude(convexity = 10, $fn = fn) translate([vertexoffset - partthick * sqrt(3) / 2, 0, 0]) {
if (round) circle(r = partthick / 2, center = true, $fn = fn);
else square(size = partthick, center = true);
}
for (side = [1, -1]) rotate([0, 0, side * 30]) translate([-side * vertexoffset, 0, 0]) cube(vertexoffset * 2, center = true);
}
}
for(side = [1, -1]) {
rotate([90, 0, side * 30]) rod(rodsize * 15);
rotate([0, 0, side * 30]) {
translate([-side * rodsize, vertexoffset, 0]) rod(partthick * 2);
}
}
}
frame_vertex();
|