Behaviour of MCOMMAND_JOIN diffrnt in R18 [SOLVED]
-
On 21/06/2017 at 06:19, xxxxxxxx wrote:
Hi! The scene that you can download below contains a Null object with a bunch of polygon objects under it.
I want to merge them into a single polygon object using MCOMMAND_JOIN, which works fine in R17, in
R18 however, the result contains only the very first object instead of all objects.import c4d def join_objects(objs, doc) : print 'Joining', len(objs), 'objects' settings = c4d.BaseContainer() settings[c4d.MDATA_JOIN_MERGE_SELTAGS] = True result = c4d.utils.SendModelingCommand( c4d.MCOMMAND_JOIN, objs, c4d.MODELINGCOMMANDMODE_ALL, settings, doc) if not result: return None return result[0] obj = join_objects(op.GetChildren(), doc) doc.InsertObject(obj) c4d.EventAdd()
Download 2017-06-21-plugincafe-jointest.c4d.
Any idea what's going wrong in R18?
-
On 21/06/2017 at 08:38, xxxxxxxx wrote:
Hi!
In R18 MCOMMAND_JOIN works in a different manner than pre-R18.For more details see:
https://developers.maxon.net/forum/topic/9836/13246_python-sendmodelingcommand&KW=&PID=52423#52423 -
On 21/06/2017 at 10:46, xxxxxxxx wrote:
Thank you, no photo. Should've used the forum search first
Here's the updated join_objects() function
def join_objects(root, doc) : children = root.GetChildren() set_status("Joining %d objects ..." % len(children), 50) # Pre-R18 we need to pass the list of objects to join. if c4d.GetC4DVersion() < 18000: source = children else: source = [root] settings = c4d.BaseContainer() settings[c4d.MDATA_JOIN_MERGE_SELTAGS] = True result = c4d.utils.SendModelingCommand( c4d.MCOMMAND_JOIN, source, c4d.MODELINGCOMMANDMODE_ALL, settings, doc) if not result: return None return result[0]