Get Dimension Tolerance Example (C#)
This example shows how to set and get dimension tolerance values.
//---------------------------------------------
// Preconditions:
// 1. Open:
// C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\api\gtolwitnessline.slddrw
// 2. Open the Immediate window.
// 3. Zoom in on a dimension and click it.
// 4. Run the macro.
//
// Postconditions:
// 1. The dimension tolerance for the selected dimension
// is set to basic.
// 2. Minimum and maximum dimension tolerances are set for the
// the selected dimension, and their values printed to the
// the Immediate window.
// 3. The height and scale of the font for the dimension tolerance
// are printed to the Immediate window.
//
// NOTE: Because this part document is used elsewhere, do not
// save any changes when closing it.
//----------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System.Runtime.InteropServices;
using System;
using System.Diagnostics;
namespace ToleranceDimension.csproj
{
partial class SolidWorksMacro
{
ModelDoc2 swModel;
SelectionMgr swSelMgr;
DisplayDimension swDisplayDimension;
Dimension swDimension;
DimensionTolerance swDimensionTolerance;
bool status;
double fontHeight;
double fontScale;
public void Main()
{
swModel = (ModelDoc2)swApp.ActiveDoc;
swSelMgr = (SelectionMgr)swModel.SelectionManager;
//Get the selection
swDisplayDimension = (DisplayDimension)swSelMgr.GetSelectedObject6(1, 0);
// If selection is not a dimension, then exit
if (swSelMgr.GetSelectedObjectType3(1, -1) != (int)swSelectType_e.swSelDIMENSIONS)
return;
// Selection is a dimension, so get the dimension tolerance object
swDimension = (Dimension)swDisplayDimension.GetDimension();
swDimensionTolerance = (DimensionTolerance)swDimension.Tolerance;
// Set type of Tolerance
swDimensionTolerance.Type = (int)swTolType_e.swTolBASIC;
// Set dimension tolerance value
status = swDimensionTolerance.SetValues(0.01, 0.015);
Debug.Print("Minimum dimension tolerance: " + swDimensionTolerance.GetMinValue());
Debug.Print("Maximum dimension tolerance: " + swDimensionTolerance.GetMaxValue());
// Get some dimension tolerance values
fontHeight = swDimensionTolerance.GetFontHeight();
Debug.Print(" Height of font = " + fontHeight * 1000.0 + " mm");
fontScale = swDimensionTolerance.GetFontScale();
Debug.Print(" Scale of font = " + fontScale);
}
/// <summary>
/// The SldWorks swApp variable is pre-assigned for you.
/// </summary>
public SldWorks swApp;
}
}