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