Curve Operators

bpy.ops.curve.cyclic_toggle(direction='CYCLIC_U')

Make active spline closed/opened loop

Parameters:direction (enum in ['CYCLIC_U', 'CYCLIC_V'], (optional)) – Direction, Direction to make surface cyclic in
bpy.ops.curve.de_select_first()

(De)select first of visible part of each NURBS

bpy.ops.curve.de_select_last()

(De)select last of visible part of each NURBS

bpy.ops.curve.decimate(ratio=1.0)

Simplify selected curves

Parameters:ratio (float in [0, 1], (optional)) – Ratio
bpy.ops.curve.delete(type='VERT')

Delete selected control points or segments

Parameters:type (enum in ['VERT', 'SEGMENT'], (optional)) – Type, Which elements to delete
bpy.ops.curve.dissolve_verts()

Delete selected control points, correcting surrounding handles

bpy.ops.curve.draw(error_threshold=0.0, fit_method='REFIT', corner_angle=1.22173, use_cyclic=True, stroke=None, wait_for_input=True)

Draw a freehand spline

Parameters:
  • error_threshold (float in [0, 10], (optional)) – Error, Error distance threshold (in object units)
  • fit_method (enum in ['REFIT', 'SPLIT'], (optional)) –

    Fit Method

    • REFIT Refit, Incrementally re-fit the curve (high quality).
    • SPLIT Split, Split the curve until the tolerance is met (fast).
  • corner_angle (float in [0, 3.14159], (optional)) – Corner Angle
  • use_cyclic (boolean, (optional)) – Cyclic
  • stroke (bpy_prop_collection of OperatorStrokeElement, (optional)) – Stroke
  • wait_for_input (boolean, (optional)) – Wait for Input
bpy.ops.curve.duplicate()

Duplicate selected control points

bpy.ops.curve.duplicate_move(CURVE_OT_duplicate=None, TRANSFORM_OT_translate=None)

Duplicate curve and move

Parameters:
  • CURVE_OT_duplicate (CURVE_OT_duplicate, (optional)) – Duplicate Curve, Duplicate selected control points
  • TRANSFORM_OT_translate (TRANSFORM_OT_translate, (optional)) – Move, Move selected items
bpy.ops.curve.extrude(mode='TRANSLATION')

Extrude selected control point(s)

Parameters:mode (enum in ['INIT', 'DUMMY', 'TRANSLATION', 'ROTATION', 'RESIZE', 'SKIN_RESIZE', 'TOSPHERE', 'SHEAR', 'BEND', 'SHRINKFATTEN', 'TILT', 'TRACKBALL', 'PUSHPULL', 'CREASE', 'MIRROR', 'BONE_SIZE', 'BONE_ENVELOPE', 'BONE_ENVELOPE_DIST', 'CURVE_SHRINKFATTEN', 'MASK_SHRINKFATTEN', 'GPENCIL_SHRINKFATTEN', 'BONE_ROLL', 'TIME_TRANSLATE', 'TIME_SLIDE', 'TIME_SCALE', 'TIME_EXTEND', 'BAKE_TIME', 'BWEIGHT', 'ALIGN', 'EDGESLIDE', 'SEQSLIDE', 'GPENCIL_OPACITY'], (optional)) – Mode
bpy.ops.curve.extrude_move(CURVE_OT_extrude=None, TRANSFORM_OT_translate=None)

Extrude curve and move result

Parameters:
  • CURVE_OT_extrude (CURVE_OT_extrude, (optional)) – Extrude, Extrude selected control point(s)
  • TRANSFORM_OT_translate (TRANSFORM_OT_translate, (optional)) – Move, Move selected items
bpy.ops.curve.handle_type_set(type='AUTOMATIC')

Set type of handles for selected control points

Parameters:type (enum in ['AUTOMATIC', 'VECTOR', 'ALIGNED', 'FREE_ALIGN', 'TOGGLE_FREE_ALIGN'], (optional)) – Type, Spline type
bpy.ops.curve.hide(unselected=False)

Hide (un)selected control points

Parameters:unselected (boolean, (optional)) – Unselected, Hide unselected rather than selected
bpy.ops.curve.make_segment()

Join two curves by their selected ends

bpy.ops.curve.match_texture_space()

