Eine Funktion ist eine Anweisung, die in einem Programm ausgeführt wird. Die Anweisung kann aus Argumenten bestehen oder zu einer bestimmten Eingabe auffordern.
Funktionen werden in der Regel nach einer bestimmten Vorschrift aufgebaut, um das gewünschte Ergebnis zu erzielen. Eine Funktion ruft beispielsweise Informationen aus einer Datenbank ab. In der nächsten Funktion werden diese Daten bearbeitet. In der Regel hängt eine Funktion nicht vom übrigen Code in einem Programm ab.
iLogic bietet viele Funktionen, die in Regeln verwendet werden können. Funktionen werden in Kategorien eingeordnet.
Im Folgenden ist ein Beispiel aufgeführt, wie eine Funktion in einer Regel integriert werden kann:
returnValue = Category.FunctionName(argument1, argument2, ...)
Ein Argument kann eine Textzeichenfolge, ein Boolescher Wert (Wahr oder Falsch) oder eine Zahl sein.
Der Textzeichenfolgenwert wird in doppelte Anführungszeichen gesetzt. Beispiele für Zeichenfolgen: “ComponentName:1” und “Hole2”. Diese Zeichenfolgen werden als Argumente wie folgt in eine Funktion integriert:
returnValue = Category.FunctionName(“ComponentName:1”,“Hole2”)
Ein iLogic-Textparameter kann als ein Argument in einer Funktion verwendet werden, die eine Textzeichenfolge erfordert. Ein numerischer Inventor-Parameter kann als ein Argument in einer Funktion verwendet werden, die eine Zahl erfordert.
Ein Rückgabewert kann eine Textzeichenfolge, ein Boolescher Wert (Wahr oder Falsch) oder eine Zahl sein. Er stellt normalerweise den Wert dar, den Sie auf der Grundlage des Modells lesen oder abrufen möchten. Sie können den Rückgabewert testen oder einem Parameter oder einer lokale Variable in einer Regel zuweisen.
Einige Funktionen haben keinen Rückgabewert. In VB.NET wird diese Art der Funktion als Sub bezeichnet. Diese ändert oft das Modell. Beispiel:
Category.FunctionName(argument1, argument2, ...)
Ein weiterer Funktionstyp kann dazu verwendet werden, in das Inventor-Modell einen Wert zu schreiben oder diesem einen Wert zuzuweisen. In VB.NET wird diese Art der Funktion als Eigenschaft bezeichnet. Beispiel:
Category.FunctionName(argument1, argument2, ...) = value
In diesem Beispiel schreibt wird mit der Funktion der Wert in das Modell geschrieben.
Wie werden Funktionen in iLogic verwendet?
iLogic bietet Funktionen zum Ändern des Inventor-Modells oder zum Lesen von Modelldaten, um sie Ihnen auszugeben. Diese Funktionen stehen im Dialogfeld Regel bearbeiten als Code-Snippets zur Verfügung. Fügen Sie die Funktionen in Regeln (kleine Visual Basic-Programme) ein, die Sie für das Modell definieren. Wenn eine Regel ausgeführt wird, werden die in dieser Regel integrierten Funktionen ausgeführt.
Eine Funktion einer Regel hinzufügen
Sie können eine Funktion innerhalb einer Regel mithilfe der normalen Textbearbeitungsverfahren bearbeiten. Weitere Informationen zu bestimmten Methoden finden Sie in der Werkzeugleiste über dem Regeltextbereich oder im Kontextmenü.
Wenn Sie eine Funktion hinzufügen möchten, ist es manchmal schneller und effektiver, eine Kopie einer ähnlichen Funktion in einer Regel zu bearbeiten. Verwenden Sie zum Erstellen einer Kopie einer vorhandenen Funktion, die Sie bearbeiten möchten, die Option Kopieren/Einfügen.
Erweitern Sie zum Öffnen der Parameterfunktionen im Bereich Snippets auf Registerkarte System den Knoten Parameter.
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.3Beachten 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.3Sie können den aktuellen Wert eines Parameters mithilfe der Syntax eines der folgenden Anweisungen lesen:
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.3Wenn 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.
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 inIn 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 IfAlternativ 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.
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.
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.
Wenn der aktuelle Parameterwert nicht in der neuen Liste enthalten ist, wird der Parameter auf den ersten Wert (Index 0) in der Liste gesetzt.
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
Mit dieser Anweisung wird das Inventor-Modell sofort aktualisiert. (Alternativ können Sie auch Parameter.UpdateAfterChange auf True setzen.)
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)iLogic bietet Funktionen zum Lesen oder Festlegen von Elementunterdrückungsstatus, Farben und Gewindebezeichnungen.
Verwenden Sie die Elementfunktionen für Gewinde, um Eigenschaften von Gewindeelementen oder Gewindebohrungen zu lesen oder festzulegen. Diese Eigenschaften werden auch im Dialogfeld zur Bearbeitung eines Gewindeelements oder einer Gewindebohrung angezeigt.
Erweitern Sie zum Öffnen der Elementfunktionen im Bereich Snippets auf Registerkarte System den Knoten Elemente.
Feature.IsActive (mit Elementname)
Liest oder legt den Unterdrückungsstatus eines Bauteils oder eines Baugruppenelements fest. Verwenden Sie diese Funktion, um ein Element eines Inventor-Bauteils oder einer Inventor-Baugruppe zu unterdrücken oder dessen Unterdrückung aufzuheben. Wenn Sie den Aktivierungsstatus eines Elements ändern, werden auch die abhängigen Elemente geändert. Auf diese Weise ist es nicht mehr erforderlich, abhängige Elemente in Ihrer Regel anzugeben.
Wenn Sie den Namen eines Elements ändern, nachdem Sie die festgelegt haben Regel, die diese Funktion beinhaltet, muss die Regel bearbeitet werden. Ersetzen Sie den alten Namen durch den neuen Namen. Ändern Sie die Elementnamen (falls erforderlich), bevor Sie die Regeln festlegen.
Elementnamen müssen immer in Anführungszeichen gesetzt werden.
Feature.IsActive(“featurename”)
if bracket_width >= 3 then
Feature.IsActive("flange_hole_pattern") = true
Feature.IsActive("base_hole_pattern") = true
else
Feature.IsActive("flange_hole_pattern") = false
end ifFeature.IsActive (mit Komponenten- und Elementname)
Mit dieser Variante der Funktion Feature.IsActive wird der Unterdrückungsstatus der Elemente eines Bauteils oder einer Unterbaugruppe durch Angabe des Komponenten- und Elementnamens festgelegt oder gelesen. Verwenden Sie die folgende Syntax, um den Aktivierungsstatus der Elemente eines Bauteils mithilfe einer Regel auf Baugruppenebene zu steuern.
Feature.IsActive(“componentname”, “featurename”)
Unterdrückungsstatus festlegen:
Feature.IsActive("PartA:1", "Hole:1") = falseMyBooleanParameter = Feature.IsActive("PartA:1","Hole:1")Liest oder legt die Farbe eines Bauteilelements durch Angabe des Elementnamens fest. Diese Funktion kann nicht für Baugruppenelemente verwendet werden.
Der Farbwert ist eine Textzeichenfolge. Der Text muss in Anführungszeichen gesetzt werden. Die Farben müssen auch im Hinblick auf Schreibweise sowie Groß- und Kleinschreibung mit der aktiven Norm des aktuellen Autodesk Inventor-Dokuments übereinstimmen.
Feature.Color("Hole:1") = "Green"
Feature.Color("Hole:2") = "Aluminum (Cast)
"Feature.Color("Hole:3") = "As Material"MyStringParameter = Feature.Color("Chamfer:1")Lesen oder legen Sie die Farbe einer Unterbaugruppe oder eines Bauteilelements fest, indem Sie den Komponentennamen und Elementnamen angeben:
Feature.Color("componentName", "featurename")Liest oder legt die Gewindebezeichnung eines Gewindes in einem Bauteil- oder Baugruppendokument fest. Die Gewindebezeichnung ist eine Textzeichenfolge. Die Bezeichnung muss mit der genauen Zeichenfolge angegeben werden, die im Feld Bezeichnung des Dialogfelds zur Bearbeitung von Gewindeelementen angezeigt wird.
Geben Sie bei einem verjüngten Gewinde, den Wert ein, der im Feld Größe des Dialogfelds Gewinde angezeigt wird. Dieser Wert ist in der Regel eine verkürzte Version der vollständigen Gewindebezeichnung.
Feature.ThreadDesignation("featurename") = "<designation value>"
Verwenden Sie optional die folgende Syntax, um die aktuelle Gewindebezeichnung in dem Format anzuzeigen, der zum Festlegen dieser erforderlich ist:
threadDes = Feature.ThreadDesignation("Thread1")
Wenn Sie die Gewindebezeichnung für eine Bohrung mithilfe einer Regel festlegen, wird die Bohrungsgröße automatisch angepasst.
Im Falle einer Gewindestange können Sie mithilfe einer Regel gleichzeitig den Stangendurchmesser und die Gewindebezeichnung ändern. Der Stangendurchmesser muss mit der Gewindebezeichnung kompatibel sein.
If rod_type = "small" Then
Feature.ThreadDesignation("Thread1") = "3/8-16 UNC"
rod_diameter = 0.375
ElseIf rod_type = "large" Then
Feature.ThreadDesignation("Thread1") = "1/2-13 UNC"
rod_diameter = 0.500
End IfDie Gewindebezeichnung eines Gewindeelements in einem Bauteil- oder Baugruppendokument kann auch mithilfe einer Regel auf Baugruppenebene gelesen oder festgelegt werden. Geben Sie die Komponente oder den Dateiname und den Namen des Gewindeelements ein:
Feature.ThreadDesignation("PartA.ipt", "featurename") = "1/2-13UNC"Feature.ThreadDesignation("PartA:1", "featurename") = "1/2-13UNC"Nimmt wichtige Änderungen an einer Bohrung oder einem Gewindeelement vor. Legt den Typ, die Bezeichnung und die Klasse fest. Verwenden Sie diese Funktion, um zwischen einem metrischen und Zollgewinde zu schalten. Sie können nicht zwischen einem geraden und verjüngten Gewinde schalten.
Feature.SetThread("featurename", "thread type", "thread designation", "thread class")
Alternativ können Sie mit der folgenden Syntax wichtige Änderungen an einer Bohrung oder einem Gewindeelement einer Komponente vornehmen:
Feature.SetThread("componentName", "featurename", "thread type", "thread designation", "thread class")
Ruft die Gewindeart einer Bohrung oder eines Gewindeelements ab. Beispiele: "ANSI-genormte Schraubengewinde", "ANSI metrisches M-Profil" usw. Verwenden Sie zum Ändern der Gewindeart SetThread, und legen Sie gleichzeitig die Bezeichnung und die Klasse fest.
currentType = Feature.ThreadType("featurename")
Alternativ können Sie auch die folgende Syntax verwenden, um die Gewindeart einer Bohrung oder eines Gewindeelements einer Komponente abzurufen:
currentType = Feature.ThreadType("componentName", "featurename")
Legt die Gewindeklasse einer Bohrung oder eines Gewindeelements fest. Je höher die Zahl, desto höher der Grad der Genauigkeit.
Feature.ThreadClass("featurename") = "3B"
Verwenden Sie die folgende Syntax, um die Gewindeklasse einer Bohrung oder eines Gewindeelements abzurufen:
currentClass = Feature.ThreadClass("featurename")
Verwenden Sie die folgende Syntax, um die Gewindeklasse einer Bohrung oder eines Gewindeelements einer Komponente festzulegen:
Feature.ThreadClass("componentName", "featurename") = "3B"
Rufen Sie die Gewindeklasse einer Bohrung oder eines Gewindeelements einer Komponente ab.
currentClass = Feature.ThreadClass("componentName", "featurename")
iLogic bietet Regelfunktionen zum Festlegen oder Lesen des Unterdrückungsstatus und der Farben von Komponenten sowie eine Funktion zum Ersetzen einer Komponente durch eine andere. Diese Funktionen dienen zur Festlegung verschiedener Konfigurationen für Bauteilen oder Baugruppen.
Sie können ein Modell erstellen (Bauteil oder Baugruppe), das die zur Bereitstellung aller gültigen Konfigurationen eines Produkts erforderlichen Komponenten enthält. Diese Methode wird auch als Super-Modellieren bezeichnet. Verwenden Sie die Funktion Component.Replace, wenn die Bauteil- oder Baugruppenkomponenten zu komplex oder zu zahlreich sind und das Super-Modellieren sich als untauglich herausstellt.
Erweitern Sie zum Öffnen der Komponentenfunktionen im Bereich Snippets auf Registerkarte System den Komponentenknoten.
Passen Sie alle Komponentennamen an, bevor Sie sie in einer Regel verwenden. Durch Ändern des von Autodesk Inventor zugewiesenen Komponentennamens stellen Sie sicher, dass er beim Ändern einer referenzierten IPT- oder IAM-Datei nicht geändert wird.
Sie können wieder zurück zum ursprünglichen Namen der Komponente wechseln, ohne dass er durch andere Änderungen geändert werden kann. Zum Ändern der Komponente genügt eine geringfügige Änderung des Namens. Wechseln Sie anschließend wieder zurück zum ursprünglichen Namen.
Im Falle einer Inhaltscenter-Komponente ist eine Namensänderung für die Funktionen Component.IsActive und Component.Replace erforderlich.
Liest oder legt den Unterdrückungsstatus und die Stücklistenstruktur für eine Baugruppenkomponente fest. Verwenden Sie diese Funktion, um eine Komponente in eine Baugruppenkonfiguration aufzunehmen bzw. diese aus der Konfiguration auszuschließen.
Die Funktion kann bei einer Komponente oder einer Komponentenanordnungen angewendet werden. Verwenden Sie bei Anordnungen den Namen der Anordnung. Die Anordnung muss auf der gleichen Baugruppenebene wie die Regel sein, d. h. nicht in einer Unterbaugruppe.
Es dürfen keine untergeordneten Komponenten unterdrückt werden. Eine bessere Alternative ist die Unterdrückung mithilfe einer Regel innerhalb der Komponente.
Beispiel: Eine Baugruppe mit dem Namen ObersteBaugruppe enthält Unterbaugruppe:1. Diese Unterbaugruppe enthält Beispielbauteil:1.
Verwenden Sie eine Regel innerhalb Unterbaugruppe:1, um Beispielbauteil:1 zu unterdrücken. Diese Regel kann über einen Parameter verfügen, der den Unterdrückungsstatus festlegt. Diesen Parameter können Sie mit einer Regel in ObersteBaugruppe definieren.
Wenn Sie iLogic zur Unterdrückung einer Komponente verwenden, ist die Stücklistenstruktur der Komponente auf Referenz gesetzt. Dadurch wird verhindert, dass die Komponente in der Stückliste aufgeführt wird. Sie wird in der Modelldatenansicht jedoch nicht in den Ansichten Strukturiert oder Nur Bauteile angezeigt. Wenn die Unterdrückung der Komponente aufgehoben wird, wird die Komponente in iLogic auf den Status vor der Unterdrückung zurückgesetzt (Normal, Unteilbar, Gekauft oder Phantom).
Erstellen und aktivieren Sie vor der Verwendung einer iLogic-Regel zum Ändern des Unterdrückungsstatus einer Baugruppenkomponente eine neue benutzerdefinierte Detailgenauigkeit.
Component.IsActive("ComponentName")
Sie können 1 statt true und 0 statt false verwenden.
So legen Sie den Unterdrückungsstatus und die Stücklistenstruktur fest
Component.IsActive("PartA:1") = false
Component.IsActive("PartB:1") = 0
Component.IsActive("PartC:1") = false
Component.IsActive("PartD:1") = 0So lesen Sie den Unterdrückungsstatus und die Stücklistenstruktur
MyBooleanParam = Component.IsActive("ComponentName:1)
If Component.IsActive("PartE") Then
' do something
End IfMithilfe einer Variante der Funktion Component.IsActive kann der Unterdrückungsstatus einer iPart- oder iAssembly-Komponente gelesen oder festgelegt werden. Wenn Sie den Komponentennamen nicht manuell ändern, dann ist für die Verwendung von iParts und iAssemblies die folgende dafür vorgesehene Syntax erforderlich.
Es wird empfohlen, den Namen der Komponente zu ändern. Wenn Sie diesen Schritt ausgeführt haben, können Sie Component.IsActive statt dieser Funktion verwenden.
Liest oder legt die Farbe einer Komponente fest.
Component.Color("iPartA:1") = "Green"
Component.Color("iPartA:2") = "Aluminum (Cast)"
Component.Color("iPartA:3") = "As Material"MyStringParameter = Component.Color("iPartA:1")Liest oder legt die Sichtbarkeit einer Komponente fest. Diese Funktion ändern nicht die Stücklistenstruktur der Komponente fest.
Component.Visible("componentName")
Component.Visible("Plate") = true
Component.Visible("Bearing") = falseparameter = Component.Visible("Plate")
parameter = Component.Visible("Bearing")If Component.Visible("PartE") Then
do something
End IfLegt fest, ob ein Komponentendokument bei Änderungen gespeichert wird, und unterdrückt anschließend mithilfe einer Regel die Komponente.
Component.SkipDocumentSave = True
Wenn die Funktion auf True gesetzt ist, wird das Dokument nicht gespeichert.
Der Standardwert ist False (Component.SkipDocumentSave = False): Das Komponentendokument wird gespeichert.
Ersetzt ein Bauteil oder eine Unterbaugruppe durch ein anderes Bauteil bzw. eine andere Unterbaugruppe. Diese Funktion kann auch zum Ersetzen von Komponentenanordnungen verwendet werden.
Verwenden Sie iMates für Komponenten, die ausgetauscht werden, damit die Baugruppenabhängigkeiten erhalten bleiben. Sie können ein Bauteil durch ein anderes Bauteil oder eine Baugruppe sowie eine Baugruppe durch ein Bauteil austauschen.
Mit der Funktion wird in mehreren Verzeichnissen (Ordnern) nach der Datei gesucht, durch die ersetzt werden soll:
Der Dateiname kann ein relativer Pfad sein (relativ zu den zu durchsuchenden Speicherorten).
Component.Replace(“ComponentToReplaceName”, “OtherPartfilename.ipt”, <replaceAll>)
Der Name des Bauteils bzw. der Baugruppe, die ersetzt werden
Das Bauteil oder die Baugruppe, durch die ersetzt werden soll
Setzen Sie den Booleschen Wert auf True, um alle Instanzen dieser Komponente zu ersetzen. Setzen Sie den Wert auf False, um nur die angegebene Instanz zu ersetzen.
If PartType = "Type A" Then
Component.Replace("Widget","PartA.ipt", True)
ElseIf PartType = "Type B" Then
Component.Replace("Widget","PartB.ipt", True)
End IfComponent.Replace (mit angegebener Detailgenauigkeit)
Mit dieser Variante der Funktion Component.Replace wird die Komponente einer Baugruppe durch eine andere Komponente mit einer bestimmten Detailgenauigkeit ersetzt.
Component.Replace("SubAssem:1", "OtherAssemFilename.iam<Level of Detail>", <replaceAll>)
In dieser Funktion ist das Argument <replaceAll> mit dem Argument zu vergleichen, das im Zusammenhang mit der allgemeineren Funktion Component.Replace beschrieben wurde.
Sie haben auch die Möglichkeit, eine Unterbaugruppe durch die gleiche Unterbaugruppe mit einer anderen Detailgenauigkeit zu ersetzen.
Diese Funktion, die für iParts mit benutzerdefinierten Parametern erforderlich ist, wird auch für Norm-iParts empfohlen. Verwenden Sie diese Funktion anstelle von Component.Replace, wenn es sich bei der Komponente um ein iPart handelt. Nach dem Ersetzen können Sie iPart.ChangeRow oder iPart.FindRow verwenden, um die jeweilige iPart-Konfiguration zu ändern.
Geben Sie im Falle eines iParts mit benutzerdefinierten Parametern die Werte für die benutzerdefinierten Parameter nach rowNumber ein. Die Werte müssen in der Reihenfolge aufgeführt werden, in der sie in der Tabelle angezeigt werden.
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber)
Verwenden Sie rowNumber, um eine Komponente zu ersetzen und gleichzeitig eine iPart-Zeile auszuwählen.
Geben Sie zum Festlegen der benutzerdefinierten Parameter die benutzerdefinierten Werte erneut in Component.ReplaceiPart und später im Rahmen einer Regel in iPart.ChangeRow oder iPart.FindRow ein.
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2)
iPart.ChangeRow("iPart1:1", rowNumber, customParam1, customParam2)Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2)
i = iPart.FindRow("iPart1:1", "Dia", ">=", 3.0, "r;|", customParam1, customParam2)Definiert den Pfad eines Komponentennamens in einer Baugruppe. Führen Sie zum Festlegen des Pfads alle Baugruppenebenen in der Reihenfolge auf, in der sie in der Baumstrukturansicht erscheinen. Diese Funktion ist erforderlich, um einen Komponentennamen festzulegen, der bereits an einer anderen Stelle in der Baugruppe vorhanden ist.
MakePath(“SubassemblyComponentName”,“PartComponentName”)
Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green”
Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”iLogic bietet Regelfunktionen zum Festlegen oder Abrufen von iProperties eines Inventor-Bauteils oder einer Inventor-Baugruppe und von Zeichnungsdokumenten. Die Konfigurationen von Konstruktionen werden mithilfe von Regeln geändert. Daher müssen die iProperties der Konstruktionsdokumente aktualisiert werden. Die iProperties müssen zur Gewährleistung der Richtigkeit der Stückliste auf dem neuesten Stand sein. Regeln können auch zum Lesen der iProperty-Werte eines Dokuments und zum Einleiten entsprechender Maßnahmen verwendet werden. Sie können beispielsweise eine Regel bestimmen, die die Dicke eines Bauteils bei Änderung der Materialeigenschaft ändert. Eine Regel kann zum Einleiten von Änderungen verwendet werden, wenn die Masse eines Bauteils unter bzw. über dem Mindest- oder Höchstwert liegt. Jede iProperty, die manuell festgelegt werden kann, kann auch mithilfe einer Regel festgelegt oder gelesen werden.
Erweitern Sie zum Öffnen der iProperties-Funktionen im Bereich Snippets auf Registerkarte System den Knoten iProperties.
iProperties.Value("property tab name", "property name")
Liest oder legt einen Eigenschaftswert im Dokument mit der Regel fest.
iProperties.Value("filename.ipt", "property tab name", "property name")
Diese Funktion wird in einer Regel auf Baugruppenebene verwendet, um auf iProperties eines Bauteils oder einer Unterbaugruppe zuzugreifen.
Wenn der Dateiname des Bauteils oder der Unterbaugruppe geändert wird, muss auch der Regeltext geändert werden.
Verwenden Sie statt des Dateinamens am besten den angepassten Komponentennamen.
iProperties.Value("custom component name", "property tab name", "property name")
Liest oder legt die Eigenschaftswerte einer Komponente fest. In dieser Funktion wird statt des Dateinamens der Komponentenname verwendet. Passen Sie den Komponentennamen an (durch Änderung des ursprünglichen Standardnamens), sodass dieser nicht bei Änderung der Dateireferenz geändert wird.
iProperties.Value("Project", "Stock Number") = "302A"MyStringParam = iProperties.Value("Project", "Stock Number")Benutzerdefinierten iProperty-Wert festlegen:
iProperties.Value("Custom", "Age") = 41 'number type
iProperties.Value("Custom", "Company") = "Autodesk, Inc" 'text type
iProperties.Value("Custom", "Date") = CDate("11/1/2008") ' date type
iProperties.Value("Custom", "Insured") = true 'yes or no typeBenutzerdefinierten iProperty-Wert lesen:
age = iProperties.Value("Custom", "Age")
company = iProperties.Value("Custom", "Company")
thedate = CStr(iProperties.Value("Custom", "Date"))
insured = iProperties.Value("Custom", "Insured")Work_In_Progress = 1
Pending = 2
Released = 3
iProperties.Value("Status", "Design State") = PendingIn früheren iLogic-Versionen wurden zum Abrufen von iProperties aus Bauteilen in Baugruppen die folgenden Funktionen verwendet:
iProperties.ValueInDoc("filename.ipt", "property tab name", "property name")
iProperties.ValueInComponent("custom component name", "property tab name", "property name")
Referenziert den Komponentennamen.
Obwohl diese Funktionen nicht im Bereich Snippets des Dialogfelds Regel bearbeiten verfügbar sind, können Sie dennoch in einer Regel verwendet werden. Es wird jedoch empfohlen, die Funktion iProperties.Value anstelle der älteren Funktionen zu verwenden.
Diese Funktion unterstützt die Nutzung des gleichen Dokuments in verschiedenen Sprachversionen von Autodesk Inventor. Ihr Modell kann leichter übertragen werden, wenn Sie in einer Regel englische Namen für Materialien und Farben wählen. Wenn Sie diese Funktion auf True setzen, werden Material- oder Farbnamen in allen Funktionen in Englisch ausgegeben. Zum Festlegen eines Material- oder Farbnamens können Sie auch Namen in der Sprache Ihrer Installation von Autodesk Inventor wählen. Der Konsistenz wegen wird jedoch die Nutzung von englischen Namen empfohlen. Folgende Funktionen geben die Namen in Englisch aus, wenn Sie den Wert iProperties.StylesInEnglish auf True setzen:
Liest oder legt das Material eines Dokuments fest.
Verwenden Sie beim Festlegen eines Materials den genauen Namen des Materials, (Groß-/Kleinschreibung beachten) wie er in der Liste von aktiven Normen der physikalischen Materialien aufgeführt ist. Materialwerte sind immer Textzeichenfolgen, die in Anführungszeichen gesetzt werden.
So legen Sie das Material fest
iProperties.Material = "Gold"
MyStringParam = iProperties.Material
iProperties.Material(“filename.ipt”)
Liest oder legt das Material für ein Bauteil innerhalb einer Baugruppe durch Angabe des Dateinamens fest.
Liest oder legt die aktuelle Farbe eines Bauteils fest. Bauteilfarbwerte sind Textzeichenfolgen, die in Anführungszeichen gesetzt werden. Die Farbe kann ohne Auswirkungen auf den aktuellen Materialwert geändert werden.
Diese Funktion ist nur im Zusammenhang mit Bauteilen verfügbar.
iProperties.PartColor = "Green" iProperties.PartColor = "As Material"
MyStringParam = iProperties.PartColor
Liest oder legt die Masse des Bauteils oder der Baugruppe in einem Dokument fest, das die Regel enthält.
Wenn Sie einen Wert für die Masse eingeben, wird die berechnete Wert für die Masse überschrieben. Setzen Sie zur Wiederherstellung des berechneten Werts die Masse auf -1.
iProperties.Mass(“filename.ipt”)
Liest oder legt die Masse eines Bauteils oder einer Unterbaugruppe in einer Baugruppe durch Angabe des Dateinamens fest.
iProperties.Mass(“component name:1”)
Liest oder legt die Masse einer Komponente in einer Baugruppe durch Angabe des Komponentennamens fest. Diese Funktion kann auch zum Lesen oder Festlegen der Masse einer virtuellen Komponente verwendet werden.
MyMassParam = iProperties.Mass
MyMassParam = iProperties.Mass("component:1")
MyMassParam = iProperties.Mass("mypart.ipt")So legen Sie die Masse fest (Überschreiben der automatischen Berechnung)
iProperties.Mass = 3 kg
iProperties.Mass("virtual_component") = 233 g
iProperties.Mass("mypart.ipt") = 4.2 lb
massiProperties.Mass = -1 'set the mass back to automatic calculationLiest oder legt die Größe des Dokuments fest, das die Regel enthält.
iProperties.Volume(“filename.ipt”)
Liest oder legt durch Angabe des Dateinamens das Volumen des Bauteils oder der Baugruppe fest, die die Regel enthalten.
iProperties.Volume(“component:1”)
Liest oder legt das Volumen einer Komponente in einer Baugruppe durch Angabe des Komponentennamens fest. Diese Funktion kann auch zum Lesen oder Festlegen des Volumens einer virtuellen Komponente verwendet werden.
MyVolumeParam = iProperties.Volume
MyVolumeParam = iProperties.Volume("component:1")
MyVolumeParam = iProperties.Volume("mypart.ipt")So legen Sie das Volumen fest (Überschreiben der automatischen Berechnung)
iProperties.Volume = 12.4 in^3
iProperties.Volume("virtual_component") = 542 cm^3
iProperties.Volume("mypart.ipt") = 12.8 in^3
iProperties.Volume = -1 'set it back to automatic calculationLiest den Schwerpunkt des Modells im Dokument fest, das die Regel enthält.
pt = iProperties.CenterOfGravity
pt ist vom Typ Inventor.Point, der in der Hilfe zum Inventor-API beschrieben wird. Sie können die X-, Y- und Z-Werte des Punkts in den Einheiten des Regeldokuments ablesen:
cx = pt.X cy = pt.Y cz = pt.Z
pt = iProperties.CenterOfGravity("component")
Liest durch die Angabe des Komponentennamens den Schwerpunkt der Komponente in einer Baugruppe.
Funktionen für Excel-Datenverknüpfungen
iLogic bietet Regelfunktionen zum Lesen und Schreiben in Microsoft® Excel-Tabellen. Erweitern Sie zum Öffnen der Funktionen für Excel-Datenverknüpfungen im Bereich Snippets auf Registerkarte System den Knoten Excel-Datenverknüpfungen.
Es sind zwei Arten von Excel-Datenverknüpfungen verfügbar:
Fügen Sie zum Lesen und Schreiben in anderen Dateiformaten einen benutzerdefinierten VB.NET-Code Ihren Regeln hinzu.
Verwenden Sie die entsprechende Funktion ThisBOM.Export, um eine Baugruppen-Stückliste in Microsoft® Excel und in anderen Formaten zu exportieren.
Microsoft® Excel-Daten können in ein Autodesk Inventor-Dokument eingebettet, mit diesem verknüpft oder in einer externen Datei gespeichert werden. Für die Nutzung dieser Funktionen ist die Angabe des Dateinamens oder einer verknüpften oder eingebetteten Excel-Datei erforderlich.
Zum Festlegen eines Dateinamens können Sie einen relativen oder absoluten Pfad angeben. Bei Verwendung von absoluten Pfaden können jedoch beim Senden des Modells an einen anderen Benutzer an einem anderen Computer Schwierigkeiten entstehen. Wenn kein Pfad angegeben wird, wird in iLogic davon ausgegangen, dass sich das Excel-Dokument im demselben Ordner befindet, in dem das aktuelle Inventor-Dokument gespeichert ist. Ein relativer Pfad bezieht sich auf den Ordner, der das Inventor-Dokument enthält.
iLogic sucht auch unter dem Arbeitsbereich-Projektpfad nach der Datei. Sie können als relativen Pfad einen Pfad unter dem Arbeitsbereich-Projektpfad verwenden.
Zu den unterstützten Dateinamenerweiterungen zählen .xls, .xlsx, .xlsm und.xlsb.
Sie können anstelle eines Dateinamens auch ein verknüpftes oder eingebettetes Arbeitsblatt angeben. Verwenden Sie bei eingebetteten Arbeitsblättern die Syntax 3rd Party:Embedding#.
Verwenden Sie bei verknüpften Arbeitsblättern die Syntax 3rd Party:LinkedName.xls. Geben Sie unter Autodesk Inventor den Namen an, der in der Baumstruktur des Autodesk Inventor-Modells angezeigt wird.
Verwenden Sie zum Einbetten einer Tabelle die Option Verknüpfen des Dialogfelds Parameter. Ändern Sie nicht den Namen der eingebetteten Tabelle, der von Autodesk Inventor standardmäßig festgelegt wurde (z. B. Embedding 1). Bei GoExcel ist der ursprüngliche Name erforderlich.
Klicken Sie zum Verknüpfen einer Datei auf 
, oder wählen Sie im Dialogfeld Parameter die Option Verknüpfung.
Sucht nach einer Zeile anhand einer oder mehrerer Spaltenwertkriterien.
GoExcel.FindRow("filename", "sheetname", "first column title", "operator", value to look for, "second column title", "operator", value to look for, "third column title",...)
Das Arbeitsblatt im Excel-Dokument, das die zu durchsuchende Tabelle enthält: Das Arbeitsblatt kann ein beliebiges, bereits vorhandenes Arbeitsblatt sein.
Der Titel der ersten Spalte in der Tabelle, die durchsucht werden soll: Spaltentitel befinden sich in der Regel in Zeile 1 beginnend bei Spalte A.
Sucht nach einer Zeile mit einem Spaltenwert, der kleiner oder gleich dem angegebenen Wert ist.
Sucht nach einer Zeile mit einem Spaltenwert, der größer oder gleich dem angegebenen Wert ist.
Sucht nach einer Zeile mit einem Text oder einer Zahl als Spaltenwert, der dem angegebenen Wert entspricht.
Ein Textwert oder ein numerischer Wert, der durch einen genauen Wert, einen Parameter oder eine lokale Variable angegeben wird
Der Titel der zweiten Spalte in der zu durchsuchenden Tabelle
Sucht eine Zeile auf der Grundlage mehrerer Kriterien.
Die Zeilennummer (eine ganze Zahl), die die Suchkriterien erfüllt: Der Wert beträgt -1, wenn keine passende Zeile gefunden wurde.
In den folgenden Beispielen wird der Wert der Parametervariable i auf die Anzahl der Zeilen in der Tabelle festgelegt. Dia ist gleich 0.2 und Len ist größer als oder gleich 4.1. Im ersten Beispiel wird auf ein externes und im zweiten Beispiel auf ein eingebettetes Arbeitsblatt verwiesen.
i = GoExcel.FindRow("mytable.xls", "Sheet1", "Dia", "=", 0.2, "len", ">=",4.1)i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "Dia", "=", 0.2, "len",">=", 4.1)
In diesen Beispielen wird die erste Bedingung Dia=.2 in Zeile 5, 6 und 7 erfüllt. Die Kriterien Dia=.2 und len>=4.1 werden jedoch nur in Zeile 7 erfüllt.
Liest mithilfe der Funktion GoExcel.FindRowden Wert in einer gefundenen Zeile.
GoExcel.CurrentRowValue("column name")
Spaltentitel als Zellenwert zum Abrufen aus der aktuellen Zeile
Zellenwert aus der Spalte der aktuellen Zeile, die zuvor mithilfe der Funktion GoExcel.FindRow gefunden wurde
Gibt eine Fehlermeldung aus, wenn die Spalte nicht gefunden werden konnte.
i = GoExcel.FindRow("iLogic_SCHS.xls", "Sheet1", "thread_diameter", "=", Screw_Size, "screw-length", ">=",
screw_length_required)
thread_diameter = GoExcel.CurrentRowValue("thread_diameter")
screw_length = GoExcel.CurrentRowValue("screw_length")
head_diameter = GoExcel.CurrentRowValue("head_diameter")
head_thickness = GoExcel.CurrentRowValue("head_thickness")
socket_size = GoExcel.CurrentRowValue("socket_size")
thread_pitch = GoExcel.CurrentRowValue("thread_pitch")Liest oder schreibt Werte in die Zellen eines Arbeitsblatts.
GoExcel.CellValue("filename", "sheetname", "cellnumber")
Informationen dazu finden Sie im Abschnitt zum Angeben einer Excel-Datei.
Name des Arbeitsblatts im Excel-Dokument, das die Zielzelle enthält. Das Arbeitsblatt kann ein beliebiges, bereits vorhandenes Arbeitsblatt sein.
Die Zelladresse, die gelesen oder in die geschrieben werden soll (z. B. A7). Im Arbeitsblatt haben Sie auch die Möglichkeit, einen benannten Bereich anzugeben.
Excel-Tabellenformatanforderungen
Der Zellwert kann aus einem Text oder einer Zahl bestehen.
Ein eingebettetes Arbeitsblatt lesen:
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")In ein eingebettetes Arbeitsblatt schreiben:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_radEin externes Arbeitsblatt lesen:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5")
message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")In ein externes Arbeitsblatt schreiben:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World"
GoExcel.SaveGoExcel.CurrentCellValue, GoExcel.CellValue
Liest oder schreibt in eine Zelle mit einer bestimmten Zelladresse in einem Arbeitsblatt nach Verwendung der Funktion GoExcel.CellValue oder GoExcel.Open. Diese Funktion verwendet die Datei und das Arbeitsblatt, die zuvor geöffnet wurden.
GoExcel.CurrentCellValue("cellnumber")
GoExcel.CellValue("cellnumber") (without specifying a filename and sheet name)
Zelladresse oder der benannte Bereich eines Zellwerts, die im aktuellen Arbeitsblatt gelesen oder in dieses geschrieben werden sollen.
Der Zellwert der Zelle mit der angegebenen Zellennummer
Mehrere Zellen in einem Arbeitsblatt lesen:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1")
head_thick = GoExcel.CellValue("B1")
pin_length = GoExcel.CellValue("C1")
shaft_rad = GoExcel.CellValue("D1")In mehrere Zellen in einer Tabelle schreiben:
GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") = head_rad
GoExcel.CellValue("B1") = head_thick
GoExcel.CellValue("C1") = pin_length
GoExcel.CellValue("D1") = shaft_rad
GoExcel.SaveDiese Funktion erfüllt den gleichen Zweck wie Funktion CellValue. Geben Sie anstelle einer Zelladresse einen benannten Bereich in der definierten Excel-Arbeitsmappe an. Der Name sollte bereits in der Arbeitsmappe enthalten sein, und der Bereich darf nicht mehr als eine Zelle umfassen. Sie können auf die benannten Bereiche eines Arbeitsblatts zugreifen, indem Sie anstelle einer Zelladresse die standardmäßige Syntax CellValue verwenden.
Verwenden Sie zum Öffnen einer Excel-Datei die Funktionen GoExcel.CellValue oder GoExcel.Open, bevor Sie NamedRangeValue in eine Regel integrieren.
Öffnet die angegebenen Excel-Tabelle und aktiviert (optional) ein benanntes Arbeitsblatt. Anschließend können Sie mit Funktionen wie GoExcel.FindRow und GoExcel.CellValue die enthaltenen Informationen extrahieren oder das Arbeitsblatt ändern.
GoExcel.Open("filename", “sheetname”)
Informationen dazu finden Sie im Abschnitt zum Angeben einer Excel-Datei.
Name eines Excel-Arbeitsblatts, das aktiviert werden soll: Das Arbeitsblatt kann ein beliebiges, bereits vorhandenes Arbeitsblatt sein.
Excel-Datei konnte nicht gefunden werden.
Wenn kein Name angegeben wird, wird der Name Blatt1 vergeben.
GoExcel.Open("Spreadsheet.xls")Sie können auch ein zusätzliches Arbeitsblatt angeben.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")Speichert das aktuelle Excel-Dokument. Verwenden Sie diese Funktion, wenn Zellen mithilfe der Funktion GoExcel.CellValue oder GoExcel.CurrentCellValue geändert haben.
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!"
GoExcel.CellValue("A2") = 5.42
GoExcel.SaveDiese Funktion dient zwei Zwecken:
Sie können die Werte in Zellen lesen, die in einem senkrecht ausgerichteten Bereich enthalten sind. Mit der Funktion werden die Werte von oben nach unten beginnend in der ersten Zelle bis zum Wert in der zweiten Zelle gelesen, die in der Funktion angegeben wurde:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")Wenn die zweite Zelladresse aus einer leeren Zeichenfolge besteht (""), werden die Zellwerte bis zur nächsten leeren Zelle gelesen:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")Sie können die Werte in Zellen lesen, die in einem horizontal ausgerichteten Bereich enthalten sind.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")Wenn auf das Arbeitsblatt zuvor innerhalb einer Regel verwiesen wurde, müssen der Dateiname und der Name des Arbeitsblatts nicht mehr angegeben werden:
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")In eine Excel-Tabelle schreiben
Werte können in Zellen in einem senkrecht ausgerichteten Bereich geschrieben werden. Mit der Funktion werden die Werte von oben nach unten beginnend in der ersten Zelle bis zur zweiten Zelle geschrieben, die in der Funktion angegeben wurde:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")Werte können in Zellen in einem senkrecht ausgerichteten Bereich geschrieben werden. Wenn die zweite Zelladresse aus einer leeren Zeichenfolge besteht (""), wird von iLogic die Anzahl an Zellen verwendet, die erforderlich ist, um alle Werte der Multivalue-Liste einzutragen:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")Werte können in Zellen in einem horizontal ausgerichteten Bereich geschrieben werden.
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")Wenn auf das Arbeitsblatt zuvor innerhalb einer Regel verwiesen wurde, müssen der Dateiname und der Name des Arbeitsblatts nicht mehr angegeben werden:
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")Wird vor der Funktion GoExcel.FindRow verwendet, um die Anzahl der Zeilen in der Tabelle anzugeben, in der die Spaltennamen enthalten sind. Die Standardzeilenanzahl ist 1. Ändern Sie diesen Wert, wenn über der Zeile mit dem Spaltennamen noch weitere Zeilen vorhanden sind.
GoExcel.TitleRow = 2
Wird vor der Funktion GoExcel.FindRow verwendet, um die Nummer der ersten Zeile in der Tabelle anzugeben, die Daten enthält. Die Standardzeilennummer ist 2.
Die erste Zeile, in der Daten angezeigt werden
Der Standardwert von 2 gibt an, dass die erste Zeile, die Daten enthält, Zeile 2 ist und eine Zeile nach der Titelzeile folgt:
GoExcel.FindRowStart = 2
Wenn Sie zwei Titelzeilen haben, fügen Sie die folgende Anweisung der Regel vor der Stelle hinzu, an der die Anweisung mit GoExcel.FindRow aufgeführt wird:
GoExcel.FindRowStart = 3
Bietet einen Zugriff auf die Option Quelle ändern von einer iLogic-Regel aus.
Diese Funktion ersetzt eine Excel-Tabelle, die aktuell das Modell festlegt, durch eine andere Tabelle. Die Bemaßungen des Modells werden dann durch die Werte in der neuen Tabelle festgelegt.
changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName)
Teil des Tabellennamens, der ersetzt werden soll.
partialOldName kann eine leere Zeichenfolge "" sein. In diesem Fall wird die erste verknüpfte Excel-Datei verwendet. Häufig liegt für ein Bauteil oder eine Baugruppe nur eine Excel-Datei vor.
Der vollständige neue Tabellenname (absoluter oder relativer Dateiname)
If size = "small" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe"," smallpipe.xlsx")
ElseIf size = "medium" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe", "mediumpipe.xlsx")
ElseIf size = "large" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe", "largepipe.xlsx")
End IfWird in Verbindung mit der Funktion GoExcel.FindRow verwendet, um nach einem Wert in einem bestimmten Bereich statt nach einem genauen Wert zu suchen. Der vorgegebene Toleranzwert beträgt "0.0000001" und ist unabhängig von den Dokumenteinheiten.
GoExcel.Tolerance = <tolerance>
Legen Sie einen höheren Toleranzwert fest, um den Bereich zulässiger Werte zu erweitern.
Verwenden Sie die Anweisung, um folgende Suche auszuführen:
GoExcel.Tolerance = 0.001
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)Die Anweisung ist vergleichbar mit folgendem Suchvorgang ohne die Angabe eines Toleranzwerts:
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)Verhindert die Anzeige der Dialogfelder mit Eingabeaufforderung.
Zeigt die Microsoft® Excel Eingabeaufforderungen an(Standardeinstellung).
iPart- und iAssembly-Funktionen
Verwenden Sie iPart- und iAssembly-Funktionen, um iParts- und iAssembly-Konfigurationen in einer Baugruppe festzulegen. Sie können mithilfe selbst festgelegter Bedingungen eine Regel zum Ändern der aktuellen Konfiguration eines iParts oder einer iAssembly definieren.
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 im Bereich Snippets auf Registerkarte System den Knoten iParts.
Ä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.
iPart.ChangeRow("iChangedComponentName:1", "memberName")
Dies stellt den Namen der Komponente dar, wie er im Autodesk 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.
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)
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 IfDurchsucht 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.
i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=", 4.1,"|",customParam1,customParam2)
i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)
Eine lokale Variable, mit der überprüft werden kann, ob eine gültige Zeilennummer gefunden wurde
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.
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.
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 zum Lesen von Spalten mit Text die Funktion iPart.CurrentRowStringValue.
d0 = iPart.CurrentRowValue("columnName")
Die aktuelle Zeile lässt sich mithilfe folgender Funktionen festlegen:
iPart.FindRow oder iPart.ChangeRow
Der Name der gewünschten Spalte in der iPart-Tabelle
In diesem Beispiel wird in Spalte Port_Size der iPart-Tabelle port_1_flare_flange nach einem bestimmten 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")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 der Ausnahme, dass nur aus Text bestehende Werte gelesen werden können, mit iPart.CurrentRowValue vergleichbar. Verwenden Sie zum Lesen von Spalten mit numerischen Werten die Funktion iPart.CurrentRowValue.
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)
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.
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.RowName("iChangedComponentName:1")
memberName = iPart.RowName("port_1_flange_screw:1")Ruft die Zeilennummer der aktiven Zeile in einem iPart- oder iAssembly-Komponentenexemplar auf.
iPart.RowNumber("iChangedComponentName:1")
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.
Legen Sie einen höheren Toleranzwert fest, um den Bereich zulässiger Werte zu erweitern.
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.
Verwenden Sie die iFeature-Funktionen, um eine Zeile in einem tabellengetriebenem iFeature auszuwählen. Jede Zeile enthält eine Reihe an Parameterwerten zum Festlegen des iFeature.
iFeature-Funktionen werden innerhalb eines Bauteils verwendet, in dem das iFeature platziert ist (Instanz). Die Syntax stimmt mit der Syntax der Funktionen GoExcel und iPart überein.
Erweitern Sie zum Öffnen der iFeature-Funktionen im Bereich Snippets auf Registerkarte System den Knoten iFeatures.
Ändert die aktive Zeile eines tabellengetriebenen iFeature.
iFeature.ChangeRow("iFeatureName", "rowName")
Der in der Modellhierarchie angezeigte Name des iFeature
Der gewünschte Wert des Schlüsselparameter in der iFeature-Tabelle
Wenn das iFeature über mehr als einen Schlüsselparameter verfügt, geben Sie diese wie folgt als Textzeichenfolge ein: [Key1=Value1][Key2=Value2]. Beispiel:
[Size=A0][CutLength=0.4375000 in]
In diesem Beispiel ist die Eigenschaft iFeatureTableRow.MemberName dargestellt, die in der Inventor-API-Dokumentation beschrieben wird. Eine weitere Möglichkeit, mehrere Parameterwerte einzugeben, bietet die Funktion iFeature.FindRow.
Sie können auch die Zeilennummer als eine ganze Zahl eingeben:
iFeature.ChangeRow("iFeatureName", rowNumber)
In diesem Beispiel wird die aktuelle iFeature-Konfiguration basierend auf einer Bedingung geändert, die zur Auswertung des Textparameters size dient. Für iFeature.ChangeRow ist nur der Name der iFeature-Komponente RectangularPocket1 und der Key Column-Name "Pocket-01" aus der iFeature-Tabelle erforderlich, um die aktive iFeature-Konfiguration zu bestimmen:
If size = "small" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-01")
ElseIf size = "medium" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-02")
ElseIf size = "large" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-03")
ElseIf size = "very large" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-04")
End IfSucht nach einer Zeile anhand einer oder mehrerer Spaltenwertkriterien. Wenn eine passende Zeile gefunden wurde, wird diese als die aktive Zeile des iFeature festgelegt.
i = iFeature.FindRow("iFeatureName", "columnName", "<=", 0.2, "columnName", "<=", 4.1)
Der Name des tabellengetriebenen iFeature
Der Titel der zu durchsuchenden Spalte
Der Wert kann einen numerischen Wert oder eine Textzeichenfolge sein. Sie können ihn als expliziten Wert, Parameter oder eine lokale Variable angeben.
iFeature.CurrentRowValue(“columnName”)
Liest einen Wert aus der Zeile, die mithilfe der Funktion iFeature.FindRow gefunden wurde und der Spaltentitel "columnName" ist. Diese Funktion gibt den Zellenwert aus der aktuellen Zeile aus, die mithilfe der Funktion iFeature.FindRow gefunden wurde. Beispiel:
i = iFeature.FindRow("RectangularPocket1", "pocketdepth", "=", 0.250)
pocketlength = iFeature.CurrentRowValue("pocketlength")
pocketwidth = iFeature.CurrentRowValue("pocketwidth")Wenn die Spalte nicht im iFeature vorhanden ist, wird durch die Regel eine Fehlermeldung erzeugt.
iFeature.CurrentRowStringValue("columnName")
Verwenden Sie diese Funktion, wenn der gesuchte Eintrag eine Textzeichenfolge in der iFeature-Tabelle ist. Beispiel:
Part_number = iFeature.CurrentRowStringValue("Part Number")In Verbindung mit der Funktion iFeature.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.
Legen Sie einen höheren Toleranzwert fest, um den Bereich zulässiger Werte zu erweitern.
iFeature.Tolerance = 0.001
i = iFeature.FindRow("insertpocket", "pocketlength", "=", 2.0)In diesem Beispiel wird nach einer Zeile mit einem pocketlength-Wert von "2.0004" gesucht.
Funktionen für Baugruppenabhängigkeiten
iLogic bietet Regelfunktionen zum Festlegen des Unterdrückungsstatus von Baugruppenabhängigkeiten. Diese Funktionen dienen zum Definieren von Konfigurationen auf Baugruppenebene mithilfe von iLogic Regeln.
Beispiel: Sie möchten alternative Positionen für eine Komponente in einer Baugruppe definieren. Sie können alle Passungen definieren, die zum Festlegen der Abhängigkeiten einer Komponente an den gewünschten Orten erforderlich sind. Anschließend können Sie eine Regel verwenden, um die Passungen nach Bedarf zu unterdrücken oder ihre Unterdrückung aufzuheben und auf diese Weise die Komponente in jeder Konfiguration zu verschieben.
In Autodesk Inventor ist es nicht möglich, sich widersprechende Abhängigkeiten zu erzeugen. Erstellen Sie die Abhängigkeiten zunächst für eine Position der Komponente. Unterdrücken Sie anschließend diese Abhängigkeiten manuell, um weitere Abhängigkeiten für alternative Komponentenpositionen zu erstellen. Nachdem Sie alle erforderlichen Abhängigkeiten erstellt haben, die zur Positionierung für alle Konfigurationen erforderlich sind, können Sie die Regeln zum Auswählen der Abhängigkeiten erstellen.
Erweitern Sie zum Öffnen der Abhängigkeits-Funktionen im Bereich Snippets auf Registerkarte System den Knoten Abhängigkeiten.
Liest oder legt den Unterdrückungsstatus der Abhängigkeit einer Baugruppe auf oberster Ebene fest.
Weisen Sie jeder mit einer Regel verknüpften Abhängigkeit einen eindeutigen benutzerdefinierten Namen zu:
Wenn Sie den Unterdrückungsstatus einer Abhängigkeit manuell ändern, führt das nicht dazu, dass sie von Regeln, die auf sie verweisen, automatisch ausgelöst wird.
Constraint.IsActive(“SubAssem.iam”, “Mate:1”)
Unterdrückungsstatus festlegen:
If ConfigStyle = “A” Then
Constraint.IsActive("MateLeftSide:1") = true
Constraint.IsActive("MateRightSide:2") = false
ElseIf ConfigStyle = “B” Then
Constraint.IsActive("MateLeftSide:1") = false
Constraint.IsActive("MateRightSide:2") = true
End IfIf Constraint.IsActive("MateLeftSide:1") Then (Do something)Unterdrückungsstatus einer Abhängigkeit in einer Unterbaugruppe (Namen der Unterbaugruppendatei und der Abhängigkeit angeben) festlegen oder lesen:
Constraint.IsActiveInDoc("SubAssem.iam", "Mate:1")Verwenden Sie zum Kopieren und Umbenennen aller Dateien in einer Baugruppe, ohne die Regeln zu verändern, die Funktion Constraint.IsActiveInComponent, und geben Sie anstelle des Dateinamens den Namen einer Unterbaugruppe an.
Unter Verwendung eines Unterbaugruppennamens festlegen:
If ConfigStyle = “A” Then
Constraint.IsActiveInDoc("SubAssem.iam", “LeftMate”) = true
Constraint.IsActiveInDoc("SubAssem.iam", “RightMate”) = false
ElseIf ConfigStyle = “B” Then
Constraint.IsActiveInDoc("SubAssem.iam", “LeftMate”) = false
Constraint.IsActiveInDoc("SubAssem.iam", “RightMate”) = true
End IfUnter Verwendung eines Unterbaugruppennamens lesen:
Constraint.IsActiveInDoc("SubAssem.iam",”LeftMate”) = true then (Do something)Unterdrückt eine iMate-Definition oder hebt die Unterdrückung einer iMate-Definition auf.
Constraint.iMateDefIsActive(“iMate:1”) = False
Unterdrückt im aktuellen Regeldokument die iMate-Definition iMate:1. Alternativ können Sie die iMate-Definition über das Kontextmenü auf der Benutzeroberfläche unterdrücken. Wenn die iMate-Definition unterdrückt wird, kann sie für keine Passungen verwendet werden.
Constraint.iMateDefIsActive(“SubAssem:1”,“iMate:1) = False
Unterdrückt die iMate-Definition iMate:1 in der Komponente SubAssem:1.
Constraint.iMateDefIsActive(PartA:1”,“iMate:1”) = True
Hebt die Unterdrückung der iMate-Definition iMate:1 im Komponentenbauteil PartA:1 auf.
Verwenden Sie die Messfunktionen zum Suchen nach und Ausgeben von Werten für Abstand, Winkel, Fläche, Umfang und Bemaßungen.
Erweitern Sie zum Öffnen der Messfunktionen im Bereich Snippets auf Registerkarte System den Knoten Messen.
Sie können den Abstand oder Winkel zwischen zwei (bei Winkel drei) Objekten messen. Geben Sie die Namen der Objekte an, zwischen denen der Abstand gemessen werden soll. Ein Name kann sich beziehen auf:
Die Objekte können sich im gleichen Bauteil, der gleichen Baugruppe oder in anderen Komponenten einer Baugruppe befinden.
Sie können auch den Abstand zwischen zwei Komponenten in einer Baugruppe messen, indem Sie nach dem nächsten Punkt auf jeder Komponente suchen und den Abstand zwischen diesen festhalten.
Geben Sie vor einer Messfunktion innerhalb einer Regel die Funktionen RuleParametersOutput und InventorVb.DocumentUpdate() (in dieser Reihenfolge) ein. Durch die Verwendung dieser Funktionen wird sichergestellt, dass bei der Messfunktion die aktualisierte Version des Inventor-Modells untersucht wird.
Misst den Mindestabstand zwischen zwei Punkten, Ebenen oder Achsen. Mit dieser Funktion kann auch der Abstand zwischen einer Ebene und einem Punkt, einer Ebene und einer Achse oder einem Punkt und einer Achse gemessen werden.
Measure.MinimumDistance("entityName1","entityName2")
So messen Sie den Abstand zwischen zwei Punkten
distance = Measure.MinimumDistance("Work Point1", "Work Point2")
(1) Arbeitspunkt1 (2) Arbeitspunkt2
So messen Sie den Abstand zwischen einem Punkt und einer Achse
distance = Measure.MinimumDistance(“Work Point1”, “Work Axis1”)

