| area | UL_AREA |
| area2 | UL_AREA (vedere nota) |
| code | int (numero di identificazione) |
| description | string |
| layer | int |
| modulename | string |
| s1 | string (vedere nota) |
| s2 | string |
| s3 | string |
| s4 | string |
| s5 | string |
| s6 | string |
| sheet | int (numero foglio) |
| signature | string (stringa di firma) |
| state | int (ERROR_STATE_...) |
| Tipo | int (ERROR_TYPE_...) |
| x, y | int (punto centrale) |
| contours() | UL_WIRE (vedere nota) |
Vedere anche UL_BOARD, UL_SCHEMATIC
| ERROR_STATE_ACTIVE | L'errore non è stato ancora approvato o elaborato |
| ERROR_STATE_APPROVED | L'errore è stato approvato |
| ERROR_STATE_PROCESSED | L'errore è stato elaborato |
| ERROR_TYPE_NONE | Nessun errore |
| ERROR_TYPE_WARNING | avviso |
| ERROR_TYPE_ERROR | errore |
| ERROR_TYPE_CONSISTENCY | Errore di coerenza |
Un UL_ERROR è un oggetto astratto che fornisce informazioni sugli errori ERC/DRC.
I membri layer e contours() sono disponibili solo nel contesto UL_BOARD mentre i membri area2, modulename, s1...s6 e sheet sono disponibili solo nel contesto UL_SCHEMATIC.
Il membro area2 è una seconda area, disponibile solo per alcuni errori ERC e si riferisce all'area corrispondente nella scheda. I membri s1...s6 sono valori stringa che, per gli errori ERC, contengono informazioni specifiche come i nomi.
Il membro di sequenza chiusa contours() esegue una sequenza chiusa tra i fili di contorno del poligono di errore della RDC.
string s1;
string ErrLst[];
int ErrCnt = 0;
string ErrLstHeader;
if (board) board(B) {
ErrLstHeader = "Code\tState\tDescription\tLayer\tSignature";
if (B.checked) {
B.errors(ER) {
if (ER.state == ERROR_STATE_ACTIVE) {
sprintf(s1, "%d\t%d\t%s\t%d\t%s", ER.code, ER.state, ER.description, ER.layer, ER.signature);
ErrLst[ErrCnt++] = s1;
}
}
}
}
if (schematic) schematic(SCH) {
ErrLstHeader = "Code\tState\tDescription\tSheet\tModule\ts1\ts2\ts3\ts4\ts5\ts6";
if (SCH.checked) {
SCH.errors(ER) {
if (ER.state == ERROR_STATE_ACTIVE) {
sprintf(s1, "%d\t%d\t%s\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s", ER.code, ER.state, ER.description, ER.sheet, ER.modulename, ER.s1, ER.s2, ER.s3, ER.s4, ER.s5, ER.s6);
ErrLst[ErrCnt++] = s1;
}
}
}
}
dlgDialog("Errors") {
int sel = -1;
dlgListView(ErrLstHeader, ErrLst, sel);
dlgPushButton("+OK") dlgAccept();
};