Macro StraightenObject/fr

Contexte
Cette macro a été écrite principalement pour réaligner les objets importés (par exemple STEP) avec les principaux plans/axes de FreeCAD.

Utilisation
Fonctionnellement, la macro utilisera un ou les deux éléments de référence suivants pour redresser (faire pivoter et déplacer) le ou les objets:
 * Face: la face sélectionnée sera définie coplanaire avec le plan XY, sa masse centrale étant définie à l'origine
 * Arête (ou 2 sommets): l'arête sélectionnée sera alignée avec l'axe Y

Pour utiliser la macro, sélectionnez le ou les éléments de référence, éventuellement d'autres objets, puis exécutez la macro. Si vous souhaitez aligner votre objet avec un autre plan/axe, utilisez la macro puis la fonction Transformer de FreeCAD. Voir le chapitre "Détails" pour la sélection multi-objets.

Installation
La macro est disponible via Addon Manager. Le code est fourni sur cette page pour plus de commodité au cas où le système utilisateur n'aurait pas git-python. Bien qu'elle soit à jour, la dernière version est toujours disponible sur FreeCAD-macro repository

For more detailed explanations, see the How to install macros page.

Details
Below a table presenting the different cases that are handled by the macro :

The macro will perform the following checks :
 * If the reference face is perpendicular to the reference edge, the latter will be ignored (warning notification in the status bar)
 * If the reference face isn't a flat one, weird result may happen (warning notification in the status bar)

When you select several object, the macro will propose 2 options to apply the straightening :
 * Parent : the macro will try to find a common parent to all selected objects :
 * If no one is found, the macro fails with an error notification in the status bar
 * If one or more is found, the transformation is applied on the hierarchically lower one
 * Multiple : the transformation is applied on each selected object separately

To Be Completed with picture example

Forum discussion
For any feedback (bug, feature request, comments, ...), please use this forum thread : https://forum.freecadweb.org/viewtopic.php?f=22&t=35191

Limitations

 * Reference items shall all belong to the first selected object. Reference items among several objects is not supported at this time
 * Straightened object(s) shall be in a coordinate system corresponding to the global one. If you used Part container(s) to locate your objects, you should first use Macro PlacementAbsolufy on your model. If this condition isn't fulfilled, weird things can happen.

Code
ToolBar Icon

Macro_StraightenObject.FCMacro