(1) Arbeitspunkt1 (2) Arbeitsachse1
So messen Sie den Abstand zwischen zwei Achsen
distance = Measure.MinimumDistance("Work Axis1", "Work Axis2")
(1) Arbeitsachse1 (2) Arbeitsachse2
So messen Sie den Abstand zwischen zwei Ebenen
distance = Measure.MinimumDistance(“Work Plane1”, “Work Plane2”)

(1) Arbeitsebene1 (2) Arbeitsebene2
Measure.MinimumDistance("componentName1", "entityName1", "componentName2", "entityName2")
Misst den Abstand zwischen Objekten in zwei Komponenten einer Baugruppe. Diese Objekte können Punkte, Ebenen oder Achsen sein.
Im folgenden Beispiel wird das Vorgehen zur Abstandsmessung zwischen Arbeitsebenen in zwei Komponenten einer Baugruppe dargestellt:
distance = Measure.MinimumDistance(“Wheel1”, “Workplane1”, “Wheel2”, Workplane2”)

(1) Rad1 Arbeitsebene1 (2) Rad2 Arbeitsebene2
Measure.MinimumDistance("componentName1", "componentName2")
Misst den Mindestabstand zwischen zwei Komponenten in einer Baugruppe. Hierbei werden die Komponenten als Ganzes betrachtet, um den nächsten Punkt auf den Komponenten zu suchen:
distance = Measure.MinimumDistance("partA:1", "partB:1")
distance = Measure.MinimumDistance("Wheel1", "Wheel2")
(1) Rad1 (2) Rad2
Gehen Sie bei Messungen mit nicht parallelen Achsen mit besonderer Sorgfalt vor!
Ihre Baugruppe besteht beispielsweise aus zwei Blöcken. Der Winkel zwischen den Flächen der Blöcke beträgt 60 Grad. Jeder Block verfügt über eine Bohrung auf der dem anderen Block zugewandten Seite. Die Achsen der beiden Bohrungen sind nicht parallele koplanare Linien, die sich überschneiden. Schreiben Sie die Funktion wie folgt:
distance = Measure.MinimumDistance("Block1","Axis1","Block2","Axis1")Sie können die Messung unter der Annahme vornehmen, dass die Linien unendlich lang sind. Das Ergebnis der Abstandsmessung wäre Null. Wenn jedoch die Funktion Measure.MinimumDistance verwendet wird, wird der Abstand zwischen den nächstgelegenen Endpunkt der zwei Markierungen gemessen, die die Position der Achsen darstellen. Die Messung wird auf den begrenzten Linien durchgeführt. Der ausgegebene Wert beträgt 1,36 Zoll.

