height = 20;
+ziglen = hcentredist/2;
+
+feedxgap = 5;
+feedzgap = 5;
+ribsgap = 1;
+
+ribdepth = 3;
+ribheight = 4;
+
+blockoverlapcnr = 5;
+
module Oval(centredist, rad) {
hull() {
translate([-centredist/2,0,0]) circle(r=rad);
}
module Positive(){
- linear_extrude(height=20)
+ translate([0,0, -height/2])
+ linear_extrude(height=20)
Hoop();
}
-Positive();
+module Ribs(){
+ imax = ceil(height*2 / ribheight);
+ for (i=[-imax:imax]) {
+ hull(){
+ translate([-ribdepth/2,
+ ribheight*i,
+ 0])
+ polygon([[0, 0],
+ [ribdepth, -ribheight],
+ [ribdepth, +ribheight]]);
+ translate([50, 0])
+ square([1, height*2], center=true);
+ }
+ }
+}
+
+module Division(biggerpi) {
+ xgap = feedxgap * biggerpi;
+ zgap = feedzgap * biggerpi;
+
+ mirror([0,0,1]) {
+ translate([0, 0, zgap/2 * (1 - 2*biggerpi)]) {
+ translate([-ziglen + xgap/2, -100, 0])
+ cube([100, 100, 50]);
+ }
+ }
+ translate([blockwidth/2 - blockoverlapcnr, -0.1, 0])
+ cube([100, 100, 100]);
+
+ translate([50, houterrad + blockdepth/2 + ribsgap * biggerpi, 0])
+ rotate([-90,0,90])
+ linear_extrude(height=100)
+ Ribs();
+}
+
+module SDemo(){
+ //difference(){
+ % Positive();
+ // Division(0);
+ //}
+ Division(0);
+}
+
+module A(){
+ difference(){
+ Positive();
+ Division(0);
+ }
+}
+
+module B(){
+ intersection(){
+ Positive();
+ Division(1);
+ }
+}
+
+module Demo(){
+ color("red") A();
+// color("blue") B();
+}
+
+//Ribs();
+//Demo();
+
+//A();
+B();
+%Division(0);
+
+//Demo();