7.4. Ansys Neutral File (.anf) Format

When you want to import a geometry file into Mechanical APDL, you have a number of options. One is to transfer the file to a generic file format such as IGES. Many external CAD packages will export a file in this or a similar format. The IGES (International Graphics Exchange Specification) file format is a vendor-neutral standard format used to exchange geometric models between various CAD and CAE systems. Mechanical APDL provides a number of IGES import options and specialized tools for ensuring a correct and valid model import.

You can also use the specifically-developed CAD connection functionality. These features are separately licensed ANSYS, Inc. programs that enable you to import the native file format from a number of external CAD and CAE programs. Because this functionality is designed for each specific CAD program, the proprietary file formats are processed differently for each connection. The connection functionality is included on your installation disk, and must be licensed separately. The documentation is available in the Connection User's Guide.

7.4.1. Neutral File Specification

If you are working with a proprietary format, or if you are dealing with third party software that is not supported by a connection, you can develop an output file that will allow you to import your model directly into Mechanical APDL. When the program imports an external drawing or part file, the information must be converted to a database. The database of a model must contain both its topology and its geometry. The Ansys Neutral File format ensures that the geometry data is properly constructed and can be read directly into the Mechanical APDL program database. To "write" directly into the database, the file must follow certain conventions.

7.4.1.1. Types of Geometric Models

Your model can fall into three geometry classifications, the wireframe, the sheet, and the solid. You define each of these three types with its own specifications and requirements. Mechanical APDL interprets these entities not by how or where they are defined in the file structure--Mechanical APDL reads most of the data for these entities in a "free format")--but by how you manipulate and organize them. You combine various Mechanical APDL functions and data sets to form each of these geometry classifications.

  • The wireframe model consists of the multiple edges of your model, connected at their ends by common vertices. The only geometry information for the model definition is contained in the edge definition.

  • The sheet model is made up of a bounded surface definition of edges. You use a sheet definition to define models where the thickness is defined a property of the sheet. Mechanical APDL uses this structure for its finite element model, using shell elements, and defining the thickness (and other properties) with a real constant.

  • The solid model is a complete and explicit definition of the 3D model. It is made up of combinations of edges and faces, and defines both the topology (how different entities of the model are tied together) and geometry (mathematical definitions of these different entities).

How these three types of models are used and stored in different CAD/CAE programs varies. Some CAD programs require a unique entry in the database for each of the individual entities that make up a type of geometry, and they cannot be intermixed. Others make no distinction between the different entities, and the way you use them depends on how you manipulate them. Mechanical APDL makes no distinctions. The entities can be individually defined anywhere in the database, and the definitions are manipulated using the Mechanical APDL command structure. When a bounded face is defined in Mechanical APDL, it can be used either as a sheet (for a two-dimensional or shell analysis), or as part of a solid for a three-dimensional analysis. Along these same lines, when you define an edge, you can link it to a common surface, or you can use it as part of the description of a wireframe.

7.4.1.2. The Mechanical APDL Solid Model

Mechanical APDL uses a Boundary Representation (B-rep) scheme to define your solid model. A B-rep model definition is based on the topological assumption that a physical object is bounded by a set of faces. These faces are regions of closed and orientable surfaces. A closed surface is one that is continuous, without breaks. An orientable surface is one that allows you to distinguish between its two sides by using a surface normal to point to the outside of the model. Each surface is bounded by edges, and each edge is bounded by vertices. Thus a B-rep solid (or body) consists of faces, edges, and vertices linked together to ensure the topological consistency of the solid. By definition, an edge must be shared by two faces, and all of the edges bounding a face must share common vertices.

Another important characteristic of a B-rep solid is its geometry. You must delineate each entity with a geometric definition. You define vertices with a set of 3D coordinates. You define edges with curve data that includes vertices, and you define faces with surface definitions that contain edge definitions. Ansys, Inc. recognizes only NURB (Non-Uniform, Rational, B-spline) definitions for both curves and surfaces. A NURB is a parametric definition of a synthetic curve or surface. In additions, the NURB must be non-periodic. That is, the knots used for the definition must have multiplicity in the first and last knot equal to the NURB order. Any other types of geometric definitions you wish to import into an Ansys database must be converted to a NURB format.

