Criação de regras na montagem

Nas lições seguintes, será possível criar uma série de regras para gerenciar o conteúdo da montagem.

Etapa de parâmetros da montagem às peças

Este modelo inclui uma peça denominada manifold_block:1, que possui regras de iLogic. Deve ser passado o parâmetro de nível de montagem para a peça.

  1. Crie uma regra denominada assembly_to_parts_rule.

    Esta regra define os parâmetros na peça segundo os valores correspondentes dos parâmetros de controle na montagem. A função Parâmetro especifica o nome do componente e o do parâmetro.

    Copie bloco de código

    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. Clique em OK quando tiver concluído esta regra.

Edição de regras de nível de peça em uma montagem

No tutorial Peça de blocos múltiplos, foi adicionada uma regra à peça de blocos múltiplos que controla os estilos T e Cotovelo. Também deve ser adicionado no nível de montagem. No lugar de voltar a inserir a regra existente, é copiada a original.

  1. Clique duas vezes em manifold_block:1 no navegador de modelos. O resto dos componentes são convertidos em transparentes.
  2. Na faixa de opções, clique na guia Gerenciar painel iLogic Navegador de regras. .
  3. Clique duas vezes em component_type_rule.
  4. Copie o texto da regra na área de transferência.
  5. Clique em Cancelar na caixa de diálogo Editar regra para fechá-lo.
  6. Clique duas vezes em my_manifold_block.iam no navegador de modelos.
  7. Adicione uma nova regra denominada component_type_rule.
  8. Cole o texto de regra copiado de component_type_rule para a área de texto da regra na caixa de diálogo Editar regra.

    Copie bloco de código

    If component_type = "standard" Then
    port_b_size = port_a_size
    port_c_size = port_a_size
    End If
  9. Clique em OK para salvar esta regra de nível de montagem.

Adicione port_a_rule

Quando o tamanho de porta da Porta A for alterado, várias tarefas deverão ser executadas:

É adicionada uma regra para fazê-lo:

  1. Assegure-se de que a montagem de bloco múltiplo esteja ativa.
  2. Crie uma regra denominada port_a_rule.

    A primeira parte desta regra ajusta o espaçamento do padrão do parafuso segundo a informação armazenada na tabela iPart da peça de união.

  3. Adicione um bloco de código para realizar uma pesquisa na linha utilizada de acordo com o parâmetro port_a_size. A seguir, atribua valores a dois parâmetros de montagem das outras duas colunas.

    Copie bloco de código

    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: As sentenças relativas a iPart que são utilizadas aqui podem ser localizadas na área Fragmentos no nó iParts da guia Sistema.

    A seguinte parte da regra seleciona a correspondente linha de iPart dentro da peça do parafuso segundo o tamanho de porto selecionado.

  4. Utilize uma série de Se sentenças para definir o membro apropriado de iPart conforme o valor atual do port_a_size parâmetro.

    Copie bloco de código

    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. Na última parte desta regra, adicione uma sentença que obtenha o número de peça para flange aberta e a armazene em um parâmetro de montagem, que é utilizado em outra regra mais adiante neste tutorial.

    Copie bloco de código

    port_a_union_part_number = iProperties.Value("port_a_union", "Project", "Part Number")
  6. Clique em OK para salvar a regra e salvar o arquivo de montagem.

Adicione port_b_rule

A Porta B é diferente da Porta A e da Porta C porque ela não existe em um bloco múltiplo de cotovelos. Se o bloco múltiplo tem um estilo de cotovelo, deve ser desativado o topo de união e os parafusos de união que são utilizadas para este porto. Também devem ser desativadas as restrições de coincidência associadas com o topo de união.

Devido ao fato de desativar componentes, definemos um nível de detalhe antes de inserir a regra. As regras que afetam elementos relacionados com o nível de detalhe de uma montagem precisam que um nível personalizado de detalhe seja definido e antes de inserir as regras. Se o nível de detalhe personalizado não está definido, iLogic gera uma mensagem de erro.

