Example: Custom Command Workaround for Both Output Arguments and Return Values

This example contains a command plug-in that you can call from languages that do not support output arguments. It allows those languages to get at the GetSkeleton command’s output argument (Index) as well as the returned skeleton objects.

    ' Load MyGetSkeleton command
    function XSILoadPlugin( in_reg )
       in_reg.Name = "MyGetSkeletonPlugin"
       in_reg.Major = 1
       in_reg.Minor = 0

       in_reg.RegisterCommand "MyGetSkeleton","MyGetSkeleton"

       XSILoadPlugin = true
    end function

    ' Define MyGetSkeleton command
    function MyGetSkeleton_Init( in_ctxt )
       dim oCmd
       set oCmd = in_ctxt.Source
       oCmd.Description = "Version of GetSkeleton with no output arguments"
       oCmd.Tooltip = "Version of GetSkeleton with no output arguments"
       oCmd.ReturnValue = true

       dim oArgs
       set oArgs = oCmd.Arguments
       oArgs.Add "InputObj",siArgumentInput
       MyGetSkeleton_Init = true
    end function

    ' Execute callback for the custom command
    function MyGetSkeleton_Execute( InputObj )
       ' Call the GetSkeleton command and pack the output
       ' argument and the return value in an array
       set oSkel = GetSkeleton( InputObj, lIndex )
       aReturn = Array( lIndex, oSkel )

       ' Return the array
       MyGetSkeleton_Execute = aReturn
    end function

Autodesk Softimage v7.5