Ubicaciones

Las ubicaciones son colecciones de polos o referencias que describen la distribución de formas en un área rectangular garantizando el no solapamiento y una distancia mínima entre ellas.

Nótese que el término ubicación puede expresar tanto colección de polos como coordenada o punto. Aunque su significado debe quedar claro por el contexto, como regla general, la primera acepción debe asumirse cuando el término se use en sentido más general, asociado a patrones, cortes, usuarios, como en las frases la "ubicación del patrón", "la ubicación manual del usuario". En sentido más estricto, asociado a forma, polo, debe asumirse la segunda acepción.

1. Polos

Un polo es una referencia que describe la ubicación de una instancia de forma mediante la coordenada de traslación de su centro geométrico y otros parámetros como la rotación y reflexión que deben aplicarse previamente. Los polos pueden ser sencillos cuando describen la ubicación de una única instancia, o matriciales si, además, describen su repetición con incrementos rectangulares (a diferencia de las matrices en las formas, los polos matriciales sí incluyen el origen del patrón de repetición).

2. Coordenadas finales

Para calcular las coordenadas finales de las formas ubicadas deben realizarse las siguientes transformaciones, en el orden indicado:

  1. Referir la forma a su centro geométrico restando dicha coordenada de todos los vértices después de resolver las referencias de contorno. El centro geométrico de la forma coincide con el centro de su rectángulo circunscrito.
  2. Si existe, aplicar la reflexión sobre el eje X cambiando el signo a la coordenada Y.
  3. Si no es nula, aplicar la rotación.
  4. Trasladar la forma sumado la coordenada del polo, los incrementos rectangulares si existen y, finalmente, el origen de la ubicación.

3. Puzles

Los puzles son los patrones de formas primarios que se repiten en las ubicaciones. Técnicamente son grupos de dos o más polos, preferiblemente bien encajados, que comparten un mismo IDPuzle, la propiedad utilizada para diferenciarlos. Deben crearse explícitamente, bien indicando su cálculo al motor de ubicaciones o bien editándolos manualmente.

Aunque manualmente pudieran crearse puzles de una sola forma, en la práctica serían redundantes ya que el motor del lanzamiento siempre analiza todas las posibles variantes de repetición para piezas individuales.

4. Ubicaciones de Corte y de Usuario

Existen dos tipos de ubicaciones según el objetivo que cumplen en el programa: las ubicaciones de corte y las ubicaciones de usuario. Las primeras se calculan automáticamente durante la optimización del lanzamiento y se asignan a los cortes finales en los patrones aportando piezas a la solución calculada. Las segundas son independientes de la solución del lanzamiento y existen fundamentalmente para suministrar información inteligente al motor de cálculo sobre puzles de formas que conviene repetir al calcular los patrones de corte. Las ubicaciones de usuario pueden utilizarse también con fines de diseño o experimentación.

El motor de cálculo del lanzamiento utilizará los puzles contenidos en las ubicaciones de usuario (puzles de usuario) para generar variantes de corte repetitivas o anidadas que se analizarán en conjunto con las otras variantes calculadas automáticamente. Los polos no asignados a ningún puzle (IDPuzle=0) también se utilizarán para generar variantes de corte no repetitivas.

5. Fases del cálculo

En general, el cálculo de las ubicaciones se realiza en tres fases consecutivas bien diferenciadas que pueden activarse independientemente. Estas son:

Puzle
Calcula un puzle de formas tratando de maximizar el encaje entre ellas.
Repetición
La figura del puzle como un todo se repite dentro de los límites del área de ubicación.
Relleno
Rellena los espacios que queden en el área de ubicación con las formas de relleno.

El motor del lanzamiento aplicará indistintamente estas fases en el momento que lo requiera la generación del patrón de corte.

Las formas para el cálculo de una ubicación de usuario se eligen por las reglas siguientes (en orden de prioridad):

  1. Los polos seleccionados en la ubicación.
  2. Las polos existentes en la ubicación.
  3. Las formas activas del lanzamiento.

5.1 Cálculo del Puzle

El Puzle se calcula en un área de dimensiones configurables que pueden coincidir o no con las dimensiones del área total de ubicación. Las formas cuyas dimensiones originales excedan el área definida para el puzle, se rotarán automáticamente tratando de que quepan en dicha área. En la construcción del Puzle se aplica un coeficiente para formar parejas permanentes de figuras bien encajadas.