(1) Achse1 (2) Block1 (3) Achse2 (4) Block2
Verlängern Sie zum Erzeugen eines anderen Ergebnisses manuell die Linien, die die Achsen der Bohrungen darstellen. Die Funktion Measure.MinimumDistance gibt nun einen Wert von 0 Zoll aus, wie bei sich überschneidenden Linien zu erwarten war.

(1) Block1 (2) Achse1 (3) Achse2 (4) Block2
Misst basierend auf drei definierten Punkten den Winkel zwischen zwei Objekten.
Winkel = Measure.Angle("entityName1", "entityName2")
Misst den Winkel zwischen zwei Objekten in einem Bauteil oder einer Baugruppe. Damit können Sie den Winkel zwischen zwei Achsen, zwei Ebenen oder einer Achse und einer Ebene messen. Die Objekte können Arbeitselemente oder iMates sein.
Winkel = Measure.Angle("componentName1", "entityName1", "componentName2", "entityName2")
Misst den Winkel zwischen zwei Objekten in zwei Komponenten auf Baugruppenebene. Damit können Sie den Winkel zwischen zwei Achsen, zwei Ebenen oder einer Achse und einer Ebene messen.
Winkel = Measure.Angle("point1", "point2", "point3")
Misst den Winkel, der durch drei Punkte definiert ist. Dieser Wert entspricht dem Winkel zwischen zwei Linien:
In diesem Fall stellt "point2" den Scheitelpunkt des Winkels dar. Beispiel:
angle = Measure.Angle("Work Point1", "Work Point2", "Work Point3")
(1) Arbeitspunkt1 (2) Arbeitspunkt2 (Scheitelpunkt) (3) Arbeitspunkt3
angle = Measure.Angle("componentName1", "point1", "componentName2", "point2", "componentName3", "point3")Misst den Winkel, der durch drei Punkte definiert ist. "point2" definiert den Scheitelpunkt des Winkels. Jeder Punkt kann sich auf einer anderen Komponente befinden.

