HoopLang Docs
/
Playground
El libro · Capítulo 09

9. El bastidor

Hasta ahora cada archivo era un diseño. Pero la máquina no borda diseños sueltos: borda un bastidor, el aro que tensa la tela, con todo lo que quepa en él. Un escudo y un nombre en la espalda de un polerón, doce parches para recortar: todo eso va en un solo bastidor y en un solo archivo de máquina. En este capítulo escribes archivos hoop, que montan diseños en las coordenadas reales del bastidor.

Un archivo hoop#

HoopLang
// bastidor.hoop: una estrella y una etiqueta en un bastidor Brother mediano.
hoop "Estrella y nombre" {
  frame: Brother_130x180
  fabric: Fleece
  margin: 8mm

  place "estrella.hoop" at (65mm, 50mm)
  place "etiqueta.hoop"(nombre: "SOFÍA") at (65mm, 110mm) anchor: center
  place "estrella.hoop"(radio: 15mm, puntas: 6) at (65mm, 150mm) rotate: 30deg scale: 90%
}
Terminal
hoop check bastidor.hoop
hoop build bastidor.hoop salida/
Salida del compilador
bastidor.hoop: ok — 3 designs, 3 threads, 16 objects
bastidor.hoop: 70.8 × 132.2 mm, 8601 stitches, 3 threads, 11 trims, 109 ms

Un archivo tiene un design o un hoop, nunca los dos. El hoop no borda nada por sí mismo: sólo coloca diseños, cada uno en su archivo (aquí, la estrella y la etiqueta de los capítulos 7 y 8).

frame: el bastidor#

frame es el área útil del bastidor (lo que la aguja alcanza, no el aro de plástico). Hay un catálogo:

NombreÁrea útil
Brother_100x100100 × 100 mm (el mediano de las caseras)
Brother_130x180130 × 180 mm
Brother_160x260160 × 260 mm
Brother_200x200200 × 200 mm
Brother_200x300200 × 300 mm
Tajima_150x150150 × 150 mm
Tajima_240x240240 × 240 mm
Tajima_360x360360 × 360 mm
Cap_130x60130 × 60 mm (gorro)

o uno a medida: frame: custom(120mm, 120mm). El frame es obligatorio en un hoop:

Salida del compilador
hoop-sin.hoop:1:1: error E007: the hoop is missing frame

(Sin bastidor no se revisa dónde cae cada place: el único error es el que importa.)

Si escribes un nombre que no está, el mensaje lista el catálogo:

Salida del compilador
b5.hoop:2:3: error E002: unknown frame `Brother_130x190` (catalog: Brother_100x100, Brother_130x180, Brother_160x260, Brother_200x200, Brother_200x300, Tajima_150x150, Tajima_240x240, Tajima_360x360, Cap_130x60)

Coordenadas del bastidor#

Las mismas que en un diseño: (0, 0) en la esquina superior izquierda del área útil, x a la derecha, y hacia abajo. En un 130 × 180, el centro es (65mm, 90mm).

margin#

La distancia mínima de lo cosido al borde del área útil: 5 mm si no lo escribes. Es tu colchón: cerca del aro la tela está menos tensa, el prensatelas puede chocar con el marco y cualquier error de colocación se paga ahí.

fabric: la tela del bastidor manda#

fabric en un hoop manda sobre la tela de cada diseño: los parámetros de cada uno se resuelven para ella. La estrella, escrita sin tela (sarga por defecto), se borda aquí como polar (Fleece): más compensación y subcapa, sin tocar su archivo.

place en el bastidor#

Igual que en una capa (capítulo 7):

HoopLang
// no-check Plantilla sintáctica con elipsis, no un programa ejecutable.
place "archivo.hoop"(argumentos) at (x, y) anchor: … rotate: … scale: …
  • at: dónde va, en coordenadas del bastidor.
  • anchor: qué punto del lienzo del diseño cae en at (center por defecto; también top_left, top_center, bottom_right…). Por eso el lienzo importa: es lo que se ancla. Con anchor: top_center y at: (100mm, 20mm), el borde superior del lienzo del escudo queda a 20 mm del borde del área útil, centrado.
  • rotate y scale: transforman el diseño entero (con scale cambian también los anchos de satín y la altura de las letras).
  • Los argumentos van a los param del diseño.

Los archivos de place se buscan junto al archivo hoop.

Lo que se revisa#

Que todo quepa dentro del área útil menos el margen, con la huella real de lo cosido:

Salida del compilador
bastidor-fuera.hoop:9:3: error E006: `estrella.hoop` spans (51.5, 153.3)–(78.5, 176.7) mm, outside the sewing area minus its 8 mm margin (130 × 180 mm frame)

El mensaje te da la caja del diseño colocado y el bastidor. Aquí la estrella llega a 176.7 mm, y el límite es 180 − 8 = 172 mm.

Que los diseños no se pisen:

Salida del compilador
bastidor-pisa.hoop:8:3: warning W006: `etiqueta.hoop` overlaps `estrella.hoop` by 30.7 mm²

Es una advertencia porque a veces se pisan a propósito (un nombre que cruza el escudo), pero casi siempre es un error de posición.

Que el hoop sólo coloque: las capas y las puntadas van en los diseños.

Salida del compilador
hoop-capa.hoop:1:1: error E007: a hoop places designs with place; layers go in each design's file

Los errores de un diseño montado se informan en la línea de su place, con el archivo y la posición de adentro, como en el capítulo 7.

Un solo archivo de máquina, un solo orden#

hoop build produce un archivo de cada formato con todo el bastidor. El orden de bordado se optimiza entre todos los diseños: los objetos del mismo hilo de diseños distintos se bordan juntos, respetando las capas de cada uno. En bastidor.hoop el orden de colores queda oro, negro, blanco, negro: los rayos de las dos estrellas juntos, sus centros negros juntos, el fondo blanco de la etiqueta y, al final, el texto y el borde negros de la etiqueta, que tienen que ir sobre su fondo. Cuatro bloques de color para tres piezas de tres colores, en vez de uno por cada objeto.

Sobre la posición en la máquina: el origen de los archivos de máquina es el centro del bastidor. Las máquinas Tajima, Melco y Singer (DST, EXP, XXX) empiezan donde está la aguja, que centras en el bastidor: cada diseño cae donde dice su at. JEF guarda las distancias reales desde el origen. PES guarda el bastidor y la posición (como PE-Design), y las máquinas Brother centran el conjunto. Un diseño compilado solo, sin hoop, se centra en su propio centro.

Una plancha de parches#

El ejemplo más potente de un hoop: doce parches de nombre (el galeria/parche.hoop del capítulo 7), cada uno con un nombre distinto, en un bastidor grande, para bordarlos de una vez y recortarlos.

HoopLang
// plancha.hoop: doce parches de nombre en un bastidor grande, para bordarlos
// de una vez y recortarlos. El mismo parche con un nombre distinto en cada
// uno: un for sobre una lista, y grid() para ubicar cada copia.
hoop "Plancha de parches" {
  frame: Tajima_360x360
  margin: 10mm

  for nombre, i in [
    "ANA", "LUIS", "SOFÍA", "TOMÁS", "ISIDORA", "MATEO",
    "MARÍA JOSÉ", "BENJAMÍN", "EMILIA", "VICENTE", "AMANDA", "GASPAR",
  ] {
    place "parche.hoop"(nombre: nombre)
    at grid(i, cols: 3, step: (110mm, 45mm), start: (70mm, 40mm)) anchor: center
  }
}
Salida del compilador
galeria/plancha.hoop: ok — 12 designs, 3 threads, 48 objects
galeria/plancha.hoop:warning (JEF): 310.4 × 170.4 mm exceeds the largest Janome hoop (200 × 200 mm): the machine may reject it
galeria/plancha.hoop: 310.4 × 170.4 mm, 62212 stitches, 3 threads, 109 trims, 704 ms

Fíjate:

  • La variable del for se llama nombre, igual que el param del parche, y (nombre: nombre) pasa una a la otra. Son nombres de archivos distintos: no chocan.
  • grid ubica las doce copias en 3 columnas, a 110 mm una de otra en horizontal y 45 mm en vertical.
  • Cada parche encaja su nombre en la caja (box, capítulo 4): "ANA" va a 9.5 mm y "MARÍA JOSÉ" más chico, todos con la misma línea base.
  • Las copias se ordenan juntas por hilo: doce parches de tres colores son dos cambios de hilo, no 35.
  • hoop build avisa que el archivo JEF no cabe en ninguna máquina Janome: la plancha es para una multiaguja con bastidor de 360 mm. Las advertencias de formato tienen la forma warning (FORMATO): ….

El diseño también puede nombrar su bastidor#

Un design acepta frame: para decir en qué bastidor piensa bordarse (frame: Brother_100x100). No cambia las coordenadas; al compilar, hoop build avisa si el bordado no cabe:

Salida del compilador
f.hoop:error: the design is 110.4 × 49.8 mm and does not fit the 100 × 100 mm frame

Este aviso sale en hoop build, no en hoop check; y aunque dice error, los archivos se escriben igual. Para montar en serio, usa un hoop.

Resumen#

  • Un archivo hoop "nombre" { frame:, fabric:, margin:, place … } monta diseños en un bastidor real; no lleva capas.
  • frame es un bastidor del catálogo o custom(ancho, alto); margin vale 5 mm por defecto; la fabric del hoop manda.
  • place … at … anchor: … ancla un punto del lienzo del diseño en las coordenadas del bastidor.
  • Se revisa que todo quepa (E006) y que nada se pise (W006).
  • Un hoop compila a un solo archivo de máquina, con el orden optimizado entre todos los diseños; for y grid arman planchas.

Referencia: bastidor · catálogos · control · diagnósticos