UL_SMD

Membres de données

angle réel (0...359,9)
dx[layer], dy[layer] entier (taille)
indicateurs entier (SMD_FLAG_...)
calque entier (voir remarque)
Nom chaîne (SMD_NAME_LENGTH)
roundness entier (voir remarque)
signal chaîne
x, y entier (point central, voir remarque)

Voir aussi UL_FOOTPRINT, UL_CONTACT, UL_PAD

Constantes

SMD_FLAG_STOP générer un masque d’arrêt
SMD_FLAG_THERMALS générer les symboles thermiques
SMD_FLAG_CREAM générer un masque de pâte
SMD_NAME_LENGTH longueur maximale recommandée d’un nom de composant monté en surface (identique à CONTACT_NAME_LENGTH)

Remarque

Les paramètres du composant monté en surface dépendent du contexte dans lequel vous y accédez :

Si les membres de données dx et dy sont appelés avec un index de couche facultatif, les données de cette couche sont renvoyées selon les règles de conception. Les couches valides sont LAYER_TOP, LAYER_TSTOP et LAYER_TCREAM pour un composant monté en surface dans la couche supérieure, et LAYER_BOTTOM, LAYER_BSTOP et LAYER_BCREAM pour un composant monté en surface dans la couche inférieure.

Le membre de données angle définit le degré de rotation du composant monté en surface dans le sens trigonométrique autour de son centre.

La valeur renvoyée par le membre de données flags doit être masquée avec les constantes SMD_FLAG_... pour déterminer les paramètres de chaque indicateur, comme dans l’exemple suivant :

if (smd.flags & SMD_FLAG_STOP) {
   ...
   }

Notez que si l’ULP doit seulement dessiner les objets, il n’est pas nécessaire de vérifier explicitement ces indicateurs. Les membres de données dx[] et dy[] renverront les données correctes. Par exemple, si la constante SMD_FLAG_STOP est définie, le membre de données dx[LAYER_TSTOP] renvoie 0. Normalement, rien n’est donc dessiné dans cette couche. Le membre de données flags est principalement destiné aux ULP conçus pour générer des fichiers script qui créent des objets de bibliothèque.

Exemple

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