Insert Fill-surface Feature Example (C#)
This example shows how to insert a fill-surface feature.
//--------------------------------------------------
// Preconditions: Ensure that the part template file
// named part.prtdot exists in the specified path.
//
// Postconditions:
// 1. Sketches a circle on the Front Plane.
// 2. Offsets the Front Plane to create Plane1.
// 3. Sketches a circle on Plane1.
// 4. Creates a thin-feature loft using the circles
// created in steps 1 and 3.
// 5. Selects one of the sketches to use for
// the fill-surface feature.
// 6. Creates a fill-surface feature named Surface-Fill1.
// 7. To verify step 6, examine the FeatureManager
// design tree.
//---------------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System.Runtime.InteropServices;
using System;
namespace InsertFillFeature2CSharp.csproj
{
public partial class SolidWorksMacro
{
public void Main()
{
ModelDoc2 swModel = default(ModelDoc2);
ModelDocExtension swModelDocExt = default(ModelDocExtension);
SelectionMgr swSelMgr = default(SelectionMgr);
SketchManager swSketchMgr = default(SketchManager);
SketchSegment swSketchSegment = default(SketchSegment);
FeatureManager swFeatMgr = default(FeatureManager);
RefPlane swRefPlane = default(RefPlane);
Feature swFeat = default(Feature);
object selObj = null;
bool status = false;
//Open a new model document
swModel = (ModelDoc2)swApp.NewDocument("C:\\ProgramData\\SolidWorks\\SolidWorks 2014\\templates\\part.prtdot", (int)swDwgPaperSizes_e.swDwgPaperAsize, 0, 0);
//Select the front plane and sketch a circle
swModelDocExt = (ModelDocExtension)swModel.Extension;
status = swModelDocExt.SelectByID2("Front Plane", "PLANE", 0, 0, 0, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);
swModel.ClearSelection2(true);
swSketchMgr = (SketchManager)swModel.SketchManager;
swSketchSegment = (SketchSegment)swSketchMgr.CreateCircle(0.0, 0.0, 0.0, 0.018863, -0.048015, 0.0);
swModel.ClearSelection2(true);
swSketchMgr.InsertSketch(true);
//Offset the front plane to create Plane1
status = swModelDocExt.SelectByID2("Front Plane", "PLANE", 0, 0, 0, true, 0, null, 0);
swFeatMgr = (FeatureManager)swModel.FeatureManager;
swRefPlane = (RefPlane)swFeatMgr.InsertRefPlane(8, 0.0762, 0, 0, 0, 0);
status = swModelDocExt.SelectByID2("Plane1", "PLANE", 0, 0, 0, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);
swSketchSegment = (SketchSegment)swSketchMgr.CreateCircle(0.0, 0.0, 0.0, 0.005144, -0.017148, 0.0);
swModel.ClearSelection2(true);
swSketchMgr.InsertSketch(true);
//Create a loft as a thin feature
status = swModelDocExt.SelectByID2("Sketch2", "SKETCH", -0.0120997659765269, 0.0131954647737917, 0, false, 1, null, 0);
status = swModelDocExt.SelectByID2("Sketch1", "SKETCH", -0.0137458916138411, 0.0497220981864567, 0, true, 1, null, 0);
swFeatMgr.InsertProtrusionBlend2(false, true, false, 1, 0, 0, 1, 1, true, true,
true, 0.000254, 0.000254, 0, true, true, true, (int)swGuideCurveInfluence_e.swGuideCurveInfluenceNextEdge);
//Get the sketch for the fill-surface feature
status = swModelDocExt.SelectByID2("Sketch2", "SKETCH", -0.0309259362651374, -0.0150632202505945, 0.0265529245975468, true, 257, null, (int)swSelectOption_e.swSelectOptionDefault);
swSelMgr = (SelectionMgr)swModel.SelectionManager;
selObj = (object)swSelMgr.GetSelectedObject6(1, 257);
//Insert the fill-surface feature
swFeat = (Feature)swFeatMgr.InsertFillSurface2(2, (int)swFeatureFillSurfaceOptions_e.swOptimizeSurface, selObj, (int)swContactType_e.swContact, null, null);
}
/// <summary>
/// The SldWorks swApp variable is pre-assigned for you.
/// </summary>
public SldWorks swApp;
}
}