AnsweredAssumed Answered

Help with Changing component configuration within assembly with a macro?

Question asked by Josh Hixon on Jul 25, 2018
Latest reply on Jul 25, 2018 by Josh Hixon

My code for this macro seems like it should be right, but I can not for the life of me figure why I keep getting this error.

The code is intended to change a few different parts and subassembly configurations based on top level custom properties. I feel like it is not setting swcomp to anything even though it doesn't error. My first component name is the same as my top level assembly and changes per order.

Here is my code:

 

Dim swapp As SldWorks.SldWorks

Dim Swmodel As SldWorks.ModelDoc2

Dim swcomp As SldWorks.Component2

Dim swassy As SldWorks.AssemblyDoc

Dim RorX As String

Dim Color As String

Dim Stepsd As String

Dim stepsz As String

Dim frame As String

Dim Name As String

Dim sel As SldWorks.SelectionMgr

Dim status As Boolean

 

Sub main()

 

 

Set swapp = Application.SldWorks

Set Swmodel = swapp.ActiveDoc

If Swmodel Is Nothing Or (Swmodel.GetType <> swDocASSEMBLY) Then

    swapp.SendMsgToUser ("Open a Starting Block assembly and try again")

    Exit Sub

    End If

Set swassy = Swmodel

' define the custom property vaiables_____________________________________________________________________

RorX = Swmodel.CustomInfo("Block Type")

Color = Swmodel.CustomInfo("SB Color - Steel")

Stepsd = Swmodel.CustomInfo("SB Step Location")

stepsz = Swmodel.CustomInfo("SB Step Size")

frame = Swmodel.CustomInfo("SB Setback")

' File name for Frame________________________________________________________________________________________________________

Name = Mid(Swmodel.GetPathName, InStrRev(Swmodel.GetPathName, "\") + 1)

Name = Left(Name, InStrRev(Name, ".") - 1)

'Frame Handling_________________________________________________________________

Set swcomp = swassy.GetComponentByName(Name)

If CInt(frame) >= 24 Then

swcomp.ReferencedConfiguration = "SHORT"

Else

swcomp.ReferencedConfiguration = "LONG"

End If

 

 

End Sub

 

 

On a tangent, I see some people add awesome little-numbered lines when they post code on the forums... how do you do this?

Outcomes