Module Curve
source code
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
    |  | 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.
 | 
    | Blender Curve |  | 
    | Blender Curve or a list of Blender Curves |  | 
| Create a new Curve Data object. 
    Parameters:
        name(string) - The Curve Data name.Returns: Blender CurveThe created Curve Data object. | 
 
| 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 CurvesIt 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.
             |