Personal tools
You are here: Home Forum Use MEFISTO problem and solution

MEFISTO problem and solution

Up to Use
  • MEFISTO problem and solution

    Posted by Torsten Sadowski at October 10. 2007
    Hello,

    I ran into a problem with MEFISTO. If a face has a degenerated edge MEFISTO will build a disconnected Mesh which will fail for Netgen 3D. Degenerated edges appear in OCC at the point of conical surfaces. My solution is to modify SMESH_Block::GetOrderedEdges so that degenerated edges are not returned to the surface mesher. I don't know if this breaks something else but so far it works for me:

    tmac:~/Diss/Code/CADSimShaft totty$ diff -Nurd src/SMESH/SMESH_Block.cxx.changed src/SMESH/SMESH_Block.cxx
    --- src/SMESH/SMESH_Block.cxx.changed   2007-10-10 01:53:54.000000000 +0200
    +++ src/SMESH/SMESH_Block.cxx   2007-10-10 02:12:52.000000000 +0200
    @@ -865,7 +865,10 @@
         {
           TopoDS_Edge edge = wExp.Current();
           edge = TopoDS::Edge( edge.Oriented( wExp.Orientation() ));
    -      theEdges.push_back( edge );
    +      if (!BRep_Tool::Degenerated(edge))
    +       theEdges.push_back( edge );
    +      else
    +       iE--;
         }
         theNbVertexInWires.push_back( iE );
         iE = 0;


    If you want to repeat my problem use

    http://keepcool.kup.tu-berlin.de/public/mitarbeiter/sadowski/drilltest.stp

    and MEFISTO as the surface mesher.

    Netgen-1D-2D-3D does not have the problem but fails for my more complex files.

    Cheers, Torsten
    • Re: MEFISTO problem and solution

      Posted by Edward AGAPOV at October 10. 2007
      Hello Torsten

      I tried
      to mesh your shape with NbSegments=5; 2D mesh is OK, not disconnected (I check it with "Free Edges" control).

      We know that shapes with degenerated edges are meshes so that there are geometrically (not topologically) degenerated 2D elements. This is taken into account when passing a surface mesh to 3D meshers. You can see it by meshing a sphere - it is OK.
      In your case, the problem is that NETGEN 3D is very sensitive to quality of input mesh, it dislikes narrow faces. It is often possible to make it work by varying hypotheses.

      I tried your solution, it really let NETGEN 3D succed in your case but fail on a simple sphere (
      NbSegments=5)


      Best regard
      Edward
      • Re: MEFISTO problem and solution

        Posted by Torsten Sadowski at October 10. 2007
        Hello Edward,

        thank you for checking. Could you try to mesh drilltest.stp with Netgen3D too? It fails for me every time without my modification. Also a simple visual check for free edges is in my opinion not reliable. If I really want to check I use Create Group with a free edges filter on the original mesh. I get free edges at the drill point in the 2d mesh.

        Cheers, Torsten
        • Re: MEFISTO problem and solution

          Posted by Edward AGAPOV at October 11. 2007
          Hello Torsten

          I tried to mesh your shape and I see that we have a bug here, input mesh of NETGEN is not totally correct. I tried such a way: build 2D mesh only then merge nodes (not always OK, sometimes holes appear), add NETGEN 3D and then NETGEN succeeds. Then I made a sphere of 2 faces to have 2 degenerated edges at one apex like in your shape and here NETGEN failed also.

          If you could re-build your shape so that to have only one conical surface in the hole, it would help you.

          Best regards
          Edward
          • Re: MEFISTO problem and solution

            Posted by Torsten Sadowski at October 11. 2007
            Hello Edward,

            this might be a stupid question, but how do I prevent the 1D and 2D algos from executing if I add a 3D algo later? It would be really helpful for me if I could work on the 2D mesh before using it for 3D.

            Rebuilding of the geometry is not really feasible for me, because I use rather complex imported STEP geometries and I am happy if the geometry is at least valid.

            Cheers, Torsten
            • Re: MEFISTO problem and solution

              Posted by Edward AGAPOV at October 12. 2007
              >how do I prevent the 1D and 2D algos from executing if I add a 3D algo later?<br >

              Hello Torsten

              There is nothing to do; a sub-mesh is not re-computed every time 'Compute' is called, it is re-computed only if a hypothesis (=algo+parameters) change. So that if 1D and 2D hypotheses remain the same, adding a 3D hypothesis does not lead to re-computing 1D and 2D sub-meshes.


              Best regards
              Edward
Powered by Ploneboard
Document Actions