📄 isff.txt
字号:
Elements are stored in a surface or solid in a strict order. Boundary
elements (class=0) appear first after the surface/solid header. The second
boundary element immediately follows the first boundary and is followed by
any rule lines connecting the first and second boundary. If additional
boundary elements are included they should follow this same pattern with
the boundary elements preceding the rule lines that connect it to the
previous boundary.
Point String Elements (Type 22)
-------------------------------
A point string element consists of a number of vertices with orientations
defined at each vertex. They are useful in specialized applications that
need to specify orientations as well as point locations, such as a "walk
through."
Point strings can be defined as either contiguous or disjoint. Contiguous
point strings are displayed with lines connecting the vertices. Disjoint
point strings are displayed as a set of discrete points. Both types are
placed and manipulated in the same way, but exhibit slightly different
characteristics when snapping or locating.
It is impossible to define a point string structure in C because all point
locations are stored before any of the orientations.
Description
Range The range of the point string element is the range of the points.
Properties The H-bit (bit 15) of the properties word indicates the type of point string
(0 = continuous, 1 = disjoint) for display purposes. The setting of the
planar bit indicates whether the points are coplanar.
Number of points The maximum number of vertices allowed in a single point string is 48. A
longer series of points is formed by combining multiple elements in a complex
chain.
Point coordinates An array contains the X and Y coordinates for 2D points or the X, Y, and Z
coordinates for 3D points as integer values.
Point orientations An array contains the rotation matrices (2D) or quaternions (3D) describing
the points' orientations with respect to the drawing axes. The coefficients
of the matrices, as well as the quaternions, lie within the range of -1 to 1.
These values are stored as signed double-precision integers with the
low-order bit equal to 1/(231-1). Therefore, to convert these coefficients to
floating point, the integers must be divided by 231-1.
Offset Offset
(1)
Linkage
Linkage
Cone Elements (Type 23)
-----------------------
A circular truncated cone is described by two circles lying in parallel
planes in a 3D design file. If the radius of both circles is identical,
the cone represents a cylinder. The cone can be skewed by adjusting the
positions of the circles. The C structure is
typedef struct
{
Elm_hdr ehdr ; /* element header */
Disp_hdr dhdr ; /* display header */
short unknown ; /* unknown data */
long quat[4] ; /* orientation quaternion */
Dpoint3d center_1 ; /* center of first circle */
double radius_1 ; /* radius of first circle */
Dpoint3d center_2 ; /* center of second circle */
double radius_2 ; /* radius of second circle */
} Cone_3d ;
Cone type
Parameters
Cone type
---------
The cone type word describes characteristics of the cone. Valid cone types
include
* 0 = general (nonspecific) cone
* 1 = right cylinder
* 2 = cylinder
* 3 = right cone
* 4 = cone
* 5 = right truncated cone
* 6 = truncated cone
Bits 3-14 of the cone type word are reserved and should be set to zero.
Bit 15 indicates whether the cone is a surface or a solid (0=solid,
1=surface).
Parameters
----------
Description
Orientation The orientation for both circles is defined by a single set of quaternions.
Radii The radii for the circles are stored as double-precision floating point
values. Either of these values may be zero to cause a pointed cone.
Word
Offset
0-17 Header
18 cone.rsrv
19 Quaternion cone.quat
20
21 Q1
22
23 Q2
24
25 Q3
26
27 X1 cone.center 1
28
29
30
31 Y1
32
33
34
35 Z1
36
37
38
39 R1 cone.radius 1
40
41
42
43 X2 cone.center 2
44
45
46
47 Y2
48
49
50
51 Z2
52
53
54
55 R2 cone.radius 2
56
57
58
59 A
Linkage
B-spline Elements (Type 21, 24, 25, 26, 27, 28)
-----------------------------------------------
Rational, non-rational, uniform, and non-uniform B-spline curves and
surfaces are represented in the design file by several different element
types.
B-spline curves
B-spline Surfaces
B-spline curve header (type 27)
B-spline surface header (type 24)
B-spline pole element (type 21)
B-spline surface boundary element (type 25)
B-spline Knot element (type 26)
B-spline Weight Factor element (type 28)
B-spline curves
---------------
Four element types are used to represent B-spline curves. A B-spline Curve
Header Element (type 27) stores curve parameters. A B-spline Pole Element
(type 21) stores poles. If the B-spline curve is rational, the pole
element is immediately followed by a Bspline Weight Factor Element (type
28) that stores the weights of the poles. If the B-spline curve is
non-uniform, the knots are stored in a B-spline Knot Element (type 26)
immediately following the header. The order of these elements is fixed
and is
1. B-spline Curve Header Element (type 27)
2. Optional: B-spline Knot Element (type 26) if the curve is non-uniform
3. B-spline Pole Element (type 21)
4. Optional: B-spline Weight Factor Element (type 28) if the curve is
rational
B-spline Surfaces
-----------------
Five element types are used to represent B-spline surfaces. A B-spline
Surface Header Element (type 24) stores surface parameters. Subsequent
B-spline Pole Elements (type 21) store separate rows of poles. If the
surface is rational, each pole element is immediately followed by a
B-spline Weight Factor Element (type 28). If the surface is non-uniform, a
B-spline Knot Element (type 26) immediately follows the header. Finally,
if the surface is trimmed, one or more B-spline Surface Boundary Elements
(type 25) precede the first pole element. The order of these elements is
fixed and must follow the order specified below
1. Uniform, non-rational surfaces (type 24, 21, 21, 21...)
2. Uniform, rational surfaces (type 24, 21, 28, 21, 28, 21, 28...)
3. Non-uniform, non-rational (type 24, 26, 21, 21, 21...)
4. Non-uniform, rational (type 24, 26, 21, 28, 21, 28, 21, 28...)
5. Boundary immediately precedes poles (all type 25s must precede type 21,
but follow type 26, if present. The order of the elements is fixed and
can be either:
type 24, 25, 25, 25, ... , 21, 21, 21... or
type 24, 25, 25, 25, ... , 21, 28, 21, 28... or
type 24, 26, 25, 25, 25, ... , 21, 21, 21... or
type 24, 26, 25, 25, 25, ... , 21, 28, 21, 28...
B-spline curve header (type 27)
-------------------------------
A B-spline curve header begins the definition of a B-spline curve and
defines parameters describing the curve.
typedef struct
{
Elm_hdr ehdr ; /* element header */
Disp_hdr dhdr ; /* display header */
long desc_words ; /* # of words in descr. */
struct
{
unsigned order:4 ; /* B-spline order - 2 */
unsigned curve_display:1 ; /* curve display flag */
unsigned poly_display:1 ; /* polygon display flag */
unsigned rational:1 ; /* rationalization flag */
unsigned closed:1 ; /* closed curve flag */
unsigned curve_type:8 ; /* curve type */
} flags ;
short num_poles ; /* number of poles */
short num_knots ; /* number of knots */
} Bspline_curve ;
Range
Curve parameters
Number of poles
Number of knots
Range
-----
The range of a B-spline curve is the range of the control polygon. All
points on the stroked curve lie within this range.
Curve parameters
----------------
A word of data is included that contains various parameters. A number two
less than the B-spline order is stored in bits 0-3. Bit 7 is set for
closed curves and cleared for open curves. Bit 6 is set for rational
B-splines and cleared for non-rational splines. If bit 6 is set, a weight
factor element must be included. Bit 5 is set to indicate if display of
the polygon is enabled; bit 4 is set if curve display is enabled.
Number of poles
---------------
The maximum number of poles is 101.
Number of knots
---------------
For uniform B-spline curves, the number of knots is 0. The number of knots
stored in the type 26 element for non-uniform B-spline curves is
calculated as follows
#KNOTS = #POLES - ORDER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -