Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
97 views

Robot API RCDesign

Uploaded by

Louis Molinet
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views

Robot API RCDesign

Uploaded by

Louis Molinet
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Autodesk Robot Structural Analysis

Reinforcement Concrete API


RSA API – Concrete member design

Contents
RC Design................................................................................................................................. 3
Overview .................................................................................................................................... 3
1.0. Preparing Development Environment ............................................................................. 4
1.0.1. Requirements ........................................................................................................... 4
1.0.2. Wizard Installation .................................................................................................... 4
1.0.3. Creating Solution ...................................................................................................... 4
1.1. Writing the code ............................................................................................................. 5
1.1.1. The First Test ........................................................................................................... 5
1.1.2. Developing the code ................................................................................................. 7
1.2. Understanding the calculation algorithms ....................................................................... 6
RSA API – Concrete member design

RC Design

Overview
This document describes the whole process of creating and distributing the add-in
implementing the external Reinforcement Concrete code (exRC) inside the Robot Structural
Analysis (RSA) environment.
This add-in will enable:
• to create a module for theoretical reinforcement calculation for bars.
• to create a module for theoretical reinforcement calculation for plates and shells.
• to implement a function, which will perform verification of generated reinforcement in
Beams and Column modules.
The wizard generates solution with fully usable communication between external code and
RSA and with samples of dialogues and calculations. Modifications of dialogs and
calculations are allowed. However, they have been developed to minimize required changes.
The most important points of change have been marked with "TO DO" mark in code
commentary.
The additional RC section library (rcuapi) could be used in order to facilitate the
implementation of external code. This library has been used in the example. Complete
information describing library content is available in rcuapi.chm file.

© Copyright 2020 Autodesk, Inc. All rights reserved. Page 3

NOT FOR DISTRIBUTION


RSA API – Concrete member design

1.0. Preparing Development Environment


1.0.1. Requirements
▪ Visual Studio C++ 2008 (Standard, Professional or Team System).
▪ Robot Structural Analysis 2011 or higher installed.

1.0.2. Wizard Installation


There is not setup program. To use the RC Design Wizard you have to copy
some files from RSA DVD into the Visual Studio’s directories.
▪ Locate the VC directory (default installation location is c:\Program
Files\Microsoft Visual Studio 9.0\VC)
▪ Locate the RCDesign directory on RSA DVD (e.g.
D:\SDK\Wizards\RCDesign)
▪ Copy the RCDesign\USERPROFILE\Documents to My Documents.
▪ Copy RCDesign\VCINSTALLDIR to VC directory.
Run VC++ 2008. Choose File/New/Project. If the Wizard was copied properly,
you should be able to choose the RCDesign Wizard as on the screen below:

1.0.3. Creating Solution


Creating the new solution using the RCDesign Wizard is quite simple. One thing
you have to do is to fulfill the form below:

© Copyright 2020 Autodesk, Inc. All rights reserved. Page 4

NOT FOR DISTRIBUTION


RSA API – Concrete member design

Just after the solution is created you should be able to compile it without errors or
warnings.

1.1. Writing the code


This chapter supposes that you are familiar with RSA RC and Slab Required
Reinforcement calculations.

1.1.1. The First Test


Wizard creates the fully workable component which can be launched just after
the first compilation. Solution registers the compiled dll into the RSA environment
so that it can be chosen from the Project Preferences.
Choose Debug/Start Debugging from VS menu. As the executable for debug you
should browse for the robot.exe.

© Copyright 2020 Autodesk, Inc. All rights reserved. Page 5

NOT FOR DISTRIBUTION


RSA API – Concrete member design

From the RSA choose Tools/Job Preferences and select ‘My Code’ from the
available Design Code list.

Now you should be able to perform calculations according to ‘My Code’ and see
some results that are generated by the default algorithms. See the results table
below. Moreover, at this point it should be possible to debug the generated code.
To check it, set a breakpoint at the beginning of the Engine::Calculate and try
if it is reached during the calculations.

© Copyright 2020 Autodesk, Inc. All rights reserved. Page 6

NOT FOR DISTRIBUTION


RSA API – Concrete member design

1.1.2. Developing the code


Once you have tested the default implementation of RC code you can start to
modify the algorithms to meet your code requirements. The most changes you
will probably do in the Engine class.

© Copyright 2020 Autodesk, Inc. All rights reserved. Page 7

NOT FOR DISTRIBUTION


RSA API – Concrete member design

1.2. Understanding the calculation algorithms


Below is descriptive calculations algorithm. Color presents a potential dependence on the RC code. In fact, all functions described in
the green fields should be redesigned.

Simple element. Code independent. Operations on the results or the parameters.

Can be dependent on the code. Block of more complex operation, described in other diagram.

Strongly dependent on the code. This part should be developed in every case. Located in EngineCodeDetail.cpp or MaterialsDef.cpp.

RC library (rcuapi.dll) use. Common functions, depends on the geometry and materials parameters.

NTOL, MTOL, MAXITER – user defined constants (Engine.h).


Default values: NTOL = 1[N], MTOL =1[N*m] , MAXITER =100

void Engine::calculate()

[true]
bool Engine::SetSolverParam() bool Engine::Dimensioning()
[true]
[false]
[false]

steel and concrete parameters

Set errors in section results. Set reults in section results.

© Copyright 2009 Autodesk, Inc. All rights reserved. Page 6

NOT FOR DISTRIBUTION


RSA API – Concrete member design

bool Engine::Dimensioning()
c = m_forces.count() [false]
[true]
RESULT
RESULT= =max
max(RESULT,
(RESULT,result(i))
result(i))
[false]

[i <= c] designForces = [true] bool


boolEngine::DimensioningLongReinf(ForceData
Engine::DimensioningLongReinf(ForceData
i++ ULS, ALS
m_forces[i] designForces)
designForces)
[i > c]
[false]
[true]
RESULT
RESULT= =max
max(RESULT,
(RESULT,result(i))
result(i))
[false]
[i <= c] designForces = [true] bool
boolEngine::DimensioningTranReinf(ForceData
Engine::DimensioningTranReinf(ForceData
i=0 i++ ULS, ALS
m_forces[i] designForces)
designForces)
[i > c]

RESULT
RESULT= =max
max(RESULT,
(RESULT,result(i))
result(i))
[false]

[i <= c] designForces = [true] double Engine::DimensioningForCracking(ForceData


i=0 i++ SLS
m_forces[i] designForces, double maxCracking, bool bOnlyVerification)
[i > c] [false]
[true]
RESULT
RESULT= =max
max(RESULT,
(RESULT,result(i))
result(i))
[false]
[true]
[i <= c] designForces = bool
boolEngine::DimensioningForSLSStress(ForceData
Engine::DimensioningForSLSStress(ForceData
i=0 i++ SLS
m_forces[i] designForces,
designForces,bool
boolbOnlyVerification)
bOnlyVerification)

[i > c]
RESULT
RESULT= =max
max(RESULT,
(RESULT,result(i))
result(i))
[false]
[true]
[i <= c] designForces =
i=0 i++ SLS double Engine::Rigidity(ForceData designForces)
m_forces[i]

[i > c]
RESULT = max (RESULT, result(i))

designForces = double Engine::MaxReinfNMM(ForceData force)


i=0 i++
m_forces[i] double Engine:: MinReinfNMM(designForces)

© Copyright 2009 Autodesk, Inc. All rights reserved. Page 7

NOT FOR DISTRIBUTION


RSA API – Concrete member design

bool Engine::DimensioningLongReinf(ForceData designForces)

bending only in [false] bool Engine::DimensioningNMM( double Mx, double My, double N, bool
the main [false]
direction SimplifiedMethod, IRobotLimitState limitStateType)

[true]
[true]

bending with [false] bool Engine::DimensioningNM( double M, double N, IRobotLimitState [false]


axial force limitStateType)

[true]
[true]

rectangular [false] bool Engine::DimensioningM(double M, IRobotLimitState [false]


section limitStateType)

[true]
[true]

