Creazione della regola di dimensioni del blocco

È ora possibile modificare le dimensioni di ciascuna porta ed è necessario determinare quale faccia sarà dotata della porta più grande, in modo che il blocco possa essere dimensionato correttamente. Questa operazione richiede un'altra regola.

  1. Aggiungere una nuova regola denominata block_size_rule.

    Per determinare quale porta è più grande, è necessario esaminare i valori dei parametri di dimensione delle tre porte e individuare il valore più alto. Come con block_shape_rule, il comportamento per i blocchi stile T deve essere diverso rispetto a quello di blocchi stile gomito.

    Per i blocchi stile T vengono utilizzate tutte e tre le porte, perciò è necessario controllare le dimensioni di ognuna. Per blocchi stile gomito, invece, non è necessario verificare Port B, che è stata soppressa. È possibile utilizzare la funzione MaxOfMany per ottenere il valore maggiore da un gruppo di valori immessi.

  2. Avviare block_size_rule come indicato, digitandolo direttamente nell'area di testo o inserendo una delle istruzioni generiche disponibili nella barra degli strumenti. Per inserire la funzione MaxOfMany, espandere il nodo Operatori matematici nell'area Frammenti, quindi fare doppio clic su MaxOfMany..

    Copiare il blocco di codice sottostante

    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 nuova variabile locale denominata port contiene le dimensioni della porta più grande disponibile. Ora è necessario comunicare al modello cosa fare con queste informazioni. Il modello ottiene le informazioni da un foglio di calcolo Excel incorporato, è quindi necessario esaminare il foglio di calcolo per aggiornare le dimensioni complessive del modello.

  3. Premere due volte INVIO per aggiungere alcuni spazi vuoti nella regola.
  4. Come con la regola creata in precedenza, inserire una copia della funzione FindRow(incorporato). Modificarla per ottenere i valori per altri parametri dal foglio di calcolo incorporato individuando la riga di informazioni appropriata.

    Copiare il blocco di codice sottostante

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

    Si stanno utilizzando la colonna port_size per la ricerca e il valore della variabile assegnata come valore da cercare.

  5. Impostare i parametri di modello con informazioni provenienti dal foglio di calcolo Excel incorporato, utilizzando la riga che è stata trovata per le dimensioni della porta più grande.

    Copiare il blocco di codice sottostante

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

    Dopo aver così definito la porta più grande, è ora necessario dimensionare la parte superiore del blocco di conseguenza. A questo punto, è necessario determinare l'altezza del blocco esaminando il T e il gomito, per selezionare la porta di dimensioni maggiori sulla faccia Port A/Port B.

  6. Creare un'altra istruzione che utilizzi un'altra variabile locale porta per mantenere questo valore. Poiché Port B non viene utilizzata per blocchi di tipo a gomito, l'istruzione include diversi passaggi, a seconda dell'impostazione.

    Copiare il blocco di codice sottostante

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

    La funzione MaxOfMany non viene utilizzata per blocchi di tipo a gomito, poiché deve essere considerato un solo valore. È possibile impostare la variabile da tale valore.

  7. Creare un'altra istruzione FindRow(incorporato) per ottenere i valori di altezza del blocco dal foglio di calcolo Excel.

    Copiare il blocco di codice sottostante

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
  8. Utilizzare la funzione CurrentRowValue per impostare l'altezza del blocco.

    Copiare il blocco di codice sottostante

    port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
  9. Infine, impostare il valore per due parametri aggiuntivi. Il primo parametro imposta l'altezza del blocco. Il secondo parametro imposta l'offset verticale di Port C.

    Per questo valore, è necessario aggiungere una logica speciale per inserire ulteriore spazio oltre l'offset verticale utilizzato per le altre porte. Tali informazioni vengono ricavate da un'altra cella del foglio di calcolo. È necessario eseguire tale operazione solo per blocchi di tipo gomito.

    Copiare il blocco di codice sottostante

    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 regola block_size è completa.

  10. Fare clic su OK nella finestra di dialogo Modifica regola.
  11. Modificare le dimensioni delle porte nella finestra di dialogo Parametri e osservare l'aggiornamento del modello.

Indietro | Avanti