Macro Solid Sweep/fr: Difference between revisions
m ("Name=") |
m (remplacement des balise <pre> par <syntaxhighlight>) |
||
Line 33: | Line 33: | ||
=== Le script === |
=== Le script === |
||
<syntaxhighlight> |
|||
import Part, FreeCAD, math, PartGui, FreeCADGui |
|||
from FreeCAD import Base |
from FreeCAD import Base |
||
Line 57: | Line 58: | ||
# Creer la forme 3D et l'assigner a l'objet Balayage |
# Creer la forme 3D et l'assigner a l'objet Balayage |
||
Balayage = Part.Wire(traj).makePipeShell([section],makeSolid,isFrenet) |
Balayage = Part.Wire(traj).makePipeShell([section],makeSolid,isFrenet) |
||
myObject.Shape = Balayage |
myObject.Shape = Balayage |
||
</syntaxhighlight> |
|||
=== Remerciements === |
=== Remerciements === |
Revision as of 08:40, 19 September 2013
Macro Balayage solide
File:Text-x-python Balayage solide |
Description |
---|
Créé un solide en balayant un profil le long d'une trajectoire. Auteur: Normandc |
Auteur |
Normandc |
Téléchargement |
None |
Liens |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
1.0 |
Dernière modification |
None |
Version(s) FreeCAD |
None |
Raccourci clavier |
None |
Voir aussi |
None |
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éer deux éléments 2D, un pour la section et l'autre pour la trajectoire, selon les types listés ci-dessous.
- Sélectionner soit dans l'arborescence de projet, soit dans la vue 3D, en premier lieu la trajectoire, et ensuite la section. Attention, l'ordre de sélection est important!
- Ouvrir le gestionnaire Macro, sélectionner la macro et cliquer sur « Lancer ».
- Un objet Balayage sera créé dans l'arborescence de projet.
Éléments 2D supportés
- Filaires
- Esquisses
- BSplines
- Primitives 2D depuis le menu Paramétrique → 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
import Part, FreeCAD, math, PartGui, FreeCADGui
from FreeCAD import Base
# prendre les objets selectionnes, avec la 1ere selection pour trajectoire et la 2eme pour la section a balayer
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])
# creer un objet Balayage dans le document actif
myObject=App.ActiveDocument.addObject("Part::Feature","Balayage")
# declarer la variable makeSolid pour creer un solide, changer valeur a 0 pour creer des surfaces
makeSolid = 1
# l'utilite de la valeur isFrenet est inconnue, changer a 0 si le resultat est bizarre
isFrenet = 0
# Creer la forme 3D et l'assigner a l'objet Balayage
Balayage = Part.Wire(traj).makePipeShell([section],makeSolid,isFrenet)
myObject.Shape = Balayage
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.