//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# // bm_DuplicateMirror.mel~ // // AUTHOR: Brian Mumm // // UPDATED: Sept 2009 // // DESCRIPTION: 1. Makes a duplicate Mirror and connects verts/edges // // //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# global proc bm_DuplicateMirror_UI() { if(`window -exists bm_DuplicateMirror_UI`) deleteUI bm_DuplicateMirror_UI; if(`windowPref -exists "bm_DuplicateMirror_UI"`) windowPref -remove "bm_DuplicateMirror_UI"; window -t "bm_DuplicateMirror" -rtf 1 bm_DuplicateMirror_UI; columnLayout -adj 1 -co both 5; button -label "+X" -height 30 -width 30 -command ("bm_DuplicateMirror(" + 1 + ")"); button -label "-X" -height 30 -width 30 -command ("bm_DuplicateMirror(" + -1 + ")"); showWindow; } bm_DuplicateMirror_UI; global proc bm_DuplicateMirror( int $dirX ) { string $objectList[]; $objectList = `ls -o -sl`; for($obj in $objectList) { $copy = `duplicate $obj`; setAttr($copy[0] + ".scaleX") -1; float $offSetX = getAttr ($obj + ".translateX"); //Set a offset from our bounding box so it snaps right float $bbox[] = `exactWorldBoundingBox $obj`; $offSetX = $dirX * (abs($bbox[0]) * 2); move $offSetX `getAttr ($obj + ".translateY")` `getAttr ($obj + ".translateZ")`; align -atl -x Stack $obj $copy; $finalMesh = `polyUnite -ch 0 $copy $obj`; polyMergeVertex -d 0.05 $finalMesh; } }