Change Dimension Example (C#)
This example shows how to modify dimension
values of an existing SolidWorks part.
Metric and English:
Most of the API functions operate in meters. Therefore, if you pass in XValue_Passed = 2.0,
and your part file units are millimeters, then it
will appear as a 2000.0 in the part. If you need to determine the units
used in the part file, you can use the IModelDoc2::LengthUnit property
and perform the appropriate conversion.
//----------------------------------------------------------------------------
// Preconditions: Specified file to open exists.
//
// Postconditions:
// 1. Part opens.
// 2. Specified dimension parameter of the selected feature is modified.
//
// NOTE: Because the specified document is used elsewhere,
// do not save changes when closing it.
//----------------------------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
System.Runtime.InteropServices;
using
System;
using
System.Diagnostics;
namespace
GetFeatureParameter_CSharp.csproj
{
partial
class
SolidWorksMacro
{
ModelDoc2
swModel;
Feature
swFeature;
SelectionMgr
swSelectionManager;
Dimension
swDim;
string
fileName;
bool
boolstatus;
int
errors;
int
warnings;
public
void Main()
{
fileName = "C:\\Program
Files\\SolidWorks Corp\\SolidWorks\\samples\\tutorial\\api\\assem2.sldasm";
swModel = swApp.OpenDoc6(fileName, (int)swDocumentTypes_e.swDocASSEMBLY,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"",
ref errors,
ref
warnings);
boolstatus = swModel.Extension.SelectByID2("LocalCirPattern1",
"COMPPATTERN",
0, 0, 0, false,
0, null,
0);
swSelectionManager = (SelectionMgr)swModel.SelectionManager;
swFeature = (Feature)swSelectionManager.GetSelectedObject6(1,
-1);
swDim = (Dimension)swFeature.Parameter("D3");
// Change D3 of
LocalCirPattern1 from 360 degrees to 270 degrees (4.72 radians)
errors = swDim.SetSystemValue3(4.72,
(int)swSetValueInConfiguration_e.swSetValue_InThisConfiguration,
null);
swModel.EditRebuild3();
Debug.Print("D3
for LocalCirPattern1 is " + swDim.SystemValue.ToString());
}
public
SldWorks
swApp;
}
}