HI! COPY

NOT REMOVE

2 1 1981 : Initial Graphics Exchange

Specification IGES Version 1.0

Roger N. Nagel, Ph.D., Project Manager

Walt W. Braithwaite, M.S., Boeing

Philip R Kennicott, Ph.D., General Electric

Programmable Automation Group

Mechanical Processes Division

Center for Mechanical Engineering and Process Technology

National Engineering Laboratory

National Bureau of Standards

March 1980

. DEPARTMENT OF COMMERCE

1 00 ONAL BUREAU OF STANDARDS

.U56

hO. 80-1978

(R)

1980
ACKNOWLEDGEMENT

This report contains an Initial Graphics Exchange Specification (IGES). The National

Bureau of Standards under contract to the Air Force, Army, Navy, and NASA is coordinating and directing the effort on IGES. Walt W. Braithwaite of Boeing, Philip R.

Kennicott of General Electric and Roger N. Nagel of the National Bureau of Standards

(NBS) served as the technical committee in formulating IGES. Both The Boeing Company

and The General Electric Company have contributed heavily to the IGES effort and have

not received compensation from the NBS or its funding agencies. The contributions from

Boeing and General Electric have been in the form of ideas, documents and travel, as well

as extensive time spent on IGES by Walt Braithwaite, Philip Kennicott and their

respective staffs. Without this essential support this IGES report would not have been

possible.

The technical committee wishes to acknowledge and thank Marty Auman (NBS), John

Lewis (GE), and David Moore (Boeing) for their valuable contributions to the IGES effort.
NBSIR 80-1978 (R)

INITIAL GRAPHICS EXCHANGE

SPECIFICATION IGES VERSION 1.0

Roger N. Nagel, Ph.D., Project Manager

Walt W. Braithwaite, M.S., Boeing

Philip R. Kennicott, Ph.D., General Electric

Programmable Automation Group

Mechanical Processes Division

Center for Mechanical Engineering and Process Technology

National Engineering Laboratory

National Bureau of Standards

March 1980

U.S. DEPARTMENT OF COMMERCE. Philip M. Klutznick, Secretary

Luther H. Hodges, Jr., Deputy Secretary

Jordan J. Baruch, Assistant Secretary for Productivity. Technology, and Innovation

NATIONAL BUREAU OF STANDARDS, Ernest Ambler, Director

INTRODUCTION

This Initial Graphics Exchange Specification (IGES) report is the result of a three month intensive effort by the technical committee and many others

who have worked with the committee and provided input and feedback. The

IGES by design is an initial attempt at providing a specification for the

exchange of data between Computer Aided Design/Computer Aided Manufacturing (CAD/CAM) systems. Figure 1 shows a functional description of

the IGES concept.

The idea to create an IGES as an immediate step in the solution of the

CAD/CAM data exchange problem was developed at the DOD MTAG meeting

in Detroit on September 12-14, 1979. The CAD/CAM workshop at that

meeting recommended that a meeting be held within thirty days to formulate

an IGES early in 1980. As a result of that recommendation, a meeting was

convened by the Air Force, Army, Navy, NASA and NBS at the National

Academy of Sciences on October 11, 1979.

The October 1 1 meeting was used as a forum for the discussion of the IGES

concept. Presentations were made by vendors, corporate systems designers,

and standards groups on their respective efforts to solve the data exchange

problem between CAD/CAM systems. At the conclusion of the one day

meeting, it was generally agreed that an initial graphics exchange specification was needed immediately.

Roger Nagel of the NBS was asked to chair an effort to produce an IGES

early in 1980. Walt Braithwaite of Boeing and Philip Kennicott of General

Electric were asked to serve as members of a technical committee, and the

Boeing and GE corporate CAD/CAM exchange systems were selected as

initial systems on which to build IGES. The Air Force, Army, Navy, and

NASA have funded the NBS to direct and coordinate the IGES effort. GE and

Boeing volunteered to pay their own individual expenses in the formulation of

IGES.

1.1
DATA

BASE

m
Subsequent to the October 11th meeting the technical committee conducted

an intensive effort to refine the initial document into an acceptable IGES.

Two public forums were held to gather comment and additional input. The

first meeting on November 20 was held at GE for companies who would

eventually write IGES translators, and the second meeting was held on December 14 at NBS for anyone interested in the IGES concept.

As a result of these meetings, the comments generated, and the work of the

technical committee, IGES was formulated. It is important to note that IGES

was created to meet an immediate need. IGES is a specification and not a

standard. Efforts are underway to coordinate the IGES with standards

making bodies. In particular an IGES working group is being organized to

(among other tasks) coordinate with the various American National Standards

Institute (ANSI) committees and other standards efforts. It is expected that

the IGES will be one of the many important steps in the complex procedure

required to produce a national standard.

In the short time span from the start of the IGES effort, several misconceptions about IGES have developed. In order to clarify them, the following lists

of what the IGES is and is not are presented.

IGES is a specification for the exchange of data between CAD/CAM

systems.

IGES is a vehicle for archiving data from a CAD/CAM system.

IGES is designed with the technical aspects of several current

CAD/CAM systems in mind. Thus the translation from vendor systems

to IGES and vice versa will not be one for one, but should be feasible.

IGES is based on the Boeing CAD/CAM Integrated Information Network, the General Electric Neutral Data Base, and a variety of other

data exchange formats which were given to the committee.

1.3
IGES is the best specification that could be produced in the time frame

permitted. While it is not a copy of any of the exchange formats

presented to the committee, it has the advantage of the experience and

knowiedge gained in their production and use.

IGES is a set of geometrical, drafting, structural and other entities.

Thus it has the capability to represent a majority of the information in

CAD/CAM systems.

IGES is extensible. Several definition mechanisms have been provided

to permit IGES to be expandable. A working committee has been set up

to coordinate expansions and to correct errors.

IGES is not a national standard.

IGES is not a data base structure.

IGES is not designed for the technical aspects of any one . of the

currently available CAD/CAM systems.

IGES is not perfect, or the solution to all data exchange problems

between CAD/CAM systems.

IGES is not a carbon copy of any of the exchange formats given to the

technical committee.

IGES is not a stand alone contractual specification for a deliverable

product.

IGES is not a complete specification of all the data in all CAD/CAM

systems. Thus there may be a loss of data or structural information in

the translation to and from IGES.

In summary, IGES is not perfect, it will not solve all the information

exchange needs of CAD/CAM systems, and it will need future extension

1.4
beyond its current definition. However IGES goes a long way toward

alleviating the current data exchange problem, and is a significant response

to today's needs.

IGES Overview

This report is a reference manual for IGES. In the remainder of this chapter,

the goals used in the definition of IGES are described, the information

content of IGES is descussed, and the advanced features defined for IGES are

presented.

Chapter two contains a description of the physical structure of an IGES file.

It describes the rules for each of the sections in IGES, and the use of

constants, strings, and free format.

Chapter three has five sections each of which presents a description of the

data for a class of IGES entities. Included in chapter three are graphic

examples selected to illustrate the entities being defined.

There are four appendices included in this reference manual. Appendix A

describes the macro capability and was written by Neil Webber of NBS. Neil

has also produced an interpreter written in FORTRAN which expands IGES

macros into IGES entities. The interpreter will be published shortly as a separate report.

Appendix B contains a discussion of the mathematics used in the IGES spline

entities, with several references to the underlying literature. This appendix

was written by John Lewis of General Electric. John Lewis and David Moore

(of Boeing) were activeiy involved in the selection of the spline entities to be

included in IGES.

Appendicies C and D show examples using IGES and were prepared by Philip

Kennicott, and Wait Braithwaite.

1.5
1.2 IGES Goals

In formulating the IGES presented in this report, the technical committee

tried to achieve several goals. The overriding goal was to produce an initial

specification early in 1980 to meet the deadline. It was felt that the time

constraint was not a limiting factor in producing an acceptable specification,

and a set of additional goals was formulated as follows:

1. To produce a format that would permit the communication of basic

Geometry, Drafting, and structural entities.

2. To produce an open end format, to facilitate the communication of new

material defined after the IGES was published.

3. To minimize, where possible, the burdens imposed on pre- and postprocessors by the IGES.

4. To gather as much input from the interested community as possible.

The document contained in this report is the result of the technical

committee's work over the past three months. In order to achieve these

goals, extensive reviews of CAD/CAM systems were conducted. Several

vendors and corporate system users were visited, and two public meetings

were conducted.

An early decision was made to use the Boeing CAD/CAM Integrated

Information Network (CIIN) standard format as the basis on which to define

IGES. This was done because that system had been in use for a similar

purpose for several years and was known to work. As a result the IGES

structure is similar to that of CIIN. However, IGES is not purely a CIIN

derivative. Many of the features included in IGES were found to be lacking in

CIIN. The General Electric Neutral Data Base was used as a source of

advanced concepts, as were numerous other formats provided to the technical

committee.

The list of entities in IGES is divided into four categories. The entities in the

categories of Geometry, Drafting, and Other were included to meet goal

1.6
number one. The Definition entities were included to meet goal number two.

The defining of each of the entities in this document' has undergone several

iterations before the selection of the final definitions presented here. The

revisions were the result of various forms of interaction both within the

committee and with the interested public.

Goal number two was responsible for more than just the Definition entities

mentioned above. The concept of extensibility was considered to be very

important, and resulted in a number of features for future use. For example

almost all entities in IGES can have pointers to properties and associativity

entities. This was done because it is clear that this capability will be needed

in the near future. It is recognized that in the absence of IGES defined

properties and associativities, the current specification provides for their

communication, but not their meaning. Thus IGES has provided the alphabet,

but not the dictionary. Nevertheless, given that the alphabet exists, it is now

possible for an IGES working committee, or some other group to write the

dictionary. Similar arguments with respect to an alphabet in the absence of a

dictionary can be made with respect to the macro definition entity. However, in the case of a macro, IGES does provide a default meaning by the

expansion of the macro definition. It is worth noting that a macro expansion

program for IGES macros has been written in FORTRAN, and will be

distributed shortly.

Goal number three was a constant cause of discussion in IGES meetings.

Often a feature was adopted or discarded on the basis of the thought

experiment of mentally constructing an algorithm which could efficiently

process the feature. The structure of the IGES file is an example.

IGES entities were divided into two sections. The first section, called a

directory entry section, consists of fixed-field records, while the second

section, called the parameter section, has variable length records and uses a

free format. These decisions were made for simplification of the pre- and

post-processors. Furthermore, as a general rule, the information that applies

to all entities is placed in the directory entry section, while entity-specific

information is in the parameter section. In addition, several fields of

1.7
information in the directory entry section were designed to simplify pre- or post-processing. Examples are the count of the number of parameter cards,

the sub-entity flag, and the version number field. The form number field was

created to allow several entities to share the same parameter field with a

slight change in interpretation. These and many other features of IGES were

dictated by goal number three.

The fourth goal was to gather input from sources outside the committee.

This was done formally at two meetings, and informally in visits, phone calls,

and letters. Although the specifics of this influence are not pointed out here,

this process had a profound effect on the IGES as it appears here.

1.3 Information in IGES

The information in an IGES file is contained in the entities. An entity is a

basic unit of information, and IGES has defined four broad categories of

entities as follows:

1. Geometry

2. Drafting

3. Definition

4. Other

The list of entities in each category, and the specific data associated with

each entity are found in Section 3. In this section, the overall structure of

the entities and their interrelationships are described.

1.3.1 Entity Structure

Each entity in IGES has two parts. The first part consists of a directory

entry, and the second contains parameter data. The directory entry section

is fixed in length, while the parameter entry section ha$ a variable length.

This permits a uniform structure within the IGES file with a minimum of

wasted space. The specific information in the directory section for an entity

is the same for all entities and is described in section 2.3. The parameter

section data is different for each entity and is described in Section 3.

1.8
ATTRIBUTES

i

PARAMETERS

CM

CCo

1.9
1.3.2 Pointers

IGES entities frequently refer to other entities in their definition. This is accomplished by the use of pointers to the Directory Entry (DE) of the

referenced entity. See for example the definition of a linear dimension.

There are several categories of pointers used in the IGES file. All of the

pointers are treated in the same way (i.e., point to the DE of the referenced

entity), with the exception of the pointer in a DE to the parameter data. The

pointer to parameter data is found in field two of the directory entry and

refers to the parameter section of the file. The use of pointers in an entity

DE is illustrated in Figure 2.

SUBORDINATE ENTITIES

An IGES entity can be considered a subordinate entity, if it was created to be

a subpart of some other entity. A witness line pointed to by a linear

dimension is an example of a subordinate entity. The concept which operates

is as follows: if the entity was created purely as a subpart of another entity

it is a subordinate entity and does not exist independently. Thus for example

the members of a group pointed to by an associated entity are not

subordinate entities. There is a fiag in the DE block of each entity which

indicates whether or not it is a subordinate entity.

ASSOCIATED ENTITIES

Most of the entities in IGES have a location in the parameter section which

points to associated entities. These pointers can point to either an

associativity entity of which the pointing entity is a member (i.e., it is a back

pointer to an associativity), or to a general note entity. If the pointer is to a general note, then an associated text relationship is indicated. Future

releases of IGES may expand this ability to include other implicit associations.

ASSOCIATED PROPERTIES

1.10
Most of the IGES entities can point to an arbitrary number of property

entities from within their parameter sections. Each property entity has a form number to indicate its meaning. When an entity points to a property, it

indicates that the information in the property is related to the entity.

ATTRIBUTE POINTERS

Within the DE block of each entity there are several fields that may be

pointers. Each of these fields points to a specific type of attribute entity.

The details of these references are presented in the description of the DE

block in Section 2.3.

Advanced Features of IGES

In order that IGES may continue to develop in an orderly fashion several

advanced features have been included within the specification. These are

features whose support is only in a rudimentary form in existing commercially available interactive graphics sytems, but which, based on the philosophy of IGES, appear necessary to provide an orderly path for advancement of

future IGES releases. The advanced features include two types of non- geometric data entities, the view entity, and the drawing entity.

Non-Geometric Data

There are two types of non-geometric data accommodated by IGES: that

accommodated by the property entity and that accommodated by the

associativity entity. The property entity is meant to collect non-geometric

data of a general type which must be related to a specific entity. Any entity

in IGES may point to one or more property entities which contain auxiliary

information as necessary to adequately describe the entity.

Up to 9999 property types (form numbers) may be included in an IGES file.

The lower half of these property numbers are reserved to the IGES specification and would be used for such purposes as, for example, specifying the

width of a composite curve when it is to represent a wire run of a fixed width

1.11
on a printed wiring board. The remaining property form numbers are reserved for the user. The IGES specification cannot detail how a user's

specification is to be handled on an arbitrary interactive graphics system

beyond communicating the specified relationships between properties and

entities.

An examination of the property entity will indicate that the property entity

itself may point to other property entities, thus facilitating the construction

of a non-geometric data network. Networks are useful for maintaining

information such as signal strings, dimension dependencies, etc.

The concept of a network can be enhanced by the use of the associated entity

pointers in the property entity. Using these pointers, properties (and their

networks) can become members of associativities.

While the property entity is designed to accommodate non-geometric data

associated with a specific geometric entity, the associativity entity is designed for use when several geometric entities must be logically related to

each other. An example of such a relationship might be the association of

four iines to indicate a rectangle. The implication is that the four lines are

to be regarded as a single construct by the design system.

The reader will note that several of the functional capabilities of IGES have

been implemented as associativities. For example, the group function is an

associativity. This associativity asserts that the member entities are related

to each other in some manner which need not be made clear by the system.

The views visible associativity entity allows specification of display properties for a specific entity in a specific view. It is the fact that this

information is both view-specific and entity-specific that makes the use of

the associativity attractive.

As with properties, associativities can point to other associativities or to

properties. If it is important that back pointers exist from an associativity to

member entities, it is possible to indicate this requirement. The associativity

entity may contain additional non-geometric information aside from the

1.12
pointers to member entities. This is useful when non-geometric information

is more appropriately included in the associativity than in any member entity

and when the amount of such information is small enough not to warrant the

use of a property entity.

As with the property entity, the associativity entity has 9999 form numbers

available. The lower half of these numbers are reserved to the IGES

specification, while the upper half may be used as required by the user. In order to adequately indicate the desired handling of unknown (user-specified)

associativities by a post-processor, the associativity definition is included.

Support by a post-processor of the associativity definition implies that links

will be maintained in the target system database as specified in the

definition.

The associativity definition allows the user to specify multiple classes within an associativity. This is useful, for example, when there are several types of

relationships to be maintained which are logically related to each other. It avoids the use of multiple entities. An example is a signal string in an

electrical design. Here, one class of associated entity represents the logical

signal string with its contact nodes, a second class represents the physical

layout of the string on a schematic logic diagram, and a third class represents

actual wiring runs on a printed circuit wiring board.

Each class is defined independently. The user is allowed to specify whether

or not back pointers are required. If back pointers are required, all entities

that are members of the associativity must have pointers to the associativity

in their parameter sections. This facilitates the transmission of the correct

data structure to a post-processing system. The list of entities in a class may

be specified as either ordered or uncrdered. In some cases (e.g., the group)

the order in which member entities appear in a list is irrelevant, while in

other cases (e.g., the four lines representing a box) the order is important and

must be maintained by a supporting system. Within each class the number

and type (i.e., integer, character string, or pointer) of each item in each

entry may be specified. The integer and character string allow inclusion of a

limited amount of non-geometric information in the entry.

1.13
1.4.2 Views

There are two often confused, and sometimes conflicting, goals of interactive

graphics systems: to represent the geometry of an object or model, and to

present this geometry to a human in an understandable and recognizable

form. The same conflict exists in a communication medium designed to

