UL_PART

Membres de données

attribute[] chaîne (voir remarque)
appareil UL_DEVICE
deviceset UL_DEVICESET
module UL_MODULE (voir remarque)
modulepart UL_PART (voir remarque)
modulepath chaîne (voir remarque)
Nom chaîne (PART_NAME_LENGTH)
package3d UL_PACKAGE3D
populate entier (0=ne pas remplir, 1=remplir)
valeur chaîne (PART_VALUE_LENGTH)

Membres de boucle

attributes() UL_ATTRIBUTE (voir remarque)
instances() UL_INSTANCE (voir remarque)
variants() UL_VARIANT (voir remarque)

Voir aussi UL_SCHEMATIC, UL_SHEET

Constantes

PART_NAME_LENGTH longueur maximale recommandée d’un nom de pièce (utilisée dans la sortie formatée uniquement)
PART_VALUE_LENGTH longueur maximale recommandée d’une valeur de pièce (utilisée dans la sortie formatée uniquement)

Remarque

Le membre de données attribute[] peut être utilisé pour interroger un objet UL_PART afin d’obtenir la valeur d’un attribut donné (voir le deuxième exemple ci-dessous). La chaîne renvoyée est vide s’il n’y a aucun attribut du nom spécifie ou si cet attribut est explicitement vide.

Lorsque vous parcourez les attributs d’un objet UL_PART à l’aide de son membre de boucle attributes(), seuls les membres de données name, value, defaultvalue et constant des objets UL_ATTRIBUTE obtenus sont valides.

Lorsque vous parcourez les variantes d’ensemble d’un objet UL_PART à l’aide de son membre de boucle variants(), seules les variantes réelles sont disponibles. La variantes d’assemblage par défaut n’est pas disponible ici. Par conséquent, cette boucle n’est pas active sur les pièces sans variantes d’assemblage.

Si la pièce se trouve dans un contexte de feuille, le membre de boucle instances() parcourt uniquement les instances qui sont réellement utilisées sur cette feuille. Si la pièce se trouve dans le contexte d’un schéma ou d’un module, toutes les instances sont parcourues.

Si la pièce est une pièce virtuelle (les pièces virtuelles peuvent être extraites via UL_SCHEMATIC.allparts(), voir UL_SCHEMATIC), la boucle instances() est vide.

Si la pièce provient d’un module ou est une pièce virtuelle, le membre de données module fait référence au module d’origine de la pièce. Si la pièce se trouve dans le schéma principal, en revanche, le membre de données module est défini sur null.

Si la pièce est virtuelle, le membre de données modulepart est la pièce (réelle) du module source. Si la pièce se trouve dans le schéma principal ou s’il s’agit d’une pièce de module, le membre de données modulepart est défini sur null.

Si la pièce est virtuelle, le membre de données modulepath est une chaîne contenant la séquence de noms des instances de module qui pointent vers le module contenant la pièce utilisée. Ces noms sont séparés par « : ». Dans tout autre cas, cette chaîne est vide.

Par exemple, pour une pièce virtuelle nommée MI1:R1, modulepath est MI1. Pour la pièce R101 provenant de l’instance de module MX avec une notation de décalage, modulepath est MX. Pour MAIN:SUB1:SUBSUB1:C5, modulepath est MAIN:SUB1:SUBSUB1.

Les objets UL_PART ne sont pas toujours dotés de packages 3D. Le membre de données package3d peut être utilisé comme booléen pour vérifier si un package 3D est présent, par exemple (P.package3d).

Exemples

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]);
       }
    }
  }
}