Documente Academic
Documente Profesional
Documente Cultură
Contact
For general enquiries, please contact your Dassault Systemes account manager
or reseller.
Introduction
The Composites Link Executable (CLX) encapsulates Simulayts Layup technology
into an executable to undertake specific operations, typically related to data
transfer. The desired operation is selected by specifying the appropriate
command mode behind the command line switch CLXCommand, then
appropriate parameter for the command are entered using further switches.
The Map command mode maps an existing ply layup onto a new mesh and writes
this as a Layup file or an Abaqus input file. Abaqus support is possible due to its
use of *DISTRIBUTION to transfer continuously-varying thicknesses and
orientations in an efficient manner, removing the need to generate an excessive
number of sections.
The MapAndCreateProperties command mode transfers an existing ply layup
within a Layup file (usually created by Simulayts CATIA Composites Link) into
element properties (orientations and sections) referenced by shell elements in a
Nastran Bulk Data File (BDF). First, CLX maps the Layup onto the shell mesh
using matching or piercing algorithms in the same way as the Map command.
Second, the ply layup is converted to an equivalent property definition within
user-defined tolerances.
The CreateLayupFromLaminate command mode converts a laminate in a Nastran
input file, into a ply layup stored in a Layup file. This mode operates in two
fashions depending on whether the laminate defines global plies, or only local
layers.
The Mirror command model mirrors Layup or mesh models about the XZ plane.
Installation
Licensing
Simulayt licensing is based on the industry-standard FLEXnet (formerly FLEXlm)
licensing system. This provides standard licensing methods for nodelocked
(fixed), dongle or network (floating) licenses. The standard location of the
Simulayt license files is in the directory:
C:\Program Files\Simulayt\License
or
C:\Program Files (x86)\Simulayt\License (for 64 bit workstations)
It is necessary to set up an Environment Variable to enable applications to locate
the license file. This is explained below.
In all cases the application must be restarted after creating the variable for the
change to take effect.
Nodelocked
For nodelock licenses, the user must specify the path and name of the nodelock
license file using the environment variable SIMULAYT_LICENSE_FILE. An example
setting is shown below:
SIMULAYT_LICENSE_FILE=C:\Program Files\Simulayt\License\license.lic
Dongle
As with nodelock licenses, the user must specify the path and name of the
nodelock license file using the environment variable SIMULAYT_LICENSE_FILE.
However, the FLEXnet HostId is provided by a dongle, allowing use on multiple
machines by transferring the dongle.
Network
For network licenses, the user must specify the port and name of the network
license server using the environment variable SIMULAYT_LICENSE_FILE. An
example setting for using port number 24500 of the license server called trent
is shown below:
SIMULAYT_LICENSE_FILE=24500@trent
Location
The standard location of the CLX installation on Windows (32 bit) machines is:
C:\Program Files\Simulayt\CLX
For 64 bit machines this will be:
C:\Program Files (x86)\Simulayt\CLX
Prerequisites
The operation of CLX requires an existing Layup file (usually created by
Composites Link, Anaglyphs Laminate Tools or other application supporting
Simulayts Layup Technology) and an existing Nastran Bulk Data File (BDF,
created from a suitable meshing application, e.g. MSC.Patran, ANSA, Femap,
Hypermesh, etc.)
Execution
As an executable with command line parameters, CLX lends itself to use within
automated processes. For manual running, perhaps for testing, the use of a
command file is recommended. This allows input parameters to be set using a
text editor. A rem statement can be used for comments, and carets (^) can be
used to place parameters on separate lines to aid editing. It is also good practice
to specify a message file so that appropriate messages can be tracked to validate
operation.
Command Modes
CLX supports a number of command modes, which are selected using the CLXCommand switch on
the command line. Required input data are input using additional command line parameters that are
specific to each command mode. Supported command modes include:
-
Map
Map and Create Properties
Create Layup from Laminate (PCOMPG)
Create Layup from Laminate (PCOMP)
Mirror Layup or Mesh Files
The following sections summarise the process supported by these modes, explanation of the
required parameters, and an illustrative example.
Map
The process flow CLX usually maps a Layup file from a design tool onto a mesh file created using an
analysis tool to create new output file with properties for subsequent use in analysis.
Process
A typical process utilising CLX follows the following steps, with CLX being controlled by a user
interface within the Finite Element Analysis (FEA) tool.
CATIA V5 Composites Link
Exports Layup file based on tessellation
FEA Tool
Exports Mesh as Nastran bdf
Simulayt CLX
Reads Layup and Mesh
Maps Layup onto Mesh
Writes Mesh + Properties as Abaqus inp
FEA Tool
Imports Mesh + Properties as Abaqus inp
The detailed steps within CLX are as follows:
Parameter
Type
CLXCommand
String Map
MessageFile
String
InputFile
String
InputFileFormat
String Nastran
OutputFile
String
OutputFileFormat
String (Abaqus,Layup)
MapFile
String
MapFileFormat
String Layup
Layup
MapAngleTolerance
Real
>= 0.0
45
Mapping tolerance
MapDistanceTolerance Real
>= 0.0
10
Mapping tolerance
MapSplitWidth
>= 0.0
PartName
Real
Values
Default
Nastran
Comments
Abaqus
String
MaterialOrientation
String Existing
Existing
Uses *DISTRIBUTION
Extrusion
String (None,Single)
None
MessageFile
Reflect the Commands in Message File (useful for debugging purposes)
For example:
$# Layup Lib 20110719 API 20110719 File 20110630
$# Message file opened
$# CLX 2011.0808
$#
$# -CLXCommand
: Map
$# -MessageFile
: ./blade_mesh_map_abaqus.msg
$# -InputFile
: ./blade_mesh.bdf
$# -InputFileFormat
: Nastran
$# -OutputFile
: ./blade_mesh_map_abaqus.inp
$# -OutputFileFormat
: Abaqus
$# -MapFile
: ./blade_theoretical.Layup
$# -MapFileFormat
: Layup
$# -MapAngleTolerance
: 45
$# -MapDistanceTolerance
: 10
$# -MaterialOrientation
: Existing
$# -PartName
:
$# -Extrusion
: None
$#
"c:\Program Files\Simulayt\CLX\clx.exe" ^
-CLXCommand Map ^
-MessageFile ./blade_map_abaqus.msg ^
-InputFile ./blade_mesh.bdf ^
-InputFileFormat Nastran ^
-OutputFile ./blade_mesh_map_abaqus.inp ^
-OutputFileFormat Abaqus ^
-MapFile ./blade_theoretical.Layup ^
-MapFileFormat Layup ^
-MapAngleTolerance 45.0 ^
-MapDistanceTolerance 10.0 ^
-MaterialOrientation Existing ^
-Extrusion None
CLX command enclosed within due to space in the path to the executable file
Input mesh
all materials, ply and layup information from Layup file mapped onto existing mesh
The process flow CLX usually maps a Layup file from a design tool onto a mesh file created using an
analysis tool to create new output file with properties for subsequent use in analysis.
Process
A typical process utilising CLX follows the following steps, with CLX being controlled by a user
interface within the Finite Element Analysis (FEA) tool.
CATIA V5 Composites Link
Exports Layup file based on tessellation
FEA Tool
Exports Mesh as bdf
Simulayt CLX
Reads Layup and Mesh
Maps Layup onto Mesh, Creates Properties
Writes Mesh + Properties as bdf
FEA Tool
Imports Mesh + Properties as bdf
The detailed steps within CLX are as follows:
Parameter
Type
Values
Default
CLXCommand
String MapAndCreateProperties
MessageFile
String
InputFile
String
InputFileFormat
String Nastran
OutputFile
String
OutputFileFormat
String (Nastran,SimXpert)
MapFile
String
MapFileFormat
String Layup
Layup
MapAngleTolerance
Real
>= 0.0
45
Mapping tolerance
MapDistanceTolerance Real
>= 0.0
10
Mapping tolerance
MapSplitWidth
Real
>= 0.0
MaterialOrientation
String (THETA,Existing)
THETA
Material orientation.
AngleTolerance
Real
>= 0.0
15
ThicknessTolerance
Real
>= 0.0
15
Nastran
Comments
Nastran
FirstPID
Integer >0
FirstGPlyId
Integer >=0
1001
If 0, creates PCOMPs
IgnoreThickening
Bool
(0,1)
EquallySpacedVariables Bool
(0,1)
0,15,
LaminateReduceIters
Integer >=0
The parameters in blue control the transfer from ply layup to laminate definition. These
parameters mirror those on the Nastran Export GUI of Composites Link.
The laminates generated can be removed if isolated.
MessageFile
Reflect the Commands in Message File (useful for debugging purposes)
For example:
OutputFileFormat
The standard output format is Nastran, where materials, properties and mesh are exported
to a single bulk data format file. For SimXpert, materials and properties are written to a
Nastran format file, while a separate association file (with extension cl2simx) is written that
associates the properties with elements. This allows updating of properties without
disturbing the mesh definition in SimXpert. Note that for SimXpert, the Material Orientation
must be set to THETA.
MapAngleTolerance, MapDistanceTolerance and MapSplitWidth
In general, the input file containing the analysis mesh and the map file containing the Layup
will be on dissimilar meshes and mapping between them will be required as described in the
section entitled Mapping of Layup Data. The MapDistanceTolerance and
MapAngleTolerance define the maximum distance and angle differences between source
and destination meshes. MapSpitWidth ignores darts of the given width on the source ply.
MaterialOrientation
Material orientations are defined either using the existing orientations in the mesh file
(Existing) or by defining an angle with respect to the first edge of each element (THETA). For
the THETA option, the orientation of the lowest ply on each element with a nominal
direction of 0 degrees is used to define the angle, otherwise the orientation of the lowest ply
of arbitrary direction is used.
"c:\Program Files\Simulayt\CLX\clx.exe" ^
-MessageFile ./blade.msg ^
-InputFile ./blade_mesh.bdf ^
-InputFileFormat Nastran ^
-OutputFile ./blade_mesh_props.bdf ^
-OutputFileFormat Nastran ^
-MapFile ./blade.Layup ^
-MapFileFormat Layup ^
-MapAngleTolerance 45.0 ^
-MapDistanceTolerance 10.0 ^
-MaterialOrientation THETA ^
-AngleTolerance 15.0 ^
-ThicknessTolerance 15.0 ^
-FirstPID 1 ^
-FirstGPlyId 1001 ^
-IgnoreThickening 1 ^
-EquallySpacedVariables 1
CLX command enclosed within due to space in the path to the executable file
Input mesh
all materials, ply and layup information from Layup file mapped onto existing mesh
If multiple disconnected regions share the same GPlyId, a separate ply is created for each
region.
The seed point is placed at the centroid of the element having lowest ID.
The application direction is opposite the element normal at the seed point.
The reference direction is along the fiber direction at the seed point.
The ply element orientations are set to be consistent over the extent of each ply.
A feasible layup ply order is calculated if possible. Note that the global ply ids may define a
sequence that is impossible to manufacture, particularly with branched surfaces.
Parameter
Type
Values
Default
CLXCommand
String CreateLayupFromLaminate
LaminateType
String GlobalPly
MessageFile
String
InputFile
String
InputFileFormat
String Nastran
OutputFile
String
OutputFileFormat
String Layup
Nastran
Comments
Layup
Example
The conversion of GPlyId data is readily demonstrated using the file simple_testpart_PCOMPG.bdf,
which contains on a simple flat plate with six PCOMPG records, one of which is as follows:
The thicknesses of the laminates over the structure can be visualised using Laminate Tools or similar
application.
To convert this information to a Layup file, run clx with the appropriate flags, noting that
LaminateType must be set to GlobalPly.
rem Converts a laminate to a layup (global plies).
rem "c:\Program Files\Simulayt\CLX\clx.exe" ^
"C:\Simulayt\Development\Simulayt\CATIAv5\Development\clx\Release\clx.exe" ^
-CLXCommand CreateLayupFromLaminate ^
-LaminateType GlobalPly ^
-MessageFile ./test_pcompg.msg ^
-InputFile ./simple_testpart_PCOMPG.bdf ^
-InputFileFormat Nastran ^
-OutputFile ./test_pcompg.Layup ^
-OutputFileFormat Layup ^
The result of the operation is a Layup file with individual plies defined, as well as an associated Layup
sequence.
Layups will only be generated on areas (called Layup Surfaces) with no surface branches, e.g.
T-sections. For branched surfaces, each unbranched area will be identified automatically and
treated separately.
The orientation of each Layup Surface will be defined by the orientation of the element with
the lowest ID.
All plies will be assumed to be applied in an opposite direction to the normals of the Layup
Surface.
The reference direction is along the fiber direction at the seed point.
Given these simplifications, it is possible to identify feasible plies using the following approach:
Identify sets of neighbouring elements having consistent material, thickness and orientation.
The allowable variation in thickness and orientation can be set using the Thickness
Difference Tolerance and the Angle Difference Tolerance.
Identify zones on the Layup Surface containing adjacent elements with the same sequence
of sets in the normal direction.
Determine a feasible solution for the order of application of sets over the surface.
From this information, it is possible to determine a minimum feasible set of plies that will generate
the input laminate. This information can also be written to a spreadsheet when Write mode is
chosen, modified by the user, and read into CLX to generate a corresponding ply layup.
Command Line Parameters
Parameter
Type
Values
Default
CLXCommand
String CreateLayupFromLaminate
LaminateType
String LocalLayer
MessageFile
String
InputFile
String
InputFileFormat
String Nastran
OutputFile
String
Nastran
Comments
OutputFileFormat
String Layup
Layup
ElementSetId
Integer >=0
ThickDifferenceTol
Real
>= 0.0
AngleDifferenceTol
Real
>= 0.0
StartGPlyId
Integer >0
1001
SpreadsheetMode
String (None,Write,Read)
None
Spreadsheet mode
SpreadsheetName
String
Spreadsheet name
ElementSetId
The id of the element set containing elements to be considered in the ply creation process. If
not specified, all elements will be chosen. The selected region should be unbranched to
prevent unforeseen effects.
ThickDifferenceTol and AngleDifferenceTol
Sets the tolerance used when creating sets of similar material, thickness and angle. The
input values determine whether layers on adjacent layers have compatible thickness and
angle tolerance.
StartGPlyId
Sets the starting global ply ID generated.
SpreadsheetMode
Sets the spreadsheet mode to None, Write or Read. If Write is chosen, the set ids on each
zone are written to a spreadsheet with an initial feasible layup. The user can modify this and
read in the changed spreadsheet in Read mode in order to fine-tune the result.
SpreadsheetName
Sets the name of the spreadsheet written or read with the appropriate spreadsheet mode.
Example
Conversion of PCOMP data into plies can be demonstrated using the previous model, but with
PCOMP data only: simple_testpart_PCOMP.bdf. In this case, we need to define LaminateType as
LocalLayer, as well as additional parameters including setting the spreadsheet mode to Write, and
supplying a spreadsheet name. This is illustrated in the sample command file below:
MatId
1
2
3
4
5
6
7
Zones:
ZoneIds
NumNeig
hs
NeighIds
NumEle
ms
ElemIds
NumLyrs
LyrSetIds
Stack:
7
7
8
9
10
10
9
Min. Thk.
0.15
0.15
0.25
0.15
0.25
0.25
0.15
Zone 2:3 5
Zone 1 4
8
ElemIds
Elem 1:15
Elem 1:3 6:8 11:15 18:20 23:25
Elem 1:12 16:17 21:22
Elem 1:25
Elem 1:25
Elem 4:5 9:10 14:25
Elem 16:25
3
3
Zone 1 4 Zone 2:3
6
6
Zone 1 6
5
1
3
6
4
5
Elem
Elem 13 14:15
5
1
2
2
4
5
Elem 4:5
9:10
5
1
2
3
4
5
Max.
Thk.
1st Ang.
0.15
-89.999
0.15
0
0.25
-44.999
0.15
0
0.25
0
0.25
-45
0.15
-90
3
Zone 3:5
4
Elem 16:17
21:22
5
1
2
6
4
5
6
Elem 18:20
23:25
5
7
3
6
4
5
5
7
2
6
4
5
ZoneIds
ply.1001
ply.1002
ply.1003
ply.1004
ply.1005
ply.1006
ply.1007
ply.1008
1
2
1
2
2
1
2
3
6
4
5
4
5
5
7
2
3
6
4
5
6
4
5
4
5
6
7
6
4
5
If the user wishes to change the Layup, the plies may be modified subject to 1) the layup order on
each element not being changed, and 2) each ply being part of the same set. An example modified
spreadsheet could be:
Stack:
ZoneIds
ply.1001
ply.1002
ply.1003
ply.1004
ply.1005
ply.1006
ply.1007
ply.1008
1
1
2
1
2
3
4
5
3
1
2
2
3
6
4
5
4
5
4
1
2
6
4
5
2
3
6
4
5
This new configuration can be used to define the plies by re-running clx in Read mode.
After plies have been generated, a Layup file is created and this can be used in the usual way by all
tools based on Simulayts technology.
6
4
5
Mirror
The Mirror command will mirror the input file about the chosen plane, before outputting the file in
the same format. Node coordinates are reversed about the specified mirror plane. The x and z axes
of coordinate systems are similarly reversed, so the y-axes change sense and ply reference angles
must be reversed. Element normals are flipped, so angles measured with respect to the first edge of
the element are unchanged, but the stacking sequence for both ply layups and laminates must be
reversed.
Command Line Parameters
Parameter
Type
Values
Default
CLXCommand
String Mirror
MessageFile
String
InputFile
String
InputFileFormat
OutputFile
String
MirrorPlane
String XZ
XZ
Mirror plane.
MirrorAngles
String Yes
Yes
Nastran
Comments
MirrorPlane
This is the plane about which the model is mirrored. The XZ plane (y=0) is the only plane
supported at present.
MirrorAngles
When mirroring, it is necessary for the reference angles on plies to be reversed to maintain
symmetry. If yes, ply reference angles are changed in sign.
Example
Any Layup or mesh file can be mirrored as shown in the sample command file below:
Appendices
Mapping of Layup Data
The ply layup in a Layup model is defined on a shell/tessellated mesh. It is necessary to map the
layup from one mesh to another when a Layup is transferred from a design system to an analysis
system.
For example, when Composites Link is used to transfer a Layup from CATIA, the Layup model is
usually based on a tessellation of the surface geometry. In general, the resolution of this tessellated
mesh is determined by the curvature of the underlying surface by limiting the allowable sag. Thus a
flat region is described using large facets, with a highly-curved region necessitating fine facets. This
mesh is therefore, in general, very different to an analysis mesh.
The Map Layup capability in CLX has been developed to allow users to map data from design
systems. In order to do this, it is necessary to generate a mapping between the analysis mesh and
the imported mesh. This mapping is calculated by element matching or piercing between the
imported (source) mesh and the analysis (current/destination) mesh.
CLX first tries to find a direct match between current and imported elements by identifying elements
with the same nodal coordinates. Where such a match is identified, the layup on the imported
element can be transferred directly to the current element as necessary. The matching process is
almost instantaneous and is used first where possible.
However, where a current element has no direct match, mapping is determined through piercing.
Here, a normal vector is calculated at the centroid of each current (destination) element and any
intersections with imported (source) elements are calculated. The distance between the centroid
and intersection point is calculated, as is the angle between the current normal and the normal of
the intersected imported element.
If both the calculated distance and angle are less than the distance and angular tolerances
respectively (MapDistanceTolerance and MapAngleTolerance parameters), the layup on the
intersected element is mapped onto the current element. The relative tolerance is the fraction of
the largest diagonal distance in the destination mesh, whereas the absolute tolerance uses the input
value directly. If there are multiple intersections onto a single ply, the closest intersection is used. If
there are multiple intersections on multiple plies, all are taken into account this situation can occur
if multiple CATIA ply groups are mapped onto a single layer of shell elements.
Where the target mesh is outside the analysis mesh, we can get problems at
corner.