In addition, the following restrictions apply when importing model data into Mechanical APDL:

  • Your underlying surface definition must include all of the edges. This means the underlying surface must be larger than the list of trimming edges.

  • The location of your edge must agree with your surface definition. Each edge is checked to make sure that it lies on the surface within a prescribed tolerance.

  • Periodic or closed curves are not allowed. You cannot have an edge that spans 360 degrees (you must break it into two 180 degree edges) and

  • Periodic or closed surfaces are not allowed. You cannot have a surface that spans 360 degrees. A cylinder (for example) cannot be a single 360 degree surface (it must be broken into two 180 degree face, each having four edges). The underlying curve or surface definition must also be divided accordingly.

The database object allows multiple bodies (or solids) to be defined. Also, the geometry of the entities of each body is stored in global 3D space. No transformations are made or stored in the database. The following table summarizes each solid entity and its nomenclature as used in Mechanical APDL.

TopologyMechanical APDL TermDescription
ObjectModelA list of bodies or volumes
Body VolumeA list of Shells (most models will typically have only one shell)
ShellShellA list of Faces
FaceAreaA list of Loops and a surface definition (only one external loop is allowed for each face)
Loop LoopA list of Edges
Edge LineDefined by a starting point, an ending point and a surface definition
Vertex KeypointX, Y, Z location in Global Space

The database also uses the concept of unique integer identifiers (IDs) to store, access and manipulate the geometry data. You can use the same number(s) for different entities, but each number must be unique within the entity. The Ansys Neutral File uses this concept of unique IDs to guarantee valid topological relationships.

7.4.1.3. Ansys Neutral File Functions

The four AUX15 utility functions used to transfer geometry data into the Mechanical APDL database are listed below:

KPT

Writes keypoints or vertices into the database.

LCURV

This function is used to write lines or edges into the database. If wireframe geometry is being defined, this function is used to define these items. This command is also used to write the information for the edges of the faces of a volume or solid entity. The keypoints used in the LCURV function refer to specific keypoint entities, individually defined by a prior KPT function.

ASURF

You use this command to write the area or face information into the database. The list of lines in each loop refer to specific line entities that you define individually with an LCURV function. This method is also used to define the sheet geometry.

VBODY

You use this command to actually define a B-rep solid. It is made up of a series of shells that contain the list of area entities. The list of areas in each shell refers to area entities defined by the ASURF functions.

AUX15 Commands to Read Geometry Into the Database describes the actual makeup of these AUX15 commands and defines specific file structure necessary to transfer geometry into the database.

7.4.1.4. Wireframes, Individual Surfaces, and Individual Solids

When you transfer (write) the information from an external application into the database, you must decide whether a wireframe, sheet, or a solid model is being transferred. The following points summarize the appropriate commands you will use to accomplish this:

  • If you want to write only wireframe information into the database, the functions KPT and LCURV are used. No actual faces or solids are defined, but the lines contain a curve definition. This typically will be used to mesh beam or pipe elements.

  • To write sheet information into the database, use the KPT, LCURV, and ASURF commands. The areas will contain a surface definition, but the thickness of the sheet will not be present. The lines will contain a curve identification. You can specify a thickness by using the real constant command R. Generally, you use this format when you want to mesh shell or 2D elements.

  • If you want to write the information for a solid model into the database, you must use the KPT, LCURV, ASURF, and VBODY commands to define the geometry. The lines contain the curve definitions and the areas contain the surface definitions. The face definition also includes an expression of the direction normal to the face, so that a valid solid model is defined. This method combination of commands and topology data is used to mesh 3D solid elements, typically 10-node tetrahedral elements.

7.4.2. AUX15 Commands to Read Geometry Into the Database

When you generate a file to be read into the database, you must follow certain conventions. The following AUX15 commands can be interpreted by Mechanical APDL to import your external geometry into the program. A Example: Ansys Neutral File Input Listing is included. Portions of this file are referenced for each command.