Definição de um nível de detalhe

  1. No navegador de modelo, expanda o nó Representações e, a seguir, o nó Nível de detalhe.
  2. Com o botão direito, clique no nó Nível de detalhe e selecione Novo nível de detalhe.

    É adicionado um novo nível de detalhe.

  3. Clique duas vezes lentamente em LevelofDetail1 e altere o nome para iLogic.

Escreva a regra

Já pode ser inserida a regra.

  1. Crie uma regra denominada port_b_rule.
  2. Na primeira parte da regra, determine se um bloco com estilo T será criado e armazene-o em uma variável independente isTee. A isTee variável contém um valor de Verdadeiro ou Falso.

    Copie bloco de código

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

    Utilizaremos esta variável posteriormente para definir outros parâmetros.

  3. Adicione linhas à regra para desativar as restrições que localizam a união e o parafuso de união quando o bloco múltiplo tem um estilo de cotovelo. Ative as restrições quando o bloco múltiplo tenha um estilo T.

    Copie bloco de código

    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

    Observe que é possível utilizar a variável isTee para ativar ou desativar estas restrições de acordo com o valor do parâmetro bloco.

    Nota: A convenção de denominação que é utilizada para estas restrições tornou mais fácil referir-se a elas nesta regra. Lembre que a informação da árvore modelo que há na caixa de diálogo Editar regra também serve para completar os nomes das restrições.
  4. Adicione duas linhas que incluam de forma condicional a peça port_b_union e o padrão de parafuso correspondente:

    Copiar Bloco de Código

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

    Estas linhas utilizam a variável isTee. Quando o padrão de parafuso está desativado, o componente de parafuso também é desativado.

  5. No caso de instâncias que utilizem a Porta B, adicione uma seção que defina o tamanho da porta, os valores dos parâmetros de padrão de parafuso e o número de peça de port_b_union.

    Copie bloco de código

    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

    Todo este bloco deve ser incluído dentro de uma If isTeesentença com o propósito de que estas linhas sejam processadas unicamente no caso de um bloco múltiplo tee-style. A declaração If isTee Then é equivalente a If isTee = Verdadeiro Then, mas fornece um formato de expressão mais conciso.

    Em primeiro lugar, seleciona-se a devida linha na tabela de iPart da peça de união, correspondente ao valor do parâmetro port_b_size; a seguir, extraem-se os valores a serem utilizados nos deslocamentos de padrão x e y. Depois, é extraído o número de peça de união e seu valor é armazenado em outro parâmetro para ser utilizado como referência posteriormente.

  6. Na última parte desta regra, seleciona-se o membro da tabela de iPart da peça de parafuso a ser utilizado na Porta B. Ele será baseado no valor do parâmetro port_b_size. Utilize uma série de If/Then/Else declarações para controlar.

    Copie bloco de código

    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. Clique em OK para fechar a caixa de diálogo e, a seguir, salve a regra.
  8. Salve o arquivo de montagem.

Adicione port_c_rule

A regra para a Porta C é quase a mesma que para a Porta A, exceto pelo fato de que tudo o que referenciar a Porta A deverá, obrigatoriamente, referenciar a Porta C.

  1. Abra o Navegador de regras.
  2. Clique duas vezes em port_a_rule.
  3. Utilize o mouse para realçar toda a regra.
  4. Pressione Ctrl+C para copiar o texto da regra.
  5. Clique em OK na caixa de diálogo Editar regra para fechá-lo.
  6. Adicione uma nova regra denominada port_c_rule.
  7. Na caixa de diálogo Editar regra, clique no texto da regra e pressione Ctrl +V para colar a regra.
  8. Clique na guia Pesquisar e substituir, na parte superior da caixa de diálogo.
  9. Insira port_a em Localizar.
  10. Insira port_c em Substituir por.
  11. Coloque uma marca de seleção em Distinguir maiúsculas/minúsculas.
  12. Clique em Substituir tudo nesta regra.

    Copie bloco de código

    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. Clique em OK para fechar a caixa de diálogo.
  14. Salve o arquivo de montagem.

Anterior | Avançar