Aller au contenu

vince-vitikul

Membres
  • Compteur de contenus

    4
  • Inscription

  • Dernière visite

vince-vitikul's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. 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...
  2. Pour afficher la barre de commande, utilise la combinaison "CTRL+9" (le ç). (pas assez rapide... ) :) [Edité le 22/2/2011 par vince-vitikul]
  3. merci pour cette réponse efficace :) . C'est pas évident de parcourir toute les classes en espérant trouver son bonheur... Je vais quand même gardé la méthode de l'évènement sous le coude.
  4. Merci beaucoup pour ce code (gile)! Je me suis inspiré de ta routine pour écrire une fonction permettant de récupérer les coordonnées du point cliqué (lors d'une sélection d'objet par exemple). Mais existe-t-il une méthode encore plus simple pour obtenir les coordonnées du pointeur lors d'un click?
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité