객체 유형

EAGLE 데이터 구조는 다음과 같이 XML 파일에 저장됩니다.

이러한 데이터 파일에는 객체 계층이 포함되어 있습니다. 사용자 언어 프로그램에서는 각 내장 액세스 문을 통해 이러한 계층에 액세스할 수 있습니다.

library(L) { ... }
schematic(S) { ... }
board(B) { ... }

이러한 액세스 문은 라이브러리, 구조도 또는 보드에 포함된 모든 객체에 액세스할 수 있는 컨텍스트를 설정합니다.

이러한 객체의 특성은 멤버를 통해 액세스할 수 있습니다. 멤버에는 다음과 같은 두 가지 유형이 있습니다.

데이터 멤버는 객체에서 요청된 데이터를 즉시 반환합니다. 예를 들어 다음과 같은 경우

board(B) {
  printf("%s\n", B.name);
  }

보드 객체 B의 데이터 멤버 이름은 보드의 이름을 반환합니다. 또한 데이터 멤버는 다음과 같이 다른 객체를 반환할 수 있습니다.

board(B) {
  printf("%f\n", B.grid.size);
  }

여기서 보드의 그리드 데이터 멤버는 그리드 객체를 반환하며, 크기 데이터 멤버는 그리드의 크기를 반환합니다.

루프 멤버는 상위 수준 객체에 포함된 동일한 종류의 다중 객체에 액세스하는 데 사용됩니다.

board(B) {
  B.elements(E) {
    printf("%-8s %-8s\n", E.name, E.value);
    }
  }

이 예에서는 보드의 elements() 루프 멤버 함수를 사용하여 보드의 모든 요소를 반복하는 루프를 설정합니다. B.elements(E) 문 다음의 블록은 각 요소에 대해 차례로 실행되고, 현재 요소는 블록 안에서 이름 E를 통해 참조할 수 있습니다.

루프 멤버는 이름이 있는 경우 알파벳순으로 객체를 처리합니다.

루프 멤버 함수는 요청된 객체를 보관하는 데 필요한 유형의 변수를 작성합니다. 이러한 변수에 대해 어떤 유효한 이름도 자유롭게 사용할 수 있으므로 위의 예를 다음과 같이 작성할 수도 있습니다.

board(MyBoard) {
  MyBoard.elements(TheCurrentElement) {
    printf("%-8s %-8s\n", TheCurrentElement.name, TheCurrentElement.value);
    }
  }

또한 해당 예는 정확하게 동일한 작업을 수행할 수 있습니다. 루프 멤버 함수에 의해 작성된 변수의 범위는 루프 함수 호출 바로 다음에 나오는 문(또는 블록)으로 제한됩니다.

라이브러리의 객체 계층

LIBRARY
  GRID
  LAYER
  DEVICESET
    DEVICE
    GATE
  FOOTPRINT
    CONTACT
      PAD
      SMD
    CIRCLE
    HOLE
    RECTANGLE
    FRAME
    DIMENSION
    TEXT
    WIRE
    POLYSHAPE
      WIRE
    POLYCUTOUT
      WIRE
  PACKAGE3D
  SYMBOL
    PIN
    CIRCLE
    RECTANGLE
    FRAME
    DIMENSION
    TEXT
    WIRE
    POLYSHAPE
      WIRE

구조도의 객체 계층

SCHEMATIC
  GRID
  LAYER
  LIBRARY
  ATTRIBUTE
  VARIANTDEF
  COMPONENT
    ATTRIBUTE
    VARIANT
  SHEET
    CIRCLE
    RECTANGLE
    FRAME
    DIMENSION
    TEXT
    WIRE
    POLYSHAPE
      WIRE
    INSTANCE
      ATTRIBUTE
    MODULEINST
    BUS
      SEGMENT
        LABEL
          TEXT
          WIRE
        WIRE
    NET
      SEGMENT
        JUNCTION
        PINREF
        PORTREF
        TEXT
        WIRE
  MODULE
    PORT
    COMPONENT
    SHEET
      (same as above)

보드의 객체 계층

BOARD
  GRID
  LAYER
  LIBRARY
  ATTRIBUTE
  VARIANTDEF
  CIRCLE
  HOLE
  RECTANGLE
  FRAME
  DIMENSION
  TEXT
  WIRE
  POLYSHAPE
    WIRE
  POLYCUTOUT
    WIRE
  ELEMENT
    ATTRIBUTE
    VARIANT
  SIGNAL
    CONTACTREF
    POLYPOUR
      WIRE
    VIA
    WIRE