Skip to main content

REXS V1.7

XML-Syntax

Modell-Objekt - XML-Syntax

Das REXS Modell ist in einem XML-Tag namens "model" enthalten. Dieses enthält wiederum die "relations"- und "components"-Tags, sowie ggfs. das "load_spectrum"-Tag.

Beispiel Modell REXS-Datei | XML-Syntax

<model version="1.4" applicationId="FVA-Workbench" applicationVersion="7.0.0" date="2021-11-03T11:35:17+01:00" applicationLanguage="en">
	<relations>...</relations>
	<components>...</components>
	<load_spectrum>...</load_spectrum> (optional)
</model>

Komponenten - XML-Syntax

In der Schnittstellendatei werden Komponenten mit dem XML-Tag <component></component> beschrieben.

Der Inhalt des Tags sind die der Komponente zugehörigen Attribute:

Beispiel Komponenten | XML-Syntax

<components>
	<component id="4" type="cylindrical_gear" name="Pinion">
		<attribute id="attr1"> .. </attribute>
		<attribute id="attr2"> .. </attribute>
		...
	</component >
	<component id="6" type="cylindrical_gear" name="Wheel">
		<attribute id="attr1"> .. </attribute>
		<attribute id="attr2"> .. </attribute>
		...
	</component >
</components>

Attributwerte - XML-Syntax

Merkmal

Beschreibung

Werte von skalaren Attributen:

Der Wert des Attributes ist der Inhalt des „attribute“-Tags, z.B. <attribute …>4.72</attribute>.

Das Gleitkomma-Zeichen ist „ . “ (Punkt).

Werte von Arrays

array

Das Tag „array“ umschließt die Spalten eines eindimensionalen Arrays.

c

Das Tag „c“ (column) kennzeichnet eine Spalte des Arrays, und umschließt einen skalaren Eintrag des Arrays (siehe Beispiel unten)

Das Gleitkomma-Zeichen ist „ . “ (Punkt).

code

Hinweis

Änderung ggü. REXS Version 1.3

Die Möglichkeit Arrays in Binärform anzugeben ist neu.

Überschreiten Arrays eine gewissen Größe, kann es aus Performancegründen sinnvoll sein diese in Binärform in der REXS-Datei abzulegen. Das xml-Attribut "code" ist eine optionale Angabe im array-tag. Zu verwenden, falls das Array in Binärform mit base64-Kodierung in der REXS-Datei steht. Dazu wird in dem xml-Tag „array“ die Kodierung und das Binärformat angegeben. Die Byte-Reihenfolge ist „Little Endian“. Folgende Varianten stehen zur Verfügung:

  • <array code="int32">

  • <array code="float64">

  • <array code="float32">

Falls das Array in Binärform angegeben wird entfallen die "c" Tags.

Werte von Matrizen

matrix

Das Tag „matrix“ umschließt die Zeilen einer Matrix.

r

Das Tag „r“ (row) kennzeichnet eine Zeile der Matrix, und umschließt eine Liste von "c" Einträgen. Der Inhalt aller Zeilen muss die gleiche Länge haben.

c

Das Tag „c“ (column) kennzeichnet eine Spalte der Matrix, und umschließt einen skalaren Eintrag der Matrix (siehe Beispiel unten)

Das Gleitkomma-Zeichen ist „ . “ (Punkt).

code, rows, columns

Hinweis

Änderung ggü. REXS Version 1.3

Die Möglichkeit Matrizen in Binärform anzugeben ist neu.

