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.

The PathArray tool can be used on 2D shapes created with the Draft Workbench, but can also be used on many types of 3D objects such as those created with the Part, PartDesign, or Arch Workbenches.

To position copies in an orthogonal array use Draft Array; to position copies at specified points use Draft PointArray; to create copies or clones, and manually place them use Draft Move, Draft Rotate, and Draft Clone.



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.

Each element in the array is an exact clone of the original object, but the entire array is considered a single unit in terms of properties and appearance.

The base object should be centred around the origin, even if the path starts somewhere else.

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:

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



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)

Additional alignment modes and options introduced in v0.19
Original mode (the default) is the historic alignment mode as in version 0.18. It is not really the Frenet alignment. Original mode uses the normal parameter from Draft.getNormal (or the default) as a constant - it does not calculate curve normal. X follows the curve tangent, Y is the normal parameter, Z is X.Cross(Y).

Tangent mode is similar to Original, but includes a rotation to align the Base object's X to the TangentVector before placing copies. After the rotation, Tangent behaves the same as Original. In previous versions this rotation would be performed manually before invoking PathArray.

Frenet mode orients the copies to a coordinate system along the path. X is tangent to curve, Y is curve normal, Z is curve binormal. If a normal can not be computed (ex a straight line), the default is used.

The ForceVertical option applies to Original and Tangent modes. When this option is applied, the normal parameter from Draft.getNormal is ignored. X follows the curve tangent, Z is the VerticalVector property and Y is X.Cross(Z).

Version 18 cycle chain - Original mode

Railway cross ties (sleepers) - Tangent mode + ForceVertical

Frenet Mode