Math: Distance by python and MEL
Math: Distance by python and MEL
# python: cmdsdef py_distance1():
import maya.cmds as mc;
dest = False;
sel = mc.ls(sl=1,l=1);
if len(sel)==2:
a = mc.xform(sel[0],q=1,ws=1,t=1);
b = mc.xform(sel[1],q=1,ws=1,t=1);
import math;
dist = math.sqrt(math.pow(a[0]-b[0],2)+math.pow(a[1]-b[1],2)+math.pow(a[2]-b[2],2));
return(dist);
print py_distance1();
# python: pymel
def py_distance2():
import pymel.core as pm;
dist = False;
sel = pm.selected();
if len(sel)==2:
a = sel[0].translate.get();
b = sel[1].translate.get();
dist = (a-b).length();
return(dist);
print py_distance2();
# python: api.OpenMaya
def py_distance3():
import maya.cmds as mc, maya.api.OpenMaya as om;
dist = False;
sel = mc.ls(sl=1,l=1);
if len(sel)==2:
a = om.MVector(mc.xform(sel[0],q=1,ws=1,t=1));
b = om.MVector(mc.xform(sel[1],q=1,ws=1,t=1));
dist = (a-b).length();
return(dist);
print py_distance3();
# python: distanceDimension command(node)
def py_distance4():
import maya.cmds as mc;
dist = False;
sel = mc.ls(sl=1,l=1,o=1,type="transform");
if len(sel)==2:
a = mc.xform(sel[0],q=1,ws=1,t=1);
b = mc.xform(sel[1],q=1,ws=1,t=1);
dSh = mc.distanceDimension(sp=a,ep=b);
dist = mc.getAttr(dSh+".distance");
return(dist);
print py_distance4();
// mel using mag<<vector>>
proc float mel_distance(){
float $dist;
string $sel[] = `ls -sl -l`;
int $num = `size($sel)`;
if($num == 2){
vector $a = `xform -q -ws -t $sel[0]`;
vector $b = `xform -q -ws -t $sel[1]`;
$dist = mag($a-$b);
}
return $dist;
}
print ( mel_distance() );
Comments
Post a Comment