Sucess! Make2D of 2.5M scan data!

I tested out Make2D of a 3D scan of Gokstad skipet (Viking ship) today at a customers and it worked like a charm! The scan is stiched together of different patches that even overlap. And I must say that this impressed both me and the customer a lot, it is actually a game changer for making accurate 2D drawings of scan data. (Some of the details are lost since the original scan was reduced to 5Million

This boat is 23 meter long, scan data is in mm and the calculation was done with 0.001 precision! On a dual core i5 lapop with 8 GB of RAM!

Cudos to @GregArden!!!

PS! It would be very nice with some kind of progress tracker for Make2D,
I presume you can estimate how many processes or task that are done and how many are left, to indicate if we have started a 30 second or 30 minute calculation. It does not need to be an accurate thing, but something that gets us out of waiting in the dark where we we are unable to estimate anything would be a huge step forward.


PS! Just to show you some of the complexity of the mesh: If I weld the mesh at 170 degrees and then explode it I can remove over 4000 small insignificant meshes.

I forgot to say that the 2D above consists of 250.000 lines!

Here the mesh is unwelded at different values and Make2D does a great job with them.

I reduced the mesh to 10% (in V5 since V6 crashed) of the original for this test so I could easily delete the rest of the boat.

It also does a great job in perspective:
(Mirrored the part)

1 Like

Here a front view of the unsplit part (reduced) and mirrored. I sat tolerance to 1 mm. It took time, but came through:

1 Like

Tested the Make2D on a combined mesh and nurbes project. I have no idea how long it took as there are no notification (wish for one), I’ll set up a script and I’ll do it agian.

Here is the full 2D, it took 38 minutes to calculate.

The result is 132.200 lines and it makes Rhino very sluggish to operate. selecting a curve takes 1 second, selecting a new takes 5! (Quadro 4000)

Hi Jorgen,

These are great tests (love the boat scan) and good to see the Make2D performing well.
I agree some sort of progress bar would help.

This may be somehow relevant so I thought I’d share here - I made a small script that would convert a set of curves into a single mesh with tolerance-thick faces. The reason for that is many times I need the curves there as a visual reference (heavy CAD backgrounds, facade joints etc.) with no need to edit every single one. And if you do so, the speed gain is ridiculous. On the file with 200,000 curves, Rhino is super slow, once meshed I get 60fps vport speed. You need to have mesh edges on in your display mode- so the meshed curves show well’ also they will print OK as vectors).Plus now in V6 you can actually snap to them : )
In the code you will see settings for angle and tolerance for converting arcs/curves.

This could be developed further to join by color etc. but so far didnt have time to implement. Maybe you can give it a shot on your heavy file and see the speed difference.


MeshCurves.rvb (1.8 KB)

Nice, I will test it out, just have to make2D again as I didn’t need the data, it was just for testing. I was thinking about doing a similar test with pointcloud, but your mesh idea makes more sense! This is how I hope Rhino will be able to handle blocks in the future, interpret them as single entities to get that kind of speed gain. Let’s see what they come up with, I think they are working with something now.

Yeah, I was wondering if any of the ‘joined meshed’ benefit can be used behind the scenes by Rhino to speed up the vport redraws.
You can take a look at the meshed file here: its 200,000 rectangle curves meshed into one object. Try making 100x100x20 array of rectangle curves in Rhino to compare speeds…

–j (3.1 MB)

Nice, the meshed file spins around at a blazing speed. I tryied the curve-mesh script now on the 250.k viking ship and I had to modify it, but here is the data:

Normal 4 view, topview active, used testmaxspeed:
The mesh is 653.229 polygons.

250.000 curves redrew 100 times in 25 seconds…
Mesh converted redrew 100 times in 0.48 seconds…

So it went from 4 fps to 208, that is 52x faster.

Here is why I modified it: After the progress bar was done it took a really long time for Rhino to respond again, it was thinking and calculating and freezing and running at 7% cpu load (dual 6 core xeon) so I don’t know what it was doing then, I spopped it and I rewrote the script so it deleted the curves while calculating instead of after and I removed the match color thing, and then it worked fine on smaller parts, but once I do a big batch then it seems to freeze. I think it can be the “join mesh” part. So I removed the join mesh part and did part by part, then selLast and used _Join and that worked, then joined those together.

Great, that’s a nice speed gain! ; )
Good suggestions with the script - I actually cleaned it up for this post use as it had more junk in it - the color thing was a residue. But interesting that deleting curves as we go helps too. I wonder if instead of creating a single mesh for each curve and the joinging, either by command or script could be replaced by just gathering all vertex/face data as we go and then at the end use RhinoScript just to create the final big mesh from it. Could be optimized even more. Can’t test it now though.


1 Like