19 delta_shift = 1 - delta_ellipse;
21 roundoff_rad = cable_maxdia/2 * sqrt(delta_shift)
22 + cable_mindia/2 * (1-sqrt(delta_shift));
24 outerdia = 2*(roundoff_rad / cos(30) + wallmin);
26 delta_shift_gap = (cable_maxdia-cable_mindia) * delta_shift;
28 module CrossSection(plus=0) {
30 for (dx = [-plus, 0, plus])
32 circle(r= outerdia/2, $fn=6);
36 cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
37 circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
38 circle(r= roundoff_rad, $fn=20);
41 square(center=true, [40, delta_shift_gap]);
45 module CrossSectionDemo(){ ////toplevel
47 translate([0, delta_shift_gap/2, 0]){
49 circle(r = cable_maxdia/2, $fn=20);
50 circle(r = cable_mindia/2, $fn=20);
55 linear_extrude(height=20)
59 linear_extrude(height=1)
63 module CompleteClamp(){ ////toplevel
64 linear_extrude(height=total_len)
67 for (i=[0 : strap_count]){
68 if (i*2 != strap_count) {
70 total_len * (i + 0.5) / (strap_count + 1)])
73 translate([0,0, strap_width/2])
74 linear_extrude(height=strap_wall_l)
75 CrossSection(strap_wall_h);
81 module HalfPrint(){ ////toplevel
85 translate([-100,-100,0]) cube([1000,200,200]);