Erstellen von Regeln in der Baugruppe

In den nächsten Lektionen erstellen Sie eine Reihe von Regeln zum Verwalten des Inhalts der Baugruppe.

Übertragen von Parametern von der Baugruppe an die Bauteile

Dieses Modell enthält ein Bauteil mit dem Namen manifold_block:1, das iLogic-Regeln beinhaltet. Sie müssen die Parameter auf Baugruppenebene an das Bauteil übertragen.

  1. Erstellen Sie eine Regel mit dem Namen assembly_to_parts_rule.

    Diese Regel legt Parameter im Bauteil basierend auf den entsprechenden Werten der Steuerparameter in der Baugruppe fest. Die Parameter-Funktion gibt den Komponentennamen und den Parameternamen an.

    Codeblock zum Kopieren

    Parameter("manifold_block:1", "block") = block 
    Parameter("manifold_block:1", "component_type") = component_type
    Parameter("manifold_block:1", "port_a_size") = port_a_size
    Parameter("manifold_block:1", "port_b_size") = port_b_size
    Parameter("manifold_block:1", "port_c_size") = port_c_size
  2. Klicken Sie auf OK, wenn Sie fertig sind.

Bearbeiten von Regeln auf Bauteilebene in einer Baugruppe

Im Lernprogramm Verteilerblock-Bauteil haben Sie dem Verteilerblock eine Regel hinzugefügt, mit der die T- und Bogen-Stile gesteuert werden. Sie müssen sie nun auch auf der Baugruppenebene hinzufügen. Anstatt die vorhandenen Regeln neu zu schreiben, kopieren Sie die ursprüngliche Regel.

  1. Doppelklicken Sie im Modell-Browser auf manifold_block:1. Die anderen Komponenten werden transparent.
  2. Klicken Sie in der Multifunktionsleiste auf Registerkarte Verwalten Gruppe iLogic Regel-Browser .
  3. Doppelklicken Sie auf component_type_rule.
  4. Kopieren Sie den Regeltext in die Zwischenablage.
  5. Klicken Sie auf Abbrechen, um das Dialogfeld Regel bearbeiten zu schließen.
  6. Doppelklicken Sie im Modell-Browser auf my_manifold_block.iam.
  7. Fügen Sie eine neue Regel mit dem Namen component_type_rule hinzu.
  8. Fügen Sie den kopierten Regeltext aus component_type_rule in den Regeltextbereich im Dialogfeld Regel bearbeiten ein.

    Codeblock zum Kopieren

    If component_type = "standard" Then
    port_b_size = port_a_size
    port_c_size = port_a_size
    End If
  9. Klicken Sie auf OK, um die neue Regel auf Baugruppenebene zu speichern.

Hinzufügen von port_a_rule

Beim Ändern der Größe von Port A müssen Sie verschiedene Aufgaben ausführen:

Fügen Sie dazu eine Regel hinzu:

  1. Stellen Sie sicher, dass die Verteilerblock-Baugruppe aktiv ist.
  2. Erstellen Sie eine Regel mit dem Namen port_a_rule.

    Mit dem ersten Teil dieser Regel wird der Abstand der Schraubenanordnung basierend auf der iPart-Tabelle des Verbindungsteils angepasst.

  3. Fügen Sie einen Codeblock hinzu, der die verwendete Zeile basierend auf dem Parameter port_a_size sucht. Anschließend werden Werte zwei verschiedenen Baugruppenparametern aus zwei anderen Spalten zugewiesen.

    Codeblock zum Kopieren

    i = iPart.FindRow("port_a_union", "port_size", "=", port_a_size)
    port_a_y_dist_between_screws = iPart.CurrentRowValue("y_dist_betwn_screw")
    port_a_x_dist_between_screws = iPart.CurrentRowValue("x_dist_betwn_screw")
    Anmerkung: Die hier verwendeten iPart-bezogenen Anweisungen finden Sie im Bereich Snippets unter dem Knoten iParts der Registerkarte System.

    Mit dem nächsten Teil der Regel wird die entsprechende iPart-Zeile im Schraubenbauteil basierend auf der ausgewählten Port-Größe ausgewählt.

  4. Verwenden Sie eine Reihe von If-Anweisungen zum Festlegen des entsprechenden iPart-Elements entsprechend dem aktuellen Wert des Parameters port_a_size.

    Codeblock zum Kopieren

    If port_a_size = .50 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-01") 
    ElseIf port_a_size = 0.75 Then 
    iPart.ChangeRow("port_a_union_screw", "Screw-02")
    ElseIf port_a_size = 1.00 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-02")
    ElseIf port_a_size = 1.25 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-03")
    ElseIf port_a_size = 1.50 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-04")
    ElseIf port_a_size = 2.00 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-04")
    ElseIf port_a_size = 2.50 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-05")
    ElseIf port_a_size = 3.00 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-06")
    End If
  5. Für den letzten Teil dieser Regel fügen Sie eine Anweisung hinzu, die die Bauteilenummer für den Bördelflansch abruft und in einem Baugruppenparameter speichert, der in einer anderen Regel später in diesem Lernprogramm verwendet wird.

    Codeblock zum Kopieren

    port_a_union_part_number = iProperties.Value("port_a_union", "Project", "Part Number")
  6. Klicken Sie auf OK, um die Regel und die Baugruppendatei zu speichern.

