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à.

Spiegazione tecnica
Quando "Align = false", la logica di PathArray è abbastanza facile da capire.

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.



Piano XY



Piano XZ



Piano YZ

L'evidente vantaggio di questa logica è che, riorientando il percorso, ma non l'oggetto, il risultato è coerente - l'oggetto rimane allineato al percorso nel modo in cui era allineato prima di riorientare il percorso.

(Grazie a @DeepSOIC per questa spiegazione)