Типи об'єктів

Типи об'єктів

Структури даних EAGLE зберігаються у файлах XML:

  • Бібліотека (*.lbr)
  • Схема (*.sch)
  • Дошка (*.brd)

Ці файли даних містять ієрархію об’єктів. У програмі мови користувача ви можете отримати доступ до цих ієрархій через відповідні вбудовані оператори доступу:

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

Ці оператори доступу встановлюють контекст, у якому ви можете отримати доступ до всіх об’єктів, що містяться в бібліотеці, схемі чи дошці.

Властивості цих об’єктів можна отримати через члени. Існує два типи учасників:

  • Члени даних
  • Члени циклу

Члени даних негайно повертають запитувані дані з об’єкта. Наприклад, в

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

ім'я члена даних об'єкта дошки B повертає назву дошки. Члени даних також можуть повертати інші об’єкти, як у

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

де елемент даних плати плати повертає об’єкт сітки, з якого елемент даних розміру потім повертає розмір сітки.

Члени циклу використовуються для доступу до кількох об’єктів одного типу, які містяться в об’єкті вищого рівня:

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

У цьому прикладі використовується функція члена циклу elements() дошки для налаштування циклу по всіх елементах дошки. Блок, наступний за оператором B.elements(E) виконується по черзі для кожного елемента, і на поточний елемент можна посилатися всередині блоку через ім’я E.

Члени циклу обробляють об’єкти в алфавітно-цифровому порядку, якщо вони мають ім’я.

Функція-член циклу створює змінну типу, необхідного для зберігання запитуваних об’єктів. Ви можете використовувати будь-яке дійсне ім’я для такої змінної, тому наведений вище приклад також можна записати як

 board ( MyBoard ) {
  MyBoard . elements ( TheCurrentElement ) { printf ( "%-8s %-8s
" , 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

Орігінал сторінки: Object types