Se puede utilizar una regla para cambiar la configuración actual de una iPart o un iAssembly en función de las condiciones y la lógica que se definan.
Utilice las funciones de iPart y iAssembly para controlar las configuraciones de iPart y iAssembly de un ensamblaje.
Estas funciones funcionan con los iAssemblies de la misma forma que con las iParts, salvo que los parámetros personalizados solo se pueden utilizar en las iParts. Para utilizar la función en un iAssembly, se puede sustituir iPart por iAssembly al especificar la función.
Para acceder a las funciones de iPart e iAssembly, expanda el nodo iParts en la ficha Sistema del área Fragmentos del cuadro de diálogo Editar regla de iLogic.
Existen funciones similares para las iFeatures. Consulte Funciones de iFeatures para obtener más información.
Cambia la fila activa de una tabla de iPart o iAssembly.
Sintaxis
iPart.ChangeRow("iChangedComponentName:1", "memberName")
“iChangedComponentName:1”
El nombre del componente tal como se muestra en el navegador de ensamblajes de Inventor. Cambie el nombre de componente por defecto asignado por Inventor para estabilizarlo y evitar que el nombre cambie cuando se seleccione una fila distinta en la tabla.
“memberName”
El nombre asignado a la fila de la columna de miembro de la tabla.
Para obtener una iPart con parámetros personalizados, utilice esta sintaxis para introducir los parámetros personalizados tras "memberName". Preséntelos en el mismo orden en que aparecen en la tabla:
iPart.ChangeRow("iChangedComponentName:1", "memberName", customParam1,customParam2)
Utilice esta sintaxis para especificar un número de fila en lugar de un nombre de miembro. El número de la fila es un número entero y comienza por 1 en la primera fila (solo para iParts normalizadas):
iPart.ChangeRow("iChangedComponentName:1", rowNumber)
Ejemplo
En este ejemplo, la configuración actual de iPart cambia en función de una instrucción condicional que evalúa un parámetro de usuario de Inventor Port_1_Size La función requiere únicamente el nombre de componente de iPart port_1_Flange_screw y el nombre de miembro de la tabla de iPart Screw-01 para controlar la configuración de la iPart activa:
If Port_1_Size = .50 Then iPart.ChangeRow("port_1_flange_screw", "Screw-01") ElseIf Port_1_Size = .75 Then iPart.ChangeRow("port_1_flange_screw", "Screw-02") ElseIf Port_1_Size = 1.00 Then iPart.ChangeRow("port_1_flange_screw", "Screw-03") End If
Busca por columnas en la tabla de iPart o iAssembly una fila que contenga un valor determinado o aproximado y establece la configuración activa en la fila encontrada.
Sintaxis
i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=", 4.1,"|",customParam1,customParam2)
i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)
“i”
Una variable local que se puede utilizar para comprobar si se encuentra un número de fila válido.
“iChangedComponentName:1”
El nombre del componente tal como se muestra en el navegador de ensamblajes de Inventor. Cambie el nombre de componente por defecto asignado por Inventor para estabilizarlo y evitar que el nombre cambie cuando se seleccione una fila distinta en la tabla.
“columnName”
La columna que buscar en la tabla de iPart. Utilice el nombre de encabezado de columna exactamente como aparece en la tabla de iPart.
Ejemplo
En este ejemplo se busca, en una tabla de iPart, una fila con valores de columna iguales o mayores que los especificados. iLogic cambia la configuración actual de iPart por la de la fila encontrada:
iPart.FindRow("port_1_flange_screw", "Thread_Diameter", ">=", 0.45, "Thread_Length", ">=", 2.0)
Una vez se ha encontrado una fila mediante iPart.FindRow, esta función lee los valores de columna asociados de esa fila. Esta función solo lee valores numéricos. Utilice iPart.CurrentRowStringValue para leer columnas que contengan valores de texto.
Sintaxis
d0 = iPart.CurrentRowValue("columnName")
Cualquiera de las opciones siguientes establece la fila actual:
iPart.FindRow o iPart.ChangeRow.
“columnName”
El nombre de la columna de la tabla de iPart que desee.
Ejemplo
En este ejemplo, buscamos en la columna Port_Size de la tabla de iPart port_1_flare_flange un valor exacto que coincida con el valor del parámetro de Inventor Port_1_Size . Una vez se ha encontrado la fila, utilizaremos iPart.CurrentRowValue para recuperar las cotas de las columnas A_dim y B_dim de la tabla. A continuación, asignaremos sus valores a los parámetros de Inventor denominados Port_1_screw_A_dim y Port_1_screw_B_dim:
i = iPart.FindRow("port_1_flare_flange", "Port_Size", "=", Port_1_Size) Port_1_screw_A_dim = iPart.CurrentRowValue("A_dim") Port_1_screw_B_dim = iPart.CurrentRowValue("B_dim")
Una vez que se ha encontrado una fila mediante iPart.FindRow, utilice esta función para leer los valores de columna asociados de esa fila. Esta función es como iPart.CurrentRowValue, salvo que lee únicamente valores de texto. Utilice iPart.CurrentRowValue para leer las columnas que contengan valores numéricos.
Sintaxis
iPart.CurrentRowStringValue("PartNumber")
Sintaxis alternativa para el nombre de componente
Para especificar un nombre de componente que no se modifica cuando cambia la fila de iPart.
iPart.ChangeRow("iParentFileName:1", "memberName")
iPart.FindRow("iParentFileName:1","columnName","<=",d1,"columnName","<=",d2)
“iParentFileName:1”
Nombre del archivo principal de la iPart, donde ":1" reemplaza al archivo .ipt o .iam habitual. Cambie ":1" al número del componente con el que se está trabajando.
Aunque esta sintaxis es compatible, no es recomendable. Un método más habitual es cambiar el nombre del componente para estabilizarlo.
Obtiene el nombre de miembro de la fila activa en un ejemplar de componente de una iPart o un iAssembly. Esta función es útil en reglas activadas por el evento de la iPart o el iAssembly Cambiar componente. Utilice iPart.ChangeRow o iPart.FindRow para seleccionar una fila automáticamente a partir de una regla. Si desea permitir al usuario seleccionar una fila de forma manual, puede combinar ese evento con esta función para reaccionar al cambio.
Sintaxis
iPart.RowName("iChangedComponentName:1")
Ejemplo
memberName = iPart.RowName("port_1_flange_screw:1")
Obtiene el número de fila de la fila activa en un ejemplar de componente de una iPart o un iAssembly.
Sintaxis
iPart.RowNumber("iChangedComponentName:1")
Ejemplo
rowNumber = iPart.RowNumber("port_1_flange_screw:1")
Esta función, utilizada con la función iPart.FindRow, permite buscar un valor comprendido en un rango en lugar de buscar un valor exacto. Existe siempre una tolerancia para esta búsqueda. La tolerancia por defecto es de 0.0000001 y no depende de las unidades del documento.
Sintaxis
iPart.Tolerance = <valor>
Establezca una tolerancia mayor para expandir el intervalo de valores válidos.
Ejemplo
Supongamos que utiliza las siguientes instrucciones:
iPart.Tolerance = 0.001 i = iPart.FindRow("Block:1","length", "=", 2.3)
Este conjunto de instrucciones será equivalente a la siguiente búsqueda sin tolerancia:
i = iPart.FindRow("Block:1", "length", ">=", 2.299, "length","<=", 2.301)
Para reemplazar un miembro de iPart por un miembro de otra familia, use Component.ReplaceiPart.