Here you will find documentation on all the descriptions that Cinema 4D currently has. You can list them Alphabetically, by Type or Plugin . The sample Python and C++ code is automatically generated and in some cases may not be 100% correct. If something doesn't work then please refer to the official Cinema 4D SDK documentation for more information.

IDs and information for Onurbscaps

Onurbscaps

Attributes

  • ENGLISH NAME :
  • INCLUDE : Obase
  • PATH : c4dplugin/description/onurbscaps.res
  • PLUGIN : c4dplugin
  • MAXON online help (may not exist): ONURBSCAPS

Elements

ID UI Name Type Parameters Cycle
CAPSANDBEVELS_CAP_ENABLE_START StartCap BOOL  
CAPSANDBEVELS_CAP_ENABLE_END EndCap BOOL  
CAPSANDBEVELS_BEVEL_SEPARATE SeparateBevelControls BOOL  
CAPSANDBEVELS_STARTBEVEL_TYPE BevelShape LONG  
CAPSANDBEVELS_BEVEL_TYPE_ROUND Round
CAPSANDBEVELS_BEVEL_TYPE_CURVE Curve
CAPSANDBEVELS_BEVEL_TYPE_SOLID Solid
CAPSANDBEVELS_BEVEL_TYPE_STEP Step
CAPSANDBEVELS_STARTBEVEL_OFFSET Size REAL
UNIT METER
MINSLIDER 0.0
MAXSLIDER 100.0
STEP 0.01
CUSTOMGUI REALSLIDER
CAPSANDBEVELS_STARTBEVEL_MODE ExtendedShape BOOL  
CAPSANDBEVELS_STARTBEVEL_HEIGHT Height REAL
UNIT METER
MINSLIDER -100.0
MAXSLIDER 100.0
STEP 0.01
CUSTOMGUI REALSLIDER
CAPSANDBEVELS_STARTBEVEL_CURVE Curve SPLINE  
CAPSANDBEVELS_STARTBEVEL_DEPTH ShapeDepth REAL
UNIT PERCENT
MINSLIDER -100
MAXSLIDER 100
CUSTOMGUI REALSLIDER
PARENTCOLLAPSE
CAPSANDBEVELS_STARTBEVEL_ALONGNORMALS ExtendedShape BOOL PARENTCOLLAPSE
CAPSANDBEVELS_STARTBEVEL_ABSOLUTE UseAbsoluteValue BOOL PARENTCOLLAPSE
CAPSANDBEVELS_STARTBEVEL_ABSOLUTEDEPTH MaxShapeHeight REAL
PARENTCOLLAPSE CAPSANDBEVELS_STARTBEVEL_DEPTH
UNIT METER
MINSLIDER -100
MAXSLIDER 100
CUSTOMGUI REALSLIDER
CAPSANDBEVELS_STARTBEVEL_SEGMENTS Segments LONG
MIN 1
MAX 100
CAPSANDBEVELS_STARTBEVEL_LOADPRESET LoadPreset... BUTTON  
CAPSANDBEVELS_STARTBEVEL_SAVEPRESET SavePreset... BUTTON  
CAPSANDBEVELS_ENDBEVEL_TYPE BevelShape LONG  
CAPSANDBEVELS_BEVEL_TYPE_ROUND Round
CAPSANDBEVELS_BEVEL_TYPE_CURVE Curve
CAPSANDBEVELS_BEVEL_TYPE_SOLID Solid
CAPSANDBEVELS_BEVEL_TYPE_STEP Step
CAPSANDBEVELS_ENDBEVEL_OFFSET Size REAL
UNIT METER
MINSLIDER 0.0
MAXSLIDER 100.0
STEP 0.01
CUSTOMGUI REALSLIDER
CAPSANDBEVELS_ENDBEVEL_MODE ExtendedShape BOOL  
CAPSANDBEVELS_ENDBEVEL_HEIGHT Height REAL
UNIT METER
MINSLIDER -100.0
MAXSLIDER 100.0
STEP 0.01
CUSTOMGUI REALSLIDER
CAPSANDBEVELS_ENDBEVEL_CURVE Curve SPLINE  
CAPSANDBEVELS_ENDBEVEL_DEPTH ShapeDepth REAL
UNIT PERCENT
MINSLIDER -100
MAXSLIDER 100.0
CUSTOMGUI REALSLIDER
PARENTCOLLAPSE
CAPSANDBEVELS_ENDBEVEL_ALONGNORMALS ExtendedShape BOOL PARENTCOLLAPSE
CAPSANDBEVELS_ENDBEVEL_ABSOLUTE UseAbsoluteValue BOOL PARENTCOLLAPSE
CAPSANDBEVELS_ENDBEVEL_ABSOLUTEDEPTH MaxShapeHeight REAL
PARENTCOLLAPSE CAPSANDBEVELS_ENDBEVEL_DEPTH
UNIT METER
MINSLIDER -100
MAXSLIDER 100
CUSTOMGUI REALSLIDER
CAPSANDBEVELS_ENDBEVEL_SEGMENTS Segments LONG
MIN 1
MAX 100
CAPSANDBEVELS_ENDBEVEL_LOADPRESET LoadPreset... BUTTON  
CAPSANDBEVELS_ENDBEVEL_SAVEPRESET SavePreset... BUTTON  
CAPSANDBEVELS_BEVEL_OUTSIDE BevelOutside BOOL  
CAPSANDBEVELS_AVOIDINTERSECTION AvoidSelfIntersections BOOL  
CAPSANDBEVELS_CAP_TYPE CapsType LONG PARENTCOLLAPSE
CAPSANDBEVELS_CAP_TYPE_TRI Triangles
CAPSANDBEVELS_CAP_TYPE_QUAD Quadrangles
CAPSANDBEVELS_CAP_TYPE_NGON N-gon
CAPSANDBEVELS_CAP_TYPE_DELAUNAY Delaunay
CAPSANDBEVELS_CAP_TYPE_REGULAR RegularGrid
CAPSANDBEVELS_CAP_DELAUNAY_GRAD Density REAL
UNIT PERCENT
MINSLIDER 0
MAXSLIDER 100
CUSTOMGUI REALSLIDER
STEP 0.01
PARENTCOLLAPSE CAPSANDBEVELS_CAP_TYPE
MAX 100
CAPSANDBEVELS_CAP_REGULAR_SIZE Size REAL
UNIT METER
MINSLIDER 0
MAXSLIDER 100
CUSTOMGUI REALSLIDER
STEP 0.01
PARENTCOLLAPSE CAPSANDBEVELS_CAP_TYPE
MIN 0.0
CAPSANDBEVELS_CAP_DELAUNAY_QUAD QuadDominant BOOL PARENTCOLLAPSE
CAPSANDBEVELS_PHONGBREAKROUNDING BreakPhongRounding BOOL  

Example Code

The following code does not use the correct values when setting the data. You should check directly in C4D for the correct values that you should use in place of the ones that are shown. This code is just to show you how to access the values for getting and setting the parameters.

Python

import c4d
from c4d import gui
def main():
    obj = c4d.BaseObject(c4d.Onurbscaps)
    doc.InsertObject(obj)
    c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
    
    #You can set parameters two different ways. 
    #First way              
    obj[c4d.CAPSANDBEVELS_CAP_ENABLE_START] = True
    obj[c4d.CAPSANDBEVELS_CAP_ENABLE_END] = True
    obj[c4d.CAPSANDBEVELS_BEVEL_SEPARATE] = True
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_TYPE] = c4d.CAPSANDBEVELS_BEVEL_TYPE_ROUND
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_OFFSET] = 0.1
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_MODE] = True
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_HEIGHT] = 0.1
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_DEPTH] = 0.1
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_ALONGNORMALS] = True
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_ABSOLUTE] = True
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_ABSOLUTEDEPTH] = 0.1
    obj[c4d.CAPSANDBEVELS_STARTBEVEL_SEGMENTS] = 1
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_TYPE] = c4d.CAPSANDBEVELS_BEVEL_TYPE_ROUND
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_OFFSET] = 0.1
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_MODE] = True
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_HEIGHT] = 0.1
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_DEPTH] = 0.1
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_ALONGNORMALS] = True
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_ABSOLUTE] = True
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_ABSOLUTEDEPTH] = 0.1
    obj[c4d.CAPSANDBEVELS_ENDBEVEL_SEGMENTS] = 1
    obj[c4d.CAPSANDBEVELS_BEVEL_OUTSIDE] = True
    obj[c4d.CAPSANDBEVELS_AVOIDINTERSECTION] = True
    obj[c4d.CAPSANDBEVELS_CAP_TYPE] = c4d.CAPSANDBEVELS_CAP_TYPE_TRI
    obj[c4d.CAPSANDBEVELS_CAP_DELAUNAY_GRAD] = 0.1
    obj[c4d.CAPSANDBEVELS_CAP_REGULAR_SIZE] = 0.1
    obj[c4d.CAPSANDBEVELS_CAP_DELAUNAY_QUAD] = True
    obj[c4d.CAPSANDBEVELS_PHONGBREAKROUNDING] = True
    
    #Second way, using the base container.
    bc = obj.GetDataInstance()
    bc.SetBool(c4d.CAPSANDBEVELS_CAP_ENABLE_START,True)
    bc.SetBool(c4d.CAPSANDBEVELS_CAP_ENABLE_END,True)
    bc.SetBool(c4d.CAPSANDBEVELS_BEVEL_SEPARATE,True)
    bc.SetInt32(c4d.CAPSANDBEVELS_STARTBEVEL_TYPE,c4d.CAPSANDBEVELS_BEVEL_TYPE_ROUND)
    bc.SetFloat(c4d.CAPSANDBEVELS_STARTBEVEL_OFFSET,0.1)
    bc.SetBool(c4d.CAPSANDBEVELS_STARTBEVEL_MODE,True)
    bc.SetFloat(c4d.CAPSANDBEVELS_STARTBEVEL_HEIGHT,0.1)
    bc.SetFloat(c4d.CAPSANDBEVELS_STARTBEVEL_DEPTH,0.1)
    bc.SetBool(c4d.CAPSANDBEVELS_STARTBEVEL_ALONGNORMALS,True)
    bc.SetBool(c4d.CAPSANDBEVELS_STARTBEVEL_ABSOLUTE,True)
    bc.SetFloat(c4d.CAPSANDBEVELS_STARTBEVEL_ABSOLUTEDEPTH,0.1)
    bc.SetInt32(c4d.CAPSANDBEVELS_STARTBEVEL_SEGMENTS,1)
    bc.SetInt32(c4d.CAPSANDBEVELS_ENDBEVEL_TYPE,c4d.CAPSANDBEVELS_BEVEL_TYPE_ROUND)
    bc.SetFloat(c4d.CAPSANDBEVELS_ENDBEVEL_OFFSET,0.1)
    bc.SetBool(c4d.CAPSANDBEVELS_ENDBEVEL_MODE,True)
    bc.SetFloat(c4d.CAPSANDBEVELS_ENDBEVEL_HEIGHT,0.1)
    bc.SetFloat(c4d.CAPSANDBEVELS_ENDBEVEL_DEPTH,0.1)
    bc.SetBool(c4d.CAPSANDBEVELS_ENDBEVEL_ALONGNORMALS,True)
    bc.SetBool(c4d.CAPSANDBEVELS_ENDBEVEL_ABSOLUTE,True)
    bc.SetFloat(c4d.CAPSANDBEVELS_ENDBEVEL_ABSOLUTEDEPTH,0.1)
    bc.SetInt32(c4d.CAPSANDBEVELS_ENDBEVEL_SEGMENTS,1)
    bc.SetBool(c4d.CAPSANDBEVELS_BEVEL_OUTSIDE,True)
    bc.SetBool(c4d.CAPSANDBEVELS_AVOIDINTERSECTION,True)
    bc.SetInt32(c4d.CAPSANDBEVELS_CAP_TYPE,c4d.CAPSANDBEVELS_CAP_TYPE_TRI)
    bc.SetFloat(c4d.CAPSANDBEVELS_CAP_DELAUNAY_GRAD,0.1)
    bc.SetFloat(c4d.CAPSANDBEVELS_CAP_REGULAR_SIZE,0.1)
    bc.SetBool(c4d.CAPSANDBEVELS_CAP_DELAUNAY_QUAD,True)
    bc.SetBool(c4d.CAPSANDBEVELS_PHONGBREAKROUNDING,True)