7.4.2.1. KPT Command

The KPT command defines a specific keypoint in terms of its X, Y, Z coordinates. The command format is:

LINE 1:KPT,vnum, X-coord, Y-coord, Z-coord
LINE 2:CAD ID of edge (up to 40 characters).

LINE 1 contains the command (KPT) and the arguments. The arguments must be separated by commas, and are defined as follows:

vnum

Unique ID of vertex (long integer)

X-coord, Y-coord, Z-coord

The global Cartesian X, Y, and Z coordinates of the vertex.

LINE 2 contains a specific CAD identification for the Keypoint. It can be up to 40 characters, and can be made up of characters or integers. The CAD ID is optional, but if none is used, a blank line is required.

Notes

The KPT command explicitly defines a vertex according to the Cartesian coordinates. The keypoint is referred to in subsequent functions by the vnum value. This unique ID, unlike the CAD ID, must be specified.

7.4.2.2. The LCURV Command

The LCURV command defines a line or edge for import into the database. If wireframe geometry is being defined, this command is used to define these items. This command is also used to define edges belonging to faces. The command is written as a multiple line data set, with the initial command statement addressing the input into the database, the curve definition defining the type of curve to be entered, and the subsequent line(s) defining the curve. The curve definition data is entered in a free format, that is, the data is read in sequentially, according to the values expected from the curve definition. The command format is:

LINE 1:LCURV, enum, crv_typ, start_vrtx, end_vrtx, Start_param, End_Param (see format below).
LINE 2:CAD ID of edge (up to 40 characters).
LINE 3 to nCURVE DEFINITION (see format below)

LINE 1 contains the command name (LCURV) and the arguments. The arguments must be separated by commas, and are defined as follows:

enum

The unique ID of the edge (long integer).

crv_typ

Type of curve. Only B-spline (1 ) curves are recognized (long integer).

start_vrtx

Vertex ID at beginning of edge, specified with a KPT command (integer).

end_vrtx

Vertex ID at end of edge, specified with a KPT command (integer).

start_param

Curve parameter defining the start of the edge (real number).

end_param

Curve parameter defining the end of the edge (real number).

LINE 2 contains a specific CAD ID for the curve or edge. It can be up to 40 characters and can be made up of characters or integers. The CAD ID is optional, but if none is used, a blank line is required.

LINE 3 AND SUBSEQUENT LINES, contain the five-integer CURVE DEFINITION STATEMENT, followed by the CURVE DEFINITION DATA. This information is read in using a free format – the order of the information determines how it is assigned, regardless of whether it is on one line or many. You can enter these values as one continuous string, separated by spaces, or as discrete values, each entered on its own line.

The first five integers make up the CURVE DEFINITION STATEMENT:

form_number order rational num_knots num_cntrl_pt

The CURVE DEFINITION STATEMENT will define the order in which the CURVE DEFINITION DATA that follows will be organized. The CURVE DEFINITION STATEMENT parameters are defined as follows:

form_number

Acceptable form_number values are listed in the table Table 7.2: form_number values for LCURV.

order

This value is related to the order of the polynomial (Basis Function) that will define the curve.

rational

0 = NO, not rational.

1 = YES, rational.

Num_knots

The array of knots will be the first set of values in the CURVE DEFINITION DATA.

num_cntl_pnts

The control points are the Cartesian coordinates for the keypoints along the line, 3 coordinates per point.

The lines that follow are the real numbers that make up the CURVE DEFINITION data. The following table shows the order of the data and the suggested number of items per line.

CURVE DEFINITION DATA (all values are free format)
Array of knots four knots per line, free format
Array of Control PointsOne point per line, 3 coordinates per point
Array of weights Only used for RATIONAL curves, four weights per line.
NOTES:

The value for crv_typ in the original LCURV command statement (LINE 1) will determine the format for the curve definition on the subsequent lines. A value of 1 denotes a B-spline curve, and the five integer, free format will be used to write the CURVE DEFINITION information into the database. ONLY B-SPLINE CURVES ARE SUPPORTED. The form_number signifies the actual curve definition underlying the NURB data.

