Skip to content

Instantly share code, notes, and snippets.

@jmacey
Created January 16, 2024 09:17
Show Gist options
  • Save jmacey/a3d2d079b4af7e0d9c14f36b09f45af5 to your computer and use it in GitHub Desktop.
Save jmacey/a3d2d079b4af7e0d9c14f36b09f45af5 to your computer and use it in GitHub Desktop.
Dump all top level groups to obj
# work in progress dump scene to individual obj needs some error checking etc.
import maya.OpenMaya as OpenMaya
# Assume 'selected_group' is the name of the selected group
selected_group = 'kitchen_group'
# Create a selection list
selection_list = OpenMaya.MSelectionList()
selection_list.add(selected_group)
# Create an MObject for the selected group
mobject = OpenMaya.MObject()
selection_list.getDependNode(0, mobject)
# Create an MFnDagNode for the selected group
dag_node_fn = OpenMaya.MFnDagNode(mobject)
# Iterate over the children of the selected group
for i in range(dag_node_fn.childCount()):
child_object = dag_node_fn.child(i)
child_dag_node = OpenMaya.MFnDagNode(child_object)
print(child_dag_node.name())
cmds.select(child_dag_node.name())
parts=cmds.ls(sl=True)
# create a group
grpName=f"exportGRP{child_dag_node.name()}"
print(grpName)
cmds.group(empty=True, world=True, name=grpName)
# duplicate
for p in parts:
cmds.duplicate(p, name=f"{p}_tmp")
cmds.parent(f"{p}_tmp", grpName)
# Move to origin
cmds.select(grpName)
cmds.CenterPivot()
cmds.move(0, 0, 0, grpName, rotatePivotRelative=True)
cmds.file(
f"D:\Objs\{grpName}.obj",
pr=1,
typ="OBJexport",
exportSelected=1,
op="groups=1;ptgroups=1;materials=0;smoothing=1;normals=1",
)
cmds.delete(grpName)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment