UL_PART

UL_PART

Члени даних

атрибут [] рядок (див. примітку)
пристрій UL_DEVICE
набір пристроїв UL_DEVICESET
модуль UL_MODULE (див. примітку)
modulepart UL_PART (див. примітку)
модульний шлях рядок (див. примітку)
назва рядок (PART_NAME_LENGTH)
package3d UL_PACKAGE3D
заселяти int (0=не заповнювати, 1=заповнювати)
значення рядок (PART_VALUE_LENGTH)

Члени циклу

атрибути() UL_ATTRIBUTE (див. примітку)
екземпляри() UL_INSTANCE (див. примітку)
варіанти() UL_VARIANT (див. примітку)

Дивіться також UL_SCHEMATIC, UL_SHEET

Константи

PART_NAME_LENGTH макс. рекомендована довжина назви частини (використовується лише у форматованому виведенні)
PART_VALUE_LENGTH макс. рекомендована довжина частини значення (використовується лише у форматованому виведенні)

Примітка

Член attribute[] може бути використаний для запиту UL_PART на значення заданого атрибута (див. другий приклад нижче). Повернений рядок є порожнім, якщо немає атрибута з заданим іменем або якщо цей атрибут явно порожній.

Під час циклічного перегляду атрибутів() UL_PART дійсними є лише ім’я, значення, значення за замовчуванням і постійні члени отриманих об’єктів UL_ATTRIBUTE.

Під час циклічного перегляду збірки variants() UL_PART доступні лише фактичні варіанти. Варіант збірки за замовчуванням тут недоступний. Тому цей цикл не активний на деталях без варіантів складання.

Якщо частина знаходиться в контексті аркуша, учасник циклу instances() перебирає лише ті екземпляри, які фактично використовуються на цьому аркуші. Якщо частина знаходиться в контексті схеми або модуля, усі екземпляри проходять циклічно.

Якщо частина є віртуальною (віртуальні частини можна отримати за допомогою UL_SCHEMATIC.allparts(), див. UL_SCHEMATIC), цикл instances() порожній.

Якщо частина походить від модуля або є віртуальною частиною, модуль посилається на це. Якщо ні (частина в основній схемі), модуль є нульовим.

Якщо частина є віртуальною, modulepart є (справжньою) частиною модуля вихідного модуля. Якщо це частина в основній схемі або якщо це сама частина модуля, modulepart дорівнює нулю.

Якщо частина віртуальна, modulepath — це рядок із послідовністю імен екземплярів модуля, які вказують на модуль, що містить використовувану частину. Ці назви розділені знаком «:». В інших випадках цей рядок порожній.

Наприклад, віртуальна частина з назвою «MI1:R1» має шлях до модуля «MI1». «R101», що надходить із екземпляра модуля «MX» із нотацією зміщення, забезпечує шлях до модуля «MX». «MAIN:SUB1:SUBSUB1:C5» має шлях до модуля «MAIN:SUB1:SUBSUB1».

Не всі UL_PART мають пакети 3D. Член package3d можна використовувати як логічне значення для перевірки наявності 3D-пакета, наприклад if (P.package3d).

Приклади

 schematic ( S ) { S . parts ( P ) printf ( "Part: %s
" , P . name );
} schematic ( S ) { S . allparts ( P ) {
    if ( P . attribute [ "REMARK" ]) printf ( "%s: %s
" , P . name , P . attribute [ "REMARK" ]);
    if ( P . modulepart ) { P . modulepart . instances ( I ) printf ( "%s is a virtual part from %s in module %s with part instance on sheet %d
" , P . name , P . modulepart . name , P . module . name , I . sheet );
    }
    else { P . instances ( I ) printf ( "%s is a part on main schematic with instance on sheet %d
" , P . name , I . sheet );
    }
  }
} schematic ( S ) { S . allparts ( P ) {
    if ( P . modulepart ) {
       string miNames [];
       int nr = strsplit ( miNames , P . modulepath , ':' );
       if ( nr == 1 ) printf ( "%s is a virtual part created by module instance %s in main schematic.
" , P . name , miNames [ 0 ]);
       else { printf ( "%s is a virtual part in a multiple hierarchy created by this path of module instances:
" , P . name );
          for ( int i = 0 ; i < nr ; ++ i ) printf ( "%s
" , miNames [ i ]);
       }
    }
  }
}

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