- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Guten Morgen,
ich habe in Problem mit dem Ausrichten eines Bauteils in eine Baugruppe.
Prinzipiell gehe ich wie folgt vor (Auszug aus dem Code).
...
Dim Eintrag(15) As Double
...
oMatrix.GetMatrixData Eintrag
...
Set xAchse = otransgeom.CreateVector(1, 0, 0)
...
Set opunktneu = otransgeom.CreatePoint(0, 0, 0)
Call oMatrix.SetToRotation(meinWinkelWert * PI / 180 * (-1), xAchse, opunkt)
Call oMatrix.SetTranslation(otransgeom.CreateVector(Eintrag(3), Eintrag(7), Eintrag(11)))
...
oFace.Transformation = oMatrix
Das habe ich jeweils für die X Y Z- Achse geschrieben und funktioniert auch einwandfrei.
Aber, wenn ich eine Drehung in X ausführe, werden die Werte für Y und Z auf 0 gesetzt.
Das selbe passiert bei Y oder Z, d.h. die vorhergehenden Winkelwerte gehen verloren.
Nun hab ich mir gedacht, ich speichere mir die Winkelwerte in einer 2. Matrix zwischen und kopiere dann dort die geänderten Winkelwerte rein. Danach benutze ich "PutMatrixData()".
Hier dazu mal ein Testcode:
oMatrix.GetMatrixData Eintrag Eintrag1(5) = Eintrag(5) Eintrag1(6) = Eintrag(6) Eintrag1(9) = Eintrag(9) Eintrag1(10) = Eintrag(10) Call oMatrix.PutMatrixData(Eintrag1)
oFace.Transformation = oMatrix
Dies wird mir mit Run-time error '5': Invalid procedure call or argument quittiert.
Wenn ich aber die Drehung ausführe und dann die alten werte zurück spiele, wird die Drehung rückgängig gemacht und es gibt keinen Fehler.
Also so:
oFace.Transformation = oMatrix Call oMatrix.PutMatrixData(Eintrag1) oFace.Transformation = oMatrix
Gibt es hierfür eine Lösung?
gruß
Andre
@Anonymous Der Beitragstitel wurde von @michele.mk zur besseren Auffindbarkeit bearbeitet. Originaltitel: Problem mit PutMatrixData
Solved! Go to Solution.