Cinema 4D - Python Generator Object
Jump to navigation
Jump to search
Contents
- 1 About
- 2 Python Generator, Example 1: Generate Cube From Scratch
- 3 Python Generator, Example 2: Generate Spline From Scratch
- 4 Python Generator, Example 3: Modify a Sphere
- 5 Python Generator, Example 4: Turn a Spline into Sweep Nurbs using User Data Variable to set Radius
- 6 Python Generator, Example 5: Generate a Grid of Text Numbers
- 7 See Also
- 8 Links
About
NOTE: This page is a daughter page of: Cinema 4D
Python Generator, Example 1: Generate Cube From Scratch
- Add a Python Generator object.
- The default code for this will render a cube.
import c4d
def main():
Python Generator, Example 2: Generate Spline From Scratch
import c4d
def main():
Python Generator, Example 3: Modify a Sphere
import c4d
def main():
Python Generator, Example 4: Turn a Spline into Sweep Nurbs using User Data Variable to set Radius
- Add a Python Generator object.
- Replace this code with this:
import c4d
def main():
# Get the child object (to use as the sweep spline)
# Use GetClone so we aren't working on the object itself
source = op.GetDown().GetClone()
# Create a Circle Primitive to act as the sweep profile
circle = c4d.BaseObject(c4d.Osplinecircle)
# Set the radius based on UserData 1
circle[c4d.PRIM_CIRCLE_RADIUS] = op[c4d.ID_USERDATA,1]
# Create a new SweepNURBS
sweep = c4d.BaseObject(c4d.Osweep)
# Insert the source sweep spline under the SweepNURBS
source.InsertUnder(sweep)
# Insert the circle profile spline under the SweepNURBS
circle.InsertUnder(sweep)
# Return the SweepNURBS
return sweep
- Click Linear and draw a spline with a few points.
- Place the spline as the child of "Python Generator".
- In the Attributes window click User Data > Manage User Data
- Rename this first user input from "Data" to "CircleRadius", float, float and minimum value to 0. Click okay.
- Play with user data and see the change.
- To extract the generated content (in this case a mesh) out, select "Python Generator" then "Make Editable"... and you'll have to remove the last spline (it was cloned).
NOTE: This exact example is from the Python: Generator - Cineversity, but doesn't have instructions on the Cineversity page.
Python Generator, Example 5: Generate a Grid of Text Numbers
import c4d
def main():
SPACING = 200
TEXT_SIZE = 100
NUM_COLS = 5
NUM_ROWS = 5
master_txt = c4d.BaseObject(5178) # Text
master_txt[c4d.PRIM_TEXT_TEXT]="" # Will just use as container
for z in range(0, NUM_ROWS):
for x in range(0, NUM_COLS):
txt = c4d.BaseObject(5178) # Text
txt[c4d.PRIM_TEXT_TEXT] = str(x) + "," + str(z) # Set text
txt[c4d.PRIM_TEXT_HEIGHT] = TEXT_SIZE
txt[c4d.ID_BASEOBJECT_REL_ROTATION,c4d.VECTOR_Y] = -1.571 # Rotate 90 degs
txt[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] = x * SPACING
txt[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z] = -z * SPACING
txt.InsertUnder(master_txt)
return master_txt
See Also