private bool liniya_s_obrivom(Stupica master, double multiply, ksDocument2D doc)
        {
            ksLBreakDimParam param = (ksLBreakDimParam)_kompas.GetParamStruct((short)StructType2DEnum.ko_LBreakDimParam);

            if (param == null)
            {
                return(true);
            }

            ksBreakDimDrawing dPar = (ksBreakDimDrawing)param.GetDPar();
            ksLBreakDimSource sPar = (ksLBreakDimSource)param.GetSPar();
            ksDimTextParam    tPar = (ksDimTextParam)param.GetTPar();

            if (dPar == null || sPar == null || tPar == null)
            {
                return(true);
            }

            dPar.Init();
            dPar.textPos = 5;
            dPar.pl      = false;
            dPar.pt      = 1; //стрелка внутри
            dPar.angle   = 90;
            dPar.length  = 10;


            sPar.Init();
            //точка размер чего строим
            sPar.x1 = master.l - master.b1;
            sPar.y1 = -(master.d / 2);
            //точки размерной линии
            sPar.x2 = master.l + 15 / multiply;
            sPar.y2 = -(master.d / 2);
            sPar.x3 = master.l + 15 / multiply;
            sPar.y3 = 0;

            tPar.Init(false);
            tPar.bitFlag    = 0; //выводится только номинал
            tPar.style      = 3; //текст размерной надписи????
            tPar.stringFlag = false;
            tPar.sign       = 1; //diametr

            ksChar255      str     = (ksChar255)_kompas.GetParamStruct((short)StructType2DEnum.ko_Char255);
            ksDynamicArray arrText = (ksDynamicArray)tPar.GetTextArr();

            if (str == null || arrText == null)
            {
                return(true);
            }

            str.str = master.d.ToString();
            arrText.ksAddArrayItem(-1, str);

            int obj = doc.ksLinBreakDimension(param); //отрисовка

            return(false);
        }