area | UL_AREA |
area2 | UL_AREA(주 참고) |
code | int(식별 번호) |
description | string |
layer | int |
modulename | string |
s1 | string(주 참고) |
s2 | string |
s3 | string |
s4 | string |
s5 | string |
s6 | string |
sheet | int(시트 번호) |
signature | string(서명 문자열) |
state | int(ERROR_STATE_...) |
type | int(ERROR_TYPE_...) |
x, y | int(중심점) |
contours() | UL_WIRE(주 참고) |
ERROR_STATE_ACTIVE | 오류가 아직 승인되지 않았거나 처리되지 않음 |
ERROR_STATE_APPROVED | 오류가 승인됨 |
ERROR_STATE_PROCESSED | 오류가 처리됨 |
ERROR_TYPE_NONE | 오류 없음 |
ERROR_TYPE_WARNING | 경고 |
ERROR_TYPE_ERROR | 오류 |
ERROR_TYPE_CONSISTENCY | 일관성 오류 |
UL_ERROR는 ERC/DRC 오류에 대한 정보를 제공하는 추상 객체입니다.
layer 및 contours() 멤버는 UL_BOARD 컨텍스트에서만 사용할 수 있으며 area2, modulename, s1...s6 및 sheet는 UL_SCHEMATIC 컨텍스트에서만 사용할 수 있습니다.
area2 멤버는 또 다른 영역으로, 일부 ERC 오류에서만 사용할 수 있으며 보드에서 해당 영역을 참조합니다. s1...s6 멤버는 문자열 값으로, ERC 오류의 경우 이름과 같은 특정 정보를 포함합니다.
contours() 루프 멤버는 DRC 오류 폴리곤의 윤곽선 와이어를 반복합니다.
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();
};