Macro Solid Sweep/fr: Difference between revisions
(Updating to match new version of source page) |
No edit summary |
||
(40 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
{{Macro|Icon=Text-x-python|Name=Solid Sweep|Description=Creates a solid by sweeping a profile from a trajectory.|Author=Normandc}} |
|||
{{Macro/fr |
|||
|Name=Balayage solide |
|||
|Icon=Macro_Solid_Sweep.png |
|||
|Description=Créé un solide en balayant un profil le long d'une trajectoire. |
|||
|Author=Normandc |
|||
|Version=1.0 |
|||
|Date=2011-12-03 |
|||
|FCVersion=Toutes versions |
|||
|Download=[https://www.freecadweb.org/wiki/images/6/6d/Macro_Solid_Sweep.png |
|||
Icône pour votre barre d'outils] |
|||
}} |
|||
==Description== |
|||
This macro creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI. |
|||
Cette macro créé un solide en balayant un profil le long d'une trajectoire, les deux éléments ayant précédemment été sélectionnés dans la vue 3D. Les éléments 2D peuvent être créés à l'aide des outils existants de l'interface graphique de FreeCAD. |
|||
Il est à noter que le solide généré ne sera '''pas''' paramétrique. Si vous décidez de modifier le profil ou la trajectoire, vous devrez exécuter la macro à nouveau. |
|||
[[File:Solid_sweep.png|500px| |
[[File:Solid_sweep.png|500px|Quelques exemples de balayages utilisant une même section oblongue et trois types de trajectoires.]] |
||
== Utilisation == |
|||
* Create two 2D elements, one for the section and one for the trajectory, of the types listed below. |
|||
* Select, either in the Project tree or in the 3D view, first the trajectory, then the profile. The order is important! |
|||
* Open the Macro manager, select the macro and click "Execute". |
|||
* A '''Sweep''' object will be created in the Project tree. |
|||
# Créez deux éléments 2D, un pour la section et un pour la trajectoire, des types répertoriés ci-dessous. |
|||
=== Supported 2D elements === |
|||
# Sélectionnez, soit dans la [[Tree view/fr|vue en arborescence]] soit dans [[3D view/fr|Vue 3D]] ('''L'ordre est important!'''): |
|||
* Wires |
|||
## La trajectoire |
|||
⚫ | |||
## Puis le profil |
|||
⚫ | |||
# Ouvrez le [[Macros/fr|Gestionnaire de macros]] |
|||
* 2D primitives from the ''Parametric → Create Primitives...'' menu (circle, helix) |
|||
# Sélectionnez la macro '''Solid Sweep''' |
|||
# Cliquez sur {{Button|Execute}} |
|||
'''Résultat:''' un '''Balayage''' sera créé dans l'arborescence du Projet. |
|||
== Éléments 2D supportés == |
|||
=== Tips === |
|||
* Filaires |
|||
* The section has to be a closed profile or the result will not be a solid. |
|||
⚫ | |||
* The section does not need to be located on the trajectory, but it's preferable that it be normal (perpendicular) to the trajectory. |
|||
⚫ | |||
* The trajectory can either be an open or closed profile (circle, or line and arc segments) but all elements need to be tangent or the resulting shape will be unexpected. For example, a trajectory with straight corners like a rectangle will not produce a solid. |
|||
* Primitives 2D depuis le menu ''Pièce → [[Image:Part_Primitives.svg|24px]] [[Part_Primitives/fr|Créer des primitives]]...'' (cercle, hélice) |
|||
* If the solid gets twisted, edit the macro to change the ''isFrenet'' value to 0 (zero) and try again. |
|||
* Setting the ''makeSolid'' variable to 0 (zero) in the macro will produce a set of surfaces with open ends. |
|||
== Conseils == |
|||
* La section doit être un profil fermé sinon la forme résultante ne sera pas solide. |
|||
<syntaxhighlight> |
|||
* La section n'a pas besoin d'être située sur la trajectoire, mais il est préférable qu'elle lui soit normale (perpendiculaire). |
|||
* La trajectoire peut indifféremment être un profil ouvert ou fermé (cercle, ou une suite de segments de lignes et d'arcs) mais tous les éléments doivent être tangents, sinon le résultat pourrait être inattendu. Par exemple, une trajectoire avec des coins carrés comme un rectangle ne produira pas un solide. |
|||
* S'il y a un nœud dans la forme résultante, modifiez la macro et changez la valeur ''isFrenet'' à 0 (zéro), puis essayez à nouveau. |
|||
* Réglez la variable ''makeSolid'' à 0 (zéro) pour obtenir une forme non solide faite de surfaces avec des extrémités ouvertes. |
|||
== Le script == |
|||
ToolBar Icon [[Image:Macro_Solid_Sweep.png]] |
|||
'''Macro_Solid_Sweep.FCMacro''' |
|||
{{MacroCode|code= |
|||
import Part, FreeCAD, math, PartGui, FreeCADGui |
import Part, FreeCAD, math, PartGui, FreeCADGui |
||
from FreeCAD import Base |
from FreeCAD import Base |
||
# |
# get the selected objects, with first selection for the trajectory and second for the section |
||
s = FreeCADGui.Selection.getSelection() |
s = FreeCADGui.Selection.getSelection() |
||
try: |
try: |
||
shape1=s[0].Shape |
shape1=s[0].Shape |
||
shape2=s[1].Shape |
shape2=s[1].Shape |
||
except: |
except: |
||
print "Wrong selection" |
print "Wrong selection" |
||
traj = Part.Wire([shape1]) |
traj = Part.Wire([shape1]) |
||
section = Part.Wire([shape2]) |
section = Part.Wire([shape2]) |
||
# create |
# create Part objec in the current document |
||
myObject=App.ActiveDocument.addObject("Part::Feature","Sweep") |
myObject=App.ActiveDocument.addObject("Part::Feature","Sweep") |
||
makeSolid = 1 |
# variable makeSolid = 1 to create solid, 0 to create surfaces |
||
makeSolid = True #1 |
|||
isFrenet = True #1 |
|||
# |
# create a 3D shape and assigh it to the current document |
||
Sweep = Part.Wire(traj).makePipeShell([section],makeSolid,isFrenet) |
Sweep = Part.Wire(traj).makePipeShell([section],makeSolid,isFrenet) |
||
myObject.Shape = Sweep |
myObject.Shape = Sweep |
||
</syntaxhighlight> |
|||
}} |
|||
=== Credits === |
|||
⚫ | |||
Two examples of uses can be found in [http://forum.freecadweb.org/viewtopic.php?f=8&t=1222&start=50#p11120 this forum topic], along with download links to the FCStd files. Using a helix as trajectory, a solid sweep can be used to create a bolt thread. |
|||
== Remerciements == |
|||
⚫ | |||
⚫ | |||
Deux exemples d'utilisation peuvent être consultés dans [http://forum.freecadweb.org/viewtopic.php?f=8&t=1222&start=50#p11120 cette discussion du forum (en anglais)], ainsi que des liens de téléchargement des fichiers FCStd. En utilisant une hélice comme trajectoire, un balayage solide peut être utilisé pour créer un filet de vis. |
Latest revision as of 20:26, 7 December 2020
Description |
---|
Créé un solide en balayant un profil le long d'une trajectoire. Version macro : 1.0 Date dernière modification : 2011-12-03 Version FreeCAD : Toutes versions Téléchargement : [https://www.freecadweb.org/wiki/images/6/6d/Macro_Solid_Sweep.png Icône pour votre barre d'outils] |
Auteur |
Normandc |
Téléchargement |
[https://www.freecadweb.org/wiki/images/6/6d/Macro_Solid_Sweep.png
Icône pour votre barre d'outils] |
Liens |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
1.0 |
Dernière modification |
2011-12-03 |
Version(s) FreeCAD |
Toutes versions |
Raccourci clavier |
None |
Voir aussi |
None |
Description
Cette macro créé un solide en balayant un profil le long d'une trajectoire, les deux éléments ayant précédemment été sélectionnés dans la vue 3D. Les éléments 2D peuvent être créés à l'aide des outils existants de l'interface graphique de FreeCAD.
Il est à noter que le solide généré ne sera pas paramétrique. Si vous décidez de modifier le profil ou la trajectoire, vous devrez exécuter la macro à nouveau.
Utilisation
- Créez deux éléments 2D, un pour la section et un pour la trajectoire, des types répertoriés ci-dessous.
- Sélectionnez, soit dans la vue en arborescence soit dans Vue 3D (L'ordre est important!):
- La trajectoire
- Puis le profil
- Ouvrez le Gestionnaire de macros
- Sélectionnez la macro Solid Sweep
- Cliquez sur Execute
Résultat: un Balayage sera créé dans l'arborescence du Projet.
Éléments 2D supportés
- Filaires
- Esquisses
- BSplines
- Primitives 2D depuis le menu Pièce → Créer des primitives... (cercle, hélice)
Conseils
- La section doit être un profil fermé sinon la forme résultante ne sera pas solide.
- La section n'a pas besoin d'être située sur la trajectoire, mais il est préférable qu'elle lui soit normale (perpendiculaire).
- La trajectoire peut indifféremment être un profil ouvert ou fermé (cercle, ou une suite de segments de lignes et d'arcs) mais tous les éléments doivent être tangents, sinon le résultat pourrait être inattendu. Par exemple, une trajectoire avec des coins carrés comme un rectangle ne produira pas un solide.
- S'il y a un nœud dans la forme résultante, modifiez la macro et changez la valeur isFrenet à 0 (zéro), puis essayez à nouveau.
- Réglez la variable makeSolid à 0 (zéro) pour obtenir une forme non solide faite de surfaces avec des extrémités ouvertes.
Le script
Macro_Solid_Sweep.FCMacro
import Part, FreeCAD, math, PartGui, FreeCADGui from FreeCAD import Base # get the selected objects, with first selection for the trajectory and second for the section s = FreeCADGui.Selection.getSelection() try: shape1=s[0].Shape shape2=s[1].Shape except: print "Wrong selection" traj = Part.Wire([shape1]) section = Part.Wire([shape2]) # create Part objec in the current document myObject=App.ActiveDocument.addObject("Part::Feature","Sweep") # variable makeSolid = 1 to create solid, 0 to create surfaces makeSolid = True #1 isFrenet = True #1 # create a 3D shape and assigh it to the current document Sweep = Part.Wire(traj).makePipeShell([section],makeSolid,isFrenet) myObject.Shape = Sweep
Remerciements
Merci à Wmayer sans l'aide de qui je n'aurais pu rédiger ce script.
Deux exemples d'utilisation peuvent être consultés dans cette discussion du forum (en anglais), ainsi que des liens de téléchargement des fichiers FCStd. En utilisant une hélice comme trajectoire, un balayage solide peut être utilisé pour créer un filet de vis.