Robot API RCDesign
Robot API RCDesign
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.
Just after the solution is created you should be able to compile it without errors or
warnings.
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.
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.
void Engine::calculate()
[true]
bool Engine::SetSolverParam() bool Engine::Dimensioning()
[true]
[false]
[false]
bool Engine::Dimensioning()
c = m_forces.count() [false]
[true]
RESULT
RESULT= =max
max(RESULT,
(RESULT,result(i))
result(i))
[false]
RESULT
RESULT= =max
max(RESULT,
(RESULT,result(i))
result(i))
[false]
[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))
bending only in [false] bool Engine::DimensioningNMM( double Mx, double My, double N, bool
the main [false]
direction SimplifiedMethod, IRobotLimitState limitStateType)
[true]
[true]
[true]
[true]
[true]
[true]
bool Engine::DimensioningNMM( double Mx, double My, double N, bool SimplifiedMethod, IRobotLimitState limitStateType)
initial reinforcement
[false]
[return (fRatio > 1.0) ]
[true]
increase the reinforcement : bar by bar i++ > MAXITER
initial reinforcement
[false]
[return (fRatio > 1.0) ]
[true]
increase the reinforcement: theoretical area i++ > MAXITER
[true]
fabs(MUlt –[false]
M) >
[false]
increase or reduce the reinforcement : theoretical area MTOL
[true]
SimplifiedMethod double Engine::CapacitySimplifiedMethod( double Mx, double My, double N)
[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
[true]
[true]
[true]
[true]
[true]
[true]
[false]
bool Engine::DimensioningT(double T, double N, IRobotLimitState limitStateType)
[true]
[true]
double wd = Engine::CrackWidth(ForceData designForces) wd < maxCracking
[false]
[true]
increase the reinforcement bOnlyVerification
[false]
[return (wd < maxCracking) ]
[true]
bool Engine::CheckSlsStress(ForceData designForces)
[false]
[true]
increase the reinforcement bOnlyVerification
[false]