Criação de Regra de Tamanho de Bloco

Agora que pode ser alterado o tamanho de cada porto, deve ser determinado qual face tem o maior porto, de modo que o bloco possa ser ajustado de forma adequada. É requerido outra regra.

  1. Adicione uma nova regra denominada block_size_rule.

    Para determinar o porto de maior tamanho, procure os valores dos três parâmetros de tamanho de porto, e conserve o maior valor. Assim como em block_shape_rule, o comportamento dos blocos em T deve ser diferente daquele dos blocos em forma de cotovelo.

    Nos blocos em forma de T, são utilizados todos os três portos, de maneira que se deve verificar o tamanho de todos eles. Nos blocos em forma de cotovelo, não é verificado o Porto B, que é excluído. A função MaxOfMany é utilizada para obter o valor mais alto de um conjunto de valores de entrada.

  2. Inicie block_size_rule de acordo com a demonstração, seja diretamente na área de texto ou a partir das instruções genéricas disponíveis na barra de ferramentas. Para inserir a função MaxOfMany, expanda o nó Matemática na área Fragmentos e clique duas vezes em MaxOfMany.

    Copie bloco de código

    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

    Uma nova variável local denominada porta contém o tamanho da maior porta disponível. Agora deve ser indicado ao modelo que fazer com esta informação. O modelo obtém a informação de uma folha de cálculo de Excel inserida, de modo que a folha de cálculo é observado para atualizar os tamanhos globais do modelo.

  3. Clique Entrar duas vezes para adicionar espaços em branco na regra.
  4. Assim como foi feito com regra criada previamente, insira uma cópia da função FindRow (incorporada). Modifique-a para obter os valores para outros parâmetros da folha de cálculo incorporada localizando a linha de informação adequada.

    Copiar Bloco de Código

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

    A coluna port_size será utilizada na consulta, e o valor da variável atribuída será o valor pesquisado.

  5. Defina os parâmetros do modelo com a informação da folha de cálculo inserida de Excel, utilizando a linha localizada para o porto de maior tamanho.

    Copiar Bloco de Código

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

    Agora se determinou qual é o maior porto, e é ajustado o tamanho da parte superior do bloco por consequência. Agora, determinaremos a altura do bloco examinando o T e o cotovelo para definir qual porto tem maior tamanho na face Porto A / Porto B.

  6. Crie outra sentença que utilize outra variável local porta para manter este valor. Como o Porto B não é utilizado para blocos de estilo cotovelo, a sentença inclui diferentes etapas em função da configuração desta definição.

    Copiar Bloco de Código

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

    A função MaxOfMany não é utilizada para blocos de estilo cotovelo, pois apenas um dos valores deve ser considerado. A variável pode ser definida a partir desse valor.

  7. Crie outra sentença FindRow (incorporada) para obter os valores de altura do bloco a partir da folha de cálculo de Excel.

    Copiar Bloco de Código

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
  8. Utilize a função CurrentRowValue para definir a altura do bloco.

    Copiar Bloco de Código

    port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
  9. Por último, defina o valor para dois parâmetros adicionais. O primeiro parâmetro define a altura de bloco. O segundo parâmetro define o deslocamento vertical do Porto C.

    Para este valor, é adicionado lógica especial para inserir espaço adicional para além do deslocamento vertical utilizada para os outros portos. Esta informação é obtida a partir de outra célula de folha de cálculo. Somente é obtido para os blocos de estilo cotovelo.

    Copiar Bloco de Código

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

    A regra block_size está completa.

  10. Clique em OK na caixa de diálogo Editar Regra.
  11. Altere qualquer dos tamanhos de porto na caixa de diálogo Parâmetros, e observe a atualização do modelo.

Anterior | Avançar