Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
IGES file Specification
IGES is a file format supported by the Eclipse Advanced Visualization Project (EAVP) for visualizing complex geometries.
Contents
- 1 What is IGES
- 2 File Format
- 2.1 File Header (Start and Global Sections
- 2.2 File Data (DE and PD Sections)
- 2.3 Entities
- 2.3.1 Circular Arc (Type 100)
- 2.3.2 Composite Curve (Type 102)
- 2.3.3 Conic Arc (Type 104)
- 2.3.4 Copious Data (Type 106)
- 2.3.5 Plane (Type 108)
- 2.3.6 Line (Type 110)
- 2.3.7 Parametric Spline Curve (Type 112)
- 2.3.8 Parametric Spline Surface (Type 114)
- 2.3.9 Point (Type 116)
- 2.3.10 Ruled Surface (Type 118)
- 2.3.11 Surface of Revolution (Type 120)
- 2.3.12 Tabulated Cylinder (Type 122)
- 2.3.13 Direction (Type 123)
- 2.3.14 Transformation Matrix (Type 124)
- 2.3.15 Rational B-Spline Curve (Type 126)
- 2.3.16 Rational B-Spline Surface (Type 128)
- 2.3.17 Offset Curve (Type 130)
- 2.3.18 Offset Surface (Type 140)
- 2.3.19 Boundary (Type 141)
- 2.3.20 Curve on a Parametric Surface (Type 142)
- 2.3.21 Bounded Surface (Type 143)
- 2.3.22 Trimmed Surface (Type 144)
- 2.3.23 Block (Type 150)
- 2.3.24 Right Angular Wedge (Type 152)
- 2.3.25 Right Circular Cylinder (Type 154)
- 2.3.26 Right Circular Cone (Type 156)
- 2.3.27 Sphere (Type 158)
- 2.3.28 Torus (Type 160)
- 2.3.29 Solid of Revolution (Type 162)
- 2.3.30 Solid of Linear Extrusion (Type 164)
- 2.3.31 Ellipsoid (Type 168)
- 2.3.32 Boolean Tree (Type 180)
- 2.3.33 Manifold Solid B-Rep Object (Type 186)
- 2.3.34 Plane Surface (Type 190)
- 2.3.35 Right Circular Cylindrical Surface (Type 192)
- 2.3.36 Right Circular Conical Surface (Type 194)
- 2.3.37 Spherical Surface (Type 196)
- 2.3.38 Toroidal Surface (Type 198)
- 2.3.39 Subfigure Definition (Type 308)
- 2.3.40 Color Definition (Type 314)
- 2.3.41 Singular Subfigure Instance (Type 408)
- 2.3.42 Vertex List (Type 502 Form 1)
- 2.3.43 Edge List (Type 504 Form 1)
- 2.3.44 Loop (Type 508)
- 2.3.45 Face (Type 510)
- 2.3.46 Shell (Type 514)
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.
Entities
The following entities are supported for import into ICE. Note that not all IGES files contain only these entity specifications.
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: 1=Linear 2=Quadratic 3=Cubic 4=Wilson-Fowler 5=Modified Wilson-Fowler 6=B-spline |
2 | INT | K | Degree of continuity 0=Curvature 1=Slope 2=Both |
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 |
7+N | REAL | BX1 | |
. . |
. . |
. . |
|
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: 1=Linear 2=Quadratic 3=Cubic 4=Wilson-Fowler 5=Modified Wilson-Fowler 6=B-spline |
2 | INT | K | Patch type 0=Unspecified 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 1=Yes |
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 |
---|---|---|---|
1 | INT | Type | The type of boundary being represented 0=Entities reference model space curves 1=Entities reference model space curves and associated parameter space curves |
2 | INT | Pref | Preferred representation of trimming curves. 0 = Unspecified 1 = Model Space 2 = Parameter Space 3 = Equal |
3 | Pointer | Surface | The untrimmed surface to be bounded |
4 | INT | N | Number of curves in boundary |
5 | Pointer | MC1 | Pointer to first model space curve |
6 | INT | Flag 1 | Orientation flag: 0 = No reversal 1 = Reversal needed |
7 | INT | K1 | How many parameter curves for this model curve |
8 | Pointer | PC(1,1) | First parameter curve for model curve 1 |
. . |
. . |
. . |
|
7+K1 | Pointer | PC(1,K1) | Last parameter curve for model curve 1 |
8+K1 | Pointer | MC2 | Model curve 2 |
. . |
. . |
. . |
|
11+3N+Sum(K(N)) | Pointer | PC(N,KN) | Last parameter curve for model curve N |
Curve on a Parametric Surface (Type 142)
Associates a curve and a surface, gives how a curve lies on the specified surface.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | INT | Flag1 | Indicates how curve was created: 0 = Unspecified 1 = Projection 2 = Intersection of surfaces 3 = Isoparametric curve |
2 | Pointer | Surface | Points to surface curve lies on |
3 | Pointer | Curve | Definition of curve |
4 | Pointer | Mapping | Entity that provides mapping from curve to surface |
5 | INT | Representation | Preferred representation of curve: 0 = Unspecified 1 = S(B(t)) 2 = C(t) 3 = Both equal |
Bounded Surface (Type 143)
Represents a surface bounded by Boundary Entities.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | INT | Type | The type of boundary being represented 0=Entities reference model space curves 1=Entities reference model space curves and associated parameter space curves |
2 | Pointer | Surface | Points to unbounded surface |
3 | INT | N | Number of Boundary entities |
4 | Pointer | B1 | Pointer to first boundary entity |
3+N | Pointer | BN | Pointer to last boundary entity |
Trimmed Surface (Type 144)
Describes a surface trimmed by a boundary consisting of boundary Curves.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | Surface | Entity to be trimmed |
2 | INT | Flag | 0=Boundary is boundary of surface, 1=otherwise |
3 | INT | N | Number of closed curves that make up inner boundary |
4 | Pointer | OuterBound | Pointer to Curve on Parametric Surface (Type 142) entity that is outer bound |
5 | Pointer | Inner1 | Pointer to first inner curve boundary |
. . |
. . |
. . |
|
5+N | Pointer | InnerN | Pointer to last inner curve boundary |
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 |
8 | REAL | Xj | |
9 | REAL | Xk | |
10 | REAL | Zi | Unit vector along z direction |
11 | REAL | Zj | |
12 | REAL | Zk |
Right Angular Wedge (Type 152)
Defines a CSG Wedge
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | REAL | LX | Size along x axis |
2 | REAL | LY | Size along y axis |
3 | REAL | LZ | Size along z axis |
4 | REAL | TLX | Distance from local x axis LY away |
5 | REAL | X | Coordinates of corner |
6 | REAL | Y | |
7 | REAL | Z | |
8 | REAL | Xi | Normal vector for x axis |
9 | REAL | Xj | |
10 | REAL | Xk | |
11 | REAL | Zi | Normal vector for z axis |
12 | REAL | Zj | |
13 | REAL | Zk |
Right Circular Cylinder (Type 154)
Defines a CSG cylinder
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | REAL | H | Height |
2 | REAL | R | Radius |
3 | REAL | X | X coordinate of face center |
4 | REAL | Y | Y coordinate of face center |
5 | REAL | Z | Z coordinate of face center |
6 | REAL | i | Normal vector along cylinder axis |
7 | REAL | j | |
8 | REAL | k |
Right Circular Cone (Type 156)
Defines a CSG Cone primitive object.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | REAL | H | Height |
2 | REAL | R1 | Larger radius |
3 | REAL | R2 | Smaller radius |
4 | REAL | X | X coordinate of larger face center |
5 | REAL | Y | Y coordinate of larger face center |
6 | REAL | Z | Z coordinate of larger face center |
4 | REAL | i | Normal vector along axis (from larger face toward smaller) |
5 | REAL | j | |
6 | REAL | k |
Sphere (Type 158)
Defines the CSG Sphere primitive type.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | REAL | R | Radius |
2 | REAL | X | X coordinate of center |
3 | REAL | Y | Y coordinate of center |
4 | REAL | Z | Z coordinate of center |
Torus (Type 160)
Defines the CSG Torus primitive type.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | REAL | R1 | Radius from center to middle of loop (how big torus is) |
2 | REAL | R2 | Radius of loop (how thick torus is) |
3 | REAL | X | X coordinate of center |
4 | REAL | Y | Y coordinate of center |
5 | REAL | Z | Z coordinate of center |
6 | REAL | i | Normal vector through center hole |
7 | REAL | j | |
8 | REAL | k |
Solid of Revolution (Type 162)
Describes a solid that is formed by rotating a curve around an axis.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | C | Curve to revolve |
2 | REAL | F | Fraction of full rotation (default 1) |
3 | REAL | X | X coordinate to revolve around |
4 | REAL | Y | Y coordinate to revolve around |
5 | REAL | Z | Z coordinate to revolve around |
6 | REAL | i | Vector specifying axis of revolution |
7 | REAL | j | |
8 | REAL | k |
Solid of Linear Extrusion (Type 164)
Describes a solid that is formed by translating an area by a planar curve.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | C | Closed curve to translate |
2 | REAL | L | Length of extrusion |
3 | REAL | i | Vector specifying direction of extrusion |
4 | REAL | j | |
5 | REAL | k |
Ellipsoid (Type 168)
Defines the CSG Ellipsoid primitive type, defined by the curve: X^2/LX^2 + Y^2/LY^2 + Z^2/LZ^2 = 1
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | REAL | LX | X scaling |
2 | REAL | LY | Y scaling |
3 | REAL | LZ | Z scaling |
4 | REAL | X | X coordinate of center |
5 | REAL | Y | Y coordinate of center |
6 | REAL | Z | Z coordinate of center |
7 | REAL | i1 | Unit vector along local X axis (major axis) |
8 | REAL | j1 | |
9 | REAL | k1 | |
10 | REAL | i2 | Unit vector along local Z axis (minor axis) |
11 | REAL | j2 | |
12 | REAL | k2 |
Boolean Tree (Type 180)
Provides a CSG Boolean tree structure, for constructing CSG geometries.
The three types of operations it accepts are denoted by an integer:
1 = Union
2 = Intersection
3 = Difference
The data is provided in post-order notation, giving operands and operations.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | INT | N | Number of operands + operations |
2 | Pointer | P1 | Pointer to first operand |
3 | Pointer | P2 | Pointer to second operand |
4 | Pointer/INT | P3/O1 | Third operand or first operation |
. . |
. . |
. . |
|
1+N | INT | ON | Last Operation |
Manifold Solid B-Rep Object (Type 186)
Defines a closed, solid, finite volume in R^3 by enumerating the boundary.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | Shell | Pointer to the shell entity (Type 514) |
2 | BOOL | FLAG | Orientation flag- True = shell agrees with faces |
3 | INT | N | Number of void shells |
4 | Pointer | VShell1 | First void shell |
5 | BOOL | VFLAG1 | Orientation flag of VShell1 |
. . |
. . |
. . |
|
3+2N | BOOL | VFLAGN | Orientation flag of VShellN |
Plane Surface (Type 190)
The Plane Surface is given by a point on the plane and the normal. Used by a Face entity.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | Point | Pointer to Point Entity (Type 116) |
2 | Pointer | Normal | Pointer to Direction Entity (Type 123) |
3 | Pointer | Ref | Pointer to Direction Entity (Type 123) Gives the reference direction * Only for Form 1 |
Right Circular Cylindrical Surface (Type 192)
Defines the surface for a right circular cylinder. Used by a Face Entity.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | Point | Pointer to Point Entity (Type 116) Point on axis |
2 | Pointer | Axis | Pointer to Direction Entity (Type 123) Axis direction |
3 | REAL | R | Radius |
4 | Pointer | Ref | Pointer to Direction Entity (Type 123) Gives the reference direction * Only for Form 1 |
Right Circular Conical Surface (Type 194)
Defines a surface as a circular cone. Used by a Face Entity.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | Point | Pointer to Point Entity (Type 116) Point on axis |
2 | Pointer | Axis | Pointer to Direction Entity (Type 123) Axis direction |
3 | REAL | R | Radius at Point |
4 | REAL | ANG | Angle between axis and cone surface |
5 | Pointer | Ref | Pointer to Direction Entity (Type 123) Gives the reference direction * Only for Form 1 |
Spherical Surface (Type 196)
Defines a surface as a sphere. Used by a Face Entity.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | Point | Pointer to Point Entity (Type 116) Center point |
2 | REAL | R | Radius |
2 | Pointer | Axis | Pointer to Direction Entity (Type 123) Axis direction * Only for Form 1 |
3 | Pointer | Ref | Pointer to Direction Entity (Type 123) Gives the reference direction * Only for Form 1 |
Toroidal Surface (Type 198)
Defines a surface as a Torus. Used by the Face Entity.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | Point | Pointer to Point Entity (Type 116) Point on axis |
2 | Pointer | Axis | Pointer to Direction Entity (Type 123) Axis direction |
3 | REAL | R1 | Major radius |
4 | REAL | R2 | Minor radius |
4 | Pointer | Ref | Pointer to Direction Entity (Type 123) Gives the reference direction * Only for Form 1 |
Subfigure Definition (Type 308)
Combines other entity definitions into one Entity.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | INT | Depth | Depth of subfigure (with nesting) |
2 | String | Name | Subfigure Name |
3 | INT | N | Number of entities in subfigure |
4 | Pointer | E1 | Associated entity 1 |
. . |
. . |
. . |
|
3+N | Pointer | EN | Last associated entity |
Color Definition (Type 314)
Used to give custom colors for other entities, in RGB color space.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | REAL | RED | Red value, from 0.0 - 100.0 |
2 | REAL | GREEN | Green value, from 0.0 - 100.0 |
3 | REAL | BLUE | Blue value, from 0.0 - 100.0 |
4 | String | Name | Optional color name |
Singular Subfigure Instance (Type 408)
Gives the Subfigure Definition Entity a defined subfigure.
Index in list | Type of data | Name | Description |
---|---|---|---|
1 | Pointer | SD | The Subfigure Definition Entity (type 308) |
2 | REAL | X | Translation in the x direction |
3 | REAL | Y | Translation in the y direction |
4 | REAL | Z | Translation in the z direction |
5 | REAL | S | Scale factor |
Vertex List (Type 502 Form 1)
Provides a list of vertices for specifying B-Rep Geometries.
Index in list | Type of data | Name | Description |
---|---|---|---|
INT | N | Number of vertices in list | |
2 | REAL | X1 | Coordinates of first vertex |
3 | REAL | Y1 | |
4 | REAL | Z1 | |
. . |
. . |
. . |
|
3N-1 | REAL | XN | Coordinates of last vertex |
3N | REAL | YN | |
3N+1 | REAL | ZN |
Edge List (Type 504 Form 1)
Provides a list of edges, comprised of vertices, for specifying B-Rep Geometries.
Index in list | Type of data | Name | Description |
---|---|---|---|
INT | N | Number of Edges in list | |
2 | Pointer | Curve1 | First model space curve |
3 | Pointer | SVL1 | Vertex list for start vertex |
4 | INT | S1 | Index of start vertex in SVL1 |
5 | Pointer | EVL1 | Vertex list for end vertex |
6 | INT | E1 | Index of end vertex in EVL1 |
. . |
. . |
. . |
|
5N-3 | Pointer | CurveN | First model space curve |
5N-2 | Pointer | SVLN | Vertex list for start vertex |
5N-1 | INT | SN | Index of start vertex in SVLN |
5N | Pointer | EVLN | Vertex list for end vertex |
5N+1 | INT | EN | Index of end vertex in EVLN |
Loop (Type 508)
Defines a loop, specifying a bounded face, for B-Rep Geometries.
Index in list | Type of data | Name | Description |
---|---|---|---|
INT | N | Number of Edges in loop | |
2 | INT | Type1 | Type of Edge 1 0 = Edge 1 = Vertex |
3 | Pointer | E1 | First vertex list or edge list |
4 | INT | Index1 | Index of edge/vertex in E1 |
5 | BOOL | Flag1 | Orientation flag- True = Agrees with model curve |
6 | INT | K1 | Number of parametric space curves |
7 | BOOL | ISO(1,1) | Isoparametric flag of first parameter space curve |
8 | Pointer | PSC(1,1) | First parametric space curve of E1 |
. . |
. . |
. . |
|
6+2K1 | Pointer | PSC(1,K1) | Last parametric space curve of E1 |
7+2K1 | INT | Type2 | Type of Edge 2 |
. . |
. . |
. . |
Face (Type 510)
Defines a bound portion of three dimensional space (R^3) which has a finite area. Used to construct B-Rep Geometries.
Index in list | Type of data | Name | Description |
---|---|---|---|
Pointer | Surface | Underlying surface | |
2 | INT | N | Number of loops |
3 | BOOL | Flag | Outer loop flag: True indicates Loop1 is outer loop. False indicates no outer loop. |
4 | Pointer | Loop1 | Pointer to first loop of the face |
. . |
. . |
. . |
|
3+N | Pointer | LoopN | Pointer to last loop of the face |
Shell (Type 514)
Defines edge connected sets of faces for defining B-Rep geometries.
Index in list | Type of data | Name | Description |
---|---|---|---|
2 | INT | N | Number of faces |
4 | Pointer | Face1 | Pointer to first face |
3 | BOOL | Flag1 | Orientation flag of first face. True indicates face agrees with surface |
. . |
. . |
. . |
|
2N | Pointer | FaceN | Pointer to last face |
1+2N | BOOL | FlagN | Orientation flag of last face. |