Inventor

Bodování komunity

Byla tato stránka užitečná?

Označení Štítky0

Tato stránka nemá žádné tagy

Statistiky stránky

801 zobrazení1 úpravy29604 znaky Stránka naposledy upravena 10:09, 9 Kvě 2012 uživatelem contentconnector
Přidání znalosti

Vytvoření pravidel v sestavě

    Obsah
    No headers

    V dalších několika lekcích vytvoříte řadu pravidel k řízení obsahu sestavy.

    Převedení parametrů ze sestavy do součástí

    Tento model obsahuje součást s názvem manifold_block:1, která obsahuje pravidla modulu iLogic. Musíme převést parametr na úrovni sestavy do součásti.

    1. Vytvořte pravidlo s názvem assembly_to_parts_rule.

      Toto pravidlo nastavuje parametry v součásti na základě příslušných hodnot řídicích parametrů v sestavě. Funkce našeho parametru určuje název komponenty a také název parametru.

      Kopírování bloku kódu

      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. Po dokončení tohoto pravidla klikněte na tlačítko OK.

    Úprava pravidel na úrovni součásti v sestavě

    Ve výukovém programu Součást rozloženého bloku jsme do součásti rozloženého bloku přidali pravidlo, které řídí styly T-kusu a kolena. Toto pravidlo musíme přidat také na úrovni sestavy. Místo přepisování existujícího pravidla zkopírujeme originál.

    1. V prohlížeči modelu dvakrát klikněte na součást manifold_block:1. Ostatní komponenty se stanou průhlednými.
    2. Na pásu karet klikněte na kartu Správa panel iLogic Prohlížeč pravidel.
    3. Dvakrát klikněte na položku component_type_rule.
    4. Zkopírujte text pravidla do schránky.
    5. V dialogu Upravit pravidlo kliknutím na tlačítko Storno zavřete dialog.
    6. V prohlížeči modelu dvakrát klikněte na soubor my_manifold_block.iam.
    7. Přidejte nové pravidlo s názvem component_type_rule.
    8. Zkopírujte text pravidla component_type_rule a vložte jej do části k zadávání textu pravidla v dialogu Upravit pravidlo.

      Kopírování bloku kódu

      If component_type = "standard" Then
      port_b_size = port_a_size
      port_c_size = port_a_size
      End If
    9. Kliknutím na tlačítko OK uložte toto pravidlo na úrovni sestavy.

    Přidání port_a_rule

    Při změně velikosti portu Port A je nutné provést několik úkonů:

    • změnit velikost portu,
    • aktualizovat číslo iSoučásti,
    • podle potřeby změnit velikost šroubů, umístění šroubů a číslo součásti sady šroubů.

    Provedení těchto činností zrealizujeme přidáním pravidla:

    1. Zajistěte, aby byla sestava rozloženého bloku aktivní.
    2. Vytvořte pravidlo s názvem port_a_rule.

      První část tohoto pravidla nastavuje vzdálenost pole šroubů na základě dat uložených v tabulce iSoučástí spojovací součásti.

    3. Přidejte blok kódu, který vyhledává používaný řádek na základě parametru port_a_size. Pak přiřazuje hodnoty ke dvěma různým parametrům sestavy ze dvou dalších sloupců.

      Kopírování bloku kódu

      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")
      PoznámkaZde používané příkazy vztahující se k iSoučásti jsou uvedeny v oblasti Fragmenty pod položkou iSoučásti na kartě Systém.

      Další část pravidla volí příslušný řádek iSoučásti uvnitř součásti šroubu na základě zvolené velikosti portu.

    4. Pomocí série příkazů If nastavte příslušný člen iSoučásti podle aktuální hodnoty parametru port_a_size.

      Kopírování bloku kódu

      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. Pro poslední část tohoto pravidla přidejte příkaz, který určí číslo součásti pro hrdlovou přírubu a uloží ho do parametru sestavy, který bude později v tomto výukovém programu použit v dalším pravidle.

      Kopírování bloku kódu

      port_a_union_part_number = iProperties.Value("port_a_union", "Project", "Part Number")
    6. Kliknutím na tlačítko OK uložte pravidlo a uložte soubor sestavy.

    Přidání port_b_rule

    Port Port B se liší od portů Port A a Port C, protože neexistuje v rozloženém bloku kolena. Jestliže rozložený blok je blok se stylem kolena, musíme vypnout spojovací víko a spojovací šrouby použité pro tento port. Dále musíme vypnout také vazby pro ti sobě sdružené se spojovacím víkem.

    Protože vypínáme komponenty, nastavíme úroveň detailů předtím, než budeme pravidlo zapisovat. Pravidla ovlivňující položky týkající se úrovně detailů v sestavě vyžadují definování uživatelské úrovně detailů a její uložení před zapisováním pravidel. Pokud nebude uživatelská úroveň detailů definována, modul iLogic zobrazí chybové hlášení.

    Nastavení úrovně detailů

    1. V Prohlížeči modelu rozbalte položku Reprezentace a pak položku Úroveň detailů.
    2. Klikněte pravým tlačítkem na položku Úroveň detailů a zvolte položku Nová úroveň detailů.

      Je přidána nová úroveň detailů.

    3. Pomalu dvakrát klikněte na položku LevelofDetail1 a přejmenujte ji na iLogic.

    Zapsání pravidla

    Nyní můžeme pravidlo zapsat.

    1. Vytvořte pravidlo s názvem port_b_rule.
    2. V první části pravidla určete, zda vytváříte blok se stylem tvarovka T, a uložte jej do samostatné proměnné isTee. Proměnná isTee obsahuje hodnotu True nebo False,

      Kopírování bloku kódu

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

      Tuto pro měnnou použijeme později k nastavení dalších parametrů.

    3. Přidejte do pravidla řádky k vypnutí vazeb, které uchycují spojovací součást a spojovací šroub, když má rozložený blok styl kolena. Zapněte vazby, když má rozložený blok styl T-kusu.

      Kopírování bloku kódu

      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

      Proměnnou isTee lze v závislosti na hodnotě parametru block použít k zapnutí nebo vypnutí těchto vazeb.

      PoznámkaKonvence pojmenování použitá pro tyto vazby usnadnila odkazování na ně v tomto pravidle. Nezapomeňte, že můžete používat také data stromu modelu v dialogu Upravit pravidlo a tím si usnadnit vytváření názvů vazeb.
    4. Přidejte dva řádky, které podmíněně zahrnují součást port_b_union a odpovídající pole šroubu:

      Kopírování bloku kódu

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

      Tyto řádky používají proměnnou isTee. Když je pole šroubu vypnuto, komponenta šroubu je také vypnuta.

    5. Do instancí, ve kterých je použita možnost Port B, přidejte část, která nastaví velikost portu, hodnoty parametrů pole šroubu a číslo součásti port_b_union.

      Kopírování bloku kódu

      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

      Celý blok uzavřeme příkazem If isTee tak, aby tyto řádky byly zpracovávány pouze pro rozložený blok stylu T-kusu. Výraz If isTee Then je stručnějším ekvivalentem výrazu If isTee = True Then.

      Nejprve je nutné zvolit příslušný řádek v tabulce iSoučásti spojovací součásti, která odpovídá hodnotě parametru port_b_size, a poté extrahovat hodnoty ke stanovení odsazení pole x a y. Pak získáme číslo součásti ze spojovací součásti a uložíme jeho hodnotu do jiného parametru pro pozdější odkaz.

    6. V poslední části tohoto pravidla zvolte člen v tabulce iSoučásti součásti šroubu pro port Port B. Tento člen závisí na hodnotě parametru port_b_size. K řízení použijte řadu příkazů If/Then/Else.

      Kopírování bloku kódu

      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. Kliknutím na tlačítko OK zavřete dialog a uložte pravidlo.
    8. Uložte váš soubor sestavy.

    Přidání port_c_rule

    Pravidlo pro port Port C je téměř stejné jako pro port Port A, pouze je nutné změnit všechny odkazy z hodnoty Port A na hodnotu Port C.

    1. Otevřete Prohlížeč pravidla.
    2. Dvakrát klikněte na pravidlo port_a_rule.
    3. Pomocí myši zvýrazněte celé pravidlo.
    4. Stisknutím kláves Ctrl+C zkopírujte text pravidla.
    5. V dialogu Upravit pravidlo kliknutím na tlačítko OK zavřete dialog.
    6. Přidejte nové pravidlo s názvem port_c_rule.
    7. V dialogu Upravit pravidlo kliknutím v oblasti textu pravidla a stisknutím kláves Ctrl+V vložte pravidlo.
    8. Klikněte na kartu Vyhledat a nahradit v horní části dialogu.
    9. Do pole Najít zadejte výraz port_a.
    10. Do pole Nahradit za zadejte výraz port_c.
    11. Zaškrtněte políčko Rozlišovat malá a velká.
    12. Klikněte na příkaz Nahradit vše v tomto pravidle.

      Kopírování bloku kódu

      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. Kliknutím na tlačítko OK zavřete dialog.
    14. Uložte váš soubor sestavy.

    Předchozí | Další