Joan (discussió | contribucions)
Joan (discussió | contribucions)
Línia 134: Línia 134:
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).


*JacqRtCourse
*JacqRtCourse int32
Indica que pasadas se aplica el valor JacqRt.
Indica que pasadas se aplica el valor JacqRt.
   0:pasadas pares
   0:pasadas pares
   1: pasadas impares
   1: pasadas impares


*FinalGauge
*FinalGauge float
Type:float
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)


*FinalQuality
*FinalQuality float
Type:float
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).


*RealGauge
*RealGauge float
Type:float
Galga de máquina (medida en agujas/pulgada)-
Galga de máquina (medida en agujas/pulgada)-


*RealQuality
*RealQuality float
Type:float
Calidad de máquina (medida en pasadas/centímetro).
Calidad de máquina (medida en pasadas/centímetro).


*Shrinkage
*Shrinkage float
Type:float
Porcentage de encongimiento en agujas (0-100%)
Porcentage de encongimiento en agujas (0-100%)


*Elasticity
*Elasticity float
Type:float
Porcentage de elasticidad en pasadas (0-100%)
Porcentage de elasticidad en pasadas (0-100%)


Línia 181: Línia 175:
Tipo de hilo por defecto de la barra.
Tipo de hilo por defecto de la barra.


*BarMaxGimp  
*BarMaxGimp int32
Guimpada máxima en agujas de la barra.
Guimpada máxima en agujas de la barra.


*BarDrive
*BarDrive int32
En máquinas raschel SU, el número de getribe de la barra.
En máquinas raschel SU, el número de getribe de la barra.


*BarFactor
*BarFactor int32
En máquinas raschel SU, multiplicador de la barra.
En máquinas raschel SU, multiplicador de la barra.
1: factor de 1 agulla
1: factor de 1 agulla
Línia 195: Línia 189:




*BarInvert
*BarInvert int32
En máquinas raschel SU, les barres invertides.  
En máquinas raschel SU, les barres invertides.  
1: barra invertida.
1: barra invertida.
0: barra no invertida.
0: barra no invertida.


*BarWork
*BarWork int32
 
Trabajo de la barra en el sistema de diseño.
Trabajo de la barra en el sistema de diseño.



Revisió del 10:52, 4 oct 2016


DLL_EXPORTS


void drf_clear_errors()
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.

int drf_get_num_errors();
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.
Return:numero de mensajes almacenados.

const char* drf_get_error(int idx)
Descr:obtiene el mensajes de error indicado por idx.
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL ('\0'), o NULL en caso que 
el valor de idx este fuera de rango.

int drf_to_json(char *path,FILE *json,int options)
Descr:Serializa a JSON un dibujo DRF.
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.
p:json: puntero FILE ya abierto y con la escritura habilitada.
p:options: Selecciona que información se serializará. Valores possibles:
   DRF_GET_GENERIC_INFO
   DRF_GET_MACHINE_INFO
   DRF_GET_DRAFT_INFO
   DRF_GET_ALL_INFO

Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.

TAGS

Codificación a JSON de los datos:

La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor. Todos los tags se codifican como

TAGS GENERIC INFO


*Software string
Nombre del programa que ha generado el fichero .DRF

*DrawName string
Referencia del dibujo (max. 256 carac).

*Company string
Compañía que ha creado el dibujo (max. 30 carac).

TAGS MACHINE INFO


*Machine string
Referencia de la máquina. (max. 30 carac) 

*MachineType string
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)

*Description string
Descripción o información adicional de la máquina.

*Serial string
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.

*Version int32
Versión de la máquina raschel SU (versión 1 .. 4).
   versión 1 . Sin ahorrador de memoria
   versión 2 . Con ahorrador de memoria (repeticiones)
   versión 3 . Sin ahorrador de memoria + información empresa.
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.

*Jacquard int32
Número de barras de Jacquard independientes. Valores posibles: 
   0 : No jacquard
   1 : 1 jacquard o fina barra simple
   2 : 2 jacquard raschel o fina barra doble.

*Fronture int32
Número de fonturas de la máquina
   1 : 1 fontura
   2 : 2 fontures (delante / detrás)

*BarsRepeat int32
Altura del diseño.

*NumRepeats int32
Num de repeticiones en el diseño.

*NumBars int32
Numero de barras que tiene el telar.

