Search Results for

    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 © 2026 ABB Robotics