+roundoff_rad = cable_maxdia/2 * sqrt(delta_shift)
+ + cable_mindia/2 * (1-sqrt(delta_shift));
+
+outerdia = 2*(roundoff_rad / cos(30) + wallmin);
+
+delta_shift_gap = (cable_maxdia-cable_mindia) * delta_shift;
+
+writing_dx = outerdia * sin(30);
+writing_dz = total_len / 3;
+
+module CrossSection(plus=0) {
+ difference(){
+ for (dx = [-plus, 0, plus])
+ translate([dx, 0])
+ circle(r= outerdia/2, $fn=6);
+
+ intersection(){
+ scale([cable_maxdia,
+ cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
+ circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
+ circle(r= roundoff_rad, $fn=20);
+ }
+
+ square(center=true, [40, delta_shift_gap]);
+ }
+}
+
+module CrossSectionDemo(){ ////toplevel
+ color("blue"){
+ translate([0, delta_shift_gap/2, 0]){
+ difference(){
+ circle(r = cable_maxdia/2, $fn=20);
+ circle(r = cable_mindia/2, $fn=20);
+ }
+ }
+ }
+
+ linear_extrude(height=20)
+ CrossSection(0);
+
+ color("red")
+ linear_extrude(height=1)
+ CrossSection(2);
+}
+
+module CompleteClamp(){ ////toplevel