Hello, I am making the switch from lurking on the forums to asking a question. The reason for this change is that I cannot find an answer to my problem anywhere I have looked. Sorry if this is a simple request, but I have no formal training in making macros.
My problem is that I am trying to make a macro to created a derived mirror configuration of an open part file. Manually we always open an assembly, insert the part and run the mirror function, ticking off the same selections each time. I did not see any simpler existing way in SolidWorks 2016 so I decided to write a macro to do it. Below is the code I have so far, however, I continually get a "Run-time error '438': Object doesn't support this property or method" What am I doing wrong, what needs changed to make this work, or is there a simpler way to get the same result? Thanks for any help.
Dim swPart As Object
Dim swAssy As Object
Dim Result As Long
Dim ActiveConfig As Object
Dim boolstatus As Boolean
Dim errors As Long
Dim warnings As Long
Public Sub CreateMirror()
Set swApp = Application.SldWorks
swApp.Visible = True
Set swDoc = swApp.ActiveDoc
Set swPart = swApp.ActiveDoc
Set ActiveConfig = swPart.GetActiveConfiguration
Dim ConfigName As String
ConfigName = ActiveConfig.Name
Dim PartPathName As String
PartPathName = swPart.GetPathName()
PartPath = InStrRev(PartPathName, "\") + 1
PartExten = InStrRev(PartPathName, ".")
Dim PartName As String
PartName = Mid\$(PartPathName, PartPath, PartExten - PartPath)
Set swDoc = swApp.NewDocument("C:\WTI-Vault\WTI Templates\Assembly.asmdot", 0, 0, 0)
Set swAssy = swApp.ActiveDoc
Dim AssyName As String
AssyName = swAssy.GetTitle
boolstatus = swAssy.AddComponent(PartPathName, 0, 0, 0)
Dim MirrorPlane As SldWorks.Feature
Set MirrorPlane = swAssy.FeatureByName("Right Plane")
Dim CompToMirror(0) As Object
Set CompToMirror(0) = swAssy.GetComponentByName(PartName & "-1")
Dim NameModifier As String
NameModifier = ""
Dim DerivedName As String
DerivedName = "_Mirror2"
Dim CompToInstance As Object
Set CompToInstance = Nothing
Dim Orientations As Object
Set Orientations = Nothing
Dim OrientAboutCoM As Boolean
OrientAboutCoM = False
Dim CreateDerivedConfigs As Boolean
CreateDerivedConfigs = True
Dim NameModifierType As swMirrorComponentNameModifier_e
NameModifierType = swMirrorComponentName_Custom
Dim FileLocation As String
FileLocation = Left\$(PartPathName, PartPath)
Dim ImportOptions As Integer
ImportOptions = swMirrorPartOptions_ImportSolids
Dim BreakLinks As Boolean
BreakLinks = False
Dim PreserveZAxis As Boolean
PreserveZAxis = False
Dim FlexSync As Boolean
FlexSync = False
Dim DerivedMirror As Object
DerivedMirror = swAssy.MirrorComponents3(MirrorPlane, CompToInstance, Orientations, OrientAboutCoM, _
CompToMirror, CreateDerivedConfigs, DerivedName, NameModifierType, NameModifier, _
FileLocation, ImportOptions, BreakLinks, PreserveZAxis, FlexSync)
swApp.CloseDoc AssyName
boolstatus = swPart.EditRebuild3()
End Sub
SolidworksApi macros