Go to: Synopsis. Return value. Related. Flags. Python examples.
polySmooth([caching=boolean], [constructionHistory=boolean], [continuity=float], [divisions=int], [keepBorder=boolean], [keepHardEdge=boolean], [keepSelectionBorder=boolean], [keepTessellation=boolean], [name=string], [nodeState=int], [propagateEdgeHardness=boolean])
Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.
polySmooth is undoable, queryable, and editable.
Smooth a polygonal object. This command works on polygonal objects
or faces.
In query mode, return type is based on queried flag.
polyAppend, polyAppendVertex, polyBevel, polyChipOff, polyCreateFacet, polyExtrudeEdge, polyExtrudeFacet, polySplit, polySplitVertex, polySubdivideEdge, polySubdivideFacet, polyTriangulate
caching, constructionHistory, continuity, divisions, keepBorder, keepHardEdge, keepSelectionBorder, keepTessellation, name, nodeState, propagateEdgeHardness
Long name (short name) |
Argument types |
Properties |
continuity(c)
|
float
|
|
|
This flag specifies the smoothness parameter. The minimum value of 0.0
specifies that the faces should only be subdivided. Maximum value of 1.0 smooths
the faces as much as possible.
C: Default is 1.0
Q: When queried, this flag returns a float.
|
|
divisions(dv)
|
int
|
|
|
This flag specifies the number of recursive smoothing steps.
C: Default is 1.
Q: When queried, this flag returns an int.
|
|
keepBorder(kb)
|
boolean
|
|
|
If on, the border of the object will not move during smoothing operation.
C: Default is "on".
Q: When queried, this flag returns an int.
|
|
keepSelectionBorder(ksb)
|
boolean
|
|
|
If true, vertices on border of the selection will not be modified.
C: Default is false.
Q: When queried, this flag returns a boolean.
|
|
keepHardEdge(khe)
|
boolean
|
|
|
If true, vertices on hard edges will not be modified.
C: Default is false.
Q: When queried, this flag returns a boolean.
|
|
propagateEdgeHardness(peh)
|
boolean
|
|
|
If true, edges which are a result of smoothed edges will be given
the same value for their edge hardness. New subdivided edges will
always be smooth.
C: Default is false.
Q: When queried, this flag returns a boolean.
|
|
keepTessellation(kt)
|
boolean
|
|
|
If true, the object will be tessellated consistently at each frame.
If false, non-starlike faces will be triangulated before being
subdivided, to avoid self-overlapping faces.
C: Default is true.
Q: When queried, this flag returns a boolean.
Common flags
|
|
Common flags |
name(n)
|
string
|
|
|
Give a name to the resulting node.
|
|
constructionHistory(ch)
|
boolean
|
|
|
Turn the construction history on or off (where applicable). If
construction history is on then the corresponding node will be
inserted into the history chain for the mesh. If construction history
is off then the operation will be performed directly on the object.
Note: If the object already has construction history then
this flag is ignored and the node will always be inserted into
the history chain.
|
|
caching(cch)
|
boolean
|
|
|
Toggle caching for all attributes so that no recomputation is needed
|
|
nodeState(nds)
|
int
|
|
|
Defines how to evaluate the node.
- 0: Normal
- 1: PassThrough
- 2: Blocking
- 3: Internally disabled. Will return to Normal state when enabled
- 4: Internally disabled. Will return to PassThrough state when enabled
- 5: Internally disabled. Will return to Blocking state when enabled
|
|
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.
|
import maya.cmds as cmds
cmds.polyCube( n='plg1' )
cmds.move( -3, 0, 2 )
cmds.polyCube( n='plg2' )
cmds.move( -3, 0, -2 )
cmds.polyCube( n='plg3' )
cmds.move( 0, 0, 2 )
cmds.delete( 'plg3.f[1]' )
cmds.polyCube( n='plg4' )
cmds.move( 0, 0, -2 )
cmds.delete( 'plg4.f[1]' )
cmds.polyCube( n='plg5' )
cmds.move( 3, 0, 2 )
cmds.polyCube( n='plg6' )
cmds.move( 3, 0, -2 )
cmds.polyOptions( ao=True, db=1 )
# only one division:
cmds.polySmooth( 'plg1.f[0:5]', dv=1 )
# 2 divisions produces a round-ish object
cmds.polySmooth( 'plg2.f[0:5]', dv=2 )
# keep border edges
cmds.select( 'plg3.f[0:4]' )
cmds.polySmooth( kb=1 )
# don't keep border edges
cmds.select( 'plg4.f[0:4]' )
cmds.polySmooth( kb=0 )
# 1 division, continuity 0.2
cmds.select( 'plg5' )
cmds.polySmooth( c=0.2 )
# 1 division, continuity 0.8
cmds.polySmooth( 'plg6.f[0:5]', c=0.8 )