stlwrite - write ASCII or Binary STL files

versión (10.6 KB) por Sven
Export a variety of inputs (patch, surface) to an STL triangular mesh

25,6K descargas

Actualizada 4 May 2018

Ver licencia

** Big speed boost courtesy of Oliver Woodford. Recommended to update to latest version **
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 triangulation 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 chars) 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 quads
'b' - Back slash division of quadrilaterals
'x' - Cross division of quadrilaterals
Note that 'f', 'b', or 't' triangulations now use an
inbuilt version of FEX entry 28327, "mesh2tri".

FACECOLOR - Single colour (1-by-3) or one-colour-per-face (N-by-3)
vector of RGB colours, for face/vertex input. RGB range
is 5 bits (0:31), stored in VisCAM/SolidView format

Example 1:
% Write binary STL from face/vertex data
tmpvol = false(20,20,20); % Empty voxel volume
tmpvol(8:12,8:12,5:15) = 1; % Turn some voxels on
fv = isosurface(~tmpvol, 0.5); % Make patch w. faces "out"
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

Example 3:
% Write binary STL with coloured faces
cVals = fv.vertices(fv.faces(:,1),3); % Colour by Z height.
cLims = [min(cVals) max(cVals)]; % Transform height values
nCols = 255; cMap = jet(nCols); % onto an 8-bit colour map
fColsDbl = interp1(linspace(cLims(1),cLims(2),nCols),cMap,cVals);
fCols8bit = fColsDbl*255; % Pass cols in 8bit (0-255) RGB triplets

Citar como

Sven (2022). stlwrite - write ASCII or Binary STL files (, MATLAB Central File Exchange. Recuperado .

Compatibilidad con la versión de MATLAB
Se creó con R2011b
Compatible con cualquier versión
Compatibilidad con las plataformas
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!