Draft PathArray/fr

Description
L'outil PathArray place des copies d'une forme sélectionnée le long d'un chemin sélectionné. Le chemin peut être un fil ou une ou plusieurs arêtes. Les formes peuvent éventuellement être alignées sur la tangente du tracé. Si nécessaire, un ajustent des vecteurs peut être spécifié pour déplacer les formes afin que le centre de gravité se trouve sur le chemin. Si aucun objet n'est sélectionné, vous serez invité à sélectionner un objet.



Utilisation

 * 1) Sélectionnez l'objet que vous souhaitez distribuer.
 * 2) Sélectionnez un tracé le long de laquelle les formes seront copiées. -ou-
 * 3) Sélectionner les bords d'un objet qui servirons de chemin.
 * 4) Pressez le bouton.

Options

 * Le tableau commence avec des copies de formes qui ne sont pas alignées sur le chemin, ni traduites vers un nouvel emplacement par défaut. Vous pouvez ensuite changer le nombre, l'alignement et/ou l'adaptation des vecteurs dans les propriétés.

Propriétés

 * : L'objet shape
 * : Le chemin de l'objet
 * : Les sous-éléments (bords) de l'objet trajectoire pour être utilisé comme chemin
 * : Le nombre de copies du shape
 * : L'adaptation du vecteur
 * : True aligne le shape sur le chemin, False laisse le shape sur une orientation par défaut.

Script
L'outil PathArray peut être utilisé dans une macro et dans la console python avec la commande


 * Place le nombre de copies d'un objet le long d'un chemin ou sous-objet d'un objet qui servira de chemin. Transforme éventuellement chaque copie avec FreeCAD.Vector le vecteur XLATE donne la direction et la distance pour ajuster la différence entre le centre de la forme vers le point de référence de la forme. Aligne éventuellement BaseObject à la tangente/normale/binormale du chemin.

Exemple:

Note d'utilisation

 * Align + Xlate: Quand Align est Vrai, le vecteur XLATE est relatif à l'échelle locale (tangente/normale/binormale) coordonnée. Lorsque Align est False, le vecteur XLATE est relatif aux coordonnées globales (XYZ).

Limitations

 * Cet outil n'est pas disponible pour les versions en dessous de 0.14
 * La propriété PathSubs n'apparaît pas encore dans la liste des propriétés.

Technical Explanation
When "Align = false", PathArray's logic is quite easy to understand.

When "Align = true" the logic is a bit harder to grasp:
 * 1) Construct Frenet coordinate systems on the path (X is tangent, Z is normal, Y is binormal).
 * 2) Copy the original object to every on-path coordinate system, so that the global origin is matched with the on-path coordinate system origin.

It is much easier to understand with pictures. The following images show how the array is produced, depending on which plane is the path.



Path on XY Plane



Path on XZ Plane



Path on YZ Plane

The clear advantage of this logic is that as you reorient the path but not the object, the result is consistent - object remains aligned to the path the way it was before reorienting the path.

(Thanks to @DeepSOIC for this explanation)