Ik heb een kleine macro gemaakt om alle geselecteerde onderdelen uit de nomenclatuur uit te sluiten. (via opnamemodus)
Het enige probleem is dat de macro werkt op alle andere opties in dezelfde groep (groep 5 in rood hieronder).
Hier is de code (als ik het me goed herinner, moest ik een regel met een onderdeelnaam verwijderen)
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.CompConfigProperties5(2, 0, True, True, "Défaut<Brut d'usinage>", True, False)
boolstatus = Part.EditRebuild3()
End Sub
Dus u wilt onderdelen selecteren en de macro uitvoeren zodat die onderdelen worden uitgesloten van de stuklijst?
"Dus vraag: kunnen we alleen handelen op uitsluiten van de nomenclatuur?? "
-> Wilt u weten of u de eigenschappen van de component kunt wijzigen zonder de andere instellingen te wijzigen?
Als dit het geval is, stel ik de volgende wijziging voor, waarbij de informatie van de geselecteerde entiteit wordt opgehaald en deze informatie wordt toegevoegd aan de functie CompConfigProperties om alleen de uitsluiting van de nomenclatuur te wijzigen.
Het is aan jou om te zien of het werkt zoals jij dat wilt.
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelectionMgr As SldWorks.SelectionMgr
Dim swEntity As SldWorks.Entity
Dim swComponent As SldWorks.Component2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelectionMgr = swModel.SelectionManager
Set swEntity = swSelectionMgr.GetSelectedObject6(1, -1)
Set swComponent = swEntity.GetComponent
boolstatus = swModel.CompConfigProperties5(swComponent.GetSuppression, swComponent.Solving, swComponent.Visible, True, swComponent.ReferencedConfiguration, True, swComponent.IsEnvelope)
boolstatus = swModel.EditRebuild3()
End Sub
Logischerwijs zou de 2e oplossing de juiste zijn om te zien hoe het in de macro te gebruiken zoals het hoort. Zelfs als de 1e een andere haalbare oplossing is.
Laten we zeggen dat mijn huidige macro werkt, aangezien 90% van mijn onderdelen op dezelfde manier zijn ontworpen.
Maar in het geval dat voor de onderdelen waar ik meerdere configuraties heb geplaatst, het me in mijn montage van deze onderdelen in de 1e configuratie (standaard) verandert en plotseling de assemblage verbreekt (selecteer gewoon opnieuw de juiste configuratie).
Anders is de andere oplossing om de rijen te selecteren die moeten worden uitgesloten van de nomenclatuurtabel.
Je kunt ook een programma proberen dat ik beschikbaar heb gesteld in de tutorials, het is HIER, het is geschreven in C# maar het is ook te doen in VBA en ik gebruik de functie "ExcludeFromBOM" erin.