iPart- und iAssembly-Funktionen - Referenz (iLogic)

Sie können mithilfe selbst festgelegter Bedingungen eine Regel zum Ändern der aktuellen Konfiguration eines iParts oder einer iAssembly definieren.

Verwenden Sie iPart- und iAssembly-Funktionen, um iParts- und iAssembly-Konfigurationen in einer Baugruppe festzulegen.

Diese Funktionen lassen sich sowohl für iAssemblies als auch für iParts gleichermaßen einsetzen. Ausnahme: Benutzerdefinierte Parameter können nur in Verbindung mit iParts verwendet werden. Um eine iAssembly-Funktion verwenden zu können, haben Sie die Möglichkeit, iPart beim Festlegen der Funktion durch iAssembly zu ersetzen.

Erweitern Sie zum Öffnen der iPart- und iAssembly-Funktionen den Knoten iParts auf der Registerkarte System im Bereich Snippets des iLogic-Dialogfelds Regel bearbeiten.

Ähnliche Funktionen stehen in Verbindung mit iFeatures zur Verfügung. Weitere Informationen dazu finden Sie unter iFeature- Funktionen.

iPart.ChangeRow

Ändert die aktive Zeile in einer iPart- oder iAssembly-Tabelle.

Syntax

iPart.ChangeRow("iChangedComponentName:1", "memberName")

“iChangedComponentName:1”

Dies stellt den Namen der Komponente dar, wie er im Inventor-Baugruppenbrowser angezeigt wird. Ändern Sie den vom Inventor zugewiesenen Komponentennamen, um diesen zu stabilisieren, sodass er beim Auswählen einer anderen Tabellenzeile nicht geändert wird.

“memberName”

Name der Tabellenzeile in der Spalte Variante

Verwenden Sie bei einem iPart mit benutzerdefinierten Parametern die folgende Syntax, um die benutzerdefinierten Parameter nach "memberName" aufzuführen. Geben Sie sie in der gleichen Reihenfolge ein, in der sie in der Tabelle aufgeführt sind:

iPart.ChangeRow("iChangedComponentName:1", "memberName", customParam1,customParam2)

Verwenden Sie die folgende Syntax, um anstelle eines Variantennamens eine Zeilennummer anzugeben. Die Zeilennummer ist eine ganze Zahl. Die erste Zeile erhält die Zeilennummer 1 (nur bei Norm-iParts):

iPart.ChangeRow("iChangedComponentName:1", rowNumber)

Beispiel

In diesem Beispiel wird die aktuelle iPart-Konfiguration basierend auf einer Bedingung geändert, die zur Auswertung eines Inventor-Benutzerparameters Port_1_Size dient. Für diese Funktion ist nur der iPart-Komponentenname port_1_Flange_screw und der Variantenname aus der iPart-Tabelle Screw-01 erforderlich, um die aktive iPart-Konfiguration festzulegen:

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

iPart.FindRow

Durchsucht spaltenweise die iPart- oder iAssembly-Tabelle nach der Zeile, die einen bestimmten oder ungefähren Wert enthält, und legt die gefundene Zeile als aktive Konfiguration fest.

Syntax

i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=", 4.1,"|",customParam1,customParam2)

i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)

“i”

Eine lokale Variable, mit der überprüft werden kann, ob eine gültige Zeilennummer gefunden wurde

“iChangedComponentName:1”

Dies stellt den Namen der Komponente dar, wie er im Inventor-Baugruppenbrowser angezeigt wird. Ändern Sie den vom Inventor zugewiesenen Komponentennamen, um diesen zu stabilisieren, sodass er beim Auswählen einer anderen Tabellenzeile nicht geändert wird.

“columnName”

Dies stellt die zu durchsuchende Spalte in der iPart-Tabelle dar. Verwenden Sie den Namen der Spaltenüberschrift, wie er in der iPart-Tabelle angezeigt wird.

Beispiel

In diesem Beispiel wird eine iPart-Tabelle nach einer Zeile mit den Spaltenwerten durchsucht, die größer oder gleich den angegebenen Werten sind. iLogic tauscht die aktuelle iPart-Konfiguration durch die Konfiguration in der gefundenen Zeile aus:

iPart.FindRow("port_1_flange_screw", "Thread_Diameter", ">=", 0.45, "Thread_Length", ">=", 2.0)

iPart.CurrentRowValue

Nachdem Sie die gewünschte Zeile mithilfe der Funktion iPart.FindRow gefunden haben, werden die verknüpften Spaltenwerte aus dieser Zeile unter Verwendung dieser Funktion gelesen. Mit dieser Funktion können nur numerische Werte gelesen werden. Verwenden Sie zum Lesen von Spalten mit Text die Funktion iPart.CurrentRowStringValue.

Syntax

d0 = iPart.CurrentRowValue("columnName")

