+module fillet(r) {
+ offset(-r) {
+ offset(r) {
+ children(); } } }
+
+module upper_arm_profile(){
+ square(40, true);
+
+ a = [20, -20];
+ b = [34.1, 0];
+ c = [6.25, 20];
+ points = [a, b, c];
+
+ arm_radius = 11.35;
+ arm_center = [61.8, 140.4];
+ hull() {
+ polygon(points);
+ translate(arm_center) {
+ circle(arm_radius); } } }
+
+module forearm_profile() {
+ fillet(-5) {
+ difference() {
+ upper_arm_profile();
+ translate([-20, -20]) {
+ square(151); } } } }
+
+module upper_arm_hull() {
+ linear_extrude(height = 15) {
+ upper_arm_profile(); } }
+
+module forearm_hull() {
+ linear_extrude(height = 120.5) {
+ forearm_profile(); } }
+
+module shoulder_hull() {
+ translate([-20, -20, 0]) {
+ cube([40, 40, 35]); } }
+
+shoulder_hull();
+upper_arm_hull();
+forearm_hull();
+
+original_spool_holder();
+
+module original_forearm_profile() {
+ %projection(true) {
+ translate([-315, 0, -80]) {
+ import("Spool-holder.stl"); } } }
+
+module original_upper_arm_profile() {
+ %projection(true) {
+ translate([-315, 0, -2]) {
+ import("Spool-holder.stl"); } } }
+
+module original_spool_holder() {
+ %translate([-315, 0, 0]) {
+ import("Spool-holder.stl"); } }