Class RsPathProcedureCollection
Inheritance
RsPathProcedureCollection
Assembly: ABB.Robotics.RobotStudio.Stations.dll
Syntax
public class RsPathProcedureCollection : ICollection, IEnumerable<RsPathProcedure>, IEnumerable
Properties
Count
Declaration
public virtual int Count { get; }
Property Value
IsSynchronized
Declaration
public virtual bool IsSynchronized { get; }
Property Value
Item[Int32]
Declaration
public RsPathProcedure this[int index] { get; }
Parameters
Type |
Name |
Description |
Int32 |
index |
|
Property Value
Item[String]
Declaration
olete("Do not call this method, name is not unique. Use RsTask.FindPathProcedureFromModuleScope")]
public RsPathProcedure this[string name] { get; }
Parameters
Type |
Name |
Description |
String |
name |
|
Property Value
Examples
RsPathProcedureCollection.Item().
// 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();
}
Parent
Declaration
public ProjectObject Parent { get; }
Property Value
SyncRoot
Declaration
public virtual object SyncRoot { get; }
Property Value
Methods
Add(RsPathProcedure)
Declaration
public void Add(RsPathProcedure pathProcedure)
Parameters
Examples
Add RsPathProcedure.
// 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();
}
Contains(RsPathProcedure)
Declaration
public bool Contains(RsPathProcedure obj)
Parameters
Returns
Contains(String)
Checks to see if a named item is contained by the collection.
Declaration
olete("Do not call this method, name is not unique. Use RsTask.FindPathProcedureFromModuleScope")]
public bool Contains(string name)
Parameters
Type |
Name |
Description |
String |
name |
The name of the item to look for
|
Returns
Type |
Description |
Boolean |
True if the named item is a member, false otherwise
|
Examples
Contains.
// 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();
}
CopyTo(RsPathProcedure[], Int32)
Declaration
public void CopyTo(RsPathProcedure[] array, int index)
Parameters
CopyTo(Array, Int32)
Declaration
public virtual void CopyTo(Array array, int index)
Parameters
GetEnumerator()
Declaration
public virtual IEnumerator GetEnumerator()
Returns
Remove(RsPathProcedure)
Declaration
public void Remove(RsPathProcedure pathProcedure)
Parameters
Examples
Remove RsPathProcedure.
// 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();
}
ToArray()
Declaration
public RsPathProcedure[] ToArray()
Returns
TryGetPathProcedure(String, out RsPathProcedure)
Gets the path with the specified name.
Declaration
olete("Do not call this method. Use RsTask.FindPathProcedureFromModuleScope")]
public bool TryGetPathProcedure(string name, out RsPathProcedure pathProcedure)
Parameters
Type |
Name |
Description |
String |
name |
The name of the path to get.
|
RsPathProcedure |
pathProcedure |
When this method returns, contains the path associated with the specified name,
if the name is found; otherwise, null.
|
Returns
Type |
Description |
Boolean |
true if the RsPathProcedureCollection contains an element with the specified name; otherwise, false.
|
Examples
TryGetPathProcedure.
// 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();
}
Exceptions