Hinzufügen von port_b_rule

Port B unterscheidet sich von Port A und Port C, da er in einem Verteilerblock im Bogenstil nicht existiert. Wenn der Verteilerblock ein Block im Bogenstil ist, müssen Sie den Verbindungsaufsatz und die Schrauben für diesen Port unterdrücken. Sie müssen auch die dem Verbindungsaufsatz zugewiesenen Flächenabhängigkeiten unterdrücken.

Da Sie Komponenten unterdrücken, stellen Sie eine Detailgenauigkeit ein, bevor Sie die Regel schreiben. Regeln, die sich auf Elemente mit Bezug auf die Detailgenauigkeit in einer Baugruppe auswirken, erfordern, dass vor dem Schreiben der Regel eine benutzerdefinierte Detailgenauigkeit definiert und gespeichert wird. Wenn die benutzerdefinierte Detailgenauigkeit nicht definiert ist, generiert iLogic eine Fehlermeldung.

Festlegen von Detailgenauigkeit

  1. Erweitern Sie im Modell-Browser den Knoten Darstellungen und anschließend den Knoten Detailgenauigkeit.
  2. Klicken Sie mit der rechten Maustaste auf den Knoten Detailgenauigkeit, und wählen Sie Neue Detailgenauigkeit aus.

    Es wird eine neue Detailgenauigkeit hinzugefügt.

  3. Doppelklicken Sie langsam auf Detailgenauigkeit1, und benennen Sie sie in iLogic um.

Schreiben der Regel

Jetzt können Sie die Regel schreiben.

  1. Erstellen Sie eine Regel mit dem Namen port_b_rule.
  2. Bestimmen Sie für den ersten Teil der Regel, ob ein Block im T-Stil erstellt wird, und speichern Sie dies in einer separaten Variablen isTee. Die Variable isTee enthält den Wert True oder False.

    Codeblock zum Kopieren

    If block = "elbow" Then
    isTee = False
    ElseisTee = True
    End If

    Verwenden Sie diese Variable zu einem späteren Zeitpunkt, um andere Parameter festzulegen.

  3. Fügen Sie der Regel Zeilen hinzu, um Abhängigkeiten zu deaktivieren, die nach der Verbindung und den Verbindungsschrauben suchen, wenn ein Verteileraufsatz einen Bogen-Stil aufweist. Aktivieren Sie die Abhängigkeiten, wenn der Verteilerblock einen T-Stück-Stil aufweist.

    Codeblock zum Kopieren

    Constraint.IsActive("port_b_cap_center") = isTee
    Constraint.IsActive("port_b_cap_hole") = isTee
    Constraint.IsActive("port_b_cap_face") = isTee
    Constraint.IsActive("port_b_cap_screw") = isTee

    Beachten Sie, dass Sie die Variable isTee verwenden können, um diese Abhängigkeiten entsprechend dem Wert des Parameters block zu aktivieren oder zu deaktivieren.

    Anmerkung: Die Benennungskonvention für diese Abhängigkeiten vereinfacht in dieser Regel das Verweisen darauf. Sie können auch die Baumstruktur-Informationen im Dialogfeld Regel bearbeiten verwenden, um die Namen der Abhängigkeiten zu vervollständigen.
  4. Fügen Sie zwei Zeilen ein, die das Bauteil port_b_union und die entsprechende Schraubenanordnung unter bestimmten Bedingungen einschließen:

    Codeblock zum Kopieren

    Component.IsActive("port_b_union") = isTee
    Component.IsActive("port_b_screw_pattern") = isTee

    In diesen Zeilen wird die Variable isTee verwendet. Wenn die Schraubenanordnung unterdrückt wird, wird die Schraubenkomponente ebenfalls unterdrückt.

  5. Fügen Sie für Fälle, in denen Sie Port B verwenden, einen Abschnitt zum Festlegen der Parameterwerte für die Port-Größe und die Schraubenanordnung sowie der Bauteilnummer für port_b_union hinzu.

    Codeblock zum Kopieren

    if isTee Then
    i = iPart.FindRow("port_b_union", "port_size", "=", port_b_size)
    port_b_y_dist_between_screws = iPart.CurrentRowValue("y_dist_betwn_screw")
    port_b_x_dist_between_screws = iPart.CurrentRowValue("x_dist_betwn_screw")
    port_b_union_part_number = iProperties.Value("port_b_union", "Project", "Part Number")
    End If

    Dieser gesamte Block wurde in eine If isTee-Anweisung eingeschlossen, sodass diese Zeilen nur bei einem Verteilerblock im T-Stil verarbeitet werden. Die Anweisung If isTee Then entspricht If isTee = True Then, bietet aber einen präziseren Ausdruck.

    Wählen Sie zuerst die entsprechende Zeile in der iPart-Tabelle des Verbindungsbauteils, die dem Wert des Parameters port_b_size entspricht, und extrahieren Sie dann die Werte für den Anordnungsversatz in die X- und Y-Richtung. Anschließend extrahieren Sie die Bauteilnummer aus dem Verbindungsbauteil und speichern den Wert in einem anderen Parameter zur späteren Referenz.

  6. Für den letzten Teil dieser Regel wählen Sie die Variante in der iPart-Tabelle des Schraubenbauteils, die für Port B verwendet werden soll. Diese basiert auf dem Wert des Parameters port_b_size. Verwenden Sie eine Reihe von If/Then/Else-Anweisungen, um dies zu steuern.

    Codeblock zum Kopieren

    If port_b_size = .50 then
    iPart.ChangeRow("port_b_union_screw", "Screw-01")
    elseif port_b_size = .75 then
    iPart.ChangeRow("port_b_union_screw", "Screw-02")
    elseif port_b_size = 1.00 then
    iPart.ChangeRow("port_b_union_screw", "Screw-02")
    elseif port_b_size = 1.25 then
    iPart.ChangeRow("port_b_union_screw", "Screw-03")
    elseif port_b_size = 1.50 then
    iPart.ChangeRow("port_b_union_screw", "Screw-04")
    elseif port_b_size = 2.00 then
    iPart.ChangeRow("port_b_union_screw", "Screw-04")
    elseif port_b_size = 2.50 then
    iPart.ChangeRow("port_b_union_screw", "Screw-05")
    elseif port_b_size = 3.00 then
    iPart.ChangeRow("port_b_union_screw", "Screw-06")
    End If
  7. Klicken Sie auf OK, um das Dialogfeld zu schließen, und speichern Sie dann die Regel.
  8. Speichern Sie die Baugruppendatei.

