diff options
-rw-r--r-- | con_bar_v.scad | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/con_bar_v.scad b/con_bar_v.scad new file mode 100644 index 0000000..1706fb9 --- /dev/null +++ b/con_bar_v.scad @@ -0,0 +1,50 @@ +bar_width = 3; +bar_height = 20; + +clamp_thick = 5; +clamp_l1 = 10; +clamp_l2 = 50; + +strut_height = bar_height; + +angle = 30; // fake value; TODO + +clamp_width = 2 * clamp_thick + bar_width; +clamp_height = bar_height + clamp_thick; + +module clamp() { + l = clamp_l2 - clamp_l1; + + difference() { + translate([clamp_l1, -clamp_width/2, 0]) + cube([l, clamp_width, clamp_height]); + + translate([0, -bar_width/2, clamp_thick + clamp_l2 * sin(angle)]) + rotate([0, angle, 0]) + cube([2*l, bar_width, 2*bar_height]); + } +} + +module con(num) { + difference() { + for (dist = [clamp_l1 + 2*clamp_thick, clamp_l2]) + assign(l = 2 * dist * sin(180/num) + 2*clamp_thick) + for (i = [1:num]) + rotate(i*360/num) + translate([dist, -clamp_thick, 0]) + rotate(180/num) + translate([0, 0, 0]) + cube([clamp_thick, l, strut_height]); + for (i = [1:num]) + rotate(i*360/num) + translate([0, -clamp_width/2, 0]) + cube([2*clamp_l2, clamp_width, clamp_height]); + } + + for (i = [1:num]) + rotate(i*360/num) + clamp(); +} + +con(5); +//clamp();
\ No newline at end of file |