private void SaveDoc(string name)
 {
     //Сохранение
     SolidWorksDocument         = SolidWorksAdapter.AcativeteDoc("10-4");
     SolidWorksDocument.Visible = true;
     SolidWorksDocument.SaveAs2(base.NewPartPath + @"\" + name + ".SLDASM", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
 }
Example #2
0
        private void OpenTemplate(PanelType_e panelType)
        {
            if (isDoublePanal)
            {
                AssemblyName = "02-104-50";
            }
            else
            {
                AssemblyName = "02-01";
            }

            NewPartPath = System.IO.Path.Combine(RootFolder, SourceFolder, AssemblyName + ".SLDASM");
            SolidWorksAdapter.OpenDocument(NewPartPath, swDocumentTypes_e.swDocASSEMBLY);
            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(AssemblyName + ".SLDASM");
        }
        public void Build2()
        {
            AssemblyName       = "02-11-40-1";
            NewPartPath        = Path.Combine(RootFolder, SourceFolder, AssemblyName + ".SLDASM");
            SolidWorksDocument = SolidWorksAdapter.OpenDocument(NewPartPath, swDocumentTypes_e.swDocASSEMBLY);


            InputHolesWrapper.StringValue(XYZ.X.ToString());

            #region  02-11-01-40-

            PartPrototypeName = "02-11-01-40-";
            base.PartName     = "02-0" + (int)p.PanelType + "-01-" + 13131313;
            base.NewPartPath  = Path.Combine(RootFolder, SubjectDestinationFolder, base.PartName);



            //типДвойнойРазрез


            // Габариты
            base.parameters.Add("D1@Эскиз1", p.SizePanel.X);
            base.parameters.Add("D2@Эскиз1", p.SizePanel.Y);
            base.parameters.Add("D1@3-4", p.Screws.ByHeight); //отверстия под болты справа
            base.parameters.Add("D1@1-4", p.Screws.ByHeight); //...слева
            base.parameters.Add("D1@2-4", p.Screws.ByWidth);
            base.parameters.Add("D2@2-2", осьСаморезВинт);
            base.parameters.Add("D4@Эскиз47", p.widthHandle); // расстояние между ручками
            base.parameters.Add("D1@Эскиз50", диамСаморезВинт);
            base.parameters.Add("D1@2-3-1", диамСаморезВинт);
            base.parameters.Add("D1@Эскиз52", d1Эскиз52);              // расстояние от края до края панели по ширине для |.....|
            base.parameters.Add("D2@Эскиз52", осьПоперечныеОтверстия); // константа
            //         base.parameters.Add("D1@Кривая3", d1Кривая3);
            base.parameters.Add("D3@1-1-1", string.IsNullOrEmpty(типТорцевой) || p.PanelType == PanelType_e.BlankPanel ? 35 : 158.1);
            base.parameters.Add("D2@3-1-1", string.IsNullOrEmpty(типТорцевой) || p.PanelType == PanelType_e.BlankPanel ? 35 : 158.1);
            base.parameters.Add("D3@2-1-1", диамЗаглушкаВинт);
            base.parameters.Add("D1@Эскиз49", диамЗаглушкаВинт);
            base.parameters.Add("D1@Кривая1", zaklByWidth);
            base.parameters.Add("D1@Кривая2", zaklByHeight);
            base.parameters.Add("D7@Ребро-кромка1", (ThermoStrip_e)FramelessBlock.ThermoStrip == ThermoStrip_e.ThermoScotch ? 17.7 : 19.2);
            //         base.parameters.Add("Толщина@Листовой металл", materialP1[1].Replace('.', ',');
            //         base.parameters.Add("D1@CrvPatternW", колЗаклепокКронштейнаДвойнойПанели);
            //         base.parameters.Add("D1@CrvPatternH", колЗаклепокКронштейнаДвойнойПанели);
            EditPartParameters(PartPrototypeName, base.NewPartPath, 0);
            #endregion

            SolidWorksDocument.EditRebuild3();
        }
 private static void Instance_ReceivedMessage(Patterns.Observer.MessageEventArgs massage)
 {
     try
     {
         Logger.Instance.ToLog($"Time:{massage.time} Message: {massage.Message}");
         if (massage.Type == MessageType.Error)
         {
             MessageBox.Show(massage.Message);
             SolidWorksAdapter.OutLookSendMeALog(@"D:\AirVentsCAD\AddIn\Log.txt", "Some problems with SW_Add-IN");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
Example #5
0
        //Profile for FrontPanel
        public void FrameProfil(double lenght, ProfilType_e type, bool flange30, string partName)
        {
            var    width  = framelessPanel.ThermoStrip == ThermoStrip_e.ThermoScotch ? 38.5 : 40.0;
            string config = "00";

            switch (type)
            {
            case ProfilType_e.HorisontalProfil:
                config = "00";
                break;

            case ProfilType_e.VerticalProfil:
                config = "01";
                break;
            }
            NewPartPath = System.IO.Path.Combine(base.RootFolder, SubjectDestinationFolder, partName + ".SLDPRT");

            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("02-11-11-40-.SLDPRT");
            SolidWorksDocument.ShowConfiguration2(config);

            string[] configs = SolidWorksDocument.GetConfigurationNames();
            foreach (var s in configs)
            {
                if (!s.Equals(config))
                {
                    SolidWorksDocument.DeleteConfiguration2(s);
                }
            }
            // rename current configuration.
            SolidWorksDocument.ConfigurationManager.ActiveConfiguration.Name = "00";

            lenght = type == ProfilType_e.HorisontalProfil ? lenght - 60 : lenght;
            double rivetStep = Math.Truncate(lenght / 100) * 1000;

            parameters.Add("D2@Эскиз1", lenght);
            parameters.Add("D1@Кривая1", rivetStep == 1000 ? 2000 : rivetStep);
            parameters.Add("D2@Эскиз23", (!flange30) ? 10.0 : 15.0);
            parameters.Add("D3@Эскиз23", (!flange30) ? 10.0 : 15.0);
            EditPartParameters("02-11-11-40-", NewPartPath, 0);
        }
Example #6
0
        protected virtual void EditPartParameters(string partName, string newPath, int materialID)
        {
            foreach (var eachParameter in parameters)
            {
                try
                {
                    Dimension myDimension = (SolidWorksDocument.Parameter(eachParameter.Key + "@" + partName + ".SLDPRT")) as Dimension;
                    myDimension.SystemValue = eachParameter.Value / 1000;
                }
                catch (Exception ex)
                {
                    //System.Windows.Forms.MessageBox.Show(eachParameter.Key + "@" + partName);
                    MessageObserver.Instance.SetMessage(ex.ToString(), MessageType.Error);
                }
            }
            this.parameters.Clear();

            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(partName);
            if (SolidWorksDocument != null)
            {
                SolidWorksDocument.ForceRebuild3(true);

                toSQL.AddCustomProperty("", materialID, SolidWorksAdapter.SldWoksAppExemplare);
                SolidWorksDocument.Extension.SaveAs(newPath + ".SLDPRT", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent
                                                    + (int)swSaveAsOptions_e.swSaveAsOptions_SaveReferenced + (int)swSaveAsOptions_e.swSaveAsOptions_UpdateInactiveViews, null, ref errors, warnings);

                InitiatorSaveExeption(errors, warnings, newPath);
                SolidWorksAdapter.CloseDocument(SolidWorksDocument);
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("Не удалось преобразовать деталь " + partName);
            }

            SolidWorksAdapter.SldWoksAppExemplare.DocumentVisible(false, 2);
            SolidWorksAdapter.SldWoksAppExemplare.DocumentVisible(false, 1);
        }
Example #7
0
 protected virtual void EditPartParameters(string partName, string newPath)
 {
     //Console.WriteLine(newPath);
     foreach (var eachParameter in parameters)
     {
         try
         {
             Console.WriteLine(eachParameter.Key + "@" + partName + " val: " + eachParameter.Value);
             Dimension myDimension = (SolidWorksDocument.Parameter(eachParameter.Key + "@" + partName + ".SLDPRT")) as Dimension;
             myDimension.SystemValue = eachParameter.Value / 1000;
         }
         catch (Exception ex)
         {
             Console.WriteLine(eachParameter.Key + " " + ex);
         }
     }
     SolidWorksDocument.ForceRebuild3(true);
     SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(partName);
     SolidWorksDocument.Extension.SaveAs(newPath + ".SLDPRT", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent
                                         + (int )swSaveAsOptions_e.swSaveAsOptions_SaveReferenced + (int)swSaveAsOptions_e.swSaveAsOptions_UpdateInactiveViews, null, ref errors, warnings);
     InitiatorSaveExeption(errors, warnings, newPath);
     this.parameters.Clear();
     SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(partName);
 }
Example #8
0
        public string Build(SpigotType_e type, int width, int height)
        {
            string modelName = GetModelName(type);

            NewSpigotName = GetSpigotName(type, width, height);


            Dimension dimension;

            int addDimH = modelName == "12-30" ? 10 : 1;

            string newSpigotPath = $@"{RootFolder}{SubjectDestinationFolder}\{NewSpigotName}";

            string drawingName = modelName == "12-30" ? modelName : "12-00";

            var modelSpigotDrw = $@"{RootFolder}{SourceFolder}\{drawingName}.SLDDRW";

            ModelDoc2 swDrawingSpigot = SolidWorksAdapter.OpenDocument(modelSpigotDrw, swDocumentTypes_e.swDocDRAWING);

            solidWorksDocument = SolidWorksAdapter.AcativeteDoc("12-00");
            AssemblyDoc assemblyDocument = (AssemblyDoc)solidWorksDocument;

            assemblyDocument.ResolveAllLightWeightComponents(false);

            DeleteEquations(modelName);
            solidWorksDocument.ForceRebuild3(true);

            #region formuls
            var          w          = (Convert.ToDouble(width) - 1) / 1000;                                   // ????????????
            var          h          = Convert.ToDouble((Convert.ToDouble(height) + addDimH) / 1000);          // ????????????
            const double step       = 50;
            var          weldWidth  = Convert.ToDouble((Math.Truncate(Convert.ToDouble(width) / step) + 1));  // ????????????
            var          weldHeight = Convert.ToDouble((Math.Truncate(Convert.ToDouble(height) / step) + 1)); // ????????????
            #endregion

            DeleteComponents((int)type);
            if (modelName == "12-20")
            {
                PartName = $"12-20-{height}.SLDPRT";
                if (CheckExistPart != null)
                {
                    CheckExistPart(PartName, out IsPartExist, out NewPartPath);
                }
                else
                {
                    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                }

                if (IsPartExist)
                {
                    solidWorksDocument.Extension.SelectByID2("12-20-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    assemblyDocument.ReplaceComponents(NewPartPath, "", true, true);
                }
                else
                {
                    NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{NewPartPath}";
                    solidWorksDocument.Extension.SelectByID2("D1@Вытянуть1@12-20-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Вытянуть[email protected]")));
                    dimension.SystemValue = h - 0.031;
                    solidWorksDocument.Extension.SelectByID2("D1@Кривая1@12-20-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Кривая[email protected]")));
                    dimension.SystemValue = weldHeight;
                    SolidWorksDocument.Extension.SaveAs(NewPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
                    InitiatorSaveExeption(error, warning, NewPartPath);
                    ComponentsPathList.Add(NewPartPath);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(NewPartPath);
                }

                //12-20-002

                PartName = $"12-20-{width}.SLDPRT";

                MessageObserver.Instance.SetMessage("Check exist part. " + NewPartPath);
                if (CheckExistPart != null)
                {
                    MessageObserver.Instance.SetMessage("\tCheckExistPartEvent");
                    CheckExistPart(PartName, out IsPartExist, out NewPartPath);
                }
                else
                {
                    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                }

                if (IsPartExist)
                {
                    solidWorksDocument.Extension.SelectByID2("12-20-002-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    assemblyDocument.ReplaceComponents(PartName, "", true, true);
                }
                else
                {
                    NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{NewPartPath}";
                    solidWorksDocument.Extension.SelectByID2("D1@Вытянуть1@12-20-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Вытянуть[email protected]")));
                    dimension.SystemValue = w - 0.031;
                    solidWorksDocument.Extension.SelectByID2("D1@Кривая1@12-20-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Кривая[email protected]")));
                    dimension.SystemValue = weldWidth;
                    SolidWorksDocument.Extension.SaveAs(NewPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
                    InitiatorSaveExeption(error, warning, NewPartPath);
                    ComponentsPathList.Add(NewPartPath);
                }

                //12-003
                PartName = $"12-03-{width}-{height}.SLDPRT";
                if (CheckExistPart != null)
                {
                    CheckExistPart(PartName, out IsPartExist, out NewPartPath);
                }
                else
                {
                    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                }
                if (IsPartExist)
                {
                    solidWorksDocument.Extension.SelectByID2("12-003-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    assemblyDocument.ReplaceComponents(PartName, "", true, true);
                }
                else
                {
                    NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{NewPartPath}";
                    solidWorksDocument.Extension.SelectByID2("D3@Эскиз1@12-003-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D3@Эскиз[email protected]")));
                    dimension.SystemValue = w;
                    solidWorksDocument.Extension.SelectByID2("D2@Эскиз1@12-003-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D2@Эскиз[email protected]")));
                    dimension.SystemValue = h;
                    solidWorksDocument.EditRebuild3();
                    SolidWorksDocument.Extension.SaveAs(NewPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
                    InitiatorSaveExeption(error, warning, NewPartPath);
                    ComponentsPathList.Add(NewPartPath);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(NewPartPath);
                }
            }
            if (modelName == "12-30")
            {
                //12-30-001

                PartName = $"12-30-{height}.SLDPRT";

                MessageObserver.Instance.SetMessage("Check exist part. " + NewPartPath);
                if (CheckExistPart != null)
                {
                    CheckExistPart(PartName, out IsPartExist, out NewPartPath);
                }
                else
                {
                    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                }

                if (IsPartExist)
                {
                    solidWorksDocument.Extension.SelectByID2("12-30-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    assemblyDocument.ReplaceComponents(PartName, "", true, true);
                }
                else
                {
                    NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{NewPartPath}";
                    solidWorksDocument.Extension.SelectByID2("D1@Вытянуть1@12-30-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Вытянуть[email protected]")));
                    dimension.SystemValue = h - 0.031;
                    solidWorksDocument.Extension.SelectByID2("D1@Кривая1@12-30-001-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Кривая[email protected]")));
                    dimension.SystemValue = weldHeight;
                    SolidWorksDocument.Extension.SaveAs(NewPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
                    InitiatorSaveExeption(error, warning, NewPartPath);
                    ComponentsPathList.Add(NewPartPath);
                }
                //12-30-002
                PartName = $"12-30-{width}.SLDPRT";


                if (CheckExistPart != null)
                {
                    CheckExistPart(PartName, out IsPartExist, out NewPartPath);
                }
                else
                {
                    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                }

                if (IsPartExist)
                {
                    solidWorksDocument.Extension.SelectByID2("12-30-002-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    assemblyDocument.ReplaceComponents(PartName, "", true, true);
                }
                else
                {
                    NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{NewPartPath}";
                    solidWorksDocument.Extension.SelectByID2("D1@Вытянуть1@12-30-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Вытянуть[email protected]")));
                    dimension.SystemValue = w - 0.031;
                    solidWorksDocument.Extension.SelectByID2("D1@Кривая1@12-30-002-1@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D1@Кривая[email protected]")));
                    dimension.SystemValue = weldHeight;
                    SolidWorksDocument.Extension.SaveAs(NewPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
                    InitiatorSaveExeption(error, warning, NewPartPath);
                    ComponentsPathList.Add(NewPartPath);
                }
                //12-003

                PartName = $"12-03-{width}-{height}.SLDPRT";
                if (CheckExistPart != null)
                {
                    CheckExistPart(PartName, out IsPartExist, out NewPartPath);
                }
                else
                {
                    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                }

                if (IsPartExist)
                {
                    solidWorksDocument.Extension.SelectByID2("12-003-2@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    assemblyDocument.ReplaceComponents(PartName, "", true, true);
                }
                else
                {
                    NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{NewPartPath}";
                    solidWorksDocument.Extension.SelectByID2("D3@Эскиз1@12-003-2@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D3@Эскиз[email protected]")));
                    dimension.SystemValue = w;
                    solidWorksDocument.Extension.SelectByID2("D2@Эскиз1@12-003-2@12-00", "DIMENSION", 0, 0, 0, false, 0, null, 0);
                    dimension             = ((Dimension)(solidWorksDocument.Parameter("D2@Эскиз[email protected]")));
                    dimension.SystemValue = h;
                    solidWorksDocument.EditRebuild3();
                    SolidWorksDocument.Extension.SaveAs(NewPartPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
                    InitiatorSaveExeption(error, warning, NewPartPath);
                    ComponentsPathList.Add(NewPartPath);
                }
            }

            solidWorksDocument.ForceRebuild3(true);
            solidWorksDocument.Extension.SaveAs(newSpigotPath + ".SLDASM", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
            InitiatorSaveExeption(error, warning, newSpigotPath + ".SLDASM");

            SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(NewSpigotName + ".SLDASM");
            ComponentsPathList.Add(newSpigotPath + ".SLDASM");
            swDrawingSpigot.Extension.SelectByID2("DRW1", "SHEET", 0, 0, 0, false, 0, null, 0);
            var drw = (DrawingDoc)SolidWorksAdapter.AcativeteDoc(drawingName + ".SLDDRW");
            drw.ActivateSheet("DRW1");
            drw.SetupSheet5("DRW1", 12, 12, 1, GetDrawingScale(width, height), true, @"\\pdmsrv\SolidWorks Admin\Templates\Основные надписи\A3-A-1.slddrt", 0.42, 0.297, "По умолчанию", false);
            swDrawingSpigot.Extension.SaveAs(newSpigotPath + ".SLDDRW", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
            InitiatorSaveExeption(error, warning, newSpigotPath + ".SLDDRW");

            ComponentsPathList.Add(newSpigotPath + ".SLDDRW");
            SolidWorksAdapter.CloseAllDocumentsAndExit();
            return(newSpigotPath);
        }
Example #9
0
        public void Build(Vector3 frameSize, int profileType, ServiceSide serviceSide)
        {
            string caseAssemblyPath = Path.Combine(RootFolder, SourceFolder, modelName);

            Patterns.Observer.MessageObserver.Instance.SetMessage("\n" + caseAssemblyPath + "\n");
            ModelDoc2 SolidWorksDocument = SolidWorksAdapter.OpenDocument(caseAssemblyPath, swDocumentTypes_e.swDocASSEMBLY);// SolidWorksDocumentumentTypes_e.SolidWorksDocumentASSEMBLY);

            Patterns.Observer.MessageObserver.Instance.SetMessage("открылась сборка");
            //AssemblyDocument = SolidWorksAdapter.ToAssemblyDocument( SolidWorksDocument);
            double rivetL;
            string newName     = "01-P150-45-" + (frameSize.Z - 140);
            string newPartPath = GetFrameCasePath(newName);


            if (File.Exists(new FileInfo(newPartPath).FullName))
            {
                SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(modelName);
                SolidWorksDocument.Extension.SelectByID2("01-P150-45-1640-27@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, false, 0, null, 0);
                AssemblyDocument.ReplaceComponents(newPartPath, "", true, true);
                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("01-P150-45-1640.SLDPRT");
            }
            else if (File.Exists(newPartPath) != true) // TO DO delegate
            {
                rivetL = (Math.Truncate((frameSize.Z - 170) / step) + 1) * 1000;
                parameters.Add("D1@Вытянуть1", frameSize.Z - 140);
                parameters.Add("D1@Кривая1", rivetL);
                EditPartParameters("01-P150-45-1640", newPartPath, 0);

                //frameSize.X

                newName     = "01-P150-45-" + (frameSize.X - 140);
                newPartPath = GetFrameCasePath(newName);
                if (File.Exists(new FileInfo(newPartPath).FullName))
                {
                    SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(modelName);
                    SolidWorksDocument.Extension.SelectByID2("01-003-50-22@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    AssemblyDocument.ReplaceComponents(newPartPath, "", true, true);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("01-003-50.SLDPRT");
                }
                else
                {
                    rivetL = (Math.Truncate((frameSize.X - 170) / step) + 1) * 1000;
                    parameters.Add("D1@Вытянуть1", frameSize.X - 140);
                    parameters.Add("D1@Кривая1", rivetL);
                    EditPartParameters("01-P150-45-1640", newPartPath, 0);
                }

                //01-P252-45-770
                newName     = "01-P252-45-" + (frameSize.X - 100);
                newPartPath = newPartPath = GetFrameCasePath(newName);
                if (File.Exists(new FileInfo(newPartPath).FullName))
                {
                    SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(modelName);
                    SolidWorksDocument.Extension.SelectByID2("01-P252-45-770-6@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    AssemblyDocument.ReplaceComponents(newPartPath, "", true, true);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("01-P252-45-770.SLDPRT");
                }
                else
                {
                    parameters.Add("D1@Вытянуть1", frameSize.X - 100);
                    EditPartParameters("01-P150-45-1640", newPartPath, 0);
                }

                //frameSize.Y

                newName     = "01-P150-45-" + (frameSize.Y - 140);
                newPartPath = newPartPath = GetFrameCasePath(newName);
                if (File.Exists(new FileInfo(newPartPath).FullName))
                {
                    SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(modelName);
                    SolidWorksDocument.Extension.SelectByID2("01-P150-45-510-23@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    AssemblyDocument.ReplaceComponents(newPartPath, "", true, true);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("01-P150-45-510.SLDPRT");
                }
                else
                {
                    rivetL = (Math.Truncate((frameSize.Y - 170) / step) + 1) * 1000;

                    parameters.Add("D1@Вытянуть1", (frameSize.Y - 140));
                    parameters.Add("D1@Кривая1", rivetL);
                    EditPartParameters("01-P150-45-1640", newPartPath, 0);
                }

                //  01-P252-45-550
                newName     = "01-P252-45-" + (frameSize.Y - 100);
                newPartPath = newPartPath = GetFrameCasePath(newName);
                if (File.Exists(new FileInfo(newPartPath).FullName))
                {
                    SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(modelName);
                    SolidWorksDocument.Extension.SelectByID2("01-P252-45-550-10@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    AssemblyDocument.ReplaceComponents(newPartPath, "", true, true);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("01-P252-45-550.SLDPRT");
                }
                else
                {
                    parameters.Add("D1@Вытянуть1", frameSize.Y - 100);
                    EditPartParameters("01-P252-45-550", newPartPath, 0);
                }

                SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(modelName);
                SolidWorksDocument.EditRebuild3();
                SolidWorksDocument.ForceRebuild3(true);
                //   AssemblyDocument = (AssemblyDoc)SolidWorksDocument;

                if (serviceSide == ServiceSide.Left)
                {
                    SolidWorksDocument.Extension.SelectByID2("M8-Panel block-one side-1@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("M8-Panel block-one side-6@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("M8-Panel block-one side-7@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("Threaded Rivets с насечкой-10@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("Threaded Rivets с насечкой-4@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("Threaded Rivets с насечкой-12@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("Threaded Rivets с насечкой-12@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                }
                else if (serviceSide == ServiceSide.Right)
                {
                    SolidWorksDocument.Extension.SelectByID2("M8-Panel block-one side-16@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("Threaded Rivets с насечкой-21@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("Threaded Rivets с насечкой-22@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("M8-Panel block-one side-17@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("Threaded Rivets с насечкой-23@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("M8-Panel block-one side-18@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.Extension.SelectByID2("M8-Panel block-one side-18@" + modelName.Replace(".SLDASM", ""), "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                }
            }
        }
        public string Build(int type, Vector2 spigotSize, int materialID) // должен возвращать лист с путями к файлам
        {
            Dictionary <string, string> dictionary = new Dictionary <string, string>();
            long tempId = 0;

            List <long> idObjWithNewPath = new List <long>();

            DataSet ds = null;

            //DataTable dt = ipsModuleObject.GetIMBASETable((long)IMBASE_TablesID.Spigot, out ds, out dictionary);

            base.PartPrototypeName = GetPrototypeName((SpigotType_e)type);
            string drawingNameWithExt = "12-00.SLDDRW";
            int    addDimH            = base.PartPrototypeName == "12-30" ? 10 : 1;


            string drawingSpigotPath = Path.Combine(RootFolder, SourceFolder, drawingNameWithExt);

            SolidWorksAdapter.OpenDocument(drawingSpigotPath, swDocumentTypes_e.swDocDRAWING);
            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(base.AssemblyName + ".SLDASM");
            SolidWorksAdapter.ToAssemblyDocument(SolidWorksDocument);

            DeleteEquations(base.PartPrototypeName);
            DeleteComponents(type);
            SolidWorksDocument.ForceRebuild3(true);

            #region formuls

            double       w          = spigotSize.X;
            double       h          = spigotSize.Y - addDimH;
            const double step       = 50;
            double       weldWidth  = Math.Truncate(spigotSize.X / step) * 1000 + 1;
            double       weldHeight = Math.Truncate(spigotSize.Y / step) * 1000 + 1;

            #endregion

            if (base.PartPrototypeName == "12-20")
            {
                #region 12-20

                base.PartName = $"12-20-{spigotSize.Y}";

                //if (ipsModuleObject.CheckForSimilarRows(base.PartName, dt, dictionary))// добавить out filePath
                //{
                //    // открывать детальку
                //    SolidWorksDocument.Extension.SelectByID2("12-20-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                //    AssemblyDocument.ReplaceComponents(base.NewPartPath, "", true, true);
                //}
                //else
                //{
                base.NewPartPath = Path.Combine(RootFolder, SubjectDestinationFolder, base.PartName);
                base.parameters.Add("D1@Вытянуть1", h - 31);
                base.parameters.Add("D1@Кривая1", weldHeight);
                EditPartParameters("12-20-001", base.NewPartPath, materialID);
                //tempId = op.WriteIntoIMBASE_Spigot_Table(dt, base.NewPartPath + ".SLDPRT", "Обозначениеttt", base.PartName, spigotSize.X.ToString(), spigotSize.Y.ToString(), type.ToString(), 1);
                //ComponentsPathList.Add(base.NewPartPath);
                idObjWithNewPath.Add(tempId);
                //}

                //12-20-002

                base.PartName = $"12-20-{spigotSize.X}";

                //if (ipsModuleObject.CheckForSimilarRows(base.PartName, dt, dictionary))
                //{
                //    //открывать детальку
                //}
                //else
                //{
                base.NewPartPath = Path.Combine(RootFolder, SubjectDestinationFolder, base.PartName);

                base.parameters.Add("D1@Вытянуть1", w - 31);
                base.parameters.Add("D1@Кривая1", weldWidth);
                EditPartParameters("12-20-002", base.NewPartPath, materialID);
                // tempId = op.WriteIntoIMBASE_Spigot_Table(dt, base.NewPartPath + ".SLDPRT", "Обозначениеttt", base.PartName, spigotSize.X.ToString(), spigotSize.Y.ToString(), type.ToString(), 1);
                //ComponentsPathList.Add(base.NewPartPath);
                //Part=1296
                //Изделие=1052
                idObjWithNewPath.Add(tempId);
                //}

                //12-003
                base.PartName = $"12-03-{spigotSize.X}-{spigotSize.Y}";
                //if (ipsModuleObject.CheckForSimilarRows(base.PartName, dt, dictionary))
                //{
                //    //открывать детальку
                //}
                //else
                //{
                base.NewPartPath = Path.Combine(RootFolder, SubjectDestinationFolder, base.PartName);

                base.parameters.Add("D3@Эскиз1", w);
                base.parameters.Add("D2@Эскиз1", h);
                EditPartParameters("12-003", base.NewPartPath, materialID);
                // tempId = op.WriteIntoIMBASE_Spigot_Table(dt, base.NewPartPath + ".SLDPRT", "Обозначениеttt", base.PartName, spigotSize.X.ToString(), spigotSize.Y.ToString(), type.ToString(), 1);

                //ComponentsPathList.Add(base.NewPartPath);
                idObjWithNewPath.Add(tempId);
                //}
                #endregion
            }
            else if (base.PartPrototypeName == "12-30")
            {
                #region 12-30
                //12-30-001

                base.PartName = $"12-30-{spigotSize.Y}";

                //if (CheckExistPart != null)
                //{
                //    CheckExistPart(base.PartName, RootFolder, out base.NewPartPath);
                //}
                //else
                //{
                //    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                //}

                //if (NewPartPath != string.Empty && NewPartPath != null)
                //{
                //    SolidWorksDocument.Extension.SelectByID2("12-30-001-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                //    AssemblyDocument.ReplaceComponents(base.NewPartPath, "", true, true);
                //}
                //else
                //{
                base.NewPartPath = Path.Combine(RootFolder, SubjectDestinationFolder, base.PartName);

                base.parameters.Add("D1@Вытянуть1", h - 31);
                base.parameters.Add("D1@Кривая1", weldHeight);
                //base.parameters.Add("D5@Эскиз1", weldHeight);
                EditPartParameters("12-30-001", base.NewPartPath, materialID);
                ComponentsPathList.Add(base.NewPartPath);

                //}

                //12-30-002
                base.PartName = $"12-30-{spigotSize.X}";

                //if (CheckExistPart != null)
                //{
                //    CheckExistPart(base.PartName, RootFolder, out base.NewPartPath);
                //}
                //else
                //{
                //    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                //}

                //if (NewPartPath != string.Empty && NewPartPath != null)
                //{
                //    SolidWorksDocument.Extension.SelectByID2("12-30-002-1@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                //    AssemblyDocument.ReplaceComponents(base.NewPartPath, "", true, true);

                //}
                //else
                //{
                base.NewPartPath = Path.Combine(RootFolder, SubjectDestinationFolder, base.PartName);

                base.parameters.Add("D1@Вытянуть1", w - 31);
                base.parameters.Add("D1@Кривая1", weldHeight);
                EditPartParameters("12-30-002", base.NewPartPath, materialID);
                ComponentsPathList.Add(base.NewPartPath);
                //}
                //12-003

                base.PartName = $"12-03-{spigotSize.X}-{spigotSize.Y}";
                //if (CheckExistPart != null)
                //{
                //    CheckExistPart(base.PartName, RootFolder, out base.NewPartPath);
                //}
                //else
                //{
                //    MessageObserver.Instance.SetMessage("CheckExistPartEvent can not be null", MessageType.Warning);
                //}

                //if (NewPartPath != string.Empty && NewPartPath != null)
                //{

                //    SolidWorksDocument.Extension.SelectByID2("12-003-2@12-00", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                //    AssemblyDocument.ReplaceComponents(base.NewPartPath, "", true, true);
                //}
                //else
                //{
                base.NewPartPath = Path.Combine(RootFolder, SubjectDestinationFolder, base.PartName);

                base.parameters.Add("D3@Эскиз1", w);
                base.parameters.Add("D2@Эскиз1", h);
                EditPartParameters("12-003", base.NewPartPath, materialID);
                ComponentsPathList.Add(base.NewPartPath);

                //}
                #endregion
            }

            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(base.AssemblyName + ".SLDASM");
            SolidWorksDocument.ForceRebuild3(true);

            NewPartPath = Path.Combine(RootFolder, SubjectDestinationFolder, GetSpigotName((SpigotType_e)type, spigotSize));
            SolidWorksDocument.Extension.SaveAs(NewPartPath + ".SLDASM", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
            InitiatorSaveExeption(error, warning, NewPartPath + ".SLDASM");
            SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(base.NewPartPath + ".SLDASM");


            //tempId = op.WriteIntoIMBASE_Spigot_Table(dt, base.AssemblyName + ".SLDASM", "ОбозначениеСборка", base.PartName, spigotSize.X.ToString(), spigotSize.Y.ToString(), type.ToString(), 1);


            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(drawingNameWithExt);
            SolidWorksDRW      = SolidWorksAdapter.ToDrawingDoc(SolidWorksDocument);

            base.SolidWorksDRW.ActivateSheet("DRW1");
            SolidWorksDRW.SetupSheet5("DRW1", 12, 12, 1, GetDrawingScale(spigotSize), true, @"\\pdmsrv\SolidWorks Admin\Templates\Основные надписи\A3-A-1.slddrt", 0.42, 0.297, "По умолчанию", false);

            SolidWorksDocument.Extension.SaveAs(NewPartPath + ".SLDDRW", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref error, ref warning);
            InitiatorSaveExeption(error, warning, NewPartPath + ".SLDDRW");


            // create relations between docs
            //ipsModuleObject.MakeRelationsBtwnDocs(idObjWithNewPath, tempId);

            SolidWorksAdapter.CloseAllDocumentsAndExit();

            return(NewPartPath);
        }
Example #11
0
        /// <summary>
        ///  Method which the encapsulates proccess building dxf view on based SolidWorks part.
        /// </summary>
        /// <param name="partPath">path to sorce part file</param>
        /// <param name="idPdm">id in pdm system</param>
        /// <param name="version">current or last version build file</param>
        /// <param name="includeNonSheetParts">set whether you want build dxf views from non sheet parts</param>
        /// <returns></returns>
        private bool Build(string partPath, int idPdm, int version, bool includeNonSheetParts)
        {
            // callback message code from solidWorks
            // int error = 0, warnings = 0;

            MessageObserver.Instance.SetMessage("Start build Dxf file", MessageType.System);

            bool isSave = false;

            try
            {
                ModelDoc2 modelDoc = null;
                if (!string.IsNullOrEmpty(partPath))
                {
                    try
                    {
                        modelDoc = SolidWorksAdapter.OpenDocument(partPath, swDocumentTypes_e.swDocPART);// SolidWorksAdapter.SldWoksAppExemplare.OpenDoc6(partPath, (int)  swDocumentTypes_e.swDocPART , (int)swOpenDocOptions_e.swOpenDocOptions_Silent, emptyConfigyration, error, warnings);

                        //modelDoc = SolidWorksAdapter.SldWoksAppExemplare.IActiveDoc2;

                        MessageObserver.Instance.SetMessage("\tOpened document " + Path.GetFileName(partPath), MessageType.System);
                        // Проверяет наличие дерева постоения в моделе.
                        if (modelDoc == null)
                        {
                            return(isSave);
                        }
                    }
                    catch (Exception exception)
                    {
                        MessageObserver.Instance.SetMessage("\tFailed open SolidWorks document; message exception {" + exception.ToString() + " }", MessageType.Error);
                        throw exception;
                    }
                }
                bool isSheetmetal = true;
                //modelDoc.ForceRebuild3(false);

                IPartDoc part = (IPartDoc)modelDoc;
                if (!SolidWorksAdapter.IsSheetMetalPart(part))
                {
                    isSheetmetal = false;
                    if (!includeNonSheetParts) // disable build  no sheet metal parts if IsSheetMetalPart = false, and return
                    {
                        try
                        {
                            //SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(modelDoc.GetTitle().ToLower().Contains(".sldprt") ? modelDoc.GetTitle() : modelDoc.GetTitle() + ".sldprt");
                            if (modelDoc != null)
                            {
                                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(modelDoc.GetTitle());
                            }
                            //SolidWorksAdapter.SldWoksAppExemplare.ExitApp();
                        }
                        catch (Exception ex)
                        {
                            MessageObserver.Instance.SetMessage("Неудалось закрыть файл " + ex.Message);
                        }
                        return(isSave);
                    }
                }
                string[] swModelConfNames2 = (string[])modelDoc.GetConfigurationNames();


                var configurations = from name in swModelConfNames2
                                     let config = (Configuration)modelDoc.GetConfigurationByName(name)
                                                  where !config.IsDerived()
                                                  select name;

                MessageObserver.Instance.SetMessage("\t got configuration " + configurations.Count() + " for opened document. Statrt bust configurations", MessageType.System);

                foreach (var eachConfiguration in configurations)
                {
                    modelDoc.ShowConfiguration2(eachConfiguration);
                    //modelDoc.Visible = true;
                    //modelDoc.EditRebuild3();

                    MessageObserver.Instance.SetMessage("\t Show configuration " + eachConfiguration, MessageType.System);
                    if (isSheetmetal)
                    {
                        Bends bends = Bends.Create(modelDoc, eachConfiguration);
                        bends.Fix();

                        MessageObserver.Instance.SetMessage("\t Fix bends " + eachConfiguration, MessageType.System);
                    }

                    byte[] dxfByteCode;
                    DXF    dxf;

                    if (!Directory.Exists(DxfFolder))
                    {
                        Directory.CreateDirectory(DxfFolder);
                    }

                    if (DxfFolder != null && DxfFolder != string.Empty)
                    {
                        dxf = new DXF(DxfFolder);
                    }
                    else
                    {
                        dxf = new DXF();
                    }

                    isSave = dxf.ConvertToDXF(eachConfiguration, modelDoc, out dxfByteCode, isSheetmetal);

                    var dataToExport = CutList.GetDataToExport(modelDoc);

                    if (isSave)
                    {
                        MessageObserver.Instance.SetMessage("\t" + eachConfiguration + " succsess building. Add to result list", MessageType.Success);
                        // конфигурация получена при выполнении GetDataToExport
                        try
                        {
                            dataToExport.DXFByte       = dxfByteCode;
                            dataToExport.Configuration = eachConfiguration;
                            dataToExport.IdPdm         = idPdm;
                            dataToExport.Version       = version;
                            if (FinishedBuilding != null)
                            {
                                FinishedBuilding(dataToExport);
                            }
                        }
                        catch (Exception exception)
                        {
                            MessageObserver.Instance.SetMessage("\tFailed at notification about finished; message exception {" + exception.ToString() + " }", MessageType.Error);
                        }
                    }
                }
                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(modelDoc.GetTitle().ToLower().Contains(".sldprt") ? modelDoc.GetTitle() : modelDoc.GetTitle() + ".sldprt"); // out in func...
                //SolidWorksAdapter.SldWoksAppExemplare.ExitApp( );
            }

            catch (Exception ex)
            {
                MessageObserver.Instance.SetMessage("\tFailed build dxf; message exception {" + ex.ToString() + " }", MessageType.Error);
                throw ex;
            }
            return(isSave);
        }
Example #12
0
        public string Build(int type, double width, double lenght, bool onlyPath, int materialID)
        {
            SolidWorksDocument = null;
            base.PartName      = "15-000";
            base.NewPartPath   = $@"{RootFolder}\{SubjectDestinationFolder}\{base.PartName}";
            string modelRoofPath = $@"{RootFolder}\{SourceFolder}\{base.PartName}.SLDASM";

            SolidWorksAdapter.OpenDocument(modelRoofPath, swDocumentTypes_e.swDocASSEMBLY, "00");
            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(base.PartName + ".SLDASM");

            DeleteComponents(type);

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

            var addwidth  = 100;
            var addwidth2 = 75;
            var type4     = 0;
            var divwidth  = 1;
            if ((RoofType_e)type == RoofType_e.Two || (RoofType_e)type == RoofType_e.Six)
            {
                addwidth = 75;
                divwidth = 2;
            }
            else if ((RoofType_e)type == RoofType_e.Four)
            {
                type4     = 170;
                addwidth2 = 170 + 75;
            }

            double       widthD  = width / divwidth + addwidth;
            double       lengthD = lenght - 28.5;
            const double step    = 200;
            const double step2   = 150;
            double       weldW   = Math.Truncate(lenght / step) + 1;
            double       weldW2  = Math.Truncate(lenght / step2) + 1;

            //15-001

            #region

            string newPartName = $"15-0{type}-01-{width}-{lenght}";
            AssemblyName = $"15-0{type}-01-{width}-{lenght}.SLDASM";
            //CheckExistPart(NewPartPath, RootFolder, out NewPartPath);
            if (base.IsPartExist)
            {
                SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("15-000.SLDASM");
                SolidWorksDocument.Extension.SelectByID2("15-001-1@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                base.AssemblyDocument.ReplaceComponents(AssemblyName, "", true, true);
                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("15-001.SLDPRT");
            }
            else
            {
                base.NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{newPartName}";

                base.parameters.Add("D1@Эскиз1", (RoofType_e)type == RoofType_e.Five || (RoofType_e)type == RoofType_e.Six ? (140 + lengthD + type4) : (lengthD + type4));
                base.parameters.Add("D2@Эскиз1", widthD);
                base.parameters.Add("D4@Эскиз27", addwidth2 - 4.62);
                base.parameters.Add("D1@Эскиз27", 90);
                base.parameters.Add("D2@Эскиз27", 75 - 4.62);
                base.parameters.Add("D1@Эскиз24", ((RoofType_e)type == RoofType_e.Five || (RoofType_e)type == RoofType_e.Six) ? 149.53 : 9.53);
                base.parameters.Add("D1@Кривая2", weldW2 * 1000);
                base.parameters.Add("D1@Кривая1", weldW * 1000);

                EditPartParameters("15-001", NewPartPath, materialID);
            }
            #endregion

            //15-002 if type = 6
            #region
            if ((RoofType_e)type == RoofType_e.Six)
            {
                newPartName = $"15-06-02-{width}-{lenght}";

                //CheckExistPart(NewPartPath, RootFolder, out NewPartPath);
                if (base.IsPartExist)
                {
                    SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("15-000.SLDASM");
                    SolidWorksDocument.Extension.SelectByID2("15-002-1@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    base.AssemblyDocument.ReplaceComponents(AssemblyName, "", true, true);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("15-002.SLDPRT");
                }
                else
                {
                    base.NewPartPath = $@"{RootFolder}\{SubjectDestinationFolder}\{newPartName}";

                    base.parameters.Add("D1@Эскиз1", 140 + lengthD + type4);
                    base.parameters.Add("D2@Эскиз1", widthD);

                    base.parameters.Add("D4@Эскиз27", addwidth2 - 4.62);
                    base.parameters.Add("D1@Эскиз27", 90);
                    base.parameters.Add("D2@Эскиз27", 75 - 4.62);

                    base.parameters.Add("D2@Эскиз23", 165);
                    base.parameters.Add("D1@Кривая2", weldW2 * 1000);
                    base.parameters.Add("D1@Кривая1", weldW * 1000);

                    EditPartParameters("15-002", NewPartPath, materialID);
                }
                SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("15-000.SLDASM");
                SolidWorksDocument.Extension.SelectByID2("15-001-3@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                SolidWorksDocument.Extension.SelectByID2("ЗеркальныйКомпонент2@15-000", "COMPPATTERN", 0, 0, 0, false, 0, null, 0);
                SolidWorksDocument.EditSuppress2();
            }
            else // если тип не == 6, удаляем деталь 15-002
            {
                SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("15-000.SLDASM");
                SolidWorksDocument.Extension.SelectByID2("15-002-1@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                SolidWorksDocument.EditDelete();
            }
            #endregion


            switch ((RoofType_e)type)
            {
            case RoofType_e.Two:
            case RoofType_e.Six:
                SolidWorksDocument.Extension.SelectByID2("Винт самосверл 6-гр.гол с шайбой-33@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                SolidWorksDocument.EditDelete();
                SolidWorksDocument.Extension.SelectByID2("Винт самосверл 6-гр.гол с шайбой-40@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                SolidWorksDocument.EditDelete();
                break;

            default:
                SolidWorksDocument.Extension.SelectByID2("Винт самосверл 6-гр.гол с шайбой-26@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                SolidWorksDocument.EditDelete();
                break;
            }

            #endregion
            try
            {
                SolidWorksDocument.ForceRebuild3(true);
                SolidWorksDocument.SaveAs2(AssemblyName, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                ComponentsPathList.Add(base.NewPartPath);
                //SolidWorksAdapter.CloseAllDocumentsAndExit();
            }
            catch (Exception ex)
            {
                Patterns.Observer.MessageObserver.Instance.SetMessage(ex.ToString());
            }
            if (onlyPath)
            {
                return(base.NewPartPath);
            }

            return(base.NewPartPath);
        }
Example #13
0
        public string Build(RoofType_e type, int width, int lenght, bool onlyPath)
        {
            string newPartPath = string.Empty;
            string modelName;

            switch (type)
            {
            case  RoofType_e.One:
            case  RoofType_e.Two:
            case  RoofType_e.Three:
            case  RoofType_e.Four:
            case  RoofType_e.Five:
            case  RoofType_e.Six:
                modelName = "15-000";
                break;

            default:
                modelName = "15-000";
                break;
            }



            string newRoofName = "15-0" + type + "-" + width + "-" + lenght;
            string newRoofPath = $@"{RootFolder}{SubjectDestinationFolder}\{newRoofName}.SLDASM";
            bool   IsExistPart = false;

            CheckExistPart(newRoofName + ".SLDASM", out IsExistPart, out newRoofPath);
            var modelRoofPath = $@"{RootFolder}{SourceFolder}\{modelName}.SLDASM";

            solidWorksDocument = SolidWorksAdapter.SldWoksAppExemplare.OpenDoc6(modelRoofPath, (int)swDocumentTypes_e.swDocASSEMBLY,
                                                                                (int)swOpenDocOptions_e.swOpenDocOptions_LoadModel + (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "00", 0, 0);

            AssemblyDoc solidWorcsAssemvlyDocyment = (AssemblyDoc)solidWorksDocument;

            solidWorcsAssemvlyDocyment.ResolveAllLightWeightComponents(false);

            DeleteComponents((int)type);


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

            var addwidth  = 100;
            var addwidth2 = 75;
            var type4     = 0;
            var divwidth  = 1;
            if (type == RoofType_e.Two || type == RoofType_e.Six)
            {
                addwidth = 75;
                divwidth = 2;
            }
            if (type == RoofType_e.Four)
            {
                type4     = 170;
                addwidth2 = 170 + 75;
            }

            var          widthD        = (Convert.ToDouble(width) / divwidth + addwidth);
            var          lengthD       = (Convert.ToDouble(lenght) - 28.5);
            const double step          = 200;
            const double step2         = 150;
            var          weldW         = Convert.ToDouble((Math.Truncate(Convert.ToDouble(lenght) / step) + 1));
            var          weldW2        = Convert.ToDouble((Math.Truncate(Convert.ToDouble(lenght) / step2) + 1));
            var          newComponents = new List <FileInfo>();

            //15-001
            SolidWorksAdapter.SldWoksAppExemplare.IActivateDoc2("15-001", true, 0);
            var newPartName = $"15-0{type}-01-{width}-{lenght}";

            CheckExistPart(newPartName, out IsExistPart, out newPartPath);
            if (IsExistPart)
            {
                solidWorksDocument = ((ModelDoc2)(SolidWorksAdapter.SldWoksAppExemplare.ActivateDoc2("15-000.SLDASM", true, 0)));
                solidWorksDocument.Extension.SelectByID2("15-001-1@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                solidWorcsAssemvlyDocyment.ReplaceComponents(newPartPath, "", true, true);
                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("15-001.SLDPRT");
            }
            else
            {
                newPartPath = $@"{SourceFolder}\{SubjectDestinationFolder}\{newPartName}.SLDPRT";

                //EditPartParameters("15-001",
                //    $@"{RootFolder}\{SubjectDestinationFolder}\{newPartName}",
                //    new[,]
                //    {
                //        {"D1@Эскиз1",  type ==  RoofType.Five || type == RoofType.Six ? Convert.ToString(140 + lengthD + type4) : Convert.ToString(lengthD + type4)},
                //        {"D2@Эскиз1", Convert.ToString(widthD)},
                //        {"D4@Эскиз27", Convert.ToString(addwidth2-4.62)},
                //        {"D1@Эскиз27", Convert.ToString(90)},
                //        {"D2@Эскиз27", Convert.ToString((75-4.62))},

                //        {"D1@Эскиз24", type ==  RoofType.Five || type == RoofType.Six? Convert.ToString(149.53) : Convert.ToString(9.53)},

                //        {"D1@Кривая2", Convert.ToString(weldW2*1000)},
                //        {"D1@Кривая1", Convert.ToString(weldW*1000)}
                //    } );
                try
                {
                    VentsMatdll(new[] { "1700" }, new[] { "", "Шаргень", "2" }, newPartName);
                }
                catch (Exception e)
                {
                    Patterns.Observer.MessageObserver.Instance.SetMessage(e.ToString());
                }

                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(newPartName);
            }



            //15-002
            if (type == RoofType_e.Six)
            {
                try
                {
                    SolidWorksAdapter.SldWoksAppExemplare.IActivateDoc2("15-002", true, 0);
                    newPartName = $"15-0{type}-02-{width}-{lenght}";


                    CheckExistPart(newPartName, out IsExistPart, out newPartPath);
                    if (IsExistPart)
                    {
                        solidWorksDocument = ((ModelDoc2)(SolidWorksAdapter.SldWoksAppExemplare.ActivateDoc2("15-000.SLDASM", true, 0)));
                        solidWorksDocument.Extension.SelectByID2("15-002-1@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                        solidWorcsAssemvlyDocyment.ReplaceComponents(newPartPath, "", true, true);
                        SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("15-002.SLDPRT");
                    }
                    else
                    {
                        newPartPath =
                            $@"{RootFolder}\{SubjectDestinationFolder}\{newPartName}.SLDPRT";
                        //EditPartParameters("15-002",
                        //    $@"{RootFolder}\{SubjectDestinationFolder}\{newPartName}",
                        //    new[,]
                        //    {
                        //        {"D1@Эскиз1",  type ==  RoofType.Five || type ==  RoofType.Six ? Convert.ToString(140 + lengthD + type4) : Convert.ToString(lengthD + type4)},
                        //        {"D2@Эскиз1", Convert.ToString(widthD)},
                        //        {"D4@Эскиз27", Convert.ToString(addwidth2-4.62)},
                        //        {"D1@Эскиз27", Convert.ToString(90)},
                        //        {"D2@Эскиз27", Convert.ToString((75-4.62))},

                        //        {"D2@Эскиз23", type ==  RoofType.Five || type ==  RoofType.Six ? Convert.ToString(165) : Convert.ToString(25)},

                        //        {"D1@Кривая2", Convert.ToString(weldW2*1000)},
                        //        {"D1@Кривая1", Convert.ToString(weldW*1000)}
                        //    } );
                        try
                        {
                            VentsMatdll(new[] { "1700" }, new[] { "", "Шаргень", "2" }, newPartName);
                        }
                        catch (Exception e)
                        {
                            //MessageBox.Show(e.ToString());
                        }

                        SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(newPartName);
                    }
                    solidWorksDocument = ((ModelDoc2)(SolidWorksAdapter.SldWoksAppExemplare.ActivateDoc2("15-000.SLDASM", true, 0)));
                    solidWorksDocument.Extension.SelectByID2("15-001-3@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    solidWorksDocument.Extension.SelectByID2("ЗеркальныйКомпонент2@15-000", "COMPPATTERN", 0, 0, 0, false, 0, null, 0);
                    solidWorksDocument.EditSuppress2();
                }
                catch (Exception e)
                {
                    Patterns.Observer.MessageObserver.Instance.SetMessage(e.ToString());
                }
            }
            else if (type != RoofType_e.Six)
            {
                solidWorksDocument = ((ModelDoc2)(SolidWorksAdapter.SldWoksAppExemplare.ActivateDoc2("15-000.SLDASM", true, 0)));
                solidWorksDocument.Extension.SelectByID2("15-002-1@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                solidWorksDocument.EditDelete();
            }

            switch (type)
            {
            case  RoofType_e.Two:
            case  RoofType_e.Six:
                solidWorksDocument.Extension.SelectByID2("Винт самосверл 6-гр.гол с шайбой-33@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                solidWorksDocument.EditDelete();
                break;

            default:
                solidWorksDocument.Extension.SelectByID2("Винт самосверл 6-гр.гол с шайбой-26@15-000", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                solidWorksDocument.EditDelete();
                break;
            }

            #endregion

            //  GabaritsForPaintingCamera(SolidWorksDocument);
            try
            {
                solidWorksDocument.ForceRebuild3(true);
                //Console.WriteLine("newRoofPath " + newRoofPath);
                solidWorksDocument.SaveAs2(newRoofPath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, false, true);
                newComponents.Add(new FileInfo(newRoofPath));
                SolidWorksAdapter.CloseAllDocumentsAndExit();
                //  PDMWebService.Data.PDM.SolidWorksPdmAdapter.Instance.CheckInOutPdm(newComponents, true);
                //Console.WriteLine("RoofBuilder строка 324 пересмотреть CheckInOutPdm");

                foreach (var newComponent in ComponentsPathList)
                {
                    //   ExportXmlSql.Export(newComponent.FullName);
                }
            }
            catch (Exception ex)
            {
                Patterns.Observer.MessageObserver.Instance.SetMessage(ex.ToString());
            }
            if (onlyPath)
            {
                return(newRoofPath);
            }
            //MessageBox.Show(newRoofPath, "Модель построена");

            return(newRoofPath);
        }
        public void BuildMountageFrame(bool cheched, int width, int lenght, int thikness, int FrameType, int offset, int materialID)
        {
            string assemblyName          = "10-4";
            string modelMontageFramePath = $@"{base.RootFolder}\{base.SourceFolder}\{assemblyName}.SLDASM";

            SolidWorksDocument = SolidWorksAdapter.OpenDocument(modelMontageFramePath, swDocumentTypes_e.swDocASSEMBLY, "");
            tbAssemblyNameDataContext bildFrame = new tbAssemblyNameDataContext();

            SolidWorksAdapter.ToAssemblyDocument(SolidWorksDocument);
            int?ID = 0;

            ID = bildFrame.AirVents_AddAssemblyFrame(FrameType, width, lenght, thikness, offset, 0, ref ID);
            string assmblName = ID?.ToString();

            if (cheched)
            {
                width = width - 20;
            }

            tempOffset = offset;
            if (offset > (lenght - 125) * 10)
            {
                offset = (lenght - 250) * 10;
                MessageBox.Show("Смещение превышает допустимое значение! Программой установлено - " + (offset / 10));
            }
            else
            {
                SetBends = GetSetBends;                                          //получаем значения KFactor, BendRadius из SWPlusBD Materials.BendTable

                GetFrameType((MontageFrameType_e)FrameType, lenght, out offset); //определяем по типу рамы, какие балки удалять

                SetBends?.Invoke((decimal)thikness, out KFactor, out BendRadius);

                if (lenght > 1000)
                {
                    SolidWorksDocument.Extension.SelectByID2("Middle@10-01-01-4-1@10-4", "FTRFOLDER", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.EditUnsuppress2();
                    SolidWorksDocument.Extension.SelectByID2("Middle", "FTRFOLDER", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.EditUnsuppress2();
                }

                #region Удаление поперечной балки
                //Тип рамы 2
                if (internalCrossbeam == false)
                {
                    SolidWorksDocument.Extension.SelectByID2("10-03-01-4-1@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-39@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-40@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Washer 6402_gost-23@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Гайка DIN 934-19@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Болт DIN 933-22@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-41@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-42@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Washer 6402_gost-24@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Гайка DIN 934-20@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Болт DIN 933-23@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-43@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-44@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Washer 6402_gost-25@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Гайка DIN 934-21@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Болт DIN 933-24@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-45@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Шайба DIN 125-46@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Washer 6402_gost-26@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Гайка DIN 934-22@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();
                    SolidWorksDocument.Extension.SelectByID2("Болт DIN 933-25@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                    SolidWorksDocument.EditDelete();

                    // Удаление ненужных элементов продольной балки
                    SolidWorksDocument.Extension.SelectByID2("Вырез-Вытянуть8@10-01-01-4-1@10-4", "BODYFEATURE", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.EditSuppress2();
                }

                #endregion

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

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

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

                    foreach (var s in new[] { "10", "11", "12", "13", "40", "41", "42", "43" })
                    {
                        SolidWorksDocument.Extension.SelectByID2("Гайка DIN 934-" + s + "@10-4", "COMPONENT", 0, 0, 0, true, 0, null, 0);
                        SolidWorksDocument.EditDelete();
                    }

                    int deleteOption = (int)swDeleteSelectionOptions_e.swDelete_Absorbed + (int)swDeleteSelectionOptions_e.swDelete_Children;
                    SolidWorksDocument.Extension.SelectByID2("Вырез-Вытянуть5@10-03-01-4@10-4", "BODYFEATURE", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.Extension.DeleteSelection2(deleteOption);
                    SolidWorksDocument.Extension.SelectByID2("Вырез-Вытянуть4@10-03-01-4@10-4", "BODYFEATURE", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.Extension.DeleteSelection2(deleteOption);
                }
                else
                {
                    //Продольные балки (Длина установки)
                    ID = 0;
                    ID = bildFrame.AirVents_AddAssemblyFrame(FrameType, width, 0, thikness, 0, 4, ref ID);

                    SolidWorksDocument.Extension.SelectByID2("10-04-4-2@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    SolidWorksDocument.EditUnsuppress2();

                    base.parameters.Add("D1@Эскиз1", lenght - 140);
                    base.parameters.Add("D1@Листовой металл", (double)BendRadius);
                    base.parameters.Add("D2@Листовой металл", (double)KFactor * 1000);
                    base.parameters.Add("Толщина@Листовой металл", thikness);

                    EditPartParameters("10-04-4", base.NewPartPath + @"\10-" + ID, materialID);
                }

                #endregion
            }

            #region Изменение параметров
            if (internalCrossbeam == true)
            {
                ID = 0;
                ID = bildFrame.AirVents_AddAssemblyFrame(FrameType, width, 0, thikness, offset, 2, ref ID);
                bildFrame.SubmitChanges();

                SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("10-01-01-4");

                SolidWorksDocument.Extension.SaveAs(base.NewPartPath + @"\10-" + ID + ".SLDPRT", (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent
                                                    + (int)swSaveAsOptions_e.swSaveAsOptions_Copy, null, ref errors, warnings);
                SolidWorksAdapter.CloseDocument(SolidWorksDocument);

                SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("10-4");


                SolidWorksDocument.Extension.SelectByID2("10-01-01-4-2@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
                AssemblyDocument.ReplaceComponents(base.NewPartPath + @"\10-" + ID + ".SLDPRT", "", false, true);

                base.parameters.Add("D1@Эскиз1", lenght);
                base.parameters.Add("D3@Эскиз25", lenght - offset);
                base.parameters.Add("D1@Листовой металл", (double)BendRadius);
                base.parameters.Add("D2@Листовой металл", (double)KFactor * 1000);
                base.parameters.Add("Толщина@Листовой металл", thikness);
                EditPartParameters(@"10-" + ID, base.NewPartPath + @"\10 -" + ID, materialID);
            }

            //Продольные балки (Длина установки)
            ID = 0;
            ID = bildFrame.AirVents_AddAssemblyFrame(FrameType, lenght, 0, thikness, offset, 1, ref ID);
            bildFrame.SubmitChanges();

            base.parameters.Add("D1@Эскиз1", lenght);
            base.parameters.Add("D3@Эскиз25", offset);
            base.parameters.Add("D1@Листовой металл", (double)BendRadius);
            base.parameters.Add("D2@Листовой металл", (double)KFactor * 1000);
            base.parameters.Add("Толщина@Листовой металл", thikness);
            EditPartParameters("10-01-01-4", base.NewPartPath + @"\10-" + ID, materialID);

            // Поперечная балка (Ширина установки)
            ID = 0;
            ID = bildFrame.AirVents_AddAssemblyFrame(FrameType, Convert.ToInt32(width - 0.12), 0, thikness, 0, 3, ref ID);
            bildFrame.SubmitChanges();


            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc("10-4");
            SolidWorksDocument.Extension.SelectByID2("10-03-01-4-1@10-4", "COMPONENT", 0, 0, 0, false, 0, null, 0);
            SolidWorksDocument.EditUnsuppress2();

            base.parameters.Add("D2@Эскиз1", width - 0.12);
            base.parameters.Add("D1@Листовой металл", (double)BendRadius);
            base.parameters.Add("D2@Листовой металл", (double)KFactor * 1000);
            base.parameters.Add("Толщина@Листовой металл", thikness);
            EditPartParameters("10-03-01-4", base.NewPartPath + @"\10-" + ID, materialID);
            #endregion

            SaveDoc(assmblName);
        }
Example #15
0
        //Profiles for reinforcing panel
        #region Усиливающие рамки
        public void ReinforcingProfile(string testName)
        {
            const double thiknessF = 1;
            //var bendParams = sbSqlBaseData.BendTable(thiknessF);
            //var bendRadius = Convert.ToDouble(bendParams[0]);
            //var kFactor = Convert.ToDouble(bendParams[1]);
            const double heightF = 38.0; // Артурчик сказал не надо. 06.03.2017 16:45

            #region  Усиливающая рамка по ширине
            //newName = усиливающаяРамкаПоШирине.NewName;
            //newName = modelName + "-06-" + width + "-" + "40-" + materialP2[0] + скотч;
            //newPartPath = $@"{Settings.Default.DestinationFolder}\{_destinationFolder}\{newName}.SLDPRT";



            SolidWorksDocument = SolidWorksAdapter.AcativeteDoc(testName);// "02-11-07-40-"); // horisontal up

            if (false)
            {
            }
            else
            {
                parameters.Add("D2@Эскиз1", framelessPanel.PanelType == PanelType_e.RemovablePanel ? framelessPanel.SizePanel.X - 49.2 : framelessPanel.SizePanel.X - 47.2);
                //parameters.Add("D1@Эскиз1", heightF);
                parameters.Add("D1@Кривая3", ScrewsByWidthInner);
                parameters.Add("D1@Кривая2", колСаморезВинтШирина);
                //Размеры для отверсти под клепальные гайки под съемные панели
                parameters.Add("G0@Эскиз32", OutputHolesWrapper.G0 - 3.6);
                parameters.Add("G1@Эскиз32", OutputHolesWrapper.G1);
                parameters.Add("G2@Эскиз32", OutputHolesWrapper.G2);
                parameters.Add("G3@Эскиз32", OutputHolesWrapper.G0);
                //Convert.ToString(количествоВинтов)
                parameters.Add("L1@Эскиз32", OutputHolesWrapper.L1);
                parameters.Add("D1@Кривая4", OutputHolesWrapper.D1);
                parameters.Add("L2@Эскиз32", OutputHolesWrapper.L2);
                parameters.Add("D1@Кривая5", OutputHolesWrapper.D2);
                parameters.Add("L3@Эскиз32", OutputHolesWrapper.L3);
                parameters.Add("D1@Кривая6", OutputHolesWrapper.D3);
                parameters.Add("Толщина@Листовой металл", thiknessF);
                parameters.Add("D1@Листовой металл", (double)BendRadius);
                parameters.Add("D2@Листовой металл", (double)KFactor * 1000);
                EditPartParameters("02-11-06-40-", "", 0);
                //    $@"{Settings.Default.DestinationFolder}\{_destinationFolder}\{newName}",
            }

            #endregion

            #region  Усиливающая рамка по ширине 2

            if (framelessPanel.PanelType == PanelType_e.BlankPanel)
            {
                SolidWorksDocument = ((ModelDoc2)(SolidWorksAdapter.SldWoksAppExemplare.ActivateDoc2(AssemblyName + ".SLDASM", true, 0)));
                DocumentExtension.SelectByID2("02-11-06_2-40--4@" + AssemblyName, "COMPONENT", 0, 0, 0, false, 0, null, 0);
                //  AssemblyDocument.ReplaceComponents(System.IO.Path.Combine(RootFolder, SubjectDestinationFolder, усиливающаяРамкаПоШирине.NewName + "SLDPRT"), String.Empty, true, true);
                //($@"{RootFolder}\{SubjectDestinationFolder}\{усиливающаяРамкаПоШирине.NewName}.SLDPRT", "", true, true);

                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("02-11-06_2-40-.SLDPRT");
            }
            else
            {
                //newName = усиливающаяРамкаПоШирине2.NewName;
                //newName = modelName + "-06-" + width + "-" + "40-" + materialP2[0] + скотч;
                //newPartPath = $@"{Settings.Default.DestinationFolder}\{_destinationFolder}\{newName}.SLDPRT";

                if (false)
                {
                    SolidWorksDocument = ((ModelDoc2)(SolidWorksAdapter.SldWoksAppExemplare.ActivateDoc2(AssemblyName + ".SLDASM", true, 0)));
                    DocumentExtension.SelectByID2("02-11-06_2-40--4@" + AssemblyName, "COMPONENT", 0, 0, 0, false, 0, null, 0);
                    AssemblyDocument.ReplaceComponents(base.NewPartPath, "", true, true);
                    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("02-11-06_2-40-.SLDPRT");
                }
                else
                {
                    parameters.Add("D2@Эскиз1", framelessPanel.PanelType == PanelType_e.RemovablePanel ? framelessPanel.SizePanel.X - 49.2 : framelessPanel.SizePanel.X - 47.2);
                    parameters.Add("D1@Эскиз1", heightF);
                    parameters.Add("D1@Кривая3", ScrewsByWidthInner);
                    parameters.Add("D1@Кривая2", колСаморезВинтШирина);
                    parameters.Add("G0@Эскиз32", OutputHolesWrapper.G0 - 3.6);
                    parameters.Add("G1@Эскиз32", OutputHolesWrapper.G1);
                    parameters.Add("G2@Эскиз32", OutputHolesWrapper.G2);
                    parameters.Add("G3@Эскиз32", OutputHolesWrapper.G0);
                    parameters.Add("L1@Эскиз32", OutputHolesWrapper.L1);
                    parameters.Add("D1@Кривая4", OutputHolesWrapper.D1);
                    parameters.Add("L2@Эскиз32", OutputHolesWrapper.L2);
                    parameters.Add("D1@Кривая5", OutputHolesWrapper.D2);
                    parameters.Add("L3@Эскиз32", OutputHolesWrapper.L3);
                    parameters.Add("D1@Кривая6", OutputHolesWrapper.D3);
                    parameters.Add("Толщина@Листовой металл", thiknessF);
                    parameters.Add("D1@Листовой металл", (double)base.BendRadius);
                    parameters.Add("D2@Листовой металл", (double)base.KFactor * 1000);
                    EditPartParameters("02-11-06_2-40-", NewPartPath, 0);
                }
            }

            #endregion

            #region  Усиливающая рамка по высоте

            // PartName = усиливающаяРамкаПоВысоте.NewName;

            NewPartPath = "";                                                                                   // newName = modelName + "-07-" + lenght + "-" + "40-" + materialP2[0] + скотч;
            NewPartPath = System.IO.Path.Combine(RootFolder, SubjectDestinationFolder, NewPartPath + "SLDPRT"); //$@"{Settings.Default.DestinationFolder}\{_destinationFolder}\{newName}.SLDPRT";

            //if (GetExistingFile(Path.GetFileNameWithoutExtension(NewPartPath), 1)) {
            //    SolidWorksDocument = ((ModelDoc2)(SolidWorksAdapter.SldWoksAppExemplare.ActivateDoc2(AssemblyName + ".SLDASM", true, 0)));
            //    DocumentExtension.SelectByID2("02-11-07-40--1@" + AssemblyName, "COMPONENT", 0, 0, 0, false, 0, null, 0);
            //    AssemblyDocument.ReplaceComponents(newPartPath, "", true, true);
            //    SolidWorksAdapter.SldWoksAppExemplare.CloseDoc("02-11-07-40-.SLDPRT");
            if (false)
            {
                ;
            }

            else
            {
                parameters.Add("D3@Эскиз1", framelessPanel.PanelType == PanelType_e.RemovablePanel ? framelessPanel.SizePanel.Y - 2 : framelessPanel.SizePanel.Y);
                parameters.Add("D1@Эскиз1", heightF);
                parameters.Add("D1@Эскиз23", framelessPanel.PanelType == PanelType_e.BlankPanel ? 44.4 : 125);
                parameters.Add("D1@Кривая2", ScrewsByHeightInner);
                parameters.Add("D1@Кривая1", колЗаклепокВысота);
                parameters.Add("Толщина@Листовой металл", thiknessF);
                parameters.Add("D1@Листовой металл", (double)base.BendRadius);
                parameters.Add("D2@Листовой металл", (double)base.KFactor * 1000);

                EditPartParameters("02-11-07-40-", NewPartPath, 0);
                #endregion
            }

            #endregion
        }