def convert_to_spheres():
    objs = op.GetChildren()

    for obj in objs:
        name = obj.GetName()
        newObj = c4d.BaseObject(c4d.Osphere)
        newObj.SetName(name)
        newObj.SetMg(obj.GetMg())
        newObj[c4d.PRIM_SPHERE_RAD] = .3
        doc.InsertObject(newObj, op)
Exemplo n.º 2
0
def add_divider(name, color):

    #layers ops
    root = doc.GetLayerObjectRoot()
    LayersList = root.GetChildren()

    names = []
    layers = []

    #start undo action
    doc.StartUndo()

    for l in LayersList:
        n = l.GetName()
        names.append(n)
        layers.append((n, l))

    if not name in names:
        layer = c4d.documents.LayerObject()  #new Layer
        layer.SetName(name)
        layer[c4d.ID_LAYER_COLOR] = color
        layer_settings = {
            'solo': False,
            'view': False,
            'render': True,
            'manager': True,
            'locked': False,
            'generators': False,
            'deformers': False,
            'expressions': False,
            'animation': False
        }
        layer.SetLayerData(doc, layer_settings)
        layer.InsertUnder(root)

    else:
        for n, l in layers:
            if n == name:
                layer = l
                break

    #divider ops
    null = c4d.BaseObject(c4d.Onull)
    null[c4d.ID_BASELIST_NAME] = name_null
    null[c4d.ID_LAYER_LINK] = layer
    null[c4d.NULLOBJECT_DISPLAY] = 14
    doc.InsertObject(null)
    doc.AddUndo(c4d.UNDOTYPE_NEW, null)

    #end undo action
    doc.EndUndo()

    #update scene
    c4d.EventAdd()
Exemplo n.º 3
0
def tracerFromSelection(selection):
    doc = c4d.documents.GetActiveDocument()  # Get active Cinema 4D document
    tracer = c4d.BaseObject(1018655)  # Initialize tracer object
    tracerList = c4d.InExcludeData()  # Initialize in-exclude data list
    for s in selection:  # Loop through selection
        tracerList.InsertObject(s, 1)  # Add object to list
    tracer[c4d.
           MGTRACEROBJECT_OBJECTLIST] = tracerList  # Update tracer object list
    tracer[c4d.MGTRACEROBJECT_MODE] = 1  # 'Connect All Objects'
    tracer[c4d.MGTRACEROBJECT_USEPOINTS] = False  # Disable 'Trace Vertices'
    doc.InsertObject(tracer)  # Insert tracer object to document
    doc.AddUndo(c4d.UNDOTYPE_NEW,
                tracer)  # Add undo command for inserting new object
Exemplo n.º 4
0
def addDriver(driver_name, driver_type):
    driver = doc.SearchObject(driver_name)
    if driver is None:
        driver = c4d.BaseObject(ARNOLD_DRIVER)
        driver.SetName(driver_name)
        driver[c4d.C4DAI_DRIVER_TYPE] = driver_type
        driver[c4d.C4DAI_DRIVER_MERGE_AOVS] = True
        doc.InsertObject(driver)
        # delete the BEauty AOV
        if not driver_name == "<display driver>" and "Crypto":
            beauty_aov = driver.GetDown()
            beauty_aov.Remove()
    return driver
def main():
    doc = c4d.documents.GetActiveDocument()
    selo = doc.GetActiveObjects(0)
    if len(selo) > 0:
        for o in selo:
                select_points = o.GetPointS()
                pc = len(o.GetAllPoints())
                select_points.DeselectAll()
                select_points.Select(0)
                name = o.GetName()
                nulla = c4d.BaseObject(c4d.Onull)
                if nulla is None:
                    return
                nulla[c4d.NULLOBJECT_DISPLAY] = 2
                nulla.SetAbsPos(c4d.Vector(o.GetPoint(0)[0],o.GetPoint(0)[1],o.GetPoint(0)[2]))
                nulla.SetName(name+" A")
                doc.InsertObject(nulla)
                aTag = o.MakeTag(1018074)
                aTag[c4d.HAIR_CONSTRAINTS_TAG_ANCHOR_LINK] = nulla
                doc.ExecutePasses(None, 0, 1, 1, 0)
                c4d.CallButton(aTag, c4d.HAIR_CONSTRAINTS_TAG_SET_ANCHOR)
                c4d.EventAdd()                
                select_points.DeselectAll()
                select_points.Select(pc-1)
                nullb = c4d.BaseObject(c4d.Onull)
                if nullb is None:
                    return
                nullb[c4d.NULLOBJECT_DISPLAY] = 2
                nullb.SetAbsPos(c4d.Vector(o.GetPoint(pc-1)[0],o.GetPoint(pc-1)[1],o.GetPoint(pc-1)[2]))
                nullb.SetName(name+" B")
                doc.InsertObject(nullb)
                bTag = o.MakeTag(1018074)
                bTag[c4d.HAIR_CONSTRAINTS_TAG_ANCHOR_LINK] = nullb
                doc.ExecutePasses(None, 0, 1, 1, 0)
                c4d.CallButton(bTag, c4d.HAIR_CONSTRAINTS_TAG_SET_ANCHOR)
                c4d.EventAdd()                
                o.InsertTag(c4d.BaseTag(1018068))
    c4d.EventAdd()