From charlesreid1

Line 42: Line 42:
</pre>
</pre>


Quick example of how to use this utility:
Here is the javascript file that I used to convert this shapefile to a stl file:


<pre>
<pre>
$ cat stlify.js
var fs = require('fs');
var fs = require('fs');
var shp2stl = require('shp2stl');
var shp2stl = require('shp2stl');
var file = 'SanFranciscoPopulation.shp';
var file = 'Elev_Contour.shp';
shp2stl.shp2stl(file,  
shp2stl.shp2stl(file,
     {
     {
         width: 100, //in STL arbitrary units, but typically 3D printers use mm
         width: 100, //in STL arbitrary units, but typically 3D printers use mm
Line 61: Line 62:
     },
     },
     function(err, stl) {
     function(err, stl) {
         fs.writeFileSync('SanFranciscoPopulation.stl',  stl);
         fs.writeFileSync('SeattleContours.stl',  stl);
     }
     }
);
);
</pre>
To run this, just pass it to node:
<pre>
$ node stlify.js
bounds: Infinity Infinity -Infinity -Infinity (spherical)
pre-quantization: 111.195km (1.00°) 111.195km (1.00°)
topology: 0 arcs, 0 points
topojson done
simplification: effective minimum area 0.00
simplification: retained 0 / 0 points (NaN%)
making top planes
making side planes
making bottom planes
done making 3D planes
</pre>
</pre>



Revision as of 05:43, 13 June 2016

Viewing STL Files

ParaView

ParaView: http://www.paraview.org/download/

FreeCAD

FreeCAD binary files: https://github.com/FreeCAD/FreeCAD/releases

When you first open FreeCAD, you'll see this:

FreeCAD1.png

If you do a File > Open, you'll see lots of available file formats:

FreeCAD2.png

Shapefiles are not on the list, because shapefiles are a geographic information system (GIS) format for mapping. But with the shp2stl utility, you can turn your shapefiles into stl files and open them in FreeCAD.

Converting

Converting Shapefiles to STL Files

I downloaded contour elevation data for the Seattle area, which was contained in a zip file called Elev_322166_Seattle_E_1X1.zip.

Unzipping results in a pile of files of various formats:

NationalMapViewerFiles.png

The one I'll use there is the shapefile.

We'll use the shp2stl utility to convert the shapefile (GIS format) into an STL file (3D printing format).

Nice writeup/utility here: http://dougmccune.com/blog/2014/12/30/using-shp2stl-to-convert-maps-to-3d-models/

Download Node, and get npm. Use npm to install shp2stl utility:

$ npm update
$ npm install shp2stl

Here is the javascript file that I used to convert this shapefile to a stl file:

$ cat stlify.js
var fs = require('fs');
var shp2stl = require('shp2stl');
var file = 'Elev_Contour.shp';
shp2stl.shp2stl(file,
    {
        width: 100, //in STL arbitrary units, but typically 3D printers use mm
        height: 10,
        extraBaseHeight: 0,
        extrudeBy: "Pop_psmi",
        simplification: .8,
        binary: true,
        cutoutHoles: false,
        verbose: true,
        extrusionMode: 'straight'
    },
    function(err, stl) {
        fs.writeFileSync('SeattleContours.stl',  stl);
    }
);

To run this, just pass it to node:

$ node stlify.js
bounds: Infinity Infinity -Infinity -Infinity (spherical)
pre-quantization: 111.195km (1.00°) 111.195km (1.00°)
topology: 0 arcs, 0 points
topojson done
simplification: effective minimum area 0.00
simplification: retained 0 / 0 points (NaN%)
making top planes
making side planes
making bottom planes
done making 3D planes

Flags