Macro SketchUnmap/fr

Contexte
Cette macro a été écrite principalement pour contourner le problème de dénomination topologique susceptible de casser un modèle lorsqu'une esquisse a été directement ou indirectement attachée à une face ou à tout autre élément topologique. Pour éviter les ruptures, une macro doit être appliquée lorsque le modèle est toujours correct. Il ne peut pas "réparer" un modèle cassé. Si vous venez de casser votre modèle, annulez les dernières modifications dans une bonne situation, appliquez la macro aux esquisses instables, puis recommencez l'opération précédente.

Utilisation
Sur le plan fonctionnel, la macro supprimera le mappage actuel de l'esquisse sur laquelle elle est appliquée, puis lui appliquera un placement absolu afin de l'immuniser contre les modifications de support de mappage.

Pour ce faire, la macro proposera essentiellement 3 options (si votre esquisse n'est pas dans un corps PartDesign, seule la première option est disponible et sera appliquée automatiquement):
 * Mode "Raw" => le placement de l'esquisse est rendu absolu dans le référentiel de corps, rien de plus
 * "Mode DP@Face" => un plan de référence est créé à l'emplacement de la face de mappage, puis l'esquisse y est attachée en respectant son décalage d'attache
 * Mode "DP@Sketch" => un lieu de référence est créé à l'emplacement de l'esquisse (y compris le décalage de la pièce jointe), puis l'esquisse est attachée à son origine

Pour utiliser la macro, sélectionnez simplement l'esquisse cible (par exemple, dans l'arborescence), puis exécutez la macro. C'est tout !

Installation
Pour le moment, la macro n'est pas disponible dans le gestionnaire des addons → PR envoyé: https://github.com/FreeCAD/FreeCAD-macros/pull/48. Vous devez donc copier le code ci-dessous et le coller dans l’éditeur de macros FreeCAD.

Pour des explications plus détaillées, voir la page Comment installer des macros.

Details
For better understanding, below is an example : Let's suppose a simple cube whose top (yellow) face has been drafted. A cylinder is created with a padded circle whose sketch has been mapped (Flat face) to the drafted face and offset to match needs (Attachment offset) :



Now for some reason, you need to revert the pull direction of the draft (of course without the cylinder to move). Here is what basically happen :



The treeview shows an error, the 3D view isn't updated, and the circle sketch is floating in the middle of nowhere...

Now comes the job of the macro (that you need to run before changing the reference face, when the sketch is still at its right place). Select the sketch and run it. If your sketch is in a body, a message box will ask to choose among the 3 different options (if your sketch is out of a body, it will automatically apply the 1st one) :


 * "Raw" mode
 * "DP@Face mode"
 * "DP@Sketch" mode

Which in term of picture gives the following :



Script
ToolBar Icon

Macro_SketchUnmap.FCMacro

Limitations

 * Only process one sketch at a time
 * Only work on sketch objects

Forum discussion
For any feedback (bug, feature request, comments, ...), please use this forum thread : (FR) macro to remap sketch to different reference