Mmm I think nobody here understood mel scripting in 5 seconds...
2015-10-25 16:37 GMT+01:00 Christopher.
<[email protected] <mailto:[email protected]>>:
combi reply was informative and so what yours, Justin. From
your reply Justin I don't understand the following,
particularly the segments of your reply in italics ?
You do not need to encapsulate the entire contents of the
script inside a global proc. /Global procs are those that
will be exported into the main Maya namespace/, when you
source the script. A special case is if a global proc has the
same name as the file (ie myScript.mel & global proc
myScript ). In this case, /Maya will automatically execute
that global proc as an entry point to your script. /
/
/
combi from your reply I didn't understand segments of your
reply in italics ? :-)
We have two kind of scripts:
-Scripts that define procedures, and only contain
procedures./They are safe to be sourced any time and never
modify your scene or maya-ui in any way/.
-/Scripts that call those procedures, and those scripts are
used for various things like rigging a character, exporting
data, creating a tool ui, etc... Those ones need to have code
outside otherwise, nothing happens. Those scritps are only
sourced when used in tools, or inside characters creation
pipeline/.
So maybe a good idea would be you treat this script the same:
Make it with so it has only procedures. If you want to call
one of those procedures, from a shelf button or the script
editor, you source it, then call the procedure you want.
/Note that procedures you want to call from outside the
script need to be global. Procedures that are only relevant
to the tool, usually are in the same .mel file, and can be
local (without the "global" statement in their declaration)./
/
/
I'm still at a loss, on how to fix this script so it will work ?
I want to understand how to in five seconds, but it's not
happening ;-(
On Sunday, October 25, 2015 at 3:47:19 AM UTC-4, Justin
Israel wrote:
On Sun, Oct 25, 2015 at 11:57 AM Christopher.
<[email protected]> wrote:
From what I know, one should typically encapsulate
MEL script in a GlobalProc, then that name of the
GlobalProc is run. In this case with this script I
don't know what it is needed to run, for this badly
written script. I do believe if you want, you can
learn how to script fast, if you want to do it
correctly with an understanding, that takes time, for
some more time then others.
You do not need to encapsulate the entire contents of the
script inside a global proc. Global procs are those that
will be exported into the main Maya namespace, when you
source the script. A special case is if a global proc has
the same name as the file (ie myScript.mel & global proc
myScript ). In this case, Maya will automatically execute
that global proc as an entry point to your script.
On Saturday, October 24, 2015 at 6:37:49 PM UTC-4,
Christopher. wrote:
The script can't be renamed anything but
rotateProjection or it doesn't matter ?
In your particular script, you would not want that code
to run automatically, because it wants to create a UI
tool. You would want to wrap just the loose amount of
code in a global proc that isn't the same name as the
file. This will give you an exported proc that can be
called from Maya after you source the file.
Justin Israel wrote:
On Sun, 25 Oct 2015 3:35 AM Christopher.
<[email protected]> wrote:
I added the source command, and I used the
globalProc within the script to execute the
script but my question is; shouldn't the
globalproc encapsulate the entire script ?
No
The first globalProc in the script is called
rotateProjection, if I execute
rotateProjection, I get the typical /Cannot
find Procedure/ error ?
Strange. Seems like the script wasn't
successfully sourced.
The script is written badly. It has loose code
in the global scope of the file, at the bottom.
Just that loose code should be encapsulated in a
global proc. If it is named the same as the
file, Maya will execute it automatically if you
put it in the scripts location. This would
probably be bad since it launches a gui. So it
needs a global proc name that doesn't match the
file name.
On Saturday, October 24, 2015 at 2:07:11 AM
UTC-4, Justin Israel wrote:
On Sat, Oct 24, 2015 at 6:35 PM Crest
Christopher <[email protected]> wrote:
I hoped to get it to work.
And did my last reply help at all?
Justin Israel wrote:
On Sat, 24 Oct 2015 1:51
PM Christopher.
<[email protected]> wrote:
Safe to assume no one has
the answer and I need to put
it in the trash bin ?
It's safe to assume that people
have tried to help answer your
questions, and have since
probably give up on this
particular thread.
Your script has code located in
the global scope that is going
to run every time it is sourced.
that means if you source this
script manually, it would launch
a gui. I never wrote much MEL
from scratch, but I believe this
is bad practice. If I remember
correctly, if you name a global
proc the same as the file name,
Maya will call it when it
sources the script at startup.
Otherwise you can/should just
have one or more global procs
that you want someone to call
from MEL, to launch your tool or
command.
What goal do you want to achieve
here? I don't know what this
file is called but it probably
doesn't matter because it
assumes you will source it to
get it to launch the GUI. Look
up the "source" Mel command.
Or... place this thread in the
trash as you suggested, if this
still doesn't solve your issue.
Justin
On Sunday, October 18, 2015
at 6:47:29 PM UTC-4,
Christopher. wrote:
Source. I originally
though the global
function was
rotateProjection, until
I realized it didn't
encapsulate the entire
script; unless it
doesn't have to ? I
suppose if not, someone
on this list will inform
me, or I hope someone will.
//Additional Variables
string $dir2d = "";
string $projName = "";
string $fileName = "";
string $placeName = "";
string $productName = "";
string $camProductName = "";
string $remapName = "";
string $multDivName = "";
string $Dir = "";
int $camSetExists = 0;
global proc
rotateProjection( string
$placementNode, string
$direction )
{
if($direction ==
"PosX") //Left
{
xform -ro 0 -90 0
$placementNode;
}
if($direction ==
"NegX") //Right
{
xform -ro 0 90 0
$placementNode;
}
if($direction ==
"PosY") //Bottom
{
xform -ro 90 0 0
$placementNode;
}
if($direction ==
"NegY") //Top
{
xform -ro -90 0 0
$placementNode;
}
//if($direction ==
"PosZ") No Case:
Default Position //Front
if($direction ==
"NegZ") //Back
{
xform -ro 0 180 0
$placementNode;
}
}
//Makes and Sets up
Camera Node Network
global proc
setupCameraNodes()
{
if(`objExists
"RenBakeCam1"`)
{
//Makes sure only 1
camera bake network
exists to keep
everything as clean as
it can be.
$camSetExists=1;
print "Camera Nodes
Already Exist \n";
}
else{
camera -name
"RenBakeCam1"
-centerOfInterest 5
-focalLength 35
-lensSqueezeRatio 1
-cameraScale 1
-horizontalFilmAperture
1.41732
-horizontalFilmOffset 0
-verticalFilmAperture
0.94488
-verticalFilmOffset 0
-filmFit Fill -overscan
1 -motionBlur 0
-shutterAngle 144
-nearClipPlane 0.01
-farClipPlane 1000
-orthographic 0
-orthographicWidth 30;
objectMoveCommand;
cameraMakeNode 1 "";
shadingNode -asUtility
"samplerInfo" -name
"sampInfo1";
shadingNode -asUtility
"vectorProduct" -name
"CamVec1";
setAttr
CamVec1.operation 3;
//sets op type to Vector
Matrix Product
setAttr
CamVec1.normalizeOutput
true; //sets
normalizeOutput to ON
//Connects to Vector
Product for Object
Normal in World Space
connectAttr -f
sampInfo1.normalCamera
CamVec1.input1;
connectAttr -f
RenBakeCam1.matrix
CamVec1.matrix;
print "Camera Node Setup
Complete \n";
}
}
//Generates all nodes
needed for the selected
number of textures, then
links them to the camera
and output chains
global proc
setupTextureNodes(int
$numProjections)
{
//Sets name and number
of directions
string $DirList[];
global string
$PosZ_ProductNode;
global string
$PosZ_RemapNode;
//variables for file
attachment
global string $TopNode;
global string $BottomNode;
global string $LeftNode;
global string $RightNode;
global string $FrontNode;
global string $BackNode;
//variables for shader
output network
string $colorSum =
`shadingNode -asUtility
"plusMinusAverage" -name
"ColorSum1"`;
string $valueSum =
`shadingNode -asUtility
"plusMinusAverage" -name
"ValueSum1"`;
string $remapSum =
`shadingNode -asUtility
"remapValue" -name
"RemapSum1"`;
string $finalColor =
`shadingNode -asUtility
"multiplyDivide" -name
"FinalColor1"`;
string $shaderName =
`shadingNode -asShader
"blinn" -name "BlinnName"`;
sets -renderable true
-noSurfaceShader true
-empty -name
($shaderName + "SG");
print $numProjections;
if($numProjections == 3)
{
//$DirList[] =
{"PosZ","PosY","PosX"};
$DirList[0] = "PosZ";
$DirList[1] = "PosY";
$DirList[2] = "PosX";
print "Making 3
projections... \n";
}
if($numProjections == 6)
{
//$DirList[] =
{"PosZ","NegY","NegZ","PosY","PosX","NegX"};
$DirList[0] = "PosZ";
$DirList[1] = "NegY";
$DirList[2] = "NegZ";
$DirList[3] = "PosY";
$DirList[4] = "PosX";
$DirList[5] = "NegX";
print "Making 6
projections.... \n";
}
print $DirList;
int
$plusMinusInputCounter = 1;
//Generates Shader
Output chain, and calls
Camera creation chain,
which may not output if
a camera chain already
exists.
setupCameraNodes();
//Generates nodes for
Output Chain
//variables named as a
result of the operation
as more than one output
network/shader can exist
in a given scene
setAttr ($finalColor +
".operation") 2; //sets
node to divide
connectAttr -f
($colorSum +
".output3D")
($finalColor + ".input1");
connectAttr -f
($valueSum +
".output1D") ($remapSum
+ ".inputValue");
connectAttr -f
($remapSum +
".outValue")
($finalColor + ".input2X");
connectAttr -f
($remapSum +
".outValue")
($finalColor + ".input2Y");
connectAttr -f
($remapSum +
".outValue")
($finalColor + ".input2Z");
//final color to shader
node occurs at end of script
print "Output Node Setup
Complete \n";
for($Dir in $DirList){
//Sets up name variables
for each direction, $Dir
taken from For Loop
$dir2d = $Dir + "_2d1";
$projName = $Dir +
"_Projection1";
$fileName = $Dir + "_File1";
$placeName = $Dir +
"_Placement1";
$productName = $Dir +
"_Product1";
$camProductName = $Dir +
"_CamProduct1";
$remapName = $Dir +
"_Remap1";
$multDivName = $Dir +
"_colorXRemap1";
//Creates File
Projection Network
$projName = `shadingNode
-asUtility "projection"
-name $projName`;
$fileName = `shadingNode
-asTexture "file" -name
$fileName`;
//Notes name of file
nodes for file assignment
switch($Dir)
{
case "PosZ":
//front
$FrontNode = $fileName;
break;
case "PosY":
//bottom
$BottomNode = $fileName;
break;
case "PosX":
//left
$LeftNode = $fileName;
break;
case "NegZ":
//back
$BackNode = $fileName;
break;
case "NegY":
//top
$TopNode = $fileName;
break;
case "NegX":
//right
$RightNode = $fileName;
break;
default:
print ("UNKNOWN
DIRECTION, VALUE FOR
CAMERA NOT SET, FILE
ASSIGNMENT WILL FAIL \n");
break;
}
$placeName =
`shadingNode -asUtility
"place3dTexture" -name
$placeName`;
$dir2d = `shadingNode
-asUtility
"place2dTexture" -name
$dir2d`;
//Links nodes together
as default projection
normally does
connectAttr -f
($placeName +
".worldInverseMatrix[0]") ($projName
+ ".placementMatrix");
connectAttr -f
($fileName +
".outColor") ($projName
+ ".image");
connectAttr -f ($dir2d +
".coverage") ($fileName
+ ".coverage");
connectAttr -f ($dir2d +
".translateFrame")
($fileName +
".translateFrame");
connectAttr -f ($dir2d +
".rotateFrame")
($fileName +
".rotateFrame");
connectAttr -f ($dir2d +
".mirrorU") ($fileName +
".mirrorU");
connectAttr -f ($dir2d +
".mirrorV") ($fileName +
".mirrorV");
connectAttr -f ($dir2d +
".stagger") ($fileName +
".stagger");
connectAttr -f ($dir2d +
".wrapU") ($fileName +
".wrapU");
connectAttr -f ($dir2d +
".wrapV") ($fileName +
".wrapV");
connectAttr -f ($dir2d +
".repeatUV") ($fileName
+ ".repeatUV");
connectAttr -f ($dir2d +
".offset") ($fileName +
".offset");
connectAttr -f ($dir2d +
".rotateUV") ($fileName
+ ".rotateUV");
connectAttr -f ($dir2d +
".noiseUV") ($fileName +
".noiseUV");
connectAttr -f ($dir2d +
".vertexUvOne")
($fileName +
".vertexUvOne");
connectAttr -f ($dir2d +
".vertexUvTwo")
($fileName +
".vertexUvTwo");
connectAttr -f ($dir2d +
".vertexUvThree")
($fileName +
".vertexUvThree");
connectAttr -f ($dir2d +
".vertexCameraOne")
($fileName +
".vertexCameraOne");
connectAttr -f ($dir2d +
".outUV") ($fileName +
".uv");
connectAttr -f ($dir2d +
".outUvFilterSize")
($fileName +
".uvFilterSize");
///////////////
print ("Projection Node
Output Complete for " +
$Dir + " \n");
//Function Call to
rotate Place3d Node to
correct location
rotateProjection($placeName
, $Dir);
//creates and sets nodes
for vector functions
$productName =
`shadingNode -asUtility
"vectorProduct" -name
$productName`;
$camProductName =
`shadingNode -asUtility
"vectorProduct" -name
$camProductName`;
$remapName =
`shadingNode -asUtility
"remapValue" -name
$remapName`;
$multDivName =
`shadingNode -asUtility
"multiplyDivide" -name
$multDivName`;
setAttr ($productName +
".operation") 3; //sets
to Vector Matrix Product
setAttr ($productName +
".input2Z") -1;
setAttr ($camProductName
+ ".operation") 1;
//sets to Dot Product
setAttr ($camProductName
+ ".normalizeOutput")
true; //normalizes output
setAttr ($remapName +
".value[0].value_Position")
0.244;
setAttr ($remapName +
".value[0].value_FloatValue")
0;
setAttr ($remapName +
".value[0].value_Interp") 2;
//sets to smooth
interpolation
//connects camera,
output, projection and
vector chains
if( $Dir == "PosZ" )
{
//Sets up primary node
chain, all other chains
have a dependency on the
Dir_Product
vectorProduct node of
this chain
connectAttr -f
($projName +
".outColor")
($multDivName + ".input1");
connectAttr -f
($placeName +
".worldMatrix")
($productName + ".matrix");
connectAttr -f
($productName +
".output")
($camProductName +
".input1");
connectAttr -f
CamVec1.output
($camProductName +
".input2");
connectAttr -f
($camProductName +
".outputX") ($remapName
+ ".inputValue");
connectAttr -f
($remapName +
".outValue")
($multDivName + ".input2X");
connectAttr -f
($remapName +
".outValue")
($multDivName + ".input2Y");
connectAttr -f
($remapName +
".outValue")
($multDivName + ".input2Z");
connectAttr -f
($multDivName +
".output") ($colorSum +
".input3D[0]");
connectAttr -f
($remapName +
".outValue") ($valueSum
+ ".input1D[0]");
$PosZ_ProductNode =
$productName;
$PosZ_RemapNode =
$remapName;
setAttr ($productName +
".input1Z") 1;
////////
print "Node Chain
Complete \n";
}
else
{
//Sets up node chain for
all but the first
connectAttr -f
($projName +
".outColor")
($multDivName + ".input1");
connectAttr -f
($placeName +
".worldMatrix")
($productName + ".matrix");
//ONLY TRIGGERS ON
NON-FIRST RUN
connectAttr -f
($PosZ_ProductNode +
".input1") ($productName
+ ".input1");
connectAttr -f
($PosZ_RemapNode +
".value[0]") ($remapName
+ ".value[0]");
//
connectAttr -f
($productName +
".output")
($camProductName +
".input1");
connectAttr -f
CamVec1.output
($camProductName +
".input2");
connectAttr -f
($camProductName +
".outputX") ($remapName
+ ".inputValue");
connectAttr -f
($remapName +
".outValue")
($multDivName + ".input2X");
connectAttr -f
($remapName +
".outValue")
($multDivName + ".input2Y");
connectAttr -f
($remapName +
".outValue")
($multDivName + ".input2Z");
connectAttr -f
($multDivName +
".output") ($colorSum +
".input3D[" +
$plusMinusInputCounter +
"]");
connectAttr -f
($remapName +
".outValue") ($valueSum
+ ".input1D[" +
$plusMinusInputCounter +
"]");
$plusMinusInputCounter =
$plusMinusInputCounter + 1;
////////
print "Node Chain
Complete \n";
} //end else
} //end for
//connects into shader node
connectAttr -f
($finalColor +
".output") ($shaderName
+ ".color");
$file1 = `textField
-query -text file1Text`;
//front
$file2 = `textField
-query -text file2Text`;
//bottom
$file3 = `textField
-query -text file3Text`;
//left
$file4 = `textField
-query -text file4Text`;
//back
$file5 = `textField
-query -text file5Text`;
//top
$file6 = `textField
-query -text file6Text`;
//right
//HardLink the texture
links from the GUI into
the File nodes
if($numProjections == 3)
{
//$DirList[] =
{"PosZ","PosY","PosX"};
Front Bottom Left
setAttr ($FrontNode +
".fileTextureName")
-type "string" $file1;
setAttr ($BottomNode +
".fileTextureName")
-type "string" $file2;
setAttr ($LeftNode +
".fileTextureName")
-type "string" $file3;
/////////
print "file nodes set \n";
}
if($numProjections == 6)
{
//$DirList[] =
{"PosZ","NegY","NegZ","PosY","PosX","NegX"};
Front Top Back Bottom
Left Right
setAttr ($FrontNode +
".fileTextureName")
-type "string" $file1;
setAttr ($BottomNode +
".fileTextureName")
-type "string" $file2;
setAttr ($LeftNode +
".fileTextureName")
-type "string" $file3;
setAttr ($BackNode +
".fileTextureName")
-type "string" $file4;
setAttr ($RightNode +
".fileTextureName")
-type "string" $file6;
setAttr ($TopNode +
".fileTextureName")
-type "string" $file5;
print "file nodes set \n";
}
} //end proc
//GUI
int $numProjections;
//initializes
$numProjections
if (`window -exists
BlendedBoxMapGui`)
deleteUI BlendedBoxMapGui;
window -widthHeight 370
450 -title "Maya Blended
Box Map Maker"
BlendedBoxMapGui;
frameLayout -width 100
-height 100 -label "Num
Projections" RadioFrame;
setParent RadioFrame;
columnLayout RadioColumn;
setParent RadioColumn;
radioCollection
AllRadioButtons;
// radioButton -label
"3" -changeCommand
"$numProjections = 3"
-select RadioButton1;
radioButton -label "6"
-changeCommand
"$numProjections = 6"
-select RadioButton2;
text -label "Texture
Links:";
rowColumnLayout
-numberOfColumns 3
-columnAttach 1 "right" 0
-columnWidth 1 150
-columnWidth 2 250
-columnWidth 3 100;
text -label "Front";
string $file1 =
`textField file1Text`;
button -label "Browse"
-command "$file1 =
`fileDialog`; textField
-edit -text $file1
file1Text" BrowseFile1;
text -label "Bottom";
string $file2 =
`textField file2Text`;
button -label "Browse"
-command "$file2 =
`fileDialog`; textField
-edit -text $file2
file2Text" BrowseFile2;
text -label "Left";
string $file3 =
`textField file3Text`;
button -label "Browse"
-command "$file3 =
`fileDialog`; textField
-edit -text $file3
file3Text" BrowseFile3;
text -label "Back";
string $file4 =
`textField file4Text`;
button -label "Browse"
-command "$file4 =
`fileDialog`; textField
-edit -text $file4
file4Text" BrowseFile4;
text -label "Top";
string $file5 =
`textField file5Text`;
button -label "Browse"
-command "$file5 =
`fileDialog`; textField
-edit -text $file5
file5Text" BrowseFile5;
text -label "Right";
string $file6 =
`textField file6Text`;
button -label "Browse"
-command "$file6 =
`fileDialog`; textField
-edit -text $file6
file6Text" BrowseFile6;
button -label "Generate
Shader Network" -command
"setupTextureNodes($numProjections)"
goButton;
$numProjections = 6;
showWindow BlendedBoxMapGui;
On Sunday, October 18,
2015 at 2:43:38 PM
UTC-4, Carlos Rico wrote:
source it?
*Carlos Rico Adega*
-------------------------------------
LinkedIn
<http://www.linkedin.com/pub/carlos-rico/6/58/325>
[email protected]
2015-10-18 20:20
GMT+02:00
Christopher.
<[email protected]>:
The script is
located in the
proper MEL path,
that I can
testify;
although, there
is no global
function.
On Saturday,
October 17, 2015
at 11:21:06 PM
UTC-4, Justin
Israel wrote:
Is the
script in a
proper Maya
scripts
location?
Have you
checked the
file and
confirmed
that it has
a global
proc that
can be called?
On Sun, 18
Oct 2015
4:09
PM Christopher.
<[email protected]>
wrote:
From
what I
know, if
a MEL
script
doesn't
have a
command
to which
one
should
use, you
can look
for the
global
function, and
run the
function
name;
what if
that is
giving,
no
procedure found
and you
know
it's not
a paths
problem ?
--
You
received
this
message
because
you are
subscribed
to the
Google
Groups
"Python
Programming
for
Autodesk
Maya" group.
To
unsubscribe
from
this
group
and stop
receiving emails
from it,
send an
email to
[email protected].
To view
this
discussion
on the
web
visit
https://groups.google.com/d/msgid/python_inside_maya/c189227e-cfc6-42ce-862b-6f3a5784c148%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/c189227e-cfc6-42ce-862b-6f3a5784c148%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more
options,
visit
https://groups.google.com/d/optout.
--
You received
this message
because you are
subscribed to
the Google
Groups "Python
Programming for
Autodesk Maya"
group.
To unsubscribe
from this group
and stop
receiving emails
from it, send an
email to
[email protected].
To view this
discussion on
the web visit
https://groups.google.com/d/msgid/python_inside_maya/cde01e8d-8cbf-45a4-b689-61641ec58eb8%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/cde01e8d-8cbf-45a4-b689-61641ec58eb8%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more
options, visit
https://groups.google.com/d/optout.
--
You received this message
because you are subscribed
to the Google Groups "Python
Programming for Autodesk
Maya" group.
To unsubscribe from this
group and stop receiving
emails from it, send an
email to
[email protected].
To view this discussion on
the web visit
https://groups.google.com/d/msgid/python_inside_maya/8796292d-a071-449b-829b-696f4ddcf241%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/8796292d-a071-449b-829b-696f4ddcf241%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit
https://groups.google.com/d/optout.
--
You received this message
because you are subscribed to a
topic in the Google Groups
"Python Programming for Autodesk
Maya" group.
To unsubscribe from this topic,
visit
https://groups.google.com/d/topic/python_inside_maya/Zi9tMVXanqg/unsubscribe.
To unsubscribe from this group
and all its topics, send an
email to
[email protected].
To view this discussion on the
web visit
https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA0%2B_E-bKvN%2BBZdcDJPJMGVbvB3fC%3DfW98vqXy-KBxeKEQ%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA0%2B_E-bKvN%2BBZdcDJPJMGVbvB3fC%3DfW98vqXy-KBxeKEQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit
https://groups.google.com/d/optout.
--
You received this message because
you are subscribed to the Google
Groups "Python Programming for
Autodesk Maya" group.
To unsubscribe from this group and
stop receiving emails from it, send
an email to
[email protected].
To view this discussion on the web
visit
https://groups.google.com/d/msgid/python_inside_maya/562B18BB.70209%40gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/562B18BB.70209%40gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit
https://groups.google.com/d/optout.
--
You received this message because you are
subscribed to the Google Groups "Python
Programming for Autodesk Maya" group.
To unsubscribe from this group and stop
receiving emails from it, send an email to
[email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/09827b7c-2f03-4796-becb-705fba25c26a%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/09827b7c-2f03-4796-becb-705fba25c26a%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit
https://groups.google.com/d/optout.
--
You received this message because you are
subscribed to a topic in the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/python_inside_maya/Zi9tMVXanqg/unsubscribe.
To unsubscribe from this group and all its
topics, send an email to
[email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA0exo7c4u33gP7zsEaLZBDe7WwS9xiP20m6H4BqfMZCAQ%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA0exo7c4u33gP7zsEaLZBDe7WwS9xiP20m6H4BqfMZCAQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit
https://groups.google.com/d/optout.
--
You received this message because you are subscribed
to the Google Groups "Python Programming for Autodesk
Maya" group.
To unsubscribe from this group and stop receiving
emails from it, send an email to
[email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/8815719c-2e87-4f55-9762-cb42a2dabf2f%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/8815719c-2e87-4f55-9762-cb42a2dabf2f%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit
https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the
Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from
it, send an email to
[email protected]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/7970053b-6b91-440f-97bc-42a05e0ef75d%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/7970053b-6b91-440f-97bc-42a05e0ef75d%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic
in the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/python_inside_maya/Zi9tMVXanqg/unsubscribe.
To unsubscribe from this group and all its topics, send an email
to [email protected]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAD65uqkicDgtbWXpMtzGvVFm-eXz4qpKeCntvjmrM_Z0meuKLA%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAD65uqkicDgtbWXpMtzGvVFm-eXz4qpKeCntvjmrM_Z0meuKLA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.