/// <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);
                    }
                }
            }
        }
Example #2
0
        public override void AddPerJDDrawItem(JDStruc jdStruc, int index)
        {
            if (null == keDuChiItem)
            {
                return;
            }
            if (null == verBoundaryLineLst && verBoundaryLineLst.Count < 2)
            {
                return;
            }

            double jdtop    = jdStruc.JDtop;
            double jdbottom = jdStruc.JDBottom;

            Hashtable drawht;

            if (jdtop < jdbottom)
            {
                try
                {
                    drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), itemDesignStruc.XFieldName, itemDesignStruc.JSField);//..GetJoinAdjustLineItemPointCol(LineItemDrawDt, sqltxt, m_liStruc.LIFromFieldName, depth);//保存了绘图的点集;key为Y值,value为x值;
                }
                catch
                {
                    MessageBox.Show("请检查数据表字段是否正确222");
                    return;
                }
                if (drawht.Count > 0)
                {
                    AddCurvesHasHatch(jdStruc, drawht);
                }
            }
        }
Example #3
0
 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;
 }
Example #4
0
        public override void AddPerJDDrawItem(JDStruc jdStruc, int index)
        {
            if (null == firstVerBoundaryLineLst && firstVerBoundaryLineLst.Count < 2)
            {
                return;
            }

            double jdtop    = jdStruc.JDtop;
            double jdbottom = jdStruc.JDBottom;

            Hashtable drawht;

            if (jdtop < jdbottom)
            {
                try
                {
                    drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), itemDesignStruc.Xfield, itemDesignStruc.Yfield);
                }
                catch
                {
                    MessageBox.Show("请检查数据表字段是否正确111");

                    return;
                }
                if (null != drawht && drawht.Count > 1)
                {
                    AddMultiHatchCurve(jdStruc, drawht);
                }
            }
        }
Example #5
0
        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;
            }
        }
Example #6
0
        public override void AddPerJDDrawItem(JDStruc jdStruc, int index)
        {
            ImageItemBuilderOper imageItemBuilderOper = new ImageItemBuilderOper();

            imageItemBuilderOper.ImageItemDesignStruc = imageItemDesginStruc;
            List <ImageItemStruc> imagestruclist = imageItemBuilderOper.GetImageItemPerJDDrawData(jdStruc, ItemDataTable);

            AddStandardImageItemToFigure(jdStruc, imagestruclist);
        }
        public override void AddPerJDDrawItem(JDStruc jdStruc, int index)
        {
            SymbolItemBuilderOper symbolItemBuilderOper = new SymbolItemBuilderOper();

            symbolItemBuilderOper.SymItemDesignStruc = symItemDesignStruc;
            List <SymbolItemStruc> yxpmstruclist = symbolItemBuilderOper.GetSymbolItemPerJDDrawData(jdStruc, ItemDataTable);

            AddStandardSymbolItemToFigure(jdStruc, yxpmstruclist);
        }
Example #8
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);
     }
 }
Example #9
0
        private void  AddCurvesHasHatch(JDStruc jdstruc, Hashtable drawht)
        {
            if (null != verBoundaryLineLst && verBoundaryLineLst.Count > 0)
            {
                CurveHatch curveHatch = new CurveHatch(jdstruc, keDuChiItem, this.lineRoadEnvironment.LineRoadWidth);

                List <LJJSPoint> drawPtCol = curveHatch.GetDrawZuoPtCol(drawht, verBoundaryLineLst[0].XValue);

                curveHatch.CurvesBuildExec(drawPtCol, itemDesignStruc.ItemHatch, verBoundaryLineLst);
            }
        }
        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);
            }
        }
        public override void AddPerJDDrawItem(JDStruc jdStruc, int index)
        {
            List <HatchRectDrawStrut> drawStructList = GetPerJDDrawStructLst(jdStruc);

            if (null != drawStructList && drawStructList.Count > 0)
            {
                for (int i = 0; i < drawStructList.Count; i++)
                {
                    MyHatch.AddAreaHatch(DrawCommonData.activeDocument, drawStructList[i].FillArea, drawStructList[i].LjjsHatch);
                }
            }
        }
        /// <summary>
        /// 获得主框架的高度;
        /// </summary>
        /// <returns></returns>
        public static double GetMainFrameHeight()
        {
            double mainFrameHeight = 0;
            int    lineRoadCount   = _lineRoadControlLst.Count();

            if (_lineRoadControlLst != null && lineRoadCount > 0)
            {
                JDStruc lastJdStruc = LineRoadControlLst[lineRoadCount - 1].LineRoadJDStructLst.Last();
                mainFrameHeight = Math.Abs(lastJdStruc.JDPtStart.YValue) + lastJdStruc.JDHeight;
            }
            return(mainFrameHeight);
        }
