^
brixelweb.de OpenSCAD-Menu
[ https://openscad.org/ ]


Aussenradius oben 1


Das Schnittmodell

Ein Aussenradius im Schnittmodell

Links sieht man in der roten Schnittfläche die scharfe Kante.

Rechts dagegen ist eine gelbe Fase angebracht.
Diese Fase ist variabel zum Eingeben gedacht. Das bedeutet es kann jede Größe erstellt werden.



Sie entsteht aus einem Quadrat, einem Kreis und dem "rotate_extrude" - Befehl.


Wie der Aussenradius entsteht

Ein Quadrat wird gesetzt ...

Der Innendurchmesser des oberen Teiles des Modells wird halbiert. Dies entspricht dem Innenradius zur Berechnung. Im Abstand vom Innenradius zum Nullpunkt des Koordinaten-Systems wird er Startpunkt des Quadrates festgelegt = translate([innenradius,0,0]) Dies ist der rote Punkt.
An diesem Punkt wird das Quadrat mit der Kantenlänge vom Radius gesetzt = square(radius, center = false);.
Dies alles wird in ein Modul gesetzt module rad_ao1 (innenradius, radius) { }, damit es über die Variablen aufgerufen werden kann = rad_ao1(20,5);

Der Angfang: ein Quadrat

// radius_ao1.scad
// Aussenradius, oben

$fn=50;

module rad_ao1 (innenradius, radius) {

    translate([innenradius,0,0])
    square(radius, center = false);
        	
}     // Ende von module
 
 // Eingabe: rad_ao1(innenradius, radius);
 rad_ao1(20,5);


Ein Kreis kommt hinzu ...

Der Startpunkt des folgenden Kreises wird festgelegt = translate([innenradius + radius, radius, 0]). Dies ist der rote Punkt.
An diesem Punkt wird der Kreis mit dem Radius gesetzt = circle(radius);.
Die neuen Zeilen sind im Script rot hinterlegt. Startet den Script erneut.
Der Kreis wurde hellblau-durchsichtig gestaltet, damit die Schnittmenge besser zu sehen ist.

Es geht mit einem Kreis weiter ...

// radius_ao1.scad
// Aussenradius, oben

$fn=50;

module rad_ao1 (innenradius, radius) {

    translate([innenradius,0,0])
    square(radius, center = false);
        
    translate([innenradius + radius, radius, 0])
    circle(radius);
	
}     // Ende von module
 
 // Eingabe: rad_ao1(innenradius, radius);
 rad_ao1(20,5);


Jetzt wird abgerechnet!

Mit dem Befehl 'difference' wird vom ersten Teil das zweite abgezogen = difference() {} .
Das heißt, vom ersten Teil, bei uns das Quadrat, wird der zweite Teil, der Kreis, abgezogen.
Die Schnittmenge beider Elemente wird abgezogen. Der Rest des Kreises läuft ins Leere, entfällt also komplett.
Es bleibt nur das Dreieck mit dem Radius übrig!

Der Kreis wird vom Quadrat abgezogen.

// radius_ao1.scad
// Aussenradius, oben

$fn=50;

module rad_ao1 (innenradius, radius) {
difference()  {

    translate([innenradius,0,0])
    square(radius, center = false);
        
    translate([innenradius + radius, radius, 0])
    circle(radius);
	
  }   // Ende von difference
}     // Ende von module
 
 // Eingabe: rad_ao1(innenradius, radius);
 rad_ao1(20,5);


Jetzt geht es rund!

Mit dem Befehl 'rotate_extrude' wird das Teil um die Z-Achse rotiert = rotate_extrude(convexity = 10) {} .

Für eine bessere Darstellung im Bild habe ich nur die Hälfte des Radius erzeugt. Es wurde mittels rotate_extrude(angle=180, convexity = 10) {} erstellt. Fehlt die Eingabe von 'angle=...,' wird automatisch die Vorgabe von 360 Grad, also ein kompletter Kreis, dargestellt. Meine Eingabe von'180' ergab demnach nur einen Halbkreis.

... zur Hälfte bereits fertig!

// radius_ao1.scad
// Aussenradius, oben

$fn=50;

module rad_ao1 (innenradius, radius) {
rotate_extrude(convexity = 10){
difference()  {

    translate([innenradius,0,0])
    square(radius, center = false);
        
    translate([innenradius + radius, radius, 0])
    circle(radius);
	
    }  // Ende von difference
  }   // Ende von rotate_extrude
}     // Ende von module
 
 // Eingabe: rad_ao1(innenradius, radius);
 rad_ao1(20,5);


Der fertige Aussenradius

So sieht nun der fertige Aussenradius aus: im Beispiel hat er einen Innendurchmesser von 20 und einem Radius von 5 durch die Eingabe erhalten.

// radius_ao1.scad
// Aussenradius, oben

$fn=50;

module rad_ao1 (innenradius, radius) {
rotate_extrude(convexity = 10){
difference()  {

    translate([innenradius,0,0])
    square(radius, center = false);
        
    translate([innenradius + radius, radius, 0])
    circle(radius);
	
    } // Ende von difference
  }   // Ende von rotate_extrude
}     // Ende von module
 
 // Eingabe: rad_ao1(innenradius, radius);
 rad_ao1(20,5);


Das Modul sollte immer am Anfang des Scriptes stehen. Es wird nur über "rad_ao1(Innendurchmesser, Radius)" aufgerufen. Über "translate" kann der Innenradius-Ring an die gewünschte Stelle verschoben werden. Als Zentrum des Radius dient der Koordinaten-Nullpunkt.

Kopiere den Script und versuche es mit anderen Werten: z.B. rad_ao1(12,2).

Der Name des Moduls "rad_ao1" kann selbstverständlich geändert und dadurch frei gewählt werden. Es sollte nur darauf geachtet werden, dass der Modulname 'module neuer_name (innenradius, radius) {...}' mit dem Aufruf ' neuer_name(20,5);' übereinstimmt.






www.brixelweb.de