Module Curve
[hide private]
[frames] | no frames]

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
Classes [hide private]
  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 [hide private]
Blender Curve
New(name)
Create a new Curve Data object.
source code
Blender Curve or a list of Blender Curves
Get(name=None)
Get the Curve Data object(s) from Blender.
source code
Variables [hide private]
  __package__ = None
Function Details [hide private]

New(name)

source code 

Create a new Curve Data object.

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

Get(name=None)

source code 

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.