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
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    transfering py-Script to Plugin

    Scheduled Pinned Locked Moved PYTHON Development
    9 Posts 0 Posters 826 Views
    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.
    • H Offline
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 18/10/2012 at 13:36, xxxxxxxx wrote:

      Hi all,

      can anybody tell me how to transfer a script to a plugin?
      The script works fine.
      I have coppyed all the examples form the SDK to the pluginfolder

      I've red in the sdk...
      I've red in the forum...
      It could not be so difficult...

      I only need the first step till I can use callcommand

      Thanks a lot

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 19/10/2012 at 02:34, xxxxxxxx wrote:

        Hi,

        What you need is to develop a CommandData plugin, the easiest plugin type.
        Copy the code from this post: https://developers.maxon.net/forum/topic/6663/7259_shortcut-for-commanddata-is-not-working
        Get a unique plugin ID (value for PLUGIN_ID) at this page: <[URL-REMOVED]>
        Then in the Execute() function put your script's code.


        [URL-REMOVED] @maxon: This section contained a non-resolving link which has been removed.

        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 19/10/2012 at 13:22, xxxxxxxx wrote:

          You are my hero!!!
          Realy.

          Thanks a lot.

          But one question:
          Wy can't Maxon post such a little, easy thing in there SDK??
          There is so much, but for a beginner nothing.

          Thanks a lot again

          1 Reply Last reply Reply Quote 0
          • H Offline
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 19/10/2012 at 14:47, xxxxxxxx wrote:

            I'm struggeling again!

            Why does this not work???
            I only try to proceed several commands afer another?

            Here is the code:
            ---------------------------
            """
            Modified Date: 18/10/2012
            """

            import c4d
            import math
            import os

            from c4d import documents, plugins, bitmaps
            #Welcome to the world of Python

            PLUGIN_ID = 1234588880

            class MYPLUGIN(plugins.CommandData) :

            pass

            def Execute(self, doc) :
                       c4d.CallCommand(5159)                                # Würfel
                    c4d.CallCommand(12305)                      # Konsole...    
                       c4d.CallCommand(13957)                      # Konsole löschen

            if __name__ == "__main__":
                 # load icon.tif from res into bmp
                 bmp = bitmaps.BaseBitmap()
                 dir, file = os.path.split(__file__)
                 fn = os.path.join(dir, "res", "icon.tif")
                 bmp.InitWith(fn)
                 # register the plugin
                 okyn = plugins.RegisterCommandPlugin(id=PLUGIN_ID, str="V4D-Power-Reducer", info=c4d.PLUGINFLAG_COMMAND_HOTKEY, icon=bmp, help="", dat=MYPLUGIN())

            print "V4D-Power-Reducer ", okyn

            --------------------

            Is there any documentation "step by step" to learn how programming with phyton works??
            Thanks a lot for every hint

            1 Reply Last reply Reply Quote 0
            • H Offline
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 19/10/2012 at 15:20, xxxxxxxx wrote:

              Step one, -always- use a unique plugin ID that you get from Plugin cafe (link in Yannicks' post)
              Never, ever use a random or someone elses' ID or you are likely to cause corruption.
              You need a separate Plugin ID for every and each plugin you make.

              Python programming per se, is not Cinema specific and there are litterer tons of info
              how to on the web.

              Then I must agree, the first basic hurdles how to set up basic "default" plugin types
              is sorely missing in the SDK. It -is- the biggest problem to get started not having any of that.
              Sebastian, remember a couple of years ago the suggestion to set up this with the different
              types of Faders, buttons, link fields in a default fashion? What happened ? 🙂

              Cheers
              Lennart

              1 Reply Last reply Reply Quote 0
              • H Offline
                Helper
                last edited by

                THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                On 20/10/2012 at 04:46, xxxxxxxx wrote:

                Hi Lenard,

                my problem is not the solution of my problem in CINEMA.
                The script recorder is a very easy tool tho find the commands.

                My problems are like this:
                Must commands stand every row exactly under the last row
                Do i have to use 4 or 5 blanks in the struckture
                Why do i always get

                "    def Execute(self, doc) :"
                "IndentationError: unexpected indent"

                My scritp works very well in Cimena als a py-Script.
                What is to be done to change it to an Plugin?
                I found a nice Video in Vimao about the struckture of a plugin.
                But ther is nothing said about:
                Where do i have place my def Funktion()...

                Is there anybody out there who kmows a Book or totorial?
                Is there anybody out there who could help me (I pay the translation)

                Thanks to all

                And: Sory for my horrible englisch

                1 Reply Last reply Reply Quote 0
                • H Offline
                  Helper
                  last edited by

                  THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                  On 20/10/2012 at 10:08, xxxxxxxx wrote:

                  Yes, indents are paramount in py as they are used insted of brackets found in other coding types.
                  One usually use either a Tab step or four spaces. It is not recommended to mix what to use.
                  Either Tab or 4 spaces.
                  Check in your text application.

                  Any function of yours are normally placed before the Execute()

                  Cheers
                  Lennart

                  1 Reply Last reply Reply Quote 0
                  • H Offline
                    Helper
                    last edited by

                    THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                    On 22/10/2012 at 00:02, xxxxxxxx wrote:

                    Thanks to Lennard

                    I learn so much this weekend.
                    M fault was that I used spaces and tabs mixed

                    But now there is a new problem:
                    I tryed to define a funktion.
                    (Funtions have to be placed before the execute. wright?)

                    But nothing happens when the plugin is executet.
                    Can somebody give me a smal advice! Please
                    Here is my code
                    Thanks to all

                    """
                    V4D-Power-Reducer
                    Copyright: VISION 4D
                    Written for CINEMA 4D R14

                    Modified Date: 18/10/2012
                    """

                    import c4d
                    import math
                    import os

                    from c4d import documents, plugins, bitmaps
                    #Welcome to the world of Python

                    PLUGIN_ID = 1029229

                    class MYPLUGIN(plugins.CommandData) :
                        #pass

                    def Execute(self, doc) :
                        
                            def Test(self) :
                                print 'test'
                                return True
                        
                        
                            print 'Hello'
                            print 'Hello again'
                            Test
                            #Check_serialinfo
                            c4d.CallCommand(5159) # Würfel
                            return True

                    if __name__ == "__main__":
                        # load icon.tif from res into bmp
                        bmp = bitmaps.BaseBitmap()
                        dir, file = os.path.split(__file__)
                        fn = os.path.join(dir, "res", "icon.tif")
                        bmp.InitWith(fn)
                        # register the plugin
                        okyn = plugins.RegisterCommandPlugin(id=PLUGIN_ID, str="V4D-Power-Reducer", info=c4d.PLUGINFLAG_COMMAND_HOTKEY, icon=bmp, help="", dat=MYPLUGIN())
                        c4d.CallCommand(13957)                                    # Konsole löschen
                        print " "
                        print "----------------------------------"
                        print "V4D-Power-Reducer ", okyn
                        print "----------------------------------"

                    1 Reply Last reply Reply Quote 0
                    • H Offline
                      Helper
                      last edited by

                      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                      On 22/10/2012 at 01:10, xxxxxxxx wrote:

                      Hi,

                      It's not good practice to declare a method inside another; you should declare Test() outside of Execute(). If you only write 'Test' it will not be called, Test is just the method variable. So to call it don't forget '()'. And as it's a class method (Test( self )) self has to be added before:

                      self.Test()
                      

                      I think you should read one of the Python tutorials or books linked in the CINEMA Python SDK documentation (see Meta information: Internet Resources at the bottom of the Index page).

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