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 any object that has a Part TopoShape, meaning 2D shapes created with the Draft Workbench, but also 3D solids created with other workbenches, for example, Part, PartDesign, or Arch.


 * To create orthogonal, polar or circular arrays, use the corresponding, , or tools.
 * To position App Link copies along a path use.
 * To position copies at specified points use.
 * To create copies and manually place them use or.
 * To create exact copies and manually place or scale them, use or.



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.

if the object doesn't seem to be positioned correctly in the path, check that its  is in the origin. Certain objects can be placed anywhere in the 3D space when used with the tool, but others must be at the origin, particularly those created by using  with a 2D profile like a.

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
A PathArray is derived from a Part Feature ( class), therefore it shares all the latter's properties. In addition to the properties described in Part Feature, the PathArray has the following properties in the property editor.


 * : 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.


 * : specifies the object to duplicate in the path.
 * : specifies the number of copies to create in the path.
 * : specifies the object along which the copies will be distributed. It must contain in its Part TopoShape; for example, it could be a  or.
 * : specifies the sub-elements (edges) of the on which the copies will be created. The copies will be created only on these edges. If this property is empty, the copies will be distributed on the entire.

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

Older call

New call


 * 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