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); }
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; }