transfer information between systems. The view entity allows the separation

of these two functions. On an interactive graphic system it permits the

designer to create the geometry independently of any concern as to how it should best be presented to other humans. As he creates the geometry, the

designer makes full use of the viewing capabilities available on his system.

After creation of the geometry, the view entity provides the user with a method for collecting together the necessary information to present one

"picture" of the object. Incorporation of the view entity in IGES provides the

means for communicating this collection structure to another graphics

system.

The view specifies the view point (i.e., the position of an imaginary eye).

This is sometimes confused with a rotation of the object, but it should be

kept in mind that the object is maintained stationary in model space, while

the eye position is being moved.

Often ix is desirable to present only a portion of an object as, for example, in a detail on a mechanical drawing. Such a capability requires the addition of a

clipping box and a scale factor. This allows extraction of a portion of the

model geometry with ends of lines being clipped in a satisfactory manner.

After extraction of the desired portion of the model, the scale factor allows

the display of the portion of the geometry at any desired magnification for

better understanding of detail. This order of application of clipping and

scaling is taken so as to allow the use of features in the model to define the

clipping box. The alternative of scaling first and then clipping, as is more

common in other computer graphics applications, was discarded.

Often a set of entities must be displayed in a given view with particular

display characteristics. An example is the treatment of lines which should be

1.14
hidden in a particular view. Should they be shown as is, blanked out, or dashed? The views visible associativity, together with the view entity, allows

such a specification to be made and communicated to a new host system.

Drawing

The drawing entity has been defined in order to provide a two dimensional

surface on which a set of views can be projected and arranged in a manner

which is meaningful and informative. Several views may be placed on a drawing in any arrangement the user desires. In addition, drafting entities

may be added to provide additional information such as dimensions, notes,

etc., in a manner similar to the use of such information in a conventional

mechanical drawing.

The philosophy behind the incorporation of the view and drawing entities in

IGES is the principle that a specific piece of information should be held in a

single place in a design data base and that, if it is changed, the effect of this

change should become immediately apparent whenever the information is used. While this is a design data base principle, it is equally important in a transmission format for communicating the information in the data base.

The introduction of the view and drawing entities allows changes made in the

geometry of a part to be reflected in each view of the part, thus minimizing

the danger that differing versions of a part will coexist.

It would also be desirable for the drafting entities to be automatically

updated when changes are made in the model. Such a capability would result,

for example, in dimension values changing to reflect changes in the physical

shape of the model. Unfortunately, this is only possible in special circumstances; more research is required to make it happen in the general case. When this research is done, the result will be a set of associativities relating

drafting and geometrical entities so as to reflect the desired changes in the

drafting entities in relation to changes in the geometrical entities. The

capability exists in the IGES specification to communicate these associativities when they have been defined.

1.15
1.4.4 Summary

Several advanced features of IGE5 have been described in an attempt to

outline both the intended function of the advanced entities as well as the

philosophy governing their design. It is hoped that developers of interactive

graphics systems can use these features in furthering the state-of-the-art of

interactive graphics while staying within the philosophy adopted for the

exchange of graphics data within IGES.

1.16
IGES FILE STRUCTURE

An IGES file is written on SO column card images, using the ASCII (7- bit)

character set. The file contains five subsections which must appear in order

as follows:

1. Start Section

2. Global Section

3. Directory Entry Section

4. Parameter Data Section

5. Terminate Section.

Each card image in the file has a unique letter in column 73 which identifies

the section to which it belongs, followed by a sequence number in columns 74

through 80 to indicate its position within the section. The sequence number

for each section begins with 0000001 and ends at the appropriate number for

the section.

Leading zeros in the sequence field may be optionally left as blanks. The

letter codes for column 73 are as follows:

Start Section

The start section of an IGES file is designed to provide a man-readable prolog

to an IGES file. There must be at least one start card, and all cards in the

section must use the sequence number field in column 73 through 80. Column

73 must contain the letter S and the sequence numbers must begin with 1.

SECTION LETTER CODE

1. Start

2. Global

3. Directory Entry

4. Parameter Data

5. Terminate

S

G

D

P

T

2.1
START

SECTION f CM CO

r*% o 0f**> r~\ 0 • • • CD ri 0 f**> o <**"> CO CO CO

J—o

CD UJ CO

CD ry 0

ft*

dj CD

CD

<c

UJ " LU

DC lu

O

•zr

—> DC

CO

u.

CO

UJ

CD

UJ

CDS • • • • " 21 >—

<3; cr o

J—

CD

O

J—

CIH

UJ CD CD

CO

O DC

CO 1

-T~ DC ZZL 1— CL.

C\|

CO

CM

co

CD

GO

cc

UJ

h—o

oc

CD

CO

CD

CO

2.2
The information in columns 1 through 72 is not formatted in any special way

except that the ASCII character set must be used. An example of a start

section is shown in Figure 3.

Global Section

The global section of an IGES file contains the information describing the

pre-processor and information needed by the post-processor to handle an IGES file. Sequence numbers in the global section have a "G" in column 73

and begin with number 1. The first two global parameters are used to

redefine the delimiter and end of line characters if necessary. The default

characters are "Comma and Semicolon" respectively.

The parameters for the global section are input in free format as described in

section 2.7. If the global section specifies new delimiter characters, they

take over immediately and are used in the Global section as well as the rest

of the file. This is possible, because the comma and semicolon delimiter

functions are the first two global parameters. It is expected that if the

comma and semicolon delimiters are not to be changed, the global section

will begin with to indicate the default values are desired.

The parameters in the Global Section are described in Figure 4.

2.3
FIGURE*

PARAMETER FIELD TYPE DESCRIPTION

1 Text Delimiter character (default=,)

2 Text End of line character (defaults)

3 Text Drawing identification

4 Text File name

5 Text System ID

. Vendor

. Software version

6 Text IGES translator version

7 Integer Number of bits for integer representation

8 Integer Number of bits in a single precision

floating point exponent

9 Integer Number of bits in a single precision

floating point mantissa

10 Integer Number of bits in a double precision

exponent

11

(TO SYSTEM)

Integer Number of bits in a double precision

mantissa

12 Text Drawing identification

(FILE INFORMATION)

13 Floating point Drawing scale

14 Integer Unit 1, inch

15 Text 2, mm

3, other

16 Integer Maximum line weight (0-512)

17 Floating point Size of maximum line width in 'units'

18 Text Date & time of file generation

'XXYYZZ,AABBCC'

19 Integer Smallest gridsize of definition space

20 Integer Size of definition space

21 Text Name of author

22 Text Organization

2.4
Directory Entry Section

The directory entry section of an IGES file has one entry for each entity in

the IGES file. The directory part of each entity is fixed in size, and contains

twenty fields of eight columns spread across two cards for each entity. Note,

all DE pointers are odd valued. The purpose of the directory entry is to

provide an index for the file and to contain attribute information. The

directory entry has either attribute values directly specified in a specific

field, or a pointer to a location in the file where the information is located.

Some of the fields in the directory entry can contain an attribute value

directly, or a pointer to a set of such values. In these fields a negative

number indicates a pointer, while a positive number is taken to be the

attribute value. In the following paragraphs each of the directory fields is described. Figure 4 shows the layout of a directory entry and has a number

sign or arrow to indicate the type of data which appears in the field. When a

field in Figure 5 has both a number sign and an arrow either type data is

possible, and two descriptions of the field are included.

DIRECTORY ENTRY FIELD DESCRIPTION

NO. FIELD NAME MEANING AND NOTES

1 Entity type No. #

2. Parameter Data ^

Identifies the IGES entity No.

A pointer to the first card of the Parameter

Data for the entity.

A version No. which indicates how to interpret

the Parameter Data for this entity. This value

will be 1 for all entities in the initial release

of IGES.

A pointer to the DE of the definition entity

that specifies this entity’s meaning.

Selection of a system line font.

3 Version #

3 Version =>

4 Line Font

Pattern # 1 Solid

2 Dashed

2.5
4 Line Font

Pattern ^

5 Level #

5 Level =>

6 View

7 Defining Matrix =>

8 Label Display

Associativity=}*

9 Status //'s

10 Sequence //

1 1 Entity type // 12 Line Weight //

3 Phantom

4 Centerline

A pointer to the DE of a line font pattern

entity.

Entity is defined on this level

Pointer to the DE of an associativity entity

which contains a list of levels on which the

entity is defined.

Pointer to the DE of a view entity or to views

visible associativity entity.

Pointer to the DE of a matrix used in defining

this entity; zero implies the identity matrix

will be used.

Pointer to the DE of a label display associativity (Form 5).

Provides four two digit status values. The

first three are used; the fourth is reserved.

1-2 Blank Status

00 Visible

01 Blanked

3-4 Subentity switch

00 Independent

01 Dependent

5-6 Geometry Flag

00 Geometry

01 Drafting

02 Definition

03 Other

7-8 Unused

Physical count of this record from the beginning of the Directory Entry section, preceded

by the letter D (odd number).

(Same as Field 1)

System display thickness; normal is zero.

2.6
DIRECTORY

ENTRY

(DE)

SECTION

o

z. 7

I

•

Pointer

#,f

-

Number

or

pointer

(pointer

has

NEG

sign)
13 Pen Number # Pen or color number.

14 Parameter card

Count #

Number of cards in the Parameter Data for

this entity

15

16-17

Form Number #

Reserved for

future use

Attaches a form number to the entity

18 Entity Label Up to eight alphanumeric characters (right

justified).

19 Entity subscript# 1 to 8 Digit unsigned number associated with

the label

20 Sequence # Same meaning as field 10

(even number)

2.4 Parameter Section

The parameter section of an IGES file contains the parameter data associated

with each entity. The specific format of the parameter data for each entity

is described in Section 3.0. The following information is true for all parameter data.

Parameter data is placed in free format (see section 2.7) with the first field

always containing the entity type number. Therefore, the entity type number

and a comma precede parameter one of each entity. The free field part of

the parameter card ends in column 64. Columns 65 through 72 on all parameter cards contain a pointer to the sequence number of the first card in

the directory entry for the entity for which parameter data is being

generated. Columns 73 through 80 contain a parameter sequence number

with a "P" in column 73 and a sequence number in columns 74 through 80.

The sequence number begins with a 1 on the first parameter card for the first

entity in the parameter section. With the exception of text strings, all parameter values are restricted from crossing card boundaries. Thus,

numeric values must start and end on the same card. When a text field does

cross card boundaries, column 64 on the current card is considered to be next

to column 1 on the next card. Parameters to be defaulted are indicated by

2.8

two commas with zero or more intervening blank characters. A semicolon

indicates that the parameter list is complete and any remaining parameters

should receive default values. Semicolon should always be the last character

of a parameter set, even if all parameters were explicitly specified.

Any desired comment may be added after the semicolon. Note that

additional cards may be used for this purpose by keeping the DE pointer in

columns 65-72 constant.

The default value for a numeric argument is zero and for a text argument is a

null string. It is the responsibility of the preprocessor which creates an IGE5

file to make sure that the default value is a reasonable one for the particular

parameter. Figure 6 shows a parameter section.

Terminate Section

There is only one card in the terminate section of an IGES file. It is divided

into ten fields of eight columns each. The terminate section must be the last

card of the IGES file. It has a "T" in column 73 and 0000001 in columns 74

through 80.

The fields on the terminate card contain the last sequence number used in

each of the previous sections defined below, see Figure 7.

FIELD COLUMNS

1 1-8

2 9-16

3 17-24

4 25-32

5-9 33-72

10 73-80

SECTION

Start Section

Global Section

Directory Entry Section

Parameter Section

(not used)

Terminate Section
TERMINATE

SECTION

LU

ccZD

C£J

2.11
2.6 Constants in IGES

IGES defines three types of constants, integer, real, and string. The

acceptable forms of each are defined in the sections that follow.

2.6.1 Integer Constants

An integer constant is composed of one or more numerical characters.

Although formally called an integer constant, it is more commonly called a fixed-point or integer number because of the fact that the decimal point is always assumed to be located to the right of the last numerical character of

the number.

An integer constant may be either positive, zero, or negative; while a

positive integer number can have the special character plus (+) as its leading

character, if an integer number is unsigned and nonzero IGES assumes it to be

positive. An integer number must comply with the following four rules:

1. It must be a whole number. That is, it cannot contain a decimal point.

2. If negative, the special character minus (-) must be the leading

character.

3. It cannot contain embedded commas.

Its maximum magnitude can be either plus or minus 2**(N-1) -1 (where

N is parameter seven from the global section).

The following are examples of valid integer constants (assuming N is 32).

1150

2147483647

0

-10

-2147483647

2.12
Floating Point Constants

IGES permits both single and double precision floating point constants. The

precision of these constants is specified in the Global section, in parameters

8 through 11.

A single precision floating point number may be expressed with or without an

exponent. Double precision constants must be in exponential form.

A floating-point constant without an exponent is composed of one or more

numerical characters and the special character period (.) that may be

followed by one or more of these numerical characters to form what is called

the fractional part of the constant. Sometimes called a real constant, it is more commonly called a floating-point constant to reflect the fact that the

decimal point can be moved or floated to either the beginning, middle, or end

of the numerical characters forming the number. Floating-point constants

may be either positive, zero, or negative. A positive floating-point constant can have the special character plus (+) as its leading character, if a floatingpoint constant is unsigned and nonzero IGES assumes it to be positive. A

floating-point constant must comply with the following four rules:

!• If negative, the special character minus (-) must be the leading

character.

2. It must contain a decimal point.

3. It cannot contain embedded commas.

The size of the number must be compatible with the parameters in the

global section.

A floating-point constant may be expressed in exponential form. Singie

precision floating point numbers use the letter "E" in the exponent, while

double precision floating point constants use the letter "D" in the exponent.

A floating-point constant in exponential form begins with a constant (real or

integer) followed by an exponent letter ("E" or "D") followed by an integer

2.13
constant. The first constant is called the mantissa and the second constant

the exponent. The value of the resultant floating-point constant is the value

of the mantissa multiplied by ten raised to the power specified in the

exponent. The precision of allowable numbers for the mantissa and exponent

are given in the global section. Examples of floating point constants are below:

Single precision non exponent form:

264.091

0 . -.58

+4.21

Single precision exponent form:

1.36 E 01

12.943E1

-13.09E-2

123.409E-4

0.1E-3

1.0E+4

Double precision exponent form:

145.98763D+04

2145.980001D-5

0.123456789D 9

Note: Double precision floating point constants must use the exponential form.

2.14
String Constants

A string constant in IGES uses the Holierith form as found in the ANSI

specification of FORTRAN. A string constant is preceded by an unsigned

integer, and the letter "H". String constants have the following rules:

1. The string is preceded by a count of characters and the letter "H".

2. Any character from the ASCII set may appear in the string. (Blanks,

commas, and semicolons have no special meaning within a string

constant.)

3. String constants may cross card boundaries in an IGES file (other

constants may not). When a string constant does cross a card boundary,

the last usable column on the current card is concatenated with column

one on the succeeding card. (Note: the last usable column on parameter cards is column 64; on other cards it is column 72.)

4. There is no limit on the size of a string constant.

Examples of valid string constants are:

3H123

10HABC.,:ABCD

12H HELLO THERE

8H0.457E03

Free Format Rules

The data in several sections of an IGES file may be entered in free format.

The free format feature allows the specification of parameters in a prescribed order, but does not specify a location on the card image. When free

format is permitted the following rules apply:

1. Blanks are ignored.

2.15
2. Commas (,) are used to separate parameters.

3. Semicolon (;) is used to terminate the list of parameters.

4. When two commas appear adjacent to each other (or separated only by

blanks) the parameter is not specified in the file and should be given a

default value.

5. If a semicolon appears before the list of parameters is complete, all remaining parameters should be given default values.

6. Blanks are not ignored in string constants. In addition the comma and

semicolon are treated as characters in a string constant and do not have

the meaning specified in (2 through 5).

2.16
DEFINITION OF ENTITY FORMATS

This section of the document provides the standard format for each entity

component.

Each entity has two basic parts to its representation; the Directory Entry (DE)

and the Parameter Data Entry (PDE). This section contains pertinent

information needed for the directory entry, and a description of the PDE portion

of the representation.

The directory data section of each entity will have codes showing what

information must be present in the directory entry. These attributes were

explained in the previous section, the codes and meanings are listed below.

MTX: Matrix reference must be present

FORM: The form number of the entity

3.1
3.1 Geometry Entities

The following geometric entities are defined in this section:

Entity Name Entity Number

Circle 100

Composite Entity 102

Conic 104

Copious Data Block 106

Face 108

Line 110

Parametric Spline 112

Parametric Bicubic Spline Surface 114

Point 116

Ruled Surface 118

Surface of Revolution 120

Tabulated Cylinder 122

Transformation Matrix 124
CIRCLE

The arc of a circle is defined in an XT-YT plane different from model space. A

transformation matrix is specified for transforming the XT-YT space into model

space. The circle is defined in terms of end points and the arc center coordinates; the

points are defined so that the desired arc is traced by moving from point one to point

two in a counterclockwise direction.

In example 3 of Fig. 3.1-1 the solid arc is defined using point A as the first end point

and point B as the second end point. If the dashed arc were desired, the first end point

would be B and the second end point A.

Examples of circle entities are shown in Fig. 3.1-1.

Directory Data

ENTITY NUMBER : 100

ATTRIBUTES REQUIRED : MTX

Parameter Data

Parameter Value Format Comment

1 2 Floating Point Center displacement

from XT-YT plane

2 X Floating Poini Circle center abscissa

3 y Floating Point Circle center ordinate

4 X Floating Point End point one abscissa

5 y Floating Point End point one ordinate

6 X Floating Point End point two abscissa

7 y Floating Point End point two ordinate

3.3
Parameter Value Format Comment

8 N Integer Number of associate<

entities

9 DE Integer Pointers to DEs o:

• • •

associated entities

•

•

8+N

•

•DE

•

•

Integer

9+N M Integer Number of associate

properties

10+N DE Integer Pointers to DEs o

• • •

associated properties

•

9+N+M

•

DE

•

•

Integer

3.4
3.5
COMPOSITE ENTITY

The composite entity is a concatenation of point, lines, arcs, conics, and parametric

splines.

Each entity may have its own matrix, level, and line type. By definition, the end point

of each entity is the start of the next. Each entity may have text or properties

associated with it. An example of a composite entity is shown in Fig. 3.1-2.

Directory Data

ENTITY NUMBER : 102

Parameter Data

Parameter Value Format Comment

1 N Integer Number of entities

2 DE Integer Pointer to Directory

• • • Entries for the associated

• • • entities

N+l DE

•

Integer

N+2 NA Integer Number of associated

entities

N+3 DE Integer Pointers to DEs of associated

• • •

entities

N+2+NA DE Integer

N+3+NA M Integer Number of associatec

properties

3.6
Parameter Value Format Comment

N+4-+NA

N+3+NA+M

DE Integer Pointers to DEs of associated

properties

DE Integer

3.7
1

3.8

EXAMPLE

OF

THE

COMPOSITE

ENTITY
CONIC

2 2

The general format of a conic equation is Ax + Bxy + Cy + Dx + Ey + F = 0. A conic can be defined in any XT-YT plane. The transformation matrix transforms

XT-YT space into model space. The conic is defined by its six coefficients, a start,

and an end point. Start and end points (PI, P2) are selected for ellipses such that a

line from the conic center to end point 1 rotated in a counterclockwise direction

toward point P2 will intersect the conic along the desired segment. The conic center

is the intersection of the conic's major and minor axis (the dashed lines in Fig. 3.1-3).

For hyperbola, the start and end points determine the branch of the hyperbola. An

example of each conic type is shown in Fig. 3.1-3.

Within the conic Directory Entry the curve type is indicated by the Form number,

which has the following meanings:

FORM Meaning

0 Conic form must be determined from conic equation

1 Conic is Ellipse (See Example 1, Fig. 3.1-3)

2 Conic is one branch of a Hyperbola (Example 2, Fig. 3.1-3)

3 Conic is Parabola (Example 3, Fig. 3.1-3)

Directory Data

ENTITY NUMBER : ATTRIBUTES REQUIRED : 104

MTX, FORM

Parameter Data

Parameter Value Format Comment

1 A Floating Point Conic Coefficient

2 B Floating Point Conic Coefficient

3 C Floating Point Conic Coefficient

3.9
Parameter Value Format Comment

4 D Floating Point Conic Coefficient

5 E Floating Point Conic Coefficient

6 F Floating Point Conic Coefficient

7 Z Floating Point Conic Displaceme

from XT-YT plan<

8 XI Floating Point Start Point Abscij

9 Y1 Floating Point Start Point Ordire

10 X2 Floating Point End Point Absicis;

11 Y2 Floating Point End Point Ordinat

12 N Integer Number of associ

entities

13 DE Integer Pointers to DEj

associated entitie

• • •

12+N DE Integer

13+N M Integer Number of associ

properties

14+N DE Integer Pointers to DE:

associated proper

13+N+M DE Integer

3.10
m
COPIOUS DATA BLOCK

This entity stores data points in associated pairs, tuples, or sextuples. The

interpretation flag value determines whether the storage is in pairs, tuples, or sextuples. The 2-tuples represent x,y pairs with a common z depth. The 3-tuples are

x,y,z coordinates. The 6-tuples are x,y,z coordinates with an i,j,k normal vector at the

coordinate.

The form number in the Directory entry will indicate the use of the copious data for

specific entities.

i Number Entity Use

0 Copious Data

10 Linear string

20 Centerline through

21 Centerline through

31 Section form 31

32 Section form 32

33 Section form 33

34 Section form 34

35 Section form 35

36 Section form 36

37 Section form 37

38 Section form 38

40 Witness line

points

lines

Refer to section 3.2 for examples of the Centerline, Section, and Witness line entities.

3.12
Directory Data

ENTITY NUMBER : 106

ATTRIBUTES REQUIRED : FORM

Parameter Data

Parameter Value Format Comment

1 IF Integer Interpretation flag

IF=1 ; x, y pairs, common z

IF=2; x, y, z coordinates

IF=3; x, y, z coordinates and

i, j, k normal vector

2 N Integer Number of 2 - tuples

3 - tuples or 6 - tuples

3 Data Floating Point If IF=1, K=3+2N the

third word is a Z displacement

if:

• Points IF=2, K=2+3N

• IF=3, K=2+6N

K

K+l N Integer Number of associated entities

K+2 DE Integer Pointers to DEs of associated

entities

K+l+N DE Integer

K+2+N M Integer Number

properties

of associated

K+3+N DE Integer Pointers to

properties

DEs of associated

K+2+N+M DE Integer

3.13
FACE

The face entity represents either an unbounded plane or a bounded face. The plane

equation Ax + By + Cz - D=0 defines the surface in either representation. The

boundary of a face is represented by a composite entity. A center location and size

parameter is used to control a system dependent display symbol for the unbounded

plane. If the entity is a bounded face, parameters 6 through 9 are not included in the

definition. Examples of the face entity are shown in Fig. 3.1-4.

The form number located in the Directory Entry will indicate if the face represents a

positive face or a negative face (hole).

Form Meaning

+1 positive face

-1 negative face

Directory Data

ENTITY NUMBER : 108

ATTRIBUTES REQUIRED : FORM

PARAMETER DATA

Parameter Value Format Comment

1 A Floating Point Coefficients of Plane

2 B Floating Point

3 C Floating Point

4 D Floating Point

5 PTR Integer Pointer to DE o composite entity or 0

6 X Floating Point X coordinate of the

default display symbol

7 Y Floating Point Y coordinate of the

default display symbol

8 Z Floating Point Z coordinate of the

default display symbol

3.14
Parameter Value Format Comment

9 SIZE Floating Point Height of the default

display symbol

10 N Integer Number of associated

entities

11 DE Integer Pointers to DEs of

• • •

associated entities

•

•

10+N

•

•DE

•

•

Integer

11+N M Integer Number of associated

properties

12+N DE Integer Pointers to DEs oj

• • •

associated properties

•

11+N+M

•

•DE

•

•

Integer

3.15
I

\ \

\

x \

\ \

I I

! * !

I I

LlI

I 0. <

X

LU

QU

Q

Z

3

o

CD

z

3

m

3.16

EXAMPLES

OF

THE

FACE

ENTITY
LINE

A line segment is defined by two end points (3 -tuples) in model space. The line is considered to be defined from (XI, Yl, Zl) to (X2, Y2, Z2). Examples of line entities are shown in Fig. 3.1-5.

Directory Data

ENTITY NUMBER : 110

Parameter Data

Parameter Value Format Comment

1 XI Floating Point Start Point

2 Yl Floating Point PI

3 Zl Floating Point

4 X2 Floating Point End Point

5 Y2 Floating Point P2

6 Z2 Floating Point

7 N Integer Number

associated

entities

8 DE Integer Pointers

DEs

associated

entities

7+N DE Integer

3.17
Parameter Value Format Comment

8+N

9+N

8+N+M

M Integer Number of associc

properties

DE Integer Pointers to DEs

associated proper

DE Integer

3. IS
m

3.19
PARAMETRIC SPLINE

The parametric spline is represented as a sequence of parametric cubic polynomial

segments. It can also represent piecewise linear, modified Wilson-Fowler, WilsonFowler, and "B-Spline” Splines.

The N polynomial segments of the spline are delimited by the breakpoints t(l), . . , t(N+l). The coordinates of the points in the ith segment of the spline are given by the

cubic polynomials:

X(u) = AX(i)+BX(i)*s+CX(i)*s2 +DX(i)*s3

Y(u) = AY(i)+BY(i)*s+CY(i)*s2 +DY(i)*s3

Z(u) = AZ(i)+BZ(i)*s+CZ(i)*s2 +DZ(i)*s3

where

t(i) £ u^t(i+l), i=l,N

s = u - t(i).

If the dimension of the spline is 2D, the coefficients of the Z polynomial will be zero.

To enable rapid determination of the endpoint and derivatives without computing the

polynomials, a dummy N+lst polynomial segment is included in the entity. The

parameter t(n+2) is not provided for this segment since the endpoint of the dummy

segment and the derivatives at that point are implied by the N+l segment coefficients.

There is a parameter H which specifies the degree of continuity at the break points

(H=2 for continuous second derivatives).

An example of a parametric spline is shown in Fig. 3.1-6.

Additional examples are shown in Fig. 3.1-7.

3.20
Directory Data

ENTITY NUMBER : 112

Parameter Data

Parameter Value Format Comment

1 CTYPE Integer Spline Type

(l=Linear

2=Quadratic

3=Cubic

4=Wilson-Fowler

5 = Modified

Wilson-Fowler)

2 H Integer Continuity

3 NDIM Integer Number of

Dimensions

(2=2D, 3=3D)

4 N Integer Number of

Segments

5 t(l) Floating Point Break points of

• • piecewise

•

• 5+N

•

• t(N+l)

polynomial

6+N AX(1) Floating Point X Coordinate

Polynomial

7+N BX(1)

3.21
Parameter Value Format Comment

8+N CX(1)

9+N DX(1)

10+N AY(1) Y coordinate

11+N BY(1) polynomial

12+N CY(1)

13+N DY(1)

14+N AZ(1) Z coordinate

15+N BZ(1) polynomial

16+N CZ(1)

17+N DZ(1)

• Subsequent X, Y, Z

• Polynomials

13*N AX(N+1) X value at endpoint Last polynomial

BX(N+1) X slope at endpoint (A dummy

CX(N+1) X second derivative segment included

DX(N+1) X third derivative only to indicate

the value of the

AY(N+1) spline and its

BY(N+1) derivatives at

CY(N+i) the endpoint)

DY(N+i)

AZ(N+i) Z polynomial

BZ(N+1)

CZ(N+1)

DZ(N+1)

TOTAL ENTRIES (TE) = 5+N + 12*(N + l)

3.22
Parameter Value Format Comment

TE+1 NA Integer Number of associated

entities

TE+2 DE Integer Pointers to DEs of

• • •

associated entities

•

• TE+l+NA

•

•DE

•

• Integer

TE+2+NA M Integer Number of associated

properties

TE+3+NA DE Integer Pointers to DEs of

• « •

associated properties

•

• TE+2+NA+M

•

•DE

•

• Integer
z

ID H2

UJO

KUJ»-

ujinz 2 UJ <> 1/1 QC21D <2£T

