void SwPartParamsChangeWithNewName(string partName, string newName, string[,] newParams, bool newFuncOfAdding) { try { Логгер.Информация($"Начало изменения детали {partName}", newName, null, "SwPartParamsChangeWithNewName"); var swDoc = _swApp.OpenDoc6(partName + ".SLDPRT", (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0); var modName = swDoc.GetPathName(); for (var i = 0; i < newParams.Length / 2; i++) { try { var myDimension = ((Dimension)(swDoc.Parameter(newParams[i, 0] + "@" + partName + ".SLDPRT"))); var param = Convert.ToDouble(newParams[i, 1]); var swParametr = param; myDimension.SystemValue = swParametr / 1000; swDoc.EditRebuild3(); } catch (Exception e) { Логгер.Ошибка(string.Format("Во время изменения детали {4} произошла ошибка при изменении параметров {0}={1}. {2} {3}", newParams[i, 0], newParams[i, 1], e.TargetSite, e.Message, Path.GetFileNameWithoutExtension(modName)), newName, null, "SwPartParamsChangeWithNewName"); } } if (newName == "") { return; } swDoc.EditRebuild3(); swDoc.ForceRebuild3(false); if (!newFuncOfAdding) { NewComponents.Add(new VaultSystem.VentsCadFile { LocalPartFileInfo = new FileInfo(newName + ".SLDPRT").FullName }); } if (newFuncOfAdding) { NewComponents.Add(new VaultSystem.VentsCadFile { LocalPartFileInfo = new FileInfo(newName + ".SLDPRT").FullName, PartIdSql = Convert.ToInt32(newName.Substring(newName.LastIndexOf('-') + 1)) }); } swDoc.SaveAs2(newName + ".SLDPRT", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true); _swApp.CloseDoc(newName + ".SLDPRT"); Логгер.Информация($"Деталь {partName} изменена и сохранена по пути {new FileInfo(newName).FullName}", null, newName, "SwPartParamsChangeWithNewName"); } catch (Exception e) { MessageBox.Show(e.ToString()); } }
internal static void DelEquations(int index, IModelDoc2 swModel) { try { Логгер.Информация($"Удаление уравнения #{index} в модели {swModel.GetPathName()}", null, "", "DelEquations"); var myEqu = swModel.GetEquationMgr(); myEqu.Delete(index); swModel.EditRebuild3(); } catch (Exception e) { Логгер.Ошибка($"Удаление уравнения #{index} в модели {swModel.GetPathName()}. {e.Message}", null, e.StackTrace, "DelEquations"); } }
internal static void GetLastVersionAsmPdm(string path, string vaultName) { try { Логгер.Информация($"Получение последней версии по пути {path}\nБаза - {vaultName}", null, "", "GetLastVersionPdm"); VaultSystem.GetLastVersionOfFile(path); } catch (Exception e) { MessageBox.Show(e.Message + "\n" + e.StackTrace); Логгер.Ошибка($"Во время получения последней версии по пути {path} возникла ошибка!\nБаза - {vaultName}. {e.Message}", e.StackTrace, null, "GetLastVersionPdm"); } }
static void PartInfoToXml(string filePath) { try { if (filePath == "") { return; } var extension = Path.GetExtension(filePath); if (extension == null) { return; } if (extension.ToLower() != ".sldprt") { return; } var @class = new MakeDxfExportPartDataClass { PdmBaseName = VaultName }; bool isErrors; string newEdrwFileName; @class.CreateFlattPatternUpdateCutlistAndEdrawing(filePath, out newEdrwFileName, out isErrors, false, false, true, true); if (!isErrors) { Логгер.Информация("Закончена обработка детали " + Path.GetFileName(filePath), null, "", "PartInfoToXml"); } else { List <VaultSystem.VentsCadFile> list; VaultSystem.CheckInOutPdmNew(new List <VaultSystem.VentsCadFile> { new VaultSystem.VentsCadFile { LocalPartFileInfo = newEdrwFileName } }, true, // VaultName, out list); Логгер.Информация("Закончена обработка детали " + Path.GetFileName(filePath) + " с ошибками", null, "", "PartInfoToXml"); } } catch (Exception e) { Логгер.Ошибка("Ошибка:" + e.Message, e.StackTrace, "SwEpdm", "AddToPdmByPath"); } }
public string Panels50(string[] typeOfPanel, string width, string height, string[] materialP1, string[] materialP2, string[] покрытие, bool onlyPath) { if (!ConvertToInt(new[] { width, height })) { return(""); } //Логгер.Отладка("Начало построения 50-й панели. ", "", "Panels50BuildStr", "Panels50BuildStr"); string modelPanelsPath; string modelName; string nameAsm; var modelType = $"50-{materialP1[3]}{(materialP1[3] == "AZ" ? "" : materialP1[1])}-{materialP2[3]}{(materialP2[3] == "AZ" ? "" : materialP2[1])}-MW"; switch (typeOfPanel[1]) { case "Панель несъемная глухая": modelPanelsPath = Panel50Folder; nameAsm = "02-01"; modelName = "02-01"; DestinationFolder = Panels0201; break; case "Панель съемная с ручками": modelPanelsPath = Panel50Folder; nameAsm = "02-01"; modelName = "02-04"; DestinationFolder = Panels0204; break; case "Панель теплообменника": modelPanelsPath = Panel50Folder; nameAsm = "02-01"; modelName = "02-05"; DestinationFolder = Panels0205; break; case "Панель двойная несъемная": modelPanelsPath = DublePanel50Folder; nameAsm = "02-104-50"; modelName = "02-01"; DestinationFolder = Panels0201; break; case "Панель двойная съемная": modelPanelsPath = DublePanel50Folder; nameAsm = "02-104-50"; modelName = "02-01"; DestinationFolder = Panels0201; break; default: modelPanelsPath = Panel50Folder; nameAsm = "02-01"; modelName = "02-01"; break; } #region Обозначения и Хранилище #region before //var newPanel50Name = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", // modelName + "-" + width + "-" + height + "-50", // string.IsNullOrEmpty(materialP1) ? "" : "-" + materialP1, // //string.IsNullOrEmpty(покрытие[0]) ? "" : "-" + покрытие[0], // //string.IsNullOrEmpty(покрытие[1]) ? "" : "-" + покрытие[1], // //string.IsNullOrEmpty(покрытие[2]) ? "" : "-" + покрытие[2], // string.IsNullOrEmpty(materialP2) ? "" : "-" + materialP2, // //string.IsNullOrEmpty(покрытие[3]) ? "" : "-" + покрытие[3], // //string.IsNullOrEmpty(покрытие[4]) ? "" : "-" + покрытие[4], // //string.IsNullOrEmpty(покрытие[5]) ? "" : "-" + покрытие[5], // "-MW"); #endregion #region Без покрытия //if (покрытие[0] == "Без покрытия") //{ // покрытие[1] = "0"; // покрытие[2] = "0"; //} //if (покрытие[3] == "Без покрытия") //{ // покрытие[4] = "0"; // покрытие[5] = "0"; //} //var partIds = new List<int>(); //var панельВнешняя = // new PanelsVault // { // PanelTypeName = typeOfPanel[1], // ElementType = 1, // Width = Convert.ToInt32(width), // Height = Convert.ToInt32(height), // PartThick = 50, // PartMat = Convert.ToInt32(materialP1[0]), // PartMatThick = Convert.ToDouble(materialP1[1].Replace('.', ',')), // Ral = покрытие[0], // CoatingType = покрытие[1], // CoatingClass = Convert.ToInt32(покрытие[2]), // Mirror = false, // Reinforcing = false // }; //var id = панельВнешняя.AirVents_AddPartOfPanel(); //partIds.Add(id); //панельВнешняя.NewName = "02-" + typeOfPanel[0] + "-1-" + id; //var панельВнутренняя = // new AddingPanel // { // PanelTypeName = typeOfPanel[1], // ElementType = 2, // Width = Convert.ToInt32(width), // Height = Convert.ToInt32(height), // PartThick = 50, // PartMat = Convert.ToInt32(materialP2[0]), // PartMatThick = Convert.ToDouble(materialP2[1].Replace('.', ',')), // Ral = покрытие[3], // CoatingType = покрытие[4], // CoatingClass = Convert.ToInt32(покрытие[5]), // Reinforcing = false // }; //id = панельВнутренняя.AddPart(); //partIds.Add(id); //панельВнутренняя.NewName = "02-" + typeOfPanel[0] + "-2-" + id; //var теплоизоляция = // new AddingPanel // { // PanelTypeName = typeOfPanel[1], // ElementType = 3, // Width = Convert.ToInt32(width), // Height = Convert.ToInt32(height), // PartThick = 50, // PartMat = 4900, // Reinforcing = false, // PartMatThick = 1, // Ral = "Без покрытия", // CoatingType = "0", // CoatingClass = Convert.ToInt32("0") // }; //id = теплоизоляция.AddPart(); //partIds.Add(id); //теплоизоляция.NewName = "02-" + id; //var уплотнитель = // new AddingPanel // { // PanelTypeName = typeOfPanel[1], // ElementType = 4, // Width = Convert.ToInt32(width), // Height = Convert.ToInt32(height), // PartThick = 50, // PartMat = 14800, // Reinforcing = false, // PartMatThick = 1, // Ral = "Без покрытия", // CoatingType = "0", // CoatingClass = Convert.ToInt32("0") // }; //id = уплотнитель.AddPart(); //partIds.Add(id); //уплотнитель.NewName = "02-" + id; //var деталь103 = // new AddingPanel // { // PanelTypeName = typeOfPanel[1], // ElementType = 103, // Width = Convert.ToInt32(width), // Height = Convert.ToInt32(height), // PartThick = 50, // PartMat = 14800, // Reinforcing = false, // PartMatThick = 1, // Ral = "Без покрытия", // CoatingType = "0", // CoatingClass = Convert.ToInt32("0") // }; //id = деталь103.AddPart(); //partIds.Add(id); //деталь103.NewName = "02-" + id; //#region ////MessageBox.Show( //// String.Format("{0}\n{1}\n{2}\n{3}\n{4}\n", //// панельВнешняя.NewName, //// панельВнутренняя.NewName, //// теплоизоляция.NewName, //// уплотнитель.NewName, //// деталь103.NewName)); return ""; //#endregion //var sqlBaseData = new SqlBaseData(); //var newId = sqlBaseData.PanelNumber() + 1; //var idAsm = 0; //foreach (var сборка in partIds.Select(partId => new AddingPanel //{ // PartId = partId, // PanelTypeName = typeOfPanel[1], // Width = Convert.ToInt32(width), // Height = Convert.ToInt32(height), // PanelMatOut = Convert.ToInt32(materialP1[0]), // PanelMatIn = Convert.ToInt32(materialP2[0]), // PanelThick = 50, // PanelMatThickOut = Convert.ToDouble(materialP1[1].Replace('.', ',')), // PanelMatThickIn = Convert.ToDouble(materialP2[1].Replace('.', ',')), // RalOut = покрытие[0], // RalIn = покрытие[3], // CoatingTypeOut = покрытие[1], // CoatingTypeIn = покрытие[4], // CoatingClassOut = Convert.ToInt32(покрытие[2]), // CoatingClassIn = Convert.ToInt32(покрытие[5]), // Reinforcing = false, // PanelNumber = newId //})) //{ // idAsm = сборка.Add(); //} #endregion //var newPanel50Name = "02-" + typeOfPanel[0] + "-" + idAsm; #endregion var newDestPath = !typeOfPanel[1].Contains("Панель двойная съемная") ? DestinationFolder : Panels0204; var newModNumber = !typeOfPanel[1].Contains("Панель двойная съемная") ? modelName : "02-04"; var newPanel50Name = newModNumber + "-" + width + "-" + height + "-" + modelType; Логгер.Информация("Построение панели - " + newPanel50Name, null, "", "Panels50BuildStr"); var sourceFolder = LocalPath(VaultName); var destinationFolder = LocalPath(DestVaultName); var newPanel50Path = $@"{destinationFolder}{newDestPath}\{newPanel50Name}.SLDASM"; if (File.Exists(new FileInfo(newPanel50Path).FullName)) { if (onlyPath) { return(newPanel50Path); } MessageBox.Show(newPanel50Path, "Данная модель уже находится в базе"); return(""); } #region modelPanelAsmbly var modelPanelAsmbly = $@"{sourceFolder}{modelPanelsPath}\{nameAsm}.SLDASM"; GetLastVersionAsmPdm(modelPanelAsmbly, VaultName); if (!InitializeSw(true)) { return(""); } var swDoc = _swApp.OpenDoc6(modelPanelAsmbly, (int)swDocumentTypes_e.swDocASSEMBLY, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0); _swApp.Visible = true; var swAsm = (AssemblyDoc)swDoc; swAsm.ResolveAllLightWeightComponents(false); // Габариты var widthD = Convert.ToDouble(width); var heightD = Convert.ToDouble(height); var halfWidthD = Convert.ToDouble(widthD / 2); // Шаг заклепок const double step = 80; var rivetW = (Math.Truncate(widthD / step) + 1) * 1000; var rivetWd = (Math.Truncate(halfWidthD / step) + 1) * 1000; var rivetH = (Math.Truncate(heightD / step) + 1) * 1000; if (Math.Abs(rivetW - 1000) < 1) { rivetW = 2000; } // Коэффициенты и радиусы гибов const string thiknessStr = "0,8"; var bendParams = BendTable(thiknessStr); var bendRadius = Convert.ToDouble(bendParams[0]); var kFactor = Convert.ToDouble(bendParams[1]); #endregion // Переменные панели с ручками var wR = widthD / 2; // Расстояние межу ручками if (widthD < 1000) { wR = widthD * 0.5; } if (widthD >= 1000) { wR = widthD * 0.45; } if (widthD >= 1300) { wR = widthD * 0.4; } if (widthD >= 1700) { wR = widthD * 0.35; } #region typeOfPanel != "Панель двойная" // Тип панели if (modelName == "02-01" & !typeOfPanel[1].Contains("Панель двойная")) { swDoc.Extension.SelectByID2("Ручка MLA 120-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-2@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-5@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-6@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); // Удаление ненужных элементов панели const int deleteOption = (int)swDeleteSelectionOptions_e.swDelete_Absorbed + (int)swDeleteSelectionOptions_e.swDelete_Children; swDoc.Extension.SelectByID2("Вырез-Вытянуть7@02-01-001-1@02-01", "BODYFEATURE", 0, 0, 0, false, 0, null, 0); swDoc.Extension.DeleteSelection2(deleteOption); swDoc.Extension.SelectByID2("Ручка MLA 120-5@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-9@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-10@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-13@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-14@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); // Удаление ненужных элементов панели swDoc.Extension.SelectByID2("Вырез-Вытянуть8@02-01-001-1@02-01", "BODYFEATURE", 0, 0, 0, false, 0, null, 0); swDoc.Extension.DeleteSelection2(deleteOption); } if (modelName == "02-04" || modelName == "02-05") { if (Convert.ToInt32(width) > 750) { swDoc.Extension.SelectByID2("Ручка MLA 120-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-2@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-5@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-6@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); // Удаление ненужных элементов панели const int deleteOption = (int)swDeleteSelectionOptions_e.swDelete_Absorbed + (int)swDeleteSelectionOptions_e.swDelete_Children; swDoc.Extension.SelectByID2("Вырез-Вытянуть7@02-01-001-1@02-01", "BODYFEATURE", 0, 0, 0, false, 0, null, 0); swDoc.Extension.DeleteSelection2(deleteOption); } else { swDoc.Extension.SelectByID2("Ручка MLA 120-5@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-9@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-10@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-13@02-01", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-14@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); // Удаление ненужных элементов панели const int deleteOption = (int)swDeleteSelectionOptions_e.swDelete_Absorbed + (int)swDeleteSelectionOptions_e.swDelete_Children; swDoc.Extension.SelectByID2("Вырез-Вытянуть8@02-01-001-1@02-01", "BODYFEATURE", 0, 0, 0, false, 0, null, 0); swDoc.Extension.DeleteSelection2(deleteOption); } } if (!typeOfPanel[1].Contains("Панель двойная")) { var newName = $"{modelName}-01-{width}-{height}-50-{materialP1[3]}{(materialP1[3] == "AZ" ? "" : materialP1[1])}"; var newPartPath = $@"{destinationFolder}{DestinationFolder}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) //ExistFileInPdmBase(newName + ".SLDPRT") { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-01.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-001-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-001.SLDPRT"); } else if (!File.Exists(newPartPath)) { SwPartParamsChangeWithNewName("02-01-001", $@"{destinationFolder}{DestinationFolder}\{newName}", new[, ] { { "D1@Эскиз1", (heightD).ToString() }, { "D2@Эскиз1", (widthD).ToString() }, { "D1@Кривая2", (rivetH).ToString() }, { "D1@Кривая1", (rivetW).ToString() }, { "D4@Эскиз30", (wR).ToString() }, { "Толщина@Листовой металл", materialP1[1].Replace('.', ',') } }, false); try { VentsMatdll(materialP1, new[] { покрытие[6], покрытие[1], покрытие[2] }, newName); } catch (Exception e) { MessageBox.Show(e.ToString()); } _swApp.CloseDoc(newName); } //Панель внутреняя var modelnewname = modelName; var modelPath = DestinationFolder; if (modelName == "02-04") { modelnewname = "02-01"; modelPath = Panels0201; } #region //newName = String.Format("{0}{1}{2}{3}", //modelnewname + "-02-" + width + "-" + height + "-" + "50-" + materialP2[0]; // //string.IsNullOrEmpty(покрытие[6]) ? "" : "-" + покрытие[6], // //string.IsNullOrEmpty(покрытие[1]) ? "" : "-" + покрытие[1], // //string.IsNullOrEmpty(покрытие[2]) ? "" : "-" + покрытие[2] // ); //newName = панельВнутренняя.NewName; //newName = modelnewname + "-02-" + width + "-" + height + "-" + "50-" + materialP2[3] + materialP2[3] == "AZ" ? "" : materialP2[1]; #endregion newName = $"{modelnewname}-02-{width}-{height}-50-{materialP2[3]}{(materialP2[3] == "AZ" ? "" : materialP2[1])}"; newPartPath = $@"{destinationFolder}{modelPath}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-01.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-002-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-002.SLDPRT"); } else if (!File.Exists(newPartPath)) { #region before //SetMeterial(materialP2[0], _swApp.ActivateDoc2("02-01-002.SLDPRT", true, 0), ""); //try //{ // var setMaterials = new SetMaterials(); // _swApp.ActivateDoc2("02-11-01-40-.SLDPRT", true, 0); // setMaterials.SetColor("00", покрытие[7], покрытие[4], покрытие[5], _swApp);// setMaterials.SetColor("00", "F6F6F6", "Шаргень", "2", _swApp); //} //catch (Exception e) //{ // MessageBox.Show(e.StackTrace); //} #endregion SwPartParamsChangeWithNewName("02-01-002", $@"{destinationFolder}{modelPath}\{newName}", new[, ] { { "D1@Эскиз1", (heightD - 10).ToString() }, { "D2@Эскиз1", (widthD - 10).ToString() }, { "D1@Кривая2", (rivetH).ToString() }, { "D1@Кривая1", (rivetW).ToString() }, { "Толщина@Листовой металл", materialP2[1].Replace('.', ',') }, { "D1@Листовой металл", (bendRadius).ToString() }, { "D2@Листовой металл", (kFactor * 1000).ToString() } }, false); try { VentsMatdll(materialP2, new[] { покрытие[7], покрытие[4], покрытие[5] }, newName); } catch (Exception e) { MessageBox.Show(e.ToString()); } _swApp.CloseDoc(newName); } //Панель теплошумоизоляции if (modelName == "02-05") { modelPath = Panels0201; } newName = "02-03-" + width + "-" + height; //newName = теплоизоляция.NewName; newPartPath = $@"{destinationFolder}{modelPath}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-01.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-003-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-003.SLDPRT"); } else if (File.Exists(newPartPath) != true) { SwPartParamsChangeWithNewName("02-01-003", $@"{destinationFolder}{DestinationFolder}\{newName}", new[, ] { { "D1@Эскиз1", (heightD - 10).ToString() }, { "D2@Эскиз1", (widthD - 10).ToString() } }, false); _swApp.CloseDoc(newName); } //Уплотнитель newName = "02-04-" + width + "-" + height; //newName = уплотнитель.NewName; newPartPath = $@"{destinationFolder}{modelPath}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-01.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-004-1@02-01", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-004.SLDPRT"); } else if (File.Exists(newPartPath) != true) { SwPartParamsChangeWithNewName("02-01-004", $@"{destinationFolder}{DestinationFolder}\{newName}", new[, ] { { "D6@Эскиз1", (heightD - 10).ToString() }, { "D3@Эскиз1", (widthD - 10).ToString() } }, false); _swApp.CloseDoc(newName); } } #endregion #region typeOfPanel == "Панель двойная несъемная" if (typeOfPanel[1].Contains("Панель двойная")) { #region before // Панель внешняя //var newName = String.Format("{0}{1}{2}{3}", // modelName + "-01-" + width + "-" + height + "-" + "50-" + materialP1 // //string.IsNullOrEmpty(покрытие[6]) ? "" : "-" + покрытие[6], // //string.IsNullOrEmpty(покрытие[1]) ? "" : "-" + покрытие[1], // //string.IsNullOrEmpty(покрытие[2]) ? "" : "-" + покрытие[2] // ); //var newName = панельВнешняя.NewName; //var newName = modelName + "-01-" + width + "-" + height + "-" + "50-" + materialP1[3] + materialP1[3] == "AZ" ? "" : materialP1[1]; #endregion var currDestPath = typeOfPanel[1].Contains("несъемная") ? DestinationFolder : Panels0204; var curNumber = typeOfPanel[1].Contains("несъемная") ? "01" : "04"; //MessageBox.Show("currDestPath - " + currDestPath + " curNumber -" + curNumber + " -- " + typeOfPanel[1].Contains("несъемная")); if (typeOfPanel[1].Contains("несъемная")) { //MessageBox.Show("Не съемная - " + typeOfPanel[1]); swDoc.Extension.SelectByID2("Ручка MLA 120-1@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-1@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("SC GOST 17475_gost-2@02-104-50", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-1@02-104-50", "COMPONENT", 0, 0, 0, true, 0, null, 0); swDoc.EditDelete(); swDoc.Extension.SelectByID2("Threaded Rivets-2@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swDoc.EditDelete(); // Удаление ненужных элементов панели const int deleteOption = (int)swDeleteSelectionOptions_e.swDelete_Absorbed + (int)swDeleteSelectionOptions_e.swDelete_Children; swDoc.Extension.SelectByID2("Вырез-Вытянуть11@02-01-101-50-1@02-104-50", "BODYFEATURE", 0, 0, 0, false, 0, null, 0); swDoc.Extension.DeleteSelection2(deleteOption); //MessageBox.Show("Удалилось"); } var newName = $"{modelName}-{curNumber}-{width}-{height}-50-{materialP1[3]}{(materialP1[3] == "AZ" ? "" : materialP1[1])}"; var newPartPath = $@"{destinationFolder}{currDestPath}\{newName}.SLDPRT"; MessageBox.Show("newPartPath -" + newPartPath); if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-104-50.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-101-50-1@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-101-50.SLDPRT"); } else if (File.Exists(newPartPath) != true) { SwPartParamsChangeWithNewName("02-01-101-50", $@"{destinationFolder}{currDestPath}\{newName}", new[, ] { { "D1@Эскиз1", (heightD).ToString() }, { "D2@Эскиз1", (widthD / 2).ToString() }, { "D1@Кривая4", (rivetH).ToString() }, { "D1@Кривая3", (rivetWd).ToString() }, { "D1@Кривая5", (rivetH).ToString() }, { "D2@Эскиз47", (wR / 2).ToString() }, { "Толщина@Листовой металл", materialP1[1].Replace('.', ',') }, { "D1@Листовой металл", (bendRadius).ToString() }, { "D2@Листовой металл", (kFactor * 1000).ToString() } }, false); try { VentsMatdll(materialP1, new[] { покрытие[6], покрытие[1], покрытие[2] }, newName); } catch (Exception e) { MessageBox.Show(e.ToString()); } _swApp.CloseDoc(newName); } #region Name before //Панель внутреняя //newName = String.Format("{0}{1}{2}{3}", // modelName + "-02-" + width + "-" + height + "-" + "50-" + materialP1 // //string.IsNullOrEmpty(покрытие[7]) ? "" : "-" + покрытие[7], // //string.IsNullOrEmpty(покрытие[3]) ? "" : "-" + покрытие[3], // //string.IsNullOrEmpty(покрытие[4]) ? "" : "-" + покрытие[4] // ); //newName = панельВнутренняя.NewName; //newName = modelName + "-02-" + width + "-" + height + "-" + "50-" + materialP2[3] + materialP2[3] == "AZ" ? "" : materialP2[1]; #endregion newName = $"{modelName}-02-{width}-{height}-50-{materialP2[3]}{(materialP2[3] == "AZ" ? "" : materialP2[1])}"; newPartPath = $@"{destinationFolder}{DestinationFolder}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-104-50.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-102-50-1@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-102-50.SLDPRT"); } else if (File.Exists(newPartPath) != true) { SwPartParamsChangeWithNewName("02-01-102-50", $@"{destinationFolder}{DestinationFolder}\{newName}", new[, ] { { "D1@Эскиз1", (heightD - 10).ToString() }, { "D2@Эскиз1", ((widthD - 10) / 2).ToString() }, { "D1@Кривая3", (rivetH).ToString() }, { "D1@Кривая2", (rivetH).ToString() }, { "D1@Кривая1", (rivetWd).ToString() }, { "Толщина@Листовой металл", materialP2[1].Replace('.', ',') }, { "D1@Листовой металл", (bendRadius).ToString() }, { "D2@Листовой металл", (kFactor * 1000).ToString() } }, false); try { VentsMatdll(materialP1, new[] { покрытие[7], покрытие[4], покрытие[5] }, newName); } catch (Exception e) { MessageBox.Show(e.ToString()); } _swApp.CloseDoc(newName); } #region // Профиль 02-01-103-50 //newName = деталь103.NewName; // modelName + "-03-" + width + "-" + height + "-" + "50-" + materialP2[3] + materialP2[3] == "AZ" ? "" : materialP2[1]; #endregion newName = $"{modelName}-03-{width}-{height}-50-{materialP2[3]}{(materialP2[3] == "AZ" ? "" : materialP2[1])}"; newPartPath = $@"{destinationFolder}{DestinationFolder}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-104-50.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-103-50-1@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-103-50.SLDPRT"); } else if (File.Exists(newPartPath) != true) { SwPartParamsChangeWithNewName("02-01-103-50", $@"{destinationFolder}{DestinationFolder}\{newName}", newParams: new[, ] { { "D1@Эскиз1", (heightD - 15).ToString() }, { "D1@Кривая1", (rivetH).ToString() }, { "Толщина@Листовой металл", thiknessStr }, { "D1@Листовой металл", (bendRadius).ToString() }, { "D2@Листовой металл", (kFactor * 1000).ToString() } }, newFuncOfAdding: false); _swApp.CloseDoc(newName); } //Панель теплошумоизоляции //newName = теплоизоляция.NewName; newName = "02-03-" + width + "-" + height; newPartPath = $@"{destinationFolder}{DestinationFolder}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-104-50.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-003-1@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-003.SLDPRT"); } else if (File.Exists(newPartPath) != true) { SwPartParamsChangeWithNewName("02-01-003", $@"{destinationFolder}{DestinationFolder}\{newName}", new[, ] { { "D1@Эскиз1", Convert.ToString(heightD - 10) }, { "D2@Эскиз1", Convert.ToString(widthD - 10) } }, false); _swApp.CloseDoc(newName); } //Уплотнитель //newName = уплотнитель.NewName; newName = "02-04-" + width + "-" + height; newPartPath = $@"{destinationFolder}{DestinationFolder}\{newName}.SLDPRT"; if (File.Exists(newPartPath)) { swDoc = ((ModelDoc2)(_swApp.ActivateDoc2("02-104-50.SLDASM", true, 0))); swDoc.Extension.SelectByID2("02-01-004-1@02-104-50", "COMPONENT", 0, 0, 0, false, 0, null, 0); swAsm.ReplaceComponents(newPartPath, "", false, true); _swApp.CloseDoc("02-01-004.SLDPRT"); } else if (File.Exists(newPartPath) != true) { SwPartParamsChangeWithNewName("02-01-004", $@"{destinationFolder}{DestinationFolder}\{newName}", new[, ] { { "D6@Эскиз1", Convert.ToString(heightD - 10) }, { "D3@Эскиз1", Convert.ToString(widthD - 10) } }, false); _swApp.CloseDoc(newName); } } #endregion #region Несъемная //switch (typeOfPanel[1]) //{ // case "Несъемная": // case "Съемная": // typeOfPanel[1] = typeOfPanel[1] + " панель"; // break; // case "Панель теплообменника": // case "Панель двойная": // break; //} #endregion swDoc = ((ModelDoc2)(_swApp.ActivateDoc2(nameAsm, true, 0))); var swModelDocExt = swDoc.Extension; var swCustPropForDescription = swModelDocExt.CustomPropertyManager[""]; swCustPropForDescription.Set("Наименование", typeOfPanel[1]); swCustPropForDescription.Set("Description", typeOfPanel[1]); GabaritsForPaintingCamera(swDoc); swDoc.EditRebuild3(); swDoc.ForceRebuild3(true); swDoc.SaveAs2(new FileInfo(newPanel50Path).FullName, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true); NewComponents.Add( new VaultSystem.VentsCadFile { LocalPartFileInfo = newPanel50Path }); _swApp.CloseDoc(new FileInfo(newPanel50Path).Name); _swApp.Visible = true; List <VaultSystem.VentsCadFile> newFilesList; VaultSystem.CheckInOutPdmNew(NewComponents, true, //DestVaultName, out newFilesList); foreach (var newComponent in NewComponents) { //PartInfoToXml(newComponent.LocalPartFileInfo); } if (onlyPath) { return(newPanel50Path); } MessageBox.Show(newPanel50Path, "Модель построена"); return(newPanel50Path); }
static void AddInSqlBaseSpigot(string fileName, int?idPdm, int?typeOfSpigot, int?height, int?width) { using (var con = new SqlConnection(ConnectionToSql)) { try { con.Open(); var sqlCommand = new SqlCommand("AirVents.Spigot", con) { CommandType = CommandType.StoredProcedure }; var sqlParameter = sqlCommand.Parameters; if (fileName == null) { sqlParameter.AddWithValue("@Filename", DBNull.Value); } else { sqlParameter.AddWithValue("@Filename", fileName); } if (idPdm == null) { sqlParameter.AddWithValue("@IDPDM", DBNull.Value); } else { sqlParameter.AddWithValue("@IDPDM", idPdm); } if (typeOfSpigot == null) { sqlParameter.AddWithValue("@Type", DBNull.Value); } else { sqlParameter.AddWithValue("@Type", typeOfSpigot); } if (height == null) { sqlParameter.AddWithValue("@Hight", DBNull.Value); } else { sqlParameter.AddWithValue("@Hight", height); } if (width == null) { sqlParameter.AddWithValue("@Width", DBNull.Value); } else { sqlParameter.AddWithValue("@Width", width); } sqlCommand.ExecuteNonQuery(); } catch (Exception exception) { Логгер.Информация("Введите корректные данные! " + exception.Message + $"\nIDPDM - {idPdm} Type - {typeOfSpigot}", null, "", "AddInSqlBaseSpigot"); } finally { con.Close(); } } }