Create Derived or Underived Sketch Example (C#)
This example shows how to create a derived or underived sketch.
// ------------------------------------------------------------
// Preconditions:
// (1)
Part document is open that
// contains
at least one sketch.
// (2)
Select an underived sketch, run the macro, and
// examine
both the FeatureMananger design
// tree
and the Immediate Window for results.
// (3)
Run the macro again, but this time select
// the
just created derived sketch
// and
examine both the FeatureManager design
// tree
and the Immediate Window for results.
//
//
// Postconditions:
// (1)
If the sketch is not derived, then a
// derived
sketch is created.
// (2)
If the selected sketch is derived,
// then
it is underived.
//---------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Diagnostics;
namespace DeriveSketch_CSharp.csproj
{
partial
class SolidWorksMacro
{
public
void Main()
{
ModelDoc2
swModel = default(ModelDoc2);
SelectionMgr
swSelMgr = default(SelectionMgr);
Feature
swFeat = default(Feature);
Sketch
swSketch = default(Sketch);
swModel
= (ModelDoc2)swApp.ActiveDoc;
//
Interactively select a sketch
swSelMgr
= (SelectionMgr)swModel.SelectionManager;
swFeat
= (Feature)swSelMgr.GetSelectedObject6(1, -1);
swSketch
= (Sketch)swFeat.GetSpecificFeature2();
//
Is the selected sketch derived?
Debug.Print("Is
the selected sketch derived? " + swSketch.IsDerived());
//
If the selected sketch is a derived sketch,
//
then create a derived sketch; else, underive the
//
selected sketch
if
(swSketch.IsDerived())
{
swModel.UnderiveSketch();
Debug.Print("
Selected sketch was derived; sketch is now underived.");
}
else
{
swModel.DeriveSketch();
Debug.Print("
Selected sketch was not derived; a derived sketch has been created.");
}
swModel.ForceRebuild3(false);
}
public
SldWorks swApp;
}
}