Draft PathArray/it: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Docnav/it|[[Draft_LinkArray/it|Serie di link]]|[[Draft_PathLinkArray/it|Serie di link su tracciato]]|[[Draft_Module|Draft]]|IconL=Draft_LinkArray.svg|IconC=Workbench_Draft.svg|IconR=Draft_PathLinkArray.svg}}


<div class="mw-translate-fuzzy">
{{GuiCommand/it|Name=Draft PathArray|Name/it=Serie su tracciato|Workbenches=[[Draft_Module/it|Draft]], [[Arch_Module/it|Arch]]|MenuLocation=Modifiche → Strumenti serie → Serie su tracciato|SeeAlso=[[Draft_OrthoArray/it|Serie ortognale]], [[Draft_PolarArray/it|Serie polare]], [[Draft_CircularArray/it|Serie circolare]], [[Draft_PathLinkArray/it|Serie di link su tracciato]], [[Draft_PointArray/it|Serie su punti]], [[Draft_Clone/it|Clone]]|Version=0.14 }}
{{Docnav/it
|[[Draft_LinkArray/it|Serie di link]]
|[[Draft_PathLinkArray/it|Serie di link su tracciato]]
|[[Draft_Workbench/it|Draft]]
|IconL=Draft_LinkArray.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_PathLinkArray.svg
}}
</div>

<div class="mw-translate-fuzzy">
{{GuiCommand/it
|Name=Draft_PathArray
|Name/it=Serie su tracciato
|MenuLocation=Modifiche → Strumenti serie → Serie su tracciato
|Workbenches=[[Draft_Workbench/it|Draft]], [[Arch_Workbench/it|Arch]]
|SeeAlso=[[Draft_OrthoArray/it|Serie ortognale]], [[Draft_PolarArray/it|Serie polare]], [[Draft_CircularArray/it|Serie circolare]], [[Draft_PathLinkArray/it|Serie di link su tracciato]], [[Draft_PointArray/it|Serie su punti]], [[Draft_Clone/it|Clone]]
|Version=0.14
}}
</div>


==Descrizione==
==Descrizione==


<div class="mw-translate-fuzzy">
Lo strumento {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray/it|Serie su tracciato]]}} posiziona le copie di una forma selezionata lungo un percorso selezionato, che può essere una [[Draft Wire/it|Polilinea]], una [[Draft BSpline/it|B-spline]], e bordi simili.
Lo strumento {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray/it|Serie su tracciato]]}} posiziona le copie di una forma selezionata lungo un percorso selezionato, che può essere una [[Draft Wire/it|Polilinea]], una [[Draft BSpline/it|B-spline]], e bordi simili.
</div>

Questo strumento può essere utilizzato su qualsiasi oggetto che abbia una [[Part_TopoShape/it|Part TopoShape]], che significa forme 2D create con [[Draft_Workbench/it|Draft]], ma anche solidi 3D creati con altri ambienti, ad esempio [[Part_Workbench/it|Part]], [[PartDesign_Workbench/it|PartDesign]] o [[Arch_Workbench/it|Arch]].


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Questo strumento può essere utilizzato su qualsiasi oggetto che abbia una [[Part_TopoShape/it|Part TopoShape]], che significa forme 2D create con [[Draft_Workbench/it|Draft]], ma anche solidi 3D creati con altri ambienti, ad esempio [[Part_Workbench/it|Part]], [[PartDesign_Workbench/it|PartDesign]] o [[Arch_Workbench/it|Arch]].
Per posizionare le copie in una schiera ortogonale usare [[Draft Array/it|Serie]]; per posizionare le copie in punti specificati, utilizzare [[Draft PointArray/it|Serie su punti]]; per creare copie o cloni e posizionarli manualmente, utilizzare [[Draft Move/it|Sposta]], [[Draft Rotate/it|Ruota]] e [[Draft Clone/it|Clona]].
</div>
</div>


[[Image:Draft_PathArray_Example.png|400px]]
[[Image:Draft_PathArray_Example.png|400px]]
<div class="mw-translate-fuzzy">
{{Caption|Oggetto disposto lungo un percorso}}
{{Caption|Oggetto disposto lungo un percorso}}
</div>


==Utilizzo==
==Utilizzo==
Line 26: Line 47:
</div>
</div>


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

