iLogic ofrece funciones de regla para definir o leer los estados de desactivación y colores de un componente, así como una función para reemplazar un componente por otro.
Estas funciones son útiles para controlar diferentes configuraciones de piezas o ensamblajes.
Puede crear un modelo (pieza o ensamblaje) que incluya los componentes necesarios para representar todas las configuraciones válidas posibles de un producto. Este método se conoce como "supermodelado". Cuando las piezas o los componentes de ensamblaje sean demasiado complejos o numerosos y el supermodelado resulte poco práctico, utilice la función Component.Replace.
Para acceder a las funciones de componente, expanda el nodo Componentes en la ficha Sistema del área Fragmentos del cuadro de diálogo Editar regla de iLogic.
Personalice todos los nombres de componente antes de hacer referencia a ellos en una regla. Al cambiar el nombre de componente asignado por defecto por Autodesk Inventor, se asegura de que el nombre no cambie cuando el archivo .ipt o .iam de referencia cambie.
Puede volver a cambiar el nombre del componente a su nombre original y conservar su estabilidad. Para cambiar el componente, realice un pequeño cambio en el nombre y, a continuación, cámbielo de nuevo al original.
Para un componente del Centro de contenido, el cambio de nombre es necesario para la función Component.IsActive, así como para la función Component.Replace.
Establece o lee el estado de desactivación y la estructura de la lista de materiales de un componente de ensamblaje. Utilice esta función para incluir o excluir un componente de una configuración de ensamblaje.
La función funciona en un único componente o en patrones de componente. En el caso de los patrones, utilice el nombre de patrón. El patrón debe encontrarse en el mismo nivel de ensamblaje que la regla y no en un subensamblaje.
No desactive subcomponentes. Una alternativa mejor es llevar a cabo la desactivación desde una regla que esté dentro del componente.
Por ejemplo, un ensamblaje denominado Ensamblajesuperior contiene el Subensamblaje: 1, y el subensamblaje contiene la Piezaejemplo: 1.
Utilice una regla que esté dentro de Subensamblaje para desactivar Piezaejemplo: 1. Esta regla puede disponer de un parámetro que dirija el estado de desactivación, y se puede controlar el parámetro con una regla de Ensamblajesuperior.
Cuando utiliza iLogic para desactivar un componente, la estructura de la lista de materiales del componente se establece como referencia. Esta acción impide que aparezca en la lista de materiales. Aparece en la vista Datos del modelo, pero no en la vista estructurada ni en la de solo piezas. Si el componente está activado, iLogic cambia el componente al estado en que se encontraba antes de la desactivación (normal, inseparable, comercial o fantasma).
Antes de utilizar una regla de iLogic para cambiar el estado de desactivación de un componente de ensamblaje, cree y active un nuevo nivel de detalle personalizado.
Sintaxis
Component.IsActive("ComponentName")
Ejemplos
Puede utilizar 1 en lugar de true y 0 en lugar de false.
Para definir el estado de desactivación y la estructura de la lista de materiales:
Component.IsActive("PartA:1") = false Component.IsActive("PartB:1") = 0 Component.IsActive("PartC:1") = false Component.IsActive("PartD:1") = 0
Para leer el estado de desactivación y la estructura de la lista de materiales:
MyBooleanParam = Component.IsActive("ComponentName:1) If Component.IsActive("PartE") Then ' do something End If
Una variación de Component.Isactive. Esta función establece o lee el estado de desactivación de un componente de iPart o iAssembly. Si no cambia manualmente el nombre de componente, las iParts y iAssemblies requerirán el uso de esta sintaxis especial.
Se recomienda cambiar el nombre del componente. Si lo hace, puede utilizar Component.IsActive en lugar de esta función.
Sintaxis
Component.iComponentIsActive(“iPartParentName:1”)
iPartParentName
El nombre de la pieza de la familia sin la extensión .ipt del nombre de archivo.
Establece o lee el color de un componente.
Sintaxis
Component.Color(“iPartA:1”)
Ejemplos
Definir el color:
Component.Color("iPartA:1") = "Green" Component.Color("iPartA:2") = "Aluminum (Cast)" Component.Color("iPartA:3") = "As Material"
Leer el color:
MyStringParameter = Component.Color("iPartA:1")
Establece o lee la visibilidad de un componente. Esta función no cambia la estructura de la lista de materiales del componente.
Sintaxis
Component.Visible("componentName")
Ejemplos
Definir visibilidad:
Component.Visible("Plate") = true Component.Visible("Bearing") = false
Leer visibilidad:
parameter = Component.Visible("Plate") parameter = Component.Visible("Bearing")
If Component.Visible("PartE") Then do something End If
Especifica si un documento de componentes se guarda cuando cambia y se desactiva después por medio de una regla.
Sintaxis
Component.SkipDocumentSave = True
Cuando se establece en True, el documento de componentes no se guarda.
El valor por defecto es False ( Component.SkipDocumentSave = False ); el documento de componentes se guarda.
Reemplaza una pieza o un subensamblaje por otro. Esta función puede utilizarse también para reemplazar los patrones de componentes.
Utilice iMates en los componentes que se intercambien para conservar las restricciones de ensamblaje intactas. Puede cambiar una pieza por otra pieza, una pieza por un ensamblaje o un ensamblaje por una pieza.
La función busca el archivo que se va a usar como reemplazo en varias carpetas:
El nombre de archivo puede ser una ruta relativa (relativa a cualquiera de estas ubicaciones de búsqueda).
Sintaxis
Component.Replace(“ComponentToReplaceName”, “OtherPartfilename.ipt”, <replaceAll>)
ComponentToReplaceName
El nombre de la pieza o el subensamblaje que se reemplaza.
OtherPartfilename
La pieza o el ensamblaje que se va a utilizar como reemplazo.
<replaceAll>
Establezca este valor booleano en True para reemplazar todos los ejemplares de este componente. Establezca el valor en False para reemplazar solo el ejemplar especificado.
Ejemplo
If PartType = "Type A" Then Component.Replace("Widget","PartA.ipt", True) ElseIf PartType = "Type B" Then Component.Replace("Widget","PartB.ipt", True) End If
Esta variación de la función Component.Replace reemplaza un componente de un ensamblaje por otro componente con un nivel de detalle específico.
Sintaxis
Component.Replace("SubAssem:1", "OtherAssemFilename.iam<Level of Detail>", <replaceAll>)
En esta función, el argumento <replaceAll> es el mismo que el descrito para la función más genérica Component.Replace.
También puede reemplazar un subensamblaje por el mismo subensamblaje con un nivel de detalle diferente.
Esta función es necesaria en el caso de iParts con parámetros personalizados y también se recomienda para las iParts normalizadas. Utilícela en lugar de Component.Replace cuando el componente sea una iPart. Puede utilizar iPart.ChangeRow o iPart.FindRow tras el reemplazo para cambiar la configuración específica de la iPart.
Para obtener una iPart con parámetros personalizados, introduzca los valores de estos parámetros tras el número de fila. Los valores deben aparecer en el orden en el que se encuentran en la tabla.
Sintaxis
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber)
Utilice rowNumber para reemplazar el componente y seleccionar una fila iPart al mismo tiempo.
Ejemplos
Para establecer los parámetros personalizados, repita los valores personalizados en Component.ReplaceiPart y, más adelante en la regla, también en iPart.ChangeRow o iPart.FindRow.
Para ChangeRow:
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) iPart.ChangeRow("iPart1:1", rowNumber, customParam1, customParam2)
Para FindRow:
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) i = iPart.FindRow("iPart1:1", "Dia", ">=", 3.0, "r;|", customParam1, customParam2)
Define la ruta al nombre de un componente de un subensamblaje. Para especificar la ruta, introduzca todos los niveles del subensamblaje en el orden en que aparecen en el árbol. Esta función es necesaria si desea especificar un nombre de componente que también existe en otra parte del ensamblaje.
Sintaxis
MakePath(“SubassemblyComponentName”,“PartComponentName”)
Ejemplos
Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green” Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”