Tworzenie reguły sterującej rozmiarem bloku

Skoro możliwa jest zmiana rozmiaru każdego z gniazd, musimy określić, na której powierzchni znajdzie się największe gniazdo, aby poprawnie dostosować rozmiar bloku. Do tego wymagana jest kolejna reguła.

  1. Dodaj nową regułę o nazwie block_size_rule.

    Aby określić największe gniazdo, należy przyjrzeć się wartościom parametrów rozmiaru trzech gniazd i zachować najwyższą wartość. Tak jak w przypadku reguły block_shape_rule, zachowanie dla bloków teownikowych musi być inne niż dla bloków kolankowych.

    W blokach teownikowych wykorzystywane są wszystkie trzy gniazda, należy więc sprawdzić rozmiary wszystkich z nich. W blokach kolankowych nie trzeba sprawdzać rozmiaru Gniazda B, które jest wyłączone. Użyj funkcji MaxOfMany, by pobrać najwyższą wartość z zestawu wartości wejściowych.

  2. Rozpocznij regułę block_size_rule, jak pokazano, wpisując funkcję bezpośrednio w polu tekstowym lub wstawiając element z listy instrukcji ogólnych dostępnych na pasku narzędzi. Aby wstawić funkcję MaxOfMany, rozwiń węzeł Math w polu Szablony kodu, a następnie dwukrotnie kliknij pozycję MaxOfMany.

    Kopia bloku kodu

    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

    Nowa lokalna zmienna o nazwie port zawiera rozmiar największego dostępnego gniazda. Musimy teraz poinstruować model, w jaki sposób informacje te mają zostać wykorzystane. Model pobiera informacje z osadzonego arkusza kalkulacyjnego Excel, musimy więc przyjrzeć się arkuszowi i zaktualizować ogólne rozmiary modelu.

  3. Dwukrotnie naciśnij klawisz Enter, aby dodać nieco wolnego miejsca do reguły.
  4. Tak jak w przypadku uprzednio utworzonej reguły, wstaw kopię funkcji FindRow (osadzone). Zmodyfikuj funkcję, aby pobrać wartości dla innych parametrów z osadzonego arkusza kalkulacyjnego poprzez wyszukiwanie właściwego wiersza z danymi.

    Kopia bloku kodu

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

    Do wyszukiwania wykorzystaj kolumnę port_size, a jako wyszukiwaną wartość podaj wartość przypisanej zmiennej.

  5. Określ parametry modelu przy użyciu informacji z osadzonego arkusza Excel, korzystając z wyszukanego wiersza dla największego rozmiaru gniazda.

    Kopia bloku kodu

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

    Ustaliliśmy, które gniazdo jest największe, musimy więc odpowiednio określić rozmiar górnej powierzchni bloku. Musimy następnie określić wysokość bloku, przyglądając się teownikowi i kolanku, by ocenić, który rozmiar gniazda jest większy na powierzchni Port A / Port B.

  6. Utwórz nową instrukcję wykorzystującą lokalną zmienną porta, by zachować tę wartość. Ponieważ Port B nie jest wykorzystywany w blokach kolankowych, instrukcja musi zawierać różne polecenia w zależności od tego ustawienia.

    Kopia bloku kodu

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

    Funkcja MaxOfMany nie jest stosowana w przypadku bloków kolankowych, ponieważ wymagane jest rozpatrzenie tylko jednej wartości. Dzięki tej wartości możemy określić zmienną.

  7. Utwórz kolejną instrukcję FindRow (osadzone), aby pobrać wartości wysokości bloku z arkusza kalkulacyjnego Excel.

    Kopia bloku kodu

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
  8. Użyj funkcji CurrentRowValue, aby określić wysokość bloku.

    Kopia bloku kodu

    port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
  9. Na zakończenie określ wartość dwóch dodatkowych parametrów. Pierwszy parametr określa wysokość bloku. Drugi parametr określa odsunięcie pionowe Portu C.

    Na potrzeby tej wartości należy zastosować specjalną składnię logiczną, by wstawić dodatkowy odstęp za odsunięciem pionowym wykorzystywanym dla pozostałych gniazd. Informacje te są pobierane z osobnego arkusza kalkulacyjnego. Operacja ta jest konieczna tylko w przypadku bloków kolankowych.

    Kopia bloku kodu

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

    Reguła block_size jest gotowa.

  10. Kliknij przycisk OK w oknie dialogowym Edycja reguły.
  11. Zmień dowolny z rozmiarów gniazd w oknie dialogowym Parametry, a następnie przyjrzyj się aktualizacji modelu.

Wstecz | Dalej