Skip to main content
Jump to: navigation, search

IGES file Specification

Revision as of 15:15, 17 June 2016 by (Talk | contribs) (Block (Type 150))

What is IGES

The Initial Graphics Exchange Specification (IGES) outlines a file format for the transfer of geometry data and CAD models. It is an older specification, and was most recently published as version 6 here. It can be used to represent both Boundary-Representation (B-Rep) and Constructive Solid Geometry (CSG) geometries, as well as two dimensional CAD diagrams.

File Format

The file is an ASCII text based format, having each line be exactly 80 characters long. As explained in the Wikipedia article on IGES, the file is split into five sections, denoted by the specific upper case letter in the 73rd column. Those sections are Start (S), Global (G), Data Entry (D), Parameter Data (P), and Terminate (T) sections. The Data Entry and Parameter Data sections are commonly abbreviated DE and PD, respectively.

File Header (Start and Global Sections

The Start and Global sections contain basic information about the name of the file and its source, the delimiters for the Parameter Data section, the author of the file, and other general information. The start field contains human readable descriptions of the file, and my have any characters in columns 1-72, with the line ending with the section header and section line number. There must be at least 1 line of the Start section. The global section contains preprocessor data. It also must be present in the file and end with the G000000# format. For example, here is the Start and Global sections from the example document on Wikipedia:

                                                                        S      1
1H,,1H;,4HSLOT,37H$1$DUA2:[IGESLIB.BDRAFT.B2I]SLOT.IGS;,                G      1
17HBravo3 BravoDRAFT,31HBravo3->IGES V3.002 (02-Oct-87),32,38,6,38,15,  G      2
4HSLOT,1.,1,4HINCH,8,0.08,13H871006.192927,1.E-06,6.,                   G      3
31HD. A. Harrod, Tel. 313/995-6333,24HAPPLICON - Ann Arbor, MI,4,0;     G      4

Note that the strings are expressed in Hollerith format, meaning that every string has the number of characters it contains followed by an H directly preceding it. For example, the string IGES would be 4HIGES.

File Data (DE and PD Sections)

The Data Entry and Parameter Data sections contain the information on the basic data of the IGES file format: it’s entities. There are around 150 different defined entities in IGES (including differing ‘forms’ of some entity types). We will focus on the more common and geometry centered entities. An entity is described in the Data Entry section as shown here:

     116       1       0       1       0       0       0       0       1D      1
     116       1       5       1       0                               0D      2

First, the file lists all of the entities it contains in the Data entry section. This section is specified by a D in the 73rd column and lists properties about the entity it describes. Each line in this section is split into 10 8 character fields, and each entity is given two lines of the section. This indicates that every entity has 20 fields in the Data Entry section, which are usually right justified. These fields map to the following properties:

Col 1-8 Col 9-16 Col 17-24 Col 25-32 Col 33-40 Col 41-48 Col 49-56 Col 57-64 Col 65-72 Col 73-80
Entity Type PD pointer Structure Line Font Pattern Level View Transformation matrix pointer Label Display Associativity Status Number Section Code and Sequence Number
Entity Type Line Weight Number Color Number Parameter Line Count Form Number Reserved Reserved Entity Label Entity Subscript Number Section Code and Sequence Number

These fields indicate the following properties about the entity being declared:

  • Entity Type This is the type of entity being described. For example, 116 describes a Point entity.
  • PD pointer This gives the location for this entities data in the Parameter Data section. This location is simply the line number inside the PD section that has the first line of this entity data.
  • Structure Zero or pointer to definition entity. Not applicable for most entities
  • Line Font Pattern Number or pointer to line font pattern entity. Number signifies:
    • 0 No pattern specified (default)
    • 1 Solid
    • 2 Dashed
    • 3 Phantom
    • 4 Centerline
    • 5 Dotted
  • Level Specifies levels to be associated with this entity. Allows entity to appear on more than one level
  • View Specifies viewing options. These are:

0 Indicates equal visibility and characteristics in all views. Default Pointer to the View entity (Type 410) that it can be viewed from Reference a View Visible Associativity entity (Type 402, Form 3)

  • Transformation Matrix pointer References a transformation matrix entity (Type 124) or is zero by default (no transformation)
  • Label Display Associativity’’’ References a Label Display Associativity (Type 402, Form 5) which defines how the entity label appears.
  • Status Number Contains four sections of two numbers. 1-2: Blank status. Either 00 for normal or 01 for blanked. 3-4: Subordinate entity switch: is 00 for independent, 01 for physically dependent, 02 for logically dependent, and 03 for both. 5-6: Entity Use flag: is either 00 for Geometry, 01 for annotation, 02 for definition, 03 for Other, 04 for Logical, 05 for 2D parametric, and 06 for Construction geometry. Finally, 7-8 is the hierarchy, where 00 indicates global top down (use this entity’s characteristics), 01 is global defer(do not use this entity’s characteristics), and 02 is use hierarchy property(use Hierarchy Entity (Type 406, Form 10)to determine characteristics of hierarchical grouping).
  • Sequence Number Specified by D#, where # is the line number for this section (not from the top of the file). This is also used to point to this Data Entry entity.
  • Entity Type See above- it is specified twice per entity listing
  • Line Weight Number Specifies thickness when displaying entity. Smallest is 1, 0 is default
  • Color Number Specifies the entity color. Allowed integer values are:
    • 0 No color (default)
    • 1 Black
    • 2 Red
    • 3 Green
    • 4 Blue
    • 5 Yellow
    • 6 Magenta
    • 7 Cyan
    • 8 White
  • Parameter Line Count Number Specifies the number of lines this entity takes up in the Parameter Data Section
  • Form Number Indicates the form, or the representation of this entity. Changes how the parameter data is interpreted. Default is 0
  • Reserved Field Not used
  • Reserved Field Not used
  • Entity Label Application specified identifier- right justified
  • Subscript Number Numeric qualifier for the entity label. Both together form a unique identifier for the entity
  • Sequence Number See above. This will be D#+1, as each entity is specified on two lines.

The Parameter Data section comes right after the Data Entries, and lists the data for each respective entry. A typical entry looks something like this:

126,1,1,1,0,1,0,-5.,-5.,5.,5.,1.,1.,10.,0.,0.,10.,10.,0.,-5.,5.,       3P      3
0.,0.,1.;                                                              3P      4

Note the corresponding Data Entry:

     126       3       0       0       0       0       0       000010501D      3
     126       0       0       2       0       0       0               0D      4

The parameter data section uses the delimiters specified in the Global section to list parameters for the entity. These delimiters are usually commas to separate parameters and a semi-colon to end the listing. The parameter data section listing starts with the entity type followed by parameter data in columns 4-64. Columns 65 to 72 contain the Data Entry pointer number, which gives the index of the data entry listing for this entity (must be an odd number, as the even numbers contain the other half of the Data Entry). The last columns, 73-80, contain the Sequence Number, being P#, similar to the Data Entry section.


Circular Arc (Type 100)

Simple circular arc of constant radius. Usually defined with a Transformation Matrix Entity (Type 124).

Index in list Type of data Name Description
1 REAL Z z displacement on XT,YT plane
2 REAL X x coordinate of center
3 REAL Y y coordinate of center
4 REAL X1 x coordinate of start
5 REAL Y1 y coordinate of start
6 REAL X2 x coordinate of end
7 REAL Y2 y coordinate of end

Composite Curve (Type 102)

Groups other curves to form a composite. Can use Ordered List, Point, Connected Point, and Parameterized Curve entities.

Index in list Type of data Name Description
1 REAL N Number of curves comprising this entity
2 Pointer DE(1) Pointer to first curve
1+N Pointer DE(N) Pointer to last curve

Conic Arc (Type 104)

Arc defined by the equation: Axt^2 + Bxtyt + Cyt^2 + Dxt + Eyt + F = 0, with a Transformation Matrix (Entity 124). Can define an ellipse, parabola, or hyperbola.

The definitions of the terms ellipse, parabola, and hyperbola are given in terms of the quantities Q1,Q2, andQ3. These quantities are:

           |  A   B/2  D/2 |        |  A   B/2 | 
       Q1= | B/2   C   E/2 |   Q2 = | B/2   C  |   Q3 = A + C 
           | D/2  E/2   F  | 

A parent conic curve is:

  • An ellipse if Q2 > 0 and Q1Q3 < 0.
  • A hyperbola if Q2 < 0 and Q1 != 0.
  • A parabola if Q2 = 0 and Q1 != 0.
Index in list Type of data Name Description
1 REAL A coefficient of xt^2
2 REAL B coefficient of xtyt
3 REAL C coefficient of yt^2
4 REAL D coefficient of xt
5 REAL E coefficient of yt
6 REAL F scalar coefficient
7 REAL X1 x coordinate of start point
8 REAL Y1 y coordinate of start point
9 REAL Z1 z coordinate of start point
10 REAL X2 x coordinate of end point
11 REAL Y2 y coordinate of end point
12 REAL Z2 z coordinate of end point

Copious Data (Type 106)

The Copious Data entity defines a set of points. There are three different interpretations, depending on first parameter. It is an INT, and is either 1,2, or 3. 1 Indicates that the points are couples(x,y), 2 indicates the points are triples (x,y,z), and 3 indicates the points are sextuplets(x,y,z,i,j,k). If the format is 1, then the first parameter after gives the common Z value for the ordered xy pairs.

Index in list Type of data Name Description
1 INT Type Either 1,2, or 3
2 REAL Z / XP1 If 1 is above, common z
if 2 or 3, first value
N REAL YPN / ZPN / KPN Last value for last point

Plane (Type 108)

Defines a plane by Ax + By +Cz = D, and a curve pointer that gives the plane its bounds. Also gives a display symbol at a specified vertex and with a specified size.

Index in list Type of data Name Description
1 REAL A coefficient of x
2 REAL B coefficient of y
3 REAL C coefficient of z
4 REAL D scalar coefficient
5 Pointer Bounds Pointer to bounding curve
6 REAL X x coordinate of display symbol
7 REAL Y y coordinate of display symbol
8 REAL Z z coordinate of display symbol
11 REAL Size size of display symbol

Line (Type 110)

Defines a line using an end point and a start point

Index in list Type of data Name Description
1 REAL X1 x coordinate of start point
2 REAL Y1 y coordinate of start point
3 REAL Z1 z coordinate of start point
4 REAL X2 x coordinate of end point
5 REAL Y2 y coordinate of end point
6 REAL Z2 z coordinate of end point

Parametric Spline Curve (Type 112)

Defines a curve as a series of parametric polynomials, given as Ax(i) + sBx(i) + s^2 Cx(i) + s^3 Dx(i), for the x component in the i'th section. The same function is used for y and z.

Index in list Type of data Name Description
1 INT Type Spline type:
5=Modified Wilson-Fowler
2 INT K Degree of continuity
3 INT Dim Dimensions (3 or 2)
4 INT N Number of segments
5 REAL T1 First break point
5+N REAL TN Last break point
6+N REAL AX1 X coordinate polynomial
5+13N REAL DZN Last z coordinate polynomial
6+13N REAL XN Last x coordinate
7+13N REAL XN' Last n curve x derivative
8+13N REAL XN''/2! Second xn derivative
9+13N REAL XN'''/3! Third xn derivative
10+13N REAL YN Last y coordinate
17+13N REAL ZN'''/3! Third zn derivative

Parametric Spline Surface (Type 114)

Defines a surface as a series of parametric surfaces, splitting them into a grid (i by j). They are described by the equation Ax(i,j) + sBx(i,j) + s^2 Cx(i,j) + s^3 Dx(i,j) + tEx(i,j) + tsEx(i,j) + ts^2 Fx(i,j) + ts^3 Gx(i,j) + t^2 Kx(i,j) + t^2 s Lx(i,j) + t^2 s^2 Mx(i,j) + t^2 s^3 Nx(i,j) + t^3 Px(i,j) + t^3 s Qx(i,j) + t^3 s^2 Rx(i,j) + t^3 s^2 Sx(i,j). Note that that equation is the description of the X element in the i,j section of the spline surface.

Index in list Type of data Name Description
1 INT Type Spline type:
5=Modified Wilson-Fowler
2 INT K Patch type
1=Cartesian Product
3 INT M Number of u segments
4 INT N Number of v segments
5 REAL TU1 First break point in u
5+M REAL TUM Last break point in u
6+M REAL TV1 First break point in v
5+M+N REAL TVN Last break point in v
7+M+N REAL Ax(1,1) First coefficient for i,j = 1,1
... REAL Sz(M,N) Last coefficient for i,j = M,N

Point (Type 116)

Defines a point in 3D space.

Index in list Type of data Name Description
1 REAL X x coordinate of point
2 REAL Y y coordinate of point
3 REAL Z z coordinate of point
4 Pointer P Pointer to sub-figure entity, specifies display symbol

Ruled Surface (Type 118)

This is a surface formed by sweeping over an area between defined curves. The sweep can be done by lines connecting points of equal arc length (Form 0) or equal parametric values (Form1). Valid curves would be points, lines, circles, conics, parametric splines, rational B-splines, composite curves, or any parametric curves.

Index in list Type of data Name Description
1 Pointer P1 pointer to first curve
2 Pointer P2 pointer to second curve
3 INT DirFlag Direction. 0=First to first, last to last
1=First to last, last to first
4 INT DevFlag Developable: 0=Possibly not

Surface of Revolution (Type 120)

This solid is formed by rotating a bounded surface on a specified axis and recording the area it passes through.

Index in list Type of data Name Description
1 Pointer Axis Pointer to Line describing axis of rotation
2 Pointer Surface Pointer to generatrix entity
3 REAL SA Start angle (Rad)
4 REAL EA End angle (Rad)

Tabulated Cylinder (Type 122)

Formed by moving a line segment parallel to itself along a curve called the directrix. Curve may be any of: a line, a circular arc, a conic arc, a parametric spline curve, or a rational B-spline curve.

Index in list Type of data Name Description
1 Pointer Curve Pointer to directrix
2 REAL Lx x coordinate of line end
3 REAL Ly y coordinate of line end
4 REAL Lz z coordinate of line end

Direction (Type 123)

Gives a direction in 3 Dimensions, where x^2 + y^2 + z^2 > 0

Index in list Type of data Name Description
1 REAL X1 x component
2 REAL Y1 y component
3 REAL Z1 z component

Transformation Matrix (Type 124)

Transforms entities by matrix multiplication and vector addition to give a translation, as shown below:

           | R11  R12  R13 |          | T1 |              
       R=  | R21  R22  R23 |     T =  | T2 |        ET = RE + T, where E is the entity coordinate 
           | R31  R32  R33 |          | T3 |           
Index in list Type of data Name Description
1 REAL R11 First row
2 REAL R12 ..
3 REAL R13 ..
4 REAL T1 First T vector value
5 REAL R21 Second row..
12 REAL T3 Third T vector value

Rational B-Spline Curve (Type 126)

Composes analytic curves. Form: 0=Determined by data 1=Line 2=Circular arc 3=Elliptical arc 4=Parabolic arc 5=Hyperbolic arc

Index in list Type of data Name Description
1 INT K Upper index of sum
2 INT M Degree of basis functions
3 INT Flag1 0=nonplanar, 1=planar
4 INT Flag2 0=open curve, 1=closed curve
5 INT Flag3 0=rational, 1=polynomial
6 INT Flag4 0=nonperiodic , 1=periodic
7 REAL T1 First value of knot sequence
8+K+M REAL T(1+K+M) Last value of knot sequence
9+K+M REAL W0 First weight
9+2K+M REAL WK Last weight
10+2K+M REAL X0 x of first control point
12+5*K+M REAL ZK z of last control point
13+5*K+M REAL V0 Start parameter value
14+5*K+M REAL V1 End parameter value
14+5*K+M REAL XN Unit normal x (if planar)
15+5*K+M REAL YN Unit normal y (if planar)
16+5*K+M REAL ZN Unit normal z (if planar)

Rational B-Spline Surface (Type 128)

This is a surface entity defined by multiple surfaces. The form number describes the general type: 0=determined from data, 1=Plane, 2=Right circular cylinder, 3=Cone, 4=Sphere, 5=Torus, 6=Surface of revolution, 7=Tabulated cylinder, 8=Ruled surface, 9=General quadratic surface.

Index in list Type of data Name Description
1 INT K2 Upper index of first sum
2 INT K1 Upper index of second sum
3 INT M1 Degree of first basis functions
4 INT M2 Degree of second basis functions
5 INT Flag1 0=closed in first direction, 1=not closed
6 INT Flag2 0=closed in second direction, 1=not closed
7 INT Flag3 0=rational, 1=polynomial
8 INT Flag4 0=nonperiodic in first direction , 1=periodic
9 INT Flag5 0=nonperiodic in second direction , 1=periodic
10 REAL T1(0) First value of first knot sequence
11+K1+M1 REAL T1(1+K1+M1) Last value of first knot sequence
12+K1+M1 REAL T2(0) First value of second knot sequence
13+K1+M1+K2+M2 REAL T2(1+K2+M2) Last value of second knot sequence
14+K1+M1+K2+M2 REAL W(0,0) First weight
14+K1+K2+M1+M2+(1+K1)(1+K2) REAL W(K1,K2) Last weight
^+1 REAL X(0,0) x of first control point
^+9+3(1+K1)(1+K2) REAL K(K1)(K2) z of last control point
^+1 REAL U0 Start first parameter value
^+1 REAL U1 End first parameter value
^+1 REAL V0 Start second parameter value
^+1 REAL V1 End second parameter value

Offset Curve (Type 130)

Contains the data to determine curve offsets

Index in list Type of data Name Description
1 Pointer Curve Curve to be offset
2 INT Flag1 Offset distance
1=Single value offset
2=Offset distance varying linearly
3=Offset distance as a function
3 Pointer Offset Pointer to curve describing offset (Flag1=3)
4 INT Dim Coordinate of offset curve to use (Flag1=3)
5 INT Flag2 Tapered offset type:
1=Function of arc length
2=Function of parameter (Flag1=2, 3)
6 REAL D1 First offset distance(Flag1=1, 2)
7 REAL TD1 Arc length/parameter value (Flag1=2)
8 REAL D2 Second offset distance
9 REAL TD2 Second arc length/parameter value (Flag1=2)
10 REAL X X value of normal vector
11 REAL Y Y value of normal vector
12 REAL Z Z value of normal vector
13 REAL TT1 Offset curve start parameter value
14 REAL TT2 Offset curve end parameter value

Offset Surface (Type 140)

Gives the data necessary to calculate the offset surface from a particular surface.

Index in list Type of data Name Description
1 REAL NX X coordinate of offset indicator
2 REAL NY Y coordinate of offset indicator
3 REAL Nz z coordinate of offset indicator
4 REAL D Distance by which surface is offset
from indicator
5 Pointer Surface Pointer to surface to be offset

Boundary (Type 141)

Identifies a surface boundary consisting of curves lying on a surface.

Index in list Type of data Name Description

Curve on a Parametric Surface (Type 142)

Bounded Surface (Type 143)

Trimmed Surface (Type 144)

Block (Type 150)

Defines a CSG Block object.

Index in list Type of data Name Description
1 REAL LX Side length along x axis
2 REAL LY Side length along y axis
3 REAL LZ Side length along z axis
4 REAL X Corner x coordinate
5 REAL Y Corner y coordinate
6 REAL Z Corner z coordinate
7 REAL Xi Unit vector along x direction
10 REAL Zi Unit vector along z direction
11 REAL Zj
12 REAL Zk

Right Angular Wedge (Type 152)

Right Circular Cylinder (Type 154)

Right Circular Cone (Type 156)

Sphere (Type 158)

Torus (Type 160)

Manifold Solid B-Rep Object (Type 186)

Plane Surface (Type 190)

Right Circular Cylindrical Surface (Type 192)

Right Circular Conical Surface (Type 194)

Toroidal Surface (Type 198)

Subfigure Definition (Type 308)

Singular Subfigure Instance (Type 408)

Vertex List (Type 502)

Edge List (Type 504)

Loop (Type 508)

Face (Type 510)

Shell (Type 514)

Back to the top