使用 iLogic 中的規則

建立規則

在您建立規則之前,請先建立您要包括在規則中的所有參數。

  1. 在功能區中,按一下 「管理」頁籤 「iLogic」面板 「加入規則」
  2. 在「規則名稱」對話方塊中,輸入新規則的名稱,然後按一下「確定」
  3. 使用「編輯規則」對話方塊定義規則。
    • 在零件或圖面文件中,按一下參數群組以在「參數」頁籤的右側顯示該參數清單。然後,按兩下該清單中的參數以將該名稱插入到規則文字中。

      在組合文件中,選取「3D 模型」頁籤以顯示組合元件,或選取「檔案樹」頁籤以顯示次組合檔案及零件檔。展開零件檔項目以顯示該檔案內的參數和特徵。

      註: 當您在「模型」樹中按一下非參數項目時,其名稱會列示在「名稱」頁籤 (在「參數」頁籤旁邊) 下。您可以按兩下此清單中的項目以將名稱插入至規則。許多圖面片段都需要視圖名稱。按兩下清單中的相應項目可為您提供目前圖面中的視圖名稱,您可以將其包括在規則中。
    • 在項目上按一下右鍵,然後選取「擷取目前狀態」以將為項目指定值的文字插入到規則中。

      例如,擷取參數的目前狀態以插入該參數及其目前值,例如 d0 = 4.0 in

      擷取參數時永遠會連同其單位一起擷取,但在編寫新方程式時不需要使用單位。您可以在參數群組上按一下右鍵,以擷取特定類型的所有參數的狀態。也可以在特徵或元件上按一下右鍵,以擷取其目前的 IsActive 狀態 (抑制或未抑制)。

    • 使用「片段」區域中的「系統」和「自訂」頁籤下列示的片段加入函數,然後可以為規則自訂這些函數。按兩下某個片段可將其加入至規則。
    • 可使用規則文字區域上方的編輯工具列上的選項操控規則的外觀。也可以使用這些選項插入條件陳述式、關鍵字及運算子。
  4. 按一下「確定」以儲存規則。

編輯規則

  1. 在功能區中,按一下 「管理」頁籤 「iLogic」面板 「iLogic 瀏覽器」 (如果瀏覽器目前未顯示)。
  2. 在「iLogic 瀏覽器」中,按一下「規則」頁籤,以編輯已開啟文件中的規則。或者,按一下「外部規則」頁籤,以為外部檔案中的元件編輯規則。
  3. 按兩下規則,或按一下右鍵並從關聯式功能表中選取「編輯規則」。
  4. 使用「編輯規則」對話方塊編輯規則。在您輸入文字時,會將相應的顏色編碼套用至文字以提高可讀性。
  5. 結束時按一下「確定」。

更名規則

若要更名規則,請在「iLogic 瀏覽器」中的名稱上緩慢按兩下 (兩次按一下間隔時間較長) 以啟用編輯,然後變更既有名稱。

插入規則語法

使用規則文字區域上方工具列中的下拉式清單,將語法字串插入至規則,而不是手動輸入語法。插入後,您可以根據需要自訂這些字串。提供以下各項的選項:

  • 條件陳述式
  • 關鍵字
  • 運算子

插入字串的步驟:

  1. 將游標置於規則中的目標位置。
  2. 從其中一個下拉式清單中選取字串。會使用相應的顏色編碼插入字串,以提高可讀性。
  3. 根據需要編輯插入的字串。

在規則中插入程式碼片段

使用「編輯規則」對話方塊中的「片段」區域中的選項將程式碼片段插入至規則。然後,您可以根據需要修改插入的片段。

  1. 在規則文字區域中,將游標置於插入點處。
  2. 在「片段」區域中按一下「系統」或「自訂」頁籤,以顯示該頁籤的可用品類。
  3. 按兩下片段,以在游標位置插入該片段。系統將對片段的每個元件 (例如條件文字、函數及變數和參數的預留位置) 進行顏色編碼,以提高可讀性。
  4. 編輯插入的片段。

在規則中使用可收闔的程式碼區域

建立可收闔程式碼區域和註釋

定義可收闔程式碼區域和註釋可使規則文字區域更整潔。

程式碼區域

  • 插入單引號 (其後跟一個左方括號),以指示可收闔程式碼區域的開始。使用單引號 (其後跟一個右方括號),以指示可收闔程式碼區域的結束。
  • 按一下節點圖示 (-) 可收闔程式碼。

