stlwrite - Write binary or ascii STL file
STLWRITE(FILE,fv) writes a stereolithography (STL) file to FILE for a triangulated
patch defined by FV (a structure with fields 'vertices' and 'faces').
STLWRITE(FILE,FACES,VERTICES) takes faces and vertices separately, rather than in an FV struct
STLWRITE(FILE,X,Y,Z) creates an STL file from surface data in X, Y, and Z. STLWRITE triangulates
this gridded data into a triangulated surface using triangulations options specified below. X, Y
and Z can be two-dimensional arrays with the same size. If X and Y are vectors with length equal
to SIZE(Z,2) and SIZE(Z,1), respectively, they are passed through MESHGRID to create gridded
data. If X or Y are scalar values, they are used to specify the X and Y spacing between grid
points.
STLWRITE(...,'PropertyName',VALUE,'PropertyName',VALUE,...) writes an STL file using the
following property values:
MODE - File is written using 'binary' (default) or 'ascii'.
TITLE - Header text (max 80 characters) written to the STL file.
TRIANGULATION - When used with gridded data, TRIANGULATION is either:
'delaunay' - (default) Delaunay triangulation of X, Y
'f' - Forward slash division of grid quadrilaterals
'b' - Back slash division of quadrilaterals
'x' - Cross division of quadrilaterals
Note that 'f', 'b', or 't' triangulations require FEX entry 28327, "mesh2tri".
FACECOLOR - [nx3]- [red_1, green_1, blue_1; red_2, green_2, blue_2; ...; red_n, green_n, blue_n]
- N is the number of faces.
- range for colors is 5 bits (0:31).
- Only works in binary files.
Example 1:
% Write binary STL from face/vertex data
tmpvol = zeros(20,20,20); % Empty voxel volume
tmpvol(8:12,8:12,5:15) = 1; % Turn some voxels on
fv = isosurface(tmpvol, 0.99); % Create the patch object
stlwrite('test.stl',fv) % Save to binary .stl
Example 2:
% Write ascii STL from gridded data
[X,Y] = deal(1:40); % Create grid reference
Z = peaks(40); % Create grid height
stlwrite('test.stl',X,Y,Z,'mode','ascii')
Original idea adapted from surf2stl by Bill McDonald. Huge speed
improvements implemented by Oliver Woodford. Non-Delaunay triangulation
of quadrilateral surface input requires mesh2tri by Kevin Moerman.
Note: This entry was originally titled "patch2stl", however has been renamed to "stlwrite" after more general input was added.
Cite As
Grant Lohsen (2024). stlwrite - Write binary or ascii STL file (https://www.mathworks.com/matlabcentral/fileexchange/36770-stlwrite-write-binary-or-ascii-stl-file), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Data Import and Analysis > Data Import and Export > Standard File Formats > STL (STereoLithography) >
- MATLAB > Graphics > 2-D and 3-D Plots > Surfaces, Volumes, and Polygons > Volume Visualization > Vector Volume Data >
Tags
Acknowledgements
Inspired by: stlwrite - write ASCII or Binary STL files
Inspired: Convert to a solid of stl file from periodic surface equations and save, Visual Hull Matlab
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 |