예제 #1
0
        // Толщина листового металла
        internal void AddPropThickness(string configName, bool sheet)
        {
            _swapp = new SldWorks {
                Visible = true
            };
            _swmodel = (ModelDoc2)_swapp.ActiveDoc;
            try
            {
                if (sheet)
                {
                    _swmodel.DeleteCustomInfo2(configName, "Толщина листового металла");

                    var titleName = _swmodel.GetTitle();

                    _swmodel.AddCustomInfo3(configName, "Толщина листового металла", 30, "\"Толщина@" + configName + "@" + titleName + ".sldprt" + "\"");
                    _swmodel.ShowConfiguration(configName);
                }
                else
                {
                    _swmodel.DeleteCustomInfo2(configName, "Толщина листового металла");
                }
            }
            catch (Exception ex)
            {
                Error = ex.Message;
            }
        }
예제 #2
0
        // Проверка на дублирование конфигураций
        public void SplitConfigurations(string configName)
        {
            swApp   = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");
            swModel = swApp.ActiveDoc;

            CustomPropertyManager swCustProp;
            var ValOut = "";
            var number = "";
            var razdel = "";

            swCustProp = swModel.Extension.CustomPropertyManager[configName];

            if (swModel.CustomInfo2["", "RenameSWP"] == "1")
            {
                return;
            }

            if (configName != "00")
            {
                swCustProp.Get4("Обозначение", true, out ValOut, out number);

                swCustProp.Get4("Раздел", true, out ValOut, out razdel);

                //var stringSldasm = swModel.GetTitle().Replace(".SLDASM", "");

                //if (number != swModel.GetTitle() + "-" + configName)
                if ((number != swModel.GetTitle().Replace(".SLDASM", "") + "-" + configName) || (number != swModel.GetTitle().Replace(".SLDPRT", "") + "-" + configName))
                {
                    if (razdel == "Детали" | razdel == "Сборочные единицы")
                    {
                        MessageBox.Show("Для конфигурации " + "\"" + configName + "\"" + " не проставленно исполнение. Параметр будет проставлен автоматически.");

                        swModel.DeleteCustomInfo2(configName, "Обозначение");
                        swModel.DeleteCustomInfo2(configName, "Исполнение");
                        swModel.AddCustomInfo3(configName, "Исполнение", 30, "");

                        swModel.AddCustomInfo3(configName, "Обозначение", 30, "$PRP:\"SW-File Name\"-" + configName);
                        swModel.AddCustomInfo3(configName, "Обозначение", 30, "$PRP:\"SW-File Name\"");
                        swModel.CustomInfo2[configName, "Исполнение"] = "1";

                        swModel.ForceRebuild3(false);
                    }
                }
            }
        }
예제 #3
0
        private string[] vCustInfoNameArr; // Массив свойств файла
        public void DeleteAllProperties()
        {
            try
            {
                // Удаление свойств из ConfigCpec
                vConfNameArr = SwModel.GetConfigurationNames();

                for (var i = 0; i <= vConfNameArr.GetUpperBound(0); i++)
                {
                    vCustInfoNameArr = SwModel.GetCustomInfoNames2(vConfNameArr[i]);

                    for (var j = 0; j <= vCustInfoNameArr.GetUpperBound(0); j++)
                    {
                        SwModel.DeleteCustomInfo2(vConfNameArr[i], vCustInfoNameArr[j]);
                    }
                }

                // Удаление свойств из CustomProperty
                vCustInfoNameArr = SwModel.GetCustomInfoNames2("");

                for (var j = 0; j <= vCustInfoNameArr.GetUpperBound(0); j++)
                {
                    SwModel.DeleteCustomInfo2("", vCustInfoNameArr[j]);
                }

                SwModel.SummaryInfo[0] = ""; //swSumInfoTitle
                SwModel.SummaryInfo[1] = ""; //swSumInfoSubject
                SwModel.SummaryInfo[2] = ""; //swSumInfoAuthor
                SwModel.SummaryInfo[3] = ""; //swSumInfoKeywords
                SwModel.SummaryInfo[4] = ""; //swSumInfoComment

                //if (m == 0)
                //{
                //    var swPartDoc = (PartDoc)SwModel;
                //    swPartDoc.SetMaterialPropertyName("", "");
                //}
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Message: {ex.Message}\r\nTargetSite: {ex.TargetSite}\r\nStackTrace: {ex.StackTrace}");
            }
        }
        private void RB2_Click(object sender, RoutedEventArgs e)
        {
            if (Rb2.IsChecked == true)
            {
                SpinButton.IsEnabled = true;
                int  n;
                bool isNumeric = int.TryParse(_swModel.CustomInfo2["", "Revision"], out n);

                if (isNumeric)
                {
                    SpinButton.Content = _swModel.CustomInfo2["", "Revision"];
                }
                else
                {
                    _swModel.DeleteCustomInfo2("", "Revision");
                }
            }
        }
