Draft: Serie su tracciato

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Draft PathArray and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎română • ‎svenska • ‎čeština • ‎русский
Arrow-left.svg Draft LinkArray.svg Serie di link Pagina precedente:
Pagina successiva: Serie di link su tracciato Draft PathLinkArray.svg Arrow-right.svg

Draft PathArray.svg Serie su tracciato

Nome nel codice
Draft_PathArray
Posizione nel menu
Modifiche → Strumenti serie → Serie su tracciato
Ambiente
Draft, Arch
Avvio veloce
Nessuno
Introdotto nella versione
0.14
Vedere anche
Serie ortognale, Serie polare, Serie circolare, Serie di link su tracciato, Serie su punti, Clone


Descrizione

Lo strumento Draft PathArray.svg Serie su tracciato posiziona le copie di una forma selezionata lungo un percorso selezionato, che può essere una Polilinea, una B-spline, e bordi simili.

Questo strumento può essere utilizzato su qualsiasi oggetto che abbia una Part TopoShape, che significa forme 2D create con Draft, ma anche solidi 3D creati con altri ambienti, ad esempio Part, PartDesign o Arch.

Draft PathArray Example.png

Oggetto disposto lungo un percorso


Utilizzo

  1. Selezionare un oggetto che si desidera distribuire.
  2. Selezionare un oggetto percorso o alcuni bordi lungo i quali si vuole distribuire l'oggetto.
  3. Premere il pulsante Draft PathArray.svg Serie su tracciato.
  4. L'oggetto Array viene creato immediatamente. È necessario modificare le proprietà dell'array per modificare il numero e la direzione delle copie create.

Ogni elemento della serie è un clone esatto dell'oggetto originale, ma l'intera serie è considerata una singola unità in termini di proprietà e aspetto.

Nota: se l'oggetto DataBase non sembra posizionato correttamente nel percorso, controllare che il suo DataPlacement sia nell'origine (0,0,0). Alcuni oggetti possono essere posizionati in qualsiasi punto dello spazio 3D se utilizzati con lo strumento Draft PathArray.svg Serie su tracciato, ma altri devono trovarsi all'origine, in particolare quelli creato utilizzando Part Extrude.svg Estrudi di Part con un profilo 2D come uno schizzo.

Opzioni

Non ci sono opzioni per questo strumento. O funziona con l'oggetto selezionato o non funziona.

Proprietà

Una Serie su tracciato deriva da una Part Feature (classe Part::Feature), quindi condivide tutte le proprietà di quest'ultima. Oltre alle proprietà descritte in Funzione Part, Serie su tracciato ha le seguenti proprietà nell'editor delle proprietà.

Alignment

  • DataAlign (Bool): se è true le copie sono allineate al percorso; altrimenti vengono lasciate nel loro orientamento predefinito.
Nota: in alcuni casi la forma appare piatta, in realtà potrebbe essersi spostata nello spazio 3D, quindi, anziché utilizzare una vista piatta, cambiare la vista in assonometrica.
  • DataAlign Mode (Enumeration): tre modalità, Original, Frenet, Tangent.
  • DataExtra Translation (VectorDistance): vettore di spostamento aggiuntivo (x, y, z) che verrà applicato a ciascuna copia lungo il percorso. Questo è utile per apportare piccole modifiche alla posizione delle copie, ad esempio, quando il suo punto di riferimento non corrisponde al punto centrale della sua forma.
  • DataForce Vertical (Bool): se è true, il valore di DataVertical Vector verrà utilizzata come direzione Z locale, quando DataAlign Mode è Original o Tangent. Disponibile dalla versione 0.19
  • DataTangent Vector (Vector): il valore predefinito è (1, 0, 0); vettore unità di allineamento che verrà utilizzato quando DataAlign Mode è Tangent. Disponibile dalla versione 0.19
  • DataVertical Vector (Vector): il valore predefinito è (0, 0, 1); vettore unitario della direzione Z locale che verrà utilizzato quando DataVertical Vector è true. Disponibile dalla versione 0.19

Objects

  • DataBase (LinkGlobal): specifica l'oggetto da duplicare nel percorso.
  • DataCount (Integer): specifica il numero di copie da creare nel percorso.
  • DataPath Object (LinkGlobal): specifica l'oggetto lungo il quale verranno distribuite le copie. Deve contenere degli 'Edges' nella sua topologia; ad esempio, potrebbe essere una Draft Wire.svg polilinea o una Draft BSpline.svg BSpline.
  • DataPath Subelements (LinkSubListGlobal): specifica i sottoelementi (bordi) del DataPath Object su cui verranno create le copie. Le copie verranno create solo su questi bordi. Se questa proprietà è vuota, le copie verranno distribuite sull'intero
DataPath Object.

Script

Vedere anche: Draft API e Nozioni di base sugli script di FreeCAD.

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

Chiamata più vecchia

path_array = makePathArray(base_object, path_object, count, xlate=None, align=False, pathobjsubs=[])

Nuova chiamata

