Draft PathArray/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
(Updating to match new version of source page)
 
(128 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav/fr
{{Docnav/fr
|[[Draft_LinkArray/fr|Réseau lié]]
|[[Draft_CircularArray/fr|Réseau circulaire]]
|[[Draft_PathLinkArray/fr|Réseau lié selon une courbe]]
|[[Draft_PathLinkArray/fr|Réseau lié selon une courbe]]
|[[Draft_Module/fr|Atelier Draft]]
|[[Draft_Workbench/fr|Atelier Draft]]
|IconL=Draft_LinkArray.svg
|IconL=Draft_CircularArray.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_PathLinkArray.svg
|IconR=Draft_PathLinkArray.svg
|IconC=Workbench_Draft.svg
}}
}}


Line 12: Line 13:
|Name=Draft PathArray
|Name=Draft PathArray
|Name/fr=Draft Réseau selon une courbe
|Name/fr=Draft Réseau selon une courbe
|MenuLocation=Modification → Outils pour les réseaux → Réseau selon une courbe
|Workbenches=[[Draft_Module/fr|Draft]], [[Arch_Module/fr|Arch]]
|Workbenches=[[Draft_Workbench/fr|Draft]], [[Arch_Workbench/fr|Arch]]
|MenuLocation=Modification → Array tools → Path Array
|SeeAlso=[[Draft_OrthoArray/fr|Draft Réseau orthogonal]], [[Draft_PolarArray/fr|Draft Réseau polaire]], [[Draft_CircularArray/fr|Draft Réseau circulaire]], [[Draft_PathLinkArray/fr|Draft Réseau lié selon une courbe]], [[Draft_PointArray/fr|Draft Réseau de points]], [[Draft_Clone/fr|Draft Clone]]
|Version=0.14
|Version=0.14
|SeeAlso=[[Draft_OrthoArray/fr|Draft Réseau orthogonal]], [[Draft_PolarArray/fr|Draft Réseau polaire]], [[Draft_CircularArray/fr|Draft Réseau circulaire]], [[Draft_PathLinkArray/fr|Draft Réseau lié selon une courbe]], [[Draft_PointArray/fr|Draft Réseau de points]], [[Draft_PointLinkArray/fr|Draft Réseau lié selon des points]]
}}
}}


==Description==
==Description==


La commande [[Image:Draft_PathArray.svg|24px]] '''Draft Réseau selon une courbe''' crée un réseau régulier à partir d'un objet sélectionné en plaçant des copies le long d'un chemin. Utilisez la commande [[Draft_PathLinkArray/fr|Draft Réseau lié selon une courbe]] pour créer un réseau [[App_Link/fr|Link]] plus efficace à la place. À l'exception du type de réseau créé, réseau de liens ou réseau régulier, la commande [[Draft_PathLinkArray/fr|Draft Réseau lié selon une courbe]] est identique à cette commande.
L'outil {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft PathArray/fr|Draft Chemin pour série de copies]]}} place des copies d'une forme sélectionnée le long d'un chemin sélectionné, le chemin peut être un [[Draft Wire/fr|Draft Fil]] ou une ou plusieurs [[Draft BSpline/fr|Draft BSpline]] et bords similaires.


L'outil Réseau selon une courbe peut être utilisé sur n'importe quel objet ayant un [[Part_TopoShape/fr|Part TopoShape]], c'est-à-dire des formes 2D créées avec l'[[Draft_Workbench/fr|Atelier Draft]] mais aussi des solides 3D créés avec les [[Part_Workbench/fr|Atelier Part]], [[PartDesign_Workbench/fr|Atelier PartDesign]] ou [[Arch_Workbench/fr|Atelier Arch]].
Ces deux commandes peuvent être utilisées sur des objets 2D créés avec l'[[Draft_Workbench/fr|atelier Draft]] ou l'[[Sketcher_Workbench/fr|atelier Sketcher]], mais aussi sur de nombreux objets 3D tels que ceux créés avec l'[[Part_Workbench/fr|atelier Part]], l'[[PartDesign_Workbench/fr|atelier PartDesign]] ou l'[[Arch_Workbench/fr|atelier Arch]].

* Pour créer des réseaux orthogonaux, polaires ou circulaires, utilisez le {{Button|[[File:Draft_OrthoArray.svg|16px]] [[Draft_OrthoArray/fr|Draft Réseau orthogonal]]}}, {{Button|[[File:Draft_PolarArray.svg|16px]] [[Draft_PolarArray/fr|Draft Réseau polaire]]}} ou {{Button|[[File:Draft_CircularArray.svg|16px]] [[Draft_CircularArray/fr|Draft Réseau circulaire]]}}.
* Pour positionner [[App_Link/fr|App Link]] des copies le long d'un chemin, utilisez {{Button|[[File:Draft_PathLinkArray.svg|16px]] [[Draft_PathLinkArray/fr|Draft Réseau lié selon une courbe]]}}.
* Pour positionner les copies aux points spécifiés, utilisez {{Button|[[File:Draft_PointArray.svg|16px]] [[Draft_PointArray/fr|Draft Réseau de points]]}}.
* Pour créer des copies et les placer manuellement, utilisez {{Button|[[File:Draft_Move.svg|16px]] [[Draft_Move/fr|Draft Déplacer]]}} ou {{Button|[[File:Draft_Rotate.svg|16px]] [[Draft_Rotate/fr|Draft Rotation]]}}.
* Pour créer des copies exactes et les placer ou les mettre à l'échelle manuellement, utilisez {{Button|[[File:Draft_Clone.svg|16px]] [[Draft_Clone/fr|Draft Clone]]}} oou {{Button|[[File:Std_LinkMake.svg|16px]] [[Std_LinkMake/fr|Std LinkMake]]}}.


