Search Results for

    Show / Hide Table of Contents

    Creating Local Targets

    This example shows how to create a workobject and a local target with unique names, using the associated APIs. This topic also provides information on how to find the first target by workobject and data declaration from module scope.

    An active station is required to replicate this example.

    Solution

    1. Start by obtaining the active station and initializing the position values and module name.

      // Get the active station
      Station station = Station.ActiveStation;
      
      // Define a position and a module name
      Vector3 position = new Vector3(-0.50629, -3, 0.67950);
      string moduleName = "myModule";
      
    2. Create a workobject, assigning it a unique name and specifying its module.

      // Create work object
      RsWorkObject wobj = new RsWorkObject();
      wobj.Name = station.ActiveTask.GetValidRapidName("wobj", "_", 1);
      wobj.ModuleName = moduleName;
      station.ActiveTask.DataDeclarations.Add(wobj);
      
    3. Create a robtarget, setting its name, position, locality, and module name. Then, create the visual representation of the target and add it to the active task.

      // Create robtarget
      RsRobTarget robTarget = new RsRobTarget();
      robTarget.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);
      robTarget.Frame.Translation = position; // Translation
      robTarget.Local = true; // Set LOCAL to true
      robTarget.ModuleName = moduleName; // Set module name
      station.ActiveTask.DataDeclarations.Add(robTarget);
      
      // Create the visual target representation
      RsTarget target = new RsTarget(wobj, robTarget);
      target.Name = robTarget.Name;
      
      // Add target to active task
      station.ActiveTask.Targets.Add(target);
      
    4. Find first target by workobject.

      // Find first target by workobject
      RsTarget firstTarget = station.ActiveTask.FindFirstTargetByWorkObject(wobj);
      Logger.AddMessage(new LogMessage($"First target: {firstTarget.Name}"));
      
    5. Find data declaration from module scope.

      // Find data declaration from module scope
      RsDataDeclaration dataDecl = station.ActiveTask.FindDataDeclarationFromModuleScope(wobj.Name, moduleName);
      Logger.AddMessage(new LogMessage($"Datadeclaration: {dataDecl.Name}"));
      

    Example

    This example provides information on creating a local target and how to use its associated APIs.

    Project.UndoContext.BeginUndoStep("CreateTarget");
    try
    {
        // Get the active station
        Station station = Station.ActiveStation;
    
        // Define a position and a module name
        Vector3 position = new Vector3(-0.50629, -3, 0.67950);
        string moduleName = "myModule";
    
        // Create work object
        RsWorkObject wobj = new RsWorkObject();
        wobj.Name = station.ActiveTask.GetValidRapidName("wobj", "_", 1);
        wobj.ModuleName = moduleName;
        station.ActiveTask.DataDeclarations.Add(wobj);
    
        // Create robtarget
        RsRobTarget robTarget = new RsRobTarget();
        robTarget.Name = station.ActiveTask.GetValidRapidName("Target", "_", 10);
        robTarget.Frame.Translation = position; // Translation
        robTarget.Local = true; // Set LOCAL to true
        robTarget.ModuleName = moduleName; // Set module name
        station.ActiveTask.DataDeclarations.Add(robTarget);
    
        // Create the visual target representation
        RsTarget target = new RsTarget(wobj, robTarget);
        target.Name = robTarget.Name;
    
        // Add target to active task
        station.ActiveTask.Targets.Add(target);
    
        // Find first target by workobject
        RsTarget firstTarget = station.ActiveTask.FindFirstTargetByWorkObject(wobj);
        Logger.AddMessage(new LogMessage($"First target: {firstTarget.Name}"));
    
        // Find data declaration from module scope
        RsDataDeclaration dataDecl = station.ActiveTask.FindDataDeclarationFromModuleScope(wobj.Name, moduleName);
        Logger.AddMessage(new LogMessage($"Datadeclaration: {dataDecl.Name}"));
    }
    catch
    {
        Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
        throw;
    }
    finally
    {
        Project.UndoContext.EndUndoStep();
    }
    

    Required Namespaces

    ABB.Robotics.RobotStudio.Stations

    ABB.Robotics.Math

    See Also

    • Modifying the Position and Orientation
    • Deleting Targets
    In this article
    Back to top Copyright © 2026 ABB Robotics