You are on page 1of 72

STAAD.

Pro Tips and Tricks

Carlos Aguera
24th May 2011
Agenda
The following are the topics to be covered in this workshop of
STAAD.Pro Tips and Tricks
1) Macros and OpenSTAAD
2) Stage Construction
3) Foundations
4) Buckling Analysis
5) Angle Profiles

|2
1) Macro using OpenSTAAD and VBA
Objective
To create a macro to review the results of a model and display the
maximum displacement from a user selection of nodes.
Create a VBA project
Create and use an OpenSTAAD Object
Test STAAD.Pro is open and a model loaded.
Get analysis results from STAAD.Pro
Display a dialog with results in STAAD.Pro

|4
OpenSTAAD
What is OpenSTAAD?
ASCII
Input data (*.STD)
Output data (*.ANL)
Binary
Results (*.BMD, REA, DSP..)
Inside STAAD.Pro in a macro
External using ANY suitable environment
(but STAAD.Pro must be running locally in the background)

|5
STAAD.Pro Macro GUI
To Create:-
Menu, Edit>Create New VB Macro
Menu, Edit>Edit Existing VB Macro
To Use:-
Menu, Tools>Configure User Tools
Toolbar

|6
Start a new Project
Open the STAAD example file,
EXAMP08.STD
Start a new VB Macro project from
the menu Edit>Create New VB
Macro
Navigate to My Documents, enter
the file name:-
BE Together 2011.VBS and click
New

|7
Create the macro
'Create an instance of OpenSTAAD Object.
Sub Main ()
Dim oStd As Object
Set oStd = GetObject(,"StaadPro.OpenSTAAD")
..
Set oStd = Nothing
Exit Sub

|8
Check your work, Test 1
Add a break point by clicking on in the grey column to the right of the
line:-
Set oStd = Nothing
Run the macro by clicking on the green arrow

|9
Check that a file is loaded
Add the following after the line that creates
the OpenSTAAD object:-
Dim stdFile As String
oStd.GetSTAADFile(stdFile,"TRUE")
If stdFile = "" Then
MsgBox "This macro can only be run with a valid
STAAD file loaded.", vbOkOnly
Set oStd = Nothing
Exit Sub
End If

oStd.GetSTAADFile(stdFile,"TRUE") is the first use of


the OpenSTAAD object created in the previous step.

| 10
Check your work, Test 2
Add a break point by clicking on in the
grey column to the right of the line:-
oStd.GetSTAADFile(stdFile, "TRUE")
Run the macro by clicking on the
green arrow
Click on the Step Over icon on the
toolbar and hover over the text
stdFile. This should display the file
name and path of the currently open
STAAD file.

| 11
Getting Load Case data
Add the following after the End If test to see if a file is loaded:-
Dim i as Integer
Dim LCases As Integer
Dim lstLoadNums() As Long
Dim lstLoads() As String

LCases = oStd.Load.GetPrimaryLoadCaseCount()
ReDim lstLoadNums(LCases)
ReDim lstLoads(LCases)
oStd.Load.GetPrimaryLoadCaseNumbers lstLoadNums
For i =0 To LCases-1
lstLoads(i)= CStr(lstLoadNums(i)) &" : " & oStd.Load.GetLoadCaseTitle(lstLoadNums(i))
Next i

| 12
Create a dialog to select a load case
Add the following after the units:-
Dim nResult As Integer
Dim LCName As String
Dim LoadCase As Long

Then with the cursor located after these click on the Edit User
Dialog icon on the toolbar to add a dialog

| 13
Adding controls
Add OK and Cancel buttons
Add a text string, Double click on it and change the caption
to Load Case
Click on the >> button and change the caption of the dialog
box to Select Load Case
Click on the List box icon and add it onto the dialog box,
resize it so that it better fits the space.
Click on the Save and Exit Icon.

| 14
Display the load case names
Note how the new commands have been added
To display the load change:-
ListBox 40,49,320,70,ListArray(),.ListBox1
To
ListBox 40,49,320,70,lstLoads(),.ListBox1

Save and Run the macro:-

| 15
Handle a Cancel request
To find out if a button was pressed change the line:-
Dialog dlg
To
nResult = Dialog (dlg)
Add the following immediately after:-
If nResult <> -1 Then
Set oStd = Nothing
Exit Sub
End If

| 16
Get the requested load case
If the cancel was not pressed, then the selected item in the
list should be converted to the load case using the following:-
LoadCase = lstLoadNums(dlg.ListBox1)
LCName =lstLoads(dlg.ListBox1)

| 17
Get Selected Nodes
Dim NumSelectedNodes As Long
Dim SelNodeArray() As Long
NumSelectedNodes = oStd.Geometry.GetNoOfSelectedNodes ( )