*Plate int32
En máquinas raschel (textronic), indica la posición de la plancha.
En máquinas leavers indica donde empiezan los brodeurs.

*JacqNeedles int32
Numero de agujas de Jacquard del telar.

*MachNeedles int32
Numero total de agujas del telar.

*BarsOffset int32
Desplazamiento de barras (orillos=zona perdida)

*JacqOffset int32
Deplazamiento de las agujas de jacquard en el telar.

*MaxDisp int32
Deplazamiento máximo general de las barras para máquinas raschel SU.

*Proximity int32
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.

*ProximityCollindant int32
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.

*JacqRt int32
Deplazamiento Rt del jacquard:

para máquinas raschel:
   no jacquard: rt = 0
   jacquard simple o doble: rt = 1
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.

para máquinas leavers
   no fina barra:      0
   fina barra simple: -1
   fina barra doble:   0
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).

*JacqRtCourse int32
Indica que pasadas se aplica el valor JacqRt.
   0:pasadas pares
   1: pasadas impares

*FinalGauge float
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)

*FinalQuality float
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).

*RealGauge float
Galga de máquina (medida en agujas/pulgada)-

*RealQuality float
Calidad de máquina (medida en pasadas/centímetro).

*Shrinkage float
Porcentage de encongimiento en agujas (0-100%)

*Elasticity float
Porcentage de elasticidad en pasadas (0-100%)

*BarNumBar int32(NumBars)
Numero de cada una de las barras del telar (valor numérico consecutivo)

*BarName string(NumBars)
Nombre o identificador de cada una de las barras del telar

*BarGroup int32(NumBars)
En máquinas raschel el número de grupo de la barra.

*BarStop int32(NumBars)
Posición 0 de la barra.

*BarUtil int32(NumBars)
Visibilidad de la barra en el sistema de diseño.

*BarType int32(NumBars)
Tipo de hilo por defecto de la barra.

*BarMaxGimp int32
Guimpada máxima en agujas de la barra.

*BarDrive int32
En máquinas raschel SU, el número de getribe de la barra.

*BarFactor int32
En máquinas raschel SU, multiplicador de la barra.
1: factor de 1 agulla
2: factor de 2 agulles,
4: factor de 4 agulles.
...


*BarInvert int32
En máquinas raschel SU, les barres invertides. 
1: barra invertida.
0: barra no invertida.

*BarWork int32
Trabajo de la barra en el sistema de diseño.

   0: Chainette
   1: Jacquard     [1]
   2: Brodeur
   3: Gros
   4: Fin
   5: Brillant
   6: Picot
   7: Corde
   8: Lycra
   9: Fond
  10: Bloc
  11: Cord
  12: Guimp
  13: Nul
  14: Jacq 0/2,6/4 [1]
  15: Jacq 0/2,8/6 [1]
  16: Fine Bar.  [sup]
  17: Braquette"
  18: Jacquard     [2]
  19: Jacq 0/2,6/4 [2]
  20: Jacq 0/2,8/6 [2]
  21: Fine Bar.  [inf]
  22: Jacquard
  23: Fine Barre
  24: Fallplate
  25: Embrodery
  26: EFS
  27: Reservé 1
  28: Reservé 2
  29: Jacq 0/2,6/4
  30: Jacq 0/2,8/6
  31: Bord
  32: Lisieres
  33: Romaines
  34: Sonnette
  35: Guimp devant
  36: Petite Corde
  37: Fileur
  38: Separation
  39: Corde Termo
  40: Solv rom
  41: Vis
  42: Jacquard     [3]
  43: Jacquard     [4]
  44: Space Fabric


*BarKnit
En máquines raschel textronic tipous de lligada:
  0 : no planxa
  1 : lligada 1 (mecanica)
  2 : lligada 2 (binaria)
  3 : lligada 3 (mecánica (2))
  4 : lligada 4 (binària (2))

*BarTimes
En máquines raschel textonic temps de la lligada
  0 : no planxa
  2 : temps 2 (p.e) 0202 0202 0202
  4 : temps 4 (p.e) 0220 0220 0220

*BarMode
En máquines raschel textronic el mode la la barra:
  0 : mode A (p.e 0220)
  1 : mode B (p.e 2002)

*BarModif
En máquines raschel textronic indica que la barra no es pot deslligar
  0 : no es pot deslligar
  1 : si es pot deslligar

*BarRepeat (delete)

