×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

VBA (Make All Assembly Components Visible Example)

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

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


RE: VBA (Make All Assembly Components Visible Example)

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.

& all the best.

RE: VBA (Make All Assembly Components Visible Example)

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
3DVision Technologies

www.3dvisiontech.com
www.scottjbaugh.com
FAQ731-376
FAQ559-716 - SW Fora Users

RE: VBA (Make All Assembly Components Visible Example)

(OP)
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

RE: VBA (Make All Assembly Components Visible Example)

check out this post
Thread559-37101

Bradley

RE: VBA (Make All Assembly Components Visible Example)

SBaugh ... I'm still stuck with SW04 for a while, so cannot check SW05. Hopefully SW has not intentionally removed that feature.
Are you highlighting the TLA before Edit > Show?

& all the best.

RE: VBA (Make All Assembly Components Visible Example)

I have since rebooted SW and of course now it's working... must have been one of those bugs every one sees from time to time.

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)

SolidWorks!!! ... Bugs!!! ... Nahh, couldn't be.

& all the best.

RE: VBA (Make All Assembly Components Visible Example)

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

RE: VBA (Make All Assembly Components Visible Example)

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

& all the best.

RE: VBA (Make All Assembly Components Visible Example)

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

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources