Calculation of the surface area of a generic solid

12 views (last 30 days)
Hello, everyone,
I am having problems calculating the surface of a generic 3d solid in stl format. How can I do this? (For the volume I am using these commands:
-mesh = generateMesh(model);
-mv = volume(mesh))

Answers (1)

Matt J
Matt J on 16 Jun 2022
One way might be to read the stl file into a triangulation object using stlread. With the triangulation object, you can use freeBoundary to obtain the surface facets of the mesh. It should then be a simple matter to compute the facet areas and add them up.
  7 Comments
Matt J
Matt J on 16 Jun 2022
Edited: Matt J on 17 Jun 2022
You could probably vectorize the area calculation as well. For example, if there are N facets and you organize the triangle vertices into three 3xN arrays A,B,C the total area could be computed with,
Area=sum( vecnorm( cross(B-A,C-A) ,2,1) )/2;

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!