Aller au contenu
weSkelDOCUMENTATION
Documentation/Référence API/Plug

Plug

Valeurs, structure et connexions d’un attribut Maya.

ClassAPI 2.0SDK

Plug enveloppe un attribut existant. Il offre une lecture typée, des accès aux enfants et aux multis, ainsi que des connexions explicites. Pour créer un attribut, utiliser Plugs.

om.MPlugPlug
from weSkel.src.core.node.extensions.plugs_lib import Plug

À exécuter dans Maya avec weSkel disponible. Les types om.* désignent maya.api.OpenMaya.

Élément Valeur
Classe Plug
Module weSkel.src.core.node.extensions.plugs_lib
Parent direct om.MPlug
Nature Sous-classe Maya API 2.0
Propriétés issues des specs Aucune.

Cette fiche documente les membres définis par cette classe. Les mécanismes Python standard et les membres natifs hérités sont exclus des compteurs.

Membres natifs hérités : om.MPlug — Autodesk.

Plug(arg1: Union[om.MPlug, om.MObject, str], arg2: Optional[Union[om.MObject, str]]=None) → Plug

Paramètre Type Défaut
arg1 Union[om.MPlug, om.MObject, str] obligatoire
arg2 Optional[Union[om.MObject, str]] None

Formes acceptées : Plug(mplug), Plug("node.attr"), Plug(node_mobject, attr_mobject) ou Plug(node_mobject, "attr.path[3]"). Les noms doivent être résolvables ; aucun nœud ni attribut n’est créé. Plug() sans argument n’est pas accepté ; utiliser Plug(om.MPlug()) pour un plug nul. Types incompatibles : TypeError ; la résolution peut lever ValueError ou une erreur Maya.

Membres propres. L = lecture seule ; L/E = lecture et écriture.

Propriété Type retourné Accès Rôle
value Any L/E Valeur courante du plug ; l’écriture appelle set().
long_name str L Nom avec nœud et chemin complet de l’attribut.
short_name str L Nom avec nœud, sans chemin complet du compound.
long_attribute_name str L Chemin complet de l’attribut, sans préfixe de nœud.
short_attribute_name str L Nom de l’attribut sans nœud ni chemin complet du compound.
is_null bool L Le plug natif est nul.
src Optional[Plug] L Source logique entrante, ou None.
dst PlugArray L Destinations logiques sortantes ; collection vide si aucune.
is_default_value bool L La valeur correspond au défaut natif de l’attribut.
default_value Union[bool, int, float] L/E limitée Défaut scalaire de l’attribut, indépendant de sa valeur courante.
is_free_to_change int L État natif entier : comparer à om.MPlug.kFreeToChange.
keyable bool L/E État keyable du canal.
channel_box bool L/E Drapeau d’affichage dans la Channel Box.
locked bool L/E État de verrouillage local du plug.
attribute_object om.MObject L Objet Maya qui définit l’attribut.
attribute_fn om.MFnAttribute L Function set de l’attribut courant.
categories Tuple[str, ...] L Catégories déclarées sur l’attribut Maya.
nice_name Optional[str] L/E Nom d’affichage explicitement remplacé, ou None.
attribute_type int L Identifiant API du type d’attribut.
is_numeric bool L L’attribut possède une fonction numérique.
is_typed bool L L’attribut contient des données typées.
is_matrix bool L L’attribut est de type matrice natif.
is_enum bool L L’attribut est une énumération.
is_unit bool L L’attribut représente une unité angle, distance ou temps.
is_compound bool L Le plug possède une structure compound.
is_array bool L Le plug est la racine d’un attribut multi.
is_dynamic bool L L’attribut a été ajouté dynamiquement au nœud.
parent Optional[Plug] L Parent d’un enfant de compound ; exige un plug enfant.
children List[Plug] L Enfants du compound sous forme de plugs.
children_names List[str] L Noms longs des enfants, sans préfixe de nœud.
elements List[Plug] L Éléments matérialisés du multi, dans l’ordre physique.
logical_indices List[int] L Indices logiques existants du multi.
next_free_logical_index Optional[int] L Appel indisponible sur les Maya testés ; consulter la limite.
connected bool L Le plug participe à au moins une connexion.

plug.valueLecture / écriture

Type Contrat
Any Valeur courante du plug ; l’écriture appelle set().

