top_r = wall_r - (d_OC_r - 1);
+wall_x_r = wall_r / tan(90-alpha);
+
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]]);
+ 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],
+ [base_r * rnom + plus, top_r * rnom],
+ [-0.1, top_r * rnom]]);
translate([0, -d_OC_r * r0])
circle(r = r0);
}
}
module CrossSectionDemo(){ ////toplevel
+ color("black") CrossSection(2);
CrossSection();
for (rc=[["red", r1],
["blue",r0]]) {