# Scale Edges To Specific Lengths ?

 Thread Tools Display Modes
 03 March 2018 DavidFalke   portfolio Scale Edges To Specific Lengths ? Hi everyone.  I am looking for a way, to scale one or preferably multiple edges of an object to a specific length or in other words: Unify their length. I have a number of edges on an object, each with unique position and rotation, that need to be the same length.   It seems there is no built in option so scripting seems to be the best bet. I was looking into python already, but my knowledge is pretty much non existing, let alone MEL so i had little success.  I was able to scale an edge by but not to a certain value and couldnt get it to work the other way around. Here is what i did, which may or may not be complete nonsens as i have no clue what i am doing:  I built 2 functions. One to get the length of an edge (credit belongs here: http://forums.cgsociety.org/archive...p?t-846300.html) and one to set the length to the value that i get from the first function. def getEdgeLengthFunc (*pArgs):     global referenceLength     referenceLength =[]     sel1=cmds.ls(sl=True,fl=True)     cmds.ConvertSelectionToVertices()     p=cmds.xform(sel1,q=True,t=True,ws=True)     referenceLength=math.sqrt(math.pow(p[0]-p[3],2)+math.pow(p[1]-p[4],2)+math.pow(p[2]-p[5],2))     cmds.select(sel1)     cmds.selectMode(co=True)     cmds.selectType(eg=True)     print 'Reference Length=',referenceLength def setLengthFunc (*pArgs):     sel2=cmds.ls(sl=True,fl=True)     cmds.ConvertSelectionToVertices()     p=cmds.xform(sel2,q=True,t=True,ws=True)     initialLength=math.sqrt(math.pow(p[0]-p[3],2)+math.pow(p[1]-p[4],2)+math.pow(p[2]-p[5],2))     cmds.select(sel2)     cmds.selectMode(co=True)     cmds.selectType(eg=True)     lengthToSet=abs(referenceLength - initialLength)     cmds.scale( 0.0, lengthToSet, 0.0, cs=True ) What am i missing here ?  Last edited by DavidFalke : 03 March 2018 at 05:20 PM. share quote
 03 March 2018 DavidFalke   portfolio Ok, in case someone needs this working in the future, here is what messed up my code.  swap "lengthToSet=abs(referenceLength - initialLength)" for "lengthToSet=abs(referenceLength / initialLength)" ... and it works. share quote

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts vB code is On Smilies are On [IMG] code is On HTML code is Off CGSociety Society of Digital Artists www.cgsociety.org Powered by vBulletinCopyright ©2000 - 2006, Jelsoft Enterprises Ltd.