summaryrefslogtreecommitdiff
path: root/experimental/huxley/frame_vertex.scad
blob: 3a908de52314c7550ef878308c9bd810d092ce32 (plain)
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();