Sie sind auf Seite 1von 72

STAAD.Pro Tips and Tricks

Carlos Aguera 24 th May 2011

Agenda

Agenda • The following are the topics to be covered in this workshop of STAAD.Pro Tips

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

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

OpenSTAAD

What is OpenSTAAD?

ASCII

Input data (*.STD)

Output data (*.ANL)

Binary

Results (*.BMD, REA, DSP… )

data (*.ANL) • Binary – Results (*.BMD, REA, DSP… ) • Inside STAAD.Pro in a macro

Inside STAAD.Pro in a macro

External using ANY suitable environment

(but STAAD.Pro must be running locally in the background)

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

Macro – Menu, Edit>Edit Existing VB Macro • To Use:- – Menu, Tools>Configure User Tools –

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’

VB Macro… • Navigate to ‘My Documents’, enter the file name:- ‘BE Together 2011.VBS’ and click

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

= GetObject(,"StaadPro.OpenSTAAD") –   … – Set oStd = Nothing – Exit Sub | 8
= 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

on in the grey column to the right of the line:- Set oStd = Nothing •
on in the grey column to the right of the line:- Set oStd = Nothing •

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

oStd.GetSTAADFile(stdFile,"TRUE") is the first use of the OpenSTAAD object created in the previous step. | 10

the OpenSTAAD object created in the previous step.

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.

and hover over the text stdFile . This should display the file name and path of

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

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

• Then with the cursor located after these click on the ‘Edit User Dialog’ icon on
• Then with the cursor located after these click on the ‘Edit User Dialog’ icon on

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.

add it onto the dialog box, resize it so that it better fits the space. •

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

ListArray() ,.ListBox1 • To – ListBox 40,49,320,70, lstLoads() ,.ListBox1 • Save and Run the macro:- |

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

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)

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

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….

– Dim DisplArray(6) As Double – Dim MaxDisplArray(6) As Double – Dim NodeArray(6) As String •

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

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

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)

Display the result

The dialog should be arranged thus:-

Display the result • The dialog should be arranged thus:- • Save and test the macro

Save and test the macro

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

the right of the Command string and navigate to the ‘My Documents’ folder and select the

Sample

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

results of loading in 2 construction stages are combined • Consider the model EXAMP08 constructed in

Stages

Stage 1 - Initial

Stage 2 - Final

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.

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

Run the analysis • Review Output file – Note warning messages • View results in the

View results in the Post-Processing Mode

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.

• The GUI will display members which are INACTIVE as they may be active in some

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!

The Member Query dialog does not display bending moments on members that are inactive in one

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

Spring • Multi-linear spring • Foundation • – Surface • Elastic Mat • Plate Mat STAAD.Foundation

Analytical Supports

Basic

Fixed, Pinned

Spring

Fixed But

Multi-linear spring

Sub-grade modulus

Foundation Support

Lift Off Supports

Compression Only Springs

spring • Sub-grade modulus – Foundation Support • Lift Off Supports – Compression Only Springs |

Example 1 Support on compressible soil

Objective:-

Model a Pin support on compressible soil

• Open file ‘Foundation 1.STD’ go to page General>Support

file ‘ Foundation 1.STD ’ go to page General>Support • Click on Create and on the

• 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

MY, MZ • Assign to the base of all the columns • Run the analysis •

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

and assign this multi-linear definition to all supports • Run the analysis • Vertical displacement N2,

Run the analysis

Vertical displacement N2, -14.675 inch

Example 3 Sub Grade support

Objective

2ft x 3ft pads under columns with soil sub- grade of 100 kip/ft 2 /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

and assign the Foundation support defined as above • Run the analysis • Vertical Displacement N2,

Enforced Supports

Prescribed Displacements

Used as a in load cases where there is a given displacement

Mass Modelling,

Missing Mass

– Used as a in load cases where there is a given displacement • Mass Modelling,

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

node 13 • Define a 0.5 inch Support Displacement Load in load case #2 and assign
node 13 • Define a 0.5 inch Support Displacement Load in load case #2 and assign

Surface Supports

Elastic Mat

Assign to a selection of nodes

Issues with ‘inclusive’ angles

Plate Mat

Assign to a selection of plates

to a selection of nodes – Issues with ‘inclusive’ angles • Plate Mat – Assign to

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/ft 2 /ft (initially non directional)

Assign to all plates

View the loading then run the analysis

kip/ft 2 /ft (initially non directional) – Assign to all plates • View the loading then

Example 5 Slab on Grade (continued)

• Change support to ‘Compression Only’

Re run the analysis

Note iterative solution

Upward displacement

support to ‘Compression Only’ • Re run the analysis – Note iterative solution • Upward displacement
support to ‘Compression Only’ • Re run the analysis – Note iterative solution • Upward displacement
support to ‘Compression Only’ • Re run the analysis – Note iterative solution • Upward displacement

Foundation Design

STAAD.Foundation

Standalone or Integrated

Plant Mode

