complexType · extension complexBaseType · all
Scaling, rotation and translation that place a local coordinate system in the coordinate system of its parent
A transformation places the coordinate system in which a node is defined, e.g. a wing, one of its sections or an element, in the coordinate system of its parent. It scales, rotates and translates everything that is defined in the local coordinate system. The parent of a section or an element is the node that contains it; a component such as a wing can reference its parent with parentUID.
Order of scaling, rotation and translation
A point p given in the local coordinate system lies in the coordinate system of the parent at
where S scales by the factors sx, sy and sz of scaling, Rx, Ry and Rz rotate by the angles φx, φy and φz of rotation about the x-, y- and z-axis, and t is the translation. The point is first scaled along the local axes, then rotated and finally translated. The translation is therefore neither scaled nor rotated.
The figure illustrates the three steps for an airfoil in the x-z plane: figure (a) scales it by 3, figure (b) rotates it by 12° about the y-axis, and figure (c) translates it by t. Each panel shows the result of the previous step as a pale contour.
Rotation
The angles are given in degrees and are positive by the right-hand rule about their axis. The coordinate system is rotated first about its x-axis, then about the rotated y-axis y′ and finally about the twice rotated z-axis z″. For a point, this is the same as rotating it first about the z-axis, then about the y-axis and then about the x-axis of the parent coordinate system, which is the order of the equation above.
The figure illustrates the sequence for φx = 40°, φy = 35° and φz = 45°. Each panel starts from the axes of the previous panel, drawn pale, and the shaded sector marks the angle of the rotation. The axis of each rotation, drawn dark, keeps its position; the other two axes turn about it in the direction of the arrow.
Nested transformations
Where nodes are nested, e.g. an element in a section of a wing, the transformation of the inner node is applied first and the transformation of its parent after it (see wingType). The scaling and rotation of the parent therefore also scale and rotate the translation of the inner node, whereas the transformation of the inner node does not change its parent.
Components with a parent
A component that references another component with parentUID, e.g. a wing its fuselage, follows only the translation of its parent. With refType="absLocal" of the translation, which is the default, a point of the component lies in the global coordinate system at
where oparent is the origin of the coordinate system of the parent in the global coordinate system. The translation is added along the global axes; the rotation and scaling of the parent do not apply to the component. With refType="absGlobal", the transformation refers to the global coordinate system, as for a component without parent (see the local coordinate systems in cpacsType).
Rules
An element that is omitted has its default: rotation and translation are 0 and scaling is 1. Elements with these values can be omitted to write a dataset more compactly.
A scaling is either omitted or given with all three components.
A component that is missing in a rotation or translation is 0.
The refType of the translation only has a meaning for a component that references a parent with parentUID. It is omitted elsewhere, e.g. in sections and elements.
Example
A vertical tail is a wing whose coordinate system is rotated by 90° about the x-axis, so that its span, the y-axis of the wing, points upwards. Its translation is given relative to the origin of the fuselage it references with parentUID. The scaling has its default and is omitted.
<wing uID="VerticalTail">
<name>Vertical tail</name>
<parentUID>Fuselage</parentUID>
<transformation>
<rotation>
<x>90</x>
<y>0</y>
<z>0</z>
</rotation>
<translation refType="absLocal">
<x>22</x>
<y>0</y>
<z>0.8</z>
</translation>
</transformation>
<sections>
...
</sections>
<positionings>
...
</positionings>
<segments>
...
</segments>
</wing>| Name | Type | Constraints | Use | Default | Description |
|---|---|---|---|---|---|
@externalDataDirectory | xsd:string | optional | Directory of the external data file | ||
@externalDataNodePath | xsd:string | optional | Path of the node inside the external data file | ||
@externalFileName | xsd:string | optional | Name of the external data file | ||
@uID | xsd:ID | optional | UID |
| Name | Type | Constraints | OccurrenceHow often the element may appear at this place. The schema writes it as minOccurs and maxOccurs on the declaration. | Default | Description |
|---|---|---|---|---|---|
| allThe children below may appear in any order. Each may appear at most once. | |||||
scaling | pointType | [0..1] optional | Scaling factors along the x-, y- and z-axis of the local coordinate system. Either omitted (default 1) or given with all three components. | ||
rotation | pointType | [0..1] optional | Rotation angles in degrees about the x-axis, the rotated y-axis and the twice rotated z-axis, positive by the right-hand rule. Default 0; a missing component is 0. | ||
translation | pointAbsRelType | [0..1] optional | Translation of the local coordinate system. Default 0; a missing component is 0. For a component with parentUID, refType states whether the translation is relative to the origin of the parent (absLocal, default) or global (absGlobal). | ||
cpacs/vehicles/aircraft/model/ducts/duct/transformationcpacs/vehicles/aircraft/model/ducts/duct/sections/section/transformationcpacs/vehicles/aircraft/model/ducts/duct/sections/section/elements/element/transformationcpacs/vehicles/aircraft/model/ducts/ductAssembly/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/sections/section/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/sections/section/elements/element/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/seatModules/seatModule/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/sidewallPanels/sidewallPanel/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/luggageCompartments/luggageCompartment/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/ceilingPanels/ceilingPanel/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/galleys/galley/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/genericFloorModules/genericFloorModule/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/lavatories/lavatory/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/classDividers/classDivider/transformationcpacs/vehicles/aircraft/model/fuselages/fuselage/decks/deck/cargoContainers/cargoContainer/transformationcpacs/vehicles/aircraft/model/wings/wing/transformationcpacs/vehicles/aircraft/model/wings/wing/sections/section/transformationcpacs/vehicles/aircraft/model/wings/wing/sections/section/elements/element/transformationcpacs/vehicles/aircraft/model/engines/engine/transformationcpacs/vehicles/aircraft/model/enginePylons/enginePylon/transformationcpacs/vehicles/aircraft/model/enginePylons/enginePylon/sections/section/transformationcpacs/vehicles/aircraft/model/enginePylons/enginePylon/sections/section/elements/element/transformationcpacs/vehicles/aircraft/model/enginePylons/enginePylon/loadCarryingStructure/pylonBox/innerSideShell/transformation| Type | Name |
|---|---|
deckComponentBaseType | transformation |
decksDeckType | transformation |
ductAssemblyType | transformation |
ductType | transformation |
elementGeometryType | transformation |
enginePositionType | transformation |
enginePylonType | transformation |
externalGeometryType | transformation |
fuelTankType | transformation |
fuselageElementType | transformation |
fuselageSectionType | transformation |
fuselageType | transformation |
genericGeometricComponentType | transformation |
landingGearBaseType | transformation |
nacelleSectionType | transformation |
pylonShellType | transformation |
rotorHubHingeType | transformation |
rotorType | transformation |
transmissionType | transformation |
vesselType | transformation |
wingElementType | transformation |
wingSectionType | transformation |
wingType | transformation |