public JSModel DoAnalysis() { var lowerSupportNode = new JSNode(new Vector2d(0, 0)) { XRestrained = true, YRestrained = true }; var upperSupportNode = new JSNode(new Vector2d(0, 10)) { XRestrained = true, YRestrained = true }; var forceNode = new JSNode(new Vector2d(5, 5)); var nodes = new JSNode[] { upperSupportNode, forceNode, lowerSupportNode }; var force = new JSPointLoad(new Vector2d(0, -1), forceNode); var forces = new JSPointLoad[] { force }; var lowerBar = new JSBar(lowerSupportNode, forceNode); var upperBar = new JSBar(upperSupportNode, forceNode); var bars = new JSBar[] { upperBar, lowerBar }; var analyser = new JSModel(); analyser.AddItems(bars, nodes, forces); analyser.Solve(); return(analyser); }
public OxyForm_ResultsView(JSModel model, string title) { InitializeComponent(); //this.plotView1.Size = this.ClientSize; this.SizeChanged += Form1_SizeChanged; Model = new PlotModel { Title = title }; JointModel = model; foreach (var bar in JointModel.Bars) { var series = new LineSeries(); series.Points.Add(bar.StartPosition.ToDataPoint()); series.Points.Add(bar.EndPosition.ToDataPoint()); series.Title = $"Bar {bar.Number}: F={bar.ForceResult.ToString("F2")}"; Model.Series.Add(series); var text = new TextAnnotation(); text.TextPosition = bar.MidPoint.ToDataPoint(); text.TextVerticalAlignment = OxyPlot.VerticalAlignment.Middle; text.TextHorizontalAlignment = OxyPlot.HorizontalAlignment.Center; text.Text = bar.ForceResult.ToString("F2"); text.Background = OxyColor.FromRgb(255, 255, 255); Model.Annotations.Add(text); } foreach (var node in JointModel.Nodes) { var text = new TextAnnotation(); text.TextPosition = node.Position.ToDataPoint(); text.TextVerticalAlignment = OxyPlot.VerticalAlignment.Top; text.TextHorizontalAlignment = OxyPlot.HorizontalAlignment.Left; var textString = $"Node {node.Number}\n"; if (node.AppliedForces != Vector2d.Zero) { textString += "F=" + node.AppliedForces + "\n"; } if (node.ReactionResult != Vector2d.Zero) { textString += "R=" + node.ReactionResult; } text.Text = textString; text.StrokeThickness = 0; Model.Annotations.Add(text); } this.plotView1.Model = Model; }