Table 7.2: form_number values for LCURV

0B-spline
1Line
2Circular Arc
3Elliptical Arc
4Parabolic Arc
5Hyperbolic Arc
6Degenerate
7Conic Section
8Piecewise Conic Section
9Piecewise Circular Arc


The form_number signifies the actual curve definition underlying the NURB data.

Below is a complete LCURV input segment, including the Command statement, the ID, the CURVE DEFINITION STATEMENT, and the CURVE DEFINITION DATA (the keypoints were defined previously).

lcurv,2,1,2,3,0.000000,1.000000
4 
0 4 0 8 4 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000 

7.4.2.3. ASURF Command

The ASURF command defines an area or face for import into the database. You use this command to explicitly define an individual sheet, or this face definition may belong to a B-rep solid. The list of lines in each loop refers to specific line entities that you define individually with an LCURV function. The format for an ASURF function is:

LINE 1:ASURF,FNUM,surf_typ,num_loops,ncrv_max, start_u_parm,end_u_parm,start_v_parm, end_v_parm
LINE 2:CAD ID of face (up to 40 characters).
LINE 3 to nLOOP DEFINITION(s)
Line n+1 to m SURFACE Definition (See Below)

Line 1 contains the command name (ASURF), and the arguments. The arguments must be separated by commas and are defined as follows:

fnum

The unique ID of the face

srf_typ

Type of surface. Only B-spline (1) surfaces are recognized (long integer).

num_loop

Number of loops in this surface

ncrv_max

Maximum number of edges in any one loop for this face.

start_u_parm

Minimum _u_ parameter defining the surface.

end_u_parm

Maximum _u_ parameter defining the surface.

start_v_parm

Minimum _v_ parameter defining the surface.

end_v_parm

Maximum _v_ parameter defining the surface.

LINE 2 - This line contains a specific CAD Identification for the face or surface. It can be up to 40 characters and can be made up of characters or integers. The CAD ID is optional, but if none is used, a blank line is required.

LINE (3 to n) - These lines contain a two-digit loop definition (loop type and number of edges) followed by a listing of the edges that make up the face or surface. Because they are free format, the actual number of lines used will vary.

The loop definition is in the form:

loop_typ num_edges

Array of edges

Where:

loop_typ =Loop type = 0 signifies the external loop, the remaining loops have a value of 1
num_edges =Number of edges in the loop
Array of edges =List of edges using the unique IDs you defined with the LCURV command. If the direction of the edge is opposite its orientating for this face, then the edge number is negative.

LINE (n+1 to m) - This series of lines starts with the eight-integer SURFACE DEFINITION STATEMENT, followed by the SURFACE DEFINITION DATA. This information is read in using a free format - the order of the information determines how it is assigned, regardless of whether it is on one line or many. You can enter these values as one continuous string, separated by spaces, or as discrete values, each entered on its own line.

The first eight integers make up the SURFACE DEFINITION STATEMENT:

form_number u_order v_order rational u_num_knots v_num_knots u_num_cntr_pts v_num_cntr_pts

The SURFACE DEFINITION STATEMENT will define the order in which the SURFACE DEFINITION DATA that follows will be organized. The SURFACE DEFINITION STATEMENT parameters are defined as follows:

form_number

Acceptable form_number values are listed in the table Table 7.3: form_number values for ASURF.

u_order

This value is related to the order of the polynomial in the u direction (Basis Function) that will define the surface.

v_ order

This value is related to the order of the polynomial in the v direction (Basis Function) that will define the surface.

rational

0 = NO, not rational.

1 = YES, rational.

u_num_knots

The array of knots in the U direction will be the first set of values in the SURFACE DEFINITION DATA. Typically there are four knots per line, in a free format.

v_num_knots

The array of knots in the U direction follow. Typically there are four knots per line, in a free format.

u_num_cntl_pnts

The control points are the Cartesian coordinates for the keypoints along the line, 3 coordinates per point, one point per line.

v_num_cntl_pnts

The control points are the Cartesian coordinates for the keypoints along the line, 3 coordinates per point, one point per line.

