--- /dev/null
+eps = 0.01;
+infty = 50;
+
+bar_w = 15;
+bar_h = 2;
+
+cable_w = 7;
+cable_h = 4;
+
+screw_d = 4;
+screw_head = 8;
+
+strip_angle =30;
+
+wall = 1.5;
+
+holder_w = 15;
+
+difference() {
+ hull($fn =32) {
+ translate([wall + bar_h/2, wall + bar_h/2 + (bar_w-bar_h)*sin(strip_angle) +screw_head/2, 0]) {
+ cylinder(r = bar_h/2 + wall, h = holder_w);
+ rotate([0, 0, -strip_angle]) translate([bar_w-bar_h, 0, 0])
+ cylinder(r = bar_h/2 + wall, h = holder_w);
+ }
+ translate([0, -wall -screw_head/2, 0]) {
+ cube([wall, screw_head + 2*wall, holder_w]);
+ }
+ }
+ // bar itself
+ hull($fn =32) {
+ translate([wall + bar_h/2, wall + bar_h/2 + (bar_w-bar_h)*sin(strip_angle) +screw_head/2, -eps]) {
+ cylinder(r = bar_h/2, h = holder_w+2*eps);
+ rotate([0, 0, -strip_angle]) translate([bar_w-bar_h, 0, 0])
+ cylinder(r = bar_h/2, h = holder_w+2*eps);
+ }
+ }
+ // above the bar
+ translate([0, wall + bar_h/2 + (bar_w-bar_h)*sin(strip_angle) + screw_head/2, 0])
+ rotate([0, 0, -strip_angle]) translate([wall + bar_h/2, bar_h/2 -eps, -eps])
+ cube([bar_w - bar_h, infty, holder_w + 2*eps]);
+
+ // screw hole
+ translate([-eps, 0, holder_w/2]) rotate([0, 90, 0]) {
+ rotate([0, 0, 90]) {
+ cylinder(r = screw_d/2, h = infty, $fn = 6);
+ translate([0, 0, wall])
+ cylinder(r = screw_head/2, h = infty, $fn = 6);
+ }
+ }
+ // cable hole
+ translate([0, screw_head/2+cable_h/2+wall+(bar_w-bar_h)*sin(strip_angle)+eps, 0])
+ rotate([0, 0, -strip_angle])
+ translate([wall + bar_w/2 - cable_w/2 + cable_h/2, -cable_h/2, -eps])
+ hull() {
+ cylinder(r = cable_h/2, h = holder_w + 2*eps);
+ translate([cable_w - cable_h, 0, 0])
+ cylinder(r = cable_h/2, h = holder_w + 2*eps);
+ }
+}