Search code examples
pythonmayamaya-api

Maya Python mirroring issue


I want to mirror an object in maya "object1" and delete it's original version after the mirroring

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")

But the polyMirrorFace gives me one merged object besides the fact that I thought I've deactivated merging with mergeMode=0.

When I mirror in maya via UI, it works fine.

I hope, somebody can help.


Solution

  • Try this logic:

    # 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]' )
    

    or this logic to delete source object and leave a duplicate:

    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' )
    

    ADDITION:

    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)