3.1.14: Orientate Element
“Orientate Element” is a multi-component where the drop-down list under “Element Type” lets one select between beams and shells.
In Karamba3D the default orientation of the local coordinate system of a beam or truss follows these conventions:
- The local X-axis (of red color) is the beam axis and points from starting-node to end-node.
- The local Y-axis (green) is at right angle to the local X-axis and parallel to the global XY-plane. This specifies the local Y-axis uniquely unless the local X-axis is perpendicular to the XY-plane. If this is the case, the local Y-axis is chosen parallel to the global Y-axis. The default criteria for verticality is, that the z-component of the unit vector in axial direction is larger or equal to. This value can be changed in the "karamba.ini" file via the “limit_parallel” property.
- The local Z-axis (blue) follows from the local X- and Y-axis so that the three of them form a right-handed coordinate system.
Fig. 220.127.116.11: Controlling the orientation of local beam coordinate system
The local coordinate system affects the direction of locally defined loads and the orientation of the element’s cross section. Use the “Orientate Beam”-component to set the local coordinate system (see fig. 18.104.22.168):
- The input plug “X-axis” accepts a vector. The local X-axis will be oriented in such a way that its angle with the given vector is less than 90 degree. This allows to give a consistent orientation to a group of beams.
- The local Y-axis lies in the plane which is defined by the local X-axis and the vector plugged into the “Y-axis”-input. If the Y-axis is parallel to the beam axis it is not applicable to the element.
- If no vector is supplied at the “Y-axis”-input or the given Y-axis is not applicable, then the local Z-axis of the beam lies in the plane which is defined by the local X-axis and the vector plugged into the “Z-axis”-input.
- “Alpha” represents an additional rotation angle (in degree) of the local Z-axis about the local X-axis.
In order to control the orientation of a beam, the “Orientate Beam”-component can be applied in two ways:
- 1.“Flow-through”: Plug it in between a “LineToBeam”- and an “Assemble”-component. The changes will be applied to all beam elements which pass through it. In case of shell elements the output is “Null”.
- 2.“Agent”: Specify beams by identifier via input “BeamId” and plug the resulting beam-agent directly into the “Elem”-input of the “Assemble”-component. This method allows to harness the power of regular expressions for selecting elements (see section 3.1.15).
For shells the default orientation of their local coordinate systems can be seen in fig. 22.214.171.124. The following convention applies: The local x-axis is parallel to the global x-direction unless the element normal is parallel to the global x-direction. In that case the local x-axis points in the global y-direction. The local z-axis is always perpendicular to the shell element and its orientation depends on the order of the vertices of the underlying mesh face: If the z-axis points towards ones nose, the order of the face vertices is counter-clockwise (See fig. 6.17 in  for an unforgettable way of remembering the right-hand rule of rotation.).
Fig. 126.96.36.199: Default orientation of the local shell coordinate systems
The “Orientate Shell”-component lets one control local x- and z- directions of the faces which make up a shell: “X-Oris” and “Z-Oris” inputs expect lists of direction vectors, one for each mesh face. In case the number of vectors does not match the number of faces the longest list principle applies. Infeasible directions (e.g. a prescribed z-vector which lies in the plane of an element) get ignored.
Regarding the application of the “Orientate Shell”-component the same two options (“flow-through” or “agent”) exist as for the “Orientate Beam”-component.
Fig. 188.8.131.52: User defined orientation of the local shell coordinate systems