iLogic 功能的擴充和自訂

外部檔案中的規則儲存

您可以不將 iLogic 規則儲存在 Inventor 模型中,而將其放在外部檔案中。這種儲存方法可讓您在多個不同的位置使用同一規則。

若要在外部檔案中儲存規則,需要先為新檔案設定預設副檔名。應該根據檔案的編輯方式選擇預設副檔名。例如,如果您要在 Visual Studio 中編輯檔案,則可以將預設副檔名設定為 .vb.txt 副檔名可讓您使用文字編輯器 (例如 Microsoft 記事本) 編輯規則。或者,如果您的檔案包含將被 iLogic 預處理的標準 iLogic 規則程式碼,則可以將預設副檔名設定為 .iLogicVB

iLogic 規則可以使用其他 .NET 組合中的程式碼。您可以指定這些 .NET 組合所在的目錄。您可以使用程式設計工具 (例如 Visual Studio 2008) 開發 .NET 組合。請參閱〈進階規則程式設計〉,以取得有關在規則中使用 .NET 組合的更多資訊。

用於存取參數和規則的自動化介面

iLogic 提供了一個自動化介面。您可以使用此介面從 Inventor VBA、VB6 或 .NET 程式碼存取參數和規則。

類別 iLogicAutomation 可啟用此功能。

在 VBA 或 VB 專案中,您可以將其做為晚期繫結類型 (宣告為物件) 使用,而無需加入參考。由於它不是完整的 .COM 物件,您無法瀏覽其方法。

DoubleForEquals 資料類型

iLogic 使用稱為 DoubleForEquals 的自訂資料類型儲存參數值。DoubleForEquals 支援簡單的數值比較。此參數與標準 VB.NET 類型 Double 相似。但在比較 DoubleForEquals 值時,會將其視為 Single 值 (有 7 位而非 15 位小數)。依預設,會將規則中的參數宣告為 DoubleForEquals

DoubleForEquals 使得在比較中忽略捨去錯誤更加容易。例如,假設您的零件使用英吋做為文件單位,而您有一個值為 13/16 英吋的參數。由於參數值在模型中以公分儲存,該零件在規則中不會準確地等於 13/16。然後,該值會被轉換為英吋以在規則中使用。考慮以下比較:

if d0 = 13/16 then ... 

在此範例中,如果 d0 屬於 Double 類型,則比較會失敗。但是,如果 d0 為 DoubleForEquals 類型,則比較會成功。

DoubleForEquals 將值儲存為 Double 類型,並將值視為 Double 值執行所有計算。只有執行比較時,才將值視為 Single 值。

如有必要,您可以使用 CDbl 函數將參數值轉換為 Double 值。

DoubleForEquals 在 VB.NET 中為 Structure (一種值類型)。

DoubleForEquals 比較值為零

DoubleForEquals 將與零進行的比較視為特殊情況。如果測試相等性的兩個數值中的一個為零,則如果另一個數值小於 0.0000001 (絕對值),測試會成功。

此比較使得忽略值中接近於零的捨去錯誤更加容易。例如,以下比較確定 x = 0:

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

何時停用 DoubleForEquals

DoubleForEquals 是在規則中使用的所有 Inventor 參數的預設類型。您可以出於以下理由停用此設定: