UNPKG

stl-exporter

Version:

Convert face-vertex, or polygon meshes to ascii and binary STLs

52 lines (43 loc) 1.45 kB
// Generated by CoffeeScript 1.12.7 (function() { var bufferConverter, fs, mode, path, stlExporter, yaml; fs = require('fs'); path = require('path'); yaml = require('js-yaml'); bufferConverter = require('buffer-converter'); stlExporter = require('./index'); mode = 'toAsciiStl'; module.exports = function() { var args, filePath, flags, jsonStl, output; args = process.argv.slice(2); output = ''; flags = {}; args.forEach(function(cliArgument) { if (/^\-\-/i.test(cliArgument)) { return flags[cliArgument.slice(2)] = true; } }); if (process.stdin.isTTY) { if (!args.length) { console.log("Usage: " + (path.basename(process.argv[1])) + " [--ascii (default)| --binary] <json mesh-file>"); return process.exit(1); } filePath = args.pop(); if (!path.isAbsolute(filePath)) { filePath = path.join(process.cwd(), filePath); } jsonStl = yaml.safeLoad(fs.readFileSync(filePath)); if (flags.binary) { output = bufferConverter.toBuffer(stlExporter.toBinaryStl(jsonStl)); } else { output = stlExporter.toAsciiStl(jsonStl); } return process.stdout.write(output); } else { process.stdin.setEncoding('utf-8'); return process.stdin.pipe(stlExporter.getTransformStream({ type: flags.binary ? 'binary' : 'ascii' })).pipe(process.stdout); } }; }).call(this);