So arbeiten Sie mit Funktionen für iLogic-Regeln

Erweitern Sie zum Öffnen der Parameterfunktionen im Bereich Snippets auf Registerkarte System den Knoten Parameter.

Parameter

Parameter("parameterName")

Mit dieser Funktion können die Parameterwerte direkt geändert werden.

In Baugruppen können Sie auf Parameter von abhängigen Komponenten zugreifen. Wenn jedoch eine Komponente abhängig ist, können Sie auf die Parameter nicht direkt mit einer Zuordnungsanweisung wie die folgende zugreifen:

PartA.ipt.d12 = 6.3

Stattdessen können Sie Folgendes verwenden:

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

Beachten Sie, dass statt eines Dateinamens ein Komponentenname angegeben wird. Obwohl Sie die Funktion mit einer bestimmten Komponentennummer versehen, wirkt sich die Parameteränderung auf alle Exemplare der Komponente aus. Der Komponentenname dient lediglich zur Identifizierung der Datei durch die Funktion.

Benennen Sie die Komponente manuell um, um den Namen beim ersetzen der Komponente zu erhalten.

Für den Komponentennamen können Sie auch die Funktion MakePath verwenden:

Parameter(MakePath("SubAssem1:1", "Part1:1"), "d12") = 6.3

Sie können den aktuellen Wert eines Parameters mithilfe der Syntax eines der folgenden Anweisungen lesen:

param_val = Parameter("d0")

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

Wie in diesen Beispielen dargestellt, können sich die Parameter im aktuellen Dokument befinden. Sie können den Namen eines beliebigen Parameters verwenden, auf den über eine Regel zugegriffen werden kann.

Bei einem nicht abhängigen Komponenten können Sie anstelle des Komponentennames den Dateinamen angeben: Verwenden Sie diese Methode zum Ändern eines Parameters in einem Basisbauteil, das nicht als Komponente in einer Baugruppe verwendet wird:

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

Wenn ein Parameter nicht gefunden werden konnte, wird durch die Funktion Parameter eine Fehlermeldung angezeigt. Sie können die Fehlermeldung unterdrücken, indem Sie die folgenden Schritte ausführen:

Parameter.Quiet = True

Verwenden Sie diese Option, wenn Sie wissen, dass der Parameter fehlt, und Sie darauf vorbereitet sind.

Auf Parameter von Basisbauteilen zugreifen

Sie können auf Parameter eines Basisbauteils über ein abgeleitetes Bauteil bzw. eine Baugruppe zugreifen. Sie können auf die Parameter auch über eine Baugruppe zugreifen, die ein vom Basisbauteil abgeleitetes Bauteil enthält.

Manchmal ist es hilfreich, Parameter eines Basisbauteil von Regeln einer Baugruppe abzuleiten. Dieses Verfahren wird als das sogenannte Top-Down-Modellieren bezeichnet. Wenn Sie einen Basisparameter ändern, werden auch die verknüpften Parameter aller abgeleiteten Bauteile geändert.

Bauteil und Parameter werden nicht immer in der Modellhierarchie im Dialogfeld Regel bearbeiten angezeigt. Sie können auf sie unter Verwendung der Funktion Parameter zugreifen. Gehen Sie beispielsweise zum Ändern eines Parameters eines Basisbauteils wie folgt vor:

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

In der Regel müssen Sie die Parameterwerte des Basisbauteils nicht lesen. Die Parameter sind bereits mit dem Bauteil oder der Baugruppe verknüpft, an dem bzw. an der Sie gerade arbeiten.

Erweiterte Parameterfunktionen

Verwenden Sie die Funktion Parameter.Param, um direkt auf einen Inventor-Parameter zuzugreifen. Das zurückgegebene Objekt hat den Typ Parameter aus der Autodesk Inventor-API:

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

Alternativ können Sie auch eine Zeile verwenden:

Parameter.Param("foo").Comment = "Comment set by a rule"

Mithilfe der folgenden Anweisungen können Sie auf weitere Eigenschaften eines Autodesk Inventor-Parameters zugreifen:

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

Durch diese Funktionen erhalten Sie ein Objekt der Klasse Inventor.Parameter. Weitere Informationen zu dieser Klasse finden Sie in der Inventor-Programmierungshilfe.

Multivalue-Funktionen

Verwenden Sie Multivalue-Funktionen, um auf die Liste der Werte zuzugreifen, die in einem Multivalue-Parameter gespeichert sind, oder um diese zu ändern. Folgende Beispiele veranschaulichen die die Verwendung der Funktionen:

MultiValue.SetList("d0", 0.5, 0.75, 1.0, 1.25)

Legt die Liste verfügbarer Werte für den Parameter d0 fest.

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

Legt anstatt von Werten Gleichungen fest. Die Liste darf sowohl aus Gleichungen als auch aus Werten bestehen.

MultiValue.SetList("filename.ipt.str0", "Value1", "Value2")

Legt eine Liste von Werten für einen Parameter eines Bauteils fest.

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

Legt eine Liste von Werten für einen Parameter einer Komponente fest.

Werte = MultiValue.List("d0")

Ruft die aktuelle Liste von Werten ab. Dabei ist die Variable values ein Objekt des VB.NET-Typs ArrayList.

MultiValue.SetValueOptions(True, DefaultIndex := 0, NumericCompare := “=”)

Erzwingt einen Parameterwert aus der Multivalue-Liste. Wenn Sie dann die Multivalue-Liste ändern, wird auch der aktuelle Parameterwert auf einen Wert aus der Liste gesetzt. Der Wert wird nicht durch diese Funktion geändert, wenn er bereits in der neuen Liste enthalten ist.

MultiValue.SetValueOptions(False)

Beim Ändern der Multivalue-Liste eines Parameters wird der aktuelle Wert des Parameters nicht geändert. Dies ist das normale Verhalten bei MultiValue.

MultiValue.List("MyStringParam") = iProperties.Materials

Legt eine Liste von Werten (z. B. eine Liste der Materialien, die für die aktive Norm verfügbar sind) für einen Textparameter fest.

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

Stellt eine alternative Methode zum Festlegen der Liste von Werten dar.

Beispiele für die Verwendung von Werten aus Microsoft® Excel finden Sie im Abschnitt zu GoExcel.CellValues.

MultiValue.UpdateAfterChange = True

Wie die Einstellung von Parameter.UpdateAfterChange auf True bewirkt diese Anweisung eine Aktualisierung des Inventor-Modells nach der Änderung eines Parameterwerts durch die Funktion MultiValue.List oder MultiValue.SetList.

Bei True wird das Modell (Dokument) nach einer Parameteränderung aktualisiert. Allerdings erfolgt die Aktualisierung nur nach einer Parameteränderung mit der Funktion Parameter:

Wenn das Modell noch während der Ausführung der Regel (nach der Änderung von Parametern) aktualisiert werden soll, müssen Sie die folgenden beiden Anweisungen gemeinsam verwenden:
  • RuleParametersOutput()
    Anmerkung: - Dadurch werden dem Modell die aktuellen Werte der lokalen Parametervariablen zugewiesen.
  • InventorVb.DocumentUpdate()
  • Muss das Modell nicht während der Ausführung der Regel aktualisiert werden, können Sie das System anweisen, die Aktualisierung nach Abschluss der Regel durchzuführen. Verwenden Sie dazu diese Anweisung: iLogicVb.UpdateWhenDone = True.

MultiValue.Quiet = True

Unterdrückt die Fehlermeldung, die angezeigt wird, wenn ein Parameter nicht gefunden wird. Verwenden Sie diese Funktion, wenn Sie wissen, dass der Parameter fehlt, und Sie darauf vorbereitet sind. Es ist beispielsweise möglich, dass der Parameter bei keinem Bauteil existiert, bei dem die Regel Anwendung findet.

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

Sucht in einer Liste nach einem Wert, der eine Bedingung am ehesten erfüllt. aList kann ein ArrayList oder ein Array sein. Das Argument für den Vergleich kann <=, = oder >= sein.

Im folgenden Beispiel wird ein Wert gesucht, der kleiner oder gleich 4.0 ist. Wenn mehr als ein Wert vorhanden ist, wird der Wert ausgegeben, der am nächsten zu 4.0 liegt. Wenn kein passender Wert vorhanden ist, wird in diesem Beispiel die VB-Konstante Nothing ausgegeben.

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

Sie können auf diese Bedingung hin prüfen.