cancel
Showing results for 
Search instead for 
Did you mean: 

Identify and delete elements inside a body

Experimenter
Experimenter

Hello PLM Community,

 

I'm new to the NX FEM environment and would like to ask for your help regarding my problem. Basically I would like to study the effects of small damages on the eigenfrequencies and eigenmodes of structures.

 

The reference model therefore is an intact geometry which was already analyzed. Based on this reference mesh I would like to introduce a damaging geometry (the cylinder shown in the screenshot)

dmg_geom.png

 

As next step all elements inside the cylinder should be deleted (the rest of the mesh should remain unchanged). Does any elegant way within NX exist to achieve this intend?

 

I already played around in the FEM module but wasn't able to figure out how this could be done. Furthermore the process of deleting the elements should be automatically performed by a script, but at first it would be enough to know the general workflow to do such stuff.

6 REPLIES

Re: Identify and delete elements inside a body

Hi

 

try this:

 

1st option: manually in FEM file by deleting elements. That's the easiest way

manual.png

 

2. by defining output groups:

First go to PRT file, split the body (bigger cylidner). As a tool use small cylindner face. Then remesh all body and create groups in FEM file. As afilter use mesh or element related to the meshed body.

In the SIM file, create two different solution. first intact and second where you exclude the group of elements that you do not want to be exported to the solver:

optiosn.png

 

 

group.png

 

hope it was helpful

Re: Identify and delete elements inside a body

Experimenter
Experimenter

Hey TomekZeWschodu,

 

thank you very much for your fast answer. The first option (deleting the elements manually) works of course, but later when the process is running in a scripted version (f.e. parameter study) it's not possible to manually delete the elements for every parameter set.

 

Your 2nd idea with the output groups is also not really what I was looking for. For every variation of the damaging body I would have to remesh the whole model. Further more I have to consider various possible damage locations which would be hard to accomplish with this method.

 

Do you have an idea how I could select exactly those elements contained by the small cylinder body? From my point of view it's a basic operation in a CAD environment to check if an element/object is inside another body or not. But unfortunately I'm not able to identify the correct way/API call to check this.

 

Re: Identify and delete elements inside a body

Siemens Phenom Siemens Phenom
Siemens Phenom

It seems like you are trying to do this in the wrong place. Why wouldn't you subtract the damaging body from the parent body in modeling? As you say, it is a very simple operation there. You then just need to update your mesh and re-solve in the fem/sim parts.

 

If you must do this at the FEM level, there are no NX Open api methods available to do this directly in the FE mesh. You would need to find some other external library or write your own code to determine when one element is considered to be insided another mesh.

Re: Identify and delete elements inside a body

Siemens Legend Siemens Legend
Siemens Legend

Hi mg-btu,

 

you could use NX Open to identify if FEM elements are inside or outside a body. I implemented a script for the inverse: I have a mesh and wanted to check if the element is outside a certain body and delete that element. I checked if the element centroid is inside or outside the body.

You have to loop over all elements, then calculate the centroid for each element and check if it is inside the body using the following method:

 

 

centroidPosition=theUFSession.Modeling.AskPointContainment(centroid,body.Tag)

 

Maybe that helps for your task.

 

Boris

Re: Identify and delete elements inside a body

Experimenter
Experimenter

JimB wrote:

It seems like you are trying to do this in the wrong place. Why wouldn't you subtract the damaging body from the parent body in modeling? As you say, it is a very simple operation there. You then just need to update your mesh and re-solve in the fem/sim parts.

 

If you must do this at the FEM level, there are no NX Open api methods available to do this directly in the FE mesh. You would need to find some other external library or write your own code to determine when one element is considered to be insided another mesh.


Hey JimB,

 

the main problem is that I would have to mesh the part from scratch for every Variation in damage form and location. This seems like an unreasonable high afford regarding the task I want to solve. Further more it would simplify the post processing of my analysis if the mesh of the part is identical except for the damaged region.

 


BorisL wrote:

Hi mg-btu,

 

you could use NX Open to identify if FEM elements are inside or outside a body. I implemented a script for the inverse: I have a mesh and wanted to check if the element is outside a certain body and delete that element. I checked if the element centroid is inside or outside the body.

You have to loop over all elements, then calculate the centroid for each element and check if it is inside the body using the following method:

 

 

centroidPosition=theUFSession.Modeling.AskPointContainment(centroid,body.Tag)

 

Maybe that helps for your task.

 

Boris


Hey Boris,

 

thank you very much in advance! This may be the correct API Call I was looking for. I will write a test script and check if it fits my needs.

Re: Identify and delete elements inside a body

Another thing you may try is to solve this problem using another solver.

I assume you try to do this in SOL101 but it may be too simple and not realistic.

Try to define non linear dynamic analysis where small cylinder hits the master body. There you will achieve the real behaviour of the damaged body. I am not very fammiliar with such kind of simulations but it seems that such solution could be better for. Distortion of the element in considered region seems to be more realistic than deleting elemets.