예제 #1
0
        public void PaintNoteOnPart(ModelDoc2 swDoc, String[] listt)
        {
            //IPartDoc swDraw = swDoc as IPartDoc;

            bool isfound = false;
            Note swNote  = null;

            object[] vAnts = (object[])swDoc.Extension.GetAnnotations();
            for (int i = 0; i < vAnts.Length; i++)
            {
                Annotation myAnnotation = (Annotation)vAnts[i];
                Debug.Print("Value: " + myAnnotation.GetName());
                if (myAnnotation.GetName() == ttname)
                {
                    isfound = true;
                    break;
                }
            }
            if (!isfound)
            {
                swNote = (Note)swDoc.InsertNote("qwerty");
                swNote.SetName(ttname);
                swNote.LockPosition = true;
            }
        }
예제 #2
0
        public void PaintNoteOnDraw(ModelDoc2 swDoc)
        {
            bool   isA4  = (sh_width == 0.210 && sh_height == 0.297);
            double prevy = 0;

            for (int i = 0; i < notes.Count; i++)
            {
                Note swNote = (Note)swDoc.InsertNote("");
                swNote.SetName(ttname + (i + 1).ToString());
                swNote.SetTextJustification((int)swTextJustification_e.swTextJustificationLeft);

                Annotation myAnnot      = (Annotation)swNote.GetAnnotation();
                TextFormat swTextFormat = myAnnot.GetTextFormat(0) as TextFormat;
                swTextFormat.LineLength = c_width - 0.005;
                myAnnot.SetTextFormat(0, false, swTextFormat);

                String txt = notes[i].NoteText.Remove(notes[i].NoteText.Length - 2);
                swNote.SetText(txt);
                // Пересчёт позиции
                PositionTT posTT = CalcPositionTT(swNote);
                // Для А4 ТТ прижимаются к основной надписи, для других форматов - к верху чертежа
                if (isA4 == false)
                {
                    posTT.y = sh_height - c_topmargin;
                }
                // Последующие блоки выравниваем по высоте с первым блоком
                if (i == 0)
                {
                    prevy = posTT.y;
                }
                else
                {
                    posTT.y = prevy;
                }
                myAnnot.SetPosition(posTT.x - c_width * i, posTT.y, posTT.z);
                swNote.LockPosition = true;
            }
            swDoc.WindowRedraw();
        }
예제 #3
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);
            }
        }
예제 #4
0
        public void PreCalcNote(ModelDoc2 swDoc, String[] listt)
        {
            DrawingDoc swDraw       = (DrawingDoc)swDoc;
            TextFormat swTextFormat = null;

            // Находим и удаляем старые ТТ
            FindNDelOldNotes(swDoc);
            if (listt.Length == 0)
            {
                return;
            }

            // Создадим времменный блок. Туда будем вставлять строки и определять высоту блока.
            Note       swNoteTemp = (Note)swDoc.InsertNote("");
            Annotation myAnnot    = (Annotation)swNoteTemp.GetAnnotation();

            swTextFormat            = myAnnot.GetTextFormat(0) as TextFormat;
            swTextFormat.LineLength = c_width - 0.005;
            myAnnot.SetTextFormat(0, false, swTextFormat);
            swNoteTemp.SetTextJustification((int)swTextJustification_e.swTextJustificationLeft);

            // Определим доступное поле для ТТ
            Sheet swSheet = (Sheet)swDraw.GetCurrentSheet();

            swSheet.GetSize(ref sh_width, ref sh_height);
            double fheight = sh_height - c_topmargin - c_height - 1 * 0.005;

            notes.Add(new NoteTT());
            NoteTT ntt = notes[0];

            ntt.NoteText  = "<PARA indent=5 findent=-5 number=on ntype=1 nformat=$$. nstartNum = 1>";
            ntt.curheight = 0;

            const string notefmt = "<PARA indent=5 findent=-5 number=on ntype=1 nformat=$$.>";
            int          curind  = 0;

            for (int i = 0; i < listt.Length; i++)
            {
                ntt = notes[curind];
                string onestring = notefmt + listt[i];
                // Вставляем одну ТТ во временный блок
                swNoteTemp.SetText(onestring);
                double tempnoteheight = GetTempNoteHeight(swNoteTemp);
                // Проверяем получающуюся высоту примечания
                if (ntt.curheight + tempnoteheight <= fheight)
                {
                    // Если помещается, дописываем текст и увеличиваем высоту проверки
                    ntt.NoteText  += listt[i] + System.Environment.NewLine;
                    ntt.curheight += tempnoteheight;
                }
                else
                {
                    // Иначе создаём новое примечание
                    notes.Add(new NoteTT());
                    curind++;
                    ntt           = notes[curind];
                    ntt.NoteText  = "<PARA indent=5 findent=-5 number=on ntype=1 nformat=$$. nstartNum = " + (i + 1).ToString() + ">";
                    ntt.curheight = 0;
                }
            }

            swDoc.ClearSelection2(true);
            myAnnot.Select(false);
            swDoc.DeleteSelection(false);
            swDoc.WindowRedraw();
        }