UL_WIRE

Membres de données

arc UL_ARC
cap entier (CAP_...)
courbe réel
calque int (entier)
style entier (WIRE_STYLE_...)
Largeur int (entier)
x1, y1 entier (point de départ)
x2, y2 entier (point d’arrivée)

Membres de boucle

pieces() UL_WIRE (voir remarque)

Voir aussi UL_BOARD, UL_FOOTPRINT, UL_SEGMENT, UL_SHEET, UL_SIGNAL, UL_SYMBOL, UL_ARC

Constantes

CAP_FLAT extrémités d’arc plat
CAP_ROUND extrémités d’arc arrondi
WIRE_STYLE_CONTINUOUS continu
WIRE_STYLE_LONGDASH tirets longs
WIRE_STYLE_SHORTDASH tirets courts
WIRE_STYLE_DASHDOT tirets points

Style de fil

Un objet UL_WIRE dont le style n’est pas WIRE_STYLE_CONTINUOUS peut utiliser le membre de boucle pieces() pour accéder aux différents segments qui constituent, par exemple, un fil interrompu. Si le membre de boucle pieces() est appelé pour un objet UL_WIRE dont le style est WIRE_STYLE_CONTINUOUS, un seul segment est accessible, ce qui revient au même que l’objet UL_WIRE d’origine. Vous ne pouvez pas appeler le membre de boucle pieces() à partir d’un objet UL_WIRE qui a lui-même été renvoyé par un appel à pieces(). Cela créerait une boucle infinie.

Arcs au niveau du fil

Les arcs sont simplement des fils, avec quelques propriétés supplémentaires. Au premier niveau, les arcs sont traités exactement de la même façon que les fils : ils ont un point de départ et un point d’arrivée, une largeur, une couche et un style de fil. De plus, un arc possède, au niveau du fil, un paramètre cap et un paramètre curve : cap détermine si les extrémités de l’arc sont arrondies ou plates, et curve détermine la « courbure » de l’arc.

L’intervalle de valeurs autorisées pour curve est compris entre -360 à +360. Cette valeur indique la portion d’une circonférence de cercle complet qui compose l’arc de cercle. Une valeur de 90, par exemple, génère un arc de 90°, tandis qu’une valeur de 180 génère un demi-cercle. La valeur maximale de 360 peut être atteinte en théorie seulement, car avec une telle valeur, l’arc constituerait un cercle complet. Comme les points de départ et d’arrivée doivent se trouver sur le cercle, le diamètre devrait alors être infiniment grand. Si la valeur de curve est positive, l’arc est dessiné dans le sens mathématique positif (c’est-à-dire dans le sens trigonométrique). Si la valeur de curve est 0, l’arc est une ligne droite (« aucune courbure »), ce qui en fait un fil simple.

Le paramètre cap n’a de sens que pour les arcs. Il renvoie toujours CAP_ROUND pour un fil droit.

Pour déterminer si un objet UL_WIRE est un arc, il suffit de vérifier la valeur booléenne renvoyée par le membre de données arc. S’il renvoie la valeur 0, il s’agit d’un fil droit ; sinon il s’agit d’un arc. Si le membre de données arc renvoie une valeur non nulle, il est possible de le déréférencer pour accéder aux paramètres spécifiques de l’objet UL_ARC (angles de départ et de fin, rayon et point central). Notez que vous n’avez besoin de ces paramètres supplémentaires que si vous envisagez de dessiner l’arc ou de le traiter de toute autre manière pour laquelle la forme réelle est importante.

Exemple

board(B) {
  B.wires(W) {
    printf("Wire: (%f %f) (%f %f)\n",
           u2mm(W.x1), u2mm(W.y1), u2mm(W.x2), u2mm(W.y2));
    }
  }