Użytkownik może użyć reguły, by zmienić bieżącą konfigurację części iPart lub zespołu iAssembly w oparciu o własnoręcznie zdefiniowane warunki i zasady.
Funkcje iPart i iAssembly odpowiadają za konfiguracje elementów iPart i iAssembly w zespole.
Funkcje te działają identycznie dla elementów iAssembly, jak dla elementów iPart, lecz parametry niestandardowe mają zastosowanie wyłącznie w przypadku części iPart. Aby użyć danej funkcji dla iAssembly, można zamienić iPart na iAssembly podczas określania funkcji.
Aby uzyskać dostęp do funkcji iPart i iAssembly, rozwiń węzeł iPart na karcie System w polu Szablony kodu okna dialogowego Edycja reguły funkcji iLogic.
Podobne funkcje są dostępne dla iFeatures. Więcej informacji można znaleźć w części Funkcje iFeature.
Zmienia aktywny wiersz w tabeli iPart lub iAssembly.
Składnia
iPart.ChangeRow("iChangedComponentName:1", "memberName")
"iChangedComponentName:1"
Nazwa komponentu identyczna z figurującą w przeglądarce zespołu Inventor. Zmień domyślną nazwę komponentu nadaną przez Inventor, aby ustabilizować nazwę i nie dopuścić do zmiany nazwy po wybraniu innego wiersza w tabeli.
"memberName"
Nazwa przypisana wierszowi w kolumnie Składnik.
W przypadku części iPart o parametrach niestandardowych użyj podanej składni, by stworzyć listę parametrów niestandardowych po "memberName". Kolejność parametrów powinna być taka, jak w tabeli:
iPart.ChangeRow("iChangedComponentName:1", "memberName", customParam1,customParam2)
Użyj podanej składni, by określić numer wiersza zamiast nazwy składnika. Numer wiersza jest liczbą całkowitą, począwszy od 1 dla pierwszego wiersza (wyłącznie dla standardowych części iPart):
iPart.ChangeRow("iChangedComponentName:1", rowNumber)
Przykład
W tym przykładzie bieżąca konfiguracja iPart jest zmieniana w oparciu o instrukcję warunkową oceniającą parametr użytkownika Inventor Port_1_Size. Funkcja ta wymaga wyłącznie nazwy komponentu iPart port_1_Flange_screw i nazwy Składnika tabeli iPart Screw-01, aby zdefiniować aktywną konfigurację iPart:
If Port_1_Size = .50 Then iPart.ChangeRow("port_1_flange_screw", "Screw-01") ElseIf Port_1_Size = .75 Then iPart.ChangeRow("port_1_flange_screw", "Screw-02") ElseIf Port_1_Size = 1.00 Then iPart.ChangeRow("port_1_flange_screw", "Screw-03") End If
Przeszukuje tabelę iPart lub iAssembly według kolumn w poszukiwaniu wiersza zawierającego określoną lub zbliżoną wartość i ustawia aktywną konfigurację w oparciu o znaleziony wiersz.
Składnia
i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=", 4.1,"|",customParam1,customParam2)
i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)
"i"
Lokalna zmienna mogąca służyć do przetestowania, czy odnaleziony został prawidłowy numer wiersza.
"iChangedComponentName:1"
Nazwa komponentu identyczna z figurującą w przeglądarce zespołu Inventor. Zmień domyślną nazwę komponentu nadaną przez Inventor, aby ustabilizować nazwę i nie dopuścić do zmiany nazwy po wybraniu innego wiersza w tabeli.
"columnName"
Kolumna do przeszukania w tabeli iPart. Nagłówek kolumny powinien być identyczny z widocznym w tabeli iPart.
Przykład
Ta przykładowa funkcja przeszukuje tabelę iPart w poszukiwaniu wiersza zawierającego wartości równe lub większe niż wartości wyznaczone. iLogic dostosowuje bieżącą konfigurację iPart do wyszukanego wiersza.
iPart.FindRow("port_1_flange_screw", "Thread_Diameter", ">=", 0.45, "Thread_Length", ">=", 2.0)
Funkcja ta odczytuje wartości w kolumnach dla wiersza wyszukanego przy użyciu iPart.FindRow. Funkcja może odczytać wyłącznie wartości numeryczne. Aby odczytać kolumny zawierające wartości tekstowe, użyj funkcji iPart.CurrentRowStringValue.
Składnia
d0 = iPart.CurrentRowValue("columnName")
Dowolna z poniższych funkcji wybiera bieżący wiersz:
iPart.FindRow lub iPart.ChangeRow.
"columnName"
Nagłówek żądanej kolumny w tabeli iPart.
Przykład
W tym przykładzie w kolumnie Port_Size tabeli iPart port_1_flare_flange szukamy dokładnej wartości odpowiadającej wartości parametru Port_1_Size programu Inventor. Po wyszukaniu wiersza używamy funkcji iPart.CurrentRowValue, aby pobrać wymiary z kolumn A_dim i B_dim tabeli. Następnie przypisujemy ich wartości parametrom programu Inventor o nazwach Port_1_screw_A_dim i Port_1_screw_B_dim:
i = iPart.FindRow("port_1_flare_flange", "Port_Size", "=", Port_1_Size) Port_1_screw_A_dim = iPart.CurrentRowValue("A_dim") Port_1_screw_B_dim = iPart.CurrentRowValue("B_dim")
Użyj podanej funkcji, by odczytać wartości w kolumnach dla wiersza wyszukanego przy użyciu funkcji iPart.FindRow. Funkcja ta przypomina funkcję iPart.CurrentRowValue, lecz odczytuje wyłącznie wartości tekstowe. Aby odczytać kolumny zawierające wartości numeryczne, użyj funkcji iPart.CurrentRowValue.
Składnia
iPart.CurrentRowStringValue("PartNumber")
Alternatywna składnia dla nazwy komponentu
Definiowanie nazwy komponentu, która nie ulega zmianie podczas zmiany wiersza iPart.
iPart.ChangeRow("iParentFileName:1", "memberName")
iPart.FindRow("iParentFileName:1","columnName","<=",d1,"columnName","<=",d2)
"iParentFileName:1"
Nazwa pliku macierzystego iPart, gdzie ":1" zastępuje zwyczajowe rozszerzenie .ipt lub .iam. Zmień ":1" na numer komponentu, nad którym pracujesz.
Nie zaleca się stosowania tej składni, choć jest ona obsługiwana. Metodą standardową jest zmiana nazwy komponentu w celu jej ustabilizowania.
Pobiera nazwę składnika aktywnego wiersza w wystąpieniu komponentu iPart lub iAssembly. Funkcja ta jest przydatna w regułach uruchamianych przez zdarzenie Zmień komponent iPart lub iAssembly. Użyj iPart.ChangeRow lub iPart.FindRow, aby automatycznie wybrać wiersz przy użyciu reguły. Aby pozwolić użytkownikowi na ręczny wybór wiersza, można połączyć zdarzenie z tą funkcją tak, aby nastąpiła reakcja na zmianę.
Składnia
iPart.RowName("iChangedComponentName:1")
Przykład
memberName = iPart.RowName("port_1_flange_screw:1")
Pobiera numer aktywnego wiersza w wystąpieniu komponentu iPart lub iAssembly.
Składnia
iPart.RowNumber("iChangedComponentName:1")
Przykład
rowNumber = iPart.RowNumber("port_1_flange_screw:1")
W połączeniu z funkcją iPart.FindRow funkcja ta pozwala na wyszukiwanie wartości należącej do wyznaczonego przedziału, a nie dokładnej wartości. W tym wyszukiwaniu zawsze stosowana jest tolerancja. Domyślna tolerancja wynosi 0.0000001 i nie jest zależna od jednostek w dokumencie.
Składnia
iPart.Tolerance = <wartość>
Ustala wyższą tolerancję, by powiększyć zakres dopuszczalnych wartości.
Przykład
Załóżmy, ze użyto następujących instrukcji:
iPart.Tolerance = 0.001 i = iPart.FindRow("Block:1","length", "=", 2.3)
Razem instrukcje te są równoważne z następującym wyszukiwaniem o zerowej tolerancji:
i = iPart.FindRow("Block:1", "length", ">=", 2.299, "length","<=", 2.301)
Aby zastąpić składnik iPart składnikiem pochodzącym z innego generatora, użyj funkcji Component.ReplaceiPart.