On 27/09/2014 at 14:35, xxxxxxxx wrote:
Hello everybody,
does anyone know how to work with the new UserDat Buttons?
greetings
rown
On 27/09/2014 at 14:35, xxxxxxxx wrote:
Hello everybody,
does anyone know how to work with the new UserDat Buttons?
greetings
rown
On 13/10/2014 at 05:39, xxxxxxxx wrote:
Hi,
from the plugin side it could be set and used like this:
def AddUserdata(self,op) :
rootGroup = c4d.GetCustomDatatypeDefault(c4d.DTYPE_GROUP)
rootGroup[c4d.DESC_NAME] = "Button_Group"
rootGroup[c4d.DESC_SCALEH] = False
rootGroup[22] = 2 #two colums
rootGroup[c4d.DESC_PARENTGROUP] = c4d.DescID(0)
op.AddUserData(rootGroup)
button= c4d.GetCustomDatatypeDefault(c4d.DTYPE_BUTTON)
button[c4d.DESC_NAME] = "BUTTON"
button[c4d.DESC_CUSTOMGUI] = c4d.CUSTOMGUI_BUTTON
button[c4d.DESC_PARENTGROUP] = op.GetUserDataContainer()[0][0]
UsdataDescId=op.AddUserData(button)
def Message(self, node, type, data) :
if type== c4d.MSG_MENUPREPARE:
AddUserdata(self,node)
if (type == c4d.MSG_DESCRIPTION_COMMAND) :
id = data['id'][0].id
if(id == 700) :
print id
print data
print "button pressed"
Cheers,
Martin
On 13/10/2014 at 05:52, xxxxxxxx wrote:
Hi,
Thanks for the reply.
Is there a way to get to the button in a python tag, like with other user data?
I tried:
print op.GetObject()[c4d.ID_USERDATA,1]
in a python tag, but that returns None
On 14/10/2014 at 01:14, xxxxxxxx wrote:
unfortunatly I don´t have a solution for this.
It seem´s logical to me that op.GetObject()[c4d.ID_USERDATA,1] does´nt work.
A button message is´nt the same, as a stored ud value.
It´s indeed interesting how to handle this.
Anyone?
On 14/10/2014 at 06:05, xxxxxxxx wrote:
I think I may have figured out where the buttons are meant to be used. The new 'Interaction tag" in R16 has a message function you can activate and I managed to get it to give me consistent numbers when using UserData button presses.
def message(id, data) :
if id == 18: # Don't know why 18 yet :(
for i in data['msg']: #seems to be the consistently changing thing
print i[c4d.DESC_NAME] #the number stays [c](https://www.google.com/search?client=safari&rls=en&q=consistent&ie=UTF-8&oe=UTF-8)onsistent aligning with different button presses
Let me know if anyone has more light to shed.
Thanks,
Adam
On 15/10/2014 at 14:36, xxxxxxxx wrote:
It seems we are able to use message function in python tag now.
PythonTag with UserDataButton and following lines...
import c4d
#Welcome to the world of Python
def message(id, data) :
if id == 17:
print "UserData-ID: ", data["descid"][1].id
def main() :
pass #put in your code here
On 15/10/2014 at 23:56, xxxxxxxx wrote:
Hi,
thank you both Adam and rown.
For the idea and the proper solution at the end.
This works!
Best wishes
Martin
On 16/10/2014 at 01:47, xxxxxxxx wrote:
#define MSG_DESCRIPTION_CHECKUPDATE 17 ///< Allows elements to determine the type of refresh after a parameter has been changed in the Active manager.
#define MSG_DESCRIPTION_COMMAND 18 ///< Sent by for example @em BUTTON description element. @correspondingData{DescriptionCommand}
id == 17 - rown, you simply check out dirty of gui?! But if udata is at pyTag...
if udata at host op( _op.GetObject()_ ), thats question.
I tried through c4dAtom.Message...freeze c4d or got shutdown
On 17/08/2015 at 08:48, xxxxxxxx wrote:
Just for completeness, in this thread there's now a more complete example, how to use User Data buttons in the Interaction Tag.