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: 

ROBOT / VBA / API - Elastic support

18 REPLIES 18
Reply
Message 1 of 19
Anonymous
1793 Views, 18 Replies

ROBOT / VBA / API - Elastic support

Hello,

 

While generating a panel, is there any way to add an elastic support to symbolize the ground.

I saw that a kz option is avaible in the thicknessData command but i'm not sure that it works.

 

You'll find enclosed a screenshot explaining my problem.

 

Thanks for answering,

 

VE

18 REPLIES 18
Message 2 of 19
StefanoPasquini6790
in reply to: Anonymous

Hi VE,

In the definition of thickness tool, you can try an option where you can define the soil properties for a slab on ground. You don't need to add any elastic restraint. You can choose also the lifting or not of the slab.

Keep in mind that if you choose the lifting option the analysis become non linear.

I said "slab", but it works with all the material.

Hope I help you. Cheers

PasProStudio

www.pasquiniprogetti.eu

Structural + Detailing engineers
Message 3 of 19
Anonymous
in reply to: StefanoPasquini6790

Hi,

 

Thanks for your answer.

 

So if i understand correctly, in the thicknessdata options, "ThickData.ElasticFoundation" commands allows me to introduce ground caracterisitic.

The value appears in Kz field while slectionning the panel.

 

Now, how can i fill the Kx and Ky values down to the Kz one?

 

Thanks for your help.

 

VE

Message 4 of 19
StefanoPasquini6790
in reply to: Anonymous

Hi VE,

 

for the Kx and the Ky you can copy and paste the Kz value, or use a different one. It depend by your needed. Keep in mind that if you get Kx and Ky = 0, you need to fix your slab by additional restraints.

 

The flow of soil definition is showed in the following pic:

 

soil.jpg

 

Cheers


PasProStudio

www.pasquiniprogetti.eu

Structural + Detailing engineers
Message 5 of 19
Anonymous
in reply to: StefanoPasquini6790

Hi,

 

Thanks for your answer.

 

I'm trying to make parametrics structures like the one you'll see enclosed by VBA codes.

I make panels.

 

I'd like to know VBA commands to acces to kx and ky fields like "ThickData.ElasticFoundation" for kz.

Is i possible to have an example?

 

Thanks,

 

VE

 

 

Message 6 of 19
Rafal.Gaweda
in reply to: Anonymous


I'd like to know VBA commands to acces to kx and ky fields like "ThickData.ElasticFoundation" for kz.

Is i possible to have an example?

 

Not possible by API. Only kz implemented.

Use supports : IRobotNodeSupportData.KX, IRobotNodeSupportData.KY



Rafal Gaweda
Message 7 of 19
Anonymous
in reply to: Rafal.Gaweda

Hi Rafal,

 

I didn't understand your reply very well. I am trying to access kz, ky and kx through API? For a base slab panel, could you suggest a way I could enter values for kx and ky through API?

 

 

Regards,

Rahul

Message 8 of 19
Rafal.Gaweda
in reply to: Anonymous

Hi @Anonymous

 

My answer means it is not possible to define kx and ky by API in the definition of panel thickness.

But you can do it by API in nodal supports definition



Rafal Gaweda
Message 9 of 19
Anonymous
in reply to: Rafal.Gaweda

So does it mean I have to define the support condition first for the panel?
Message 10 of 19
Rafal.Gaweda
in reply to: Anonymous

Hi @Anonymous

 

I am afraid I do not understand.

You can:

- create panel

- define support label

- apply  support label to panel

or

- define support label

- create panel

- apply  support label to panel

 

Example code how to apply support to whole panel

 

Dim panel As RobotObjObject
 
Set panel = RobApp.Project.Structure.Objects.Get(panel_number)
panel.SetLabel I_LT_SUPPORT, "Fixed"

 



Rafal Gaweda
Message 11 of 19
Anonymous
in reply to: Rafal.Gaweda

Dim monobjet As RobotObjObject
Dim moncote As RobotObjEdge
Dim sup As IRobotLabel
Dim sup_data As IRobotNodeSupportData

Set sup = Robot.Project.Structure.labels.Create(I_LT_SUPPORT, "Fixed support")
Set sup_data = sup.Data

sup_data.SetFixed I_NSFD_UX, True
sup_data.SetFixed I_NSFD_UY, True
sup_data.SetFixed I_NSFD_UZ, True
sup_data.SetFixed I_NSFD_RX, True
sup_data.SetFixed I_NSFD_RY, True
sup_data.SetFixed I_NSFD_RZ, True

sup_data.KX = 500000
sup_data.KY = 500000
sup_data.KZ = 5000000

Robot.Project.Structure.labels.Store sup

Set monobjet = Robot.Project.Structure.Objects.Get(1)
Set moncote = monobjet.Main.Edges.Get(1)
moncote.SetLabel I_LT_SUPPORT, "Fixed support"
monobjet.Update

 

 

