The Maxon SDK Team is currently short staffed due to the winter holidays. No forum support is being provided between 15/12/2025 and 5/1/2026. For details see Maxon SDK 2025 Winter Holidays.
Thansk so much for the video, that was a deep dive! For my issue, I resolved it like this:
def message(id, data):
if(id==c4d.MSG_DESCRIPTION_POSTSETPARAMETER):
userDataID = eval(str(data['descid']))[1][0]
if userDataID in [2, 4, 5]:
c4d.CallButton(op, c4d.OPYTHON_MAKEDIRTY)
so, if any user data touched (including fieldlist), the generator updates itself.
Hi,
Please use the tags and the "ask question" features of the forum. Have a look at our guidelines for more information.
That's the correct way of checking the Cinema 4D's version.
Cheers,
Manuel
Below gets the focus back on the first tab of the pyTag (after other objects have been selected), but it only works with/after a button click..
Perhaps this might be of use.
def message(id, data):
if id == c4d.MSG_DESCRIPTION_COMMAND:
id2 = data['id'][0].id
if id2 == c4d.ID_USERDATA:
userDataId = data['id'][1].id
if userDataId == 1: # << just a button on the pyTag with ID 1
### do some function...
# GET FOCUS BACK on the pyTags's 1st Tab:
op.GetObject().SetBit(c4d.BIT_ACTIVE)
op.SetBit(c4d.BIT_ACTIVE)
c4d.gui.ActiveObjectManager_SetObject(c4d.ACTIVEOBJECTMODE_TAG, op.GetObject(), c4d.ACTIVEOBJECTMANAGER_SETOBJECTS_OPEN, c4d.DescID(c4d.DescLevel(1)))
op.GetObject().DelBit(c4d.BIT_ACTIVE)
c4d.EventAdd()
Hello @karpique,
without any further questions, we will consider this topic as solved by Monday and flag it accordingly.
Thank you for your understanding,
Ferdinand
@ferdinand I get Ngon translation map and applied MCOMMAND_MELT but stuck again — as I understand SendModellingCommand only returns new object with melted ngons, but my goal is to correct object that already exists in scene...
Is there any other ways of setting up Ngon translation map with python?