Draft PathArray/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(144 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav/fr
{{Docnav/fr
|[[Draft_LinkArray/fr|Link Array]]
|[[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=Draft → PathArray
|SeeAlso=[[Draft Array/fr|Draft Matrice]], [[Draft LinkArray/fr|Draft LinkArray]], [[Draft PointArray/fr|Draft Matrice de points]]
|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 PathArray peut être utilisé sur des formes 2D créées avec l'atelier [[Draft Workbench/fr|Draft]], mais également sur de nombreux types d'objets 3D, tels que ceux créés avec les ateliers [[Part Workbench/fr|Part]], [[PartDesign Workbench/fr|PartDesign]] ou [[Arch Workbench/fr|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 positionner des copies dans un tableau orthogonal, utilisez [[Draft Array/fr|Draft Array]]; pour positionner des copies à des points spécifiés, utilisez [[Draft PointArray/fr|Draft PointArray]]; pour créer des copies ou des clones et les placer manuellement, utilisez [[Draft Move/fr|Draft Move]], [[Draft Rotate/fr|Draft Rotate]] et [[Draft Clone/fr|Draft Clone]].


[[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 un 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 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}}.
L'objet de base doit être centré autour de l'origine, même si le chemin commence ailleurs.


[[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]]
* {{PropertyData/fr|Base}}: spécifie l'objet à dupliquer dans le chemin.
* {{PropertyData/fr|PathObj}}: spécifie le chemin de l'objet
* {{PropertyData/fr|PathSubs}}: spécifie les sous-éléments (bords) du chemin. Cette propriété n'apparaît pas encore dans l'[[property editor/fr|éditeur de propriétés]].
* {{PropertyData/fr|Count}}: spécifie le nombre de copies de l'objet de base
* {{PropertyData/fr|Align}}: s'il est fixé sur {{TRUE}}, les copies sont alignées sur le chemin. sinon, ils restent dans leur orientation par défaut.
: {{Emphasis|Note:}} dans certains cas, la forme apparaîtra à plat. En réalité, elle peut s'être déplacée dans l'espace 3D. Par conséquent, au lieu d'utiliser une vue à plat, changez la vue en axonométrie.
* {{PropertyData/fr|Xlate}}: spécifie l'adaptation du vecteur (x, y, z) pour déplacer chaque copie le long du chemin.
: {{Emphasis|Note:}} lorsque {{PropertyData/fr|Align}} est {{TRUE}}, le vecteur est relatif aux coordonnées locales tangentes, normales ou binormales; sinon, le vecteur est relatif aux coordonnées globales.


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 :
==Script==
{{Emphasis|See also:}} [[Draft API/fr|Draft API]] et [[FreeCAD Scripting Basics/fr|FreeCAD Scripts de base]].


<span id="Data"></span>
L'outil PathArray peut être utilisé dans une [[macros/fr|macro]] et dans la console [[Python/fr|Python]] avec la commande:
===Données===
{{Code|code=
PathArray = makePathArray(baseobject, pathobject, count, xlate=None, align=False, pathobjsubs=[])
}}


{{TitleProperty|Link}}
* Crée un objet {{incode|PathArray}} à partir de {{incode|baseobject}}, en plaçant autant de copies que {{incode|count}} le long de {{incode|pathobject}}.
** Si {{incode|pathobjsubs}} est indiqué, il s'agit d'une liste de sous-objets de {{incode|pathobject}} et les copies sont créées le long de ce chemin plus court.
* Si {{incode|xlate}} est indiqué, il s'agit d'un {{incode|FreeCAD.Vector}} qui indique un déplacement supplémentaire pour déplacer le point de base des copies.
* Si {{incode| align}} est {{incode|True}}, les copies sont alignées sur la tangente, normale ou binormale de {{incode|pathobject}} au point où la copie est placée.


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.
Exemple:
{{Code|code=
import FreeCAD,Draft


* {{PropertyData|Scale|Float}}
p1 = FreeCAD.Vector(500, -1000, 0)
* {{PropertyData|Scale Vector|Vector|Caché}}
p2 = FreeCAD.Vector(1500, 1000, 0)
* {{PropertyData|Scale List|VectorList}}
p3 = FreeCAD.Vector(3000, 500, 0)
* {{PropertyData|Visibility List|BoolList|Caché}}
p4 = FreeCAD.Vector(4500, 100, 0)
* {{PropertyData|Placement List|PlacementList|Caché}}
spline = Draft.makeBSpline([p1, p2, p3, p4])
* {{PropertyData|Element List|LinkList|Caché}}
object = Draft.makePolygon(3, 500)
* {{PropertyData|_ Link Touched|Bool|Caché}}
* {{PropertyData|_ Child Cache|LinkList|Caché}}
* {{PropertyData|Colored Elements|LinkSubCaché|Caché}}
* {{PropertyData|Link Transform|Bool}}


{{TitleProperty|Alignment}}
PathArray = Draft.makePathArray(object, spline, 6)
}}


* {{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.
==Explication technique==
* {{PropertyData|Align Mode|Enumeration}} : spécifie le mode d'alignement, qui peut être {{Value|Original}}, {{Value|Frenet}} ou {{Value|Tangent}}.
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.
* {{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}}
[[Image:patharray_NoAlign.png|600px|left|Align false]]
* {{PropertyData|Extra Translation|VectorDistance}} : spécifie un déplacement supplémentaire pour chaque élément le long du chemin.
{{clear}}
* {{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}}.
{{Caption|Objet disposé le long d'un chemin fermé dans l'orientation d'origine}}
* {{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}}
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}}


* {{PropertyData|Base|LinkGlobal}} : spécifie l'objet à dupliquer dans le réseau.
Les images suivantes montrent comment le tableau est produit, en fonction du positionnement du plan et du chemin.
* {{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.


<span id="View"></span>
Chemin sur le Plan XY
=== Vue ===
[[Image:patharray_alignment.png|600px|left]]
{{clear}}
{{Caption|Objet disposé le long d’un chemin fermé qui est aligné sur le plan XY plane}}


{{TitleProperty|Link}}
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}}


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


* {{PropertyView|Draw Style|Enumeration}}
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.
* {{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}}
{{Emphasis|Editor:}} (Remerciements à @DeepSOIC pour ces explications)


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.
== Modes d'alignement et options supplémentaires introduits dans la v0.19 ==


* {{PropertyView|Child View Provider|PersistentObject|Caché}}
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).
* {{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}}
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.


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


* {{PropertyView|Bounding Box|Bool}}: cette propriété n'est pas héritée par les réseaux de liens (Link).
L'option ForceVertical s'applique aux modes Original et Tangent. Quand cela est appliqué, le paramètre normal de Draft.getNormal est ignoré. X
* {{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}}
suit la courbe tangente, Z est la propriété VerticalVector et Y est X.Cross(Z).
* {{PropertyView|Show In Tree|Bool}}
* {{PropertyView|Visibility|Bool}}


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


* {{PropertyView|Pattern|Enumeration}} : non utilisé.
Traverses de chemin de fer - Mode Tangent + ForceVertical
* {{PropertyView|Pattern Size|Float}} : non utilisé.
[[Image:patharray_railwayTies.png|600px|left|Align false]]
{{clear}}


{{TitleProperty|Object style}}
Mode Frenet

[[Image:patharray_FrenetMode.png|600px|left|Align false]]
Les propriétés de ce groupe ne sont pas héritées par les réseaux de liens.
{{clear}}

<span id="Scripting"></span>
==Script==

Voir aussi : [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] et [[FreeCAD_Scripting_Basics/fr|FreeCAD Débuter avec les scripts]].

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

{{Code|code=
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)
}}

* {{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.
* {{incode|count}} est le nombre d'éléments dans le réseau.
* {{incode|extra}} est un vecteur qui déplace chaque élément.
* {{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|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|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 :

{{Code|code=
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()
}}




{{Docnav/fr
{{Docnav/fr
|[[Draft_LinkArray/fr|Link Array]]
|[[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
}}
}}


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

Latest revision as of 11:33, 9 December 2023

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