註釋

  • 在一行的開頭插入三個單引號可將其定義為可收闔註釋。如果註釋佔了多個行,請在每行的開頭均插入三個單引號。
  • 按一下節點圖示 (-) 可收闔註釋。

操控可收闔程式碼區域和註釋的大綱

在規則文字區域中使用以下關聯式功能表選項可操控可收闔程式碼區域和註釋:

  • 按一下右鍵,然後選取「大綱」「切換大綱展開」,可在游標位置展開和收闔可收闔程式碼區域或註釋。
  • 按一下右鍵,然後選取「大綱」「切換所有大綱」,可展開和收闔規則中的所有可收闔程式碼區域和註釋。
  • 按一下右鍵,然後選取「大綱」「取消大綱」,可停用所有大綱功能並展開所有收闔的程式碼區域或註釋。大綱樹也會從顯示中移除。若要啟用大綱功能,請按一下右鍵並選取「大綱」「啟動自動大綱」

阻止規則自動執行

  1. 在「規則編輯器」中開啟規則。
  2. 選取「選項」頁籤。
  3. 選取「已抑制」勾選方塊。
  4. 按一下「確定」。
    註: 您可以手動執行抑制的規則。也可以在「iLogic 編輯器」中抑制規則。

執行規則,但不顯示 Inventor 對話方塊

  1. 在「規則編輯器」中開啟規則。
  2. 選取「選項」頁籤。
  3. 選取「靜謐作業」勾選方塊。
  4. 按一下「確定」。

當所參考參數的值發生變更時立即執行從屬規則

  1. 在「規則編輯器」中開啟規則。
  2. 選取「選項」頁籤。
  3. 選取標示為「立即觸發從屬規則」的勾選方塊。
  4. 按一下「確定」。
    註: 透過立即執行從屬規則,您可以在設定參數後包括明確的模型更新。更新發生時,參數已變更,並且從屬規則已執行。

阻止規則在參數變更時執行

  1. 在「規則編輯器」中開啟規則。
  2. 選取「選項」頁籤。
  3. 選取標示為「不自動執行」的勾選方塊。
  4. 按一下「確定」。
    註: 如果選取此選項,您將只能透過以下方式執行規則:手動執行、透過事件觸發器執行,或者透過 iLogicVB.RunRule 執行。

在規則間共用程式碼

  1. 在「規則編輯器」中開啟規則。
  2. 選取「選項」頁籤。
  3. 選取標示為「Straight VB 程式碼」的勾選方塊。
  4. 按一下「確定」。

iLogic 不會預處理規則中標識為 Straight VB 程式碼的程式碼,因此,Inventor 參數名稱在規則中無法識別。規則應該包含可以從其他規則呼叫的類別或模組。使用此選項在規則間共用程式碼,或者做為保留程式碼模組的方法。但是,請注意,共用程式碼更難於編寫。

為「規則編輯器」選擇替用字體型式和大小

  1. 在「規則編輯器」中開啟規則。
  2. 選取「選項」頁籤。
  3. 按一下「選取字體」
  4. 選擇字體和大小。「範例」文字方塊會顯示選取的結果。
  5. 按一下「確定」。

為「擷取目前狀態」選項選取語法

對組合內的元件中的參數使用「擷取目前狀態」時,此選項僅影響組合。

  1. 在「規則編輯器」中開啟規則。
  2. 選取「選項」頁籤。
  3. 選取「使用元件名稱」勾選方塊,以將元件名稱包括為語法一部分 (例如,Parameter("PartA:1", "d0") = 5.6 in)。為使規則更容易移植,建議選取此選項。

    或者,清除該勾選方塊以排除元件名稱 (例如,PartA.ipt.d0 = 5.6 in)。

  4. 按一下「確定」。
    註: 在組合層級建立規則時,您可以透過按一下參數名稱將參數插入到規則中。如果您後續將元件名稱從其原始檔名變更為其他名稱,使用參數語法可以更容易找到該元件。

執行規則

若要手動執行規則,請在「iLogic 瀏覽器」中的規則上按一下右鍵,然後從關聯式功能表中選取「執行規則」。

若要確保規則中的參數與模型同步,請在執行規則之前從關聯式功能表中選取「重新產生規則」。

若要在規則內明確執行其他規則,請使用 iLogicVb.RunRule 函數。

對「iLogic 瀏覽器」樹進行重新排序

在「iLogic 瀏覽器」中,拖放任意規則以變更其在樹中的順序。如果您在某個位置放置規則,則在該位置上或者該位置下方的所有規則都將在樹中向下移動。

