stl

STL to Array of verts and vice versa

STL

Stereo Lithography file format parser

npm install stl

Convert binary stl to ascii stl

 
var stl = require('stl')
var fs = require('fs');
 
var facets = stl.toObject(fs.readFileSync('/path/to/binary.stl'));
fs.writeFileSync('/path/to/ascii.stl', stl.fromObject(facets));
 

Convert ascii stl to binary stl

 
var stl = require('stl')
var fs = require('fs');
 
var facets = stl.toObject(fs.readFileSync('/path/to/ascii.stl').toString());
fs.writeFileSync('/path/to/binary.stl', stl.fromObject(facets, true));
 

toObject and fromObject use the following array structure

{
  description: "abc 123", // (optional) 
  facets: [
    {
      normal: [x, y, z],
      verts: [
        [x, y, z],
        [x, y, z],
        [x, y, z]
      ]
      // attributeByteCount (optional uint16) 
    }
    // repeats ... 
  ]
}
fs.createReadStream('./test/ascii/tri.stl')
  .pipe(stl.createParseStream())
  .on('data', function(object) {
    /* first object will be:
 
      { description: "BOLLEN"}
    */
 
    /*
       second object is a facet which looks like:
 
       {
        normal: [ 1, 0.5, 0.25 ],
        verts: [ [ 10, 10, 10 ], [ 4, 4, 4 ], [ 5, 5, 5 ] ]
       }
    */
  })
 

License

MIT