If NumSelectedNodes >0 Then


ReDim SelNodeArray(NumSelectedNodes)
oStd.Geometry.GetSelectedNodes ( SelNodeArray, 1)
Else
MsgBox Please Select Nodes, vbOkOnly
Endif

| 18
Get the results
Define the following variables after the check to make
sure that there are indeed some nodes selected:-
Dim j as Integer
Dim NodeNo As Long
Dim DisplArray(6) As Double
Dim MaxDisplArray(6) As Double
Dim NodeArray(6) As String

Then.

| 19
Get the results
Add the following to get the displacement data:-
For i=0 To NumSelectedNodes-1
NodeNo = SelNodeArray(i)
oStd.Output.GetNodeDisplacements (NodeNo, LoadCase,
DisplArray())
For j= 0 To 5
If Abs(DisplArray(j)) > Abs(MaxDisplArray(j)) Then
MaxDisplArray(j)= DisplArray(j)
NodeArray(j)="N" & CStr(NodeNo)
End If
Next j
Next i
| 20
Dealing with units
Add the following after the loop to build the name array
Dim unit As Integer
Dim DispLabel As String

unit=oStd.GetBaseUnit
Select Case unit
Case 1
DispLabel="in"
Case 2
DispLabel="met"
Case Else
DispLabel="???"
End Select

| 21
Display the result
Create a new dialog box, dlg2, called Max Deflection
Add an OK button and 14 text strings:-
Text, "Load case:"
Text, LCName
Text,"X:, Text,"Y:, Text,"Z:"
Text, CStr(MaxDisplArray(0)), Text, CStr(MaxDisplArray(1)), Text,
CStr(MaxDisplArray(2))
Text, X DispLabel, Text, Y DispLabel, Text, Z DispLabel
Text, NodeArray(0), Text, NodeArray(1), Text, NodeArray(2)

| 22
Display the result
The dialog should be arranged thus:-

Save and test the macro

| 23
Adding a Macro to your toolbar
Click on the menu item Tools>Configure User Tools.
Click on the icon New, and add the text Max Deflection to the
name.
Click on the button to the right of the Command string and
navigate to the My Documents folder and select the BE Together
macro

| 24
Sample

| 25
2) Stage Construction
Objective
To create a model where the results of loading in 2 construction
stages are combined

Consider the model EXAMP08 constructed in 2 stages:-

| 27
Stages
Stage 1 - Initial Stage 2 - Final

| 28
Philosophy
When considering stage construction, it is very important that
the matrix for the initial model includes every DOF that will
be active at some point.
Each model/construction stage should be completed with an
analysis and CHANGE command.
Inactive members do not reduce the matrix size, but may
leave nodes disconnected and warnings reported.
Supports and releases can be changed for each stage
With multiple models SET NL needs to be defined.

| 29
Example
Objective
To analyse a model built in 2 stages and combining the forces from
both stages.
Open file Examp08mod.STD
Open the model in the Editor
Run the analysis
Review Output file
Note warning messages
View results in the Post-Processing Mode

| 30
Notes
Load cases are unique in all models/stages, e.g. if load case
1 for say dead loads exists in the initial model, then it should
not appear again in one of the other stages. An alternative
load case number should be selected
The GUI will display members which are INACTIVE as they
may be active in some load cases, but not others.

| 31
Notes
If a self weight command is used in the different stages and
the results combined, then this will include self weight on
members in each of the stages. Consider the use of
assigning self weight to only members added during that
stage.
The Member Query dialog does not display bending
moments on members that are inactive in one or more load
cases!

| 32
3) Foundation
Objective
To understand the methods available of accounting for a pad
foundation as supports for a STAAD.Pro model
Supports
Point
Traditional
Spring
Multi-linear spring
Foundation
Surface
Elastic Mat
Plate Mat

STAAD.Foundation
| 34
Analytical Supports
Basic
Fixed, Pinned
Spring
Fixed But
Multi-linear spring
Sub-grade modulus
Foundation Support
Lift Off Supports
Compression Only Springs

| 35
Example 1 Support on compressible soil
Objective:-
Model a Pin support on compressible soil
Open file Foundation 1.STD go to page General>Support
Click on Create and on the Fixed But sheet and enter:-
KFY 100 kip/in
Release directions MX, MY, MZ
Assign to the base of all the columns
Run the analysis
Vertical displacement N2, -18.875 inch

| 36
Example 2 Pin support on banded soil
Objective:-
3 bands of soil below foundation,
10 inches of 100 kips/in
10 inches of 200 kips/in
10 inches of 500 kips/in

Open file Foundation2.STD and go to


