REF PT auf Globale Koordinaten

Hallo zusammen,

gibt es die Möglichkeit eine Strukturpunkt relativ zu einem anderen Strukturpunkt zu modellieren und diese Relation mit globalen Koordinaten anzugeben?
Bei dem unten gezeigtem Code wird der neue Punkt leider immer an dem gedrehten lokalen Koordinatensystem des Ursprungspunktes gebildet.

MFG

spt #knot(2)*10 ref pt #knot(2) x 2

Hallo,

mir fallen spontan zwei Möglichkeiten ein:

1.)
Wenn dir die Drehung des Ursprungspunktes auf den referenziert werden soll bekannt ist, kannst du für die Erstellung des neuen Punktes das lokale Koordinatensystem kurz wieder auf die globale Richtung drehen und anschließend wieder in die gewünschte Lage:

spt nr -#knot(2) nx 0 ny 0 nz 1 sx 1 sy 0 sz 0
spt #knot(2)*10 ref pt #knot(2) x 2
spt nr -#knot(2) nx ? ny ? nz ? sx ? sy ? sz ?

2.)
Wenn dir die Drehung des Ursprungspunktes nicht bekannt ist, kannst du dir im sofimshc mit dem Befehl COOR behelfen. Mit dem Befehl kannst du das globale Koordinatensystem an eine beliebige Koordinate+Ausrichtung oder in einen beliebigen Strukturpunkt legen. Letzteres sollte aber den gleichen Effekt haben, wie deine Lösung, da das globale Koordinatensystem die Richtung des lokalen annimmt.

Willst du das globale Koordinatensystem ohne Verdrehung in den Punkt legen, liest man am Besten die Koordinaten des Punktes aus der Datenbank aus und speichert diese in Variablen ab (Hinweis: funktioniert erst, wenn der Punkt in einem vorherigen Berechnungsdurchlauf schon erstellt wurde):

#define Kn_Ko_auslesen
$ BA_Alok zur Geometrieknoten-Definition auf Grundlage von Elementknoten
let#CDB_IER 0 $Fehlerwert CDB-Zugriff initialisiern / auf Null setzen
@key NODE $ Datenbanksatz mit den knotenkoordinaten öffnen
let#xkor @(#Such_Kn,1); let#ykor @(#Such_Kn,2); let#zkor @(#Such_Kn,3)
#enddef Kn_Ko_auslesen

let#Such_Kn #knot(2)
#include Kn_Ko_auslesen

Anschließend positionierst du mit COOR das globale Koordinatensystem an den ausgelesenen Koordinaten. Die Ausrichtung entsprechend des gl. Koordinatensystems sollte die Standardeinstellung sein. Punkt erstellen. Einstellung anschließend wieder zurück auf das Weltkoordinatensystem:

coor x #xkor y #ykor z #zkor
spt #knot(2)*10 x 2
coor typ wrld

Danke für die Lösungsansätze.

Ich hatte jetzt schon mehrfach das Problem und nun gehofft, dass es dafür einen einfachen Befehl gibt, den ich noch nicht kannte.

Ein Möglichkeit wäre auch die Verwendung eines Hilfsknotens:

$ Ausgangsknoten ist SPT 10
SPT  99 REF PT 10 SX 1 0 XFLG PLA  $ Hilfsknoten: Lage wie SPT 10, lokale Richtung = globale Richtung, ohne Vernetzung
SPT  20 REF PT 99 X 2              $ neuer Knoten mit Abstand X = 2 (global)

coor SPT 10                        $ Koordinatensystem (inkl. Richtung) in SPT 10
SPT -20 SX 1 0 0                   $ neuen Knoten: Koordinatensystem am SPT 10 ausrichten
coor                               $ Koordinatensystem auf Welt zurücksetzen

SPT -99 X -1 -1                    $ Hilfsknoten aus Modell verschieben

Grüße
gmay

1 Like