Maya render bat batch file

*.bat file structure

REM // .bat comment syntax
C:\Progra~1\Autodesk\Maya2010\bin\render -s 1 -e 30 -im output_image myscene.ma
C:\Progra~1\Autodesk\Maya2010\bin\render -s 1 -e 30 -im output_image2 anotherscene.ma

The path to render.exe must be the 8.3 character DOS version.
To execute the file, save as a *.bat and double click it in Explorer.


more →

date for new filename

#!/bin/bash
# Shell script to create file named after the current date
# YYYY-MM-DD format

DATE=$(date +%Y"-"%m"-"%d)
echo -e "new file" > $DATE

MEL Sphere Intersect

Function to return location of intersect with poly mesh and spherical object moving in the positive direction on the Y axis.

mel source

global proc intersectSphereY()
{
    print(". . . . . go go go\n");

int $iter = 50;
float $start[3] = {0, -0.5, 0};
float $limit[3] = {0, 5.0, 0};
    $mesh = "test_mesh";    
$tmpCN = "cpom";


$obj = "rod1";
    float $radius = 0.5;
    float $curPos[3] = {0, 0, 0};

for ($i = 0; $i <= $iter; $i++)
{    
    $mesh = "test_mesh";
    $shape = `listRelatives -shapes $mesh`;

    createNode -n $tmpCN closestPointOnMesh;
        connectAttr -f ($shape[0] + ".outMesh") ($tmpCN + ".inMesh");
        setAttr ($tmpCN + ".inPosition") $curPos[0] $curPos[1] $curPos[2];

    $cpom = `getAttr ($tmpCN + ".position")`;

        if ( pointDist($curPos, $cpom) <= $radius ) {
        return ". . bonk\n";
        }

        $curPos[1] = ($limit.y) / $iter * $i;
        setAttr ($obj + ".translateY") $curPos[1];

        delete $tmpCN;
    }
return ". nope\n";

}

global proc float pointDist(float $p1[], float $p2[]) { return sqrt( (($p1[0] - $p2[0]) * ($p1[0] - $p2[0])) + (($p1[1] - $p2[1]) * ($p1[1] - $p2[1])) + (($p1[2] - $p2[2]) * ($p1[2] - $p2[2]))); }

intersectSphereY;

Image Slice

Shell script that slices a single image into any number of vertical and horizontal sections.

#!/bin/bash
#@author  gabriel dunne <quilime.com>

IMAGE=$1
IMAGE_W=$2
IMAGE_H=$3
ROWS=$4
COLS=$5

if [ $# -eq 0 ]
then
    echo "usage: image width height rows cols"
    echo "example: ./slice.sh Sunset.jpg 800 600 16 16"
    exit
else

    for (( x = 1; x <= COLS; x++ ))
    do
        for (( y = 1 ; y <= ROWS; y++ ))
        do
            let CROP_X = `expr $IMAGE_W-IMAGE_W/$x`
            let CROP_Y = `expr $IMAGE_H-IMAGE_H/$y`
            let CROP_W = `expr $IMAGE_W/$ROWS`
            let CROP_H = `expr $IMAGE_H/$COLS`
            echo -n "crop ${CROP_W}x${CROP_H}+${CROP_X}+${CROP_Y} result: [${x},${y}]_$IMAGE"
            echo ""
            convert $IMAGE -crop ${CROP_W}x${CROP_H}+${CROP_X}+${CROP_Y} [${x},${y}]_$IMAGE
        done
    done
    
fi

To Use

navigate to slice.sh in your terminal and do

$  chmod 775 slice.sh
$  ./slice.sh Sunset.jpg 800 600 16 16
replace Sunset.jpg with your image name.
params: Image Height, Image Width, Vertical Divisions, Horizontal Divisions


MEL Notepad

process selection list

string $select[] = ls -sl;
for ( $node in $select ) // process each
{
   /* ... */
}


if node exists

string $node = "object";
if ( objExists $node )
{
   // The node exists
}

regexp

Strip component

string $node = "pCube1.f[2]";
string $no_component = match "^[^\.]*" $node;
// Result: "pCube1" //


Extract component or attribute, with '.'

string $node = "pCube1.f[2]";
string $component = match "\\..*" $node;
// Result: ".f[2]" //

string $nodeAttr = "blinn1.color"; string $attrName = match "\\..*" $nodeAttr; // Result: ".color" //


Extract attribute name, without '.'

string $node = "pCube1.f[2]";
string $component = `substitute "^[^.]*\\." $node ""`;
// Result: "f[2]" //

string $nodeAttr = "blinn1.color";
string $attrName = `substitute "^[^.]*\\." $nodeAttr ""`;
// Result: "color" //


Extract parent UI control from full path

string $uiControl = "OptionBoxWindow|formLayout52|formLayout55|button6";
string $uiParent = substitute "|[^|]*$" $uiControl "";
// Result: OptionBoxWindow|formLayout52|formLayout55 //


Strip trailing Line Break (\n), if any.

This is useful when processing text input read from a file using fgetline.

string $input = "line\n";
$string $line = match "^[^(\r\n)]*" $input;
// Result: "line" //


Extract directory from path.

Keep the trailing slash for ease of use.

string $path = "C:/AW/Maya5.0/bin/maya.exe";
string $dir = match "^.*/" $path;
// Result: "C:/AW/Maya5.0/bin/"


Extract file from path

string $path = "C:/AW/Maya5.0/bin/maya.exe";
string $filepart = match "[^/\\]*$" $path;
// Result: "maya.exe"


Strip numeric suffix

string $node = "pCube1|pCubeShape223"; string $noSuffix = match ".*[^0-9]" $node; // Result: "pCube1|pCubeShape"


Extract numeric suffix

string $node = "pCube1|pCubeShape223";
string $suffix = match "[0-9]+$" $node;
// Result: "223" //


Extract short name of DAG or control path

string $dagPath = "pCube1|pCubeShape223";
string $shortName = match "[^|]*$" $dagPath;
// Result: pCubeShape223 //

other reference