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


Innenradius unten und innen


Innenradius unten im Modell

Ein Innenradius im Schnittmodell

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

Links dagegen ist eine gelbe Rundung angebracht.
Diese Rundung 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.

Im Prinzip wird ein oberer Radius mit den normalen Befehlen fertig erzeugt. Dieser wird zum Schluss nur noch mit 'rotate' um 180 Grad gedreht. Somit ist das Zentrum des Radius wieder der Koordinaten-Nullpunkt für weitere Berechnungen zum Verschieben.


Wie der Innenradius entsteht

Ein Quadrat wird gesetzt ...

// radius_iu1.scad
// Innenradius, unten

$fn=50;

module rad_iu1 (innendurchm, radius) {

    translate([innendurchm - radius,0,0])
    square(radius, center = false);

}      // Ende von module 
 
 // Eingabe: rad_iu1(innendurchm, radius);
 rad_iu1(20,5);


Dazu kommt der Kreis (heute ganz in blau) mit dem gewünschten Radius

// radius_iu1.scad
// Innenradius, unten

$fn=50;

module rad_iu1 (innendurchm, radius) {

    translate([innendurchm - radius,0,0])
    square(radius, center = false);
        
    translate([innendurchm- radius , radius, 0])
    circle(radius);

}      // Ende von module 
 
 // Eingabe: rad_iu1(innendurchm, radius);
 rad_iu1(20,5);


Natürlich muss der Kreis vom Quadrat abgezogen werden:

// radius_iu1.scad
// Innenradius, unten

$fn=50;

module rad_iu1 (innendurchm, radius) {
difference()  {
    translate([innendurchm - radius,0,0])
    square(radius, center = false);
        
    translate([innendurchm- radius , radius, 0])
    circle(radius);

}  // Ende von difference
}      // Ende von module 
 
 // Eingabe: rad_iu1(innendurchm, radius);
 rad_iu1(20,5);


Jetzt wird das "Teil" rotiert...

Zur Hälfte schon fertig.

// radius_iu1.scad
// Innenradius, unten

$fn=50;

module rad_iu1 (innendurchm, radius) {
rotate_extrude(convexity = 10){
difference()  {
    translate([innendurchm - radius,0,0])
    square(radius, center = false);
        
    translate([innendurchm- radius , radius, 0])
    circle(radius);
    }  // Ende von difference
  }    // Ende von rotate_extrude
}      // Ende von module 
 
 // Eingabe: rad_iu1(innendurchm, radius);
 rad_iu1(20,5);


Der obere Innenradius

// radius_iu1.scad
// Innenradius, unten

$fn=50;

module rad_iu1 (innendurchm, radius) {
rotate_extrude(convexity = 10){
difference()  {
    translate([innendurchm - radius,0,0])
    square(radius, center = false);
        
    translate([innendurchm- radius , radius, 0])
    circle(radius);
    }  // Ende von difference
  }    // Ende von rotate_extrude
}      // Ende von module 
 
 // Eingabe: rad_iu1(innendurchm, radius);
 rad_iu1(20,5);


Gedrehter oberer Innenradius = unterer Innenradius

Ansicht von unten:


Ansicht von oben:

// radius_iu1.scad
// Innenradius, oben

$fn=50;

module rad_iu1 (innendurchm, radius) {
rotate([180,0,0]) 
rotate_extrude(angle=200,convexity = 10){
difference()  {
    translate([innendurchm - radius,0,0])
    square(radius, center = false);
        
    translate([innendurchm- radius , radius, 0])
    circle(radius);
    }  // Ende von difference
  }    // Ende von rotate_extrude
}      // Ende von module 
 
 // Eingabe: rad_iu1(innendurchm, radius);
rad_iu1(20,5);

Nur durch die Zeile rotate([180,0,0]) wird das gesamte Modul um 180 Grad gedreht. So wird aus dem normalen oberen Innenradius ein unterer Innenradius.

Doch ganz einfach, oder etwa nicht?


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

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






www.brixelweb.de