//TODO: CmdSet_Click private void CmdSet_Click(object sender, EventArgs e) { swSelMgr = swModel.SelectionManager; if (swSelMgr.GetSelectedObjectCount() == 1) // Проверка выделения { if (swSelMgr.GetSelectedObjectType(1) == 15) { if (m2 == 1) { VBMath.Randomize(); oldNoteName = "NN" + Strings.LTrim(Convert.ToString(VBMath.Rnd() * 100)); //Debug.Print(oldNoteName); ok = swNote.SetName(oldNoteName); } swNote = swSelMgr.GetSelectedObject2(1); ok = swNote.SetName(newNoteName); Start(); } else { MessageBox.Show("Необходимо выделить заметку"); } } else { MessageBox.Show("Выделите одну заметку..."); } }
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); } }
void Start() { try { swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application"); swModel = swApp.ActiveDoc; RowQuantityMax = 25; newNoteName = "TT"; m1 = 0; // автонумерации включена; ListNumber = 0; ListIndent = 3; //ListFindent = -5; //ListMark = 0; // Списка нет ParaMark = 0; // Форматирования нет Xini = 0 / 1000; Yini = 0 / 1000; // Заполнение массива номеров Array.Resize(ref N, RowQuantityMax + 3); N[1] = ""; N[2] = "->"; for (i = 1; i <= RowQuantityMax; i++) { N[i + 2] = Strings.LTrim(i.ToString() + ". "); } #region Чтение ТТ // Чтение ТТ CboTTType.Items.Clear(); i = 0; // Заполняем ТТ в зависимости от выбранного языка foreach (var str in arrStrTT()) { TTFileString = str.ToString(); if (Strings.Left(TTFileString, 3) == "$$$") // Проверка, является ли строка заголовком раздела { k = Strings.Len(TTFileString); CboTTType.Items.Add(Strings.Right(TTFileString, k - 3)); i = i + 1; j = 1; } else { TT[i, j] = TTFileString; j = j + 1; Array.Resize(ref TTQuantity, i + 1); TTQuantity[i] = j - 1; //Debug.Print(TTQuantity[i].ToString()); } } //// Чтение файла ТТ //using (StreamReader SR = new StreamReader(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + @"\Source" + @"\TT.txt", Encoding.GetEncoding(1251))) //{ // while ((line = SR.ReadLine()) != null) // { // } //} CboTTType.SelectedIndex = 0; #endregion // Проверка формы RowQuantity = CboN.Count; while (RowQuantity > 1) { CboUnLoad(); RowQuantity = CboN.Count; } // Заполнение первой строки CboN[0].Items.Clear(); for (i = 1; i <= RowQuantityMax + 2; i++) { CboN[0].Items.Add(N[i].ToString()); } CboTT[0].Items.Clear(); for (j = 1; j <= TTQuantity[1]; j++) { CboTT[0].Items.Add(TT[1, j].ToString()); } // Чтение заметки ТТ TTNote = ""; m2 = 0; // ТТ не прочитаны swSelMgr = swModel.SelectionManager; swDraw = (DrawingDoc)swModel; swSheet = swDraw.GetCurrentSheet(); strActiveSheetName = swSheet.GetName(); strTemp = "TT@" + strActiveSheetName; //Debug.Print(strTemp); ok = swModel.Extension.SelectByID2(strTemp, "NOTE", 0, 0, 0, false, 0, null, 0); if (ok) { swNote = swSelMgr.GetSelectedObject2(1); TTNote = swNote.PropertyLinkedText; m2 = 1; // ТТ прочитаны из заметки } #region Анализ прочитанной заметки // Анализ прочитанной заметки if (m2 == 1) { TTNoteLength = Strings.Len(TTNote); // Разбивка на строки j = 1; Array.Resize(ref TTNoteString, j + 1); TTNoteString[j] = ""; for (k = 1; k < TTNoteLength; k++) { Symbol = Strings.Mid(TTNote, k, 1); if (Symbol == Convert.ToString(Strings.Chr(10))) { j = j + 1; Array.Resize(ref TTNoteString, j + 1); TTNoteString[j] = ""; } else if (Symbol == Convert.ToString(Strings.Chr(13))) { } else { TTNoteString[j] = TTNoteString[j] + Symbol; } } // Анализ строк for (k = 1; k <= j; k++) { RowQuantity = CboN.Count; AnalyserString = TTNoteString[k]; Analyser1(); TTNoteString[k] = AnalyserString; TTNoteStringLength = Strings.Len(TTNoteString[k]); if (ParaMark == 0) { if (ListNumber == 1) { CboN[RowQuantity - 1].SelectedIndex = 0; // Пусто CboTT[RowQuantity - 1].Text = TTNoteString[k]; } else { CboN[RowQuantity - 1].SelectedIndex = 1; // Табуляция CboTT[RowQuantity - 1].Text = TTNoteString[k]; } } else { if (Strings.Left(TTNoteString[k], 1) == " ") // Пробел в начале { if (Strings.Left(TTNoteString[k], 3) == " ") // Три пробела в начале { CboN[RowQuantity - 1].SelectedIndex = 1; // Табуляция CboTT[RowQuantity - 1].Text = Strings.Right(TTNoteString[k], TTNoteStringLength - 3); } else { CboN[RowQuantity - 1].SelectedIndex = 0; // Пусто CboTT[RowQuantity - 1].Text = TTNoteString[k]; } } else { if (Strings.Mid(TTNoteString[k], 2, 1) == ".") // Есть точка во втором знаке { AnalyserString = Strings.Left(TTNoteString[k], 2) + " "; Analyser3(); CboN[RowQuantity - 1].SelectedIndex = CboNListIndex; if (CboNListIndex == 0) { CboTT[RowQuantity - 1].Text = TTNoteString[k]; } else { if (Strings.Mid(TTNoteString[k], 4, 1) == " ") // Есть пробел после точки { CboTT[RowQuantity - 1].Text = Strings.Right(TTNoteString[k], TTNoteStringLength - 3); } else // Нет пробела после точки { CboTT[RowQuantity - 1].Text = Strings.Right(TTNoteString[k], TTNoteStringLength - 2); } } } else // Нет точки в третьем знаке { if (Strings.Mid(TTNoteString[k], 3, 1) == ".") // Есть точка в третьем знаке { AnalyserString = Strings.Left(TTNoteString[k], 3) + " "; Analyser3(); CboN[RowQuantity - 1].SelectedIndex = CboNListIndex; if (CboNListIndex == 0) { CboTT[RowQuantity - 1].Text = TTNoteString[k]; } else { if (Strings.Mid(TTNoteString[k], 4, 1) == " ") // Есть пробел после точки { CboTT[RowQuantity - 1].Text = Strings.Right(TTNoteString[k], TTNoteStringLength - 4); } else // Нет пробела после точки { CboTT[RowQuantity - 1].Text = Strings.Right(TTNoteString[k], TTNoteStringLength - 3); } } } else // Нет точки в третьем знаке { CboN[RowQuantity - 1].SelectedIndex = 0; // Пусто CboTT[RowQuantity - 1].Text = TTNoteString[k]; } } } } if (j - k != 0) // Проверка необходимости добавить строку { CboLoad(); } } } else // Заметки не существует { // Проверка свойства RowQuantity if (swModel.CustomInfo["RowQuantity"] != "") { RowQuantitySet = Convert.ToInt32(swModel.CustomInfo["RowQuantity"]); } else { RowQuantitySet = 0; k = 1; // Определение числа строк, заполненных старой версией while (k == 8) { TTName = "TT" + Strings.LTrim(k.ToString()); if (swModel.CustomInfo[TTName] == "") { break; } RowQuantitySet = RowQuantitySet + 1; k = k + 1; } } if (RowQuantitySet != 0) { m2 = 2; // ТТ прочитаны из свойств for (k = 1; k <= RowQuantitySet; k++) // Чтение из свойств { NName = "N" + Strings.LTrim(k.ToString()); TTName = "TT" + Strings.LTrim(k.ToString()); AnalyserString = swModel.CustomInfo[TTName]; Analyser1(); TempString = AnalyserString; if (ParaMark == 1) { if (ListNumber == 1) { CboN[k - 1].SelectedIndex = 0; // Пусто } else { CboN[k - 1].SelectedIndex = 1; // Табуляция } } else { if (swModel.CustomInfo[NName] == " ") // Три пробела в начале { CboN[k - 1].SelectedIndex = 1; // Табуляция } else { AnalyserString = swModel.CustomInfo[NName]; Analyser3(); CboN[k - 1].SelectedIndex = CboNListIndex; } } CboTT[k - 1].Text = TempString; if (RowQuantitySet - k != 0) { CboLoad(); } } } } #endregion CmdAdd.Enabled = false; CmdDel.Enabled = false; CmdUp.Enabled = false; CmdDown.Enabled = false; CmdDiam.Enabled = false; CmdDeg.Enabled = false; CmdPM.Enabled = false; ChkAlign.Checked = Convert.ToBoolean(1); RowQuantity = CboN.Count; ChkList.Checked = ParaMark == 1 ? Convert.ToBoolean(1) : Convert.ToBoolean(0); if (m2 == 0) // Включение списка если ТТ не было { ChkList.Checked = Convert.ToBoolean(1); } //TODO: ChkAutoN ChkAutoN.Checked = true; ChkAutoN_Click(true, null); } catch (Exception ex) { MessageBox.Show(ex.Message + "; " + ex.StackTrace); Close(); } }