I also meet some issue about Delaunay and mesh.I am a issn barcode designer and my work is to do barcode design using c#.net.But recently i need to do something different.

I am currently working on a structural mechanics problem in which I need to cut an existing 3D surface mesh in order to use symmetry in MATLAB or GMSH.

First attempt: I obtained the symmetry by first deleting all nodes on the negative x-axis; then use delaunayTri() to get 3D tetrahedral mesh. After which, I used freeboundry() matlab function to get the surface mesh. Using this approach, some of the nodes were ignored hence I lost the actual geometry (i.e. biconcave shape in 3d) and symmetry.

Second attempt: I obtained the symmetry by first deleting all nodes on the negative x-axis; then use AlphaHull() matlab function from file exchange which uses an alpha shape algorithm. Here, I have to define a scalar parameter called alpha radius whose value affect the quality of the surface mesh but no well defined range hence I can’t automate for larger mesh; more importantly, there are some residual surface or tetrahedral mesh within the 3D surface mesh generated.

Attached are 3 files (in one zip file):

Original GMSH file;

Extracted node coordinates and

Extracted element connectivity array from GMSH file (txt format).

https://www.dropbox.com/s/7xwkyvqy13k5o33/get_symmetry.zip?dl=0

N.B: I do not wish to add additional nodes to the new symmetry as the current node coordinates and connectivity are very important in my computation, but if compulsory, additional nodes may be introduced. I will however appreciate any assistance and/or suggestions.

Thank you in advance.

Click thumbnail to see full-size image