Result Monitors (internal forces)
Tomas Blahuta edited this page Mar 23, 2021
·
3 revisions
Its possible to display internal forces in document or image. The forces can be printed out with the help of Result Monitors.
Result monitor is defined with Fcs.Analysis.ResultMonitor.New(loadCase, monitoredValue, structureSelector)
. One monitor can display more values at once - to do that, include more ResultMonitors in the array.
To print out the monitor through ImageRenderer, define Fcs model with gblocks, .fcsdrs and .fcsdrv files, and a string referencing the ResultMonitor.
ShellResultMonitors := loadCase => {
# lc, internal force, selector
nx := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.nx, Fcs.Assembly.All) ],
ny := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.ny, Fcs.Assembly.All) ],
nxy := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.nxy, Fcs.Assembly.All) ],
mx := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.mx, Fcs.Assembly.All) ],
my := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.my, Fcs.Assembly.All) ],
mxy := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.mxy, Fcs.Assembly.All) ],
vx := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.vxy, Fcs.Assembly.All) ],
vy := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.vy, Fcs.Assembly.All) ],
# ... and more
}
BeamResultMonitors := loadCase => {
# lc, internal force, selector
N := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.Beam.N, Fcs.Assembly.AllBeams) ],
Vz := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.Beam.Vz, Fcs.Assembly.AllBeams) ],
My := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.Beam.My, Fcs.Assembly.AllBeams) ],
Mz := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.Beam.Mz, Fcs.Assembly.AllBeams) ],
Myc := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.Beam.Central.My_mid, Fcs.Assembly.AllBeams) ],
Mzc := [ Fcs.Analysis.ResultMonitor.New(loadCase, Fcs.Analysis.Result.Beam.Central.Mz_mid, Fcs.Assembly.AllBeams) ],
# ... and more
}
LiveLoadMonitor := BeamResultMonitors( Fcs.Action.LoadCase{ Name = loadCases.LiveLoad.Name })
SnFlLoadMonitor := BeamResultMonitors( Fcs.Action.LoadCase{ Name = loadCases.SnowFullCase.Name })
SnUnLoadMonitor := BeamResultMonitors( Fcs.Action.LoadCase{ Name = loadCases.SnowUnbalCase.Name })
ImageContent := Fcs.Presentation.ImageRenderer{
Model := Fcm,
DrawSettingsFile := "InternalForces.fcsdrs",
ProjectionSettingsFile := "InternalForces.fcsdrv",
AutoZoom := True,
ResultMonitors := "LiveLoadMonitor.N",
},
Two rules that need to be adhered are:
- The referencing string and definition of ResultMonitor must be in one fcs file.
- .fcsdrs file has to have settings which shows the graph of internal forces (the graph has to have correct orientation).
- Localisation
- Basics
- FemCAD workings
- Geometry
- Input
- Direct edit
- Analysis
- Output
-
Stories
- FAQ
- Stupid user mistakes
- How to discover speed issues in the code
- How to run script faster
- How to list evaluated variables
- How I got lost in graphical interface when dealing with labels
- How to create Bill of material
- How to deal with point transfer between UCS and LCS
- How to define input
- How to make output