예제 #5
0
        public static void UpdateProperty(MaterialModel objMaterial)
        {
            //1.打开指定的SW文件
            ModelDoc2 swDoc = swAppHelper.ActiveDoc(Globals.FileName);
            //2.获取当前激活配置名
            string configName = swDoc.ConfigurationManager.ActiveConfiguration.Name;

            #region 封装所有的SolidWorks属性(配置+自定义)
            //获取属性值:图号、名称、型号规格、单位、热处理、表面处理、品牌、血液
            Dictionary <string, string> MyCustominfos = new Dictionary <string, string>();
            MyCustominfos.Add("Identification Nb", objMaterial.MaterialCode);
            MyCustominfos.Add("Description", objMaterial.MaterialName);
            MyCustominfos.Add("规格", objMaterial.MaterialSpec);
            MyCustominfos.Add("型号", objMaterial.MaterialType);
            MyCustominfos.Add("单位", objMaterial.Unit);
            MyCustominfos.Add("加工属性", objMaterial.MachiningPropertyId);
            MyCustominfos.Add("涂装颜色", objMaterial.PaintingColor);
            MyCustominfos.Add("品牌", objMaterial.BrandId);
            //遍历每个属性并赋值
            foreach (string key in MyCustominfos.Keys)
            {
                //删除,添加配置特定的属性
                swDoc.DeleteCustomInfo2(configName, key);
                swDoc.AddCustomInfo3(configName, key, (int)swCustomInfoType_e.swCustomInfoText, MyCustominfos[key]);
                //删除,添加自定义的属性
                swDoc.DeleteCustomInfo(key);
                swDoc.AddCustomInfo2(key, (int)swCustomInfoType_e.swCustomInfoText, MyCustominfos[key]);
            }
            #endregion

            #region 重建模型
            swDoc.ClearSelection();    //清除选择
            swDoc.ForceRebuild3(true); //重建模型Ctrl+Q
            //swDoc.ShowNamedView2("*等轴测", 7);//等轴测显示
            //swDoc.ViewZoomtofit2();//全屏显示
            //swDoc.Save();
            //swAppHelper.CloseDoc(objDoc.OriginalFileName);
            #endregion
        }
        public void CmdRevMethod(bool m)
        {
            try
            {
                if (m & string.IsNullOrEmpty(TxtBox.Text))
                {
                    MessageBox.Show("Введите номер извещения.");
                    return;
                }

                for (var i = 0; i <= _vSheetNames.GetUpperBound(0); i++)
                {
                    //TODO: _swNote

                    //ok = _swDraw.ActivateSheet(_vSheetNames[i]);
                    _swDraw.ActivateSheet(_vSheetNames[i]);
                    _swSheet            = _swDraw.GetCurrentSheet();
                    _strSheetFormatName = _swSheet.GetSheetFormatName();

                    _swModel = (ModelDoc2)_swDraw;

                    _swSelMgr = _swModel.SelectionManager;

                    //MessageBox.Show(_swSelMgr.ToString());
                    // Дата
                    StrTempData = "Revision4@" + _strSheetFormatName;
                    ok          = _swModel.Extension.SelectByID2(StrTempData, "NOTE", 0, 0, 0, false, 0, null, 0);

                    if (ok)
                    {
                        _swNote = _swSelMgr.GetSelectedObject2(1);

                        //MessageBox.Show(_swNote.ToString());
                        if (m)
                        {
                            var date = (DateTime)StrData.SelectedDate;
                            StrTempData = Convert.ToString(date.ToString("dd-MM-yy"));
                            _swNote.SetText(StrTempData);
                        }
                        else
                        {
                            //MessageBox.Show(StrTempData);
                            StrTempData = _swNote.GetText();

                            if (StrTempData == "" | StrTempData == " ")
                            {
                                StrData.SelectedDate = (DateTime.Today);
                            }
                            else
                            {
                                StrData.SelectedDate = Convert.ToDateTime(StrTempData);
                            }
                        }
                    }

                    // Номер
                    StrTempNumber = "Revision3@" + _strSheetFormatName;
                    _swModel.Extension.SelectByID2(StrTempNumber, "NOTE", 0, 0, 0, false, 0, null, 0);

                    if (ok)
                    {
                        _swNote = _swSelMgr.GetSelectedObject2(1);

                        if (m)
                        {
                            StrTempNumber = "ИКД-" + TxtBox.Text;
                            _swNote.SetText(StrTempNumber);
                        }
                        else
                        {
                            StrTempNumber = _swNote.GetText();
                            if (StrTempNumber != " ")
                            {
                                TxtBox.Text = StrTempNumber.Substring(4);
                            }
                        }
                    }

                    // Зам.
                    _strTemp = "Revision2@" + _strSheetFormatName;
                    _swModel.Extension.SelectByID2(_strTemp, "NOTE", 0, 0, 0, false, 0, null, 0);


                    if (ok)
                    {
                        _swNote = _swSelMgr.GetSelectedObject2(1);


                        if (m)
                        {
                            if (Rb1.IsChecked == true)
                            {
                                _swNote.SetText("Зам.");
                                _swModel.DeleteCustomInfo2("", "Revision");
                            }

                            if (Rb3.IsChecked == true)
                            {
                                _swNote.SetText("Нов.");
                                _swModel.DeleteCustomInfo2("", "Revision");
                            }

                            if (Rb2.IsChecked == true)
                            {
                                _swNote.SetText("Змін.");
                                _swModel.DeleteCustomInfo2("", "Revision");
                                _swModel.AddCustomInfo3("", "Revision", 30, "");
                                _swModel.CustomInfo2["", "Revision"] = Convert.ToString(SpinButton.Content);
                            }
                        }
                        else
                        {
                            _strTemp = _swNote.GetText();

                            if (_strTemp == "Зам.")
                            {
                                Rb1.IsChecked        = true;
                                Rb3.IsChecked        = false;
                                Rb2.IsChecked        = false;
                                SpinButton.IsEnabled = false;
                            }

                            if (_strTemp == "Нов.")
                            {
                                Rb1.IsChecked        = false;
                                Rb3.IsChecked        = true;
                                Rb2.IsChecked        = false;
                                SpinButton.IsEnabled = false;
                            }

                            if (_strTemp == "Змін.")
                            {
                                Rb1.IsChecked        = false;
                                Rb3.IsChecked        = false;
                                Rb2.IsChecked        = true;
                                SpinButton.IsEnabled = true;
                            }

                            int  n;
                            bool isNumeric = int.TryParse(_swModel.CustomInfo2["", "Revision"], out n);

                            if (isNumeric)
                            {
                                SpinButton.Content = _swModel.CustomInfo2["", "Revision"];
                            }
                            else
                            {
                                _swModel.DeleteCustomInfo2("", "Revision");
                            }
                        }
                    }
                }

                // Возвращение активного листа
                _swDraw.ActivateSheet(_strActiveSheetName);

                // Перестраиваем чертеж
                _swModel.ForceRebuild3(false);

                _swModel.GraphicsRedraw2();
                _swModel.ClearSelection2(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "; " + ex.StackTrace);
            }
        }