The alignment of the elements in a Draft PathArray depends on the properties of the array and the orientation of the source object. The position of the source object is ignored: for the purpose of the array the {{Value|x}}, {{Value|y}} and {{Value|z}} are set to {{Value|0}}. If the {{PropertyData|Align}} property of the array is set to {{FALSE}} the orientation of the array elements is identical to that of the source object. If it is set to {{TRUE}} the X axis of the local coordinate system of each element placement is tangent to the path. The Y and Z axes of the local coordinate systems depend on the {{PropertyData|Align Mode}} property of the array. Other array properties involved in the alignment include {{PropertyData|Tangent Vector}}, {{PropertyData|Force Vertical}} and {{PropertyData|Vertical Vector}}.

[[Image:Draft_PathArray_example2.png|600px]]
{{Caption|3 arrays based on the same non-planar path. From left to right: Align is false, Align is true with Align Mode Original and Align is true with Align Mode Frenet}}.

===Align Mode===

Three modes are available:

====Original====

This mode comes closest to the single {{PropertyData|Align Mode}} available in version 0.18. It relies on a fixed normal vector. If the path is planar this vector is perpendicular to the plane of the path, else a default vector, the positive Z axis, is used. From this normal vector and the local tangent vector (the local X axis) a [https://en.wikipedia.org/wiki/Cross_product cross product] is calculated. This new vector is used as the local Z axis. The orientation of the local Y axis is determined from the local X and Z axes.

====Frenet====

This mode uses the local normal vector derived from the path at each element placement. If this vector cannot be determined (for example in the case of a straight segment) a default vector, again the positive Z axis, is used instead. With this vector and the local tangent vector the local coordinate system is determined using the same procedure as in the previous paragraph.

====Tangent====

This mode is similar to {{PropertyData|Align Mode}} {{Value|Original}} but includes the possibility to pre-rotate the source object by specifying a {{PropertyData|Tangent Vector}}.

===Force Vertical and Vertical Vector===

These properties are only available if {{PropertyData|Align Mode}} is {{Value|Original}} or {{Value|Tangent}}. If {{PropertyData|Force Vertical}} is set to {{TRUE}} the local coordinate system is calculated in a different manner. The {{PropertyData|Vertical Vector}} is used as a fixed normal vector. From this normal vector and the local tangent vector (the local X axis) again a cross product is calculated. But now this vector is used as the local Y axis. The orientation of the local Z axis is determined from the local X and Y axes.

Using these properties can be required if one of the edged of the path is (almost) parallel to the default normal of the path.

== Proprietà ==

See also: [[property_editor|Property editor]].


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Una '''Serie su tracciato''' deriva da una [[Part_Feature/it|Part Feature]] (classe {{incode|Part::Feature}}), quindi condivide tutte le proprietà di quest'ultima. Oltre alle proprietà descritte in [[Part_Feature/it|Funzione Part]], Serie su tracciato ha le seguenti proprietà nell'[[property_editor/it|editor delle proprietà]].
L'oggetto base dovrebbe essere centrato sull'origine, anche se il percorso inizia da un'altra parte.
</div>
</div>


== Opzioni ==
===Data===


{{TitleProperty|Link}}
Non ci sono opzioni per questo strumento. O funziona con l'oggetto selezionato o non funziona.


The properties in this group are only available for Link arrays. See [[Std_LinkMake#Properties|Std LinkMake]] for more information.
== Proprietà ==

* {{PropertyData|Scale|Float}}
* {{PropertyData|Scale Vector|Vector|Hidden}}
* {{PropertyData|Scale List|VectorList}}
* {{PropertyData|Visibility List|BoolList|Hidden}}
* {{PropertyData|Placement List|PlacementList|Hidden}}
* {{PropertyData|Element List|LinkList|Hidden}}
* {{PropertyData|_ Link Touched|Bool|Hidden}}
* {{PropertyData|_ Child Cache|LinkList|Hidden}}
* {{PropertyData|Colored Elements|LinkSubHidden|Hidden}}
* {{PropertyData|Link Transform|Bool}}


{{TitleProperty|Alignment}}
A [[Draft_PathArray|PathArray]] is derived from a [[Part_Feature|Part Feature]] ({{incode|Part::Feature}} class), therefore it shares all the latter's properties. In addition to the properties described in [[Part_Feature|Part Feature]], the PathArray has the following properties in the [[property_editor|property editor]].


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
{{TitleProperty|Alignment}}
* {{PropertyData|Base}}: specifica l'oggetto da duplicare nel percorso.
* {{PropertyData|PathObj}}: specifica l'oggetto del percorso.
* {{PropertyData|Align|Bool}}: se è {{TRUE}} le copie sono allineate al percorso; altrimenti vengono lasciate nel loro orientamento predefinito.
* {{PropertyData|PathSubs}}: specifica i sottoelementi (bordi) dell'oggetto percorso. Questa proprietà non è ancora visualizzata nel [[property editor/it|editor delle proprietà]].
* {{PropertyData|Count}}: specifica il numero di copie dell'oggetto di base.
* {{PropertyData|Align}}: se è {{TRUE}} le copie sono allineate al percorso; altrimenti vengono lasciate nel loro orientamento predefinito.
:{{Emphasis|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.
:{{Emphasis|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.
* {{PropertyData|Align Mode|Enumeration}}: tre modalità, {{Value|Original}}, {{Value|Frenet}}, {{Value|Tangent}}.
* {{PropertyData|Xlate}}: specifica un vettore di traslazione (x, y, z) per spostare ciascuna copia lungo il percorso.
* {{PropertyData|Extra Translation|VectorDistance}}: vettore di spostamento aggiuntivo {{Value|(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.
:{{Emphasis|Nota:}} quando {{PropertyData|Align}} è {{TRUE}}, il vettore è relativo alle coordinate tangenti, normali o binormali locali; altrimenti il vettore è relativo alle coordinate globali.
* {{PropertyData|Force Vertical|Bool}}: se è {{TRUE}}, il valore di {{PropertyData|Vertical Vector}} verrà utilizzata come direzione Z locale, quando {{PropertyData|Align Mode}} è {{Value|Original}} o {{Value|Tangent}}. {{Version/it|0.19}}
* {{PropertyData|Tangent Vector|Vector}}: il valore predefinito è {{Value|(1, 0, 0)}}; vettore unità di allineamento che verrà utilizzato quando {{PropertyData|Align Mode}} è {{Value|Tangent}}. {{Version/it|0.19}}
* {{PropertyData|Vertical Vector|Vector}}: il valore predefinito è {{Value|(0, 0, 1)}}; vettore unitario della direzione Z locale che verrà utilizzato quando {{PropertyData|Vertical Vector}} è {{TRUE}}. {{Version/it|0.19}}
</div>
</div>


{{TitleProperty|Objects}}
{{TitleProperty|Objects}}
* {{PropertyData|Base|LinkGlobal}}: specifies the object to duplicate in the path.
* {{PropertyData|Count|Integer}}: specifies the number of copies to create in the path.
* {{PropertyData|Path Object|LinkGlobal}}: specifies the object along which the copies will be distributed. It must contain {{Value|'Edges'}} in its [[Part_TopoShape|Part TopoShape]]; for example, it could be a {{Button|[[File:Draft_Wire.svg|16px]] [[Draft_Wire|Wire]]}} or {{Button|[[File:Draft_BSpline.svg|16px]] [[Draft_BSpline|BSpline]]}}.
* {{PropertyData|Path Subelements|LinkSubListGlobal}}: specifies the sub-elements (edges) of the {{PropertyData|Path 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 {{PropertyData|Path Object}}.


<div class="mw-translate-fuzzy">
{{TitleProperty|Objects}}
* {{PropertyData|Base|LinkGlobal}}: specifica l'oggetto da duplicare nel percorso.
* {{PropertyData|Count|Integer}}: specifica il numero di copie da creare nel percorso.
* {{PropertyData|Path Object|LinkGlobal}}: specifica l'oggetto lungo il quale verranno distribuite le copie. Deve contenere degli {{Value|'Edges'}} nella sua [[Part_TopoShape/it|topologia]]; ad esempio, potrebbe essere una {{Button|[[File:Draft_Wire.svg|16px]] [[Draft_Wire/it|polilinea]]}} o una {{Button|[[File:Draft_BSpline.svg|16px]] [[Draft_BSpline/it|BSpline]]}}.
* {{PropertyData|Path Subelements|LinkSubListGlobal}}: specifica i sottoelementi (bordi) del {{PropertyData|Path 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
{{PropertyData|Path Object}}.
</div>

===View===

{{TitleProperty|Link}}

The properties in this group, with the exception of the inherited property, are only available for Link arrays. See [[Std_LinkMake#Properties|Std LinkMake]] for more information.

* {{PropertyView|Draw Style|Enumeration}}
* {{PropertyView|Line Width|FloatConstraint}}
* {{PropertyView|Override Material|Bool}}
* {{PropertyView|Point Size|FloatConstraint}}
* {{PropertyView|Selectable|Bool}}: this is an inherited property that appears in the Selection group for other arrays
* {{PropertyView|Shape Material|Material}}

{{TitleProperty|Base}}

The properties in this group, with the exception of the inherited property, are only available for Link arrays. See [[Std_LinkMake#Properties|Std LinkMake]] for more information.

* {{PropertyView|Child View Provider|PersistentObject|Hidden}}
* {{PropertyView|Material List|MaterialList|Hidden}}
* {{PropertyView|Override Color List|ColorList|Hidden}}
* {{PropertyView|Override Material List|BoolList|Hidden}}
* {{PropertyView|Proxy|PythonObject|Hidden}}: this is an inherited property.

{{TitleProperty|Display Options}}

The properties in this group are inherited properties. See [[Part_Feature#Properties|Part Feature]] for more information.

* {{PropertyView|Bounding Box|Bool}}: this property is not inherited by Link arrays.
* {{PropertyView|Display Mode|Enumeration}}: for Link arrays it can be {{value|Link}} or {{value|ChildView}}. For other arrays it can be: {{value|Flat Lines}}, {{value|Shaded}}, {{value|Wireframe}} or {{value|Points}}
* {{PropertyView|Show In Tree|Bool}}
* {{PropertyView|Visibility|Bool}}

{{TitleProperty|Draft}}

* {{PropertyView|Pattern|Enumeration}}: not used.
* {{PropertyView|Pattern Size|Float}}: not used.

{{TitleProperty|Object style}}

The properties in this group are not inherited by Link arrays.

==Scripting==

<div class="mw-translate-fuzzy">
== Script ==
== Script ==
{{Emphasis|Vedere anche:}} [[Draft API/it|Draft API]] e [[FreeCAD Scripting Basics/it|Nozioni di base sugli script di FreeCAD]].
{{Emphasis|Vedere anche:}} [[Draft API/it|Draft API]] e [[FreeCAD Scripting Basics/it|Nozioni di base sugli script di FreeCAD]].
</div>


<div class="mw-translate-fuzzy">
Lo strumento PathArray può essere utilizzato nelle [[macros/it|macro]] e dalla console [[Python/it|Python]] utilizzando la seguente funzione:
Lo strumento PathArray può essere utilizzato nelle [[macros/it|macro]] e dalla console [[Python/it|Python]] utilizzando la seguente funzione:
</div>


Older call
{{Code|code=
path_array = makePathArray(base_object, path_object, count, xlate=None, align=False, pathobjsubs=[])
}}

New call
{{Code|code=
{{Code|code=
path_array = make_path_array(base_object, path_object,
path_array = make_path_array(base_object, path_object,
Line 73: Line 182:
align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
use_link=True):
use_link=True)
}}
}}


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
* Crea un oggetto {{incode|PathArray}} dal {{incode|baseobject}} dato, inserendo tante copie quante indicate in {{incode|count}} lungo il {{incode|pathobject}}.
* Crea un oggetto {{incode|"PathArray"}} da un {{incode|base_object}}, inserendo fino a {{incode|count}} copie lungo un {{incode|path_object}}.
** Invece di un riferimento a un oggetto, {{incode|base_object}} e {{incode|path_object}} possono anche essere delle {{incode|Labels}} (stringhe) di oggetti esistenti nel documento corrente.
** Se {{incode|pathobjsubs}} è dato, esso è una lista di sotto-oggetti di {{incode|pathobject}}, e le copie vengono create lungo questo percorso più breve.
* Se {{incode|xlate}} è dato, esso è un {{incode|FreeCAD.Vector}} che indica uno spostamento aggiuntivo per spostare il punto base delle copie.
** Se viene fornito un {{incode|extra}}, esso è un vettore che sposta ciascuna delle singole copie di una piccola quantità.
* Se {{incode|align}} è {{incode|True}} le copie sono allineate alla tangente, normale o binormale del {{incode|pathobject}} nel punto in cui viene inserita la copia.
** Se vengono forniti dei {{incode|subelements}}, è un elenco di bordi di {{incode|path_object}}, per esempio, {{incode|['Edge1', 'Edge2']}}; le copie verranno create lungo questo percorso più breve.
** Se {{incode|align}} è {{incode|True}}, le copie sono allineate lungo il {{incode|path_object}} a seconda del valore di {{incode|align_mode}}, che può essere {{incode|"Original"}}, {{incode|"Frenet"}} o {{incode|"Tangent"}}.
** Se viene fornito un {{incode|tan_vector}}, è un vettore unitario che definisce la direzione tangente locale della copia lungo il percorso. Viene utilizzato quando {{incode|align_mode}} è {{incode|"Tangent"}}.
** Se {{incode|force_vertical}} è {{incode|True}}, il valore di {{incode|vertical_vector}} viene utilizzato per determinare la direzione Z locale della copia lungo il percorso. Viene utilizzato quando {{incode|align_mode}} è {{incode|"Original"}} o {{incode|"Tangent"}}.
** Se {{incode|use_link}} è {{incode|True}}, il tipo di serie creata sarà una [[Draft_PathLinkArray/it|Serie di link su tracciato]], i cui elementi sono delle istanze [[App_Link/it|App Link]] invece di normali copie.
</div>
</div>


Esempio:
Esempio:

{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 105: Line 219:
}}
}}


==Spiegazione tecnica per la proprietà Allinea==
Quando {{PropertyData|Align}} è {{FALSE}}, il posizionamento delle forme copiate è facile da capire; sono semplicemente spostati in una posizione diversa nel loro orientamento originale.
[[Image:patharray_NoAlign.png|600px|left|Align false]]
{{clear}}
{{Caption|Oggetto disposto lungo un percorso chiuso nell'orientamento originale}}


<div class="mw-translate-fuzzy">
Quando {{PropertyData|Align}} è {{TRUE}}, il posizionamento delle forme diventa un po' più complesso :
{{Docnav/it
# Prima, i sistemi di coordinate di Frenet sono costruiti sul percorso: X è tangente, Z è normale, Y è binormale.
|[[Draft_LinkArray/it|Serie di link]]
# 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.
|[[Draft_PathLinkArray/it|Serie di link su tracciato]]
[[Image:patharray alignment annotated.png|600px|left]]
|[[Draft_Workbench/it|Draft]]
{{clear}}
|IconL=Draft_LinkArray.svg
{{Caption|Oggetto disposto lungo un percorso chiuso; descrizione di componenti e percorso}}
|IconC=Workbench_Draft.svg

|IconR=Draft_PathLinkArray.svg
Le immagini seguenti mostrano come viene prodotto l'array, a seconda del piano del percorso.
}}

</div>
Percorso nel piano XY:
[[Image:patharray_alignment.png|600px|left]]
{{clear}}
{{Caption|Oggetto disposto lungo un percorso chiuso allineato al piano XY}}

Percorso nel piano XZ:
[[Image:patharray_alignment-XZ.png|600px|left]]
{{clear}}
{{Caption|Oggetto disposto lungo un percorso chiuso allineato al piano XZ}}

Percorso nel piano YZ:
[[Image:patharray_alignment-YZ.png|600px|left]]
{{clear}}
{{Caption|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.

{{Emphasis|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
[[Image:patharray_cycleChain.png|600px|left|Align false]]
{{clear}}

Traversine ferroviarie - Modalità Tangente + ForceVertical
[[Image:patharray_railwayTies.png|600px|left|Align false]]
{{clear}}

Modalità Frenet
[[Image:patharray_FrenetMode.png|600px|left|Align false]]
{{clear}}


{{Docnav/it|[[Draft_LinkArray/it|Serie di link]]|[[Draft_PathLinkArray/it|Serie di link su tracciato]]|[[Draft_Module|Draft]]|IconL=Draft_LinkArray.svg|IconC=Workbench_Draft.svg|IconR=Draft_PathLinkArray.svg}}


{{Draft Tools navi{{#translation:}}}}
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Revision as of 19:54, 30 August 2021

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.

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.

Alignment

The alignment of the elements in a Draft PathArray depends on the properties of the array and the orientation of the source object. The position of the source object is ignored: for the purpose of the array the x, y and z are set to 0. If the DatiAlign property of the array is set to false the orientation of the array elements is identical to that of the source object. If it is set to true the X axis of the local coordinate system of each element placement is tangent to the path. The Y and Z axes of the local coordinate systems depend on the DatiAlign Mode property of the array. Other array properties involved in the alignment include DatiTangent Vector, DatiForce Vertical and DatiVertical Vector.

3 arrays based on the same non-planar path. From left to right: Align is false, Align is true with Align Mode Original and Align is true with Align Mode Frenet

.

Align Mode

Three modes are available:

Original

This mode comes closest to the single DatiAlign Mode available in version 0.18. It relies on a fixed normal vector. If the path is planar this vector is perpendicular to the plane of the path, else a default vector, the positive Z axis, is used. From this normal vector and the local tangent vector (the local X axis) a cross product is calculated. This new vector is used as the local Z axis. The orientation of the local Y axis is determined from the local X and Z axes.

Frenet

This mode uses the local normal vector derived from the path at each element placement. If this vector cannot be determined (for example in the case of a straight segment) a default vector, again the positive Z axis, is used instead. With this vector and the local tangent vector the local coordinate system is determined using the same procedure as in the previous paragraph.

Tangent

This mode is similar to DatiAlign Mode Original but includes the possibility to pre-rotate the source object by specifying a DatiTangent Vector.

Force Vertical and Vertical Vector

These properties are only available if DatiAlign Mode is Original or Tangent. If DatiForce Vertical is set to true the local coordinate system is calculated in a different manner. The DatiVertical Vector is used as a fixed normal vector. From this normal vector and the local tangent vector (the local X axis) again a cross product is calculated. But now this vector is used as the local Y axis. The orientation of the local Z axis is determined from the local X and Y axes.

Using these properties can be required if one of the edged of the path is (almost) parallel to the default normal of the path.

Proprietà

See also: Property editor.

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

Data

Link

The properties in this group are only available for Link arrays. See Std LinkMake for more information.

  • DatiScale (Float)
  • Dati (Hidden)Scale Vector (Vector)
  • DatiScale List (VectorList)
  • Dati (Hidden)Visibility List (BoolList)
  • Dati (Hidden)Placement List (PlacementList)
  • Dati (Hidden)Element List (LinkList)
  • Dati (Hidden)_ Link Touched (Bool)
  • Dati (Hidden)_ Child Cache (LinkList)
  • Dati (Hidden)Colored Elements (LinkSubHidden)
  • DatiLink Transform (Bool)

Alignment

Alignment

  • DatiAlign (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.
  • DatiAlign Mode (Enumeration): tre modalità, Original, Frenet, Tangent.
  • DatiExtra 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.
  • DatiForce Vertical (Bool): se è true, il valore di DatiVertical Vector verrà utilizzata come direzione Z locale, quando DatiAlign Mode è Original o Tangent. disponibile dalla versione 0.19
  • DatiTangent Vector (Vector): il valore predefinito è (1, 0, 0); vettore unità di allineamento che verrà utilizzato quando DatiAlign Mode è Tangent. disponibile dalla versione 0.19
  • DatiVertical Vector (Vector): il valore predefinito è (0, 0, 1); vettore unitario della direzione Z locale che verrà utilizzato quando DatiVertical Vector è true. disponibile dalla versione 0.19

Objects

Objects

  • DatiBase (LinkGlobal): specifica l'oggetto da duplicare nel percorso.
  • DatiCount (Integer): specifica il numero di copie da creare nel percorso.
  • DatiPath Object (LinkGlobal): specifica l'oggetto lungo il quale verranno distribuite le copie. Deve contenere degli 'Edges' nella sua topologia; ad esempio, potrebbe essere una polilinea o una BSpline.
  • DatiPath Subelements (LinkSubListGlobal): specifica i sottoelementi (bordi) del DatiPath 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
DatiPath Object.

View

Link

The properties in this group, with the exception of the inherited property, are only available for Link arrays. See Std LinkMake for more information.

  • VistaDraw Style (Enumeration)
  • VistaLine Width (FloatConstraint)
  • VistaOverride Material (Bool)
  • VistaPoint Size (FloatConstraint)
  • VistaSelectable (Bool): this is an inherited property that appears in the Selection group for other arrays
  • VistaShape Material (Material)

Base

The properties in this group, with the exception of the inherited property, are only available for Link arrays. See Std LinkMake for more information.

  • Vista (Hidden)Child View Provider (PersistentObject)
  • Vista (Hidden)Material List (MaterialList)
  • Vista (Hidden)Override Color List (ColorList)
  • Vista (Hidden)Override Material List (BoolList)
  • Vista (Hidden)Proxy (PythonObject): this is an inherited property.

Display Options

The properties in this group are inherited properties. See Part Feature for more information.

  • VistaBounding Box (Bool): this property is not inherited by Link arrays.
  • VistaDisplay Mode (Enumeration): for Link arrays it can be Link or ChildView. For other arrays it can be: Flat Lines, Shaded, Wireframe or Points
  • VistaShow In Tree (Bool)
  • VistaVisibility (Bool)

Draft

  • VistaPattern (Enumeration): not used.
  • VistaPattern Size (Float): not used.

Object style

The properties in this group are not inherited by Link arrays.

Scripting

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

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()