Creating 3D solids from a point cloud

Goodday,

I have a big chunk of points, almost every m3. I tried to make 3D solids out of all these points.

If it is one chunk i can manage it, create outlines, then surfaces, connect surfaces and create a solid.

Now i’ve got chunk of points scattered around. I tried a lot of different approaches to filter them, but none succeeded. I managed to reduce the amount of points by creating curves connecting the outer boundaries. Hopefully someone can help me out further

I added both the dyn and text file. (the text file is reduced)

input_file_reduced.txt (5.4 MB)
3D_contamination_generation_curves.dyn (22.9 KB)

Hola amigo @sven.deleau buenas, Can you elaborate a little more on the problem please? what is your main goal? if you want you can upload your csv file with the points so the community can take a look?

1 Like

@gilberto.arechigaiba

It is a point cloud in text format of a site contamination. I added it in reduced format to the first post. The dynamo file is in the first post.

I want to create a concave hull of the points that are next to each other. So in the screen shot above it should become about 10 different solids.

Hi @sven.deleau ,

I know the springs package ‘spring nodes’ has a node to group geometry if they lie within a specific margin from eachother. However, even if you have the curves grouped for each of the 10 geometries I don’t see how a concave hull is going to help you retrieve the geometry as a solid in a similar fashion to how they are looking right now.

Perhaps this code my help you out though:

1 Like

Hi @Daan,

I don’t have the geometries sorted, that’s for me the difficult part. I might give the spring nodes a look. Although i’m doubtful about the processing time as the amount of points lies between 1 and 10 million…

Creating solids from grouped curves or points is the easy part, as long as they are grouped :slight_smile:, So no need for help on that matter.

Thanks for your reply :smiley:

Hi @sven.deleau ,

Dynamo isn’t great for working with large datasets of geometry. However, since your .txt file already contains the points in a x,y,z fashion, perhaps you can group them first before porting them to Dynamo in a faster language.

Additionally I sometimes use CloudCompare, don’t know if they have tools for this specific case but its free so at least worth checking :slight_smile:

1 Like

Hi @Daan ,

Thanks!

Yes i might have to look into that as well. But since my “expertise” is limited on python and dynamo i wanted to give it a try. Dynamo seems to be one of the best out there, i tried a lot of geometry/visualisation packages for python and all of them seemed terribly slow.

Dynamo is rather fast when you stay away from nodes :slight_smile:

If you know the maximum distance for each set of points you could try generating a cuboid grid from all the points, build a solid from all the grids, separate the solids, and finally select points by inclusion in the solid grid and use the included points to generate the mesh.

2 Likes

That’s genrerally how I do it with smaller datasets. Cuboid them up, union then disjoint the solids and clash the points vs them to clump them.

I’ve been playing with another method lately which just involves looping and rounding points to a threshold then checking all possible neighbor cells, adding them to a list to continue the same with and once you run out of neighbors that’s it. Trying to make it recursive currently, if I crack it I’ll add it to crumple… so far it’s quite fast as it involves no geometry, just maths.

1 Like

I tried the spring nodes, which work, on a smaller batch of around 800 curves takes around 30 second. But i doubt it will work that well on a batch of 10000 curves

I will take a look into the cuboid method, thanks!

1 Like