Funkcje komponentów — odniesienie (iLogic)

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.

Nadawanie nazw komponentom

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.

Component.IsActive

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

Component.iComponentIsActive

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.

Component.Color

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")

Component.Visible

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

Component.SkipDocumentSave

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.

Component.ActiveModelState

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”)

Component.Replace

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).

Ważne: Przed użyciem tej funkcji ustabilizuj nazwę komponentu, aby nie uległa zmianie podczas dokonywania zamiany. Aby ustabilizować nazwę komponentu, zmień ją na inną. Nowa nazwa nie może być taka sama, jak nazwa bieżącego pliku lub dowolnego z możliwych alternatywnych plików zastępczych. Zamiast tego powinien on mieć ogólną nazwę, która ogólnie opisuje komponent. Jeśli nazwa nie została ustabilizowana, operacja wymiany spowoduje zmianę komponentu, aby odpowiadał innej nazwie pliku. Sprawi to, że po ponownym uruchomieniu reguła nie odnajdzie komponentu.

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

Component.Replace (z określonym stanem modelu)

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.

Component.ReplaceiPart

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)

MakePath

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”