Le type dépend de l’attribut : scalaire Python, tuple pour un compound, liste pour un multi, None pour message, om.MMatrix pour matrice, om.MAngle/MDistance/MTime pour unités. Les données géométriques restent des om.MObject. Une liste de multi contient les valeurs des éléments existants en ordre physique : elle ne conserve pas leurs indices logiques. Un plug nul se lit None ; une identité supprimée peut lever RuntimeError. La lecture d’une destination renvoie sa valeur évaluée.

L’affectation accepte Any.

plug.long_nameLecture seule

Type Contrat
str Nom avec nœud et chemin complet de l’attribut.

Les variantes short_* raccourcissent le chemin du compound, mais conservent les noms longs des attributs. Ce ne sont pas nécessairement les alias Maya tels que sx.

plug.short_nameLecture seule

Type Contrat
str Nom avec nœud, sans chemin complet du compound.

Les variantes short_* raccourcissent le chemin du compound, mais conservent les noms longs des attributs. Ce ne sont pas nécessairement les alias Maya tels que sx.

plug.long_attribute_nameLecture seule

Type Contrat
str Chemin complet de l’attribut, sans préfixe de nœud.

Les variantes short_* raccourcissent le chemin du compound, mais conservent les noms longs des attributs. Ce ne sont pas nécessairement les alias Maya tels que sx.

plug.short_attribute_nameLecture seule

Type Contrat
str Nom de l’attribut sans nœud ni chemin complet du compound.

Les variantes short_* raccourcissent le chemin du compound, mais conservent les noms longs des attributs. Ce ne sont pas nécessairement les alias Maya tels que sx.

plug.is_nullLecture seule

Type Contrat
bool Le plug natif est nul.

plug.srcLecture seule

Type Contrat
Optional[Plug] Source logique entrante, ou None.

Ces accès utilisent les connexions logiques Maya : un nœud de conversion peut être traversé. Pour examiner les arêtes natives exactes, les méthodes OpenMaya héritées sourceWithConversion() et destinationsWithConversions() restent disponibles. Un plug nul produit False dans les deux tests is_connected_* ; un argument d’un autre type lève TypeError.

plug.dstLecture seule

Type Contrat
PlugArray Destinations logiques sortantes ; collection vide si aucune.

Ces accès utilisent les connexions logiques Maya : un nœud de conversion peut être traversé. Pour examiner les arêtes natives exactes, les méthodes OpenMaya héritées sourceWithConversion() et destinationsWithConversions() restent disponibles. Un plug nul produit False dans les deux tests is_connected_* ; un argument d’un autre type lève TypeError.

plug.is_default_valueLecture seule

Type Contrat
bool La valeur correspond au défaut natif de l’attribut.

plug.default_valueLecture / écriture limitée

Type retourné Contrat
Union[bool, int, float] Défaut natif d’un attribut scalaire, distinct de value et du test is_default_value.
Accès Conditions
Lecture Attribut numérique scalaire (booléen, byte, short, int, float, double), enum ou unité. Les enfants scalaires de compounds sont lisibles hors multi.
Écriture Attribut dynamique scalaire de premier niveau uniquement. La valeur courante, les connexions et les verrous sont conservés.
Unités Angles en radians, distances en centimètres, temps en secondes, en lecture comme en écriture.
Valeur acceptée bool exact pour un booléen ; int exact pour un entier ou enum ; int ou float fini pour un réel ou une unité. Un enum exige un entier déclaré, y compris un index négatif ou clairsemé ; aucun libellé n’est accepté.
Refus TypeError pour un plug nul, un compound, un multi, ses éléments ou descendants, un type non pris en charge, ou l’écriture d’un enfant. ValueError pour l’écriture d’un attribut non dynamique ou une valeur invalide.

Cette propriété ne restaure pas la valeur courante au défaut et ne rejoue pas les données SVD.

plug.is_free_to_changeLecture seule

Type Contrat
int État natif entier : comparer à om.MPlug.kFreeToChange.

Type réel : int, malgré l’annotation bool. 0 signifie libre, 1 non libre, 2 enfants non libres. Utiliser plug.is_free_to_change == om.MPlug.kFreeToChange ; un simple test de vérité inverserait le cas libre.

plug.keyableLecture / écriture

Type Contrat
bool État keyable du canal.

L’affectation accepte bool.

