Body Properties
This example creates a solid box, and prints its properties in the logger (the output window in RobotStudio).
Example
Project.UndoContext.BeginUndoStep("BodyProperties");
try
{
Station station = Station.ActiveStation;
// Create a part to contain the bodies.
Part p = new Part();
p.Name = "My_Part";
station.GraphicComponents.Add(p);
// Create a solid box.
Matrix4 matrix_origo = new Matrix4(new Vector3(Axis.X), 0.0);
Vector3 size = new Vector3(0.5, 0.5, 0.5);
Body b1 = Body.CreateSolidBox(matrix_origo, size);
b1.Name = "Box";
p.Bodies.Add(b1);
// Log a summary of the bodies properties.
Logger.AddMessage(new LogMessage($"The body '{b1.Name}' has the following properties:"));
Logger.AddMessage(new LogMessage(
$"Center of gravity: x: {b1.CenterOfGravity.x}, y: {b1.CenterOfGravity.y}, z: {b1.CenterOfGravity.z}"));
Logger.AddMessage(new LogMessage($"Color: {b1.Color}"));
Logger.AddMessage(new LogMessage($"Moment of Inertia: " +
$"x: ({b1.MomentOfInertia.x.x}, {b1.MomentOfInertia.x.y}, {b1.MomentOfInertia.x.z}), " +
$"y: ({b1.MomentOfInertia.y.x}, {b1.MomentOfInertia.y.y}, {b1.MomentOfInertia.y.z}), " +
$"z: ({b1.MomentOfInertia.z.x}, {b1.MomentOfInertia.z.y}, {b1.MomentOfInertia.z.z})"));
Logger.AddMessage(new LogMessage($"Has '{b1.Shells.Count}' number of shells."));
Logger.AddMessage(new LogMessage($"Surface area: {b1.SurfaceArea}"));
Logger.AddMessage(new LogMessage($"Transform: " +
$"X: {b1.Transform.X}, Y: {b1.Transform.Y}, Z: {b1.Transform.Z}, " +
$"Rx: {b1.Transform.RX}, Ry: {b1.Transform.RY}, Rz: {b1.Transform.RZ}"));
Logger.AddMessage(new LogMessage($"Visibility: {b1.Visible}"));
Logger.AddMessage(new LogMessage($"Volume: {b1.Volume}"));
}
catch
{
Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
throw;
}
finally
{
Project.UndoContext.EndUndoStep();
}
Required Namespaces
ABB.Robotics.RobotStudio.Stations