コード例 #1
0
        /// <summary>
        ///  Get configuration by data model
        /// </summary>
        /// <param name="fileModel"></param>
        /// <returns></returns>
        public string[] GetConfigigurations(string filePath)
        {
            IEdmFolder5 ppoRetParentFolder;
            IEdmFile9   fileModelInfo = PdmExemplar.GetFileFromPath(filePath, out ppoRetParentFolder) as IEdmFile9;
            EdmStrLst5  cfgList       = null;

            cfgList = fileModelInfo.GetConfigurations();
            IEdmPos5 edmPos;

            edmPos = cfgList.GetHeadPosition();

            #region fill resault array
            List <string> configurationResaultArray = new List <string>();
            int           id = 0;
            while (!edmPos.IsNull)
            {
                string buff = cfgList.GetNext(edmPos);
                if (buff.CompareTo("@") != 0)
                {
                    if (buff != null)
                    {
                        configurationResaultArray.Add(buff);
                    }
                }
                id++;
            }
            #endregion

            return(configurationResaultArray.ToArray());
        }
コード例 #2
0
        public static bool CheckDxfExistance(IEdmVault7 vault, int IdPDM, int CurrentVersion, string fileName)
        {
            var result = true;
            //Get configurations
            var        fileEdm = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, IdPDM);
            EdmStrLst5 cfgList = default(EdmStrLst5);

            cfgList = fileEdm.GetConfigurations();
            string   cfgName = null;
            IEdmPos5 pos     = default(IEdmPos5);

            pos = cfgList.GetHeadPosition();
            while (!pos.IsNull)
            {
                Exception exc;
                cfgName = cfgList.GetNext(pos);
                if (cfgName != "@")
                {
                    var existDxf = Dxf.ExistDxf(IdPDM, CurrentVersion, cfgName, out exc);
                    //Logger.Add("Проверка на DXF; \n IdPDM: " + IdPDM + "\n Name: " + fileName + "\n Version: " + CurrentVersion + "\n ConfigName: " + cfgName + "\n Exist: " + existDxf);
                    if (!existDxf)
                    {
                        //return
                        result = false;
                    }
                }
            }
            return(result);
        }
