Re: [Openflipper] Repair surface mesh by gmsh in OpenFlipper
Hi, thank you for your answer.
What you mean by keeping the surface structure? The topology of one mesh or the order of the triangles? If i get it right you need to repair multiple touching surfaces and that you need to repair both in the same way, which is currently not implemented.
I did not get what you mean by "repair both in the same way"... By keeping the surface structure, I mean that the surfaces should not be collapsed into one, as is the case for stl format AFAIK. A cube, for example, has 6 outer surfaces, and those should also be 6 different surfaces in the mesh file (with identical nodes at the edges, of course). So it is not at the triangle level, but at the surface level that the structure must be preserved when the repair is done. As an example, imagine two cubes, one on top of the other, but shifted in horizontal direction (see attachment: Test_partial_2D_mesh.png). The common interface between both is a part of the bottom surface of the upper cube, and a part of the upper surface of the lower cube. gmsh cannot do the merge at the interface, so it would create two overlapping nonconformal meshes (attachment: Test_partial_2D_interface.png). The triangles and nodes at the interface would not be identical. Now I would need a tool which detects the overlap at the interface and repairs it. The result would have to be that the interface is cut out from the upper surface of the lower and the bottom surface of the upper cube, and the holes replaced by a new surface common to both cubes. At the lines limiting the interface, the meshes must share nodes (attachment: Test_partial_2D_clean.png). I hope that this makes clear what I want to do. Would OpenFlipper be able to do this? If not, do you have a hint where else I could look? Thanks, Matthias _____________________________________________________________________ ERBE Elektromedizin GmbH Firmensitz: 72072 Tuebingen Geschaeftsfuehrer: Christian O. Erbe, Reiner Thede Registergericht: Stuttgart HRB 380137
Hi, now i got what you mean. If you replace the two overlapping surfaces by one patch, that is connected to both cubes, you get a non-manifold configuration at the boundaries, where the vertices are shared between the meshes. This configuration can not be represented in OpenMesh. Do you need this area or would it be sufficient to remove the shared surface and create one combined surface mesh without the inner part? If so, you might want to try to merge them with a boolean operation. The code for this is closed source. We have a web interface where you can try it: http://www.graphics.rwth-aachen.de/webbsp/ Then you could also use stl as the interchange format. Best, Jan On 14.01.2013 14:52, Zenker, Dr. Matthias wrote:
Hi, thank you for your answer.
What you mean by keeping the surface structure? The topology of one mesh or the order of the triangles? If i get it right you need to repair multiple touching surfaces and that you need to repair both in the same way, which is currently not implemented. I did not get what you mean by “repair both in the same way”… By keeping the surface structure, I mean that the surfaces should not be
collapsed into one, as is the case for stl format AFAIK. A cube, for example, has 6 outer surfaces, and those should also be 6 different surfaces in the mesh file (with identical nodes at the edges, of course). So it is not at the triangle level, but at the surface level that the structure must be preserved when the repair is done. As an example, imagine two cubes, one on top of the other, but shifted in horizontal direction (see attachment: Test_partial_2D_mesh.png). The common interface between both is a part of the bottom surface of the upper cube, and a part of the upper surface of the lower cube. gmsh cannot do the merge at the interface, so it would create two overlapping nonconformal meshes (attachment: Test_partial_2D_interface.png). The triangles and nodes at the interface would not be identical. Now I would need a tool which detects the overlap at the interface and repairs it. The result would have to be that the interface is cut out from the upper surface of the lower and the bottom surface of the upper cube, and the holes replaced by a new surface common to both cubes. At the lines limiting the interface, the meshes must share nodes (attachment: Test_partial_2D_clean.png). I hope that this makes clear what I want to do. Would OpenFlipper be able to do this? If not, do you have a hint where else I could look? Thanks, Matthias
_____________________________________________________________________ ERBE Elektromedizin GmbH Firmensitz: 72072 Tuebingen Geschaeftsfuehrer: Christian O. Erbe, Reiner Thede Registergericht: Stuttgart HRB 380137
_______________________________________________ Openflipper mailing list Openflipper@lists.rwth-aachen.de http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
-- Dipl.Inform. Jan Möbius Department of Computer Science VIII Aachen University of Technology (RWTH) Ahornstrasse 55, 52074 Aachen, Germany Phone ++49 (0)241 80-21817 Fax ++49 (0)241 80-22899 mailto:moebius@cs.rwth-aachen.de http://www.rwth-graphics.de
Hi, I'm afraid I don't get quite what you mean. I try to explain more clearly what I need: In a FEM simulation, I want to have, for example, a heat flow between the two cubes. So the nodes must be merged at the interface. Moreover, it may be necessary to assign a boundary condition to the interface, so it must be a surface on its own. This means that I need to replace the overlapping part of the two surfaces (picture 2 in my previous mail) by a new surface (picture 3). In other words: Before the repair procedure, I have two separate surface meshes overlapping each other. After the repair, I have three nonoverlapping surface meshes which share nodes at the borders, the third surface being part of both cubes at the same time. What do you mean by " non-manifold configuration at the boundaries, where the vertices are shared between the meshes "? If it is a problem to have a surface assigned to two volumes at the same time (remark: it isn't for FEM meshers), then the volume assignments can be removed altogether and restored after the repair outside of OpenFlipper/OpenMesh, if information on what has been done during the repair is available. As I wrote before, I can use stl format only if it can represent several surfaces without collapsing them into one... If necessary, we can also discuss all that on the phone (in german ;) ), I can call you (tell me when you have time) or send you my phone number by direct e-mail. Thanks, Matthias
-----Ursprüngliche Nachricht----- Von: openflipper-bounces@lists.rwth-aachen.de [mailto:openflipper- bounces@lists.rwth-aachen.de] Im Auftrag von Jan Möbius Gesendet: Montag, 14. Januar 2013 16:36 An: openflipper@lists.rwth-aachen.de Betreff: Re: [Openflipper] Repair surface mesh by gmsh in OpenFlipper
Hi,
now i got what you mean. If you replace the two overlapping surfaces by one patch, that is connected to both cubes, you get a non-manifold configuration at the boundaries, where the vertices are shared between the meshes. This configuration can not be represented in OpenMesh. Do you need this area or would it be sufficient to remove the shared surface and create one combined surface mesh without the inner part?
If so, you might want to try to merge them with a boolean operation. The code for this is closed source. We have a web interface where you can try it: http://www.graphics.rwth-aachen.de/webbsp/ Then you could also use stl as the interchange format.
Best, Jan
Hi, thank you for your answer.
What you mean by keeping the surface structure? The topology of one mesh or the order of the triangles? If i get it right you need to repair multiple touching surfaces and that you need to repair both in the same way, which is currently not implemented. I did not get what you mean by "repair both in the same way"... By keeping the surface structure, I mean that the surfaces should not be
collapsed into one, as is the case for stl format AFAIK. A cube, for example, has 6 outer surfaces, and those should also be 6 different surfaces in the mesh file (with identical nodes at the edges, of course). So it is not at the triangle level, but at the surface level that the structure must be preserved when the repair is done. As an example, imagine two cubes, one on top of the other, but shifted in horizontal direction (see attachment: Test_partial_2D_mesh.png). The common interface between both is a part of the bottom surface of the upper cube, and a part of the upper surface of the lower cube. gmsh cannot do the merge at the interface, so it would create two overlapping nonconformal meshes (attachment: Test_partial_2D_interface.png). The triangles and nodes at the interface would not be identical. Now I would need a tool which detects
On 14.01.2013 14:52, Zenker, Dr. Matthias wrote: the overlap at the interface and repairs it.
The result would have to be that the interface is cut out from the upper surface of the lower and the bottom surface of the upper cube, and the holes replaced by a new surface common to both cubes. At the lines limiting the interface, the meshes must share nodes (attachment: Test_partial_2D_clean.png). I hope that this makes clear what I want to do. Would OpenFlipper be able to do this? If not, do you have a hint where else I could look? Thanks, Matthias
__________________________________________________________ ___________
ERBE Elektromedizin GmbH Firmensitz: 72072 Tuebingen Geschaeftsfuehrer: Christian O. Erbe, Reiner Thede Registergericht: Stuttgart HRB 380137
_______________________________________________ Openflipper mailing list Openflipper@lists.rwth-aachen.de http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
-- Dipl.Inform. Jan Möbius Department of Computer Science VIII Aachen University of Technology (RWTH) Ahornstrasse 55, 52074 Aachen, Germany
Phone ++49 (0)241 80-21817 Fax ++49 (0)241 80-22899 mailto:moebius@cs.rwth-aachen.de http://www.rwth-graphics.de _______________________________________________ Openflipper mailing list Openflipper@lists.rwth-aachen.de http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
_____________________________________________________________________ ERBE Elektromedizin GmbH Firmensitz: 72072 Tuebingen Geschaeftsfuehrer: Christian O. Erbe, Reiner Thede Registergericht: Stuttgart HRB 380137
participants (2)
-
Jan Möbius
-
Zenker, Dr. Matthias