Ejemplo n.º 1
0
        static public List <Info> GetFilesToConvert(IEdmVault5 vault, ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            var list = new List <Info>();

            foreach (var item in FilesPdm(vault, ref poCmd, ref ppoData))
            {
                var taskParam = new Info();
                taskParam.IdPDM = item.IdPDM;
                var extension = Path.GetExtension(item.FileName);
                switch (extension.ToUpper())
                {
                case ".SLDPRT":
                    taskParam.CurrentVersion = item.CurrentVersion;
                    taskParam.FileName       = item.FileName;
                    taskParam.FolderPath     = item.FolderPath;
                    taskParam.FolderID       = item.FolderID;
                    taskParam.FullFilePath   = item.FullFilePath;
                    taskParam.ConvertFile    = item.FileName.ToUpper().Replace(".SLDPRT", ".EPRT");
                    taskParam.TaskType       = 1;
                    list.Add(taskParam);
                    break;
                }
            }
            return(list);
        }
Ejemplo n.º 2
0
        private void OnTaskDetails(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                IEdmTaskInstance TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
                if ((TaskInstance != null))
                {
                    // SetupPageObj;//= new SetupPage((IEdmVault7)poCmd.mpoVault, TaskInstance);
                    return;

                    //Force immediate creation of the control
                    //and its handle
                    //SetupPageObj.CreateControl();
                    // SetupPageObj.LoadData(poCmd);
                    // SetupPageObj.DisableControls();
                    poCmd.mbsComment = "State Age Details";
                    //  poCmd.mlParentWnd = SetupPageObj.Handle.ToInt32();
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 3
0
 static void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
 {
     try
     {
         //Get the property interface used to
         //access the framework
         var edmTaskProperties = (IEdmTaskProperties)poCmd.mpoExtra;
         //Set the property flag that says you want a
         //menu item for the user to launch the task
         //and a flag to support scheduling
         edmTaskProperties.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitForm + (int)EdmTaskFlag.EdmTask_SupportsDetails + (int)EdmTaskFlag.EdmTask_SupportsChangeState;
         //edmTaskProperties.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsChangeState + (int)EdmTaskFlag.EdmTask_SupportsInitExec;
         //Set up the menu commands to launch this task
         var edmTaskMenuCmds = new EdmTaskMenuCmd[1];
         edmTaskMenuCmds[0].mbsMenuString    = "Выгрузить eDrawing";
         edmTaskMenuCmds[0].mbsStatusBarHelp = "Выгрузить eDrawing";
         edmTaskMenuCmds[0].mlCmdID          = 1;
         edmTaskMenuCmds[0].mlEdmMenuFlags   = (int)EdmMenuFlags.EdmMenu_Nothing;
         edmTaskProperties.SetMenuCmds(edmTaskMenuCmds);
     }
     catch (COMException ex)
     {
         Logger.Add("OnTaskSetup HRESULT = 0x" + ex.ErrorCode.ToString("X") + "; " + ex.Message);
     }
     catch (Exception ex)
     {
         Logger.Add("OnTaskSetup Error" + ex.Message + ppoData);
     }
 }
Ejemplo n.º 4
0
        public void OnCmd(ref EdmCmd poCmd, ref Array ppoData)
        {
            if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu)
            {
                if (poCmd.mlCmdID == (int)Commands_e.GetIds)
                {
                    Func <EdmCmdData, int> getIdFunc = (d) =>
                    {
                        var isFile = d.mlObjectID1 != 0;

                        if (isFile)
                        {
                            return(d.mlObjectID1);
                        }
                        else
                        {
                            return(d.mlObjectID2);
                        }
                    };

                    var msg = string.Join(Environment.NewLine,
                                          (ppoData as EdmCmdData[]).Select(
                                              d => $"{d.mbsStrData1} - {getIdFunc(d)}").ToArray());

                    (poCmd.mpoVault as IEdmVault10).MsgBox(0, msg);
                }
            }
        }
Ejemplo n.º 5
0
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            switch (poCmd.meCmdType)
            {
            case EdmCmdType.EdmCmd_CardButton:
                var addInTagName = poCmd.mbsComment;
                if (addInTagName == BUTTON_TAG)
                {
                    var confName = ppoData.First().mbsStrData1;
                    var enumVar  = poCmd.mpoExtra as IEdmEnumeratorVariable5;

                    object varVal;
                    enumVar.GetVar("Number", confName, out varVal);

                    var number = varVal?.ToString();
                    enumVar.GetVar("Revision", confName, out varVal);

                    var revision = varVal?.ToString();

                    var desc = (object)$"{number} ({revision})";
                    enumVar.SetVar("Description", confName, ref desc);
                }
                break;
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="poCmd"></param>
        /// <param name="ppoData"> is EdmCmdData()</param>
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
#if DEBUG
                if (Environment.UserName.Equals("seth.ruhan", StringComparison.OrdinalIgnoreCase) || Environment.UserName.Equals(@"colpro\seth.ruhan", StringComparison.OrdinalIgnoreCase))
                {
                    PauseToAttachProcess(poCmd.meCmdType.ToString());
                }
#endif

                // Handle the menu command
                switch (poCmd.meCmdType)
                {
                case EdmCmdType.EdmCmd_Menu:
                    switch (poCmd.mlCmdID)
                    {
                    case 1:
                        // ClickToRunTask(poCmd);
                        break;
                    }
                    break;

                case EdmCmdType.EdmCmd_TaskRun:
                    OnTaskRun(ref poCmd, ref ppoData);
                    break;

                case EdmCmdType.EdmCmd_TaskSetup:     //Called when a new task in the administrator is created (not saved tho)
                    OnTaskSetup(ref poCmd, ref ppoData);
                    break;

                case EdmCmdType.EdmCmd_TaskDetails:
                    OnTaskDetails(ref poCmd, ref ppoData);
                    break;

                case EdmCmdType.EdmCmd_TaskLaunch:
                    OnTaskSetupButton(ref poCmd, ref ppoData);
                    break;

                case EdmCmdType.EdmCmd_TaskLaunchButton:
                    OnTaskSetupButton(ref poCmd, ref ppoData);
                    break;

                case EdmCmdType.EdmCmd_TaskSetupButton:     //The Okay or cancel on the Task form in the administrator is pushed
                    OnTaskSetupButton(ref poCmd, ref ppoData);
                    break;
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                log.Error(ex);
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                log.Error(ex);
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 7
0
 public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
 {
     switch (poCmd.meCmdType)
     {
     case EdmCmdType.EdmCmd_Menu:
         OnMenu(ref poCmd, ref ppoData);
         break;
     }
 }
Ejemplo n.º 8
0
 public void OnCmd(ref EdmCmd poCmd, ref Array ppoData)
 {
     if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu)
     {
         if (poCmd.mlCmdID == TEST_CMD_ID)
         {
             (poCmd.mpoVault as IEdmVault10).MsgBox(0, "Hello World!");
         }
     }
 }
Ejemplo n.º 9
0
        public void OnCmd(ref EdmCmd poCmd, ref System.Array ppoData)
        {
            //public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
            //{
            EdmVault5 vault = (EdmVault5)poCmd.mpoVault;

            if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu)
            {
                if (poCmd.mlCmdID == 1)
                {
                    if (ppoData.Length < 0)
                    {
                        System.Windows.Forms.MessageBox.Show("请选择一个文件");
                        return;
                    }
                    if (ppoData.Length > 1)
                    {
                        System.Windows.Forms.MessageBox.Show("只能选择一个文件");
                        return;
                    }
                    int fileId         = 0;
                    int parentFolderId = 0;
                    foreach (EdmCmdData AffectedFile in ppoData)
                    {
                        fileId         = AffectedFile.mlObjectID1;
                        parentFolderId = AffectedFile.mlObjectID3;
                    }
                    if (fileId == 0)
                    {
                        System.Windows.Forms.MessageBox.Show("请选择一个文件");
                        return;
                    }
                    ExportExcelForm form = new ExportExcelForm();

                    IEdmFile5   file     = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, fileId);
                    IEdmFolder5 folder   = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, parentFolderId);
                    string      filePath = folder.LocalPath + "\\" + file.Name;


                    form.selectFile = filePath;
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        string        outFile   = form.saveFilePath;
                        FormStatusBar statusBar = new FormStatusBar("明细表导出", "正在导出,请稍后....");
                        statusBar.UserCustomEvent += (obj) =>
                        {
                            exportExcel(vault, form.selectFile, form.saveFilePath);
                        };
                        statusBar.ShowDialog();
                    }

                    GC.Collect();
                }
            }
        }
