wallmin = 1;
wall = 2;
-delta_ellipse = 0.5;
+delta_ellipse = 0.45;
// calculated
outerdia = cable_maxdia / cos(30) + wall*2;
delta_shift = 1 - delta_ellipse;
+delta_shift_gap = (cable_maxdia-cable_mindia) * delta_shift;
+
module CrossSection(plus=0) {
difference(){
for (dx = [-plus, 0, plus])
scale([cable_maxdia,
cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
- circle(r= 0.5, $fn=30);
+ circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
- square(center=true, [40, (cable_maxdia-cable_mindia) * delta_shift]);
+ square(center=true, [40, delta_shift_gap]);
}
}
-linear_extrude(height=20)
- CrossSection(0);
+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);
+}
-linear_extrude(height=1)
- CrossSection(2);
+CrossSectionDemo();