Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations MintJulep on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

VBA (Make All Assembly Components Visible Example)

Status
Not open for further replies.

rgrayclamps

Mechanical
Aug 6, 2004
376
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

'---------------------------------------


 
Replies continue below

Recommended for you

If you highlight the Top Level Assy, then Edit > Show (or Show with dependants) select which config.

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.

[cheers] & all the best.
 
I looked into that before posting it CBL, but it's not avail. If you hide a component in SW05, it's greyed out. If you suppress it the option is available, but when you use that function nothing seems to happen... at least for me.

So I'm not sure what's happening there.

Regards,

Scott Baugh, CSWP [pc2]
3DVision Technologies

faq731-376
faq559-716 - SW Fora Users
 
Hi, CorBlimeyLimey:

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
 
SBaugh ... I'm still stuck with SW04 for a while, so cannot check SW05. Hopefully SW has not intentionally removed that feature. [hairpull]
Are you highlighting the TLA before Edit > Show?

[cheers] & all the best.
 
I am currently on SW2004 SP5.0, and the Edit > Show (or Show with dependants) is not working. It is available to choose but it does not show any hidden components. I'm not sure how long it's been like this. I did get a new computer a couple weeks ago, but I think it wasn't working on the last one either (probably same SP but I can't remember). Any one else seeing this?

Ken

 
The Top Level Assy has to be selected/highlighted before the Edit > Show feature is used.

[cheers] & all the best.
 
Yes I was preselecting the top-level assembly, but nothing happens. I just tried selecting a hidden component or a subassembly that contains a hidden component, and the Edit/Show does work correctly for those (i.e. shows the hidden parts). It only seems to be when selecting the top-level assembly that is not working...hhhmmm...

Ken
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor