VBA (Make All Assembly Components Visible Example)
VBA (Make All Assembly Components Visible Example)
(OP)
I tried the following VBA codes (an example from SolidWorks API help files) to make all assembly components visible. But it does not work. Did I do it improperly? Your help is appreciated. FYI, I am using SW2004, sp4.0 in WIN XP sp1.0.
Thanks,
Alex
This example shows how to make all assembly components visible.
'---------------------------------------
'
' Precondition: An assembly document is open.
'
' Postcondition: Any hidden assembly components are made visible.
'
Option Explicit
Public Enum swComponentVisibilityState_e
swComponentHidden = 0
swComponentVisible = 1
End Enum
Sub TraverseComponent _
( _
swComp As SldWorks.Component2, _
nLevel As Long _
)
Dim vChildCompArr As Variant
Dim vChildComp As Variant
Dim swChildComp As SldWorks.Component2
Dim swCompConfig As SldWorks.Configuration
Dim sPadStr As String
Dim i As Long
For i = 0 To nLevel - 1
sPadStr = sPadStr + " "
Next i
vChildCompArr = swComp.GetChildren
For Each vChildComp In vChildCompArr
Set swChildComp = vChildComp
'Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
If swComponentHidden = swChildComp.Visible Then
swChildComp.Visible = swComponentVisible
End If
TraverseComponent swChildComp, nLevel + 1
Next
End Sub
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssy As SldWorks.AssemblyDoc
Dim swConf As SldWorks.Configuration
Dim swRootComp As SldWorks.Component2
Dim bRet As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swConf = swModel.GetActiveConfiguration
Set swRootComp = swConf.GetRootComponent
'Debug.Print "File = " & swModel.GetPathName
TraverseComponent swRootComp, 1
End Sub
'---------------------------------------
Thanks,
Alex
This example shows how to make all assembly components visible.
'---------------------------------------
'
' Precondition: An assembly document is open.
'
' Postcondition: Any hidden assembly components are made visible.
'
Option Explicit
Public Enum swComponentVisibilityState_e
swComponentHidden = 0
swComponentVisible = 1
End Enum
Sub TraverseComponent _
( _
swComp As SldWorks.Component2, _
nLevel As Long _
)
Dim vChildCompArr As Variant
Dim vChildComp As Variant
Dim swChildComp As SldWorks.Component2
Dim swCompConfig As SldWorks.Configuration
Dim sPadStr As String
Dim i As Long
For i = 0 To nLevel - 1
sPadStr = sPadStr + " "
Next i
vChildCompArr = swComp.GetChildren
For Each vChildComp In vChildCompArr
Set swChildComp = vChildComp
'Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
If swComponentHidden = swChildComp.Visible Then
swChildComp.Visible = swComponentVisible
End If
TraverseComponent swChildComp, nLevel + 1
Next
End Sub
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssy As SldWorks.AssemblyDoc
Dim swConf As SldWorks.Configuration
Dim swRootComp As SldWorks.Component2
Dim bRet As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swConf = swModel.GetActiveConfiguration
Set swRootComp = swConf.GetRootComponent
'Debug.Print "File = " & swModel.GetPathName
TraverseComponent swRootComp, 1
End Sub
'---------------------------------------






RE: VBA (Make All Assembly Components Visible Example)
This will do what you are trying to do with VBA. May be you can record a macro of the above as a starting point.
RE: VBA (Make All Assembly Components Visible Example)
So I'm not sure what's happening there.
Regards,
Scott Baugh, CSWP
3DVision Technologies
www.3dvisiontech.com
www.scottjbaugh.com
FAQ731-376
FAQ559-716 - SW Fora Users
RE: VBA (Make All Assembly Components Visible Example)
Thanks! I know how to use "Edit > Show (or Show with dependants)" to make all assembly components visible. But I need VBA codes for this function. I tried to record a macro of the above. But macro recording does not record my action ("Edit>Show with dependants>"). I notice that macro recording does record everything.
Thanks,
Alex
RE: VBA (Make All Assembly Components Visible Example)
Thread559-37101
Bradley
RE: VBA (Make All Assembly Components Visible Example)
Are you highlighting the TLA before Edit > Show?
RE: VBA (Make All Assembly Components Visible Example)
Thanks,
Scott Baugh, CSWP
3DVision Technologies
www.3dvisiontech.com
www.scottjbaugh.com
FAQ731-376
FAQ559-716 - SW Fora Users
RE: VBA (Make All Assembly Components Visible Example)
RE: VBA (Make All Assembly Components Visible Example)
Ken
RE: VBA (Make All Assembly Components Visible Example)
Regards,
Scott Baugh, CSWP
3DVision Technologies
www.3dvisiontech.com
www.scottjbaugh.com
FAQ731-376
FAQ559-716 - SW Fora Users
RE: VBA (Make All Assembly Components Visible Example)
RE: VBA (Make All Assembly Components Visible Example)
Ken