Skip to content

Instantly share code, notes, and snippets.

@hmasato
Last active December 17, 2015 17:49
Show Gist options
  • Save hmasato/5648305 to your computer and use it in GitHub Desktop.
Save hmasato/5648305 to your computer and use it in GitHub Desktop.
[Maya] _createInstanceMesh_fromSelectedFaces
proc _createInstanceMesh_fromSelectedFaces(int $inv)
{
string $sels[]=`ls -sl`;
if(size($sels)<1) return;
string $nodes[]={};
for($s in $sels){
$nodes[size($nodes)] = substituteAllString($s, (match("\\.[^.:]+\[[0-9:]+\]$", $s)), "");
}
$nodes = stringArrayRemoveDuplicates($nodes);
if(size($nodes)>1) return;
string $node = $nodes[0];
clear $nodes;
string $msh = $node;
string $buf[]={};
tokenize($node, "|:", $buf);
string $msh = $buf[size($buf)-1];
string $trn = `createNode -ss transform -n $msh`;
string $shp = `createNode -ss mesh -n ($msh+"Shape") -p $trn`;
string $cmp = `createNode -ss deleteComponent -n ("deleteComponent_"+$msh)`;
connectAttr -f ($node+".worldMesh") ($cmp+".ig");
connectAttr -f ($cmp+".og") ($shp+".inMesh");
string $mem[] = $sels;
if(!$inv){
string $qset = `sets ($node+".f[*]")`;
sets -rm $qset $sels;
$mem = `sets -q $qset`;
if(objExists($qset)) delete($qset);
}
string $cmd="";
for($m in $mem) $cmd += " "+match("[^.:]+\[[0-9:]+\]$", $m);
$cmd = "setAttr (\""+$cmp+".dc"+"\") -type \"componentList\" "+size($mem)+$cmd;
eval($cmd);
clear $mem;
$cmd="";
select -r $sels;
clear $sels;
}
_createInstanceMesh_fromSelectedFaces(0); //selected
_createInstanceMesh_fromSelectedFaces(1); //invert
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment