Go to: Synopsis. Return value. Flags. Python examples.


curveIntersect( string string , [constructionHistory=boolean], [direction=[linear, linear, linear]], [tolerance=linear], [useDirection=boolean])

Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.

curveIntersect is undoable, queryable, and editable.

You must specify two curves to intersect.

This command either returns the parameter values at which the given pair of curves intersect, or returns a dependency node that provides the intersection information. If you want to find the intersection of the curves in a specific direction you must use BOTH the "-useDirection" flag and the "direction" flag.

Return value


In query mode, return type is based on queried flag.


constructionHistory, direction, tolerance, useDirection
Long name (short name) Argument types Properties
Common flags
constructionHistory(ch) boolean create
Turn the construction history on or off
useDirection(ud) boolean queryedit
If true, use direction flag. The input curves are first projected in a specified direction and then intersected. If false, this command will only find true 3D intersections.
Default: false
direction(d) [linear, linear, linear] queryedit
The direction that the input curves are projected in before intersecting. This vector is only used if "useDirection" flag is true.
tolerance(tol) linear queryedit
The tolerance that the intersection is calculated with. For example, given two curves end-to-end, the ends must be within tolerance for an intersection to be returned.
Default: 0.001

Flag can appear in Create mode of command Flag can appear in Edit mode of command
Flag can appear in Query mode of command Flag can have multiple arguments, passed either as a tuple or a list.

Python examples

import maya.cmds as cmds

cmds.curveIntersect( 'curve1', 'curve2' )
# Returns the parameter values that the curves intersect at.
# eg. if 6 parameter values are returned, the first 3 are
# on curve1 and the last 3 are on curve2.

cmds.curveIntersect( 'curve1', 'curve2', useDirection=True, direction=(0, 1, 0) )
# Returns the parameter values that the curves intersect at
# when projected along vector (0, 1, 0).  This is useful
# for example when you are viewing the two curves in an orthographic
# view and the curves appear to intersect, even though
# they do not intersect in 3D.

node = cmds.curveIntersect('curve1', 'curve2', ch= True)
p1 = cmds.getAttr(node + ".parameter1" )   # or use ".p1"
p2 = cmds.getAttr(node + ".parameter2" )   # or use ".p2"
# Returns a string which is the name of a new curveIntersect
# dependency node.
# The "getAttr" commands return the parameter values at
# which the curves intersect each other.