Dorian Fevrier's blog - API Python de Maya, les choses à savoir - CommentairesJe m’appelle FEVRIER Dorian, je suis infographiste 3D passionné par mon métier, l’informatique en général, l’internet, la programmation et l’évolution de tout ce petit monde. Vous trouverez sur ce blog des tutoriaux, mes coups de cœurs, avis, etc.2024-01-02T23:48:05+01:00FEVRIER Dorianurn:md5:695d9c73474c33ce3dab043823509c4bDotclearAPI Python de Maya, les choses à savoir - zapan669urn:md5:626535c3e0ecef77718de33f2d1692072011-07-12T17:56:49+02:002011-07-12T16:56:49+02:00zapan669<p>certes</p>API Python de Maya, les choses à savoir - Dorianurn:md5:457c4a8f1b8dfa1e02be8436f81c9da42011-07-12T17:15:42+02:002011-07-12T16:16:34+02:00Dorian<p>Principalement pour <a href="https://www.fevrierdorian.com/blog/post/2011/03/30/Recuperer-rapidement-la-position-des-vertices-d-un-mesh-Maya" rel="ugc">parcourir rapidement de la géométrie</a> (vertex, face). Et pour profiter de <a href="https://www.fevrierdorian.com/blog/post/2011/02/20/Projeter-un-mesh-sur-un-autre-avec-l-API-Python-de-Maya" rel="ugc">quelques fonctions utiles</a>.</p>
<p>Les possibilités sont assez larges il faut dire. ^^</p>API Python de Maya, les choses à savoir - zapan669urn:md5:406fa91847619270ed69262cb2fbadb92011-07-12T16:40:28+02:002011-07-12T15:40:28+02:00zapan669<p>beurk, c'est vraiment pas intuitif ce MScriptUtil >:D</p>
<p>tu t'en es servi pour quoi toi de cet api python ?</p>API Python de Maya, les choses à savoir - Dorianurn:md5:4ed31df9b8a9f1c4a0e470607e091e3c2011-07-12T14:46:41+02:002011-07-12T13:46:41+02:00Dorian<p>Normalement tu peut utiliser les types direct, sans passer par des pointeurs. :(</p>API Python de Maya, les choses à savoir - zapan669urn:md5:d3c9b3d44f553a9fb2a86843cba468ad2011-07-12T09:57:09+02:002011-07-12T08:57:09+02:00zapan669<p>Yep, j'avais utilisé ca pour balancer le resultat d'une fonction dans un double justement. Ca simule l'utilisation des pointers. Mais pour la conversion c'est une autre histoire...</p>
<p>Je te tiens au jus si je trouve, deja je suis en train de me battre avec les multi...</p>
<p>yo</p>API Python de Maya, les choses à savoir - Dorianurn:md5:97f3981b6d26e1a499450048a227609c2011-07-11T20:11:06+02:002011-07-11T19:11:47+02:00Dorian<p>En effet...</p>
<p>Tu a regardé du coté de <a hreflang="en" href="http://download.autodesk.com/global/docs/mayasdk2012/en_us/index.html?url=cpp_ref/class_m_script_util.html,topicNumber=cpp_ref_class_m_script_util_html" rel="ugc">MScriptUtil</a>? C'est un classe de script créé justement pour bricoler dans ce genre de situations. :)</p>
<p>Dis moi si ça peut faire ce que tu souhaite faire. :)</p>API Python de Maya, les choses à savoir - zapan669urn:md5:99dabf2bf85dce9e71854357bb1397662011-07-11T10:32:40+02:002011-07-11T09:32:40+02:00zapan669<p>Re, ba par exemple :</p>
<p>truc = 3.5<br />
vecteur = OpenMaya.MVector( 1 , 2 , 3 )</p>
<p>multVecteur = vecteur * truc</p>
<p>ceci ferait erreur : il faut que "truc" soit un double et pas un float<br />
j'ai reglé le probleme en faisant :</p>
<p>vecteur = OpenMaya.MFloatVector( 1,2,3)<br />
multVecteur = vecteur * truc</p>
<p>en effet ca fonctionne car le MFloatVector est lui , multipliable<br />
par un float et pas un double.</p>
<p>bref ca a fait l'affaire cette fois mais ya quand meme des cas<br />
ou on doit VRAIMENT avoir besoin d'utiliser un double en argument sans échappatoire.<br />
C'est a dire dans un tres grand nombre fonctions et méthode de l'api.</p>
<p>Du coup je me demande s'il ne vaut pas mieux utiliser les MFloatType au maximum<br />
pour éviter ce genre de galere. Qu'en pense tu ?<br />
Sinon il doit bien avoir moyen de faire la conversion....</p>API Python de Maya, les choses à savoir - Dorianurn:md5:947a21ad28d543b16760111ce71dcce32011-07-08T19:53:12+02:002011-07-08T18:53:12+02:00Dorian<p>Mais encore? ^^</p>API Python de Maya, les choses à savoir - zapan669urn:md5:73d81d15b04e4c1f0145da51753b278d2011-07-08T19:15:46+02:002011-07-08T18:15:46+02:00zapan669<p>oh lui</p>API Python de Maya, les choses à savoir - Dorianurn:md5:5570902fb4137383a9343a93135400092011-07-08T18:41:22+02:002011-07-08T17:41:22+02:00Dorian<p>Mmmh tu aurais un exemple? :(</p>API Python de Maya, les choses à savoir - zapan669urn:md5:d92bce593c6d67a9ef5938f420c129782011-07-08T16:44:49+02:002011-07-08T15:44:49+02:00zapan669<p>Arf désolé je m'explique mal :)<br />
Je ne parle pas des type complexes mais de base.</p>
<p>tu sais souvent les commandes de l'api attendant des doubles en argument.<br />
Seulement en python on manipule des float,<br />
du coup quand je met un float en argument ba forcément il me sort<br />
un truc du genre "erreur il faut un double et pas un float"</p>
<p>C'est ca qui me pose probleme, comment convertir un float en double ?</p>API Python de Maya, les choses à savoir - Dorianurn:md5:dfade21105cb3ef0e195061f9b412b242011-07-08T12:43:47+02:002011-07-08T11:45:09+02:00Dorian<p>Je ne comprend pas trop la question. ^^'</p>
<p>Il n'y a qu'un seul type de float en Python: float() qui est équivalent à un double en C. Il n'y a pas d'équivalent en float du C à ma connaissance.</p>
<p>Maintenant, si tu parle de convertir un <a hreflang="en" href="http://download.autodesk.com/us/maya/2011help/API/class_m_point.html" rel="ugc">MPoint</a> en <a hreflang="en" href="http://download.autodesk.com/us/maya/2011help/API/class_m_float_point.html" rel="ugc">MFloatPoint</a>, la seule méthode que je connaisse est celle dont on a parlé juste au dessus. :)</p>API Python de Maya, les choses à savoir - zapan669urn:md5:d6f37214729b2605e833febdc6ce067f2011-07-08T11:26:56+02:002011-07-08T10:26:56+02:00zapan669<p>Et pendant que j'y suis sais tu comment on convertit un float en double et l'inverse ?</p>API Python de Maya, les choses à savoir - Dorianurn:md5:5dd4a556b6e645e2b83087ce0d4111dc2011-07-06T19:43:46+02:002011-07-06T18:43:46+02:00Dorian<p>Pas de soucis! ;)</p>API Python de Maya, les choses à savoir - zapan669urn:md5:f196ace2ae879bd130a91b37bdf964c92011-07-06T14:05:47+02:002011-07-06T13:05:47+02:00zapan669<p>et merci pour ta réponse aussi rapide !</p>API Python de Maya, les choses à savoir - zapan669urn:md5:0b48469c6be11ddaee339e3c367ead3d2011-07-06T14:05:02+02:002011-07-06T13:05:02+02:00zapan669<p>sisi c'est bon en fait :)</p>
<p>autant pour moi l'erreur venait d'ailleur :<br />
il s'agissait d'une boulette que je fait sans arret en python :</p>
<p>MTruc.insert( tmpMVector , i ) au lieu de MTruc.set( tmpMVector , i )</p>
<p>ca ca plante direct :)</p>API Python de Maya, les choses à savoir - Dorianurn:md5:3179a7608cf50d618a5c41b33b09a0ee2011-07-06T11:41:25+02:002011-07-06T10:44:43+02:00Dorian<code>myMPoint = OpenMaya.MPoint( myMFloatPoint[0], myMFloatPoint[1], myMFloatPoint[2] )</code>
<p>Ça ne marche pas ça?</p>
<p>Au pire, essaye de "forcer" le type Python:</p>
<code>myMPoint = OpenMaya.MPoint( float(myMFloatPoint[0), float(myMFloatPoint[1]), float(myMFloatPoint[2]) )</code>
<p>Tiens moi au courant! ;)</p>API Python de Maya, les choses à savoir - zapan669urn:md5:7f8426179e5bb2eaa4e5962bdf78f62f2011-07-06T10:30:14+02:002011-07-06T10:43:28+02:00zapan669<p>Hello man,<br />
je débute en api Python et j'ai bien compris ce que tu as écris :</p>
<code>myMPoint = OpenMaya.MPoint()<br />
myMFloatPoint = OpenMaya.MFloatPoint( myMPoint[0], myMPoint[1], myMPoint[2] )</code>
<p>pas de souci.</p>
<p>En revanche j'ai l'impression que la conversion dans l'autre sens ne fonctionne pas ( MFloatType --> MType )<br />
C'est peut etre idiot mais je ne comprend pas pourquoi</p>
<p>T'aurais une astuce ?</p>