UL_PART

Miembros de datos

attribute[] cadena (ver nota)
dispositivo UL_DEVICE
conjunto de dispositivos UL_DEVICESET
módulo UL_MODULE (consulte la nota)
pieza del módulo UL_PART (consulte la nota)
ruta del módulo cadena (ver nota)
nombre cadena (PART_NAME_LENGTH)
package3d UL_PACKAGE3D
rellenar int (0=no rellenar, 1=rellenar)
valor cadena (PART_VALUE_LENGTH)

Miembros de bucle

attributes() UL_ATTRIBUTE (ver la nota)
instances() UL_INSTANCE (ver la nota)
variants() UL_VARIANT (ver la nota)

Consulte también UL_SCHEMATIC, UL_SHEET

Constantes

PART_NAME_LENGTH longitud máxima recomendada para el nombre de una pieza (solo se utiliza en salidas con formato)
PART_VALUE_LENGTH longitud máxima recomendada para el valor de una pieza (solo se utiliza en salidas con formato)

Nota

El miembro attribute[] se puede utilizar para preguntar a un UL_PART el valor de un atributo determinado (consulte el segundo ejemplo a continuación). La cadena que se devuelve estará vacía si no hay ningún atributo con el nombre especificado o si este atributo está explícitamente vacío.

Al crear un bucle a través de los attributes() de un UL_PART, solo son válidos el nombre, el valor, el valor por defecto y los miembros constantes de los objetos UL_ATTRIBUTE resultantes.

Al crear un bucle a través del ensamblaje variants() de un UL_PART, solo están disponibles las variantes reales. La variante de ensamblaje predeterminada no está disponible aquí. Por lo tanto, este bucle no se activa en piezas sin variantes de ensamblaje.

Si la pieza se encuentra en el contexto de un plano, el miembro de bucle instances() solo recorre los ejemplares que se utilizan realmente en ese plano. Si la pieza se encuentra en el contexto de un esquema o módulo, se recorren todos los ejemplares.

Si la pieza es virtual (las piezas virtuales se pueden recuperar con UL_SCHEMATIC.allparts(), consulte UL_SCHEMATIC), el bucle de instances() está vacío.

Si la pieza es de un módulo o es una pieza virtual, el módulo hará referencia. Si no es así (la pieza está en el esquema principal), el módulo será nulo.

Si la pieza es virtual, la pieza del módulo será la pieza (real) del módulo de origen. Si es una pieza del esquema principal o del módulo en sí, será nula.

Si la pieza es virtual, la ruta del módulo es una cadena con la secuencia de nombres de los ejemplares del módulo que apuntan a aquel que contenga la pieza que se está utilizando. Estos nombres están separados por ':'. En otros casos, esta cadena está vacía.

Por ejemplo, una pieza virtual con el nombre 'MI1:R1' tiene la ruta de módulo 'MI1'. Un 'R101' proveniente de un ejemplar de módulo 'MX' con notación de desfase, ofrecerá la ruta de módulo 'MX'. 'PRINCIPAL:SUB1:SUBSUB1:C5' tiene la ruta de módulo 'PRINCIPAL:SUB1:SUBSUB1'.

No todos los UL_PART tienen paquetes 3D. El miembro package3d se puede utilizar como booleano para probar si existe o no un paquete 3D, por ejemplo, (P.package3d).

Ejemplos

schematic(S) {
  S.parts(P) printf("Part: %s\n", P.name);
}
schematic(S) {
  S.allparts(P) {
    if (P.attribute["REMARK"])
       printf("%s: %s\n", P.name, P.attribute["REMARK"]);
    if (P.modulepart) {
       P.modulepart.instances(I)
         printf("%s is a virtual part from %s in module %s with part instance on sheet %d\n",
                P.name, P.modulepart.name, P.module.name, I.sheet);
    }
    else {
       P.instances(I)
         printf("%s is a part on main schematic with instance on sheet %d\n",
                P.name, I.sheet);
    }
  }
}
schematic(S) {
  S.allparts(P) {
    if (P.modulepart) {
       string miNames[];
       int nr = strsplit(miNames, P.modulepath, ':');
       if (nr == 1)
          printf("%s is a virtual part created by module instance %s in main schematic.\n",
                 P.name, miNames[0]);
       else {
          printf("%s is a virtual part in a multiple hierarchy created by this path of module instances:\n", P.name);
          for (int i = 0; i < nr; ++i)
              printf("%s\n", miNames[i]);
       }
    }
  }
}