Get Mass Properties of Active Document Example (C#)
This example shows how to retrieve the mass
properties from an active document.
//----------------------------------------------------------------------------
// Preconditions:
// 1. Open a document with mass properties.
// 2. Open an Immediate window.
//
// Postconditions: Inspect the Immediate window for the mass properties.
//----------------------------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
System.Runtime.InteropServices;
using
System;
using
System.Diagnostics;
namespace
GetMassProperties_CSharp.csproj
{
public
partial
class
SolidWorksMacro
{
public
void Main()
{
ModelDoc2
swModel;
ModelDocExtension
swModelDocExt;
int
nStatus =0;
double[]
MassProp;
swModel = (ModelDoc2)swApp.ActiveDoc;
swModelDocExt = (ModelDocExtension)swModel.Extension;
MassProp = (double[])swModelDocExt.GetMassProperties(1,
ref nStatus);
Debug.Print("ModelDocExtension::GetMassProperties
" + swModel.GetPathName());
Debug.Print(" Status
= " + nStatus);
Debug.Print("");
if
(MassProp != null)
{
Debug.Print(" CenterOfMassX
= " + MassProp[0]);
Debug.Print(" CenterOfMassY
= " + MassProp[1]);
Debug.Print(" CenterOfMassZ
= " + MassProp[2]);
Debug.Print(" Volume
= " + MassProp[3]);
Debug.Print(" Area
= " + MassProp[4]);
Debug.Print(" Mass
= " + MassProp[5]);
Debug.Print(" MomXX
= " + MassProp[6]);
Debug.Print(" MomYY
= " + MassProp[7]);
Debug.Print(" MomZZ
= " + MassProp[8]);
Debug.Print(" MomXY
= " + MassProp[9]);
Debug.Print(" MomZX
= " + MassProp[10]);
Debug.Print(" MomYZ
= " + MassProp[11]);
}
}
public
SldWorks
swApp;
}
}