Draft PathArray/it

Descrizione
Lo strumento PathArray posiziona delle copie di una forma selezionata lungo un tracciato selezionato. Il percorso può essere un Wire o uno o più spigoli. Le forme possono facoltativamente essere allineate con la tangente del tracciato. Se necessario, può essere specificato un vettore di traslazione per spostare le forme in modo che il baricentro si trovi sul tracciato. Se non sono selezionati degli oggetti, si viene invitati a selezionarli.



Utilizzo

 * 1) Selezionare un oggetto forma che si desidera distribuire.
 * 2) Selezionare un oggetto tracciato lungo il quale saranno distribuite le forme. -oppure-
 * 3) Selezionare alcuni bordi di un oggetto tracciato.
 * 4) Premere il pulsante.

Opzioni

 * L'array inizia con copie della forma che non sono allineata al tracciato, né traslate in una nuova posizione di default. È quindi possibile modificare il numero, l'allineamento e il vettore di traslazione tramite le proprietà.

Proprietà

 * : L'oggetto forma
 * : L'oggetto tracciato
 * : I sottoelementi (spigoli) dell'oggetto tracciato da utilizzare come percorso
 * : Il numero di copie della forma
 * : Il vettore di traslazione
 * : True per allineare le forme al tracciato, False per lasciare le forme nel loro orientamento predefinito.

Script
Lo strumento PathArray può essere utilizzato nelle macro e dalla console di Python utilizzando la seguente funzione:


 * Distribuisce count copie del documento shapeobject lungo una pathObject o lungo i subobjects di un pathObject. Opzionalmente trasla ogni copia con un FreeCAD.Vector xlate nella direzione e alla distanza necessaria per adeguare la distanza del centro della forma dal punto di riferimento specificato. Opzionalmente allinea  BaseObject con tangente/normale/binormal del tracciato.

Esempio:

Note sull'utilizzo

 * Align + Xlate: Quando Align è True, il vettore Xlate è relativo alle coordinate locali (tangente/normale/binormale). Quando Align è False, il vettore Xlate è relativo alle coordinate globali (XYZ).

Limitazioni

 * Questo strumento è disponibile dalla versione 0.14
 * La PathSubs Property non appare ancora nell'elenco delle proprietà.

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:



XY Plane



XZ Plane



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)