Model Structure   

<<< Physical Layout Chapters Schema Definitions >>>

Contents

[back to top]


4.1 Topology

This section describes the XT Topology model, it gives an overview of how the nodes in the XT data are joined together. In this section the word ‘entity’ means a node which is visible to an XT application - a table of which nodes are visible at the XT interface appears in the section 'Node Types'.

The topological representation allows for:

Compound bodies are containers for child bodies that are expected to be related in some way such that they are able to share some physical aspects. Within compound bodies, a child body is used to define one representation of a part. Standard bodies are the basic “unit” of modelling used in Parasolid. A child body is identical to a standard body except that it can share geometry where appropriate with other child bodies within the compound body.

Each entity is described, and its properties and links to other entities given.

[back to top]


4.2 General points

This section provides information on some XT Format terminology used in this manual.

In this section a set is called finite if it can be enclosed in a ball of finite radius - not that it has a finite number of members.

A set of points in 3-dimensional space is called open if it does not contain its boundary.

Back-pointers, next and previous pointers in a chain, and derived pointers are not described explicitly here. For information on this see the following description of the schema-level model.

4.2.1 Linear and angular resolution

XT data structures use fixed accuracies called linear resolution and angular resolution, which can be described as follows:

 

Resolution

Description

Linear resolution

The linear precision. Distances less than this value are considered to be zero and distances that differ by no more than this value are considered to be equal.

Angular resolution

The smallest angle (in radians) that is considered to be different from zero. Angles less than this value are considered to be zero and angles that differ by no more than this value are treated as equal.

By default, in XT data points are not considered coincident unless they are less than 1.0e-8 units apart (linear resolution). Directions are considered to be parallel if they differ by less than 1.0e-11 radians (angular resolution). It is important that any data passed to a Parasolid-enabled application is at least this accurate. You are recommended not to change these values when authoring XT data.

All parts of a body must be within a box called the size box, as shown in Figure 4-1, whose size is 1000 by 1000 by 1000 and is centered at the origin.

You are highly recommended to set the default unit to one meter, giving 1 kilometer as the maximum distance, in any one direction, that can be modelled.

To handle the angular resolution of arcs correctly, the radius used when representing an arc must be less than a factor of 10 times the dimension of the size box.

 

Figure 4-1 Linear and angular resolution

[back to top]


4.3 Entity definitions

4.3.1 Assembly

An assembly is a collection of instances of bodies or assemblies. It may also contain construction geometry. An assembly has the following fields:

4.3.2 Instance

An instance is a reference to a body or an assembly, with an optional transform:

4.3.3 Body

A body is a collection of faces, edges and vertices, together with the 3-dimensional connected regions into which space is divided by these entities. Each region is either solid or void (indicating whether it represents material or not).

The point-set represented by the body is the disjoint union of the point-sets represented by its solid regions, faces, edges, and vertices. This point-set need not be connected, but it shall be finite.

A body has the following fields:

4.3.4 Region

A region is an open connected subset of 3-dimensional space whose boundary is a collection of vertices, edges, and oriented faces.

Regions are either solid or void, and they may be non-manifold. A solid region contributes to the point-set of its owning body; a void region does not (although its boundary will).

Two regions may share a face, one on each side.

A region may be infinite, but a body shall have exactly one infinite region. The infinite region of a body shall be void.

A region has the following fields:

The shells of a region do not overlap or share faces, edges or vertices.

A region may have no shells, in which case it represents all space (and will be the only region in its body, which will have no faces, edges or vertices).

4.3.5 Shell

A shell is a connected component of the boundary of a region. As such it will be defined by a collection of faces, each used by the shell on one 'side', or on both sides; and some edges and vertices.

A shell has the following fields:

A shell shall contain at least one vertex, edge, or face.

4.3.6 Face

A face is an open finite connected subset of a surface, whose boundary is a collection of edges and vertices. It is the 2-dimensional analogy of a region.

A face has the following fields:

4.3.7 Loop

A loop is a connected component of the boundary of a face. It is the 2-dimensional analogy of a shell. As such it will be defined by a collection of fins and a collection of vertices.

A loop has the following fields:

Consequently, a loop shall consist either of:

4.3.8 Halfedge

A halfedge represents the oriented use of an edge by a loop.

A halfedge has the following fields:

 

Note: Halfedges are referred to as ‘fins’ in the PK Interface.

4.3.9 Edge

An edge is an open finite connected subset of a curve; its boundary is a collection of zero, one or two vertices. It is the 1-dimensional analogy of a region. An edge has the following fields:

4.3.10 Vertex

A vertex represents a point in space. It is the 0-dimensional analogy of a region. A vertex has the following fields:

4.3.11 Attributes

An attribute is an entity which contains data, and which can be attached to any other entity except attributes, fins, lists, transforms or attribute definitions. An attribute has the following fields:

There are a number of system attribute definitions which XT creates on startup. These are documented in the section 'System Attribute Definitions'. XT applications can create user attribute definitions during an XT session. These are included in the XT data along with any attributes that use them.

4.3.12 Features

A feature is a collection of entities in the same part. Features in assemblies may contain instances, surfaces, curves and points. Features in bodies may contain regions, faces, edges, vertices, surfaces, curves, points, loops and other features.

Featureshave:

 

Note: Features are referred to as ‘groups’ in the PK Interface.

4.3.13 Identifiers

All entities in a part, other than halfedges and 2D B-curves referenced by SP-curves, have a non-zero integer identifier. All non-zero integer identifiers are unique within a part. This is intended to enable the entity to be identified within the XT data.

 

Note: Identifiers are referred to as ‘node-ids’ in the PK Interface.

[back to top]


4.4 Entity matrix

Thus the relations between entities can be represented in matrix form as follows. The numbers represent the number of distinct entities connected (either directly or indirectly) to the given one.

 

 

Body

Region

Shell

Face

Loop

Fin

Edge

Vertex

Body

-

>0

any

any

any

any

any

any

Region

1

1

-

any

any

any

any

any

Shell

1

1

-

any

any

any

any

any

Face

1

1-2

1-2

-

any

any

any

any

Loop

1

1-2

1-2

1

-

any

any

any

Fin

1

1-2

1-2

1

1

-

1

0-2

Edge

1

any

any

any

any

any

any

any

Vertex

1

any

any

any

any

any

any

-

[back to top]


4.5 Representation of manifold bodies

4.5.1 Body types

XT bodies have a field body_type which takes values from an enumeration indicating whether the body is

A general body is not necessarily non-manifold, but at the same time it is not constrained to be manifold, connected, or of a particular dimensionality (indeed, it may be of mixed dimensionality).

4.5.1.1 Restrictions on entity relationships for manifold body types

Solid, sheet, and wire bodies are best regarded as special cases of the topological model; for convenience we call them the manifold body types (although as stated above, a general body may also be manifold).

In particular, bodies of these manifold types must obey the following constraints:

 

Note: Although the constraints on edges and vertices in a sheet body are very similar to those which apply to a solid, in this case they do not guarantee that the body will be manifold; indeed, the rather complicated rules about vertices in an open sheet body specifically allow bodies which are non-manifold (such as a body consisting of two square faces which share a single corner vertex).

 

[back to top]

<<< Physical Layout Chapters Schema Definitions >>>