-module CompleteClamp(){ ////toplevel
- 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);
- }
- }
+x_B_r = d_OB_r * cosa;
+y_B_r = -dy_OB_r;
+
+x_T_r = sina;
+y_T_r = -tana * sina;
+
+top_r = wall_r - (d_OC_r - 1);
+
+echo(r0,r1, "ratio",r1/r0);
+
+module CrossSection(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]]);
+ translate([0, -d_OC_r * r0])
+ circle(r = r0);