Ejemplo n.º 10
0
        private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                //Get the property interface used to access the framework
                IEdmTaskProperties props = poCmd.mpoExtra as IEdmTaskProperties;
                //Get the settings for exist task
                try
                {
                    string res = props.GetValEx(AutoCADTaskSettings.Acadtask_Settings) as string;
                    if (!string.IsNullOrEmpty(res))
                    {
                        taskSettings = JsonConvert.DeserializeObject <AutoCADTaskSettings>(res);
                    }
                }
                catch
                {
                }
                if (taskSettings == null)
                {
                    taskSettings                 = new AutoCADTaskSettings();
                    taskSettings.CreateMenu      = true;
                    taskSettings.CreatePDF       = true;
                    taskSettings.MenuDescription = "Convert AutoCAD";
                    taskSettings.MenuName        = "Convert AutoCAD";
                }

                //Set the property flag that says you want a
                //menu item for the user to launch the task
                //and a flag to support scheduling
                props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec + (int)EdmTaskFlag.EdmTask_SupportsDetails + (int)EdmTaskFlag.EdmTask_SupportsChangeState + (int)EdmTaskFlag.EdmTask_SupportsInitForm;



                EdmTaskSetupPage[] setupPages = new EdmTaskSetupPage[2];
                setupPages[0].mbsPageName = "Menus Command";
                setupPages[1].mbsPageName = "TitleBlocks";
                //pages[0].mlPageHwnd = SetupPageObj.Handle.ToInt32();
                //pages[0].mpoPageImpl = SetupPageObj;
                props.SetSetupPages(setupPages);
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                log.Error(ex);
                // MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                log.Error(ex);
                //MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 11
0
 public void OnCmd(ref EdmCmd poCmd, ref Array ppoData)
 {
     //if (Strings.Left(poCmd.mbsComment, 4) == "JES")
     //{
     //    IEdmEnumeratorVariable5 vars = (IEdmEnumeratorVariable5)poCmd.mpoExtra;
     //    EdmVault5 vault5 = (EdmVault5)poCmd.mpoVault;
     //    IEdmVault11 valut11 = (IEdmVault11)vault5;
     //    frmMain frmMain = new frmMain(new List<string> { "", "" });
     //    if (frmMain.ShowDialog() == DialogResult.OK)
     //    {
     //        vars.SetVar("A代号", "", frmMain.ResultCode);
     //    }
     //}
 }
        public AutoCADTaskAddin(EdmCmd poCmd, EdmCmdData[] ppoData, AutoCADTaskSettings taskSettings)
        {
            //Get the task instance interface
            inst     = poCmd.mpoExtra as IEdmTaskInstance;
            data     = ppoData;
            settings = taskSettings;
            if (inst == null)
            {
                throw new Exception("Task values incorrect");
            }

            vault = (IEdmVault20)poCmd.mpoVault;

            Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MTcwMjQwQDMxMzcyZTMzMmUzMGhycFlDaldXNDVZeWxhdnFwckswQnRhMHVwclp2OWNrUEltNHczb21ENDQ9;MTcwMjQxQDMxMzcyZTMzMmUzMG4xOFQ1dnBDR1oxalUvazM5UmlTRkdUelJRcHkweURnVERXRXRabnpaZVE9");
        }
Ejemplo n.º 13
0
 private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
 {
     try
     {
         IEdmTaskProperties props = default(IEdmTaskProperties);
         props = (IEdmTaskProperties)poCmd.mpoExtra;
     }
     catch (System.Runtime.InteropServices.COMException ex)
     {
         MessageObserver.Instance.SetMessage("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
     }
     catch (Exception ex)
     {
         MessageObserver.Instance.SetMessage(ex.Message);
     }
 }
Ejemplo n.º 14
0
        void IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref Array ppoData)
        {
            try
            {
                switch (poCmd.meCmdType)
                {
                case EdmCmdType.EdmCmd_TaskRun:
                    try
                    {
                        TaskRun(poCmd.mpoVault as IEdmVault13, GetVaultObjects(ppoData));
                    }
                    catch (Exception ex)
                    {
                        SetTaskError(poCmd, ex);
                    }
                    break;

                case EdmCmdType.EdmCmd_TaskSetup:
                    // TODO: Implement task setup page...
                    break;

                case EdmCmdType.EdmCmd_TaskSetupButton:
                    var taskProps = poCmd.mpoExtra as IEdmTaskProperties;
                    taskProps.TaskFlags = (int)(
                        EdmTaskFlag.EdmTask_SupportsInitExec |
                        EdmTaskFlag.EdmTask_SupportsChangeState);
                    taskProps.SetMenuCmds(new EdmTaskMenuCmd[]
                    {
                        new EdmTaskMenuCmd
                        {
                            mlCmdID          = 1,
                            mbsMenuString    = "Convert DOC to PDF",
                            mbsStatusBarHelp = "",
                            mlEdmMenuFlags   = (int)(
                                EdmMenuFlags.EdmMenu_ContextMenuItem |
                                EdmMenuFlags.EdmMenu_OnlyFiles |
                                EdmMenuFlags.EdmMenu_MustHaveSelection)
                        }
                    });
                    break;
                }
            }
            catch (Exception ex)
            {
                HandleEx(ex, true);
            }
        }
Ejemplo n.º 15
0
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            switch (poCmd.meCmdType)
            {
            case EdmCmdType.EdmCmd_TaskRun:
                OnTaskRun(ref poCmd, ref ppoData);
                break;

            case EdmCmdType.EdmCmd_TaskSetup:
                OnTaskSetup(ref poCmd, ref ppoData);
                break;

            case EdmCmdType.EdmCmd_Menu:
                OnMenu(ref poCmd, ref ppoData);
                break;
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Begins the task.
        /// </summary>
        /// <param name="poCmd"></param>
        /// <param name="ppoData"></param>
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                #region Task Addin version

                switch (poCmd.meCmdType)
                {
                case EdmCmdType.EdmCmd_TaskRun:
                    OnTaskRun(ref poCmd, ref ppoData);
                    break;

                case EdmCmdType.EdmCmd_TaskSetup:
                    OnTaskSetup(ref poCmd, ref ppoData);
                    break;

                case EdmCmdType.EdmCmd_TaskDetails:
                    break;

                case EdmCmdType.EdmCmd_TaskSetupButton:
                    break;
                }

                #endregion

                #region Addin version

                //vault = poCmd.mpoVault as IEdmVault7;
                //switch (poCmd.meCmdType)
                //        {
                //            case EdmCmdType.EdmCmd_Menu:
                //                OnTaskRun(ref poCmd, ref ppoData);
                //                break;
                //        }

                #endregion
            }
            catch (COMException ex)
            {
                Logger.Add("OnCmd HRESULT = 0x" + ex.ErrorCode.ToString("X") + "; " + ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Add("OnCmd = " + ex.Message + "; " + ex.StackTrace);
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Sets the status of a task to EdmTaskStat_DoneFailed and sends correct message based on argument Exception.
        /// </summary>
        /// <param name="poCmd"></param>
        /// <param name="ex"></param>
        protected void SetTaskError(EdmCmd poCmd, Exception ex)
        {
            string msg;

            IEdmTaskInstance taskInst = poCmd.mpoExtra as IEdmTaskInstance;

            if (taskInst != null)
            {
                int hres = 0;
                if (ex is COMException)
                {
                    hres = (ex as COMException).ErrorCode;
                }
                var dt = DateTime.Now.ToString();
                msg = string.Format("{0} --- {1}", dt, ex.ToString());
                taskInst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, hres, msg);
            }
        }
Ejemplo n.º 18
0
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            IEdmVault5 tmpVault = poCmd.mpoVault as IEdmVault5; //link to the current vault

            try
            {
                switch (poCmd.meCmdType)
                {
                case EdmCmdType.EdmCmd_CardButton:
                case EdmCmdType.EdmCmd_Menu:
                    if (poCmd.mbsComment == bc_window | poCmd.mlCmdID == 1000)
                    {
                        FileData[] FP = new FileData[ppoData.Length];
                        for (int i = 0; i < ppoData.Length; i++)
                        {
                            var dcFile = tmpVault.GetObject(EdmObjectType.EdmObject_File, ppoData[i].mlObjectID1) as IEdmFile5;
                            if (dcFile != null)
                            {
                                var folder_POS = dcFile.GetFirstFolderPosition();
                                var dcFolder   = dcFile.GetNextFolder(folder_POS);
                                FP[i].VaultName  = tmpVault.Name;
                                FP[i].FileID     = dcFile.ID.ToString();
                                FP[i].FileName   = dcFile.Name;
                                FP[i].FolderID   = dcFolder.ID.ToString();
                                FP[i].FolderPath = dcFolder.LocalPath;
                            }
                        }
                        if (!string.IsNullOrEmpty(FP[0].FileName))
                        {
                            addinWindow f = new addinWindow(ref FP);
                            f.ShowDialog();
                        }
                    }
                    break;
                }
            }
            catch (COMException ex)
            {
                string errorName, errorDesc;
                tmpVault.GetErrorString(ex.ErrorCode, out errorName, out errorDesc);
                tmpVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName);
            }
        }
Ejemplo n.º 19
0
        private void OnMenu(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            int i;

            for (i = 0; i < ppoData.Length; i++)
            {
                if (((EdmCmdData)ppoData.GetValue(0)).mlObjectID1 != 0)
                {
                    var vault = (IEdmVault7)poCmd.mpoVault;


                    var file   = (IEdmFile7)vault.GetObject(EdmObjectType.EdmObject_File, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID1);
                    var folder = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID3);

                    Form1 f = new Form1(file, vault);
                    f.ShowDialog();
                }
            }
        }
Ejemplo n.º 20
0
        static public List <Info> FilesPdm(IEdmVault5 vault, ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            var list = new List <Info>();

            try
            {
                foreach (EdmCmdData edmCmdData in ppoData)
                {
                    try
                    {
                        var fileId         = edmCmdData.mlObjectID1;
                        var parentFolderId = edmCmdData.mlObjectID2; // for Task
                                                                     //var parentFolderId = edmCmdData.mlObjectID3; // for Addin
                        var fileEdm = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, fileId);
                        var folder  = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, parentFolderId);

                        var taskParam = new Info();
                        taskParam.IdPDM          = fileEdm.ID;
                        taskParam.CurrentVersion = fileEdm.CurrentVersion;
                        taskParam.FileName       = fileEdm.Name;
                        taskParam.FolderPath     = folder.LocalPath;
                        taskParam.FolderID       = folder.ID;
                        taskParam.FullFilePath   = folder.LocalPath + "\\" + fileEdm.Name;
                        list.Add(taskParam);
                    }
                    catch (Exception exeption)
                    {
                        Logger.Add("FilesPdm - " + exeption.Message);
                    }
                }
            }
            catch (COMException ex)
            {
                Logger.Add("OnTaskSetup HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Add(ex.Message + "; " + ex.StackTrace);
            }
            return(list);
        }