예제 #7
0
        // Set Custom Property
        internal void CustomProperty(string lvlId, string configName, string swProp, string materialsNameEng, string codeErp, string CodeMaterial, string descriptCode, SldWorks swApp)
        {
            try
            {
                //_swapp = new SldWorks { Visible = true };
                //_swapp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");

                if (swApp == null)
                {
                    swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");
                }

                _swmodel = swApp.ActiveDoc;

                _swmodel.DeleteCustomInfo2(configName, "MaterialID");
                _swmodel.DeleteCustomInfo2(configName, "Материал_ФБ");
                _swmodel.DeleteCustomInfo2(configName, "Код материала");
                _swmodel.DeleteCustomInfo2(configName, "Код");
                _swmodel.DeleteCustomInfo2(configName, "Материал");
                _swmodel.DeleteCustomInfo2(configName, "Материал_Таблица");
                _swmodel.DeleteCustomInfo2(configName, "Material");
                _swmodel.DeleteCustomInfo2(configName, "Материал_имя");

                // Имя материала на английском
                _swmodel.AddCustomInfo3(configName, "Material", 30, materialsNameEng);
                _swmodel.AddCustomInfo3(configName, "Материал_имя", 30, "\"" + @"SW-Material@@" + configName + "@" + _swmodel.GetTitle() + ".SLDPRT" + "\"");

                var grouped = GetMaterialsNameList(swApp).GroupBy(s => s).Select(group => new { Word = group.Key, Count = group.Count() });

                if (grouped.Count() == 1)
                {
                    //MessageBox.Show("1");
                    _swmodel.AddCustomInfo3(configName, "Материал_ФБ", 30, swProp);

                    if (swProp == "")
                    {
                        _swmodel.DeleteCustomInfo2(configName, "Материал_ФБ");
                    }
                }
                else
                {
                    //MessageBox.Show("2");
                    _swmodel.AddCustomInfo3(configName, "Материал_ФБ", 30, "<FONT size=1.8> " + Convert.ToChar(10) + "<FONT size=3.5>" + "См. таблицу");

                    if (swProp == "")
                    {
                        _swmodel.DeleteCustomInfo2(configName, "Материал_ФБ");
                    }

                    _swmodel.AddCustomInfo3(configName, "Материал_Таблица", 30, swProp);

                    if (swProp == "")
                    {
                        _swmodel.DeleteCustomInfo2(configName, "Материал_Таблица");
                    }
                }

                _swmodel.AddCustomInfo3(configName, "MaterialID", 3, lvlId);

                _swmodel.AddCustomInfo3(configName, "Код материала", 30, codeErp);
                if (codeErp == "")
                {
                    _swmodel.DeleteCustomInfo2(configName, "Код материала");
                }

                _swmodel.AddCustomInfo3(configName, "Код", 30, CodeMaterial);
                if (CodeMaterial == "")
                {
                    _swmodel.DeleteCustomInfo2(configName, "Код");
                }

                _swmodel.AddCustomInfo3(configName, "Материал", 30, descriptCode);
                if (descriptCode == "")
                {
                    _swmodel.DeleteCustomInfo2(configName, "Материал");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "; " + ex.StackTrace);
            }
        }
