Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 17/07/2012 at 23:24, xxxxxxxx wrote:
Hi everybody,
I'm asking me which elements from lib_description.h are implemented in python at the moment. In this forum there's a lot stuff dealing with hide/disable datafields, and it's a little confusing me.
After looking for a method to disable some fields of my tag-plugin I found an example that shows how to hide single userdata-fields. And it works great.
import c4d from c4d import documents def main() : doc = documents.GetActiveDocument() obj = doc.SearchObject("Null") #v1 = obj[c4d.ID_USERDATA,1] #v2 = obj[c4d.ID_USERDATA,2] allUserdatas = obj.GetUserDataContainer() for descId, container in allUserdatas: id = descId[1].id if id == 2: container[15] = False obj.SetUserDataContainer(descId, container)
The id 15 = DESC_HIDE and it works as expected. But when I try to use DESC_EDITABLE (to grey the field out/disable it) by using the id 26 nothing happens.
I guess not all id's are implemented yet? And does anybody know a method how to access not only the userdata?
I've tried the same with GetDataInstance() but as expected it doesn't work.
import c4d from c4d import documents def main() : doc = documents.GetActiveDocument() obj = doc.SearchObject("Scheibe") allData = obj.GetDataInstance() for descId, container in allData: id = descId[1].id #doesn't work, cause int is unsubscriptable if descId == 1161: container[15] = True #doesn't work, cause float does not support item assignment
Does anybody has an idea?
Cheers, Sven
On 18/07/2012 at 01:52, xxxxxxxx wrote:
Hi Sven,
It's currently only possible to access the description of an object's user data.
DESC_EDITABLE is used to disable "Edit Entry" in the popupmenu (DESC_REMOVEABLE for "Remove Entry"). This is only useful with object parameters.
EDIT: Are you trying to edit the description of your own TagData plugin?
On 18/07/2012 at 03:36, xxxxxxxx wrote:
Hi Yannik,
that's right. It's like the 'alignToSpline'-Tag where the PRIM_AXIS is only a accessible when tangential is set to true.
So it's even not possible by using GetDEnabling?
On 18/07/2012 at 05:48, xxxxxxxx wrote:
Originally posted by xxxxxxxx So it's even not possible by using GetDEnabling?
Originally posted by xxxxxxxx
Yes it's possible overriding GetDEnabling(). You return True when the requested id enabling is PRIM_AXIS.
On 18/07/2012 at 05:49, xxxxxxxx wrote:
You can grey-out elements with GetDEnabling(). That's IMHO the better version for "not-so-complex-guis". It's less distracting than elements that suddenly disappear.
On 18/07/2012 at 05:55, xxxxxxxx wrote:
Hi Niklas,
you're right. For the user it is very confusing when single elements suddenly appear/disappear.
Then I'll try this "GetDEnabling()-Thing". Seems a little bit weird after all I've read about it in this forum.
Thank you Niklas.
On 18/07/2012 at 06:23, xxxxxxxx wrote:
All great. Works like it done never anything else. Thank you both.
Now I've only to deal with the 'argument 5'-error thrown form the super-call. It's really an interesting error - when it would not be so disgusting.
return super(AlignOnMultiSpline, self).GetDEnabling(self, node, id, t_data, flags, itemdesc)
throws "TypeError: function takes at most 5 arguments (6 given)".
return super(AlignOnMultiSpline, self).GetDEnabling(node, id, t_data, flags, itemdesc)
throws "TypeError: argument 5".
Nice.
On 18/07/2012 at 10:02, xxxxxxxx wrote:
The latter call is correct. But it seems to be a bug in the SDK. See here.
-Nik
On 18/07/2012 at 22:34, xxxxxxxx wrote:
Ok, I can see it. Thx for your great help. You saved my day.
Sven
Edit: Fxxx, I've forgot the
op.InsertUnder(op)
statement.