The lines that follow are the real numbers containing the SURFACE DEFINITION DATA. The following table shows their order, and the suggested number per line.

SURFACE DEFINITION DATA (all values are free format)
Array of knots in U directionFour knots per line, free format
Array of knots in V directionFour knots per line, free format
Array of Control PointsOne point per line, 3 coordinates per point
Array of weights Only used for RATIONAL curves, four weights per line.
NOTES:

The value for surf_typ in the original ASURF command statement (LINE 1) will determine the format for the curve definition of the subsequent lines. A value of 1 denotes a B-spline surface, and the eight-integer, free format will be used to write the surface definition information into the database. The form_number signifies the actual surface definition underlying the NURB data. ONLY B-SPLINE SURFACES ARE SUPPORTED.

Table 7.3: form_number values for ASURF

0B-spline
1Plane
2Right circular cylinder
3Cone
4Sphere
5Torus
6Surface of revolution
7Tabulated cylinder
8Ruled surface
9General quadratic surface
10Planar, circular capping surface
11Planar, quadrilateral surface


An example of a complete ASURF input segment, including the Command Statement, the ID, the SURFACE DEFINITION STATEMENT, and the SURFACE DEFINITION DATA, follows (the keypoints and curves were defined previously).

asurf,1,1,1,4,0,1,0,1
2
0 4
-4 -3 -2 -1 
0 4 4 0 8 8 4 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
0.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 0.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 3.333333333333333e-001 0.000000000000000e+000
3.333333333333333e-001 6.666666666666667e-001 0.000000000000000e+000
3.333333333333333e-001 1.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 0.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 3.333333333333333e-001 0.000000000000000e+000
6.666666666666667e-001 6.666666666666667e-001 0.000000000000000e+000
6.666666666666667e-001 1.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000

7.4.2.4. The VBODY Command

The VBODY command incorporates a series of previously defined vertices, curves and surfaces to form a volume or body. The command format is:

LINE 1:VBODY, bnum, num_shells, nsrf_max (see format below).
LINE 2:CAD ID of body (up to 40 characters).
LINE 3 to nSHELL DEFINITION (see format below)

LINE 1 contains the command name (VBODY), and the arguments. The arguments must be separated by commas and are defined as follows:

bnum

The unique ID for the body (long integer).

num_shells

The number of shells in this body.

nsrf_max

The maximum number of faces in any one shell.

LINE 2 contains a specific CAD identification for he volume or body. It can be up to 40 characters and can be made up of characters or integers. The CAD ID is optional, but if none is used, a blank line is required.

LINE 3 AND SUBSEQUENT LINES contain the two-integer BODY DEFINITION STATEMENT, followed by the BODY DEFINITION DATA. This information is read in using a free format - the order of the information determines how it is assigned, regardless of whether it is on one line or many.

The first two integers make up the BODY DEFINITION STATEMENT:

shell_typ num_faces

shell_typ

For the shell_typ, an external shell is zero, while the internal shells have value of 1.

num_faces

This value denotes the total number of faces in this shell.

The lines that follow make up the BODY DEFINITION DATA. This data contains an array of faces, typically with ten faces specified per line, in a free format. The list of faces uses the unique IDs, as defined earlier with the ASURF command. If the normal of the face is opposite of its orientation for this shell, then the face number is negative.

7.4.3. Example: Ansys Neutral File Input Listing

The following listing defines a cube, based at the origin of a Cartesian coordinate system, measuring 1 x 1 x 1.

/com, 
/com, *** Ansys GEOMETRY NEUTRAL FILE *** 
/com, 
/com,     Connection for Pro/ENGINEER
/com,     Build Date: 03/01/01 
/com,     Model Name: box 
/com,     Units: inch 
/com, 
/title, Model box
/aux15
kpt,1,0.000000000000000e+000,0.000000000000000e+000,0.000000000000000e+000

kpt,2,1.000000000000000e+000,0.000000000000000e+000,0.000000000000000e+000

lcurv,1,1,1,2,0.000000,1.000000
3
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 0.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
kpt,3,1.000000000000000e+000,1.000000000000000e+000,0.000000000000000e+000