plug.channel_boxLecture / écriture

Type Contrat
bool Drapeau d’affichage dans la Channel Box.

L’affectation accepte bool.

plug.lockedLecture / écriture

Type Contrat
bool État de verrouillage local du plug.

L’affectation accepte bool.

plug.attribute_objectLecture seule

Type Contrat
om.MObject Objet Maya qui définit l’attribut.

plug.attribute_fnLecture seule

Type Contrat
om.MFnAttribute Function set de l’attribut courant.

plug.categoriesLecture seule

Type Contrat
Tuple[str, ...] Catégories déclarées sur l’attribut Maya.

plug.nice_nameLecture / écriture

Type Contrat
Optional[str] Nom d’affichage explicitement remplacé, ou None.

L’affectation accepte str.

plug.attribute_typeLecture seule

Type Contrat
int Identifiant API du type d’attribut.

plug.is_numericLecture seule

Type Contrat
bool L’attribut possède une fonction numérique.

plug.is_typedLecture seule

Type Contrat
bool L’attribut contient des données typées.

plug.is_matrixLecture seule

Type Contrat
bool L’attribut est de type matrice natif.

plug.is_enumLecture seule

Type Contrat
bool L’attribut est une énumération.

plug.is_unitLecture seule

Type Contrat
bool L’attribut représente une unité angle, distance ou temps.

plug.is_compoundLecture seule

Type Contrat
bool Le plug possède une structure compound.

plug.is_arrayLecture seule

Type Contrat
bool Le plug est la racine d’un attribut multi.

plug.is_dynamicLecture seule

Type Contrat
bool L’attribut a été ajouté dynamiquement au nœud.

plug.parentLecture seule

Type Contrat
Optional[Plug] Parent d’un enfant de compound ; exige un plug enfant.

Pour un plug sans parent compound, Maya lève TypeError. Tester plug.isChild avant cet accès ; ne pas compter sur None. Le parent de tableau d’un élément se consulte avec la méthode native plug.array().

plug.childrenLecture seule

Type Contrat
List[Plug] Enfants du compound sous forme de plugs.

plug.children_namesLecture seule

Type Contrat
List[str] Noms longs des enfants, sans préfixe de nœud.

plug.elementsLecture seule

Type Contrat
List[Plug] Éléments matérialisés du multi, dans l’ordre physique.

plug.logical_indicesLecture seule

Type Contrat
List[int] Indices logiques existants du multi.

plug.next_free_logical_indexLecture seule

Type Contrat
Optional[int] Appel indisponible sur les Maya testés ; consulter la limite.

Limite reproduite en Maya 2025.3 et 2026.3 : sur une racine multi, AttributeError car nextFreeLogicalIndex() n’existe pas. Sur un autre plug, renvoie None. Pour choisir un emplacement, lire logical_indices et calculer explicitement un index absent.

plug.connectedLecture seule

Type Contrat
bool Le plug participe à au moins une connexion.

Méthodes propres.