*BarTension int32
Tensió de la barra a les simulacions.

*BarNumFingers int32(NumBars)
Número de pasadors de la barra

*BarModeDrop int32(NumBars)
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:

 Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1
 ------+----+----+----+----+----+----+----
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2
 ------+----+----+----+----+----+----+----
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2
 ------+----+----+----+----+----+----+----
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2
 ------+----+----+----+----+----+----+----
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2
 ------+----+----+----+----+----+----+----
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1
 ------+----+----+----+----+----+----+----
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1
 ------+----+----+----+----+----+----+----
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1
 ------+----+----+----+----+----+----+----
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2
 ------+----+----+----+----+----+----+----
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2



#define DROP_m_1_2_4_8_8_8       0
#define DROP_m_1_2_4_8_8_16      1
#define DROP_m_1_2_4_8_16_16     2
#define DROP_m_1_2_4_8_16_32     3
#define DROP_1_2_4_8_8_8_8       4

#define DROP_1_2_4_8_8_8_16      5
#define DROP_1_2_4_4_4_4_4       6

#define DROP_m_1_2_1_0_0_0       7
#define DROP_m_1_2_4_4_4_4       8


*BarMaxDesp int32(NumBars)

*BarActive byte(NumBars)

*BarHalvesUp byte(NumBars)

*BarHalvesDn byte(NumBars)

*BarString int32(NumBars)
Valors:
0:
1:ple
2:1f 1x
3:1x 1f
4:buit


*BarFronture int32(NumBars)

*BarDropsUtil int32(7*NumBars)
indica como se deben perforar los 7 posiciones correspondientes a la barra:

Valor:
0: Usado. Siempre a 1. Es decir: no perforar nunca
1: Usado, Se perforara o no en funcion del desplazamiento de la barra
2: Usado. Siemre a 0. Es decir, se perfora siempre
3: No usado. No se perfora

*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)
Stop del pasador relativo al stop de la barra.

*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)
Tipo de pasador.

*CGF1Card int32


*CGF1Type int32
tipo del cartón Gros Fil 1

*CGF1Taille int32

*CGF1Numlines int32
numero de lineas de las que consta el cartón.

*CGF1Script string(CGF1Numlines)
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.
Cada cadena de caracteres tiene el formato: <codigo de tipo> <espacio> <numero de repeticiones>. Ex: "LC 1".
Los codigos de tipo validos son:
   LC: Laçage
   TC: Trou de centrage
   TS: Trou de centrage simple
   EL: Element vide
   GF: Gros fil
   VB: Value

*CGF1Descrip string(CGF1Numlines)
Descripción de cada entada del cartón.

Ex:

  CGF1Script | CGF1Descrip
 ------------+--------------
   "LC 1"    |  "Laçage"
   "TC 1"    |  "Trou de centrage"
   "GF 6"    |  "braquettes"
   "GF 4"    |  "stum"
   "GF 30"   |  "guimpes"
   "TC 1"    |  "Trou de centrage"
   "LC 1"    |  "Laçage"
   "GF 26"   |  "guimpes"
   "GF 4"    |  "stum"
   "GF 6"    |  "braquettes"
   "GF 3"    |  "brodeus"
   "TC 1"    |  "Trou de centrage"
   "LC 1"    |  "Laçage"
   "GF 39"   |  "brodeus"
   "TC 1"    |  "Trou de centrage"
   "LC 1"    |  "Laçage"


/------------------------------------------------------------------------------------------------------------------------------------\
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |
\------------------------------------------------------------------------------------------------------------------------------------/    

*CGF2Card int32

*CGF2Type int32
tipo del cartón Gros Fil 2

*CGF2Taille int32


*CGF2Numlines int32
numero de lineas de las que consta el cartón.

*CGF2Script string(CGF2Numlines)

*CGF2Descrip string(CGF2Numlines)
   LC: Laçage
   TC: Trou de centrage
   TS: Trou de centrage simple
   EL: Element vide
   GF: Gros fil
   VB: Value


*CFBCard int32

*CFBType int32
tipo del cartón Fine Barre

*CFBTaille int32

*CFBNumlines int32

*CFBScript string(CFBNumlines)
   LC: Laçage
   TC: Trou de centrage
   TS: Trou de centrage simple
   EL: Element vide
   FB: Fine barre
   VB: Value


*CFBDescrip string(CFBNumlines)

