Creazione di regole nell'assieme

Nelle lezioni successive, verrà creata una serie di regole per gestire i contenuti dell'assieme.

Trasferire i parametri dall'assieme alle parti

Il modello include una parte denominata manifold_block:1, che presenta regole iLogic. È necessario trasferire il parametro livello di assieme alla parte.

  1. Creare una regola denominata assembly_to_parts_rule.

    Questa regola consente di impostare i parametri nella parte in base ai valori corrispondenti dei parametri di controllo nell'assieme. La funzione Parametro consente di specificare il nome del componente, nonché il nome del parametro.

    Copiare il blocco di codice sottostante

    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. Fare clic su OK quando la regola è stata completata.

Modificare regole a livello di parte in un assieme

Nell'esercitazione Blocco collettore, viene aggiunta una regola alla parte blocco collettore che controlla gli stili T e gomito. È inoltre necessario aggiungerla a livello di assieme. Anziché riscrivere la regola esistente, viene copiata l'originale.

  1. Fare doppio clic su manifold_block:1 nel browser Modello. Gli altri componenti diventano trasparenti.
  2. Nella barra multifunzione fare clic sulla scheda Gestione gruppo iLogic Browser delle regole .
  3. Fare doppio clic su component_type_rule.
  4. Copiare il testo della regola negli appunti.
  5. Fare clic su Annulla nella finestra di dialogo Modifica regola per chiuderla.
  6. Fare doppio clic su my_manifold_block.iam nel browser Modello.
  7. Consente di aggiungere una nuova regola denominata component_type_rule.
  8. Incollare il testo della regola copiato da component_type_rule nell'area di testo della regola della finestra di dialogo Modifica regola.

    Copiare il blocco di codice sottostante

    If component_type = "standard" Then
    port_b_size = port_a_size
    port_c_size = port_a_size
    End If
  9. Fare clic su OK per salvare questa regola a livello di assieme.

Aggiungere port_a_rule

Quando si modifica la dimensione della Porta A, è necessario eseguire diverse operazioni:

Viene aggiunta una regola per garantire l'esecuzione:

  1. Assicurarsi che l'assieme blocco collettore sia attivo.
  2. Creare una regola denominata port_a_rule.

    La prima parte di questa regola consente di regolare la spaziatura della serie di viti, in base alle informazioni memorizzate nella tabella di iPart della parte di unione.

  3. Aggiungere un blocco codice che consenta di cercare la riga utilizzata in base al parametro port_a_size. Quindi, assegnare valori a due diversi parametri di assieme in altre due colonne.

    Copiare il blocco di codice sottostante

    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")
    Nota: È possibile trovare le istruzioni relative ad iPart utilizzate qui nell'area Frammenti, nodo iPart, della scheda Sistema.

    La parte successiva della regola consente di selezionare la riga di iPart appropriata all'interno della parte vite in base alla dimensione della porta selezionata.

  4. Utilizzare una serie di istruzioni If per impostare il membro iPart appropriato in base al valore corrente del parametro port_a_size.

    Copiare il blocco di codice sottostante

    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. Per l'ultima parte di questa regola, aggiungere un'istruzione che determina il numero di parte per la flangia svasata e lo memorizza in un parametro di assieme utilizzato in un'altra regola in seguito in questa esercitazione.

    Copiare il blocco di codice sottostante

    port_a_union_part_number = iProperties.Value("port_a_union", "Project", "Part Number")
  6. Fare clic su OK per salvare la regola e salvare il file di assieme.

Aggiungere port_b_rule

Port B è diverso da Port A e Port C, poiché non è presente in un blocco collettore gomito. Se il blocco collettore è un blocco stile gomito, è necessario sopprimere la calotta di giunzione e le viti di unione utilizzati per questa porta. È inoltre necessario sopprimere i vincoli coincidenti associati alla calotta di giunzione.

Poiché è in corso l'eliminazione dei componenti, è necessario impostare un livello di dettaglio prima di scrivere la regola. Le regole che influiscono sugli elementi correlati al livello di dettaglio in un assieme, richiedono che venga definito un livello di dettaglio personalizzato, salvato prima di procedere alla scrittura delle regole. Se il livello di dettaglio personalizzato non è definito, iLogic genera un messaggio di errore.

