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