Import pointcloud and create mesh from those points

Hi,
I would like to import a pointcloud and create a mesh from those.
Is there any opencascade feature?
Can someone help me?
Thanks in avdance
Jaouad

ducelierin's picture

No, as far as I know, there is nothing to do that in OCC. To do that we use a library called "3DReshaper SDK", which is really superior to all what we have evaluated. The only problem is that it is not free!

Rob Bachrach's picture

As far as free solutions go, you might want to look at GeomPlate_BuildPlateSurface and using each point in your cloud as a GeomPlate_PointConstraint on the surface. This does not work for closed surfaces or a large number of points, but it is the best OCC offers in the standard library.
Once you have a surface, create a face from it. Then use BRepMesh_IncrementalMesh to create the mesh.

Good luck

jaouad's picture

Thank you for your reply.

Can we, with that, perform the reverse engineer? to get a good surface result?

Thanks
Jaouad

Rob Bachrach's picture

In theory, yes. You don't want a large number of points and they must be well behaved (i.e., that a nice surface can fit them). I am not sure what the limit is, but you should get additional information by searching the forum for GeomPlate.

The Plate sample program shipped with OCC should help. In theory, you could create a file in the same form as the sample (sol1.dat or sol2.dat) and load it into the sample program to see how well it fits your surface.

Abraham4D's picture

Using GeomPlate_BuildPlateSurface what is the parameters to adjust in order to keep the surfaces as natural as possible (like least square method or similar method) please.

jaouad's picture

Did you success to build mesh by using GeomPlate_BuildPlateSurface ?

jaouad's picture

Hi Rob,
I success to import my points cloud in OCC application but I'm unable to build the mesh by using GeomPlate_BuildPlateSurface. I need of course to define constraints from curve and those points... The problem I encountered is how can I conform my constraint's curve?
I appreciate your help
Many thanks,

Rob Bachrach's picture

I haven't played with this much, but the constructor for GeomPlate_BuildPlateSurface has many arguments that could help improve conformance. In particular, you could try increasing the degree of the polynomial fit (Degree), increasing the number of iterations (NbIter), and the maximum angle between the surface and the constraint (TolAng). Try experimenting with these to see if you can get a closer fit.

Abraham4D's picture

jaouad benazzouz, yes I did using the sample code 11_Plate in OCC samples directory but still I couldn't find the appropriate arguments to set because I need to use least square method in my case. I hope someone here would help with that.

Thanks

Joseph's picture

I believe that cloud point computation should be included in the Open Cascade Kernel. I even thought at the beginning it is one of the basic function of OCC.

Rob Bachrach's picture

I'm pretty sure that's not the case. If it were, OCC would not market a paid add-on for creating surfaces from scattered points.

http://www.opencascade.org/support/products/ssp/

Joseph's picture

At the beginning, Opencascade succeeded and contributed a lot and I think it can get a lot of money from consultancy and similar operations. Recently, there were no major advancement added. I think it is the time now for enhancement or new similar opportunity for new open source library with more options.

Calvin Lim's picture

there are various algorithms to implement this. Most notable is the geomagic software, which might cost u.

for free solutions, try the TightCocone software by tamal Dey.
Alternatively, u can try my algorithm.

http://www.comp.nus.edu.sg/~tants/layerPeelingDownload.html

hope it helps. it output a triangular mesh in ply format.