File Exchange

image thumbnail

Write STL C++ Mex function

version 1.1.0.0 (30.1 KB) by Arso
c++ mex function for writing ASCII stl file from nodes and triangles list

1 Download

Updated 03 May 2013

View License

Matlab functions for writing and reading textual files are lacking in speed. Here is c++ implementation for simple writing ASCII stl files from Matlab with reasonable speed for data up to 250k nodes and triangles.

For writing 100k(17MB on HDD) it takes 2-3 seconds and for huge stl like 10 millions nodes/triangles(over 1GB stl file) it takes approximately one minute on my machine(1.5GM RAM, 1.5 GHz).

%% FORMAT
writeSTL(nodes,triangles,filename)
%INPUTS
%nodes[NumberOfNodes x 3]
%trianles[NumberOfTringles x 3]
%filename['string']

example
nodes = [1 2 3; 4 5 6; 7 8 9];
triangles = [1 2 3];
filaname = 'one triangle.stl';

Enjoy!
---------------------------------------
I have been reported that sharing mex files is not allowed. If You are not sure how to compile c++ to mex go to folder with writeSTL.cpp and just type "mex writeSTL.cpp", then call function.
---------------------------------------

Comments and Ratings (2)

Arso

Thanks to you Ben:)
I will check it(i don't promise anything), for sure it is possible.

Ben

Really fast! Thanks for sharing.

Is it possible to make a version that saves binary STL file? In that case, the file size should be significantly reduced for large mesh.

Updates

1.1.0.0

fixed title...

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags