Creación de reglas en el ensamblaje

En las lecciones siguientes, creará una serie de reglas para administrar el contenido del ensamblaje.

Paso de parámetros del ensamblaje a las piezas

Este modelo incluye una pieza denominada manifold_block:1, que contiene reglas de iLogic. Se debe pasar el parámetro de nivel de ensamblaje a la pieza.

  1. Cree una regla denominada assembly_to_parts_rule.

    Esta regla define los parámetros en la pieza según los valores correspondientes de los parámetros de control en el ensamblaje. La función Parámetro especifica el nombre del componente y el del parámetro.

    Copie el bloque 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. Pulse Aceptar cuando haya terminado esta regla.

Edición de reglas de nivel de pieza en un ensamblaje

En el aprendizaje Pieza de bloques múltiples, hemos añadido una regla a la pieza de bloques múltiples que controla los estilos T y Codo. También se debe añadir en el nivel de ensamblaje. En lugar de volver a escribir la regla existente, se copia el original.

  1. Haga doble clic en manifold_block:1 en el navegador de modelos. El resto de los componentes se convierten en transparentes.
  2. En la cinta de opciones, haga clic en ficha Administrar panel iLogic Navegador de reglas .
  3. Haga doble clic en component_type_rule.
  4. Copie el texto de la regla en el portapapeles.
  5. Pulse Cancelar en el cuadro de diálogo Editar regla para cerrarlo.
  6. Haga doble clic en my_manifold_block.iam en el navegador de modelos.
  7. Añada una nueva regla llamada component_type_rule.
  8. Pegue el texto de la regla copiado de component_type_rule en el área de texto de la regla del cuadro de diálogo Editar regla.

    Copie el bloque de código

    If component_type = "standard" Then
    port_b_size = port_a_size
    port_c_size = port_a_size
    End If
  9. Pulse Aceptar para guardar esta regla de nivel de ensamblaje.

Añada port_a_rule

Cuando se cambia el tamaño de puerto de Port A, se deben realizar varias tareas:

Se añade una regla para hacerlo:

  1. Asegúrese de que el ensamblaje de bloque múltiple esté activo.
  2. Cree una regla denominada port_a_rule.

    La primera parte de esta regla ajusta el espaciado del patrón del tornillo según la información almacenada en la tabla iPart de la pieza de unión.

  3. Añada un bloque de código que busque la fila que se está utilizando según el parámetro port_a_size. A continuación, asigne valores a dos parámetros de ensamblaje desde otras dos columnas.

    Copie el bloque 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: Las sentencias relativas a iPart que se utilizan aquí pueden encontrarse en el área Fragmentos bajo el nodo iParts de la ficha Sistema.

    La siguiente pieza de la regla selecciona la correspondiente fila de iPart dentro de la pieza del tornillo según el tamaño de puerto seleccionado.

  4. Utilice una serie de sentencias If para definir el miembro de iPart pertinente conforme al valor actual del parámetro port_a_size.

    Copie el bloque 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. En la última parte de esta regla, añada una sentencia que obtenga el número de pieza para brida abierta y la almacene en un parámetro de ensamblaje, que se utiliza en otra regla más adelante en este aprendizaje.

    Copie el bloque de código

    port_a_union_part_number = iProperties.Value("port_a_union", "Project", "Part Number")
  6. Pulse Aceptar para guardar la regla y guardar el archivo de ensamblaje.

Añada port_b_rule

Port B es diferente de Port A y Port C, ya que no existe en un bloque múltiple con estilo de codo. Si el bloque múltiple tiene un estilo de codo, debe desactivarse la cubierta de unión y los tornillos de unión que se utilizan para este puerto. También debe desactivarse las restricciones de coincidencia asociadas con la cubierta de unión.

Debido al hecho de desactivar componentes, establecemos un nivel de detalle antes de escribir la regla. Las reglas que afectan a elementos relacionados con el nivel de detalle de un ensamblaje precisan que se defina y guarde un nivel de detalle personalizado antes de escribir las reglas. Si el nivel de detalle personalizado no está definido, iLogic genera un mensaje de error.

