Weave

 

//this script will use a poly model (mesh surface) to
//generate the weave patterns.
//You have to use polygon model.
//select it first and run the script-------
//ming tang. 2007

//cut face to create weave pattern

proc extrudepoly()
{
int $ncut = `textField -q -text ncut`;
float $escale = `textField -q -text escale`;
float $edist = `textField -q -text edist`;

string $myobject[] = `ls -sl`;
print ("the quary name is" + $myobject[0]);

//create weave pattern

//string $myobject[] = `ls -sl`;
//print ("the quary name is" + $myobject[0]);
float $bound[]= `exactWorldBoundingBox $myobject`;

for($n = 0; $n < $ncut; $n++)
{

$xx=rand($bound[0], $bound[3]);
$yy=rand($bound[1], $bound[4]);
$zz=rand($bound[2], $bound[5]);

$rxx=rand(-180, 180);
$ryy=rand(-180, 180);
$rzz=rand(-180, 180);
polyCut -ch on -pc $xx $yy $zz -ro $rxx $ryy $rzz $myobject.f[0:5] ;

}

 

//create polyextrude

$item = $myobject[0] + ".f[0:99999]";
select -cl;

//poker face to add details. It is a better way than triangulate

//polyPoke -ws 1 -tx 0 -ty 0 -tz 0 -ltx 0 -lty 0 -ltz 0 -ch 1 $myobject[0];

select -r $item;

//extrude by scale

//select -r $myobject[0].f[0:9999] ;
polyExtrudeFacet -ch 1 -kft 0 -lsx $escale -lsy $escale -lsz $escale;
doDelete;

//extrude again

select -r $item ;
polyExtrudeFacet -ch 1 -kft 1 -ltz $edist;
}

//------------create UI window

global proc extrudewin ()
{
if (`window -exists extrudeWindow`) { deleteUI extrudeWindow; }
window
-widthHeight 300 300
-title "weave"
-sizeable true
extrudeWindow;

//add three values

columnLayout;
rowColumnLayout -numberOfColumns 2
-columnWidth 1 120
-columnSpacing 1 20
-columnWidth 2 120
-columnSpacing 2 20;

text -l "number of cut";
textField -tx 20 ncut ;
text -l "extrude scale";
textField -tx 0.9 escale ;
text -l "extrude depth";
textField -tx -0.1 edist ;
setParent ..;

//----break
text -l "";
separator -w 800;

text -l "Notice: only works for poly";
text -l "";

//three buttons
rowColumnLayout -numberOfColumns 1;

//---create button 1
button -label "Create Weave"
-command "extrudepoly" extrudepoly;

setParent ..;

//break
columnLayout;
text -l "";
separator -w 800;
text -l "Ming Tang. 2007";

showWindow;
}

extrudewin;

 

Inspiration image

 

Inspiration image

Bird Nest in Beijing. Olympic 2008.

 

screen shot of the MEL tool I wrote.