You can even create a nice little 'with' statement handler for tracking node creation... John Patrick (who's on here sometimes) wrote a handy one we use over here...
- Paul On Mon, Oct 22, 2012 at 9:29 PM, Danny Wynne <[email protected]> wrote: > add a callback to MObjectHandle, then you can get every node that is > created regardless of what the command returns. Once you got your nodes, > remove the callback > > import maya.OpenMaya as om > import maya.cmds as cmds > cmds.polyCube(n="testCube") > new_nodes = [] > def cb_add_nodes(node, data): > new_nodes.append(om.MObjectHandle(node)) > id = om.MDGMessage.addNodeAddedCallback(cb_add_nodes) > #setDrivenKeyframe command does not return the anim_curve node > cmds.setDrivenKeyframe("testCube", v=1, at="tx", cd="testCube.ty", dv=1, > ott = "spline", itt = "spline") > om.MDGMessage.removeCallback(id) > for n in new_nodes: > n_name = om.MFnDependencyNode(n.object()).name() > print n_name > > > I learned this from http://www.macaronikazoo.com/ > > On Thursday, October 18, 2012 12:04:07 PM UTC+8, Berg Jones wrote: >> >> Trying to get the name of a newly created node without having to use a >> certain workaround. Im adding a light shader with DL_createSurfaceShader. >> This creates uber_surfaceN depending on whats in the scene. Then Im doing >> more stuff in the same loop. How do I capture the name? >> >> >> import maya.cmds as cmds >> import maya.mel as mel >> >> def checkGeo(): >> objNames = cmds.ls(sl=1) >> if objNames: >> geoShapes = cmds.ls(geometry=1) >> if geoShapes: >> geoTransforms = cmds.listRelatives(geoShapes, p=1) >> if 'lockedGeo1' in geoTransforms: >> for i in objNames: >> cmds.select(i) >> createSurfaceShader() >> cmds.select(clear=1) >> >> def createSurfaceShader(): >> mel.eval('$selected_geo = `ls -sl`') >> mel.eval('$selected_geo_shape = `listRelatives -children -shapes >> $selected_geo[0]`') >> mel.eval('DL_setObjectAttrib(**DL_createSurfaceShader("uber_**surface", >> 0), "surface", $selected_geo_shape)') >> > -- > view archives: http://groups.google.com/group/python_inside_maya > change your subscription settings: > http://groups.google.com/group/python_inside_maya/subscribe > -- view archives: http://groups.google.com/group/python_inside_maya change your subscription settings: http://groups.google.com/group/python_inside_maya/subscribe