page General>Support
Create and assign this multi-linear
definition to all supports
Run the analysis
Vertical displacement N2, -14.675 inch
| 37
Example 3 Sub Grade support
Objective
2ft x 3ft pads under columns with soil sub-
grade of 100 kip/ft2/ft
Open file Foundation 3.STD go to page
General>Support
Create and assign the Foundation support
defined as above
Run the analysis
Vertical Displacement N2, -7.493 inch

| 38
Enforced Supports
Prescribed Displacements
Used as a in load cases where there is a given displacement
Mass Modelling,
Missing Mass

| 39
Example 4 Enforced Displacement
Objective
Prescribe a 0.5 inch Z displacement in load
case #2 at Node 13
Open file Foundation 4.STD
Define an ENFORCED BUT FX FY
Assign to node 13
Define a 0.5 inch Support Displacement
Load in load case #2 and assign to node
13
Run the analysis

| 40
Surface Supports
Elastic Mat
Assign to a selection of nodes
Issues with inclusive angles
Plate Mat
Assign to a selection of plates

| 41
Example 5 Slab on Grade
Objective
Open file Foundation5.STD
Create and assign a PLATE MAT in Y with a sub grade of
100 kip/ft2/ft (initially non directional)
Assign to all plates
View the loading then run the analysis

| 42
Example 5 Slab on Grade (continued)
Change support to Compression Only
Re run the analysis
Note iterative solution
Upward displacement

| 43
Foundation Design
STAAD.Foundation
Standalone or Integrated

Plant Mode
2 specialist tools

Toolkit Mode
6 specialist tools:-

| 44
Example 6 Foundation Design
Open Foundation 6.STD
Run the analysis and go to the Foundation Design Mode
Set
All Supports
Include all load cases
Launch STAAD.Foundation

| 45
Example 6 Foundation Design (continued)
General Info
Main>Create a New Job
All
Isolated
US
English

Design
View the calculation sheets
View the GA Drawing

| 46
4) Buckling Analysis
Objective
To understand the methods and principals of
the buckling analysis in STAAD.Pro
Standard Engine
Load Factor
Advanced Engine
Buckling Modes
Geometric Non-Linear Analysis
Can identify buckling by monitoring
deformations due to incremental addition of
loading
| 48
Standard Solver
Iterative elastic
Initial analysis establishes basic stiffness matrix,
forces/deflections
Both the large delta effects and the small delta effects are
calculated. These terms are the terms of the Kg matrix which
are multiplied by the estimated BF (buckling factor) and then
added to the global stiffness matrix K.

| 49
Advanced Solver
First, the primary deflections are calculated by linear static
analysis based on the provided external loading.
Primary deflections are used to calculate member axial
forces. These forces are used to calculate geometric
stiffness terms. Both the large delta effects and the small
delta effects for members are calculated. These terms are
the terms of the Kg matrix.
An eigenvalue problem is formed. | [ K ] - BFi*[ Kg ] | = 0
STAAD.Pro reports up to 4 buckling factors (BF) and
associated buckling mode shapes calculated.

| 50
Geometric Non-Linear Analysis
The geometric non-linearity can be accounted for in the
analysis by updating the global stiffness matrix and the
global geometric stiffness matrix [K+Kg] on every step based
on the deformed position.
The deformations significantly alter the location or
distribution of loads, such that equilibrium equations must be
written with respect to the deformed geometry, which is not
known in advance.

| 51
Buckling Analysis
For an ideal column, the critical axial load is defined as:-
2 EI
Pcr 2
L
B = D = 1m, L = 10m
E = 2.17*10^7 kN/m^3
I = (B*D^3)/12 = 0.083 m^4

Thus Pcr = 177780 kN

| 52
Example 1 Standard Solver
Objective
Confirmation of Euler Buckling load on a simple column.
Check that Advanced Analysis Engine is NOT set.
Open file Column.STD
Run the analysis and view the output file:-

| 53
Example 2 Advanced Solver
Close the model and activate the Advanced Analysis
Engine license
Re-open the file and run the analysis
View the output file:-

| 54
Example 3 Buckling Arch
Objective
To view buckling shapes of a pinned arch
Simple arch
Pinned support
Lateral restraint at
crown
Point load applied
at crown

| 55
Example 3 Buckling Arch (continued)
Close any open model and check that the Advanced
Analysis Engine License is set.
Open file Arch Buckling.STD
Run the analysis
Go to the Post-Processing Mode>Buckling Page.
May be necessary to reset the Mode Shape scale using Structure
Diagrams>Scales

| 56
Example 3 - Buckling Analysis - Modes
Buckling Factors
7.002
16.302
24.925 (*)
40.018

