HoopLang Docs
/
Playground
Referencia del lenguaje

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álogoDónde se usaValores
Fabricdesign { fabric: … }, hoop { fabric: … }Twill, Pique, Fleece, Cap, Stretch
Underlayfill { underlay: … }, satin { underlay: … }None, Center, Edge, Zigzag, Auto
Fonttext { font: … }24 fuentes (abajo)
bastidoresdesign { frame: … }, hoop { frame: … }9 nombres o custom(w, h)
anclasplace … anchor: …9 anclas
origendesign { origin: … }top_left (por defecto), center (el centro del lienzo; en un hoop, del bastidor)
aligntextleft, center, right
styletextauto, satin, fill
anglefillun Angle o auto
densitysatinun Length o auto
arctextun 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).

TelaMaterialComp. tatamiComp. satínUnderlay tatami (separación)Umbrales underlay satín AutoCruce máx. satínDensidad tatamiOrden
Twillsarga: tejido plano estable (base)0.20 mm0.20 mm1.5 mm1.0 / 2.5 / 4.5 mm7 mm×1.0 (0.20 mm)vecino más cercano
Piquepiqué (polera polo): punto con textura que "come" bordes0.35 mm0.30 mm1.2 mm1.0 / 2.0 / 3.5 mm7 mm×1.0vecino más cercano
Fleecepolar: pelo alto que hay que aplastar0.40 mm0.35 mm1.0 mm0.8 / 1.5 / 3.0 mm6 mm×1.0vecino más cercano
Capgorro estructurado, superficie curva0.30 mm0.30 mm1.5 mm1.0 / 2.5 / 4.0 mm5 mm×1.0gorro
Stretchplano elástico (bistretch) y jersey0.35 mm0.30 mm1.2 mm1.0 / 2.0 / 3.5 mm7 mm×1.1 (0.22 mm)del centro hacia afuera

Cómo leer la tabla:

  • Comp. tatami / satín: valor por defecto de pull en fill y satin (y en las letras de un text).
  • Umbrales underlay satín: anchos medios de columna en que Auto pasa de None a Center, de Center a Edge y de Edge a Zigzag.
  • 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 en density).
  • 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)#

ValorEn satinEn fill
Autosegún el ancho medio y los umbrales de la telacontorno + filas abiertas a 90°
Nonesin underlaysin underlay (ni filas ni contorno)
Centercorrido por el centroE002 (es del satín)
Edgecorrido por dentro de ambos bordessólo el contorno
Zigzagcontorno + zigzag abiertoE002 (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).

MarcaNombreÁrea útil
BrotherBrother_100x100100 × 100 mm
BrotherBrother_130x180130 × 180 mm
BrotherBrother_160x260160 × 260 mm
BrotherBrother_200x200200 × 200 mm
BrotherBrother_200x300200 × 300 mm
TajimaTajima_150x150150 × 150 mm
TajimaTajima_240x240240 × 240 mm
TajimaTajima_360x360360 × 360 mm
GorroCap_130x60130 × 60 mm
—custom(ancho, alto)la que se indique (dos Length)

Un nombre fuera del catálogo da E002 con la lista completa:

Salida del compilador
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.

HoopLang
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.

izquierdacentroderecha
arribatop_lefttop_centertop_right
mediocenter_leftcentercenter_right
abajobottom_leftbottom_centerbottom_right
HoopLang
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.

ArchivoHilosOrigenNombresMarca y código
brother.hoop60paleta 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.hoop78paleta 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:

HoopLang
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.

FormatoMáquinasColoresNombres de hiloBastidor / posiciónCorteDesplazamiento por registro
PES (.pes)Brothersí: 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 64sí (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 × 180sí—
DST (.dst)Tajima y compatiblesno (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, Berninano (sin cabecera)nono; empieza donde está la agujasí±12.7 mm
JEF (.jef)Janomesí, asignados al color más cercano de la paleta Janomenocó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, Pfaffsí (RGB)sí, con la marcaposiciones de bloque desde el centro del diseñosíno tiene saltos: la siguiente puntada lleva el desplazamiento
XXX (.xxx)Singer, Compuconsí: tabla RGB al finalnono; empieza donde está la agujasí±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.

ReglaFormatosSeveridadMensaje
El diseño no cabe en el bastidor declarado (frame), con aviso si cabría girado 90°todoserrorthe 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 enganchatodosadvertenciaN stitches longer than 12 mm: loose thread that snags
Más de 256 bloques de colorPESerrorN color blocks; the format holds up to 256
Más de 255 bloques de colorVP3errorN color blocks; the format holds up to 255
Diseño mayor que 200 × 200 mm, el bastidor Janome más grande con códigoJEFadvertencia… 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 corteJEFadvertenciaN 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.