Joining meshes/pointsets

Technical discussions
Post Reply
atrev
Posts: 24
Joined: Tue Jul 30, 2013 9:19 am

Joining meshes/pointsets

Post by atrev »

With our project we scan parts with a laser scanner at different angles and transform back the data to the correct place. We can mesh the individual scans but when it comes to complete as a whole closed mesh, we are unsure how to do this and looking for ideas or suggestions.
I'm uploading a mesh with 2 scans in so you can get an idea of what were trying to do. With more scans the scan would be more full
here is link https://db.tt/WrNPqJks

nickz
Site Admin
Posts: 236
Joined: Fri Jul 26, 2013 3:58 am

Re: Joining meshes/pointsets

Post by nickz »

Hi Atrev
Correct me if I am wrong. It looks like you scan the object from different sides, but some areas are not accessible for scanning so you get those gaps and the problem is to construct the complete surface

One trivial and not very useful observation is that you could merge the point clouds and generate a surface from it. In your case it would produce nearly flat ragged patches, which is not good

The problem is not straightforward. You will need a relatively sophisticated processing. There are generic methods to extrapolate or interpolate or do patch fitting, but they all expect that the data is suitable for each specific method. Patch fitting is relatively powerful, but it also expects data to be more or less regularity spaced along some not too badly distorted rectangle

This should be expected because this is basically process of cognition for which computers are not very good.
There are expensive packages, which can do good work of converting 3d scans into parametric surfaces, but they almost always involve human interaction

You can automate processing by making assumption about your object. If you know that the object consists of a single pipe and a bunch of flat surfaces it can be completely automated after fair amount of coding

In rough steps the processing would look like that:
1. Detect the pipe, fit a parametric pipe (KernelCAD has that), remove points which are on surface of the pipe from your data. After that you will know that the remaining data consists of flat surfaces
2. In a loop: Detect a flat area. Fit a plane into it. Remove points inside the plane from the data. Go to the start of the loop. This will produce a set of planes. Using their intersections and the data you can construct flat polygons from that. It is easy to build a KC BRep Section (for example) from that

Detecting and fitting a pipe will take some coding, but not too bad
The good thing is that after that the resulting surface will be perfect for rendering and any geometric analysis. The data also does not have to be very dense

We could start a custom project for you. It would be a combination of built in functionality like detection and fitting a pipe or plane and an application with source code for the high level processing (steps 1,2 etc). The later can be a skeleton, on which you can build on yourself
Best regards
Nick

Post Reply