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