I am currently working on meshing a nanoporous goldstructure (like this: ) that hes been reproduced from cross-sectional images, giving me a volumetric binary image. I am trying to implement an adaptive meshing algorithm that places additional nodes in the narrow ligament regions where I want to refine the mesh using the surf2mesh refining option. Placing the nodes is already working, but when I try to also set the local mesh density (edge size) I get the following error:
creating volumetric mesh from a surface mesh ... Opening /tmp/iso2mesh-comsol/post_vmesh.poly. Opening /tmp/iso2mesh-comsol/post_vmesh.mtr. Opening /tmp/iso2mesh-comsol/post_vmesh.b.node. File I/O Error: Cannot access file /tmp/iso2mesh-comsol/post_vmesh.b.node. Constructing Delaunay tetrahedralization. Delaunay seconds: 0.73 Duplicating background mesh. Internalerror in findedge(): Unable to find an edge in subface.
Please report this bug to sihang<at>mail.berlios.de. Include the message above, your input data set, and the exact command line you used to run this program, thank you.volume mesh generation is complete Finished meshing.
and the mesh is not refined. Any idea why this happens?
A second problem that I have is the following: Once meshed the model has some steps on the surface, which I guess is a relict of the layered images I use for the reconstruction, but is bad for the finite element analysis I want to carry out later. To improve the model I thought of using the smoothsurf function. But when I do so there appear spikes on the surface. How can I get rid of them (or why do they show up)?
kind regards, Stefan Jagsch
there is a function called "savedxf" source code which can export a surface to the DXF format, which can be imported by autodesk products. However, this was only tested with an open-source modeling software, Blender. I am not sure if this works fine with AutoCAD etc. Please give it a try and let me know.
thanks for the heads up. My problem is how to export those surfaces, after I computed them, into a format readable by a 3D design software like AutoDesk. I computed the surfaces and they look like what I wanted, but now I need to export it from Matlaband this is the step I am still missing. I couldn't find any reference in the documentation that addressed it, though I believe it must be trivial.
Thanks for the quick reply.
yes, iso2mesh does produce surfaces. Please check out the Doc/Workflow page to find out the general workflow. Typically, you should use v2s to extract surfaces from a volumetric image. Sometimes, you can also use v2m to produce surfaces too. Please also read my slides to find out other utilities, including surface smoothing, upsampling/downsampling etc.
I just discovered iso2mesh today and it looks a great tool for a research project I am working on, where I need to take a 3D CT image and convert it into a solid mold with AutoDesk. It is not clear to me though how I save the mesh after I run the vol2mesh script on my 3D image data. I am interested into the surface only of my object, to create a mold that is empty inside and full outside. Do I save the face variable? if so how?
Thank you very much for the attention,
For the maxvol parameter, please see this page for details. It simply sets the maximum volume of all the elements. All of your input surface nodes will be preserved in the final volumetric mesh. It will add new nodes on the surface or volume to ensure the quality constraint.
As I decreased the maxvol parameter, I got mesh with smaller elements. Not really surprised with that but, is there any units associated with that parameter? Is there any way to calculate the optimum maxvol based on the size of the geometry to be meshed?
Also, I will revisit meshing after I complete my current projects. I was looking for a meshing tools for future use and I think I found one :) Thank You for all your inputs.
do a "help remeshsurf" see the possible options. For simplicity, you can set opt as a scalar, which will be the desired maximum element diameter of the resulting mesh; in that case, the grid-size will be set to opt/4 automatically.
Please do a meshresample first to reduce the mesh density and then do a remeshsurf; this can save a lot of memory for you.
By the way, do you have to keep the original surface more than 50%? FreeSurfer produces very dense surface mesh, for me, I usually keep only 5~10% of the elements. If you have a very dense surface mesh, tetgen will take a long time to make tetrahedral mesh.
You can also try MeshLab to manually select and correct these bad elements in the original mesh, but generally speaking, this is pretty difficult. I've chatted with the FreeSurfer developers in our building, but at this point, there is nothing we can do about it.
this the most frequently encountered error with iso2mesh (or tetgen). It is very likely that your original mesh contains self-intersecting elements, and mesh simplification (decimation) usually won't fix it (If you are using FreeSurfer, the pial surface it produced usually have this type of issue).
There is a work-around, but you might have to play with the options to get it to work. Please look into the sample script sample/demo_remesh_surface.m. It calls a function named remeshsurf in the toolbox. What this function does is to first convert a closed surface into a binary image, and then re-extract a surface from the volume, and the extraction script guarantees that the produced mesh is self-intersection free.
If your mesh is complex, you may have to use a large volume to re-voxelize your surface. Give it a try and let me know if it works.
Error: Invalid PLC.
Two subfaces (17561, 18027, 83603) and (83474, 83572, 18027) are found intersecting each other. Hint: Use -d switch to find all intersecting facets.volume mesh generation is complete
I am not sure the reason for this message and also if there is any potential work around it.