Example #1
0
 private void DrawReactions(CombinableList<Reaction> minReactions, CombinableList<Reaction> maxReactions)
 {
     float textOffset = 0.5f * TextSize;
     for (int i = 0; i < minReactions.Count; i++)
     {
         Reaction rmin = minReactions[i];
         Reaction rmax = maxReactions[i];
         string[] reactionText = new string[]{ rmin.FX.ToString("0") + ", " + rmin.FZ.ToString("0") + ", " + rmin.MY.ToString("0"),
              rmax.FX.ToString("0") + ", " + rmax.FZ.ToString("0") + ", " + rmax.MY.ToString("0")};
         SimpleCAD.MultiLineText text = new SimpleCAD.MultiLineText((float)rmin.Node.X + textOffset / 2, (float)rmin.Node.Z + textOffset / 2, reactionText, TextSize);
         text.FontFamily = Font.Name;
         text.OutlineStyle = new SimpleCAD.OutlineStyle(DimensionColor);
         Model.Add(text);
     }
 }
Example #2
0
        private void DrawRackingLoad()
        {
            float wo = mCurrentSection.SectionProperties.OuterWidth - mCurrentSection.SectionProperties.OuterWallThickness;
            float ho = mCurrentSection.SectionProperties.OuterHeight - mCurrentSection.SectionProperties.SlabThickness / 2 - mCurrentSection.SectionProperties.FoundationThickness / 2;
            float dx = ho / 10;

            float ix = -wo / 2;
            float iw = mCurrentSection.SectionProperties.InnerWalls;
            float dix = wo / (iw + 1);

            float supportSize = DimensionOffset;
            // Left
            SimpleCAD.Triangle leftSupport = new SimpleCAD.Triangle(-wo / 2, 0,
                -wo / 2 - supportSize / 2, -supportSize,
                -wo / 2 + supportSize / 2, -supportSize);
            leftSupport.OutlineStyle = new SimpleCAD.OutlineStyle(DimensionColor);
            Model.Add(leftSupport);
            // Right
            SimpleCAD.Triangle rightSupport = new SimpleCAD.Triangle(wo / 2, 0,
                wo / 2 - supportSize / 2, -supportSize,
                wo / 2 + supportSize / 2, -supportSize);
            rightSupport.OutlineStyle = new SimpleCAD.OutlineStyle(DimensionColor);
            Model.Add(rightSupport);

            // Deformed shape
            PointF[] deformed = new PointF[4];
            deformed[0] = new PointF(-wo / 2, 0);
            deformed[1] = new PointF(wo / 2, 0);
            deformed[2] = new PointF(wo / 2 + dx, ho);
            deformed[3] = new PointF(-wo / 2 + dx, ho);
            SimpleCAD.Polygon deformedObj = new SimpleCAD.Polygon(deformed);
            deformedObj.OutlineStyle = new SimpleCAD.OutlineStyle(DimensionColor, 3);
            Model.Add(deformedObj);
            for (int i = 0; i < iw; i++)
            {
                ix += dix;
                SimpleCAD.Line deformedWall = new SimpleCAD.Line(ix, 0, ix + dx, ho);
                deformedWall.OutlineStyle = new SimpleCAD.OutlineStyle(DimensionColor, 3);
                Model.Add(deformedWall);
            }

            // Text
            float textOffset = DimensionOffset;
            float x = wo / 2 + dx + textOffset;
            float y = ho;

            string[] text = new string[]{ "Racking Parameters:",
                mCurrentSection.SoilParameters.PGA.ToString("PGA = 0.00 g"),
                mCurrentSection.SoilParameters.DepthToInvertLevel.ToString("z = 0.00 m"),
                mCurrentSection.SoilParameters.StressAtInvertLevel.ToString("σz = 0.00 kPa"),
                mCurrentSection.SoilParameters.StressReductionFactor.ToString("Rd = 0.00"),
                mCurrentSection.SoilParameters.MaximumShearStress.ToString("τ = 0.00 kPa"),
                mCurrentSection.SoilParameters.MaximumShearStrain.ToString("γ = 0.0000"),
                mCurrentSection.SoilParameters.FreeFieldDeformation.ToString("Δ = 0.0000 m")};

            SimpleCAD.MultiLineText rackingParamsText = new SimpleCAD.MultiLineText(x, y, text, TextSize);
            rackingParamsText.OutlineStyle = new SimpleCAD.OutlineStyle(DimensionColor);
            rackingParamsText.FontFamily = Font.Name;
            Model.Add(rackingParamsText);
        }