Macro TNP Solution/fr

Description


Il s'agit d'une solution pour le problème de dénomination décrit à la page : Problème de dénomination topologique.

Si vous construisez un objet sur un autre objet, ainsi qu'une esquisse, il est simple à résoudre, car vous savez deux choses :


 * 1) Les points de l'esquisse font toujours partie de la face inférieure.
 * 2) L'esquisse et la face inférieure sont dans le même plan.

Pour résoudre le problème du problème de dénomination topologique, vous pouvez :

Sauvegardez la clé avant toute opération :

Il suffit de sauvegarder la clé avant toute opération. Dans l'exemple décrit à la page Problème de dénomination topologique, l'objet se trouve dans le plan XY. J'utilise donc la valeur de l'axe Z du centre de Sketch BoundBox :

Ensuite, recherchez la clé stockée sur toutes les faces :

Après le redimensionnement, je recherche la clé stockée sur toutes les faces. Parce que si l'esquisse et la face étaient sur le même plan XY, la valeur de l'axe Z était la même pour les deux. Dans l'atelier PartDesign, vous ne pouvez pas déplacer le troisième bloc au-dessus du deuxième bloc, pour avoir un espace entre les deux, c'est un objet unique, le bloc suivant avec l'esquisse touchera toujours la face. Sur la nouvelle face, la valeur de l'axe Z sera toujours la même que la clé stockée. Donc, il faut retourner l'index de la face. Il n'y a rien de plus à faire.

Dernières étapes

À la fin, j'assigne la nouvelle face à l'esquisse et je recalcule. Pour être honnête, la partie la plus difficile a été d'assigner la face à Sketch.Support, pour moi la syntaxe est époustouflante ;-)

Code pour l'exemple
Le fichier de test a été téléchargé sur le forum FreeCAD : TNP.FCStd.

LA solution
Le code ci-dessus montre comment résoudre l'exemple du problème de dénomination topologique décrit à la page : Problème de dénomination topologique mais exactement les mêmes règles que vous pouvez utiliser pour résoudre d'autres problèmes. L'approche est simple :


 * 1) Mémorisation de la clé avant toute opération
 * 2) Recherche de la clé après l'opération

L'implémentation particulière peut être différente. Dans cet exemple, le plan est XY, mais vous pouvez faire exactement la même chose pour d'autres axes. Vous pouvez également choisir d'autres clés. Dans le cadre du projet Woodworking, j'effectue de nombreuses opérations sur des objets inexistants, ce qui m'a obligé à résoudre le problème du nom topologique à plusieurs reprises.

Ici, je change les objets Cube en objets Epaisseur de PartDesign :



Dans l'exemple ci-dessous, je change les Cubes en Chanfreins de PartDesign, j'ai donc dû stocker la clé pour les bords :



This example below is little more complicated because as you see at the GUI screen, the references to the object and face changes automatically. But also to make a hole I call function defined in my library not directly in the tool. So, I had to use small trick with selection and deselection, to get new reference:

There are many such problems when programming in FreeCAD, but they can all be solved in a similar way. I hope, it helps.