angle | real(0.0...359.9) |
dx[layer], dy[layer] | int(크기) |
flags | int(SMD_FLAG_...) |
layer | int(주 참고) |
name | string(SMD_NAME_LENGTH) |
roundness | int(주 참고) |
signal | string |
x, y | int(중심점, 주 참고) |
SMD_FLAG_STOP | 중지 마스크 생성 |
SMD_FLAG_THERMALS | 열 생성 |
SMD_FLAG_CREAM | 크림색 마스크 생성 |
SMD_NAME_LENGTH | smd 이름의 최대 권장 길이(CONTACT_NAME_LENGTH와 동일) |
smd의 매개변수는 액세스하는 컨텍스트에 따라 달라집니다.
선택적 도면층 색인을 사용하여 dx 및 dy 데이터 멤버를 호출하는 경우 해당 도면층에 대한 데이터는 디자인 규칙에 따라 반환됩니다. 유효한 도면층은 상단 도면층의 smd에 대해 LAYER_TOP, LAYER_TSTOP 및 LAYER_TCREAM, 하단 도면층의 smd에 대해 LAYER_BOTTOM, LAYER_BSTOP 및 LAYER_BCREAM입니다.
angle은 중심을 기준으로 시계 반대 방향으로 smd가 회전하는 각도를 정의합니다.
플래그에 의해 반환되는 값은 다음과 같이 개별 플래그 설정을 결정하기 위해 SMD_FLAG_.... 상수로 마스킹해야 합니다.
if (smd.flags & SMD_FLAG_STOP) {
...
}
ULP에서 객체를 그리기만 하려는 경우에는 이러한 플래그를 명시적으로 확인할 필요가 없습니다. dx[] 및 dy[] 멤버는 적절한 데이터를 반환합니다. 예를 들어 SMD_FLAG_STOP이 설정된 경우 dx[LAYER_TSTOP]이 0을 반환하며, 이로 인해 해당 도면층에 아무 것도 그려지지 않습니다. flags 멤버는 주로 라이브러리 객체를 작성하는 스크립트 파일을 작성하려는 ULP에 사용됩니다.
library(L) {
L.footprints(FPT) {
FPT.contacts(C) {
if (C.smd)
printf("Smd: '%s', (%f %f), dx=%f, dy=%f\n",
C.name, u2mm(C.smd.x), u2mm(C.smd.y), u2mm(C.smd.dx), u2mm(C.smd.dy));
}
}
}