X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=mk2-haribo-spool-holder.scad;h=930a0ce429df33d146e9b16b87895da0571d21da;hb=HEAD;hp=909ae6611d370aa182beb8135200c1a3e234ee9f;hpb=968d427c6e45c4e11b2a0e678796917aef19594d;p=ozzloy%40gmail.com%2F3d-printables diff --git a/mk2-haribo-spool-holder.scad b/mk2-haribo-spool-holder.scad index 909ae66..930a0ce 100644 --- a/mk2-haribo-spool-holder.scad +++ b/mk2-haribo-spool-holder.scad @@ -14,9 +14,9 @@ inner_block = 12; outer_block = (30 - 16.5) / 2; wall = 2; -$fn = 40; +$fn = 100; -module arm_half(){ +module 3030_arm_half(){ // inner block square(inner_block / 2); @@ -35,14 +35,134 @@ module arm_half(){ translate([(opening_width + wall) / 2, (y - wall) / 2]){ circle(d = wall); } // rounded part around outside of extrusion - translate([x / 2 - wall, y / 2 - wall]) { - circle(wall); } } - -arms = 4; -for(arm = [0:arms - 1]) { - rotate(arm * 360 / arms) { - arm_half(); - mirror(){ arm_half(); } } } + corner_squish = 0.1; + translate([x / 2 - wall + corner_squish, y / 2 - wall + corner_squish]) { + circle(wall - corner_squish); } } + +module 3030_profile(){ + arms = 4; + for(arm = [0:arms - 1]) { + rotate(arm * 360 / arms) { + 3030_arm_half(); + mirror(){ 3030_arm_half(); } } } } + +module 3030_sleeve_profile(){ + difference() { + minkowski() { + square(30, true); + circle(5); } + minkowski() { + 3030_profile(); + circle(0.2);} } } + +module fillet(r) { + offset(-r) { + offset(r) { + children(); } } } + +module upper_arm_profile(){ + + 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 shoulder_hull() { + hull() { + translate([-15, -15, 5]) { + minkowski(){ + cube([30, 30, 25]); + sphere(5); } } + difference() { + upper_arm_hull(); + translate([-30, 30, -10]) { + cube(300); } } } } + +module upper_arm_hull() { + linear_extrude(height = 15) { + upper_arm_profile(); } } + +module elbow_hull() { + hull(){ + difference() { + upper_arm_hull(); + translate([-50, -300 + 120, -1]) { + cube(300); } } + difference() { + forearm_hull(); + translate([0, 0, 30]) { + cube(300); } } } } + +module forearm_hull() { + linear_extrude(height = 120.5) { + forearm_profile(); } } + +module hand_profile() { + minkowski() { + polygon([[0, 0], + [14, 0], + [19.5, 20], + [7, 20]]); + circle(5); } } + +module hand_hull() { + hull() { + difference() { + forearm_hull(); + translate([-30, -30, -300 + 106]) { + cube(300); } } + translate([53, 135, 115.6]) { + linear_extrude(height = 5) { + hand_profile(); } } } } + +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) { + 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"); } } + +module original_hand_profile() { + %projection(true) { + translate([-368, -135, -117]) { + import("Spool-holder.stl"); } } } /* This file is part of 3d-printables.