Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Setzen des MenuButton.SensitivityStatus beim Start von NX

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Setzen des MenuButton.SensitivityStatus beim Start von NX (331 mal gelesen)
justus_
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von justus_ an!   Senden Sie eine Private Message an justus_  Schreiben Sie einen Gästebucheintrag für justus_

Beiträge: 426
Registriert: 01.15.2003

NX 11.0.2 MP5
TC 10.1.3.2
WIN 7<P>Dell Precision T3600
Nvidia Quadro 4000

erstellt am: 14. Mrz. 2018 00:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Abend zusammen

Ich hab eine Frage zum Setzen des MenuButton.SensitivityStatus. Hintergrund ist folgender:

- Ich starte ein NX Open Programm beim Start von NX über ein startup-Verzeichnis. Eine .men-Datei und Ribbon sind ebenfalls vorhanden.
- Beim Start registriere ich die im .men bzw. im Ribbon aufzurufenden Funktionen. Außerdem lese ich ein paar externe Daten (Texte als Voreinstellungen).
- Nun möchte ich nach dem Lesen dieser Voreinstellungen prüfen, ob das Lesen erfolgreich war. Sollte es nicht erfolgreich gewesen sein soll der Button im Menü und im Ribbon "insensitiv" werden, da die aufzurufende Funktion ohne die eingelesenen Daten "nicht leben" kann.

Solange NX vollständig gestartet ist, ist das Ändern vom MenuButton.SensitivityStatus per Programm auch kein Problem. Nur ich möchte den Status schon festlegen bevor das NX-GUI dargestellt wird. Dieses wird allerdings mit einem "NX initialisation error" quittiert, dass der Button dessen SensitivityStatus geändert werden soll, unbekannt ist.

Ich dachte schon daran NX inkl. GUI starten zu lassen und erst danach den SensitivityStatus zu setzen. Aber ich weiß nicht, wie ich nach dem Main() automatisch eine neue Methode starte.
Ich würde gerne auf Interaktion der user verzichten.

Was kann ich tun? Hat jemand eine Idee?

Vielen Dank und Gruß
justus

------------------
...und immer daran denken: Wenn der Bauer nicht schwimmen kann ist immer die Badehose schuld! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2281
Registriert: 18.10.2005

HP Z420
WIN XP32 / WIN7 64
UG NX6-11
SUN Ultra 60
Solaris 7
CADDS5
3D Printer Prusa MK2 S

erstellt am: 14. Mrz. 2018 17:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für justus_ 10 Unities + Antwort hilfreich

Hallo Justus,

such' mal im NX-Forum nach Sensitivity, da erscheint dann dieser Beitrag. Denke, der sollte passen.

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

justus_
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von justus_ an!   Senden Sie eine Private Message an justus_  Schreiben Sie einen Gästebucheintrag für justus_

Beiträge: 426
Registriert: 01.15.2003

NX 11.0.2 MP5
TC 10.1.3.2
WIN 7<P>Dell Precision T3600
Nvidia Quadro 4000

erstellt am: 14. Mrz. 2018 23:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Michael

Vielen Dank für den Link zum Beitrag, nur leider kann ich daraus keine Lösung bzw. Idee ableiten. In dem Beitrag wird das Verhalten der Buttons nur über die .men-Dateien festgelegt - ich hätte das gerne aus einem Programm heraus, welches beim NX Start ausgeführt wird.

Der einzige Gedanke, der mir zu dem Thema kam war evtl. beim NX Start .mem Dateien per Programm auszutauschen und damit die Sensitivity der Buttons zu steuern. Ob dieses jedoch während des NX-Starts nicht bereits zu spät für so einen stunt ist müsste man testen.
Aber richtig elegant finde ich den Gedanken nicht. ;-)

Vielleicht noch eine weitere Idee?
Könnte man eine .men-Datei evtl. per Programm in NX "aktivieren" und zur Darstellung bringen? Ich habe zu dem Thema nichts gefunden.

Vielen Dank und Grüße
justus

------------------
...und immer daran denken: Wenn der Bauer nicht schwimmen kann ist immer die Badehose schuld! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2281
Registriert: 18.10.2005

