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 subgrade 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:-

Pcr
B = D = 1m, L = 10m
E = 2.17*10^7 kN/m^3

2 EI
L
2

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