|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 15.03.2024 um 14:22 Uhr (1)
Hallo Zusammen,ich möchte aus meiner WindowsForms Applikation ein NXOpen Programm asynchron ausführen um das User Interface reaktiv zu halten.Nur leider treten gelegentliche main thread Fehler auf.Daher meine Frage, ob das überhaupt umsetzbar ist und wenn ja was ich falsch mache? private async Taskint DoWorkAsync() { int returnValue = 1; try { string consoleOutput = string.Empty; await Task.Run(() = { ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 18.03.2024 um 08:05 Uhr (1)
Hallo Michael,danke für die schnelle Rückmeldung.Die ExectueShellCommand ruft mein NXOpen Programm im Batch Modus auf.Das Programm enthält auch die von dir genannte GetSession Methode. Das User Interface löst lediglich nur den Trigger aus, um die Abarbeitung des Programmes durchzuführen. Nach der Beendigung meines NX Programmes wird falls nötig aus dem User Interface erneut das Programm aufgerufen und ausgeführt (Schleife). Mit reaktiv meinte ich eigentlich das verhindern des Einfrierens vom User Interface ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 21.03.2024 um 10:17 Uhr (1)
Zu 1.Genau, es ist eine Windows Forms Anwendung.Durch das Ausführen im Hintergrund wurde ja das Einfrieren des UI´s bereits verhindert. Deshalb brauche ich das DoEvents() nicht.Zu 2.Es wird als Prozess gestartet und dabei wird der StandardOutput sowie der Error ebenfalls ausgegeben.Die genannte Fehlermeldung taucht aber im NX Log auf...Zur letzten Frage:Das Programm wird nicht Parallel ausgeführt, was aber möglich ist. Sinn macht es aber eher weniger.Viele Grüße
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 25.03.2024 um 09:05 Uhr (1)
Hallo Michael,nur in dem Code Ausschnitt den ich hier aufgeführt habe, wird Threading benutzt, um das eigenständige NXOpen Programm wo auch die GetSession() aufgerufen wird auszuführen. Darin wird kein Threading benutzt. Es gibt auch keinen anderen BackGround Worker, weder im UI noch im NXOpen Programm.Viele Grüße
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 25.03.2024 um 13:39 Uhr (1)
Hallo Michael,habe den Fehler entdeckt. Tatsächlich prüfe ich im Vorfeld (im UI) noch die Item ID ab, was natürlich auch im Background geschieht.Das erzeugt die Meldung in meiner Logfile Zurecht.Ich war aber iwie auf mein asynchron ausgeführtes Programm fixiert und hab daran gar nicht mehr gedacht...Danke für deine Hilfe!Viele Grüße
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : NXOpen: Referenzen auf Assembly von GEO Part
bjaeckl am 13.08.2024 um 04:56 Uhr (5)
Grüßt euch,Ich habe eine simple Part-Hierarchie mit nur einem GEO Part. Mein Ziel ist es mit NXOpen (C#) von einem Face (im Geo-Level) auf eine Referenz im Assembly-Level zu kommen. Beispielsweise könnte mein Code so aussehen:foreach(Body body in part_geo.Bodies){ foreach(Face nxFace in body.getFaces()){ Face nxFace_assem = getAssemblyReferenceFromGeoPrototype(nxFace) ///Something more}}Die Frage ist nun wie die Funktion "getAssemblyReferenceFromGeoPrototype" aussehen müsste. Was ich bisher versuche ist: ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : NXOpen: Referenzen auf Assembly von GEO Part
bjaeckl am 19.08.2024 um 13:57 Uhr (1)
Lieber Michael,Herzlichen Dank für die Antwort - leider bin ich noch nicht auf die Lösung gekommen. Mein Face ist weder eine Occurence (".isOccurence" gibt "False" zurück) noch ein Prototype (".Prototype" ist null). Dennoch funktioniert für manche Faces die Methode AskOccsOfEntity mit dem Tag als Input und für andere nicht.Übrigens geschieht für die Methode .FindOccurence mit der Component, welche die Faces enthält, genau dasselbe. Also wenn die Methode ".AskOccsOfEntity" etwas findet, dann findet auch die ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : NXOpen: Referenzen auf Assembly von GEO Part
stefan.f am 20.08.2024 um 08:31 Uhr (1)
Der Prototyp ist null, weil es keine Occurence ist. Das heißt die Fläche befindet sich m.E. nicht in einer Komponente, sondern im Part.Ist es eine Occurence, dann steht auf Prototype der Tag der Fläche. Diesen musst du dann in der Funktion AskOccsOfEntity verwenden.GrußStefan
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : NXOpen: Referenzen auf Assembly von GEO Part
bjaeckl am 26.08.2024 um 17:03 Uhr (1)
Lieber Stefan,bedeutet das, dass es keine Möglichkeit gibt, um von einer Fläche die in einem Part ist (also keine Occurence) auf die Assembly-Referenz zu kommen? Beste Grüße,Bastian
|
In das Form NX Programmierung wechseln |