Page 1 of 1
Determining how out of round a cloud is?
Posted: Thu Feb 16, 2023 3:23 am
by Shea_G
I have to scan a 12m diameter concrete vertical shaft tomorrow and the client wants to know where the shaft is less than and more than 12m in diameter. Any ideas how to go about this?
I was thinking I could do a cloud to mesh distance and create a mesh of the design shaft wall. My question is if this would work, how is the best way to get a design mesh created in the proper coordinate system so it lines up when I import it? I have a working drawing in Civil3D, is it possible to make it in there, say it as (which format?) and then directly import it into CC?
Also once I have a scalar field with my delta distances between clouds I'd like to export this field with the corresponding coordinate to highlight the largest deltas, easy enough. The only issue is that I'll need to decimate the cloud to get it to a manageable size for a spreadsheet. If I simply decimate it I may/will lose the areas of largest deformation. Is there a was to decimate it based on the largest/smallest values of a scalar field? Like the rasterization tool when using it for the smallest/highest values based on x, y or z coordinates?
Re: Determining how out of round a cloud is?
Posted: Sat Feb 18, 2023 8:59 am
by daniel
Hi,
Not sure how to properly manage the coordinate systems (unless you have some fixed points with know coordinates). I would have simply fitted a cylinder on the cloud?
Or if you have something better than a cylinder (your CAD model), if you can export it to an open mesh format that should be enough (STL, OBJ, etc.).
And last, I would say that due to the statistical nature of a point cloud, subsampling it should not change that much the distances distribution.
But you can indeed subsample a cloud based on the values of a scalar field. Make sure the distances scalar field is active, then use the 'Edit > Subsample' tool, and check the 'Use active SF' option:
See
https://www.cloudcompare.org/doc/wiki/i ... 8option.29
You should probably work with the absolute distance values to do that (so that you can set a low density for small distances, and a high density for large distances). You can either compute the distances twice (with absolute values or not) or you can use the 'ABS' operation of the SF arithmetic tool if you use the latest 2.13.alpha version.
Re: Determining how out of round a cloud is?
Posted: Sun Feb 19, 2023 5:38 pm
by Shea_G
Thank you very much for the reply.
The coord system part is no issue, I have a design drawing that's georeferenced in the same coord system as what I'll be working in.
I created a cylindrical mesh in C3D and brought that into Navis works then kicked out an FBX from there. When I tried exporting a STL from C3D it came out very jagged.
Thanks for the tip to subsample based on SF. I think this would still lose some of the points I wish to keep as I believe what it is doing is reducing the number of points based on location & scalar field versus picking which points to keep based of the lowest (or highest) scalar field value.
I understand it will keep more points based on the value of the scalar field but it isn't looking at the value of the scalar field and choosing a point in a set grid size based on that value (unlike the rasterize tool when selecting the point with the lowest elevation for example). Please correct me if Im wrong.
It is still handy and will help for sure. It would just be ideal to "rasterize" based on scalar field.
How would I "'use the ABS' operation of the SF arithmetic tool"?
I can absolutely run it twice, once for positive values and once for negative, but skipping a step is always nice.
Re: Determining how out of round a cloud is?
Posted: Mon Feb 20, 2023 7:06 am
by daniel
So the Subsampling tool doesn't work like the Rasterize tool at all. It makes sure that no point lie closest to a given distance from the others. And with an associated scalar field, it will make this minimum distance vary based on the scalar value associated to each point. So one way to make sure points with the highest distance value are kept, is to set a very low minimum distance... But that doesn't look ideal either (and mind that it's an absolute high value, and not a local maxima).
And to use the 'abs' function, just select the cloud then use 'Edit > Scalar fields > Arithmetic', then select the right scalar field as SF1, and 'abs' as the operation, then click on 'OK' and you'll get a new scalar field (named 'abs(old SF name)'). Where all values are made positive.