Discussion Groups

Robot Structural Analysis

Reply
Contributor
asvazquez
Posts: 15
Registered: ‎02-24-2014
Accepted Solution

API, RSA design

329 Views, 12 Replies
02-24-2014 03:48 AM

Hi,

I have recently started to use API with RSA. I am triying to design a simple steel structure following Robot API SteelDesign help from SDK. I have obtained the bar model but I have not obtained the design bo (see atachment). This is my VBA code:

      

        robapp.Project.CalcEngine.Calculate()

 

        '''''''''''''''''''''¿?¿?¿?¿?¿?¿?¿?¿?

        Dim RobStr As RobotOM.IRobotStructure

        RobStr = robapp.Project.Structure

        Dim RobLab As RobotOM.IRobotLabel

        Dim RdmMembDefData As RobotOM.IRDimMembDefData

        RobLab = RobStr.Labels.Create(RobotOM.IRobotLabelType.I_LT_MEMBER_TYPE, "barra")

        RdmMembDefData = RobLab.Data

        With RdmMembDefData

            .SetStructureSwayYZ(RobotOM.IRDimMembDefBucklingDataType.I_DMDBDT_BUCKLING_Y, 1)

            .SetLengthYZUV(RobotOM.IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Y, 1.0#)

            .SetStructureSwayYZ(RobotOM.IRDimMembDefBucklingDataType.I_DMDBDT_BUCKLING_Z, 1)

            .SetLengthYZUV(RobotOM.IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Z, 1.0#)

            .SetDeflectionYZ(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, 1)

            .SetDeflectionYZ(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, 1)

            .SetDeflYZRelLimit(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, 10.0#)

            .SetDeflYZRelLimit(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, 10.0#)

            .CantileverMode = 1

            .SetDisplacementXY(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_X, 1)

            .SetDisplacementXY(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, 1)

            .SetDisplXYRelLimit(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_X, 10.0#)

            .SetDisplXYRelLimit(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, 10.0#)

        End With

        RdmMembDefData.Type = RobotOM.IRDimMembDefType.I_DMDT_USER

        'robapp.Structure.Labels.Store(Lab)

 

        'GENERAR GRUPOS

        RDmServer = robapp.Kernel.GetExtension("RDimServer")

        RDmServer.Mode = RobotOM.IRDimServerMode.I_DSM_STEEL

        RDmGrps = RDmServer.GroupsService

        GroupNo = 1

        RDmGrpl = RDmGrps.[New](0, GroupNo)

        RDmGrpl.Material = "S 275"

        RDmGrpl.Name = "grupo1"

        RDmStream = RDmServer.Connection.GetStream

        RDmStream.Clear()

        RDmStream.WriteText("1 3")

        RDmGrpl.SetMembList(RDmStream)

        RDmGrpProfs = RDmServer.Connection.GetGrpProfs

        RDmGrpProfs.Clear()

        RDmStream.Clear()

        'RDmStream.WriteText("IPE")

        'RDmGrpProfs.SetFamilies("Rcat", RDmStream)

        RDmGrpl.SetProfs(RDmGrpProfs)

        RDmGrps.Save(RDmGrpl)

 

        'PREPARAR DIMENSIONAMIENTO

        RDmEngine = RDmServer.CalculEngine

        With RDmEngine

            RDmCalPar = .GetCalcParam

            RDmCalCnf = .GetCalcConf

        End With

        RDmStream = RDmServer.Connection.GetStream

        RDmStream.Clear()

        RDmCalCnf.SetParamValue(RobotOM.IRDimCalcConfValueType.I_DCCPV_EFFRATIO, 0.9)

        RDmStream.WriteText("todo")

        RDmCalPar.SetObjsList(RobotOM.IRDimCalcParamVerifType.I_DCPVT_GROUPS_DESIGN, RDmStream)

        RDmCalPar.SetLimitState(RobotOM.IRDimCalcParamLimitStateType.I_DCPLST_SERVICEABILITY, 1)

        RDmCalPar.SetLimitState(RobotOM.IRDimCalcParamLimitStateType.I_DCPLST_ULTIMATE, 1)

        RDmStream.Clear()

        RDmStream.WriteText("1 2")

        RDmCalPar.SetLoadsList(RDmStream)

        RDmOptPar = RDmCalPar.GetOptimParam

        RDmOptPar.Optimization = 1

        RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_WEIGHT, 1)

        RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MAX_SECTION_HEIGHT, 1)

        RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MAX_SECTION_HEIGHT, 0.5)

        RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MIN_SECTION_HEIGHT, 1)

        RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MIN_SECTION_HEIGHT, 0.1)

        RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MIN_FLANGE_THICKNESS, 1)

        RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MIN_FLANGE_THICKNESS, 0.01)

        RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MIN_WEB_THICKNESS, 1)

        RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MIN_WEB_THICKNESS, 0.05)

        RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_ENTIRE_SET_SECTIONS, 1)

        RDmCalPar.SetOptimParam(RDmOptPar)

        With RDmEngine

            RDmEngine.SetCalcConf(RDmCalCnf)

            RDmEngine.SetCalcParam(RDmCalPar)

        End With

 

        'DIMENSIONAMIENTO

        RDmEngine.Solve(Nothing)

        RdmAllRes = RDmEngine.Results

        RdmAllResObjType = RdmAllRes.ObjectsType

        ObjCnt = RdmAllRes.ObjectsCount

        RDmGrpRes = RdmAllRes.Get(1)

        PrfFamCnt = RDmGrpRes.FamiliesCount

        Dim Index As Long

        For Index = 0 To PrfFamCnt - 1

            If Index = 0 And RDmGrpRes.IsOptimization Then

                OptFamIndex = RDmGrpRes.OptFamilyIndex

            End If

            If RDmGrpRes.Check(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_PREVIOUS) Then

                RdmDetRes = RDmGrpRes.Get(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_PREVIOUS)

            End If

            If RDmGrpRes.Check(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_GOVERNING) Then

                RdmDetRes = RDmGrpRes.Get(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_GOVERNING)

            End If

            If RDmGrpRes.IsOptimization And Index = OptFamIndex Then

                'section is optimal

            End If

            If RDmGrpRes.Check(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_NEXT) Then

                RdmDetRes = RDmGrpRes.Get(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_NEXT)

            End If

        Next

 

        'FINALIZAR EL CODIGO

        robapp.Window.Activate()

        rec = Nothing

        cas = Nothing

        node = Nothing

        sup_data = Nothing

        sup = Nothing

        s = Nothing

        robapp = Nothing

    End Sub

End Class

 

Could you help me in order to finish the steel design?

Is there any help document a little bit detailed?

Thank you in advance, best regards

 

Please use plain text.
Product Support
Rafal.Gaweda
Posts: 5,048
Registered: ‎04-26-2010

Re: API, RSA design

02-25-2014 01:11 AM in reply to: asvazquez
Please use plain text.
Contributor
asvazquez
Posts: 15
Registered: ‎02-24-2014

Re: API, RSA design

02-25-2014 04:17 AM in reply to: asvazquez

Thank you very much for your attention. What we are looking for is the optimal section for the profiles of a structure, is it possible?

 

Best regards

 

Please use plain text.
Contributor
asvazquez
Posts: 15
Registered: ‎02-24-2014

Re: API, RSA design

03-03-2014 03:02 AM in reply to: Rafal.Gaweda

Thank you again, but I was loofing for "change" or "Change all" sollution, and I have seen that it is not implemented in Robot API.

Is it correct??

 

Best regards.

Please use plain text.
Product Support
Rafal.Gaweda
Posts: 5,048
Registered: ‎04-26-2010

Re: API, RSA design

03-03-2014 05:41 AM in reply to: asvazquez

changeall.jpg



Rafal Gaweda
Please use plain text.
Contributor
asvazquez
Posts: 15
Registered: ‎02-24-2014

Re: API, RSA design

03-03-2014 10:00 PM in reply to: asvazquez

Thanks a lot. this is what I was looking for.

 

I am preparing a recursive process, is there any way in order to avoid the "Acept" window in Robot after "change all"?

 

Thank you again...

Please use plain text.
Product Support
Rafal.Gaweda
Posts: 5,048
Registered: ‎04-26-2010

Re: API, RSA design

03-04-2014 12:11 AM in reply to: asvazquez
What about robapp.Interactive=false?


Rafal Gaweda
Please use plain text.
Active Member
villedavray_charles
Posts: 8
Registered: ‎08-02-2014

How can I define load duration class (EC5)

08-02-2014 10:52 AM in reply to: asvazquez

How can I define load duration class for Eurocode 5 timber design (with RobotOM API)

I join a picture to illustrate what I want to set by coding in VB.NET

 

Cordialement,

Charles THIERRY DE VILLE D'AVRAY

villedavray_charles@yahoo.fr

Best Regards,
Charles THIERRY DE VILLE D'AVRAY
villedavray_charles@yahoo.fr
Please use plain text.
Active Member
villedavray_charles
Posts: 8
Registered: ‎08-02-2014

Parameterizable section by coding (Robot API)

08-02-2014 10:59 AM in reply to: asvazquez

Hello,

 

How can I define a Parameterizable section by coding with RObot API (Just like the following picture) ?

 

Best Regards,
Charles THIERRY DE VILLE D'AVRAY
villedavray_charles@yahoo.fr
Please use plain text.