| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: RibbonTab erzeugen (4934 mal gelesen)
|
ceddigo Mitglied
Beiträge: 16 Registriert: 29.05.2012
|
erstellt am: 03. Okt. 2012 20:48 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hoffe, Ihr könnt mir helfen. Ich möchte ein neues RibbonTab erzeugen unter dem Ribbon ZeroDoc. Dazu füge ich das neu erstellte RibbonTab mit RibbonTabs.Add(...) zu - alles fehlerfrei. Dann füge ich dem Ribbontab noch ein RibbonPanel samt Button zu. Nur: Das Ribbontab wird nicht angezeigt. Der Count der Ribbontabs erhöht sich auch. Muss es irgendwie "Visible" geschaltet werden ? Wenn ich das RibbonPanel einem existierenden RibbonTab zuordne wird es angezeigt - hier also kein fehler. Zur Info: Ich mache das in Inventor 2013, VS 2010 mit c# Gruß ceddigo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 05. Okt. 2012 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hallo Ich mach's mit VB so und es funktioniert. Der Code ist in einer eigenen Sub und wird in der Activate-Sub aufgerufen. Sollte es bei dir adäquat sein und trotzdem nicht funktionieren - es wäre nicht das erste Mal, das in der c#-API eine "Unschärfe" auftaucht, die sonst nirgends auftritt. Dann kann nur Autodesk was ändern. Code: 'access user interface manager Dim oUserInterfaceManager As UserInterfaceManager oUserInterfaceManager = myInventor.UserInterfaceManager Dim oInterfaceStyle As InterfaceStyleEnum oInterfaceStyle = oUserInterfaceManager.InterfaceStyle ' create UI for ribbon interface If oInterfaceStyle = InterfaceStyleEnum.kRibbonInterface Then ' --- ' get the ribbons Dim Ribbons As Ribbons Ribbons = oUserInterfaceManager.Ribbons Dim ToolboxRibbonPanel As RibbonPanel Dim myButtonCollection As ObjectCollection myButtonCollection = myInventor.TransientObjects.CreateObjectCollection 'Zero Doc Dim ZeroDocRibbon As Ribbon = Ribbons.Item("ZeroDoc") Dim ZeroDocRibbonTabs As RibbonTabs = ZeroDocRibbon.RibbonTabs Dim zerodocModelRibbonTab As RibbonTab = ZeroDocRibbonTabs.Item("id_GetStarted") Dim zerodocModelRibbonPanels As RibbonPanels = zerodocModelRibbonTab.RibbonPanels Try ToolboxRibbonPanel = zerodocModelRibbonPanels.Add("Toolbox", "meineFirma:meineFirma_Toolbox:meineFirma_Toolbox_RibbonPanel", myAddInCLSIDString, "", False) If Not ToolboxRibbonPanel Is Nothing Then Call myButtonCollection.Add(myPersonalCmd.ButtonDefinition) ToolboxRibbonPanel.CommandControls.AddSplitButtonMRU(myButtonCollection, True, False) myButtonCollection.Clear() End If Catch ex As Exception
------------------ MfG Ralf [Diese Nachricht wurde von rkauskh am 21. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ceddigo Mitglied
Beiträge: 16 Registriert: 29.05.2012
|
erstellt am: 21. Okt. 2012 17:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, danke für die Info. Ganz werde ich aber aus Deinem Post nich schlau: Du dimensionierst ToolboxRibbonPanel, machst keine Zuweisung, fragst das aber dann mit If Not ToolboxRibbonPanel Is Nothing Then ... ab. Abgesehen davon erstellst Du ein neues RibbonPanel im GetStarted reiter. Ich möchte aber einen neuen reiter (ein RibbonTab) erstellen. Noch eine Idee ? Danke, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ceddigo Mitglied
Beiträge: 16 Registriert: 29.05.2012
|
erstellt am: 21. Okt. 2012 20:24 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 22. Okt. 2012 00:00 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hi Hatte dein letztes Post irgendwie übersehen. Stimmt, da war ein kleiner Fehler im Code. Hab's korrigiert. Trotzdem hab ich keine Ahnung was du falsch machst. Auch ein neues Tab läßt sich erzeugen. Vielleicht doch mal die relevanten Codeteile posten?!?! ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ceddigo Mitglied
Beiträge: 16 Registriert: 29.05.2012
|
erstellt am: 23. Okt. 2012 14:51 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 23. Okt. 2012 16:24 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hi So, obiges Beispiel getestet mit Inventor 2013 und .Net4 und der Ribbontab wird angezeigt. Nur mal so in den Nebel gestochert, taucht dein AddIn überhaupt unter "Extras", "Zusatzmodule" auf oder fehlt es dort auch? Ich hab den Verdacht, das bei der Registrierung deiner dll's was in die Binsen geht. ------------------ MfG Ralf [Diese Nachricht wurde von rkauskh am 23. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ceddigo Mitglied
Beiträge: 16 Registriert: 29.05.2012
|
erstellt am: 26. Okt. 2012 08:00 <-- editieren / zitieren --> Unities abgeben:
Merkwürdig! Ja, das addin wird geladen, ich kann ja im debugger durchsteppen. Es sieht auch alles gut aus- nur das panel wird nicht gezeigt. Ich werde mal inventor neu installieren - vielleicht ist das problem dann behoben. vielen Dank erstmal. Gruß, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Enric Mitglied Ingenieurbüro
Beiträge: 231 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 26. Okt. 2019 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
|
Enric Mitglied Ingenieurbüro
Beiträge: 231 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 26. Okt. 2019 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Hallo, das ist die Lösung die ich suche! Kannst du mir bitte die Programmzeilen zur Verfügung stellen?
Danke LG Enric ------------------ Konstruktion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 31. Okt. 2019 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
|
Enric Mitglied Ingenieurbüro
Beiträge: 231 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 04. Nov. 2019 15:11 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 05. Nov. 2019 19:32 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
|
Enric Mitglied Ingenieurbüro
Beiträge: 231 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 13. Nov. 2019 18:17 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 15. Nov. 2019 08:59 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hallo Das is VB-Code, kein VBA. Wenn ich deinen Screenshot richtig erkenne, hast du meinen Code in den VBA-Editor von Inventor eingefügt. Das funktioniert nicht. Willst du mit VBA einen Button/Tab erzeugen oder ein Addin (.dll oder .exe) mit VisualBasic erstellen? ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Enric Mitglied Ingenieurbüro
Beiträge: 231 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 19. Nov. 2019 20:18 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hallo, das ist richtig, das hatte ich gemacht! Ich möchte einfach ein Ribbon erzeugen, wo ich meine eigenen Funktionen hinterlegen kann, wie du es im Bild(CAM) siehst. Die möchte ich dann mit eigenen Funktionen versehen. LG Enric
------------------ Konstruktion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 22. Nov. 2019 18:11 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hallo Bevor ich jetzt was falsch erkläre, hast du "nur" ein paar eigene Makros in VBA, die du per Button aufrufen möchtest? Dann schau dir bitte in der Hilfe die Einträge unter dem Stichwort "Benutzerbefehle" an.
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Enric Mitglied Ingenieurbüro
Beiträge: 231 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 24. Nov. 2019 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hallo, ja ich habe ein paar eigene Makros, und die würde ich gerne in einer eigenen Registerkarte anzeigen wollen. So wie du es in dem Bild siehst das ich beim letzten mal hochgeladen habe. Wenn du mir da weiterhelfen kannst, dass ich so eine Registerkarte erstellen kann, wär das echt prima! LG Enric ------------------ Konstruktion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 24. Nov. 2019 19:07 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
Hallo Variante 1 Du nutzt das vorhandene Ribbon für Benutzerbefehle. Dort fügst du Buttons für deine Makros ein. Das Vorgehen, inkl. eigenes Symbol auf dem Button ist unter diesem Link beschrieben. Variante 2 Du erstellst ein eigenes Addin z.B. in VB, überträgst deinen VBA-Code dahin und kannst mein Codebeispiel für das Ribbon nutzen. Der Aufwand ist aber um ein Vielfaches höher. Unter diesem Link ist ein Einstieg in die Erstellung von Addins und hier ist noch Lesestoff zum Thema Ribbons. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Enric Mitglied Ingenieurbüro
Beiträge: 231 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 25. Nov. 2019 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für ceddigo
|