lcurv,2,1,2,3,0.000000,1.000000
4
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
kpt,4,0.000000000000000e+000,1.000000000000000e+000,0.000000000000000e+000

lcurv,3,1,3,4,0.000000,1.000000
5
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 1.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 1.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
lcurv,4,1,4,1,0.000000,1.000000
6
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
0.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
asurf,1,1,1,4,0,1,0,1
2
0 4
-4 -3 -2 -1 
0 4 4 0 8 8 4 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
0.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 0.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 3.333333333333333e-001 0.000000000000000e+000
3.333333333333333e-001 6.666666666666667e-001 0.000000000000000e+000
3.333333333333333e-001 1.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 0.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 3.333333333333333e-001 0.000000000000000e+000
6.666666666666667e-001 6.666666666666667e-001 0.000000000000000e+000
6.666666666666667e-001 1.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
kpt,5,0.000000000000000e+000,0.000000000000000e+000,1.000000000000000e+000

kpt,6,1.000000000000000e+000,0.000000000000000e+000,1.000000000000000e+000

lcurv,5,1,5,6,0.000000,1.000000
8
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
3.333333333333333e-001 0.000000000000000e+000 1.000000000000000e+000
6.666666666666667e-001 0.000000000000000e+000 1.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
kpt,7,0.000000000000000e+000,1.000000000000000e+000,1.000000000000000e+000

lcurv,6,1,7,5,0.000000,1.000000
11
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
0.000000000000000e+000 6.666666666666667e-001 1.000000000000000e+000
0.000000000000000e+000 3.333333333333333e-001 1.000000000000000e+000
0.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
kpt,8,1.000000000000000e+000,1.000000000000000e+000,1.000000000000000e+000