Match texture space to object’s bounding box

bpy.ops.curve.normals_make_consistent(calc_length=False)

Recalculate the direction of selected handles

Parameters:calc_length (boolean, (optional)) – Length, Recalculate handle length
bpy.ops.curve.primitive_bezier_circle_add(radius=1.0, enter_editmode=False, align='WORLD', location=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0))

Construct a Bezier Circle

Parameters:
  • radius (float in [0, inf], (optional)) – Radius
  • enter_editmode (boolean, (optional)) – Enter Editmode, Enter editmode when adding this object
  • align (enum in ['WORLD', 'VIEW', 'CURSOR'], (optional)) –

    Align, The alignment of the new object

    • WORLD World, Align the new object to the world.
    • VIEW View, Align the new object to the view.
    • CURSOR 3D Cursor, Use the 3D cursor orientation for the new object.
  • location (float array of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
  • rotation (float array of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
bpy.ops.curve.primitive_bezier_curve_add(radius=1.0, enter_editmode=False, align='WORLD', location=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0))

Construct a Bezier Curve

Parameters:
  • radius (float in [0, inf], (optional)) – Radius
  • enter_editmode (boolean, (optional)) – Enter Editmode, Enter editmode when adding this object
  • align (enum in ['WORLD', 'VIEW', 'CURSOR'], (optional)) –

    Align, The alignment of the new object

    • WORLD World, Align the new object to the world.
    • VIEW View, Align the new object to the view.
    • CURSOR 3D Cursor, Use the 3D cursor orientation for the new object.
  • location (float array of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
  • rotation (float array of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
bpy.ops.curve.primitive_nurbs_circle_add(radius=1.0, enter_editmode=False, align='WORLD', location=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0))

Construct a Nurbs Circle

Parameters:
  • radius (float in [0, inf], (optional)) – Radius
  • enter_editmode (boolean, (optional)) – Enter Editmode, Enter editmode when adding this object
  • align (enum in ['WORLD', 'VIEW', 'CURSOR'], (optional)) –

    Align, The alignment of the new object

    • WORLD World, Align the new object to the world.
    • VIEW View, Align the new object to the view.
    • CURSOR 3D Cursor, Use the 3D cursor orientation for the new object.
  • location (float array of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
  • rotation (float array of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
bpy.ops.curve.primitive_nurbs_curve_add(radius=1.0, enter_editmode=False, align='WORLD', location=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0))

Construct a Nurbs Curve

Parameters:
  • radius (float in [0, inf], (optional)) – Radius
  • enter_editmode (boolean, (optional)) – Enter Editmode, Enter editmode when adding this object
  • align (enum in ['WORLD', 'VIEW', 'CURSOR'], (optional)) –

    Align, The alignment of the new object

    • WORLD World, Align the new object to the world.
    • VIEW View, Align the new object to the view.
    • CURSOR 3D Cursor, Use the 3D cursor orientation for the new object.
  • location (float array of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
  • rotation (float array of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
bpy.ops.curve.primitive_nurbs_path_add(radius=1.0, enter_editmode=False, align='WORLD', location=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0))

Construct a Path

Parameters:
  • radius (float in [0, inf], (optional)) – Radius
  • enter_editmode (boolean, (optional)) – Enter Editmode, Enter editmode when adding this object
  • align (enum in ['WORLD', 'VIEW', 'CURSOR'], (optional)) –

    Align, The alignment of the new object

    • WORLD World, Align the new object to the world.
    • VIEW View, Align the new object to the view.
    • CURSOR 3D Cursor, Use the 3D cursor orientation for the new object.
  • location (float array of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
  • rotation (float array of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
bpy.ops.curve.radius_set(radius=1.0)

Set per-point radius which is used for bevel tapering

Parameters:radius (float in [0, inf], (optional)) – Radius
bpy.ops.curve.reveal(select=True)

Reveal hidden control points

Parameters:select (boolean, (optional)) – Select
bpy.ops.curve.select_all(action='TOGGLE')

(De)select all control points

Parameters:action (enum in ['TOGGLE', 'SELECT', 'DESELECT', 'INVERT'], (optional)) –

Action, Selection action to execute

  • TOGGLE Toggle, Toggle selection for all elements.
  • SELECT Select, Select all elements.
  • DESELECT Deselect, Deselect all elements.
  • INVERT Invert, Invert selection of all elements.
bpy.ops.curve.select_less()

Reduce current selection by deselecting boundary elements

bpy.ops.curve.select_linked()

Select all control points linked to the current selection

bpy.ops.curve.select_linked_pick(deselect=False)

Select all control points linked to already selected ones

Parameters:deselect (boolean, (optional)) – Deselect, Deselect linked control points rather than selecting them
bpy.ops.curve.select_more()

Select control points directly linked to already selected ones

bpy.ops.curve.select_next()

Select control points following already selected ones along the curves

bpy.ops.curve.select_nth(skip=1, nth=1, offset=0)

Deselect every Nth point starting from the active one

Parameters:
  • skip (int in [1, inf], (optional)) – Deselected, Number of deselected elements in the repetitive sequence
  • nth (int in [1, inf], (optional)) – Selected, Number of selected elements in the repetitive sequence
  • offset (int in [-inf, inf], (optional)) – Offset, Offset from the starting point
bpy.ops.curve.select_previous()

Select control points preceding already selected ones along the curves

bpy.ops.curve.select_random(percent=50.0, seed=0, action='SELECT')

Randomly select some control points

Parameters:
  • percent (float in [0, 100], (optional)) – Percent, Percentage of objects to select randomly
  • seed (int in [0, inf], (optional)) – Random Seed, Seed for the random number generator
  • action (enum in ['SELECT', 'DESELECT'], (optional)) –

    Action, Selection action to execute

    • SELECT Select, Select all elements.
    • DESELECT Deselect, Deselect all elements.
bpy.ops.curve.select_row()

Select a row of control points including active one

bpy.ops.curve.select_similar(type='WEIGHT', compare='EQUAL', threshold=0.1)

Select similar curve points by property type

Parameters:
  • type (enum in ['TYPE', 'RADIUS', 'WEIGHT', 'DIRECTION'], (optional)) – Type
  • compare (enum in ['EQUAL', 'GREATER', 'LESS'], (optional)) – Compare
  • threshold (float in [0, inf], (optional)) – Threshold
bpy.ops.curve.separate()

Separate selected points from connected unselected points into a new object

bpy.ops.curve.shade_flat()

Set shading to flat

bpy.ops.curve.shade_smooth()

Set shading to smooth

bpy.ops.curve.shortest_path_pick()

Select shortest path between two selections

bpy.ops.curve.smooth()

Flatten angles of selected points

bpy.ops.curve.smooth_radius()

Interpolate radii of selected points

bpy.ops.curve.smooth_tilt()

Interpolate tilt of selected points

bpy.ops.curve.smooth_weight()

Interpolate weight of selected points

bpy.ops.curve.spin(center=(0.0, 0.0, 0.0), axis=(0.0, 0.0, 0.0))

Extrude selected boundary row around pivot point and current view axis

Parameters:
  • center (float array of 3 items in [-inf, inf], (optional)) – Center, Center in global view space
  • axis (float array of 3 items in [-1, 1], (optional)) – Axis, Axis in global view space
bpy.ops.curve.spline_type_set(type='POLY', use_handles=False)

Set type of active spline

Parameters:
  • type (enum in ['POLY', 'BEZIER', 'NURBS'], (optional)) – Type, Spline type
  • use_handles (boolean, (optional)) – Handles, Use handles when converting bezier curves into polygons
bpy.ops.curve.spline_weight_set(weight=1.0)

Set softbody goal weight for selected points

Parameters:weight (float in [0, 1], (optional)) – Weight
bpy.ops.curve.split()

Split off selected points from connected unselected points

bpy.ops.curve.subdivide(number_cuts=1)

Subdivide selected segments

Parameters:number_cuts (int in [1, 1000], (optional)) – Number of cuts
bpy.ops.curve.switch_direction()

Switch direction of selected splines

bpy.ops.curve.tilt_clear()

Clear the tilt of selected control points

bpy.ops.curve.vertex_add(location=(0.0, 0.0, 0.0))

Add a new control point (linked to only selected end-curve one, if any)

Parameters:location (float array of 3 items in [-inf, inf], (optional)) – Location, Location to add new vertex at