Solved To grow selection in UVPolygon mode

Hi everyone!

When C4D is in Polygon mode Grow selection can be done using SendModelingCommand e.g.

utils.SendModelingCommand(
        c4d.MCOMMAND_SELECTGROW,
        [op],
        c4d.MODELINGCOMMANDMODE_POLYGONSELECTION,
        c4d.BaseContainer(),
        doc
    )

After that, selection grows to neighbour polygons. Everithing is ok.
However, when active mode is UV Polygon then code above select neighbour polygons the same way how it was in previous case. Sometime it's ok, but not always.

The second way to grow selection is to use CallCommand

c4d.CallCommand(12558, 12558) # Grow Selection

In this case selection grows correctly in both modes.
I'll show an example. There is a simple sphere that separated by UVs in the middle. So it has 2 UV islands.

0_1550175526500_original.png

0_1550175544700_result-1.png

0_1550175550200_result-2.png

From 1 selected polygon (the first image) I want to get the result which is shown on the last image.
But I don't know how to get it without CallCommand
Sorry for mistakes. English is not my szcznek language
Cheers

Hi Kisaf, I'm afraid this is not possible from SendModelingCommand to send command in UV mode.

So it's up to you to remove the extra selected stuff or build your own grow algorithm.
A good way to achieves that could be to:

  • Detects uv island and give them an ID.
  • Store uv island ID used with the current selection.
  • Grow the selection in polygon mode
  • Deselect all polygons if they are not in the uv island.

But this not work in all cases (e.g. topology of the object is disconnected but uv are connected).
Cheers,
Maxime.