public AnalysisCase(string name) { Name = name; NodeDeformations = new CombinableList<NodeDeformation>(); Reactions = new CombinableList<Reaction>(); FrameInternalForces = new CombinableList<FrameInternalForce>(); }
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>(); }
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); } }
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); } }
private void DrawDeformations(CombinableList<NodeDeformation> minDefs, CombinableList<NodeDeformation> maxDefs) { DrawDeformations(minDefs.AbsMax(maxDefs)); }
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); } }
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); } }
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); } }