Translate Move Face Feature Example (C#)
This
example shows how to translate a Move Face feature.
//------------------------------------------------------------------
//
// Preconditions: Part document containing a Move Face
// feature
is open and contains a Move Face1
// feature.
//
// Postconditions: Move Face feature is translated.
//
//----------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Diagnostics;
namespace TranslateMoveFaceFeature_CSharp.csproj
{
partial
class SolidWorksMacro
{
public
void Main()
{
ModelDoc2
swModel = default(ModelDoc2);
ModelDocExtension
swModelDocExt = default(ModelDocExtension);
SelectionMgr
swSelMgr = default(SelectionMgr);
Feature
swFeat = default(Feature);
MoveFaceFeatureData
swMoveFaceFeatData = default(MoveFaceFeatureData);
double[]
varPara = null;
double[]
newPara = new double[3];
double[]
newVarPara = null;
long
i = 0;
bool
boolstatus = false;
swModel
= (ModelDoc2)swApp.ActiveDoc;
swSelMgr
= (SelectionMgr)swModel.SelectionManager;
swModelDocExt
= swModel.Extension;
//
Select, get, and access Move Face feature
boolstatus
= swModelDocExt.SelectByID2("Move Face1", "BODYFEATURE",
0, 0, 0, false, 0, null, 0);
swFeat
= (Feature)swSelMgr.GetSelectedObject6(1, -1);
swMoveFaceFeatData
= (MoveFaceFeatureData)swFeat.GetDefinition();
swMoveFaceFeatData.AccessSelections(swModel,
null);
//
Get current translation values
Debug.Print("Translation
values before translating Move Face feature...");
varPara
= (double[])swMoveFaceFeatData.TriadTranslationParameters;
for
(i = varPara.GetLowerBound(0); i <= varPara.GetUpperBound(0); i++)
{
Debug.Print("
" + (varPara[i] * 1000 + " mm"));
}
//
Set new translation values
newPara[0]
= 0.0;
newPara[1]
= 0.0;
newPara[2]
= 0.01;
newVarPara
= newPara;
//
Move Face feature is translated using the new
//
translation values
swMoveFaceFeatData.TriadTranslationParameters
= newVarPara;
Debug.Print("
");
newVarPara
= (double[])swMoveFaceFeatData.TriadTranslationParameters;
Debug.Print("Translation
values after translating Move Face feature...");
for
(i = newVarPara.GetLowerBound(0); i <= newVarPara.GetUpperBound(0);
i++)
{
Debug.Print("
" + (newVarPara[i] * 1000.0 + " mm"));
}
//
Move Face feature is modified
swFeat.ModifyDefinition(swMoveFaceFeatData,
swModel, null);
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}