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
Retrieve the mesh information of the part using the Get
Info() instance method of the Mesh class.MeshInfo meshInfo = part.Mesh.GetInfo();
Get number of Triangles.
// Number of Triangles Logger.AddMessage(new LogMessage( $"Number of Triangles for {part.Name} is {meshInfo.NumberOfTriangles}"));
Get number of Bodies.
// Number of Bodies Logger.AddMessage(new LogMessage( $"Number of Bodies for {part.Name} is {meshInfo.NumberOfBodies}"));
Get number of Vertices.
// Number of Vertices Logger.AddMessage(new LogMessage( $"Number of Vertices for {part.Name} is {meshInfo.NumberOfVertices}"));
Get number of Wires.
// Number of Wires Logger.AddMessage(new LogMessage( $"Number of Wires for {part.Name} is {meshInfo.NumberOfWires}"));
Get number of DetailLevels.
// Number of DetailLevels Logger.AddMessage(new LogMessage( $"Number of DetailLevels for {part.Name} is {meshInfo.NumberOfDetailLevels}"));
Get number of Faces.
// Number of Faces Logger.AddMessage(new LogMessage( $"Number of Faces for {part.Name} is {meshInfo.NumberOfFaces}"));
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.
ABB.