Split FeatureManager Design Tree and Position Splitter (C#)
This example shows how:
* to split a FeatureManager design tree.
* add a tab to one of the FeatureManager design trees.
* change the location of the split panel bar (splitter).
//----------------------------------------------------------
// Preconditions:
// 1. In the IDE, reference Microsoft Calendar Control's
// ActiveX control file:
// a. Click Project > Add Reference > Browse tab.
// b. Browse to:
// c:\Program Files\Microsoft Office\Office12\MSCAL.OCX
// and click OK.
// 2. Specified part document and bitmap exist.
//
// Postconditions:
// 1. FeatureManager design tree is split, and the splitter is
// below the FeatureManager design tree to which the
// tab was added. Drag the splitter to verify.
// 2. Interactively close the part document.
// 3. Interactively initialize test to 1 in the macro.
// 4. Rerun the macro.
// 5. FeatureManager design tree is split, and the splitter is
// above the FeatureManager design tree to which the
// tab was added. Drag the splitter to verify.
//
// NOTE: Because the part document is used elsewhere,
// do not save any changes when closing it.
//----------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
MSACAL;
using
System;
namespace
FeatureManagerSplitterPositionModelDoc2CSharp.csproj
{
partial
class
SolidWorksMacro
{
public
void Main()
{
const
string
iconSmall = "C:\\Program
Files\\SOLIDWORKS Corp\\SOLIDWORKS\\data\\user macro icons\\button.bmp";
ModelDoc2 swModel = default(ModelDoc2);
ModelViewManager swModViewMgr =
default(ModelViewManager);
FeatMgrView swFeatMgrTabTop =
default(FeatMgrView);
FeatMgrView swFeatMgrTabBtm =
default(FeatMgrView);
MSACAL.Calendar ctrlTop =
default(MSACAL.Calendar);
MSACAL.Calendar ctrlBtm =
default(MSACAL.Calendar);
string
fileName = null;
int
errors = 0;
int
warnings = 0;
int
activePane = 0;
int
test = 0;
fileName = "c:\\Program
Files\\SOLIDWORKS Corp\\SOLIDWORKS\\samples\\tutorial\\fillets\\knob.sldprt";
swModel = (ModelDoc2)swApp.OpenDoc6(fileName, (int)swDocumentTypes_e.swDocPART,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"",
ref errors,
ref
warnings);
swModViewMgr = (ModelViewManager)swModel.ModelViewManager;
if
(test == 0)
{
// FeatureManager design
tree is split, and the splitter is
//
below the FeatureManager design tree to which the
//
tab was added
swFeatMgrTabTop =
(FeatMgrView)swModViewMgr.CreateFeatureMgrControl2(iconSmall,
"MSCAL.Calendar",
"",
"Top tab ToolTip",
(int)swFeatMgrPane_e.swFeatMgrPaneTop);
ctrlTop = (MSACAL.Calendar)swFeatMgrTabTop.GetControl();
swModel.FeatureManagerSplitterPosition = 0.0;
activePane = swFeatMgrTabTop.ActivateView();
}
else
{
// FeatureManager design
tree is split, and the splitter is
//
above the FeatureManager design tree to which the
//
tab was added
swFeatMgrTabBtm =
(FeatMgrView)swModViewMgr.CreateFeatureMgrControl2(iconSmall,
"MSCAL.Calendar",
"",
"Bottom tab ToolTip",
(int)swFeatMgrPane_e.swFeatMgrPaneBottom);
ctrlBtm = (MSACAL.Calendar)swFeatMgrTabBtm.GetControl();
swModel.FeatureManagerSplitterPosition = 1.0;
activePane = swFeatMgrTabBtm.ActivateView();
}
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}