Click or drag to resize
GraphicComponentDisconnectFromLibrary Method
Moves the definition to the Station or Project. This causes the Library property to return Null.

Namespace:  ABB.Robotics.RobotStudio.Stations
Assembly:  ABB.Robotics.RobotStudio.Stations (in ABB.Robotics.RobotStudio.Stations.dll) Version: 7.0.8747.636
Syntax
C#
public void DisconnectFromLibrary()
Remarks
The GraphicComponentLibrary will be closed if this is the only instance connected to it. This will cause any subsequent operations on the GraphicComponentLibrary to fail.
Examples
DisconnectFromLibrary.
Part Properties Example
Project.UndoContext.BeginUndoStep("PartProperties");
try
{
    Station station = Station.ActiveStation;

    // Create a part.
    #region PartPropertiesStep1
    Part myPart1 = new Part();
    myPart1.Name = "MyPart_1";
    #endregion

    // Add the part to the graphics componenets collection of the station.
    #region PartPropertiesStep2
    station.GraphicComponents.Add(myPart1);
    #endregion

    // Create a box and add it to myPart.
    #region PartPropertiesStep3
    Matrix4 box_origin = new Matrix4(Vector3.XVector, 0.0);
    Vector3 box_size = new Vector3(0.1, 0.1, 0.1);
    Body box = Body.CreateSolidBox(box_origin, box_size);
    box.Name = "MyBox";
    myPart1.Bodies.Add(box);
    #endregion

    // Create a cylinder and add it to myPart.
    #region PartPropertiesStep4
    Matrix4 origin = new Matrix4(new Vector3(Axis.X), 0.0);
    double radius = 0.2;
    double height = 1.0;
    Body myCylinder = Body.CreateSolidCylinder(origin, radius, height);
    myCylinder.Name = "MyCylinder";
    myPart1.Bodies.Add(myCylinder);
    #endregion

    // Make all the geometries in myPart orange.
    // When using VSTA, change to these lines instead:
    // Byte R1 = 255; Byte G1 = 165; Byte B1 = 0;
    // VSTABridge.SetColor(myPart, R1, G1, B1);
    #region PartPropertiesStep5
    myPart1.Color = Color.Orange;
    #endregion

    #region PartPropertiesStep6
    myPart1.Visible = true;
    #endregion
    myPart1.PickingEnabled = true;

    // Move myPart and all the bodies in it 100 mm along the 
    //X-axis and 100 mm along the Y-axis.
    #region PartPropertiesStep7
    myPart1.Transform.X = myPart1.Transform.X + 0.1;
    myPart1.Transform.Y = myPart1.Transform.Y + 0.1;
    #endregion

    // Create a copy of myPart.
    #region PartPropertiesStep8
    Part myPart2 = (Part)myPart1.Copy();
    myPart2.Name = "MyPart_2";
    #endregion

    // Add myPart2 to the station.
    #region PartPropertiesStep9
    station.GraphicComponents.Add(myPart2);
    #endregion
    #region PartPropertiesStep10
    GraphicComponentLibrary myLib = myPart2.MoveDefinitionToLibrary();
    Logger.AddMessage(
      new LogMessage("The RootComponent of the Lib is: " + myLib.RootComponent.Name));

    // Save a copy of the lib.
    // Get the path to the UserProjectsFolder.
    string userProjPath =
        (string)Options.GetValue("RobotStudio", "Directories.UserProjects");
    if (userProjPath != null)
    {
        myLib.SaveAs(userProjPath + "\\Libraries\\myLib.rslib");
    }
    else
    {
        // If there is no UserprojPath, save it in user documents.
        myLib.SaveAs(Path.Combine
        (System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "myLib.rslib"));
    }
    #endregion

    // Create a new instance of myPart.
    #region PartPropertiesStep11
    Part myPart3 = (Part)myPart1.CopyInstance();
    #endregion

    // Add myPart3 to the station.
    station.GraphicComponents.Add(myPart3);

    // Delete the geometry of myPart3, this causes 
    // the geometry of myPart1 to be deleted to,
    // since they use the same definition.
    #region PartPropertiesStep12
    myPart3.DeleteGeometry();
    #endregion

    // Disconnect myPart2 from its library.
    #region PartPropertiesStep13
    myPart2.DisconnectFromLibrary();
    #endregion

    // Get the normal of myPart2
    #region PartPropertiesStep14
    BoundingBox bbox = myPart2.GetBoundingBox(true);
    Vector3 firstCorner = bbox.min;
    Vector3 secondCorner = bbox.max;
    Logger.AddMessage
        (new LogMessage("The first corner of the bounding box is ( "
        + firstCorner.x + "; " + firstCorner.y + "; " + firstCorner.z + ")"));
    Logger.AddMessage
        (new LogMessage("The second corner of the bounding box is ( "
        + secondCorner.x + "; " + secondCorner.y + "; " + secondCorner.z + ")"));
    Vector3 testPoint = new Vector3(0.0, 0.0, 0.0);
    Vector3 hitPoint;
    Vector3 hitPointNormal;
    Face hitFace;
    myPart2.GetNormalToSurface(testPoint, out hitPoint, out hitPointNormal, out hitFace);
    #endregion

    // Make the hitFace green.
    // When using VSTA, change to these lines instead:
    // Byte R = 0; Byte G = 255; Byte B = 0;
    // VSTABridge.SetColor(hitFace, R, G, B);
    hitFace.Color = Color.Green;

    Logger.AddMessage
     (new LogMessage("The hit point from GetNormalToSurface at test point (0,0,0) is: ( "
     + hitPoint.x + "; " + hitPoint.y + "; " + hitPoint.z + ")"));
    Logger.AddMessage
     (new LogMessage("The hit point normal from GetNormalToSurface at test point (0,0,0) is: ( "
     + hitPointNormal.x + "; " + hitPointNormal.y + "; " + hitPointNormal.z + ")"));
}
catch
{
    Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
    throw;
}
finally
{
    Project.UndoContext.EndUndoStep();
}
Version Information

Supported in: 1.0.0.0
See Also