AnsweredAssumed Answered

Macro - Offset existing sketch, create extrude from sketch

Question asked by Ben Richardson on Feb 26, 2020
Latest reply on Feb 27, 2020 by Alex Burnett

I am trying to create a macro that will generate a part from a simple sketch. Nothing too complex, I have gotten it to work with the sketch that I recorded the macro with but when I try it on another part its not working as intended (particularly editing the sketch and adding the offset sketch)


Here is my code:

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
'Offset sketch
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SketchBoxSelect("-0.063401", "0.022647", "0.000000", "-0.063349", "0.022596", "0.000000")
boolstatus = Part.SketchManager.SketchOffset2(0.0022, False, False, 0, 0, True)
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)

' Create Extrude
Dim myFeature As Object
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, True, 0, 0, 0.016, 0.01, True, False, False, False, 4.36332312998583E-02, 4.36332312998583E-02, False, False, False, False, True, True, True, 0, 0, False)
Part.SelectionManager.EnableContourSelection = False
End Sub


I used "select all" but it seems to have created a box selection and I think this may be the issue.

What im trying to achieve:

  • From an already created sketch on the front plane, add 2.2mm offset outwards
  • Use this sketch to create extrude, 16mm long with 2.5 degrees draft


Once I get that working on ANY sketch, I then need to:

  • create sketch on the base face of the above extrude (can be front plane if the face is not suitable), offset 4mm outwards and 1mm inwards on that same face.
  • From this sketch create 1.2mm extrude
  • Create a set of configurations based off a list of sizes where "D1@Sketch1" is the dimension to be changed for each configuration


Im pretty new to macros so any help is appreciated, thanks.