예제 #8
0
        internal void DeleteOrAddPropertyColor(string ConfigName, string RAL, string ralRus, string ralErp, string coatingtype, string coatingclass, bool color, SldWorks swApp)
        {
            if (swApp == null)
            {
                //_swapp = new SldWorks { Visible = true };
                swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");
            }


            _swmodel = (ModelDoc2)swApp.ActiveDoc;

            try
            {
                if (color)
                {
                    _swmodel.DeleteCustomInfo2(ConfigName, "Площадь покрытия");
                    _swmodel.DeleteCustomInfo2(ConfigName, "RAL");
                    _swmodel.DeleteCustomInfo2(ConfigName, "RALRus");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Ral_ERP");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Тип покрытия");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Класс покрытия");

                    var titleName = _swmodel.GetTitle();

                    _swmodel.AddCustomInfo3(ConfigName, "Площадь покрытия", 30, "\"SW-SurfaceArea@@" + ConfigName + "@" + titleName + ".sldprt" + "\"");
                    _swmodel.AddCustomInfo3(ConfigName, "RAL", 30, RAL);
                    _swmodel.AddCustomInfo3(ConfigName, "RALRus", 30, ralRus);
                    _swmodel.AddCustomInfo3(ConfigName, "Ral_ERP", 30, ralErp);

                    _swmodel.AddCustomInfo3(ConfigName, "Тип покрытия", 30, coatingtype);
                    _swmodel.AddCustomInfo3(ConfigName, "Класс покрытия", 30, coatingclass);

                    _swmodel.ShowConfiguration(ConfigName);

                    GetPropertyBox(ConfigName);
                }
                else
                // Если не красим
                {
                    _swmodel.DeleteCustomInfo2(ConfigName, "Площадь покрытия");
                    _swmodel.DeleteCustomInfo2(ConfigName, "RAL");
                    _swmodel.DeleteCustomInfo2(ConfigName, "RALRus");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Ral_ERP");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Длина");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Ширина");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Высота");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Тип покрытия");
                    _swmodel.DeleteCustomInfo2(ConfigName, "Класс покрытия");
                }
            }
            catch (Exception ex)
            {
                Error = ex.Message;
            }
        }