I do this for all the edges of base slab. Is this the right way to go? KX,KY,KZ values aren't updating in the model. They are shown as zero.

Message 12 of 19
Rafal.Gaweda
in reply to: Anonymous

Hi @Anonymous

 

Almost perfect.

Corrected code:

Dim monobjet As RobotObjObject
Dim moncote As RobotObjEdge
Dim sup As IRobotLabel
Dim sup_data As IRobotNodeSupportData

Set sup = RobApp.Project.Structure.Labels.Create(I_LT_SUPPORT, "Fixed support")
Set sup_data = sup.Data

sup_data.SetFixed I_NSFD_UX, False
sup_data.SetFixed I_NSFD_UY, False
sup_data.SetFixed I_NSFD_UZ, False
sup_data.SetFixed I_NSFD_RX, True
sup_data.SetFixed I_NSFD_RY, True
sup_data.SetFixed I_NSFD_RZ, True

sup_data.KX = 500000
sup_data.KY = 500000
sup_data.KZ = 5000000

RobApp.Project.Structure.Labels.Store sup

Set monobjet = RobApp.Project.Structure.Objects.Get(1)
Set moncote = monobjet.Main.Edges.Get(1)
moncote.SetLabel I_LT_SUPPORT, "Fixed support"
monobjet.Update

supx.jpg



Rafal Gaweda
Message 13 of 19
Anonymous
in reply to: Rafal.Gaweda

Hi Rafal,

 

one last question. Can I not do this for the entire panel in one go? Or do I need to go edge by edge?

 

Thanks!

Message 14 of 19
Rafal.Gaweda
in reply to: Anonymous

Hi @Anonymous

 

Your code is for linear support(s) (edges).

If you want to apply Planar support (for the whole panel) - take a look a few post above with my example code



Rafal Gaweda
Message 15 of 19
Anonymous
in reply to: Rafal.Gaweda

Hi @Rafal.Gaweda,

 

We would like to apply the KX,KY,KZ value through API in a way that it will be visible in the "Foundation elasticity" window as follows,

image2.JPG

 

If we do it in the way you suggested, it chances the support conditions which we do not want.

This is because, we want to fix the base slab of a chamber as a RAFT structure.

 

How to assign value to KX and KY, then?

We know KZ can be done as, 

thickness.ElasticFoundation = 5000000

 

Thanks

 

Message 16 of 19
Rafal.Gaweda
in reply to: Anonymous


@Anonymous 

 

How to assign value to KX and KY, then?

We know KZ can be done as, 

 


As it was said before it is not possible to be done by API



Rafal Gaweda
Message 17 of 19
Anonymous
in reply to: Rafal.Gaweda

Hi @Rafal.Gaweda,

 

Sorry to be raising this topic again.

 

I understand that we can apply linear supports on edges and accordingly restrict UX,UY and so on. How do I do it for the entire panel? As in how do I apply planar support and define, KX,KY,KZ for the planar support? I don't wish to restrict rotations.

I want to achieve this through the API.

 

Best regards,

Rahul

Message 18 of 19
Rafal.Gaweda
in reply to: Anonymous

Hi @Anonymous

 

See post 10 and 12 and this is the outcome:

 

Dim monobjet As RobotObjObject
Dim moncote As RobotObjEdge
Dim sup As IRobotLabel
Dim sup_data As IRobotNodeSupportData

Set sup = Robapp.Project.Structure.Labels.Create(I_LT_SUPPORT, "Fixed support")
Set sup_data = sup.Data

sup_data.SetFixed I_NSFD_UX, False
sup_data.SetFixed I_NSFD_UY, False
sup_data.SetFixed I_NSFD_UZ, False
sup_data.SetFixed I_NSFD_RX, True
sup_data.SetFixed I_NSFD_RY, True
sup_data.SetFixed I_NSFD_RZ, True

sup_data.KX = 500000
sup_data.KY = 500000
sup_data.KZ = 5000000

Robapp.Project.Structure.Labels.Store sup

Set monobjet = Robapp.Project.Structure.Objects.Get(1)
monobjet.SetLabel I_LT_SUPPORT, "Fixed support"
monobjet.Update


Rafal Gaweda
Message 19 of 19
Anonymous
in reply to: Anonymous

Capture.PNG

How to add IRobotBarElasticGroundData with vba ?

 

FootName = "Foot"
Set Label = Labels.Create(IRobotBarElasticGroundData, FootName)
'Dim footData As RobotNodeSupportData
Set footData = Label.Data

footData.KZ = 80000000#
footData.KY = 1
footData.HX = 1

Labels.Store Label

'Dim SelectionNodes As RobotSelection
Set selectionBars = Robot.Project.Structure.Selections.Get(I_OT_BAR)
selectionBars.FromText "6 7 8 9"
Robot.Project.Structure.Bars.SetLabel selectionBars, IRobotBarElasticGroundData, FootName

 

 

and thank you .... 

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

Post to forums  

Autodesk Design & Make Report