internal static string LocalPath(string vault)
 {
     try
     {
         return(VaultSystem.GetSwEpdRootFolderPath(vault));
     }
     catch (Exception e)
     {
         Логгер.Ошибка(string.Format("В базе - {1}, не удалось получить корнувую папку ({0})", e.Message, vault), e.StackTrace, "Add", "LocalPath(string Vault)");
         return(null);
     }
 }
        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");
            }
        }
        internal void GetIdPdm(string path, out string fileName, out int fileIdPdm, out int curVer, out List <string> configurations)
        {
            fileName       = null;
            fileIdPdm      = 0;
            curVer         = 0;
            configurations = null;

            try
            {
                VaultSystem.GetIdPdm(path, out fileName, out fileIdPdm, out curVer, out configurations, false, VaultName);
            }
            catch (Exception e)
            {
                Логгер.Ошибка("Ошибка: " + e.StackTrace, e.GetHashCode().ToString("X"), path, "GetIdPdm");
            }
        }
 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");
     }
 }
Пример #5
0
            public override void Build()
            {
                if (Exist)
                {
                    return;
                }

                NewComponents = null;

                MessageBox.Show(DateTime.Now.Hour.ToString());

                var modelMontageFramePath = $@"{sourceRootFolder}{TemplateFolder}\{"10-4"}.SLDASM";

                GetLastVersionAsmPdm(modelMontageFramePath, VaultName);
                GetLastVersionAsmPdm($@"{sourceRootFolder}{TemplateFolder}\10-02-01-4.SLDPRT", VaultName);

                var swDocMontageFrame = _swApp.OpenDoc6(modelMontageFramePath, (int)swDocumentTypes_e.swDocASSEMBLY,
                                                        (int)swOpenDocOptions_e.swOpenDocOptions_LoadModel, "00", 0, 0);

                _swApp.Visible = true;
                var swAsm = (AssemblyDoc)swDocMontageFrame;

                swAsm.ResolveAllLightWeightComponents(false);

                #endregion

                #region Основные размеры, величины и переменные

                // Габариты Ширина меньше ширины установки на 20мм Длина по размеру блока
                var width   = Convert.ToDouble(Width);                                                // Поперечные балки
                var lenght  = Convert.ToDouble(Lenght);                                               // Продольная балка
                var offsetI = Convert.ToDouble(Convert.ToString(Convert.ToDouble(FrameOffset) * 10)); // Смещение поперечной балки
                if (offsetI > (lenght - 125) * 10)
                {
                    offsetI = (lenght - 250) * 10;
                    MessageBox.Show("Смещение превышает допустимое значение! Программой установлено - " +
                                    (offsetI / 10));
                }

                #region  Металл и х-ки гибки

                // TODO Коэффициенты и радиусы гибов
                //var sqlBaseData = new SqlBaseData();
                //var bendParams = sqlBaseData.BendTable(Material.Thikness);
                //var bendRadius = Convert.ToDouble(bendParams[0]);
                //var kFactor = Convert.ToDouble(bendParams[1]);

                var bendRadius = Convert.ToDouble("1");
                var kFactor    = Convert.ToDouble("1");

                #endregion

                #endregion

                #region Изменение размеров элементов и компонентов сборки

                var thikness = Convert.ToDouble(Material.Thikness) / 1000;
                bendRadius = bendRadius / 1000;
                var w            = Convert.ToDouble(width) / 1000;
                var l            = Convert.ToDouble(lenght) / 1000;
                var offset       = Convert.ToDouble(offsetI) / 10000;
                var offsetMirror = Convert.ToDouble(lenght * 10 - offsetI) / 10000;

                #region 10-02-4 Зеркальная 10-01-4

                if (Type == "3")
                {
                    swDocMontageFrame.Extension.SelectByID2("10-01-01-4-1@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    swAsm = ((AssemblyDoc)(swDocMontageFrame));
                    swAsm.ReplaceComponents(sourceRootFolder + TemplateFolder + "\\10-02-01-4.SLDPRT", "", false, true);
                    swAsm.ResolveAllLightWeightComponents(false);

                    //Продольная зеркальная балка (Длина установки)
                    swDocMontageFrame.Extension.SelectByID2("D1@Эскиз1@10-02-01-4-1@10-4", "DIMENSION", 0, 0, 00, false, 0, null, 0);
                    ((Dimension)(swDocMontageFrame.Parameter("D1@Эскиз[email protected]"))).SystemValue = l;
                    //  Длина установки  0.8;

                    swDocMontageFrame.Extension.SelectByID2("D3@Эскиз25@10-02-01-4-1@10-4", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    ((Dimension)(swDocMontageFrame.Parameter("D3@Эскиз[email protected]"))).SystemValue = offsetMirror;
                    //Смещение поперечной балки от края;
                    swDocMontageFrame.EditRebuild3();
                    swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-02-01-4-1@10-4", "BODYFEATURE", 0, 0, 0,
                                                            false, 0, null, 0);
                    swDocMontageFrame.ActivateSelectedFeature();
                    swDocMontageFrame.Extension.SelectByID2("D1@Листовой металл@10-02-01-4-1@10-4", "DIMENSION", 0, 0, 0,
                                                            false, 0, null, 0);
                    ((Dimension)(swDocMontageFrame.Parameter("D1@Листовой металл@10-02-01-4.Part"))).SystemValue =
                        bendRadius; // Радиус гиба  0.005;
                    swDocMontageFrame.EditRebuild3();
                    swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-02-01-4-1@10-4", "BODYFEATURE", 0, 0, 0,
                                                            false, 0, null, 0);
                    swDocMontageFrame.ActivateSelectedFeature();
                    swDocMontageFrame.Extension.SelectByID2("D2@Листовой металл@10-02-01-4-1@10-4", "DIMENSION", 0, 0, 0,
                                                            false, 0, null, 0);
                    ((Dimension)(swDocMontageFrame.Parameter("D2@Листовой металл@10-01-01-4.Part"))).SystemValue = kFactor;
                    // K-Factor  0.55;
                    swDocMontageFrame.EditRebuild3();
                    swDocMontageFrame.Extension.SelectByID2("Толщина@Листовой металл@10-02-01-4-1@10-4", "DIMENSION", 0, 0,
                                                            0, false, 0, null, 0);
                    ((Dimension)(swDocMontageFrame.Parameter("Толщина@Листовой металл@10-02-01-4.Part"))).SystemValue =
                        thikness; // Толщина Листового металла 0.006;
                    swDocMontageFrame.EditRebuild3();
                    swDocMontageFrame.ClearSelection2(true);
                }


                #endregion

                //swApp.SendMsgToUser(string.Format("Thikness= {0}, BendRadius= {1}, Ширина= {2}, Длина= {3}, ", Thikness * 1000, BendRadius * 1000, Ширина * 1000, Длина * 1000));

                //Продольные балки (Длина установки)

                #region 10-01-4

                swDocMontageFrame.Extension.SelectByID2("D1@Эскиз1@10-01-01-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0, null,
                                                        0);
                ((Dimension)(swDocMontageFrame.Parameter("D1@Эскиз[email protected]"))).SystemValue = l;
                //  Длина установки  0.8;
                swDocMontageFrame.Extension.SelectByID2("D3@Эскиз25@10-01-01-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0, null,
                                                        0);
                ((Dimension)(swDocMontageFrame.Parameter("D3@Эскиз[email protected]"))).SystemValue = offset;
                //Смещение поперечной балки от края;
                swDocMontageFrame.EditRebuild3();
                //swApp.SendMsgToUser(Offset.ToString());
                swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-01-01-4-2@10-4", "BODYFEATURE", 0, 0, 0, false,
                                                        0, null, 0);
                swDocMontageFrame.ActivateSelectedFeature();
                swDocMontageFrame.Extension.SelectByID2("D1@Листовой металл@10-01-01-4-2@10-4", "DIMENSION", 0, 0, 0, false,
                                                        0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D1@Листовой металл@10-01-01-4.Part"))).SystemValue = bendRadius;
                // Радиус гиба  0.005;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-01-01-4-2@10-4", "BODYFEATURE", 0, 0, 0, false,
                                                        0, null, 0);
                swDocMontageFrame.ActivateSelectedFeature();
                swDocMontageFrame.Extension.SelectByID2("D2@Листовой металл@10-01-01-4-2@10-4", "DIMENSION", 0, 0, 0, false,
                                                        0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D2@Листовой металл@10-01-01-4.Part"))).SystemValue = kFactor;
                // K-Factor  0.55;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Толщина@Листовой металл@10-01-01-4-2@10-4", "DIMENSION", 0, 0, 0,
                                                        false, 0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("Толщина@Листовой металл@10-01-01-4.Part"))).SystemValue =
                    thikness; // Толщина Листового металла 0.006;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.ClearSelection2(true);

                #endregion

                #region 10-04-4-2

                swDocMontageFrame.Extension.SelectByID2("D1@Эскиз1@10-04-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D1@Эскиз[email protected]"))).SystemValue = (l - 0.14);
                // Длина установки - 140  0.66;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-04-4-2@10-4", "BODYFEATURE", 0, 0, 0, false, 0,
                                                        null, 0);
                swDocMontageFrame.ActivateSelectedFeature();
                swDocMontageFrame.Extension.SelectByID2("D1@Листовой металл@10-04-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0,
                                                        null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D1@Листовой металл@10-04-4.Part"))).SystemValue = bendRadius;
                // Радиус гиба  0.005;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-04-4-2@10-4", "BODYFEATURE", 0, 0, 0, false, 0,
                                                        null, 0);
                swDocMontageFrame.ActivateSelectedFeature();
                swDocMontageFrame.Extension.SelectByID2("D2@Листовой металл@10-04-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0,
                                                        null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D2@Листовой металл@10-04-4.Part"))).SystemValue = kFactor;
                // K-Factor  0.55;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Толщина@Листовой металл@10-04-4-2@10-4", "DIMENSION", 0, 0, 0,
                                                        false, 0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("Толщина@Листовой металл@10-04-4.Part"))).SystemValue = thikness;
                // Толщина Листового металла 0.006;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.ClearSelection2(true);

                #endregion

                //Поперечная балка (Ширина установки)

                #region 10-03-4

                swDocMontageFrame.Extension.SelectByID2("D2@Эскиз1@10-03-01-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D2@Эскиз[email protected]"))).SystemValue = (w - 0.12);
                //  Ширина установки - 20 - 100  0.88;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-03-01-4-2@10-4", "BODYFEATURE", 0, 0, 0, false, 0, null, 0);
                swDocMontageFrame.ActivateSelectedFeature();
                swDocMontageFrame.Extension.SelectByID2("D1@Листовой металл@10-03-01-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D1@Листовой металл@10-03-01-4.Part"))).SystemValue = bendRadius;
                // Радиус гиба  0.005;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Листовой металл@10-03-01-4-2@10-4", "BODYFEATURE", 0, 0, 0, false, 0, null, 0);
                swDocMontageFrame.ActivateSelectedFeature();
                swDocMontageFrame.Extension.SelectByID2("D2@Листовой металл@10-03-01-4-2@10-4", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("D2@Листовой металл@10-03-01-4.Part"))).SystemValue = kFactor;
                // K-Factor  0.55;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.Extension.SelectByID2("Толщина@Листовой металл@10-03-01-4-2@10-4", "DIMENSION", 0, 0, 0,
                                                        false, 0, null, 0);
                ((Dimension)(swDocMontageFrame.Parameter("Толщина@Листовой металл@10-03-01-4.Part"))).SystemValue =
                    thikness; // Толщина Листового металла 0.006;
                swDocMontageFrame.EditRebuild3();
                swDocMontageFrame.ClearSelection2(true);

                #endregion

                #endregion

                #region Удаление поперечной балки

                if (internalCrossbeam == false)
                {
                    swDocMontageFrame.Extension.SelectByID2("10-03-01-4-1@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-39@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-40@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 6402_gost-23@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Nut 5915_gost-19@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Bolt 7805_gost-22@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-41@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-42@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 6402_gost-24@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Nut 5915_gost-20@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Bolt 7805_gost-23@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-43@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-44@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 6402_gost-25@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Nut 5915_gost-21@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Bolt 7805_gost-24@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-45@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-46@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Washer 6402_gost-26@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Nut 5915_gost-22@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Bolt 7805_gost-25@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.Extension.SelectByID2("Hex Bolt 7805_gost-25@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    swDocMontageFrame.EditDelete();

                    // Удаление ненужных элементов продольной балки
                    const int deleteOption =
                        (int)swDeleteSelectionOptions_e.swDelete_Absorbed +
                        (int)swDeleteSelectionOptions_e.swDelete_Children;
                    swDocMontageFrame.Extension.SelectByID2("Вырез-Вытянуть8@10-01-01-4-2@10-4", "BODYFEATURE", 0, 0, 0,
                                                            false, 0, null, 0);
                    swDocMontageFrame.Extension.DeleteSelection2(deleteOption);
                }

                #endregion

                #region Удаление продольной балки

                // Погашение внутренней продольной балки
                if (internalLongitudinalBeam == false)
                {
                    foreach (var s in new[] { "5", "6", "7", "8", "13" })
                    {
                        swDocMontageFrame.Extension.SelectByID2("Hex Bolt 7805_gost-" + s + "@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                        swDocMontageFrame.EditDelete();
                    }
                    foreach (var s in new[] { "6", "7", "8", "9", "37", "38", "39", "40" })
                    {
                        swDocMontageFrame.Extension.SelectByID2("Washer 6402_gost-" + s + "@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                        swDocMontageFrame.EditDelete();
                    }
                    foreach (var s in new[] { "17", "18", "19", "20", "21", "22", "23", "24", "57", "58", "59", "60" })
                    {
                        swDocMontageFrame.Extension.SelectByID2("Washer 11371_gost-" + s + "@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                        swDocMontageFrame.EditDelete();
                    }

                    swDocMontageFrame.Extension.SelectByID2("10-04-4-2@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    swDocMontageFrame.EditDelete();


                    // Удаление ненужных элементов поперечной балки
                    swDocMontageFrame.Extension.SelectByID2("Регулируемая ножка-10@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    swDocMontageFrame.EditDelete();
                    swDocMontageFrame.Extension.SelectByID2("Регулируемая ножка-11@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    swDocMontageFrame.EditDelete();

                    foreach (var s in new[] { "10", "11", "40", "41", "42", "43" })
                    {
                        swDocMontageFrame.Extension.SelectByID2("Hex Nut 5915_gost-" + s + "@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                        swDocMontageFrame.EditDelete();
                    }

                    const int deleteOption =
                        (int)swDeleteSelectionOptions_e.swDelete_Absorbed +
                        (int)swDeleteSelectionOptions_e.swDelete_Children;
                    swDocMontageFrame.Extension.SelectByID2("Вырез-Вытянуть5@10-03-01-4-2@10-4", "BODYFEATURE", 0, 0, 0,
                                                            false, 0, null, 0);
                    swDocMontageFrame.Extension.DeleteSelection2(deleteOption);
                    swDocMontageFrame.Extension.SelectByID2("Вырез-Вытянуть4@10-03-01-4-2@10-4", "BODYFEATURE", 0, 0, 0,
                                                            false, 0, null, 0);
                    swDocMontageFrame.Extension.DeleteSelection2(deleteOption);
                }

                #endregion

                #region Сохранение элементов и сборки, а также применение материалов

                #region Детали

                //Продольные балки (Длина установки)

                #region 10-01-01-4 - Деталь

                _swApp.IActivateDoc2("10-01-01-4", false, 0);
                IModelDoc2 swPartDoc = _swApp.IActiveDoc2;
                switch (Type)
                {
                //case "2":
                case "0":
                    typeOfMfs = "";
                    break;

                case "3":
                case "2":
                case "1":
                    typeOfMfs = "-0" + Type;
                    break;
                }


                var newPartName = string.Format("10-01-01-{0}{4}-{1}{2}{3}.SLDPRT", Material.Thikness, lenght, FrameOffset,
                                                typeOfMfs, addMatName);

                var newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                if (File.Exists(newPartPath))
                {
                    swDocMontageFrame = ((ModelDoc2)(_swApp.ActivateDoc2("10-4.SLDASM", true, 0)));
                    swDocMontageFrame.Extension.SelectByID2("10-01-01-4-2@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    swAsm.ReplaceComponents(newPartPath, "", true, true);
                    _swApp.CloseDoc("10-01-01-4.SLDPRT");
                }
                else
                {
                    swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);

                    AddMaterial(Material, newPartPath);
                    ComponentToAdd(newPartPath);

                    _swApp.CloseDoc(newPartName);
                }

                #endregion

                //

                #region 10-02-01-4 - Деталь Зеркальная 10-01-01-4

                if (Type == "3")
                {
                    _swApp.IActivateDoc2("10-02-01-4", false, 0);
                    swPartDoc = _swApp.IActiveDoc2;
                    switch (Type)
                    {
                    case "2":
                    case "0":
                        typeOfMfs = "";
                        break;

                    case "3":
                    case "1":
                        typeOfMfs = "-0" + Type;
                        break;
                    }

                    newPartName = string.Format("10-02-01-{0}{4}-{1}{2}{3}.SLDPRT", Material.Thikness, lenght, FrameOffset,
                                                typeOfMfs, addMatName);

                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    if (File.Exists(newPartPath))
                    {
                        swDocMontageFrame = ((ModelDoc2)(_swApp.ActivateDoc2("10-4.SLDASM", true, 0)));
                        swDocMontageFrame.Extension.SelectByID2("10-02-01-4-1@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", false, true);
                        _swApp.CloseDoc("10-02-01-4.SLDPRT");
                    }
                    else
                    {
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        AddMaterial(Material, newPartPath);
                        _swApp.CloseDoc(newPartName);
                        ComponentToAdd(newPartName);
                    }

                    #endregion

                    #region 10-04-4 - Деталь

                    if (internalLongitudinalBeam)
                    {
                        _swApp.IActivateDoc2("10-04-4", false, 0);
                        swPartDoc = ((IModelDoc2)(_swApp.ActiveDoc));

                        newPartName = string.Format("10-04-{0}{2}-{1}.SLDPRT", Material.Thikness, (lenght - 140), addMatName);

                        newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                        if (File.Exists(newPartPath))
                        {
                            swDocMontageFrame = ((ModelDoc2)(_swApp.ActivateDoc2("10-4.SLDASM", true, 0)));
                            swDocMontageFrame.Extension.SelectByID2("10-04-4-2@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                            swAsm.ReplaceComponents(newPartPath, "", true, true);
                            _swApp.CloseDoc("10-04-4.SLDPRT");
                        }
                        else
                        {
                            swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                            AddMaterial(Material, newPartPath);
                            _swApp.CloseDoc(newPartName);
                            ComponentToAdd(newPartPath);
                        }
                    }
                    else
                    {
                        _swApp.CloseDoc("10-04-4.SLDPRT");
                    }

                    #endregion

                    //Поперечная балка (Ширина установки)

                    #region 10-03-01-4 - Деталь

                    _swApp.IActivateDoc2("10-03-01-4", false, 0);
                    swPartDoc = ((IModelDoc2)(_swApp.ActiveDoc));

                    switch (Type)
                    {
                    case "3":
                    case "2":
                        typeOfMfs = "-0" + Type;
                        break;

                    case "1":
                    case "0":
                        typeOfMfs = "";
                        break;
                    }


                    newPartName = string.Format("10-03-01-{0}{3}-{1}{2}.SLDPRT", Material.Thikness, (width - 120), typeOfMfs, addMatName);

                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    var newPrt0202 = string.Format("10-02-01-{0}{3}-{1}{2}.SLDPRT", Material.Thikness, (width - 120), typeOfMfs,
                                                   addMatName);
                    newPrt0202 = $@"{destRootFolder}\{DestinationFolder}\{newPrt0202}";

                    if (File.Exists(newPartPath))
                    {
                        swDocMontageFrame = ((ModelDoc2)(_swApp.ActivateDoc2("10-4.SLDASM", true, 0)));
                        swDocMontageFrame.Extension.SelectByID2("10-03-01-4-2@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", true, true);
                        _swApp.CloseDoc("10-03-01-4.SLDPRT");
                    }
                    else
                    {
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        AddMaterial(Material, newPartPath);
                        if (Type == "2")
                        {
                            swPartDoc.Extension.SelectByID2("D1@Эскиз28@" + Path.GetFileNameWithoutExtension(newPrt0202) + ".SLDPRT",
                                                            "DIMENSION", 0, 0, 0, false, 0, null, 0);
                            ((Dimension)(swPartDoc.Parameter("D1@Эскиз28"))).SystemValue = -0.05;

                            swPartDoc.EditRebuild3();
                            swPartDoc.SaveAs2(newPrt0202, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                            AddMaterial(Material, newPrt0202);
                            _swApp.CloseDoc(newPrt0202);
                            ComponentToAdd(newPrt0202);
                        }
                        _swApp.CloseDoc(newPartName);
                    }

                    #endregion

                    #endregion

                    _swApp.IActivateDoc2("10-4.SLDASM", false, 0);
                    swDocMontageFrame = ((ModelDoc2)(_swApp.ActiveDoc));

                    GabaritsForPaintingCamera(swDocMontageFrame);

                    swDocMontageFrame.ForceRebuild3(true);

                    swDocMontageFrame.SaveAs2(ModelPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);

                    ComponentToAdd(ModelPath);

                    #endregion

                    _swApp.CloseDoc(ModelPath);
                    _swApp = null;

                    List <VaultSystem.VentsCadFile> newFilesList;
                    VaultSystem.CheckInOutPdmNew(NewComponents, true, out newFilesList);

                    #region Export To XML

                    foreach (var newComponent in NewComponents)
                    {
                        //   ExportXmlSql.Export(newComponent.FullName);
                    }

                    #endregion


                    #region

                    //var drawing = "12-00";
                    //if (modelName == "12-30")
                    //{
                    //    drawing = modelName;
                    //}

                    //Dimension myDimension;
                    //var modelSpigotDrw = $@"{sourceRootFolder}{TemplateFolder}\{drawing}.SLDDRW";

                    //GetLastVersionAsmPdm(modelSpigotDrw, VaultName);

                    //if (!InitializeSw(true)) return;

                    //var swDrwSpigot = _swApp.OpenDoc6(modelSpigotDrw, (int)swDocumentTypes_e.swDocDRAWING,
                    //    (int)swOpenDocOptions_e.swOpenDocOptions_LoadModel, "", 0, 0);

                    //if (swDrwSpigot == null) return;

                    //ModelDoc2 swDoc = _swApp.ActivateDoc2("12-00", false, 0);
                    //var swAsm = (AssemblyDoc)swDoc;
                    //swAsm.ResolveAllLightWeightComponents(false);

                    //switch (modelName)
                    //{
                    //    case "12-20":
                    //        DelEquations(5, swDoc);
                    //        DelEquations(4, swDoc);
                    //        DelEquations(3, swDoc);
                    //        break;
                    //    case "12-30":
                    //        DelEquations(0, swDoc);
                    //        DelEquations(0, swDoc);
                    //        DelEquations(0, swDoc);
                    //        break;
                    //}
                    //swDoc.ForceRebuild3(true);

                    //string newPartName;
                    //string newPartPath;
                    //IModelDoc2 swPartDoc;

                    //#region Удаление ненужного

                    //string[] itemsToDelete = null;

                    //switch (Type)
                    //{
                    //    case "20":
                    //        itemsToDelete = new[] { "12-30-001-1", "12-30-001-2", "12-30-002-1", "12-30-002-2",
                    //                            "ВНС-96.61.002-1", "ВНС-96.61.002-2", "ВНС-96.61.002-3", "ВНС-96.61.002-4",
                    //                            "ВНС-96.61.002-5", "ВНС-96.61.002-6", "ВНС-96.61.002-7", "ВНС-96.61.002-8",
                    //                            "12-30-001-3", "12-30-001-4", "12-30-002-3", "12-30-002-4",
                    //                            "12-003-2", "Клей-2" };
                    //        break;
                    //    case "30":
                    //        itemsToDelete = new[] { "12-20-001-1", "12-20-001-2", "12-20-002-1", "12-20-002-2",
                    //                            "ВНС-96.61.001-1", "ВНС-96.61.001-2", "ВНС-96.61.001-3", "ВНС-96.61.001-4",
                    //                            "ВНС-96.61.001-5", "ВНС-96.61.001-6", "ВНС-96.61.001-7", "ВНС-96.61.001-8",
                    //                            "12-20-001-3", "12-20-001-4", "12-20-002-3", "12-20-002-4",
                    //                            "12-003-1", "Клей-1"};
                    //        break;
                    //}

                    //foreach (var item in itemsToDelete)
                    //{
                    //    DoWithSwDoc(_swApp, CompType.COMPONENT, item, Act.DeletWithOption);
                    //}

                    //DoWithSwDoc(_swApp, CompType.FTRFOLDER, "30", Act.Delete);
                    //DoWithSwDoc(_swApp, CompType.FTRFOLDER, "20", Act.Delete);
                    //#endregion

                    //#region Сохранение и изменение элементов

                    //string path;
                    //int fileId;
                    //int projectId;

                    //var addDimH = 1;
                    //if (modelName == "12-30")
                    //{
                    //    addDimH = 10;
                    //}

                    //var w = (Convert.ToDouble(Width) - 1) / 1000;
                    //var h = Convert.ToDouble((Convert.ToDouble(Height) + addDimH) / 1000);
                    //const double step = 50;
                    //var weldW = Convert.ToDouble((Math.Truncate(Convert.ToDouble(Width) / step) + 1));
                    //var weldH = Convert.ToDouble((Math.Truncate(Convert.ToDouble(Height) / step) + 1));

                    //if (modelName == "12-20")
                    //{
                    //    //12-20-001
                    //    _swApp.IActivateDoc2("12-20-001", false, 0);
                    //    swPartDoc = _swApp.IActiveDoc2;
                    //    newPartName = $"12-20-{Height}.SLDPRT";
                    //    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";

                    //    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    //    {
                    //        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                    //        swDoc.Extension.SelectByID2("12-20-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    //        swAsm.ReplaceComponents(newPartPath, "", true, true);
                    //        _swApp.CloseDoc("12-20-001.SLDPRT");
                    //    }
                    //    else
                    //    {
                    //        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-20-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                    //        myDimension.SystemValue = h - 0.031;
                    //        swDoc.Extension.SelectByID2("D1@Кривая1@12-20-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                    //        myDimension.SystemValue = weldH;
                    //        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                    //        ComponentToAdd(newPartPath);
                    //        _swApp.CloseDoc(newPartName);
                    //    }

                    //    //12-20-002
                    //    _swApp.IActivateDoc2("12-20-002", false, 0);
                    //    swPartDoc = _swApp.IActiveDoc2;
                    //    newPartName = $"12-20-{Width}.SLDPRT";
                    //    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    //    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    //    {
                    //        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                    //        swDoc.Extension.SelectByID2("12-20-002-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    //        swAsm.ReplaceComponents(newPartPath, "", true, true);
                    //        _swApp.CloseDoc("12-20-002.SLDPRT");
                    //    }
                    //    else
                    //    {
                    //        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-20-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                    //        myDimension.SystemValue = w - 0.031;
                    //        swDoc.Extension.SelectByID2("D1@Кривая1@12-20-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                    //        myDimension.SystemValue = weldW;
                    //        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                    //        ComponentToAdd(newPartPath);
                    //        _swApp.CloseDoc(newPartName);
                    //    }

                    //    //12-003
                    //    _swApp.IActivateDoc2("12-003", false, 0);
                    //    swPartDoc = _swApp.IActiveDoc2;
                    //    newPartName = $"12-03-{Width}-{Height}.SLDPRT";
                    //    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    //    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    //    {
                    //        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                    //        swDoc.Extension.SelectByID2("12-003-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    //        swAsm.ReplaceComponents(newPartPath, "", true, true);
                    //        _swApp.CloseDoc("12-003.SLDPRT");
                    //    }
                    //    else
                    //    {
                    //        swDoc.Extension.SelectByID2("D3@Эскиз1@12-003-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D3@Эскиз[email protected]")));
                    //        myDimension.SystemValue = w;
                    //        swDoc.Extension.SelectByID2("D2@Эскиз1@12-003-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D2@Эскиз[email protected]")));
                    //        myDimension.SystemValue = h;
                    //        swDoc.EditRebuild3();
                    //        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                    //        ComponentToAdd(newPartPath);
                    //        _swApp.CloseDoc(newPartName);
                    //    }
                    //}

                    //if (modelName == "12-30")
                    //{
                    //    //12-30-001
                    //    _swApp.IActivateDoc2("12-30-001", false, 0);
                    //    swPartDoc = _swApp.IActiveDoc2;
                    //    newPartName = $"12-30-01-{Height}.SLDPRT";
                    //    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    //    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    //    {
                    //        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                    //        swDoc.Extension.SelectByID2("12-30-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    //        swAsm.ReplaceComponents(newPartPath, "", true, true);
                    //        _swApp.CloseDoc("12-30-001.SLDPRT");
                    //    }
                    //    else
                    //    {
                    //        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-30-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                    //        myDimension.SystemValue = h - 0.031;
                    //        swDoc.Extension.SelectByID2("D1@Кривая1@12-30-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                    //        myDimension.SystemValue = weldH;
                    //        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                    //        ComponentToAdd(newPartPath);
                    //        _swApp.CloseDoc(newPartName);
                    //    }

                    //    //12-30-002

                    //    _swApp.IActivateDoc2("12-30-002", false, 0);
                    //    swPartDoc = _swApp.IActiveDoc2;
                    //    newPartName = $"12-30-02-{Width}.SLDPRT";
                    //    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    //    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    //    {
                    //        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                    //        swDoc.Extension.SelectByID2("12-30-002-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    //        swAsm.ReplaceComponents(newPartPath, "", true, true);
                    //        _swApp.CloseDoc("12-30-002.SLDPRT");
                    //    }
                    //    else
                    //    {
                    //        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-30-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                    //        myDimension.SystemValue = w - 0.031;
                    //        swDoc.Extension.SelectByID2("D1@Кривая1@12-30-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                    //        myDimension.SystemValue = weldH;
                    //        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                    //        ComponentToAdd(newPartPath);
                    //        _swApp.CloseDoc(newPartName);
                    //    }

                    //    //12-003

                    //    _swApp.IActivateDoc2("12-003", false, 0);
                    //    swPartDoc = _swApp.IActiveDoc2;
                    //    newPartName = $"12-03-{Width}-{Height}.SLDPRT";
                    //    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    //    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    //    {
                    //        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                    //        swDoc.Extension.SelectByID2("12-003-2@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    //        swAsm.ReplaceComponents(newPartPath, "", true, true);
                    //        _swApp.CloseDoc("12-003.SLDPRT");
                    //    }
                    //    else
                    //    {
                    //        swDoc.Extension.SelectByID2("D3@Эскиз1@12-003-2@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D3@Эскиз[email protected]")));
                    //        myDimension.SystemValue = w;
                    //        swDoc.Extension.SelectByID2("D2@Эскиз1@12-003-2@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    //        myDimension = ((Dimension)(swDoc.Parameter("D2@Эскиз[email protected]")));
                    //        myDimension.SystemValue = h;
                    //        swDoc.EditRebuild3();
                    //        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                    //        ComponentToAdd(newPartPath);
                    //        _swApp.CloseDoc(newPartName);
                    //    }
                    //}

                    //#endregion

                    //GabaritsForPaintingCamera(swDoc);

                    //swDoc.ForceRebuild3(true);
                    //swDoc.SaveAs2(ModelPath + ".SLDASM", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                    //_swApp.CloseDoc(ModelName + ".SLDASM");
                    //swDrwSpigot.Extension.SelectByID2("DRW1", "SHEET", 0, 0, 0, false, 0, null, 0);
                    //var drw = (DrawingDoc)(_swApp.IActivateDoc3(drawing + ".SLDDRW", true, 0));
                    //drw.ActivateSheet("DRW1");
                    //var m = 5;
                    //if (Convert.ToInt32(Width) > 500 || Convert.ToInt32(Height) > 500) { m = 10; }
                    //if (Convert.ToInt32(Width) > 850 || Convert.ToInt32(Height) > 850) { m = 15; }
                    //if (Convert.ToInt32(Width) > 1250 || Convert.ToInt32(Height) > 1250) { m = 20; }
                    //drw.SetupSheet5("DRW1", 12, 12, 1, m, true, destRootFolder + @"\Vents-PDM\\Библиотека проектирования\\Templates\\Основные надписи\\A3-A-1.slddrt", 0.42, 0.297, "По умолчанию", false);
                    //var errors = 0; var warnings = 0;

                    //swDrwSpigot.SaveAs4(ModelPath + ".SLDDRW", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, ref errors, ref warnings);
                    //ComponentToAdd(new[] { ModelPath + ".SLDDRW", ModelPath + ".SLDASM" });

                    //_swApp.CloseDoc(ModelPath);
                    //_swApp.ExitApp();
                    //_swApp = null;

                    //List<VaultSystem.VentsCadFiles> newFilesList;
                    //VaultSystem.CheckInOutPdmNew(NewComponents, true, //DestVaultName,
                    //    out newFilesList);

                    //foreach (var item in newFilesList)
                    //{
                    //    if (item.LocalPartFileInfo.ToUpper().Contains(".SLDASM"))
                    //    {
                    //        AddInSqlBaseSpigot(item.PartName.Remove(item.PartName.LastIndexOf('.')), item.PartIdPdm,
                    //       Convert.ToInt32(Type), Convert.ToInt32(Height), Convert.ToInt32(Width));
                    //    }
                    //}

                    //foreach (var newComponent in NewComponents)
                    //{
                    //    PartInfoToXml(newComponent.LocalPartFileInfo);
                    //}

                    #endregion

                    Place = GetPlace();
                }
            }
Пример #6
0
        public static bool OpenIfExist(string FilePath, VaultSystem.VentsCadFile.Type type, DateTime? lastChange)
        {
            var open = false;
            //Получение файлов в хранилище
            if (string.IsNullOrEmpty(FilePath)) return true;
            var fileName = Path.GetFileNameWithoutExtension(FilePath);
            var cadFiles = VaultSystem.VentsCadFile.Get(fileName, type, Settings.Default.PdmBaseName);
            if (cadFiles == null) return false;

            //Совпавший по наименованию и типу файл
            var findedFile = cadFiles[0];

            //Определение и получение данных в объект -olderFile- если файл записан раньше чем изменен шаблон (findedFile.Time < lastChange)
            var olderFile = VersionsFileInfo.Replaced.GetIfOlder(findedFile.Path, lastChange, findedFile.Time);

            MessageBoxResult result;
            if (olderFile == null)
            {
                result = MessageBox.Show(fileName + " уже есть в базе. Открыть? ", "", MessageBoxButton.YesNo);
            }
            else
            {
                result = MessageBox.Show(fileName + " уже есть в базе, но конструкция устарела.\nЧтобы обновить нажмите \"Да\",\nоткрыть существующую без обновления -  \"Отмена\"? ", "Обновить?", MessageBoxButton.YesNoCancel);
            }                    

            if (result == MessageBoxResult.No)
            {
                open = true;
            }
            else if (result != MessageBoxResult.No)
            {                
                if (result == MessageBoxResult.Yes)
                {
                    if (olderFile == null)
                    {                        
                        var processes = Process.GetProcessesByName("SLDWORKS");
                        if (processes?.Length > 0)
                        {
                            VentsCad.OpenSwDoc(findedFile.Path);
                        }
                        else
                        {
                            Process.Start("conisio://" + Settings.Default.TestPdmBaseName + "/open?projectid=" + findedFile.ProjectId +
                                  "&documentid=" + findedFile.PartIdPdm + "&objecttype=1");
                        }
                        open = true;
                    }
                    else
                    {
                        VaultSystem.CheckInOutPdm(new List<FileInfo> { new FileInfo(findedFile.Path) }, false);
                        open = false;
                    }   
                }
                if (result == MessageBoxResult.Cancel)
                {
                    var processes = Process.GetProcessesByName("SLDWORKS");
                    if (processes?.Length > 0)
                    {
                        VentsCad.OpenSwDoc(findedFile.Path);
                    }
                    else
                    {
                        Process.Start("conisio://" + Settings.Default.TestPdmBaseName + "/open?projectid=" + findedFile.ProjectId +
                              "&documentid=" + findedFile.PartIdPdm + "&objecttype=1");
                    }
                    open = true;
                    //VaultSystem.CheckInOutPdm(new List<FileInfo> { new FileInfo(findedFile.Path) }, false);
                    //open = false;                    
                }
            }
            return open;
        }                
Пример #7
0
        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);
        }
Пример #8
0
            public override void Build()
            {
                if (Exist)
                {
                    return;
                }

                // MessageBox.Show(DateTime.Now.Hour.ToString());

                var drawing = "12-00";

                if (modelName == "12-30")
                {
                    drawing = modelName;
                }

                Dimension myDimension;
                var       modelSpigotDrw = $@"{sourceRootFolder}{TemplateFolder}\{drawing}.SLDDRW";

                GetLastVersionAsmPdm(modelSpigotDrw, VaultName);

                if (!InitializeSw(true))
                {
                    return;
                }

                var swDrwSpigot = _swApp.OpenDoc6(modelSpigotDrw, (int)swDocumentTypes_e.swDocDRAWING,
                                                  (int)swOpenDocOptions_e.swOpenDocOptions_LoadModel, "", 0, 0);

                if (swDrwSpigot == null)
                {
                    return;
                }

                ModelDoc2 swDoc = _swApp.ActivateDoc2("12-00", false, 0);
                var       swAsm = (AssemblyDoc)swDoc;

                swAsm.ResolveAllLightWeightComponents(false);

                switch (modelName)
                {
                case "12-20":
                    DelEquations(5, swDoc);
                    DelEquations(4, swDoc);
                    DelEquations(3, swDoc);
                    break;

                case "12-30":
                    DelEquations(0, swDoc);
                    DelEquations(0, swDoc);
                    DelEquations(0, swDoc);
                    break;
                }
                swDoc.ForceRebuild3(true);

                string     newPartName;
                string     newPartPath;
                IModelDoc2 swPartDoc;

                #region Удаление ненужного

                string[] itemsToDelete = null;

                switch (Type)
                {
                case "20":
                    itemsToDelete = new[] { "12-30-001-1", "12-30-001-2", "12-30-002-1", "12-30-002-2",
                                            "ВНС-96.61.002-1", "ВНС-96.61.002-2", "ВНС-96.61.002-3", "ВНС-96.61.002-4",
                                            "ВНС-96.61.002-5", "ВНС-96.61.002-6", "ВНС-96.61.002-7", "ВНС-96.61.002-8",
                                            "12-30-001-3", "12-30-001-4", "12-30-002-3", "12-30-002-4",
                                            "12-003-2", "Клей-2" };
                    break;

                case "30":
                    itemsToDelete = new[] { "12-20-001-1", "12-20-001-2", "12-20-002-1", "12-20-002-2",
                                            "ВНС-96.61.001-1", "ВНС-96.61.001-2", "ВНС-96.61.001-3", "ВНС-96.61.001-4",
                                            "ВНС-96.61.001-5", "ВНС-96.61.001-6", "ВНС-96.61.001-7", "ВНС-96.61.001-8",
                                            "12-20-001-3", "12-20-001-4", "12-20-002-3", "12-20-002-4",
                                            "12-003-1", "Клей-1" };
                    break;
                }

                foreach (var item in itemsToDelete)
                {
                    DoWithSwDoc(_swApp, CompType.COMPONENT, item, Act.DeletWithOption);
                }

                DoWithSwDoc(_swApp, CompType.FTRFOLDER, "30", Act.Delete);
                DoWithSwDoc(_swApp, CompType.FTRFOLDER, "20", Act.Delete);
                #endregion

                #region Сохранение и изменение элементов

                string path;
                int    fileId;
                int    projectId;

                var addDimH = 1;
                if (modelName == "12-30")
                {
                    addDimH = 10;
                }

                var          w     = (Convert.ToDouble(Width) - 1) / 1000;
                var          h     = Convert.ToDouble((Convert.ToDouble(Height) + addDimH) / 1000);
                const double step  = 50;
                var          weldW = Convert.ToDouble((Math.Truncate(Convert.ToDouble(Width) / step) + 1));
                var          weldH = Convert.ToDouble((Math.Truncate(Convert.ToDouble(Height) / step) + 1));

                if (modelName == "12-20")
                {
                    //12-20-001
                    _swApp.IActivateDoc2("12-20-001", false, 0);
                    swPartDoc   = _swApp.IActiveDoc2;
                    newPartName = $"12-20-{Height}.SLDPRT";
                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";

                    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    {
                        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                        swDoc.Extension.SelectByID2("12-20-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", true, true);
                        _swApp.CloseDoc("12-20-001.SLDPRT");
                    }
                    else
                    {
                        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-20-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                        myDimension.SystemValue = h - 0.031;
                        swDoc.Extension.SelectByID2("D1@Кривая1@12-20-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                        myDimension.SystemValue = weldH;
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        ComponentToAdd(newPartPath);
                        _swApp.CloseDoc(newPartName);
                    }

                    //12-20-002
                    _swApp.IActivateDoc2("12-20-002", false, 0);
                    swPartDoc   = _swApp.IActiveDoc2;
                    newPartName = $"12-20-{Width}.SLDPRT";
                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    {
                        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                        swDoc.Extension.SelectByID2("12-20-002-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", true, true);
                        _swApp.CloseDoc("12-20-002.SLDPRT");
                    }
                    else
                    {
                        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-20-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                        myDimension.SystemValue = w - 0.031;
                        swDoc.Extension.SelectByID2("D1@Кривая1@12-20-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                        myDimension.SystemValue = weldW;
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        ComponentToAdd(newPartPath);
                        _swApp.CloseDoc(newPartName);
                    }

                    //12-003
                    _swApp.IActivateDoc2("12-003", false, 0);
                    swPartDoc   = _swApp.IActiveDoc2;
                    newPartName = $"12-03-{Width}-{Height}.SLDPRT";
                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    {
                        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                        swDoc.Extension.SelectByID2("12-003-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", true, true);
                        _swApp.CloseDoc("12-003.SLDPRT");
                    }
                    else
                    {
                        swDoc.Extension.SelectByID2("D3@Эскиз1@12-003-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D3@Эскиз[email protected]")));
                        myDimension.SystemValue = w;
                        swDoc.Extension.SelectByID2("D2@Эскиз1@12-003-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D2@Эскиз[email protected]")));
                        myDimension.SystemValue = h;
                        swDoc.EditRebuild3();
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        ComponentToAdd(newPartPath);
                        _swApp.CloseDoc(newPartName);
                    }
                }

                if (modelName == "12-30")
                {
                    //12-30-001
                    _swApp.IActivateDoc2("12-30-001", false, 0);
                    swPartDoc   = _swApp.IActiveDoc2;
                    newPartName = $"12-30-01-{Height}.SLDPRT";
                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    {
                        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                        swDoc.Extension.SelectByID2("12-30-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", true, true);
                        _swApp.CloseDoc("12-30-001.SLDPRT");
                    }
                    else
                    {
                        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-30-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                        myDimension.SystemValue = h - 0.031;
                        swDoc.Extension.SelectByID2("D1@Кривая1@12-30-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                        myDimension.SystemValue = weldH;
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        ComponentToAdd(newPartPath);
                        _swApp.CloseDoc(newPartName);
                    }

                    //12-30-002

                    _swApp.IActivateDoc2("12-30-002", false, 0);
                    swPartDoc   = _swApp.IActiveDoc2;
                    newPartName = $"12-30-02-{Width}.SLDPRT";
                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    {
                        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                        swDoc.Extension.SelectByID2("12-30-002-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", true, true);
                        _swApp.CloseDoc("12-30-002.SLDPRT");
                    }
                    else
                    {
                        swDoc.Extension.SelectByID2("D1@Вытянуть1@12-30-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Вытянуть[email protected]")));
                        myDimension.SystemValue = w - 0.031;
                        swDoc.Extension.SelectByID2("D1@Кривая1@12-30-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D1@Кривая[email protected]")));
                        myDimension.SystemValue = weldH;
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        ComponentToAdd(newPartPath);
                        _swApp.CloseDoc(newPartName);
                    }

                    //12-003

                    _swApp.IActivateDoc2("12-003", false, 0);
                    swPartDoc   = _swApp.IActiveDoc2;
                    newPartName = $"12-03-{Width}-{Height}.SLDPRT";
                    newPartPath = $@"{destRootFolder}\{DestinationFolder}\{newPartName}";
                    if (GetExistingFile(Path.GetFileNameWithoutExtension(newPartPath), out path, out fileId, out projectId))
                    {
                        swDoc = ((ModelDoc2)(VentsCad._swApp.ActivateDoc2("12-00.SLDASM", true, 0)));
                        swDoc.Extension.SelectByID2("12-003-2@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        swAsm.ReplaceComponents(newPartPath, "", true, true);
                        _swApp.CloseDoc("12-003.SLDPRT");
                    }
                    else
                    {
                        swDoc.Extension.SelectByID2("D3@Эскиз1@12-003-2@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D3@Эскиз[email protected]")));
                        myDimension.SystemValue = w;
                        swDoc.Extension.SelectByID2("D2@Эскиз1@12-003-2@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                        myDimension             = ((Dimension)(swDoc.Parameter("D2@Эскиз[email protected]")));
                        myDimension.SystemValue = h;
                        swDoc.EditRebuild3();
                        swPartDoc.SaveAs2(newPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                        ComponentToAdd(newPartPath);
                        _swApp.CloseDoc(newPartName);
                    }
                }

                #endregion

                GabaritsForPaintingCamera(swDoc);

                swDoc.ForceRebuild3(true);
                swDoc.SaveAs2(ModelPath + ".SLDASM", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                _swApp.CloseDoc(ModelName + ".SLDASM");
                swDrwSpigot.Extension.SelectByID2("DRW1", "SHEET", 0, 0, 0, false, 0, null, 0);
                var drw = (DrawingDoc)(_swApp.IActivateDoc3(drawing + ".SLDDRW", true, 0));
                drw.ActivateSheet("DRW1");
                var m = 5;
                if (Convert.ToInt32(Width) > 500 || Convert.ToInt32(Height) > 500)
                {
                    m = 10;
                }
                if (Convert.ToInt32(Width) > 850 || Convert.ToInt32(Height) > 850)
                {
                    m = 15;
                }
                if (Convert.ToInt32(Width) > 1250 || Convert.ToInt32(Height) > 1250)
                {
                    m = 20;
                }
                drw.SetupSheet5("DRW1", 12, 12, 1, m, true, destRootFolder + @"\Vents-PDM\\Библиотека проектирования\\Templates\\Основные надписи\\A3-A-1.slddrt", 0.42, 0.297, "По умолчанию", false);
                var errors = 0; var warnings = 0;

                swDrwSpigot.SaveAs4(ModelPath + ".SLDDRW", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, ref errors, ref warnings);
                ComponentToAdd(new[] { ModelPath + ".SLDDRW", ModelPath + ".SLDASM" });

                _swApp.CloseDoc(ModelPath);
                _swApp.ExitApp();
                _swApp = null;

                List <VaultSystem.VentsCadFile> newFilesList;
                VaultSystem.CheckInOutPdmNew(NewComponents, true, //DestVaultName,
                                             out newFilesList);

                foreach (var item in newFilesList)
                {
                    if (item.LocalPartFileInfo.ToUpper().Contains(".SLDASM"))
                    {
                        AddInSqlBaseSpigot(item.PartName.Remove(item.PartName.LastIndexOf('.')), item.PartIdPdm,
                                           Convert.ToInt32(Type), Convert.ToInt32(Height), Convert.ToInt32(Width));
                    }
                }

                foreach (var newComponent in NewComponents)
                {
                    PartInfoToXml(newComponent.LocalPartFileInfo);
                }

                Place = GetPlace();
            }