예제 #9
0
        // Set Custom Property
        internal void CustomProperty(int lvlId, string configName, string swProp, string materialsNameEng, string codeErp, string CodeMaterial, string descriptCode, SldWorks swApp)
        {
            _swmodel = swApp.ActiveDoc;

            _swmodel.DeleteCustomInfo2(configName, "MaterialID");
            _swmodel.DeleteCustomInfo2(configName, "Материал_ФБ");
            _swmodel.DeleteCustomInfo2(configName, "Код материала");
            _swmodel.DeleteCustomInfo2(configName, "Код");
            _swmodel.DeleteCustomInfo2(configName, "Материал");
            _swmodel.DeleteCustomInfo2(configName, "Материал_Таблица");
            _swmodel.DeleteCustomInfo2(configName, "Material");

            // Имя материала на английском
            _swmodel.AddCustomInfo3(configName, "Material", 30, materialsNameEng);

            var grouped = GetMaterialsNameList(swApp).GroupBy(s => s).Select(group => new { Word = group.Key, Count = group.Count() });

            if (grouped.Count() == 1)
            {
                _swmodel.AddCustomInfo3(configName, "Материал_ФБ", 30, swProp);

                if (swProp == "")
                {
                    _swmodel.DeleteCustomInfo2(configName, "Материал_ФБ");
                }
            }
            else
            {
                _swmodel.AddCustomInfo3(configName, "Материал_ФБ", 30, "<FONT size=1.8> " + Convert.ToChar(10) + "<FONT size=3.5>" + "См. таблицу");

                if (swProp == "")
                {
                    _swmodel.DeleteCustomInfo2(configName, "Материал_ФБ");
                }

                _swmodel.AddCustomInfo3(configName, "Материал_Таблица", 30, swProp);

                if (swProp == "")
                {
                    _swmodel.DeleteCustomInfo2(configName, "Материал_Таблица");
                }
            }

            _swmodel.AddCustomInfo3(configName, "MaterialID", 3, lvlId.ToString());

            _swmodel.AddCustomInfo3(configName, "Код материала", 30, codeErp);
            if (codeErp == "")
            {
                _swmodel.DeleteCustomInfo2(configName, "Код материала");
            }

            _swmodel.AddCustomInfo3(configName, "Код", 30, CodeMaterial);
            if (CodeMaterial == "")
            {
                _swmodel.DeleteCustomInfo2(configName, "Код");
            }

            _swmodel.AddCustomInfo3(configName, "Материал", 30, descriptCode);
            if (descriptCode == "")
            {
                _swmodel.DeleteCustomInfo2(configName, "Материал");
            }
        }
예제 #10
0
 private void RenameCustomProperty(ModelDoc2 model, string conf, string from, string to)
 {
     string val1, val2;
     model.Extension.get_CustomPropertyManager("").Get2(from, out val1, out val2);
     string value = val1;//model.GetCustomInfoValue(conf, from);
     if (!string.IsNullOrEmpty(value))
     {
         model.DeleteCustomInfo2(conf, from);
         model.AddCustomInfo3(conf, to, (int)swCustomInfoType_e.swCustomInfoText, value);
         model.Save();
     }
 }
예제 #11
0
        private void CmdOk_Click(object sender, EventArgs e) // OK
        {
            try
            {
                // Предварительное удаление свойств из файла
                ok = swModel.DeleteCustomInfo2("", RowQuantity.ToString());
                for (i = 1; i <= RowQuantityMax; i++)
                {
                    NName  = "N" + Strings.LTrim(Convert.ToString(i));
                    TTName = "TT" + Strings.LTrim(Convert.ToString(i));
                    ok     = swModel.DeleteCustomInfo2("", NName);
                    ok     = swModel.DeleteCustomInfo2("", TTName);
                }
                RowQuantity = CboN.Count;

                // Заполнение свойств файла и текста заметки
                TTNote = "";

                for (i = 1; i <= RowQuantity; i++)
                {
                    NName          = "N" + Strings.LTrim(Convert.ToString(i));
                    TTName         = "TT" + Strings.LTrim(Convert.ToString(i));
                    AnalyserString = CboTT[i - 1].Text;
                    Analyser2();
                    TempString = AnalyserString;

                    if (ChkList.Checked == Convert.ToBoolean(1)) // Список включен
                    {
                        if (ChkN[i - 1].Checked == Convert.ToBoolean(1))
                        {
                            if (i - 1 != 0)
                            {
                                if (ChkN[i - 2].Checked != Convert.ToBoolean(1))
                                {
                                    TempStringNew = "<PARA  indent=1 findent=-7 number=on ntype=1 nformat=$$.>" + TempString;
                                }
                                else
                                {
                                    TempStringNew = TempString;
                                }
                            }
                            else
                            {
                                TempStringNew = "<PARA  indent=7 findent=-1 number=on ntype=1 nformat=$$.>" + TempString;
                            }
                        }
                        else
                        {
                            if (i - 1 != 0)
                            {
                                if (ChkN[i - 2].Checked != Convert.ToBoolean(0))
                                {
                                    TempStringNew = "<PARA  indent=1 findent=0 number=off>" + TempString;
                                }
                                else
                                {
                                    TempStringNew = TempString;
                                }
                            }
                            else
                            {
                                TempStringNew = "<PARA  indent=1 findent=0 number=off>" + TempString;
                            }
                        }

                        TTNote = TTNote + TempStringNew;
                    }
                    else // Список выключен
                    {
                        TempStringNew = CboN[i - 1].Text;
                        if (TempStringNew == "->")
                        {
                            TempStringNew = "   ";
                        }
                        TTNote = TTNote + TempStringNew + TempString;
                    }
                    if (RowQuantity - i != 0)
                    {
                        TTNote = TTNote + (char)(10);
                    }
                }

                //  Создание заметки
                if (m2 == 1)
                {
                    swNote.SetText(TTNote);
                    NoteAlign();
                }
                else
                {
                    swModel.ClearSelection2(true);
                    swDraw.EditSheet();
                    swNote           = swModel.InsertNote(TTNote);
                    ok               = swNote.SetName(newNoteName);
                    ChkAlign.Checked = Convert.ToBoolean(1);
                    NoteAlign();
                }

                swModel.ClearSelection2(true);
                swModel.WindowRedraw();

                Close();
                swApp = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "; " + ex.StackTrace);
            }
        }