lcurv,7,1,8,7,0.000000,1.000000
10
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
6.666666666666667e-001 1.000000000000000e+000 1.000000000000000e+000
3.333333333333333e-001 1.000000000000000e+000 1.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
lcurv,8,1,6,8,0.000000,1.000000
9
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 1.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 1.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
asurf,2,1,1,4,0,1,0,1
7
0 4
8 7 6 5 
0 4 4 0 8 8 4 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
0.000000000000000e+000 3.333333333333333e-001 1.000000000000000e+000
0.000000000000000e+000 6.666666666666667e-001 1.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
3.333333333333333e-001 0.000000000000000e+000 1.000000000000000e+000
3.333333333333333e-001 3.333333333333333e-001 1.000000000000000e+000
3.333333333333333e-001 6.666666666666667e-001 1.000000000000000e+000
3.333333333333333e-001 1.000000000000000e+000 1.000000000000000e+000
6.666666666666667e-001 0.000000000000000e+000 1.000000000000000e+000
6.666666666666667e-001 3.333333333333333e-001 1.000000000000000e+000
6.666666666666667e-001 6.666666666666667e-001 1.000000000000000e+000
6.666666666666667e-001 1.000000000000000e+000 1.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 1.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 1.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
lcurv,9,1,1,5,0.000000,1.000000
13
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 0.000000000000000e+000 3.333333333333333e-001
0.000000000000000e+000 0.000000000000000e+000 6.666666666666667e-001
0.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
lcurv,10,1,2,6,0.000000,1.000000
15
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 3.333333333333333e-001
1.000000000000000e+000 0.000000000000000e+000 6.666666666666667e-001
1.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
asurf,3,1,1,4,0,1,0,1
12
0 4
10 -5 -9 1 
0 4 4 0 8 8 4 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 0.000000000000000e+000 3.333333333333333e-001
0.000000000000000e+000 0.000000000000000e+000 6.666666666666667e-001
0.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
3.333333333333333e-001 0.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 0.000000000000000e+000 3.333333333333333e-001
3.333333333333333e-001 0.000000000000000e+000 6.666666666666667e-001
3.333333333333333e-001 0.000000000000000e+000 1.000000000000000e+000
6.666666666666667e-001 0.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 0.000000000000000e+000 3.333333333333333e-001
6.666666666666667e-001 0.000000000000000e+000 6.666666666666667e-001
6.666666666666667e-001 0.000000000000000e+000 1.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 3.333333333333333e-001
1.000000000000000e+000 0.000000000000000e+000 6.666666666666667e-001
1.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
lcurv,11,1,3,8,0.000000,1.000000
17
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 3.333333333333333e-001
1.000000000000000e+000 1.000000000000000e+000 6.666666666666667e-001
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
asurf,4,1,1,4,0,1,0,1
14
0 4
11 -8 -10 2 
0 4 4 0 8 8 4 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 0.000000000000000e+000 3.333333333333333e-001
1.000000000000000e+000 0.000000000000000e+000 6.666666666666667e-001
1.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
1.000000000000000e+000 3.333333333333333e-001 3.333333333333333e-001
1.000000000000000e+000 3.333333333333333e-001 6.666666666666667e-001
1.000000000000000e+000 3.333333333333333e-001 1.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
1.000000000000000e+000 6.666666666666667e-001 3.333333333333333e-001
1.000000000000000e+000 6.666666666666667e-001 6.666666666666667e-001
1.000000000000000e+000 6.666666666666667e-001 1.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 3.333333333333333e-001
1.000000000000000e+000 1.000000000000000e+000 6.666666666666667e-001
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
lcurv,12,1,4,7,0.000000,1.000000
19
0 4 0 8 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 3.333333333333333e-001
0.000000000000000e+000 1.000000000000000e+000 6.666666666666667e-001
0.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
asurf,5,1,1,4,0,1,0,1
16
0 4
12 -7 -11 3 
0 4 4 0 8 8 4 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
1.000000000000000e+000 1.000000000000000e+000 3.333333333333333e-001
1.000000000000000e+000 1.000000000000000e+000 6.666666666666667e-001
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
6.666666666666667e-001 1.000000000000000e+000 0.000000000000000e+000
6.666666666666667e-001 1.000000000000000e+000 3.333333333333333e-001
6.666666666666667e-001 1.000000000000000e+000 6.666666666666667e-001
6.666666666666667e-001 1.000000000000000e+000 1.000000000000000e+000
3.333333333333333e-001 1.000000000000000e+000 0.000000000000000e+000
3.333333333333333e-001 1.000000000000000e+000 3.333333333333333e-001
3.333333333333333e-001 1.000000000000000e+000 6.666666666666667e-001
3.333333333333333e-001 1.000000000000000e+000 1.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 3.333333333333333e-001
0.000000000000000e+000 1.000000000000000e+000 6.666666666666667e-001
0.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
asurf,6,1,1,4,0,1,0,1
18
0 4
9 -6 -12 4 
0 4 4 0 8 8 4 4
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000 
1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000 
0.000000000000000e+000 1.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 1.000000000000000e+000 3.333333333333333e-001
0.000000000000000e+000 1.000000000000000e+000 6.666666666666667e-001
0.000000000000000e+000 1.000000000000000e+000 1.000000000000000e+000
0.000000000000000e+000 6.666666666666667e-001 0.000000000000000e+000
0.000000000000000e+000 6.666666666666667e-001 3.333333333333333e-001
0.000000000000000e+000 6.666666666666667e-001 6.666666666666667e-001
0.000000000000000e+000 6.666666666666667e-001 1.000000000000000e+000
0.000000000000000e+000 3.333333333333333e-001 0.000000000000000e+000
0.000000000000000e+000 3.333333333333333e-001 3.333333333333333e-001
0.000000000000000e+000 3.333333333333333e-001 6.666666666666667e-001
0.000000000000000e+000 3.333333333333333e-001 1.000000000000000e+000
0.000000000000000e+000 0.000000000000000e+000 0.000000000000000e+000
0.000000000000000e+000 0.000000000000000e+000 3.333333333333333e-001
0.000000000000000e+000 0.000000000000000e+000 6.666666666666667e-001
0.000000000000000e+000 0.000000000000000e+000 1.000000000000000e+000
vbody,1,6
cube
1 -2 -3 -4 -5 -6