Ejemplo n.º 21
0
        private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            IEdmTaskInstance inst = default(IEdmTaskInstance);

            inst = (IEdmTaskInstance)poCmd.mpoExtra;

            IEdmVault5 vault = new EdmVault5();

            try
            {
                for (int i = 0; i < ppoData.Length; i++)
                {
                    if (((EdmCmdData)ppoData.GetValue(0)).mlObjectID1 != 0)
                    {
                        vault = (IEdmVault5)poCmd.mpoVault;
                        IEdmObject5 folderObject = vault.GetObject(EdmObjectType.EdmObject_Folder, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID2);
                        IEdmFolder5 ef           = (IEdmFolder5)folderObject;
                        IEdmObject5 fileObject   = vault.GetObject(EdmObjectType.EdmObject_File,
                                                                   ((EdmCmdData)ppoData.GetValue(i)).mlObjectID1);
                        string fullpath = ef.LocalPath + "\\" + fileObject.Name;

                        DxfLoad dxfl = new DxfLoad();
                        var     sp   = dxfl.GetSpecification(fullpath, "");
                        dxfl.UpLoadDxf(sp);
                        XmlFile xf = new XmlFile();
                        xf.DownloadXml(fullpath);
                    }

                    SolidWorksPdmAdapter.Instance.KillProcsses("SLDWORKS");
                    MessageObserver.Instance.SetMessage("End upload.\n");
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, ex.ErrorCode, "The test task failed!");
            }
            catch (Exception ex)
            {
                MessageObserver.Instance.SetMessage(ex.Message);
            }
        }
Ejemplo n.º 22
0
        private void OnTaskSetupButton(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                //Custom setup page, SetupPageObj, is created
                //in method Class1::OnTaskSetup; SetupPage::StoreData
                //saves the contents of the list box to poCmd.mpoExtra
                //in the IEdmTaskProperties interface
                if (poCmd.mbsComment == "OK" && (taskSettings != null))
                {
                    IEdmTaskProperties props = poCmd.mpoExtra as IEdmTaskProperties;
                    //Pull settings from windows


                    //Set up the menu commands to launch this task
                    if (taskSettings.CreateMenu)
                    {
                        EdmTaskMenuCmd[] cmds = new EdmTaskMenuCmd[1];
                        cmds[0].mbsMenuString    = taskSettings.MenuName;
                        cmds[0].mbsStatusBarHelp = taskSettings.MenuDescription;
                        cmds[0].mlCmdID          = 2;
                        cmds[0].mlEdmMenuFlags   = (int)EdmMenuFlags.EdmMenu_MustHaveSelection;
                        props.SetMenuCmds(cmds);
                    }

                    props.SetValEx(AutoCADTaskSettings.Acadtask_Settings, JsonConvert.SerializeObject(taskSettings));
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                taskSettings = null;
            }
        }
Ejemplo n.º 23
0
        private void OnMenu(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                Logger.Instance.RootDirectory             = tempAppFolder;
                MessageObserver.Instance.ReceivedMessage += Program.Instance_ReceivedMessage;

                for (int i = 0; i < ppoData.Length; i++)
                {
                    if (((EdmCmdData)ppoData.GetValue(0)).mlObjectID1 != 0)
                    {
                        IEdmVault5 vault = new EdmVault5();

                        vault = (IEdmVault5)poCmd.mpoVault;
                        IEdmObject5 folderObject = vault.GetObject(EdmObjectType.EdmObject_Folder,
                                                                   ((EdmCmdData)ppoData.GetValue(i)).mlObjectID3);
                        IEdmFolder5 ef         = (IEdmFolder5)folderObject;
                        IEdmObject5 fileObject = vault.GetObject(EdmObjectType.EdmObject_File,
                                                                 ((EdmCmdData)ppoData.GetValue(i)).mlObjectID1);
                        string fullpath = ef.LocalPath + "\\" + fileObject.Name;

                        DxfLoad dxfl = new DxfLoad();
                        var     sp   = dxfl.GetSpecification(fullpath, "");
                        dxfl.UpLoadDxf(sp);

                        //XmlFile xf = new XmlFile();
                        //xf.DownloadXml(fullpath);
                    }

                    SolidWorksPdmAdapter.Instance.KillProcsses("SLDWORKS");
                    //MessageObserver.Instance.SetMessage("End upload.\n");
                }
            }
            catch (Exception ex)
            {
                MessageObserver.Instance.SetMessage(ex.Message);
                throw;
            }
        }
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try {
                switch (poCmd.meCmdType)
                {
                case EdmCmdType.EdmCmd_PreExploreInit:
                    createCustomTabView(poCmd.mpoExtra);
                    break;

                case EdmCmdType.EdmCmd_ActivateAPITab:
                    MessageBox.Show("The custom tab has been activated!", "Activate", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    break;

                default:
                    break;
                }
            } catch (System.Runtime.InteropServices.COMException ex) {
                MessageBox.Show($"HRESULT = 0x{ex.ErrorCode.ToString("X")} {ex.Message}", "Interop Error", MessageBoxButton.OK, MessageBoxImage.Error);
            } catch (Exception ex) {
                MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Ejemplo n.º 25
0
        private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            //Get the task instance interface
            IEdmTaskInstance inst = poCmd.mpoExtra as IEdmTaskInstance;

            if (inst == null)
            {
                return;
            }
            try
            {
                AutoCADTaskSettings taskSettings;
                string settings = inst.GetValEx(AutoCADTaskSettings.Acadtask_Settings) as string;
                if (!string.IsNullOrEmpty(settings))
                {
                    taskSettings = JsonConvert.DeserializeObject <AutoCADTaskSettings>(settings);
                }
                else
                {
                    taskSettings = new AutoCADTaskSettings();
                }

                var tas = new AutoCADTaskAddin(poCmd, ppoData, taskSettings);
                tas.runTask();
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                log.Error(ex);
                inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, ex.ErrorCode, "The test task failed!");
            }
            catch (Exception ex)
            {
                log.Error(ex);
                inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, 0, "", "The test task failed!");
            }
        }
