Robot Structural Analysis Forum
Welcome to Autodesk’s Robot Structural Analysis Forums. Share your knowledge, ask questions, and explore popular Robot Structural Analysis topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

API buckling length problems

28 REPLIES 28
SOLVED
Reply
Message 1 of 29
AbelSV78
1738 Views, 28 Replies

API buckling length problems

Hi everyone again,

 

I am trying to define an structure with VB.net and I have problems with buckling length. I am defining it with:

 

 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

 

but I have obtained a numeric length of the bars. I want to enter a coefficient for "Y" and a  coefficient for "Z", which is the correct method?

 

Thanks...

28 REPLIES 28
Message 21 of 29

Thank you for your answer, but I have already tried this code. All the "RDimMembParams..." works but the "RdimLabelData.Set.." doesn't work especially for wood members with IRDimMembParamsE52 norm.

It works for IRDimMembParamsE32 for steel members. Here is my code :

 

Dim Robot As RobotOM.IRobotApplication = Rob

 

 Robot.Project.Preferences.SetActiveCode(IRobotCodeType.I_CT_TIMBER_STRUCTURES, "NF EN 1995-1:2005/NA:2010/A1:2008")

 

Dim RLabel2 As IRobotLabel = Robot.Project.Structure.Labels.Create(IRobotLabelType.I_LT_MEMBER_TYPE, "TYPE-TRAVERSE")
Dim RdimLabelData As IRDimMembDefData = RLabel2.Data
Dim RDimMembParams As IRDimMembParamsE52 = RdimLabelData.CodeParams

 

RDimMembParams.BuckLengthCoeffY = clfy
RDimMembParams.BuckLengthCoeffZ = clfz

 

RdimLabelData.Type = IRDimMembDefType.I_DMDT_USER

RdimLabelData.SetDeflYZRelLimit(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, 100)
RdimLabelData.SetDeflYZRelLimit(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, 100)
RdimLabelData.SetDeflectionYZ(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, 1)
RdimLabelData.SetDeflectionYZ(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, 1)

RdimLabelData.CantileverMode = 1

RdimLabelData.SetDisplXYRelLimit(IRDimMembDefDispDataType.I_DMDDDT_DISP_X, 100)
RdimLabelData.SetDisplXYRelLimit(IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, 100)
RdimLabelData.SetDisplacementXY(IRDimMembDefDispDataType.I_DMDDDT_DISP_X, 1)
RdimLabelData.SetDisplacementXY(IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, 1)

RdimLabelData.CodeParams = RDimMembParams

 

Robot.Project.Structure.Labels.StoreWithName(RLabel2, "TYPE-TRAVERSE")

Best Regards,
Charles THIERRY DE VILLE D'AVRAY
villedavray_charles@yahoo.fr
Message 22 of 29

I think the reason is I used Labels.CreateLike to force robot creating a "wood member" and the wood member "Barre bois" has no service parameters by default.
Dim RLabel2 As IRobotLabel = Robot.Project.Structure.Labels.CreateLike(IRobotLabelType.I_LT_MEMBER_TYPE, NomTypeBarreBois, "Barre bois")

If I use only Labels.Create Robot will create a "Steel Member" by default.

Do you now how can I force Robot to create a wood member without using "Labels.CreateLike"?

Best Regards,
Charles THIERRY DE VILLE D'AVRAY
villedavray_charles@yahoo.fr
Message 23 of 29

I found the solution :

 

"Dim RDimMembParams"  must be after all the "RdimLabelData.Set..."

The order is important...

 

Here is the false code :

 

Dim PredefinedLabel As String = Robot.Project.Structure.Labels.GetPredefinedName(IRobotPredefinedLabel.I_PL_MEMBER_TYPE_TIMBER_BEAM)
Dim RLabel2 As IRobotLabel = Robot.Project.Structure.Labels.CreateLike(IRobotLabelType.I_LT_MEMBER_TYPE, NomTypeBarreBois, PredefinedLabel)
Dim RdimLabelData As IRDimMembDefData = RLabel2.Data
        Dim RDimMembParams As IRDimMembParamsE52 = RdimLabelData.CodeParams
        RDimMembParams.BuckLengthCoeffY = clfy
        RDimMembParams.BuckLengthCoeffZ = clfz
RdimLabelData.Type = IRDimMembDefType.I_DMDT_USER
RdimLabelData.SetLengthYZUV(IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Y, lfy)
RdimLabelData.SetLengthYZUV(IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Z, lfz)
RdimLabelData.SetDeflYZRelLimit(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, FlecheFinaleY)
RdimLabelData.SetDeflYZRelLimit(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, FlecheFinaleZ)
RdimLabelData.SetDisplXYRelLimit(IRDimMembDefDispDataType.I_DMDDDT_DISP_X, depX)
RdimLabelData.SetDisplXYRelLimit(IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, depY)
RdimLabelData.CodeParams = RDimMembParams
Robot.Project.Structure.Labels.StoreWithName(RLabel2, NomTypeBarreBois)

 

Here is the right code :

 

Dim PredefinedLabel As String = Robot.Project.Structure.Labels.GetPredefinedName(IRobotPredefinedLabel.I_PL_MEMBER_TYPE_TIMBER_BEAM)
Dim RLabel2 As IRobotLabel = Robot.Project.Structure.Labels.CreateLike(IRobotLabelType.I_LT_MEMBER_TYPE, NomTypeBarreBois, PredefinedLabel)
Dim RdimLabelData As IRDimMembDefData = RLabel2.Data
RdimLabelData.Type = IRDimMembDefType.I_DMDT_USER
RdimLabelData.SetLengthYZUV(IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Y, lfy)
RdimLabelData.SetLengthYZUV(IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Z, lfz)
RdimLabelData.SetDeflYZRelLimit(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, FlecheFinaleY)
RdimLabelData.SetDeflYZRelLimit(IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, FlecheFinaleZ)
RdimLabelData.SetDisplXYRelLimit(IRDimMembDefDispDataType.I_DMDDDT_DISP_X, depX)
RdimLabelData.SetDisplXYRelLimit(IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, depY)
        Dim RDimMembParams As IRDimMembParamsE52 = RLabel2.Data.CodeParams
        RDimMembParams.BuckLengthCoeffY = clfy
        RDimMembParams.BuckLengthCoeffZ = clfz
RdimLabelData.CodeParams = RDimMembParams
Robot.Project.Structure.Labels.StoreWithName(RLabel2, NomTypeBarreBois)

Best Regards,
Charles THIERRY DE VILLE D'AVRAY
villedavray_charles@yahoo.fr
Message 24 of 29

There is only one problem now with the 'RelLimitDeflUy'  and 'RelLimitdeflUz'

(You can see what I mean with the following picture)

 

Dim RdimLabelData  As IRDimMembDefData = RLabel2.Data

Dim RDimMembParams As IRDimMembParamsE52 = RLabel2.Data.CodeParams

 

RDimMembParams.RelLimitDeflUy = FlecheRelativeY
RDimMembParams.RelLimitdeflUz = FlecheRelativeZ

 

Is it possible to set these parameters with IRDimMembParamsE52  norm?

 

 

Best Regards,
Charles THIERRY DE VILLE D'AVRAY
villedavray_charles@yahoo.fr
Message 25 of 29


@villedavray_charles wrote:

There is only one problem now with the 'RelLimitDeflUy'  and 'RelLimitdeflUz'

(You can see what I mean with the following picture)

 

 

These settings are not implemented in API

 


 



Rafal Gaweda
Message 26 of 29


 

Here is the right code :

 

...
Dim RLabel2 As IRobotLabel = Robot.Project.Structure.Labels.CreateLike(IRobotLabelType.I_LT_MEMBER_TYPE, NomTypeBarreBois, PredefinedLabel)

 

Exactly



Rafal Gaweda
Message 27 of 29
paul.bassLH
in reply to: Rafal.Gaweda

Hi @Rafal.Gaweda ,

Just a question about this: does it mean that we cannot use API to define member type in Russian code as SP 16.13330.2011 (nothing about russian code in IRDimMembersParamxxxx)?

I need to change 30 member typ in 24 calculation model...

Thank you

 

Message 28 of 29
Romanich
in reply to: paul.bassLH

Hi @paul.bassLH ,

I can't check now, but it seems that we cannot use API to define member type in Russian code as SP 16.13330.2011.

 

I would suggest a small workaround:

  1.  In one calculation model update your member types and save it in the Label Manager
  2.  Open next model and copy all member types from the Label Manager

Do you find the posts helpful? "LIKE" these posts!
Have your question been answered successfully? Click 'ACCEPT SOLUTION' button.

Roman Zhelezniak

Robot Evangelist & Passionate Civil Structural Engineer

LinkedIn | Robot & Хобот | App Store for Robot
EESignature


Message 29 of 29
HadiMoosavi
in reply to: Rafal.Gaweda

Hello,

 

I just came to the point in my code where  I am going to define code design parameters. I am working with Canadian code.

IRobotApplication robApp = new RobotApplication();
RobotStructure structure = robApp.Project.Structure;
robApp.Project.Preferences.SetActiveCode(IRobotCodeType.I_CT_STEEL_STRUCTURES, designCode);
RobotLabelServer labelServer = structure.Labels;
IRobotLabel beamDesignParametersLabel = labelServer.Create(IRobotLabelType.I_LT_MEMBER_TYPE, "simple beam");
IRDimMembDefData beamDesignParametersData = (IRDimMembDefData)beamDesignParametersLabel.Data;
IRDimMembParamsCAN beamDesignParameters = (IRDimMembParamsCAN)beamDesignParametersData.CodeParams;
labelServer.Store(beamDesignParametersLabel);

 

but I am getting this error. Can anyone help with this?

HadiMoosavi_0-1665007923597.png

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report