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.
Ä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
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)
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
iPart.ChangeRow
iPart.RowName
iPart.RowNumber
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")
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.
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.
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")
Ruft die Zeilennummer der aktiven Zeile in einem iPart- oder iAssembly-Komponentenexemplar auf.
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")
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.