Пример #1
0
        public bool LoadFile(string path)
        {
            if (FindCuiFile(path))
            {
                CustomizationSection cus = new CustomizationSection(path, true);
                CustomizationSection c   = new CustomizationSection();
                string AcadPath          = Application.GetSystemVariable("MENUNAME").ToString() + ".cuix";
                CustomizationSection     acadCustomSection = new CustomizationSection(AcadPath);
                PartialCuiFileCollection cusparfile        = acadCustomSection.PartialCuiFiles;

                if (cusparfile.Contains(path))
                {
                    ed.WriteMessage("程序中已经包含:" + path + " 的文件,同名文件将不再次加载");
                }
                else
                {
                    this.LoadCusCUI(path);
                }
                return(true);
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("False");
                return(false);
            }
        }
Пример #2
0
        /// <summary>从局部Cui文件中加载选项卡(必须先添加对 AcCui.dll 的引用) </summary>
        /// <param name="strCuipath"></param>
        /// <remarks>
        /// 使用cuix文件添加对应 RibbonButton
        /// 先判断是否添加配置cuix
        /// 将配置cuix中的配置功能项添加到acad.cuix中的功能区
        /// 刷新工作空间的功能区命令
        /// </remarks>
        public static void AddRibbonButtonByCustomCui(string strCuipath)
        {
            string mainCuiFile = (string)Autodesk.AutoCAD.ApplicationServices.Core.Application.GetSystemVariable("MENUNAME");

            mainCuiFile += ".cuix";
            CustomizationSection     csLoad = new CustomizationSection(mainCuiFile);
            PartialCuiFileCollection pPartialCuiFileCollection = csLoad.PartialCuiFiles;

            if (pPartialCuiFileCollection.Contains("mycui.cuix"))
            {
                MessageBox.Show("已加载插件!");
                Autodesk.AutoCAD.ApplicationServices.Application.UnloadPartialMenu(strCuipath);
                //return;
            }

            bool isOK = Autodesk.AutoCAD.ApplicationServices.Application.LoadPartialMenu(strCuipath);

            //加载自定义cui
            if (!isOK)
            {
                MessageBox.Show("加载自定义配置文件失败!");
                return;
            }

            //加载CUI
            //Application.QuitWillStart += new EventHandler(Application_BeginQuit);
            //Application.BeginQuit += new EventHandler(Application_BeginQuit);
            //Autodesk.Windows.ComponentManager.ApplicationMenu.Opening += new EventHandler<EventArgs>(ApplicationMenu_Opening);

            CustomizationSection     cs       = new CustomizationSection(mainCuiFile);
            PartialCuiFileCollection cuiFiles = cs.PartialCuiFiles;

            //acad.cuix配置文件
            if (cuiFiles.Contains("mycui.cuix"))
            {
                //将my.cuix文件中的配置按钮写入acad.cuix文件中去
                string strPartialCui          = cuiFiles.GetFileNameByIndex(cuiFiles.IndexOf("mycui.cuix"));
                CustomizationSection csCustom = new CustomizationSection(strPartialCui);
                var pRibbonPanelSource        = csCustom.MenuGroup.RibbonRoot.FindPanel("RBNU_191_C0DED");
                //自定义panel中的ElementID
                var pCloneRibbonPanelSource =
                    pRibbonPanelSource.Clone() as Autodesk.AutoCAD.Customization.RibbonPanelSource;
                cs.MenuGroup.RibbonRoot.RibbonPanelSources.Add(pCloneRibbonPanelSource);

                RibbonTabSource pRibbonTableSource2 = cs.MenuGroup.RibbonRoot.FindTab("RBN_00012112");
                //插件Tab的ElementID
                RibbonPanelSourceReference pRibbonPanelSourceRefrence =
                    new RibbonPanelSourceReference(pRibbonTableSource2);
                //这一步ID一定要赋值
                pRibbonPanelSourceRefrence.PanelId = pCloneRibbonPanelSource.ElementID;
                pRibbonTableSource2.Items.Add(pRibbonPanelSourceRefrence);

                cs.Save();
                Autodesk.AutoCAD.ApplicationServices.Application.ReloadAllMenus(); //否则不现实按钮
            }
        }
Пример #3
0
        private void LoadMyCui(string cuiFile)
        {
            Document             doc     = Application.DocumentManager.MdiActiveDocument;
            string               mainCui = Application.GetSystemVariable("MENUNAME") + ".cuix";
            CustomizationSection cs      = new CustomizationSection(mainCui);

            PartialCuiFileCollection pcfc = cs.PartialCuiFiles;

            if (pcfc.Contains(cuiFile))
            {
                doc.Editor.WriteMessage("\nCustomization file \"" + cuiFile + "\" already loaded.");
                return;
            }


            object oldCmdEcho = Application.GetSystemVariable("CMDECHO");
            object oldFileDia = Application.GetSystemVariable("FILEDIA");

            Application.SetSystemVariable("CMDECHO", 0);
            Application.SetSystemVariable("FILEDIA", 0);

            doc.SendStringToExecute(
                "_.cuiload "
                + "\""
                + cuiFile
                + "\""
                + " ",
                false, false, false
                );
            doc.SendStringToExecute(
                "(setvar \"FILEDIA\" "
                + oldFileDia.ToString()
                + ")(princ) ",
                false, false, false
                );
            doc.SendStringToExecute(
                "(setvar \"CMDECHO\" "
                + oldCmdEcho.ToString()
                + ")(princ) ",
                false, false, false
                );
        }
Пример #4
0
 protected void InitializeRibbonMenu()
 {
     if (!pcfc.Contains(CUIPATH))
     {
     }
 }