Example #13
0
        private LJJSPoint GetVerBoundaryEndPt(double XValue)
        {
            int lastjdcount = this.lineRoadEnvironment.JdDrawLst.Count();

            if (lastjdcount > 0)
            {
                JDStruc   jd    = this.lineRoadEnvironment.JdDrawLst[lastjdcount - 1];
                LJJSPoint endPt = new LJJSPoint(XValue, jd.JDPtStart.YValue + DrawCommonData.DirectionDown * jd.JDHeight);

                return(endPt);
            }
            else
            {
                return(null);
            }
        }
Example #14
0
        public static JDStruc GetJDStruc(LJJSPoint jdPtStart, double lrWidth, string jdStr)
        {
            JDStruc jdStruc = new JDStruc();

            if (!string.IsNullOrEmpty(jdStr) && jdPtStart != null)
            {
                jdStruc.JDPtStart = jdPtStart;
                string[] jdarr = jdStr.Split(DrawCommonData.jdSplitter);
                if (jdarr.Count() > 1)
                {
                    jdStruc.JDtop    = StrUtil.StrToDouble(jdarr[0], "井段起始为空,请检查井段设计", "井段起始为非数值型,请检查井段设计");
                    jdStruc.JDBottom = StrUtil.StrToDouble(jdarr[1], "井段终止为空,请检查井段设计", "井段终止为非数值型,请检查井段设计");
                    jdStruc.JDHeight = JDOper.GetJDDrawingHeight(jdStruc.JDtop, jdStruc.JDBottom, FrameDesign.ValueCoordinate);//井深就是差值乘以比例尺
                }
            }
            return(jdStruc);
        }
Example #15
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, "");
                }
            }
        }
        public override void AddPerJDDrawItem(JDStruc jdStruc, int index)
        {
            double jdtop     = jdStruc.JDtop;                               //井段头
            double jdbottom  = jdStruc.JDBottom;                            //井段底
            string txtitemid = textItemStruct.TxtItemName.Replace("_", ""); //绘图项名称

            txtitemid = txtitemid.Replace(" ", "");                         //去掉空格

            List <TextItemDrawStruc> txtitemdrawinglist = GetJoinAdjustTextItemDrawStrucList(jdtop, jdbottom);

            Layer.CreateAndSetCurrentLayer(txtitemid, textItemStruct.TxtColor);//创建一个层

            AddTextItem addTextItem = AddPerJDTextItemFactory.CreateAddTextItemToFigureInstance(textItemStruct.TiStyle);

            addTextItem.textItemStruct = textItemStruct;
            addTextItem.lineRoadWidth  = lineRoadEnvironment.LineRoadWidth;
            addTextItem.AddTextItemToFigure(jdStruc, txtitemdrawinglist);
        }
        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);
        }
        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);
                    }
                }
            }
        }