Überschreiten Matrizen eine gewissen Größe, kann es aus Performancegründen sinnvoll sein diese in Binärform in der REXS-Datei abzulegen. Das xml-Attribut "code" ist eine optionale Angabe im matrix-tag. Zu verwenden, falls das Arrays in Binärform mit base64-Kodierung in der REXS-Datei steht. Zunächst wird die 2d-Matrix spaltenweise in ein 1d-Array überführt ( array = [spalte1, spalte2, ...]). Dieses wird dann wie oben beschrieben in Binärform gebracht (Byte-Reihenfolge ist „Little Endian“) und schließlich per base64-Kodierung in einen String gewandelt. Neben der Angabe des Binärformats (int32, float64, float32) ist die Angabe der Anzahl der Spalten und Zeilen der Matrix im matrix-tag notwendig über "rows" und "columns". Folgende Varianten stehen zur Verfügung:

  • <matrix code="int32" rows="x" columns="y">

  • <matrix code="float64" rows="x" columns="y">

  • <matrix code="float32" rows="x" columns="y">

Falls die Matrix in Binärform angegeben wird entfallen die "r" und "c" Tags.

Hinweis

Änderung ggü. REXS Version 1.3

Diverse Erweiterungen und Anpassungen der Attribute. Diese sind in der REXS-Datenbank dokumentiert.

Werte von Arrays-of-Arrays

array_of_arrays

Das Tag „array_of_array“ umschließt die Zeilen eines Array-of-Arrays.

array

Das Tag „array“ kennzeichnet eine Zeile des Array-of-Arrays, und umschließt eine Liste von "c" Einträgen. Die Zeilen können unterschiedliche Länge haben.

c

Das Tag „c“ (column) kennzeichnet eine Spalte eines Array, und umschließt einen skalaren Eintrag des Array-of-Arrays (siehe Beispiel unten)

Beispiel Attribute - XML-Syntax

Beispiel String-Attribut | XML-Syntax

<attribute id="name">30203-A</attribute>

Beispiel Double-Attribut mit Maßeinheit | XML-Syntax

<attribute id="normal_module" unit="mm">23.5</attribute>

Beispiel Double-Attribut ohne Maßeinheit | XML-Syntax

<attribute id="addendum_modification_coefficient" unit="none">23.5</attribute>

Beispiel Integer-Attribut ohne Maßeinheit | XML-Syntax

<attribute id="number_of_teeth" unit="none">8</attribute>

Beispiel Boolean-Attribut | XML-Syntax

<attribute id="is_driving_gear">false</attribute>

Beispiel Enum-Attribut | XML-Syntax

<attribute id="axial_force_absorption">both_directions</attribute>

Beispiel Array-Attribut | XML-Syntax

<attribute id="support_vector" unit="mm">
	<array>
		<c>1.0</c>
		<c>1.0</c>
		<c>0.0</c>
	</array>
</attribute>

Beispiel Matrix-Attribut | XML-Syntax

<attribute id="matrix_correction" unit="mm">
	<matrix>
		<r>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
		</r>
		<r>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
		</r>
			...
		<r>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
		</r>
	</matrix>
</attribute>

Beispiel Array-Attribut in Binärform | XML-Syntax

<attribute id="example_attribute_id" unit="mm">
	<array code="float64"/>62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA=<array/>
</attribute>

Beispiel Matrix-Attribut in Binärform | XML-Syntax

<attribute id="example_matrix_coded" unit="mm">
        <matrix code="float64" columns="3" rows="2">AAAAAAAA8D8AAAAAAAAQQAAAAAAAAABAAAAAAAAAFEAAAAAAAAAIQAAAAAAAABhA</matrix>
</attribute>

Beispiel array_of_integer_arrays-Attribut | XML-Syntax

<attribute id="element_structure" unit="none">
	<array_of_arrays>
		<array><c>108</c><c>2</c><c>1</c><c>107</c></array>
		<array><c>109</c><c>3</c><c>2</c><c>108</c></array>
		<array><c>8</c><c>114</c><c>115</c></array>	
	</array_of_arrays>
</attribute>

Relationen - XML-Syntax

Eine Relation in der XML-Datei besteht aus einem „relation“-Tag, welcher mehrere „ref“-Tags enthält.

Beispiel Relationen REXS-Datei | XML-Syntax

