建立擋塊大小規則

我們現在既已能變更每個孔的大小,還必須確定具有最大孔的面,以便擋塊可以適當變更大小。這需要另外的規則。

  1. 新增名為 block_size_rule 的規則。

    我們檢查三個孔大小參數的值,然後保留最大值,以確定最大孔。如 block_shape_rule 一樣,T 形擋塊的行為必須與彎頭型式擋塊不同。

    T 形擋塊會使用所有三個孔,因此我們必須檢查所有孔的大小。對於彎頭型式擋塊,我們不檢查受抑制的孔 B。我們使用 MaxOfMany 函數從一組輸入值中取得最大值。

  2. 開始如下所示的 block_size_rule (直接將其鍵入文字區域或使用工具列上提供的一般陳述式插入)。若要插入 MaxOfMany 函數,請展開「片段」區域中的「數學」節點,然後按兩下「MaxOfMany」。

    複製程式碼塊

    If block = "tee" Then
    port = MaxOfMany(port_a_size,port_b_size,port_c_size)
    ElseIf block = "elbow" Then
    port = MaxOfMany(port_a_size,port_c_size)
    End If

    名為 port 的新本端變數會儲存最大可用孔的大小。現在,我們需要告訴模型使用此資訊執行什麼作業。模型從嵌入的 Excel 工作表中取得資訊,所以我們查看工作表,以更新模型的整體大小。

  3. 按兩下 Enter,以在規則中加入一些空白。
  4. 與先前建立的規則一樣,插入 FindRow (embedded) 函數的複本。對其進行修改,以在工作表中取得其他參數的值 (尋找適當的資訊列)。

    複製程式碼塊

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", port)

    我們要使用 port_size 欄進行查找,並將指定變數的值做為要尋找的值。

  5. 使用嵌入的 Excel 工作表中的資訊設定模型參數 (使用找到的最大孔大小列)。

    複製程式碼塊

    block_depth = GoExcel.CurrentRowValue("block_depth")
    port_c_depth_from_front = GoExcel.CurrentRowValue("port_c_depth_from_front")
    block_width = GoExcel.CurrentRowValue("block_width")
    port_a_hor_offset = GoExcel.CurrentRowValue("hor_offset")
    port_b_hor_offset = GoExcel.CurrentRowValue("hor_offset")
    port_c_hor_offset = GoExcel.CurrentRowValue ("hor_offset")

    我們現在已確定最大的孔,將要相應調整擋塊頂部的大小。現在,我們檢查 T 形和彎頭以確定孔 A/孔 B 面上較大的孔大小,來確定擋塊的高度。

  6. 建立另一個陳述式,其中使用另一個本端變數 porta 來儲存此值。因為孔 B 不適用於彎頭型式擋塊,所以該陳述式包括不同的步驟,具體取決於此設定。

    複製程式碼塊

    If block = "tee" Then
    porta = MaxOfMany(port_a_size, port_b_size)
    ElseIf block = "elbow"
    porta = port_a_size
    End If

    MaxOfMany 函數不適用於彎頭型式擋塊,因為彎頭型式擋塊中僅需考慮一個值。我們可以使用該值來設定變數。

  7. 建立另一個 FindRow (embedded) 陳述式,以從 Excel 工作表取得擋塊的高度值。

    複製程式碼塊

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
  8. 使用 CurrentRowValue 函數設定擋塊的高度。

    複製程式碼塊

    port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
  9. 最後,再設定其他兩個參數的值。第一個參數設定圖塊高度。第二個參數設定孔 C 的垂直偏移。

    對於此值,我們加入了特殊的邏輯,以在其他孔所用偏移之外再加入額外的空間。此資訊取自另一個工作表儲存格。我們僅對彎頭型式擋塊執行此作業。

    複製程式碼塊

    If block = "elbow" Then
    port_c_vert_offset = GoExcel.CurrentRowValue("vert_offset") + (GoExcel.CurrentRowValue("port_dia")/4)
    Else
    port_c_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    End If
    block_height = GoExcel.CurrentRowValue("block_height")

    block_size 規則已完成。

  10. 在「編輯規則」對話方塊中,按一下「確定」
  11. 在「參數」對話方塊中變更任意孔大小,並觀察模型的更新。

上一頁 | 下一頁