Exemple #1
0
        private LJJSPoint GetDuiShuPointZB(KeDuChiItem duiShuKDC, LJJSPoint convertPt, JDStruc jdstruc, LJJSPoint lrptstart)
        {
            double Xpt = DuiShuOper.XGetDSZuoBiaoValue(lrptstart.XValue, duiShuKDC.KDir, duiShuKDC.KParm, convertPt.XValue, duiShuKDC.KMin);
            double Ypt = ZuoBiaoOper.GetJSZongZBValue(jdstruc.JDPtStart.YValue, convertPt.YValue, jdstruc.JDtop, FrameDesign.ValueCoordinate);

            return(new LJJSPoint(Xpt, Ypt));
        }
        //understand
        private LJJSPoint GetPtZBByKDC(KeDuChiItem drawkdc, LJJSPoint jdptstart, double xval, double yval, double jdtop)
        {
            ZuoBiaoOper zbopp     = new ZuoBiaoOper(FrameDesign.ValueCoordinate);
            LJJSPoint   lrptstart = ZuoBiaoOper.UpdateLRStartPt(drawkdc.KDir, jdptstart, LineRoadEnvironment.LineRoadWidth);

            return(zbopp.GetDrawingZuoBiaoPt(lrptstart, drawkdc, xval, yval, jdtop, LineRoadEnvironment.LineRoadWidth));
        }
        /// <summary>
        /// 添加普通类型的棒线,是与对数类型相区别;
        /// </summary>
        /// <param name="jdstruc">绘制棒线的井段范围</param>
        /// <param name="drawht">绘制棒线的数据,hashtable的key为y值也就是井深,X为棒线的横向取值</param>
        private void AddNormalStickLineToFigure(JDStruc jdstruc, Hashtable drawht)
        {
            bool        ifinkdc  = false;
            double      jdtop    = jdstruc.JDtop;
            double      jdbottom = jdstruc.JDBottom;
            KeDuChiItem drawkdc;
            LJJSPoint   lrptstart;
            int         kdccount = m_KDCList.Count;

            foreach (DictionaryEntry de in drawht)
            {
                ifinkdc = false;
                double xval = (double)de.Value;
                for (int i = 0; i < m_KDCList.Count; i++)
                {
                    drawkdc = m_KDCList[i];
                    if (ZuoBiaoOper.IfInKeDuChi(xval, drawkdc))//假如棒线横向坐标值在刻度尺范围内则绘制棒线;
                    {
                        Layer.Layer_SetToCurrent(drawkdc.KName);
                        lrptstart = ZuoBiaoOper.UpdateLRStartPt(drawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);
                        DrawStickLine(lrptstart, drawkdc, xval, (double)de.Key, jdtop);
                        ifinkdc = true;
                        break;
                    }
                }
                if (ifinkdc == false)//棒线横向坐标不再刻度吃范围内,添加超界标注;
                {
                    lrptstart = ZuoBiaoOper.UpdateLRStartPt(m_KDCList[kdccount - 1].KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);
                    if (lineItemStruct.LineItemChaoJie == CJQXChaoJie.BiaoZhu)//添加标注信息;
                    {
                        AddChaoJieBZ(xval, jdstruc.JDPtStart, (double)de.Key, jdstruc.JDtop, FrameDesign.ValueCoordinate, m_KDCList[kdccount - 1], lineRoadEnvironment.LineRoadWidth);
                    }
                }
            }
        }
