Math: Distance by python and MEL

Math: Distance by python and MEL

# python: cmds
def 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

Popular posts from this blog

HIK: Getting current character and current source.