| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Setzen des MenuButton.SensitivityStatus beim Start von NX (1212 / mal gelesen)
|
justus_ Mitglied Dipl.-Ing.
Beiträge: 444 Registriert: 01.15.2003 NX 11.0.2 MP6 TC 11.3 WIN 7<P>Dell Precision T3600 Nvidia Quadro 4000
|
erstellt am: 14. Mrz. 2018 00:12 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 14. Mrz. 2018 17:41 <-- editieren / zitieren --> Unities abgeben: Nur für justus_
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.
Beiträge: 444 Registriert: 01.15.2003 NX 11.0.2 MP6 TC 11.3 WIN 7<P>Dell Precision T3600 Nvidia Quadro 4000
|
erstellt am: 14. Mrz. 2018 23:34 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 15. Mrz. 2018 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für justus_
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.
Beiträge: 444 Registriert: 01.15.2003 NX 11.0.2 MP6 TC 11.3 WIN 7<P>Dell Precision T3600 Nvidia Quadro 4000
|
erstellt am: 15. Mrz. 2018 09:54 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 15. Mrz. 2018 10:31 <-- editieren / zitieren --> Unities abgeben: Nur für justus_
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.
Beiträge: 444 Registriert: 01.15.2003 NX 11.0.2 MP6 TC 11.3 WIN 7<P>Dell Precision T3600 Nvidia Quadro 4000
|
erstellt am: 15. Mrz. 2018 11:24 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 15. Mrz. 2018 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für justus_
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.
Beiträge: 444 Registriert: 01.15.2003 NX 11.0.2 MP6 TC 11.3 WIN 7<P>Dell Precision T3600 Nvidia Quadro 4000
|
erstellt am: 16. Mrz. 2018 12:12 <-- editieren / zitieren --> Unities abgeben:
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 |
| Bautechniker/Bauzeichner (w/m/d) Infrastruktur ? Schwerpunkt Entwässerung und Medien | Als führendes europäisches Beratungs-, Planungs- und Projektmanagementunternehmen bietet Drees & Sommer Lösungen für erfolgreiche Gebäude, renditestarke Portfolios, leistungsfähige Infrastruktur und lebenswerte Städte. In interdisziplinären Teams unterstützen unsere über 6.000 Mitarbeiterinnen und Mitarbeiter an 63 internationalen Standorten Auftraggeber unterschiedlichster Branchen. Bei uns gestalten Sie Ihren individuellen Karriereweg aktiv mit.... | Anzeige ansehen | Feste Anstellung |
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2700 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 16. Mrz. 2018 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für justus_
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 >>)
|