| attribute[] | Zeichenfolge (siehe Anmerkung) |
| Gerät | UL_DEVICE |
| deviceset | UL_DEVICESET |
| Modul | UL_MODULE (siehe Anmerkung) |
| modulepart | UL_PART (siehe Anmerkung) |
| modulepath | Zeichenfolge (siehe Anmerkung) |
| Benennen | Zeichenfolge (PART_NAME_LENGTH) |
| package3d | UL_PACKAGE3D |
| populate | Ganzzahl (0=nicht auffüllen, 1=auffüllen) |
| value | Zeichenfolge (PART_VALUE_LENGTH) |
| attributes() | UL_ATTRIBUTE (siehe Anmerkung) |
| instances() | UL_INSTANCE (siehe Anmerkung) |
| variants() | UL_VARIANT (siehe Anmerkung) |
Siehe auch UL_SCHEMATIC, UL_SHEET.
| PART_NAME_LENGTH | Max. empfohlene Länge eines Bauteilnamens (nur in formatierter Ausgabe verwendet) |
| PART_VALUE_LENGTH | Max. empfohlene Länge eines Bauteilwerts (nur in formatierter Ausgabe verwendet) |
Das attribute[]-Element kann verwendet werden, um eine UL_PART-Abfrage für den Wert eines bestimmten Attributs vorzunehmen (siehe zweites Beispiel unten). Die zurückgegebene Zeichenfolge ist leer, wenn kein Attribut mit dem angegebenen Namen vorhanden ist oder wenn dieses Attribut explizit leer ist.
Wenn Sie die attributes()-Elemente eines UL_PART-Objekts durchlaufen, sind nur die name-, value-, defaultvalue- und constant-Elemente der resultierenden UL_ATTRIBUTE-Objekte gültig.
Beim Durchlaufen der variants()-Elemente für die Bestückung eines UL_PART sind nur die tatsächlichen Varianten verfügbar. Die vorgegebene Bestückungsvariante ist hier nicht verfügbar. Daher ist diese Schleife für Bauteile ohne Bestückungsvarianten nicht aktiv.
Wenn sich das Bauteil in einem Plankontext befindet, durchläuft das instances()-Loop-Member nur die Instanzen, die tatsächlich auf diesem Plan verwendet werden. Wenn sich das Bauteil in einem Stromlaufplan- oder Modulkontext befindet, werden alle Instanzen in einer Schleife durchlaufen.
Wenn das Bauteil ein virtuelles Bauteil ist (virtuelle Bauteile können mit UL_SCHEMATIC.allparts() abgerufen werden, siehe UL_SCHEMATIC) ist die instances()-Schleife leer.
Wenn das Bauteil aus einem Modul stammt oder ein virtuelles Bauteil ist, bezieht sich das Modul auf dieses Bauteil. Falls nicht (Bauteil im Hauptstromlaufplan), ist das Modul gleich null.
Bei virtuellen Bauteilen ist modulepart das (tatsächliche) Bauteil aus dem Quellmodul. Wenn es sich um ein Bauteil im Hauptstromlaufplan oder um das Modulbauteil selbst handelt, ist modulepart gleich null.
Bei virtuellen Bauteilen ist modulepath eine Zeichenfolge mit der Namensfolge der Modulinstanzen, die auf das Modul mit dem verwendeten Bauteil verweisen. Diese Namen werden durch ':' getrennt. In anderen Fällen ist diese Zeichenfolge leer.
Bei einem virtuellen Bauteil mit dem Namen 'MI1:R1' lautet modulepath z. B. 'MI1'. Wenn 'R101' aus einer Modulinstanz 'MX' mit Versatzvermerk stammt wird modulepath 'MX' ausgegeben. 'MAIN:SUB1:SUBSUB1:C5' hat modulepath 'MAIN:SUB1:SUBSUB1'.
Nicht alle UL_PART-Objekte verfügen über 3D-Packages. Das package3d-Element kann als boolesche Operation verwendet werden, um zu testen, ob ein 3D-Package vorhanden ist, z. B. (P.package3d).
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]);
}
}
}
}