[:arrow_left:](/WQum2tYYSXGaBjnU2wMxzQ) To Pirata Dashboard
[:arrow_left:](/FQqugZ49RLOLDOdm0Z1GlQ?both) To TD Dashboard
[:arrow_left:](/HBtOe6opROO2deKL9wqT7w) To Modeling Dashboard
# **Wiki : Detect Sym Auto** Tool Modeling
###### tags: `TD` `Modeling` `Notice`
*Shelf -> MMUTILS -> detect_sym_auto*
Détail des fonctions:

## 1- Reinit scene
Réinitialise la scène:
- Enlève les couleurs des meshes
- Enleve le smooth
- Supprime les sets de sélections
:::info
## Il faut systématiquement réinitialiser la scène si vous faites plusieurs fois les opérations, et avant tout publish.
:::
## 2- All functions
:::info
Cela lance toutes les étapes du script, à savoir:
**réinit scene(1), find pairs (3), find self sym (4), rename meshes (5).**
:::
Résultat:

- Les meshes ont été colorisés par catégorie:
- Rouge pour symétrique sur lui même détecté par le script (1)
- D'une couleur random pour les objets formant une paire détectée par le script (2)
- Couleur de base de maya pour les objets étant détectés comme unique (4) par le script (non symétrique, et non inclus dans une paire).
- Des sets de sélection ont été crées pour chaque catégorie (voir *lancement des fonctions une à une*).
- Des meshes / Groupes ont été renommés par rapport aux résultats énoncés précemment.
::: info
### Suite au run de all functions, il faut analyser les catégories, c'est-à-dire les vérifier grâce aux sets de sélection, et que les nomenclatures sont correctes.
:::
----
# Lancement des fonctions une à une
## 3- Find pairs
Permet de relancer la vérification des paires.
Compare tous les meshes de la scène afin de vérifier s'ils ont:
- Le même nombre de composants (faces, vertex, edges)
- La même aire c'est-à-dire la même mesure de surface
- Si le centre des deux objets sont identiques (valeur absolue)
- Les mêmes angles de vertex (afin de vérifier le maillage)
Si tous ces critères sont remplis, les meshes sont teintés de la même couleur, et rajoutés au set de sélection **CTRL_MATCH_SYMETRY**.
## 4- Find self sym
Permet de lancer la vérification des meshes qui seraient symétriques sur X. (sur eux-mêmes) .
:::warning
Il faut que le mesh soit centré en X à 0 en world.
:::
- Compare la position des vertex d'un côté positif à un côté négatif (par rapport au world).
- Compare les angles des vertex.
Si tous ces critères sont remplis, le mesh est **teinté en rouge** et stocké dans un set de selection **CTRL_C**.
:::success
#### Si à l'issue du test, le script retourne un résultat positif sur un mesh, mais que ce dernier n'est pas nomenclaturé en C_, le mesh est stocké dans un set de sélection **CTRL_POTENTIAL_SELF_SYM**.
:::
Exemple:

*U_Controller01003Msh*
Ce mesh n'est pas centré alors qu'il devrait l'être, égalemment nomenclaturé en U_ alors qu'il devrait être en C_.
Après correction de la modé, après reinit scene et find self sym, le script le trouve dans la bonne catégorie et le renomera correctement.
## 5- Rename meshes
Lance les opérations de rename. Sont nomenclaturé comme suit:
- Les meshes uniques en terme de symétrie sont nomenclaturés **U_**.
- Les meshes allant par paire en X sont nomenclaturé **L_ et R_**.
- Les meshes symétriques sur eux-même en X sont nomenclaturés **C_**.
- Les groupes sont nomenclaturés de la même façon mais prennent en compte les nomenclatures des enfants à l'intérieur:
- Si un U_ est dans un groupe, le groupe devient automatiquement **U_**.
- S'il n'y a que des L_: le groupe est **L_**.
- S'il n'y a que des R_: le groupe est **R_**.
- S'il y a des R_ + L_ : le group est **C_**.
----
## *FAQ*
***Que faire si mon mesh n'est pas dans le bon set de sélection?***
Est-il centré? Est-il symétrique?
:::danger
Vous ne pouvez pas vous fier au visuel, les symétries ne sont pas fiables.
Il faut:
- Duppliquer le mesh et mettre un scale -1 en X pour vérifier si les vertex sont bien symétriques.
- Recentrer l'objet (voir tool recenter object). Ce n'est pas parce que le mesh est freeze transform qu'il est centré, des valeurs en 0.01 (oui oui...) ou 0.5 traînent.
:::
Quelques exemples du contenu des scènes:




***Que faire si ma nomenclature n'est pas correcte?***
L'objet est-il dans le bon set de sélection?
- Si oui :
- Si le script a été lancé fonction par fonction, la fonction rename ou run all functions le nomenclaturera avec le bon nom.
- Si non:
- L'objet doit être corrigé pour appartenir à la bonne catégorie. Une fois l'objet corrigé, il faut reinit et relancer run all functions.
***Que faire si le script a renommé mon mesh d'une mauvaise façon?***
Pourquoi l'a-t-il fait? (voir question 1)
Si l'objet n'est pas dans la bonne catéogorie, il doit être corrigé et les fonctions relancées.
---
*Pour tout report de bug: s.chauvet@millimages.com*