| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Partielle CUI - RibbonTab teilen (1722 mal gelesen)
|
Mario Rosenbohm Mitglied Vermessungsingenieur
Beiträge: 118 Registriert: 09.10.2003 AutoCAD Civil 3D 2022, 2025 CADdy V.17 Laptop Win10 Intel i7 2.71GHz, 128GB Ram,
|
erstellt am: 11. Apr. 2012 05:03 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8086 Registriert: 09.03.2006 Kinder, kauft Kämme! Es kommen lausige Zeiten.
|
erstellt am: 11. Apr. 2012 07:59 <-- editieren / zitieren --> Unities abgeben: Nur für Mario Rosenbohm
Moin, meiner Meinung nach nicht möglich, da Du ja theoretisch jede partielle CUIX entnehmen und woanders verwenden kannst, damit muß auch jede Elementinformation in ihr selbst gespeichert sein. Einzig könnte ich mir vorstellen, Du verwaltest das ganze in der Hauptcuix und blendest von dort aus ein (Arbeitsbereiche). ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario Rosenbohm Mitglied Vermessungsingenieur
Beiträge: 118 Registriert: 09.10.2003 AutoCAD Civil 3D 2022, 2025 CADdy V.17 Laptop Win10 Intel i7 2.71GHz, 128GB Ram,
|
erstellt am: 12. Apr. 2012 04:21 <-- editieren / zitieren --> Unities abgeben:
Es geht schon: in der Haupt-cuix ein RibbonTab mit gleichem Alias anlegen und diesen allen (oder den gewünschten) Arbeitsbereichen zuweisen. Wenn dann alle RibbonTabs in den einzelnen partiellen cuix auch diesen Alias verwenden und sie als "zusammengeführt" und "nur Registerkarte zusammenführen" gespeichert sind, werden sie zusammengelegt. Wie erzeugt man am elegantesten diesen "Sammel-RibbonTab"? Gruß Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario Rosenbohm Mitglied Vermessungsingenieur
Beiträge: 118 Registriert: 09.10.2003 AutoCAD Civil 3D 2022, 2025 CADdy V.17 Laptop Win10 Intel i7 2.71GHz, 128GB Ram,
|
erstellt am: 12. Apr. 2012 05:45 <-- editieren / zitieren --> Unities abgeben:
So nun hab ich auch das anlegen des "SammelRibbonTabs" Code:
/// <summary>erzeugt einen RibbonTab in der Main.cuix, Alias </summary> /// <param name="tabName">Alias wird tabName.toUpper()</param> /// <param name="tabTitle"></param> /// <param name="tabId"></param> /// <param name="workspaces">null == in alle hinzufügen</param> /// <returns></returns> public static Boolean createMainRibbonTab(String tabName, String tabTitle, String tabId, IList<String> workspaces) { if (ClassStringTools.IsNullOrWhiteSpace(tabName)) throw new ArgumentNullException("tabName darf nicht null sein!"); if (ClassStringTools.IsNullOrWhiteSpace(tabTitle)) throw new ArgumentNullException("tabTitle darf nicht null sein!"); if (ClassStringTools.IsNullOrWhiteSpace(tabId)) throw new ArgumentNullException("tabId darf nicht null sein!"); Boolean result = false; String mainCuixName = Application.GetSystemVariable("MENUNAME") + ".cuix"; Autodesk.AutoCAD.Customization.CustomizationSection maincuix = new Autodesk.AutoCAD.Customization.CustomizationSection(mainCuixName, false); Autodesk.AutoCAD.Customization.RibbonRoot acRibbonRoot = maincuix.MenuGroup.RibbonRoot; Autodesk.AutoCAD.Customization.RibbonTabSource acRibbonTabSource = acRibbonRoot.FindTabWithAlias(tabName.ToUpper()); if (acRibbonTabSource == null) { try { acRibbonTabSource = new Autodesk.AutoCAD.Customization.RibbonTabSource(acRibbonRoot); acRibbonTabSource.Name = tabName; acRibbonTabSource.Id = tabId; acRibbonTabSource.Aliases.Add(tabName.ToUpper()); acRibbonTabSource.Text = tabTitle; acRibbonRoot.RibbonTabSources.Add(acRibbonTabSource); Autodesk.AutoCAD.Customization.WSRibbonTabSourceReference acRibbonTabSourceReference; if (workspaces == null) { foreach (Autodesk.AutoCAD.Customization.Workspace item in maincuix.Workspaces) { acRibbonTabSourceReference = Autodesk.AutoCAD.Customization.WSRibbonTabSourceReference.Create(acRibbonTabSource); acRibbonTabSourceReference.SetParent(item.WorkspaceRibbonRoot); item.WorkspaceRibbonRoot.WorkspaceTabs.Add(acRibbonTabSourceReference); } } else { foreach (String wsName in workspaces) { Autodesk.AutoCAD.Customization.Workspace acWorkSpace = maincuix.getWorkspace(wsName); if (acWorkSpace != null) { acRibbonTabSourceReference = Autodesk.AutoCAD.Customization.WSRibbonTabSourceReference.Create(acRibbonTabSource); acRibbonTabSourceReference.SetParent(acWorkSpace.WorkspaceRibbonRoot); acWorkSpace.WorkspaceRibbonRoot.WorkspaceTabs.Add(acRibbonTabSourceReference); } } } maincuix.Save(); result = true; } catch { } } else { result = true; } return result; }
Geht jetzt wunderbar. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 12. Apr. 2012 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für Mario Rosenbohm
Das ist klasse, jetzt mußt du daraus nur ein Programm schreiben welches den "Rund um AutoCAD" User nach einem zur Verfügung stehenden cuix+Registernamen fragt, dann zum wählen einer weiteren cuix+Registernamen Kombination auffordert. Anschließend sollte das Sammel-Register erstellt werden. (o.ä.) Das ganze sollte dann natürlich auch stabil funktionieren / in friedlicher Koexistenz mit den Acadinternen Bearbeitungsfunktionen. PS: Im entsprechenden Programmierforum würde ich das auch noch mal posten, wird dort etwas hilfreicher sein wie hier im Anwenderforum. < EDIT: Ich meinte als dll bereitstellen mit Beschreibung wie die Funktion zu laden ist, für USER > ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario Rosenbohm Mitglied Vermessungsingenieur
Beiträge: 118 Registriert: 09.10.2003 AutoCAD Civil 3D 2022, 2025 CADdy V.17 Laptop Win10 Intel i7 2.71GHz, 128GB Ram,
|
erstellt am: 12. Apr. 2012 23:13 <-- editieren / zitieren --> Unities abgeben:
Hallo cadffm Zitat: stabil funktionieren / in friedlicher Koexistenz mit den Acadinternen Bearbeitungsfunktionen
Geht bei AutoCAD eher selten, da der interne Code eine ewige Baustelle ist. Deshalb gibt es für solche Probleme nie Workarounds. Zitat: Programmierforum würde ich das auch noch mal posten
Dank Suchfunktionen sollte das hier auch ein Coder finden. Es hat ja auch ganz ohne Code angefangen, aber bei vielen Problemen endet es fast immer im Code. s.o. Oder man hat nur erfahrene Benutzer am CAD sitzen, welche alle wissen wie man von Hand den benötigten RibbonTab anlegt. lg Mario [Diese Nachricht wurde von Mario Rosenbohm am 12. Apr. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |