Support Forum

[Frage] Visual Scripting: Ausgangsfläche eines Sweeps senkrecht stellen

Schlagworte:
  • Visual scripting
  • Rotation

Hallo zusammen,

ich habe aus einem Rechteck (xy-Ebene) einen Sweep entlang einer schrägen 3D-Linie erzeugt (Ergebnis siehe Bild 1; Nodes in VS siehe Bild 2). Dabei wird das Rechteck als Ausgangsfläche (Stirnseite) ebenfalls um den Winkel der 3D-Linie geneigt. Die Neigung wird in den Oberkanten (2) und Unterkanten (2) der beiden Stirnseiten (rot, blau) sichtbar, da diese nicht aufeinanderliegen.

In Bild 3 habe ich den Winkel manuell korrigiert, damit die Stirnseiten (rechteck) senkrecht (Linie 1 auf Linie 2) stehen. Das Ziel soll sein, dass die Stirnseiten senkrecht stehen.

Frage: Wie muss ich mein Script ergänzen, damit der Sweep immer ausgehend von einer vertikal stehenden Fläche erzeugt wird und ich nicht manuell Winkel eingeben muss? Dies ist insbesondere bei Drehungen um die x-, y- und z-Achse kompliziert.

Vielen Dank

Marco

Anhänge (3)

Typ: image/jpeg
29-mal heruntergeladen
Größe: 28,42 KiB
Typ: image/jpeg
28-mal heruntergeladen
Größe: 54,78 KiB
Typ: image/jpeg
28-mal heruntergeladen
Größe: 75,80 KiB

Benutze nicht den Node SweepXYSection!
Dieser ist eigentlich dazu gedacht, ein Polygon in XY-Ebene automatisch zu "Sweepen".
Dabei wird das Polygon automatisch so gedreht, dass die Polygon-Ebene (XY-Ebene) senkrecht zur Tangente am Startpunkt des
Sweep-Pfades steht!

Wenn die Start- und Endfläche des Sweeps immer senkrecht zur XY-Ebene verlaufen sollen,
und ansonsten aber senkrecht zum Sweep, dann muss man die Drehung um die Z-Achse aus der Starttangente des Pfades ermitteln.

Anhänge (1)

Typ: image/png
31-mal heruntergeladen
Größe: 165,70 KiB

Hallo Nemo,

danke für deine Antwort. Ist es dann besser, die Startfläche des Sweeps gleich in der XZ-Ebene zu definieren, anstatt sie über die SweepXYSection zu drehen?

Marco

Ich verstehe die Frage nicht! Du definierst die Startfläche doch bereits in der XY-Ebene!!!

Nochmal:
Der Node Rectangle3D erzeugt ein rechteckiges 3D-Polygon, welches immer Parallel zur XY-Ebene liegt.

Und:
Der Node SweepXYSection dreht das 3D-Profil (Rechteck) automatisch vor der Extrusion dann so,
dass die Polygon-Ebene (parallel zur XY-Ebene) senkrecht zur Start-Tangente des Pfades liegt.
Deswegen heisst der Node auch so: SweepXYSection

In Deinem oben zu sehenden VS-Graphen versuchst Du, vor der Extrusion das 3D-Polygon manuell aus der XY-Ebene rauszudrehen,
damit die Start und Endflächen nach der Extrusion senkrecht (parallel zur Z-Achse) stehen!

Ist das Deine Intension, oder liege ich da falsch?

Wenn ja, dann benutze einfach den Graphen, den ich im letzten Screenshot gepostet habe.
Zur Verdeutlichung der geometrischen Funktionen anbei ein Screenshot von einem anderen VS-Plugin.

Du kannst aber auch Deinen Ansatz weiter verfolgen.
Allerdings musst du dann irgendwie die Kompensationswinkel ermitteln, die für die Drehung des XY-Polgons notwendig sind.
Dabei wünsche ich Dir viel Erfolg ...

Anhänge (1)

Typ: image/png
30-mal heruntergeladen
Größe: 88,42 KiB

Die Startfläche definiere ich in der XY-Ebene, über den Node SweepXYSection erzeuge ich mir eine Extrusion entlang des Pfads. Die Extrusion ist im Winkel der Neigung meines Pfads geneigt - die Polygon-Ebene steht senkrecht zu meinem Pfad. Daraus resultiert auch das Problem in meiner Frage.

In meinem VS habe ich diesen Node Rotate nur noch eingefügt, um die Startfläche in Querrichtung um die Y-Achse und um die Hochachse in Z-Richtung zu drehen (das braucht man für Brücken, um Querneigung und den Kreuzungswinkel einzustellen). Ich möchte aber, dass die Startfläche senkrecht bleibt und sich nicht um die X-Achse dreht. Diese manuelle Winkelkorrektur soll aber entfallen, da diese - wie du sagst - sehr kompliziert ist.

Meine Ausgangssituation ist also wie folgt: ich habe eine Fläche in der XY-Ebene definiert und möchte diese entlang eines Pfades extrudieren unter der Bedingung, dass die Startfläche senkrecht bleibt.
Als Alternative habe ich mir überlegt, die Startfläche des Sweeps gleich in der XZ-Ebene zu definieren, anstatt sie über die SweepXYSection zu drehen. Am Beispiel eines 3D Kreises (NormalVector x=0; Y=1; Z=0) habe ich einen Sweep entlang eines Pfads durchgeführt (siehe Bild 3). Wie du in den Bildern 1 und 2 erkennen kannst, bleibt die Startfläche senkrecht und ich kann diese zusätzlich um die beiden Achsen drehen. Gibt es hier eine ähnliche Möglichkeit, wenn ich meine Startfläche zuerst in der XY-Ebene definiert habe?

Anhänge (3)

Typ: image/jpeg
8-mal heruntergeladen
Größe: 41,48 KiB
Typ: image/jpeg
11-mal heruntergeladen
Größe: 66,02 KiB
Typ: image/jpeg
13-mal heruntergeladen
Größe: 57,94 KiB

Bitte schau doch nochmal den Screenshot an:

Dort wird Das Rechteck in der XY-Ebene definiert, und dann gleihzeitig um die Y-Achse um 90° und die Z-Achse gedreht.
Der Z-Drehwinkel wird dabei aus dem XY-Winkel der Start-Tangente ermittelt.

Etwas Verständnis für geometrische Algorithmen und Funktionen braucht man bei Nutzung von Visual-Scripting schon...

Anhänge (2)

Typ: image/png
45-mal heruntergeladen
Größe: 190,41 KiB
Typ: text/xml
1003-mal heruntergeladen
Größe: 4,51 KiB