path_array = make_path_array(base_object, path_object,
                             count=4, extra=App.Vector(0, 0, 0), subelements=None,
                             align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
                             force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
                             use_link=True):
  • Crea un oggetto "PathArray" da un base_object, inserendo fino a count copie lungo un path_object.
    • Invece di un riferimento a un oggetto, base_object e path_object possono anche essere delle Labels (stringhe) di oggetti esistenti nel documento corrente.
    • Se viene fornito un extra, esso è un vettore che sposta ciascuna delle singole copie di una piccola quantità.
    • Se vengono forniti dei subelements, è un elenco di bordi di path_object, per esempio, ['Edge1', 'Edge2']; le copie verranno create lungo questo percorso più breve.
    • Se align è True, le copie sono allineate lungo il path_object a seconda del valore di align_mode, che può essere "Original", "Frenet" o "Tangent".
    • Se viene fornito un tan_vector, è un vettore unitario che definisce la direzione tangente locale della copia lungo il percorso. Viene utilizzato quando align_mode è "Tangent".
    • Se force_vertical è True, il valore di vertical_vector viene utilizzato per determinare la direzione Z locale della copia lungo il percorso. Viene utilizzato quando align_mode è "Original" o "Tangent".
    • Se use_link è True, il tipo di serie creata sarà una Serie di link su tracciato, i cui elementi sono delle istanze App Link invece di normali copie.

Esempio:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(500, -1000, 0)
p2 = App.Vector(1500, 1000, 0)
p3 = App.Vector(3000, 500, 0)
p4 = App.Vector(4500, 100, 0)
spline = Draft.make_bspline([p1, p2, p3, p4])
obj = Draft.make_polygon(3, 500)

path_array = Draft.make_path_array(obj, spline, 6)
doc.recompute()

wire = Draft.make_wire([p1, -p2, -p3, -p4])
path_array2 = Draft.make_path_array(obj, wire, count=3, extra=App.Vector(0, -500, 0), subelements=["Edge2", "Edge3"], align=True, force_vertical=True)
doc.recompute()

Spiegazione tecnica per la proprietà Allinea

Quando DataAlign è false, il posizionamento delle forme copiate è facile da capire; sono semplicemente spostati in una posizione diversa nel loro orientamento originale.

Align false

Oggetto disposto lungo un percorso chiuso nell'orientamento originale


Quando DataAlign è true, il posizionamento delle forme diventa un po' più complesso :

  1. Prima, i sistemi di coordinate di Frenet sono costruiti sul percorso: X è tangente, Z è normale, Y è binormale.
  2. Dopo l'oggetto originale viene copiato su ogni sistema di coordinate su percorso, in modo che l'origine globale sia abbinata all'origine del sistema di coordinate sul percorso.
Patharray alignment annotated.png

Oggetto disposto lungo un percorso chiuso; descrizione di componenti e percorso


Le immagini seguenti mostrano come viene prodotto l'array, a seconda del piano del percorso.

Percorso nel piano XY:

Patharray alignment.png

Oggetto disposto lungo un percorso chiuso allineato al piano XY


Percorso nel piano XZ:

Patharray alignment-XZ.png

Oggetto disposto lungo un percorso chiuso allineato al piano XZ


Percorso nel piano YZ:

Patharray alignment-YZ.png

Oggetto disposto lungo un percorso chiuso allineato al piano YZ


Quando si riorienta il percorso ma non l'oggetto, il risultato è coerente: l'oggetto rimane allineato al percorso nel modo in cui era prima di riorientare il percorso.

Editor: Grazie a DeepSOIC per questa spiegazione.

Modalità di allineamento aggiuntive e opzioni introdotte in v0.19

La modalità Originale (impostazione predefinita) è la modalità di allineamento storica come nella versione 0.18. Non è proprio l'allineamento di Frenet. La modalità originale utilizza il parametro normale di Draft.getNormal (o il valore predefinito) come costante - non calcola la curva normale. X segue la curva tangente, Y è il parametro normale, Z è X.Cross(Y).

La modalità Tangente è simile a Originale, ma include una rotazione per allineare la X dell'oggetto Base al TangentVector prima di posizionare le copie. Dopo la rotazione, Tangente si comporta come l'originale. Nelle versioni precedenti questa rotazione si sarebbe eseguita manualmente prima di invocare PathArray.

La modalità Frenet orienta le copie su un sistema di coordinate lungo il percorso. X è tangente alla curva, Y è la curva normale, Z è la curva binormale. Se non è possibile calcolare una normale (ad esempio per una linea retta), viene utilizzata l'impostazione predefinita.

L'opzione ForceVertical si applica alle modalità Originale e Tangente. Quando si applica questa opzione, il parametro normale di Draft.getNormal viene ignorato. X segue la curva tangente, Z è la proprietà VerticalVector e Y è X.Cross(Z).

Catena di bicicletta con la versione 18 - Modalità Originale

Align false


Traversine ferroviarie - Modalità Tangente + ForceVertical

Align false


Modalità Frenet

Align false


Arrow-left.svg Draft LinkArray.svg Serie di link Pagina precedente:
Pagina successiva: Serie di link su tracciato Draft PathLinkArray.svg Arrow-right.svg