AdeQuate Solutions GmbH
Fertigung 4.0
1460
Follower:innenKoordinatensystem in TSV6 per API - Umrechnung Schwenkwink
02.06.2017, 07:00 Uhr
Hallo,
ich möchte aus der Schwenkebene eines Heidenhain-Cycle19 ein Koordinatensystem in TSV6 per API erstellen. Wie kann ich die Schwenkwinkel der Achsen A und C in die benötigten Raum-Vektoren umrechnen. Ich programmiere mit C#, aber das spielt hier vermutlich keine Rolle.
Die Methode lautet bekannterweise ICoordinateSystems.AddBasic(Ox, Oy, Oz, Xx, Xy, Xz, Yx, Yy, Yz)
Danke und Grüße
ich möchte aus der Schwenkebene eines Heidenhain-Cycle19 ein Koordinatensystem in TSV6 per API erstellen. Wie kann ich die Schwenkwinkel der Achsen A und C in die benötigten Raum-Vektoren umrechnen. Ich programmiere mit C#, aber das spielt hier vermutlich keine Rolle.
Die Methode lautet bekannterweise ICoordinateSystems.AddBasic(Ox, Oy, Oz, Xx, Xy, Xz, Yx, Yy, Yz)
Danke und Grüße
--------------------
Grüße Andi
02.06.2017, 15:33 Uhr
aachen-matthias
Level 2 = Community-Facharbeiter
Gruppe: Mitglied
Mitglied seit: 16.01.2009
Beiträge: 72
Mitglied seit: 16.01.2009
Beiträge: 72
Hallo,
Du brauchst ja Vektoren.
Was für eine Kinematik hat die Maschine?
Probier mal das:
EPSILON = 0.0000001
IF (ABS_(Xz-1) <= EPSILON) // singularity, -Sine(Y) == 1
{
RaumwCAng=0.;
RaumwBAng=-90.;
RaumwAAng=ATAN2(-Yx,Yy);
}
ELSE IF
IF (ABS_(Xz+1) <= EPSILON) // singularity, -Sine(Y) == -1
{
RaumwCAng=0.;
RaumwBAng=90.;
RaumwAAng=ATAN2(Yx,Yy);
}
ELSE IF
{
RaumwBAng=ASIN(-Xz);
RaumwCAng=ATAN2(Xy,Xx);
RaumwAAng=ATAN2(Yz,Oz);
}
Du brauchst ja Vektoren.
Was für eine Kinematik hat die Maschine?
Probier mal das:
EPSILON = 0.0000001
IF (ABS_(Xz-1) <= EPSILON) // singularity, -Sine(Y) == 1
{
RaumwCAng=0.;
RaumwBAng=-90.;
RaumwAAng=ATAN2(-Yx,Yy);
}
ELSE IF
IF (ABS_(Xz+1) <= EPSILON) // singularity, -Sine(Y) == -1
{
RaumwCAng=0.;
RaumwBAng=90.;
RaumwAAng=ATAN2(Yx,Yy);
}
ELSE IF
{
RaumwBAng=ASIN(-Xz);
RaumwCAng=ATAN2(Xy,Xx);
RaumwAAng=ATAN2(Yz,Oz);
}
02.06.2017, 16:12 Uhr
Hallo aachen-matthias,
danke schon mal.
Dein Snippet muss ich für jeden Winkel (A und C-Achse) durchlaufen und Xz steht für den Winkel, also mein Input?
Der nc-code den ich simulieren will ist eine hermle c40, als eine Tisch-Tisch-Kinematik. Ist das für mich von Bedeutung? Ich glaube nicht. Ich möchte einfach die Fräsbahn der geschwenkten Ebene in topsolid darstellen. Er kommt von einem Fremdsystem und enthält nur Linearbewegungen. Dazu brauche ich halt ein Koordinaten System in der entsprechenden Ebene und kann 1:1 die Bahn per API reinpinseln.
Der Beitrag wurde von andi74 bearbeitet: 02.06.2017, 16:17 Uhr
danke schon mal.
Dein Snippet muss ich für jeden Winkel (A und C-Achse) durchlaufen und Xz steht für den Winkel, also mein Input?
Der nc-code den ich simulieren will ist eine hermle c40, als eine Tisch-Tisch-Kinematik. Ist das für mich von Bedeutung? Ich glaube nicht. Ich möchte einfach die Fräsbahn der geschwenkten Ebene in topsolid darstellen. Er kommt von einem Fremdsystem und enthält nur Linearbewegungen. Dazu brauche ich halt ein Koordinaten System in der entsprechenden Ebene und kann 1:1 die Bahn per API reinpinseln.
Der Beitrag wurde von andi74 bearbeitet: 02.06.2017, 16:17 Uhr
--------------------
Grüße Andi
02.06.2017, 16:40 Uhr
Hallo aachen-matthias,
meine Ausgangsdaten sind der Nullpunkt kartesisch in X, Y, Z plus die Schwenkwinkel der Rundachsen (A, C). Den Nullpunkt kann ich 1:1 übernehmen, die Schwenkwinkel müssen in Raum-Vektoren umgerechnet werden. Kann es sein, dass du mir den umgekehrten Weg beschrieben hast?
Danke und Gruß
meine Ausgangsdaten sind der Nullpunkt kartesisch in X, Y, Z plus die Schwenkwinkel der Rundachsen (A, C). Den Nullpunkt kann ich 1:1 übernehmen, die Schwenkwinkel müssen in Raum-Vektoren umgerechnet werden. Kann es sein, dass du mir den umgekehrten Weg beschrieben hast?
Danke und Gruß
--------------------
Grüße Andi
02.06.2017, 17:54 Uhr
Hallo aachen-matthias,
meine Ausgangsdaten sind der Nullpunkt kartesisch in X, Y, Z plus die Schwenkwinkel der Rundachsen (A, C). Den Nullpunkt kann ich 1:1 übernehmen, die Schwenkwinkel müssen in Raum-Vektoren umgerechnet werden. Kann es sein, dass du mir den umgekehrten Weg beschrieben hast?
Danke und Gruß
meine Ausgangsdaten sind der Nullpunkt kartesisch in X, Y, Z plus die Schwenkwinkel der Rundachsen (A, C). Den Nullpunkt kann ich 1:1 übernehmen, die Schwenkwinkel müssen in Raum-Vektoren umgerechnet werden. Kann es sein, dass du mir den umgekehrten Weg beschrieben hast?
Danke und Gruß
Wobei die A-Achse sich um X dreht und die C-Achse um Z.
Da Thema ist kompexer als ich zunächst dachte. Evtl. reicht es mir auch schon wenn ich einen Winkel in einen 2D-Vektor umrechnen kann. Weiß jemand wie das geht?
Der Beitrag wurde von andi74 bearbeitet: 02.06.2017, 17:59 Uhr
--------------------
Grüße Andi
02.06.2017, 17:58 Uhr
Da Thema ist kompexer als ich zunächst dachte.
Evtl. reicht es mir auch schon wenn ich einen Winkel in einen 2D-Vektor umrechnen kann. Weiß jemand wie das geht?
Der Beitrag wurde von andi74 bearbeitet: 02.06.2017, 17:59 Uhr
Evtl. reicht es mir auch schon wenn ich einen Winkel in einen 2D-Vektor umrechnen kann. Weiß jemand wie das geht?
Der Beitrag wurde von andi74 bearbeitet: 02.06.2017, 17:59 Uhr
--------------------
Grüße Andi
02.06.2017, 19:05 Uhr
Hallo,
ich verwende dafür die Klassen im Namespace "System.Windows.Media.Media3D" hier findest du eine "Vector3D" Klasse.
Um einen Einheitsvektor um einen Raumwinkel zu drehen benötigste du eine "Quaternion" Instanz als Drehung und eine "Matrix3D" für das Transform.
So habe ich es in meinem Postprozessor für TopSolid gemacht, such am besten in der MSDN nach diesen Klassen..
cu
andi
ich verwende dafür die Klassen im Namespace "System.Windows.Media.Media3D" hier findest du eine "Vector3D" Klasse.
Um einen Einheitsvektor um einen Raumwinkel zu drehen benötigste du eine "Quaternion" Instanz als Drehung und eine "Matrix3D" für das Transform.
So habe ich es in meinem Postprozessor für TopSolid gemacht, such am besten in der MSDN nach diesen Klassen..
cu
andi
02.06.2017, 19:21 Uhr
Hab noch ein kleines Beispiel:
Am Anfang ist v ein Einheitsvektor auf Z+
mit dem Rotate wird um Y 90° gedreht, also B90
V2 enthält dann dein Ergebnis..
QUOTE
var v = new Vector3D(0, 0, 1);
var m = new Matrix3D();
m.Rotate(new Quaternion(new Vector3D(0, 1, 0), 90));
var v2 = m.Transform(v);
var m = new Matrix3D();
m.Rotate(new Quaternion(new Vector3D(0, 1, 0), 90));
var v2 = m.Transform(v);
Am Anfang ist v ein Einheitsvektor auf Z+
mit dem Rotate wird um Y 90° gedreht, also B90
V2 enthält dann dein Ergebnis..
02.06.2017, 20:40 Uhr
Hab noch ein kleines Beispiel:
Am Anfang ist v ein Einheitsvektor auf Z+
mit dem Rotate wird um Y 90° gedreht, also B90
V2 enthält dann dein Ergebnis..
Am Anfang ist v ein Einheitsvektor auf Z+
mit dem Rotate wird um Y 90° gedreht, also B90
V2 enthält dann dein Ergebnis..
Vielen Dank.
Dein Ergebnis liefert 1;0;2,22044604925031E-16
Ich kann es noch nicht ganz einordnen. Wir stehen vor einer Fräsmaschine, zB eine Deckel FP4, waagerechter Tisch. 0 Grad zeigt nach X-Plus, 90 Grad wären Y-Plus, -90 Grad wären y-Minus usw. Wie müsste dein Beispiel lauten wenn ich zB 90 Grad umrechnen möchte. Dann würde der Vector nach Y-Plus zeigen und müsste lauten 0;1;0 oder?
--------------------
Grüße Andi
02.06.2017, 21:57 Uhr
Vielen Dank.
Dein Ergebnis liefert 1;0;2,22044604925031E-16
Ich kann es noch nicht ganz einordnen. Wir stehen vor einer Fräsmaschine, zB eine Deckel FP4, waagerechter Tisch. 0 Grad zeigt nach X-Plus, 90 Grad wären Y-Plus, -90 Grad wären y-Minus usw. Wie müsste dein Beispiel lauten wenn ich zB 90 Grad umrechnen möchte. Dann würde der Vector nach Y-Plus zeigen und müsste lauten 0;1;0 oder?
Dein Ergebnis liefert 1;0;2,22044604925031E-16
Ich kann es noch nicht ganz einordnen. Wir stehen vor einer Fräsmaschine, zB eine Deckel FP4, waagerechter Tisch. 0 Grad zeigt nach X-Plus, 90 Grad wären Y-Plus, -90 Grad wären y-Minus usw. Wie müsste dein Beispiel lauten wenn ich zB 90 Grad umrechnen möchte. Dann würde der Vector nach Y-Plus zeigen und müsste lauten 0;1;0 oder?
Sorry, jetzt habe ich es kapiert. Nochmals vielen Dank.
--------------------
Grüße Andi
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: