fischertechnik-box-foundation

OpenSCAD sorting box construction foundation for Fischertechnik parts

View the Project on GitHub proggi64/fischertechnik-box-foundation

DeployVertical

Verteilt die angegebenen Children-Elemente mit gleichem Abstand auf die angegebene Strecke auf der X-Position Null. Dabei werden auch die Drehungen der einzelnen Elemente angegeben und berücksichtigt. Optional kann eine horizontale Ausrichtung der Elemente relativ zueinander angegeben werden.

Use

use <../Base/Deployment.scad>
include <../Base/PlacementOptions.scad>

Syntax

DeployVertical(
  depth=0, 
  spaces=[], 
  rotations=[NoRotation],
  alignX=NoAlign)
  {children}
Parameter Typ Beschreibung
depth Decimal Strecke, über die die angegebenen Elemente vertikal verteilt werden. Wird hier Null angegeben, werden die Elemente direkt ohne Abstand aneinander gesetzt.
spaces [[x,y],[x,y],…] Liste von Wertpaaren (Liste mit x- und y-Wert) mit den Flächen der Children-Elemente. Hier sollten die jeweiligen getElementNameSpace()-Funktionen angegeben werden, und zwar in der Reihenfolge, die der der Children-Elemente entspricht. Standard ist eine leere Liste, damit depth weggelassen werden kann. Die Liste darf aber nicht leer sein.
rotations [RotateX, RotateX, …] Gibt für jedes Children-Element an, wie es vor dem Vertielne gedreht werden soll. Mögliche Werte sind Rotate0, Rotate90, Rotate180 und Rotate270. Die Reihenfolge entspricht der der Children-Elemente. Die Liste kann ganz weggelassen werden, dann gelten für alle Elemente NoRotation. Ist die Liste unvollständig, wird für die restlichen Elemente NoRotation angenommen.
alignX Integer (Enum) Horizontale Ausrichtung der Children-Elemente zueinander. Grundlage sind die in spaces angegebenen Flächen, sowie die in rotations angegebenen Drehungen der einzelnen Elemente. AlignLeft richtet auf der linken Linie aus (wie NoAlign), AlignRight am höchsten X-Wert der Elemente, AlignCenter zentriert alle Elemente um das Zentrum des breitesten Elements.

Beispiele

Ohne Ausrichtung

Das Beispiel ist ein Ausschnitt aus der Testdatei Test/Base/DeploymentTestDeployVertical.scad:

use <../../Base/Deployment.scad>
use <../../Base/Placement.scad>

include <../../Base/PlacementOptions.scad>

use <../TestHelper.scad>

PlacementBase();
translate([0, 60])
    PlacementBase();

DeployVertical(
    getPlacementBaseSpace().y*2, 
    [getCubeSpace(), getCubeSpace(), getCubeSpace()],
    [Rotate0, Rotate90, Rotate180]) {
    Cube();
    Cube();
    Cube();
}

Das Beispiel verteilt drei gelbe Elemente Cube auf den grünen PlacementBase-Flächen (hier zwei übereinander), die hier zur Veranschaulichung unter die Elemente gelegt wird. Die Rotationen zeigen, dass die richtige Höhe nach der jeweiligen Rotation berücksichtigt wird. Die Abstände sind identisch.

DeployVertical_1

Zentriert ausgerichtet

use <../../Base/Deployment.scad>
use <../../Base/Placement.scad>

include <../../Base/PlacementOptions.scad>

use <../TestHelper.scad>

PlacementBase();
translate([0, 60])
    PlacementBase();

DeployVertical(
    getPlacementBaseSpace().y*2, 
    [getCubeSpace(), getCubeSpace(), getCubeSpace()],
    [Rotate0, Rotate90, Rotate180],
    alignX=AlignCenter) {
    Cube();
    Cube();
    Cube();
}

Wie das vorige Beispiel, aber der optionale Parameter alignX wird auf AlignCenter gesetzt.

DeployVertical_2

Ohne Abstand mit Ausrichtung rechts

use <../../Base/Deployment.scad>
use <../../Base/Placement.scad>

include <../../Base/PlacementOptions.scad>

use <../TestHelper.scad>

PlacementBase();
translate([0, 60])
    PlacementBase();

DeployVertical(
    0, 
    [getCubeSpace(), getCubeSpace(), getCubeSpace()],
    [Rotate0, Rotate90, Rotate180],
    alignX=AlignRight) {
    Cube();
    Cube();
    Cube();
}

Die Elemente werden direkt aneinander platziert.

DeployVertical_3