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


Variabler Flansch

Die Maßangaben können jederzeit geändert werden. Dadurch bleibt der Flansch variabel einsetzbar.


du = 50; // Durchmesser unterer Zylinder
hu = 20; // Gesamthöhe unterer Zylinder

do = 28; // Durchmesser oberer Zylinder
ho = 40; // Gesamthöhe oberer Zylinder

zi = 20; // Durchmesser innerer Zylinder

rad5 = 5; // Radius 5
rad4 = 1; // Radius 4
rad1 = 1; // Radius 1


Der variable Flansch für Hans

Vorbereitung zur Kombination und dem inneren Abzug



// =====================================
//          A C H T U N G !
//    Ab hier nichts mehr ändern

difference() {

 union() {


Unten wird ein Ring erzeugt.

In dessem Innern erstellen wir einen Zylinder, der kleiner als der Ring ist = d=du-2*rad5.

Abschließend kommt ein Zylinder darüber. Seine Höhe beträgt die Gesamthöhe ab´züglich der beiden Radien.

// UNTERER ZYLINDER -------------------

  //Radius 5 erstellen
  translate([0,0,rad5]){
  rotate_extrude(convexity = 10)
  translate([(du-2*rad5)/2, 0, 0])
  circle(r = rad5);
  }
    
  // Innerer Zylinder für Radius 5
 translate([0,0,0]) cylinder(h=rad5, d=du-2*rad5, center=false);
  
  // Unterer Zylinder
 translate([0,0,rad5])cylinder(h=hu-(rad5+rad4), d=du, center=false); 


Der Ring für Radius 4 (rad4) wird erzeugt.

Mit einem Zylinder wird das Innere aufgefüllt.

Fertig ist der untere Zylinder!

//Radius 4 erstellen
  translate([0,0,hu-rad4]){
  rotate_extrude(convexity = 10)
  translate([(du-2*rad4)/2, 0, 0])
  circle(r = rad4);
  }

  // Innerer Zylinder bei Radius 4
 translate([0,0,hu-rad4])cylinder(h=rad4, d=du-(rad4*2), center=false); 


Es geht mit dem oberen Zylinder weiter.

der obere Radius (rad1) wird erstellt.

// OBERER ZYLINDER -------------------

 //Radius 1 erstellen
  translate([0,0,hu+ho-rad1]){
  rotate_extrude(convexity = 10)
  translate([(do-2*rad1)/2, 0, 0])
  circle(r = rad1);
  }
  


Ein Zylinder für den Inhalt des Ringes folgt als Nächstes.

Und endlich erscheint der letzte Zylinder!

Fertig ist das Grundelement.

// Innerer Zylinder für Radius 1
 translate([0,0,hu]) cylinder(h=ho, d=do-2*rad1, center=false);
  
  // Oberer Zylinder
 translate([0,0,hu])cylinder(h=ho-(rad1), d=do, center=false); 

}  // Ende von union


Jetzt wird der innere Zylinder von Allem abgezogen.

// ------------------------------------------

// Ab hier Abzug des inneren Zylinders
  
  translate([0,0,-0.5])
    cylinder(h=hu+ho+1, d=zi, center=false);  

} // Ende von difference 



Der komplette Script

//  FLANSCH - Variabel

$fn=70;

// =====================================

// Gebe hier die passende Werte ein:

du = 50; // Durchmesser unterer Zylinder
hu = 20; // Gesamthöhe unterer Zylinder

do = 28; // Durchmesser oberer Zylinder
ho = 40; // Gesamthöhe oberer Zylinder

zi = 20; // Durchmesser innerer Zylinder

rad5 = 5; // Radius 5
rad4 = 1; // Radius 4
rad1 = 1; // Radius 1


// =====================================
//          A C H T U N G !
//    Ab hier nichts mehr ändern

difference() {

 union() {

// UNTERER ZYLINDER -------------------

  //Radius 5 erstellen
  translate([0,0,rad5]){
  rotate_extrude(convexity = 10)
  translate([(du-2*rad5)/2, 0, 0])
  circle(r = rad5);
  }
    
  // Innerer Zylinder für Radius 5
 translate([0,0,0]) cylinder(h=rad5, d=du-2*rad5, center=false);
  
  // Unterer Zylinder
 translate([0,0,rad5])cylinder(h=hu-(rad5+rad4), d=du, center=false); 


  //Radius 4 erstellen
  translate([0,0,hu-rad4]){
  rotate_extrude(convexity = 10)
  translate([(du-2*rad4)/2, 0, 0])
  circle(r = rad4);
  }

  // Innerer Zylinder bei Radius 4
 translate([0,0,hu-rad4])cylinder(h=rad4, d=du-(rad4*2), center=false); 

// OBERER ZYLINDER -------------------

 //Radius 1 erstellen
  translate([0,0,hu+ho-rad1]){
  rotate_extrude(convexity = 10)
  translate([(do-2*rad1)/2, 0, 0])
  circle(r = rad1);
  }
    
  // Innerer Zylinder für Radius 1
 translate([0,0,hu]) cylinder(h=ho, d=do-2*rad1, center=false);
  
  // Oberer Zylinder
 translate([0,0,hu])cylinder(h=ho-(rad1), d=do, center=false); 

}  // Ende von union

// ------------------------------------------

// Ab hier Abzug des inneren Zylinders
  
  translate([0,0,-0.5])
    cylinder(h=hu+ho+1, d=zi, center=false);  

} // Ende von difference 



Kopiere den Script und probiere ihn aus!