Méthode Type retourné Rôle
as_non_networked Plug Conserve le même chemin de plug sans proxy réseau, avant une modification du DG.
is_connected_to bool Vérifie que ce plug est la source logique exacte de la destination.
is_connected_from bool Vérifie la source logique exacte de ce plug.
has_category bool Vérifie l’appartenance à une catégorie d’attribut.
add_category None Ajoute une catégorie seulement si elle manque.
remove_multi_element bool Supprime un élément existant d’un multi ; renvoie si une suppression a eu lieu.
get Optional[Plug] Recherche un enfant par nom ou index ; le repli par défaut est un plug nul.
read Any Lit et convertit la valeur courante selon le type natif.
set None Écrit une valeur compatible ; refuse un plug piloté en entrée.
set_preserving_lock None Écrit la valeur puis restaure les verrous locaux concernés.
kind str Décrit le type sous forme d’un identifiant lisible.
connect_to None Connecte ce plug vers une ou plusieurs destinations.
connect_from None Connecte une source vers ce plug.
disconnect_to None Déconnecte la relation vers les destinations données.
disconnect_from None Déconnecte la relation provenant de la source donnée.
disconnect_all_inputs None Déconnecte la source logique entrante de ce plug.
disconnect_all_outputs None Déconnecte les destinations logiques sortantes de ce plug.
disconnect_all None Déconnecte les relations entrantes puis sortantes de ce plug.
enum_mapping dict[str, int] Associe chaque libellé enum à son entier, y compris les enums clairsemées.
as_matrix om.MMatrix Lit la valeur avec l’accesseur om.MMatrix.
set_matrix None Écrit une valeur compatible avec om.MMatrix.
as_bool bool Lit la valeur avec l’accesseur bool.
set_bool None Écrit une valeur compatible avec bool.
as_char int Lit la valeur avec l’accesseur int.
set_char None Écrit une valeur compatible avec int.
as_double float Lit la valeur avec l’accesseur float.
set_double None Écrit une valeur compatible avec float.
as_float float Lit la valeur avec l’accesseur float.
set_float None Écrit une valeur compatible avec float.
as_int int Lit la valeur avec l’accesseur int.
set_int None Écrit une valeur compatible avec int.
as_short int Lit la valeur avec l’accesseur int.
set_short None Écrit une valeur compatible avec int.
as_string str Lit la valeur avec l’accesseur str.
set_string None Écrit une valeur compatible avec str.
as_mangle om.MAngle Lit la valeur avec l’accesseur om.MAngle.
set_mangle None Écrit une valeur compatible avec om.MAngle.
as_mdata_handle om.MDataHandle Lit la valeur avec l’accesseur om.MDataHandle.
set_mdata_handle None Écrit une valeur compatible avec om.MDataHandle.
as_mdistance om.MDistance Lit la valeur avec l’accesseur om.MDistance.
set_mdistance None Écrit une valeur compatible avec om.MDistance.
as_mobject om.MObject Lit la valeur avec l’accesseur om.MObject.
set_mobject None Écrit une valeur compatible avec om.MObject.
as_mpxdata om.MPxData Accesseur MPxData indisponible dans les Maya testés.
set_mpxdata None Écriture MPxData indisponible dans les Maya testés.
as_mtime om.MTime Lit la valeur avec l’accesseur om.MTime.
set_mtime None Écrit une valeur compatible avec om.MTime.
upstream PlugArray Suit récursivement les liens de source entre plugs.
downstream PlugArray Suit récursivement les liens de destination entre plugs.
info dict[str, Any] Rassemble noms, types, flags, structure et connexions dans un dictionnaire.
read_components list[tuple[str, list[int]]] Lit une liste compacte de composants mesh, triés et dédoublonnés par type.
set_components None Écrit des indices de sommets, arêtes ou faces dans un componentList.

plug.as_non_networked()Méthode

Retour Contrat
Plug Même identité de node et d’attribut, même chemin d’enfants et mêmes indices logiques, sans proxy réseau Maya.

À appeler avant de conserver un plug à travers des modifications du DG, notamment une déconnexion : un proxy réseau Maya peut être détruit par ces modifications. Une construction par copie seule ne suffit pas. Un plug nul ou déjà non réseau renvoie self ; un plug réseau produit un nouveau wrapper.

L’appel ne change ni valeur ni connexion. Les lectures restent live et suivent les renommages ; il ne s’agit pas d’un snapshot. Il ne répare pas une référence périmée et l’identité d’origine reste requise : un node ou attribut supprimé est refusé par les accès protégés (RuntimeError).

plug.is_connected_to(destination: Union['Plug', om.MPlug])Méthode

Paramètre Type Défaut
destination Union[Plug, om.MPlug] obligatoire
Retour Contrat
bool Vérifie que ce plug est la source logique exacte de la destination.

Ces accès utilisent les connexions logiques Maya : un nœud de conversion peut être traversé. Pour examiner les arêtes natives exactes, les méthodes OpenMaya héritées sourceWithConversion() et destinationsWithConversions() restent disponibles. Un plug nul produit False dans les deux tests is_connected_* ; un argument d’un autre type lève TypeError.

plug.is_connected_from(source: Union['Plug', om.MPlug])Méthode

Paramètre Type Défaut
source Union[Plug, om.MPlug] obligatoire
Retour Contrat
bool Vérifie la source logique exacte de ce plug.

Ces accès utilisent les connexions logiques Maya : un nœud de conversion peut être traversé. Pour examiner les arêtes natives exactes, les méthodes OpenMaya héritées sourceWithConversion() et destinationsWithConversions() restent disponibles. Un plug nul produit False dans les deux tests is_connected_* ; un argument d’un autre type lève TypeError.

