Regular API function

simExecuteScriptString / sim.executeScriptString

Description Executes some code in a specific script (from a plugin, the main client application, or from another script). The target script must be initialized for this call to succeed, e.g. when calling simulation scripts, then simulation must be running. See also sim.callScriptFunction.

Data exchange between a plugin and a script happens via a stack. Reading and writing arguments from/to the stack gives you a maximum of flexibility, and you wil be able to exchange also complex data structures. But it can also be tedious and error prone. Use instead the helper classes located in programming/common/stack and programming/include/stack: they will greatly simplify the task. Have a look at the example plugins simExtPluginSkeleton and simExtSkel.
C/C++
synopsis
simInt simExecuteScriptString(simInt scriptHandleOrType,const simChar* stringAtScriptName,simInt stackId)
C/C++
parameters
scriptHandleOrType: the handle of the script, otherwise the type of the script
stringAtScriptName: a string representing the code to execute in the specified script.
if scriptHandleOrType is sim.scripttype_childscript or sim.scripttype_customizationscript, then append to the string '@' and the path of the object the script is attached to, e.g. "print('Hello')@/path/to/object"
if scriptHandleOrType is sim.scripttype_addonscript, then append to the string '@' and the name of the add-on, e.g. "print('Hello')@Isometric scaling"
stackId: 0 (for no stack) or a stack handle. The stack holds possible out values. See also the available stack functions.
C/C++
return value
-1 in case of an error
Lua
synopsis
int result,executionResult=sim.executeScriptString(string stringAtScriptName,int scriptHandleOrType)
Lua
parameters
Similar to the C-function counterpart
Lua
return values
result: -1 in case of an error
executionResult: return value of the executed code
Python
synopsis
int result,executionResult=sim.executeScriptString(string stringAtScriptName,int scriptHandleOrType)