[[Image:Draft_PathArray_Example.png|400px]]
[[Image:Draft_PathArray_Example.png|400px]]
{{Caption|Objet disposé le long d'un chemin}}
{{Caption|Un Draft réseau selon une courbe}}


<span id="Usage"></span>
==Utilisation==
==Utilisation==


# Sélectionnez l'objet que vous souhaitez distribuer.
# Sélectionner l'objet que vous souhaitez mettre en réseau.
# Ajouter l'objet trajectoire à la sélection. Il est également possible de sélectionner des arêtes à la place. Les arêtes doivent appartenir au même objet et doivent être connectées.
# Sélectionnez le tracé ou n'importe quel ligne le sur laquelle les formes seront copiées.
# Il existe plusieurs façons de lancer la commande :
# Cliquez le bouton {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray/fr|Draft PathArray]]}}.
#* Appuyer sur le {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray/fr|Réseau selon une courbe]]}}.
# L'objet Array (réseau) est créé immédiatement. Vous devez modifier les propriétés du tableau pour modifier le nombre et la direction des copies créées.
#* Sélectionner l'option {{MenuCommand|Modification → Outils pour les réseaux → [[Image:Draft_PathArray.svg|16px]] Réseau selon une courbe}} du menu.
# Le réseau est créé.
# Vous pouvez éventuellement modifier les [[#Propri.C3.A9t.C3.A9s|propriétés]] du réseau dans l'[[Property_editor/fr|éditeur de propriétés]].


<span id="Alignment"></span>
Chaque élément du tableau est un clone exact de l'objet d'origine, mais l'ensemble du tableau est considéré comme une seule unité en termes de propriétés et d'apparence.
==Alignement==


L'alignement des éléments d'un Draft Réseau selon une courbe dépend des propriétés du réseau et de l'orientation de l'objet source. La position de l'objet source est ignorée : pour les besoins du réseau, les valeurs {{Value|x}}, {{Value|y}} et {{Value|z}} sont fixées à {{Value|0}}. Si la propriété {{PropertyData|Align}} du réseau est définie à {{FALSE}}, l'orientation des éléments du réseau est identique à celle de l'objet source. Si elle a pour valeur {{TRUE}}, l'axe X du système de coordonnées local de chaque élément placé est tangent à la trajectoire. Les axes Y et Z des systèmes de coordonnées locaux dépendent de la propriété {{PropertyData|Align Mode}} du réseau. Les autres propriétés du réseau impliquées dans l'alignement comprennent {{PropertyData|Tangent Vector}}, {{PropertyData|Force Vertical}} et {{PropertyData|Vertical Vector}}.
{{Emphasis|Remarque:}} si l'objet {{PropertyData/fr|Base}} ne semble pas être positionné correctement dans le chemin, vérifiez que son {{PropertyData/fr|Placement}} est à l'origine {{Value|(0,0,0)}}. Certains objets peuvent être placés n'importe où dans l'espace 3D lorsqu'ils sont utilisés avec l'outil {{Button|[[Image:Draft_PathArray.svg|16px]] [[Draft_PathArray|Draft Réseau selon une courbe]]}} mais d'autres doivent être à l'origine, en particulier ceux créé en utilisant {{Button|[[File:Part_Extrude.svg|16px]] [[Part_Extrude/fr|Part Extrusion]]}} avec un profil 2D comme un {{Button|[[File:Sketcher_NewSketch.svg|16px]] [[Sketch/fr|Esquisse]]}}.


[[Image:Draft_PathArray_example2.png|600px]]
==Options==
{{Caption|3 réseaux basés sur la même courbe non planaire.<br>De gauche à droite : Align est false, Align à true pour Align Mode Original et Align à true pour Align Mode Frenet.}}.


<span id="Align_Mode"></span>
Il n'y a pas d'options pour cet outil. Cela fonctionne avec les objets sélectionnés ou non.
===Mode d'alignement===


Trois modes sont disponibles :

====Original====

Ce mode se rapproche le plus du mode unique {{PropertyData|Align Mode}} disponible dans la version 0.18. Il s'appuie sur un vecteur normal fixe. Si le chemin est planaire, ce vecteur est perpendiculaire au plan du chemin, sinon un vecteur par défaut, l'axe Z positif, est utilisé. À partir de ce vecteur normal et du vecteur tangent local (l'axe X local), un [https://fr.wikipedia.org/wiki/Produit_vectoriel produit vectoriel] est calculé. Ce nouveau vecteur est utilisé comme axe Z local. L'orientation de l'axe Y local est déterminée à partir des axes X et Z locaux.

====Frenet====

Ce mode utilise le vecteur normal local dérivé de la trajectoire à chaque placement d'élément. Si ce vecteur ne peut pas être déterminé (par exemple dans le cas d'un segment droit), un vecteur par défaut, toujours l'axe Z positif, est utilisé à la place. Avec ce vecteur et le vecteur tangent local, le système de coordonnées local est déterminé en utilisant la même procédure que dans le paragraphe précédent.

====Tangent====

Ce mode est similaire à {{PropertyData|Align Mode}}. {{Value|Original}} mais offre la possibilité de pré-rotation de l'objet source en spécifiant un {{PropertyData|Tangent Vector}}.

<span id="Force_Vertical_and_Vertical_Vector"></span>
===Force Vertical et Vertical Vector===

Ces propriétés ne sont disponibles que si {{PropertyData|Align Mode}} est {{Value|Original}} ou {{Value|Tangent}}. Si {{PropertyData|Force Vertical}} est défini sur {{TRUE}}, le système de coordonnées local est calculé d'une manière différente. {{PropertyData|Vertical Vector}} est utilisé comme vecteur normal fixe. Un produit vectoriel est à nouveau calculé à partir de ce vecteur normal et du vecteur tangent local (l'axe X local). Mais ce vecteur est maintenant utilisé comme l'axe Y local. L'orientation de l'axe Z local est déterminée à partir des axes X et Y locaux.

L'utilisation de ces propriétés peut être nécessaire si l'un des bords du chemin est (presque) parallèle à la normale par défaut du chemin.

<span id="Properties"></span>
==Propriétés==
==Propriétés==


Voir aussi: [[Property_editor/fr|Éditeur de propriétés]]
Un [[Draft_PathArray|Draft Réseau selon une courbe]] est dérivé de [[Part_Feature/fr|Part Feature]] (classe {{incode|Part::Feature}}). Il partage donc toutes les propriétés de ce dernier. Outre les propriétés décrites dans [[Part_Feature/fr|Part Feature]], le Réseau orthogonal possède les propriétés suivantes dans l'[[Property_editor/fr|Éditeur de propriétés]]

Un objet Draft Réseau selon une courbe est dérivé d'un objet [[Part_Feature/fr|Part Feature]] et hérite de toutes ses propriétés (à l'exception de certaines propriétés Vue qui ne sont pas héritées par les réseaux Link). Les propriétés suivantes sont supplémentaires, sauf indication contraire :