Ejemplo n.º 26
0
        public void OnCmd(ref EdmCmd poCmd, ref Array ppoData)
        {
            try
            {
                //// TODO: This is useful for showing child windows properly
                //poCmd.mlParentWnd;

                switch (poCmd.meCmdType)
                {
                case EdmCmdType.EdmCmd_Menu:
                    if (poCmd.mlCmdID == 1)
                    {
                        //// TODO: Only supporting single selection for now.
                        //foreach(EdmCmdData d in ppoData)
                        //{
                        //    d.mbsStrData1  =
                        //}

                        var fileData = (EdmCmdData)ppoData.GetValue(0);

                        string fileName = fileData.mbsStrData1;
                        int    fileId   = fileData.mlObjectID1;
                        int    folderId = fileData.mlObjectID3;

                        IEdmVault16 vault        = (IEdmVault16)poCmd.mpoVault;
                        IEdmFile5   file         = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, fileId);
                        IEdmFolder5 parentFolder = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, folderId);

                        string parentFilePath = file.GetLocalPath(parentFolder.ID);
                        var    fileVars       = (IEdmEnumeratorVariable10)file.GetEnumeratorVariable();

                        // get the variable
                        object oVal;
                        bool   success = fileVars.GetVar2(VARIABLE_NAME, "@", parentFolder.ID, out oVal);

                        if (file.IsLocked)
                        {
                            MessageBox.Show("The file must be checked in.");
                        }
                        else if (oVal == null)
                        {
                            MessageBox.Show($"The variable '{VARIABLE_NAME}' has no value.");
                        }
                        else
                        {
                            var window = new AAFileRefsWindow();

                            // do search and gret results...
                            var         search  = new VaultSearch(vault);
                            AAFileRef[] results = search.SearchForFileRefs(oVal.ToString());

                            var vm = new AAFileRefsViewModel(parentFilePath, results, () => window.Close());
                            window.DataContext = vm;
                            window.ShowDialog();
                            if (vm.OkWasClicked)
                            {
                                var fileRefsSvc = new CustomRefsService(vault);

                                string[] chilPaths = vm.Results
                                                     .Where(x => x.IsIncluded)
                                                     .Select(x => x.Path).ToArray();

                                fileRefsSvc.AddCustomReferences(file.ID, chilPaths);
                            }
                        }
                    }
                    break;

                case EdmCmdType.EdmCmd_PostAdd:
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
#if Debug
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
            }
        }
