LabVIEWForum.de
Externen Code (.exe) ansteuern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Externen Code (.exe) ansteuern (/Thread-Externen-Code-exe-ansteuern)



Externen Code (.exe) ansteuern - TerraX - 11.05.2009 13:24

Hallo zusammen,

nachdem ich an der eingebauten 3D Darstellung in LabVie langsam verzweifle würde ich die Darastellung gerne mit einer anderen Software machen.

Wie krieg ich es hin an eine .exe nur einmal aufzurufen, aber in einer Whileschleife regelmässig mit neuen Parametern zu füttern?

Gruß,
TerraX


Externen Code (.exe) ansteuern - ImExPorty - 11.05.2009 13:33

Hallo TerraX,
das kommt auf die Funktionalität Deiner "andern" Software an:
-Startparameter (die auch mehrfach aktualisiert übergeben werden können, ohne das die Applikation in einer neuen Instanz aufstartet)
-ActiveX-Schnittstelle
-DDE
-Dateien
-...
welches Programm soll es den werden ? und was macht in LV aktuell Probleme?


Externen Code (.exe) ansteuern - TerraX - 11.05.2009 14:34

Hi,

ich habe ein Objekt, dessen Lage im Raum in 5 Achsen durch Taster gemessen wird. Mein LabVIEWProgramm hilft bei der Justage dieses Objekts.

Zwecks Visualisierung wie weit das Objekt noch vom optimalen Zusatand entfernt ist, wollte ich eine 3D Darstellung einbauen, die aus den Messdaten den aktuellen Zustad darstellt und als Geisterbild den Zielzustand.

Mein Problem ist die Rotation im Raum. Die mitgelieferten LV Funktionen wollen als Input eine Achse um die gedreht wird und einen Winkel um wieviel. Das Problem ist, dass ich nach der Rotation nur eine Achse wieder auslesen kann. Um aber um die nächste lokale Rotationsachse drehen zu können, muss ich deren Lage im Raum kennen, also in globalen Koordinaten.
Ich schlage mich jetzt schon seit Tagen mit Rotationsmatrizen rum und krieg langsam die Krise.

Das Problem mit meiner externen Software (blender -> http://www.blender.org) und den dortigen Methoden zu lösen hat mich 5Min gekostet.
Der Unterschied, dort kann ich angeben um lokale Achsen zu drehen und schon gehts.

Gruß,
TerraX


Externen Code (.exe) ansteuern - rolfk - 12.05.2009 06:55

' schrieb:Hi,

ich habe ein Objekt, dessen Lage im Raum in 5 Achsen durch Taster gemessen wird. Mein LabVIEWProgramm hilft bei der Justage dieses Objekts.

Zwecks Visualisierung wie weit das Objekt noch vom optimalen Zusatand entfernt ist, wollte ich eine 3D Darstellung einbauen, die aus den Messdaten den aktuellen Zustad darstellt und als Geisterbild den Zielzustand.

Mein Problem ist die Rotation im Raum. Die mitgelieferten LV Funktionen wollen als Input eine Achse um die gedreht wird und einen Winkel um wieviel. Das Problem ist, dass ich nach der Rotation nur eine Achse wieder auslesen kann. Um aber um die nächste lokale Rotationsachse drehen zu können, muss ich deren Lage im Raum kennen, also in globalen Koordinaten.
Ich schlage mich jetzt schon seit Tagen mit Rotationsmatrizen rum und krieg langsam die Krise.

Das Problem mit meiner externen Software (blender -> http://www.blender.org) und den dortigen Methoden zu lösen hat mich 5Min gekostet.
Der Unterschied, dort kann ich angeben um lokale Achsen zu drehen und schon gehts.

Gruß,
TerraX

Verstehe ich dass recht dass Du alles globale Werte hast und die Tatsache dass Du bei verknüpften Achsen beim LabVIEW 3D Objekt die Werte relativ angeben musst ein Problem ist?

Zum Problem vom Ansteuern von externen Programmen. Da braucht man Interapplikationskommunikation. Die zwei populärsten Methoden dazu sind unter Widnows mentan ActiveX und .Net. Momentan deshalb weil Microsoft ungefähr alle 5 bis 10 Jahre eine andere noch "bessere" Methode enführt. Ob Dein "Blender" eine dieser Methoden unterstützt weiss ich nicht. Wird wohl doch wieder einiges an Arbeit sein.

Rolf Kalbermatter


Externen Code (.exe) ansteuern - TerraX - 12.05.2009 09:15

Hallo Rolf,

Zitat:Verstehe ich dass recht dass Du alles globale Werte hast und die Tatsache dass Du bei verknüpften Achsen beim LabVIEW 3D Objekt die Werte relativ angeben musst ein Problem ist?

Ich muss LabVIEW sagen um welche Achse er drehen soll. Mein erster Ansatz war ich geb ihm die Achsen (1,0,0) , (0,1,0) und (0,0,1). Also die lokalen Koordinatenachsen. Nur LV interpretiert diese immer global und nicht Objektbezogen.

Interessanterweise kann ich ein übergeordnetes Objekt im Raum verschieben und die Rotation erfolgt danach nicht um das Globale, sondern um das verschobene Koordinatensystem.
Beim verkippen des Objekts nimmt er die Achsen aber leider nicht mit, weshalb ich es mit Rotationsmatrizen versucht habe. Aber entweder kommt da durch Rundungsfehler Mist zustande, oder mein Code funktioniert nicht ganz so wie gedacht.
Für Rotationen bis 5° sieht das Ergebnis gut aus, aber ab 70° rotiert er nicht nur um die Sollachse, sondern das Objekt kippt über, rotiert also auch um eine andere Achse. Vermutlich tut es das schon von Anfang an, aber man sieht es erst bei großen Winkeln deutlich.

TerraX

Gruß,
TerraX