Applies To | |||
Product(s): | STAAD.Pro | ||
Version(s): | All | ||
Environment: | N/A | ||
Area: | OpenSTAAD | ||
Subarea: | Support, Output | ||
Original Author: | Bentley Technical Support Group, Shreyanka Bhattacharjee | ||
Problem Description:
How to extract base pressure using OpenSTAAD function (VBA and python)
Solution:
GetBasePressures function returns base pressure in X, Y and Z direction.
GetSupportCount and GetSupportNodes function can be used to extract base pressure for all supported nodes. GetSupportCount gets the total number of supported nodes exist in the current structure and GetSupportNodes gets all supported nodes.
Parameter:
GetBasePressures:
[Input] Lcase: Load Case reference ID
[Input] nNodes: The support node numbers
[Output] varYZPress: base pressures in X direction
[Output] varZXPress: base pressures in Y direction
[Output] varXYPress: base pressures in Z direction
GetSupportCount:
[Return Value] supportCount: The number of support nodes
GetSupportNodes:
[Output] nNodes: The support node numbers
Sample VBA Syntax:
Dim Lcase As Long
Dim supportCount As Long
Dim nNodes() As Long
Dim varYZPress() As Double
Dim varZXPress() As Double
Dim varXYPress() As Double
Set objOpenSTAAD = GetObject(, "StaadPro.OpenSTAAD")
Lcase = 3 'LoadCase = 3
supportCount = objOpenSTAAD.Support.GetSupportCount
ReDim nNodes(supportCount - 1)
ReDim varYZPress(supportCount - 1)
ReDim varZXPress(supportCount - 1)
ReDim varXYPress(supportCount - 1)
objOpenSTAAD.Support.GetSupportNodes nNodes
'Extract base pressure For all support nodes
objOpenSTAAD.Output.GetBasePressures Lcase, nNodes, varYZPress, varZXPress, varXYPress
For i = 0 To supportCount - 1
Cells(2 + i, 1).Value = nNodes(i)
Cells(2 + i, 2).Value = varYZPress(i)
Cells(2 + i, 3).Value = varZXPress(i)
Cells(2 + i, 4).Value = varXYPress(i)
Next i
Set objOpenSTAAD = Nothing
Python syntax:
GetBasePressures.py file is attached