plug.has_category(category: str)Méthode

Paramètre Type Défaut
category str obligatoire
Retour Contrat
bool Vérifie l’appartenance à une catégorie d’attribut.

plug.add_category(category: str)Méthode

Paramètre Type Défaut
category str obligatoire
Retour Contrat
None Ajoute une catégorie seulement si elle manque.

plug.remove_multi_element(logical_index: Optional[int]=None, *, break_connections: bool=False)Méthode

Paramètre Type Défaut
logical_index Optional[int] None
break_connections bool False
Retour Contrat
bool Supprime un élément existant d’un multi ; renvoie si une suppression a eu lieu.

Sur la racine, fournir logical_index ; sur un élément, l’omettre. False signifie que l’index n’existait pas. break_connections=False protège les connexions ; True autorise leur rupture. Mauvaise forme d’appel ou index négatif : ValueError. Échec natif : RuntimeError.

plug.get(keyname: Union[int, str], default: Optional['Plug']=None)Méthode

Paramètre Type Défaut
keyname Union[int, str] obligatoire
default Optional[Plug] None
Retour Contrat
Optional[Plug] Recherche un enfant par nom ou index ; le repli par défaut est un plug nul.

À utiliser sur un compound ou une racine multi. Un nom cherche un enfant direct (nom long ou court). Un entier désigne un index logique de multi ou une position d’enfant. En cas d’absence, default est utilisé s’il est non nul ; sinon le résultat est un Plug nul, pas None. Un appel sur un scalaire peut lever TypeError avant le repli.

plug.read()Méthode

Retour Contrat
Any Lit et convertit la valeur courante selon le type natif.

Le type dépend de l’attribut : scalaire Python, tuple pour un compound, liste pour un multi, None pour message, om.MMatrix pour matrice, om.MAngle/MDistance/MTime pour unités. Les données géométriques restent des om.MObject. Une liste de multi contient les valeurs des éléments existants en ordre physique : elle ne conserve pas leurs indices logiques. Un plug nul se lit None ; une identité supprimée peut lever RuntimeError. La lecture d’une destination renvoie sa valeur évaluée.

plug.set(value: Any)Méthode

Paramètre Type Défaut
value Any obligatoire
Retour Contrat
None Écrit une valeur compatible ; refuse un plug piloté en entrée.

Une entrée déjà connectée est refusée (RuntimeError). Un enum accepte son entier ou un libellé, avec repli insensible à la casse ; un libellé inconnu lève ValueError. Pour un multi clairsemé, préférer {index: valeur} : les éléments non mentionnés ne sont pas supprimés. Un compound accepte une séquence ou un dictionnaire d’enfants. Le plug nul ne fait rien. Les types incompatibles peuvent lever TypeError. Préciser les unités avec om.MAngle, om.MDistance et om.MTime.

plug.set_preserving_lock(value: Any)Méthode

Paramètre Type Défaut
value Any obligatoire
Retour Contrat
None Écrit la valeur puis restaure les verrous locaux concernés.

Une entrée déjà connectée est refusée (RuntimeError). Un enum accepte son entier ou un libellé, avec repli insensible à la casse ; un libellé inconnu lève ValueError. Pour un multi clairsemé, préférer {index: valeur} : les éléments non mentionnés ne sont pas supprimés. Un compound accepte une séquence ou un dictionnaire d’enfants. Le plug nul ne fait rien. Les types incompatibles peuvent lever TypeError. Préciser les unités avec om.MAngle, om.MDistance et om.MTime. Contrairement à set(), cette méthode déverrouille temporairement les plugs concernés et restaure leurs flags dans un bloc de protection, même en cas d’échec. Cela ne promet pas l’annulation de toutes les valeurs d’un compound si une écriture ultérieure échoue.

plug.kind()Méthode

Retour Contrat
str Décrit le type sous forme d’un identifiant lisible.

plug.connect_to(dest: Union['Plug', om.MPlug, 'PlugArray', om.MPlugArray], force: bool=False)Méthode

Paramètre Type Défaut
dest Union[Plug, om.MPlug, PlugArray, om.MPlugArray] obligatoire
force bool False
Retour Contrat
None Connecte ce plug vers une ou plusieurs destinations.