重新產生規則

將特定規則中的參數與模型同步的步驟:

  1. 在「iLogic 瀏覽器」中選取規則。
  2. 按一下右鍵,並從關聯式功能表中選取「重新產生規則」。

此指令會將規則重新連接至 Inventor 參數,重新編譯規則,然後執行規則。

重新產生目前文件中的所有規則

使用此指令可將所有規則中的參數與模型同步。

  1. 在「iLogic 瀏覽器」中選取文件。
  2. 按一下右鍵,並從關聯式功能表中選取「重新產生所有規則」。

或者,您也可以使用功能區上的「重新產生所有規則」指令。選取 「管理」頁籤 「iLogic」面板 「重新產生所有規則」

刪除規則

  1. 在功能區中,按一下 「管理」頁籤 「iLogic」面板 「iLogic 瀏覽器」
  2. 在規則上按一下右鍵,並從關聯式功能表中選取「刪除」。
  3. 當系統提示您確認選取時按一下「確定」。

刪除文件中的所有規則

當您已完成模型規劃,並且想要儲存或匯出範例規劃時,請使用此指令。此指令會移除所有規則。

註: 如果在組合中執行此指令,則次組合和零件中的所有規則也將被刪除。

使用外部規則

建立外部規則

「iLogic 瀏覽器」包括一個外部規則頁籤。透過此頁籤,您可以載入外部規則或建立新外部規則。

使既有規則成為外部規則的步驟:

  1. 開啟規則。
  2. 複製程式碼。
  3. 建立新外部規則,並將複製的程式碼貼上到新規則中。

將外部規則儲存成 .iLogicVb 檔案 (建議使用此副檔名),或者儲存成 .vb 或 .txt 檔案。將外部規則儲存在從其他規則執行這些外部規則時能夠找到的資料夾中。iLogic 會按照列示順序在以下資料夾中尋找外部規則檔案:

  • 目前 Inventor 文件所在的資料夾 (允許連同關聯規則一起複製模型)
  • 目前的 Inventor 專案工作區資料夾
  • 在「iLogic 規劃」中設定的資料夾清單 (通常用於工作群組或公司規則)

「規則瀏覽器」為樹中的頂部節點 (「檔案中的外部規則」) 及每個規則提供關聯式功能表。

建立外部規則圖示

您可以為「iLogic 瀏覽器」中顯示的外部規則包括圖示。在規則檔案所在的資料夾中建立一個與規則檔案同名的 .bmp 檔案 (建議大小為 16 x 16)。

例如,如果外部規則名為 Custom Checks Rule.iLogicVb,則將該圖示檔案命名為 Custom Checks Rule.bmp

建立點陣圖影像後,重新啟動 Autodesk Inventor 即可顯示該圖示。Autodesk Inventor 執行時,您無法編輯該圖示。

編輯外部規則

若要編輯外部規則,請開啟「編輯規則」對話方塊,然後按兩下樹中的規則以進行編輯。

也可以使用外部程式 (例如「記事本」) 編輯規則。儲存規則後,在樹中使用關聯式功能表中的「從檔案重新載入」可將變更置入 Inventor。

外部規則和參數

外部規則不會因回應特定參數變更而自動執行。與內部規則不同,參數名稱無法做為規則變數自動可用。

例如,以下規則陳述式無法工作:

d1 = d0 * 0.5

而應使用以下陳述式:

Parameter("d1") = Parameter("d0") * 0.5

此陳述式適用於具有名為 d0 和 d1 的參數的任何零件或組合。此陳述式可用於對共用相同項目的相關零件執行作業。

使用精靈建立特殊規則

小心: 可使用 iLogic 表單設計器建立自訂使用者介面表單。使用者介面可以包含各種控制,以觸發規則、變更參數值以及設定 iProperty。「iLogic 表單設計師」不需要任何程式設計。如果需要的使用者介面超出「iLogic 表單設計師」的功能範圍,請使用 Visual Basic 來進行表單的設計和程式設計。

根據模型參數控制對話方塊

  1. 在「編輯規則」對話方塊的「精靈」頁籤上按一下「為對話方塊建立規則」

    「開啟 DLL 檔」對話方塊會顯示包含先前建立的 DLL 檔案的 iLogicAdd 資料夾的內容。

    註: 您可能需要將 iLogicAdd 資料夾建立為 C:\Program Files\Autodesk\Inventor {版本}\Bin\iLogicAdd
  2. 選取 DLL 以使用相應的類別和變數名稱移植「用於外部 DLL 的規則」對話方塊。
  3. 按一下「確定」以產生程式碼。

