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 )