Unable to calculate volume on a closed polysurface Rhino 6 Latest Update

I get a volume calculation on other parts of this object but this doesn’t seem to want to work although it seems to be a closed polysurface. Never run into this before…
Forgive the inelegance of the construction, I’m trying to quick-fix someone else’s work. :slight_smile:

Unable to calculate volume.3dm (982.4 KB)

Hi Gary - the culprits are these:


Rhino is unable to calculate the area of these surfaces - not sure why yet, but to fix, do this:

ExtractSrf those faces and the ones immediately below.

ShrinkTrimmedSrf and then UntrimBorder the top skinny ones. That gets them pretty well set up (Area works) but the lower edges are slightly out of tolerance to the next edges (I suspect this is the problem) so:

  1. ChangeDegree in U to 1 on the upper surfaces. This will ensure that the surfaces stay ‘ruled’ when we move the edges slightly with MatchSrf next-- probably not needed at this scale but may as well.
  2. MatchSrf the bottom edges of the upper surfaces to the top edges of the lower ones for position, with ‘Preserve other end’ also set to ‘position’, and Average not checked.
  3. Join it all back up.


Hey Pascal,

What were you doing working during happy hour on a Saturday? (As I sit here on Sunday morning…working.) :slight_smile:

And sincerely, I appreciate your timely response.

I’ll run your routine, I’m just curious how you arrived (what diagnostic you used) to know these surfaces were the issue?

My Best,


Yeah - that is the problem - because I know that Volume failures are almost always attributable to Area failures on the individual faces in an object, I made a script that tests Area and selects faces for which it fails. It seems to me Volume needs to just do this as a built in tool, it’s too much to ask users to be able to figure it out… I’ll see if I can prod the right person to get that going, I think it would save some angst.




I’m remiss in not adding this reply sooner but I wanted to let you know how I solved the problem another way. Isolating those surfaces, I DupEdge all edges. Then, after joining the vertical edge curves I used EdgeSrf to recreate the surfaces using only the outermost horizontal edges. This replicated the surface structure with fewer surfaces. And when I used these new surfaces to replace the old ones, volumetric analysis worked fine once those new surfaces were joined into the bigger geometry.
Thank you Pascal!