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.

vcBehaviour

vcActionContainer

vcBaseContainer

vcBooleanSignalMap

vcFlow

vcComponentFlowProxy

vcContainer

vcComponentContainer

vcPatternContainer

vcComponentCreator

vcMotionPath

vcOneDirectionalPath (Deprecated) use vcMotionPath

vcRoutingRule

vcTwoDirectionalPath (Deprecated) use vcMotionPath

vcTransport

vcIntegerSignalMap

vcJogInfo

vcPythonKinematics

vcNodeList

vcProcessPointSensor

vcProductCreator

vcRslProcessHandler (Deprecated) use vcPythonProcessHandler

vcPythonProcessHandler

vcExecutor

vcRrsRobotController

vcRslProgramExecutor (Deprecated) use vcExecutor

vcScript

vcServoController

vcRobotController

vcSignal

vcBoolSignal

vcComponentSignal

vcIntegerSignal

vcMatrixSignal

vcRealSignal

vcStringSignal

vcSimVehicle

vcSimInterface

vcStatistics 

vcStringSignalMap

vcToolContainer

vcTransportNode

vcProcessExecutor

vcTransportController

vcPythonTransportController

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
The cable hangs freely while attached to Node1.

1 = Rotating
The cable can swing back and forth or rotate while attached to Node1.

2 = Fixed
The cable is securely anchored to Node1.

EndType2 Enumeration RW Defines an anchor type of the second endpoint.

0 = Free
The cable hangs freely while attached to Node2.

1 = Rotating
The cable can swing back and forth or rotate while attached to Node2.

2 = Fixed
The cable is securely anchored to Node2.

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
Cable is very flexible.

1 = Medium
(Default) Cable is fairly flexible.

2 = High
Cable is very rigid.

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
BBox Intersect

1
BBox Center Inside

2
BBox Fully Inside

3
Precise Test

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()