force=False préserve une entrée existante : si une autre source occupe la destination, l’appel peut ne rien faire. force=True la remplace, y compris une connexion d’animation. Une connexion identique est ignorée. Les verrous des destinations sont restaurés. Vérifier le résultat avec is_connected_to() ou is_connected_from() si nécessaire.

plug.connect_from(src: Union['Plug', om.MPlug], force: bool=False)Méthode

Paramètre Type Défaut
src Union[Plug, om.MPlug] obligatoire
force bool False
Retour Contrat
None Connecte une source vers ce plug.

force=False préserve une entrée existante : si une autre source occupe la destination, l’appel peut ne rien faire. force=True la remplace, y compris une connexion d’animation. Une connexion identique est ignorée. Les verrous des destinations sont restaurés. Vérifier le résultat avec is_connected_to() ou is_connected_from() si nécessaire.

plug.disconnect_to(dest: Union['Plug', om.MPlug, 'PlugArray', om.MPlugArray])Méthode

Paramètre Type Défaut
dest Union[Plug, om.MPlug, PlugArray, om.MPlugArray] obligatoire
Retour Contrat
None Déconnecte la relation vers les destinations données.

Seules les relations visées sont retirées ; une relation absente ne fait rien. Les verrous de destination sont restaurés. Aucun nœud de conversion n’est supprimé. Ces opérations ne garantissent pas à elles seules une entrée dans la pile Undo de Maya.

plug.disconnect_from(src: Union['Plug', om.MPlug])Méthode

Paramètre Type Défaut
src Union[Plug, om.MPlug] obligatoire
Retour Contrat
None Déconnecte la relation provenant de la source donnée.

Seules les relations visées sont retirées ; une relation absente ne fait rien. Les verrous de destination sont restaurés. Aucun nœud de conversion n’est supprimé. Ces opérations ne garantissent pas à elles seules une entrée dans la pile Undo de Maya.

plug.disconnect_all_inputs()Méthode

Retour Contrat
None Déconnecte la source logique entrante de ce plug.

Seules les relations visées sont retirées ; une relation absente ne fait rien. Les verrous de destination sont restaurés. Aucun nœud de conversion n’est supprimé. Ces opérations ne garantissent pas à elles seules une entrée dans la pile Undo de Maya.

plug.disconnect_all_outputs()Méthode

Retour Contrat
None Déconnecte les destinations logiques sortantes de ce plug.

Seules les relations visées sont retirées ; une relation absente ne fait rien. Les verrous de destination sont restaurés. Aucun nœud de conversion n’est supprimé. Ces opérations ne garantissent pas à elles seules une entrée dans la pile Undo de Maya.

plug.disconnect_all()Méthode

Retour Contrat
None Déconnecte les relations entrantes puis sortantes de ce plug.

Seules les relations visées sont retirées ; une relation absente ne fait rien. Les verrous de destination sont restaurés. Aucun nœud de conversion n’est supprimé. Ces opérations ne garantissent pas à elles seules une entrée dans la pile Undo de Maya.

plug.enum_mapping()Méthode

Retour Contrat
dict[str, int] Associe chaque libellé enum à son entier, y compris les enums clairsemées.

Exige un enum (RuntimeError sinon). Les valeurs négatives et trous sont conservés ; ne pas déduire les valeurs par la position des libellés.

plug.as_matrix()Méthode

Retour Contrat
om.MMatrix Lit la valeur avec l’accesseur om.MMatrix.

plug.set_matrix(value: Union[om.MMatrix, om.MTransformationMatrix, list])Méthode

Paramètre Type Défaut
value Union[om.MMatrix, om.MTransformationMatrix, list] obligatoire
Retour Contrat
None Écrit une valeur compatible avec om.MMatrix.

Convertit la valeur via l’adaptateur matrice, puis écrit les données natives. Ce raccourci n’utilise pas la même garde d’entrée connectée que set(). Pour une écriture générale avec cette garde, préférer set(matrix) ; pour conserver les verrous, set_preserving_lock(matrix).

plug.as_bool()Méthode

Retour Contrat
bool Lit la valeur avec l’accesseur bool.

plug.set_bool(value: bool)Méthode

Paramètre Type Défaut
value bool obligatoire
Retour Contrat
None Écrit une valeur compatible avec bool.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_char()Méthode

Retour Contrat
int Lit la valeur avec l’accesseur int.

