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 08/11/2010 at 23:28, xxxxxxxx wrote:
User Information: Cinema 4D Version: R12 Platform: Language(s) : PYTHON ;
--------- Hi,
how can I add data (list of polygons) to SelectionTag that I just created?
thank you very much in advance Andrzej
On 09/11/2010 at 02:28, xxxxxxxx wrote:
Hi Andrzej,
each PolygonObject has a selection tag from scratch. Just return the selection object via op.GetPolygonS(). For sure, you can also use BaseSelect.CopyTo to transfer the selection information.
Cheers, Sebastian
On 09/11/2010 at 03:14, xxxxxxxx wrote:
Thank you very much, Sebastian! I didn't notice that it is "build-in". (There's question how to create several selection tags and and data to them, but I don't need it right now...)
Thank you one more time Andrzej
On 09/11/2010 at 04:28, xxxxxxxx wrote:
I'm afraid it doesn't work for me. I don't know how to add some polygons (for example: 5, 10, 25, 30) to selection and write them do selectionTag. May I ask for help?
thanks Andrzej
On 09/11/2010 at 04:50, xxxxxxxx wrote:
Can you post some lines of code? Then we can figure out whats missing.
On 09/11/2010 at 05:03, xxxxxxxx wrote:
I found something that works:
tag = polyObj.MakeTag(Tpolygonselection) bs = tag.GetBaseSelect() # bs.SelectAll(0, polyObj.GetPolygonCount() - 1) # it doesn't work... bs.SetAll([1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1]) # this one works, and selects polygons 0-3 and 8-11
Andrzej
PS I'm a begginer for python, so maybe I'm making some terrible mistakes...
On 09/11/2010 at 05:20, xxxxxxxx wrote:
After you changed the selection, please send an update message to the polygon object.
polyObj.Message(c4d.MSG_UPDATE)
On 09/11/2010 at 05:41, xxxxxxxx wrote:
I change lines to:
tag = polyObj.MakeTag(Tpolygonselection) bs = tag.GetBaseSelect() bs.SelectAll(0, 10) polyObj.Message(MSG_UPDATE) print bs.GetCount() # it returns: -9 (???)
And still nothing. After making editable selectionTag is empty.
On 09/11/2010 at 05:56, xxxxxxxx wrote:
tag = polyObj.MakeTag(Tpolygonselection) #wrong, here you create a new tag bs = polyObj.GetPolygonS() #correct, returns the already built-in polygon base selection
On 09/11/2010 at 06:26, xxxxxxxx wrote:
print polyObj.GetPolygonCount() # returns "84" bs = polyObj.GetPolygonS() bs.SelectAll(0,10) polyObj.Message(MSG_UPDATE) print bs.GetCount() # still returns "-9"
Now after deleting: "tag = polyObj.MakeTag(Tpolygonselection)" there's no selectionTag after making object editable.
On 09/11/2010 at 06:50, xxxxxxxx wrote:
I can confirm SelectAll seems to work not properly, but here is a code snippet which does exactly the same and should work fine:
bs = polyObj.GetPolygonS() for x in xrange(0, 10) : bs.Select(x) polyObj.Message(c4d.MSG_UPDATE) c4d.EventAdd()
On 09/11/2010 at 07:07, xxxxxxxx wrote:
Yes, now it works! It doesn't create selectionTag after making editable, but GetCount return proper value ("10") and GetAll() return correct list. (By the way it seems like GetAll() need some "max" parameter - which (I guess) is max number of elements in returned list)
Thank you very much for your time and patience Andrzej