Exemple #1
0
        protected void IsoFootDetailOnPlan()
        {
            DimensionLine dim = new DimensionLine();

            DetailingGraphics = new DovDrawings(detailingContext);
            detailingChart    = new ChartStyle();
            float footW = DetailingCanvWidth;
            float footH = 0.6f * DetailingCanvHeight;

            detailingChart.ChartArea = new RectangleF(0, 0, footW, footH);
            float startX = 0;
            float startY = 0;

            DetailingGraphics.Clear(startX, startY, footW, footH);
            float limit = (footingData.Width > footingData.Length ? footingData.Width : footingData.Length);
            float xMax  = 0.5f * limit;
            float xMin  = -0.5f * limit;
            float yMax  = 0.5f * limit;
            float yMin  = -0.5f * limit;

            SetGraphicLayout(footW, footH, startX, startY, detailingChart, new float[] { xMin, xMax, yMin, yMax });
            PointF fPt1 = new PointF(-0.5f * footingData.Width, 0.5f * footingData.Length);
            PointF fPt2 = new PointF(0.5f * footingData.Width, -0.5f * footingData.Length);

            fPt1 = detailingChart.Point2D(fPt1);
            fPt2 = detailingChart.Point2D(fPt2);
            DetailingGraphics.FillColorOpt = "lightslategrey";
            DetailingGraphics.FillColor(fPt1, fPt2);
            DetailingGraphics.DrwColor = "dimgrey";
            DetailingGraphics.DrawRec(fPt1, fPt2);
            SetGraphicLayout(footW, footH, startX, startY, detailingChart, new float[] { xMin, xMax, yMin, yMax });
            PointF cPt1   = new PointF(footingData.ColLocX - 0.5f * footingData.Width + footingData.ColumnWidth * 0.5f, footingData.ColLocY - footingData.Length * 0.5f - 0.5f * footingData.ColumnLength);
            PointF cPt2   = new PointF(footingData.ColLocX - 0.5f * footingData.Width - footingData.ColumnWidth * 0.5f, footingData.ColLocY - footingData.Length * 0.5f + 0.5f * footingData.ColumnLength);
            PointF center = new PointF(footingData.ColLocX - 0.5f * footingData.Width, footingData.ColLocY - footingData.Length * 0.5f);

            cPt1   = detailingChart.Point2D(cPt1);
            cPt2   = detailingChart.Point2D(cPt2);
            center = detailingChart.Point2D(center);
            DetailingGraphics.FillColorOpt = "darkslategrey";
            DetailingGraphics.FillColor(cPt1, cPt2);
            DetailingGraphics.DrwColor = "dimgrey";
            DetailingGraphics.DrawRec(cPt1, cPt2);
            DetailingGraphics.DrwColor = "cadetblue";
            dim.Graphic = DetailingGraphics;
            dim.DimLoc  = DimensionLine.DimensionLocation.end;
            dim.DrawAdjDimLine(fPt1, fPt2, string.Format("W={0}", footingData.Width));
            dim.DimDir = DimensionLine.DimensionDirection.right;
            DetailingGraphics.TextBase = TextBaseline.Bottom;
            dim.DrawOppoDimLine(fPt1, fPt2, string.Format("L={0}", footingData.Length));
            fPt1 = new PointF(-0.5f * footingData.Width, -0.5f * footingData.Length);
            fPt1 = detailingChart.Point2D(fPt1);
            dim.DrawOppoDimLine(fPt1, center, string.Format("y={0}", footingData.ColLocY));
            ////dim.DimLoc = DimensionLine.DimensionLocation.end;
            //await dim.DrawAdjDimLine(fPt1, center, string.Format("x={0}", footingData.ColLocX));
            // drawing reinforcement
            // horizontal
            float thick      = footingData.Thickness;
            float w          = footingData.Width;
            float l          = footingData.Length;
            float c          = footingData.Cover * 0.1f;
            float dia        = footingData.Dia;
            float barArea    = (float)Math.PI * dia * dia / 4;
            int   nbar       = (int)Math.Ceiling(fDesign.Asy / barArea);
            int   barSpacing = 1000 / nbar;

            barSpacing = barSpacing.RoundDown();
            float  x   = footingData.ColLocX - 0.5f * w + 0.5f * footingData.ColumnWidth + thick - 2 * c;
            float  y1  = -(0.5f * l - c);
            float  y2  = (0.5f * l - c);
            PointF pt1 = new PointF(x, y1);
            PointF pt2 = new PointF(x, y2);
            PointF pt3 = new PointF(pt1.X - thick + 2 * c, pt1.Y);
            PointF pt4 = new PointF(pt2.X - thick + 2 * c, pt2.Y);

            pt1 = detailingChart.Point2D(pt1);
            pt2 = detailingChart.Point2D(pt2);
            pt3 = detailingChart.Point2D(pt3);
            pt4 = detailingChart.Point2D(pt4);
            DetailingGraphics.DrwColor = "red";
            DetailingGraphics.DrawLine(pt1, pt2);
            string spacing = string.Format("{0} c/c {1} mm", dia, barSpacing);

            DetailingGraphics.TextAlignment = TextAlign.Center;
            DetailingGraphics.TextBase      = TextBaseline.Hanging;
            DetailingGraphics.FillColorOpt  = "yellow";
            dim.DrawTextAtAngleMid(pt1, pt2, spacing);
            DetailingGraphics.DrawLine(pt1, pt3);
            DetailingGraphics.DrawLine(pt2, pt4);
            //vertical
            float y3 = footingData.ColLocY - 0.5f * l + 0.5f * footingData.ColumnLength + thick - 2 * c;
            float x1 = -(0.5f * w - c);
            float x2 = (0.5f * w - c);

            nbar       = (int)Math.Ceiling(fDesign.Asx / barArea);
            barSpacing = 1000 / nbar;
            barSpacing = barSpacing.RoundDown();
            pt1        = new PointF(x1, y3);
            pt2        = new PointF(x2, y3);
            pt3        = new PointF(pt1.X, pt1.Y - thick + 2 * c);
            pt4        = new PointF(pt2.X, pt2.Y - thick + 2 * c);
            pt1        = detailingChart.Point2D(pt1);
            pt2        = detailingChart.Point2D(pt2);
            pt3        = detailingChart.Point2D(pt3);
            pt4        = detailingChart.Point2D(pt4);
            DetailingGraphics.DrawLine(pt1, pt2);
            spacing = string.Format("{0} c/c {1} mm", dia, barSpacing);
            DetailingGraphics.TextAlignment = TextAlign.Center;
            DetailingGraphics.TextBase      = TextBaseline.Bottom;
            dim.DrawTextAtAngleMid(pt1, pt2, spacing);
            DetailingGraphics.DrawLine(pt1, pt3);
            DetailingGraphics.DrawLine(pt2, pt4);
        }