My first AE Script.Plz review and help with calc and notepad
Posted: June 3rd, 2015, 3:20 am
Plz review and also help me with calculator and notepad buttons.After effects freezes until i close opened item(calc or notepad).
//Creates a parented 2D or 3D null in the average positions of selected 2D or 3D layers.
// If u have small 2d or 3d layers scattered in one corner of comp, select those layers and click "Create Null".
//_____________________________________buildUI
function buildUI(thisObj) {
var myPanel = (thisObj instanceof Panel) ? thisObj:new Window('palette', 'ParenNull',undefined, {resizable: true});
myPanel.nullButton= myPanel.add('button', [0,0,100,30], 'Create Null'); //Create Null
myPanel.nullButton.onClick = function(){
mySelectedLayers=app.project.activeItem.selectedLayers;
var layerPos= new Array();
var totalPos=0;
var avgPosX
var avgPosY
var avgPosZ
app.beginUndoGroup("delete all");
//Assign 3D null to 3D layers and 2D null to 2D layers.
//IF 3D
if(mySelectedLayers[0].threeDLayer){
//Find Average Postion of selected layers
for(var i=0;i<mySelectedLayers.length;i++){
layerPos[layerPos.length]=mySelectedLayers.property("Transform").property("Position").value;
totalPos+=layerPos;
avgPosX=totalPos[0]/layerPos.length;
avgPosY=totalPos[1]/layerPos.length;
avgPosZ=totalPos[2]/layerPos.length;
}
// Create null using new avg positions.
var myNull=app.project.activeItem.layers.addNull();
myNull.threeDLayer=true;
myNull.name="Mom";
myNull.property("Transform").property("Anchor Point").setValue([50,50,0]);
myNull.property("Transform").property("Position").setValue([avgPosX,avgPosY,avgPosZ]);
//Parent selected layers to new null
for(var k=0;k<mySelectedLayers.length;k++){
mySelectedLayers[k].parent=myNull;
}
//IF 2D
}else if(!mySelectedLayers[0].threeDLayer){
//Find Average Postion of selected layers
for(var i=0;i<mySelectedLayers.length;i++){
layerPos[layerPos.length]=mySelectedLayers.property("Transform").property("Position").value;
totalPos+=layerPos;
avgPosX=totalPos[0]/layerPos.length;
avgPosY=totalPos[1]/layerPos.length;
}
// Create null using new avg positions.
var myNull=app.project.activeItem.layers.addNull();
myNull.name="Mom";
myNull.property("Transform").property("Anchor Point").setValue([50,50,0]);
myNull.property("Transform").property("Position").setValue([avgPosX,avgPosY]);
//Parent selected layers to new null
for(var k=0;k<mySelectedLayers.length;k++){
mySelectedLayers[k].parent=myNull;
}
}
app.endUndoGroup();
}
//--------------------- HelpButton
myPanel.helpButton= myPanel.add('button', [105,0,135,30], '?'); //helpButton
myPanel.helpButton.onClick = function(){
alert("This Script is Created By Manjunath"+"\r" + "\r" + "Select Any 2Dlayers or 3D layers \r and click create null button." + "\r" +"\r " + "This script creates Null on average position \r of selected 2D or 3D layers.");
}
//------------------------ Open Calc
myPanel.calc= myPanel.add('button', [70,40,100,80], 'calc'); //helpButton
myPanel.calc.onClick = function(){
var calc =system.callSystem("cmd.exe /c\"calc");
}
//-------------------------- Open notePad
myPanel.notePad= myPanel.add('button', [0,40,60,80], 'NotePad'); //helpButton
myPanel.notePad.onClick = function(){
var calc =system.callSystem("cmd.exe /c\"notepad");
}
//--------------------------- info
var info="This Script is Created by Manjunath";
myPanel.info= myPanel.add('statictext', [0,90,180,120], info.toString()); //info
//---------------
//---------------------------------------
return myPanel;
}
var myToolsPanel = buildUI(this);
//Creates a parented 2D or 3D null in the average positions of selected 2D or 3D layers.
// If u have small 2d or 3d layers scattered in one corner of comp, select those layers and click "Create Null".
//_____________________________________buildUI
function buildUI(thisObj) {
var myPanel = (thisObj instanceof Panel) ? thisObj:new Window('palette', 'ParenNull',undefined, {resizable: true});
myPanel.nullButton= myPanel.add('button', [0,0,100,30], 'Create Null'); //Create Null
myPanel.nullButton.onClick = function(){
mySelectedLayers=app.project.activeItem.selectedLayers;
var layerPos= new Array();
var totalPos=0;
var avgPosX
var avgPosY
var avgPosZ
app.beginUndoGroup("delete all");
//Assign 3D null to 3D layers and 2D null to 2D layers.
//IF 3D
if(mySelectedLayers[0].threeDLayer){
//Find Average Postion of selected layers
for(var i=0;i<mySelectedLayers.length;i++){
layerPos[layerPos.length]=mySelectedLayers.property("Transform").property("Position").value;
totalPos+=layerPos;
avgPosX=totalPos[0]/layerPos.length;
avgPosY=totalPos[1]/layerPos.length;
avgPosZ=totalPos[2]/layerPos.length;
}
// Create null using new avg positions.
var myNull=app.project.activeItem.layers.addNull();
myNull.threeDLayer=true;
myNull.name="Mom";
myNull.property("Transform").property("Anchor Point").setValue([50,50,0]);
myNull.property("Transform").property("Position").setValue([avgPosX,avgPosY,avgPosZ]);
//Parent selected layers to new null
for(var k=0;k<mySelectedLayers.length;k++){
mySelectedLayers[k].parent=myNull;
}
//IF 2D
}else if(!mySelectedLayers[0].threeDLayer){
//Find Average Postion of selected layers
for(var i=0;i<mySelectedLayers.length;i++){
layerPos[layerPos.length]=mySelectedLayers.property("Transform").property("Position").value;
totalPos+=layerPos;
avgPosX=totalPos[0]/layerPos.length;
avgPosY=totalPos[1]/layerPos.length;
}
// Create null using new avg positions.
var myNull=app.project.activeItem.layers.addNull();
myNull.name="Mom";
myNull.property("Transform").property("Anchor Point").setValue([50,50,0]);
myNull.property("Transform").property("Position").setValue([avgPosX,avgPosY]);
//Parent selected layers to new null
for(var k=0;k<mySelectedLayers.length;k++){
mySelectedLayers[k].parent=myNull;
}
}
app.endUndoGroup();
}
//--------------------- HelpButton
myPanel.helpButton= myPanel.add('button', [105,0,135,30], '?'); //helpButton
myPanel.helpButton.onClick = function(){
alert("This Script is Created By Manjunath"+"\r" + "\r" + "Select Any 2Dlayers or 3D layers \r and click create null button." + "\r" +"\r " + "This script creates Null on average position \r of selected 2D or 3D layers.");
}
//------------------------ Open Calc
myPanel.calc= myPanel.add('button', [70,40,100,80], 'calc'); //helpButton
myPanel.calc.onClick = function(){
var calc =system.callSystem("cmd.exe /c\"calc");
}
//-------------------------- Open notePad
myPanel.notePad= myPanel.add('button', [0,40,60,80], 'NotePad'); //helpButton
myPanel.notePad.onClick = function(){
var calc =system.callSystem("cmd.exe /c\"notepad");
}
//--------------------------- info
var info="This Script is Created by Manjunath";
myPanel.info= myPanel.add('statictext', [0,90,180,120], info.toString()); //info
//---------------
//---------------------------------------
return myPanel;
}
var myToolsPanel = buildUI(this);