Click or drag to resize
RsPathProcedure Class
An RsPathProcedure is a sequence of move and action instructions. Paths are used to make the robot move along a sequence of targets. An RsPathsProcedure corresponds to a to RAPID procedure and is synchronized to the virtual controller.
Inheritance Hierarchy
SystemObject
  ABB.Robotics.RobotStudioProjectObject
    ABB.Robotics.RobotStudio.StationsRsPathProcedure

Namespace:  ABB.Robotics.RobotStudio.Stations
Assembly:  ABB.Robotics.RobotStudio.Stations (in ABB.Robotics.RobotStudio.Stations.dll) Version: 7.0.8747.636
Syntax
C#
public sealed class RsPathProcedure : ProjectObject, 
	ISupportCopy

The RsPathProcedure type exposes the following members.

Constructors
  NameDescription
Public methodCode exampleRsPathProcedure
Creates and initializes a new RsPathProcedure object.
Top
Properties
  NameDescription
Public propertyAttributes
Returns a collection of dynamic attributes attached to the object
(Inherited from ProjectObject.)
Public propertyChildren
Enumerates all child objects.
(Inherited from ProjectObject.)
Public propertyContainingProject
Returns the Project that this object is a part of, or null if it is not part of a Project.
(Inherited from ProjectObject.)
Public propertyDisplayName (Overrides ProjectObjectDisplayName.)
Public propertyCode exampleInstructions
Gets the collection of RsInstructionCollection objects.
Public propertyLocal
Gets if the RsPathProcedue is declared local in a module. (Corresponds to the LOCAL keyword in RAPID).
Public propertyCode exampleModuleName
Gets or sets the RAPID module name that he RsPathProcedue will have when its syncronized to the VC
Public propertyCode exampleName
Gets or Set the name of the PathProcedure.
(Overrides ProjectObjectName.)
Public propertyParent
Returns the objects parent, if it has one.
(Inherited from ProjectObject.)
Public propertyCode exampleShowName
Gets or sets a value indicating whether the name of the path will be displayed in the graphics
Public propertyShowSpeeds
Gets or sets if speed data for instructions is visualized.
Public propertyShowZones Obsolete.
Public propertyCode exampleSynchronize
Gets or sets a value indicating whether the RsPathProcedure should be syncronized to the VC
Public propertyTypeDisplayName
Gets a localized name for the type of this object.
(Inherited from ProjectObject.)
Public propertyUIVisible
Gets or sets a value that indicates if this object should be displayed in GUI such as an object browser.
(Inherited from ProjectObject.)
Public propertyUniqueId
Gets a persisted, globally unique identifier for this object, that can be used to find the object using the GetObjectFromUniqueId(String) method.
(Inherited from ProjectObject.)
Public propertyCode exampleVisible
Gets or sets a value indicating whether the RsPathProcedure will be displayed in the graphics
Public propertyZoneVisualization
Gets or sets how zone data for move instructions is visualized.
Top
Methods
  NameDescription