*CFBNGaits int32

*CFBGaitNBar int32(CFBNGaits)

*CFBGaitNGait int32(CFBNGaits)

*CFBGaitNRepeat int32(CFBNGaits)


TAGS DRAFT DATA


*NumCourses int32
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.

*BarNeedle int16(NumCourses*NumBars)
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:

   BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.
   .
   .
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.
   .
   .
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.
   .

*BarNeedleB int16(NumCourses*NumBars)


*BarHalves int8(NumCourses*NumBars)

*BarKnitting int8(NumCourses*NumBars)

*BarKnittingB int8(NumCourses*NumBars)

*Layout_FrontureData bit(NumCourses*JacqNeedles*Jacquard)

*Layout_WBData bit(NumCourses*JacqNeedles*Jacquard)

*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)
Bits de Jacquard.Valores:
0: T
1: H

*LayoutCourNRepeats int32
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.

*LayoutCourNLayouts int32
Numero de bloques de pasadas a repetir

*LayoutCourRepeat int32(LayoutCourNLayouts)
Numero de pasadas que contiene cada bloque a repetir

*LayoutCourWhich int32(LayoutCourNRepeats)
indice del bloque que a repetir

*LayoutCourTimes int32(LayoutCourNRepeats)
numero de veces que se ha de repetir el bloque. Ejemplo:

Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas
del dibujo. En un dibujo como el siguiente :

    +------------------------------------------------------------------------------------------+
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | 
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | 
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| 
    | \ O'O   O'O   O'O   O'O   O'O   O'O   O'O /  \ O'O   O'O   O'O   O'O   O'O   O'O   O'O / | 
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | 
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | 
 A  |  )   ' `   ' `   ' `   ' `   ' `   ' `   (    )   ' `   ' `   ' `   ' `   ' `   ' `   (  | 
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | 
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| 
 j  | \ O'O   O'O   O'O   O'O   O'O   O'O   O'O /  \ O'O   O'O   O'O   O'O   O'O   O'O   O'O / | 
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | 
 s  +------------------------------------------------------------------------------------------+
     Pasadas >

Si se mira lo que hay guardado en el archivo se encontraría algo similar a :
                     
    +---------------+
    |  ,~.~._,~.~.  |
    | / O.O   O.O \ |
    |( O:@:O O:@:O )|
    | \ O'O   O'O / |
    |  )   . ,   (  |
/\  | (  * -@- *  ) | 
 A  |  )   ' `   (  |
 g  | / O.O   O.O \ |
 u  |( O:@:O O:@:O )|
 j  | \ O'O   O'O / |
 a  |  ·~·~·^·~·~·  |
 s  +---------------+
     Pasadas >


Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:

     A      B        C
  +----+ +------+ +-----+
  |  ,~| |.~._,~| |.~.  | 
  | / O| |.O   O| |.O \ | 
  |( O:| |@:O O:| |@:O )| 
  | \ O| |'O   O| |'O / | 
  |  ) | |  . , | |  (  | 
  | (  | |* -@- | |*  ) |
  |  ) | |  ' ` | |  (  | 
  | / O| |.O   O| |.O \ | 
  |( O:| |@:O O:| |@:O )|
  | \ O| |'O   O| |'O / |  
  |  ·~| |·~·^·~| |·~·  | 
  +----+ +------+ +-----+

Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C

LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )

LayoutCourRepeat=Array(
   numero de pasadas de A,
   numero de pasadas de B,
   numero de pasadas de C
)

NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)

Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:

                         idx  |  LayoutCourWhich | LayoutCourTimes | Significado
                      --------+------------------+-----------------+------------------
                        _     |                  |                 |
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez
                       |      |                  |                 |
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces
                       |      |                  |                 |
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez
LayoutCourNRepeats=6  <       |                  |                 |
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez
                       |      |                  |                 |
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces
                       |      |                  |                 |
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez
                              |                  |                 |




*LayoutJacqNRepeats int32
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.

*LayoutJacqNLayouts int32
Numero de bloques de agujas a repetir

*LayoutJacqRepeat int32(LayoutJacqNLayouts)
Numero de agujas que contiene cada bloque a repetir

*LayoutJacqWhich int32(LayoutJacqNRepeats)
indice del bloque que a repetir

*LayoutJacqTimes int32(LayoutJacqNRepeats)
numero de veces que se ha de repetir el bloque.