Module Curve
[frames] | no frames]

Module Curve

The Blender.Curve submodule.

Curve Data

This module provides access to Curve Data objects in Blender.

A Blender Curve Data consists of multiple CurNurb(s). Try converting a Text object to a Curve to see an example of this. Each curve is of type Bezier or Nurb. The underlying CurNurb(s) can be accessed with the [] operator. Operator [] returns an object of type CurNurb. Removing a CurNurb can be done this way too. del curve[0] removes the first curve.

Note that CurNurb can be used to acces a curve of any type (Poly, Bezier or Nurb)

The Curve module also supports the Python iterator interface. This means you can access the CurNurb(s) in a Curve and the control points in a CurNurb using a Python for statement.

Add a Curve to a Scene Example:

       from Blender import Curve, Object, Scene
       cu = Curve.New()             # create new  curve data
       scn = Scene.GetCurrent()    # get current scene
       ob = scn.objects.new(cu)     # make a new curve from the curve data

Iterator Example:

       from Blender import Curve, Object, Scene
       scn = Scene.GetCurrent()    # get current scene
       ob = scn.objects.active
       curvedata = ob.data
       for curnurb in curvedata:
               print type( curnurb ), curnurb
               for point in curnurb:
                       print type( point ), point

Creating a Curve from a list of Vec triples Examples:

       from Blender import *
       def bezList2Curve(bezier_vecs):
               '''
               Take a list or vector triples and converts them into a bezier curve object
               '''
               
               def bezFromVecs(vecs):
                       '''
                       Bezier triple from 3 vecs, shortcut functon
                       '''
                       bt= BezTriple.New(                      vecs[0].x, vecs[0].y, vecs[0].z,                        vecs[1].x, vecs[1].y, vecs[1].z,                        vecs[2].x, vecs[2].y, vecs[2].z)
                       
                       bt.handleTypes= (BezTriple.HandleTypes.FREE, BezTriple.HandleTypes.FREE)
                       
                       return bt
               
               # Create the curve data with one point
               cu= Curve.New()
               cu.appendNurb(bezFromVecs(bezier_vecs[0])) # We must add with a point to start with
               cu_nurb= cu[0] # Get the first curve just added in the CurveData
               
               
               i= 1 # skip first vec triple because it was used to init the curve
               while i<len(bezier_vecs):
                       bt_vec_triple= bezier_vecs[i]
                       bt= bezFromVecs(bt_vec_triple)
                       cu_nurb.append(bt)
                       i+=1
               
               # Add the Curve into the scene
               scn= Scene.GetCurrent()
               ob = scn.objects.new(cu)
               return ob
Classes
  Curve
This object gives access to Curve and Surface data linked from Blender Objects.
  CurNurb
This object provides access to the control points of the curves that make up a Blender Curve ObData.
  SurfNurb
This object provides access to the control points of the surfaces that make up a Blender Curve.
Functions
Blender Curve
New(name)
Create a new Curve Data object.
Blender Curve or a list of Blender Curves
Get(name=None)
Get the Curve Data object(s) from Blender.
Variables
  __package__ = None
Function Details

New(name)

 

Create a new Curve Data object.

Parameters:
  • name (string) - The Curve Data name.
Returns: Blender Curve
The created Curve Data object.

Get(name=None)

 

Get the Curve Data object(s) from Blender.

Parameters:
  • name (string) - The name of the Curve Data.
Returns: Blender Curve or a list of Blender Curves
It depends on the 'name' parameter:
  • (name): The Curve Data object with the given name;
  • (): A list with all Curve Data objects in the current scene.