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


union = Elemente zusammenfügen

Das Zusammenfügen von Elementen ist das Einfachste: man lässt sie einfach überlappen!

Ein Quadrat in den Plusbereich des Koordinatensystems gesetzt, und ein weiteres Quadrat in den negativen Bereich.

Als drittes Element wurde ein Kreis verwendet.

square(10, center = false);
     
  translate([-10,-10,0])
  square(10, center = false);
	
circle(10, center = true);


+

+

=

!


Das Vereinigen von Elementen zu einem einzigen läuft über union() {.....}. Dies eignet sich hervorragend, wenn andere Befehle nur ein weiteres Element zulassen.

Da dies recht oft passiert - wie gleich festgestellt werden kann - kommt dies gleich als Beispiel:

Jetzt werden alle drei Elemente nur noch als eines angesprochen.

union()  {
    square(10, center = false);
     
    translate([-10,-10,0])
    square(10, center = false);
	
    circle(10, center = true);
     }


union() {.....} erstellt eine Vereinigung aller untergeordneten Elemente. Diese Funktion kann entweder mit 2D- oder 3D-Objekten verwendet werden, aber nicht untereinander mischen.


difference = Elemente von einander abziehen

difference()  {
    circle(10, center = true);
    
    square(10, center = false);
     
    translate([-10,-10,0])
    square(10, center = false);
     }


difference()  {
    circle(10, center = true);
    
    union() {
       square(10, center = false);
     
       translate([-10,-10,0])
       square(10, center = false);
	   }
     }

Nach dem Befehl difference() {.....} wird von dem erst genannten Element alle anderen abgezogen.

Vom Kreis werden die zwei Quadrate abgezogen.

Werden die abzuziehenden Elemente mittels union() {.....} zusammen gefasst, ergibt sich kein Unterschied zu ohne "union".


difference + union = Elemente von einander abziehen

Nun werden die zwei Quadrate erstellt und davon der Kreis abgezogen.

difference()  {

    square(10, center = false);
     
    translate([-10,-10,0])
    square(10, center = false);
    
    circle(10, center = true);
     }

Vom ersten Quadrat (der Ursprung!) wird das zweite Quadrat abgezogen. Da keine Überlappung stattfand, verschwindet dies ganz!
Der Kreis hingegen schneidet das Stück ab.

Jetzt wird zusätzlich noch union() {.....} benötigt!

difference()  {

    union() { 
        square(10, center = false);
     
         translate([-10,-10,0])
         square(10, center = false);
       }
    
    circle(10, center = true);
     }

union() {.....} fasst die zwei Quadrate zu einem Element zusammen. Von diesem wird dann der Kreis ausgeschnitten.
Und nun stimmt das Ergebnis.


intersection = Schnittmenge erstellen

intersection()  {
    circle(10, center = true);
 union() {   
    square(10, center = false);
     
    translate([-10,-10,0])
    square(10, center = false);
	   }	
     }


intersection()  {
   
    union() {
       square(10, center = false);
     
       translate([-10,-10,0])
       square(10, center = false);
	   }
    circle(10, center = true);
	}


Nach dem Befehl intersection() {.....} wird von dem erst genannten Element die Schnittmenge des folgenden erzeugt.

Gibt es mehr als zwei Elemente funktioniert es nicht mehr!

Daher muss wieder union() {.....} mehrere Elemente zusammen fassen. Die Reihenfolge spielt hier keine Rolle - bei beiden Scripten erscheint das gleiche Ergebnis.




zur Original-Seite von OpenSCAD