擷取目前顯示視圖

  1. 在「編輯規則」對話方塊的「精靈」頁籤上按一下「擷取目前視圖」
  2. 從「擷取視圖」對話方塊中選取一個大小選項。
    • 「儲存並還原目前的視圖實際範圍」- 將視圖還原為規則擷取視圖時的方位和縮放設定。
    • 「還原時不變更視圖大小」- 將模型移動至顯示中心並設定方位,但不變更縮放。
    • 「還原時佈滿模型實際範圍」- 將模型移動至顯示的中間位置並充填顯示 (與「縮放全部」相同)。
  3. 按一下「確定」以產生程式碼。

產生訊息方塊

使用此精靈建立產生訊息方塊的規則。

  1. 在「編輯規則」對話方塊的「精靈」頁籤上按一下「訊息方塊」
  2. 輸入要顯示在訊息方塊頂部的標題。
  3. 選取要顯示在訊息方塊上的按鈕組合。
  4. 指定預設按鈕,方法是根據按鈕選集,選取與該按鈕在按鈕順序中的相對位置對應的號碼。

    例如,如果您選擇了「YesNoCancel」做為按鈕計畫,而您的預設按鈕為「No」,則應選取 「2」

  5. 選取要顯示在訊息方塊中的狀態圖示。
  6. 輸入要顯示在訊息方塊中的文字,需要加引號。
  7. 按一下「預覽」以顯示使用您選取的項目的訊息方塊。
  8. 按一下「確定」以產生程式碼。

當參數值超出指定範圍時顯示診斷資訊

  1. 在「編輯規則」對話方塊的「精靈」頁籤上按一下「參數限制」
  2. 輸入參數名稱。
  3. 指定最大值和最小值。
  4. 輸入要針對最大值和最小值違犯顯示的訊息標題和訊息文字。
  5. 按一下「套用」以產生程式碼,或按一下「預設訊息」以將訊息重置為其預設文字。

使用規則顯示對話方塊

您可以使用規則顯示供使用者輸入的對話方塊。對話方塊可以包含在規則中;但是,將其包括在外部 DLL (類別資源庫) 中會更加簡單、靈活。

使用 Visual Studio 版本 2005 或 2008。Visual Basic Express 可以從 Microsoft 免費下載。

Visual Basic 2008 入門

  1. 如果您的電腦上還沒有安裝 Visual Basic 2008 Express,請從 Microsoft® 網站下載並進行安裝。該下載是免費的。
  2. 開啟 Visual Basic 2008 Express,然後建立類別庫類型的專案。
  3. 將該專案命名為 ClassLibrary1 (預設名稱),然後按一下「確定」。將您鍵入的名稱準確地記在一張紙上。此名稱後續在這些指令中十分重要。

    將顯示一個新視窗,「方案總管」位於該視窗的右上角。

  4. 在「方案總管」中,在該專案名稱上按一下右鍵並選取「加入」,然後從次功能表中選取「新增項目」。即顯示「加入新項目」對話方塊。
  5. 選取「對話方塊」樣板,然後按一下「加入」。

    即在「Windows Form 設計工具」中顯示對話方塊的圖形視圖。您可以使用此介面將控制項加入至對話方塊。

    螢幕左側的「工具箱」列示了您可以加入至對話方塊的控制項。對於此專案,請加入文字方塊以展示 Inventor 參數的值,並且可讓您編輯該參數。

  6. 從「工具箱」面板的「通用控制項」群組中按一下「文字方塊」,並將其拖曳至對話方塊中的灰色區域。您可以根據需要重新調整對話方塊的大小。
  7. 為該文字方塊加入標示,以展示參數名稱。
  8. 小心避開標示和文字方塊,按兩下對話方塊的背景以顯示程式碼編輯器。即顯示以下程式碼。
  9. 立即將游標移動至以下行下方 -
    Public Class Dialog1
  10. 加入此行 -
    Public d0 As Double
  11. 將游標置於子常式 OK_Button_Click 的頂部,Me.DialogResult... 陳述式的前面,然後按 Enter 以加入新行。
  12. 在新行上,加入 -
    d0 = TextBox1.Text

    您的程式碼顯示如下 -

  13. 使用「檔案」「儲存」或者「檔案」「全部儲存」儲存您的工作。

    現在,您基本可以建置專案了。當您執行建置作業時,Visual Basic 會建立 DLL 檔案。您可以透過修改建置作業的輸出路徑指定 Visual Basic 建立此檔案的位置。

  14. 按一下專案標題所在的頁籤,然後再次按一下「編譯」頁籤。輸出路徑為 -

    Program Files\Autodesk\Inventor {版本}\Bin\iLogicAdd\

  15. 若要建置專案,請在頂部的功能表中按一下「建置」頁籤。如果建置過程成功完成,則會在螢幕左下角的狀態列中顯示「建置成功」訊息。
  16. 使用「全部儲存」再次儲存您的工作,並開啟 Inventor。
  17. 使用「加入規則」建立名為 Form Rule 的規則,該規則由以下程式碼組成:
    AddReference "ClassLibrary1"
    Sub Main()
    dim dlg as new ClassLibrary1.Dialog1
    dlg.d0 = d0
    i = dlg.ShowDialog()
    if (i = vbOK)then
    d0 = dlg.d0
    end if
    End Sub
    註: 也可以使用「編輯規則」對話方塊的「精靈」頁籤上的「為對話方塊建立規則」建立此程式碼。

    此規則會將 Inventor 參數 d0 的目前值傳送給對話方塊,然後展示該對話方塊。使用對話方塊的使用者可以在對話方塊中編輯該值。如果該使用者按一下「確定」,則會將對話方塊中的值重新指定給該參數。

