Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Ad-in-Kommando im Kontextmenu nach Neustart verschwunden

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Ad-in-Kommando im Kontextmenu nach Neustart verschwunden (895 mal gelesen)
Bitschubser
Mitglied
B.Eng., Konstruktionsingenieur


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

Beiträge: 17
Registriert: 20.02.2013

erstellt am: 24. Nov. 2013 22:19    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,

ich habe ein Ad-in für Inventor geschrieben, welches ich gerne über das Rechtsklick-Menü aufrufen würde.
Also habe ich den Befehl über Anpassen-->Markierungsmenü hinzugefügt. Dies funktioniert ich bis zum nächsten Neustart. Dann wird der Knopf nicht mehr angezeigt. Das Ad-in ist definitv geladen, ein erneutes Zuweisen geht problemlos. Aber eben nur bis zum nächsten Neustart.
Ich habe irgendwie die Vermutung, dass die Ad-ins erst ganz zum Schluss des Programmstarts geladen werden, und daher der Befehl zum Starten des Ad-ins noch nicht bekannt ist.
Kann mir jemand von euch einen Tip zur Lösung des Problems geben?

Gruß
Julian

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 25. Nov. 2013 10:01    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 Bitschubser 10 Unities + Antwort hilfreich

Hallo

Dein Befehl ist sicher in der Activate-Sub deiner StandardAddInServer.vb als ButtonDefinition erstellt und wenn du auf das UserInput-Event OnContextMenu reagierst, kannst du nach Lust und Laune deine Buttondefinition einfügen. Weiterer Vorteil, OnContextMenu erlaubt es auch bequem in die Kontextmenüs laufender Befehle zusätzliche Einträge zu platzieren.

------------------
MfG
Ralf

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

Bitschubser
Mitglied
B.Eng., Konstruktionsingenieur


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

Beiträge: 17
Registriert: 20.02.2013

erstellt am: 25. Nov. 2013 19:19    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

Vielen Dank für den Tip!
Richtig, die Schaltflächen erzeuge ich in der genannten Activate-Sub, allerdings als InventorButton, welche ich dann in den zuvor erzeugten Ribbon-Tab einfüge.
Was ich an dieser Stelle nicht ganz verstehe: Wie bekomme ich den Button aus der Activate-Sub in die Sub des OnContextMenu/OnLinearMenu-Handlers?

Übrigens habe ich nach eingehender Beschäftigung mit meinem Code heute einen Workaround ermittelt: Im internen Namen der Buttons hatte ich eine dyn. erzeugte GUID verwendet. Nach Vergabe eines statischen Namens findet Inventor die Befehle logischerweise auch nach einem Neustart wieder. Sprich: es funktioniert nun mit manuellem Zuweisen.
ABER: Ist das so zu "dirty" oder ist die Sache mit den dyn. GUIDs sowieso ungeschickt oder schlechter Stil? Wegen mir können die Benutzer ruhig selbst entscheiden, ob sie den Befehl im MarkingMenu haben wollen, gibt so halt einen besseren Workflow...

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 25. Nov. 2013 20:53    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 Bitschubser 10 Unities + Antwort hilfreich

Hallo

Dyn. GUID? Die GIUD soll ein eindeutiger Identifier sein. Wozu sollte die jedes Mal wechseln? Ich erstell meine Buttons in der Activate jedes Mal und zerstöre sie in der Deactivate. So bleiben auch keine Reste, wenn das AddOn mal deinstalliert wird. Ich empfehle das Paper aus diesem Beitrag zum Erstellen der Button und der dazugehörigen ControlDefinitions. Besonders hilfreich fand ich damals das Kapitel zu "der User setzt die Ribbonleiste zurück", da das scheinbar ein Hobby meiner User ist. Der Anruf bei mir "... Das AddIn ist geladen, aber die Button sind weg." mit eingeschlossen.     

Wenn du in die Public Class StandardAddInServer

Code:

Private myUserInputEvents As UserInputEvents


und in deine Activate Sub
Code:

myUserInputEvents = myInventor.CommandManager.UserInputEvents
AddHandler myUserInputEvents.OnContextMenu, AddressOf Me.OnContextMenu

einfügst, solltest du in einer
Code:
Public Sub OnContextMenu(ByVal SelectionDevice As Inventor.SelectionDeviceEnum, ByVal AdditionalInfo As Inventor.NameValueMap, ByVal CommandBar As Inventor.CommandBar)
'hier deinen Button in die CommandBar einfügen, falls er noch nicht drin ist
End Sub

auf das Aufrufen des Kontextmenü reagieren und deinen Button einfügen können.


Soweit meine Theorie.     

------------------
MfG
Ralf

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

Bitschubser
Mitglied
B.Eng., Konstruktionsingenieur


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

Beiträge: 17
Registriert: 20.02.2013

erstellt am: 27. Nov. 2013 21:06    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

Genau: weil eine GUID ein eindeutiger Identifier ist! Um zufällige Namensüberschneidungen durch Copy&Paste-Fehler zu vermeiden. Die Buttons spreche ich eh immer über den Variablennamen an, brauche den internen daher nicht. Da kam mir die "GetGuid()" gerade recht. 

Vielen Dank für die Infos - werde mir das alles am Wochenende mal zu Gemüte führen!

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)2023 CAD.de | Impressum | Datenschutz