include <commitid.scad>
-rnom = 9;
+rnom = 7.5 / 2;
// alpha is slope angle, which is half of inner concave angle that
// wire sits in
mu = 1/4;
// wall thickness, and base width as fraction of cable size
-wall_r = 1.5 / 6.5;
+wall_r = 2.5 / 6.5;
base_r = 0.75;
// for cross-section calculations:
x_T_r = sina;
y_T_r = -tana * sina;
-top_r = wall_r - (d_OC_r - 1);
+wall_x_r = wall_r / tan(90-alpha);
-echo(r0,r1, "ratio",r1/r0);
+top = wall_r * r1 - (d_OC_r - 1) * r0;
+basew = base_r * rnom;
-module CrossSection(plus=0) {
+echo("dias", r0*2, r1*2, "ratio",r1/r0);
+
+module CrossSectionHalf(plus=0) {
difference(){
- polygon([[-0.1, y_T_r * r0],
- [x_T_r * r0, y_T_r * r0],
- [x_B_r * r1, y_B_r * r1],
- [x_B_r * r1 + wall_r * rnom, y_B_r * r1],
- [base_r * rnom, top_r * rnom],
- [-0.1, top_r * rnom]]);
+ polygon([[-0.1, y_T_r * r0],
+ [x_T_r * r0, y_T_r * r0],
+ [x_B_r * r1, y_B_r * r1],
+ [x_B_r * r1 + wall_x_r * rnom + plus, y_B_r * r1],
+ [basew + plus, top],
+ [-0.1, top]]);
translate([0, -d_OC_r * r0])
circle(r = r0);
}
}
+module CrossSection(plus=0) {
+ for (m=[0,1]) {
+ mirror([m,0])
+ CrossSectionHalf(plus);
+ }
+}
+
module CrossSectionDemo(){ ////toplevel
+ color("black") CrossSection(2);
CrossSection();
for (rc=[["red", r1],
["blue",r0]]) {
}
}
+strap_width = 4 + 0.5;
+total_len = 70;
+
+strap_count = 2;
+
+strap_wall_h = 1.5;
+strap_wall_l = 2.0;
+
+writing_dx = total_len / 3;
+writing_dy = basew*2;
+
+module HalfClamp(){ ////toplevel
+ difference(){
+ rotate([90,0,0])rotate([0,90,0]){
+ linear_extrude(height=total_len)
+ CrossSection();
+
+ for (i=[0 : strap_count]){
+ if (i*2 != strap_count) {
+ translate([0, 0,
+ total_len * (i + 0.5) / (strap_count + 1)])
+ for (m=[0,1]){
+ mirror([0,0,m])
+ translate([0,0, strap_width/2])
+ linear_extrude(height=strap_wall_l)
+ CrossSection(strap_wall_h);
+ }
+ }
+ }
+ }
+
+ translate([0, -basew, top])
+ Commitid_BestCount([writing_dx, writing_dy]);
+ }
+}
+
+module HalfClampPrint(){ ////toplevel
+ rotate([180,0,0])
+ HalfClamp();
+}
+
//CrossSection();
-CrossSectionDemo();
+//CrossSectionDemo();
+//HalfClamp();
+HalfClampPrint();