建立對話方塊

建立可讓您顯示並修改某些參數值的對話方塊的步驟:

  1. 開啟 Visual Studio。
  2. 建立類別庫類型的專案。
  3. 在「方案總管」中,在該專案名稱上按一下右鍵,然後依次選取「加入」「新增項目」「對話方塊」。

    即在「Windows Form 設計工具」中顯示對話方塊的圖形視圖。您可以使用此介面將控制項加入至對話方塊。

  4. 按一下「檢視」「工具箱」以預覽可用的控制項。
  5. 如果您需要顯示 Inventor 參數值並進行編輯的功能,請加入文字方塊控制項。為每個文字方塊加入標示,以顯示參數名稱。
  6. 按兩下對話方塊的背景。

    程式碼編輯器顯示在名為 Dialog1_Load 的新子常式中。

  7. 在此子常式中,在子常式結尾前面加入此行 -
    TextBox1.Text = d0
  8. 將游標移動至以下行下方 -
    Public Class Dialog1
  9. 加入此行 -
    Public d0 As Double
  10. 在名為 OK_Button_Click 的子常式頂部加入此行 -
    d0 = TextBox1.Text

    現在您的程式碼顯示如下 -

    Imports System.Windows.Forms
    Public Class Dialog1
    Public d0 As Double 
    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click  
      d0 = TextBox1.Text
      Me.DialogResult = System.Windows.Forms.DialogResult.OK
      Me.Close()
    End Sub
    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
      Me.DialogResult = System.Windows.Forms.DialogResult.Cancel  
      Me.Close()
    End Sub
    Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       TextBox1.Text = d0
    End Sub
    End Class
  11. 建置專案,並使用「檔案」「全部儲存」儲存專案。

建置專案的同時會建立一個 DLL。您可以:

  • 將該 DLL 複製到 iLogicAdd 目錄中,該目錄位於 Autodesk Inventor 程式 Bin 目錄下面 (通常位於 C:\Program Files\Autodesk\Inventor {版本}\Bin\iLogicAdd)。
  • 變更專案設定,以將該 DLL 自動傳送至該目錄。使用 「iLogic 規劃」指令可變更 iLogic 尋找 DLL 的目錄。請參閱〈擴充 iLogic 功能〉,以取得有關在規則中使用 DLL 檔案的更多資訊。

以下範例規則使用對話方塊:

AddReference "ClassLibrary1"
Sub Main()
dim dlg as new ClassLibrary1.Dialog1
dlg.d0 = d0
i = dlg.ShowDialog()
if (i = vbOK) then
d0= dlg.d0
end if
End Sub

此規則會將 Inventor 參數 d0 的目前值傳送給對話方塊,然後展示該對話方塊。使用對話方塊的使用者可以在對話方塊中編輯該值。如果該使用者按一下「確定」,則會將對話方塊中的值重新指定給該參數。

可以自動產生類似的對話方塊程式碼。在「編輯規則」對話方塊中,選取「精靈」頁籤,然後選取「為對話方塊建立規則」。