summaryrefslogtreecommitdiff
path: root/con_bar_v.scad
diff options
context:
space:
mode:
Diffstat (limited to 'con_bar_v.scad')
-rw-r--r--con_bar_v.scad20
1 files changed, 20 insertions, 0 deletions
diff --git a/con_bar_v.scad b/con_bar_v.scad
index 6ef6ec2..7e609e6 100644
--- a/con_bar_v.scad
+++ b/con_bar_v.scad
@@ -1,6 +1,9 @@
bar_width = 4;
bar_height = 20;
+rod_rad = 5;
+rod_bury = 10; // how deep the rod sticks in its retainer
+
clamp_thick = 5;
clamp_l1 = 10;
clamp_l2 = 50;
@@ -12,6 +15,7 @@ angle = 30; // fake value; TODO
clamp_width = 2 * clamp_thick + bar_width;
clamp_height = bar_height + clamp_thick;
+clamp_length = clamp_l2 - clamp_l1;
module strut(num, r1, r2, h) {
a = 360 / num;
@@ -37,6 +41,21 @@ module clamp() {
}
}
+module rod_retainer(h) {
+ $fs = 0.1;
+ difference() {
+ union() {
+ cylinder(h=h, r=rod_rad + strut_thick);
+
+ translate([0, -strut_thick/2, 0])
+ cube([clamp_l1, strut_thick, h]);
+ }
+
+ translate([0, 0, max(strut_thick, h - rod_bury)])
+ cylinder(h=h, r=rod_rad);
+ }
+}
+
module con(num) {
for (i = [0:num-1])
rotate(i*360/num) {
@@ -45,6 +64,7 @@ module con(num) {
strut(num, clamp_l2, clamp_l2 - strut_height, strut_thick);
strut(num, clamp_l2, clamp_l2 - strut_thick, strut_height);
}
+ rod_retainer(max(clamp_thick, clamp_length * sin(angle)));
}
con(3);
contact: Jan Huwald // Impressum