Kinematic component provides runtime hierarchy manipulation and pivot point adjustment for imported CAD models and assemblies. More...

Public Member Functions | |
string | GetVisuText () |
void | UpdateValues () |
void | MoveAndRotate () |
void | DisplayGroupMeshes (Color color, bool forcecolor=false) |
string | GetGroupName () |
![]() | |
void | PreStartSim () |
Is called by the realvirtualController before the component is started. | |
void | StartSim () |
Is called by the realvirtualController to start or stop the component. | |
void | StopSim () |
Vector3 | DirectionToVector (DIRECTION direction) |
Transfers the direction enumeration to a vector. | |
DIRECTION | VectorToDirection (bool torotatoin, Vector3 vector) |
Transfers a vector to the direction enumeration. | |
float | GetLocalScale (Transform thetransform, DIRECTION direction) |
List< BehaviorInterfaceConnection > | UpdateConnectionInfo () |
List< Signal > | GetConnectedSignals () |
void | SetVisibility (bool visibility) |
Sets the visibility of this object including all subobjects. | |
List< BehaviorInterfaceConnection > | GetConnections () |
List< Signal > | GetSignals () |
GameObject | GetChildByName (string name) |
Gets a child by name. | |
List< GameObject > | GetChildsByName (string name) |
Gets all child by name. | |
GameObject | GetChildByNameAlsoHidden (string name) |
List< GameObject > | GetAllMeshesWithGroup (string group) |
List< GameObject > | GetAllWithGroup (string group) |
List< GameObject > | GetAllWithGroups (List< string > groups) |
List< GameObject > | GetAllMeshesWithGroups (List< string > groups) |
List< string > | GetMyGroups () |
List< GameObject > | GetMeshesWithSameGroups () |
List< GameObject > | GetAllWithSameGroups () |
MeshRenderer | GetMeshRenderer () |
Gets the mesh renderers in the childrens. | |
void | SetCollider (bool enabled) |
sets the collider in all child objects | |
void | ErrorMessage (string message) |
Displays an error message. | |
void | ChangeConnectionMode (bool isconnected) |
void | Log (string message) |
Logs a message. | |
void | Log (string message, object obj) |
Logs a message with a relation to an object. | |
void | Warning (string message, object obj) |
Logs a warinng with a relation to an object. | |
void | Error (string message, object obj) |
Logs an error with a relation to an object. | |
void | Error (string message) |
Logs an error. | |
GameObject | DebugPosition (string debugname, Vector3 position, Quaternion quaternation, float scale) |
Displays a gizmo for debugging positions. | |
void | SetFreezePosition (bool enabled) |
Freezes all child components to the current poosition. | |
void | SetRbConstraints (RigidbodyConstraints constraints) |
virtual void | AwakeAlsoDeactivated () |
Public Attributes | |
bool | RepositionEnable |
Enables Repositioning. | |
bool | UpdateInEditorMode |
Also Update in Editor Mode. | |
GameObject | MoveTo |
Reposition and Move the Pivot of this object to the defined Pivot. | |
Vector3 | AdditionalRotation |
Gives an additional rotation when repositioning. | |
bool | MoveCenterEnable |
Enables to move the Pivot Point without moving the part itself. | |
Vector3 | DeltaPosOrigin |
Vector to move the Pivot Point in x,y,z. | |
Vector3 | DeltaRotOrigin |
Rotation to move the Pivot Point. | |
bool | IntegrateGroupEnable |
Integrate a Group as children of this component. | |
string | GroupName |
The name of the group to integrate. | |
GameObject | GroupNamePrefix |
Optional reference to a Part which name is defining a Prefix for the Groupname. Needs to be used with Prefabs which are using Group function. | |
Boolean | SimplifyHierarchy |
Simplify the Hierarchy for the integrated parts. | |
Boolean | ShowGroupGizmo |
Shows Gizomo for the Group parts. | |
bool | KinematicParentEnable |
Defines a new kinematic parent for this component (moves it and all children during simulation start to a new parent) | |
GameObject | Parent |
The new kinematic parent. | |
![]() | |
string | Name |
The name of the component if it should be different from the GameObject name. | |
ActiveOnly | Active |
GameObject | FromTemplate |
realvirtualController | realvirtualController |
bool | HideNonG44Components |
bool | SceneIsAdditive |
bool | ForceStop |
Additional Inherited Members | |
![]() | |
enum | ActiveOnly { Always , Connected , Disconnected , Never , DontChange } |
![]() | |
static bool | DirectionIsLinear (DIRECTION direction) |
Gets back if the direction is linear or a rotation. | |
![]() | |
bool | hidename () |
bool | hideactiveonly () |
virtual void | OnStopSim () |
virtual void | OnPreStartSim () |
virtual void | OnStartSim () |
MU | GetTopOfMu (GameObject obj) |
Gets the top of an MU component (the first MU script going up in the hierarchy) | |
void | InitGame4Automation () |
Initialiates the components and gets the reference to the realvirtualController in the scene. | |
virtual void | AfterAwake () |
void | Awake () |
Detailed Description
Kinematic component provides runtime hierarchy manipulation and pivot point adjustment for imported CAD models and assemblies.
The Kinematic component is a powerful tool for adapting imported 3D models to work with realvirtual's automation components. It allows you to modify object hierarchies, reposition pivot points, and reorganize component relationships without changing the original CAD data. This is essential when working with imported models that have incorrect pivot points, wrong parent-child relationships, or need to be dynamically grouped for animation purposes.
Key features:
- Reposition objects to new locations while maintaining child relationships
- Move pivot points without affecting visual geometry position
- Integrate multiple objects from Groups into a single kinematic assembly
- Change parent-child relationships at runtime for kinematic chains
- Preview changes in Editor mode before applying them
- Support for complex hierarchy simplification
- Visual gizmos for grouped objects in Scene view
- Maintains proper scaling and rotation during transformations
Common applications in industrial automation:
- Correcting pivot points for imported robot arms and mechanisms
- Grouping conveyor sections for synchronized movement
- Creating kinematic chains for multi-axis machines
- Adapting CAD assemblies for use with Drive components
- Reorganizing imported factory layouts for simulation
- Fixing rotation centers for doors, gates, and rotating equipment
- Combining multiple parts into single controllable units
- Setting up parent-child relationships for tooling and fixtures
The Kinematic component solves common CAD import issues:
- Wrong pivot points from CAD systems using different conventions
- Flat hierarchies that need proper parent-child structure
- Components that need to move together but are separate in CAD
- Rotation axes that don't align with mechanical joints
- Objects that need different parents during different operations
Repositioning capabilities:
- Align objects to reference GameObjects or empties
- Apply additional rotation offsets for fine-tuning
- Update positions in Editor mode for immediate feedback
- Maintain child object positions during parent movement
Pivot adjustment features:
- Move pivot point by delta position in millimeters
- Rotate pivot orientation without affecting geometry
- Keep all child objects in their world positions
- Essential for drives that rotate around specific axes
Group integration system:
- Collect all objects with matching Group components
- Support for prefab-based group name prefixes
- Optional hierarchy simplification for performance
- Visual preview with wireframe gizmos
- Focus commands for easy navigation to grouped objects
Integration with other components:
- Essential preparation for Drive components
- Works with Group components for object collection
- Compatible with all movement and physics components
- Supports TransportSurface collision detection
- Maintains proper transform relationships for sensors
Performance considerations:
- Hierarchy changes happen once at Start, minimal runtime overhead
- Simplified hierarchies reduce transform calculation costs
- Group integration can optimize draw calls for renderers
- Proper pivot points improve animation performance
The Kinematic component bridges the gap between CAD design and simulation requirements, making it possible to use industrial CAD models directly in virtual commissioning without time-consuming manual corrections.
For detailed documentation and examples, see: https://doc.realvirtual.io/components-and-scripts/motion/kinematic
Member Data Documentation
◆ AdditionalRotation
Vector3 realvirtual.Kinematic.AdditionalRotation |
Gives an additional rotation when repositioning.
◆ DeltaPosOrigin
Vector3 realvirtual.Kinematic.DeltaPosOrigin |
Vector to move the Pivot Point in x,y,z.
◆ DeltaRotOrigin
Vector3 realvirtual.Kinematic.DeltaRotOrigin |
Rotation to move the Pivot Point.
◆ GroupName
string realvirtual.Kinematic.GroupName |
The name of the group to integrate.
◆ GroupNamePrefix
GameObject realvirtual.Kinematic.GroupNamePrefix |
Optional reference to a Part which name is defining a Prefix for the Groupname. Needs to be used with Prefabs which are using Group function.
◆ IntegrateGroupEnable
bool realvirtual.Kinematic.IntegrateGroupEnable |
Integrate a Group as children of this component.
◆ KinematicParentEnable
bool realvirtual.Kinematic.KinematicParentEnable |
Defines a new kinematic parent for this component (moves it and all children during simulation start to a new parent)
◆ MoveCenterEnable
bool realvirtual.Kinematic.MoveCenterEnable |
Enables to move the Pivot Point without moving the part itself.
◆ MoveTo
GameObject realvirtual.Kinematic.MoveTo |
Reposition and Move the Pivot of this object to the defined Pivot.
◆ Parent
GameObject realvirtual.Kinematic.Parent |
The new kinematic parent.
◆ RepositionEnable
bool realvirtual.Kinematic.RepositionEnable |
Enables Repositioning.
◆ ShowGroupGizmo
Boolean realvirtual.Kinematic.ShowGroupGizmo |
Shows Gizomo for the Group parts.
◆ SimplifyHierarchy
Boolean realvirtual.Kinematic.SimplifyHierarchy |
Simplify the Hierarchy for the integrated parts.
◆ UpdateInEditorMode
bool realvirtual.Kinematic.UpdateInEditorMode |
Also Update in Editor Mode.