2017-07-11 3 views
1

Je veux refléter un objet dans MAYA « object1 » et supprimer sa version originale après la mise en miroirquestion miroir Maya Python

cmds.polyMirrorFace("object1",name="object1Mirror",cutMesh=0,axis=0,axisDirection=1, mergeMode=0, mergeThresholdType=0, mergeThreshold=0.001, mirrorAxis=2, mirrorPosition=0, smoothingAngle=30, flipUVs=1, ch=0); 
cmds.delete("object1") 

Mais le polyMirrorFace me donne un objet fusionné outre le fait que je pensais que je l'ai Désactivation de la fusion avec mergeMode = 0.

Quand je miroir dans maya via l'interface utilisateur, cela fonctionne très bien.

J'espère que quelqu'un peut vous aider.

+0

Lorsque vous mettez en miroir MAYA via l'interface utilisateur , vérifiez l'éditeur de script et consultez la commande utilisée par Maya pour effectuer la mise en miroir. J'ai essayé la même commande que vous avez utilisée et (probablement en raison de ma version maya différente) j'ai eu plusieurs erreurs pour certains de ces drapeaux que vous utilisiez, et certains que je n'ai pas pu trouver dans la documentation, comme 'smoothingAngle', 'flipUVs' .. – davedwards

+0

Lorsque vous mettez en miroir dans maya via l'interface utilisateur, vérifiez l'éditeur de script et voyez quelle commande Maya a utilisé pour effectuer la mise en miroir avec succès. J'ai essayé la même commande que vous avez utilisée et (probablement en raison de ma version maya différente) j'ai eu plusieurs erreurs pour certains de ces drapeaux que vous utilisiez, et certains que je n'ai pas pu trouver dans la documentation, comme 'smoothingAngle', 'flipUVs' https://help.autodesk.com/cloudhelp/2016/CHS/Maya-Tech-Docs/CommandsPython/polyMirrorFace.html – davedwards

Répondre

1

Essayez cette logique:

# mirror about +Y direction by merging the border vertices 
import maya.cmds as mc 

mc.polyCube(name='polyCube5') 

# deliberately deleting face `1` 
mc.delete('polyCube5.f[1]') 

# mirror about +Y direction 
mc.polyMirrorFace('polyCube5', direction=0, mergeMode=2) 

# deleting all faces but a target 
mc.delete('polyCube5.f[0:9]') 

ou cette logique pour supprimer l'objet source et laisser un double:

import maya.cmds as cmds 

cmds.polyCube(name='poly1') 
cmds.move(-1, y=True) 
cmds.duplicate(st=True) 
cmds.move(2, y=True) 
cmds.delete('poly1') 

AJOUT:

import maya.cmds as mc 

mc.polyHelix(c=3, h=2, w=2, r=0.4, sa=8, sco=50, sc=0, d=1, rcp=0, cuv=3, ch=1) 
mc.scale(1,1,-1, 'pHelix1', pivot=(0,0,0), absolute=True) 
+0

Cela fonctionne pour la plupart des cas, je suppose. Cela devient plus drôle quand vous faites cela avec des objets importés. Disons, vous importez un objet à partir d'un .mb comprenant plusieurs groupes, le miroir un par un et que l'exportation comme obj. Mais oui, votre version fonctionne. Merci pour ça! – goetzmoritz

+0

Merci, j'ai encore le problème si je itère à travers plusieurs objets qu'ils sont fusionnés. D'une certaine manière, cela semble être buggé. – goetzmoritz

+0

Postez votre code, je vais essayer de vous aider. – andy