Použijte funkce iSoučásti a iSestavy k řízení konfigurací iSoučásti a iSestavy v sestavě. K změně aktuální konfigurace iSoučásti nebo iSestavy můžete použít pravidlo podle podmínek a logiky, které definujete.
Tyto funkce fungují pro iSestavy stejným způsobem jako pro iSoučásti s výjimkou, že uživatelské parametry lze použít pouze pro iSoučásti. Když chcete použít funkci pro iSestavu, můžete volitelně nahradit iSoučást iSestavou, když funkci specifikujete.
Pro zpřístupnění funkcí iSoučásti a iSestavy rozbalte položku iSoučásti na kartě Systém v oblasti Fragmenty.
Pro iPrvky jsou k dispozici podobné funkce. Další informace jsou uvedeny ve Funkce iPrvku.
Provádí změnu aktivního řádku v tabulce iSoučásti nebo iSestavy.
Syntaxe
iPart.ChangeRow("iChangedComponentName:1", "memberName")
“iChangedComponentName:1”
Název komponenty, jak je zobrazen v prohlížeči sestavy aplikace Autodesk Inventor. Změnou výchozího názvu komponenty, přiřazeného aplikací Inventor, proveďte jeho stabilizaci, aby se nezměnil, když v tabulce zvolíte jiný řádek.
“memberName”
Název přiřazený řádku tabulky v sloupci členů.
Pro iSoučást s uživatelskými parametry použijte k uvedení parametrů do seznamu za položku "memberName" následující syntaxi. Uveďte je ve stejném pořadí v jakém jsou v tabulce.
iPart.ChangeRow("iChangedComponentName:1", "memberName", customParam1,customParam2)
Použijte tuto syntaxi k specifikování čísla řádku místo názvu členu. Číslo řádku je celé číslo začínající 1 pro první řádek (pouze pro standardní iSoučásti):
iPart.ChangeRow("iChangedComponentName:1", rowNumber)
Příklad
V tomto příkladu je změna aktuální konfigurace iSoučásti prováděna na základě podmíněného příkazu, který vyhodnocuje uživatelský parametr aplikace Inventor Port_1_Size. K řízení aktivní konfigurace iSoučásti tato funkce vyžaduje pouze název komponenty iSoučásti port_1_Flange_screw a název členu tabulky iSoučásti Screw-01:
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
V tabulce iSoučásti nebo iSestavy vyhledává po sloupcích řádek obsahující specifikovanou nebo přibližnou hodnotu a nastavuje nalezenému řádku aktivní konfiguraci.
Syntaxe
i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=", 4.1,"|",customParam1,customParam2)
i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)
„i”
Lokální proměnná, kterou lze použít k testování, zda je nalezeno platné číslo řádku.
“iChangedComponentName:1”
Název komponenty, jak je zobrazen v prohlížeči sestavy aplikace Inventor. Změnou výchozího názvu komponenty, přiřazeného aplikací Inventor, proveďte jeho stabilizaci, aby se nezměnil, když v tabulce zvolíte jiný řádek.
“columnName”
Vyhledat sloupec v tabulce iSoučásti. Použijte název záhlaví sloupce přesně, jak je uveden v tabulce iSoučásti.
Příklad
Tento příklad v tabulce iSoučásti vyhledává řádek s hodnotami sloupce, které jsou rovny nebo větší než specifikované hodnoty. Modul iLogic přesunuje aktuální konfiguraci iSoučásti do nalezeného řádku:
iPart.FindRow("port_1_flange_screw", "Thread_Diameter", ">=", 0.45, "Thread_Length", ">=", 2.0)
Po nalezení řádku pomocí iPart.FindRow tato funkce čte sdružené hodnoty sloupce z tohoto řádku. Tato funkce čte pouze číselné hodnoty. Ke čtení sloupců obsahujících textové hodnoty použijte iPart.CurrentRowStringValue.
Syntaxe
d0 = iPart.CurrentRowValue("columnName")
Všechny následující příkazy nastavují aktuální řádek:
iPart.FindRow nebo iPart.ChangeRow.
“columnName”
Název sloupce tabulky iSoučásti, který chcete.
Příklad
V tomto příkladu hledáme ve sloupci Port_size v tabulce iSoučásti port_1_flare_flange přesnou hodnotou, která se shoduje s hodnotou parametru aplikace Inventor Port_1_size. Po nalezení řádku použijeme funkci iPart.CurrentRowValue k vyhledání rozměrů ze sloupců tabulky A_dim a B_dim. Pak přiřadíme jejich hodnoty parametrům aplikace Inventor nazvaným Port_1_screw_a_dim a 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")
Po nalezení řádku pomocí funkce iPart.FindRow použijte tuto funkci ke čtení sdružených hodnot sloupce z tohoto řádku. Tato funkce je stejná jako iPart.CurrentRowValue s výjimkou, že čte pouze textové hodnoty. Ke čtení sloupců obsahujících číselné hodnoty použijte iPart.CurrentRowValue.
Syntaxe
iPart.CurrentRowStringValue("PartNumber")
Alternativní syntaxe pro název komponenty
Pro specifikování názvu komponenty, která se nemění, když se mění řádek iSoučásti.
iPart.ChangeRow("iParentFileName:1", "memberName")
iPart.FindRow("iParentFileName:1","columnName","<=",d1,"columnName","<=",d2)
“iParentFileName:1”
Název nadřazeného souboru iSoučásti, kde „:1“ nahrazuje obvyklou příponu .ipt nebo .iam. Změňte „:1“ na číslo komponenty, s kterou pracujete.
Ačkoliv je tato syntaxe podporovaná, nedoporučuje se. Obvyklejší metodou je změna názvu komponenty k jeho stabilizaci.
Získává název členu aktivního řádku v instanci komponenty iSoučásti nebo iSestavy. Tato funkce je užitečná v pravidlech spouštěných událostí Změnit komponentu iSoučásti nebo iSestavy. Pro automatickou volbu řádku z pravidla použijte příkaz iPart.ChangeRow nebo iPart.FindRow. Jestliže chcete povolit uživateli ruční volbu řádku, můžete spojit tuto událost s touto funkcí k provedení reakce na změnu.
Syntaxe
iPart.RowName("iChangedComponentName:1")
Příklad
memberName = iPart.RowName("port_1_flange_screw:1")
Získává číslo aktivního řádku v instanci komponenty iSoučásti nebo iSestavy.
Syntaxe
iPart.RowNumber("iChangedComponentName:1")
Příklad
rowNumber = iPart.RowNumber("port_1_flange_screw:1")
Když je tato funkce použita s funkcí iPart.FindRow, umožňuje vám vyhledávat hodnotu s určitým rozsahem spíše než vyhledávat přesnou hodnotu. U tohoto vyhledávání je vždy tolerance. Výchozí tolerance je 0,0000001 a nezávisí na jednotkách dokumentu.
Syntaxe
iPart.Tolerancei = <hodnota>
Nastavte větší toleranci pro zvětšení rozsahu přípustných hodnot.
Příklad
Předpokládejme, že použijete následující příkazy:
iPart.Tolerance = 0.001 i = iPart.FindRow("Block:1","length", "=", 2.3)
Společně se tyto příkazy rovnají následujícímu vyhledávání bez tolerance:
i = iPart.FindRow("Block:1", "length", ">=", 2.299, "length","<=", 2.301)
Pro výměnu členu iSoučásti za člen z jiné rodiny použijte funkci Component.ReplaceiPart.