Top Documents Download Gallery Repository
Are you looking for a Software Engineer? Check Here

36model.stl Module

The model.stl module provides measures to read/write files in STL format for 3D models.

Below is an example to read a STL file and to print information of faces it contains.

solid = model.stl.solid('example.stl')
println( || solid.header)
solid.faces.each {|face|
    printf('normal:  %g, %g, %g\n', face.normal.x, face.normal.y, face.normal.z)
    printf('vertex1: %g, %g, %g\n', face.vertex1.x, face.vertex1.y, face.vertex1.z)
    printf('vertex2: %g, %g, %g\n', face.vertex2.x, face.vertex2.y, face.vertex2.z)
    printf('vertex3: %g, %g, %g\n', face.vertex3.x, face.vertex3.y, face.vertex3.z)

36.1model.stl.face Class

An instance of model.stl.face class provides properties of face that consists of one normal vector and three vertices.


Property Type R/W Explanation
normal vertex R Normal vector.
vertex1 vertex R 1st vertex.
vertex2 vertex R 2nd vertex.
vertex3 vertex R 3rd vertex.

36.2model.stl.solid Class

An instance of model.stl.solid class represents a top-level data in STL format.


Property Type R/W Explanation
header string R This is only valid for binary format and is set to `nil` for ASCII.
name string R This is only valid for ASCII format and is set to `nil` for binary.
faces iterator R An iterator that returns instances of model.stl.face.


stl.solid(stream:stream) {block?}
Parses a file in STL format from stream and creates an instance of model.stl.solid that contains an iterator of model.stl.face representing faces in the STL. It can read both binary and ASCII format of STL.

If block is specified, it would be evaluated with a block parameter |solid:model.stl.solid|, where solid is the created instance. In this case, the block's result would become the function's returned value.

Copyright (C) 2011-2017 ypsitau