Cuando la ubicación que se edita está vacía y se eligen para el cálculo las formas activas del lanzamiento, se incluirán en el Puzle solo las formas que tengan activa la propiedad Puzle (formas de puzle) las cuales se ubicarán con una multiplicidad igual al producto MulPuzle*MultiplicidadFormas, donde el primer factor es una propiedad de la forma y el segundo un parámetro de la fase. En caso contrario, todas las formas seleccionadas participarán del Puzle con una multiplicidad igual a la existente en los polos elegidos.

5.2 Cálculo de la Repetición

La repetición de la figura del puzle se realiza aplicando una de las estrategias heurísticas siguientes:

Trivial
El puzle se repite con incrementos rectangulares no encajados.
Incremental
El puzle, emparejado o no con su rotación a 180 grados, se repite con incrementos rectangulares u oblicuos posiblemente encajados.
Voraz
En cada paso se repite la figura del puzle en el polo que satisfaga mejor el criterio de ubicación.
Fractal
En cada paso se repite toda la ubicación con respecto a sí misma en el polo que satisfaga mejor el criterio de ubicación.

5.2.1 Condición de solapamiento

Aunque no serían tales, debe evitar definir manualmente puzles disjuntos donde las formas queden separadas por espacio suficiente como para ubicarse entre sí ya que al repetirlos incrementalmente las figuras pudieran solaparse a partir del segundo incremento. Esta condición no ocurre con las estrategias voraz y fractal.

5.3 Cálculo del Relleno

En esta fase, solamente las formas que tengan la propiedad Relleno activada (formas de relleno) se ubican, quizás nuevamente, con una multiplicidad limitada, si no es nula, por la propiedad MulRelleno.

5.4 Criterios de ubicación

Exceptuando las estrategias trivial e incremental, la elección del siguiente polo de ubicación se realiza aplicando uno de los criterios de ubicación siguientes:

Union min
Se minimiza el área del rectángulo unión entre la ubicación y la figura en movimiento.
Inter max
Se maximiza el área del rectángulo intersección entre la ubicación y la figura en movimiento.
Radio min
Se minimiza la distancia entre los centros de la ubicación y la figura en movimiento.

Los criterios pueden configurarse independientemente en cada una de las fases.

5.5 Sobre cuál estrategia o criterio elegir

Tanto las estrategias como los criterios de ubicación son técnicas heurísticas que no garantizan la optimalidad de las ubicaciones calculadas. En la práctica su efectividad dependerá de factores como la geometría misma de las formas o las dimensiones del área de ubicación y es allí donde pueden identificarse tendencias que ayuden a intuir qué estrategia o criterio funcionará mejor en situaciones concretas.

La ubicación óptima de objetos pertenece a una extensa clase de problemas "muy difíciles de tratar" en la ciencia de la computación, por su naturaleza combinatoria.

La estrategia incremental genera ubicaciones que impresionan ser óptimas, en la mayoría de los casos, cuando se trata de repetir un patrón de figuras prefijado de antemano. Esta es la estrategia aplicada implícitamente por el motor de ubicaciones y la única aplicada por el motor del lanzamiento al calcular los patrones de corte. Las estrategias voraz y fractal pueden utilizarse con fines experimentales, de diseño o cuando se quiera ubicar la mayor cantidad posible de tipos de formas independientemente de las cantidades solicitadas.

El criterio Radio min tienden a generar ubicaciones bastante bien encajadas que se expanden radialmente. Los otros dos criterios generan ubicaciones que se expanden rectangularmente.

6. Filtros de Rotaciones

Cada fase del cálculo puede aplicar un filtro a las rotaciones permitidas en las formas con el objetivo de reducir el consumo de memoria y el tiempo de procesamiento. Si exceptuamos la estrategia incremental, la experiencia práctica confirma que aumentar las rotaciones no implica necesariamente mejorar la calidad de las ubicaciones calculadas.

7. Acciones

Configurar el cálculo de las ubicaciones:
Seleccione Opciones en el menú Herramientas y acceda a la ficha Ubicaciones.
Crear y eliminar ubicaciones de usario:
Desde la hoja Ubicaciones acceda a las opciones Insertar, Adicionar o Eliminar del menú Editar.