(1) Arbeitspunkt1 Komponente1 (2) Arbeitspunkt2 Komponente 2 (Scheitelpunkt des Winkels) (3) Arbeitspunkt3 Komponente3 (4) 74,02 Grad
Misst die Fläche einer Skizze. Mit dieser Funktion wird die Summe der Flächen gemessen, die innerhalb der geschlossenen Profile einer Skizze liegen.
Bei einem einzelnen, geschlossenen Profil wird mit der Funktion die durch das Profil eingeschlossene Fläche berechnet:

Fläche: 3,14 = sq in
Wenn die Skizze mehrere geschlossene Profile enthält, wird mit der Funktion die Summe der durch die Profile eingeschlossenen Flächen berechnet:

Fläche: 6,28 = sq in
Wenn sich die geschlossenen Profile überschneiden, wird mit der Funktion die Summe der eingeschlossenen Flächen berechnet, unabhängig davon, ob die Flächen überlappen:

Fläche: 6,28 = sq in
Wenn die Skizze mehrere Profile enthält, wobei eines der Profile vollständig innerhalb eines anderen Profils liegt, wird mit der Funktion Measure.Area die Differenz zwischen den beiden Flächen ausgegeben:

Fläche: 1,37 = sq in
Measure.Perimeter(“SketchName”)
Misst die Summe des Umfangs der geschlossene Profile in einer Skizze. Bei einer Skizze mit einem einzelnen geschlossenen Profil wird mit dieser Funktion die Größe des Profilumfangs berechnet.
size = Measure.Perimeter("Sketch1")
Bei einer Skizze mit einem einzelnen geschlossenen Profil wird mit dieser Funktion die Größe des Profilumfangs berechnet.

