Ik doe een beroep op u omdat ik een probleem heb met het herbouwen van mijn onderdelen, leg ik uit. J
Ik heb een assemblage die bestaat uit x onderdelen. Een deel van de waarde van deze munten wordt gecontroleerd door het eigendomsbord.
Dus sinds de montage kan ik op elk onderdeel ingrijpen om de waarden te wijzigen.
Mijn zorg is om rekening te houden met de nieuwe waarden, ik ben gedwongen om elk stuk een voor een te openen, een ctrl + q te doen en vervolgens dit bestand op te slaan, het is niet cool.
Is er een oplossing om de Ctrl+Q op alle onderdelen van mijn ASM te automatiseren.
Heeft u geprobeerd CTRL+SHIFT+Q? Het wordt verondersteld om herbouwingen in alle configuraties te forceren.... Wees voorzichtig, in de beschrijving van deze sluiproute waarschuwt Solidworks zelf, i site, voor "de aanzienlijke tijd" die deze reconstructies in beslag kunnen nemen.
Heb je geprobeerd je assembly over te schakelen naar de Lite-modus en vervolgens terug te zetten naar de opgeloste modus?
Als dat nog niet genoeg is, denk ik dat we naar een macro moeten gaan.
Vriendelijke groeten
Let op: zou je niet toevallig dubbel hebben gepost?....
Dank u voor uw interventie , maar het werkt niet sniif.
mogelijk dat het 2 keer is gepost, maar toen het bericht werd gemaakt, verscheen het niet in de nieuwsfeed, dus ik heb een tweede bericht gemaakt en vreemd genoeg zie ik er maar één, het is raar.
Ik heb een macro gevonden in de solidworks API-hulp om alle elementen van een assembly te schakelen tussen de Lightweight-modus en de Resolved-modus; Ik lever het zoals het is: (wees voorzichtig, de verwerking is erg lang voor grote assemblages). Om te proberen.....
'-----------------------------------------------
' 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
@OBI WANdenk ik dat @Lynk gelijk heb, zelfs als je de eigenschappen doorneemt, maakt het een vergelijking zodra je het =-symbool in een heuvel zet.
Kijk maar naar het einde van de eerder geciteerde tutorial van @a.leblanc, wanneer hij de verwijdering toevoegt, opent hij het vergelijkingsvenster en vinden we de verschillende waarden die eerder zijn toegevoegd.