| arco | UL_ARC |
| remate | int (CAP_...) |
| curva | real |
| capa | entero |
| estilo | int (WIRE_STYLE_...) |
| grosor | entero |
| x1, y1 | int (punto inicial) |
| x2, y2 | int (punto final) |
| pieces() | UL_WIRE (consulte la nota) |
Consulte también UL_BOARD, UL_FOOTPRINT, UL_SEGMENT, UL_SHEET, UL_SIGNAL, UL_SYMBOL, UL_ARC
| CAP_FLAT | extremos planos del arco |
| CAP_ROUND | extremos redondos del arco |
| WIRE_STYLE_CONTINUOUS | continuo |
| WIRE_STYLE_LONGDASH | trazo largo |
| WIRE_STYLE_SHORTDASH | trazo corto |
| WIRE_STYLE_DASHDOT | trazo y punto |
Un UL_WIRE con un estilo distinto a WIRE_STYLE_CONTINUOUS puede utilizar el miembro de bucle pieces() para acceder a los segmentos individuales que constituyen, por ejemplo, un conductor a trazos. Si se inicia pieces() para un UL_WIRE con WIRE_STYLE_CONTINUOUS, se podrá acceder a un solo segmento, que será exactamente igual que el UL_WIRE original. No se puede iniciar el miembro de bucle pieces() desde un UL_WIRE devuelto por un inicio de pieces(). Esto causaría una repetición infinita.
Los arcos son básicamente conductores, con algunas propiedades más. En el primer nivel, los arcos se tratan exactamente igual que los conductores, es decir, tienen un punto inicial y un punto final, una ancho, una capa y un estilo. Además, un arco, en el nivel de conductor, tiene los parámetros remate y curva. El remate define si los finales de arco son redondos o planos, y la curva define la "curvatura" del arco.
El rango válido para la curva es de -360 a +360, y su valor indica la parte de un círculo completo de la que se compone el arco. Un valor de 90, por ejemplo, daría como resultado un arco de 90°, mientras que 180 le daría un semicírculo. El valor máximo de 360 solo existe en la teoría, ya que esto significaría que el arco consta de un círculo completo, que, como los puntos inicial y final deben estar en el círculo, tendría que tener un diámetro infinitamente grande. Los valores positivos de la curva significan que el arco se dibuja en un sentido matemáticamente positivo (es decir, en sentido antihorario). Si la curva es 0, el arco es una línea recta ("sin curvatura"), que en realidad es un conductor.
El parámetro remate solo tiene un significado para los arcos reales y siempre devuelve CAP_ROUND para un conductor recto.
Para determinar si un UL_WIRE es un arco, compruebe el valor de retorno booleano del miembro de datos arc. Si devuelve 0, tenemos un conductor recto, de lo contrario, un arco. Si arco devuelve un valor distinto de cero, es posible que se haga referencia a él para acceder a los parámetros específicos de UL_ARC, ángulo inicial y final, radio y centro. Tenga en cuenta que es posible que solo necesite estos parámetros si va a dibujar el arco o procesarlo de otra manera en las que la forma real sea importante.
board(B) {
B.wires(W) {
printf("Wire: (%f %f) (%f %f)\n",
u2mm(W.x1), u2mm(W.y1), u2mm(W.x2), u2mm(W.y2));
}
}