Q. 3(L Q \ H

m

n

(M c\i

>- - I I 3 3 * * N CM X >* Q Q + +

CM r\J

CM CM w w i I 3 D m *

CMN

X >- u u+

>-mx

03

CM CM • • T w — *— X. Q. 1- t- — «— — 1 { — N m t— 3 3 — — < w w > > >- > * * < < < < in

/< • . • UJ

CM

M (M <-» > w 

— CM m T

L

X > w

—

w i—

r—

m

D

X

X

X

X < — 4- 4- < < < < > 

— w w '

.—

N r\j 1 

ii , i • ii a.

*—

—

N rnT ID

X >- 0. CL CL Q.

Q < <

ii < 3 3 w w X > z

ID .. 5MO

id or inm

(D

ITS 03

li-Z

3.24

FIG.

3.1-6

EXAMPLE

OF

PARAMETRIC

CUBIC

SPLINE

(2D)

PARAMETRIC

BICUBIC SPLINE SURFACE

The parametric bicubic spline surface is a grid of parametric bicubic patches. It can

represent bicubic patches and various cartesian product surfaces.

The MxN grid of patches is defined by the u breakpoints tu(l),...,tu(M+l) and the v breakpoints tv(l),...,tv(N+l). The coordinates of the points in each of the patches are given by the general bicubic polynomials (given here for the (i, j) Patch).

X(u,v) = AX(i,j)+BX(i,j)*s+CX(i,j)*s

2

+DX(i,j)*s3

+ EX(i,j)*t+FX(i,j)*t*s+GX(i,j)*t*s2 +HX(i,j)*t*s3

+ KX(i,j)*t2

+LX(i,j)*t2 *s+MX(i,j)*t2

*s

2 +NX(i,j)*t2

*s

3

+ PX(i,j)*t

3 +QX(i,j)*t3 *s+RX(i,j)*t3

*s

2

+SX(i,j)*t

3

s 3

Y(u,v) = ...

Z(u,v) = ...

where

tu(j) — u ~ tu(j+l), j=l,M

s=u-tu(j)

and

tv(i)^v .^tv(i), i=l,N

t=v-tv(i).

To provide edge values and derivatives without evaluating polynomials, an additional

dummy row and column of patches is included in the entity.

An example of the bicubic surface is shown in Fig. 3.1-8.

3.26
Directory Data

ENTITY NUMBER : 114

Parameter Data

Parameter Value Format Comment

1 STYPE Integer Spline Type

(l=Linear

2=Quadratic

3=Cubic

4=Wilson-Fowler

5=Modified

Wilson-Fowler)

2 PTYPE Integer Patch Type

(l=Cartesian

Product

0=Not

Necessarily)

3 M Integer Number of u segments

4 N Integer Number of v segments

5 tu(l) Floating Point Breakpoints in

u:

•

• u values of grid

•

• 5+M

•

•tu(M+l)

lines

3.27
Parameter

6+M

6+M+N

7+M+N

22+M+N

23+M+N

38+M+N

39+M+N

54+M+N

Value Format Comment

tv(l) Floating Point Breakpoints in v values of gri

lines

tv(N+l)

AX(1,1) Floating Point X Coefficient:

(1,1) Patch

SX(1,1)

AY(1,1) Y Coefficient:

(1,1) Patch

SY(1,1)

AZ(1,1) Z Coefficient:

(1.1) Patch

SZ(1,1)

. Coefficients c

(1.2) Patch

(1,N+1)

(2,1) Patch

3.28
Parameter Value Format Comment

(2, N+l)

(M+1,1) Patch

(M+1,N+1)

TOTAL ENTRIES = 6+M+N+48*(M+l)*(N+l)=TE

TE+1 NA Integer Number of associated

entities

TE+2 DE Integer Pointers to DEs of

• • •

associated entities

•

• TE+l+NA

•

•DE

•

• Integer

TE+2+NA MA Integer Number of associated

properties

TE+3+NA DE Integer Pointers to DEs of

• • •

associated properties

•

• TE+2+NA+MA

•

•DE

•

• Integer

3.29
4-

—— 2-

44

w

w

2Z

D > w w l-K

D>

M •• t-h- D> II •• D>

UJu<

u_anoin ^ I# M 1/12Z

D>

D>

I- I- Z)> • • *

«. • • , • 4- 4 4

(\J (\j

N • • • m m m «* w •w X > N < < <

it • 1 n > > > • D D D w N-* X > N

LU

CJO

~<

cr ll_

i-cr

LUD

SCO <

or uj

<z

CL

—

-J

U- CL

Ocn

LU

O

-J

—

CUD

<CJ X —

LU CD n

CD

Ll

3.30
POINT

A point is defined by its coordinates in three dimensions,

are shown in Fig. 3.1-9.

Directory Data

ENTITY NUMBER : 116

PARAMETER DATA

Parameter

1

2

3

4

5 N

6 DE

5+N DE

6+N M

7+N DE

6+N+M

Value

x

y

zPTR

Integer

Integer

Integer

Integer

Integer

DE Integer

Format

Floating Point

Floating Point

Floating Point

Integer

Examples of the point entity

Comment

Coordinate

of

Point

Pointer to DE of

subfigure instance

specifying the display

symbol.

If 0, no display symbol

specified.

Number of associated

entities

Pointers to DEs of

associated entities

Number of associated

properties

Pointers to DEs of

associated properties

3.31
m

LU

_J

CL

<

X

LU

(M

LU

-J

CL

<

X

LU

0)

LU

_J

CL

<

X

LU

m

CD

Ll

3.32

EXAMPLES

OF

POINTS
RULED SURFACE

A ruled surface is formed by moving a line connecting points of equal relative arc

length on two curves from a start point to an end point on the curves. The curves may

be points, lines, circles, conics, or parametric splines (both 2D and 3D).

If the two curves are expressed as the parametric functions of arc length

(Cl x(s), Cl

y

(s), Cl

z

(s)) and (C2x

(t), C2

y

(t), C2

z

(t)), then

the coordinates of the points on the ruled surface can be written as

X(u,v) = (l-v)*Cl x

(s)+v*C2x

(t)

Y(u,v) = (l-v)*Cl Y

(s)+v*C2Y

(t)

Z(u,v) = (l-v)*C2

z

(s)+v^C2z(t)

where

0 ^u 4l, 0 ^v ~1

s = u * arc length (Cl)

t = u * arc length (C2).

If DIRFLG=1, then the curves are joined first to last, last to firsi and t is given by

t = (1-u) * arc length (C2).

If DEVFLG=1, then the surface is a developable surface; if DEVFLG=0, the surface

may or may not be a developable surface.

An example is shown in Fig. 3.1-10. Additional examples are shown in Fig. 3.1-11.

3.33
Directory Data

ENTITY NUMBER : 118

Parameter Data

Parameter Value Format Commeni

1 DEI Integer Pointer to curve

2 DE2 Integer Pointer

second curv

3 DIRFLG Integer Direction F

(0=join firs

first, last

last

l=joint fir:

last, last

first)

4 DEVFLG Integer Developabl<

surface fla|

(l=Develop<

0=Possibly

3 N Integer Number

associated

entities

6 DE Integer Pointers to

of associ

• • •

entities

5+N DE

• Integer

3.34
Parameter Value Format Comment

6+N M Integer Number of

associated

7+N DE Integer

properties

Pointers to DEs

of associated

• • •

properties

•

• 6+N+M

•

•DE

•

• Integer

3.35
10

EXAMPLES

OF

RULED

SURFACE
3.37
SURFACE OF REVOLUTION

A surface of revolution is defined by a directrix (which must be a line), a generatrix,

and start and end rotation angles. The surface is created by rotating the generatrb

about the directrix thru the start and end angles. The angles of rotation are measurec

via the right hand screw rule. There is no transformation matrix associated with a surface of revolution. A matrix may be associated with the generatrix, which may be

a conic, line, arc (circle), parametric spline, or composite entity.

Examples of surface of revolution entities are shown in Fig. 3.1-13.

The start and end angles of the surface can be explained by geometric construction.

Refer to Fig. 3.1-12 and the following:

(1) Select a point on the generatrix which does not lie on the directrix; label the

point PI.

(2) Construct a line through PI such that it is perpendicular to the directrix; label

this line LI.

(3) Construct a plane PN1 containing LI and perpendicular to the directrix.

(4) All rotations are applied in the plane PN1 about the directrix according to the

right hand rule.

(5) Rotate the line LI and the point selected from the curve the number of radians

indicated in the start angle resulting in Ll<^. The location is labeled LOCI.

(6) Rotate the line LI and the point selected from the curve an additional number of

radians given by the end angle minus the start angle resulting in Ll<^. The

second location of the point is labelled LOC2.

(7) The resulting surface is that generated by rotating the curve from LOCI to

LOC2.

3.38
Directory Data

ENTITY NUMBER : 120

Parameter Data

Parameter Value Format Comment

1 DE Integer Pointer to a line DE

(directrix)

2 DE Integer DE pointer to

generatrix

3 5A Floating point Start angle in radians

4 EA Floating point End angle in radians

5 N Integer Number of associated

entities

6 DE Integer Pointers to DEs of

• • •

associated entities

•

• 5+N

•

•DE

•

• Integer

6+N M Integer Number of associated

properties

7+N DE Integer Pointers _ to DEs of

* •

associated properties

6+N+M

•

•DE

•

* Integer

3.39
3.40
3.41
TABULATED CYLINDER

A tabulated cylinder is formed by moving the generatrix (a line) parallel to itself al< the directrix which may be a line, circle, conic, or parametric spline.

The points on the surface are given by

X(u,v) = CX(u)+v*(LX-CX(0))

Y(u,v) = CY(u)+v*(LY-CY(0))

Z(u,v) = CZ(u)+v*(LZ-CZ(0))

where 0 ^u - 1, 0 - v

-6-1

and CX, CY, CZ represents the X, Y, Z component along the direcl curve.

An example of the tabulated cylinder is shown in Fig. 3.1-14.

Directory Data

ENTITY NUMBER : 122

ATTRIBUTES REQUIRED : MTX

Parameter Data

Parameter Value Format Comment

1 DE Integer Pointer to direcl curve

2 LX Floating Point Coordinates of

3 LY Floating Point endpoint of the g

4 LZ Floating Point erating line,

other end point is

first point on

directrix.

5 N Integer Number of associa

entities

6 DE Integer Pointers to DEs

associated entities.

3.42
Parameter Value Format Comment

5+N DE Integer

6+N M Integer Number of associated

properties

7+N DE Integer Pointers to DEs of

• • •

associated properties

•

• 6+N+M

•

*DE

•

• Integer

3.43
o

m

CD

il3.44

14

EXAMPLES

OF

A

TABULATED

CYLINDER
TRANSFORMATION MATRIX

A twelve cell entity which contains 3x3 rotation matrix R and a one by three

translation matrix T. The transformation moves the associated entity from its

definition space to model space, by first applying the rotation, then translation.

Directory Data

ENTITY NUMBER : 124

Parameter Data

Parameter Value Format Comment

1 Rll Floating Point Top Row

2 R12 Floating Point

3 R13 Floating Point

4 T1 Floating Point

5 R21 Floating Point Second Row

6 R22 Floating Point

7 R23 Floating Point

S T2 Floating Point

9 R31 Floating Point Third Row

10 R32 Floating Point

11 R33 Floating Point

12 T3 Floating Point

3.45
Parameter Value Format Comment

13 N Integer Number of associc

entities

14 DE Integer Pointers to DEs

• • •

associated entities

•

• 13+N

•

•DE

•

• Integer

14+N M Integer Number of associc

properties

15+N DE Integer Pointers to DEs

• • •

associated propertie:

•

,4+N+M

•

•DE

•

Integer

3.46
3.2 Drafting Entities

Many drafting entities are constructed by using other entities. For example the

linear dimension entity will contain a pointer to a witness line directory entry (a

form of copious data), two pointers to leader (arrow) directory entries, and one

pointer to a general note directory entry.

All drafting entities are defined in a definition space (XT, YT). This (XT, YT)

space may be identical to the (XT, YT) space of a drawing entity (No. 404).

Alternatively, a reference may be made to a transformation matrix. The

transformation matrix rotates the drafting entity into model space. Subordinate

entities to a drafting entity may have different ZT displacements. For example

within the linear dimension, a different ZT value may be found in each of:

general note, leader, and witness lines (which are pointed to in the linear

dimension parameter data). An example showing the use of ZT displacement

(DEPTH) is shown in Fig. 3.2-1.

The following entities are defined in this section:

Entity Name

Angular Dimension

Centerline

Diameter Dimension

Flag Note

General Label

General Note

Leader (Arrow)

Linear Dimension

Ordinate Dimension

Point Dimension

Radius Dimension

Section

Witness Line

Entity Number

202

106

206

208

210

212

214

216

218

220

222

106

106

ANGULAR DIMENSION

An angular dimension consists of a general note, zero to two witness lines, (if two

witness lines are needed, both are contained in the copious data of the witness line

entity), zero to two arrows, and an angle vertex point. The first segment of each

leader is an arc with its center at the vertex point. An example of this arc

construction is shown in Fig. 3.2-2. Remaining leader segments, if any, are straight

lines. See Leader (Arrow) for details.

Refer to Fig. 3.2-3 for examples of angular dimensions.

ENTITY NUMBER :

Parameter Vaiue

1 GN

2 W1

3 XT

4 YT

5 R

6 A1

Directory Data

202

Parameter Data

Format

Integer

Integer

Floating Point

Floating Point

Floating Point

Integer

Comment

Pointer to general note

DE

Pointer to witness

line DE or 0

Coordinates of

vertex point

Radius of leader arcs

Pointer to 1st leader

DE or 0

3.49
Parameter Value Format Comment

7 A2 Integer Pointer to 2nd k

DE or 0

8 N Integer Number of assoc

entities

9 DE Integer Pointers to DE

associated entitii

8+N DE Integer

9+N M Integer Number of assoc properties

10+N DE Integer Pointers to DE

associated prope

I 9+N+M DE Integer
trUJa<

LU

-jb

»-Z

CD

a:

LU ZD0 < — LU

H-J

(JDO

q: lu o

Q.K

q:<

htn

H

DC

U

UJ

UJ l/l >

C/1 Dl- 5Z

cco

LUQ_ Q cr <XUJ

UiLxJO —I H- <

CC UJ LULU _J x>

l~ UJ LUX ZIK —hU. OZO

criu < LU I—

UJI X LUO

H-CDQ.

LQh

OUJX

i-<

cn<*—

d_jui — D

OUUJ

<_JI X <K- u

LU

O

XUJZ

H£D< i— I

CD <

Zou

oo

cn

-tn

z<0— LU

ZZUh

-z

Dcrcn

<u

—JOT D<

CD

ZL

<o

(\J1 Nmo

Ll.

3.51
m
CENTERLINE

The Centerline entities are stored as a form of copious data. The associated matrix

transforms the XT-YT plane of the centerline into model space. The coordinates of

the centerline points describe the centerline display symbol,

described by line segments where each line is from

<X

n- V Zn>’ to(Xn+1 ’ Yn+1 ’ 2n+l )where

n = l,3,5,...,N-i

The display symbol is

Examples of the centerline entity are shown in Fig. 3.2-4.

3.53

DIAMETER DIMENSION

A diameter dimension consists of a general note, one or two leaders, and an arc center

point. If a second leader does not exist its pointer value will be 0. Refer to Fig. 3.2-5

for examples of the diameter Dimension entity. The arc center coordinates are used

for positioning the diameter dimension line relative to the arc being dimensioned.

Directory Data

ENTITY NUMBER : 206

Parameter Data

Parameter

1

Value

NE

Format

Integer

Comment

Pointer to general

note DE

2 A1 Integer Pointer to first

leader DE

3 A2 Integer Pointer to second

leader DE

4 XT Floating Point Arc center coordinates

5 YT Floating Point

6 N Integer Number of associated

entities

3.55
Parameter Value Format Comment

7 DE Integer Pointers to DEj

associated entitle

6+N DE Integer

7+N M Integer Number of associ

properties

8+N DE Integer Pointers to DE:

associated proper

7+N+M DE Integer
8aaAaaaaaaaaaaaaaaa

3.57
FLAG NOTE

A flag note is label information formatted as shown in Figure 3.2-6. The rotation

angle overrides the general note rotation angle and placement. Additional examples of

the flag note entity are shown in Fig. 3.2-7.

The following specifications apply to Fig. 3.2-6.

Variables:

H = Height CH = Character Height

L = Length NC = Number of Characters

TL = Text Length (in general note)

T = Tip Length A = Rotation angle in radians

3.58
Formulas:

TL = U)(CH)(NC)+U)(CH)(NC-1)

H = (2)(CH)

L = (TL)+(.4)(CH)

T = (.5)(H)/TAN35°

Restrictions:

H shall never be less than .3 in.

L shall never be less than .6 in.

T shall never be less than .214 in.

Directory Data

ENTITY NUMBER : 208

Parameter Data

Parameter Value Format Comment

1 XT Floating Point Lower left corner

2 YT Floating Point Coordinate

3 2T Floating Point

u A Floating Point Rotation angle in

radians

5 DENOTE Integer Pointer to general

note DE

6 N Integer Number of arrows

(leaders)

7 DE Integer DE pointers to

associated leaders

DEs

6+N

3.59
Parameter Value Format Comment

7+N NA Integer Number of associ*

entities

8+N DE Integer Pointers to DEs

• • •

associated entitle;

• 7+N+NA

•

•DE

•

•

Integer

8+N+NA M Integer Number of assodc

properties

9+N+NA DE Integer Pointers to DEs

• • •

associated propert

• 6+N+NA+M

•

•DE

•

•

Integer

3.60
3.61
GENERAL LABEL

A general label consists of a general note with one or more associated leaders.

Examples of general label entities are shown in Fig. 3.2-8.

Directory Data

ENTITY NUMBER : 210

Parameter Data

Parameter Value Format Comment

1 DENOTE Integer Pointer to assoc general note

2 N Integer Number of leade

3 DE Integer Pointer to assoc

• • •

leaders DEs

N+2

•

•

•

N+3 NA Integer Number of assoc

entities

N+4 DE Integer Pointers to DE

associated entitii

N+3+NA DE Integer

3.62
Parameter Value Format Comment

N+4+NA M Integer Number of associated

properties

N+5+NA. DE Integer Pointers to DEs of

• • •

associated properties

•

• N+4+NA+M

•

•DE

•

•

Integer

3.63
3.64

C\J

m

CD

LL_

EXAMPLES

OF

GENERAL

LABELS
«<«<aaaaaaaaaiiciii

3.65
GENERAL NOTE

A general note consists of text, a starting point, text size, and angle of rotation of tf

text. If a transformation matrix is specified, it transforms the note from the XT-Y

plane to model space. Examples of general notes are shown in Fig. 3.2-9. The F

value indicates the font characteristic and is an integer between 0 and 6. This integ<

will be obtained on a system-dependent basis using the information in Figures 3.2-]

and 3.2-11. If the FC number is not sufficient to describe the font, a text foi definition entity may be used to define the font. If a text font definition is being use> the negative of the pointer value for the DE of the text font definition entity is place

in the FC parameter. The use of the values WT, HT, SL, A, and text start point, at shown in Fig. 3.2-12.

Directory Data

ENTITY NUMBER : 212

Parameter Data

Parameter Value Format Comment

1 NS Integer Number of text strings

General Note

2 NC Integer Number of characters

the text

3 WT Floating Point Character string length

4 HT Floating Point Character height

5 FC Integer Font characteristic

6 SL Floating Point Slant angle of text

radians

7 A Floating Point Rotation angle in

radians

8 M Integer Mirror flag (0-no mirror,

text mirrored)

9 VH Integer Vertical/Horizontal

orientation flag (0-te:

horizontal, 1-text vertical

3.66
Parameter Value Format Comment

10 XT Floating Point Text start point

11 YT Floating Point

12 ZT Floating Point Z Depth from XT, YT

plane

13 TEXT Character First text string

14

•

NC2 Integer Number of characters in

second text string

•

1+NS*12 TEXT Character last text string

2+NS*12 N Integer Number of associated

entities

3+NS*12 DE Integer Pointers to DEs of

• • •

associated entities

•

2+NS*12

•

•DE

•

•

Integer

3+NS*T2 M Integer Number of associated

properties

4+NS*12 DE Integer Pointers to DEs of

• • •

associated properties

•

3+N5*12

•DE

•

•

Integer

3.67
UJtfl 6SZC*

UJH Zm

<9

UJ—J X

UJ

UJ01UJO

m

LU

_i

CL<X

LU

OJ

LU

-J

CL<X

LU

a31V1oyxx3X1V0iXd3A

LU

Q_<X

LU 3

CCac8mamxK

LU

_j

CL<X

LU

3.68

0\I (\J m

CD

lx. I

EXAMPLES

OF

GENERAL

NOTES
«aaaaaaaaaa«aaaaaaa

UJo

2:<

cr<

LU

CL

CL<!

O

L_

LiQOO

L_0

:~n

0-• » • « X+X

\oo\%oo

COx

vOm

(MM

>-Xm

oza

CLo

NX3

ID

i_L_ LUQu

cn< X+

-* wXo

CD

03

IX

co

LO

CO

OJM>-X

Xo

CD

CO

rx

co

LO

x*

00

C\J 1—!

XIX> +

<k5 X

Sett o

CD

COX

CO

LO

X*

co

CsJ

XI

>—X 3 3 » 1

1

CO

CO CO cn

crz cn

a 0 0 x

CL CL 0 O O X X X X 2 X

_J

X

X

—>

X— 3 5 —

1—1 X X X

CD 0 co X X X

LU LU a a

Q 0 0 CJ

CQ

X cn < < X +

-*•

«3X%O

cn

COX

CO

LOx

cn

(\J

xi

>-X>3

hcn

ora

CLo33Li_

LUQO

OQ< X+*

(£mO(7)

00X

ID

IDX

ro

OJ

xixx31

CO

oro

Q_Ox

“3XoXXQO

CQ< — XI rn D CD

FIG.

3.2-10

FONT

CODES

FOR

FONTS

OF

ASCII

CHARACTERS
0 X 27 U) 56 • 105 E | 134 \ 163 ©

1

• 30 X 57 / 106 * F 135 ] 164

2 <31 cc 60 0 107 G 136 A

165 0

3 > 32 6 61 1 110 H 137 _ 166 A

4 A 33 62 2 111 I 140

\

167 <5>

5 V- 34 7T 63 3 112 J 141 L. 170

6 X 35 —

64 4 113 K

| 142 $ 171 7

7 — 36 + 65 5 I 114 L 143 O 172 Y

10 37

o

66 6 115 M 144 173 \

11 f 40 SP 67 7 116 N 145 o 174 I

12 ZD 41 I 70 8 117 0 146 // 175 }

13 V 42

II 71 9 120 P 147 176 —

14 A 43 # 72 : 121 Q 150 / 177

15 44 $ 73 * 122 R 151 -=-

FONT CODE

ASCII CODE

CHARACTER

16 l 45 % 74 < 123 s 152 . -V17 + 46 & 75 -

124 T 153

20 47

1 76 > 125 U 154 ±

21 - 50 ( 77 ? 126 V 155 ®

22 - 51 ) 100 <a 127 W 156 0

23 52 * 101 A 130 X 157 o

’24 Q 53 + 102 B 131 Y 160 ©

25 T 54 * 103 C 132 Z 161 <L

26 55 — 104 D 133 l 162 ©

Figure 3.2-11.

3. TO
m

m

m

m

X

Ui <E

a: Si

Ui

U)X

-B# *- —

XUi-l

£<U»

f—

u.oz

-cctI (\J

ro

0

u.

3.71

12

GENERAL

NOTE

TEXT

CONSTRUCTION
LEADER (ARROW)

A leader consists of one or more line segments except when the leader is part of an Angular dimension (see Angular dimension). The first segment begins with an arrowhead. There shall be ten different arrowheads and the selection shall be made by

assigning values to FORM (see table below). Remaining segments successively link to a presumed text item. The leader entity includes parameters to define the size and

shape of the arrowhead and the end points of each segment of the leader. Individual

segments are assumed to extend from the end point of its predecessor in the segment

list to its defined end point. Points are defined in an XT-YT plane which is rotated

into the model space by the associated transformation matrix. Examples of leaders are shown in Fig. 3.2-13.

FORM Definition:

FORM

NUMBER

10

6

7

5

1

2

4

3

8

9

Meaning

Arrowhead Type

Open Triangle

Triangle

Triangle (filled in)

No arrowhead

Circle

Circle (filled in)

Rectangle

Rectangle (filled in)

Slash

Integral sign centered at the end point of the first

segment

Examples of each FORM are shown in Fig. 3.2-14.

3.72
Directory Data

ENTITY NUMBER:

ATTRIBUTES REQUIRED:

214

FORM

Parameter Data

Parameter Value Format Comment

1 N Integer Number of Segments

2 ADI Floating Point Arrowhead Height

3 AD2 Floating Point Arrowhead Width

4 . ZT Floating Point Z Depth

5 XH Floating Point Arrowhead Coordinates

6 YH Floating Point

7 Floating Point Segment tail

coordinate pairs

6+2N

7+2N NA Integer Number

entities

of associated

8+2N DE Integer Pointer to DEs of

associated entities

7+2N+NA DE Integer

3.73
Parameter Value Format Comment

8+2N+NA M Integer Number of assoc; properties

9+2N+NA DE Integer Pointers to DEs

associated property

8+2N+NA+M DE Integer
IIII0aaaaAIACI1IIII \ N \ u

-J

CL<X

LU

in2

UJ2QX<

_J3O2<

C\J m

CD

Ll.

3.75
m

M 1

1

o

n

cr

o

Li_

3.76

14

ARROWHEAD

DEFINITIONS
LINEAR DIMENSION

A linear dimension consists of a general note, two leaders, and zero to two witness

lines. Refer to Fig. 3.2-15 for examples of linear dimensions. If two witness lines are

required, both are stored in the copious data of the witness line.

Directory Data

ENTITY NUMBER : 216

Parameter Data

Parameter Value Format Comment

1 DENOTE Integer Pointer to General note DE

2 DEARRW1 Integer Pointer to first leader DE

3 DEARRW2 Integer Pointer to second leader DE

4 DEWIT1 Integer Pointer to witness line DE, 0 if not

defined

5 N Integer Number of associated entities

6

•

DE

•

Integer

•

Pointers to DEs of associated entities

•

•

5+N

•

DE

•

•

Integer

6+N M Integer Number of associated properties

7+N DE Integer Pointers to DEs of associated

• • •

properties

• 6+N+M DE

•

Integer

3.77
15

EXAMPLES

OF

LINEAR

DIMENSIONS
ORDINATE DIMENSION

The ordinate dimension is used to indicate dimensions from a common base line.

Dimensioning is only permitted along the XT or YT axis.

An ordinate dimension consists of a general note and a witness Jine or leader. The

values stored are pointers to the directory entry for the associated note and witness

line. Examples of ordinate dimensions are shown in Fig. 3.2-16.

Directory Data

ENTITY NUMBER : 218

Parameter Data

Parameter Value Format Comment

1 NOTE Integer Pointer to General note DE

2 WIT Integer Pointer to Witness line DE or leader DE

3 N Integer Number of associated

entities

DE Integer Pointers to DEs of associated

• • •

entities

•

•

3+N

•

•DE

•

•

Integer

4+N M Integer Number of associated

properties

3.79
Parameter Value Format Comment

5+N

4+N+M

DE Integer Pointers to DEs of associc

properties

DE Integer

7.80
.

2208

m

a

s

o

m

LU

u

CL

<

X

LU

o

CM

u

-J

CL

<

X

LU

e*zo '

i

ODOO •

lu

u

CL

<

X

LU

3.81

FIG.

3.2-16

EXAMPLES

OF

ORDINATE

DIMENSIONS
POINT DIMENSION

A point dimension consists of a leader, text, and an option circle or hexagon enclosing

the text. If a transformation matrix is specified, it transforms the XT-YT plane of the

point dimension into model space.

The leader will always contain three segments, and its first and last segments are always horizontal or vertical. If a hexagon encloses the text, it will be described by a composite entity. If a circle or hexagon does not enclose the text, the last segment of

the leader will be vertical and it will underline the text.

Examples are shown in Fig. 3.2-17.

3.82
Directory Data

ENTITY NUMBER : 220

Parameter Data

Parameter Value Format Comment

1 DEI Integer Pointer to General Note DE

2 DE2 Integer Pointer to leader DE

3 DE3 Integer Pointer to Circle, or Composite Entity DE, or 0.

4 N Integer Number of associated

entities

5 DE Integer Pointers to DEs of associated

• • •

entities

•

•

4+N

•

•DE

•

•

Integer

5+N M Integer Number of associated

properties

6+N DE Integer Pointers to DEs of associated

• • •

properties

• 5+N+M

•DE

•

•

Integer

3.83
3.84L
RADIUS DIMENSION

A radius dimension consists of a general note, a leader and an arc center point, (x ,

y

). Refer to Fig. 3.2-18 for examples of radius dimensions.

The arc center coordinates are used for positioning the radius dimension line relative

to the arc being dimensioned.

Directory Data

ENTITY NUMBER : 222

Parameter Data

Parameter Value Format Comment

1 DEN Integer Pointer to general note DE

2 APR Integer Pointer to leader DE

3 XT Floating Point Arc center coordinates

4 YT Floating Point

5 N Integer Number of associated

entities

6 DE Integer Pointers to DEs of associated

entities

5+N DE Integer

6+N M Integer Number of associated

properties

3.85
Parameter Value Format Comment

7+N

6+N+M

DE

DE

Integer

Integer

Pointers to DEs of associate

properties
IIIIIIIII1IIIiiiI*

3.87
I

SECTION

A section is a copious data entity containing a list of points,

describes how the data are to be interpreted.

j

:j

•3\ The form number

The point data contains a list of points (Xn, Yn) n=l, 2, . . . , N. (The Z value may be

constant)

These points represent line segments of the section display symbol.

I The table below describes the use of the form number, and Fig. 3.2-19 shows examples

of each possible form number. (Reference: the American Standard Association

definition of Symbols for Materials).

Form number Display action

I

i 31 Display all line segments as solid lines. (Iron,

Brick, Stone masonry)

.

'

i

i 32 Do not display every third line. All other lines

display as solid. (Steel)

33 Display odd numbered lines as solid. Display even numbered lines dashed. (Bronze, Brass,

Copper)

34 Do not display every fifth line. All other lines

display as solid. (Plastic, Rubber)

35 Display odd numbered lines as solid. Display even numbered lines with a centerline line

font. (Fire brick, Refractory material)

I ] 36 Display all lines with a centerline line font.

(Marble, Slate, Glass)

3.88

k
Form number Display action

37 Display ail line segments as solid lines. (Lead,

Zinc, Magnesium, Sound or heat insulation,

Electrical insulation)

38 Display the first half of the lines with a solid

line font. Display the last half of the lines

with a dashed line font. (Aluminum)

3.89
3.90.
WITNESS LINE

A witness line is a form number 40 of a copious data block that contains one or more

straight line segments associated with drafting entities of various types. If a

transformation matrix is specified, it transforms the XT-YT plane of the witness line

into model space. Refer to Fig. 3.2-20 for examples of witness lines.

3.91
20

EXAMPLES

OF

WITNESS

LINES
3.3 Definition Entities

IGES contains five types of definition entities.

Entity Name Entity Number

Associativity definition

Line font pattern

Macro definition

Subfigure definition

Text font definition

302

304

306

308

310

3.93
ASSOCIATIVITY DEFINITION

The associativity definition entity permits the preprocessor to define an associativity

schema. That is, by using the associativity definition, the preprocessor defines the

type of relationship. It is important to note that this mechanism specifies the syntax ] of such a relationship and not the semantics.

i

•{

\ The definition schema allows the specification of multiple classes. A class is considered to be a separate list, and the existence of several classes implies an

association among the classes as well as between the contents of each class.

For each class, the schema has provision to specify whether or not back pointers are required. A back pointer being required implies that an entity which is a member of

this associativity (when it is instanced) has a pointer to the DE of the instance in its parameter section.

The provision in the schema to specify if a class is ordered or not is used to state

whether or not the order of appearance of entries in the class is significant.

In the schema "ENTRIES" are the members of the class. However, each entry could be

composed of several items. That is, an entry may require more than one item to be

complete. For example, if the entries were locations, each entry might have three

items to specify X, Y, and Z values.

Finally, in order to help decode instances of the definition, each item is specified as a

pointer (to an ENTITY DE) on a data value.

Within the IGES file two forms of associativity are permitted. The first form is a set

of IGES-defined associativities which will have form numbers in the range of 1 to

5000. The associativity definition entity defines the second form which are those

defined on the IGES file by a preprocessor (Form numbers 500 1-9999). The definition

appears once in the file for each form of associativity defined, and allows the

preprocessor to fill in the definition according to a schema which defines the details of

the associativity.

3.94

-

—

-
The definition includes the associativity form, the number of class definitions, the

number and type of items in each entry, and whether back pointers (from the entity to

the associativity) are required. Each set of values (BP, Order, N(i), and Item type) are

considered a class. The IGES defined associativity definitions are located in Section

3.5.1. Refer to Section 3.5.1 for a complete example of associativity.

Directory Data

ENTITY NUMBER : 302

ATTRIBUTES REQUIRED : FORM

Parameter Data

Parameter Value Format Comment

1 K Integer Number of class definitions

2 BP Integer

1-

back pointers required

2-

no back pointers

3 Order Integer

1-

ordered class

2-

unordered class

'4 N(l) Integer Number of items per entry

5 Item type Integer

1-

pointer to a DE

2-

value

4+N(l)

The items in parameters 2 through 4+N(l) are repeated for each of the K classes.

5+N(l) BP Specification for second class

6+N(l) Order

7+N(l) N(2)

7+N(l)+N(2)

K

1+ ^3+N(i)

i=l

3.95
LINE FONT PATTERN

This entity is used only to generate Line Fonts. A repeating pattern is specified w

on or off segments. A repeating subfigure pattern is specified when M=0. If to parameter 3 indicates the length of the first segment of the subfigure pointed to parameter 2, and parameter 4 is the scale factor to be applied to each instance of •

sub figure. If M=0 parameters 5 through M+3 will not occur. Fig. 3.3-1 demonstra

the use of the Line Font pattern. Figure 3.3-2 demonstrates the use of a subfigi

(M=0).

ENTITY NUMBER:

Parameter Value

1 M

2 LI

3 L2

4 L3

Directory Data

304

Format

Integer

Floating Point

(or Integer)

Floating Point

Floating Point

Comments

Number of segments in

minimum repeating struct

of the Line Font (M 16)

0.

Length of the first segmen

If M=0 this is a pointer ti subfigure to be used as repeat pattern.

Length of the second s ment. If M=0, L2 is length of the repeat

pattern.

If M=0, L3 is a scale fac

to be applied to

subfigure. Otherwise L3

the length of the tl segment.

M+l Lm Floating Point Length of the m*^ segmeni

M+2 Character Up to 4 Hexadecimal ni bers representing whether

not a segment is blank or blank. Ex: '5' would indie

that segments 1, and 3 w

blank.

3.96

(\J

I m

m

o

lL.

3.98

USE

OF

SUBFIGURE

WITH

LINE

FONTS
MACRO CAPABILITY

The IGES specification provides a means for communicating 3D and 2D geometric

models and drawings. The specification, however, does not provide a format for every

geometric or drafting entity available on all currently used CAD/CAM systems, and is

thus a common subject of such entities.

To allow exchange of a large subset of entities - a subset containing some of the

entities not defined in the IGES specification, but which can be defined in terms of the

IGES basic entities, the marcro capability is provided. This capability allows the use

of the specification to be extended beyond the common entity subset, utilizing a

formal mechanism which is a part of the specification.

The MACRO capability provides for the definition of a "new" entity in terms of other

IGES entities. The "new" entity schema is provided in a macro definition which occurs

once for every "new" entity in the file.

A MACRO definition is written using the MACRO entity. The parameter section of

the entity contains the MACRO body. In the MACRO body, five types of statements

are useable. The statements permissable are the assignment statement (LET), the

entity definition statement (SET), and the repeat and continue statements. The repeat

statement defines a portion of the body to be repeated and is terminated by a CONTINUE statement. References to other MACRO definitions appear on a MREF

statement. The MACRO body is terminated by an ENDM statement.

Each of the statements in a MACRO definition entity is terminated by a semicolon (;).

In order to use a "new" entity defined by the MACRO definition, a MACRO instance is placed in the file. The DE portion of an instance specifies the new entity number in

field 1 of the DE pointer and refers to the definition by a pointer in the number field.

The parameters to the instance are placed in the parameter section of the instance.

A brief syntax description of the definition statements and examples of instances of a MACRO are presented in the pages which follow. Appendix A contains a complete

description of the MACRO capability.

3.99
CONSTANTS

REAL 1., 2.5E+01, -3.7842560-01

INTEGER 5, 1121

STRING 3HABC

FIRST CHARACTER

(A-H, O-Z)

(I-N)

$

#

/

VARIABLES (6 characters maximum)

REAL

INTEGER

STRING

POINTER

ATTRIBUTE

FUNCTIONS

SIN, COS, SQRT, ETC (similar to Fortram)

STRING (Real or Integer, Format Field)

STRING (5.0123, F6.4) 6H5.0123

STRING (X, F6.1)

STRING (I, 15)

3.100
EXPRESSION (same evaluation rules as Fortran)

OPERATIONS +»-»*»/»**

OPERANDS real or integer variables and

functions

STATEMENTS

ASSIGNMENT (LET)

ENTITY (SET)

REPEAT

CONTINUE

MREF (Reference to other MACRO ) MACRO

ENDM

ASSIGNMENT STATEMENTS

LET (real or integer variable) = real or integer expression

LET X = X+1.0

LET I = 3/2 + 1 LET Dist = SQRT ((xl**2-x2**2)**2 + (yl**2-y2**2))

3.101
ASSIGNMENT STATEMENT FOR ATTRIBUTE VARIABLE

LET/LEV=1

LET/LEV=/HDR

NOTE: /HDR is a reserve word meaning reset to the default value for the attribute on the left of the equal sign.

ENTITY STATEMENT

SET #ABC=#ARGI

SET //XYZ=110,X1,Y1,Z,X2,Y2,Z,0,0

REPEAT STATEMENT

REPEAT 5

CONTINUE

MACRO STATEMENT

MACRO, 610, XI, Yl, X2, Y2, $ABC, #PR

(MACRO BODY)

ENDM;

NOTE:

All statements are terminated by a semicolon in the file.

3.102
MACRO, 621, XI, Yl, Al, A2, K;

LET Z = 0;

SET #Linel = 110, XI, Yl, Z, K*(X1+A1), (Y1+A2/2.), Z, 0, 0

SET #Line2 = 110, K*(X1+A1), (Y1+A2/2.), Z,

K*(X1+A1), (Y1-A2/2.), Z, 0, 0;

SET #Line3 = 110, K*(X1+A1), (Y1-A2/2.), Z

XI, Yl, Z, 0, 0;

ENDM

INSTANCE

MACRO, 621, 10., 10., 4., 2.,-l;

3.103
I

I

I

I

I

I

I

I

I

I

3.104
|iIACRO,600, XI, Yl, X2, Y2, X3, Y3, N, W, H, Value;

LET Z = 0.;

SET //Line = 110, XI, Yl, Z, X2, Y2, Z, 0, 0; LET D1 = SQRT ((Xi-X2)**2 + (Yl-Y2)**2);

LET D2 = Dl/N;

LET SLOPE = (Y2-Y 1 )/(X2-X 1 ); LET THETA = ATAN (SLOPE);

LET DX = D2*COS (theta);

LET DY = D2*Sin (theta);

REPEAT (N+l);

SET //WL = 228, Z, XI, Yl, X3, Y3, 0, 0; LET $DIM = STRING (value, F6.3);

SET //NOTE = 212, 1, 6, (6*w), H, 1, 0., 270., X3, Y3, Z, $DIM, 0, 0

LET XI = Xl+DX;

LET Yl = Yl+DY;

LET X3 = X3+DX;

LET Y3 = Y3+DY;

LET Value = Value+D2:

CONTINUE;

ENDM;

i- 3.105
INPUT:

COORDINATES

OF3

PO

01

LUU<

Q.

0)hX

LU

QD23Z

LUIZQZ<

in

h-z

(\1 >

(\i x>X

n>nx

22.010

20.010

18.010

16.010

I4.0IQ

12.010

in

h-

—ID

inuJ

CL

3.106 s:i ij3 • i

FIG.

3.3-4
SUBFIGURE

The subfigure is designed to support the concept of a subpicture (if one equates

drawing creation with graphics picture processing). This entity permits a single

definition of a detail to be utilized in multiple instances in the creation of the whole

picture. The contents of the subfigure include a set of pointers to any combination of

entities and other subfigures. Depth indicates the nesting of the subfigures, and has a

range of 0-15.

Directory Data

ENTITY NUMBER : 308

PARAMETER DATA

Parameter Value Format Comment

1 Depth Integer Depth of Subfigure

(indicating the amount of

nesting)

2 Name Character Subfigure Name

3 N Integer Number of entities in the

subfigure

4 DE Integer Pointers to the Directory

Entries for the Associated

Entities

N+3
TEXT FONT DEFINITION

The text font definition entity is used to define characters and character fonts not provided in the font definitions of IGES. The entity pairs an ASCII value with

subfigure. The subfigure contains the geometric components necessary to draw the|

character. The first parameter is a pointer to a subfigure which is the default

character. Those ASCII codes not mapped to a subfigure, map to the default

subfigure, or blank if PD equals zero.

ENTITY NUMBER :

Directory Entry

310

PARAMETER DATA

Parameter Value Format Comment

1 PD Integer Pointer to DE of default]

subfigure

2 N Integer Number of ASCIIl

code/Pointer pairs

3 ASCII# Integer ASCII character number

4 PI Integer Pointer to DE of subfigure

2N+2

3.108
Other Entities

The following section describes other entities available in the specification.

These entities are:

Entity Name

Associativity Instance

Drawing

Property

Subfigure Instance

View

Entity Number

402

404

406

408

410
ASSOCIATIVITY INSTANCE

Each time an associativity relation is needed in an IGES file an instance entity is used.

The form number of the associativity instance will identify the meaning of the entity.

If the form number is between 1 and 5000, the definition is specified as described in Section 3.5.1, and the version number of the associativity instance will be 1.

If the form number is between 5001 and 9999, an associativity definition will occur in the IGES file and the version number of the instance will be a pointer to the DE of the

associativity definition.

Each entity that is a member of an associativity instance can contain a pointer (in the

associated entity portion of its parameter data) to the associativity instance. A; complete example of associativity is shown in Section 3.5.1.

Directory Entry

ENTITY NUMBER : 402

ATTRIBUTES REQUIRED : FORM, VERSION

PARAMETER DATA

Parameter Value Format Comment

1 N1 Integer Number

one

of entries for class

2 N2 Integer Number of entries for class

two

K NK Integer Number of entries for class K;

3.110
Parameter

K + 1

For K classes with (NI,...,NK) Entries

with (II, ... , IK) items per entry

Value Type

Class 1 Entry 1

Entry 2

Entry N1

Class 2 Entry 1

Entry 2

Entry N2

Class K Entry 1

Class K Entry IMk

Comment

Item 1 Item 2

•

• Item II Item 1

•

Item II

Item 1

Item 11 Item 1

Item 12

Item 1

Item 12

Item 12

Item 1

Item IK

3.111
Parameter Value Type Comment

X+l M Integer Number of associat

entities

X+2 DE Integer Pointer to DE

associated entities

X+M+i DE

X+M+2 N Integer Number of properties

X+M+3 DE Integer Pointer to property

X+M+2+N DE Integer Pointer to property
DRAWING ENTITY

The drawing entity defines a collection of drafting entities and views of geometrical

entities which, together, constitute a single representation of the part, in the sense

that a real drawing constitutes a single representation of a part in standard drafting

practice. If desired, multiple drawings can be included in a single IGES file, referring

to the same model space. Refer to Fig. 3.4-1 for an example of the use of the

Drawing entity.

Directory Data

ENTITY NUMBER : 404

- PARAMETER DATA

Parameter Value Format Comment

1 N Integer Number of view pointers

2 VPTR1 Integer Pointer to DE of first view

entity

3 XT1 Floating Point Location in drawing

4 YT1 Floating Point coordinates of origin of

transformed view

5 VPTR2 Integer Pointer to DE of second view

• •

entity

• 3N+2

• M Integer Number of drafting

entities^

3N+3 DPTR1 Pointer Pointer to first drafting entity

• • in this drawing

TE=3N+M+2

(1) If only a single drawing entity is present, a zero value implies all drafting

entities are to be included.

3.113
Parameter Value Comment llP£

TE+1 NA Integer Number of assoc entities

TE+2 DE Integer Pointers to DEi

associated entities

TE+l+NA DE Integer

TE+2+NA MA Integer Number of assoc properties

TE+3+NA DE Integer Pointers to DEi

associated properti

TE+2+NA+MA DE Integer
VIEW

Fig. 3 . 4-1

A

3.115

1
Fig. 3 .4-1

B

3.116
PROPERTY

The property entity contains numerical and textual data. It also has a form number to

indicate its meaning. Property form number: 1-5000 IGES; 5001-9999 undefined.

Directory Data

ENTITY NUMBER : 406

ATTRIBUTES REQUIRED : FORM

PARAMETER DATA

Parameter Value Format Comment

1 N Integer Number of properties

2

•

Integer Property Values

•

•

1+N

2+N NA Integer Number of associated

entities

3+N

•

•

DE Integer Pointers to DEs of associated

entities

• 2+N+NA DE Integer

3+N+NA M Integer Number of associated

properties

4+N+NA DE Integer Pointers to DEs of associated

properties

3+N+NA+M DE Integer

3.117
SUBFIGURE INSTANCE

The subfigure instance defines each occurrence of the subfigure.

Before placement by the subfigure instance, the entities in the subfigure are < about the origin of model space. If a matrix reference is specified by the sub

instance, it is then applied to the model space data of the entities in the subfi

The model space placement of the subfigure instance is then used to translat

subfigure into the model space of the file. Refer to Fig. 3.4-2 for an example o placement of a subfigure.

If LEV is specified in the directory data, it overrides that of individual entities.

Directory Data

ENTITY NUMBER : 408

PARAMETER DATA

Parameter Value Format Comment

1 n Integer Pointer to subfigure D

3

2 x

y

Floating Point

Floating Point Model space placeme

subfigure

z

5 s

Floating Point

Floating Point Scale factor
SUBF

I

GURE

3 .119

SUBF

i

GURE

ORIGIN
VIEW ENTITY

The view entity specifies a specific 'Took” at the model portrayed by the geomet

entities. In its simplest form, the view entity consists of a view number and a point

to a transformation matrix (in the MTX attribute of the view entity directory ent

This transformation matrix may also be a defining matrix for a set of entities (i.e.,

MTX attribute in the entity directory entry specifying the definition plane for

entity).

In more complicated cases, the view entity also defines a scale and optionally!

clipping box which control the projection of the view onto a drawing plane. Followiij

transformation by the matrix and clipping, the scale parameter multiplies all m(

coordinates before they are projected onto the XY drawing plane.

If a clipping box is specified, each entity is clipped at the surface of the clipping

before scaling. This allows only portions of the model to be shown in a particul

view. The viewing box is specified by 4 pointers to entities defining the sides

possibly 2 additional entities defining the front and back planes. The entities definii

the sides may be either faces or co-planar lines. The front and back are faces. If front and back are not specified, the clipping box is assumed to extend from plus i

minus infinity. Depending on the form of the view entity the parameter list can ha^j

1, 2, 6, or 8 members, exclusive of associativity and property pointers.

The view entity makes possible the selection of display characteristics for each enti'

(font, weight, pen, etc.). These attributes are specified in a Views Visible (form

associativity associated with a given entity. If a display attribute is not specified, i

default is 1. If no Views Visible associativity exists for an entity, the entity

displayed with default attributes in all views.
Directory Data

ENTITY NUMBER:

ATTRIBUTES NEEDED:

410

MTX

Parameter Data

Parameter Value Format Comments

1 VNO Integer View Number

2 SCALE Floating Point Scale Factor

3 FAC1 Integer Pointer to left

side of viewing

box

4 FAC2 Integer Pointer to top of

viewing box

5 FAC3 Integer Pointer to right

side of viewing

box

6 FAC4 Integer Pointer to bottom

of viewing box

7 BAK Integer Pointer to back of

viewing box

8 FRO Integer Pointer to front

of viewing box

9 N Integer Number of

associated

entities

10 DE Integer Pointers to DEs

of associated

entities

9+N DE Integer

3.121
Parameter Value Format

10+N M Integer

11+N DE Integer

10+N+M

•

•DE

•

•

Integer

Comments

Number

associated

properties

Pointers to of associa

properties

3.122
3.5 Present IGES Definitions

This section contains the specification of predefined definition entities.

3.5.1 Associativity Definitions

As defined in Section 3.3, the Associativity definition entity will only occur

for form numbers 5001 through 9999. This following section contains the

definition of the defined Associativity definition entities (form numbers 1 through 5000).

3 .123
Use of Associativity:

To use the associativity, an Associativity definiton must exist. If the form;

number of the associativity definition is between 1 and 5000, the definition

follows in this section and is not required in the IGES file. If the form number isi between 5001 and 9999, it will occur in the IGES file. Only one Associativity

definition will exist for each form number.

The associativity instance will reference an associativity definition by the form;

/ I number in its directory entry. If the form number of the associativity instance is) between 5001 and 9999, the version number in the directory entry will be a pointer to the DE of the associativity definition in the IGES file. Entities

related by an associativity instance may contain pointers (in the associated’

entities portion of their parameter data) to the associated instance.

Example of Associativity:

This following example is of a group associativity. ;

If a number of entities were to be grouped together, the predefined associativity;

definiton form number 1 would be used. If the associativity definition was

required in the IGES file, it would appear as shown in Fig. 3.5-1.

, j The definition of the group associativity indicated there is only one class within;

the group. This class specifies that only one item per associativity instance t entry will occur (N(l)=l), and that this item is a pointer to a DE of an entity)

(ITEM=1). BP=1 indicates those entities pointed to will also point to the);

•j associativity instance. ORDER=l indicates that when the list of the items occur ;

in the associativity instance, the order is not important.

For each group in the file, an associativity instance similar to the example in

Fig. 3.5-2 would occur.

3

iij

ji

3.124

J
The first parameter of the group associativity instance would indicate the

number of entries for the first class (the only class). Since there is only one item

per entry and that item is a pointer to an entity, the first parameter indicates

the number of entities contained in the group.

Thus, in the example shown in Fig. 3.5-2, the associativity instance points to

three entities. These three entities are in the group.

3.125
DIRECTORY

ENTRY

VALUES

>

o:hz —

LU

N • t cr — • • LU LO — CL cr

• • O LU — LU CD hc

n

cr Z

LU • • LU LU —

cn — Q h- o

CO U1 a: — CL

< cr 0 w

-j Lb z Lu

(\J U1 o K D C cr o LU Z o

m D Ll — in cr !

_J o Q 2 LU < •• — < CL LU CD U

cr > cr 1— —

LU • • LU y: — D a

CD cr < CD o w Z z

lu i

2 < '

—

ID OD < D CD cr Z 2 Z >-* UJ — 2

D w — LU

> Z cr a cr w 1-

(- LU y: ID o z —

— 2 K

(- cr LU 1 i i 1 1 Z O 2

LU u_ < — c\j m 'T LT) cr<

CL

3.126
ASSOCIATIVITY

INSTANCE

AND

RELATED

ENTITIES
IGES DEFINED ASSOCIATIVITY

FORM NUMBER : 1 (Group)

PARAMETER SET VALUE MEANING

1 1 One class

2 1 Back pointers

3 2 Unordered

4 1 One item per entry

5 1 The item is a pointer

Since a group associativity definition is defined above, the Association definil

entity (Form 1) will not appear in the IGES file. For each group that occurs in an I<|

file, an Associativity instance is created (Refer to Section 3.4). The associating

instance will contain in its DE a form number 1. Within the Parameter data portion

the associativity instance, the value N1 will contain the number of entities in]

I Group, followed by pointers to each entity in the group. Also, each of those entitiej

the group will contain a pointer (in the associated entities portion of their parame

data) to the associativity instance. 'j
IGES DEFINED ASSOCIATIVITY

FORM NUMBER : 2 (Definition Levels)

PARAMETER SET VALUE MEANING

1 1 One class

2 2 No back pointers

3 2 Unordered

4 1 One item per entry

5 2 The item is a value

For each entity in the IGES file that is defined on multiple levels, there will be an

occurrence of the associativity instance (Form 2). In the parameter data portion of

the associativity instance, the parameter N1 will contain the number of multiple

levels, followed by a list of those levels. Each entity that is defined on a set of levels

will contain a pointer (in the associated entity portion of its parameter data) to the

associativity instance listing on which levels the entity is defined.

3.129
\ IGES DEFINED ASSOCIATIVITY

FORM NUMBER : 3 (Views Visible)

PARAMETER SET VALUE MEANING

1 1 One class

2 2 No back pointers

3 2 Unordered

4 1 One item per ent

5 1 Item is a pointer

(to view entity)

For each entity in the IGES file that is visible in multiple views, there will be ai occurrence of the associativity instance (Form 3). In the parameter data portion o: the associativity instance, the parameter N1 will contain the number of views visible

followed by a list of pointers to the view entity defining the view.
IGES DEFINED ASSOCIATIVITY

FORM NUMBER : 4 (Views Visible, Pen, Line Weight)

PARAMETER SET VALUE MEANING

1 1 One class

2 2 No back pointers

3 2 Unordered

4 5 Five items per entry

3 1 Pointer to view DE

6 2 Line font value

7 1 Pointer to line font DE

S 2 Pen number (value)

9 2 Line weight (value)

For those entities that are visible in multiple views, but must have a different line

font, pen number, or line weight in each view, there will be an occurrence of the

associativity instance (Form 4). In the parameter data portion of the associativity

instance, the parameter N1 will indicate the number of blocks containing the view

visible, line font, pen number, and line weight specifications. Each block will contain

a pointer to the view entity, a line font value or 0, a pointer to a line font DE if the

line font value was 0, a pen number value, and a line weight value. The total number

of entries in the associativity instance entity is 5*N1+1.

3.131
IGES DEFINED ASSOCIATIVITY

FORM NUMBER : 5 Entity Label Display

PARAMETER SET VALUE MEANING

1 1 One class

2 2 No back pointers

3 2 Unordered

4 6 Six items per entry

5 1 Pointer to view DE

6 2 XT of text location

7 2 YT of text location

8 2 ZT of text location

9 1 Pointer to leader DE

10 2 Entity label level number

For those entities that have one or more possible displays for their Entity labels, there

will be an occurrence of the associativity instance (Form 5). In the parameter data

portion of the associativity instance, the parameter N1 will indicate the number of blocks containing label placement information. Each block will contain a pointer to a view entity which specifies a view of visibility. The remaining information (text

location, leader, and level number) apply to the label for that view.

3.132

\ j

'•

-

•

-

,r

jfw
IGES DEFINED ASSOCIATIVITY

FORM NUMBER : 6 (View List)

PARAMETER SET VALUE MEANING

1 2 Two classes

Class One)

2 1 Back pointers

3 2 Unordered

4 1 One item per entry

5

Class Two)

1 Pointer to View DE

6 1 Back pointer

7 2 Unordered

8 1 One item per entry

9 1 Pointer to DE of entry visible

in view referred to in

parameter 5

This associativity has two classes. The first class has only one entry which is a pointer

to the DE of a specific view. The second class is a list of entities (Pointers to their

respective DEs) which are visible in the view referenced in class one. Since back

pointers are required in both classes, it is assumed that the view points to this

associativity instance, as do all entities visible in the view.

3.133
3.5.2 Macro Definitions

There are no defintions of Macros in existence at this time.

i

t

i\

\1

.•J

/

tS

\

V>

3 .134

i

1
Property Definitions

There are no definitions of Properties in existence at this time.

3.135

APPENDIX Ar IGES MACRO CAPABILITY

g-pus appendix describes the syntax of the IGES macro capability. Examples of macro

piUsage appear in Sections 3.4 of the IGES reference manual.

I

^Constants:

p2r

: I"

Constants may be integer, real or double precision. Integer constants are distinguished

I' by a lack of a decimal point and exponent. Reals are distinguished by the presence

ft' £j®f a decimal point, or the presence of an E exponent. The decimal point is optional

I^ONLY when the E exponent is present. Double precision constants are distinguished

"by the presence of a D exponent, which is mandatory; a decimal point is optional. Any

- constant may be preceded by a "+" or a "+" is assumed if neither is present. Exponents

-may also contain a "+" or Constants may not contain a comma, but may contain imbedded

blanks. Examples of valid constants follow:

- Integer 3 4123 13152 +0 -0

(+0, 0 and -0 are equivalent)

Real: -1 3.14159 6.62E-34 1E10 3.1E+3

Double: IDO ODO 3.1415926535897D3 -11562.18D-10

Examples of invalid constants include:

(commas not allowed)

(need mantissa — use IE 10 instead)

(E or D cannot be implied)

"Die limitations on magnitude and accuracy are inherently machine dependant, and are

specified in the global section of an IGES file.

1,000

E10

3.1-06

A.l
Variables:

Variable names may be from 1 to 6 characters in length. The first character must be one of the characters listed below, this character determines the variable type. It is not possible to override the conventions. The 6 character limitation includes the first

character. Upper and lower case letters are recognized as distinct, i.e., X is different from x. Variable names longer than six characters may be used; however, only the first six characters

will be significant. Variable names may contain imbedded blanks; these blanks are NOT

taken as part of the name, so that "A B

u

is equivalent to "AB." Except for the first

character, as outlined below, all characters must be alphabetic (A-Z) or (a-z), or numeric

(0-9).

Variable type

Integer

Real

Double precision

String

Pointer

First character

I-N, i-n

A-H, O-Z a-h, o-z

t

$

//

Examples of valid variable names are:

Integer: IJK ICOUNT K101 NTIMES

Real: XYZ XI y2 QrsTul

Double: !h !xi !Y2 112341

String: $str $TITLE $label

Pointer: //line //note //REF //XYZ1

Some invalid variable names:

$$$$ ($ not permitted after first character)

A.

2
1X43B (1 may not be first character)

A.BC (. is illegal)

Note that there are no "reserved" words; thus a variable name such as "MACRO," which

is identical to a statement keyword (described below), will not confuse the interpreter,

although it may confuse the user of such a MACRO. It is suggested that these words be

avoided.

Functions:

Functions similar to FORTRAN library functions are provided. The rules for mixed mode,

however, have been relaxed, so that it is not necessary to use, for example, SQRT(2. ) instead of SQRT(2). Note however that functions do have a specific type of value that

they return, i.e., integer, real, or double precision. The functions are described here by

the type of value returned. The type of argument usually used is also noted: however, as

already mentioned it is not necessary to strictly adhere to those rules. For example,

either IDINT(!d) or INT(!d) will work equally well, although the meaning might be a little

dearer with IDINT(!d). Functions are only recognized in one case (UPPER).

Functions returning integer values:

IABS(i)

Returns the absolute value of i. ISIGN(i)

Returns 1 if i is positive, 0 if it is zero, or -1 if it is negative.
IFIX(x) or INT(i)

Returns

IDINT(Id)

Returns

BDINT(ld)

Returns

Functions returning

FLOAT(i)

Returns

COS(x)

Returns

SIN(x)

Returns

TAN(x)

Returns

ATAN(x)

Returns

EXP(x)

Returns

ALOG(x)

Returns

ALOGlO(x)

Returns

ABS(x)

Returns

SQRT(x)

Returns

AINT(x)

Returns

form.

SIGN(x)

Returns

SNGL(Id)

Returns

the integer part of x.

the integer part of !d.

the integer part of !d.

real values: \

a real (floated) value for i, e.g., FLOAT(2) returns "2."

cosine of angle x; angle in radians.

sine of angle x; angle in radians,

tangent of angle x; angle in radians,

arctangent of x; angle returned in radians.

1

2

I natural anti logarithm of x ("e to the x").

. i

natural logarithm of x. '*!

common (base 10) logarithm of x.

absolute value of x.

square root of x.

integer part of x, just like INT; but returns value in floating point

1 if x is greater than 0, 0 if x equals 0, and -1 if x is less than 0.

single (real) value of double precision variable !d. As many significant

A.

4
digits of !d as possible are given to the returned value.

Functions returning double precision values:

DBLE(x)

DCOS(!d)

DSIN(Id)

DTAN(Id)

Returns "double precision"ed value of x. Note that this is merely a conversion,

not an extension. Thus, DBL(.333333333) will return .333333333DO, but

not .333333333333333333333333DO. Thus, DBLE(l./3.) is not necessarily

equal to 1DO/3DO.

Returns cosine of angle !d; angle in radians.

Returns sine of angle Id; angle in radians.

Returns tangent of angle Id; angle in radians.

DATAN(Id)

DEXP(ld)

DLOG(!d)

Returns arctangent of Id; value returned in radians.

Returns natural anti-logarithm of !d("e to the !d").

Returns natural logarithm of !d. DLOGlO(Id)

Returns common (base 10) logarithm of !d. DABSOd)

Returns absolute value of Id. DSQRTUd)

DSIGN(Id)

Returns square root of Id.

Returns IDO if Id positive, ODO if zero, -IDO if negative.

Expressions

Expressions may be formed using the above functions, variables and constants, and the

Allowing operators:

A.

5
addition

subtraction

muitiplication

division

exponentiation

The operators are evaiuated in normal algebraic order, e.g., first exponentiation, then ?. unary negation, then multiplication or division, then addition or subtraction. Within ; any one hierarchy, operators evaluate left to right. Parentheses may be used to override j

the normal evaluation order, as in the expression "A*B(B+C)," which is different from

"A*B+C." Extra parentheses do not alter the value of the expression; it is a good idea

to use them, even if not truly necessary. Examples of expressions include:

X + 1.0 ; -B+SQRT(B**2. - 4*A*C)

j

I + 1 ] 3.14159/2. | -x j !DEL*(!AL PHA-1BETA) j

Except for the ** operator, it is never permissable to have two operators next to each I

other, i.e., not 2*-2, but -2*2 or 2*(-2). Multiplication may not be implied by parentheses, 1

e.g., (A+BXC+D) is illegal, and AB does not imply A*B, but rather the separate variable |

"AB." Ii

m

M@de of expression evaluation: I

j

Unlike FORTRAN, mixed mode (integer mixed with real, etc.) is permitted. Whenever ? two different types are to be operated upon, the calculation is performed in the "highest"

type. Integer is the lowest type, Real is next, and Double precision is the highest. Note jj however, that this decision is made for each operation, not once for the entire expression.

Thus 1/3 + 1. evaluates to 1, because the "1/3" is done first, and it is done in integer ;j mode. Integer mode truncates fractions, and does not round. Therefore, the expression }

»*»»

*i j\ t
12/3+2/3+2/3" has a value of zero.

CStatements!

There are seven basic statements that can be used. They are:

“ LET

SET

REPEAT

CONTINUE

MACRO

MREF

ENDM

These "keywords" are recognized only in upper case, and every statement must begin

with one of these keywords. Statements are free format, blanks and tabs are ignored,

except within strings. Statements may extend over several card images, or more than

one statement may be present on a card. All statements are terminated by a semicolon,

which must be present.

LET statement

This is the basic assignment statement, and is equivalent to the LET statement of BASIC.

The format of a LET statement is: LET variable = expression;

The expression and the variable may be integer, real, or double precision; they need

not be of the same type. Note that this is an assignment statement, and not an algebraic

Quality. All of the variables on the right hand side of the expression must have been

Previously defined; it cannot be assumed that variables will default to zero if they are

^defined. Some examples of legal LET statements:

LET HYPOT = SQRT(A**2+B**2);

LET X = X + 1; LET ROOT1 = -B + SQRT(B*B - 4*A*C);

A.

7
LET1 = i; LET !XYZ = 1*2;

LET START = 0;

String variables: *

String variables allow characters to be manipulated. String variables may be used in ; statements almost anywhere that any other variable type may be used; exceptions are j noted below.

String variable may be used in LET statements; note that they may not be mixed with

any other type of variable in a LET statement, and also note that operations (i.e.,

j *, etc.) are not possible with string variables. Two forms of LET statement for string

variables are possible:

LET $str = 23Hstring of 23 characters;

j LET $stri = $str2;

! In the first case, the 23 characters following the H are assigned to the string variable i

$str. In the second case, the string "$str2" is copied into "stri." Examples of these ; statements include:

j LET $title = 3HBox;

LET $label = 6hBottom;

LET $x = $label;

Note that if a string variable appears on the right hand side of the statement, it must

have been previously defined. Spaces are not ignored within a string constant; they

become part of the string. Any ASCII character may be part of a string.

There is one other form for setting up a string, it involves the STRING function. The

STRING function may only appear in this form, specifically, it may not appear in SET

statement argument lists, or MACRO or MREF statements. However, string constants,

such as "6hstring" and variables such as "$x" may appear in SET statements and MACRO

A.

8
Statements.

&

£The form of a STRING function statement is:

LET $str = STRING(expression,format);

Where "expression" is any normal integer, real or double precision expression, "$str"

is a string variable name, and "format" is a format field similar to the format fields

useable in a FORTRAN FORMAT statement. The allowable format fields are:

t£*

Jr

Iw

Fw.d

Ew.d

Dw.d

y ”The effect of this statement is to convert the numeric value of the expression into characters,

i.e., the statement:

LET $PI = STRING(3.14159,F7.5);

~ will result in the same thing as LET $PI = 7H3.14159;

Of course, the usefulness of the STRING function is that expressions can be converted,

rather than constants. Thus:

LET x = 1; LET y

= 2; LET $xyz = 5TRING(x+y+ 1 ,F 5.0);

will result in the same thing as LET $xyz = 5H 4.;

^he rules for the format fields follow the standard FORTRAN convention. "Iw" causes

^teger conversion, resulting in "w" characters. "Fw.d" cause real conversion, resulting

ln "w" characters, with "d" characters after the decimal point. "Ew.d" results in real

conversion, but using an exponent form, and "Dw.d" is the same as "E," but for double

k A.?
values. Note that this is one place where mixed mode is not allowed — the type of format '

field and the type of the result of the expression must be identical.

. 1!

SET statement

The SET statement establishes directory and paremeter data entries for the specified

IGES entity. There are two possible forms for this statement. The first form is:

SET //ptr = entity number, argument list;

"//ptr" is a pointer variable, such as "//XYZ," "entity number" is an IGES entity number,

such as "110," and "argument list" is a group of variables which are to be written in \ the paremeter data section of the entity.

1

i The argument list may contain expressions, and may spread over more than one card.

At least one argument must be present, i.e., the argument list may not be null. The

^ entity number may not be an expression, it must be an integer constant. The pointer

j

variable will be assigned a value corresponding to the directory sequence number of •? the directory entry of the entity created. j

• -j i The format of the argument list written out in the paremeter data section depends on .j the type of argument in the list. Integer arguments will be written in integer format, } reals as reals, and doubles as doubles. Thus, functions such as FLOAT, INT, DBLE, etc.,

might be of use in order to force an expression that, for example, would normally evaluate

to an integer value to be written as a real number.

1

Note that the STRING function is not allowable in a SET statement — use a separate

LET statement with a string variable instead.

Examples of this type of SET statement:

SET //LINE = 1 10,X1,Y1,Z,X2,Y2,Z,0,0;

SET //ABC = 228,Z,A+B/C,Y 1 ,X2,Y2+ 1,0,0;

SET //qwe = 264,15Hstrings allowed, X,Y,$this2;

A.10

i
pie second form of SET statement has the following syntax:

SET #ptri = #ptr2;

|pus causes "#ptri" to be assigned the same value as is currently in "#ptr2." This is

fanalagous to a LET statement, but note that pointer variables may not appear in LET

^statements. There may be no expressions in this statement, nor may there be constants.

:The pointer on the right hand side should already be defined.

REPEAT statement

The REPEAT statement causes a group of statements, terminated by a CONTINUE

statement, to be repeated a specified number of times. The form of a REPEAT statement

is:

REPEAT expression;

The expression is evaluated, and the resulting value is the number of times the statements

will be repeated. The expression may be of integer, real or double type; in the case

of real or double expressions, the result is truncated to determine the repeat count.

If the repeat count is zero or negative, the group of statements is still executed one

time.

Examples of REPEAT statements:

REPEAT 3; REPEAT N+l;

REPEAT 0; (will still go through one time)

REPEAT X+Y;

There is a limit of ten REPEAT statements that may be nested inside one another.

After a REPEAT statement such as REPEAT N; it is legal to alter the value of N, this

does not affect the repeat count. Also, note that REPEAT is unlike a FORTRAN "DO,"

because there is no variable being incremented on every pass.

A. 11
CONTINUE statement

The CONTINUE statement marks the end of a REPEAT group. The form of a CONTINUE

statement is:

CONTINUE;

When a CONTINUE statement is encountered, the repeat count is decremented by one,

and checked to see if it is greater than zero. If it is, the interpreter goes back to the

first statement after the most recent REPEAT. If not, then the next statement is processed.

The number of REPEAT’S and CONTINUED in a macro should be the same. CONTINUE

is not implied by ENDM.

MACRO statement

The MACRO statement is used to signify the start of a macro definition. The format

of a MACRO statement is:

MACRO, entity number, argument list;

Where "entity number" is the entity number of the macro, and "argument list" is a list of parameters that are to be assigned values at execution time. The argument list may

not be null. The first statement in every macro definition must be a MACRO statement.

Note that the argument list may not contain expressions; only symbolic variable names,

of type integer, real, double precision, string, or pointer.

The MACRO statement must be the first statement of the macro; and there may be no other MACRO statements inside a macro. Use the MREF statement to reference

other macros; but defining a macro inside of another macro is meaningless.

Examples of a MACRO statement:

MACRO,6 10,X 1,Y 1 ,X2,Y2,$ABC,#PR;

A.12
P

: MACRO,600,A,B,C;

& MACRO,600,!X,!Y,I;

K - ENDM statement

v

;ENDM signifies the end of a macro. The form of an ENDM statement is:

ENDM;

.All macros must have an ENDM statement as their last statement. ENDM is not implied

by the end of the parameter data section.

MREF statement

The MREF statement is used to reference another macro from inside a macro definition.

The format of a MREF statement is:

MREF,ptr, entity number,argument list;

Where "ptr" may be either a pointer variable or an integer expression; the value refers

to the DE block of the definition of the macro being referenced. ’’Entity number" is the entity number of the macro being referenced, and "argument list" is an argument

list exactly like that of a SET statement. The effect of the argument list is to replace

the symbolic names found in the MACRO definition with the value of the expressions

contained in the MREF statement, so that execution of the referenced macro will start

with the appropriate values. Note that MREF does not start expansion of the referenced

MACRO, rather it creates an entity entry which may later be expanded. It is thus not

possible for a MACRO being used in the current macro; nor is it possible for the macro

k^ing referenced to have access to any of those values except for those in the argument

Ust. Even then, it is not possible for the occurence of a MREF statement to alter any

°1 those values.

Examples of MREF statements:

A. 13
MREF,#macl,600,Xl,Yl,Zl,X2,Y2,3.1;

MREF,33,621,A,B,3+X/W+l,6*W,3.,0,6Hstring,$x;

When a MREF statement is encountered during a MACRO expansion, pertinent information

will be printed out to enable the referenced macro to be expanded in another pass.

Note that it is not strictly necessary for the values in a MREF statement to be of the 1 same type as the values in the definition MACRO, within certain limitations: Integer,

Real, and Double values may be freely mixed, although it might be considered a good

idea not to do so. String values may only appear where string variables appear in the

definition. Pointers may or may not be mixed with integer type; this is machine dependant

and so should be avoided. Pointers may never be mixed with reals or doubles.

Attributes:

Attributes may be set using the LET statement. The format for doing so is:

LET /attribute name = expression;

orLET /attribute name = /HDR;

The first form allows an attribute to be set to any constant value, including numeric

expressions. Note however that the use of expressions is discouraged. Attributes may

also be set to string constants, or variables, but not the result of a STRING function.

Some examples of the first type of assignment:

LET /LEV = 1; LET /VIEW = 3; LET /LABEL = 6HBottom;

LET /LABEL = $X;

The second form allows restoring an attribute to its default value. Examples:

A.lU

LET / LEV = /HDR;

LET /LABEL = /HDR;
word "/HDR" is the only non-constant that is allowed on the right hand side of an

ibute assignment statement. The effect is to restore the value of the attribute

what it was in the directory entry for the instance, or in some cases to a specified

.fault value. The defaults are dscribed below.

attribute may not be mixed with any other variable type; nor may they appear anywhere

ut in the above two forms of LET statements.

The allowable attribute names, and their defaults are given here. A default of /HDR

/LFP

/LEV

/VIEW

/MTX

/CE

/BS

/SE

/ET

/LW

/PN

/HDR

/HDR

/HDR

/HDR

0

/HDR

subordinate

/HDR

/HDR

/HDR

/FORM 0

/LABEL

/SUB

(blank)

0

APPENDIX B: IGES SPLINE REPRESENTATIONS

Introduction

IGES includes two different types of spline representations:

1. A Parametric Piecewise Cubic Polynomial (for curves)

2. A Grid of General Bicubic Patches (for surfaces).

Most of the spline types used in CAD/CAM systems can be mapped into these representations

without change in shape. Spline types supported in IGES include parametric cubics,

piecewise linear, Wilson-Fowler, modified Wilson-Fowler, B-splines, cartesian product

B-splines, and Coon's patches. Spline types not supported include splines of fourth degree

or higher, nonlinear splines, splines under tension, rational cubics, and extended Coon's

patches.

Spline Functions

In IGES, spline curves are represented by a number of cubic spline functions, one for each of the X,Y,Z coordinates. Each a cubic spline function S(u) is defined by

1. N: The number of segments,

2. t(l),...,t(N+l): The endpoints and the breakpoints separating the cubic

polynomial segments,

3. a(i),b(i),c(i),d(i), i=l,N+l: The coefficients of the polynomials representing the spline in each of the N segments (the N+lst segment is not

requried to define the spline, but is included to make the endpoint value

and derivative available without evaluating the polynomial),

4. CYTPE: The spline type. (l=linear, 2=quadratic, 3=cubic, 4=WilsonFowler, 5=Modified Wilson-Fowler),

5. H: The number of continuous derivatives.

B.l
To evaluate the spline at a point "u", first determine the segment containing "u",

the segment "i" such that t(i)<u<t(i+l), then evaluate the cubic polynomial in that segra

i.e., compute

S(u) = A(i) + B(i)*(uu) + C(i)*(uu)**2 + D(i)*(uu)**3

where uu = u-t(i).

The polynomial is written in terms of the relative displacement uu (rather than 1$

that the values of the spline at the breakpoints can be read directly out of the representa

(i.e., S(t(i)) = A(i), i=l,N). Computations using the relative displacement also have fe floating point roundoff error.

Ij

7

. i This particular "piecewise polynomial" form is only one of many used;

represent the spline segments in CAD/CAM systems. Other representations employ

include:

1. End points E1,E2 and end slopes S1,S2: The spline can be evaluat

using the "Her mite" basis (see p.59 deBoor).

2. Values at four points: The spline value can be computed from t Lagrange or Newton interpolation formulae (see deBoor).

3.

End points and "control" points: There are a number of schemes 1 computing splines from control points which will not be describ

here.

;

: 1 With a little algebra (e.g., in deBoor), any of these representations can be convert

into any other.

Splines can also be represented as a linear combination of the B-spb ; basis functions. In CAD/CAM systems, 3-splines have been used directly in curve fittJ

(e.g., the B-spline Bezier polygon (Gordon and Riesenfeld)) and indirectly in various spb

calculations (e.g., computing a cubic spline interpolate). For every set of breakpou

t(l),...,t(N+l) and degree of continuity h, a set of B-spline functions B(l,u),B(2,u),...,B(n*
can be constructed (see deBoor). Then, for any piecewise polynomial S(u) with these

breakpoints and continuity there is a set of B-spline coefficients a(l),... a(n*) such that

S(u) can be represented as a linear combination of these B-splines

S(u) = a(l)*B(l,u) + a(2)*B(2,u) + ... + a(n*)*B(n*,u)

where n* = (N-l)*(3-d)+4.

B-splines can be computed from piecewise polynomials and vice versa (see p.l 16 deBoor

and subroutine BSPLPP (deBoor)).

Several other types of spline representations (e.g., cardinal bases) have

been employed, but they are much less common and do not appear to present a problem

for IGES.

Spline Curves

Since curves in CAD/CAM problems are frequently many-valued, spline

functions cannot represent such curves adequately. The most common approach to curve fitting is to parameterize the curves, i.e., to represent each curve as two or three

spline functions (one for each coordinate)

X(u) = Sx(u),

Y(u) = Sy(u),

Z(u) = Sz(u),

which sketch out the curve as the parameter u varies from t(l) to t(N+l). All of the

spline function representations of the previous section can be generalized to parametric

curves and the algorithms for converting spline curves from one representation to the

other follow easily from multiple applications of the corresponding function conversion

algorithms.

Wilson-Fowier Curves: In the early sixties, the Wilson-Fowier spline (a

special case of parametric cubics) was developed for curve fitting (see APT). It is still used in many turnkey drafting systems bur is generally being phased out in favor of

B . 3
parametric cubic splines. In the Wilson-Fowler representation, each spline seg

is defined in a separate coordinate system whose X-axis begins at one endpoint of ! segment and passes through the other. Each spline segment is then defined by a

spline function Swf(x) and the coordinates of the two endpoints. These Wilson-Fo

splines can be converted to IGES splines by rotating the parametric spline (u,Sw

back into the current coordinate system; however, most types of IGES splines

be converted to Wilson-Fowler splines.

Spline Surfaces

The IGES spline surface is the analog of the IGES spline curve, i.e., i

also pieced together out of other primitive functions. The surface is a grid

parametric bicubic patches defined by:

1. M: The number of grid lines in u,

2. tu(l),...,tu(M+l): The grid lines in u,

3. N: The number of grid lines in v,

4. tv(l),...,tv(N+l): The grid lines in v,

5. Ax(i,j),Bx(i,j),...,Ay(i,j),..., Az(i,j),..., i=l,M; j=l,N: The (M+1)*(N+

* sets of 3*16 coefficients defining the bicubic polynomial for ea

of the 3 coordinates of the patch. As for the parametric curve, additio

patches not strictly required to define the surface are included

make the edge values and derivatives available without explici

evaluating the polynomial,

6 CTYPE: The spline type. (l=linear, 2=quadratic, 3=cubic, 4=Wilso,

Fowler, 5=Modified Wilson-Fowler),

7. PTYPE: The patch type. (! =tensor product, 0=general),

8 . H: The number of continuous derivatives.

B.4
To evaluate the spline at a point "u,v", first determine the patch containing the point

"u,v" in the parameter grid, i.e., the patch n

i,j" such that tu(i) < u <tu(i+l) and tv(j) <v<

tv(j+l), then evaluate the bicubic polynomial in that patch, i.e., compute

X(u,v) = Ax(i,j) *w**0 *uu**0 + Bx(i,j) *w**0 *uu**l

+ Cx(i,j) *vv**0 *uu**2 + Dx(i,j) *vv**0 *uu**3

+ Ex(i,j) *w**l *uu**0 + Fx(i,j) *w**l *uu**l

+ Gx(i,j) *vv**l *uu**2 + Hx(i,j) *vv**l *uu**3

+ Kx(i,j) *w**2 *uu**0 + Lx(i,j) *w**2 *uu-*-*l + Mx(i,j) *vv**2 *uu**2 + Nx(i,j) *vv**2 *uu**3

+ Px(i,j) *vv**3 *uu**0 + Qx(i,j) *w+*3 *uu-iH(‘l

+ Rx(i,j) *vv**3 *uu'JH<'2 + Sx(i,j) *vv*~*3 *uu**3

Y(u,v) = Ay(i,j) . . .

Z(u,v) = Az(i,j) . . .

The patches in the IGES spline surface are equivalent to the bicubic surface

patch (or the Coon's patch, see p. 170 (Rogers and Adams) for the conversion details).

The parameters of the Coon's patch are given as the corner points, corner slopes, and

twist vectors (similar in spirit to the point/slope representation for curves).

The Cartesian product B-splines and polynomials are special cases of the

IGES spline surface (see p. 176 Rogers and Adams). Each patch on a cartesian product

surface is the product of two polynomials, e.g., for the patch coefficients a,b,c,d,e,f,g,

X(u,v) = (a + b*u + c*u*"*2 + d*u**3)

* (e + f*v + g*v**2 + h*v**3).

A Cartesian product patch can be converted to an IGES patch by computing the tensor

product of the coefficients of the u and v polynomials. If an IGES spline surface patch

is a Cartesian product, then the coefficients of the u and v polynomials defining it can

be extracted from the first row and column of the IGES patch coefficients.

B . 5
Cartesian product B-splines can also be converted to the IGES form. I the B-spline coefficients are converted to Cartesian product patch coefficients,

those coefficients are converted to IGES surface coefficients (the process is descr

in Chapter XVII (deBoor) and subroutine BSPP2D (deBoor)).

The Cartesian product IGES form can be converted to Cartesian prc B-splines, but this conversion process has not been studied so thoroughly (we have

reference to an existing FORTRAN code). As in the inverse conversion, Cartesian prc polynomial coefficients would be used as an intermediate representation. First,

IGES surface is converted to polynomials, then the polynomials are converted to B-sp

coefficients by a tensor-product generalization of the 1-D conversion process (s 116 deBoor).

Summary

Most of the conversions are relatively straightforward. The basic algebr

covered in standard reference works such as (deBoor), (Coons), and (Rogers and Ada

FORTRAN codes are available for many of the more complicated conversion operati

(e.g., the B-Spline Code distributed with deBoor). However, because the IGES spiir

more general than splines found in many CAD/CAM systems (e.g., the APT Wilson-Fo

spline). Shape-preserving transformations out of the IGES spline format may not

possible. Difficulties encountered include restrictions such as uniform breakpoint spa'

and smooth second derivatives. In these cases, the conversion must be accomplished by

interpolation or smoothing process.

B . 6
References

1. APT Computer System Manual. Volume 2 - Subroutine Library. AT Research

Institute, 196S.

2. C. deBoor. A Practical Guide to Splines. Springer-Verlag, 1978.

3. S.A. Coones. "Surfaces for Computer Aided Design of Space Forms." MIT Project

MAC TR-41, June 1967.

4. W.J. Gordon and R.F. Riesenfeld. "B-Spline Curves and Surfaces." in R.E. Barnhill

and R.F. Riesenfeld, ed. Computer Aided Geometric Design. Academic Press,

1974.

5. D.F. Rogers and J.A. Adams. Mathematical Elements for Computer Graphics.

McGraw-Hill, 1976.

B . 7
::

r . ' I
APPENDIX C: IGE5-ELECTRICAL EXAMPLE

It is the purpose of IGES to transfer information from processor to processor in a computeraided design and manufacturing system. As such, IGES must be able to completely represent a design at any point in its development. To make this point more clear, let us examine

a simple electrical circuit shown in Figure 1. We will consider the signal string running

from Pin R1 to Pin 6 of device Dl.

At the earliest stage in its design, the signal string is represented only in its logical sense. Figure 2 is a model of an associativity representing the logical signal string.

Class 1 of the signal string associativity shows its logical structure. In Figure 2, this

is the branch in the middle marked R1 and Dl-6. The signal name itself, SRI, is represented

in the associativity by means of a property.

The logical structure of the string is sufficient, for example, to represent the information

necessary for simulating the circuit. That is, if all signal strings were represented as

in class 1 of Figure 2, a logic simulator could be run which would simulate the circuit

and allow the engineer to verify that the circuit did, in fact, accomplish the design

goals. Similar information is necessary for generating test patterns to be applied to

the completed circuit to verify that the components and wiring in the circuit are, in

fact, correct and that the circuit functions as designed.

At the next stage in the design, our signal string and others like it are represented as

a schematic diagram. It is a simple matter to extend the associativity in Figure 2 to

pick up the details of the schematic diagram. In the case of SRI, this is represented

by class 2 on the left-hand side marked "schematic goemetry."

Each of the pointers represented in Figure 2 as blanks would point to an element in

the signal string, i.e., a specific line in the schematic. The complete design, up to this

point, is represented by the schematic as shown in Figure 1 plus an associativity, such

as the one shown in Figure 2 for SRI, representing each of the signal strings in the schematic.

Up to this point, we have assumed that the information necessary for constructing the

logical signal string existed before the schematic diagram was drawn. Our argument

C.l
C .4

f;

G[
SRI

SIGNAL

NAME

I

o

u - N Kl ? - - (M „ — —.—..Q^OOO

UJ

a:to

C . 7

APPENDIX D: MECHANICAL PART FILE EXAMPLE

This appendix contains a sample mechanical part encoded in the IGES format. The

sample part which is shown in Figure D-l, is two-dimensional and is comprised of lines,

circles, a linear dimension, a radius dimension and an angular dimension. The drafting

entities, by definition, are made up of witness lines, general notes and leader entities.

The encoded IGES file is shown in Table D-l. On line P0000020 of the table, the

degree symbol is shown as a part of the angular dimension entity. This symbol is represented by the octal constant 37 as dictated by the font code of zero, see figure

3.2-11.

D.l
TABLE D-l IGES ENCODED FILE

SAMPLE PART SOOOl

, ,11H112C87901 . 5 ,11HIGES SAMPLE,6HME1.00,1H1,16,8,24,8,56,11H112C87901.5G0001

,1,1,2H1N,0,. 01, 13H012880, 093243,. 1345, 800, 7HD. MOORE, 4HBCAC GOOC^

12400000001 1 000100 DOOOG

124 1 MTX 1D000*

11000000002 1 1 10 0 000000 DOOOi

110 0 1 1 L lDOOOil

11000000003 1 1 10 0 000000 Doooii 110 0 1 1 L 2D000I

11000000004 1 1 10 0 000000 DOOOl

110 0 1 1 L 30000$

11000000005 1 1 10 0 000000 DOOO*

110 0 1 1 L 4DOOO*

11000000006 1 1 10 0 000000 DOOM

no o 1 1 L 5DOOOC

11000000007 1 1 10 0 000000 DOOOC

no o 1 1 L 6DOOO(

11000000008 1 1 10 0 000000 DOOQC

no o 1 1 L 7DOOOG

11000000009 1 1 10 0 000000 DOOOl

no o 1 1 L 8D0003

11000000010 1 1 10 0 000000 DOOOCj

no o 1 1 L 9 DOOOOj

11000000011 1 1 10 0 000000 D000<|

no o 1 1 L LOD0009

10000000012 1 1 10 0 000000 D000GS

no o 1

i1 c 1 DOOOCj

11000000013 1 1 10 0 000000 Doooa

no o 1 1 L 1100000

21200000014 1 1 1200000055 0 000101 DOOO0

212 0 1 1 DOOOOi

21400000015 1 1 1200000055 0 000101 DOOOOj

214 0 1 1 1 DOOOd

21400000016 1 1 1200000055 0 000101 ooooqj

214 0 1 1 1 DOOOd

10600000017 1 1 1200000055 0 000101 DOOOGS 106 0 1 2 40 DOOOOj

21600000019 1 1 1200000055 0 000001 DOOO0

216 0 1 1 DOOOd

21200000020 1 1 1200000055 0 000101 DGOOGI 212 0 i 1 DOOOOi

21400000021 1 1 1200000055 0 000101 DOOOd

214 0 1 1 1 DOOOOj

21400000022 1 1 1200000055 0 000101 DOOOO

214 0 1 1 1 DOOOO

D.2
TABLE D-l IGES ENCODED FILE (continued)

10600000023 1 1 1200000055 0 000101 D0000043

106 0 1 2 40 D0000044

20200000025 1 1 1200000055 0 000001 D0000045

202 0 1 1 D0000046

21200000026 1 1 1200000055 0 000101 D0000047

212 0 1 1 D0000048

21400000027 1 1 1200000055 0 000101 D0000049

214 0 1 1 1 D0000050

22200000028 1 1 1200000055 0 000001 D0000051

222 0 1 1 D0000052

10000000029 1 1 10 0 000000 D0000053

100 0 1 1 c 2D0000054

41000000030 1 00000001 000001 D0000055

410 1 D0000056

124.1.0.

110.2.0175.1.4795.0. 0.0.0.0.0.0.0.0.1.0.0.0.0.0.0.0.0.0.1.0.0.0;

110.4.4385.1.4795.0. 0.4.4385.1.4795.0.0;

110.4.7785.3.0935.0. 0.4.4385.2.7535.0.0;

0.5.9180.3.0935.0.0; 110.5.918.3.0935.0.

0.5.918.3.9005.0.0; 110.5.2455.4.4385.0.

0.2.0175.4.4385.0.0; 110.2.0175.4.4385.0.

0.2.0175.1.4795.0.0;

110.2.421.1.883.0.

0.3.228.1.883.0.0;

110.3.228.1.883.0.

0.3.228.3.228.0.0;

110.3.228.3.228.0.

0.2.421.3.228.0.0;

110.2.421.3.228.0.

0.2.421.1.883.0.0;

100.0.

0.4.7785.2.7535.4.7785.3.0935.4.4385.2.7535;

110.5.918.3.9005.0.

0.5.2455.4.4385.0.0;

212. 1.

6..

48.. 1.0. 0.0. 0.0. 0.0.. 807. 2. 8245. 0.0;6H2. 9590;

214.

1..

1.. 08. 0.0. 1.157. 4. 4385. 1.157. 3. 0245;

214.

1..

1.. 08. 0.0. 1.157. 1.4795. 1.157. 2. 7245;

106.1.4.0.

0.2.0175.4.4385.1.07888.4.4385.2.0175.1.4795.1.07888,

1.4795;

216 , 00000027 , 00000029 , 00000031 , 00000033

212.

1.8..

64.. 1.0. 0.0.0. 0.0. 0.6. 187. 4. 035. 0.0.8H38. 6597°;

214.

1..

1.. 08. 0.0. 6. 38174. 3. 5295. 6. 17118. 3. 315;

214.

1..

1.. 08. 0.0. 6. 70059. 4. 4385. 6. 66967. 4. 7369;

00000001P0000001

00000003 P0000002

00000005P0000003

00000007P0000004

00000009P0000005

0000001 1P0000006

00000013P0000007

00000015P0000008

00000017P0000009

00000019P0000010

00000021P0000011

00000023P0000012

00000025P0000013

00000027P0000014

00000029P0000015

00000031 P0000016

00000033P0000017

00000033P0000018

00000035P0000019

00000037P0000020

00000039P0000021

00000041 P0000022

106.1.4.0.

0.5. 9485 .3.8761.6. 44274 . 3 . 48071 . 5 . 28456 . 4 . 4385 . 6 . 7787200000043P0000023

,4.4385;

202 , 00000037 , 00000043 , 5 . 2455 , 4 . 4385 ,1.45509, 00000039 , 00000041

212.1 .7.

56. .1 .0.0.0.0.0.0.0.5.142.2. 64.0.0.7H.3400 R;

214.

2..

1.. 08. 0.0. 4. 53809. 2. 99392. 4. 842. 2. 69. 5. 042. 2. 69;

222 , 00000047 , 00000049 ,4.7785,2.7535;

100.0.

0.4.035.3.766.4.4385.3.766.4.4385.3.766;

410,1;

S0000001G0000002D0000056P00000030

00000043P0000024

00000045P0000025

00000047P0000026

00000049P0000027

00000051P0000C28

00000053P0000029

00000055P0000030

D.3

ft U.s. DEPT. a=- _OMM.

^bibliographic data

SHEET

1. PUBLICATION OR REPORT NO. NBSIR 80-1978 (R)

Accession No. 3« . Recipient? .Aece$5«cri No. .

•

TITLE AND SUBTITLE

£

‘Initial Graphics Exchange Specification (IGES)

iv

5. Publication Date

Performing Organization. Code

7. AUTHOR! S)

B[Roger N. Nagel, Walt W. Braithwaite, and Philip R. Kennicott

8. Performing Organ. Report No.

& PERFORMING ORGANIZATION NAME AND ADDRESS

NATIONAL BUREAU OF STANDARDS

: DEPARTMENT OF COMMERCE

: WASHINGTON, DC 20234

r

' '' •'

11. Contract/Grant No. FY145 7-80-00012

12. SPONSORING ORGANIZATION NAME AND COMPLETE ADDRESS (Street, City, State, ZIP)

i Air Force ICAM Program, (Integrated Computer Aided

Manufacturing), Wright-Patterson AFB, OH 45433

13. Type of Report & Period Covered

Oct. 1979 - Jan. 1980

Agency Code u

15. SUPPLEMENTARY NOTES

1 1 Document describes a computer program; SF-185, FIPS Software Summary, is attached.

literature survey, mention it here.) The Initial Graphics Exchange Specification (IGES) contained in this report was

developed as a first step in facilitating the communication of data between CAD/CAM

systems. The specification contains a defined format for an exchange file written

in ASCII characters on 80 column card images. The format consists of entity

definitions ccr geometry, drafting and structural information. In addition, definition

entities are provided as a means of expanding the utility of the IGES.

h. key words (six to twelve entries; alphabetical order; capitalize only the first letter oi the first key word unless a proper name;

separated by semicolons)

Computer Aided Design (CAD); Computer Aided Manufacturing (CAM); design drawing,

exchange format; geometry; graphics; part model

^•AVAILABILITY —~1 WinmUectTL.

. .I,!// Ml'

19. SECURITY CLASS

(THIS REPORT)

21. NO. OF

PRINTED PAGES

— j. ' L- lS For Official Distribution. Do Not Release to NTIS

/

^ UNCLASSIFIED

i ; Order From Sup. of Doc., U.S. Government Printing Office, Washington, DC

20402, SD Stock No. SN003-003-

20. SECURITY CLASS

(THIS PAGE)

22. Price G Order From National Technical Information Service (NTIS), Springfield, ^ VA. 22161 UNCLASSIFIED