[SOLVED] CLASS! Consol ERROR!

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

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?

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/Cinema4DPythonSDK/html/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

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