Zrobiłem małe makro, aby wykluczyć wszystkie wybrane części z nomenklatury. (w trybie nagrywania)
Jedynym problemem jest to, że makro działa na wszystkie inne opcje w tej samej grupie (grupa5 na czerwono poniżej).
Oto kod (o ile dobrze pamiętam, musiałem usunąć wiersz z nazwą części)
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
Chcesz wybrać artykuły i uruchomić makro w taki sposób, aby te artykuły zostały wykluczone z zestawienia komponentów?
"A więc pytanie: czy możemy działać tylko na podstawie wykluczenia z nomenklatury? "
-> Chcesz wiedzieć, czy możesz zmienić właściwości komponentu bez zmiany innych ustawień?
W takim przypadku proponuję następującą modyfikację, która pobiera informacje o wybranej jednostce i dodaje te informacje do funkcji CompConfigProperties w celu modyfikacji tylko wyłączenia nomenklatury.
Od Ciebie zależy, czy sprawdzisz, czy działa tak, jak chcesz.
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
Logicznie rzecz biorąc, drugie rozwiązanie byłoby właściwe, aby zobaczyć, jak używać go w makrze tak, jak powinno. Nawet jeśli 1. jest innym realnym rozwiązaniem.
Załóżmy, że moje obecne makro działa, ponieważ 90% moich części jest zaprojektowanych w ten sam sposób.
Ale w przypadku części, w których umieściłem kilka konfiguracji, zmienia mi to te części w moim montażu w 1. konfiguracji (domyślnie) i nagle psuje montaż (wystarczy ponownie wybrać odpowiednią konfigurację).
W przeciwnym razie innym rozwiązaniem jest wybranie wierszy, które mają zostać wykluczone z tabeli nomenklatury.
Możesz również wypróbować program, który udostępniłem w samouczkach, jest TUTAJ, jest napisany w C#, ale jest również wykonalny w VBA i używam w nim funkcji "ExcludeFromBOM".