( SIF_SFF major_version minor_version header_list solid_list )
|
|
TYPE:
|
|
FILE
|
|
PARAMETERS:
|
|
INT major_version, minor_version
|
|
HEADER header_list
|
|
SOLID solid_list
|
|
DESCRIPTION:
|
|
This is a SIF_SFF file of the corresponding version number.
The header_list has some global, default parameter
declarations, and the body is the description of the
solid(s).
|
|
( units mm | inches )
|
|
TYPE:
|
|
HEADER
|
|
PARAMETERS:
|
|
UNIT_SPECIFICATION mm | inches
|
|
DESCRIPTION:
|
|
The units header field tells what units the file is in. Currently,
the choices are millimeters or inches, because those units make the most
sense given the build volumes and accuracies of current SFF machines.
|
|
( desired_accuracy error )
|
|
TYPE:
|
|
HEADER
|
|
PARAMETERS:
|
|
VALUE error
|
|
DESCRIPTION:
|
|
The desired_accuracy header field is a global error
tolerance for manufacturing. It implies that the designer will accept
a part whose measurements end up being + or - error from the
ideal geometry described when it is actually manufactured.
|
|
( constellation solid_list )
|
|
TYPE:
|
|
SOLID
|
|
PARAMETERS:
|
|
SOLID solid_list
|
|
DESCRIPTION:
|
|
A constellation is used to group together solids whose positions relative to each other should be maintained. This might be because the designer wanted to attach together pieces made out of different materials, or because different pieces cannot be properly assembled if they are not manufactured in certain positions, or because the designer has carefully packed together several parts in a compact volume for fast simultaneous build. If no constellation is specified, then the manufacturer is free to move around different disconnected pieces described in the file.
|
|
( solid volume_property_list shell_set_list )
|
|
TYPE:
|
|
SOLID
|
|
PARAMETERS:
|
|
VOLUME_PROPERTY volume_property_list
|
|
SHELL_SET shell_set_list
|
|
DESCRIPTION:
|
|
A solid is used to assign volume properties to all 3D pieces of geometry bounded by the indicated shells or boolean combinations of shells.
|
|
( shell vertices triangles )
|
|
TYPE:
|
|
SHELL_SET
|
|
PARAMETERS:
|
|
VERTICES vertices
|
|
TRIANGLES triangles
|
|
DESCRIPTION:
|
|
A shell is a surface of finite area which divides 3D space
into exactly two volumes (a pseudo-2-manifold). This surface is made
up of geometry defined by vertices and triangles. The vertices of each triangle must be in counter-clockwise order as viewed from the exterior of the shell, and the interior must have finite volume.
|
|
( vertices number_vertices vertex_list )
|
|
TYPE:
|
|
VERTICES
|
|
PARAMETERS:
|
|
INT number_vertices
|
|
VERTEX vertex_list
|
|
DESCRIPTION:
|
|
Defines an array of vertices of size number_vertices with the vertices in the vertex_list. The implicit array indices start with 0 for the first vertex.
|
|
( v x y z w )
( v x y z )
( v x y )
|
|
TYPE:
|
|
VERTEX
|
|
PARAMETERS:
|
|
VALUE x
|
|
VALUE y
|
|
VALUE z (= 0 if omited)
|
|
VALUE w (= 1 if omited)
|
|
DESCRIPTION:
|
|
This is a vertex located at (x,
y, z) with homogeneous weight w
|
|
( triangles number_triangles triangle_list )
|
|
TYPE:
|
|
TRIANGLES
|
|
PARAMETERS:
|
|
INT number_triangles
|
|
OPEN_2D triangle_list
|
|
DESCRIPTION:
|
|
Defines an array of triangles of size number_triangles with the triangles in the triangle_list (which may be encapsulated in one or more surfaces).
|
|
( surface surface_property_list triangle_list)
|
|
TYPE:
|
|
OPEN_2D
|
|
PARAMETERS:
|
|
SURFACE_PROPERTY surface_property_list
|
|
OPEN_2D triangle_list
|
|
DESCRIPTION:
|
|
A surface is a collection of triangles with the same surface properties.
|
|
( t vid0 vid1 vid2 )
|
|
TYPE:
|
|
OPEN_2D
|
|
PARAMETERS:
|
|
INT vid0, vid1, vid2
|
|
DESCRIPTION:
|
|
This is a simple triangle which is a closed list of three edge segments. It is defined by the three vertices with the indicated array indices. The vertices should be in counter-clockwise order as viewed from the exterior of the shell containing the triangle.
|
|
( union shell_set_list )
|
|
TYPE:
|
|
SHELL_SET
|
|
PARAMETERS:
|
|
SHELL_SET shell_set_list
|
|
DESCRIPTION:
|
|
A regularized boolean union operator. The result is the closure of the interior of the union of the arguments (whether single shells or boolean trees).
|
|
( intersection shell_set_list )
|
|
TYPE:
|
|
SHELL_SET
|
|
PARAMETERS:
|
|
SHELL_SET shell_set_list
|
|
DESCRIPTION:
|
|
A regularized boolean intersection operator. All of the arguments (whether single shells or boolean trees) are intersected, and then the closure of the interior of the result is the regularized intersection.
|
|
( difference shell_set_list )
|
|
TYPE:
|
|
SHELL_SET
|
|
PARAMETERS:
|
|
SHELL_SET shell_set_list
|
|
DESCRIPTION:
|
|
A regularized boolean difference operator. The first argument (whether a single shell or a boolean tree) is the positive volume from which the geometry of subsequent arguments is subtracted. The closure of the interior of the result of the difference is the regularized difference.
|
|
( color color_setting )
|
|
TYPE:
|
|
VOLUME_PROPERTY | SURFACE_PROPERTY
|
|
PARAMETERS:
|
|
COLOR_SETTING color_setting
|
|
DESCRIPTION:
|
|
The color specification may be used either as a volume property for the whole shell or as a surface property on individual faces. A color surface property over-rides a color volume property on that surface.
|
|
( rgb r g b )
|
|
TYPE:
|
|
COLOR_SETTING
|
|
PARAMETERS:
|
|
VALUE r
|
|
VALUE g
|
|
VALUE b
|
|
DESCRIPTION:
|
|
An specification of color as an RGB coordinate triple. The arguments should all be values between 0.0 and 1.0.
|
|
|
TYPE:
|
|
VALUE
|
|
DESCRIPTION:
|
|
INT or REAL or EXP
|
|
( e value exponent )
|
|
TYPE:
|
|
EXP
|
|
PARAMETERS:
|
|
INT value
|
|
INT exponent
|
|
DESCRIPTION:
|
|
Floating point precision independent numerical format. The meaning
of which = value * (10 ^ exponent).
|
|
int
|
|
TYPE:
|
|
INT
|
|
PARAMETERS:
|
|
INT int
|
|
DESCRIPTION:
|
|
The integer value int
|
|
real
|
|
TYPE:
|
|
REAL
|
|
PARAMETERS:
|
|
REAL real
|
|
DESCRIPTION:
|
|
The real value real
|
|