// Толщина листового металла 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; } }
// Проверка на дублирование конфигураций 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); } } } }
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"); } } }
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); } }
// 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); } }
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; } }
// 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, "Материал"); } }
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(); } }
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); } }