UL_SMD

데이터 멤버

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(중심점, 주 참고)
참고: UL_FOOTPRINT, UL_CONTACT, UL_PAD

상수

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