HP Z420
WIN XP32 / WIN7 64
UG NX6-11
SUN Ultra 60
Solaris 7
CADDS5
3D Printer Prusa MK2 S

erstellt am: 15. Mrz. 2018 08:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für justus_ 10 Unities + Antwort hilfreich

Hallo Justus,

wär' ja auch zu schön, wenn das schon die Lösung wäre  Ist aber zumindest ein Hinweis darauf, woher der "NX initialisation error" kommen kann. Der Button, den Du ändern willst, ist zu dem Zeitpunkt offensichtlich noch nicht initialisiert. Das Problem, so sieht es jedenfalls aus, ist also einfach ein falsches Timing. Das ist die Quintessenz aus dem genannten Beitrag. Daraus die richtigen Schlüsse zu ziehen dürfte der Schlüssel zur Lösung, allerdings noch nicht die Lösung selbst sein.

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

justus_
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von justus_ an!   Senden Sie eine Private Message an justus_  Schreiben Sie einen Gästebucheintrag für justus_

Beiträge: 426
Registriert: 01.15.2003

NX 11.0.2 MP5
TC 10.1.3.2
WIN 7<P>Dell Precision T3600
Nvidia Quadro 4000

erstellt am: 15. Mrz. 2018 09:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Michael

Das mit dem "schlechten Timing" sehe ich genauso. Es scheint, als ob NX vor der Darstellung des GUI die Buttons noch nicht kennt und daher für ein Ändern einer Eigenschaft nicht greifen kann.

Ich werde wohl in den sauren Apfel beißen und NX grundsätzlich mit "insensitiven" Buttons für meine Applikation starten und einen "Startbutton" in das Ribbon einfügen um die Applikation interaktiv zu initialisieren. Finde ich nicht schön - aber besser als nix. ;-)

Viele Grüße
justus

------------------
...und immer daran denken: Wenn der Bauer nicht schwimmen kann ist immer die Badehose schuld! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2281
Registriert: 18.10.2005

HP Z420
WIN XP32 / WIN7 64
UG NX6-11
SUN Ultra 60
Solaris 7
CADDS5
3D Printer Prusa MK2 S

erstellt am: 15. Mrz. 2018 10:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für justus_ 10 Unities + Antwort hilfreich

Hallo Justus,

mit einem extra Button, der erst dan erscheint und betätigt wird, wenn der zu ändernde Kamerad initialisiert ist, wärst Du jedenfalls, was das Timing betrifft, auf der sicheren Seite.

Eine elegantere Alternative kann ich mir durchaus vorstellen, z.B. über einen UserExit (OpenPart) oder einen Timer. Also eine automatisch ausgeführte Aktion, die erst dann stattfindet, wenn die Initialisierung durch ist.

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

justus_
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von justus_ an!   Senden Sie eine Private Message an justus_  Schreiben Sie einen Gästebucheintrag für justus_

Beiträge: 426
Registriert: 01.15.2003

NX 11.0.2 MP5
TC 10.1.3.2
WIN 7<P>Dell Precision T3600
Nvidia Quadro 4000

erstellt am: 15. Mrz. 2018 11:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Michael,

über einen Timer hatte ich auch schon nachgedacht bzw. probiert den umzusetzen. Da mir eine Idee fehlte den Timer erst nach dem erfolgten NX Start zu starten habe ich ihn stumpf zwischen die Registrierung der Buttons und dem Ändern der ButtonSensitivity gesetzt (5 Sek.). Hat aber nichts gebracht, was mich auch nicht besonders gewundert hat. Ich hoffte, dass NX "die Pause nutzt" und sich die Oberfläche durch den Kopf gehen lässt. Da lag ich aber wohl falsch. ;-)

Auch an die user Exits hatte ich gedacht. Aber wenn ich es richtig verstanden habe wird USER_STARTUP vor dem NX Start ausgeführt und nicht danach. Sollte ich mal testen.
Da die gesuchte Funktion bzw. das Verhalten eher in die Kategorie "Sahnehäubchen" gehört werde ich es dann wohl dabei belassen und einen zusätzlichen Button spendieren und den Usern einen startenden Klick abnötigen. ;-)