<relations>
	<relation id="15" type="ordered_assembly" order="1">
		<ref id="8" role="assembly" hint="bearing"/>
		<ref id="16" role="part" hint="bearing_row"/>
	</relation>
	<relation id="23" type="stage">
		<ref id="3" role="stage" hint="cylindrical_stage"/>
		<ref id="7" role="gear_1" hint="cylindrical_gear"/>
		<ref id="9" role="gear_2" hint="cylindrical_gear"/>
	</relation>
</relations>

"load_spectrum" Objekt - XML-Syntax

Das "load_spectrum"-Tag ist ein optionaler Bestandteil des REXS-XML-Modells. Es besitzt eine (numerische) Kennung ("id") und umschließt ein oder mehrere "load_case"-Tags sowie das "accumulation"-Tag. Diese umschließen wiederum eine Liste von "component"-Tags.

Beispiel Lastkollektiv | XML-Syntax

<model>
	<relations>
	<components>
	    <component id="1">
	    <component id="4">
	    <component id="6">
	    <!-- further components -->
	</components>
	<load_spectrum id="1">
		<load_case id="1">
		<load_case id="2">
		<load_case id="3">
			<component id="4">
			<component id="6">
		</load_case>
		<accumulation>
			<component id="4">
			<component id="6">
		</accumulation>
	</load_spectrum>
</model>

Beispiel Modell - XML-Syntax

Beispiel Modell | XML-Syntax

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<model applicationId="FVA Workbench" applicationVersion="7.0" date="2021-11-23T13:52:44+01:00" version="1.4">
  <relations>
    <relation id="45" type="assembly">
      <ref hint="shaft" id="42" role="assembly"/>
      <ref hint="shaft_section" id="78" role="part"/>
    </relation>
    <relation id="53" type="side">
      <ref hint="shaft" id="6" role="inner_part"/>
      <ref hint="shaft" id="42" role="outer_part"/>
      <ref hint="rolling_bearing_with_detailed_geometry" id="86" role="assembly"/>
    </relation>
	...
  </relations>
  <components>
    <component id="44" name="Cylindrical gear [44]" type="cylindrical_gear">
      <attribute id="example_string" unit="none">30203-A</attribute>	  
      <attribute id="example_floating_point_unit" unit="mum">20.0</attribute>
      <attribute id="example_floating_point_without_unit" unit="none">0.3</attribute>
      <attribute id="example_integer" unit="none">3</attribute>
      <attribute id="example_enum" unit="none">method_b</attribute>
      <attribute id="example_boolean" unit="none">false</attribute>
      <attribute id="example_floating_point_array" unit="mm">
       <array><c>155.0</c><c>0.0</c><c>-190.0</c></array>
      </attribute>
      <attribute id="example_floating_point_matrix" unit="mm">
	<matrix>
	    <r><c>1.0</c><c>0.0</c><c>0.0</c></r>
	    <r><c>0.0</c><c>1.0</c><c>0.0</c></r>
	    <r><c>0.0</c><c>0.0</c><c>1.0</c></r>
	</matrix>
      </attribute>
      <attribute id="example_floating_point_array_coded" unit="mm">
        <array code="float64">62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA</array>
      </attribute>
      <attribute id="example_array_of_arrays" unit="none">
	<array_of_arrays>
            <array><c>108</c><c>2</c><c>1</c><c>107</c></array>
	    <array><c>109</c><c>3</c><c>2</c><c>108</c></array>
	    <array><c>8</c><c>114</c><c>115</c></array>	
	</array_of_arrays>
      </attribute>
    </component>
    <component id="45" name="Cylindrical gear [45]" type="cylindrical_gear">
         ...
    </component>
  </components>
  <load_spectrum id="1">
    <load_case id="1">
    <load_case id="2">
    <load_case id="3">
	<component id="4">
            <attribute id="example" unit="mm">20.0</attribute>
		...
	</component>
    </load_case>
    <accumulation>
	<component id="4">...</component>
    </accumulation>
  </load_spectrum>
</model>