Show / Hide Table of Contents

RsProcessDefinition Example

This example creates a new process definition called SearchL and an instruction template referring to it.

Example

Project.UndoContext.BeginUndoStep("RsProcessDefinitionExample");
try
{
    Station station = Station.ActiveStation;

    // Create a new RsProcessDefinition.
    RsProcessDefinition myProcDef = new RsProcessDefinition("", "SearchL", "");

    // Name it "SearchL".
    myProcDef.Name = "SearchL";

    // Create a new RsInstructionTemplate.
    RsInstructionTemplate mySearchLInstrTempl = new RsInstructionTemplate();

    // Name it "SearchL".
    mySearchLInstrTempl.Name = "SearchL";

    // Create the instruction arguments for the InstructionTemplate, and add them to it.
    RsInstructionArgument myArg = new RsInstructionArgument("Stop", "");
    myArg.Enabled = true;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("PStop", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("SStop", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("Sup", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("Signal", "di1");
    myArg.Enabled = true;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("Flanks", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("SearchPoint", "");
    myArg.Enabled = true;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("ToPoint", "");
    myArg.Enabled = true;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("ID", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("Speed", "v1000");
    myArg.Enabled = true;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("V", "");
    myArg.Enabled = true;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("T", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("Tool", "");
    myArg.Enabled = true;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("WObj", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);
    myArg = new RsInstructionArgument("Corr", "");
    myArg.Enabled = false;
    mySearchLInstrTempl.InstructionArguments.Add(myArg);

    // Create a RsProcessTemplate using the RsInstructionTemplate.
    // Use null arguments since it does not support circular or joint motions.
    RsProcessTemplate myDefaultSearchLProcTempl = new RsProcessTemplate(null, mySearchLInstrTempl, null);

    // Name it "Default".
    myDefaultSearchLProcTempl.Name = "Default";

    // Set the ActiveMotionType to linear.
    myDefaultSearchLProcTempl.ActiveMotionType = MotionType.Linear;

    // Add the process template to the ProcessDefinition.
    myProcDef.ProcessTemplates.Add(myDefaultSearchLProcTempl);

    // Set the process template as the ActiveProcessTemplate. 
    myProcDef.ActiveProcessTemplate = myProcDef.ProcessTemplates[0];

    // Finally add the ProcessDefinition to the ActiveTask.
    station.ActiveTask.ProcessDefinitions.Add(myProcDef);
}
catch
{
    Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
    throw;
}
finally
{
    Project.UndoContext.EndUndoStep();
}

See Also

  • RsProcessDefinition
  • RsInstructionTemplate
  • RsInstructionArgument
  • RsProcessTemplate
In this article
Back to top Copyright © 2025 ABB