| 57
Example 3 - Buckling Analysis - Modes
Buckling Factors
7.002
16.302
24.925 (*)
40.018

| 58
Example 3 - Buckling Analysis - Modes
Buckling Factors
7.002
16.302
24.925 (*)
40.018

(*) In-plane mode

| 59
Example 3 - Buckling Analysis - Modes
Buckling Factors
7.002
16.302
24.925 (*)
40.018

Buckling Load
= 24.925 * 0.1kN
= 2.49kN

| 60
Alternative Solutions
Define model as PLANE
Arch Buckling planeframe.STD

Restrain nodes in Z direction


Arch Buckling restrained.STD

| 61
5) Angles
Objective
To understand the correct use of analysis and design of angle
profiles in STAAD.Pro to AISC 360-05
Geometric and Principal Angles
Standard and User Profiles
Design issues

| 63
Member Local Co-ordinate Systems
Technical Reference 1.5.2 - Local coordinate system
A local coordinate system is associated with each member. Each
axis of the local orthogonal coordinate system is also based on the
right hand rule. Fig. 1.5 shows a beam member with start joint 'i'
and end joint 'j'. The positive direction of the local x-axis is
determined by joining 'i' to 'j' and projecting it in the same direction.
The right hand rule may be applied to obtain the positive directions
of the local y and z axes. The local y and z-axes coincide with
the axes of the two principal moments of inertia. Note that the
local coordinate system is always rectangular.

| 64
Axes
Principal ------------

Geometric --------------------
Member Loads and Forces

| 65
ST and RA Specifications

ST specification, Z-Z axis is weak axis


bending

RA specification, Z-Z axis is strong axis


bending
| 66
Rotation and Alignment
BETA command
5.26.2 Specifying Constants for Members and Elements

Alpha
ANGLE
RANGLE

| 67
User profiles
Menu:-
Tools>Create User Table
Type:- Angle
Define key dimensions
R, minor axis radius of gyration

| 68
Example
Objective
To see effect of point load on end of
cantilevers formed from angle sections
Open file Angle.STD
Assign a 1 kip point load
to the free ends of all the
cantilevers
Run the analysis and view the end
displacements

| 69
Example (continued)
Member 1, bending about weak principal axis (ST)
Large vertical end displacement only
Member 2, bending about strong principal axis (RA)
Small vertical end displacement only
Member 3, bending about geometric axis
Resolve into principal axes

| 70
Design Issues
Typically angles are used as axial only members, i.e. TRUSS
AISC 360-05
Section E Design of Members for Compression,
E5 Single angle compression members (p35)
Section F - Design of Members for Flexure,
F10 Single Angles (p58)
Section G Design of Members for Shear,
G4 Single Angles (p68)

| 71
Design of Members for Compression
Compressive strength defined by equations in clause E3 (E7
if slender).
Choice of equation E3-2 or E3-3 defined by slenderness,
KL/r
For Angles, effective slenderness ratios dependent upon L/rx
where
rx = radius of gyration about geometric axis parallel to connected
leg
Un-equal angles STAAD.Pro assumes longer leg (in future will add
LEG parameter)
Equal angles rx is the same for both legs
Reported in output as CL.E
| 72
Design of Members or Flexure
User specified AXIS
1 Principal (default)
2 Geometric (only permitted if with continuous lateral-torsional
restraint)
Lateral-Torsional Buckling F10, part 2
Calculated using Me, the elastic-torsional buckling moment
Effective length
Leg Local Buckling F10, part 3
Is considered and reported if governing
Reported in output as:-
CL.F-Major and
CL.F-Minor | 73
Design of Members for Shear
Clause G4
The nominal shear strength, Vn, of a single angle leg shall be
determined using Equation G2-1
AXIS 1 Principal
Longer leg is used in calculation of Major Shear,
Shorter leg is used in calculation of Minor shear
Forces are as reported by the analysis engine
AXIS 2 Geometric
Forces are resolved and used in legs as defined above
Reported in output as:-
CL.G-Major and
CL.G-Minor | 74
Example 2 Angle Design
Objective
To see effects of AXIS on an angle design
Open file Angle 2.STD
Run the analysis and view the results

Edit the input file and remove comments from the start of the
2 TRACK commands.
Re-run the analysis and view the results

| 75
Summary
1) Macros and OpenSTAAD
Creating a macro using VBA
2) Stage Construction
Using the INACTIVE command
3) Foundations
Analysis and Design
4) Buckling Analysis
Standard and Advanced solver methods and results
5) Angle Profiles
Analysis and design
| 76
STAAD.Pro Tips and Tricks

Carlos Aguera
24th May 2011

You might also like