F= 360 ;// Feinheit der Kreisberechnung
Es=9;// Wahl des Bauteils 1=Becherhalter
// 2= Klingenhalter 3= Schnalle
Bu=107.3 ;// Durchmesser Becher unten
Bo=122 ;// Durchmesser Becher oben
Bh=106;// Max Höhe des Bechers
Cut=50;// Höhe des Schnitts
Gap= 0.4 ;//Spalt zum Becherhalter
Ws=3.6;// Wandstärke Becherhalter
// Becherform
Del= 2 ;// Versatz des Becherhalter Abschnitts
Wc=18 ;// Winkel Becherhalter Abschnitt
Wsb=4 ;// Wandstärke Boden Halter
Lb= 24 ;// Länge Boden Halter
// Schiene
Ba1= 30 ;// Breite Ausschnitt-Schiene
Wsa= 3.2 ;// Wandstärke Schiene
Ta=14 ;// Tiefe Schiene
// Löcher
Lx= -42 ;// Loch X-Achse
Ly= 64 ;// Loch Y-Achse
Ld=4 ;// Lochdurchmesser
Ph=7 ;// Durchmesser Phase
Lu=6 ;// Lochumrandung min.
// Klinge
Kl=72;//Klingenlänge 82
Kb=9.6;//Klingenbreite 9.0
Kd= 1.1; // Klingendicke 0,41
Um= 3.6;// Unmantelung der Klinge
Kv=0.775;// Versatz Loch aus der Mitte
Tl=5.0;// Teilung der Klingenabschnitte
Dbl= 3.3;// Bohrung für Schraube
// Schieber
Sh=25;// Schieber Höhe
Dbs=4.6 ;// Dia Schraube Schieber
////////////////
Ba2=Kb+2*Um+2*Gap;
wb= atan(((Bo-Bu)/2)/Bh);
echo ();
echo (" Winkel Becher ",wb);
echo ("Ba2 errrechnet", Kb+2*Um+2*Gap);


//if (Es==0){}// ende if
// Schnalle / Klammer
if (Es==3||Es==9){
difference() {
// Schnalle Grundkörper
translate([Bu/2+Gap,0,0])
rotate([0,wb,0])
translate([Ta,0,Cut-Sh+Um+Kd])
difference() {
// Roh
translate([0,-Ba1/2-Gap-2*Wsa,0])
cube([Ta/2,Ba1+2*Gap+4*Wsa,Sh]);
// Abzüge
translate([-Wsa,-Ba1/2-Gap-Wsa,-1])
cube([Ta/2,Ba1+2*Gap+2*Wsa,Sh+2]);
} // ende difference
//
// Abzüge
//
// Loch Schieber Schraube
translate([Bu/2+Gap,0,0])
rotate([0,wb,0])
translate([-0.1,0,Cut-Sh/2+Um+Kd-Dbs/2])
rotate([0,90,0])
cylinder(h=Ta+3*Wsa+3*Gap,d=Dbs,$fn=F);
//
// Grundkörper KLinge
translate([Bu/2+Gap+((Bo-Bu)/2)*(Cut+2*Um+Kd)/Bh,-Kb/2-Um-Gap,-Um+Cut-Gap])
cube([Kl,Kb+2*Um+2*Gap,Kd+2*Um+2*Gap]);


} // ende difference
}// ende if
//
//
//  Klingenhalter
if (Es==2||Es==9){
//
difference() {
//             Roh
union() {
// Grundkörper KLinge
translate([Bu/2+Gap+((Bo-Bu)/2)*(Cut+2*Um+Kd)/Bh,-Kb/2-Um,-Um+Cut])
cube([Kl,Kb+2*Um,Kd+2*Um]);
//
// Schieber
translate([Bu/2+Gap,-Ba1/2+Gap,0])

rotate([0,wb,0])
translate([0,0,Cut-Sh+Um+Kd])
cube([Ta-Gap,Ba1-2*Gap,Sh]);
} // ende union
//             Abzüge
// Klinge raus
translate([Bu/2-1+((Bo-Bu)/2)*(Cut+2*Um+Kd)/Bh,-Kb/2,+Cut])
cube([Kl+2,Kb,Kd]);
// Becher innen hohl
translate([0,0,-0.01])
cylinder(h=Bh+0.02,d1=Bu+2*Gap,d2=Bo+2*Gap,$fn=F);
//             Löcher
//cw
for (i=[0:Tl*2:Kl]) {
translate([i-Dbl+Bu/2+((Bo-Bu)/2)*(Cut+2*Um+Kd)/Bh,Kv,+Cut])
cylinder(h=2*Um+Kd+2,d=Dbl,$fn=F,center=true);
}// ende for
//
//ccw
for (i=[Tl*3:Tl*2:Kl]) {
translate([i-Dbl+Bu/2+((Bo-Bu)/2)*(Cut+2*Um+Kd)/Bh,-Kv,+Cut])
cylinder(h=2*Um+Kd+2,d=Dbl,$fn=F,center=true);
}// ende for
//
// Loch Schieber Schraube
translate([Bu/2+Gap,0,0])
rotate([0,wb,0])
translate([-0.1,0,Cut-Sh/2+Um+Kd-Dbs/2])
rotate([0,90,0])
cylinder(h=Ta+3*Wsa+3*Gap,d=Dbs,$fn=F);
// Loch Schieber Schraube Kopfaussparung
translate([Bu/2+Gap,0,0])
rotate([0,wb,0])
translate([-0.1,0,Cut-Sh/2+Um+Kd-Dbs/2])
rotate([0,90,0])
cylinder(h=4,d=9,$fn=F);


} // ende difference
//
}// ende if
//
//
//             Becherhalter
if (Es==1||Es==9){
//
difference() {
// Rohling
union() {
// Becher
cylinder(h=Bh,d1=Bu+2*Ws+2*Gap,d2=Bo+2*Ws+2*Gap,$fn=F);
// Boden Cutter
hull(){
cylinder(h=Wsb,d=Bu+2*Ws+2*Gap,$fn=F);
translate([Lb,0,0])
cylinder(h=Wsb,d=Bu,$fn=F);
} // ende hull
//



// Lochumrandung
hull(){
// Kreis
translate([Lx+Bu/2,Ly,0])
cylinder(h=Wsb,d=Ld+2*Lu,$fn=F);
//
translate([Lx+Bu/2,-Ly,0])
cylinder(h=Wsb,d=Ld+2*Lu,$fn=F);
// Mitte
translate([Bu/2+Lb/2,0,0])
cylinder(h=Wsb,d=Ld+2*Lu,$fn=F);
} // ende hull
//
} // ende union
//
//          Abzüge
// Becher innen hohl
translate([0,0,-0.01])
cylinder(h=Bh+0.02,d1=Bu+2*Gap,d2=Bo+2*Gap,$fn=F);
//
// Becher Abschnitt schräg
translate([Del,0,0])
rotate([0,Wc,0])
translate([-Bo,-Bo,-Bh])
cube([Bo,2*Bo,Bh*3]);
//
// Becher ausschnit 1
translate([0,-Ba1/2,Wsb])
cube([Bu,Ba1,Bh]);
//
// Löcher
for (i=[1,0]) {
mirror([0,i,0])
translate([Lx+Bu/2,Ly,-0.001])
cylinder(h=Wsb+1,d=Ld,$fn=F);
// Phase
mirror([0,i,0])
translate([Lx+Bu/2,Ly,Wsb-(Ph-Ld)/2+0.001])
cylinder(h=(Ph-Ld)/2,d1=Ld,d2=Ph,$fn=F);
}// ende for
//


} // ende difference
//
// Schiene
difference() {
//
translate([Bu/2+Gap+Ta,0,0])
rotate([0,wb,0])
translate([-Ta+Gap-Wsa,-Ba1/2-Wsa,0])
cube([Ta+2*Wsa,Ba1+2*Wsa,Bh]);

// 1
translate([Bu/2+Gap+Ta,0,0])
rotate([0,wb,0])
translate([-Ta+Gap-0.001-Wsa,-Ba1/2,-1])
cube([Ta+Wsa,Ba1,Bh+2]);
//2
translate([Bu/2+Gap+Ta,0,0])
rotate([0,wb,0])
translate([-Ta+Gap-0.001+Wsa,-Ba2/2,-1])
cube([Ta+Wsa+Gap,Ba2,Bh+2]);
// Becher innen hohl
translate([0,0,-0.01])
cylinder(h=Bh+0.02,d1=Bu+2*Gap,d2=Bo+2*Gap,$fn=F);
// unten weg
translate([50,0,-50])
cube([200,200,100],center=true);
// oben weg
translate([50,0,50+Bh])
cube([200,200,100],center=true);
} // ende difference
//
}// ende if