Создание правила размера коллектора

Функция изменения размера канала предполагает наличие функции, определяющей размер грани наибольшего канала для установки соответствующих размеров коллектора. Для этого необходимо создать еще одно правило.

  1. Добавьте новое правило с именем block_size_rule.

    Для определения наибольшего канала выполняется анализ трех параметров размеров канала, а затем сохраняется максимальное значение. Как и в случае с block_shape_rule, поведение Т-образных коллекторов должно отличаться от поведения коленчатых коллекторов.

    Для Т-образных коллекторов используются все три канала, поэтому выполняется проверка всех трех значений. Для коленчатых коллекторов проверка канала 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 (внедрено). Измените ее, чтобы получить из внедренной таблицы значения для других параметров путем поиска соответствующей строки со сведениями.

    Копировать блок кода

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

    Теперь наибольший канал известен, а размер коллектора соответствующим образом изменяется. Затем следует рассчитать высоту коллектора путем анализа обеих форм и определения наибольшего канала на грани канал 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 (внедрено) для получения значений высоты коллектора из таблицы 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. Измените размеры каналов в диалоговом окне "Параметры" и убедитесь в том, что модель обновляется.

Назад | Далее