Exemple #4
0
        private void AddPerYYWZHatch(string yYWZ, double gWJS, double T2jzz, double jdTop)
        {
            double gwjsZuoBiaoY = ZuoBiaoOper.GetJSZongZBValue(ptStart.YValue, gWJS, jdTop, FrameDesign.ValueCoordinate);
            string subsql       = this.hcgzItemDesignStruc.ClosedArea_Field_YYWZ + @"='" + yYWZ + @"'";

            if (null != kdcItem)
            {
                double           sfsStartX = kdcItem.KMin;
                double           sfsEndX   = T2jzz;
                double           kdsStartX = T2jzz;
                double           kdsEndX   = kdcItem.KMax;
                List <LJJSPoint> sfslst    = GetClosedAreaDRS(sfsStartX, sfsEndX, kdcItem, subsql, gwjsZuoBiaoY);
                double           xt2       = DuiShuOper.XGetDSZuoBiaoValue(ptStart.XValue, 1, kdcItem.KParm, T2jzz, kdcItem.KMin);
                double           ytmp      = endy;
                List <LJJSPoint> kdslst    = GetClosedAreaDRS(kdsStartX, kdsEndX, kdcItem, subsql, gwjsZuoBiaoY);

                kdslst.Add(new LJJSPoint(xt2, gwjsZuoBiaoY));
                double ytmpkd = starty;

                sfslst.Add(new LJJSPoint(xt2, (ytmp + ytmpkd) * 0.5 * HCGZLTXiShu + gwjsZuoBiaoY));
                sfslst.Add(new LJJSPoint(xt2, gwjsZuoBiaoY));
                kdslst.Add(new LJJSPoint(xt2, (ytmp + ytmpkd) * 0.5 * HCGZLTXiShu + gwjsZuoBiaoY));

                AreaHatch.AddStandardAreaHatch(DrawCommonData.activeDocument, sfslst, this.hcgzItemDesignStruc.SFLTColor, this.hcgzItemDesignStruc.SFLTColor);
                AreaHatch.AddStandardAreaHatch(DrawCommonData.activeDocument, kdslst, hcgzItemDesignStruc.KDLTColor, hcgzItemDesignStruc.KDLTColor);
            }
        }
 public CurveHatch(JDStruc jdstruc, KeDuChiItem keDuChiItem, double lineRoadWidth)
 {
     this._jdstruc       = jdstruc;
     this._keDuChiItem   = keDuChiItem;
     this._jdptstart     = ZuoBiaoOper.UpdateLRStartPt(keDuChiItem.KDir, jdstruc.JDPtStart, lineRoadWidth);//根据刻度尺方向获得起点;
     this._lineRoadWidth = lineRoadWidth;
 }
 /// <summary>
 /// 绘制棒线
 /// </summary>
 /// <param name="kdc">棒线所属刻度尺</param>
 /// <param name="xVal">棒线终点对应的横向值(数据库中)</param>
 /// <param name="yVal">棒线终点对应的井深(数据库中)</param>
 private void DrawStickLine(LJJSPoint jdStartPt, KeDuChiItem kdc, double xVal, double yVal, double jdStartJS)
 {
     Layer.Layer_SetToCurrent(kdc.KName);
     ZuoBiaoOper zbopp   = new ZuoBiaoOper(FrameDesign.ValueCoordinate);
     LJJSPoint   ptend   = zbopp.GetDrawingZuoBiaoPt(jdStartPt, kdc, xVal, yVal, jdStartJS, lineRoadEnvironment.LineRoadWidth);
     LJJSPoint   ptstart = new LJJSPoint(jdStartPt.XValue, ptend.YValue);
     ulong       objid   = Line.BuildCommonLineByLayer(ptstart, ptend, kdc.kLineWidth);
 }
        private LJJSPoint GetDuiShuPointZB(KeDuChiItem duiShuKDC, double yvalue, Hashtable drawht, JDStruc jdstruc, LJJSPoint lrptstart)
        {
            double xvalue = (double)drawht[yvalue];

            double Xpt = DuiShuOper.XGetDSZuoBiaoValue(lrptstart.XValue, duiShuKDC.KDir, duiShuKDC.KParm, xvalue, duiShuKDC.KMin);
            double Ypt = ZuoBiaoOper.GetJSZongZBValue(jdstruc.JDPtStart.YValue, yvalue, jdstruc.JDtop, FrameDesign.ValueCoordinate);

            return(new LJJSPoint(Xpt, Ypt));
        }
        private void AddJBQXItemToFigure(JDStruc jdstruc, List <SymbolItemStruc> syDrawingCol)
        {
            double adjacentVerZbdifference     = 10;
            double lastVerZBHor                = 0;
            double lastverZBVerHeigh           = 0;
            double lastadjacentVerZbdifference = 0;

            for (int i = 0; i < syDrawingCol.Count; i++)
            {
                SymbolItemStruc symbldrawing     = syDrawingCol[i];
                LJJSPoint       sybltopZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate);
                adjacentVerZbdifference = lastadjacentVerZbdifference + Math.Abs(lastverZBVerHeigh - sybltopZuoBiaoPt.YValue);

                if (adjacentVerZbdifference < 4)
                {
                    lastVerZBHor = lastVerZBHor + jbqx_SymbolWidth;
                    lastadjacentVerZbdifference = lastadjacentVerZbdifference + Math.Abs(lastverZBVerHeigh - sybltopZuoBiaoPt.YValue);
                }
                else
                {
                    lastVerZBHor = 0;
                    lastadjacentVerZbdifference = 0;
                }
                LJJSPoint syblpos = new LJJSPoint(sybltopZuoBiaoPt.XValue + lastVerZBHor, sybltopZuoBiaoPt.YValue);
                SymbolAdd.InsertBlock("JBQX", 1, 1, syblpos);

                int sybolcodecount = symbldrawing.sybolcodelist.Count;

                if (sybolcodecount == 3)
                {
                    string yxcode = symbldrawing.sybolcodelist[0].Trim();
                    if (yxcode != "n" && yxcode != "N" && yxcode != "")
                    {
                        SymbolCodeClass sybloper = (SymbolCodeClass)HashUtil.FindObjByKey(yxcode, FillSymbolCode.SymbolCodeClassHt);
                        if (null != sybloper)
                        {
                            // SymbolCodeClass sybloper = (SymbolCodeClass)FillSymbolCode.SymbolCodeClassHt[yxcode];
                            AddJBQXYXSymbolToFigure(syblpos, sybloper);
                        }
                    }
                    string czcode = symbldrawing.sybolcodelist[1].Trim();
                    if (czcode != "n" && czcode != "N" && czcode != "")
                    {
                        SymbolCodeClass sybloper = (SymbolCodeClass)HashUtil.FindObjByKey(czcode, FillSymbolCode.SymbolCodeClassHt);
                        //  SymbolCodeClass sybloper = (SymbolCodeClass)FillSymbolCode.SymbolCodeClassHt[czcode];
                        if (null != sybloper)
                        {
                            AddJBQXCZSymbolToFigure(syblpos, sybloper);
                        }
                    }
                    string yscode = symbldrawing.sybolcodelist[2].Trim();
                    LJJSCAD.Drawing.Text.LJJSText.AddHorCommonTextByLayer(yscode, new LJJSPoint(syblpos.XValue + jbqx_yshoroffset, syblpos.YValue), AttachmentPoint.MiddleLeft, jbqx_ysCodeTxt_Height, jbqx_bzFont);
                    // ArxCSHelper.AddMText(yscode, 1.2, new LJJSPoint(syblpos.XValue + jbqx_yshoroffset, syblpos.YValue), AttachmentPoint.MiddleLeft, bztxtstyleid);
                }
                lastverZBVerHeigh = syblpos.YValue;
            }
        }
        private void AddChaoJieBZ(double xval, LJJSPoint jdStartPt, double BzJS, double jdStartJS, double blcvalue, KeDuChiItem drawkdc, double lRWidth)
        {
            Layer.Layer_SetToCurrent(drawkdc.KName);
            double chaojiepty = ZuoBiaoOper.GetJSZongZBValue(jdStartPt.YValue, BzJS, jdStartJS, blcvalue);

            LJJSPoint chaojiept = new LJJSPoint(jdStartPt.XValue + drawkdc.KDir * lRWidth, chaojiepty);
            ChaoJieBZ cjbz      = new ChaoJieBZ(xval, chaojiept);

            cjbz.DrawChaoJieBiaoZhu(drawkdc.KDir);
        }
Exemple #10
0
 private void AddStandardImageItemToFigure(JDStruc jdStruc, List <ImageItemStruc> imageStrucList)
 {
     for (int i = 0; i < imageStrucList.Count(); i++)
     {
         ImageItemStruc tmpImageItemStruc    = imageStrucList[i];
         LJJSPoint      imageBottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdStruc.JDPtStart, tmpImageItemStruc.BottomJS, jdStruc.JDtop, FrameDesign.ValueCoordinate);
         double         imageDrawingHeigh    = tmpImageItemStruc.JsHeight * 1000 * FrameDesign.ValueCoordinate;
         ImageHatch.AddRectImageHatch(imageBottomZuoBiaoPt, imageDrawingHeigh, this.lineRoadEnvironment.LineRoadWidth, tmpImageItemStruc.ImagePath, DrawCommonData.HatchScale, tmpImageItemStruc.AdditionImeLst);
     }
 }
 private void DrawDuiShuStickLine(LJJSPoint jdStartPt, KeDuChiItem kdc, double xVal, double yVal, double jdStartJS)
 {
     ZuoBiaoOper zbopp   = new ZuoBiaoOper(FrameDesign.ValueCoordinate);
     double      duishuX = DuiShuOper.XGetDSZuoBiaoValue(jdStartPt.XValue, kdc.KDir, kdc.KParm, xVal, kdc.KMin);
     double      duishuY = ZuoBiaoOper.GetJSZongZBValue(jdStartPt.YValue, yVal, jdStartJS, FrameDesign.ValueCoordinate);
     LJJSPoint   ptend   = new LJJSPoint(duishuX, duishuY);
     LJJSPoint   ptstart = new LJJSPoint(jdStartPt.XValue, ptend.YValue);
     ulong       objid   = Line.BuildCommonSoldLine(ptstart, ptend, Color.Black.ToArgb(), kdc.kLineWidth);
     //
 }
        private void AddDuiShuStickLineToFigure(KeDuChiItem duiShuKDC, JDStruc jdstruc, Hashtable drawht)
        {
            LJJSPoint lrptstart = ZuoBiaoOper.UpdateLRStartPt(duiShuKDC.KDir, jdstruc.JDPtStart, LineRoadEnvironment.LineRoadWidth);

            foreach (DictionaryEntry de in drawht)
            {
                double xval = (double)de.Value;

                DrawDuiShuStickLine(lrptstart, duiShuKDC, xval, (double)de.Key, jdstruc.JDtop);
            }
        }
        private void AddDuiShuContinuousToFigure(KeDuChiItem duiShuKDC, ArrayList al, JDStruc jdstruc, Hashtable drawht, Color penColor)
        {
            List <LJJSPoint> drawptcol = new List <LJJSPoint>();
            double           yval      = 0;
            LJJSPoint        lrptstart = ZuoBiaoOper.UpdateLRStartPt(duiShuKDC.KDir, jdstruc.JDPtStart, LineRoadEnvironment.LineRoadWidth);//根据刻度尺方向获得起点;

            for (int i = 0; i < al.Count; i++)
            {
                yval = (double)al[i];
                drawptcol.Add(GetDuiShuPointZB(duiShuKDC, yval, drawht, jdstruc, lrptstart));
            }
            DrawContinuousLine(drawptcol, duiShuKDC.KName, duiShuKDC.kLineWidth, penColor);//绘制上一段曲线;
        }
        private void AddPerYYWZHatch(string yYWZ, double gWJS, LJJSPoint ptStart, double jdTop)
        {
            double gwjsZuoBiaoY = ZuoBiaoOper.GetJSZongZBValue(ptStart.YValue, gWJS, jdTop, FrameDesign.ValueCoordinate);
            string subsql       = this.itemDesignStruc.ClosedArea_Field_YYWZ + @"='" + yYWZ + @"'";

            if (null != kdcItem)
            {
                List <LJJSPoint> sfslst             = GetClosedAreaDRS(kdcItem, subsql, gwjsZuoBiaoY, ptStart);
                List <LJJSPoint> HorBoundaryLineLst = new List <LJJSPoint>();
                HorBoundaryLineLst.Add(new LJJSPoint(ptStart.XValue, gwjsZuoBiaoY));
                HorBoundaryLineLst.Add(new LJJSPoint(ptStart.XValue + this.lineRoadEnvironment.LineRoadWidth, gwjsZuoBiaoY));
                CurveHatch curveHatch = new CurveHatch(kdcItem, this.lineRoadEnvironment.LineRoadWidth);
                curveHatch.CurvesBuildExec(sfslst, itemDesignStruc.HatchDic[0], HorBoundaryLineLst);
            }
        }
        private List <LJJSPoint> GetFillAreaPtLst(LJJSPoint lrptstart, double jdTop, double depthtop, double depthbottom, double xvalue)
        {
            List <LJJSPoint> ptlist        = new List <LJJSPoint>();
            ZuoBiaoOper      zbopp         = new ZuoBiaoOper(FrameDesign.ValueCoordinate);
            LJJSPoint        ptTopend      = zbopp.GetDrawingZuoBiaoPt(lrptstart, drawkdc, xvalue, depthtop, jdTop, lineRoadEnvironment.LineRoadWidth);
            LJJSPoint        ptTopstart    = new LJJSPoint(lrptstart.XValue, ptTopend.YValue);
            LJJSPoint        ptBottomEnd   = zbopp.GetDrawingZuoBiaoPt(lrptstart, drawkdc, xvalue, depthbottom, jdTop, lineRoadEnvironment.LineRoadWidth);
            LJJSPoint        ptBottomStart = new LJJSPoint(lrptstart.XValue, ptBottomEnd.YValue);

            ptlist.Add(ptTopstart);
            ptlist.Add(ptTopend);
            ptlist.Add(ptBottomEnd);
            ptlist.Add(ptBottomStart);
            return(ptlist);
        }
Exemple #16
0
        private LJJSPoint GetVerBoundaryStartPt(double xstart, double fenjieValue)
        {
            double xvalue = xstart;

            if (kdcItem.KStyle.Equals(KDCStyle.DuiShu))
            {
                xvalue = DuiShuOper.XGetDSZuoBiaoValue(xstart, kdcItem.KDir, kdcItem.KParm, fenjieValue, kdcItem.KMin);
            }
            else
            {
                xvalue = ZuoBiaoOper.XGetZuoBiaoValue(xstart, kdcItem, fenjieValue, this.lineRoadEnvironment.LineRoadWidth);
            }
            LJJSPoint startPt = new LJJSPoint(xvalue, this.LineRoadStartPt.YValue);

            return(startPt);
        }
Exemple #17
0
        public override void DrawPerJDZMLine(DrawingElement.LJJSPoint ptstart, JDStruc jdStruc)
        {
            LJJSPoint tmpptstart       = ptstart;
            double    tmplineroadwidth = _lineroadwidth;

            if (_lineRoadModel.ZmLineSpace < Math.Abs(jdStruc.JDBottom - jdStruc.JDtop))
            {
                int              minZhengMiPtJs = ModeUtil.GetMinBeiShu(jdStruc.JDtop, _lineRoadModel.ZmLineSpace);
                LJJSPoint        minZhengMiPt   = ZuoBiaoOper.GetJSZuoBiaoPt(tmpptstart, minZhengMiPtJs, jdStruc.JDtop, FrameDesign.ValueCoordinate);
                List <LJJSPoint> dengfenptarr   = ZuoBiaoOper.GetZongXiangDengFenPtArr(minZhengMiPt, -1, jdStruc.JDHeight - Math.Abs(minZhengMiPt.YValue - tmpptstart.YValue), _ZMLdengfenspace);
                dengfenptarr.Add(minZhengMiPt);
                foreach (LJJSPoint pt in dengfenptarr)
                {
                    Line.BuildHorToRightBlackSolidLine(pt, _lineRoadModel.LineRoadWidth, _lineRoadModel.ZhengMiLineWidth, "");
                }
            }
        }
        //single paint



        private KeDuChiItem PointIfChaoJie(double yval, Hashtable drawht)
        {
            KeDuChiItem drawkdc = null;

            double xval = (double)drawht[yval];

            for (int j = 0; j < m_KDCList.Count; j++)
            {
                KeDuChiItem tmpdrawkdc = m_KDCList[j];
                if (ZuoBiaoOper.IfInKeDuChi(xval, tmpdrawkdc))
                {
                    drawkdc = tmpdrawkdc;
                    break;
                }
            }
            return(drawkdc);
        }
        private List <HatchRectDrawStrut> GetPerJDDrawStructLst(JDStruc jdStruc)
        {
            LJJSPoint lrptstart = ZuoBiaoOper.UpdateLRStartPt(drawkdc.KDir, jdStruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);
            double    jdTop     = jdStruc.JDtop;
            double    jdBottom  = jdStruc.JDBottom;


            List <HatchRectDrawStrut> hrdsLst = new List <HatchRectDrawStrut>();

            if (null == itemDataTable || itemDataTable.Rows.Count < 1)
            {
                return(hrdsLst);
            }
            string sql = GetItemSqlTxt(jdTop.ToString(), jdBottom.ToString());

            DataRow[] drs = itemDataTable.Select(sql, itemDesignStruc.Y_TopField + " ASC");
            if (itemDesignStruc.hrItemSubStyle.Equals(HatchRectItemSubStyle.ColorField))
            {
                foreach (DataRow dr in drs)
                {
                    List <LJJSPoint> areaLst = GetFillAreaPtLst(lrptstart, jdTop, jdBottom, dr);
                    string           color   = dr[itemDesignStruc.Color_FromFiled].ToString();
                    if (colorDic.ContainsKey(color))
                    {
                        string             colorvalue = colorDic[color];
                        LJJSHatch          ljjsHatch  = new LJJSHatch(colorvalue, bool.FalseString);
                        HatchRectDrawStrut hrds       = new HatchRectDrawStrut(areaLst, ljjsHatch);
                        hrdsLst.Add(hrds);
                    }
                }
            }
            else
            {
                foreach (DataRow dr in drs)
                {
                    List <LJJSPoint> areaLst = GetFillAreaPtLst(lrptstart, jdTop, jdBottom, dr);

                    LJJSHatch          ljjsHatch = itemDesignStruc.ItemHatch;
                    HatchRectDrawStrut hrds      = new HatchRectDrawStrut(areaLst, ljjsHatch);
                    hrdsLst.Add(hrds);
                }
            }
            return(hrdsLst);
        }
Exemple #20
0
        public List <LJJSPoint> GetDrawZuoPtCol(Hashtable drawht, double addPtXvalue)
        {
            List <LJJSPoint> drawptcol = new List <LJJSPoint>();
            ArrayList        al;//完成排序的绘图点;

            if (null == drawht)
            {
                return(drawptcol);
            }
            if (_keDuChiItem.KStyle == KDCStyle.DuiShu)           //对数项;
            {
                drawht = HashUtil.MoveHashTableZeroValue(drawht); //去掉数据中的0值;
            }

            al = HashUtil.GetHastablePaiXuList(drawht);//完成排序的绘图点;
            if (null != al && al.Count > 1)
            {
                int    last      = al.Count - 1;
                double firstptJS = (double)al[0];
                double lastptJS  = (double)al[last];

                double firstPtY = ZuoBiaoOper.GetJSZongZBValue(_jdptstart.YValue, firstptJS, _jdstruc.JDtop, FrameDesign.ValueCoordinate);
                double lastPtY  = ZuoBiaoOper.GetJSZongZBValue(_jdptstart.YValue, lastptJS, _jdstruc.JDtop, FrameDesign.ValueCoordinate);

                drawptcol.Add(new LJJSPoint(addPtXvalue, firstPtY + 0.0001));

                for (int i = 0; i < al.Count; i++)
                {
                    double jsvalue = (double)al[i];
                    double xvalue  = (double)drawht[jsvalue];
                    if (_keDuChiItem.KStyle == KDCStyle.DuiShu)//对数项;
                    {
                        drawptcol.Add(GetDuiShuPointZB(_keDuChiItem, new LJJSPoint(xvalue, jsvalue), _jdstruc, _jdptstart));
                    }
                    else
                    {
                        drawptcol.Add(GetPtZBByKDC(_keDuChiItem, _jdptstart, new LJJSPoint(xvalue, jsvalue), _jdstruc.JDtop));
                    }
                }
                drawptcol.Add(new LJJSPoint(addPtXvalue, lastPtY - 0.0001));
            }

            return(drawptcol);
        }
        private void AddStandardSymbolItemToFigure(JDStruc jdstruc, List <SymbolItemStruc> syDrawingCol)
        {
            for (int i = 0; i < syDrawingCol.Count; i++)
            {
                SymbolItemStruc symbldrawing        = syDrawingCol[i];
                LJJSPoint       sybltopZuoBiaoPt    = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate);
                LJJSPoint       syblbottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthbottom, jdstruc.JDtop, FrameDesign.ValueCoordinate);
                LJJSPoint       syblpos             = ZuoBiaoOper.GetMidPtBetweenTwoPt(sybltopZuoBiaoPt, syblbottomZuoBiaoPt);

                for (int j = 0; j < symbldrawing.sybolcodelist.Count; j++)
                {
                    double xscale   = 1;
                    double yscale   = 1;
                    string syblcode = symbldrawing.sybolcodelist[j].Trim();
                    if (syblcode != "n" && syblcode != "")
                    {
                        SymbolCodeClass sybloper = (SymbolCodeClass)HashUtil.FindObjByKey(syblcode, FillSymbolCode.SymbolCodeClassHt);
                        if (null == sybloper)
                        {
                            continue;
                        }

                        if (Math.Abs(sybloper.symbolHeigh) > 0.01 && sybloper.ifZXEnlarge)
                        {
                            yscale = Math.Abs(sybltopZuoBiaoPt.YValue - syblbottomZuoBiaoPt.YValue) / sybloper.symbolHeigh;
                        }

                        if ((Math.Abs(sybloper.symbolWidth) > 0.01) && symItemDesignStruc.SyblIfHorFill)
                        {
                            xscale = this.lineRoadEnvironment.LineRoadWidth / sybloper.symbolWidth;
                        }
                        if (symItemDesignStruc.SymbolFramePro == SymbolFrame.DoubleParallel)
                        {
                            Line.BuildCommonHorLineByLayer(sybltopZuoBiaoPt, lineRoadEnvironment.LineRoadWidth, 0, DrawCommonData.DirectionRight);
                            //.AddContinusHorLine(sybltopZuoBiaoPt, lineRoadEnvironment.LineRoadWidth, 0);
                            Line.BuildCommonHorLineByLayer(syblbottomZuoBiaoPt, lineRoadEnvironment.LineRoadWidth, 0, DrawCommonData.DirectionRight);
                        }
                        //    AddJoinAdjustItemObjId(CommonDrawing.InsertSymbolItem(sybloper.symbolcode, xscale, yscale, syblpos));
                        SymbolAdd.InsertBlock(sybloper.symbolcode, xscale, yscale, syblpos);
                    }
                }
            }
        }
 public SymbolItemDesignStruct(SymbolItemModel symbolItemModel)
 {
     ItemField                  = symbolItemModel.ItemField.Trim();
     ItemName                   = symbolItemModel.ItemName.Trim();
     ItemTable                  = symbolItemModel.ItemTable.Trim();
     this.SyblIfHorFill         = BoolUtil.GetBoolByBindID(symbolItemModel.SyblIfHorFill.Trim(), false);
     this.SyBolOffset           = StrUtil.StrToDouble(symbolItemModel.SyBolOffset.Trim(), 0, "符号项设置有误");
     this.SyHeaderStartheigh    = StrUtil.StrToDouble(symbolItemModel.SyHeaderStartheigh.Trim(), 0, "符号项设置有误");
     this.SyItemTxtVerSpace     = StrUtil.StrToDouble(symbolItemModel.SyItemTxtVerSpace.Trim(), 0, "符号项设置有误");
     this.SyJDBottom            = symbolItemModel.SyJDBottom.Trim();
     this.SyJDHeigh             = symbolItemModel.SyJDHeigh.Trim();
     this.SyJDTop               = symbolItemModel.SyJDTop.Trim();
     this.SymbolFramePro        = EnumUtil.GetEnumByStr(symbolItemModel.SymbolFrame, SymbolFrame.NoFrame);        //SymbolItemClass.GetSymbolFrameStyle(symbolItemModel.SymbolFrame.Trim());
     this.SymbolItemColor       = StrUtil.StrToInt(symbolItemModel.SymbolItemColor.Trim(), DrawCommonData.BlackColorRGB, "符号项颜色设置有误");
     this.SymbolItemTitleHorPos = EnumUtil.GetEnumByStr(symbolItemModel.SymbolItemTitleHorPos, ItemTitlePos.Mid); //ItemOper.GetDrawingItemTitlePos(symbolItemModel.SymbolItemTitleHorPos.Trim());
     this.SymbolOrder           = StrUtil.StrToInt(symbolItemModel.SymbolOrder, 0, "符号项设置有误");
     this.SymDISubStyle         = SymbolItemClass.GetSymDISubStyleByStr(symbolItemModel.SymDISubStyle.Trim());
     this.SymDepthFieldStyle    = ZuoBiaoOper.GetDepthFieldStyle(symbolItemModel.SyJDTop, symbolItemModel.SyJDBottom, symbolItemModel.SyJDHeigh);
 }
Exemple #23
0
        private void AddYXPouMianToFigure(JDStruc jdstruc, List <SymbolItemStruc> yxpmStrucLst)
        {
            for (int i = 0; i < yxpmStrucLst.Count; i++)
            {
                SymbolItemStruc symbldrawing        = yxpmStrucLst[i];
                LJJSPoint       sybltopZuoBiaoPt    = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate);
                LJJSPoint       syblbottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthbottom, jdstruc.JDtop, FrameDesign.ValueCoordinate);
                LJJSPoint       syblpos             = ZuoBiaoOper.GetMidPtBetweenTwoPt(sybltopZuoBiaoPt, syblbottomZuoBiaoPt);

                for (int j = 0; j < symbldrawing.sybolcodelist.Count; j++)
                {
                    double xscale   = 1;
                    double yscale   = 1;
                    string syblcode = symbldrawing.sybolcodelist[j].Trim();
                    if (syblcode != "n" && syblcode != "")
                    {
                        SymbolCodeClass sybloper = (SymbolCodeClass)FillSymbolCode.SymbolCodeClassHt[syblcode];
                        if (null == sybloper)
                        {
                            continue;
                        }
                        if (sybloper.ifZXEnlarge)
                        {
                            yscale = Math.Abs(sybltopZuoBiaoPt.YValue - syblbottomZuoBiaoPt.YValue);
                        }
                        else if (sybloper.ifFill)
                        {
                            xscale = sybloper.symbolWidth;
                            yscale = Math.Abs(sybltopZuoBiaoPt.YValue - syblbottomZuoBiaoPt.YValue);
                        }
                        if (sybloper.symbolWidth > 0)
                        {
                            Rect.AddBlackRect(syblbottomZuoBiaoPt, Math.Abs(syblbottomZuoBiaoPt.YValue - sybltopZuoBiaoPt.YValue), sybloper.symbolWidth, 0, new DrawDirection(1, 1));
                        }

                        SymbolAdd.InsertBlock(sybloper.symbolcode, xscale, yscale, syblpos);
                    }
                }
            }
        }
Exemple #24
0
        public TxtItemClass(TextItemModel txtItemModel)
        {
            if (null != txtItemModel)
            {
                _iD = txtItemModel.ID.Trim();

                _txtItemName          = txtItemModel.TxtItemName.Trim();
                _FromFieldName        = txtItemModel.TxtItemField.Trim();
                _TxtItemTitleSpace    = StrUtil.StrToDouble(txtItemModel.TxtItemTitleSpace, 0, "文本项标题的纵向距离为非数值型");      //MyNormalOper.GetDoubleValue(ht["TxtItemTitleSpace"].ToString().Trim(), 0, "文本项标题的纵向具体为非数值型");
                _TxtPaiLie            = EnumUtil.GetEnumByStr(txtItemModel.TxtPaiLie, TxtArrangeStyle.TxtHorArrange);
                _TxtPosition          = EnumUtil.GetEnumByStr(txtItemModel.TxtPosition, AttachmentPoint.BottomCenter);  // PositionUtil.GetTxtPositionForCAD(txtItemModel.TxtPosition);
                _TxtDistribution      = EnumUtil.GetEnumByStr(txtItemModel.TxtLayOut.Trim(), Txtdistribution.Txtfocus); // ht["TxtLayOut"].ToString());//分散或集中;
                _TxtJDTop             = txtItemModel.TxtJDTop.Trim();                                                   // ht["TxtJDTop"].ToString().Trim();
                _TxtJDHeigh           = txtItemModel.TxtJDHeigh.Trim();                                                 // ht["TxtJDHeigh"].ToString().Trim();
                _TxtJDBottom          = txtItemModel.TxtJDBottom.Trim();                                                // ht["TxtJDBottom"].ToString().Trim();
                _TxtColor             = StrUtil.StrToInt(txtItemModel.TxtColor, Color.Black.ToArgb(), "文本项颜色为非数值型");    // AutoCADColor.FromColor(SysColor.FromArgb(MyNormalOper.GetIntValue(ht["TxtColor"].ToString(), 0, "文本项颜色为非数值型")));
                _TxtItemFromTableName = txtItemModel.TxtItemFromTbName.Trim();                                          // ht["TxtItemFromTbName"].ToString().Trim();
                _TxtHeaderStartheigh  = StrUtil.StrToDouble(txtItemModel.TxtHeaderStartheigh.Trim(), 8, "文本项的起始位置为非数值型");
                _TxtSize              = StrUtil.StrToDouble(txtItemModel.TxtSize.Trim(), 1.5, "文本项的字高为非数值型");
                _TextOutFrame         = EnumUtil.GetEnumByStr(txtItemModel.TextOutFrame, TxtItemOutFrame.NoFrame);   //PositionUtil.GetTxtItemOutFrameStyle(txtItemModel.TextOutFrame.Trim());
                _TxtOutFrameWidth     = StrUtil.StrToDouble(txtItemModel.TxtOutFrameWidth, -1, "文本项平行纵向外框的宽度为非数值型");
                _TxtOutFrameVerDivPos = EnumUtil.GetEnumByStr(txtItemModel.TxtOutFrameVerDivPos, VerDivPos.LeftPos); //PositionUtil.GetTxtItemOutFrameVerDivPos(txtItemModel.TxtOutFrameVerDivPos);
                _TIOffset             = StrUtil.StrToDouble(txtItemModel.TIOffset, 0, "文本项的相对平移距离为非数值型");
                _TiStyle              = EnumUtil.GetEnumByStr(txtItemModel.TxtItemStyle, TxtItemStyle.TxtStyle);     //GetTxtStyle(txtItemModel.TxtItemStyle);
                _ThinBZPosStyle       = EnumUtil.GetEnumByStr(txtItemModel.ThinBZpos, ThinBZPosStyle.TopPos);        //PositionUtil.GetThinBZPosStyle(txtItemModel.ThinBZpos);
                _txtItemTitlePos      = EnumUtil.GetEnumByStr(txtItemModel.TxtItemTitleHorPos, ItemTitlePos.Mid);    //ItemOper.GetDrawingItemTitlePos(txtItemModel.TxtItemTitleHorPos);
                _depthstyle           = ZuoBiaoOper.GetDepthFieldStyle(_TxtJDTop, _TxtJDBottom, _TxtJDHeigh);
                _TxtDiSubStyle        = txtItemModel.TxtDiSubStyle.Trim();                                           // ht["TxtDiSubStyle"].ToString().Trim();

                if (string.IsNullOrEmpty(txtItemModel.TxtFont.Trim()))
                {
                    _TxtStrFont = txtItemModel.TxtFont.Trim();// ht["TxtFont"].ToString().Trim();
                }
                else
                {
                    _TxtStrFont = "宋体";
                }
            }
        }
Exemple #25
0
        public override List <ulong> AddTextItemToFigure(JDStruc jdstruc, List <TextItemDrawStruc> textItemDrawStrucCol)
        {
            for (int i = 0; i < textItemDrawStrucCol.Count; i++)
            {
                TextItemDrawStruc currtidrawstruc = textItemDrawStrucCol[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);//获取小段底坐标

                //如果是横向排列则用线道宽度,如果是纵向排列需要分析小井段厚度
                AddTxtItemDrawStrucToFigure(titopZuoBiaoPt, tibottomZuoBiaoPt
                                            , currtidrawstruc, lineRoadWidth, Math.Abs(titopZuoBiaoPt.YValue - tibottomZuoBiaoPt.YValue), textItemStruct, lineRoadWidth);

                if (textItemStruct.TextOutFrame == TxtItemOutFrame.DoubleParallel)//如果类型为双平行线类型则绘制双平行线
                {
                    TextItemOper.AddTiOutFrameParelLine(titopZuoBiaoPt, tibottomZuoBiaoPt, textItemStruct.TIOffset, textItemStruct.TxtOutFrameWidth);
                }
            }
            return(new List <ulong>());
        }
        }                                    //附加图片的类型;

        public ImageItemDesignClass(ImageItemModel imageItemModel)
        {
            // TODO: Complete member initialization
            this.ID                 = imageItemModel.ID.Trim();
            this.ImageFromField     = imageItemModel.ImageFromField.Trim();
            this.ImageItemOrder     = StrUtil.StrToInt(imageItemModel.ImageItemOrder, 0, "图片项序号为非整数型");
            this.ImageItemSubStyle  = imageItemModel.ImageItemSubStyle.Trim();
            this.ImageJDBottomField = imageItemModel.ImageJDBottomField.Trim();
            this.ImageJDHeighField  = imageItemModel.ImageJDHeighField.Trim();
            this.ImageJDTopField    = imageItemModel.ImageJDTopField.Trim();
            this.ItemFromTable      = imageItemModel.ItemFromTable.Trim();
            this.ItemName           = imageItemModel.ItemName.Trim();
            this.ImageJDStyle       = ZuoBiaoOper.GetDepthFieldStyle(imageItemModel.ImageJDStyle.Trim());
            this.TitleHorPostion    = EnumUtil.GetEnumByStr(imageItemModel.TitleHorPostion, ItemTitlePos.Mid); //ItemOper.GetDrawingItemTitlePos(imageItemModel.TitleHorPostion.Trim());
            this.TitleTxtStartHeigh = StrUtil.StrToDouble(imageItemModel.TitleTxtStartHeigh.Trim(), 4, "绘图项标题高度为非数值型");
            this.ImageAdditionOne   = imageItemModel.ImageAdditionOne;
            this.ImageAdditionTwo   = imageItemModel.ImageAdditionTwo;
            this.ImageAdditionThree = imageItemModel.ImageAdditionThree;
            this.ImageAdditionFour  = imageItemModel.ImageAdditionFour;
            this.ImageAdditionFive  = imageItemModel.ImageAdditionFive;
            this.ImageAdditionSix   = imageItemModel.ImageAdditionSix;
            this.FormStyle          = imageItemModel.FormStyle;
        }
        private double AddJSMainKDLine(JDStruc jdStruc, LJJSPoint tmpptstart, JingShenDesignClass jingShenDesignStruc, int jstop, double mainKDSpace, double minusVal)
        {
            double minMainKDPtJs;
            double biaoZhuJS;

            if (minusVal < mainKDSpace)
            {
                minMainKDPtJs = jstop + mainKDSpace;
            }
            else
            {
                minMainKDPtJs = jstop + 1;
            }
            biaoZhuJS = minMainKDPtJs;
            List <LJJSPoint> dengfenptarr = new List <LJJSPoint>();

            LJJSPoint minMainKDPt = ZuoBiaoOper.GetJSZuoBiaoPt(tmpptstart, minMainKDPtJs, jdStruc.JDtop, FrameDesign.ValueCoordinate);

            dengfenptarr.Add(minMainKDPt);
            dengfenptarr.AddRange(ZuoBiaoOper.GetZongXiangDengFenPtArr(minMainKDPt, -1, jdStruc.JDHeight - Math.Abs(minMainKDPt.YValue - tmpptstart.YValue), jingShenDesignStruc.MainKDSpace));

            for (int i = 0; i < dengfenptarr.Count(); i++)
            {
                //1,绘制主刻度线;
                Line.BuildHorToRightBlackSolidLine(dengfenptarr[i], jingShenDesignStruc.MainKDLength, _lineRoadModel.ZhengMiLineWidth, "");

                //2,添加井深标注;
                int tmp = i % jingShenDesignStruc.BiaoZhuSpace;
                if (tmp.Equals(0))
                {
                    DrawPerJDJSZMLineBiaoZhu(dengfenptarr[i], biaoZhuJS);   //画右侧刻度的井深depth标注
                }
                biaoZhuJS = biaoZhuJS + mainKDSpace;
            }
            ifAddBiaoZhu = true;
            return(minMainKDPtJs);
        }
        private void AddNormalContinuousToFigure(ArrayList al, JDStruc jdstruc, Hashtable drawht, Color penColor, int index)
        {
            double           jdtop       = jdstruc.JDtop;
            string           prekdcname  = "No";
            double           preyval     = 0;
            double           prexvalue   = 0;
            string           currkdcname = "";
            LJJSPoint        lrptstart;
            LJJSPoint        currpt     = new LJJSPoint(0, 0);
            List <LJJSPoint> drawptcol  = new List <LJJSPoint>();
            List <LJJSPoint> outdrawcol = new List <LJJSPoint>();

            List <List <LJJSPoint> > outdrawcollist = new List <List <LJJSPoint> >();

            double      jdbottom = jdstruc.JDBottom;
            ZuoBiaoOper zbopp    = new ZuoBiaoOper(FrameDesign.ValueCoordinate);
            LJJSPoint   prept    = new LJJSPoint(0, 0);
            KeDuChiItem drawkdc  = null;
            LJJSPoint   chajieinterpt;//超界交点
            KeDuChiItem outdrawkdc = m_KDCList[m_KDCList.Count - 1];
            double      lastxvalue = 0;


            #region
            for (int i = 0; i < al.Count; i++)
            {
                double yval   = (double)al[i];
                double xvalue = (double)drawht[yval]; //获取 每个点x,y的值

                drawkdc = PointIfChaoJie(yval, drawht);

                if (drawkdc != null)//该点未超界;
                {
                    outdrawkdc = drawkdc;
                    lrptstart  = ZuoBiaoOper.UpdateLRStartPt(drawkdc.KDir, jdstruc.JDPtStart, LineRoadEnvironment.LineRoadWidth);

                    this.lrptstart     = lrptstart;
                    this.lrptstartName = lineItemStruct.LiSubClass;
                    //MessageBox.Show(string.Format("lrptstart:({0},{1})", lrptstart.XValue.ToString(), lrptstart.YValue.ToString()));

                    currkdcname = drawkdc.KName;
                    currpt      = GetPtZBByKDC(drawkdc, jdstruc.JDPtStart, (double)drawht[yval], yval, jdstruc.JDtop);
                    prept       = currpt;
                    if (StrUtil.IfTwoStrEqul(prekdcname, currkdcname))
                    {
                        drawptcol.Add(currpt);//和上一点为同一刻度尺;则加入绘图集合;
                    }
                    else//开始下一段曲线的操作;分为从超界曲线向非超界的跳变,也有可能是非超界之间的跳变;
                    {
                        if (prekdcname.Equals(""))//从超界曲线向非超界的跳变
                        {
                            if (lastxvalue < drawkdc.KMin)
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue);
                            }
                            else
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue + outdrawkdc.KDir * LineRoadEnvironment.LineRoadWidth);
                            }


                            outdrawcol.Add(chajieinterpt);
                            drawptcol.Clear();
                            drawptcol.Add(chajieinterpt);

                            if (outdrawcol.Count > 0)
                            {
                                outdrawcollist.Add(outdrawcol);
                            }
                        }
                        else//非超界之间的跳变;
                        {
                            if (drawptcol.Count > 1)
                            {
                                this.DrawContinuousLine(drawptcol, prekdcname, drawkdc.kLineWidth, penColor);//绘制上一段曲线;
                            }

                            drawptcol.Clear();
                        }
                        drawptcol.Add(currpt);
                    }
                    prekdcname = currkdcname;
                    prexvalue  = (double)drawht[yval];
                    preyval    = yval;
                }
                else//该点已超界  drawkdc == null
                {
                    if (m_KDCList.Count > 0)
                    {
                        currpt      = GetPtZBByKDC(outdrawkdc, jdstruc.JDPtStart, (double)drawht[yval], yval, jdstruc.JDtop);
                        currkdcname = "";
                        if (lineItemStruct.LineItemChaoJie == CJQXChaoJie.BiaoZhu) //添加标注信息;
                        {
                            if (!StrUtil.IfTwoStrEqul(prekdcname, currkdcname))    //跳变点
                            {
                                lrptstart          = ZuoBiaoOper.UpdateLRStartPt(outdrawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);
                                this.lrptstart     = lrptstart;
                                this.lrptstartName = lineItemStruct.LiSubClass;
                                if (xvalue < outdrawkdc.KMin)
                                {
                                    chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue);
                                }
                                else
                                {
                                    chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue + outdrawkdc.KDir * lineRoadEnvironment.LineRoadWidth);
                                }
                                drawptcol.Add(chajieinterpt);
                                if (drawptcol.Count > 0)
                                {
                                    this.DrawContinuousLine(drawptcol, prekdcname, outdrawkdc.kLineWidth, penColor);//绘制上一段非超界曲线;


                                    drawptcol.Clear();
                                }
                            }
                            prept      = currpt;
                            prekdcname = currkdcname;
                            prexvalue  = (double)drawht[yval];
                            preyval    = yval;

                            continue;
                        }


                        if (StrUtil.IfTwoStrEqul(prekdcname, currkdcname))
                        {
                            outdrawcol.Add(currpt);//和上一点为同一刻度尺;则加入绘图集合;
                        }
                        else//此时为从非超界向超界跳变;上一段非超界曲线结束;
                        {
                            outdrawcol         = new List <LJJSPoint>();
                            lrptstart          = ZuoBiaoOper.UpdateLRStartPt(outdrawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);
                            this.lrptstart     = lrptstart;
                            this.lrptstartName = lineItemStruct.LiSubClass;
                            if (xvalue < outdrawkdc.KMin)
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue);
                            }
                            else
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue + outdrawkdc.KDir * lineRoadEnvironment.LineRoadWidth);
                            }

                            drawptcol.Add(chajieinterpt);
                            if (drawptcol.Count > 1)
                            {
                                this.DrawContinuousLine(drawptcol, prekdcname, outdrawkdc.kLineWidth, penColor);//绘制上一段非超界曲线;

                                drawptcol.Clear();
                            }
                            if (outdrawcol.Count > 0)
                            {
                                outdrawcollist.Add(outdrawcol);
                            }
                            outdrawcol.Clear();
                            if (i != 0)
                            {
                                outdrawcol.Add(chajieinterpt);
                            }


                            outdrawcol.Add(currpt);
                            prekdcname = currkdcname;
                            prexvalue  = (double)drawht[yval];
                            preyval    = yval;
                        }
                    }
                }
                prept      = currpt;
                lastxvalue = xvalue;
            }//遍历完所有的点;
            #endregion
            lrptstart = ZuoBiaoOper.UpdateLRStartPt(outdrawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);


            this.set_start_point_dele = SuiZuanForm.set_startpoint; //这两行代码用于随钻界面画图后界面的放大,如果是绘图可无视
            this.set_start_point_dele(lrptstart);                   //这两行代码用于随钻界面画图后界面的放大,如果是绘图可无视
            this.lrptstart     = lrptstart;
            this.lrptstartName = lineItemStruct.LiSubClass;
            if ((currkdcname == "") && (outdrawcol.Count > 1))
            {
                outdrawcollist.Add(outdrawcol);


                //add here?
            }



            if (drawptcol.Count > 1 && drawkdc != null)
            {
                //在循环进行完毕,将drawptcol ,即画的线上的所有点的集合保存在一个静态类中
                if (lineItemStruct.LiSubClass == "msev" && DrawPointContainer.list[index].msevList == null)
                {
                    DrawPointContainer.list[index].msevList = drawptcol;
                    //MsehAndMsevContainer.msevList = drawptcol;
                }
                if (lineItemStruct.LiSubClass == "mseh" && DrawPointContainer.list[index].msehList == null)
                {
                    DrawPointContainer.list[index].msehList = drawptcol;
                }

                if (lineItemStruct.LiSubClass == "wxcs" && DrawPointContainer.list[index].wxcsList == null)
                {
                    DrawPointContainer.list[index].wxcsList = drawptcol;
                }

                if (lineItemStruct.LiSubClass == "wxcs2" && DrawPointContainer.list[index].WXCSJiaoHuiList == null)
                {
                    DrawPointContainer.list[index].WXCSJiaoHuiList = drawptcol;
                }

                if (lineItemStruct.LiSubClass == "jgl" && DrawPointContainer.list[index].JinGeiLiangList == null)
                {
                    DrawPointContainer.list[index].JinGeiLiangList = drawptcol;
                }


                this.DrawContinuousLine(drawptcol, currkdcname, drawkdc.kLineWidth, penColor);//绘制上一段非超界曲线;在此画线
            }

            if (outdrawcollist.Count > 0)
            {
                AddChaoJieLine(outdrawcollist, lrptstart.XValue + outdrawkdc.KDir * lineRoadEnvironment.LineRoadWidth, outdrawkdc.KDir, outdrawkdc.KName, outdrawkdc.kLineWidth, penColor);
            }
        }
Exemple #29
0
        private LJJSPoint GetPtZBByKDC(KeDuChiItem drawkdc, LJJSPoint lrptstart, LJJSPoint converPt, double jdtop)
        {
            ZuoBiaoOper zbopp = new ZuoBiaoOper(FrameDesign.ValueCoordinate);

            return(zbopp.GetDrawingZuoBiaoPt(lrptstart, drawkdc, converPt.XValue, converPt.YValue, jdtop, LineRoadEnvironment.LineRoadWidth));
        }
        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>());
        }