2 specialist tools

Toolkit Mode

6 specialist tools:-

– Standalone or Integrated • Plant Mode – 2 specialist tools • Toolkit Mode – 6
– Standalone or Integrated • Plant Mode – 2 specialist tools • Toolkit Mode – 6
– Standalone or Integrated • Plant Mode – 2 specialist tools • Toolkit Mode – 6
– Standalone or Integrated • Plant Mode – 2 specialist tools • Toolkit Mode – 6

Example 6 Foundation Design

• Open ‘Foundation 6.STD

Run the analysis and go to the Foundation Design Mode

Set

the analysis and go to the Foundation Design Mode • Set – All Supports – Include

All Supports

Include all load cases

Launch STAAD.Foundation

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

– All – Isolated – US – English • Design – View the calculation sheets –

4) Buckling Analysis

Objective

4) Buckling Analysis • Objective – To understand the methods and principals of the buckling analysis

To understand the methods and principals of

the buckling analysis in STAAD.Pro

methods and principals of the buckling analysis in STAAD.Pro • Standard Engine – Load Factor •

Standard Engine

Load Factor

Advanced Engine

Buckling Modes

Geometric Non-Linear Analysis

Can identify buckling by monitoring

deformations due to incremental addition of

loading

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.

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 ] - BF i *[ Kg ] | = 0

STAAD.Pro reports up to 4 buckling factors (BF) and

associated buckling mode shapes calculated.

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.

Buckling Analysis

For an ideal column, the critical axial load is defined as:-

P cr

2

E

I

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 P cr = 177780 kN

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

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

Analysis Engine is NOT set. • Open file ‘Column.STD’ • Run the analysis and view the

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

the ‘Advanced Analysis Engine’ license • Re-open the file and run the analysis • View the

Example 3 Buckling Arch

Objective

To view buckling shapes of a pinned arch

• Objective To view buckling shapes of a pinned arch – • Simple arch • Pinned
• Objective To view buckling shapes of a pinned arch – • Simple arch • Pinned

Simple arch

Pinned support

Lateral restraint at crown

Point load applied at crown

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

Example 3 - Buckling Analysis - Modes

Buckling Factors

7.002

16.302

24.925 (*)

40.018

Example 3 - Buckling Analysis - Modes • Buckling Factors – 7.002 – 16.302 – 24.925

Example 3 - Buckling Analysis - Modes

Buckling Factors

7.002

16.302

24.925 (*)

40.018

Example 3 - Buckling Analysis - Modes • Buckling Factors – 7.002 – 16.302 – 24.925

Example 3 - Buckling Analysis - Modes

Buckling Factors

7.002

16.302

24.925 (*)

40.018

(*) In-plane mode

Buckling Analysis - Modes • Buckling Factors – 7.002 – 16.302 – 24.925 (*) – 40.018

Example 3 - Buckling Analysis - Modes

Buckling Factors

7.002

16.302

24.925 (*)

40.018

Buckling Load = 24.925 * 0.1kN

= 2.49kN

• Buckling Factors – 7.002 – 16.302 – 24.925 (*) – 40.018 Buckling Load = 24.925

Alternative Solutions

Define model as PLANE

Arch Buckling planeframe.STD

Restrain nodes in Z direction

as PLANE – Arch Buckling planeframe.STD • Restrain nodes in Z direction – Arch Buckling restrained.STD

Arch Buckling restrained.STD

as PLANE – Arch Buckling planeframe.STD • Restrain nodes in Z direction – Arch Buckling restrained.STD

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

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.

with the axes of the two principal moments of inertia. Note that the local coordinate system

Axes

Axes • Principal ------------ • Geometric -------------------- • Member Loads and Forces | 65

Principal ------------

Geometric --------------------

Member Loads and Forces

Axes • Principal ------------ • Geometric -------------------- • Member Loads and Forces | 65
Axes • Principal ------------ • Geometric -------------------- • Member Loads and Forces | 65
Axes • Principal ------------ • Geometric -------------------- • Member Loads and Forces | 65

ST and RA Specifications

• ST specification, Z-Z axis is weak axis bending
• ST specification, Z-Z axis is weak axis
bending
• ST specification, Z-Z axis is weak axis bending • RA specification, Z-Z axis is strong

RA specification, Z-Z axis is strong axis bending

Rotation and Alignment

BETA command

5.26.2 Specifying Constants for Members and Elements

Alpha

ANGLE

RANGLE

• BETA command – 5.26.2 Specifying Constants for Members and Elements • Alpha • ANGLE •

User profiles

Menu:-

Tools>Create User Table

Type:- Angle

Define key dimensions

R, minor axis radius of gyration

– Tools>Create User Table – Type:- Angle • Define key dimensions – R, minor axis radius

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

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

Small vertical end displacement only • Member 3, bending about geometric axis – Resolve into principal

| 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)

Flexure, • F10 Single Angles (p58) – Section G – Design of Members for Shear, •

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’

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 24 th May 2011