Vytvoření pravidla rozměrů bloku

Nyní když můžeme měnit rozměry každého portu, musíme určit která plocha má největší port, aby byly rozměry bloku adekvátně stanoveny. To vyžaduje další pravidlo.

  1. Přidejte nové pravidlo s názvem block_size_rule.

    Chceme-li určit největší port, prozkoumáme hodnoty parametrů rozměrů tří portů a uložíme největší hodnotu. Stejně jako v případě pravidla block_shape_rule se liší chování bloků se stylem „tvarovka T“ od bloků se stylem „koleno“.

    V případě bloků typu T-kusu jsou použity všechny tři porty, takže kontrolujeme rozměry všech portů. V případě bloků typu kolena nekontrolujeme Port B, který je vypnutý. Největší hodnotu ze sady vstupních hodnot lze získat pomocí funkceMaxOfMany.

  2. Pravidlo block_size_rule začněte vytvářet podle ilustrace. Kód můžete zadat přímo do pole ke vkládání textu nebo vložit některý z obecných příkazů na panelu nástrojů. Chcete-li vložit funkci MaxOfMany, rozbalte uzel Matematické v části Fragmenty a dvakrát klikněte na funkci MaxOfMany.

    Kopírování bloku kódu

    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

    Nová místní proměnná nazvaná port obsahuje rozměry největšího dostupného portu. Nyní musíme modelu říct, co má s těmito informacemi dělat. Model získává informace z vloženého tabulkového pro cesoru aplikace Excel, takže se podíváme do tabulkového pro cesoru za účelem aktualizace všech rozměrů modelu.

  3. Stiskněte dvakrát klávesu Enter, abyste přidali do pravidla nějaké mezery.
  4. Stejně jako u dříve vytvořeného pravidla vložte kopii funkce FindRow (vložený). Proveďte úpravu k získání hodnot pro ostatní parametry z vloženého tabulkového pro cesoru vyhledáním příslušného datového řádku.

    Kopírování bloku kódu

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

    K vyhledání je použit sloupec port_size a jako vyhledávaná hodnota je zadána hodnota přiřazené proměnné.

  5. Nastavte parametry modelu pomocí dat z vloženého tabulkového pro cesoru aplikace Excel z vyhledaného řádku pro největší rozměry portu.

    Kopírování bloku kódu

    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")

    Nyní jsme určili který port je největší a podle toho stanovíme rozměry horní části bloku. Nyní určíme výšku bloku prozkoumáním T-kusu a kolena k určení které rozměry portu jsou větší na ploše portu A / portu B.

  6. Vytvořte další příkaz, který tuto hodnotu ukládá do jiné místní proměnné porta. Protože port B se nepoužívá pro bloky typu kolena, tento příkaz obsahuje jiné kroky v závislosti na tomto nastavení.

    Kopírování bloku kódu

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

    Funkce MaxOfMany není používána na bloky se stylem „koleno“, protože je nutné uvažovat pouze jednu hodnotu. Z této hodnoty můžeme nastavit pro měnnou.

  7. Vytvořte další příkaz FindRow (vložený) a získejte hodnoty výšky bloku z tabulky aplikace Excel.

    Kopírování bloku kódu

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
  8. Výšku bloku nastavte pomocí funkce CurrentRowValue.

    Kopírování bloku kódu

    port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
  9. Nakonec nastavte hodnotu pro další dva parametry. První parametr nastavuje výšku bloku. Druhý parametr nastavuje vertikální odsazení portu C.

    Pro tuto hodnotu přidáme speciální logiku k vložení pracovního prostoru za vertikální odsazení použité pro ostatní porty. Tato informace je získaná z jiné buňky tabulkového pro cesoru. Toto děláme pouze pro bloky typu kolena.

    Kopírování bloku kódu

    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")

    Pravidlo block_size je dokončeno.

  10. V dialogu Upravit pravidlo klikněte na tlačítko OK.
  11. V dialogu Parametry změňte jakýkoliv rozměr portu a sledujte aktualizaci modelu.

Předchozí | Další