Die aktuelle Zeile lässt sich mithilfe folgender Funktionen festlegen:

iPart.FindRow oder iPart.ChangeRow

“columnName”

Der Name der gewünschten Spalte in der iPart-Tabelle

Beispiel

In diesem Beispiel wird in der Spalte Port_Size der iPart-Tabelle port_1_flare_flange nach dem genauen Wert gesucht, der mit dem Wert des Inventor-Parameters Port_1_Size übereinstimmt. Nachdem Sie die gewünschte Zeile gefunden wurde, wird iPart.CurrentRowValue verwendet, um die Bemaßungen aus den Tabellenspalten A_dim und B_dim abzurufen. Anschließend werden diese Werte den Inventor-Parametern Port_1_screw_A_dim und Port_1_screw_B_dim zugewiesen:

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

iPart.CurrentRowStringValue

Nachdem Sie die gewünschte Zeile mithilfe der Funktion iPart.FindRow gefunden haben, können Sie diese Funktion verwenden, um die verknüpften Spaltenwerte aus dieser Zeile zu lesen. Diese Funktion ist mit iPart.CurrentRowValue vergleichbar, mit der Ausnahme, dass nur aus Text bestehende Werte gelesen werden können. Verwenden Sie zum Lesen von Spalten mit numerischen Werten die Funktion iPart.CurrentRowValue.

Syntax

iPart.CurrentRowStringValue("PartNumber")

Alternative Syntax für den Komponentennamen

So geben Sie einen Komponentennamen ein, der nicht geändert wird, wenn die iPart-Zeile geändert wird

iPart.ChangeRow("iParentFileName:1", "memberName")

iPart.FindRow("iParentFileName:1","columnName","<=",d1,"columnName","<=",d2)

“iParentFileName:1”

Dies stellt den Namen der übergeordneten iPart-Datei dar, in dem ":1" normalerweise die IPT- oder IAM-Erweiterung ersetzt. Geben Sie für ":1" die Nummer der Komponente ein, an der Sie arbeiten.

Diese Syntax wird zwar unterstützt jedoch nicht empfohlen. Eine gängigere Methode ist die Änderung des Komponentennamens, um diesen zu stabilisieren.

iPart.RowName

Ruft den Variantennamen der aktiven Zeile in einem iPart- oder iAssembly-Komponentenexemplar auf. Diese Funktion ist nützlich für die Verwendung in Regeln, die durch das Ereignis iPart- oder iAssembly-Änderungskomponente ausgelöst werden. Verwenden Sie iPart.ChangeRow oder iPart.FindRow, um eine Zeile automatisch über eine Regel auszuwählen. Wenn der Benutzer in der Lage sein soll, eine Zeile manuell auszuwählen, können Sie dieses Ereignis mit dieser Funktion kombinieren, um auf die Änderung zu reagieren.

Anmerkung: Nach Verwendung dieser Funktion können Sie zum Abrufen der Werte aus anderen Zellen in der aktiven Zeile die Funktion iPart.CurrentRowValue oder iPart.CurrentRowStringValue verwenden.

Syntax

iPart.RowName("iChangedComponentName:1")

Beispiel

memberName = iPart.RowName("port_1_flange_screw:1")

iPart.RowNumber

Ruft die Zeilennummer der aktiven Zeile in einem iPart- oder iAssembly-Komponentenexemplar auf.

Anmerkung: Nach Verwendung dieser Funktion können Sie zum Abrufen der Werte aus anderen Zellen in der aktiven Zeile die Funktion iPart.CurrentRowValue oder iPart.CurrentRowStringValue verwenden.

Syntax

iPart.RowNumber("iChangedComponentName:1")

Beispiel

rowNumber = iPart.RowNumber("port_1_flange_screw:1")

iPart.Tolerance

In Verbindung mit der Funktion iPart.FindRow können Sie mit dieser Funktion nach einem Wert innerhalb eines Bereichs anstatt nach einem genauen Wert suchen. Bei dieser Suchmethode wird immer eine Toleranz angegeben. Der vorgegebene Toleranzwert beträgt "0.0000001" und ist unabhängig von den Dokumenteinheiten.

Syntax

iPart.Tolerance = <value>

Legen Sie einen höheren Toleranzwert fest, um den Bereich zulässiger Werte zu erweitern.

Beispiel

Wenn Sie die folgenden Anweisungen verwenden:

iPart.Tolerance = 0.001
i = iPart.FindRow("Block:1","length", "=", 2.3)

Diese Anweisungen ergeben zusammen die folgende Suche ohne Toleranzangabe:

i = iPart.FindRow("Block:1", "length", ">=", 2.299, "length","<=", 2.301)

Verwenden Sie zum Ersetzen einer iPart-Variante durch eine Variante aus einer anderen Teilefamilie die Funktion Component.ReplaceiPart.