Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Recent
    • Tags
    • Users
    • Register
    • Login

    UV Peeler - accessible?

    Scheduled Pinned Locked Moved Cinema 4D SDK
    python
    7 Posts 3 Posters 970 Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • . Offline
      .del
      last edited by

      Hi - I'm wondering if the UV Peeler is accessible via python. I see it listed in the SDK but I'm not familiar with how to use it.

      Can it be used with SendModelingCommand or bodypaint.CallUVCommand?

      The documentation references C4DAtom.SetParameter() but I've never used this.

      Any info that can push me in the right direction is appreciated.

      thanks,
      .del

      1 Reply Last reply Reply Quote 0
      • ManuelM Offline
        Manuel
        last edited by

        hi,

        The tool UV Peeler must have some edge selected that will be used as seems. In this thread, you will find some useful information how to do that.

        To Apply the UV Peeler you have two options. One using the script log that will write for you almost all the code you need or using the function SendmodelingCommand.

        There is no public symbol defined for this tool, you need to use the value itself.

        import c4d
        from c4d import gui
        
        
        
        # using the script log only
        def MethodeOne():
            def tool() -> c4d.plugins.BasePlugin:
                return c4d.plugins.FindPlugin(doc.GetAction(), c4d.PLUGINTYPE_TOOL)
            c4d.CallCommand(1031207) # UV Peeler
            uvPeeler = tool()
            uvPeeler[c4d.MDATA_UVPEELER_MIN_U] = 0.29
            c4d.CallButton(uvPeeler, c4d.MDATA_UVPEELER_APPLY)
        
        def main():
            # using the fuinction SendModelingCommand.
            # Parameter of the tool must be defined.
            settings = c4d.BaseContainer()
            settings[c4d.MDATA_UVPEELER_MIN_U] = 0.29
            settings[c4d.MDATA_UVPEELER_MAX_U] = 1
            settings[c4d.MDATA_UVPEELER_MIN_V] = 0
            settings[c4d.MDATA_UVPEELER_MAX_V] = 1
            settings[c4d.MDATA_UVPEELER_U_UNIFORMITY] = 1
            settings[c4d.MDATA_UVPEELER_V_UNIFORMITY] = 0
            # There is no symbol that define the UVPeeler tool id. Use the value instead.
            res = c4d.utils.SendModelingCommand(command=1031207,
                                        list=[op],
                                        bc=settings,
                                        doc=doc)
            c4d.EventAdd()
        
        # Execute main()
        if __name__=='__main__':
            main()
        

        Cheers,
        Manuel

        MAXON SDK Specialist

        MAXON Registered Developer

        1 Reply Last reply Reply Quote 0
        • . Offline
          .del
          last edited by

          HI -

          Thanks for the response!

          I'm going to go with the sendModelingCommand method. I never would have thought to put the CallCommand value in there.

          This is really going to help me finish this script. I appreciate your help.

          thank you,
          .del

          1 Reply Last reply Reply Quote 0
          • . Offline
            .del
            last edited by

            Hi- How long do you keep functionality in the SDK for a tool that has been deprecated in the application?

            I'm trying to get a feel for how long I have to make changes to my scripts that rely on calling the UV Peeler.

            Thanks,
            Del

            1 Reply Last reply Reply Quote 0
            • ferdinandF Offline
              ferdinand
              last edited by

              Well, there is no hard rule, but generally we are very conservative when it comes to Python API changes and removing features in general. The UV peeler made it through the 2026.3 UV overhaul and we also did hotfix a minor API issue with the old UV-system with 2026.3.1. But I cannot give you a hard guarantee "the uv peeler will still be 2030 around" because I do not know either.

              Sometimes we have to remove features because it would be too much work carrying them on. But that is relatively rare, and I am currently not aware of any plans to deprecate the UV-Peeler or that 2026.3 changes broke it.

              MAXON SDK Specialist
              developers.maxon.net

              1 Reply Last reply Reply Quote 0
              • . Offline
                .del
                last edited by

                What I think you're saying is that I don't have to drop what I'm doing to fix my scripts before the team can move to 2026.3 but I probably ought to address it before 2027 to protect against things that are out of my control. Thanks for the response and info Ferdinand.

                1 Reply Last reply Reply Quote 0
                • ferdinandF Offline
                  ferdinand
                  last edited by ferdinand

                  I don't know what your script does and if it needs fixing for 2026.3. What I said is that we usually put a lot of effort into keeping our ABIs and APIs stable, as exemplified with the 2026.3.1 hotfix where we fixed an issue with the UV tag interface that made it incompatible with old code.

                  2026.3 contained the UV manager overhaul as its main feature. We tried not to break any glass there but I cannot rule it out. when you find a regression in our APIs, you can also always report it. when the break was unintentional we usually provide a fix (in critical cases even a hotfix) or at least a workaround.

                  We also usually do not remove systems. For example, the old content system and its "Content Browser" is still in our APIs and Cinema, although it long has been replaced by the Asset Browser and API. Can I guarantee that the UVPeeler will not be removed soon? No, we sometimes have to remove things. But it is quite rare.

                  MAXON SDK Specialist
                  developers.maxon.net

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post