Ejemplo n.º 27
0
        void IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref System.Array ppoData)
        {
            try
            {
                BW.RunWorkerCompleted += BW_RunWorkerCompleted;

                BW.WorkerSupportsCancellation = true;

                Debug.Print("Command Type: " + poCmd.meCmdType.ToString() + "\n  " + System.DateTime.Now.ToString());

                IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5;

                EdmCmdData[] Temp = (EdmCmdData[])ppoData;

                IEdmVault7 vault = (IEdmVault7)poCmd.mpoVault;

                vault_ = vault;

                try
                {
                    file_ = Temp[0];
                }
                catch { }

                DataHelper helper = new DataHelper();

                try
                {
                    switch (poCmd.meCmdType)
                    {
                        case EdmCmdType.EdmCmd_Menu:
                            switch (poCmd.mlCmdID)
                            {
                                case 1:
                                    #region Item Master

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        if (ValidSelection(file))
                                            GetItemInfo(vault, file, "");
                                    }
                                    #endregion
                                    break;
                                case 2:
                                    #region Add Item/Rev/OOM/BOM

                                    string config;

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        if (ValidSelection(file))
                                        {
                                            IEdmFile5 part = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1);

                                            string selected_config = DetermineConfig(part, vault, file, "");

                                            if (GetItemInfo(vault, file, selected_config) == DialogResult.Cancel)
                                                break;

                                            if (AddRevision(vault, file, selected_config) == DialogResult.Cancel)
                                                break;

                                            if (AddOOM(vault, file, selected_config) == DialogResult.Cancel)
                                                break;

                                            #region Bill Master

                                            BWForm = new Waiting("Retrieving Bill of Materials from SolidWorks...");

                                            ParentNumber = "";

                                            Area = 0;

                                            Weight = 0;

                                            Bill.Clear();

                                                string sconfig;

                                                AddBill(vault, file, "", out sconfig);

                                                if (sconfig == null)
                                                    break;

                                                Bill.Sort((x, y) => x.PartNumber.CompareTo(y.PartNumber));

                                                CombineBill();

                                                Bill_Master BM = new Bill_Master(Bill, ParentNumber, "", Weight, Area);

                                            #endregion

                                            if (BM.ShowDialog() == DialogResult.Cancel)
                                                break;

                                            if (CheckInPart(vault, file, selected_config) == DialogResult.Cancel)
                                                break;
                                        }
                                    }

                                    #endregion
                                    break;
                                case 3:
                                    #region CheckOut_Master

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        if (ValidSelection(file))
                                            CheckOutPart(vault, file);
                                    }
                                    #endregion
                                    break;
                                case 4:
                                    #region Add Revision

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        if (ValidSelection(file))
                                            AddRevision(vault, file, "");
                                    }

                                    #endregion
                                    break;
                                case 5:
                                    #region OOM_Master

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        if (ValidSelection(file))
                                            AddOOM(vault, file, "");
                                    }

                                    #endregion
                                    break;
                                case 6:
                                    #region Bill Master

                                    BWForm = new Waiting("Retrieving Bill of Materials from SolidWorks...");

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        ParentNumber = "";

                                        Area = 0;

                                        Weight = 0;

                                        try
                                        {

                                            //BW = null;

                                            //BW = new BackgroundWorker();

                                            Bill.Clear();

                                            string sconfig;

                                            AddBill(vault, file, "", out sconfig);

                                            if (sconfig == null)
                                                break;

                                            Bill.Sort((x, y) => x.PartNumber.CompareTo(y.PartNumber));

                                            CombineBill();

                                            Bill_Master BM = new Bill_Master(Bill, ParentNumber, "", Weight, Area);

                                            BM.ShowDialog();
                                        }
                                        catch (Exception ex)
                                        {
                                            MessageBox.Show(ex.Message);
                                        }
                                    }
                                    #endregion
                                    break;
                                case 7:
                                    #region CheckIn_Master

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        if (ValidSelection(file))
                                            CheckInPart(vault, file, "");
                                    }
                                    #endregion
                                    break;
                                case 0:
                                    #region RevCompare

                                    BWForm = new Waiting("Retrieving Bill of Materials from SolidWorks...");

                                    foreach (EdmCmdData file in Temp)
                                    {
                                        try
                                        {
                                            string file_ext = file.mbsStrData1.Substring(file.mbsStrData1.LastIndexOf('.') + 1).ToUpper();
                                            if (file_ext == "SLDASM")
                                            {
                                                if (file.mlObjectID1 != null)
                                                {
                                                    System.Data.DataSet DS = new System.Data.DataSet();

                                                    DS.Tables.Add("PartMtl");

                                                    DS.Tables[0].Columns.Add("MtlPartNum");

                                                    DS.Tables[0].Columns.Add("QtyPer");

                                                    Bill.Clear();

                                                    ParentNumber = "";

                                                    string rconfig;

                                                    AddBill(vault, file, "", out rconfig);

                                                    if (rconfig == null)
                                                        break;

                                                    try
                                                    {
                                                        Bill.Sort((x, y) => x.PartNumber.CompareTo(y.PartNumber));

                                                        CombineBill();

                                                        foreach (BillItem item in Bill)
                                                        {
                                                            System.Data.DataRow dr = DS.Tables[0].NewRow();

                                                            dr["MtlPartNum"] = item.PartNumber;

                                                            dr["QtyPer"] = item.Qty;

                                                            DS.Tables[0].Rows.Add(dr);
                                                        }
                                                    }
                                                    catch (Exception ex)
                                                    { MessageBox.Show(ex.Message); }

                                                    try
                                                    {
                                                        RevCompare RC = new RevCompare(DS, ParentNumber);

                                                        RC.ShowDialog();
                                                    }
                                                    catch (Exception ex)
                                                    { MessageBox.Show(ex.Message); }
                                                }
                                                else
                                                {
                                                    RevCompare RC = new RevCompare();

                                                    RC.ShowDialog();
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("This function cannot be used on Parts.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            MessageBox.Show(ex.Message);
                                        }
                                    }
                                    break;
                                    #endregion
                                case -2:
                                    #region Op Minutes
                                    foreach (EdmCmdData file in Temp)
                                    {
                                        try
                                        {
                                            Mins[0] = 0; //Huck
                                            Mins[1] = 0; //Tec
                                            Mins[2] = 0; //Bolt
                                            Mins[3] = 0; //Rivet
                                            Mins[4] = 0; //Band
                                            Mins[5] = 0; //Heat
                                            Mins[6] = 0; //Spring
                                            Mins[7] = 0; //Zhooks

                                            BW = null;

                                            BW = new BackgroundWorker();

                                            BW.WorkerSupportsCancellation = true;

                                            CalcMins(vault, file, "");

                                            Epicor_Integration.Operations_Minutes OpsMins = new Operations_Minutes(Mins[0].ToString(), Mins[1].ToString(), Mins[2].ToString(), Mins[3].ToString(), Mins[4].ToString(), Mins[5].ToString(), Mins[6].ToString(), Mins[7].ToString());

                                            OpsMins.Show();
                                        }
                                        catch (Exception ex)
                                        {
                                            MessageBox.Show(ex.Message);
                                        }
                                    }
                                    break;
                                    #endregion
                                case -1:
                                    Config conf = new Config();

                                    conf.ShowDialog();

                                    break;
                                case -10:
                                    foreach (EdmCmdData file in Temp)
                                    {
                                        if (ValidSelection(file))
                                        {
                                            Update_Properties Update = new Update_Properties(vault, file);

                                            Update.ShowDialog();
                                        }
                                    }
                                    break;
                                case -100:
                                    Template_Master TM = new Template_Master();

                                    TM.ShowDialog();

                                    break;
                                case - 101:
                                    SearchPart SP = new SearchPart();

                                    SP.ShowDialog();

                                    break;
                                default:
                                    break;
                            } break;
                        default:
                            break;
                    }
                }
                catch (COMException exp)
                {
                    string errorName, errorDesc;
                    edmVault.GetErrorString(exp.ErrorCode, out errorName, out errorDesc);
                    edmVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName);
                }
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message); }
        }
Ejemplo n.º 28
0
        void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            var statusTask = true;

            edmTaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
            edmTaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_Running);
            List <Files.Info> filesToConvert = null;

            try
            {
                var vault = poCmd.mpoVault as IEdmVault7;

                InitializeErrorList();

                filesToProceed = 1;

                filesPdm  = Files.GetFilesToConvert(vault, ref poCmd, ref ppoData);
                FilesList = Batch.UpdateFileInfo(vault, filesPdm);

                filesToConvert = FilesList.Where(x => !x.ExistCutList | !x.ExistDXF /*| !x.ExistEdrawing*/).ToList();

                Logger.Add($@"\n\n{new string('-', 500)}\nTime {DateTime.Now}\nЗадача '{edmTaskInstance.TaskName}'
                            ID: {edmTaskInstance.ID}, для {filesToConvert.Count} элемента(ов), OnTaskRun ver.{currentVer}");

                edmTaskInstance.SetProgressRange(filesToConvert.Count, 0, $"Запуск задачи в {DateTime.Now}");

                GetAndDeleteUnnecesseryFromPdm(vault, filesToConvert);

                // Run SldWorks

                if (filesToConvert.Count != 0)
                {
                    KillSwAndStartNewProccess();

                    // Разбиваем лист на группы
                    var nChunks     = 1;
                    var totalLength = filesToConvert.Count();
                    var chunkLength = (int)Math.Ceiling(totalLength / (double)nChunks);
                    var partsToList = Enumerable.Range(0, chunkLength).Select(i => filesToConvert.Skip(i * nChunks).Take(nChunks).ToList()).ToList();

                    for (var i = 0; i < partsToList.Count; i++)
                    {
                        if (!ConvertChunk(vault, partsToList[i]))
                        {
                            statusTask = false;
                        }
                    }
                }
            }
            catch (COMException ex)
            {
                statusTask = false;
                this.ex    = ex;
                Logger.Add("OnTaskRun HRESULT = 0x" + ex.ErrorCode.ToString("X") + "; " + ex.StackTrace + "; \n" + ex.Message);
            }
            catch (Exception ex)
            {
                statusTask = false;
                this.ex    = ex;
                Logger.Add(ex.Message + ";\n" + ex.StackTrace);
            }
            finally
            {
                if (ListWithConvertErrors?.Count > 0)
                {
                    statusTask = false;
                    try
                    {
                        var message = "";
                        foreach (var item in ListWithConvertErrors)
                        {
                            message = message + "\n" + $"FileName - {item.FileName} FolderID - {item.FolderID} IdPDM - {item.IdPDM} Revision {item.Revision}";
                        }
                        Logger.Add(message);
                    }
                    catch (Exception)
                    {
                        Logger.Add("Ошибки при выгрузке данных об ошибке");
                    }
                }

                edmTaskInstance.SetProgressPos(filesToConvert.Count, "Выполнено, ID = " + edmTaskInstance.ID);
                edmTaskInstance.SetStatus(statusTask ? EdmTaskStatus.EdmTaskStat_DoneOK : EdmTaskStatus.EdmTaskStat_DoneFailed, GetHashCode());
            }
        }
