Funkcje parametrów — odniesienie (iLogic)

Aby uzyskać dostęp do funkcji parametrów, rozwiń węzeł Parametry na karcie System w obszarze Szablony kodu okna dialogowego Edycja reguły funkcji iLogic.

Parameter

Parametr("nazwaParametru")

Ta funkcja pozwala bezpośrednio zmieniać wartości parametrów.

W przypadku zespołów można uzyskać dostęp do parametrów w wyłączonych komponentach. Jeśli jednak komponent jest wyłączony, nie można uzyskać bezpośredniego dostępu do jego parametrów przy pomocy instrukcji przypisania, np.:

PartA.ipt.d12 = 6.3

Zamiast tego można użyć:

Parameter("PartA:1", "d12") = 6.3

Warto zauważyć, że określona została nazwa komponentu, a nie nazwa pliku. Chociaż w funkcji podany zostaje określony numer komponentu, zmiana parametru zachodzi we wszystkich przypadkach występowania wybranego komponentu. Nazwa komponentu służy wyłącznie do identyfikacji pliku przez funkcję.

Aby zachować nazwę komponentu w przypadku jego wymiany, należy ręcznie zmienić jego nazwę.

Można również skorzystać z funkcji MakePath w odniesieniu do nazwy komponentu:

Parameter(MakePath("SubAssem1:1", "Part1:1"), "d12") = 6.3
Uwaga: Użyj funkcji Parameter.ValueForEquals (zamiast Parameter), aby dowiedzieć się, czy wartość liczbowa parametru jest równa innej wartości z dokładnością do 6 miejsc dziesiętnych.

Aby uzyskać dodatkowe informacje, zapoznaj się z sekcją dotyczącą typu danych DoubleForEquals w temacie Rozszerzanie i dostosowywanie iLogic.

Bieżąca wartość parametru może zostać odczytana przy pomocy składni jednej z poniższych instrukcji:

param_val = Parametr("d0")

param_val = Parameter("PartA:1", "d0")

Jak pokazano na przykładach, parametr może się znajdować w bieżącym dokumencie. Można użyć nazwy dowolnego parametru, do którego reguła może uzyskać dostęp.

W komponencie, który nie został wyłączony, zamiast nazwy komponentu można określić nazwę pliku. Metoda ta pozwala zmienić parametry części bazowej, nie stanowiącej komponentu zespołu.

Parameter("PartA.ipt", "d12") = 6.3

Jeśli parametr nie został znaleziony, funkcja Parametr wyświetla komunikat o błędzie. Komunikat o błędzie można zawiesić w następujący sposób:

Parameter.Quiet = True

Skorzystaj z tej funkcji, jeśli wiesz, że parametr jest niedostępny i umiesz sobie poradzić z tą sytuacją.

Dostęp do parametrów części bazowych

Dostęp do parametrów części bazowej można uzyskać z części lub zespołu pochodnego. Dostęp do nich jest też możliwy z zespołu zawierającego część pochodną części bazowej.

W niektórych przypadkach korzystne może być utworzenie parametrów części bazowej na podstawie reguł zespołu. Technika ta jest określana jako modelowanie od góry do dołu. Gdy parametr bazowy zostaje zmieniony, zmianie ulegają również powiązane parametry we wszystkich częściach pochodnych.

Część wraz z jej parametrami nie zawsze jest widoczna w drzewie modelu w oknie dialogowym Edycja reguły. Dostęp do nich można uzyskać, korzystając z funkcji Parameter. Na przykład aby zmienić parametr części bazowej, można użyć:

Parameter("BaseShaft.ipt”, ”Diameter") = 0.125 in

Odczytywanie parametrów z części bazowej nie jest zwykle konieczne. Parametry są zazwyczaj przypisane do części lub zespołu, nad którym pracuje użytkownik.

Zaawansowane funkcje parametrów

Aby uzyskać bezpośredni dostęp do parametru programu Inventor, należy skorzystać z funkcji Parameter.Param. Zwrócony obiekt jest obiektem typu Parametr z interfejsu API programu Autodesk Inventor:

param = Parameter.Param("parameterName")
If (param IsNot Nothing) Then
param.Expression = "5.0 in"
param.Tolerance.SetToDeviation(0.002 * 2.54, -0.004 * 2.54)
param.Comment = "Equation and Tolerance set by a rule"
End If

Można również zastosować pojedynczy wiersz:

Parametr.Param("foo").Comment = "Komentarz ustanowiony wg reguły"

Dostęp do większej liczby właściwości parametru Autodesk Inventor można uzyskać, korzystając z poniższego przykładu:

param = Parameter.Param("parameterName")
param = Parameter.Param("componentName", "parameterName")

Te funkcje dadzą obiekt klasy Inventor.Parameter. Więcej informacji o tej klasie znaleźć można w plikach pomocy dotyczących programowania Inventor.

Funkcje wielowartościowe

Funkcje wielowartościowe umożliwiają dostęp do oraz zmianę list wartości przechowywanych w parametrach wielowartościowych. Ich zastosowanie przedstawiają poniższe przykłady:

MultiValue.SetList(“d0”, 0.5, 0.75, 1.0, 1.25)

Ustala listę dostępnych wartości dla parametru d0.

MultiValue.SetList(“d0”, “3/8”, “d1 * 2”, “d1 * 3”)

Ustala równania zamiast wartości. Dopuszczalne jest mieszanie równań i wartości na liście.

MultiValue.SetList(“filename.ipt.str0”, “Value1”, “Value2”)

Ustala listę wartości dla parametru tekstowego w części.

MultiValue.SetList(“Part1:1”, “d0”, 0.5, 0.75, 1.0, 1.25)

Ustala listę wartości parametru w komponencie.

values = MultiValue.List(“d0”)

Pobiera bieżącą listę wartości, gdzie zmienna values jest obiektem typu ArrayList środowiska VB.NET.

MultiValue.SetValueOptions(True, DefaultIndex := 0)

Wymusza na parametrze przyjęcie wartości znajdującej się na jego liście wielowartościowej. Jeśli następnie zostanie zmieniona lista wielowartościowa, ustala również bieżącą wartość parametru na jedną z wartości na liście. Wartość nie zostanie zmieniona, jeśli znajduje się również na nowej liście.

DefaultIndex := 0

Dotyczy to wyłącznie parametrów tekstowych. Jeśli bieżąca wartość parametru nie znajduje się na nowej liście, parametrowi przypisana zostaje pierwsza wartość na liście (Indeks 0). Można wybrać wartość różną od 0. Nie ma to wpływu na parametry numeryczne. Dla parametrów numerycznych wartość wybrana z listy będzie tą, która jest najbliższa bieżącej wartości.

MultiValue.SetValueOptions(False)

Podczas zmiany listy wielowartościowej parametru rzeczywista wartość parametru nie ulega zmianie. Jest to domyślne działanie funkcji MultiValue.

MultiValue.List(“MyStringParam”) = iProperties.Materials

Ustala parametr tekstowy dla listy wartości równoważnej z listą materiałów dostępnych w bieżącym aktywnym standardzie.

MultiValue.List(“d0”) = New Double() {0.5, 0.75, 1.0, 1.25}

Wykorzystuje alternatywną metodę ustalania listy wartości.

Przykłady, w których używane są wartości pobierane z programu Microsoft® Excel, można znaleźć w rozdziale opisującym funkcję GoExcel.CellValues.

MultiValue.UpdateAfterChange = True

Podobnie jak w przypadku ustawienia w parametrze Parameter.UpdateAfterChange wartości True, ta instrukcja powoduje aktualizację modelu programu Inventor po wprowadzeniu zmiany w wartości parametru przez funkcję Multivalue.List lub MultiValue.SetList.

Wartość True spowoduje aktualizację modelu (dokumentu) po zmianie parametru. Dzieje się tak tylko po zmianie parametrów za pomocą z funkcji Parameter:

Aby zaktualizować model w trakcie obowiązywania reguły (po zmianie niektórych parametrów) należy użyć tych dwóch instrukcji razem:
  • RuleParametersOutput()
    Uwaga: - Spowoduje przypisanie bieżących wartości lokalnych zmiennych parametru do modelu.
  • InventorVb.DocumentUpdate()
  • Jeśli nie ma konieczności aktualizacji modelu w trakcie obowiązywania reguły, można nakazać systemowi aktualizację po zakończeniu działania reguły. Skorzystaj z tej instrukcji: iLogicVb.UpdateWhenDone = True.

MultiValue.Quiet = True

Zawiesza komunikat o błędzie wyświetlony w sytuacji, gdy parametr nie został odnaleziony. Skorzystaj z tej funkcji, jeśli wiesz, że parametr jest niedostępny i umiesz sobie poradzić z tą sytuacją. Możliwe na przykład, że parametr istnieje tylko w niektórych częściach, do których zastosowanie ma wybrana reguła.

foundVal = MultiValue.FindValue(aList, "<=", 4.0)

Wynajduje na liście wartość najbliższą warunkowi. aList może być typu ArrayList lub Array. Argumentem do porównania może być "<=" "=" lub ">=".

Funkcja w poniższym przykładzie wyszukuje wartość mniejszą niż lub równą 4.0. Jeśli istnieje więcej niż jedna taka wartość, zwrócony zostanie wynik najbliższy 4.0. Jeśli nie istnieje wartość spełniająca kryterium, ta przykładowa funkcja zwraca stałą "Nothing" środowiska VB.

foundVal = MultiValue.FindValue(MultiValue.List("d0"), "<=", 4.0)

Warunek ten może zostać przetestowany.