readSTL: Read and write STL (stereolithography) format files

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/stl.R

Description

These functions read and write STL files. This is a simple file format that is commonly used in 3D printing. It does not represent text, only triangles. The writeSTL function converts some RGL object types to triangles.

Usage

1
2
3
4
5
6
7
readSTL(con, ascii = FALSE, plot = TRUE, ...)
writeSTL(con, ascii = FALSE, 
         pointRadius = 0.005, 
         pointShape = icosahedron3d(),
         lineRadius = pointRadius,
         lineSides = 20,
         ids = NULL)

Arguments

con

A connection or filename.

ascii

Whether to use the ASCII format or the binary format.

plot

On reading, should the object be plotted?

...

If plotting, other parameters to pass to triangles3d

pointRadius, lineRadius

The radius of points and lines relative to the overall scale of the figure.

pointShape

A mesh shape to use for points. It is scaled by the pointRadius.

lineSides

Lines are rendered as cylinders with this many sides.

ids

The identifiers (from ids3d) of the objects to write. If NULL, try to write everything.

Details

The current implementation is limited. For reading, it ignores normals and color information. For writing, it only outputs triangles, quads, planes, spheres, points, line segments, line strips and surfaces, and does not write color information. Lines and points are rendered in an isometric scale: if your data scales vary, they will look strange.

Since the STL format only allows one object per file, all RGL objects are combined into a single object when output.

The output file is readable by Blender and Meshlab; the latter can write in a number of other formats, including U3D, suitable for import into a PDF document.

Value

readSTL invisibly returns the object id if plot = TRUE, or (visibly) a matrix of vertices of the triangles if not.

writeSTL invisibly returns the name of the connection to which the data was written.

Author(s)

Duncan Murdoch

References

The file format was found on Wikipedia on October 25, 2012. I learned about the STL file format from David Smith's blog reporting on Ian Walker's r2stl function.

See Also

scene3d saves a copy of a scene to an R variable; rglwidget, writeASY, writePLY, writeOBJ and writeSTL write the scene to a file in various other formats.

Examples

1
2
3
4
5
6
filename <- tempfile(fileext = ".stl")
open3d()
shade3d( icosahedron3d(col = "magenta") )
writeSTL(filename)
open3d()
readSTL(filename, col = "red")

Example output

Warning messages:
1: In rgl.init(initValue, onlyNULL) : RGL: unable to open X11 display
2: 'rgl.init' failed, running with 'rgl.useNULL = TRUE'. 
null 
   1 
null 
   2 

rgl documentation built on Feb. 1, 2021, 3:01 a.m.