plug.set_char(value: int)Méthode

Paramètre Type Défaut
value int obligatoire
Retour Contrat
None Écrit une valeur compatible avec int.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_double()Méthode

Retour Contrat
float Lit la valeur avec l’accesseur float.

plug.set_double(value: float)Méthode

Paramètre Type Défaut
value float obligatoire
Retour Contrat
None Écrit une valeur compatible avec float.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_float()Méthode

Retour Contrat
float Lit la valeur avec l’accesseur float.

plug.set_float(value: float)Méthode

Paramètre Type Défaut
value float obligatoire
Retour Contrat
None Écrit une valeur compatible avec float.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_int()Méthode

Retour Contrat
int Lit la valeur avec l’accesseur int.

plug.set_int(value: int)Méthode

Paramètre Type Défaut
value int obligatoire
Retour Contrat
None Écrit une valeur compatible avec int.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_short()Méthode

Retour Contrat
int Lit la valeur avec l’accesseur int.

plug.set_short(value: int)Méthode

Paramètre Type Défaut
value int obligatoire
Retour Contrat
None Écrit une valeur compatible avec int.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_string()Méthode

Retour Contrat
str Lit la valeur avec l’accesseur str.

plug.set_string(value: str)Méthode

Paramètre Type Défaut
value str obligatoire
Retour Contrat
None Écrit une valeur compatible avec str.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_mangle()Méthode

Retour Contrat
om.MAngle Lit la valeur avec l’accesseur om.MAngle.

plug.set_mangle(value: Union[om.MAngle, float])Méthode

Paramètre Type Défaut
value Union[om.MAngle, float] obligatoire
Retour Contrat
None Écrit une valeur compatible avec om.MAngle.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture. Une valeur numérique d’angle est construite en radians ; un om.MAngle explicite évite l’ambiguïté.

plug.as_mdata_handle()Méthode

Retour Contrat
om.MDataHandle Lit la valeur avec l’accesseur om.MDataHandle.

plug.set_mdata_handle(value: om.MDataHandle)Méthode

Paramètre Type Défaut
value om.MDataHandle obligatoire
Retour Contrat
None Écrit une valeur compatible avec om.MDataHandle.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_mdistance()Méthode

Retour Contrat
om.MDistance Lit la valeur avec l’accesseur om.MDistance.

plug.set_mdistance(value: om.MDistance)Méthode

Paramètre Type Défaut
value om.MDistance obligatoire
Retour Contrat
None Écrit une valeur compatible avec om.MDistance.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_mobject()Méthode

Retour Contrat
om.MObject Lit la valeur avec l’accesseur om.MObject.

plug.set_mobject(value: om.MObject)Méthode

Paramètre Type Défaut
value om.MObject obligatoire
Retour Contrat
None Écrit une valeur compatible avec om.MObject.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.as_mpxdata()Méthode

Retour Contrat
om.MPxData Accesseur MPxData indisponible dans les Maya testés.

Limite reproduite en Maya 2025.3 et 2026.3 : AttributeError. Les deux wrappers accèdent à om.MPlug.asMPxData, absent de cette API. Le type indiqué décrit l’intention de la signature, pas un retour opérationnel.

plug.set_mpxdata(value: om.MPxData)Méthode

Paramètre Type Défaut
value om.MPxData obligatoire
Retour Contrat
None Écriture MPxData indisponible dans les Maya testés.

Limite reproduite en Maya 2025.3 et 2026.3 : AttributeError. Les deux wrappers accèdent à om.MPlug.asMPxData, absent de cette API. Le type indiqué décrit l’intention de la signature, pas un retour opérationnel.

plug.as_mtime()Méthode

Retour Contrat
om.MTime Lit la valeur avec l’accesseur om.MTime.

plug.set_mtime(value: om.MTime)Méthode

Paramètre Type Défaut
value om.MTime obligatoire
Retour Contrat
None Écrit une valeur compatible avec om.MTime.

Écriture typée immédiate, sans déverrouillage automatique. L’entrée connectée est refusée (RuntimeError) ; les valeurs déjà égales sont ignorées. Utiliser set_preserving_lock() si les verrous doivent être préservés autour d’une écriture.

plug.upstream(max_depth: int | None=None, type_filter: Set[int] | None=None)Méthode

