UL_PART

Membri dati

attribute[] string (vedere nota)
dispositivo UL_DEVICE
deviceset UL_DEVICESET
module UL_MODULE (vedere nota)
modulepart UL_PART (vedere nota)
modulepath string (vedere nota)
name string (PART_NAME_LENGTH)
package3d UL_PACKAGE3D
populate int (0=non compilare, 1=compilare)
value string (PART_VALUE_LENGTH)

Membri di sequenza chiusa

attributes() UL_ATTRIBUTE (vedere nota)
instances() UL_INSTANCE (vedere nota)
variants() UL_VARIANT (vedere nota)

Vedere anche UL_SCHEMATIC, UL_SHEET

Costanti

PART_NAME_LENGTH lunghezza max. consigliata del nome di una parte (utilizzata solo nell'output formattato)
PART_VALUE_LENGTH lunghezza max. consigliata di un valore parte (utilizzata solo nell'output formattato)

Nota

Il membro attribute[] può essere utilizzato per eseguire una query su UL_PART per ottenere il valore di un dato attributo (vedere il secondo esempio qui di seguito). La stringa restituita è vuota se non è presente alcun attributo con il nome specificato o se l'attributo è esplicitamente vuoto.

Quando si esegue una sequenza chiusa tra attributes() di un UL_PART, sono validi solo il nome, il valore, il valore di default e i membri costanti degli oggetti UL_ATTRIBUTE risultanti.

Quando si esegue una sequenza chiusa sull'assieme variants() di un UL_PART, sono disponibili solo le varianti effettive. La variante dell'assieme di default non è disponibile qui. Di conseguenza, questa sequenza chiusa non è attiva sulle parti senza varianti dell'assieme.

Se la parte si trova in un contesto foglio, il membro di sequenza chiusa instances() esegue una sequenza chiusa solo tra le istanze effettivamente utilizzate in tale foglio. Se la parte si trova nel contesto di uno schema o di un modulo, la sequenza chiusa viene eseguita tra tutte le istanze.

Se la parte è una parte virtuale (le parti virtuali possono essere recuperate con UL_SCHEMATIC.allparts(), vedere UL_SCHEMATIC) la sequenza chiusa instances() è vuota.

Se la parte proviene da un modulo o è una parte virtuale, il modulo fa riferimento a tale elemento. In caso contrario, ovvero se la parte si trova nello schema principale, il modulo è nullo.

Se la parte è virtuale, modulepart è la parte (reale) del modulo del modulo di origine. Se si tratta di una parte dello schema principale o di un modulo, modulepart è nullo.

Se la parte è virtuale, modulepath è una stringa con la sequenza di nomi delle istanze del modulo che fanno riferimento al modulo contenente la parte in uso. Questi nomi sono separati da ':'. In altri casi, questa stringa è vuota.

Ad esempio, una parte virtuale denominata 'MI1:R1' ha 'MI1' come modulepath. 'R101' proviene da un'istanza del modulo 'MX' con notazione di offset e fornisce 'MX' come modulepath. 'MAIN:SUB1:SUBSUB1:C5' ha 'MAIN:SUB1:SUBSUB1' come modulepath.

Non tutti gli UL_PART dispongono di pacchetti 3D. Il membro package3d può essere utilizzato come valore booleano per verificare se è presente o meno un pacchetto 3D, ad esempio se è presente (P.package3d).

Esempi

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