I need the surface area of a projected geometry. I’m trying to figure out a method where this works for any given geometry. I have tried using MeshShadow but this doesn’t work for geometries that are circular as the mesh is too inaccurate (I would have to increase the target count for the Mesh Setting to over 10Mio (>long computing time) and it still would not be accurate enough). Attached I have some example geometries (_7 is Rhino 7 Version the other is Rhino 8)and two versions of what I’ve tried so far. They work for some geometries and then again not for others. Would be super grateful for any help and tips! Thanks!
Wow, thanks so much for the detailed help. I haven’t got that much experience in python but for me the script doesn’t run as for line “crv=[x[0]]” I keep getting “‘NurbsCurve’ object is not subscriptable”. Do you know why this might be happening?
Thanks !
it means that x sould be list but was a single curve object when it came in. I thought I have set up the script correctly but if not, right click the ‘x’ input and change the access type to list.
Works really well on those geometries. I’ve just tried a few others that have a continuous hole through the geometry and it just adds up the whole surface area including the hole. Any ideas how to go around this problem? Any help much appreciated Mixed Geometries_Hole_7.3dm (1.2 MB)
Hello! If the Breps are guaranteed to be a closed solid, isn’t it simply the sum of the projected areas of all faces divided by 2? This does not work for curly surfaces though.
If by that you mean concave then you’re right. Solving this on a per-face basis is only possible for fully closed, fully convex shapes, whose individual faces have at most a single z value for any possible (x,y) pair.
Oh, I meant something else. I didn’t realize there are cases four surfaces overlay. What I meant is if the surface is a sphere, for example, it needs to be cut along the equator beforehand, which does not seem easy.