2 Replies Latest reply on Jul 19, 2016 3:52 PM by Alan Thomason

    Align Point Cloud

    Alan Thomason

      I have several point clouds resulting from laser scanning.  These are machined parts, so there are planes and cylinders available.  My desire is to:

        1. Recognize the major planes. I desire to do this with more than just three points with the plane produced using a regression technique to start off with as much accuracy as possible.  Current I can do this with three points as the only option.

        2. Recognize the axis of cylinders.  Ideally I would be able to manually select several points on a cylinder and have the axis calculated from that.

      The first step with this information is to align the part to the coordinate system.

       

      Does anyone know of a way to do this within SolidWorks in the normal user interface or the API?  I have Scan to 3d but frankly the results are not well suited to my project.  That system wants to go straight to making surfaces of everything, which is both time consuming and doesn't produce the pure results that I need.  I intend to use the point cloud data as a guide, with the knowledge that the overall accuracy of placement will improve if we can take in a larger number points.  

       

      I probably haven't explained this very well, but hopefully somewhere out there recognizes a similar need.  Also, moderators please feel free to move this post if this is not the best location.

       

      Thanks in advance.

        • Re: Align Point Cloud
          John Mullett

          Sound like what you want to do is some sort of regression analysis on your point data to obtain the best fit "pure" geometry you desire.  Search cylindrical regression, or planar regression for mathematical procedure.  Then construct the "pure" geometry from the resultant equations.

           

          I think Geomagic (now owned by 3D systems) or Polyworks might offer a more automated solution.

          • Re: Align Point Cloud
            Alan Thomason

            I ended up solving my problem using a combination of Python / VTK and Fortran with OpenMP for parallel processing.  Now I can align the point clouds with respect to a main plane ( I am working with cylinder heads currently) and the XY plane and then finish the alignment in the XY plane by performing a regression analysis on the proected image of the dowel holes.  There are several steps (filtering points according to density of the projected image for instance) but I am now running.  If anyone has similar machined parts that they have scanned and need similar alignment prior to using in SolidWorks please let me know and for a modest fee we could try to get you going.  The program I have created is not currently distributable, so you would have to get me the data and I would return it aligned to your desired geometry.  I am working with files around 3e6 points but since I have written everything myself I don't think there is a limitation.  I can also easily reduce the point count if you need that.

             

            Alan Thomason

            Plymouth Machine Integration, LLC

            alanmthomason@icloud.com