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-Baugruppen-Browser 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 Bedingungsanweisung geändert, die zur Auswertung des Inventor-Benutzerparameters Port_1_Size dient. Für diese Funktion ist nur der iPart-Komponentenname port_1_Flange_screw und der Variantenname Screw-01 aus der iPart-Tabelle 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-Baugruppen-Browser 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 iPart.CurrentRowStringValue, um Spalten mit Textwerten zu lesen.

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 die 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, abgesehen davon, dass nur aus Text bestehende Werte gelesen werden können. Verwenden Sie iPart.CurrentRowValue, um Spalten mit numerischen Werten zu lesen.

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”

Der Name der übergeordneten iPart-Datei, in dem ":1" die übliche 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: Nachdem Sie diese Funktion verwendet haben, können Sie iPart.CurrentRowValue oder iPart.CurrentRowStringValue nutzen, um Werte anderer Zellen in der aktiven Zeile abzurufen.

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: Nachdem Sie diese Funktion verwendet haben, können Sie iPart.CurrentRowValue oder iPart.CurrentRowStringValue nutzen, um Werte anderer Zellen in der aktiven Zeile abzurufen.

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 Component.ReplaceiPart, um eine iPart-Variante durch eine Variante aus einer anderen Teilefamilie zu ersetzen.