Exemplo n.º 1
0
        //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);
            }
        }
Exemplo n.º 3
0
        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();
            }
        }