NoKeyValue (FCurve)

Description

Sets or returns the value of the FCurve (as a Double) when there are no keys.

C# Syntax

// get accessor
Object rtn = FCurve.NoKeyValue;

// set accessor
FCurve.NoKeyValue = Object;

Examples

1. VBScript Example

'
'  This example demonstrates how to get the value of 
'  an FCurve when there are no keys.
'
set oCube = ActiveSceneRoot.AddGeometry("Cube","MeshSurface")
dim aValues
aValues = Array(0.00, 5.00, 1.00, 6.00, 2.00, 7.00, 3.00, 8.00, 4.00, 9.00, 5.00, 10.00)
set oFCurve = oCube.PosX.AddFCurve2( aValues)

LogMessage "FCurve NoKeyValue : " & oFCurve.NoKeyValue

' Outputs:
'INFO : FCurve NoKeyValue : 5

2. Python Example

# 
# This Python example illustrates how to create an fcurve and set the no key 
# value. This value is used when an fcurve is created with no keys. By default
# it is the value at the time the fcurve was created.
# 
# We try to import the XSI constants from win32com.client. This assumes that
# the makepy.py utility has been used on the XSI type library files (.tlb);
# this automatically installs the XSI constants into win32com.client.constants
# 

from win32com.client import constants
from win32com.shell import shell

import pythoncom

# Define constants
try:
   siInfo = constants.siInfo
   siStandardFCurve = constants.siStandardFCurve
except:
   # typelib not found
   siInfo = 4
   siStandardFCurve = 20

# Create new scene
null = Application.NewScene("", 0)

# Create a null
null = Application.GetPrim("Null", "", "", "")

# Get the posx parameter from the null
posx = null.posx

# Set the value of posx; this will be the default nokeyvalue
posx.value =  10
val = posx.value
Application.LogMessage( 'posx.value before = ' + str(val), siInfo )

# Define an empty keys array
keys = []

# Create an fcurve on posx
fc = posx.AddFCurve2( keys, siStandardFCurve )

# Get the current nokeyvalue value
val = fc.NoKeyValue
Application.LogMessage( 'fc.NoKeyValue before = ' + str(val), siInfo )

# Set the fc nokeyvalue
fc.NoKeyValue = 2.5
val = fc.NoKeyValue
Application.LogMessage( 'fc.NoKeyValue after = ' + str(val), siInfo )

# Get the value of posx; should be the new nokeyvalue
val = posx.Value

Application.LogMessage( 'posx.value after = ' + str(val), siInfo )

# Test undo/redo

# Undo Set fc no key value 
Application.Undo()
val  = fc.NoKeyValue
Application.LogMessage( 'fc.NoKeyValue undo = ' + str(val), siInfo )

# Redo Set fc no key value 
Application.Redo()
val = fc.NoKeyValue
Application.LogMessage( 'fc.NoKeyValue redo = ' + str(val), siInfo )

# Produces the following output: 
#INFO : posx.value before = 10.0
#INFO : fc.NoKeyValue before = 10.0
#INFO : fc.NoKeyValue after = 2.5
#INFO : posx.value after = 2.5
#INFO : fc.NoKeyValue undo = 10.0
#INFO : fc.NoKeyValue redo = 2.5


SOFTIMAGE|XSI v6.01     

Return to Softimage XSI Index