Discussion Groups

Robot Structural Analysis

Reply
Active Contributor
44 Posts
0 Kudos
Registered: ‎12-07-2012
Accepted Solution

Robot Open Standard : defining a steel rectangular custom section API

611 Views, 21 Replies
12-08-2012 02:18 PM

Hi,

I would like to define a steel rectangular custom section (not hollow) with ROS, and then define a custom material for it (I am using fabric sections).

 

Here is my script, for a concrete section : 

 

section.ShapeType = IRobotBarSectionShapeType.I_BSST_CONCR_BEAM_RECT
Dim concrete As RobotBarSectionConcreteData
concrete = section.concrete
concrete.SetValue(IRobotBarSectionConcreteDataValue.I_BSCDV_BEAM_B, 0.5)
concrete.SetValue(IRobotBarSectionConcreteDataValue.I_BSCDV_BEAM_H, 0.5)

 

What is the conversion for a steel section ? Do I only have to replace concrete by steel ? Also, how can I define the material for this section ?

Product Support
5,732 Posts
1,305 Kudos
Registered: ‎04-26-2010

Re: Robot Open Standard : defining a steel rectangular custom section

12-10-2012 01:46 AM in reply to: guillaumeniel

No you have to create steel section and assign material to it.

I will post example code.



Rafal Gaweda
Product Support
5,732 Posts
1,305 Kudos
Registered: ‎04-26-2010

Re: Robot Open Standard : defining a steel rectangular custom section

12-10-2012 04:09 AM in reply to: Rafal.Gaweda
    Dim RLabel As RobotLabel
        
    Dim RLabelData As RobotBarSectionData
    Dim RLabelNSData As RobotBarSectionNonstdData

    Set RLabel = RobApp.Project.Structure.Labels.Create(I_LT_BAR_SECTION, "my_section")
    Set RLabelData = RLabel.Data
    
    RLabelData.Type = I_BST_NS_RECT
    RLabelData.ShapeType = I_BSST_RECT_FILLED

Set RLabelNSData = RLabelData.CreateNonstd(0) RLabelNSData.SetValue I_BSNDV_RECT_B, 0.2 RLabelNSData.SetValue I_BSNDV_RECT_H, 0.4 RobApp.Project.Structure.Labels.Store RLabel

 rectfill.jpg



Rafal Gaweda
Product Support
5,732 Posts
1,305 Kudos
Registered: ‎04-26-2010

Re: Robot Open Standard : defining a steel rectangular custom section

12-10-2012 04:10 AM in reply to: Rafal.Gaweda
Active Contributor
44 Posts
0 Kudos
Registered: ‎12-07-2012

Re: Robot Open Standard : defining a steel rectangular custom section - API

12-12-2012 01:30 PM in reply to: Rafal.Gaweda

Thanks Rafal,

But it is quite impossible to find this in the Robot API pdf Guide (I_BST_NS_RECT is not mentioned for exemple in the hole document). How can I find this kind of information ?

 

Is it possible to create a Robot File using the graphic interface, and then save it in a API format to see how the script is ?

 

 

Product Support
5,732 Posts
1,305 Kudos
Registered: ‎04-26-2010

Re: Robot Open Standard : defining a steel rectangular custom section - API

12-12-2012 11:34 PM in reply to: guillaumeniel

But it is quite impossible to find this in the Robot API pdf Guide (I_BST_NS_RECT is not mentioned for exemple in the hole document). How can I find this kind of information ?

 

It is not clearly seen in documentation. Page 2125 in Robot API.pdf.

 

Is it possible to create a Robot File using the graphic interface, and then save it in a API format to see how the script is ?

 

No there is no such possibility.

You can only write your won API code which gets data from robot and check values, enum values.



Rafal Gaweda
Active Contributor
44 Posts
0 Kudos
Registered: ‎12-07-2012

Re: Robot Open Standard : defining a steel rectangular custom section

12-17-2012 01:42 PM in reply to: Rafal.Gaweda

Hi,

I still have on question : I would like to assign material to the section and not to the bar (like when using material icon).

So can I use Robot.Project.Structure.Section.Get(section).SetLabel(IRobotLabelType.I_LT_MATERIAL, material)

 

instead of Robot.Project.Structure.Bars.Get(i + 1).SetLabel(IRobotLabelType.I_LT_MATERIAL, material) ?

 

I need to do this because when I assign material directly to a bar, I can't see in the material manager the custom material defined. It does not appear in any tab (steel, concrete, Aluminium, Wood or Other).

Product Support
5,732 Posts
1,305 Kudos
Registered: ‎04-26-2010

Re: Robot Open Standard : defining a steel rectangular custom section

12-18-2012 01:26 AM in reply to: guillaumeniel
    Dim RLabel As RobotLabel
        
    Dim RLabelData As RobotBarSectionData
    Dim RLabelNSData As RobotBarSectionNonstdData

    Set RLabel = RobApp.Project.Structure.Labels.Create(I_LT_BAR_SECTION, "my_section")
    Set RLabelData = RLabel.Data
   
    
    RLabelData.Type = I_BST_NS_RECT
    RLabelData.ShapeType = I_BSST_RECT_FILLED
    
    Set RLabelNSData = RLabelData.CreateNonstd(0)
    
    RLabelNSData.SetValue I_BSNDV_RECT_B, 0.2
    RLabelNSData.SetValue I_BSNDV_RECT_H, 0.4
    
    RLabelData.MaterialName = "S355"
    
    RobApp.Project.Structure.Labels.Store RLabel

 



Rafal Gaweda
Active Contributor
44 Posts
0 Kudos
Registered: ‎12-07-2012

Re: Robot Open Standard : defining a steel rectangular custom section

12-18-2012 01:39 PM in reply to: Rafal.Gaweda

Hi,

It does not work. Here is my script to define different materials :

 

Dim materiau As RobotMaterialData
For i = 0 To tabMat.GetLength(0) - 1
Label = Robot.Project.Structure.Labels.Create(IRobotLabelType.I_LT_BAR_MATERIAL, tabMat(i, 3))
materiau = Label.Data
materiau.Type = IRobotMaterialType.I_MT_OTHER
materiau.E = tabMat(i, 2)
materiau.NU = 0.3
materiau.RO = tabMat(i, 1)
materiau.Kirchoff = materiau.E / (2 * (1 + materiau.NU))
Robot.Project.Structure.Labels.Store(Label)
Next

 

And here is my script to create sections and assign material



Dim section As RobotBarSectionData
Dim toile As RobotBarSectionNonstdData
For i = 0 To tabElts.GetLength(0) - 1
Label = Robot.Project.Structure.Labels.Create(IRobotLabelType.I_LT_BAR_SECTION, "Toile " & i + 1)
section = Label.Data
section.Type = IRobotBarSectionType.I_BST_NS_RECT
section.ShapeType = IRobotBarSectionShapeType.I_BSST_RECT_FILLED
toile = section.CreateNonstd(0)
toile.SetValue(IRobotBarSectionNonstdDataValue.I_BSNDV_RECT_B, tabElts(i, 3))
toile.SetValue(IRobotBarSectionNonstdDataValue.I_BSNDV_RECT_H, tabMat(tabElts(i, 4) - 1, 0))
section.MaterialName = tabMat(tabElts(i, 4) - 1, 3)
Robot.Project.Structure.Labels.Store(Label)
Next

 

I don't get any error message. In Robot, I can see in the material window that my new materials were created (1002Sc, 1002St,...), but my new sections (Toile 1, Toile 2, ...) are still defined with a steel material.

 

capture

 

 

And also, in the material manager, I can't find the new materials(neither in Steel tab, nor concrete, Aluminium, Timber, Other). 

It works if I assign material to the bars, but that is not what  i want to do.

Product Support
5,732 Posts
1,305 Kudos
Registered: ‎04-26-2010

Re: Robot Open Standard : defining a steel rectangular custom section

12-19-2012 02:00 AM in reply to: guillaumeniel

With standard material this works.

I will check user material

 

s355.jpg



Rafal Gaweda