Erstellen einer Blockgrößenregel

Jetzt können Sie die Größe der einzelnen Ports ändern, müssen jedoch noch bestimmen, welche Fläche den größten Port aufweist, sodass der Block entsprechend angepasst werden kann. Dies erfordert eine weitere Regel.

  1. Fügen Sie eine neue Regel mit dem Namen block_size_rule hinzu.

    Um den größten Port zu bestimmen, prüfen Sie die Werte für die drei Port-Größenparameter und behalten den größten Wert bei. Wie bei block_shape_rule muss das Verhalten für Blöcke im T-Stil sich von demjenigen für Blöcke im Bogenstil unterscheiden.

    Für Blöcke im T-Stil werden alle drei Ports verwendet. Daher muss die Größe der drei Ports überprüft werden. Bei Blöcken im Bogenstil muss Port B nicht überprüft werden, da er unterdrückt ist. Verwenden Sie die Funktion MaxOfMany zum Abrufen des größten Werts aus einem Satz von Eingabewerten.

  2. Beginnen Sie block_size_rule wie gezeigt durch direkte Eingabe im Textbereich oder durch Auswahl von verfügbaren allgemeinen Anweisungen im Werkzeugkasten. Zum Einfügen der Funktion MaxOfMany erweitern Sie im Bereich Snippets den Knoten Mathematikoperatoren, und doppelklicken Sie auf MaxOfMany.

    Codeblock zum Kopieren

    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

    Eine neue lokale Variable namens port enthält die Größe des größten verfügbaren Ports. Nun müssen Sie angeben, wie das Modell diese Informationen verarbeiten soll. Das Modell ruft die Informationen aus einer eingebetteten Excel-Tabelle ab. Daher müssen Sie diese Tabelle zur Aktualisierung der gesamten Modellgröße verwenden.

  3. Drücken Sie die EINGABETASTE zweimal, um Leerzeilen in der Regel einzufügen.
  4. Wie in der zuvor erstellten Regel fügen Sie eine Kopie der Funktion FindRow (eingebettet) ein. Ändern Sie sie, um durch Suchen der entsprechenden Zeile in der eingebetteten Tabelle Werte für andere Parameter abzurufen.

    Codeblock zum Kopieren

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

    Die Spalte port_size wird für die Suche und der Wert der zugewiesenen Variable als zu suchender Wert verwendet.

  5. Legen Sie Modellparameter mit Informationen aus der eingebetteten Excel-Tabelle fest, indem Sie die gefundene Zeile für den größten Port verwenden.

    Codeblock zum Kopieren

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

    Sie haben festgestellt, welcher Port der größte ist, und passen nun die Größe der Blockoberseite an. Nun bestimmen Sie die Höhe des Blocks, indem Sie das T-Stück und den Bogen untersuchen und feststellen, ob Port A oder Port B größer ist.

  6. Erstellen Sie eine weitere Anweisung, die eine andere lokale Variable port_a verwendet, um diesen Wert aufzunehmen. Da Port B nicht für Blöcke im Bogenstil verwendet wird, enthält die Anweisung verschiedene Schritte, die von dieser Einstellung abhängig sind.

    Codeblock zum Kopieren

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

    Die Funktion MaxOfMany wird nicht für Blöcke im Bogenstil verwendet, da nur ein Wert berücksichtigt werden muss. Sie können die Variable von diesem Wert aus festlegen.

  7. Erstellen Sie eine weitere Anweisung vom Typ FindRow (eingebettet), um die Höhe des Blocks aus der Excel-Tabelle abzurufen.

    Codeblock zum Kopieren

    i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "port_size", "=", porta)
  8. Verwenden Sie die Funktion CurrentRowValue, um die Höhe des Blocks festzulegen.

    Codeblock zum Kopieren

    port_a_vert_offset = GoExcel.CurrentRowValue("vert_offset")
    port_b_vert_offset = GoExcel.CurrentRowValue("vert_offset")
  9. Legen Sie zum Schluss den Wert für zwei zusätzliche Parameter fest. Der erste Parameter legt die Höhe des Blocks fest. Der zweite Parameter bestimmt den vertikalen Versatz von Port C.

    Für diesen Wert fügen Sie spezielle Logik zum Einfügen von zusätzlichem Raum über dem vertikalen Versatz für die anderen Ports ein. Diese Informationen werden aus einer anderen Tabellenzelle abgerufen. Dies wird nur für Blöcke im Bogenstil durchgeführt.

    Codeblock zum Kopieren

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

    Die Regel block_size ist abgeschlossen.

  10. Klicken Sie im Dialogfeld Regel bearbeiten auf OK.
  11. Ändern Sie eine beliebige Port-Größe im Dialogfeld Parameter, und beobachten Sie, wie das Modell aktualisiert wird.

Zurück | Weiter