Hinzufügen von port_c_rule

Die Regel für Port C ist fast identisch mit der für Port A, mit der Ausnahme, dass alle Verweise auf Port A stattdessen auf Port C verweisen müssen.

  1. Öffnen Sie den Regel-Browser.
  2. Doppelklicken Sie auf port_a_rule.
  3. Verwenden Sie die Maus, um die gesamte Regel zu markieren.
  4. Drücken Sie STRG + C zum Kopieren des Regeltexts.
  5. Klicken Sie auf OK, um das Dialogfeld Regel bearbeiten zu schließen.
  6. Fügen Sie eine neue Regel mit dem Namen port_c_rule hinzu.
  7. Klicken Sie im Dialogfeld Regel bearbeiten in den Regeltextbereich, und drücken Sie STRG + V zum Einfügen der Regel.
  8. Klicken Sie oben im Dialogfeld auf die Registerkarte Suchen und ersetzen.
  9. Geben Sie port_a in das Feld Suchen nach ein.
  10. Geben Sie port_c in das Feld Ersetzen durch ein.
  11. Setzen Sie ein Häkchen in Groß-/Kleinschreibung beachten.
  12. Klicken Sie auf Alle in dieser Regel ersetzen.

    Codeblock zum Kopieren

    i = iPart.FindRow("port_c_union", "port_size", "=", port_c_size)
    port_c_y_dist_between_screws = iPart.CurrentRowValue("y_dist_betwn_screw")
    port_c_x_dist_between_screws = iPart.CurrentRowValue("x_dist_betwn_screw")
    
    If port_c_size = .50 then
    iPart.ChangeRow("port_c_union_screw", "Screw-01")
    elseif port_c_size = .75 then
    iPart.ChangeRow("port_c_union_screw", "Screw-02")
    elseif port_c_size = 1.00 then
    iPart.ChangeRow("port_c_union_screw", "Screw-02")
    elseif port_c_size = 1.25 then
    iPart.ChangeRow("port_c_union_screw", "Screw-03")
    elseif port_c_size = 1.50 then
    iPart.ChangeRow("port_c_union_screw", "Screw-04")
    elseif port_c_size = 2.00 then
    iPart.ChangeRow("port_c_union_screw" "Screw-04")
    elseif port_c_size = 2.50 then
    iPart.ChangeRow("port_c_union_screw", "Screw-05")
    elseif port_c_size = 3.00 then
    iPart.ChangeRow("port_c_union_screw", "Screw-06")
    End If
    
    port_c_union_part_number = iProperties.Value("port_c_union", "Project", "Part Number")
  13. Klicken Sie auf OK, um das Dialogfeld zu schließen.
  14. Speichern Sie die Baugruppendatei.

Zurück | Weiter