Exemple #1
0
        private PositionTT CalcPositionTT(Note myNote)
        {
            double[]   ext     = (double[])myNote.GetExtent();
            double     nheight = Math.Abs(Math.Abs(ext[4]) - Math.Abs(ext[1]));
            PositionTT result  = new PositionTT()
            {
                x = sh_width - c_width, y = c_height + nheight + 0.005, z = 0
            };

            return(result);
        }
Exemple #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();
        }