40model.stl Module
40.1Overview
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.name || 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)
}
40.2model.stl.face Class
An instance of model.stl.face class provides properties of face that consists of one normal vector and three vertices.
40.2.1Property
| 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. |
40.3model.stl.solid Class
An instance of model.stl.solid class represents a top-level data in STL format.
40.3.1Property
| 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. |
40.3.2Constructor
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.