コード例 #3
0
        private static bool TryGetConfigurations(IEdmFile5 file, out List <string> cfgs)
        {
            cfgs = new List <string>();

            try
            {
                EdmStrLst5 cfgList = file.GetConfigurations();
                IEdmPos5   pos     = cfgList.GetHeadPosition();
                while (!pos.IsNull)
                {
                    string cfgName = cfgList.GetNext(pos);
                    cfgs.Add(cfgName);
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #4
0
        private void AddFileExecute()
        {
#if BlockPDM
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Multiselect = true;
            ofd.Filter      = "Files (*.dxf,*.Pdf)|*.dxf;*.pdf";
            if (ofd.ShowDialog() == true)
            {
                foreach (string fileName in ofd.FileNames)
                {
                    Files.Add(new FileDataViewModel(new Document(fileName)
                    {
                        FileId = 1, Description = "Test"
                    }));
                }
            }
#else
            IEdmVault11 vault = (IEdmVault11) new EdmVault5();
            EdmStrLst5  res   = vault.BrowseForFile(0, (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles,
                                                    "Select Files", "All Files (*.pdf,*.dxf,*.step)|*.pdf;*.dxf;*.step||", "", "", "Select Files");
            if (res != null)
            {
                IEdmPos5          pos   = res.GetHeadPosition();
                List <string>     paths = new List <string>();
                IEdmBatchListing4 bli   = vault.CreateUtility(EdmUtility.EdmUtil_BatchList);
                while (pos.IsNull)
                {
                    //paths.Add(res.GetNext(pos));
                    bli.AddFile(res.GetNext(pos), default(DateTime), 0, 0);
                }

                string         Names = "Description\nRevision";
                EdmListCol[]   cols  = null;
                EdmListFile2[] files = null;
                bli.CreateListEx(Names, (int)EdmCreateListExFlags.Edmclef_Nothing, ref cols, null);
                bli.GetFiles2(ref files);

                foreach (var file in files)
                {
                    var doc = new Document(file.mbsLockPath);
                    doc.FileId      = file.mlFileID;
                    doc.Version     = file.mlLatestVersion;
                    doc.Revision    = file.mbsRevisionName;
                    doc.FileState   = file.moCurrentState.mbsStateName;
                    doc.Description = (file.moColumnData as object[])?[0] as string ?? "Not found";
                    Files.Add(new FileDataViewModel(doc));
                }
            }

            //IEdmVault11 vault = (IEdmVault11)new EdmVault5();
            //EdmStrLst5 res = vault.BrowseForFile(0, (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles,
            //    "Select Files", "All Files (*.pdf,*.dxf,*.step)|*.pdf;*.dxf;*.step||", "", "", "Select Files");
            //if (res != null)
            //{
            //    IEdmPos5 pos = res.GetHeadPosition();
            //    List<string> paths = new List<string>();
            //    IEdmBatchListing4 bli = vault.CreateUtility(EdmUtility.EdmUtil_BatchList);
            //    while (pos.IsNull)
            //    {

            //        paths.Add(res.GetNext(pos));
            //        //bli.AddFile(res.GetNext(pos), default(DateTime), 0, 0);
            //    }

            //    string Names = "Description\nRevision";
            //    EdmListCol[] cols = null;
            //    EdmListFile2[] files = null;
            //    bli.CreateListEx(Names, (int)EdmCreateListExFlags.Edmclef_GetDrawings + (int)EdmCreateListExFlags.Edmclef_GetReferences + (int)EdmCreateListExFlags.Edmclef_ReturnReferences, ref cols, null);
            //    bli.GetFiles2(ref files);

            //    foreach (var file in files)
            //    {
            //        var doc = new Document(file.mbsLockPath);
            //        doc.FileId = file.mlFileID;
            //        doc.Version = file.mlLatestVersion;
            //        doc.Revision = file.mbsRevisionName;
            //        doc.FileState = file.moCurrentState.mbsStateName;
            //        doc.Description = (file.moColumnData as object[])?[0] as string ?? "Not found";
            //        Files.Add(new FileDataViewModel(doc));
            //    }

            //}
#endif
        }
コード例 #5
0
        public SldAsm GetAsmIndoFromFile(IEdmVault5 poVault, string filePath)
        {
            IEdmFolder5 opParentFolder;
            IEdmFile5   poFile = poVault.GetFileFromPath(filePath, out opParentFolder);

            if (poFile == null)
            {
                return(null);
            }
            IEdmVariableMgr5 varMgr = (IEdmVariableMgr5)poVault;

            if (varMgr == null)
            {
                return(null);
            }

            IEdmEnumeratorVariable5 enumVar = poFile.GetEnumeratorVariable();

            if (enumVar == null)
            {
                return(null);
            }
            if (filePath == "")
            {
                return(null);
            }
            EdmStrLst5 cfgList = poFile.GetConfigurations();

            SldAsm asmPrd = new SldAsm();

            asmPrd.path  = filePath;
            asmPrd.amout = 1;


            if (varMgr.GetVariable("代号") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("代号", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.number = tmpVar.ToString();
                }
                if (asmPrd.number.IndexOf(".") > 0 && asmPrd.number.IndexOf(".") < asmPrd.number.Length)
                {
                    asmPrd.ztdm = asmPrd.number.Substring(0, asmPrd.number.IndexOf("."));
                    asmPrd.zjdm = asmPrd.number.Substring(asmPrd.number.IndexOf(".") + 1);
                }
                else
                {
                    asmPrd.ztdm = asmPrd.zjdm = asmPrd.number;
                }
            }
            if (varMgr.GetVariable("名称") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("名称", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.name = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("设计") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("设计", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.bzr = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("设计日期") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("设计日期", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.bzsj = tmpVar.ToString();
                }
                if (asmPrd.bzsj.IndexOf(" ") >= 0)
                {
                    asmPrd.bzsj = asmPrd.bzsj.Substring(0, asmPrd.bzsj.IndexOf(" "));
                }
            }
            if (varMgr.GetVariable("批准") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("批准", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.pzr = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("批准日期") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("批准日期", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.pzsj = tmpVar.ToString();
                }
                if (asmPrd.pzsj.IndexOf(" ") >= 0)
                {
                    asmPrd.pzsj = asmPrd.pzsj.Substring(0, asmPrd.pzsj.IndexOf(" "));
                }
            }
            if (varMgr.GetVariable("阶段标记") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("阶段标记", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.jdbj = tmpVar.ToString();
                }
            }

            if (varMgr.GetVariable("设备型号") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("设备型号", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.sbxh = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("Project Name") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("Project Name", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.projName = tmpVar.ToString();
                }
            }
            return(asmPrd);
        }
コード例 #6
0
ファイル: SwEpdm.cs プロジェクト: GitHubVents/AirVentsCad_old
        public static void GetIdPdm(string path, out string fileName, out int fileIdPdm, out int currentVerison, out List <string> configs, bool getFileCopy)
        {
            fileName       = null;
            fileIdPdm      = 0;
            currentVerison = 0;
            configs        = new List <string>();
            try
            {
                IEdmFolder5 oFolder;
                var         tries = 1;
m1:
                Thread.Sleep(500);
                path = new FileInfo(path).FullName;

                var edmFile5 = edmVault5.GetFileFromPath(path, out oFolder);

                if (oFolder == null)
                {
                    tries++;
                    if (tries > 10)
                    {
                        return;
                    }
                    goto m1;
                }

                if (getFileCopy)
                {
                    try
                    {
                        edmFile5.GetFileCopy(0, 0, oFolder.ID, (int)EdmGetFlag.EdmGet_RefsVerLatest);
                    }
                    catch (Exception exception)
                    {
                        Логгер.Ошибка($"Message - {exception.Message}\nPath - {path}\nStackTrace - {exception.StackTrace}", null, "GetIdPdm", "SwEpdm");
                        //MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
                    }
                }

                fileName       = edmFile5.Name;
                fileIdPdm      = edmFile5.ID;
                currentVerison = edmFile5.CurrentVersion;
                EdmStrLst5 list = edmFile5.GetConfigurations();

                IEdmPos5 pos = default(IEdmPos5);
                pos = list.GetHeadPosition();
                string cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = list.GetNext(pos);
                    if (cfgName == "@")
                    {
                        continue;
                    }
                    configs.Add(cfgName);
                }
            }
            catch (Exception exception)
            {
                Логгер.Ошибка($"Message - {exception.Message}\nPath - {path}\nStackTrace - {exception.StackTrace}", null, "GetIdPdm", "SwEpdm");
                //MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
            }
        }