vcBehaviour
vcBehaviour is the basic implementation of all behavior type objects.
Hierarchy
Most behaviors have specific implementations that inherit vcBehaviour, while others can be manipulated directly as vcBehaviour type objects. In order to create a behavior, use the createBehaviour() method in vcNode.
vcOneDirectionalPath (Deprecated) use vcMotionPath
vcTwoDirectionalPath (Deprecated) use vcMotionPath
vcRslProcessHandler (Deprecated) use vcPythonProcessHandler
vcRslProgramExecutor (Deprecated) use vcExecutor
vcInterpolatingTransportController
Common Properties
The following properties are common in all behavior types.
Name | Type | Access | Description |
Component | vcComponent | R | Gets the component of the behavior. |
Enabled | Boolean | RW | Turns on/off the use of the behavior. |
IgnoreEvents | Boolean | RW | Defines if the behavior ignores events.
For example, a container type behavior may disregard the transition of a component into and out of the container to avoid passing the event to a user-defined function. |
Name | String | RW | Defines the name of the behavior which is unique for every behavior in a component. |
Parent | vcNode | R | Gets the node the behavior belongs to in a component. |
Properties | List of vcProperty | R | Gets a list of all properties in the behavior. |
Type | Enumeration | R | Gets the behavior's type.
See Behavior Constants for more information. |
Visible | Boolean | RW | Whether this behavior and its properties are visible in the user interface. |
World | vcNode | R | Gets the 3D world (simulation root node). |
Behavior Specific Properties
Articulated Kinematics (old)
An old, deprecated version Articulated Kinematics might be used in some components. This is not exposed in the GUI and can only be created intentionally by a user.
Important: The constant value for this behavior type is VC_ARTICULATEDKINEMATICS.
Name | Type | Access | Description |
LinkLength1 | Real | RW | See Articulated Kinematics for descriptions of properties. |
LinkLength2 | Real | RW | |
LinkLength3 | Real | RW | |
LinkLength4 | Real | RW | |
LinkLength5 | Real | RW | |
JointOffset1 | Real | RW | |
JointOffset3 | Real | RW | |
ConfigName1 | String | RW | |
ConfigName2 | String | RW | |
ConfigName3 | String | RW | |
ConfigName4 | String | RW | |
ConfigName5 | String | RW | |
ConfigName6 | String | RW | |
ConfigName7 | String | RW | |
ConfigName8 | String | RW | |
PalletizingMode | Boolean | RW | |
PalletizingNormal | vcVector | RW |
Articulated Kinematics (new)
Articulated Kinematics is a forward and inverse kinematics solver for articulated robots.
Important: The constant value for this behavior type is VC_ARTICULATEDKINEMATICS2.
Name | Type | Access | Description |
L01Z...L56Z | Real | RW | See Articulated Kinematics for descriptions of properties. |
A45 | Real | RW | |
JointZeroOffset1 | Real | RW | |
JointZeroOffset2 | Real | RW | |
JointZeroOffset3 | Real | RW | |
JointZeroOffset4 | Real | RW | |
JointZeroOffset5 | Real | RW | |
JointZeroOffset6 | Real | RW | |
JointSign1 | Integer | RW | |
JointSign2 | Integer | RW | |
JointSign3 | Integer | RW | |
JointSign4 | Integer | RW | |
JointSign5 | Integer | RW | |
JointSign6 | Integer | RW | |
Coupling23 | Integer | RW | |
ShoulderValid | Boolean | RW | |
ElbowValid | Boolean | RW | |
WristValid | Boolean | RW | |
ConfigName1 | String | RW | |
ConfigName2 | String | RW | |
ConfigName3 | String | RW | |
ConfigName4 | String | RW | |
ConfigName5 | String | RW | |
ConfigName6 | String | RW | |
ConfigName7 | String | RW | |
ConfigName8 | String | RW | |
PalletizingMode | Boolean | RW | |
PalletizingNormal | vcVector | RW | |
PolarSingularityTolerance | Real | RW | |
WristSingularityTolerance | Real | RW | |
ExtendedPositionTolerance | Real | RW | |
Coupling456 | Real | RW |
Base Container
See vcBaseContainer for more information.
Capacity Controller
Component Grabber
Component Grabber is an old, deprecated behavior for grasping and releasing components in different containers. This is not exposed in the GUI and has been replaced by an Action Script behavior and robot I/O statements.
Name | Type | Access | Description |
ComponentSignalIn | vcComponentSignal | RW | Defines the signal used for signaling the arrival of components into the grabber's container. |
Container | vcContainer | RW | Defines the container type behavior used for storing components grasped by the grabber. |
DoneSignalOut | vcBoolSignal | RW | Defines the signal used for signaling the completion of an action by the grabber. |
FunctionalitySignalIn | vcSignal | RW | Defines the behavior signal used for signalling the current state of the grabber.
Note: A Behaviour Signal has a constant value of VC_BEHAVIOURSIGNAL and can only be created using the API. |
GrabReleaseSignalIn | vcBoolSignal | RW | Defines the signal used for triggering the grasp and release of components by the grabber. |
GrabTriggerSignalOut | vcBoolSignal | RW | Defines the signal used for signaling the completion of a grasp action. |
Interface | vcSimInterface | RW | Defines the interface used for exchanging components between containers. |
ReleaseMode | String | RW | Defines the mode for releasing components from the grabber. |
ReleaseTriggerSignalOut | vcBoolSignal | RW | Defines the signal used for signaling the completion of a release action. |
Cartesian Kinematics
Cartesian Kinematics is a forward and inverse kinematics solver for Cartesian type (gantry/portal) robots. It has no additional properties.
Component Path Sensor
Component Path Sensor detects components moving along a path, and then signals the detected information.
Name | Type | Access | Description |
BoolSignal | vcBoolSignal | RW | Defines the signal used for signaling the value of the BoolSignalValue property. |
BoolSignalValue | Boolean | RW | Defines the current state of the sensor. That is, a True value means the sensor has been triggered, whereas a False value means the sensor has either not been triggered or has been reset. |
ComponentSignal | vcComponentSignal | RW | Defines the signal used for signaling which component triggered the sensor. |
Frame | vcFrameFeature | RW | Defines the Frame feature referenced as the sensor's physical location. |
ResetAt | Enumeration | RW | Defines the mode for resetting the sensor.
See Path Constants for more information. |
TriggerAt | Enumeration | RW | Defines the mode for triggering the sensor.
See Path Constants for more information. |
Delta Kinematics
Delta Kinematics is a forward and inverse kinematics solver for delta type parallel kinematic robots.
Name | Type | Access | Description |
Height1 | Real | RW |
See Delta Kinematics for descriptions of properties. |
Height2 | Real | RW | |
LinkLength1 | Real | RW | |
LinkLength2 | Real | RW | |
ShoulderOffset | Real | RW | |
WristOffset | Real | RW |
Document Link
Document Link has no additional Python properties.
Jog Info
Jog Info manipulates a component's parameter values interactively.
Name | Type | Access | Description |
DOF | String | RW | Defines the degree of freedom (DOF) for interaction, which is either a rotation or translation based in a coordinate axis. |
Message | String | RW | Defines the message written to the Output panel when the pointer hovers over the Variable property and the Interact or Jog command is enabled. |
Offset | vcMatrix | RW | Defines the offset matrix (pivot point) where interaction can occur in the containing node's coordinate system. |
Scale | Real | RW | Defines the scale factor for jogging.
Generally, the value is 1.0 or -1.0 in order to invert the method of interaction in the 3D world. |
Variable | vcProperty | RW | Defines the property that is modified during interaction, which in all cases must be a Real type property. |
Note
Note is a container of user-defined notes, free-form text that can include web links to other documents.
Name | Type | Access | Description |
Note | String | RW | Defines the text in the note. |
Parallelogram Kinematics
Parallelogram Kinematics is a forward and inverse kinematics solver for articulated robots with the tool pointing down (palletization).
Note: Parallelogram kinematics is different from parallel kinematics.
Name | Type | Access | Description |
JointOffset1 | Real | RW | See Parallelogram Kinematics for descriptions of properties. |
JointOffset3 | Real | RW | |
LinkLength1 | Real | RW | |
LinkLength2 | Real | RW | |
LinkLength3 | Real | RW | |
LinkLength4 | Real | RW | |
LinkLength5 | Real | RW |
Particle System
(Deprecated) Particle System allows you to create swarms of particles in the 3D world for visualization purposes. A Particle System can only be created using Python API and must be triggered by a connected Boolean Signal during a simulation in order to generate particles.
Name | Type | Access | Description |
BurstAmount | Integer | RW | Defines the amount of particles to use in the burst. |
BurstLife | Real | RW | Defines the life span of the particle burst. |
BurstMode | Boolean | RW | Defines the burst mode of the particle system. |
BurstSpeed | Real | RW | Defines the speed of the particle burst. |
Frame | vcFrameFeature | RW | Defines the Frame feature referenced as the physical location of the particle system and the departure point for particles. |
Interval | Real | RW | Defines the time interval of each burst or swarm. |
Material | vcMaterial | RW | Defines the material of each particle.
Note: The material must have a texture (vcBitmap) assigned to it in order for particles to be visible in the 3D world. |
ParticleSize | Real | RW | Defines the size of each particle. |
Physics Cable
Physics Cable generates a cable and spring in the 3D world that can be anchored/pinned to nodes. The cable can have a fixed length and stretch based on its physical properties.
Name | Type | Access | Description |
CableLength | Real | RW | Defines the length of cable.
If 0.0, the length is dynamic and based on the location of cable endpoints. |
ColliderLength | Real | RW | Defines the size of collider relative to length of cable. |
ColliderOverlap | Real | RW | Defines an acceptable overlap of collider in relation to others. |
EndType1 | Enumeration | RW | Defines an anchor type of the first endpoint.
0 = Free 1 = Rotating 2 = Fixed |
EndType2 | Enumeration | RW | Defines an anchor type of the second endpoint.
0 = Free 1 = Rotating 2 = Fixed |
Material | vcMaterial | RW | Defines the material of cable. |
MaterialDensity | Real | RW | Defines the density of cable material. |
MaterialFrictionDynamic | Real | RW | Defines the dynamic friction of cable material. |
MaterialFrictionStatic | Real | RW | Defines the static friction of cable material. |
MaterialRestitution | Real | RW | Defines the restitution of cable material. |
Node1 | vcNode | RW | Defines the node the first endpoint of cable is attached to in 3D world. |
Node2 | vcNode | RW | Defines the node the second endpoint of cable is attached to in 3D world. |
RenderingSteps | Integer | RW | Defines the amount of steps for rendering cable. |
SolverIterExternal | Integer | RW | Defines the number of iterations for solving external setting of cable. |
SolverIterInternal | Integer | RW | Defines the number of iterations for solving internal setting of cable. |
SolverIterPosition | Integer | RW | Defines the number of iterations for solving position of cable. |
SolverIterProjections | Integer | RW | Defines the number of iterations for solving the projection of cable. |
SolverIterVelocity | Integer | RW | Defines the number of iterations for solving the velocity of cable. |
SolverSeparationLimit | Real | RW | Defines a limit for cable separation. |
SpringDamping | Real | RW | Defines the damping of cable, thereby affecting its bounciness. |
SpringStrength | Real | RW | Defines the strength of cable relative to applied force when compressing or stretching the cable, for example its tensile strength. |
SpringTangentialDamping | Real | RW | Defines the tangential damping of cable relative to applied forced when contacting a surface. |
SpringTangentialStrength | Real | RW | Defines the tangential strength of cable relative to applied force when contacting a surface. |
Stiffness | Enumeration | RW | Defines the rigidity of cable.
0 = Low 1 = Medium 2 = High |
Thickness | Real | RW | Defines the thickness of cable. |
TotalLengthFactor | Real | RW | Defines a factor for determining cable length. |
Physics Entity
Physics Entity allows its node to be defined as a physical body that is affected by the physics of the 3D world.
Name | Type | Access | Description |
AngularDamping | Real | RW | Defines the angular damping of entity. |
CenterOfGravity | vcMatrix | RW | Defines the mass center point of payload and if needed the orientation for LoadInertia. |
DynamicFriction | Real | RW | Defines the kinetic friction of entity. |
Inertia | vcVector | RW | Defines the inertia value (kgm^2) for each axis defined by LoadCenterOfGravity. |
LinearDamping | Real | Real | Defines the linear damping of entity. |
Mass | Real | RW | Defines the weight (kg) of payload. |
MaterialDensity | Real | RW | Defines the density of entity. |
PhysicsType | Enumeration | RW | Defines the physics type of entity.
See Entity Constants for more information. |
Restitution | Real | RW | Defines the restitution of entity. |
SolverPositionIterations | Integer | RW | Defines the number of iterations for solving the motion of entity in relation to its position. |
SolverVelocityIterations | Integer | RW | Defines the number of iterations for solving the motion of entity in relation to its velocity. |
StaticFriction | Real | RW | Defines the static friction of entity. |
UpdatePhysics | Boolean | RW | Updates the changes on the component during the simulation runtime. Note: You need to call the update() method at the end of the changes to do the commit. |
Physics Joint
Physics Joint allows you to configure a D6 joint with multiple degrees of freedom for nodes in a component. The joint itself can be attached to any node in component and you can manipulate its constraint frame. The joint can have linear movement in XYZ axes. The swing of a D6 joint is around its X- and Y-axes, whereas twist is around the Z-axis of joint. All motions depend on how the joint is configured in a component, specifically the constraints and parent node of joint.
Name | Type | Access | Description |
Attachinchildmat | vcMatrix | RW | Defines anchor point of joint in coordinate system of connected node. |
Attachinparentmat | vcMatrix | RW | Defines anchor point of joint in coordinate system of parent node.
Note: The joint behavior can be contained in one node, but attached to a different node. The node attached to a joint is its parent. |
BreakForce | Real | RW | Defines force needed to break joint. |
BreakTorque | Real | RW | Defines torque needed to break joint. |
ExMotion | Enumeration | RW | Defines movement of joint in X-axis.
0 = Locked 1 = Limited 2 = Free |
EyMotion | Enumeration | RW | Defines movement of joint in Y-axis.
0 = Locked 1 = Limited 2 = Free |
EzMotion | Enumeration | RW | Defines movement of joint in Z-axis.
0 = Locked 1 = Limited 2 = Free |
LinearLimitdamping | Real | RW | Defines damping of spring for linear limit of joint. |
LinearLimitdistance | Real | RW | Defines limit for linear movement of joint based on the distance from its origin. |
LinearLimitextend | Real | RW | Defines extended limit for linear movement of joint. |
LinearLimitrestitution | Real | RW | Defines restitution for linear limit of joint. |
LinearLimitsoft | Boolean | RW | Turns on/off soft linear limit of joint. |
LinearLimitspring | Real | RW | Defines stiffness of spring for linear limit of joint. |
Parent | vcNode | RW | Defines the node the joint attaches itself to in component. |
ProjectionAngular | Real | RW | Defines angular tolerance for solver to project joint and its bodies back together. |
ProjectionLinear | Real | RW | Defines linear tolerance for solver to project joint and its bodies back together. |
Swing1Motion | Enumeration | RW | Defines freedom of joint to rotate around its X-axis.
0 = Locked 1 = Limited 2 = Free Note: Swing refers to rotation around X- and Y-axes of joint. |
Swing2Motion | Enumeration | RW | Defines freedom of joint to rotate around its Y-axis.
0 = Locked 1 = Limited 2 = Free |
SwingLimitdamping | Real | RW | Defines damping of spring for swing limit of joint. |
Swinglimitdistance | Real | RW | Defines limit for swing movement of joint based on the distance from its origin. |
SwingLimitrestitution | Real | RW | Defines restitution for swing limit of joint. |
SwingLimitsoft | Boolean | RW | Turns on/off soft swing limit of joint. |
SwingLimitspring | Real | RW | Defines stiffness of spring for swing limit of joint. |
SwingLimitYangle | Real | RW | Defines limit for swing movement of joint around its X-axis. |
SwingLimitZangle | Real | RW | Defines limit for swing movement of joint around its Y-axis. |
TwistLimitdamping | Real | RW | Defines damping of spring for twist limit of joint. |
Twistlimitdistance | Real | RW | Defines limit for twist movement of joint based on the distance from its origin. |
TwistLimitLower | Real | RW | Defines lower limit for twist movement of joint. |
TwistLimitrestitution | Real | RW | Defines restitution for twist limit of joint. |
TwistLimitsoft | Boolean | RW | Turns on/off soft twist limit of joint. |
TwistLimitspring | Real | RW | Defines stiffness of spring for twist limit of joint. |
TwistLimitUpper | Real | RW | Defines upper limit for twist movement of joint. |
TwistMotion | Enumeration | RW | Defines freedom of joint to rotate around its Z-axis.
0 = Locked 1 = Limited 2 = Free Note: Twist refers to rotation around Z-axis of joint. |
Physics Path
Name | Type | Access | Description |
Path | List of vcFrameFeature | RW | Defines the points of path. |
PushingFeatures | List of vcFeature | RW | Defines the geometry of path used to push objects. |
Speed | Real | RW | Defines the speed of the path. If a negative value is given, the path direction will be the opposite. |
Python Kinematics
Python Kinematics is a kinematics object that can be defined by a user with Python API. See vcPythonKinematics for more information.
Python Script
Python Script customizes component behavior by controlling other objects. The script's execution may use signals and other events to control script execution.
Name | Type | Access | Description |
Script | String | RW | Defines the code of the script. |
Raycast Sensor
Raycast Sensor detects the closest component intersecting with a finite ray in the 3D world.
Name | Type | Access | Description |
BoolSignal | vcBoolSignal | RW | Defines the signal used for signaling whether or not a component has intersected the ray within a distance tolerance set by the DetectionThreshold property. |
ComponentSignal | vcComponentSignal | RW | Defines the signal used for signaling the component detected by the ray. |
DetectionContainer | vcContainer | RW | Defines if the sensor only detects components in a specific container type behavior. |
DetectionThreshold | Real | RW | Defines the distance at which the RangeSignal property will start to send distance information for a detected component. |
Frame | vcFrameFeature | RW | Defines the Frame feature that is referenced as the physical location of the sensor.
The ray is cast along the positive Z-axis of its location. |
MaxRange | Real | RW | Defines the length of the ray cast by the sensor. |
RangeSignal | vcRealSignal | RW | Defines the signal used for signaling the range of a detected component to sensor's location. |
SampleTime | Real | RW | Defines the time interval (in seconds) for detecting components when the UseSampling property has a True value. |
ShowRay | Boolean | RW | Turns on/off the visibility of the ray in the 3D world.
The ray is rendered as a red line. |
TestParent | Boolean | RW | Defines if the sensor can detect geometry contained in the sensor's node.
Generally, a True value is used when you want to detect self collisions. |
UpdateScene | Boolean | RW | Turns on/off the rendering of the scene in the 3D world when a component triggers the sensor.
Generally, a True value is used in cases where there are many moving parts, whereas a False value should be used if only the sensor's component moves during a simulation. |
UseSampling | Boolean | RW | Defines the rate at which the sensor detects components.
A True value means detection occurs at a sampling interval defined by the SampleTime property. A False value means detection occurs when a signal is received from a connected Boolean Signal (pulse mode). |
Real Signal Map
Real Signal Map signals values to ports in a continuous IO space used in logic executors.
Name | Type | Access | Description |
Listeners | List of vcBehaviour | RW | Defines a list of behaviors using the signal map. |
PortCount | Integer | RW | Defines the amount of ports in the signal map. |
Scara Kinematics (Old)
An old, deprecated version Scara Kinematics might be used in some components. This is not exposed in the GUI and can only be created intentionally by a user.
Important: The constant value for this behavior type is VC_SCARAKINEMATICS.
Name | Type | Access | Description |
JointOffset1 | Real | RW | See Scara Kinematics for descriptions of properties. |
JointOffset3 | Real | RW | |
LinkLength1 | Real | RW | |
LinkLength2 | Real | RW |
Scara Kinematics (New)
Scara Kinematics is a forward and inverse kinematics solver for SCARA type robots.
Important: The constant value for this behavior type is VC_SCARAKINEMATICS2.
Name | Type | Access | Description |
ConfigName1 | String | RW | See Scara Kinematics for descriptions of properties. |
ConfigName2 | String | RW | |
JointSign1 | Integer | RW | |
JointSign2 | Integer | RW | |
JointSign3 | Integer | RW | |
JointSign4 | Integer | RW | |
L12X...L04Z | Real | RW | |
JointZeroOffset1 | Real | RW | |
JointZeroOffset2 | Real | RW | |
JointZeroOffset3 | Real | RW | |
JointZeroOffset4 | Real | RW |
Tool Container
See vcToolContainer for more information.
Volume Sensor
Volume Sensor detects components anywhere in the 3D world by using a detection box defined by two Frame features.
Name | Type | Access | Description |
BoolSignal | vcBoolSignal | RW | Defines the signal used for signaling the current state of the sensor. That is, a True value means the sensor has been triggered, whereas a False value means the sensor has either not been triggered or reset. |
ComponentSignal | vcComponentSignal | RW | Defines the signal used for signaling the component that triggered the sensor. |
DetectionContainer | vcContainer | RW | Defines if the sensor only tests components in a specific container type behavior. |
LowerFrame | vcFrameFeature | RW | Defines the bottom-left corner of the sensor's detection box. |
SampleTime | Real | RW | Defines the time interval (in seconds) for detecting components when the UseSampling property has a True value. |
ShowVolume | Boolean | RW | Turns on/off the visibility of the sensor's detection box in the 3D world. |
TestMethod | Integer | RW | Defines the mode used by the sensor for detecting components.
0 1 2 3 |
TestOnlyContained | Boolean | RW | Defines if the sensor only tests components stored in container type behaviors. |
TestParent | Boolean | RW | Defines if the sensor can detect geometry contained in the sensor's node.
Generally, a True value is used when you want to detect self collisions. |
TestSiblings | Boolean | RW | Defines if the sensor can detect geometry at the same level of the sensor in a node hierarchy. That is, any geometry contained in siblings of the sensor's node. |
UpdateScene | Boolean | RW | Turns on/off the rendering of the scene in the 3D world when a component triggers the sensor.
Generally, a True value is used in cases where there are many moving parts, whereas a False value should be used if only the sensor's component moves during a simulation. |
UpperFrame | vcFrameFeature | RW | Defines the top-right corner of the sensor's detection box. |
UseSampling | Boolean | RW | Defines the rate at which the sensor detects components.
A True value means detection occurs at a sampling interval defined by the SampleTime property. A False value means detection occurs when a signal is received from a connected Boolean Signal (pulse mode). |
VolumeMaterial | vcMaterial | RW | Defines the material of the sensor's detection box. |
Methods
Name | Return Type | Parameters | Description |
delete | Boolean | None | Deletes the behavior. |
update | None | None | Updates the behavior. |
Examples
Example. Find a behavior and its node
from vcScript import * # use a robot from the library with this snippet comp = getComponent() container = comp.findBehaviour('GraspContainer') # search a behaviour matching the given name in the whole nodal component tree mountPlateNode = container.Parent # the owner node of the behaviour if comp == container.Component: print 'It truly is a back-pointer to the same thing' for prop in container.Properties: print prop.Name, prop.Value |
Example. Call the update after making changes to the physics entities
# In order to trigger the update, user needs to set UpdatePhysics flag. # The flag has one use and will be immediately reset after this. entity = part.getBehavioursByType('rPhysicsEntity')[0] entity.UpdatePhysics = True entity.update() |