Viele Grüße
justus

------------------
...und immer daran denken: Wenn der Bauer nicht schwimmen kann ist immer die Badehose schuld!  

[Diese Nachricht wurde von justus_ am 15. Mrz. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2281
Registriert: 18.10.2005

HP Z420
WIN XP32 / WIN7 64
UG NX6-11
SUN Ultra 60
Solaris 7
CADDS5
3D Printer Prusa MK2 S

erstellt am: 15. Mrz. 2018 13:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für justus_ 10 Unities + Antwort hilfreich

Hallo Justus,

der Einfachheit halber - und weil die User den zweiten Button sonst gern vergessen - könntest Du den einen Button offen lassen, bei Klick prüfen, ob die Voraussetzungen erfüllt sind (das kann auch schon beim Startup geschehen und in einer Bool'schen Variable abgelegt werden) und dann entweder eine "Sorry" -Meldung rauslassen oder den weiteren Ablauf starten.

Spart zumindest etwas Platz im UI 

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

justus_
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von justus_ an!   Senden Sie eine Private Message an justus_  Schreiben Sie einen Gästebucheintrag für justus_

Beiträge: 426
Registriert: 01.15.2003

NX 11.0.2 MP5
TC 10.1.3.2
WIN 7<P>Dell Precision T3600
Nvidia Quadro 4000

erstellt am: 16. Mrz. 2018 12:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Michael,

zum Glück spendiere ich auch ein eigenes Ribbon und bin daher "Herr über den Platz". ;-)

Ist eine gute Idee und ich werde es ausprobieren.
Ich hatte parallel noch die gleiche Frage in der Siemens PLM community platziert und eine recht interessante Antwort bekommen:
http://community.plm.automation.siemens.com/t5/NX-Programming-Customization-Forum/Set-MenuButton-SensitivityStatus-for-specific-button-in-ribbon/td-p/475661

Im Prinzip geht es darum den Programmstart nicht aus dem Startup-Verzeichnis zu machen sondern per USER_STARTUP user Exit (wir hatten das auch schon angedacht), da der user exit im Startvorgang von NX später "bearbeitet" wird.
Meine bisherigen Versuche sind aber noch nicht ganz erfolgreich gewesen. Die Buttons werden beim Start per user exit zwar wie gewünscht insensitiv aber die Registrierung der ButtonEvents schlägt irgendwie fehl. :-(

Ausprobieren werde ich es noch aber ich glaube, dass ich zu Gunsten der Übersichtlichkeit eher auf die Anwendung des user exists verzichen werde.

Grüße
justus

------------------
...und immer daran denken: Wenn der Bauer nicht schwimmen kann ist immer die Badehose schuld!    

[Diese Nachricht wurde von justus_ am 16. Mrz. 2018 editiert.]

[Diese Nachricht wurde von justus_ am 16. Mrz. 2018 editiert.]

[Diese Nachricht wurde von justus_ am 16. Mrz. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2281
Registriert: 18.10.2005

HP Z420
WIN XP32 / WIN7 64
UG NX6-11
SUN Ultra 60
Solaris 7
CADDS5
3D Printer Prusa MK2 S

erstellt am: 16. Mrz. 2018 13:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für justus_ 10 Unities + Antwort hilfreich

Hallo Justus,

der Vorschlag aus der SPLM Community geht ja grundsätzlich in die selbe Richtung, die wir schon als richtig erachtet haben: Später starten, damit zu diesem Zeitpunkt die Buttons komplett sind.

Welcher User Exit in dem Fall der beste ist, kann ich aus dem Stegreif nicht sagen, sondern würde diejenigen, die in Frage kommen könnten, einfach mal testen. So mach' ich's auch mit Windows-Events, wenn mehrere zur Verfügung stehen. Ob's dann z.B. ein .KeyDown oder ein .TextChanged wird, hängt auch dort ggfs. davon ab, zu welchem Zeitpunkt die Events stattfinden.

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2018 CAD.de