I am currently using Blender to determine surface area and volume of 3D whales. I originally used volume = bm.calc_volume() #volume of whale area = ((sum(f.calc_area() for f in bm.faces)))
However, the values I got were wrong by orders of magnitude. I decided to do this manually using the 3D print tools, however these measurements also appeared off. I decided to test how both the code and 3D print tools calculate surface area and volume (since I haven't been able to find exact definitions of how they calculate these metrics online) and found that when I used a cube from the create toolbar both the code and 3D print tool calculations were corrected, and matched. When I split the cube in half and applied the mirror modifier (what I use in my whale model), the code and 3D print tools calculated the same values, but surface area and volume were double what they should be. However, when I created a triangular prism using the mirror modifier (just to test another easy shape) the 3D print tools calculated the correct values and values weren't doubled as they were in the mirrored cube, and the code had the correct surface area value, but a completely random and inaccurate value for volume.
In summary, I don't understand how for one shape the values can be doubled using the mirror modifier but for another values are perfect, and how a code and tool that usually have the same input can suddenly result in different outputs.
If somebody has detailed information on how these calculations are created, or any other way to accurately account for surface area and volume using the mirror modifier for a highly irregular mesh that would be greatly appreciated.