Search Results for

    Show / Hide Table of Contents

    Extrude

    This example provides information on creating solids, faces and wires, and how to extrude a face along a wire.

    If you go to the Modeling browser under the Modeling tab, you can see all the bodies the part contains.

    Solution

    1. Create a Part object to contain the bodies and add it to the station.

      Part p = new Part();
      p.Name = "My_Extruded_Bodies";
      station.GraphicComponents.Add(p);
      
    2. Create a solid box and add it to My_Extruded_Bodies.

      Body b = Body.CreateSolidBox(new Matrix4
               (new Vector3(0.0, 0.0, 0.0)), new Vector3(0.5, 0.5, 0.5));
      b.Name = "Box";
      p.Bodies.Add(b);
      
    3. Create a face.

      Face f = b.Shells[0].Faces[0];
      
    4. Create a wire.

      Body wirebody = Body.CreateLine
                      (new Vector3(0.0, 0.0, 0.0), new Vector3(1.0, 1.0, 1.0));
      wirebody.Name = "Wirebody";
      p.Bodies.Add(wirebody);
      Wire w = wirebody.Shells[0].Wires[0];
      
    5. Set the sweep option to solid.

      SweepOptions so = new SweepOptions();
      so.MakeSolid = true;
      
    6. Create a Vector3 object to specify direction and length of the projection.

      Vector3 vec = new Vector3(1.0, 1.0, 1.0);
      
    7. Extrude face along wire.

      Body[] bds = Body.Extrude(f, vec, w, so);
      foreach (Body bd in bds)
      {
          bd.Name = "Face extruded along wire";
          p.Bodies.Add(bd);
      }
      
    8. Create a second wire.

      Body wirebody2 = Body.CreateLine
                       (new Vector3(0.0, 0.0, 0.0), new Vector3(1.0, 1.0, -1.0));
      wirebody2.Name = "Wirebody 2";
      p.Bodies.Add(wirebody2);
      Wire w2 = wirebody2.Shells[0].Wires[0];
      
    9. Extrude the first wire along with the second.

      Body[] bds2 = Body.Extrude(w, vec, w2, so);
      foreach (Body bd in bds2)
      {
          bd.Name = "Wire extruded along wire";
          p.Bodies.Add(bd);
      }
      

    Example

    This example provides information on creating solids, faces and wires, and how to extrude a face along a wire.

    Project.UndoContext.BeginUndoStep("BodyExtrude");
    try
    {
        Station station = Station.ActiveStation;
    
        // Create a part.
        Part p = new Part();
        p.Name = "My_Extruded_Bodies";
        station.GraphicComponents.Add(p);
    
        // Create a solid box and add it to My_Part1.
        Body b = Body.CreateSolidBox(new Matrix4
                 (new Vector3(0.0, 0.0, 0.0)), new Vector3(0.5, 0.5, 0.5));
        b.Name = "Box";
        p.Bodies.Add(b);
    
        // Create face.
        Face f = b.Shells[0].Faces[0];
    
        // Create a wire.
        Body wirebody = Body.CreateLine
                        (new Vector3(0.0, 0.0, 0.0), new Vector3(1.0, 1.0, 1.0));
        wirebody.Name = "Wirebody";
        p.Bodies.Add(wirebody);
        Wire w = wirebody.Shells[0].Wires[0];
    
        // Set the sweep option to solid.
        SweepOptions so = new SweepOptions();
        so.MakeSolid = true;
        Vector3 vec = new Vector3(1.0, 1.0, 1.0);
    
        // Extrude face along wire.
        Body[] bds = Body.Extrude(f, vec, w, so);
        foreach (Body bd in bds)
        {
            bd.Name = "Face extruded along wire";
            p.Bodies.Add(bd);
        }
    
        // Create a second wire.
        Body wirebody2 = Body.CreateLine
                         (new Vector3(0.0, 0.0, 0.0), new Vector3(1.0, 1.0, -1.0));
        wirebody2.Name = "Wirebody 2";
        p.Bodies.Add(wirebody2);
        Wire w2 = wirebody2.Shells[0].Wires[0];
    
        // Extrude the first wire along the second.
        Body[] bds2 = Body.Extrude(w, vec, w2, so);
        foreach (Body bd in bds2)
        {
            bd.Name = "Wire extruded along wire";
            p.Bodies.Add(bd);
        }
    }
    catch
    {
        Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
        throw;
    }
    finally
    {
        Project.UndoContext.EndUndoStep();
    }
    

    Required Namespaces

    ABB.Robotics.RobotStudio

    ABB.Robotics.RobotStudio.Stations

    ABB.Robotics.Math

    See Also

    • Creating Curves
    • Curve Manipulations
    In this article
    Back to top Copyright © 2026 ABB Robotics