---
# System prepended metadata

title: '**Wiki : Detect Sym Auto** Tool Modeling'
tags: [Modeling, TD, Notice]

---

[: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: 

![](https://i.imgur.com/d2VHoCl.png)
## 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:

![](https://i.imgur.com/d6A7Eli.png)

- 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:
![](https://i.imgur.com/8CCL9t6.png)
*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:
![](https://i.imgur.com/z6Czzsh.png)

![](https://i.imgur.com/5fkBud7.png)

![](https://i.imgur.com/P2UDwL9.png)

![](https://i.imgur.com/OIhUQXU.png)


***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*
