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

    [SOLVED] CLASS! Consol ERROR!

    Scheduled Pinned Locked Moved PYTHON Development
    4 Posts 0 Posters 434 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

      On 14/04/2017 at 19:51, xxxxxxxx wrote:

      Correct me, please!

      import c4d

      class Brakers() :
          """docstring for Brakers"""
          def __init__(self, nameCBD, nameCBI, nameCBC) :
              #self.nameParent = nameParent
              self.nameCBD = nameCBD
              self.nameCBI = nameCBI
              self.nameCBC = nameCBC

      def CreateBrakerDisk(self) :
              # добавляем ноль объект braker disc
              nameCBD = c4d.BaseObject(5170)
              nameCBD.SetName('eM ' + str(nameCBD)) # braker disc
              doc.InsertObject(nameCBD)

      def CreateBrakerInstance(self) :
              nameCBI = c4d.BaseObject(5126)
              nameCBI.SetName('eM ' + str(nameCBI))
              doc.InsertObject(nameCBI, nameCBD)

      def CreateBrakerConnector(self) :
              # добавляем ноль объект wheel connector
              nameCBC = c4d.BaseObject(180000011)
              nameCBC.SetName('eM ' + str(nameCBC))
              doc.InsertObject(nameCBC)

      def main() :
          brakers_1_1 = Brakers(brakers_1_1, brakers_inst_1_1, brakers_connect_1_1)

      if __name__=='__main__':
          main()
          c4d.EventAdd()

      Concol ERROR:
      Traceback (most recent call last) :
        File "'scriptmanager'", line 34, in <module>
        File "'scriptmanager'", line 30, in main
      UnboundLocalError: local variable 'brakers_1_1' referenced before assignment

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

        On 14/04/2017 at 21:49, xxxxxxxx wrote:

        I got it

        import c4d

        class Brakers() :
            """docstring for Brakers"""
            def __init__(self) :
                
                pass

        def CreateBrakerDisk(self) :
                self.nameCBD = c4d.BaseObject(5170)
                self.nameCBD.SetName('eM ' + str(self.nameCBD))
                doc.InsertObject(self.nameCBD)

        def CreateBrakerInstance(self) :
                self.nameCBI = c4d.BaseObject(5126)
                self.nameCBI.SetName('eM ' + str(self.nameCBI))
                doc.InsertObject(self.nameCBI, self.nameCBD)

        def CreateBrakerConnector(self) :
                self.nameCBC = c4d.BaseObject(180000011)
                self.nameCBC.SetName('eM ' + str(self.nameCBC))
                doc.InsertObject(self.nameCBC)

        def main() :
            brakers_1_1 = Brakers()
            brakers_1_1.CreateBrakerDisk()
            brakers_1_1.CreateBrakerInstance()
            brakers_1_1.CreateBrakerConnector()

        if __name__=='__main__':

        main()
            c4d.EventAdd()

        But name of objects
        eM <c4d.BaseObject object called 'Connector/Connector' with ID 180000011 at 0x000000000F572110>

        How rename it?

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

          On 15/04/2017 at 03:10, xxxxxxxx wrote:

          Hello for rename use SetName().
          How I know it?
          Simply go to the sdk. As you can read it's a c4d.BaseObject. So look at BaseObject class into the sdk.
          https://developers.maxon.net/docs/py/2023_2/modules/c4d/C4DAtom/GeListNode/BaseList2D/BaseObject/index.html?highlight=baseobject

          In inheritance you can see C4d.BaseList2D. Then click on it. (since baseobject inherit from BaseList2D a BaseObject have all the function BaseList2D got)

          And here you got SetName / GetName.

          Hope it's help you

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

            On 18/04/2017 at 01:21, xxxxxxxx wrote:

            Thank you! There is an easier way!

            def __init__(self, name = None, instance = 0, insertobject = None) :
                    self.name = name
                    self.instance = instance
                    self.insertobject = insertobject

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