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 sotto-elementi (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.

Quando "Align = true" la logica è un po' più difficile da capire:
 * 1) Costruisce un sistema di coordinate Frenet sul percorso (X è tangente, Z è normale, Y è binormale).
 * 2) Copia l'oggetto originale in ogni sistema di coordinate sul percorso, in modo che l'origine globale sia abbinata con l'origine del sistema di coordinate del percorso.

È molto più facile da capire con le immagini. Le seguenti immagini mostrano come viene prodotto l'array, secondo in quale piano si trova il percorso.



Percorso nel piano XY



Percorso nel piano XZ



Percorso nel 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)