Catálogos
Este capítulo reúne los enums cerrados y catálogos de HoopLang: los
nombres fijos que el compilador acepta (fuentes, telas, underlays,
bastidores, anclas y los valores simbólicos de algunas propiedades), las
bibliotecas de hilos que trae el proyecto y los formatos de máquina que
produce hoop build, con lo que cada uno conserva y los límites que se
revisan al exportar. Un nombre fuera de su catálogo es E002 y, si hay uno
parecido, el mensaje lo sugiere. Ver también primitivas.md,
texto.md, bastidor.md, modulos.md y
herramientas.md.
Los valores de un enum se escriben como un nombre suelto, sin comillas
(fabric: Pique, align: center) y distinguen mayúsculas.
Resumen#
| Catálogo | Dónde se usa | Valores |
|---|---|---|
Fabric | design { fabric: … }, hoop { fabric: … } | Twill, Pique, Fleece, Cap, Stretch |
Underlay | fill { underlay: … }, satin { underlay: … } | None, Center, Edge, Zigzag, Auto |
Font | text { font: … } | 24 fuentes (abajo) |
| bastidores | design { frame: … }, hoop { frame: … } | 9 nombres o custom(w, h) |
| anclas | place … anchor: … | 9 anclas |
| origen | design { origin: … } | top_left (por defecto), center (el centro del lienzo; en un hoop, del bastidor) |
align | text | left, center, right |
style | text | auto, satin, fill |
angle | fill | un Angle o auto |
density | satin | un Length o auto |
arc | text | un Length o none |
Telas (Fabric)#
La tela ajusta lo que depende del material (compensación de tirón,
underlay, largo máximo de un cruce de satín y orden de bordado) y no lo que
no depende de él (largo de puntada, desfase). Se declara en el design
(por defecto Twill); la del hoop que monta un diseño manda sobre la
de cada diseño. Los valores sólo se usan donde el archivo no escribe la
propiedad (ver primitivas.md).
| Tela | Material | Comp. tatami | Comp. satín | Underlay tatami (separación) | Umbrales underlay satín Auto | Cruce máx. satín | Densidad tatami | Orden |
|---|---|---|---|---|---|---|---|---|
Twill | sarga: tejido plano estable (base) | 0.20 mm | 0.20 mm | 1.5 mm | 1.0 / 2.5 / 4.5 mm | 7 mm | ×1.0 (0.20 mm) | vecino más cercano |
Pique | piqué (polera polo): punto con textura que "come" bordes | 0.35 mm | 0.30 mm | 1.2 mm | 1.0 / 2.0 / 3.5 mm | 7 mm | ×1.0 | vecino más cercano |
Fleece | polar: pelo alto que hay que aplastar | 0.40 mm | 0.35 mm | 1.0 mm | 0.8 / 1.5 / 3.0 mm | 6 mm | ×1.0 | vecino más cercano |
Cap | gorro estructurado, superficie curva | 0.30 mm | 0.30 mm | 1.5 mm | 1.0 / 2.5 / 4.0 mm | 5 mm | ×1.0 | gorro |
Stretch | plano elástico (bistretch) y jersey | 0.35 mm | 0.30 mm | 1.2 mm | 1.0 / 2.0 / 3.5 mm | 7 mm | ×1.1 (0.22 mm) | del centro hacia afuera |
Cómo leer la tabla:
- Comp. tatami / satín: valor por defecto de
pullenfillysatin(y en las letras de untext). - Umbrales underlay satín: anchos medios de columna en que
Autopasa deNoneaCenter, deCenteraEdgey deEdgeaZigzag. - Cruce máx. satín: los cruces más largos se dividen en tramos.
- Densidad tatami: multiplica la separación de filas por defecto de
fill(no la escrita endensity). - Orden: vecino más cercano minimiza saltos; gorro borda en franjas desde el eje vertical hacia afuera y de abajo hacia arriba; del centro hacia afuera empuja la deformación hacia la tela libre.
Underlays (Underlay)#
| Valor | En satin | En fill |
|---|---|---|
Auto | según el ancho medio y los umbrales de la tela | contorno + filas abiertas a 90° |
None | sin underlay | sin underlay (ni filas ni contorno) |
Center | corrido por el centro | E002 (es del satín) |
Edge | corrido por dentro de ambos bordes | sólo el contorno |
Zigzag | contorno + zigzag abierto | E002 (es del satín) |
Tatami | — | sólo filas abiertas a 90° |
DoubleTatami | — | contorno + dos pasadas cruzadas (±45°) |
Detalle de cada uno en primitivas.md.
Fuentes (Font)#
En el orden en que se ofrecen: ArialBold, Arial, Futura,
Montserrat, Poppins, Roboto, MontserratBlack, RobotoBlack,
FuturaBlack, Block, Condensed, Bebas, Oswald, Varsity,
Serif, Times, Slab, Playfair, Script, Lobster, Elegant,
Brush, Gothic, Stroke. Por defecto, Stroke. Origen, estilo y alto
mínimo de cada una en texto.md.
Bastidores (frame)#
Área útil en milímetros (ancho × alto).
| Marca | Nombre | Área útil |
|---|---|---|
| Brother | Brother_100x100 | 100 × 100 mm |
| Brother | Brother_130x180 | 130 × 180 mm |
| Brother | Brother_160x260 | 160 × 260 mm |
| Brother | Brother_200x200 | 200 × 200 mm |
| Brother | Brother_200x300 | 200 × 300 mm |
| Tajima | Tajima_150x150 | 150 × 150 mm |
| Tajima | Tajima_240x240 | 240 × 240 mm |
| Tajima | Tajima_360x360 | 360 × 360 mm |
| Gorro | Cap_130x60 | 130 × 60 mm |
| — | custom(ancho, alto) | la que se indique (dos Length) |
Un nombre fuera del catálogo da E002 con la lista completa:
error E002: unknown frame `Brother_100x200` (catalog: Brother_100x100, Brother_130x180, Brother_160x260, Brother_200x200, Brother_200x300, Tajima_150x150, Tajima_240x240, Tajima_360x360, Cap_130x60)custom con otra cosa que dos Length es E001.
En un design, frame es opcional: no cambia el diseño y se revisa al
exportar (ver Límites de máquina). En un hoop es
obligatorio y define el área donde se montan los diseños, con margin
(5 mm por defecto) hacia adentro (E006 si algo se sale). Ver
bastidor.md.
design "Manga" { canvas: rect(size: (40mm, 120mm)), frame: custom(50mm, 130mm), fabric: Stretch }
thread n = #1c1616 "Negro"
layer a { run n { path: path { from (20mm, 5mm) line (20mm, 115mm) } } }Anclas (anchor)#
Qué punto del lienzo del diseño colocado cae en el at de un place. Por
defecto, center.
| izquierda | centro | derecha | |
|---|---|---|---|
| arriba | top_left | top_center | top_right |
| medio | center_left | center | center_right |
| abajo | bottom_left | bottom_center | bottom_right |
hoop "Plancha" {
frame: Tajima_240x240
fabric: Pique
margin: 8mm
place "p_fill.hoop" at (120mm, 60mm) anchor: center
place "p_run.hoop" at (20mm, 140mm) anchor: top_left
}(p_fill.hoop y p_run.hoop son los ejemplos de fill y run de
primitivas.md, guardados junto al hoop.)
Las formas exponen los mismos nombres como miembros (canvas.top_left,
escudo.bottom_center…), además de .top, .bottom, .left, .right,
.width y .height; ver expresiones.md.
Bibliotecas de hilos#
El proyecto trae dos bibliotecas en docs/lenguaje/bibliotecas/. Son
archivos .hoop que sólo declaran thread; los valores RGB son
aproximados.
| Archivo | Hilos | Origen | Nombres | Marca y código |
|---|---|---|---|---|
brother.hoop | 60 | paleta PEC (los colores que muestran las máquinas Brother) | en inglés, en minúsculas con _ (red, prussian_blue, deep_gold…) | brand: "Brother", sin código |
janome.hoop | 78 | paleta JEF (códigos de hilo Janome) | c + código (c002 es negro, c001 blanco…) | brand: "Janome", code: "002"… |
No hay biblioteca de Madeira ni de otras marcas; una propia se escribe
igual (thread oro = #d8a21b "Gold" { brand: "Madeira", code: "1172" }).
Se importan con import (ruta relativa al archivo principal; ver
modulos.md), con prefijo o eligiendo nombres:
import brother from "brother.hoop"
import { c002 as negro_janome } from "janome.hoop"
design "Paleta" { canvas: rect(size: (40mm, 30mm)), frame: Brother_100x100 }
layer a {
fill brother.red { shape: rect(at: (5mm, 5mm), size: (30mm, 20mm)) }
satin negro_janome { border: rect(at: (5mm, 5mm), size: (30mm, 20mm)), width: 2mm }
}Al archivo de máquina llegan sólo los hilos importados que se usan.
Formatos de máquina#
hoop build <archivo.hoop> <carpeta> escribe siempre los seis formatos,
más dos vistas SVG (<nombre>.svg, realista, y <nombre>.needles.svg).
Todos usan una grilla de 0.1 mm. El origen es el centro del bastidor
cuando se compila un hoop, y el centro del diseño cuando se compila un
design suelto. Los escritores siempre producen un archivo válido: los
desplazamientos más largos que lo que admite un registro se parten en
varios.
| Formato | Máquinas | Colores | Nombres de hilo | Bastidor / posición | Corte | Desplazamiento por registro |
|---|---|---|---|---|---|---|
PES (.pes) | Brother | sí: tabla de hilos PES v6 (RGB real, nombre, código, marca) y, para la máquina, el color más cercano de la paleta PEC de 64 | sí (v6) | sí, en un hoop: PES v6 guarda el bastidor y la posición del diseño; un diseño suelto va centrado en el de 130 × 180 | sí | — |
DST (.dst) | Tajima y compatibles | no (sólo cambios de hilo) | no; la cabecera LA: lleva el nombre del diseño (16 caracteres) | no; empieza donde está la aguja (el centro) | sí | ±12.1 mm |
EXP (.exp) | Melco, Bernina | no (sin cabecera) | no | no; empieza donde está la aguja | sí | ±12.7 mm |
JEF (.jef) | Janome | sí, asignados al color más cercano de la paleta Janome | no | código de bastidor Janome según el tamaño (50 × 50, 126 × 110, 140 × 200, 200 × 200; si no, 110 × 110) | no tiene comando: la máquina corta ante tres saltos nulos seguidos | ±12.7 mm |
VP3 (.vp3) | Husqvarna Viking, Pfaff | sí (RGB) | sí, con la marca | posiciones de bloque desde el centro del diseño | sí | no tiene saltos: la siguiente puntada lleva el desplazamiento |
XXX (.xxx) | Singer, Compucon | sí: tabla RGB al final | no | no; empieza donde está la aguja | sí | ±12.3 mm (puntada larga con dos i16) |
Límites de máquina#
Antes de exportar, hoop build revisa lo que el archivo de máquina no
puede arreglar e imprime cada problema (error: …, warning (JEF): …).
Estos avisos no detienen la escritura de archivos: aparecen sólo en
hoop build, no en hoop check.
| Regla | Formatos | Severidad | Mensaje |
|---|---|---|---|
El diseño no cabe en el bastidor declarado (frame), con aviso si cabría girado 90° | todos | error | the design is 140.0 × 0.0 mm and does not fit the 100 × 100 mm frame ((it fits rotated 90°)) |
| Puntadas de más de 12 mm: hilo suelto que se engancha | todos | advertencia | N stitches longer than 12 mm: loose thread that snags |
| Más de 256 bloques de color | PES | error | N color blocks; the format holds up to 256 |
| Más de 255 bloques de color | VP3 | error | N color blocks; the format holds up to 255 |
| Diseño mayor que 200 × 200 mm, el bastidor Janome más grande con código | JEF | advertencia | … exceeds the largest Janome hoop (200 × 200 mm): the machine may reject it |
| Saltos de más de 25.4 mm sin corte antes: una Janome los lee como corte | JEF | advertencia | N jumps longer than 25.4 mm without a trim: a Janome machine reads them as a trim |
Otros mínimos del motor: ninguna puntada de menos de 0.3 mm (las más cortas se funden), y en el tatami ninguna puntada de fila bajo 0.5 mm.