Ejemplo n.º 29
0
        void EdmLib.IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref System.Array ppoData)
        {
            Debug.Print("Command Type: " + poCmd.meCmdType.ToString() + "\n  " + System.DateTime.Now.ToString());

            IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5;

            IEdmTaskProperties props;

            try
            {
                switch (poCmd.meCmdType)
                {
                    case EdmCmdType.EdmCmd_CardButton:
                        break;
                    case EdmCmdType.EdmCmd_CardInput:
                        break;
                    case EdmCmdType.EdmCmd_CardListSrc:
                        break;
                    case EdmCmdType.EdmCmd_InstallAddIn:
                        break;
                    case EdmCmdType.EdmCmd_Menu:

                        Task_Config TaskConf = new Task_Config();

                        TaskConf.ShowDialog();

                        break;
                    case EdmCmdType.EdmCmd_PostAdd:
                        break;
                    case EdmCmdType.EdmCmd_PostAddFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostCopy:
                        break;
                    case EdmCmdType.EdmCmd_PostCopyFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostDelete:
                        break;
                    case EdmCmdType.EdmCmd_PostDeleteFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostGet:
                        break;
                    case EdmCmdType.EdmCmd_PostLock:
                        break;
                    case EdmCmdType.EdmCmd_PostMove:
                        break;
                    case EdmCmdType.EdmCmd_PostMoveFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostRename:
                        break;
                    case EdmCmdType.EdmCmd_PostRenameFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostShare:
                        break;
                    case EdmCmdType.EdmCmd_PostState:
                        break;
                    case EdmCmdType.EdmCmd_PostUndoLock:
                        break;
                    case EdmCmdType.EdmCmd_PostUnlock:
                        break;
                    case EdmCmdType.EdmCmd_PreAdd:
                        break;
                    case EdmCmdType.EdmCmd_PreAddFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreCopy:
                        break;
                    case EdmCmdType.EdmCmd_PreCopyFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreDelete:
                        break;
                    case EdmCmdType.EdmCmd_PreDeleteFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreGet:
                        break;
                    case EdmCmdType.EdmCmd_PreLock:
                        break;
                    case EdmCmdType.EdmCmd_PreMove:
                        break;
                    case EdmCmdType.EdmCmd_PreMoveFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreRename:
                        break;
                    case EdmCmdType.EdmCmd_PreRenameFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreShare:
                        break;
                    case EdmCmdType.EdmCmd_PreState:
                        break;
                    case EdmCmdType.EdmCmd_PreUndoLock:
                        break;
                    case EdmCmdType.EdmCmd_PreUnlock:
                        break;
                    case EdmCmdType.EdmCmd_SerialNo:
                        break;
                    case EdmCmdType.EdmCmd_UninstallAddIn:
                        break;
                    case EdmCmdType.EdmCmd_TaskLaunch:
                        #region TaskLaunch
                        EdmCmdData[] Temp = (EdmCmdData[])ppoData;

                        //Show form

                        Task_Config Task_Conf = new Task_Config();

                        Task_Conf.ShowDialog();

                        if (Task_Conf.DialogResult == DialogResult.Cancel)
                            break;

                        //Select directory
                        string[] filepaths = Directory.GetFiles(Properties.Settings.Default.Directory);

                        foreach (EdmCmdData file in Temp)
                        {
                            IEdmVault7 vault = (IEdmVault7)poCmd.mpoVault;

                            IEdmFile5 part = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1);

                            string filename = DetermineConfig(part, vault, file);
                            if (filename != "")
                            {
                                for (int i = 0; i <= filepaths.GetUpperBound(0); i++)
                                {
                                    if (filepaths[i].Substring(filepaths[i].LastIndexOf('\\') + 1) == filename + "." + Properties.Settings.Default.DefaultExt)
                                        File.Delete(filepaths[i]);
                                }
                            }
                        }
                        break;
                        #endregion
                    case EdmCmdType.EdmCmd_TaskSetup:

                        props = (IEdmTaskProperties)poCmd.mpoExtra;

                        props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec;

                        break;
                    case EdmCmdType.EdmCmd_TaskDetails:

                        props = (IEdmTaskProperties)poCmd.mpoExtra;

                        props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec;
                        break;
                    case EdmCmdType.EdmCmd_TaskLaunchButton:

                        props = (IEdmTaskProperties)poCmd.mpoExtra;

                        props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec;
                        break;
                    case EdmCmdType.EdmCmd_TaskSetupButton:

                        props = (IEdmTaskProperties)poCmd.mpoExtra;

                        props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec;
                        break;
                    case EdmCmdType.EdmCmd_TaskRun:

                        props = (IEdmTaskProperties)poCmd.mpoExtra;

                        props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec;
                        break;
                    default:
                        break;
                }
            }
            catch (COMException exp)
            {
                string errorName, errorDesc;
                edmVault.GetErrorString(exp.ErrorCode, out errorName, out errorDesc);
                edmVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName);
            }
        }
