Erweitern und Anpassen von iLogic-Funktionen

Speichern von Regeln in externen Dateien

Sie können iLogic-Regeln in externen Dateien platzieren, anstatt sie im Inventor-Modell zu speichern. Dadurch können Sie die gleiche Regel an verschiedenen Stellen verwenden.

Legen Sie zum Speichern von Regeln in einer externen Datei zuerst die Standard-Dateierweiterung für neue Dateien fest. Die Wahl einer Standard-Dateierweiterung hängt davon ab, wie die Datei bearbeitet werden soll. Sie können beispielsweise VB als Standarderweiterung festlegen, um die Dateien in Visual Studio bearbeiten zu können. Die Dateierweiterung TXT ermöglicht die Bearbeitung einer Regel in einem Texteditor (z. B. Microsoft Notepad). Wählen Sie iLogicVB als Standarderweiterung, wenn in den Dateien ein iLogic-Regelcode enthalten ist, der in iLogic vorverarbeitet werden soll.

In iLogic-Regeln kann der Code aus anderen .NET-Baugruppen verwendet werden. Geben Sie das Verzeichnis an, in dem sich diese .NET-Baugruppen befinden. NET-Baugruppen können mit Programmierwerkzeugen wie Visual Studio 2008 entwickelt werden. Weitere Informationen zur Verwendung von .NET-Baugruppen in Regeln finden Sie im Abschnitt zur erweiterten Regelprogrammierung.

Automation-Schnittstelle zum Zugreifen auf Parameter und Regeln

iLogic bietet eine Automation-Schnittstelle. Sie können diese Schnittstelle über Inventor VBA oder den VB6- oder .NET-Code nutzen, um auf Parameter und Regeln einen Zugriff zu erhalten.

Diese Funktion wird durch die Klasse iLogicAutomation aktiviert.

In einem VBA- oder VB-Projekt wird dies als spät gebundener Typ (als Objekt deklariert) verwendet, ohne dass eine Referenz verwendet wird. Da es sich nicht um ein vollständiges COM-Objekt handelt, können dessen Methoden nicht durchsucht werden.

Datentyp DoubleForEquals

iLogic verwendet zum Speichern von Parameterwerten den benutzerdefinierten Datentyp DoubleForEquals. DoubleForEquals unterstützt den einfachen Vergleich von Zahlen. Dieser Parameter ist mit dem Standard-VB.NET-Typ Double vergleichbar. Allerdings werden die DoubleForEquals-Werte so verglichen, als wären es Single-Werte (7 Dezimalstellen anstelle von 15). Parameter in Regeln werden vorgabegemäß als DoubleForEquals deklariert.

Mit DoubleForEquals können beim Vergleich Rundungsfehler leichter vernachlässigt werden. Beispiel: Die Dokumenteinheit für Ihr Bauteil ist Zoll, und ein Parameterwert beträgt 13/16 Zoll. In einer Regel ist der Parameterwert für das Bauteil nicht exakt 13/16, da der Parameterwert im Modell in Zentimetern gespeichert wird. Der Wert wird dann zur Verwendung in einer Regel in Zoll umgewandelt. Schauen Sie sich den folgenden Vergleich an:

if d0 = 13/16 then ... 

In diesem Beispiel schlägt der Vergleich fehl, wenn d0 vom Typ Double ist. Wenn d0 jedoch vom Typ DoubleForEquals ist, kann der Vergleich erfolgreich durchgeführt werden.

DoubleForEquals speichert den Wert als Double-Typ. Alle Berechnungen werden ausgehend von Double-Werten durchgeführt. Der Single-Wert wird nur beim Vergleich herangezogen.

Ein Parameterwert kann bei Bedarf mithilfe der Funktion CDbl in einen Double-Wert konvertiert werden.

DoubleForEquals ist eine Struktur (Wertetyp) in VB.NET.

DoubleForEquals-Vergleich mit Null

Bei DoubleForEquals werden Vergleiche mit Null als Sonderfall behandelt. Wenn bei einem Vergleich eine der getesteten Zahlen genau Null beträgt, wird der Test erfolgreich durchgeführt, wenn die andere Zahl kleiner als 0,0000001 (absoluter Wert) ist.

Bei diesem Vergleich wird die Vernachlässigung von Rundungsfehlern vereinfacht, die im engen Wertebereich von Null liegen. Beispiel: Der folgende Vergleich ergibt x = 0:

angle = PI/2
x = cos(angle)
If (x = 0) Then
...
End If

Wann muss DoubleForEquals deaktiviert werden?

DoubleForEquals ist der Vorgabetyp für alle Inventor-Parameter, die in Regeln verwendet werden. Sie können diese Einstellung in folgenden Fällen deaktivieren: