Supplemented CAD Model Metadata in XML Format

When you cost a part in the Composites process group, aPriori uses the Composites Mapping XSLT file (specified in the Production Scenario tab of the Cost Guide) to supplement XML-formatted CAD model metadata (see CAD Model Metadata in XML Format). The metadata is supplemented with XML elements that specify GCD property names and values.

In a typical installation, this supplemented XML file has a name that starts with “post_”, and can be found in the folder C:\Users\<user-name>\AppData\Local\aPriori\<release-number>\tmp\compositeFiles.

You can find the default XSLT file (as well as additional XSLT files that it includes) in the samples directory of your aPriori installation. You can make custom XSLT files available in the Composites Mapping field of the Production Scenario tab by using the System Administrator tool (select Composite Mapping Files in the left-hand pane, and the click Add Mapping File).

The post-XSLT XML file contains one or more supplemental propertyGroup elements under each modelTreeBean that corresponds to a level in the stacking sequence. For CATIA/Fibersim, these are under a new propertyGroups element under the existing (pre-XSLT) modelTreeBean that corresponds to the sequence level. For CATIA/CPD, this is a propertyGroup element under a supplemental modelTreeBean corresponding to the sequence level. There is one supplemental propertyGroup for each ply or core at the relevant sequence level.

The propertyGroup has propertyBean children of the following form:

Copy
<propertyBean>
  <propertyName>GCD-property-name</propertyName>
  <propertyValue>GCD-property-value</propertyValue>
</propertyBean>

 

Here is an example of a supplemental propertyGroup:

Copy
<propertyGroup>
    <lumpName>987|XYZ|Seq2|P2|Ply2ABC</lumpName>
    <properties>
     <propertyBean>
      <propertyName>Sequence</propertyName>
      <propertyValue>2</propertyValue>
     </propertyBean>
     <propertyBean>
      <propertyName>Orientation</propertyName>
      <propertyValue>45</propertyValue>
     </propertyBean>
     <propertyBean>
      <propertyName>Material</propertyName>
      <propertyValue>ABC</propertyValue>
     </propertyBean>
     <propertyBean>
      <propertyName>Step</propertyName>
      <propertyValue>2</propertyValue>
     </propertyBean>
     <propertyBean>
      <propertyName>Rosette</propertyName>
      <propertyValue>Rosette-1</propertyValue>
     </propertyBean>
    </properties>
</propertyGroup>

Note: Rosette-1 is not really a GCD property value, but rather is a rosette name, which aPriori uses to help set the Ply GCD properties Origin and Direction. See CATIA with Fibersim.

Note: Also Step is not a GCD property. Is it is included among the supplemental propertyBean elements for debugging purposes only, to help identify the element in the XSL source on the basis of which the Squence property was set (see CATIA with Fibersim).

Finally, note that the propertyGroup has a lumpName element containing the lumpName for the corresponding ply or core.

The sections listed below describe how the elements of the XSLT source file are used by the default XSLT file to generate the supplemental propertyBean elements in the XSLT target file. The approach to this depends on the modeler used to create the CAD model (specified by the modelerType element):

CATIA with Fibersim

This section explains how aPriori uses the metadata XML from a CATIA/Fibersim model to set Ply and Core GCD properties for a Composites part. For each lumpName that is a child of the lumpNames element, aPriori does the following:

  1. Finds the modelTreeBean whose path is the lumpName minus the last path component.

    For example, if the current lumpName is 987|XYZ|Seq4|P4|Ply4ABC, aPriori finds the modelTreeBean with the following as a direct child:

    <path>987|XYZ|Seq4|P4</path>

  1. Finds the first propertyGroup in the propertyGroups element that is a direct child of this modelBeanTree.

  2. Uses the propertyBean elements in this propertyGroup to set GCD properties for the lumpName’s corresponding GCD.

 

To set GCD properties for the lumpName’s corresponding GCD (Ply or Core), aPriori uses these propertyBean elements as follows:

  • Orientation: the Ply GCD property Orientation is based on the propertyBean whose propertyName is either Orientation or Specified Orientation. The value of the GCD property is the result of removing any leading occurrence ‘+’ and any trailing occurrence of ‘deg’ from the propertyValue.

    For example, suppose the relevant property group includes the following:

    Copy
    <propertyBean>
     <propertyName>Specified Orientation</propertyName>
     <propertyValue>+45deg</propertyValue>
    </propertyBean>

    In this case, the GCD property Orientation is set to 4

  • Material: the value of the ply or core GCD property Material is the propertyValue of the propertyBean whose propertyName is Material.

    For example, suppose the relevant property group includes the following:

    Copy
    <propertyBean>
        <propertyName>Material</propertyName>
        <propertyValue>ABC</propertyValue>
    </propertyBean>

    In this case, the GCD property Material is set to ABC.

  • Sequence: the value of the ply or core GCD property Sequence is the propertyValue of the propertyBean whose propertyName is Sequence or Step (whichever is a number, if both are present).

