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


Aussenradius 2 unten


Aussenradius unten im Modell

Ein Aussenradius im Schnittmodell

Unten ist eine äußere Rundung angebracht, die varibel zum Eingeben gedacht ist. Das bedeutet es kann jede Größe erstellt werden.

Im Prinzip wird ein oberer Radius mit den normalen Befehlen fertig erzeugt. Dieser muss zum Schluss nur noch mit 'translate' positioniert und über 'difference' vom eigentlichen Element abgezogen werden. 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_au2.scad
// Aussenradius 2, unten

$fn=100;

module rad_au2 (aussendurchm, radius) {

    translate([aussendurchm - radius +0.001, 0, 0])
    square(radius, center = false);
        
}      // Ende von module 
 
 // Eingabe: rad_au2(aussendurchm, radius);
rad_au2(20, 5);

In der Zeile 'translate([aussendurchm - radius +0.001, 0, 0])' bewirken die '+0.001' dass der Radius 1 Tausendstel größer wird. Dies hat zur Folge, dass später keine unsauberen Abschnitte entstehen.


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

// radius_au2.scad
// Aussenradius 2, unten

$fn=100;

module rad_au2 (aussendurchm, radius) {

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


Natürlich muss der Kreis vom Quadrat abgezogen werden:

// radius_au2.scad
// Aussenradius 2, unten

$fn=100;

module rad_au2 (aussendurchm, radius) {

difference()  {
    translate([aussendurchm - radius +0.001, 0, 0])
    square(radius, center = false);
        
    translate([aussendurchm -radius, radius, 0])
    circle(radius);
    }  // Ende von difference
}      // Ende von module 
 
 // Eingabe: rad_au2(aussendurchm, radius);
rad_au2(20, 5);


Jetzt wird das "Teil" rotiert...

Zur Hälfte schon fertig.

// radius_au2.scad
// Aussenradius 2, unten

$fn=100;

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


Der untere Aussenradius

// radius_au2.scad
// Aussenradius 2, unten

$fn=100;

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


Unterer Aussenradius ohne 0.001 !

Die unsauberen Abschnitte entstehen bei genauem Schneiden. Bei einem Über- oder Untermaß von einem Tausendstel ( 0.001 ) entfällt dies!
Beachte die Schreibweise mit dem Punkt statt Komma!

// radius_au2.scad
// Aussenradius 2, unten

$fn=100;

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


Oberer Aussenradius mit 0.001!

Die neuesten Zeilenänderungen sind rechts im Script in rot gehalten.

Die Zeile 'translate([0,0,-0.001])' bewirkt eine Absenkung in der Z-Achse.

// radius_au2.scad
// Aussenradius 2, unten

$fn=100;

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


Das Modul sollte immer am Anfang des Scriptes stehen. Es wird nur über "rad_au2(Aussendurchmesser, 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_au2(12,2).






www.brixelweb.de