( SIF_DSG major_version minor_version header_list stock refplane_list )
|
|
TYPE:
|
|
FILE
|
|
PARAMETERS:
|
|
INT major_version, minor_version
|
|
HEADER header_list
|
|
BODY stock
|
|
REFPLANE refplane_list
|
|
DESCRIPTION:
|
|
This is a SIF_DSG file of the corresponding version number. The header_list has some global, default parameter declarations, and the stock is the boundary representation of a solid which the DSG features will be cut out of. The stock is represented as a SIF_SFF body. The refplanes specify a 2D reference coordinate system which is associated with fixturing the part in a certain way. Each refplane contains 2.5D DSG features such as holes and pockets which are specified in the local coordinate system of the refplane.
|
|
( units meters_per_unit )
|
|
TYPE:
|
|
HEADER
|
|
PARAMETERS:
|
|
VALUE meters_per_unit
|
|
|
DESCRIPTION:
|
|
The units header field describes the scaling factor which takes a
unit in the file and turns it into real world meters. For example,
(units (e 1
-2)) means that a value of 1 in the file
is equal to 1cm == 0.01m.
|
|
( coord_precision error )
|
|
TYPE:
|
|
HEADER
|
|
PARAMETERS:
|
|
VALUE error
|
|
|
DESCRIPTION:
|
|
The coord_precision header field is the global error bound
for absolute error measurements throughout the file. This means that
any measurement given in the file can end up being + or - error
when it is actually manufactured. This quantity can be redefined on
more local structures like the lump and that redefinition will
shadow the global definition.
|
|
( corner_radius radius_max )
|
|
TYPE:
|
|
HEADER
|
|
PARAMETERS:
|
|
VALUE max_radius
|
|
|
DESCRIPTION:
|
|
The corner_radius header field is the global error bound
for the amount of rounding which is allowable for internal corners of
a pocket. This rounding is due to the fact manufacturers do not have
tools to make infinitely sharp corners.
|
|
( refplane transform_list feature_list )
|
|
TYPE:
|
|
REFPLANE
|
|
PARAMETERS:
|
|
TRANSFORM transform_list
|
|
FEATURE feature_list
|
|
DESCRIPTION:
|
|
A refplane sets up a 2D reference plane to define 2.5D DSG
operations on. The transform_list is a list of rigid
transforms which transform the XY-plane to an arbitrary location in
3-space outside of the stock (usually a face of the stock). Then
points used to define features can be measured from this plane's
origin. The feature_list includes holes and pockets with
islands all defined in this local coordinate system.
|
|
( translate x y z )
( tx x )
( ty y )
( tz z )
|
|
TYPE:
|
|
TRANSFORM
|
|
PARAMETERS:
|
|
VALUE x, y, z
|
|
DESCRIPTION:
|
|
A translate is a 4D homogeneous translation matrix. There
are short hand notations for translation along the principle
axes.
|
|
( rotate x y z theta )
( rx theta )
( ry theta )
( rz theta )
|
|
TYPE:
|
|
TRANSFORM
|
|
PARAMETERS:
|
|
VALUE x, y, z, theta
|
|
DESCRIPTION:
|
|
A rotate is a 4D homogeneous rotation matrix around an
arbitrary axis ( x, y, z ) by an angle
theta, which is measured in degrees. There are short hand
notations for rotations around the principle axes.
|
|
( hole depth radius vid feature_list )
|
|
TYPE:
|
|
FEATURE
|
|
PARAMETERS:
|
|
VALUE depth, radius
|
|
INT vid
|
|
FEATURE_LIST feature_list
|
|
DESCRIPTION:
|
|
A hole is a feature which can be made by a cylindrical drill. The hole has a
depth and a radius and is located with its center at the coordinates of vid
on the reference plane. The feature_list field is for nested subfeatures which
lie within the contour circle of the hole.
|
|
( pocket depth max_radius island_list loop feature_list )
|
|
TYPE:
|
|
FEATURE
|
|
PARAMETERS:
|
|
VALUE depth, max_radius
|
|
LOOP loop
|
|
ISLAND_LIST island_list
|
|
FEATURE_LIST feature_list
|
|
DESCRIPTION:
|
|
A pocket is a feature which is composed of empty space of a uniform depth
bordered on the outside by a contour loop and on inside by islands. The
max_radius field gives a bound on how much machinists can round sharp
corners. The feature_list field is for nested subfeatures which lie
within the contour loop of the pocket.
|
|
( island loop feature_list )
|
|
TYPE:
|
|
ISLAND
|
|
PARAMETERS:
|
|
INT vid0, vid1, vid2
|
|
INT_LIST vid_list
|
|
FEATURE_LIST feature_list
|
|
DESCRIPTION:
|
|
An island is a inner border of a pocket which tells machinists which portions
of material not to mill when creating a pocket feature. An island must lie
within its enclosing pocket. The feature_list field is for nested
subfeatures which lie within the contour loop of the pocket.
|
|
( loop segment_list )
|
|
TYPE:
|
|
LOOP
|
|
PARAMETERS:
|
|
SEGMENT_LIST segment_list
|
|
DESCRIPTION:
|
|
A loop is a closed, non-intersecting, planar contour which is
a composed of path segments.
|
|
... vid ...
|
|
TYPE:
|
|
SEGMENT
|
|
PARAMETERS:
|
|
INT vid
|
|
DESCRIPTION:
|
|
This is a simple edge segment.
Each vid is a vertex identifier, and there is an implicit vertex at
the end of each segment which comes from the next segment.
|
|
... vid ( arc angle ) ...
|
|
TYPE:
|
|
SEGMENT
|
|
PARAMETERS:
|
|
INT vid
|
|
VALUE angle
|
|
DESCRIPTION:
|
|
This is a circular arc segment. The arc connects the starting and ending
vertices with a circular arc of angle degrees. The angle should be
in the range <-360, 360>. A positive angle is CCW while a negative angle
is CW.
|
|
... vid ( bezier vid_list ) ...
|
|
TYPE:
|
|
SEGMENT
|
|
PARAMETERS:
|
|
INT vid
|
|
INT_LIST vid_list
|
|
DESCRIPTION:
|
|
This is a Bezier spline segment of order lengthof(vid_list) + 2.
Each vid is a vertex identifier, and there is an implicit vertex at
the end of each segment which comes from the next segment.
|
|
( v id x y z )
|
|
TYPE:
|
|
VERTEX
|
|
PARAMETERS:
|
|
INT id
|
|
VALUE x
|
|
VALUE y
|
|
VALUE z
|
|
DESCRIPTION:
|
|
This is a vertex named id and located at (x, y, z)
|
|
|
TYPE:
|
|
VALUE
|
|
DESCRIPTION:
|
|
INT 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
|
|