Public methodCode exampleCopy
Creates a deep copy of the RsPathProcedure
Public methodEquals (Inherited from Object.)
Public methodFindObjects
Recursively finds object that satisfy a condition.
(Inherited from ProjectObject.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Public methodMoveAlong Obsolete.
Public methodMoveAlong(ArrayList) Obsolete.
Public methodMoveAlong(ListSyncLogMessage) Obsolete.
Public methodMoveAlongAsync
Moves the mechanism, of corresponding task, along the path procedure by creating a temporary RAPID program on the controller and executing it.
Public methodCode exampleMoveAlongAsync(ListSyncLogMessage)
Moves the mechanism, of corresponding task, along the path procedure by creating a temporary RAPID program on the controller and executing it. The temporary RAPID program is created by using RapidSync. The synchronization log is returned from this overload.
Public methodToString (Inherited from ProjectObject.)
Top
Examples
RsPathProcedure example.
RsPathProcedure Example
// NOTE: This example requires a station containing an IRB_140 and a running VC.
Project.UndoContext.BeginUndoStep("RsPathProcedureExample");
try
{
    Station station = Station.ActiveStation;

    // Create a PathProcedure.
    RsPathProcedure myPath = new RsPathProcedure("myPath");

    // Add the path to the ActiveTask.
    station.ActiveTask.PathProcedures.Add(myPath);
    myPath.ModuleName = "MyModule";
    myPath.ShowName = true;
    myPath.Synchronize = true;
    myPath.Visible = true;

    // Create the first RobTarget.
    RsRobTarget target1 = new RsRobTarget();

    // Set the name of the RobTarget.
    target1.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);

    // Set the position and rotation of the RobTarget.
    target1.Frame.X = 0.50629;
    target1.Frame.Y = 0;
    target1.Frame.Z = 0.67950;
    target1.Frame.RX = Globals.DegToRad(180); // From ABB.Robotics.Math
    target1.Frame.RY = Globals.DegToRad(60);
    target1.Frame.RZ = Globals.DegToRad(180);

    // Add the RobTarget to the DataDeclarations of the ActiveTask.
    station.ActiveTask.DataDeclarations.Add(target1);

    // Create an RsTarget for the RobTarget.
    RsTarget homeRsTarget = new RsTarget(station.ActiveTask.ActiveWorkObject, target1);
    homeRsTarget.Name = target1.Name;

    // Add it to the ActiveTask.
    station.ActiveTask.Targets.Add(homeRsTarget);

    // Create a MoveInstruction for the RobTarget.
    RsMoveInstruction homeInstr = new RsMoveInstruction(station.ActiveTask, "Move", "Default", MotionType.Linear, "wobj0", target1.Name, "tool0");

    // Add it to myPath.
    myPath.Instructions.Add(homeInstr);

    // Create the second RobTarget. See description for the first one.
    // The steps are identical.
    RsRobTarget target2 = new RsRobTarget();
    target2.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);
    target2.Frame.X = 0.500;
    target2.Frame.Y = 0.125;
    target2.Frame.Z = 0.700;
    target2.Frame.RX = Globals.DegToRad(180);
    target2.Frame.RY = Globals.DegToRad(60);
    target2.Frame.RZ = Globals.DegToRad(180);
    station.ActiveTask.DataDeclarations.Add(target2);
    RsTarget trg1RsTarget = new RsTarget(station.ActiveTask.ActiveWorkObject, target2);
    trg1RsTarget.Name = target2.Name;
    station.ActiveTask.Targets.Add(trg1RsTarget);
    RsMoveInstruction trg1Instr = new RsMoveInstruction(station.ActiveTask, "Move", "Default", MotionType.Linear, "wobj0", target2.Name, "tool0");
    myPath.Instructions.Add(trg1Instr);

    // Create the third RobTarget. See description for the first one.
    // The steps are identical.
    RsRobTarget target3 = new RsRobTarget();
    target3.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);
    target3.Frame.X = 0.500;
    target3.Frame.Y = 0.125;
    target3.Frame.Z = 0.500;
    target3.Frame.RX = Globals.DegToRad(180);
    target3.Frame.RY = Globals.DegToRad(60);
    target3.Frame.RZ = Globals.DegToRad(180);
    station.ActiveTask.DataDeclarations.Add(target3);
    RsTarget trg2RsTarget = new RsTarget(station.ActiveTask.ActiveWorkObject, target3);
    trg2RsTarget.Name = target3.Name;
    station.ActiveTask.Targets.Add(trg2RsTarget);
    RsMoveInstruction trg2Instr = new RsMoveInstruction(station.ActiveTask, "Move", "Default", MotionType.Linear, "wobj0", target3.Name, "tool0");
    myPath.Instructions.Add(trg2Instr);

    // Create the fourth RobTarget. See description for the first one.
    // The steps are identical.
    RsRobTarget target4 = new RsRobTarget();
    target4.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);
    target4.Frame.X = 0.500;
    target4.Frame.Y = 0.200;
    target4.Frame.Z = 0.500;
    target4.Frame.RX = Globals.DegToRad(180);
    target4.Frame.RY = Globals.DegToRad(60);
    target4.Frame.RZ = Globals.DegToRad(180);
    station.ActiveTask.DataDeclarations.Add(target4);
    RsTarget trg3RsTarget = new RsTarget(station.ActiveTask.ActiveWorkObject, target4);
    trg3RsTarget.Name = target4.Name;
    station.ActiveTask.Targets.Add(trg3RsTarget);
    RsMoveInstruction trg3Instr = new RsMoveInstruction(station.ActiveTask, "Move", "Default", MotionType.Linear, "wobj0", target4.Name, "tool0");
    myPath.Instructions.Add(trg3Instr);

    // Create the fifth RobTarget. See description for the first one.
    // The steps are identical.
    RsRobTarget target5 = new RsRobTarget();
    target5.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);
    target5.Frame.X = 0.500;
    target5.Frame.Y = 0.400;
    target5.Frame.Z = 0.500;
    target5.Frame.RX = Globals.DegToRad(180);
    target5.Frame.RY = Globals.DegToRad(60);
    target5.Frame.RZ = Globals.DegToRad(180);
    station.ActiveTask.DataDeclarations.Add(target5);
    RsTarget trg4RsTarget = new RsTarget(station.ActiveTask.ActiveWorkObject, target5);
    trg4RsTarget.Name = target5.Name;
    station.ActiveTask.Targets.Add(trg4RsTarget);
    RsMoveInstruction trg4Instr = new RsMoveInstruction(station.ActiveTask, "Move", "Default", MotionType.Linear, "wobj0", target5.Name, "tool0");
    myPath.Instructions.Add(trg4Instr);

    // Create the sixth RobTarget. See description for the first one.
    // The steps are identical.
    RsRobTarget target6 = new RsRobTarget();
    target6.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);
    target6.Frame.X = 0.500;
    target6.Frame.Y = 0.400;
    target6.Frame.Z = 0.700;
    target6.Frame.RX = Globals.DegToRad(180);
    target6.Frame.RY = Globals.DegToRad(60);
    target6.Frame.RZ = Globals.DegToRad(180);
    station.ActiveTask.DataDeclarations.Add(target6);
    RsTarget trg5RsTarget = new RsTarget(station.ActiveTask.ActiveWorkObject, target6);
    trg5RsTarget.Name = target6.Name;
    station.ActiveTask.Targets.Add(trg5RsTarget);
    RsMoveInstruction trg5Instr = new RsMoveInstruction(station.ActiveTask, "Move", "Default", MotionType.Linear, "wobj0", target6.Name, "tool0");
    myPath.Instructions.Add(trg5Instr);

    // Move along the path.
    if (await myPath.MoveAlongAsync(null))
    {
        Logger.AddMessage(new LogMessage("Move along path '" + myPath.Name + "' succeded!"));
    }
    else
    {
        Logger.AddMessage(new LogMessage("Move along path '" + myPath.Name + "' failed!"));
    }
}
catch
{
    Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
    throw;
}
finally
{
    Project.UndoContext.EndUndoStep();
}
Version Information

Supported in: 1.0.0.0
See Also