Ctrl +q knew all the parts of my asm

Hello;

I am calling on you because I have a problem rebuilding my parts, I explain. J

I have an assembly made up of x parts. Some of the values of these coins are controlled from the property board.

So since the assembly, I can intervene on each part to modify the values.

My concern is taking into account its new values, I am forced to open each piece one by one, do a ctrl+q  and then save this file, it's not cool.

Is there a solution to automate the Ctrl+Q on all the parts of my ASM.

Thank you.

May the force be with you.

 

Hello OBI WAN;

Have you tried CTRL+SHIFT+Q? It's supposed to force rebuilds in all configurations....
Be careful, in the description of this shortcut, Solidworks itself warns, I site, about "the considerable time" that these reconstructions can take.

Have you tried switching your assembly to Lite mode and then returning it to Resolved mode?

If that's not enough, I think we should move towards a macro.

Kind regards

Note: wouldn't you have double-posted by chance?....

3 Likes

 @Maclane

Thank you for your intervention  but it doesn't  work sniif.

possible that it is posted 2 times but when the post was created it did not appear in the news feed so I made a second post and curiously I only see one it's weird.

may the force be with you.

I found a macro in the solidworks API help to switch all the elements of an assembly between Lightweight mode and Resolved mode;
I deliver it as is: (be careful, the processing is very long for large assemblies).
To try.....

'-----------------------------------------------
' Preconditions:
' 1. Open an assembly.
' 2. Open the Immediate window.
'
' Postconditions:
' 1. Sets all assembly components to either
'    lightweight or fully resolved.
' 2. Examine the FeatureManager design tree
'    and Immediate window.
'----------------------------------------------
Option Explicit

Sub ProcessComponent(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swComp As SldWorks.Component2, swComponentSuppressionState As swComponentSuppressionState_e, sPadStr As String)

    Dim vChildCompArr As Variant
    Dim vChildComp As Variant
    Dim swChildComp As SldWorks.Component2
    Dim nRetVal As Long

    vChildCompArr = swComp.GetChildren
    For Each vChildComp In vChildCompArr
        Set swChildComp = vChildComp
        nRetVal = swChildComp.SetSuppression2(swComponentSuppressionState)
        Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & "> --> " & swChildComp.GetPathName
        ProcessComponent swApp, swModel, swChildComp, swComponentSuppressionState, sPadStr + "  "
    Next vChildComp

 End Sub

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swFeatMgr As SldWorks.FeatureManager
    Dim swConfigMgr As SldWorks.ConfigurationManager
    Dim swConfig As SldWorks.Configuration
    Dim swRootComp As SldWorks.Component2
    Dim bRet As Boolean
    Dim nSuppressState As Long
    Dim nResponse As Long

    nResponse = MsgBox("Set all components to lightweight or resolved (Yes = Lightweight; No = Resolved)?", vbYesNo)
    If nResponse = vbYes Then
        nSuppressState = swComponentLightweight
    Else
        nSuppressState = swComponentFullyResolved
    End If

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swFeatMgr = swModel.FeatureManager
    Set swConfigMgr = swModel.ConfigurationManager
    Set swConfig = swConfigMgr.ActiveConfiguration
    Set swRootComp = swConfig.GetRootComponent3(True)
    swFeatMgr.EnableFeatureTree = False

    Debug.Print "File = " & swModel.GetPathName

    ProcessComponent swApp, swModel, swRootComp, nSuppressState, "  "

    swFeatMgr.EnableFeatureTree = True

End Sub

Source: https://help.solidworks.com/2020/set_all_assembly_components_lightweight_or_resolved_example_vb.htm
I bet that our friends specialized in macro will be "happy" to adapt it to your needs....

Kind regards.

2 Likes

See if this SW2013 Macro still works because it seems to do the job.

https://www.3dcontentcentral.com/macros/Macro.aspx?id=191419


rebuildnsaveallparts.swp
3 Likes

 @sbadenis

Nickel the macro toner works it does the job it's exactly what  I needed.

a mystery solved.

Thank you to the participants , thank you forum.

may the force be with you.

 

1 Like

Hello 

I'm trying to follow, the property array is the equation tool, no! :S

1 Like

@ Lynk

Hello

Not the equations, I'm talking about the array of properties.

Look at the tutorial of our friend @a.Leblanc  it's interesting.

https://www.lynkoa.com/contenu/piloter-des-dimensions-avec-les-propri%C3%A9t%C3%A9s-personnalis%C3%A9es-de-pi%C3%A8ces-0

may the force be with you.

 

 

2 Likes

@OBI WAN I think @Lynk'm right, even if you go through the properties it creates an equation as soon as you put the = symbol in a hill.

Just look at the end of the previously cited tutorial by @a.leblanc, when he adds the deletion, he opens the equation window and we find the different values added previously.

1 Like

 @sbadenis

yes indeed  not wrong,  I meant that my values I type them in the array of properties which are actually related to the equations.

I use this way of doing things because we number the sheets to facilitate assembly. the 1 in front of the 1 ect...

So to enter the numbers from the assembly is much simpler and faster.

may the force be with you.

 

2 Likes

Hello @.

I didn't know that you could use the property form in such a way, thanks for the info. 

3 Likes