// -----------------------------------------------------------------------------------------
// Gruppe : Utilities
// Datei : Utilities
// Beschreibung : Sammlugn verschiedener Funktionen, die ich oft nutze. 
// Abhängigkeiten : Keine
// Release Version : 0.3
// Release Date : 04.02.2021
// Editor : OpenSCAD
// -----------------------------------------------------------------------------------------
// Autor siegfried.riehle@gmail.com
// Lizenz :  GNU Public License
// Der Programm Code kann frei verwendet und modifiziert werden. Der Code wird ohne 
// Gewährleistung oder Anspruch auf korrekte Funktionalität überlassen. 
// Bei Weitergabe, ist ein Hinweis auf den Original Autor im Source Code zu hinterlassen.
// -----------------------------------------------------------------------------------------


//Erzeugt ein KuchenSegment
module Pie(r=10, start_angle=0, end_angle=45)
{
  polygon(pie(r, start_angle, end_angle));

  function pie(r=40, a1=0, a2=150) =
    let(start = a1%360)
    let(end = (a2%360-start)>=0?a2%360:a2%360+360)
    let(fa = $fn==0?$fa:360/$fn)
    let(step = (end-start)/ceil((end-start)/fa)- 1e-7)
    r*[[0,0], for(i=[start:step:end]) [cos(i), sin(i)]];
}

//Erzeugt einen Donut oder ein TeilausSchnitt davon. 
module Donut(durchmesser, hoehe, angle) {
    $fa = 1;
    $fs = 0.4;
    wheel_radius = durchmesser / 2;
    tyre_diameter = hoehe;
    rotate_extrude(angle=angle) {
        translate([wheel_radius - tyre_diameter/2, 0])
            circle(d=tyre_diameter);
    }
}

