Ejemplo n.º 1
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);
        }
        static bool ExistLastDxf(int idPdm, int currentVersion, string configuration, out Exception exc)
        {
            exc = null;
            bool exist;

            try
            {
                exist = Dxf.ExistDxf(idPdm, currentVersion, configuration, out exc);
            }
            catch (Exception)
            {
                exist = false;
            }
            return(exist);
        }
Ejemplo n.º 3
0
 private void ConvertToDxf(SldWorks swApp, Files.Info item, ModelDoc2 swModel, ref Exception exOut, object[] confArray, bool IsBendsFixed)
 {
     if (!item.ExistDXF)
     {
         // Проходимся по всем конфигурациям для Fix, DXF
         foreach (var confName in confArray)
         {
             // Проверка на Dxf
             if (!item.ExistDXF)
             {
                 Exception exc;
                 if (!Dxf.ExistDxf(item.IdPDM, item.CurrentVersion, confName.ToString(), out exc))                                                       // using export part data
                 {
                     swModel.ShowConfiguration2(confName.ToString());
                     if (!IsBendsFixed)
                     {
                         var list = new List <Bends.SolidWorksFixPattern.PartBendInfo>();
                         Bends.Fix(swApp, out list, false);                                                                                              // using export part data
                     }
                     var listDxf = new List <Dxf.DxfFile>();
                     if (Dxf.Save(swApp, out exOut, item.IdPDM, item.CurrentVersion, out listDxf, false, false, confName.ToString()))                    // using export part data
                     {
                         if (exOut != null)
                         {
                             Logger.Add(exOut.Message + "; " + exOut.StackTrace);
                         }
                         var exOutList = new List <Dxf.ResultList>();
                         Dxf.AddToSql(listDxf, true, out exOutList);
                         if (exOutList != null)
                         {
                             foreach (var itemEx in exOutList)
                             {
                                 Logger.Add($"DXF AddToSql err: {itemEx.dxfFile} Exception {itemEx.exc}");
                             }
                         }
                     }
                 }
             }
         }
     }
 }
        } = @"\\srvkb\SolidWorks Admin\DXF\";                                                  // @"C:\DXF\";

        void ExportToDxf()
        {
            if (IsBusy)
            {
                return;
            }
            try
            {
                Busy = $"Выгрузка разверток для {CurrentModel}";

                FolderToSaveDxf = CurrentModel.ToLower().EndsWith("dprt") ? "детали" :
                                  CurrentModel.ToLower().Replace(".sldasm", "");
                var pathToSave = Path.Combine(ParentFolderToSaveDxf, FolderToSaveDxf);
                Directory.CreateDirectory(pathToSave.ToUpper());

                var listToExportLocal = new List <PartsListXml2>();
                var files             = "";

                foreach (var item in ListToRun.Where(x => x.Dxf))
                {
                    try
                    {
                        Exception exc;
                        string    matId;
                        double?   thikness;
                        var       blob = Database.DatabaseFileRead(item.IdPmd, item.CurrentVersion, item.Конфигурация, out matId, out thikness, out exc);
                        if (exc != null)
                        {
                            MessageBox.Show(exc.StackTrace);
                        }
                        if (blob != null)
                        {
                            Dxf.SaveByteToFile(blob, Path.Combine(pathToSave, item.НаименованиеБезРасширения.ToUpper().Replace("ВНС-", "")
                                                                  + "-" + item.Конфигурация + (string.IsNullOrEmpty(matId) ? "" : "-" + matId)
                                                                  + ((thikness == null || thikness == 0) ? "" : "-" + string.Format("{0:0.0}", thikness)).Replace(",", ".") + ".dxf"));
                        }
                        else
                        {
                            files = files + "\n" + item.Наименование + " idPdm - " + item.IdPmd + " Ver - " + item.CurrentVersion + " Conf - " + item.Конфигурация;
                            listToExportLocal.Add(item);
                        }
                    }
                    catch (Exception)
                    {
                        listToExportLocal.Add(item);
                    }
                }

                listToExportLocal.AddRange(ListToRun.Where(x => !x.Dxf).ToList());

                GetFiles(listToExportLocal, out _pdmFilesAfterGet);

                var exeptions = new List <string>();

                foreach (var part in listToExportLocal)
                {
                    Exception             exception;
                    List <Dxf.ResultList> resultList;
                    List <Dxf.DxfFile>    dxfFiles;

                    Dxf.Save(Path.GetFullPath(part.Путь), pathToSave, OnlyInAsmConfigs ? part.Конфигурация : null, out exception, part.IdPmd, part.CurrentVersion, out dxfFiles, true, true, IncludeNonSheetParts);
                    if (exception != null)
                    {
                        try
                        {
                            MessageBox.Show(exception.Message + "\n" + exception.StackTrace, "Exception");
                        }
                        catch (Exception) { }
                    }
                    try
                    {
                        Dxf.AddToSql(dxfFiles, false, out resultList);
                        foreach (var item in resultList)
                        {
                            if (item != null)
                            {
                                exeptions.Add($"{item.dxfFile.IdPdm}");
                            }
                        }
                    }
                    catch (Exception)
                    {
                    }
                }

                if (exeptions?.Count > 0)
                {
                    using (var sw = new StreamWriter(pathToSave + "\\Exceptions for " + FolderToSaveDxf.ToUpper() + ".txt"))
                    {
                        foreach (var item in exeptions)
                        {
                            sw.WriteLine(item + ",");
                        }
                    }
                }

                foreach (var process in Process.GetProcessesByName("SLDWORKS"))
                {
                    process.Kill();
                }
            }
            catch (Exception)
            {
                //MessageBox.Show(exception.StackTrace);
            }

            MessageBox.Show($"Выгрузка разверток {Path.GetFileNameWithoutExtension(ПутьКСборке)} завершена");
            Busy = null;
        }