vince-vitikul Posté(e) le 23 février 2011 Posté(e) le 23 février 2011 Bonjour a tous. J'ai un petit problème avec un menu qui refuse de s'afficher au démarrage d'Autocad. :mad: Le menu (partiel) en question est créé et chargé lors du l'initialisation du module que j'ai programmé et s'affiche correctement. Si je ferme et ré ouvre Autocad dans la foulée, seule la barre d'outils reste visible (le cuix partiel est pourtant correctement chargé au démarrage) . La seule façon de le faire apparaitre est d'actualiser l'espace de travail (WSCURRENT) mais toutes les barres d'outils venant de Covadis et autres disparaissent... :( Voila le code de la partie "menu" : using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Customization; using Autodesk.Windows; using Autodesk.AutoCAD.Windows; using Autodesk.AutoCAD.Interop; using Microsoft.Win32; using System.Globalization; using System.Reflection; using System; using System.Runtime.InteropServices; using System.IO; using System.Collections.Specialized; using System.Windows.Media.Imaging; using System.Security.AccessControl; //Création du fichier CUI contenant le menu "Fil d'eau" [CommandMethod("menufe")] public void BuildMenuCUI() { string myCuiFileToSend ="\"C:/Program Files/Autodesk/AutoCAD Map 3D 2011/Plugins/Etiquette_fil_d_eau/MenuFildeau.cuix\""; string myCuiFile = @"C:\Program Files\Autodesk\AutoCAD Map 3D 2011\Plugins\Etiquette_fil_d_eau\MenuFildeau.cuix"; string myCuiSectionName = "Fildeau"; Editor ed =Application.DocumentManager.MdiActiveDocument.Editor; string mainCui =Application.GetSystemVariable("MENUNAME") + ".cuix"; //Récupére les élements principaux du fichier cui pricipal CustomizationSection cs = new CustomizationSection(mainCui); //Récupére la collection des fichiers cui partiels référencés dans le cui principal PartialCuiFileCollection pcfc = cs.PartialCuiFiles; if (pcfc.Contains(myCuiFile)) { ed.WriteMessage("\nLe fichier de personalisation \""+ myCuiFile+ "\" est déja chargé."); } else{ if (File.Exists(myCuiFile)) { ed.WriteMessage("\nLe fichier de personalisation \""+ myCuiFile+ "\" existe - Chargement..."); LoadMyCui(myCuiFileToSend); } else { ed.WriteMessage("\nLe fichier de personalisation \""+ myCuiFile+ "\" n'existe pas - Création..."); // Créer un nouveau fichier cui partiel CustomizationSection pcs = new CustomizationSection(); pcs.MenuGroupName = myCuiSectionName; // Création d'un menu avec nos 3 commandes MacroGroup mg = new MacroGroup(myCuiSectionName, pcs.MenuGroup); //Définition commandes MenuMacro mm1 = new MenuMacro(mg, "Fil d'eau Radier", "^C^Cferad", "ID_feradier"); mm1.macro.SmallImage = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + "Ico_FeRad.BMP"; MenuMacro mm2 =new MenuMacro(mg, "Fil d'eau Chute", "^C^Cfechute", "ID_fechute"); mm2.macro.SmallImage = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + "Ico_FeChute.BMP"; MenuMacro mm3 =new MenuMacro(mg, "GS Chute", "^C^Cgschute", "ID_gschute"); mm3.macro.SmallImage = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + "Ico_GsChute.BMP"; // Ajoute le menu deroulant avec nos 3 commandes StringCollection sc = new StringCollection(); sc.Add("FILDEAU, Fildeau"); //Création menu déroulant PopMenu pm =new PopMenu(myCuiSectionName,sc,"ID_FilDeau",pcs.MenuGroup); //Ajoute les commandes PopMenuItem pmi1 = new PopMenuItem(mm1, "Fil d'eau radier", pm, -1); PopMenuItem pmi2 = new PopMenuItem(mm2, "Fil d'eau chute", pm, -1); PopMenuItem pmi3 = new PopMenuItem(mm3, "GS chute", pm, -1); //Création de la barre d'outils StringCollection AliasList = new StringCollection(); AliasList.Add("FILDEAU, Fildeau"); Toolbar tb = new Toolbar(myCuiSectionName, "Barre d'outils fildeau", "ID_Toolbar1", AliasList, true, ToolbarOrient.floating, 200, 200, 1, pcs.MenuGroup); //Définition des commandes ToolbarButton tbbutton1 = new ToolbarButton( "ID_feradier", "FeRadier", tb, 0); ToolbarButton tbbutton2 = new ToolbarButton("ID_fechute", "FeChute", tb, 1); ToolbarButton tbbutton3 = new ToolbarButton("ID_gschute", "GsChute", tb, 2); //Affiche la barre de commande tb.ToolbarVisible = ToolbarVisible.show; //Ajoute le menu pour tout les espaces de travail cs.AddWSPopToAllWorkspaces(pm, pcs); //Reference le fichier cui partiel dans le cui principal cs.AddPartialMenu(myCuiFile); pcs.SaveAs(myCuiFile); LoadMyCui(myCuiFileToSend); } } } //Procédure de chargement du fichier cui partiel private void LoadMyCui(string cuiFile) { AcadPreferences prefs = (AcadPreferences)Application.Preferences; //Ajoute le chemin du module 'fil d'eau' String FichierSupportOrigine = prefs.Files.SupportPath; prefs.Files.SupportPath = FichierSupportOrigine + @";C:\Program Files\Autodesk\AutoCAD Map 3D 2011\Plugins"; //Charge le cuix partiel Application.LoadPartialMenu(cuiFile); } //Actualisation des menus [CommandMethod("actmenu")] public void Actualmenu() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; Application.ReloadAllMenus(); ed.WriteMessage("\nActualisation des menus. "); } Je peux mettre la solution complète mais je pense que le problème ne vient pas du code.Allez, j'y retourne...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant