Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

Switching the Dependent and Independent Nodes for Rigid Constraints 3

Status
Not open for further replies.

Cheyne

Mechanical
Apr 18, 2013
29
Is there a way to select a group of rigid elements and reverse the nodal dependencies from dependent to independent, or vice versa? I have a situation where a unzipped a plate mesh from beam elements and attached using rigid elements, but I need to reverse the dependencies to avoid fatal errors due to more than one rigid elements on a dependent node.

Thanks in advance.

 
Replies continue below

Recommended for you

it sounds like you're making a bunch of rigid elements that connect 1-to-1 ... it's about the only way i can see that you could make the RBEs the wrong way around. you know you can connect a single independent node to multiple dependent nodes ?

i'm olde school ... i'd export the bdf file, take these elements into excel, swap the node fields, paste into the bdf, and import into FeMap.

Quando Omni Flunkus Moritati
 
You are correct. The rigids are 1 to 1. Yes, I was aware that you can connect an independent node to multiple dependents, as with RBE2 and spider elements. Unfortunately, in this case, my 1 to 1 connection (using "unzip") is automatically generated such that many dependent nodes are connecting to a pre-existing dependent nodes. My understanding is you cannot have two rigid elements connect to a single dependent node. The problem would be fixed if I could reverse dependencies. I'll have to try the exporting method...

But, this leads into another question: Would you know why my model analysis files aren't being generated into my working directory. I was trying to export the .bdf file, and realized I have no model analysis files aside from .modfem files in my working directory. Is there a way to see what file path they are being saved to?

I apologize if these questions are elementary.

Thanks

 
Actually, I realized my preferences were set to save these files in another location. But, if you can guide me in exporting the bdf files, that would be great and much appreciated.

 
look into model/analysis/edit (high-lighting the top "analysis set" line, this should open the autoexec file. at the top of the second page should be "direct output to" field ... mine's blank and the output goes to my model folder. if you want to see the output, use the "print and post-process" option (under "output requests")

Quando Omni Flunkus Moritati
 
file/export leads you to tell FeMap where to put it.

Quando Omni Flunkus Moritati
 

Hi,
The best way to do this in one click is to perform an API program...
 
The simple way around this to go to the Bulk Data Options form and select "AUTOMPC" This will cause Nastran to correct the dependency conflict internally. Note that the equations/coefficients are not actually changed, they are only "reordered" to eliminate the book keeping conflict.
 
Hello!,
I suggest not to relieve in PARAM,AUTOMPC,YES to solve conflicts of double-node dependence between dependent & independent nodes in Rigid elements or MPCs (Double dependencies occur when two elements share a dependent node), it is better to do things correctly the first time, this is the way I run, takes your time to understand the problem and solve it.

The param AUTOMPC is supported by all solution sequences of NX NASTRAN, yes, but Advanced NonLinear Module (SOL601 & 701) do not understand the AUTOMPC command, then the error will appear.

Command "MESH > CONNECT > CLOSEST LINK" include the option REVERSE DIRECTION, very useful when defining connections "properly" using rigid elements.

Best regards,
Blas.

~~~~~~~~~~~~~~~~~~~~~~
Blas Molero Hidalgo
Ingeniero Industrial
Director

IBERISA
48011 BILBAO (SPAIN)
WEB: Blog de FEMAP & NX Nastran:
 
Yes Blas,

That is the approach I was going to take if all else fails.

Using "MESH > CONNECT > CLOSEST LINK," you choose the independent nodes in your first node selection array, then the second array is the dependents. Which is great, because you have that control and assurance of dependencies, and more so using the reverse feature.

I simply liked how the "MESH > CONNECT > UNZIP" operation included rigid element connections in one operation. This operation also has the reverse option, but it seemed like using that option didn't actually reverse the dependencies. In addition, it seemed like the dependencies weren't consistent between my plate and beams, meaning they were "flip-flopping" around the perimeter of my plate and connecting beam elements. So, I'm still having to go through each rigid element and identify the rigids that need to be reversed. Even if I could reverse the dependencies in one operation, identifying which ones need to be reversed would be time consuming.

I think the "CLOSEST LINK" method would give me the most assurance, even though it's an additional step after the "UNZIP."

When I get the time, programming an API would be great for this, as mentioned above.

 
Hi guys,

I have a gift for you. One click and you are done !!
Put this in a ".BAS" file and paste it in the API directory : C:/Femap/api/elementupdate

Select all rigid elements that you want to update and don't forget to show the Rigid symbol thru F6/Labels,Entities and Color/Element-Rigid/DrawSymbol...
that will help you to better view the master and the slave nodes (master = dark)

Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim fElem As femap.Elem
Dim fSet As femap.Set
Dim nodeCount As Long
Dim elemID As Long

Dim nodeArray As Variant
Dim faceArray As Variant
Dim weightArray As Variant
Dim dofArray As Variant
Dim nd1 As femap.Node

Set fElem = App.feElem
Set fSet = App.feSet
Set nodeSet = App.feSet
Set nd1 = App.feNode


' Select the rigid elements
rc = fSet.Select(8, 1, "Select Rigid Elements to be modified")
rc=App.feAppStatusShow(True,fSet.Count)
elemID = fSet.First()

While elemID > 0
icount=icount+1
rc = fElem.Get(elemID)
If fElem.type = 29 Then
If rc = -1 Then
rc = fElem.GetNodeList(0, nodeCount, nodeArray, faceArray, weightArray, dofArray)
If rc = -1 Then
' Print Element & Master Node
rc = nd1.Get(fElem.Node(0))
oldMaster = fElem.Node(0)
newMaster = nodeArray(0)
nodeArray(0)=oldMaster
fElem.Node(0)=newMaster
rc = fElem.PutNodeList(0, nodeCount, nodeArray, faceArray, weightArray, dofArray)
rc = fElem.Put(elemID)

End If
End If
End If

rc=App.feAppStatusUpdate(icount)
elemID = fSet.Next()
Wend

'End
rc=App.feAppStatusShow(False,fSet.Count)


End Sub



Best regards.

 
compositecurves,

You're the man!

Whether you created it, or found it, I appreciate you taking the time to post it.

Who doesn't love gifts in the form of a FEMAP API? :)

-Cheyne


 

Cheyne,
I appreciate this forum, that's why i try to help others :)
I created the API and many other API program to save time and to let Femap be the best FEA software ever ;)


rb1957,
i don't understand what you mean by "no LPS"

 
"LPS" = little purple star ... as in "Like this post? Star it!" ... it's a way of saying thx

Quando Omni Flunkus Moritati
 
HA!

To be honest, I was trying to star it from the forum's front page yesterday, but couldn't find the option. I didn't realize it was within the thread.

Done! Absolutely LPS worthy, compositecurves:)

I had no idea what LPS was either. I was asking everyone around me, and we're joking, saying that it meant a monetary payment was deserved:)
With that said, I got a $5 spot in my paypal account that has your name on it:D

Thanks again. And, thanks everyone else for the input as well (rb, blas, jb)!

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor