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; } }
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(); }
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); } }
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(); }