## PlotShape

### Introduced

v1.0

### Description

Plots the shapes for objects with shape animations.
Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:
For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.
For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).

### Scripting Syntax

    PlotShape( [InputObj], [Name], [StartFrame], [EndFrame], [StepFrame], [ApplyKeys], [Mode], [Content], [RefMode], [SingleSource], [KeyList], [ClipList] );

### Parameters

Parameter | Type | Description
--- | --- | ---
InputObj | String | List of objects whose shapes are plotted. Default Value: Current Selection
Name | String | Prefix for shape source names.
StartFrame | Double | First frame to plot
EndFrame | Double | Last frame to plot
StepFrame | Double | Step between each keys
ApplyKeys | Boolean | True to apply the plotted keys to the object
Mode | siShapeInstanceMode | Determines how the shape is to be instantiated. Default Value: siShapeBlendedWeightMode
Content | siShapeContent | Determines which deformations should get stored in the shape. Default Value: siShapeContentUseConstructionMode
RefMode | siShapeReferenceMode | The reference mode of the shape key created Default Value: siShapeLocalReferenceMode
SingleSource | Boolean | If true, the deformation will be stored into a single shape source. Default Value: True
KeyList | XSICollection | List of created shape keys
ClipList | XSICollection | List of created shape clips

### Examples

#### VBScript Example

    '
    ' This example creates an animated deformation (twist on a torus).
    ' Then, it replaces the animation by 4 shapes, placed at regular
    ' intervals. The twist op is completely replaced by shapes,
    ' with a similar result.
    '
    ' The shapes created by the plotting operation are written to the log.
    '
    ' Set up a twist deformation on a torus
    NewScene , false
    CreatePrim "Torus", "MeshSurface"
    SetValue "torus.polymsh.geom.subdivu", 24
    SetValue "torus.polymsh.geom.subdivu", 40
    SetValue "torus.polymsh.geom.subdivv", 24
    ApplyOp "Twist", "torus", 3, siPersistentOperation
    SaveKey "torus.polymsh.twistop.angle", 1, 90
    SetValue "PlayControl.Key", 50
    SetValue "PlayControl.Current", 50
    SetValue "torus.polymsh.twistop.angle", -90
    SaveKey "torus.polymsh.twistop.angle", 50, -90
    SetValue "PlayControl.Current", 1
    ' Plot the animation in shapes, from frame 0 to 50, in steps of 10 frames
    Dim CreatedClips, CreatedShapes
    PlotShape "torus", "twisted", 1, 50, 10, True, siShapeMixedWeightMode, siShapeContentAllDeforms, _
            siShapeAbsoluteReferenceMode, false, CreatedShapes, CreatedClips
    ' We can now delete the twist, and we will still have a similar result from the 5 shapes
    DeleteObj "torus.polymsh.twistop"
    for i = 0 to CreatedClips.Count-1
            Application.LogMessage "Created shape: " & CreatedShapes(i)
    next
    'This example outputs the following information to the Script Editor in Softimage:
    '
    ''INFO : Created shape: torus.polymsh.cls.twisted.twisted1
    'INFO : Created shape: torus.polymsh.cls.twisted.twisted2
    'INFO : Created shape: torus.polymsh.cls.twisted.twisted3
    'INFO : Created shape: torus.polymsh.cls.twisted.twisted4
    'INFO : Created shape: torus.polymsh.cls.twisted.twisted5