Show / Hide Table of Contents

CAD Information

This example demonstrates how to retrieve and log information related to a CAD model in RobotStudio. It expects an existing CAD model in the RobotStudio Station and outputs various details such as the number of triangles, bodies, vertices, wires, detail levels, faces, and the memory size used to store the persistent information of the CAD model.

Solution

  1. Retrieve the mesh information of the part using the GetInfo() instance method of the Mesh class.

    MeshInfo meshInfo = part.Mesh.GetInfo();
    
  2. Get number of Triangles.

    // Number of Triangles  
    Logger.AddMessage(new LogMessage(
        $"Number of Triangles for {part.Name} is {meshInfo.NumberOfTriangles}"));
    
  3. Get number of Bodies.

    // Number of Bodies  
    Logger.AddMessage(new LogMessage(
        $"Number of Bodies for {part.Name} is {meshInfo.NumberOfBodies}"));
    
  4. Get number of Vertices.

    // Number of Vertices  
    Logger.AddMessage(new LogMessage(
        $"Number of Vertices for {part.Name} is {meshInfo.NumberOfVertices}"));
    
  5. Get number of Wires.

    // Number of Wires  
    Logger.AddMessage(new LogMessage(
        $"Number of Wires for {part.Name} is {meshInfo.NumberOfWires}"));
    
  6. Get number of DetailLevels.

    // Number of DetailLevels  
    Logger.AddMessage(new LogMessage(
        $"Number of DetailLevels for {part.Name} is {meshInfo.NumberOfDetailLevels}"));
    
  7. Get number of Faces.

    // Number of Faces  
    Logger.AddMessage(new LogMessage(
        $"Number of Faces for {part.Name} is {meshInfo.NumberOfFaces}"));
    
  8. Get size of memory which is used to persistent information about the mesh.

    // Size of memory which is used to persistent information about the mesh.  
    Logger.AddMessage(new LogMessage(
        $"Size of memory used to persistent information about the mesh for {part.Name} is {meshInfo.PersistentBytes}"));
    

Example

This function returns typesafe collection of all the Part objects in the station. It can be used to get the List<Part> parameter for LogMeshInfo.

private static List<Part> GetStationParts()
{
    var parts = new List<Part>();
    foreach (var component in Station.ActiveStation.GraphicComponents)
    {
        if (component is Part part)
        {
            parts.Add(part);
        }
    }
    return parts;
}

This example provides information on the number of Triangles, Bodies, Vertices, Wires, DetailLevels, Faces, Size of Memory used to persist CAD data.

private static void LogMeshInfo(List<Part> parts)
{
    foreach (Part part in parts)
    {
        MeshInfo meshInfo = part.Mesh.GetInfo();

        // Details of CAD model

        // Number of Triangles  
        Logger.AddMessage(new LogMessage(
            $"Number of Triangles for {part.Name} is {meshInfo.NumberOfTriangles}"));

        // Number of Bodies  
        Logger.AddMessage(new LogMessage(
            $"Number of Bodies for {part.Name} is {meshInfo.NumberOfBodies}"));

        // Number of Vertices  
        Logger.AddMessage(new LogMessage(
            $"Number of Vertices for {part.Name} is {meshInfo.NumberOfVertices}"));

        // Number of Wires  
        Logger.AddMessage(new LogMessage(
            $"Number of Wires for {part.Name} is {meshInfo.NumberOfWires}"));

        // Number of DetailLevels  
        Logger.AddMessage(new LogMessage(
            $"Number of DetailLevels for {part.Name} is {meshInfo.NumberOfDetailLevels}"));

        // Number of Faces  
        Logger.AddMessage(new LogMessage(
            $"Number of Faces for {part.Name} is {meshInfo.NumberOfFaces}"));

        // Size of memory which is used to persistent information about the mesh.  
        Logger.AddMessage(new LogMessage(
            $"Size of memory used to persistent information about the mesh for {part.Name} is {meshInfo.PersistentBytes}"));
    }
}

Required Namespaces

ABB.Robotics.RobotStudio.Environment

ABB.Robotics.RobotStudio.Stations

ABB.Robotics.RobotStudio

See Also

  • Level of Detail
  • Graphic Component Hierarchies
In this article
Back to top Copyright © 2025 ABB