if __name__=='__main__':
    main()
             

C++

#include "c4d.h"
#include "../c4dplugin/description/onurbscaps.h"
void SampleFunction()
{
    BaseDocument *pDoc = GetActiveDocument();
    BaseObject *pObject = BaseObject::Alloc(Onurbscaps);
    pDoc->InsertObject(pObject);
    pDoc->StartUndo();
    pDoc->AddUndo(UNDO_NEW,pObject);
    pDoc->EndUndo();
    EventAdd(EVENT_FORCEREDRAW);
    
    //You can set parameters two different ways. 

    //First way              
    //Some objects do not store all their data in the container. You need to use GetParameter()/SetParameter() instead. 

    DESCFLAGS_SET flags = DESCFLAGS_SET_PARAM_SET;
    pObject->SetParameter(DescID(CAPSANDBEVELS_CAP_ENABLE_START),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_CAP_ENABLE_END),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_BEVEL_SEPARATE),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_TYPE),GeData(CAPSANDBEVELS_BEVEL_TYPE_ROUND),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_OFFSET),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_MODE),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_HEIGHT),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_DEPTH),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_ALONGNORMALS),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_ABSOLUTE),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_ABSOLUTEDEPTH),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_STARTBEVEL_SEGMENTS),GeData(1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_TYPE),GeData(CAPSANDBEVELS_BEVEL_TYPE_ROUND),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_OFFSET),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_MODE),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_HEIGHT),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_DEPTH),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_ALONGNORMALS),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_ABSOLUTE),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_ABSOLUTEDEPTH),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_ENDBEVEL_SEGMENTS),GeData(1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_BEVEL_OUTSIDE),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_AVOIDINTERSECTION),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_CAP_TYPE),GeData(CAPSANDBEVELS_CAP_TYPE_TRI),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_CAP_DELAUNAY_GRAD),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_CAP_REGULAR_SIZE),GeData(0.1),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_CAP_DELAUNAY_QUAD),GeData(true),flags);
    pObject->SetParameter(DescID(CAPSANDBEVELS_PHONGBREAKROUNDING),GeData(true),flags);
    pObject->Message(MSG_UPDATE);            

    //Second way, using the base container.
    BaseContainer *bc =     pObject->GetDataInstance();
    bc->SetBool(CAPSANDBEVELS_CAP_ENABLE_START,true);
    bc->SetBool(CAPSANDBEVELS_CAP_ENABLE_END,true);
    bc->SetBool(CAPSANDBEVELS_BEVEL_SEPARATE,true);
    bc->SetInt32(CAPSANDBEVELS_STARTBEVEL_TYPE,CAPSANDBEVELS_BEVEL_TYPE_ROUND);
    bc->SetFloat(CAPSANDBEVELS_STARTBEVEL_OFFSET,0.1);
    bc->SetBool(CAPSANDBEVELS_STARTBEVEL_MODE,true);
    bc->SetFloat(CAPSANDBEVELS_STARTBEVEL_HEIGHT,0.1);
    bc->SetFloat(CAPSANDBEVELS_STARTBEVEL_DEPTH,0.1);
    bc->SetBool(CAPSANDBEVELS_STARTBEVEL_ALONGNORMALS,true);
    bc->SetBool(CAPSANDBEVELS_STARTBEVEL_ABSOLUTE,true);
    bc->SetFloat(CAPSANDBEVELS_STARTBEVEL_ABSOLUTEDEPTH,0.1);
    bc->SetInt32(CAPSANDBEVELS_STARTBEVEL_SEGMENTS,1);
    bc->SetInt32(CAPSANDBEVELS_ENDBEVEL_TYPE,CAPSANDBEVELS_BEVEL_TYPE_ROUND);
    bc->SetFloat(CAPSANDBEVELS_ENDBEVEL_OFFSET,0.1);
    bc->SetBool(CAPSANDBEVELS_ENDBEVEL_MODE,true);
    bc->SetFloat(CAPSANDBEVELS_ENDBEVEL_HEIGHT,0.1);
    bc->SetFloat(CAPSANDBEVELS_ENDBEVEL_DEPTH,0.1);
    bc->SetBool(CAPSANDBEVELS_ENDBEVEL_ALONGNORMALS,true);
    bc->SetBool(CAPSANDBEVELS_ENDBEVEL_ABSOLUTE,true);
    bc->SetFloat(CAPSANDBEVELS_ENDBEVEL_ABSOLUTEDEPTH,0.1);
    bc->SetInt32(CAPSANDBEVELS_ENDBEVEL_SEGMENTS,1);
    bc->SetBool(CAPSANDBEVELS_BEVEL_OUTSIDE,true);
    bc->SetBool(CAPSANDBEVELS_AVOIDINTERSECTION,true);
    bc->SetInt32(CAPSANDBEVELS_CAP_TYPE,CAPSANDBEVELS_CAP_TYPE_TRI);
    bc->SetFloat(CAPSANDBEVELS_CAP_DELAUNAY_GRAD,0.1);
    bc->SetFloat(CAPSANDBEVELS_CAP_REGULAR_SIZE,0.1);
    bc->SetBool(CAPSANDBEVELS_CAP_DELAUNAY_QUAD,true);
    bc->SetBool(CAPSANDBEVELS_PHONGBREAKROUNDING,true);
    pObject->Message(MSG_UPDATE);                                                      
}
             

Buttons

This node has buttons. Buttons can manually be executed by calling the following code

Python

c4d.CallButton(obj,c4d.CAPSANDBEVELS_STARTBEVEL_LOADPRESET)
c4d.CallButton(obj,c4d.CAPSANDBEVELS_STARTBEVEL_SAVEPRESET)
c4d.CallButton(obj,c4d.CAPSANDBEVELS_ENDBEVEL_LOADPRESET)
c4d.CallButton(obj,c4d.CAPSANDBEVELS_ENDBEVEL_SAVEPRESET)

C++

DescriptionCommand dc;
dc.id = DescID(CAPSANDBEVELS_STARTBEVEL_LOADPRESET);             
pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);

DescriptionCommand dc; dc.id = DescID(CAPSANDBEVELS_STARTBEVEL_SAVEPRESET); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(CAPSANDBEVELS_ENDBEVEL_LOADPRESET); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(CAPSANDBEVELS_ENDBEVEL_SAVEPRESET); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);