bool Engine::DimensioningMRec(double M, BendDirection bendDirection, [false]


IRobotLimitState limitStateType)
[true]

© Copyright 2009 Autodesk, Inc. All rights reserved. Page 8

NOT FOR DISTRIBUTION


RSA API – Concrete member design

bool Engine::DimensioningNMM( double Mx, double My, double N, bool SimplifiedMethod, IRobotLimitState limitStateType)

initial reinforcement

double fRatio = Engine::CheckCapacity(double Mx, double My, double [false] [true]


fRatio > 1.0
N, bool SimplifiedMethod)

[false]
[return (fRatio > 1.0) ]
[true]
increase the reinforcement : bar by bar i++ > MAXITER

bool Engine::DimensioningNM( double M, double N, IRobotLimitState limitStateType)

initial reinforcement

double fRatio = dEngine::CheckCapacity(double Mx, double My = 0.0, [false] [true]


fRatio > 1.0
double N, bool SimplifiedMethod = false)

[false]
[return (fRatio > 1.0) ]
[true]
increase the reinforcement: theoretical area i++ > MAXITER

© Copyright 2009 Autodesk, Inc. All rights reserved. Page 9

NOT FOR DISTRIBUTION


RSA API – Concrete member design

bool Engine::DimensioningM( double M, IRobotLimitState limitStateType)


[true]
MUlt =maximum moment for reinforcement calculation for MRd
MRd/M > 1.0
tension reinforcement only and for (M-MRd)

[true]
fabs(MUlt –[false]
M) >
[false]
increase or reduce the reinforcement : theoretical area MTOL

long IRCSolver::SolveResistanceM ( double resistanceAxialForce = 0.0,


enum Axis direction )

double MUlt = IRCSolver:: InternalMomentX

double Engine::CheckCapacity(double Mx, double My, double N, bool SimplifiedMethod)

[true]
SimplifiedMethod double Engine::CapacitySimplifiedMethod( double Mx, double My, double N)

[false] long IRCSolver::SolveResistance ( double designAxialForce, double designMomentX,


double designMomentY )

[true]
fabs(N)>NTOL double Capacity = IRCSolver:: InternalAxialForce / N

[false]
[true]
fabs(Mx)>fabs(My) double Capacity = IRCSolver:: InternalMomentX / Mx

[false]
double Capacity = IRCSolver:: InternalMomentY /My

© Copyright 2009 Autodesk, Inc. All rights reserved. Page 10

NOT FOR DISTRIBUTION


RSA API – Concrete member design

bool Engine::DimensioningTranReinf(ForceData designForces)

[false] bool Engine::DimensioningVVT(double Vy, double Vz, double T, double


shear in one [false]
direction My, double Mz, double N, IRobotLimitState limitStateType)

[true]
[true]

pure torsion [false] bool Engine::DimensioningVT(double V, double T, double M, double N, [false]


or
pure shear IRobotLimitState limitStateType, BendDirection direction)

[true]
[true]

[false] bool Engine::DimensioningV(double V, double M, double N, [false]


pure torsion
IRobotLimitState limitStateType, BendDirection direction)

[true]
[true]

[false]
bool Engine::DimensioningT(double T, double N, IRobotLimitState limitStateType)

[true]

© Copyright 2009 Autodesk, Inc. All rights reserved. Page 11

NOT FOR DISTRIBUTION


RSA API – Concrete member design

double Engine::DimensioningForCracking(ForceData designForces, double maxCracking, bool bOnlyVerification)

[true]
double wd = Engine::CrackWidth(ForceData designForces) wd < maxCracking

[false]

[true]
increase the reinforcement bOnlyVerification
[false]
[return (wd < maxCracking) ]

bool Engine::DimensioningForSLSStress(ForceData designForces, bool bOnlyVerification)

[true]
bool Engine::CheckSlsStress(ForceData designForces)

[false]

[true]
increase the reinforcement bOnlyVerification
[false]

© Copyright 2009 Autodesk, Inc. All rights reserved. Page 12

NOT FOR DISTRIBUTION

You might also like