Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Enforced Displacements

Status
Not open for further replies.

sushi75

New member
Joined
Mar 11, 2015
Messages
84
Location
GB
Hi Everyone!

I'm facing a bit of a challenge that I would like to share with you.

I need to apply enforced displacements on many nodes (nearly 1000), I manage to isolate them in a group, and the value of the displacement to apply is a factor times the node coordinate.

So the issue is: how do I ask femap to apply these enforced displacement on each node!!?
I try a function, but does not seem to work, so I try to figure out a clever way of doing it, but I haven't found one yet!

Of course I will not manually create individual load on each node with the enforced displacement value...Hope there is a solution to this problem!!

Thanks for any idea you can bring on the table!
 
Hi,

I made this code, try to use...

Sub Main
Dim App As femap.model
Set App = feFemap()

'---Create a Load Set
Dim Load_Set As femap.LoadSet
Set Load_Set = App.feLoadSet
Load_Set.title = "Load Set - Test 1"
Load_Set.ID = 1
Load_Set.Put(Load_Set.ID)

'---Create a load that will be applied at node
Dim Load_Geom As femap.LoadGeom
Set Load_Geom = App.feLoadGeom

Dim Load_Defi As femap.LoadDefinition
Set Load_Defi = App.feLoadDefinition
Load_Defi.dataType = FT_NODE
Load_Defi.loadType = FLT_NDISPLACEMENT
Load_Defi.setID = Load_Set.ID
Load_Defi.Put(Load_Defi.NextEmptyID())

'---Create a set that will store your nodes
Dim Set_No As femap.Set
Set Set_No = App.feSet

'----Create a object node
Dim No As femap.Node
Set No = App.feNode

'----Two Options
'1) Select your nodes manually
Set_No.Select(FT_NODE, True, "Pick your nodes")

'2) Select your Group
'Set_No.AddGroup(FT_NODE, **THE ID OF YOUR GROUP**)'---Put the ID of yours group in the second parameters

'---Looping for each node to get the position x, y and z
Set_No.Reset()
While Set_No.Next <> FE_FAIL
ID = Set_No.CurrentID
No.Get(ID)
Pos_x = No.x'---get the x position...
Pos_y = No.y'...
Pos_z = No.z'...


Load_Geom.geomID = No.ID
Load_Geom.type = FLT_NDISPLACEMENT
Load_Geom.setID =Load_Set.ID
Load_Geom.ZOn = True
Load_Geom.z = Pos_y * Pos_x
Load_Geom.Put(Load_Geom.NextEmptyID())
Load_Geom.LoadDefinitionID = Load_Defi.ID
Load_Geom.Active = Load_Geom.ID
Wend
 
Woo I'm impressed, thanks a lot for taking the time to write such a code! I'll have a deep look at it, I'm sure it will be very helpful!

Cheers!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top