Creación de regla de tamaño de bloque

Ahora que se puede cambiar el tamaño de cada puerto, se debe determinar qué cara tiene el mayor puerto, de modo que el bloque se pueda ajustar de forma adecuada. Se requiere otra regla.

  1. Añada una nueva regla llamada block_size_rule.

    Para determinar el puerto de mayor tamaño, examine los valores de los tres parámetros de tamaño de puerto y conserve el valor más alto. Como con block_shape_rule, el comportamiento de los bloques en T debe ser diferente al de los bloques de estilo de codo.

    En los bloques en forma de T, se utilizan los tres puertos, de modo que debe comprobar el tamaño de todos ellos. En los bloques en forma de codo, no se comprueba el puerto B, que se ha suprimido. Se utiliza la función MaxOfMany para obtener el valor más alto de un conjunto de valores de entrada.

  2. Inicie block_size_rule como se muestra, escribiéndola directamente en el área de texto o insertándola desde las sentencias genéricas disponibles en la barra de herramientas. Para insertar la función MaxOfMany, expanda el nodo Matemáticas en el área Fragmentos y haga doble clic en MaxOfMany.

    Copie el bloque 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

    Una nueva variable local denominada port contiene el tamaño del mayor puerto disponible. Ahora se debe indicar al modelo qué hacer con esta información. El modelo obtiene la información de una hoja de cálculo de Excel insertada, de modo que la hoja de cálculo se observa para actualizar los tamaños globales del modelo.

  3. Pulse Intro dos veces para añadir espacios en blanco en la regla.
  4. Como con la regla que creó previamente, inserte una copia de la función FindRow(incrustada). Modifíquela para obtener los valores para otros parámetros desde la hoja de cálculo incrustada localizando la fila de información adecuada.

    Copie bloque de código

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

    Se utiliza la columna port_size para la búsqueda, y el valor de la variable asignada como valor que se desea buscar.

  5. Defina los parámetros del modelo con la información de la hoja de cálculo de Excel insertada, utilizando la fila encontrada para el puerto de mayor tamaño.

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

    Ahora se ha determinado cuál es el puerto más grande, y se está ajustando el tamaño de la parte superior del bloque en consecuencia. A continuación, determinaremos la altura del bloque examinando la T y el codo para establecer cuál es el tamaño de puerto mayor en la cara Puerto A / Puerto B.

  6. Cree otra sentencia que utilice otra variable local porta para conservar este valor. Debido a que el Puerto B no se utiliza para bloques de estilo de codo, la sentencia incluye diferentes pasos en función de la configuración de este parámetro.

    Copie bloque de código

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

    La función MaxOfMany no se utiliza para bloques de estilo de codo, ya que solo se debe tener en cuenta uno de los valores. Se puede establecer la variable a partir de ese valor.

  7. Cree otra sentencia FindRow (incrustada) para obtener los valores de altura del bloque a partir de la hoja de cálculo de Excel.

    Copie bloque de código

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
  8. Utilice la función CurrentRowValue para definir la altura del bloque.

    Copie bloque de código

    port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
  9. Por último, defina el valor de dos parámetros adicionales. El primer parámetro define la altura de bloque. El segundo parámetro define el desfase vertical del Puerto C.

    Para este valor, se añade lógica especial para insertar espacio adicional más allá del desfase vertical para el resto de los puertos. Esta información se obtiene a partir de otra celda de hoja de cálculo. Solo se obtiene para los bloques de estilo de codo.

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

    La regla block_size se habrá completado.

  10. Pulse Aceptar en el cuadro de diálogo Editar regla.
  11. Cambie cualquiera de los tamaños de puerto en el cuadro de diálogo Parámetros y observe la actualización del modelo.

Anterior | Siguiente