Draft PathArray/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
Line 42: Line 42:
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.
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.


{{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]]}}.
<div class="mw-translate-fuzzy">
L'objet de base doit être centré autour de l'origine, même si le chemin commence ailleurs.
</div>


==Options==
==Options==

Revision as of 14:49, 5 July 2020

Draft Réseau selon une courbe

Emplacement du menu
Modification → Array tools → PathArray
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 Clone

Description

L'outil 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 Fil ou une ou plusieurs Draft BSpline et bords similaires.

L'outil Réseau selon une courbe peut être utilisé sur n'importe quel objet ayant un Part TopoShape, c'est-à-dire des formes 2D créées avec l'Atelier Draft mais aussi des solides 3D créés avec les Atelier Part, Atelier PartDesign ou Atelier Arch.

Objet disposé le long d'un chemin

Utilisation

  1. Sélectionnez l'objet que vous souhaitez distribuer.
  2. Sélectionnez le tracé ou n'importe quel ligne le sur laquelle les formes seront copiées.
  3. Cliquez le bouton Draft PathArray.
  4. 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.

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.

Remarque: si l'objet DonnéesBase ne semble pas être positionné correctement dans le chemin, vérifiez que son DonnéesPlacement est à l'origine (0,0,0). Certains objets peuvent être placés n'importe où dans l'espace 3D lorsqu'ils sont utilisés avec l'outil Draft Réseau selon une courbe mais d'autres doivent être à l'origine, en particulier ceux créé en utilisant Part Extrusion avec un profil 2D comme un Esquisse.

Options

Il n'y a pas d'options pour cet outil. Cela fonctionne avec les objets sélectionnés ou non.

Propriétés

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

  • DonnéesBase: spécifie l'objet à dupliquer dans le chemin.
  • DonnéesPathObj: spécifie le chemin de l'objet
  • DonnéesPathSubs: spécifie les sous-éléments (bords) du chemin. Cette propriété n'apparaît pas encore dans l'éditeur de propriétés.
  • DonnéesCount: spécifie le nombre de copies de l'objet de base
  • DonnéesAlign: s'il est fixé sur true, les copies sont alignées sur le chemin. sinon, ils restent dans leur orientation par défaut.
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.
  • DonnéesXlate: spécifie l'adaptation du vecteur (x, y, z) pour déplacer chaque copie le long du chemin.
Note: lorsque DonnéesAlign est true, le vecteur est relatif aux coordonnées locales tangentes, normales ou binormales; sinon, le vecteur est relatif aux coordonnées globales.

Objects

  • DonnéesBase (LinkGlobal): specifies the object to duplicate in the path.
  • DonnéesCount (Integer): specifies the number of copies to create in the path.
  • DonnéesPath Object (LinkGlobal): specifies the object along which the copies will be distributed. It must contain 'Edges' in its Part TopoShape; for example, it could be a Wire or BSpline.
  • DonnéesPath Subelements (LinkSubListGlobal): specifies the sub-elements (edges) of the DonnéesPath 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 DonnéesPath Object.

Script

See also: Draft API et FreeCAD Scripts de base.

L'outil PathArray peut être utilisé dans une macro et dans la console Python avec la commande:

Older call

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

New call

path_array = make_path_array(base_object, path_object,
                             count=4, extra=App.Vector(0, 0, 0), subelements=None,
                             align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
                             force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
                             use_link=True):
  • Crée un objet PathArray à partir de baseobject, en plaçant autant de copies que count le long de pathobject.
    • Si pathobjsubs est indiqué, il s'agit d'une liste de sous-objets de pathobject et les copies sont créées le long de ce chemin plus court.
  • Si xlate est indiqué, il s'agit d'un FreeCAD.Vector qui indique un déplacement supplémentaire pour déplacer le point de base des copies.
  • Si align est True, les copies sont alignées sur la tangente, normale ou binormale de pathobject au point où la copie est placée.

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

Explication technique

Quand DonnéesAlign 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.

Align false
Align false

Objet disposé le long d'un chemin fermé dans l'orientation d'origine

Lorsque DonnéesAlign est true, le positionnement des formes devient un peu plus complexe:

  1. Premièrement, le système de coordonnées Frenet est construit sur le chemin: X est tangente, Z est normale, Y est binormale.
  2. 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é.

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

Objet disposé le long d’un chemin fermé qui est aligné sur le plan XY plane

Chemin sur le Plan XZ

Objet disposé le long d'un trajet fermé aligné sur le plan XZ

Chemin sur le Plan YZ

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.

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

Align false
Align false

Traverses de chemin de fer - Mode Tangent + ForceVertical

Align false
Align false

Mode Frenet

Align false
Align false