Example #19
0
        private void AddMultiHatchCurve(JDStruc jdStruc, Hashtable drawht)
        {
            if (null == kdcItem)
            {
                return;
            }
            if (null == drawht || drawht.Count < 1)
            {
                return;
            }
            CurveHatch curveHatch = new CurveHatch(jdStruc, kdcItem, this.lineRoadEnvironment.LineRoadWidth);

            if (null == firstVerBoundaryLineLst || firstVerBoundaryLineLst.Count < 2)
            {
                return;
            }
            List <LJJSPoint> drawPtCol = curveHatch.GetDrawZuoPtCol(drawht, firstVerBoundaryLineLst[0].XValue);

            if (null != itemDesignStruc.HatchOne && CurveHatch.TestBoundaryCurve(firstVerBoundaryLineLst))
            {
                if (null != drawPtCol && drawPtCol.Count > 0)
                {
                    curveHatch.CurvesBuildExec(drawPtCol, itemDesignStruc.HatchOne, firstVerBoundaryLineLst);
                }
            }

            if (null != itemDesignStruc.HatchTwo && itemDesignStruc.FenJieValueOne > 0 && CurveHatch.TestBoundaryCurve(secondVerBoundaryLineLst))
            {
                List <LJJSPoint> drawPXcol = curveHatch.GetInterSectCol(drawPtCol, secondVerBoundaryLineLst[0], secondVerBoundaryLineLst[1], kdcItem.KDir);
                if (null != drawPXcol && drawPXcol.Count > 0)
                {
                    curveHatch.CurvesBuildExec(drawPXcol, itemDesignStruc.HatchTwo, secondVerBoundaryLineLst);
                }
            }
            if (null != itemDesignStruc.HatchThree && itemDesignStruc.FenJieValueTwo > 0 && CurveHatch.TestBoundaryCurve(thirdVerBoundaryLineLst))
            {
                List <LJJSPoint> drawPXcol = curveHatch.GetInterSectCol(drawPtCol, thirdVerBoundaryLineLst[0], thirdVerBoundaryLineLst[1], kdcItem.KDir);
                if (null != drawPXcol && drawPXcol.Count > 0)
                {
                    curveHatch.CurvesBuildExec(drawPXcol, itemDesignStruc.HatchThree, thirdVerBoundaryLineLst);
                }
            }
        }
        public override void AddPerJDDrawItem(JDStruc jdStruc, int index)
        {
            LJJSPoint ptStart;
            double    jdtop    = jdStruc.JDtop;
            double    jdbottom = jdStruc.JDBottom;

            ptStart = jdStruc.JDPtStart;
            string subsql = SQLBuilder.GetSingleDepthSubSql(jdtop, jdbottom, this.itemDesignStruc.Main_GWJSField);

            DataRow[] drs = MainDataTb.Select(subsql, itemDesignStruc.Main_GWJSField + " ASC");
            if (null != drs && drs.Length > 0)
            {
                foreach (DataRow dr in drs)
                {
                    string yywz = dr[itemDesignStruc.Main_YYWZField].ToString();
                    double gwjs = (double)dr[itemDesignStruc.Main_GWJSField];
                    AddPerYYWZHatch(yywz, gwjs, ptStart, jdStruc.JDtop);
                }
            }
        }