<span id="Data"></span>
===Données===

{{TitleProperty|Link}}

Les propriétés de ce groupe ne sont disponibles que pour les réseaux de liens. Voir [[Std_LinkMake/fr#Propri.C3.A9t.C3.A9s|Std Créer un lien]] pour plus d'informations.

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

{{TitleProperty|Alignment}}

* {{PropertyData|Align|Bool}} : spécifie si les éléments du réseau sont alignés ou non le long du chemin. Si elle vaut {{FALSE}}, toutes les autres propriétés de ce groupe, à l'exception de {{PropertyData|Extra Translation}} ne s'appliquent pas et sont masquées.
* {{PropertyData|Align Mode|Enumeration}} : spécifie le mode d'alignement, qui peut être {{Value|Original}}, {{Value|Frenet}} ou {{Value|Tangent}}.
* {{PropertyData|End Offset|Length}} : spécifie la longueur entre la fin du chemin et la dernière copie. Elle doit être inférieure à la longueur du chemin moins {{PropertyData|Start Offset}}. {{Version/fr|0.21}}
* {{PropertyData|Extra Translation|VectorDistance}} : spécifie un déplacement supplémentaire pour chaque élément le long du chemin.
* {{PropertyData|Force Vertical|Bool}} : spécifie s'il faut remplacer la direction normale par défaut par la valeur de {{PropertyData|Vecteur Vertical}}. Utilisé uniquement si {{PropertyData|Align Mode}} est {{Value|Original}} ou {{Value|Tangent}}.
* {{PropertyData|Start Offset|Length}} : spécifie la longueur entre le début du chemin et la première copie. Elle doit être inférieure à la longueur du chemin. {{Version/fr|0.21}}
* {{PropertyData|Tangent Vector|Vector}} : spécifie le vecteur d'alignement. Utilisé uniquement si {{PropertyData|Align Mode}} est {{Value|Tangent}}.
* {{PropertyData|Vertical Vector|Vector}} : spécifie le remplacement de la direction normale par défaut. Utilisé uniquement si {{PropertyData|Vertical Vector}} est {{TRUE}}.

{{TitleProperty|Objects}}

<div class="mw-translate-fuzzy">
* {{PropertyData|Base|LinkGlobal}} : spécifie l'objet à dupliquer dans le réseau.
* {{PropertyData|Count|Integer}} : spécifie le nombre d'éléments dans le réseau.
* {{PropertyData|Expand Array|Bool}} : indique s'il faut développer le réseau dans la [[Tree_view/fr|vue en arborescence]] pour permettre la sélection de ses éléments individuels. Disponible uniquement pour les réseaux de type lien (Link).
* {{PropertyData|Path Object|LinkGlobal}} : spécifie l'objet à utiliser pour le chemin. Il doit contenir {{Value|Edges}} dans sa [[Part_TopoShape/fr|Part TopoShape]].
* {{PropertyData|Path Subelements|LinkSubListGlobal}} : spécifie une liste d'arêtes de {{PropertyData|Path Object}}. Si elle est renseignée, seules ces arêtes sont utilisées pour le chemin.
</div>

<span id="View"></span>
=== Vue ===

{{TitleProperty|Link}}

Les propriétés de ce groupe, à l'exception de la propriété héritée, ne sont disponibles que pour les réseaux liens (Link). Voir [[Std_LinkMake/fr#Propri.C3.A9t.C3.A9s|Std Créer un lien]] pour plus d'informations.

* {{PropertyView|Draw Style|Enumeration}}
* {{PropertyView|Line Width|FloatConstraint}}
* {{PropertyView|Override Material|Bool}}
* {{PropertyView|Point Size|FloatConstraint}}
* {{PropertyView|Selectable|Bool}} : il s'agit d'une propriété héritée qui apparaît dans le groupe Sélection pour d'autres réseaux.
* {{PropertyView|Shape Material|Material}}

{{TitleProperty|Base}}

Les propriétés de ce groupe, à l'exception de la propriété héritée, ne sont disponibles que pour les réseaux liens (Link). Voir [[Std_LinkMake/fr#Propri.C3.A9t.C3.A9s|Std Créer un lien]] pour plus d'informations.

* {{PropertyView|Child View Provider|PersistentObject|Caché}}
* {{PropertyView|Material List|MaterialList|Caché}}
* {{PropertyView|Override Color List|ColorList|Caché}}
* {{PropertyView|Override Material List|BoolList|Caché}}
* {{PropertyView|Proxy|PythonObject|Caché}}: il s'agit d'une propriété héritée.

{{TitleProperty|Display Options}}

Les propriétés de ce groupe sont des propriétés héritées. Voir [[Part_Feature/fr#Propri.C3.A9t.C3.A9s|Part Feature]] pour plus d'informations.

* {{PropertyView|Bounding Box|Bool}}: cette propriété n'est pas héritée par les réseaux de liens (Link).
* {{PropertyView|Display Mode|Enumeration}}: pour les réseaux de liens, il peut s'agir de {{value|Link}} ou {{value|ChildView}}. Pour les autres réseaux, il peut s'agir de : {{value|Flat Lines}}, {{value|Shaded}}, {{value|Wireframe}} ou {{value|Points}}
* {{PropertyView|Show In Tree|Bool}}
* {{PropertyView|Visibility|Bool}}

{{TitleProperty|Draft}}

* {{PropertyView|Pattern|Enumeration}} : non utilisé.
* {{PropertyView|Pattern Size|Float}} : non utilisé.


{{TitleProperty|Alignement}}
{{TitleProperty|Object style}}
* {{PropertyData/fr|Align|Bool}}: mis à {{TRUE}}, les copies seront alignées sur le chemin sinon elles restent dans leur orientation par défaut.
:{{Emphasis|Remarque:}} dans certains cas, la forme apparaîtra plate, en réalité elle peut avoir bougé dans l'espace 3D, donc au lieu d'utiliser une vue plate, changez la vue en axonométrique.
* {{PropertyData/fr|Align Mode|Enumeration}}: trois modes, {{Value|Original}}, {{Value|Frenet}}, {{Value|Tangent}}.
* {{PropertyData/fr|Extra Translation|VectorDistance}}: vecteur de déplacement supplémentaire {{Value|(x, y, z)}} qui sera appliqué à chaque copie le long du chemin. Cela est utile pour effectuer de petits ajustements dans la position des copies, par exemple, lorsque son point de référence ne correspond pas au point central de sa forme.
* {{PropertyData/fr|Force Vertical|Bool}}: mis à {{TRUE}}, la valeur de {{PropertyData/fr|Vertical Vector}} sera utilisée comme direction Z locale lorsque {{PropertyData/fr|Align Mode}} est {{Value|Original}} ou {{Value|Tangent}}. {{Version/fr|0.19}}
* {{PropertyData|Tangent Vector|Vector}}: valeur par défaut est {{Value|(1, 0, 0)}}. Vecteur d'unité d'alignement qui sera utilisé lorsque {{PropertyData/fr|Align Mode}} est {{Value|Tangent}}. {{Version/fr|0.19}}
* {{PropertyData/fr|Vertical Vector|Vector}}: par défaut, {{Value|(0, 0, 1)}}. Vecteur unitaire de la direction Z locale qui sera utilisé lorsque {{PropertyData/fr|Vertical Vector}} est {{TRUE}}. {{Version/fr|0.19}}


Les propriétés de ce groupe ne sont pas héritées par les réseaux de liens.
{{TitleProperty|Objets}}
* {{PropertyData/fr|Base|LinkGlobal}}: spécifie l'objet à dupliquer dans le chemin.
* {{PropertyData/fr|Count|Integer}}: spécifie le nombre de copies à créer dans le chemin.
* {{PropertyData/fr|Path Object|LinkGlobal}}: spécifie l'objet le long duquel les copies seront distribuées. Il doit contenir {{Value|'Edges'}} dans sa [[Part_TopoShape/fr|Part TopoShape]]. Par exemple, il peut s'agir d'un {{Button|[[File:Draft_Wire.svg|16px]] [[Draft_Wire/fr|Draft Fil]]}} ou {{Button|[[File:Draft_BSpline.svg|16px]] [[Draft_BSpline/fr|Draft BSpline]]}}.
* {{PropertyData/fr|Path Subelements|LinkSubListGlobal}}: spécifie les sous-éléments (bords) de {{PropertyData/fr|Path Object}} sur lesquels les copies seront créées. Les copies seront créées uniquement sur ces bords. Si cette propriété est vide, les copies seront distribuées sur l'ensemble {{PropertyData/fr|Path Object}}.


<span id="Scripting"></span>
==Script==
==Script==
{{Emphasis|See also:}} [[Draft API/fr|Draft API]] et [[FreeCAD Scripting Basics/fr|FreeCAD Scripts de base]].


Voir aussi : [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] et [[FreeCAD_Scripting_Basics/fr|FreeCAD Débuter avec les scripts]].
L'outil PathArray peut être utilisé dans une [[macros/fr|macro]] et dans la console [[Python/fr|Python]] avec la commande:


Pour créer un réseau selon une courbe, utilisez la méthode {{incode|make_path_array}} ({{Version/fr|0.19}}) de l'atelier Draft. Cette méthode remplace la méthode dépréciée {{incode|makePathArray}}.
Appel plus ancien
{{Code|code=
path_array = makePathArray(base_object, path_object, count, xlate=None, align=False, pathobjsubs=[])
}}


Nouvel appel
{{Code|code=
{{Code|code=
path_array = make_path_array(base_object, path_object,
path_array = make_path_array(base_object, path_object,
Line 83: Line 171:
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)
}}
}}


* Crée un objet {{incode|"PathArray"}} à partir de {{incode|base_object}} en plaçant jusqu'à {{incode|count}} copies le long de {{incode|path_object}}.
* {{incode|base_object}} est l'objet à mettre en réseau. Il peut également s'agir du {{incode|Label}} (chaîne de caractères) d'un objet du document courant.
* {{incode|path_object}} est l'objet courbe. Il peut également s'agir du {{incode|Label}} (chaîne de caractères) d'un objet du document courant.
** Si {{incode|extra}} est donné, c'est un vecteur qui déplace légèrement chacune des copies individuelles.
* {{incode|count}} est le nombre d'éléments dans le réseau.
** Si {{incode|subelements}} est donné, il s'agit d'une liste d'arêtes de {{incode|path_object}} par exemple {{incode|['Edge1', 'Edge2']}}. Les copies seront créées le long de ce chemin plus court.
* {{incode|extra}} est un vecteur qui déplace chaque élément.
** Si {{incode|align}} est {{incode|True}}, les copies sont alignées le long de {{incode|path_object}} en fonction de la valeur de {{incode|align_mode}} qui peut être {{ incode|"Original"}}, {{incode|"Frenet"}} ou {{incode |"Tangent"}}.
* {{incode|subelements}} est une liste d'arêtes de {{incode|path_object}}, par exemple {{incode|["Bord1", "Bord2"]}}. Si elle est renseignée, seules ces arêtes sont utilisées pour le chemin.
** Si {{incode|tan_vector}} est donné, c'est un vecteur unitaire qui définit la direction tangente locale de la copie le long du chemin. Il est utilisé lorsque {{incode|align_mode}} est {{incode|"Tangent"}}.
** Si {{incode|force_vertical}} est {{incode|True}}, la valeur de {{incode|vertical_vector}} est utilisée pour déterminer la direction Z locale de la copie le long du chemin. Il est utilisé lorsque {{incode|align_mode}} est {{incode|"Original"}} ou {{incode|"Tangent"}}.
* Si {{incode|align}} est {{incode|True}} les éléments sont alignés le long de la courbe en fonction de la valeur de {{incode|align_mode}}, qui peut être {{incode|"Original"}}, {{incode|"Frenet"}} ou {{incode|"Tangent"}}.
* {{incode|tan_vector}} est un vecteur unitaire qui définit la direction tangente locale des éléments le long de la courbe. Il est utilisé lorsque {{incode|align_mode}} est {{incode|"Tangent"}}.
** Si {{incode|use_link}} est {{incode|True}}, le type de tableau créé sera un [[Draft_PathLinkArray/fr|Draft Réseau lié selon une courbe]], dont les éléments sont des instances de [[App_Link/fr|App Link]] au lieu de simples copies.
* Si {{incode|force_vertical}} est {{incode|True}} {{incode|vertical_vector}} est utilisé pour la direction Z locale des éléments le long de la courbe. Il est utilisé lorsque {{incode|align_mode}} est {{incode|"Original"}} ou {{incode|"Tangent"}}.
* Si {{incode|use_link}} est {{incode|True}}, les éléments créés sont des [[App_Link/fr|App Links]] au lieu de copies ordinaires.
* {{incode|path_array}} est restitué avec l'objet réseau créé.

Exemple :


Exemple:
{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 115: Line 207:
doc.recompute()
doc.recompute()
}}
}}

==Explication technique==
Quand {{PropertyData/fr|Align}} est {{FALSE}}, le placement des copies de PathArray est assez facile à comprendre; elles sont simplement déplacées vers une position différente dans leur orientation d'origine.
[[Image:patharray_NoAlign.png|600px|left|Align false]]
{{clear}}
{{Caption|Objet disposé le long d'un chemin fermé dans l'orientation d'origine}}

Lorsque {{PropertyData/fr|Align}} est {{TRUE}}, le positionnement des formes devient un peu plus complexe:
# Premièrement, le système de coordonnées Frenet est construit sur le chemin: X est tangente, Z est normale, Y est binormale.
# Ensuite, l'objet d'origine est copié dans chaque système de coordonnées sur le trajet, de sorte que l'origine globale corresponde à l'origine du système de coordonnées sur le tracé.
[[Image:patharray alignment annotated.png|600px|left]]
{{clear}}
{{Caption|Objet disposé le long d'un sentier fermé; description des composants et chemin}}

Les images suivantes montrent comment le tableau est produit, en fonction du positionnement du plan et du chemin.

Chemin sur le Plan XY
[[Image:patharray_alignment.png|600px|left]]
{{clear}}
{{Caption|Objet disposé le long d’un chemin fermé qui est aligné sur le plan XY plane}}

Chemin sur le Plan XZ
[[Image:patharray_alignment-XZ.png|600px|left]]
{{clear}}
{{Caption|Objet disposé le long d'un trajet fermé aligné sur le plan XZ}}

Chemin sur le Plan YZ
[[Image:patharray_alignment-YZ.png|600px|left]]
{{clear}}
{{Caption|Objet disposé le long d'un trajet fermé aligné sur le plan YZ}}

Lorsque vous réorientez le chemin mais pas l'objet, le résultat est cohérent: l'objet reste aligné sur le chemin tel qu'il était avant de réorienter le chemin.

{{Emphasis|Editor:}} (Remerciements à @DeepSOIC pour ces explications)

== Modes d'alignement et options supplémentaires introduits dans la v0.19 ==

Le mode '''Original''' (par défaut) est le mode d'alignement historique comme dans la version 0.18. Ce n'est pas vraiment l'alignement Frenet. Le mode original utilise le paramètre normal de Draft.getNormal (ou la valeur par défaut) en tant que constante - il ne calcule pas de courbe normale. X suit la courbe tangente, Y est le paramètre normal, Z est X.Cross(Y).

Le mode '''Tangent''' est similaire à '''Original''' mais inclut une rotation pour aligner l'objet Base de X sur le TangentVector avant de placer des copies. Après la rotation, Tangent se comporte de la même manière que Original. Dans les versions précédentes, cette rotation se serait effectuée manuellement avant d'appeler PathArray.

Le mode '''Frenet''' oriente les copies vers un système de coordonnées le long du chemin. X est tangent à la courbe, Y est la courbe normale, Z est la courbe binormale. Si une normale ne peut pas être calculée (ex une ligne droite), la valeur par défaut est utilisée.

L'option ForceVertical s'applique aux modes Original et Tangent. Quand cela est appliqué, le paramètre normal de Draft.getNormal est ignoré. X
suit la courbe tangente, Z est la propriété VerticalVector et Y est X.Cross(Z).

Chaîne de vélo en version 18 - Mode original
[[Image:patharray_cycleChain.png|600px|left|Align false]]
{{clear}}

Traverses de chemin de fer - Mode Tangent + ForceVertical
[[Image:patharray_railwayTies.png|600px|left|Align false]]
{{clear}}

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




{{Docnav/fr
{{Docnav/fr
|[[Draft_LinkArray/fr|Réseau lié]]
|[[Draft_CircularArray/fr|Réseau circulaire]]
|[[Draft_PathLinkArray/fr|Réseau lié selon une courbe]]
|[[Draft_PathLinkArray/fr|Réseau lié selon une courbe]]
|[[Draft_Module/fr|Atelier Draft]]
|[[Draft_Workbench/fr|Atelier Draft]]
|IconL=Draft_LinkArray.svg
|IconL=Draft_CircularArray.svg
|IconR=Draft_PathLinkArray.svg
|IconC=Workbench_Draft.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_PathLinkArray.svg
}}
}}


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

Latest revision as of 18:20, 28 March 2024

Draft Réseau selon une courbe

Emplacement du menu
Modification → Outils pour les réseaux → Réseau selon une courbe
Ateliers
Draft, Arch
Raccourci par défaut
Aucun
Introduit dans la version
0.14
Voir aussi
Draft Réseau orthogonal, Draft Réseau polaire, Draft Réseau circulaire, Draft Réseau lié selon une courbe, Draft Réseau de points, Draft Réseau lié selon des points

Description

La commande Draft Réseau selon une courbe crée un réseau régulier à partir d'un objet sélectionné en plaçant des copies le long d'un chemin. Utilisez la commande Draft Réseau lié selon une courbe pour créer un réseau Link plus efficace à la place. À l'exception du type de réseau créé, réseau de liens ou réseau régulier, la commande Draft Réseau lié selon une courbe est identique à cette commande.

Ces deux commandes peuvent être utilisées sur des objets 2D créés avec l'atelier Draft ou l'atelier Sketcher, mais aussi sur de nombreux objets 3D tels que ceux créés avec l'atelier Part, l'atelier PartDesign ou l'atelier Arch.

Un Draft réseau selon une courbe

Utilisation

  1. Sélectionner l'objet que vous souhaitez mettre en réseau.
  2. Ajouter l'objet trajectoire à la sélection. Il est également possible de sélectionner des arêtes à la place. Les arêtes doivent appartenir au même objet et doivent être connectées.
  3. Il existe plusieurs façons de lancer la commande :
    • Appuyer sur le Réseau selon une courbe.
    • Sélectionner l'option Modification → Outils pour les réseaux → Réseau selon une courbe du menu.
  4. Le réseau est créé.
  5. Vous pouvez éventuellement modifier les propriétés du réseau dans l'éditeur de propriétés.

Alignement

L'alignement des éléments d'un Draft Réseau selon une courbe dépend des propriétés du réseau et de l'orientation de l'objet source. La position de l'objet source est ignorée : pour les besoins du réseau, les valeurs x, y et z sont fixées à 0. Si la propriété DonnéesAlign du réseau est définie à false, l'orientation des éléments du réseau est identique à celle de l'objet source. Si elle a pour valeur true, l'axe X du système de coordonnées local de chaque élément placé est tangent à la trajectoire. Les axes Y et Z des systèmes de coordonnées locaux dépendent de la propriété DonnéesAlign Mode du réseau. Les autres propriétés du réseau impliquées dans l'alignement comprennent DonnéesTangent Vector, DonnéesForce Vertical et DonnéesVertical Vector.

3 réseaux basés sur la même courbe non planaire.
De gauche à droite : Align est false, Align à true pour Align Mode Original et Align à true pour Align Mode Frenet.

.

Mode d'alignement

Trois modes sont disponibles :

Original

Ce mode se rapproche le plus du mode unique DonnéesAlign Mode disponible dans la version 0.18. Il s'appuie sur un vecteur normal fixe. Si le chemin est planaire, ce vecteur est perpendiculaire au plan du chemin, sinon un vecteur par défaut, l'axe Z positif, est utilisé. À partir de ce vecteur normal et du vecteur tangent local (l'axe X local), un produit vectoriel est calculé. Ce nouveau vecteur est utilisé comme axe Z local. L'orientation de l'axe Y local est déterminée à partir des axes X et Z locaux.

Frenet

Ce mode utilise le vecteur normal local dérivé de la trajectoire à chaque placement d'élément. Si ce vecteur ne peut pas être déterminé (par exemple dans le cas d'un segment droit), un vecteur par défaut, toujours l'axe Z positif, est utilisé à la place. Avec ce vecteur et le vecteur tangent local, le système de coordonnées local est déterminé en utilisant la même procédure que dans le paragraphe précédent.

Tangent

Ce mode est similaire à DonnéesAlign Mode. Original mais offre la possibilité de pré-rotation de l'objet source en spécifiant un DonnéesTangent Vector.

Force Vertical et Vertical Vector

Ces propriétés ne sont disponibles que si DonnéesAlign Mode est Original ou Tangent. Si DonnéesForce Vertical est défini sur true, le système de coordonnées local est calculé d'une manière différente. DonnéesVertical Vector est utilisé comme vecteur normal fixe. Un produit vectoriel est à nouveau calculé à partir de ce vecteur normal et du vecteur tangent local (l'axe X local). Mais ce vecteur est maintenant utilisé comme l'axe Y local. L'orientation de l'axe Z local est déterminée à partir des axes X et Y locaux.

L'utilisation de ces propriétés peut être nécessaire si l'un des bords du chemin est (presque) parallèle à la normale par défaut du chemin.

Propriétés

Voir aussi: Éditeur de propriétés

Un objet Draft Réseau selon une courbe est dérivé d'un objet Part Feature et hérite de toutes ses propriétés (à l'exception de certaines propriétés Vue qui ne sont pas héritées par les réseaux Link). Les propriétés suivantes sont supplémentaires, sauf indication contraire :

Données

Link

Les propriétés de ce groupe ne sont disponibles que pour les réseaux de liens. Voir Std Créer un lien pour plus d'informations.

  • DonnéesScale (Float)
  • Données (Caché)Scale Vector (Vector)
  • DonnéesScale List (VectorList)
  • Données (Caché)Visibility List (BoolList)
  • Données (Caché)Placement List (PlacementList)
  • Données (Caché)Element List (LinkList)
  • Données (Caché)_ Link Touched (Bool)
  • Données (Caché)_ Child Cache (LinkList)
  • Données (Caché)Colored Elements (LinkSubCaché)
  • DonnéesLink Transform (Bool)

Alignment

  • DonnéesAlign (Bool) : spécifie si les éléments du réseau sont alignés ou non le long du chemin. Si elle vaut false, toutes les autres propriétés de ce groupe, à l'exception de DonnéesExtra Translation ne s'appliquent pas et sont masquées.
  • DonnéesAlign Mode (Enumeration) : spécifie le mode d'alignement, qui peut être Original, Frenet ou Tangent.
  • DonnéesEnd Offset (Length) : spécifie la longueur entre la fin du chemin et la dernière copie. Elle doit être inférieure à la longueur du chemin moins DonnéesStart Offset. introduit dans la version 0.21
  • DonnéesExtra Translation (VectorDistance) : spécifie un déplacement supplémentaire pour chaque élément le long du chemin.
  • DonnéesForce Vertical (Bool) : spécifie s'il faut remplacer la direction normale par défaut par la valeur de DonnéesVecteur Vertical. Utilisé uniquement si DonnéesAlign Mode est Original ou Tangent.
  • DonnéesStart Offset (Length) : spécifie la longueur entre le début du chemin et la première copie. Elle doit être inférieure à la longueur du chemin. introduit dans la version 0.21
  • DonnéesTangent Vector (Vector) : spécifie le vecteur d'alignement. Utilisé uniquement si DonnéesAlign Mode est Tangent.
  • DonnéesVertical Vector (Vector) : spécifie le remplacement de la direction normale par défaut. Utilisé uniquement si DonnéesVertical Vector est true.

Objects

  • DonnéesBase (LinkGlobal) : spécifie l'objet à dupliquer dans le réseau.
  • DonnéesCount (Integer) : spécifie le nombre d'éléments dans le réseau.
  • DonnéesExpand Array (Bool) : indique s'il faut développer le réseau dans la vue en arborescence pour permettre la sélection de ses éléments individuels. Disponible uniquement pour les réseaux de type lien (Link).
  • DonnéesPath Object (LinkGlobal) : spécifie l'objet à utiliser pour le chemin. Il doit contenir Edges dans sa Part TopoShape.
  • DonnéesPath Subelements (LinkSubListGlobal) : spécifie une liste d'arêtes de DonnéesPath Object. Si elle est renseignée, seules ces arêtes sont utilisées pour le chemin.

Vue

Link

Les propriétés de ce groupe, à l'exception de la propriété héritée, ne sont disponibles que pour les réseaux liens (Link). Voir Std Créer un lien pour plus d'informations.

  • VueDraw Style (Enumeration)
  • VueLine Width (FloatConstraint)
  • VueOverride Material (Bool)
  • VuePoint Size (FloatConstraint)
  • VueSelectable (Bool) : il s'agit d'une propriété héritée qui apparaît dans le groupe Sélection pour d'autres réseaux.
  • VueShape Material (Material)

Base

Les propriétés de ce groupe, à l'exception de la propriété héritée, ne sont disponibles que pour les réseaux liens (Link). Voir Std Créer un lien pour plus d'informations.

  • Vue (Caché)Child View Provider (PersistentObject)
  • Vue (Caché)Material List (MaterialList)
  • Vue (Caché)Override Color List (ColorList)
  • Vue (Caché)Override Material List (BoolList)
  • Vue (Caché)Proxy (PythonObject): il s'agit d'une propriété héritée.

Display Options

Les propriétés de ce groupe sont des propriétés héritées. Voir Part Feature pour plus d'informations.

  • VueBounding Box (Bool): cette propriété n'est pas héritée par les réseaux de liens (Link).
  • VueDisplay Mode (Enumeration): pour les réseaux de liens, il peut s'agir de Link ou ChildView. Pour les autres réseaux, il peut s'agir de : Flat Lines, Shaded, Wireframe ou Points
  • VueShow In Tree (Bool)
  • VueVisibility (Bool)

Draft

  • VuePattern (Enumeration) : non utilisé.
  • VuePattern Size (Float) : non utilisé.

Object style

Les propriétés de ce groupe ne sont pas héritées par les réseaux de liens.

Script

Voir aussi : Autogenerated API documentation et FreeCAD Débuter avec les scripts.

Pour créer un réseau selon une courbe, utilisez la méthode make_path_array (introduit dans la version 0.19) de l'atelier Draft. Cette méthode remplace la méthode dépréciée makePathArray.

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)
  • base_object est l'objet à mettre en réseau. Il peut également s'agir du Label (chaîne de caractères) d'un objet du document courant.
  • path_object est l'objet courbe. Il peut également s'agir du Label (chaîne de caractères) d'un objet du document courant.
  • count est le nombre d'éléments dans le réseau.
  • extra est un vecteur qui déplace chaque élément.
  • subelements est une liste d'arêtes de path_object, par exemple ["Bord1", "Bord2"]. Si elle est renseignée, seules ces arêtes sont utilisées pour le chemin.
  • Si align est True les éléments sont alignés le long de la courbe en fonction de la valeur de align_mode, qui peut être "Original", "Frenet" ou "Tangent".
  • tan_vector est un vecteur unitaire qui définit la direction tangente locale des éléments le long de la courbe. Il est utilisé lorsque align_mode est "Tangent".
  • Si force_vertical est True vertical_vector est utilisé pour la direction Z locale des éléments le long de la courbe. Il est utilisé lorsque align_mode est "Original" ou "Tangent".
  • Si use_link est True, les éléments créés sont des App Links au lieu de copies ordinaires.
  • path_array est restitué avec l'objet réseau créé.

Exemple :

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