For example, suppose the relevant property group includes the following:

Copy
<propertyBean>
  <propertyName>Sequence</propertyName>
  <propertyValue>A</propertyValue>
</propertyBean>
<propertyBean>
  <propertyName>Step</propertyName>
  <propertyValue>6</propertyValue>
</propertyBean>

In this case, the GCD property Sequence is set to 6.

If neither Sequence nor Step is present in this XML property group, the GCD property Sequence is based on the name of the nearest ancestor of the relevant property group that is a modelTreeBean whose name satisfies one of the following:

  • Contains only digits.

  • Consists of a string that matches (case insensitive) ‘Sequence’ or ‘Seq’, followed by an optional symbol, followed by an optional letter,followed by a sequence of digits, followed by an optional ending string.

In this case, the value of the GCD property is the result of removing any leading 0s from the name’s digits.

For example, suppose an ancestor of the relevant property group includes the following child element:

<name>Sequence.030</name>

In this case, the GCD property Sequence is set to 30. The following supplemental propertyBean appears in the supplemented metadata XML:

Copy
<propertyBean>
  <propertyName>Sequence</propertyName>
  <propertyValue>30</propertyValue>
</propertyBean>
  • Non Lamina: the GCD property Non Lamina is set to true if the name child of the nearest modelTreeBean ancestor of the relevant property group ends with ‘Definition Data’. (The nearest modelTreeBean ancestor of the relevant property group is the modelTreeBean found in step 1, above.)

    For example, suppose the nearest modelTreeBean ancestor of the relevant property group includes the following child element

    <name>XYZ-1|Ply Group Definition Data</name>

    In this case, the value of the GCD property Non Lamina is set to true.

  • The GCD property Non Lamina is also set to true if there is a lumpName in lumpNames that matches all but the last component of the current lumpName.

  • Origin and Direction: in order to set the Ply GCD properties Origin and Direction, aPriori requires the name of the associated rosette, which is assumed to be the propertyValue of the properyBean whose propertyName is Reference Rosette.

    For example, suppose the relevant property group includes the following:

    Copy
    <propertyBean>
      <propertyName>Reference Rosette</propertyName>
      <propertyValue>Rosette-1</propertyValue>
    </propertyBean> 

    In this case, the following supplemental propertyBean appears in the supplemented metadata XML:

    Copy
    <propertyBean>
      <propertyName>Rosette</propertyName>
      <propertyValue>Rosette-1</propertyValue>
    </propertyBean>

CATIA with CPD

This section explains how aPriori uses the metadata XML from a CATIA/CPD model to set Ply and Core GCD properties for a Composites part. For a given Ply or Core, aPriori sets the GCD properties based on the associated lumpName (see CAD Model Metadata in XML Format).

The last component is assumed to have the following form:

ply-name:material-name:orientation

The third-to-last component of the lumpName is assumed to specify the sequence.

Here is a sample lumpName with this format:

<lumpName>987|XYZ|Seq001|P1|Ply.1:ABC:-45 / 45</lumpName>

In this case, the GCD properties are set as follows:

  • Sequence: 1 (the trailing digits of Seq001, with leading zeros removed)

  • Material: ABC

  • Orientation: -45

Note: A rosette name is not specified. With CATIA/CPD, the GCD properties Origin and Direction are populated based on coordinate system whose 0 direction is aligned with the longest dimension of the smallest bounding box around the whole part.

NX™ with Fibersim

This section explains how aPriori uses the metadata XML from an NX™/Fibersim model to set Ply and Core GCD properties for a Composites part. For each lumpName, aPriori does the following:

  1. Finds the line of an annotation that has the following form:

    ply-name separator sequence-and-step separator number separator string

    where the lumpName has the form ply-name_sequence-and-step, and where separator is whitespace or a character such as colon or vertical bar, |.

    For example, for the lumpNameP001_A10, aPriori finds the line of an annotation that has the following form:

    P001A10numberstring

  1. aPriori assumes that this annotation line has the following form, and sets the GCD properties accordingly:

    ply-name separator sequence-and-step separator orientation separator material-name

    where the trailing portion of sequence-and-step is assumed to be a number.

    For example, suppose aPriori finds the following annotation:

    P001    A10    0    ABC

    In this case, the GCD properties are set as follows:

    • Sequence: 10

    • Orientation: 0

    • Material: ABC

Note: For models that use NX™ with Fibersim, the pre-XSLT XML includes only annotation elements for annotations that either are not attached to any model geometry or are attached to visible (non-hidden) solid bodies, surface geometry, datum curves, or edges (but not vertices or datum points).