public override List <ulong> AddTextItemToFigure(JDStruc jdstruc, List <TextItemDrawStruc> textItemDrawStrucCol) { List <TextItemDrawStruc> yshebinglist = GetHeBingTiYSList(textItemDrawStrucCol);//获取新的泛型 double lasthd = 10; LJJSPoint lastbottomzbpt = jdstruc.JDPtStart; //井段内的井段起始点 AttachmentPoint bzpos = AttachmentPoint.MiddleCenter; //定义文本项位置 LJJSPoint inserttxtpos; //插入文本项位置 double txtoffset = 2; double txtwidth = lineRoadWidth - 2 * txtoffset; for (int i = 0; i < yshebinglist.Count; i++) { TextItemDrawStruc currtidrawstruc = yshebinglist[i]; LJJSPoint titopZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, currtidrawstruc.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate); LJJSPoint tibottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, currtidrawstruc.depthbottom, jdstruc.JDtop, FrameDesign.ValueCoordinate); if (Math.Abs(titopZuoBiaoPt.YValue - tibottomZuoBiaoPt.YValue) > textItemStruct.TxtSize * 1.2) { bzpos = AttachmentPoint.MiddleCenter; inserttxtpos = new LJJSPoint(titopZuoBiaoPt.XValue + lineRoadWidth * 0.5, (tibottomZuoBiaoPt.YValue + titopZuoBiaoPt.YValue) * 0.5); } else { if (bzpos == AttachmentPoint.MiddleLeft) { bzpos = AttachmentPoint.MiddleRight; inserttxtpos = PointUtil.GetRightInsertTxtPt(titopZuoBiaoPt, tibottomZuoBiaoPt, 3, lineRoadWidth); } else { bzpos = AttachmentPoint.MiddleLeft; inserttxtpos = PointUtil.GetLeftInsertTxtPt(titopZuoBiaoPt, tibottomZuoBiaoPt, 3); } } MText.AddMText(currtidrawstruc.textcontent.Trim(), "", inserttxtpos, bzpos, textItemStruct.TxtFont, txtwidth + 0.5, 0.6); // MText.AddMText(currtidrawstruc.textcontent.Trim(), textItemStruct.TxtSize, inserttxtpos, bzpos, textItemStruct.TxtFont, txtwidth + 0.5, 0.6); if (Math.Abs(lastbottomzbpt.YValue - titopZuoBiaoPt.YValue) > 0.001)//是起头 { lasthd = 10; if (lasthd < textItemStruct.TxtSize * 1.2) { BiaoZhuLineUtil.AddHorBZLine(lastbottomzbpt, txtoffset, lineRoadWidth, 0);//画上段剖面的终点的标注线; } else { Line.BuildCommonHorSolidLineByLayer(lastbottomzbpt, lineRoadWidth, 0, DrawCommonData.DirectionRight); } } if (Math.Abs(titopZuoBiaoPt.YValue - tibottomZuoBiaoPt.YValue) < textItemStruct.TxtSize * 1.2 || lasthd < textItemStruct.TxtSize * 1.2) { BiaoZhuLineUtil.AddHorBZLine(titopZuoBiaoPt, txtoffset, lineRoadWidth, 0); } else { Line.BuildCommonHorSolidLineByLayer(titopZuoBiaoPt, lineRoadWidth, 0, DrawCommonData.DirectionRight); } lastbottomzbpt = tibottomZuoBiaoPt; lasthd = Math.Abs(titopZuoBiaoPt.YValue - tibottomZuoBiaoPt.YValue); } Line.BuildCommonHorSolidLineByLayer(lastbottomzbpt, lineRoadWidth, 0, DrawCommonData.DirectionRight); return(new List <ulong>()); }