<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<br><br>I have looked around and found that there is at least two other who tried to do the same as I did [1], that is: read a bunch of images, typically from a CT or similar, where each image represent a slice of a 3D structure, and create a mesh from it.<br><br>I'll describe my case in more detail:<br>The 3D (x,y,z) data is in the format of a bunch of 2D(x,y) image files where each file represent a given z-value. Each datapoint in 3D is called a voxel, and the voxel may be one of around 30 different integers. Each integer value represent a material type. Each material type is typicalled lumped together in smaller or larger lumps.<br><br>My dataset has more than 150,000,000 voxels, and is thus a bit on the big side for usage in a FEM-simulator, which is my goal. But the simulator (COMSOL multiphysics) can read Nastran BDF-files, and Gmsh can create such files. So what I want is to read my 2D-files into Gmsh, create a 3D mesh, and then export it to a Nastran file. I might sub-sample the 3D-matrix to produce coarser data, but this doesn' solve my problem by itself. I need a mesh that is rather fine at the surfaces, but the mesh may be much coarser inside the lumps of a given material.<br><br>What I have tried so far, and that didn' work very well was this: I wrote a C-program that reads all my 2D-files,and placed them in a 3D array. I then created STL-files (3D surface mesh), one fle for each material type, which I imported successfully into Gmsh, and then created Nastran files. This approach could have worked fine if it wasn't for the fact that there are holes in the "lumps" filled with other materials, and there are places where, for instance, two cubes of the same material (voxels) shares an edge or even only a vertex in 3D space. This isn' handled very well by Gmsh. The method I tried was this:<br><br><span class="Apple-tab-span" style="white-space: pre; ">       </span>// Read file 1 and create volume.<br><span class="Apple-tab-span" style="white-space: pre; ">      </span>Merge "file_1.stl";<br><span class="Apple-tab-span" style="white-space: pre; ">  </span>Surface Loop(1) = {1};<br><span class="Apple-tab-span" style="white-space: pre; "> </span>Volume(1) = {1};<br><span class="Apple-tab-span" style="white-space: pre; ">       </span><br><span class="Apple-tab-span" style="white-space: pre; ">       </span>// Mesh settings<br><span class="Apple-tab-span" style="white-space: pre; ">       </span>Mesh.Format = 31;<br><br>Since this didn' work, I am hoping that some of you might know of another way to do what I want. <br><br>Regarding the previous postings (se links below), I think the method Gary was asking about was something like this:<br><span class="Apple-tab-span" style="white-space: pre; ">     </span>for(z=0; z < number_of_2D_files; z++)<br><span class="Apple-tab-span" style="white-space: pre; ">       </span><span class="Apple-tab-span" style="white-space: pre; "> </span>Read 2D-file.<br><span class="Apple-tab-span" style="white-space: pre; ">  </span><span class="Apple-tab-span" style="white-space: pre; "> </span>Define each area with same value in the 2D-file as a surface (sizes from one pixel to whole file).<br><span class="Apple-tab-span" style="white-space: pre; ">     </span><span class="Apple-tab-span" style="white-space: pre; "> </span>Extrude all surfaces along z-axis.<br>This method is fine if it is possible to do (I need more experienced Gmsh users to comment on this), and if it is possible to merge materials of same type one the z-layer below or above so that we reduce the number of volumes.<br><br>I belive that is enough information to understand my problem. Does anybody have a solution?<br><br>Best regards,<br>Fred-Johan Pettersen<br><br>[1]:<br><a href="http://www.geuz.org/pipermail/gmsh/2006/002055.html">http://www.geuz.org/pipermail/gmsh/2006/002055.html</a><br><a href="http://www.geuz.org/pipermail/gmsh/2008/003183.html">http://www.geuz.org/pipermail/gmsh/2008/003183.html</a><br><a href="http://www.geuz.org/pipermail/gmsh/2008/003193.html">http://www.geuz.org/pipermail/gmsh/2008/003193.html</a><br><br></body></html>