Draft: Serie su tracciato

From FreeCAD Documentation
Revision as of 19:38, 14 July 2020 by Renatorivo (talk | contribs)

Serie su tracciato

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

Per posizionare le copie in una schiera ortogonale usare Serie; per posizionare le copie in punti specificati, utilizzare Serie su punti; per creare copie o cloni e posizionarli manualmente, utilizzare Sposta, Ruota e Clona.

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

L'oggetto base dovrebbe essere centrato sull'origine, anche se il percorso inizia da un'altra parte.

Opzioni

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

Proprietà

A PathArray is derived from a Part Feature (Part::Feature class), therefore it shares all the latter's properties. In addition to the properties described in Part Feature, the PathArray has the following properties in the property editor.

  • DatiBase: specifica l'oggetto da duplicare nel percorso.
  • DatiPathObj: specifica l'oggetto del percorso.
  • DatiPathSubs: specifica i sottoelementi (bordi) dell'oggetto percorso. Questa proprietà non è ancora visualizzata nel editor delle proprietà.
  • DatiCount: specifica il numero di copie dell'oggetto di base.
  • DatiAlign: 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.
  • DatiXlate: specifica un vettore di traslazione (x, y, z) per spostare ciascuna copia lungo il percorso.
Nota: quando DatiAlign è true, il vettore è relativo alle coordinate tangenti, normali o binormali locali; altrimenti il vettore è relativo alle coordinate globali.

Objects

  • DatiBase (LinkGlobal): specifies the object to duplicate in the path.
  • DatiCount (Integer): specifies the number of copies to create in the path.
  • DatiPath Object (LinkGlobal): specifies the object along which the copies will be distributed. It must contain 'Edges' in its Part TopoShape; for example, it could be a Wire or BSpline.
  • DatiPath Subelements (LinkSubListGlobal): specifies the sub-elements (edges) of the DatiPath Object on which the copies will be created. The copies will be created only on these edges. If this property is empty, the copies will be distributed on the entire DatiPath 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:

Older call

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

New call

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 dal baseobject dato, inserendo tante copie quante indicate in count lungo il pathobject.
    • Se pathobjsubs è dato, esso è una lista di sotto-oggetti di pathobject, e le copie vengono create lungo questo percorso più breve.
  • Se xlate è dato, esso è un FreeCAD.Vector che indica uno spostamento aggiuntivo per spostare il punto base delle copie.
  • Se align è True le copie sono allineate alla tangente, normale o binormale del pathobject nel punto in cui viene inserita la copia.

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 DatiAlign è false, il posizionamento delle forme copiate è facile da capire; sono semplicemente spostati in una posizione diversa nel loro orientamento originale.

Align false
Align false

Oggetto disposto lungo un percorso chiuso nell'orientamento originale

Quando DatiAlign è 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.

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:

Oggetto disposto lungo un percorso chiuso allineato al piano XY

Percorso nel piano XZ:

Oggetto disposto lungo un percorso chiuso allineato al piano XZ

Percorso nel piano YZ:

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
Align false

Traversine ferroviarie - Modalità Tangente + ForceVertical

Align false
Align false

Modalità Frenet

Align false
Align false