Are you able to post an example or reproducible of one of the cycle check problems you are seeing?
Looking through the results, the first one is a parent constraint on a joint. This is just how parent constraints work - the constraint outputs the rotation and translation to the joint, while the joint outputs its rotation order, joint orient, and parent inverse transform to the constraint. This cycle is necessary and does not cause problems.
I don’t think this is a cycle. Cycles happen per attribute, not per node, so the parentConstraint itself isn’t to blame. In that case, one node (the joint) has incoming connections (rotation and translation) which doesn’t affect the outgoing connections (the rotation order, joint orient and parent inverse transform). For a cycle to happen, an incoming connection must be affected by one of its outgoing connections.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsub...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/3526bc39-5f56-4e73-a64e-182396c8a12f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
That dag
argument looks suspicious, how come you include it?
dag (dag) | Also look for cycles due to relationships in the DAG. For each DAG node, the parenting connection on its children is also considered when searching for cycles. - Reference
It sounds like it’s being a little more loose on what is considered cycles, especially since the parentConstraint is part of the dag and even parented to the driven object per default.
I found two cases whereby it didn’t output any cycles, but it’s hard to say whether it’s conclusive without an example with an actual cycle warning too. Would it be possible to share one?
from maya import cmds
cmds.file(new=True, force=True)
cube, _ = cmds.polyCube()
cone, _ = cmds.polyCone()
constraint = cmds.parentConstraint(cone, cube)
assert cmds.cycleCheck(cube + ".r", dag=True, list=True)
assert not cmds.cycleCheck(cube + ".r", dag=False, list=True)
cmds.parent(constraint, world=True)
assert not cmds.cycleCheck(cube + ".r", dag=True, list=True)
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/3526bc39-5f56-4e73-a64e-182396c8a12f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsub...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/3dc98ae1-8a87-4226-95e6-815866b9e1f4%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/3dc98ae1-8a87-4226-95e6-815866b9e1f4%40googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/python_inside_maya/FCBpdbA8I9Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to python_inside_maya+unsub...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOADhP3VkSQz8Mo5CdRH1G2vnw2DxaxvwHHx6WOOEV3XEw%40mail.gmail.com.