How to extract base pressure using OpenSTAAD function (VBA and python)


  
 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

  communities.bentley.com/.../GetBasePressures.py