Impostare un livello di dettaglio

  1. Nel browser Modello, espandere il nodo Rappresentazioni, quindi il nodo Livello di dettaglio.
  2. Fare clic con il pulsante destro del mouse sul nodo Livello di dettaglio, quindi scegliere Nuovo livello di dettaglio.

    Viene aggiunto un nuovo livello di dettaglio.

  3. Fare doppio clic lentamente su Livello di dettaglio1, quindi rinominarlo come iLogic.

Scrivere la regola

È ora possibile scrivere la regola.

  1. Creare una regola denominata port_b_rule.
  2. Per la prima parte della regola, determinare se si esegue un blocco stile T e memorizzarlo in una variabile separata isTee. La variabile isTee contiene un valore di True o False.

    Copiare il blocco di codice sottostante

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

    È possibile utilizzare questa variabile in seguito per impostare altri parametri.

  3. Aggiungere righe alla regola per disattivare i vincoli che consentono di individuare l'unione e la vite di unione quando il blocco collettore è di stile gomito. Attivare i vincoli quando il blocco collettore è di stile T.

    Copiare il blocco di codice sottostante

    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

    È possibile utilizzare la variabile isTee per attivare o disattivare tali vincoli in base al valore del parametro blocco.

    Nota: La convenzione di denominazione utilizzata per tali vincoli ne ha semplificato il riferimento in questa regola. Tenere presente che è inoltre possibile utilizzare l'informazione della struttura del Modello nella finestra di dialogo Modifica regola per completare i nomi dei vincoli.
  4. Aggiungere due righe che includano la parte port_b_union e la serie di viti corrispondente:

    Copiare il blocco di codice sottostante

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

    Queste righe utilizzano la variabile isTee. Quando la serie di viti viene soppressa, il componente vite viene a sua volta soppresso.

  5. Per le istanze in cui si sta utilizzando Port B, aggiungere una sezione che imposti la dimensione della porta, i valori parametro serie di viti e il numero di parte port_b_union.

    Copiare il blocco di codice sottostante

    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

    È incluso l'intero blocco in un'istruzione If isTee, in modo che queste righe siano elaborate solo per un blocco collettore stile T. L'istruzione If isTee Then equivale a If isTee = True Then, ma fornisce un formato espressione più conciso.

    È prima necessario scegliere la riga corrispondente nella tabella di iPart della parte unione, corrispondente al valore del parametro port_b_size, quindi estrarre i valori da utilizzare per gli offset della serie x e y. È quindi possibile estrarre il numero parte dalla parte unione e memorizzarne il valore in un altro parametro per riferimenti futuri.

  6. Per l'ultima parte di questa regola, è necessario scegliere il membro all'interno della tabella di iPart della parte vite da utilizzare per Port B. Si basa sul valore del parametro port_b_size. Utilizzare una serie di istruzioni If/Then/Else per controllarla.

    Copiare il blocco di codice sottostante

    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. Fare clic su OK per chiudere la finestra di dialogo e salvare la regola.
  8. Salvare il file di assieme.

Aggiungere port_c_rule

La regola per Port C è quasi identica a quella per Port A, ad eccezione del fatto che tutti gli elementi che fanno riferimento a Port A devono fare invece riferimento a Port C.

  1. Aprire il Browser delle regole.
  2. Fare doppio clic su port_a_rule.
  3. Utilizzare il mouse per evidenziare l'intera regola.
  4. Premere CTRL+C per copiare il testo della regola.
  5. Fare clic su OK nella finestra di dialogo Modifica regola per chiuderla.
  6. Aggiungere una nuova regola denominata port_c_rule.
  7. Nella finestra di dialogo Modifica regola, fare clic nell'area di testo della regola e premere CTRL+V per incollare la regola.
  8. Fare clic sulla scheda Trova e sostituisci nella parte superiore della finestra di dialogo.
  9. Immettere port_a in Trova.
  10. Immettere port_c in Sostituisci con.
  11. Inserire un segno di spunta nel campo Maiuscole/minuscole.
  12. Fare clic su Sostituisci tutto in questa regola.

    Copiare il blocco di codice sottostante

    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. Fare clic su OK per chiudere la finestra di dialogo.
  14. Salvare il file di assieme.

Indietro | Avanti