# Python Assign list values to an object's translateXYZ?

 04 April 2013 lazed New Member portfolio Laszlo Mandi bournemouth, United Kingdom Python Assign list values to an object's translateXYZ? Hey guys, i have a list of WS coordinates that I collected from a plane's vertex positions. Now lets say I also have a list of objects ( cubes for now), what i want to do is assign them cooridnates in my list to the cubes XYZ translate. Could anyone point me to the right direction? so far this is what i have: vtxWorldPosition = [] for i in verts: curPointPosition = cmds.xform( i, query=True, translation=True, worldSpace=True ) # [1.1269192869360154, 4.5408735275268555, 1.3387055339628269] vtxWorldPosition.append( curPointPosition ) print vtxWorldPosition[1] [-60.0, -2.6645352591003757e-14, 120.0] cmds.polyCube() cube = "pCube1" cmds.setAttr(cube+".translate",vtxWorldPosition[0][0],vtxWorldPosition[0][1],vtxWorldPosition[0][2]) this places 1 cube to the location of the first coordinate in the list. now i guess i need to figure out how to make it use the lists in a for loop. Any help would be much appreciated. Thanks Last edited by lazed : 04 April 2013 at 09:08 PM. share quote
 04 April 2013 Kobes Veteran portfolio Jacob Santamaria Melbourne, Australia ``````import maya.cmds as cmds vtxWorldPosition = [] for i in verts: curPointPosition = cmds.xform( i, query=True, translation=True, worldSpace=True ) vtxWorldPosition.append(curPointPosition) for i in range(len(vtxWorldPosition)): #print vtxWorldPosition[i][0], vtxWorldPosition[i][1], vtxWorldPosition[i][2] cube = cmds.polyCube()[0] cmds.setAttr(cube+".translate", vtxWorldPosition[i][0], vtxWorldPosition[i][1], vtxWorldPosition[i][2], type="double3")`````` Hope this works and helps you out man. You might want to use the xform command to move the cubes also. Cheers Jake share quote
 04 April 2013 lazed New Member portfolio Laszlo Mandi bournemouth, United Kingdom Thanks man. took me an hour and half to figure it out myself but got there at the end. I still changed it abit around after seeing yours because mine wasnt perfect. Many Thanks again. Laz share quote
 04 April 2013 lazed New Member portfolio Laszlo Mandi bournemouth, United Kingdom i kinda ran into an error after trying to change it. for i in range(len(vtxWorldPosition)): #print vtxWorldPosition[i][0], vtxWorldPosition[i][1], vtxWorldPosition[i][2] building = MakeRectengularTower(10, 10, 50, 6, 15, 20)[0] ## this is what builds me 10 buildings that i defined before, i added the [0] to the end of it because you had it after the polyCube so i thought it will work just fine. but i get this error: # Error: 'NoneType' object is unsubscriptable # Traceback (most recent call last): # File "", line 33, in # TypeError: 'NoneType' object is unsubscriptable # # it creates my buildings but it doesent translate them to the vertex positons. cmds.setAttr(building+".translate", vtxWorldPosition[i][0], vtxWorldPosition[i][1], vtxWorldPosition[i][2], type="double3") any help would be much appreciated again. Thanks for your time share quote
 04 April 2013 Kobes Veteran portfolio Jacob Santamaria Melbourne, Australia Yep I understand the problem your having. The reason I had the index on the back of the polycube command is because it returns a list of nodes. ``````import maya.cmds as cmds cube = cmds.polycube() print cube #[u'pCube5', u'polyCube5']`````` You can see here the cube variable is actually a unicode list of two nodes, the first being the actual transform node and the second being the polycube node. So the zero index at the end of the polycube command I had is only grabbing the transform node of the cube because that is the first in the list. The reason being that you wanted to edit the transformations of the cube not its actual properties. So for your code I'm not sure how MakeRectengularTower() works but if you want to move it once you have created it you will want to return a transfrom node for the tower out of that function so that you can then position it. Right now it does not appear to be returning anything so that's the reason it says "# Error: 'NoneType' object is unsubscriptable". Hope this clears it up and helps you out. Cheers Jake share quote
 04 April 2013 lazed New Member portfolio Laszlo Mandi bournemouth, United Kingdom Thanks man it defo helped me, i managed to figure out how to return their values. Incase anyone else got the same problem, i just had to add this to the end of my function buildinglist = [] # empty list buildingslist.append(buildingname[0]) # adding new buildings to list print ", ".join(buildingname) # thi is just a print so i know its building the towers print "Completed, Loading rest of the structures..." return buildingslist # returns the buildings after it built them Many thanks for your help again. Also just a quick question, do you know what the code is so i can see what my script is doing? someone shown me before in class but i cant remember. i think its something to do with setting the viewport refresh time it was like one line of code share quote
 04 April 2013 CGTalk Moderation Expert Thread automatically closed This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum. __________________ CGTalk Policy/Legalities Note that as CGTalk Members, you agree to the terms and conditions of using this website. 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.