Definición de un nivel de detalle

  1. En el navegador de modelo, expanda el nodo Representaciones y, a continuación, el nodo Nivel de detalle.
  2. Con el botón derecho, pulse el nodo Nivel de detalle y seleccione Nuevo nivel de detalle.

    Se añade un nuevo nivel de detalle.

  3. Haga doble clic lentamente en LevelofDetail1 y cámbiele el nombre a iLogic.

Escritura de la regla

Ya se puede escribir la regla.

  1. Cree una regla denominada port_b_rule.
  2. En la primera parte de la regla, determine si crear un bloque con estilo en T y almacene este rasgo en la variable independiente isTee. La variable isTee contiene un valor de True o False.

    Copie el bloque de código

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

    Usaremos esta variable posteriormente para definir otros parámetros.

  3. Añada líneas a la regla para desactivar las restricciones que localizan la unión y el tornillo de unión cuando el bloque múltiple tiene un estilo de codo. Active las restricciones cuando el bloque múltiple tenga un estilo en T.

    Copie el bloque 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

    Tenga en cuenta que es posible utilizar la variable isTee para activar o desactivar estas restricciones según el valor del parámetro block.

    Nota: La convención de denominación que se utiliza para estas restricciones se ha hecho más sencilla para hacer referencia a ellas en esta regla. Recuerde que la información del árbol del modelo que hay en el cuadro de diálogo Editar regla también sirve para completar los nombres de las restricciones.
  4. Añada dos líneas que incluyan de forma condicional la pieza port_b_union y el correspondiente patrón de tornillo:

    Copie bloque de código

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

    Estas líneas utilizan la variable isTee. Cuando el patrón de tornillo está desactivado, el componente de tornillo también se desactiva.

  5. En el caso de ejemplares que utilicen Port B, añada una sección que defina el tamaño de puerto, los valores de parámetros del patrón de tornillo y el número de pieza de port_b_union.

    Copie el bloque 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 bloque dentro se debe incluir dentro de una sentencia de If isTee, con el fin de que estas líneas se procesen únicamente en el caso de un bloque múltiple con estilo en T. La sentencia If isTee Then es equivalente a If isTee = True Then, pero proporciona un formato de expresión más conciso.

    En primer lugar, se elige la fila pertinente en la tabla de iPart de la pieza de unión, correspondiente al valor del parámetro port_b_size; a continuación, se extraen los valores para utilizar los desfases de patrón x e y. Después, se extrae el número de pieza de unión y su valor se almacena en otro parámetro para usarse como referencia posteriormente.

  6. En la última parte de esta regla, se elige el miembro de la tabla de iPart de la pieza de tornillo que se va a utilizar para Port B. Se basa en el valor del parámetro port_b_size. Utilice una serie de sentencias If/Then/Else para controlarlo.

    Copie el bloque 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. Pulse Aceptar para cerrar el cuadro de diálogo y, a continuación, guarde la regla.
  8. Guarde el archivo de ensamblaje.

Añada port_c_rule

La regla para Port C es casi la misma que para Port A, con una excepción: todo lo que hace referencia a Port A debe hacer referencia a Port C en su lugar.

  1. Abra el Navegador de reglas.
  2. Haga doble clic en port_a_rule.
  3. Utilice el ratón para resaltar toda la regla.
  4. Pulse Ctrl+C para copiar el texto de la regla.
  5. Pulse Aceptar en el cuadro de diálogo Editar regla para cerrarlo.
  6. Añada una nueva regla llamada port_c_rule.
  7. En el cuadro de diálogo Editar regla, pulse en el texto de la regla y pulse Ctrl +V para pegar la regla.
  8. Pulse la ficha Buscar y reemplazar, en la parte superior del cuadro de diálogo.
  9. Escriba port_a en Buscar.
  10. Escriba port_c en Reemplazar por.
  11. Coloque una marca de selección en Distinguir mayúsculas/minúsculas.
  12. Pulse Reemplazar todo en esta regla.

    Copie el bloque 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. Pulse Aceptar para cerrar el cuadro de diálogo.
  14. Guarde el archivo de ensamblaje.

Anterior | Siguiente