Ejemplo n.º 30
0
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            IEdmVault10 edmVault = (IEdmVault10)poCmd.mpoVault;

            switch (poCmd.meCmdType)
            {
            case EdmCmdType.EdmCmd_Menu:
                // match the CmdID with the command ID specified above
                switch (poCmd.mlCmdID)
                {
                case 100:
                    // CustomAddin -> Action1
                    string message = "";

                    for (int i = 0; i < ppoData.Length; i++)
                    {
                        message += ppoData[i].mbsStrData1 + "\n";
                    }

                    edmVault.MsgBox(0, message);
                    break;

                case 200:
                    // CustomAddin -> Assy Only BOM
                    for (int i = 0; i < ppoData.Length; i++)
                    {
                        IEdmFile10 file = (IEdmFile10)edmVault.GetObject(EdmObjectType.EdmObject_File, ppoData[i].mlObjectID1);

                        IEdmBomView3 bomView = (IEdmBomView3)file.GetComputedBOM("BOM", 0, "@", (int)EdmBomFlag.EdmBf_AsBuilt | (int)EdmBomFlag.EdmBf_ShowSelected);

                        string tempFileName = System.IO.Path.GetTempFileName();
                        bomView.SaveToCSV(tempFileName, true);

                        string[] lines = System.IO.File.ReadAllLines(tempFileName);

                        string csvFile = System.IO.Path.GetTempFileName() + ".csv";

                        using (System.IO.TextWriter writer = new System.IO.StreamWriter(csvFile)) {
                            for (int j = 0; j < lines.Length; j++)
                            {
                                if (j == 0)
                                {
                                    writer.WriteLine(lines[j]);
                                }
                                else if (lines[j].ToUpper().Contains("SLDASM"))
                                {
                                    writer.WriteLine(lines[j]);
                                }
                            }

                            System.Diagnostics.Process.Start(csvFile);
                        }
                    }
                    break;

                default:
                    break;
                }
                break;
            }
        }
Ejemplo n.º 31
0
        void EdmLib.IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref System.Array ppoData)
        {
            Debug.Print("Command Type: " + poCmd.meCmdType.ToString() + "\n  " + System.DateTime.Now.ToString());

            IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5;

            try
            {
                switch (poCmd.meCmdType)
                {
                    case EdmCmdType.EdmCmd_CardButton:
                        break;
                    case EdmCmdType.EdmCmd_CardInput:
                        break;
                    case EdmCmdType.EdmCmd_CardListSrc:
                        break;
                    case EdmCmdType.EdmCmd_InstallAddIn:
                        break;
                    case EdmCmdType.EdmCmd_Menu:
                        edmVault.MsgBox(0, " SWEPDMAddin2", EdmMBoxType.EdmMbt_OKOnly, "SolidWorks EPDM Addin");
                        break;
                    case EdmCmdType.EdmCmd_PostAdd:
                        break;
                    case EdmCmdType.EdmCmd_PostAddFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostCopy:
                        break;
                    case EdmCmdType.EdmCmd_PostCopyFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostDelete:
                        break;
                    case EdmCmdType.EdmCmd_PostDeleteFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostGet:
                        break;
                    case EdmCmdType.EdmCmd_PostLock:
                        break;
                    case EdmCmdType.EdmCmd_PostMove:
                        break;
                    case EdmCmdType.EdmCmd_PostMoveFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostRename:
                        break;
                    case EdmCmdType.EdmCmd_PostRenameFolder:
                        break;
                    case EdmCmdType.EdmCmd_PostShare:
                        break;
                    case EdmCmdType.EdmCmd_PostState:
                        break;
                    case EdmCmdType.EdmCmd_PostUndoLock:
                        break;
                    case EdmCmdType.EdmCmd_PostUnlock:
                        break;
                    case EdmCmdType.EdmCmd_PreAdd:
                        break;
                    case EdmCmdType.EdmCmd_PreAddFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreCopy:
                        break;
                    case EdmCmdType.EdmCmd_PreCopyFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreDelete:
                        break;
                    case EdmCmdType.EdmCmd_PreDeleteFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreGet:
                        break;
                    case EdmCmdType.EdmCmd_PreLock:
                        break;
                    case EdmCmdType.EdmCmd_PreMove:
                        break;
                    case EdmCmdType.EdmCmd_PreMoveFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreRename:
                        break;
                    case EdmCmdType.EdmCmd_PreRenameFolder:
                        break;
                    case EdmCmdType.EdmCmd_PreShare:
                        break;
                    case EdmCmdType.EdmCmd_PreState:
                        break;
                    case EdmCmdType.EdmCmd_PreUndoLock:
                        break;
                    case EdmCmdType.EdmCmd_PreUnlock:
                        break;
                    case EdmCmdType.EdmCmd_SerialNo:
                        break;
                    case EdmCmdType.EdmCmd_UninstallAddIn:
                        break;
                    default:
                        break;
                }
            }
            catch (COMException exp)
            {
                string errorName, errorDesc;
                edmVault.GetErrorString(exp.ErrorCode, out errorName, out errorDesc);
                edmVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName);
            }
        }
Ejemplo n.º 32
0
    public void OnCmd(ref EdmCmd poCmd, ref System.Array ppoData)
    {
        //Handle the hook
        string name = null;

        switch (poCmd.meCmdType)
        {
        case EdmCmdType.EdmCmd_PreState:
            name = "PreState";
            break;

        case EdmCmdType.EdmCmd_PostAdd:
            name = "PostAdd";
            break;

        case EdmCmdType.EdmCmd_PostLock:
            name = "PostLock";
            break;

        case EdmCmdType.EdmCmd_PreUnlock:
            name = "PreUnlock";
            break;

        case EdmCmdType.EdmCmd_PostUnlock:
            name = "PostUnlock";
            break;

        default:
            name = "?";
            break;
        }



        string message = null;

        message = "sasasa";
        int index = 0;

        // index = Information.LBound(ppoData);
        index = ppoData.GetLowerBound(0);
        int last = 0;

        //last = Information.UBound(ppoData);
        last = ppoData.GetUpperBound(0);

        //Append the paths of all files to a message string
        while (index <= last)
        {
            message = message + ((EdmCmdData)(ppoData.GetValue(index))).mbsStrData1 + Environment.NewLine;//Constants.vbLf;
            index   = index + 1;
        }

        //Display a message to the user
        message = "The following files were affected by a " + name + " hook:" + Environment.NewLine /*Constants.vbLf */ + message;

        EdmVault5 vault = default(EdmVault5);

        vault = (EdmVault5)poCmd.mpoVault;
        vault.MsgBox(poCmd.mlParentWnd, message);



        if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu)
        {
            if (poCmd.mlCmdID == 1)
            {
                System.Windows.Forms.MessageBox.Show("C# Add-in");
            }
        }
    }