Draft PathArray/es

Descripción
La herramienta PathArray coloca copias de una forma seleccionada a lo largo de una ruta seleccionada. La ruta puede ser un alambre o uno o más bordes. Las formas pueden alinearse opcionalmente con la tangente del camino. Si es necesario, se puede especificar un vector de translación para cambiar las formas de modo que el centroide esté en la ruta. Si no se seleccionan objetos, se le invitará a seleccionarlos.



Como utilizar

 * 1) Crea un objeto de forma que desees distribuir. Obtendrá los mejores resultados si su objeto está centrado en el origen, incluso si la ruta comienza en otro lugar.
 * 2) Seleccione un objeto de ruta a lo largo del cual se distribuirán las formas. -o-
 * 3) Seleccione algunos bordes de un objeto de ruta.
 * 4) Presiona el botón.

Opciones

 * La matriz comienza con copias de formas que no están alineadas con la ruta, ni se traducen a una nueva posición de forma predeterminada. Luego puede cambiar el conteo, la alineación y / o el vector de traducción en las propiedades.

Propiedades

 * : El objeto de forma
 * : El objeto de ruta
 * : los subelementos (bordes) del objeto de ruta que se usará como ruta
 * : la cantidad de tiempo para copiar la forma
 * : El vector de traducción
 * : True para alinear las formas con la ruta, False para dejar las formas en su orientación predeterminada.

Programación
La herramienta PathArray puede usarse en macros y desde la consola de Python utilizando la siguiente función:


 * Distribuir recuento de copias de un objeto de forma de documento a lo largo de un objeto de ruta o subobjetos de un objeto de ruta. Opcionalmente, traduce cada copia por FreeCAD.Vector xlate la dirección y la distancia para ajustar la diferencia entre el centro de la forma y el punto de referencia de la forma. Opcionalmente alinea el objeto base con la tangente / normal / binormal de la ruta.

Ejemplo:

Notas de uso

 * Alinear + Xlate: cuando Alinear es verdadero, el vector Xlate es relativo a las coordenadas locales (tangente / normal / binormal). Cuando Alinear es Falso, el vector Xlate es relativo a las coordenadas globales (XYZ).

Limitaciones

 * Esta herramienta no está disponible antes de la versión 0.14.
 * La propiedad PathSubs aún no aparece en la lista de propiedades.

Explicación técnica
Cuando "Alinear = falso", la lógica de PathArray es bastante fácil de entender.

Cuando "Align = true" la lógica es un poco más difícil de entender:
 * 1) Construir sistemas de coordenadas Frenet en la ruta (X es tangente, Z es normal, Y es binormal).
 * 2) Copie el objeto original en cada sistema de coordenadas en ruta, de modo que el origen global coincida con el origen del sistema de coordenadas en ruta.

Es mucho más fácil de entender con fotos. Las siguientes imágenes muestran cómo se produce la matriz, dependiendo de qué plano es la ruta.



Path on XY Plane



Path on XZ Plane



Path on YZ Plane

La clara ventaja de esta lógica es que a medida que reorienta la ruta pero no el objeto, el resultado es consistente: el objeto permanece alineado con la ruta como estaba antes de reorientar la ruta.

(Thanks to @DeepSOIC for this explanation)