module 3030_sleeve_profile(){
difference() {
- square(40, true);
+ minkowski() {
+ square(30, true);
+ circle(5); }
minkowski() {
3030_profile();
circle(0.2);} } }
children(); } } }
module upper_arm_profile(){
- square(40, true);
a = [20, -20];
b = [34.1, 0];
module shoulder_hull() {
hull() {
- translate([-20, -20, 0]) {
- cube([40, 40, 35]); }
+ translate([-15, -15, 5]) {
+ minkowski(){
+ cube([30, 30, 25]);
+ sphere(5); } }
difference() {
upper_arm_hull();
translate([-30, 30, -10]) {
linear_extrude(height = 5) {
hand_profile(); } } } }
-shoulder_hull();
-upper_arm_hull();
-elbow_hull();
-forearm_hull();
-hand_hull();
+module 3030_spool_holder() {
+ difference() {
+ union() {
+ shoulder_hull();
+ upper_arm_hull();
+ elbow_hull();
+ forearm_hull();
+ hand_hull(); }
+ translate([0, 0, -1]) {
+ linear_extrude(height = 40) {
+ minkowski() {
+ 3030_profile();
+ circle(0.2); } } } } }
+
+3030_spool_holder();
module original_forearm_profile() {
%projection(true) {