Force and Moment Envelopes in OpenSTAAD


  
 Applies To 
  
 Product(s):STAAD.Pro
 Version(s):All
 Environment: N/A
 Area: OpenSTAAD
 Subarea: OpenSTAAD FAQ's
 Original Author:Bentley Technical Support Group
  

Force and Moment Envelopes in OpenSTAAD

Issue #: SP-2462     Date Posted: 5/31/2002

Description: I am trying to use OpenSTAAD to link the member end forces from my STAAD run to an Excel sheet so that I can do a moment connection design other than the one offered through STAAD.etc. How do I get the force/moment envelopes (maximum forces/moments amongst all the load cases) with OpenSTAAD?

Solution: As of OpenSTAAD 1.2, there is no exposed function which allows you to directly extract the force or moment envelopes. There are functions to determine the maxium shear force or moment on a member for a particular load case (GetMaxBendingMoment and GetMaxShearForce) and functions to retrieve all 6 forces at the end of a member (GetMemberEndForces). You can use the latter, however, to iterate through all the load cases (primary and combinations) and determine the maximum force or moment by simply comparing values. The following code (written in VBA) determines the maximum FY amongst all load cases for a particular member (MemberNo) [Please note that some variables have not been initialized]: Dim objOpenSTAAD 
Dim EndForces(6) As Double
Dim PrimaryLCs As Integer
Dim LoadCombs As Integer
Dim MemberNo As Integer
Dim MaxSaggingMoment As Double
Dim MaxFY As Double

Set objOpenSTAAD = CreateObject("OpenSTAAD.Output.1")

objOpenSTAAD.GetPrimaryLoadCaseCount PrimaryLCs
objOpenSTAAD.GetLoadCombinationCaseCount LoadCombs

TotalLoads = PrimaryLCs + LoadCombs

'Iterate through your load sets to find the results for each load case
MaxFY = -1.e10
For i = 1 To TotalLoads
objOpenSTAAD.GetMemberEndForces MemberNo, 0, i, EndForces(0)
If (EndForces(1) > MaxFY) Then
MaxFY = EndForces(1)
End If
Next