Fri, 09/30/2016 - 05:35
Meshing with BRepMesh_IncrementalMesh - what controls accuracy?
I am loading shapes from STE files, and meshing them with BRepMesh_IncrementalMesh
I am using BRepMesh_FastDiscret to set the parameters of
eg
BRepMesh_FastDiscret::Parameters m_MeshParams;
//Set the meshing parameters
m_MeshParams.Deflection = 1e-5; //This one is important. Higher values are quicker but less accurate. Use 1e-3 for fast preview, 1e-5 or smaller for accurracy
m_MeshParams.Angle = 0.5;
m_MeshParams.Relative = Standard_True;
m_MeshParams.InParallel = Standard_True;
//aMeshParams.MinSize = aMinSize; //?? default is Standard_True
//aMeshParams.InternalVerticesMode = isIntVertices; //!!jw?? default is Standard_True
//aMeshParams.ControlSurfaceDeflection = isControlSurDef; //?? default is Standard_True
m_MeshParams.AdaptiveMin = Standard_True;
const TopoDS_Shape& aShape = .... // comes in from STEP load
BRepMesh_IncrementalMesh m(aShape, meshParams);
This works, but it isn't giving resulats as acurate as I'd hoped.
For instance, when getting normals of the meshes produced, some of them I expect to be exactly aligned to the carninal axes, eg (0,0,1), but instead get them slightly off,
e.g (1e-7, 1e-6, 1.00001)
I am comparing these numbers to the results I get from EWDraw http://www.eastwindsoft.com/index_en.htm
EWDraw is an Active X control that sits on top of OpenCascade - I can't use it in this project we don't support Active X.
But I have for comparrison an exisitng setup using EWDraw to load and examine STEP files.
I have tried playing with the BRepMesh_FastDiscret paramaters.
Deflection seems to make the biggest difference, making it smaller gives more accurate results, at the expense of speed.
However, it still is not as accurate as I'd hoped.
Can anyone advise on fine tuning the BRepMesh_FastDiscret parameters?
Or are there any alternatives to BRepMesh_IncrementalMesh?
Any help appreciated!
Thanks
Jim
Tue, 10/25/2016 - 21:18
Try Netgen or gmsh.
Tue, 10/25/2016 - 21:23
Can you elaborate please?
What are netgen and gmsh?
Tue, 10/25/2016 - 21:45
These are the two popular open-source meshers which are purposed for generating of quality tessellations. You can easily find them: https://sourceforge.net/projects/netgen-mesher/ and http://gmsh.info/. It should be noted that BRepMesh is different in nature. BRepMesh is a faceter for generation of visualization polygons. It is not designed for analysis, and therefore it does not offer too much flexibility in tuning its parameters.
Tue, 10/25/2016 - 22:31
Thank you.
Jim
Thu, 12/01/2016 - 00:05
Try to decrease the value of the m_MeshParams.Angle parameter. It should have an effect to the triangulation accuracy. See https://www.opencascade.com/doc/occt-7.1.0/overview/html/occt_user_guides__modeling_algos.html#occt_modalg_11_2