Umfang: 6 Zoll
Bei einer Skizze mit mehreren sich nicht überschneidender geschlossener Profile wird mit dieser Funktion die Summe der Umfanglängen aller Profile berechnet:

Umfang: 9 Zoll
Bei einer Skizze mit mehreren sich überschneidender geschlossener Profile wird mit dieser Funktion die Summe der Umfanglängen aller Profile berechnet:

Umfang: 12 Zoll
Misst die X-, Y- oder Z-Bemaßungsgrenzen eines Bauteils oder einer Baugruppe. Die Grenzen kann größer sein als die entsprechenden genauen Bemaßungen des Modells auf der jeweiligen Achse (v. a. bei gebogenen Formen).
Misst die X-Grenze (entlang der roten Achse) des Modells.
Verwenden Sie Arbeitselementfunktionen zum Ändern vorhandener Arbeitselemente.
Erweitern Sie zum Öffnen der Arbeitselementfunktionen im Bereich Snippets auf Registerkarte System den Knoten Arbeitselemente.
Kehrt unter bestimmten Bedingungen den lotrechten Vektor einer Arbeitsebene um. Dabei wird die Arbeitsebene gespiegelt. Die Skizze, die auf dieser Ebene basiert, wird ebenfalls umgekehrt. Mit dieser Funktion kann ein Element für Linkshänder in ein Element für Rechtshänder umgekehrt werden. Diese Funktion ist besonders für die Extrusion einer Mittelebene nützlich. Die Normale wird allerdings nur dann umgekehrt, wenn dadurch sichergestellt wird, dass die Normale in die gewünschte Richtung gerichtet ist. Die Normale wird nur dann unter Verwendung dieser Funktion umgekehrt, wenn sie nicht mit der angegebenen Achse übereinstimmt.
WorkPlane.FlipNormal(“workPlaneName”, “axisWanted”)
Der Name der zu spiegelnden Arbeitsebene
Der Name der Achse eines Bauteils, der optional mit einem negativen Vorzeichen (-) zum Anzeigen der Richtung angegeben wird. Mit dieser Konvention wird die ungefähre Richtung der Ebenennormale angegeben, die in der Funktion verwendet wird. Wenn die Ebene nicht genau auf eine Achse im Modell ausgerichtet ist, verwenden Sie die zur gewünschten Ebenennormale nächstliegende Achse. Ausrichtungen unter 60 Grad sind akzeptabel.
WorkPlane.FlipNormal("Work Plane1", "X")WorkPlane.FlipNormal("Work Plane1", "-X")WorkPlane.FlipNormal("Work Plane1", "Y")WorkPlane.FlipNormal("Work Plane1", "-Y")WorkPlane.FlipNormal("Work Plane1", "Z")WorkPlane.FlipNormal("Work Plane1", "-Z")Definiert eine Skizze anhand anderer Eingabewerte neu. Diese Funktion ist am besten für die Verwendung in Verbindung mit unabhängigen Skizzen geeignet, die keine projizierte Geometrie enthalten. Beschränken Sie die gesamte Skizziergeometrie auf den Ursprung oder auf eine der Skizzenachsen unter Verwendung zufällig erzeugter oder fester Abhängigkeiten oder Bemaßungen.
Für diese Funktion ist die Eingabe von Namen erforderlich. Definieren Sie daher die Skizze mithilfe benannter Objekte:
Sketch.Redefine(sketchName, planeName, originName, axisName, AxisIsX := True, NaturalAxisDirection := True )
Name des Objekts, die als Skizzenebene verwendet werden soll
Name des Objekts, das als Ursprungspunkt der Skizze verwendet werden soll
Name des Objekts, das als Skizzierachse (X- oder Y-Achse) verwendet werden soll
Der Standardwert True zeigt an, dass die durch axisName angegebene Skizzenachse, die X-Achse (horizontal) ist. False zeigt an, dass die Y-Achse (vertikal) die Skizzenachse ist.
Der Standardwert True indicates zeigt an, dass die Skizzenachse in die gleiche Richtung wie das Objekt unter axisName ausgerichtet ist. False weist darauf hin, dass die Skizzenachse in die entgegengesetzte Richtung ausgerichtet ist.
Verwenden Sie Meldungsfeldfunktionen zum Erstellen von Meldungs- und Eingabefeldern in einer Regel.
MessageBox.Show und InputBox zählen zu den Standardfunktionen von VB.NET. Weitere Informationen finden Sie in der VB.NET-Dokumentation.
Bei MessageBox.Show handelt es sich um eine VB.NET-Version der MsgBox-Funktion in VB6 und VBA. MsgBox können Sie weiterhin in iLogic-Regeln verwenden.
InputListBox und InputRadioBox sind iLogic-Funktionen.
Erweitern Sie zum Öffnen der Meldungsfeldfunktionen im Bereich Snippets auf Registerkarte System den Knoten für das Meldungsfeld.
Der Meldungsfeld-Assistent lässt sich über das Dialogfeld Regel hinzufügen aufrufen, der zur Erstellung eines Meldungsfeldcodes verwendet werden kann.
Fungiert in iLogic als Basis für die Meldungsfeldfunktionen. Verwenden Sie diese Funktion, um ein Meldungsfeld anzuzeigen.
MessageBox.Show("Message", "Title")
Text in der Titelleiste des Meldungsfelds
Sie können die Schaltflächen in einem Meldungsfeld mithilfe der MessageBoxButtons-Parameter festlegen, um die entsprechenden Werte in der Funktion MessageBox.Show zu bestimmen.
MessageBox.Show("Message",'"Title", MessageBoxButtons.OK)Mit dieser Option wird ein einfaches Meldungsfeld mit der SchaltflächeOK erzeugt:

MessageBox.Show("Message",'"Title", MessageBoxButtons.OKCancel)MessageBox.Show("Message",'"Title", MessageBoxButtons.RetryCancel)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNo)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel)MessageBox.Show("Message",'"Title", MessageBoxButtons.AbortRetryIgnore)Fügen Sie ein Symbol in ein Meldungsfeld ein, indem Sie den Parameter MessageBoxIcon in die Funktion MessageBox.Show aufnehmen.
MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Error)Mit dieser Option wird in das Meldungsfeld ein Fehlersymbol eingefügt:

MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.None)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning)Sie können die Meldungsfeldschaltfläche festlegen, wenn Sie das Meldungsfeld zum ersten Mal anzeigen. Geben Sie zum Festlegen der Schaltfläche den Parameter MessageBoxDefaultButton in der Funktion MessageBox.Show an. Wählen Sie im Meldungsfeld je nach MessageBoxButtons-Wert eine der drei möglichen Schaltflächen.
MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2)Mit dieser Option wird festgelegt, dass standardmäßig die zweite Schaltfläche (Nein) ausgewählt wird:

MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)MessageBox.Show("Message",'"Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button3)Erstellt ein Meldungsfeld mit den Optionen zur Eingabeaufforderung und zur Annahme der Eingabe.
myparam = InputBox("Prompt", "Title", "Default Entry")
In der Titelleiste des Felds angezeigter Text
Im Eingabefeld des Felds angezeigter Text

Zeigt ein Meldungsfeld mit einer Liste verfügbarer Werte an. Wenn Sie einen Wert aus der Liste auswählen, gibt die Funktion diesen Wert aus.
d0 = InputListBox("Prompt",MultiValue.List("listName"), defaultEntry, Title := "Dialog Title", ListPrompt := "List Prompt")
Über der Schaltfläche OK angezeigte Meldung
Name der zu verwendenden Multivalue-Liste
Anfänglich ausgewählter Wert im Listenfeld
In der Titelleiste angezeigter Text
Über der Liste angezeigte Text
Wert aus der ausgewählten Liste
material = InputListBox("Choose Part material", MultiValue.List("material"), _
material, Title := "Part material", ListName := "Available Standard materials")
Zeigt ein Meldungsfeld an, in dem zur Auswahl einer der zwei verfügbaren Optionen aufgefordert wird.
booleanResult= InputRadioBox("Prompt", "Button1 Label", "Button2 Label", booleanParam, Title :="Title")
Text der ersten angezeigten Option
Text der zweiten angezeigten Option
Wählen Sie True, um die erste Option auszuwählen, oder False, um die zweite Option auszuwählen.
In der Titelleiste des Felds angezeigter Text
True, wenn die erste Option ausgewählt wird, und False, wenn die zweite Option ausgewählt wird.
booleanParam= InputRadioBox("Choose an Edge Treatment option", "Chamfer", "Fillet", true, Title :="Edge
Treatment")
Verwenden Sie Dokumentfunktionen zum Zugriff auf ein Inventor-Bauteil-, Baugruppen- oder Zeichnungsdokument. Mithilfe von Dokumentfunktionen können Sie Aufgaben wie z. B. das Abrufen eines Dateinamens und Aktualisieren des Modells ausführen.
ThisDoc ist in Dokumentfunktionen das Autodesk Inventor-Dokument, in das eine Regel geschrieben wird. Meistens ist es das aktive Dokument. Es kann sich aber auch auf ein Bauteil in einer Baugruppe beziehen. Über ThisDoc erhalten Sie unabhängig vom Speicherort der Regel Zugriff auf das Dokument.
Erweitern Sie zum Öffnen der Dokumentfunktionen im Bereich Snippets auf Registerkarte System den Knoten Dokument.
Gibt den Dateinamen des Dokuments an.
Die Dateierweiterung wird beim Argument False nicht berücksichtigt. Wählen Sie das Argument True, wenn die Dateierweiterung berücksichtigt werden soll.
Gibt den Pfad und den Dateinamen des Dokuments aus.
ThisDoc.PathAndFileName(False)
Die Dateierweiterung wird beim Argument False nicht berücksichtigt. Wählen Sie True in Klammern, wenn die Dateierweiterung berücksichtigt werden soll.
Gibt den Pfad (Ordner) des aktiven Autodesk Inventor-Projektarbeitsbereichs aus. Wenn kein Arbeitsbereich definiert ist, gibt diese Funktion eine leere Zeichenfolge aus (eine Zeichenfolge ohne Zeichen und der Länge = Null).
Öffnet anhand des angegebenen Pfads und Dateinamens (einschließlich der Dateierweiterung) eine Datei. Wenn Sie eine Datendatei angeben, wird sie in der entsprechenden Anwendung geöffnet. Wenn Sie eine ausführbare Datei (EXE) angeben, wird das Programm ausgeführt. Wenn Sie keinen vollständigen Pfad angeben, wird nach der Datei im selben Ordner gesucht, in dem sich das Inventor-Dokument befindet. Sie können auch einen relativen Namen und Pfad des Dokuments angeben.
Speichert das aktuell aktive Dokument. Diese Funktion kann nicht in einer Regel verwendet werden, die durch Änderung eines Parameters ausgelöst wird.
Aktualisiert das Dokument, in dem sich die Regel befindet, nachdem die Regel (und alle durch sie ausgelösten Regeln) ausgeführt wurde. Diese Aktualisierung kann auch durch Klicken auf die Schaltfläche Aktualisieren auf der Benutzeroberfläche durchgeführt werden.
Wenn durch die Regel Parameterwerte geändert wurden, werden durch diese Funktion neue Regelwerte für das Inventor-Modell verwendet. Wenn diese Funktion nicht verwendet wird, werden die Werte erst angewendet, nachdem die Regel ausgeführt wurde. Verwenden Sie diese Funktion, wenn Sie eine Aktualisierung mithilfe von DocumentUpdate ausführen müssen. Diese Funktion muss auch dann verwendet werden, wenn Sie die Funktion iLogicVb.RunRule verwenden. Auf diese Weise können die neuen Parameterwerte durch die andere Regel abgerufen werden.
Führt eine sofortige Aktualisierung im aktuellen Dokument (das Dokument, in dem sich die Regel befindet) aus, und aktualisiert die Anzeige. Verwenden Sie diese Funktion, wenn die Geometrie neu erstellt werden soll (z. B., wenn Sie die Masse mithilfe von iProperties.Mass berechnen). Wenn die Regel andere Regeln auslöst (durch Ändern der Parameter), aktivieren Sie im Dialogfeld Regel bearbeiten die Option Abhängige Regeln sofort auslösen für diese Regel. Durch diese Option wird sichergestellt, dass die anderen Regeln ausgeführt werden, bevor Sie die Aktualisierung durchführen.
Führt eine sofortige Aktualisierung im aktuellen Dokument (das Dokument, in dem sich die Regel befindet) aus, ohne die Dokumentanzeige zu aktualisieren. Die Funktion InventorVb.DocumentUpdate aktualisiert die Anzeige als auch das Modell. Wenn die Anzeige nicht aktualisiert werden soll, verwenden Sie diese Funktion.
Überprüft Parameterwerte, ohne einen Wert zu ändern.
Verwenden Sie diese Funktion in beispielsweise folgenden Situationen:
Ihre Parameter sind mit einem Basisbauteil verknüpft, wo sie mit einer externen Tabelle verknüpft sind. Sie haben die Möglichkeit, die Parameterwerte in der Tabelle zu ändern und zu speichern, ohne dass diese Änderungen im Hauptbauteil angezeigt werden. Verwenden Sie diese Funktion in einer Regel innerhalb des Hauptbauteils, bevor Sie GoExcel verwenden, um die Werte in der Tabelle zu ändern. Durch diese Funktion wird sichergestellt, dass das Basisteil geladen wird (im Hintergrund) und das Änderungen auf das Hauptbauteil in der Baugruppe übertragen werden.
Speichert das Dokument unter einem neuen Dateinamen und optional mit einer neuen Erweiterung.
ThisDoc.Document.SaveAs(NewFileNameAndExtension , True)
Setzen Sie den Wert auf True, um den Vorgang Kopie speichern unter auszuführen. Legen Sie den Wert auf False fest, um den Vorgang Speichern unter durchzuführen.
Funktionen unter Weitere ausführen
In iLogic sind verschiedene Variationen einer Funktion möglich, die zur Ausführung anderer Funktionen verwendet werden können. Normalerweise wird eine Regel ausgelöst, indem ein Parameter in der Regel geändert wird. Diese Funktion ist für Regeln ohne Parameter oder Regeln mit der aktivierten Option Nicht automatisch ausführen geeignet.
Erweitern Sie zum Öffnen dieser Funktionen im Bereich Snippets auf Registerkarte System den Knoten Weitere ausführen.
Führt eine andere Regel aus, indem der Name der Regel angegeben wird. Verwenden Sie diese Funktion für Regeln wie Berichts-Generatoren, die sich nicht auf das Modell auswirken, aber auf viele Parameter beziehen können. Mit dieser Funktion lässt sich eine beliebige Regel ausführen.
iLogicVb.RunRule(“Rule0”)
Führt eine weitere Regel in einer Komponente einer Baugruppe aus.
iLogicVb.RunRule(“componentName”, “ruleName”)
iLogicVb.RunRule("PartA:1", "Rule0")Weitere Informationen zu den Funktionen im Bereich Snippets in der Kategorie Weitere ausführen finden Sie im Abschnitt zu erweiterten API-Funktionen und erweiterten Regelprogrammierung.
Führt eine externe Regel mithilfe einer Standardregel in einem Autodesk Inventor-Dokument durch.
iLogicVb.RunExternalRule("ruleFileName")
Legt den Namen der Regeldatei mit oder ohne Dateierweiterung fest. Sie können hier auch einen Dateipfad angeben. Dadurch kann jedoch die Übertragbarkeit der Datei beeinträchtigt werden. iLogic sucht die Datei in den folgenden Ordnern in der angegebenen Reihenfolge:
Regeldateinamen können relative Namen von Pfaden sein, die
Externe Regeln, die über eine andere Regel ausgeführt werden, müssen nicht im Regel-Browser angezeigt werden. Wenn Sie die Regel bearbeiten möchten, müssen Sie die Regel jedoch dem Regel-Browser hinzufügen.
iLogicVb.RunExternalRule("color_by_vendor")Führt ein Makro von Inventor Visual Basic for Applications (VBA) aus. Makros können im Dokument oder in separaten IVB-Dateien gespeichert werden. Drücken Sie Alt + F11, um den Microsoft VBA-Editor zu öffnen, die verfügbaren Makros anzuzeigen und die gewünschten Makros zu laden oder zu bearbeiten. Wenn für das Makro Argumente erforderlich sind, fügen Sie sie nach dem Makronamen hinzu.
Sie können eine VBA-Funktion abrufen, allerdings wird dabei kein Rückgabewert ausgegeben.
InventorVb.RunMacro(“projectName”, “moduleName”, “macroName”)
InventorVb.RunMacro ("DocumentProject", "Module1", "DrawCustomLines" )
InventorVb.RunMacro ("ThreadMacros", "Module1", "ThreadsInit" )
InventorVb.RunMacro ("ThreadMacros", "Module1", "AddThreads", "3/8-16 UNC")Verwenden Sie Stücklistenlistenfunktionen, um Operationen mit Auswirkungen auf die Stückliste einer Baugruppe auszuführen.
Sie können die berechnete Komponentenmenge überschreiben, die in der Stückliste angezeigt wird. Sie können auch Stücklistendaten in Excel und in anderen Formaten exportieren.
Erweitern Sie zum Öffnen der Stücklistenfunktionen im Bereich Snippets auf Registerkarte System den Knoten Stückliste.
Exportieren Sie die Stückliste in eine externe Datei.
ThisBOM.Export(“BOMViewName”, filename, format)
Der auf einer Registerkarte im Inventor-Dialogfeld Stückliste angezeigte Name. Dieser Wert kann den Wert Model Data, Structured oder Parts Only annehmen. Aktivieren Sie die Ansicht, die Sie verwenden möchten, bevor Sie die Regel das erste Mal ausführen (mit der rechten Maustaste auf die Registerkarte in der Stücklistentabelle klicken).
Der Name der zu erstellenden Exportdatei (ohne Dateinamenerweiterung). Wenn Sie keinen vollständigen Pfad angeben, wird die Stückliste in den Ordner exportiert, in dem die Baugruppe gespeichert ist. Beim Export einer Excel-Datei müssen Sie die Dateinamenerweiterung .xls wählen (.xlsx wird nicht unterstützt).
Folgende Möglichkeiten sind verfügbar:
ThisBOM.Export("Parts Only", "Bom353.xls", kMicrosoftExcelFormat)
ThisBOM.Export("Structured", "Bom631.xls", kTextFileTabDelimitedFormat)
ThisBOM.Export("Structured", ThisDoc.ChangeExtension(".mdb"), kMicrosoftAccessFormat)Überschreibt die Anzahl einer Komponente. Diese Funktion kann dazu verwendet werden, um nur einige Exemplare in einem Modell anzuzeigen. Die tatsächliche Komponentenanzahl wird in der Stückliste aufgeführt. Alternativ können Sie das Dialogfeld Stückliste öffnen und in der Spalte Anzahl einer Komponente anstelle der Option Menge berechnen die Option Statische Menge wählen.
ThisBOM.OverrideQuantity(“Model Data”, partNumber, quantity)
Das erste Argument enthält den Namen der Stücklistenansicht und muss immer "Model Data" lauten.
Das stellt die Eigenschaft Bauteilnummer der Komponente dar. Dieser Wert wird als Spalte in einer Stücklistenansicht angezeigt.
Die für diese Komponente festzulegende Menge
ThisBOM.OverrideQuantity("Model Data", "Top Screw", 18)iLogic bietet eine Reihe an mathematischen Funktionen, die Regeln hinzugefügt werden können. Wählen Sie im iLogic-Dialogfeld Regel bearbeiten eine der folgenden Methoden, um auf die Mathematikfunktionen zuzugreifen:
In der Standard-Mathematikbibliothek in VB.NET sind die meisten Mathematikfunktionen enthalten, die in iLogic verwendet werden:
| IsNumeric | PI |
| MinOfMany | Wurzel |
| MaxOfMany | Abs |
| Rundung | Vorzeichen |
| Dezimalstellen für Rundung | Int |
| Bis zum nächsten Inkrement runden | Fest |
| Bis zu Inkrement aufrunden | Log10 |
| Bis zu Inkrement abrunden | Ln |
| Obergrenze | Potenz |
| Untergrenze | Min. |
| Sin | Max. |
| Cos | CDbl |
| Tan | EqualWithinTolerance |
iLogic bietet einige Mathematikfunktionen. Die folgenden Funktionen emulieren die in den Standard-Parametergleichungen in Inventor verfügbaren Funktionen:
Ceil (same as Math.Ceiling) Sign0(a) = 1 if a > 0.0, = 0 otherwise Ln (same as Math.Log)
Da sich bestimmte Autodesk Inventor-Funktionen von den gleichnamigen Standard-Mathematikfunktionen in VB.NET unterscheiden, werden sie beim Erfassen zur Verwendung in einer iLogic-Regel konvertiert:
| Sin(0) = 0 | Cos(PI) = -1 |
| Sin(PI) = 0 | Tan(0) = 0 |
| Sin(PI/2) = 1 | Tan(PI/4) = 1 |
| Cos(0) = 1 | PI = 3.1415926...... |
| Cos(PI/2) = 0 |
Sin(), Cos() und Tan() sind standardmäßige Trigonometriefunktionen. Die Argumente werden im Bogenmaß (nicht in Grad) angegeben:
Wenn Sie die Option Aktuellen Status erfassen im Dialogfeld Regel bearbeiten in einer trigonometrischen Formel verwenden, wird sie nicht in den VB.NET-Code konvertiert. Die Formel wird stattdessen als Inventor-Formel beibehalten. Sie können die Formel manuell ändern, um sie in eine VB.NET-Formel umzuwandeln (Winkelangabe in Bogenmaßeinheit).
Verwenden Sie zum Konvertieren von Grad in Bogenmaß die folgende Formel:
iLogic bietet eine Reihe von Zeichenfolgenfunktionen für Textparameter, die in iLogic-Regeln integriert werden können. Erweitern Sie zum Öffnen der Zeichenfolgenfunktionen im Bereich Snippets auf Registerkarte System den Knoten Zeichenfolgen.
Standard-Zeichenfolgenfunktionen
Die meisten Zeichenfolgenfunktionen, die in iLogic verwendet werden, sind als Teil der Standard-Zeichenfolgenbibliothek in VB.NET enthalten. Dazu gehören:
| Links() | CStr() |
| Vergleichen | Now() |
| Länge() | DateString |
| Rechts() | TimeString |
| Mitte() | Val(string) |
| LCase() | Gesamten Text einlesen |
| UCase() |
Die Dokumentation zu diesen Funktionen steht unter folgender Adresse zur Verfügung: http://msdn.microsoft.com/en-us/library/system.string_methods(VS.80).aspx
iLogic-Zeichenfolgenfunktionen
Viele Zeichenfolgenfunktionen sind nur in iLogic verfügbar.
Erweitern Sie zum Öffnen der Variablenfunktionen im Bereich Snippets auf Registerkarte System den Knoten Variablen.
Gemeinsam genutzte Variablenfunktionen
Gemeinsam genutzte iLogic-Variablen werden in Regeln verwendet und im Speicher abgelegt. Im Gegensatz zu Inventor-Parametern sind Sie mit keinem Bauteil oder Baugruppe verknüpft. Sie können gemeinsam genutzte Variablen anstelle von Inventor-Parametern verwenden, um Daten zwischen Regeln weiterzuleiten. Sie können sie auch dazu verwenden, Daten zu speichern, die nicht in Inventor-Parametern gespeichert werden können. Folgende Beispiele veranschaulichen die die Verwendung der Funktionen:
Gruppe Zeichnen (“Gewinde1”) = “1/4-20 UNC”
Weist einen Textwert einer gemeinsam genutzten Variable namens Thread1 zu. Falls die Variable noch nicht existiert, wird sie erstellt.
s0 = Gruppe Zeichnen (“Gewinde1”)
Weist den Wert einer gemeinsam genutzten Variable einem Textparameter zu. Der Variablentyp ist bekannt, da Sie ihn zuvor erstellt haben.
Gruppe Zeichnen (“Abstand1”) = 7.2
Weist eine Zahl einer gemeinsam genutzten Variable zu.
d0 = Gruppe Zeichnen (“Abstand1”)
Weist den Wert einer gemeinsam genutzten Variable einem numerischen Parameter zu.
, wenn SharedVariable.Exists(“Gewinde1”) dann
Überprüft, ob ein Parameter vorhanden ist. Wenn der Parameter in einer anderen Regel erstellt wurde, wird durch diese Funktion der Wert True ausgegeben.
SharedVariable.Remove(“Gewinde1”)
Entfernt (löscht) eine gemeinsam genutzte Variable. Diese Funktion wird empfohlen (ist allerdings nicht erforderlich), wenn Sie die Variable nicht mehr benötigen.
Entfernt alle gemeinsam genutzten Variablen. Diese Funktion sollte mit Bedacht in einer Regel verwendet werden. Wenn nicht verbundene Bauteile und Baugruppen geöffnet sind, die gemeinsam genutzte Variablen verwenden, sollten Sie stattdessen den Befehl Freier iLogic-Speicher verwenden.
Die Funktionen für neue Arrays sind Standardfunktionen in Visual Basic, die Sie dazu verwenden können, um verschiedene Arraytypen zu definieren und Anfangswerte festzulegen. Weitere Informationen zu diesen Funktionen finden Sie in der Visual Basic-Hilfe.
Definiert ein neues Array von Double-Werten und legt die Anfangswerte fest.
MyDoubleValues = new double(){1.2,2.2,3.3}Definiert ein neues Ganzzahl-Array und legt die Anfangswerte fest.
MyIntegerValues = new integer(){1,2,3}Definiert ein neues Zeichenfolge-Array und legt die Anfangswerte fest.
MyStringValues = new string(){string1,string2}Definiert ein neues Objekt-Array und legt die Anfangswerte fest.
MyObjectValues = new object(){“string”,true,1.234}Definiert eine neue ArrayList-Typvariable, und fügt dieser Werte hinzu.
Dim MyArrayList As New ArrayListMyArrayList.add(“string”)MyArrayList.add(1.234)MyArrayList.add(True)
Setzt alle Werte für eine Array- oder ArrayList-Variable hintereinander ein.
for each oval in MyVariableHeremsgbox(oval)next
Materialeigenschaftsfunktionen
Verwenden Sie Blechfunktionen, um die aktuelle Blechregel und den KFaktor in einem Blechbauteil zu lesen und/oder festzulegen. Mit diesen Funktionen können Sie die aktuelle Blechregel basierend auf bestimmten Bedingungen (z. B. das aktuelle Material oder die Materialstärke) automatisch ändern.
Erweitern Sie zum Öffnen der Blechfunktionen im Bereich Snippets auf Registerkarte System den Knoten Blech.
Legt die aktuell aktive Blechregel fest. Alternativ können Sie im Dialogfeld Blechstandards die Blechregel manuell auswählen.
SheetMetal.SetActiveStyle(“styleName”)
Der Name der Blechregel, der im Dialogfeld Blechstandards angezeigt wird. Bei diesem Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden.
SheetMetal.SetActiveStyle(“styleName”)
Gibt den Namen eines Stils aus der Blechregelliste an:
SheetMetal.SetActiveStyle(MyStyleParameter)
Liest die aktuell aktive Blechregel. Sie können sie einem iLogic-Textparameter oder einer lokale Variable in einer Regel zuweisen. Verwenden Sie diese Funktion, um ein Modell zu bearbeiten oder basierend auf der aktiven Blechregel zu ändern.
CurrentStyleParameter=SheetMetal.GetActiveStyle()
Größe der Abwicklung - Funktionen
Verwenden Sie diese Funktionen, um die Größe der abgewickelten Abwicklung abzurufen. Sie können diese Werte auch anzeigen, indem Sie mit der rechten Maustaste auf die Abwicklung in der Baumstruktur des Modells des Blechbauteils klicken und Größe wählen.
Ruft die Breite (X-Achse) der Größe der Abwicklung ab.
Verwenden Sie Zeichnungsfunktionen, um die Methode anzupassen, mit der Änderungen am Model vorgenommen werden, die in den Zeichnungsblättern festgehalten werden. Mithilfe von Zeichnungsfunktionen kann die Aktualisierung eines Modells effizient vereinfacht werden. Sie können außerdem in Regeln integriert werden, die durch ein iLogic-Ereignis zur Änderung der Zeichnungsansicht ausgelöst werden.
Greift auf das aktive Blatt in einer Zeichnung zu. Diese Funktion ist ein Alias für ThisDrawing.ActiveSheet. Die meisten Zeichnungsvorgänge werden auf dem aktiven Blatt ausgeführt, da die anderen Blätter möglicherweise nicht auf dem neuesten Stand sind.
Sie können dieser Eigenschaft eine Dateinamen-Zeichenfolge zuordnen, um den Namen einer anderen Zeichnung anzugeben, aus der Schriftfeld und Randdefinition kopiert werden sollen. Wenn Sie die Funktion TitleBlock oder Border verwenden, ruft iLogic in dieser Zeichnung die Ressourcen ab, die nicht in der aktuellen Zeichnung gefunden werden konnten. Geben Sie für diesen Dateinamen einen relativen Pfad an. iLogic sucht nach dieser Datei im Ordner, in dem die aktuelle Zeichnung gespeichert ist, und im Projektarbeitsbereichsordner. Sie können für diese Speicherorte entsprechende relative Unterordner angeben.
ThisDrawing.ResourceFileName = “DrawingResources1.idw”
Setzen Sie diese Eigenschaft auf False, wenn die Kopien der Ressourcen aus externen Ressourcendatei nicht in der aktuellen Zeichnung gespeichert werden.
Wenn Sie diese Eigenschaft auf False setzen, wird die vorhandene Ressource gelöscht und durch eine andere Ressource ersetzt. Der Löschvorgang wird nur ausgeführt, wenn die Funktion ResourceFileName nicht leer ist. Es wird vorausgesetzt, dass alle erforderlichen Ressourcen in der externen Ressourcendatei enthalten sind.
ThisDrawing.KeepExtraResources = False
Die Blattfunktionen für Zeichnungen kommen in der Regel auf dem aktiven Blatt zum Tragen. Um festzulegen, dass eine Regel nur bei einem bestimmten Blatt ausgeführt wird, können Sie oben in einer Regel einen Code hinzufügen. Beispiel:
If (ActiveSheet.Name <> "Sheet:2") Then Return
ChangeSize (mit Textzeichenfolgenwert)
Ändert die Größe des Blatts mithilfe einer Textzeichenfolge, die als Wert für die neue Größe dient.
Sheet.ChangeSize (“value”,<MoveBorderItems = True>)
Dieser Parameter ist optional. Wenn MoveBorderItems auf False gesetzt ist, werden alle Tabellen und Bauteillisten, die sich derzeit am Rand oder an der Kante des Blatts befinden, nicht mit dem neuen Rand verschoben.
ActiveSheet.ChangeSize (“A”)
ActiveSheet.ChangeSize (“B1”, MoveBorderItems := False)
ChangeSize (mit benutzerdefinierten Werten)
Ändert in Dokumenteinheiten anhand einer benutzerdefinierten Höhe und Breite die Größe des Blatts.
Sheet.ChangeSize (customHeight, customWidth, <MoveBorderItems = True>)
Dieser Parameter ist optional. Wenn MoveBorderItems auf False gesetzt ist, werden alle Tabellen und Bauteillisten, die sich derzeit am Rand oder an der Kante des Blatts befinden, nicht mit dem neuen Rand verschoben.
ActiveSheet.ChangeSize (7.2, 4)
ActiveSheet.ChangeSize ( 7.2, 4, MoveBorderItems = False)
Ändert den aktuellen Rand auf dem Blatt durch die Angabe eines anderen Namens. Der Name muss in den Zeichnungsressourcen der aktuellen Zeichnung oder in der Zeichnung ResourceFileName (falls angegeben) enthalten sein.
ActiveSheet.Border = “OtherBorder”
currentName = ActiveSheet.Border
Ändert durch die Angabe eines anderen Namens das aktuelle Schriftfeld auf dem Blatt. Der Name muss in den Zeichnungsressourcen der aktuellen Zeichnung oder in der Zeichnung ResourceFileName (falls angegeben) enthalten sein.
ActiveSheet.TitleBlock = “ANSI - A”
currentName = ActiveSheet.TitleBlock
Beispiel für die Verwendung einer externen Quelldatei:
ThisDrawing.ResourceFileName = “DrawingResources1.idw” ActiveSheet.TitleBlock = “Custom - A”
Die Ansichtsfunktionen für Zeichnungen werden in der Regel auf dem aktiven Blatt verwendet (empfohlen).
View.SetCenter(centerX,centerY)
Legt den Mittelpunkt der Ansicht fest (verschiebt die Ansicht). Die Koordinaten werden in Dokumenteinheiten der Zeichnung angegeben.
View.SetSpacingToCorner(distanceX, distanceY, corner)
Legt die Ansichtsanzeige fest (Ansicht wird verschoben), indem der Abstand zwischen einer Ecke der Ansicht und der nächstliegenden Blattecke angegeben wird. Folgende Werte sind für die Variable corner möglich:
SheetCorner.BottomLeft SheetCorner.BottomRight SheetCorner.TopLeft SheetCorner.TopRight
Die Koordinaten werden in Zeichnungseinheiten angegeben. iLogic sucht nach der zur Blattecke nächstliegenden Ecke.
View.SpacingBetween(“otherViewName”)
Legt die Ansichtsanzeige fest (Ansicht wird verschoben), indem der Abstand zwischen der vorliegenden Ansicht und einer anderen Ansicht angegeben wird. Der Name der anderen Ansicht verweist in der Regel auf eine angrenzende Ansicht auf dem Blatt. Der Abstand befindet sich zwischen den Ansichtskanten in X- oder Y-Richtung. Geben Sie einen positiven Wert ein, um diese Ansicht auf der rechten Seite oder über der anderen Ansicht zu platzieren. Geben Sie einen negativen Wert ein, um diese Ansicht auf der linken Seite oder unter der anderen Ansicht zu platzieren. Beispiel:
ActiveSheet.View("VIEW2").SpacingBetween("VIEW1") = 30 mm 'VIEW2 befindet sich rechts von VIEW1.
ActiveSheet.View("VIEW3").SpacingBetween("VIEW1") = -40 mm 'Positionsnummerfunktionen für Zeichnungen sind nur in einer bestimmten Ansicht verfügbar.
Bei Ansichten von Baugruppendokumenten wird mit dieser Funktion nach nicht verbundenen Positionsnummern in einer Ansicht gesucht, um diese nach Möglichkeit mit einer Komponente zu verbinden. Die erste Option ist eine Komponente an der Pfeilspitze. Wenn dort keine gefunden wurde, wird die nächstliegende verfügbare Komponente ohne Positionsnummer verwendet. Wenn die Positionsnummer nicht verbunden werden kann, wird sie auf einen verdeckten Layer verschoben. Ein verdeckter Layer ist ggf. ein für diesen Zweck erstellter Layer.
Balloons.AttachToComponent(“componentName”)
Gibt eine Komponente an, die eine Positionsnummer erfordert. Mit componentName wird ein Komponentenexemplar wie beispielsweise "Pin:1" angegeben. Wenn Sie diese Funktion verwenden, werden die Positionsnummern nur mit den Komponenten verbunden, die Sie angegeben haben. Wenn Sie diese Funktion nicht verwenden, werden die Positionsnummern mit beliebigen Komponenten verbunden (soweit nicht durch die Funktion DoNotAttachToComponent ausgeschlossen).
Erweiterte Zeichnungs-API-Funktionen
Verwenden Sie die erweiterten Zeichnungs-API-Funktionen, wenn Sie die Vorteile der API-Funktionen nutzen möchten. Beachten Sie die folgenden Schnittstellentypen, die für Objekte in Zeichnungsfunktionen verwendet werden:
Greift auf das zugrunde liegende Zeichnungsdokument zu. Gibt ein Objekt vom Typ Inventor.DrawingDocument. aus.
Greift auf die zugrunde liegende Objektansicht zu. Gibt ein Objekt vom Typ Inventor.DrawingView aus.
Das Inventor-Anwendungsobjekt für die aktuelle Autodesk Inventor-Sitzung. Von diesem Objekt aus können Sie direkt auf das Inventor-API zugreifen. Die Hilfe zu API finden Sie in der Programmierungshilfe, die sich im Menü Hilfe unter Weitere Ressourcen befindet.
Auf dieses Objekt kann auch mithilfe der älteren Syntax zugegriffen werden:
Ruft das Dokument ab, in dem die aktuelle Regel als Inventor.Document -Objekt gespeichert ist. Es kann als Startpunkt für die Untersuchung oder Änderung des Modells verwendet werden. Dieses Objekt wird in der Hilfe zu Inventor-API beschrieben.
Auf dieses Objekt kann auch mithilfe der älteren Syntax zugegriffen werden:
Ruft das Modelldokument (Bauteil oder Baugruppe) auf, das in einem Zeichnungsdokument angezeigt wird. Wenn kein Modelldokument vorhanden ist, gibt diese Funktion kein Ergebnis aus. Wenn mehr als ein Modelldokument vorhanden ist, wird das zuerst gefundene ausgegeben.
Muss in einer Regel vor der Verwendung einer bestimmten Inventor-API-Funktion (z. B. Document.SelectSet.Select) verwendet werden. Wenn Sie ein VBA-Beispiel oder einen anderen API-Code vorfinden, der nicht in einer Regel funktioniert, fügen Sie diese Anweisung an die erste Stelle in einer Regel ein.
ThisApplication.UserInterfaceManager.UserInteractionDisabled = False
Verwenden Sie diese Funktion, um direkten Zugriff auf eine Komponente zu erhalten. Die Funktion gibt ein Objekt des Typs Inventor.ComponentOccurrence aus.
Greift direkten auf ein Element zu. Bei dieser Funktion wird ein Objekt des Typs Inventor.PartFeature ausgegeben.