Example #21
0
        public List <ulong> DrawRectFrame()
        {
            List <ulong> rectFrameLst = new List <ulong>();
            double       frameHeight  = FrameControlData.GetMainFrameHeight();
            double       frameWidth   = FrameControlData.GetMainFrameWidth();

            _frameHeight = frameHeight;
            _frameWidth  = frameWidth;
            LJJSPoint     startPt     = new LJJSPoint(DrawCommonData.xStart, DrawCommonData.yStart);
            DrawDirection ddMainFrame = new DrawDirection();

            ddMainFrame.HorDirection = 1;
            ddMainFrame.VerDirection = -1;

            DrawDirection ddTitleFrame = new DrawDirection();

            ddTitleFrame.HorDirection = 1;
            ddTitleFrame.VerDirection = 1;

            Rect.AddBlackRect(startPt, frameHeight, frameWidth, FrameDesign.PictureFrameLineWidth, ddMainFrame);
            Rect.AddBlackRect(startPt, FrameDesign.LineRoadTitleBarHeigh, frameWidth, FrameDesign.PictureFrameLineWidth, ddTitleFrame);

            if (FrameDesign.JdStrLst.Count() > 1 && FrameControlData.LineRoadControlLst.Count() > 0)
            {
                List <JDStruc> firstLineRoadJDStrucLst = FrameControlData.LineRoadControlLst[0].LineRoadJDStructLst;
                //fff
                for (int i = 0; i < firstLineRoadJDStrucLst.Count(); i++) //2560-2590 2660-2690
                {
                    JDStruc   tmpJDStruc = firstLineRoadJDStrucLst[i];
                    double    xStart     = tmpJDStruc.JDPtStart.XValue;
                    double    yStart     = tmpJDStruc.JDPtStart.YValue + DrawCommonData.DirectionDown * tmpJDStruc.JDHeight;
                    LJJSPoint tmpstartPt = new LJJSPoint(xStart, yStart);
                    Line.BuildHorToRightBlackSolidLine(tmpstartPt, frameWidth, FrameDesign.PictureFrameLineWidth, "");

                    tmpstartPt = new LJJSPoint(xStart, yStart + DrawCommonData.DirectionDown * FrameDesign.JdSpace);
                    Line.BuildHorToRightBlackSolidLine(tmpstartPt, frameWidth, FrameDesign.PictureFrameLineWidth, "");
                }
            }

            return(rectFrameLst);
        }
Example #22
0
        public static List <JDStruc> GetLineRoadJDLst(LJJSPoint lrPtStart, double lrWidth)
        {
            List <JDStruc> tmpJdStrucLst = new List <JDStruc>();
            double         xStart        = lrPtStart.XValue;
            double         yStart        = lrPtStart.YValue;

            if (FrameDesign.JdStrLst != null)
            {
                for (int i = 0; i < FrameDesign.JdStrLst.Count(); i++)
                {
                    LJJSPoint jdPtStart = new LJJSPoint(xStart, yStart);


                    string  tmpJdStr   = FrameDesign.JdStrLst[i];
                    JDStruc tmpJdStruc = GetJDStruc(jdPtStart, lrWidth, tmpJdStr);
                    tmpJdStrucLst.Add(tmpJdStruc);
                    yStart = DrawCommonData.DirectionDown * (Math.Abs(yStart) + tmpJdStruc.JDHeight + FrameDesign.JdSpace);
                }
            }
            return(tmpJdStrucLst); //2560-2590 2660-2690
        }
        public override void DrawPerJDZMLine(DrawingElement.LJJSPoint ptstart, JDStruc jdStruc) //lineroaddrawingmodel.lineroadjdStruct -> 2560-2590,2660-2690  jdstruct
        {
            LJJSPoint tmpptstart       = ptstart;
            double    tmplineroadwidth = _lineroadwidth;

            int    jstop       = (int)jdStruc.JDtop;
            double mainKDSpace = ((jingShenDesignStruc.MainKDSpace * FrameDesign.YCoordinate) / (FrameDesign.XCoordinate * 1000));//主刻度间隔的长度,求出对应的实际井深长度;例如,设计5mm,对应实际井深为所求值;

            double minusVal = Math.Abs(jdStruc.JDtop - jstop);

            //here!!!
            if (jingShenDesignStruc.isLeftMainKDShow)//绘制左侧主刻度
            {
                AddJSMainKDLine(jdStruc, tmpptstart, jingShenDesignStruc, jstop, mainKDSpace, minusVal);
            }
            if (jingShenDesignStruc.isRightMainKDShow)//绘制右侧主刻度
            {
                tmpptstart = new LJJSPoint(ptstart.XValue + _lineroadwidth - jingShenDesignStruc.MainKDLength, ptstart.YValue);
                AddJSMainKDLine(jdStruc, tmpptstart, jingShenDesignStruc, jstop, mainKDSpace, minusVal);
            }
        }
Example #24
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);
                    }
                }
            }
        }
Example #25
0
        public override void InitOtherItemDesign()
        {
            //设置刻度尺;
            List <KeDuChiItem> m_KDCList = (List <KeDuChiItem>)KeDuChiManage.LineItemKDCHt[ItemName];

            if (null != m_KDCList && m_KDCList.Count > 0)
            {
                keDuChiItem = m_KDCList[0];
            }
            else
            {
                return;
            }

            //设置补充线,从线道头开始,至线道末的垂直线;
            verBoundaryLineLst = new List <LJJSPoint>();
            double xstart;

            if (itemDesignStruc.HatchPosition.Equals(MyCurveHatchPos.Left))
            {
                xstart = this.LineRoadStartPt.XValue;
            }
            else
            {
                xstart = this.LineRoadStartPt.XValue + lineRoadEnvironment.LineRoadWidth;
            }

            LJJSPoint start = new LJJSPoint(xstart, this.LineRoadStartPt.YValue);

            verBoundaryLineLst.Add(start);
            int lastjdcount = this.lineRoadEnvironment.JdDrawLst.Count();

            if (lastjdcount > 0)
            {
                JDStruc   jd    = this.lineRoadEnvironment.JdDrawLst[lastjdcount - 1];
                LJJSPoint endPt = new LJJSPoint(xstart, jd.JDPtStart.YValue + DrawCommonData.DirectionDown * jd.JDHeight);
                verBoundaryLineLst.Add(endPt);
            }
        }
Example #26
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>());
        }
        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);
        }
        public override void AddPerJDDrawItem(JDStruc jdStruc, int i)
        {
            double jdtop    = jdStruc.JDtop;
            double jdbottom = jdStruc.JDBottom;

            Hashtable drawht;                   //里面装有所有点的 x y坐标值 key是y值即depth  value是x值

            List <Hashtable> drawhtList = null; //如果是P,则需要画两条线 list【0】是本来的线,【1】是基质线

            if (jdtop < jdbottom)
            {
                /**
                 * if (lineItemStruct.LIFromFieldName.Trim().Equals("P") == false)
                 * {
                 *  drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.LIFromFieldName.Trim(), lineItemStruct.JsField.Trim());//..GetJoinAdjustLineItemPointCol(LineItemDrawDt, sqltxt, m_liStruc.LIFromFieldName, depth);//保存了绘图的点集;key为Y值,value为x值;
                 * }
                 * else  //是P
                 * {
                 *  drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.LIFromFieldName.Trim(), lineItemStruct.JsField.Trim());
                 *  drawhtList = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.JsField.Trim(), lineItemStruct.LIFromFieldName.Trim(), "MSEJ");
                 * }**/

                drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.LIFromFieldName.Trim(), lineItemStruct.JsField.Trim());//..GetJoinAdjustLineItemPointCol(LineItemDrawDt, sqltxt, m_liStruc.LIFromFieldName, depth);//保存了绘图的点集;key为Y值,value为x值;
                if (drawht.Count > 0)
                {
                    if (lineItemStruct.LineItemType.Equals(CJQXLineClass.StickLine))//棒图;
                    {
                        this.AddStickLineToFigure(jdStruc, drawht);
                    }

                    else //折线;
                    {
                        this.AddContinuousLineToFigure(jdStruc, drawht, i, drawhtList);
                    }
                }
            }
        }
 private void AddStickLineToFigure(JDStruc jdstruc, Hashtable drawht)
 {
     if (m_KDCList.Count == 0)
     {
         return;
     }
     if (drawht.Count < 1)
     {
         return;
     }
     if (m_KDCList[0].KStyle == KDCStyle.DuiShu)
     {
         drawht = HashUtil.MoveHashTableZeroValue(drawht);
         if (drawht.Count < 2)
         {
             return;
         }
         AddDuiShuStickLineToFigure(m_KDCList[0], jdstruc, drawht);
     }
     else
     {
         AddNormalStickLineToFigure(jdstruc, drawht);
     }
 }
Example #30
0
 abstract public List <ulong> AddTextItemToFigure(JDStruc jdstruc, List <TextItemDrawStruc> textItemDrawStrucCol);