Controls a boolean signal based on drive position ranges with support for wrapping drives. More...
Classes | |
| class | PositionArea |
| Represents a position area that controls the output signal. More... | |
Public Member Functions | |
| void | CalcFixedUpdate () |
| Called every physics frame by the Drive component to update the position switch logic IMPLEMENTS IDriveBehavior::CalcFixedUpdate. | |
Public Member Functions inherited from realvirtual.BehaviorInterface | |
| new List< BehaviorInterfaceConnection > | GetConnections () |
| Returns a list of behavior interface connections for this component. | |
| new List< Signal > | GetSignals () |
| Returns a list of connected signals for this component. | |
Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| virtual void | OnOwnershipChanged (bool isOwner) |
| Called when network ownership changes. | |
| void | SetNetworkOwner (bool isOwner) |
| Sets IsNetworkOwner and triggers OnOwnershipChanged callback. | |
| 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, bool includeTriggers=true) |
| 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 warning 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 | |
| List< PositionArea > | Areas |
| List of position areas that control the output signal using OR logic. | |
| bool | InvertAreas |
| If true, areas define false zones instead of true zones (inverts the output) | |
| float | PositionOffset |
| Global offset in millimeters or degrees applied to drive position before area checking. | |
| PLCInputBool | OutputSignal |
| Output signal to PLC, true when position is in any area, or inverted if InvertAreas is true. | |
Public Attributes inherited from realvirtual.BehaviorInterface | |
| List< BehaviorInterfaceConnection > | ConnectionInfo |
Public Attributes inherited from realvirtual.realvirtualBehavior | |
| 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 |
| bool | IsNetworkOwner |
| True when this component owns its simulation (local authority). Set to false by MultiplayerWEB on remote clients. | |
Protected Member Functions | |
| override void | OnStartSim () |
| Called when simulation starts - initializes component references and caches IMPLEMENTS BehaviorInterface::OnStartSim. | |
Protected Member Functions inherited from realvirtual.realvirtualBehavior | |
| bool | hidename () |
| bool | hideactiveonly () |
| virtual void | OnStopSim () |
| virtual void | OnPreStartSim () |
| 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 () |
Additional Inherited Members | |
Public Types inherited from realvirtual.realvirtualBehavior | |
| enum | ActiveOnly { Always , Connected , Disconnected , Never , DontChange } |
Static Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| static bool | DirectionIsLinear (DIRECTION direction) |
| Gets back if the direction is linear or a rotation. | |
Properties inherited from realvirtual.ISignalInterface | |
| GameObject | gameObject [get] |
Detailed Description
Controls a boolean signal based on drive position ranges with support for wrapping drives.
The Drive Position Switch component monitors the drive's position and sets a boolean output signal when the position is within defined ranges. Multiple areas use OR logic, meaning the signal is true if the position is in ANY area. The component fully supports wrapping drives (JumpToLowerLimitOnUpperLimit) with automatic position normalization and wrapped area detection.
Key Features:
- Multiple position areas with start and end positions in millimeters or degrees
- Single boolean output controlled by all areas using OR logic
- Global position offset with automatic wrapping for rotational drives
- Area inversion mode to define false zones instead of true zones
- Automatic detection of wrapped areas like 350-10 degrees on rotational drives
- Position normalization handles drives temporarily exceeding limits during wrapping
Common Applications:
- Position-based activation zones on conveyors or linear axes
- Angular zones on rotational tables or robotic joints with continuous rotation
- Safe zones or work zones in automated systems
- Multi-zone detection with single output signal for PLC integration
For detailed documentation see: https://doc.realvirtual.io/components-and-scripts/motion/drive-behavior
Class Documentation
◆ realvirtual::Drive_PositionSwitch::PositionArea
| class realvirtual::Drive_PositionSwitch::PositionArea |
Member Function Documentation
◆ CalcFixedUpdate()
| void realvirtual.Drive_PositionSwitch.CalcFixedUpdate | ( | ) |
Called every physics frame by the Drive component to update the position switch logic IMPLEMENTS IDriveBehavior::CalcFixedUpdate.
Implements realvirtual.IDriveBehavior.
◆ OnStartSim()
|
protectedvirtual |
Called when simulation starts - initializes component references and caches IMPLEMENTS BehaviorInterface::OnStartSim.
Reimplemented from realvirtual.realvirtualBehavior.
Member Data Documentation
◆ Areas
| List<PositionArea> realvirtual.Drive_PositionSwitch.Areas |
List of position areas that control the output signal using OR logic.
◆ InvertAreas
| bool realvirtual.Drive_PositionSwitch.InvertAreas |
If true, areas define false zones instead of true zones (inverts the output)
◆ OutputSignal
| PLCInputBool realvirtual.Drive_PositionSwitch.OutputSignal |
Output signal to PLC, true when position is in any area, or inverted if InvertAreas is true.
◆ PositionOffset
| float realvirtual.Drive_PositionSwitch.PositionOffset |
Global offset in millimeters or degrees applied to drive position before area checking.
Public Member Functions inherited from