private string getLineForcesInfo(LineElement l, float xPos, RenderOptions.InternalForces iForces)
{
string force = units.UnitName(Canguro.Model.UnitSystem.Units.Force);
string moment = units.UnitName(Canguro.Model.UnitSystem.Units.Moment);
string unitStr = force;
float[] diagram;
string iForceName = string.Empty;
int numPoints = Properties.Settings.Default.ElementForcesSegments;
Model.Load.AbstractCase ac = model.Results.ActiveCase.AbstractCase;
Model.Load.LineForceComponent component = Canguro.Model.Load.LineForceComponent.Axial;
bool lastUndoEnabled = model.Undo.Enabled;
bool lastUnitSystemEnabled = Model.UnitSystem.UnitSystemsManager.Instance.Enabled;
try
{
if (model.IsLocked)
model.Undo.Enabled = false;
Model.UnitSystem.UnitSystemsManager.Instance.Enabled = false;
Analysis.LineStressCalculator calc = new Analysis.LineStressCalculator();
// Shear forces
switch (iForces)
{
case RenderOptions.InternalForces.Sx:
component = Canguro.Model.Load.LineForceComponent.Axial;
iForceName = Culture.Get("Axial");
break;
case RenderOptions.InternalForces.Sy:
component = Canguro.Model.Load.LineForceComponent.Shear22;
iForceName = Culture.Get("Shear") + " 22";
break;
case RenderOptions.InternalForces.Sz:
component = Canguro.Model.Load.LineForceComponent.Shear33;
iForceName = Culture.Get("Shear") + " 33";
break;
// Moments
case RenderOptions.InternalForces.Mx:
component = Canguro.Model.Load.LineForceComponent.Torsion;
iForceName = Culture.Get("Torsion");
unitStr = moment;
break;
case RenderOptions.InternalForces.My:
component = Canguro.Model.Load.LineForceComponent.Moment22;
iForceName = Culture.Get("Moment") + " 22";
unitStr = moment;
break;
case RenderOptions.InternalForces.Mz:
component = Canguro.Model.Load.LineForceComponent.Moment33;
iForceName = Culture.Get("Moment") + " 33";
unitStr = moment;
break;
}
// Get Diagram
diagram = calc.GetForceAtPoint(ac, l, component, xPos);
}
finally
{
Model.UnitSystem.UnitSystemsManager.Instance.Enabled = lastUnitSystemEnabled;
model.Undo.Enabled = lastUndoEnabled;
}
return "\n" + iForceName + ": " + units.FromInternational(diagram[1], Canguro.Model.UnitSystem.Units.Force).ToString("G3") + unitStr;
}