How to import and utilize 3D meshes

Asked by MarcoDottor

Hello

        Could I import a 3D geometry form a CAD program like SolidWorks or ProE and utilize it in a Esys simulation?
What kind of script should i make? One to convert the geometry in one readable form Esys?

Thank you.

Marco

Question information

Language:
English Edit question
Status:
Answered
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Dion Weatherley (d-weatherley) said :
#1

Hi Marco,

Yes, it is possible to use an external CAD package to generate meshes then import them into ESyS-Particle. We have done this using Blender (http://www.blender.org/) once or twice. Probably the easiest way to import from a CAD package is:

1) output your mesh from CAD in a human-readable ASCII format

2) write a python subroutine to read the mesh file and create two lists:
         a) a node list where each element of the list is a tuple (node_ID, position, optionalNodeTag) where position is a Vec3()
         b) a face (or element) list where each element of the list is another tuple:
                     (face_ID, (nodeId0,nodeId1,nodeId2),optionalFaceTag)

3) in your simulation script, use the LsmMpi.createTriMesh(..) subroutine to use these two lists to create the mesh e.g.
sim.createTriMesh (
   meshName = "myMesh",
   nodeSequence = myNodeList,
   faceSequence = myFaceList
)

A couple of things to note about meshes:

1) try to avoid sharp corners with angles less than 90 degrees - particles tend to tunnel through sharp corners

2) the order in which node IDs appear in the faceSequence is important. The order defines the direction of the normal to the face. Particles will only be repelled if they approach a face from the side in the positive normal direction, otherwise they will tunnel straight through the wall. In other words, walls are one-sided.

Unfortunately I cannot recall off the top of my head the correct way to order node IDs. Do a little experiment with a single triangle and a particle approaching the triangle from either side to figure out the correct way to order the node IDs in the faceSequence. When you figure it out, let us know for future reference!

Cheers,

Dion.

Revision history for this message
MarcoDottor (marcodottor) said :
#2

Thank you for your answer, the aim of my work would be to simulate the excavation with a particular drill: the first thing i would like to do is create a particle ground, then when the drill interact with the ground it breaks and let particle free, then the particle are removed by an auger in the drill.

The geometry of the drill is ready, and my task is to improve the material removal rate of the system.

Is a bit complicated and I'm trying to understand if it is possible to do this and my geometry there are sharp corner.

I'm not familiar with python, but I'm here to learn ;).

In your opinion could it be possible to do this kind of simulations?

Marco

Revision history for this message
Dion Weatherley (d-weatherley) said :
#3

Hi Marco,

I have seen DEM simulations of loose particles being carried along by an auger so in theory it should be possible to do what you want. See for example, the videos on the EDEM website (http://www.dem-solutions.com/videos.php). To do this with ESyS-Particle, I suspect that we would need to solve the problems with sharp corners in mesh walls. Unfortunately this is unlikely to happen until we can hire a new software developer to look at challenging issues like this.

There is another potential problem to solve for your case. Walls are kinematic (not dynamic) - you can move them around and deform them explicitly but they do not deform in response to forces applied by the particles. Not sure if that will cause problems for you or not. Again, this is a task for a software developer as it requires a lot of work on the source code.

If you know someone with good C++ programming skills who might be interested in tackling these problems, let me know and we might be able to collaborate to solve them.

Finding a way to simulate drilling with DEM would certainly be a challenging and worthwhile thesis so don't give up yet! I can envisage a lot of potential applications for such simulations to terrestrial drilling as well as excavation on Mars.

Cheers,

Dion.

Revision history for this message
David Ely (dely-pharmacy) said :
#4

I did the experiment to determine the node order in faceSequence. The nodes should be ordered clockwise when looking at the positive side of the face (i.e., the side that will repel a particle).
 2____3
   | /|
   | / |
   | / |
   | / |
   | /__|
  1 4
faceSequence = [ (face_ID0, (1,2,3), optionalFaceTag0), (face_ID1, (1,3,4), optionalFaceTag1) ] will produce a repulsive force when approaching the mesh above from the side shown.

Revision history for this message
David Ely (dely-pharmacy) said :
#5

Oops. My mesh got destroyed. Anyway, hopefully the first sentences are clear enough without the example.

Revision history for this message
Dion Weatherley (d-weatherley) said :
#6

Hi David,

Thanks for the info about constructing meshes. That's very helpful. Your contribution is much appreciated.

Cheers,

Dion.

Can you help with this problem?

Provide an answer of your own, or ask MarcoDottor for more information if necessary.

To post a message you must log in.