iLogic zawiera funkcje reguł pozwalające ustawić lub odczytać stan wyłączenia, stan modelu i kolor komponentów oraz funkcję służącą do zamiany jednego komponentu na inny.
Funkcje te pomagają obsługiwać różne konfiguracje części lub zespołów.
Użytkownik może stworzyć model (część lub zespół) zawierający komponenty odzwierciedlające wszystkie możliwe prawidłowe konfiguracje produktu. Metoda ta jest zwana „supermodelowaniem”. Jeśli części lub komponenty zespołu są zbyt złożone, a supermodelowanie staje się niepraktyczne, użyj funkcji Component.Replace.
Aby uzyskać dostęp do funkcji komponentów, rozwiń węzeł Komponenty (klasyczne) na karcie System w obszarze Szablony kodu okna dialogowego Edytor reguł iLogic.
Przed odniesieniem się do nazw komponentów w regule należy zmienić nazwy wszystkich komponentów na własne. Zmieniając nazwę domyślną komponentu przypisaną przez program Autodesk Inventor, należy upewnić się, że nie ulegnie ona zmianie, jeśli zmieni się nazwa pliku .ipt lub. iam, do której istnieje odniesienie.
W przypadku komponentu Content Center zmiana nazwy jest wymagana zarówno dla funkcji Component.IsActive, jak i dla funkcji Component.Replace.
Wybiera lub odczytuje stan wyłączenia i strukturę zestawienia komponentów dla komponentu zespołu. Funkcja ta pozwala włączyć lub wykluczyć komponent z konfiguracji zespołu.
Ta funkcja działa dla pojedynczych komponentów lub szyków komponentów. W przypadku szyków należy użyć nazwy szyku. Szyk musi się znajdować na tym samym poziomie zespołu, co reguła, a nie w podzespole.
Nie należy wyłączać podkomponentów. Lepszym rozwiązaniem jest wykonanie wyłączenia z reguły wewnątrz komponentu.
Przykładowo, zespół o nazwie ZespółGłówny zawiera Podzespół:1, z kolei ten podzespół zawiera CzęśćPrzykładową:1.
Użyj reguły wewnątrz Podzespołu, by wyłączyć CzęśćPrzykładową:1. Reguła ta może zawierać parametr wymuszający stan wyłączenia, zaś tym parametrem można sterować przy pomocy reguły w ZespoleGłównym.
Podczas korzystania z funkcji Component.IsActive w celu wyłączenia komponentu ustawienie opcji Struktura zestawienia komponentów komponentu jest zmieniane na Odniesienie. Dzięki temu nie pojawi się on w Zestawieniu komponentów. Jest widoczny w widoku Dane modelu, lecz nie w widoku Strukturalnym ani w widoku Tylko części. Jeśli komponent jest włączony (przy użyciu funkcji Component.IsActive), iLogic przywraca komponent do stanu sprzed wyłączenia (Normalny, Nierozłączny, Kupiony lub Pozorny).
Składnia
Component.IsActive("ComponentName")
Przykłady
Można użyć cyfry 1 zamiast wyrażenia Prawda i cyfry 0 zamiast wyrażenia Fałsz.
Wybór stanu wyłączenia i struktury zestawienia komponentów:
Component.IsActive("PartA:1") = false Component.IsActive("PartB:1") = 0 Component.IsActive("PartC:1") = false Component.IsActive("PartD:1") = 0
Odczyt stanu wyłączenia:
MyBooleanParam = Component.IsActive("ComponentName:1) If Component.IsActive("PartE") Then ' do something End If
Funkcja ta, będąca wariantem funkcji Component.IsActive, odczytuje lub wybiera stan wyłączenia komponentu iPart lub iAssembly. Jeśli użytkownik nie zmienił ręcznie nazwy komponentu, komponenty iPart i iAssembly wymagają zastosowania przedstawionej składni.
Zaleca się zmianę nazwy komponentu. Dzięki temu możliwe jest użycie funkcji Component.IsActive zamiast podanej.
Składnia
Component.iComponentIsActive(“iPartParentName:1”)
iPartParentName
Nazwa części fabrycznej bez rozszerzenia pliku .ipt.
Wybiera lub odczytuje kolor komponentu.
Składnia
Component.Color(“iPartA:1”)
Przykłady
Wybierz kolor:
Component.Color("iPartA:1") = "Green" Component.Color("iPartA:2") = "Aluminum (Cast)" Component.Color("iPartA:3") = "As Material"
Odczytaj kolor:
MyStringParameter = Component.Color("iPartA:1")
Wybiera lub odczytuje widoczność komponentu. Funkcja nie zmienia struktury zestawienia komponentów dla komponentu.
Składnia
Component.Visible("componentName")
Przykłady
Ustaw widoczność:
Component.Visible("Plate") = true Component.Visible("Bearing") = false
Odczytaj widoczność:
parameter = Component.Visible("Plate") parameter = Component.Visible("Bearing")
If Component.Visible("PartE") Then do something End If
Ustala, czy dokument komponentu jest zapisywany, jeśli został zmieniony a następnie wyłączony przez regułę.
Składnia
Component.SkipDocumentSave = True
Jeśli zastosowano ustawienie Prawda, dokument komponentu nie jest zapisywany.
Wartością domyślną jest Fałsz (Component.SkipDocumentSave = False); dokument komponentu zostanie zapisany.
Ustawia lub odczytuje aktywny stan modelu komponentu.
Składnia
Component.ActiveModelState(“ComponentName”)
Przykłady
Component.ActiveModelState(“PartA:1”) = “Model State2”
Dim partB1_state = Component.ActiveModelState(“PartB:1”)
Zastępuje jedną część lub podzespół innym. Funkcja ta może również służyć do zamiany szyków komponentów.
Aby zachować wiązania zespołu w niezmienionej postaci podczas zamiany komponentów, użyj iMates. Można wymieniać część na część, część na zespół lub zespół na część.
Ta funkcja przeszukuje kilka folderów w poszukiwaniu pliku, który ma zostać użyty jako plik zamienny:
Nazwą pliku może być relatywna ścieżka dostępu (względna w stosunku do jednej z przeszukiwanych lokalizacji).
Składnia
Component.Replace(“ComponentToReplaceName”, “OtherPartfilename.ipt”, <zamieńWszystko>)
ComponentToReplaceName
Nazwa wymienianej części lub podzespołu.
OtherPartfilename
Część lub podzespół zamienny.
<zamieńWszystko>
Wartość logiczna Prawda powoduje wymianę wszystkich wystąpień tego komponentu. Wartość Fałsz powoduje wymianę wyłącznie pojedynczego, nazwanego wystąpienia.
Przykład
If PartType = "Type A" Then Component.Replace("Widget","PartA.ipt", True) ElseIf PartType = "Type B" Then Component.Replace("Widget","PartB.ipt", True) End If
Wariant funkcji Component.Replace powoduje zamianę komponentu w zespole na inny komponent z określonym stanem modelu.
Składnia
Component.Replace("SubAssem:1", "OtherAssemFilename.iam<Model State>", <replaceAll>)
W tej funkcji argument <zamieńWszystko> jest identyczny jak argument opisany dla ogólniejszej funkcji Component.Replace.
Można również użyć tej funkcji do zastąpienia części lub podzespołu tą samą częścią lub podzespołem w innym stanie modelu. Jednak bardziej efektywne jest użycie funkcji Component.ActiveModelState.
Funkcja ta jest wymagana dla iPart z parametrami niestandardowymi oraz zalecana dla iPart w wersji standardowej. Jeśli komponent jest częścią iPart, należy jej użyć zamiast funkcji Component.Replace. Aby zmienić określoną konfigurację iPart po dokonaniu zamiany, można użyć funkcji iPart.ChangeRow lub iPart.FindRow.
W przypadku części iPart o parametrach niestandardowych użyj podanej składni, by stworzyć listę parametrów niestandardowych za numerem wiersza. Wartości muszą zachować kolejność identyczną z ich kolejnością w tabeli.
Składnia
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber)
Użyj funkcji rowNumber, aby jednocześnie wymienić komponent i wybrać wiersz iPart.
Przykłady
Aby wybrać niestandardowe parametry, powtórz niestandardowe wartości w Component.ReplaceiPart, a następnie ponownie w iPart.ChangeRow lub w iPart.FindRow w dalszej części reguły.
dla ChangeRow:
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) iPart.ChangeRow("iPart1:1", rowNumber, customParam1, customParam2)
dla FindRow:
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) i = iPart.FindRow("iPart1:1", "Dia", ">=", 3.0, "r;|", customParam1, customParam2)
Definiuje ścieżkę dostępu do nazwy komponentu w podzespole. Aby określić ścieżkę dostępu, wymień wszystkie poziomy podzespołu w kolejności, w której znajdują się w drzewie katalogów. Funkcja ta jest wymagana, aby wybrać nazwę komponentu, jeśli identyczna nazwa istnieje również w innym punkcie podzespołu.
Składnia
MakePath(“SubassemblyComponentName”,“PartComponentName”)
Przykłady
Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green” Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”