Exemplo n.º 1
0
        public AnalysisCase(string name)
        {
            Name = name;

            NodeDeformations = new CombinableList<NodeDeformation>();
            Reactions = new CombinableList<Reaction>();
            FrameInternalForces = new CombinableList<FrameInternalForce>();
        }
Exemplo n.º 2
0
        public Combination(string name, bool isEnvelope)
        {
            Name = name;
            IsEnvelope = isEnvelope;

            acCoefficients = new Dictionary<AnalysisCase, double>();
            coCoefficients = new Dictionary<Combination, double>();

            MinNodeDeformations = new CombinableList<NodeDeformation>();
            MinReactions = new CombinableList<Reaction>();
            MinFrameInternalForces = new CombinableList<FrameInternalForce>();

            MaxNodeDeformations = new CombinableList<NodeDeformation>();
            MaxReactions = new CombinableList<Reaction>();
            MaxFrameInternalForces = new CombinableList<FrameInternalForce>();
        }
Exemplo n.º 3
0
 private void DrawFrameShearForces(CombinableList<FrameInternalForce> minInternalForces, CombinableList<FrameInternalForce> maxInternalForces)
 {
     float maxForceSize = 4 * DimensionOffset;
     float maxForce = 0;
     foreach (FrameInternalForce force in minInternalForces)
     {
         maxForce = (float)Math.Max(maxForce, Math.Max(Math.Abs(force.VI), Math.Abs(force.VJ)));
     }
     foreach (FrameInternalForce force in maxInternalForces)
     {
         maxForce = (float)Math.Max(maxForce, Math.Max(Math.Abs(force.VI), Math.Abs(force.VJ)));
     }
     for (int i = 0; i < minInternalForces.Count; i++)
     {
         FrameInternalForce minF = minInternalForces[i];
         FrameInternalForce maxF = maxInternalForces[i];
         DrawInternalForce(minF.Frame, (float)minF.VI, (float)minF.VJ, (float)maxF.VI, (float)maxF.VJ, maxForceSize / maxForce);
     }
 }
Exemplo n.º 4
0
 private void DrawFrameShearForces(CombinableList<FrameInternalForce> internalForces)
 {
     float maxForceSize = 4 * DimensionOffset;
     float maxForce = 0;
     foreach (FrameInternalForce force in internalForces)
     {
         maxForce = (float)Math.Max(maxForce, Math.Max(Math.Abs(force.VI), Math.Abs(force.VJ)));
     }
     foreach (FrameInternalForce force in internalForces)
     {
         DrawInternalForce(force.Frame, (float)force.VI, (float)force.VJ, maxForceSize / maxForce);
     }
 }
Exemplo n.º 5
0
 private void DrawDeformations(CombinableList<NodeDeformation> minDefs, CombinableList<NodeDeformation> maxDefs)
 {
     DrawDeformations(minDefs.AbsMax(maxDefs));
 }
Exemplo n.º 6
0
        private void DrawDeformations(CombinableList<NodeDeformation> defs)
        {
            double maxDef = 0;
            foreach (NodeDeformation def in defs)
            {
                maxDef = Math.Max(maxDef, Math.Abs(def.UX));
                maxDef = Math.Max(maxDef, Math.Abs(def.UZ));
            }
            double deformationScale = mCurrentSection.SectionProperties.OuterHeight / 10 / maxDef;

            // Draw frames
            foreach (Frame f in mCurrentSection.AnalysisModel.Frames)
            {
                float x1 = (float)(f.NodeI.X + defs[f.NodeI.Index].UX * deformationScale);
                float y1 = (float)(f.NodeI.Z + defs[f.NodeI.Index].UZ * deformationScale);
                float x2 = (float)(f.NodeJ.X + defs[f.NodeJ.Index].UX * deformationScale);
                float y2 = (float)(f.NodeJ.Z + defs[f.NodeJ.Index].UZ * deformationScale);

                SimpleCAD.Line line = new SimpleCAD.Line(x1, y1, x2, y2);
                line.OutlineStyle = new SimpleCAD.OutlineStyle(FormWorkColor);
                Model.Add(line);
            }
        }
Exemplo n.º 7
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);
     }
 }
Exemplo n.º 8
0
 private void DrawReactions(CombinableList<Reaction> reactions)
 {
     float textOffset = 0.5f * TextSize;
     foreach (Reaction r in reactions)
     {
         string reactionText = r.FX.ToString("0") + ", " + r.FZ.ToString("0") + ", " + r.MY.ToString("0");
         SimpleCAD.Text text = new SimpleCAD.Text((float)r.Node.X + textOffset / 2, (float)r.Node.Z + textOffset / 2, reactionText, TextSize);
         text.FontFamily = Font.Name;
         text.OutlineStyle = new SimpleCAD.OutlineStyle(DimensionColor);
         Model.Add(text);
     }
 }