Paramètre Type Défaut
max_depth int | None None
type_filter Set[int] | None None
Retour Contrat
PlugArray Suit récursivement les liens de source entre plugs.

Le parcours suit les liens entre plugs, pas les dépendances internes entre entrées et sorties d’un node. Les voisins immédiats sont inclus même avec max_depth=0 ; la limite contrôle la récursion suivante. type_filter filtre les résultats, pas la traversée.

plug.downstream(max_depth: int | None=None, type_filter: Set[int] | None=None)Méthode

Paramètre Type Défaut
max_depth int | None None
type_filter Set[int] | None None
Retour Contrat
PlugArray Suit récursivement les liens de destination entre plugs.

Le parcours suit les liens entre plugs, pas les dépendances internes entre entrées et sorties d’un node. Les voisins immédiats sont inclus même avec max_depth=0 ; la limite contrôle la récursion suivante. type_filter filtre les résultats, pas la traversée.

plug.info()Méthode

Retour Contrat
dict[str, Any] Rassemble noms, types, flags, structure et connexions dans un dictionnaire.

Sur une racine multi, cet appel rencontre actuellement la même erreur que next_free_logical_index. Lire séparément les champs utiles si cette information n’est pas nécessaire.

plug.read_components(*, only_mesh: bool=True)Méthode

Paramètre Type Défaut
only_mesh bool True
Retour Contrat
list[tuple[str, list[int]]] Lit une liste compacte de composants mesh, triés et dédoublonnés par type.

Renvoie [] hors componentList. Les types vtx, edge et face sont rassemblés et triés. Le kind générique single est traité comme vtx ; only_mesh=False n’ajoute pas les composants double/triple indexés. Ce raccourci ne constitue donc pas un inventaire général de composants.

plug.set_components(items: Union[dict[str, Iterable[int]], list[tuple[str, Iterable[int]]], list[dict]])Méthode

Paramètre Type Défaut
items Union[dict[str, Iterable[int]], list[tuple[str, Iterable[int]]], list[dict]] obligatoire
Retour Contrat
None Écrit des indices de sommets, arêtes ou faces dans un componentList.

Accepte un dictionnaire kind → indices, une liste de couples, les dictionnaires de read(), ou un om.MObject de componentList natif. Les kinds non reconnus sont ignorés. Seuls les composants mesh simples sont construits par le raccourci.

Expression Retour Comportement
plug["childName"] Plug Enfant direct de compound, nom long ou court. Une absence renvoie un plug nul.
plug[index] Plug Index logique pour un multi ; position pour un compound. Un index enfant invalide peut lever une erreur Maya.
str(plug) str Nom long du plug.

Les noms et valeurs restent live ; les contrôles d’identité refusent un objet supprimé sur les chemins protégés. Un Plug n’est pas un cache de valeur ni une commande Undo. Préférer connect_to() et connect_from() pour des connexions explicites.

Pour un multi, distinguer position physique dans elements et index logique dans logical_indices. Un accès par index logique peut matérialiser un élément ; il ne constitue pas un simple test d’existence.

from uuid import uuid4
from weSkel.src.core.node.dag.transform.lib import Transform
from weSkel.src.core.node.extensions.plugs_lib import Plug
suffix = uuid4().hex[:8]
driver = Transform("sdk_driver_" + suffix)
follower = Transform("sdk_follower_" + suffix)
try:
driver.create()
follower.create()
source = Plug(driver.mobject, "scaleX")
destination = follower.plugs["scaleX"]
source.value = 2.5
assert source.default_value == 1.0
weight = driver.plugs.add_numeric_plug("weight", default_value=0.25)
weight.value = 0.5
weight.locked = True
weight.default_value = 0.75
assert weight.default_value == 0.75
assert weight.value == 0.5 and weight.locked
destination.locked = True
source.connect_to(destination)
assert source.is_connected_to(destination)
assert destination.value == 2.5
retained_source = destination.src.as_non_networked()
assert not retained_source.isNetworked
source.disconnect_to(destination)
assert retained_source == source and retained_source.value == 2.5
assert destination.src is None and destination.locked
print("Plug: PASS")
finally:
follower.delete(snapshot=False)
driver.delete(snapshot=False)

Résultat attendu : Plug: PASS. Les nœuds temporaires sont supprimés dans finally.

Voir aussi : PlugArray · Plugs.