Create Circular Pattern Example (VB.NET)
This example shows how to create a circular-pattern feature using a
preselected direction axis, preselected pattern seed features, and variable
spacing between pattern instances.
'----------------------------------------------------------------------------
' Preconditions: Open install_dir\samples\tutorial\api\varyinstance.sldprt
'
' Postconditions: A circular-pattern feature is created.
'
' NOTE: Because the model is used elsewhere, do not
' save any changes when closing it.
'-----------------------------------------------------------------------------
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System.Runtime.InteropServices
Imports System
Partial Class SolidWorksMacro
Public Sub Main()
Dim swModel As ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swFeatureMgr As FeatureManager
Dim boolstatus As Boolean
Dim status As Integer
swModel = swApp.ActivateDoc3("varyInstance.sldprt", False, swRebuildOnActivation_e.swUserDecision, status)
swModelDocExt = swModel.Extension
boolstatus = swModelDocExt.SelectByID2("Cut-Extrude1", "BODYFEATURE", 0.00843730075439453, 0.00364341890551145, -0.0354416044676498, False, 4, Nothing, 0)
If boolstatus = False Then ErrorMsg(swApp, "Failed to select a seed feature") : GoTo LastLine
boolstatus = swModelDocExt.SelectByID2("", "EDGE", 0.00628473027779819, -0.168045059787516, -0.0496550391792034, True, 1, Nothing, 0)
If boolstatus = False Then ErrorMsg(swApp, "Failed to select an edge for direction 1") : GoTo LastLine
boolstatus = swModelDocExt.SelectByID2("Fillet1", "BODYFEATURE", 0.000782948437176856, 0.00455320522434022, -0.0350770617062892, True, 4, Nothing, 0)
If boolstatus = False Then ErrorMsg(swApp, "Failed to select a seed feature") : GoTo LastLine
swFeatureMgr = swModel.FeatureManager
boolstatus = swFeatureMgr.InsertVaryInstanceIncrement("D1@Sketch2@varyInstance.SLDPRT", 4, 1, 0, 0.003)
If boolstatus = False Then ErrorMsg(swApp, "Failed to add an increment value to dimension D1@Sketch2@varyInstance.SLDPRT") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceIncrement("D1@Cut-Extrude1@varyInstance.SLDPRT", 4, 1, 0, -0.001)
If boolstatus = False Then ErrorMsg(swApp, "Failed to add an increment value to dimension D1@Cut-Extrude1@varyInstance.SLDPRT") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceIncrement("D1@Fillet1@varyInstance.SLDPRT", 4, 1, 0, 0.0001)
If boolstatus = False Then ErrorMsg(swApp, "Failed to add an increment value to dimension D1@Fillet1@varyInstance.SLDPRT") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceIncrement("Space Increment", 4, 2, 0, 0.0349065850398866)
If boolstatus = False Then ErrorMsg(swApp, "Failed to add an increment value to direction 1 spacing") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceOverride("D1@Sketch2@varyInstance.SLDPRT", 4, 1, -1, 5, -1, 0.05)
If boolstatus = False Then ErrorMsg(swApp, "Failed to override value of dimension D1@Sketch2@varyInstance.SLDPRT at instance (5, 0)") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceOverride("D1@Sketch2@varyInstance.SLDPRT", 4, 1, -1, 3, -1, 0.06)
If boolstatus = False Then ErrorMsg(swApp, "Failed to override value of dimension D1@Sketch2@varyInstance.SLDPRT at instance (3, 0)") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceOverride("D1@Cut-Extrude1@varyInstance.SLDPRT", 4, 1, -1, 5, -1, 0.005)
If boolstatus = False Then ErrorMsg(swApp, "Failed to override value of dimension D1@Cut-Extrude1@varyInstance.SLDPRT at instance (5, 0)") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceOverride("D1@Fillet1@varyInstance.SLDPRT", 4, 1, -1, 5, -1, 0.006)
If boolstatus = False Then ErrorMsg(swApp, "Failed to override value of dimension D1@Fillet1@varyInstance.SLDPRT at instance (5, 0)") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceOverride("D1@Fillet1@varyInstance.SLDPRT", 4, 1, -1, 3, -1, 0.004)
If boolstatus = False Then ErrorMsg(swApp, "Failed to override value of dimension D1@Fillet1@varyInstance.SLDPRT at instance (3, 0)") : GoTo LastLine
boolstatus = swFeatureMgr.InsertVaryInstanceOverride("Space Increment", 4, 2, 0, 5, -1, 1.30899693899575)
If boolstatus = False Then ErrorMsg(swApp, "Failed to override value of direction 1 spacing increment at instance (3, 0)") : GoTo LastLine
Dim myFeature As Feature
myFeature = swFeatureMgr.FeatureCircularPattern4(6, 0.174532925199434, True, "NULL", False, False, True)
If myFeature Is Nothing Then ErrorMsg(swApp, "Failed to create a vary instance circular pattern") : GoTo LastLine
LastLine:
End Sub
Function ErrorMsg(ByVal SwApp As Object, ByVal Message As String) As String
SwApp.SendMsgToUser2(Message, 0, 0)
SwApp.RecordLine("'*** WARNING - General")
SwApp.RecordLine("'*** " & Message)
SwApp.RecordLine("")
Return ""
End Function
''' <summary>
''' The SldWorks swApp variable is pre-assigned for you
''' </summary>
Public swApp As SldWorks
End Class