Extract information from .stl file

21 visualizaciones (últimos 30 días)
Antonio Caforio
Antonio Caforio el 25 de Ag. de 2022
Respondida: DGM el 5 de Abr. de 2025
Hello everyone.
I'm trying to extract some information from a generic .stl file, what I'm trying to obtain is the volume of the "outbox" of the part (the volume of the box that contains the part). I'm having a bit of problem with finding these information with some matlab plugins.
Thank you in advance.

Respuestas (2)

Vidip Jain
Vidip Jain el 31 de Ag. de 2023
I understand you want to extract information from a generic STL (Stereolithography) file and calculate the volume of the "outbox" of a part (bounding box)
You can follow these general steps using MATLAB:
  • Load the STL File: Use a suitable STL file reading function in MATLAB to import the geometry. MATLAB's “stlread” function is commonly used for this purpose.
  • Compute Bounding Box: Calculate the minimum and maximum values along each dimension (x, y, z) of the vertices. These values define the bounding box that contains the part.
  • Calculate Volume: With the dimensions of the bounding box, you can calculate its volume using the formula for a rectangular box.
Refer to this documentation for more information: https://www.mathworks.com/help/matlab/ref/stlread.html

DGM
DGM el 5 de Abr. de 2025
For example:
unzip sphere_20.stl.zip
% a sphere with a radius of 15
T = stlread('sphere_20.stl');
% get the bounding box and volume
extents = [min(T.Points,[],1); max(T.Points,[],1)]
extents = 2×3
-14.8153 -14.8153 -14.8153 14.8153 14.8153 14.8153
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
bbvolume = prod(diff(extents,1,1))
bbvolume = 2.6015e+04
% display it using patch()
patch('faces',T.ConnectivityList,'vertices',T.Points, ...
'facecolor','w','edgecolor','k');
view(3); camlight; view(10,33)
axis equal; grid on
xlabel('X'); ylabel('Y'); zlabel('Z')
Obviously, the volume of the box depends on the orientation of the object (and its vertices) with respect to the coordinate axes. Consequently, despite the radii of the vertices being 15, the apparent diameter of the sphere is <30.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by