VS:PythonExecute: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
 
{{LocationMain|category=LocationVS|specific=}}
__TOC__
__TOC__
<vwDoc>
<vwDoc>
Line 34: Line 34:


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<remark>You can use PythonExecute to send a Python script to VW via AppleScript
<remark>
    tell application "BBEdit"
You can use PythonExecute to send a Python script to VW via AppleScript
          set thePyScript to contents of front window
    tell application "BBEdit"
          set theScript to "PythonExecute('" & thePyScript & "');"
        set thePyScript to contents of front window
    end tell
        set thePyScriptLines to paragraphs of thePyScript
   
        set theScript to "
    tell application "Vectorworks 2014"
            Procedure RunPython;
          activate
            VAR
          DoScript theScript
                pyScript :DYNARRAY [] OF CHAR;
    end tell
     
            BEGIN
            pyScript := '';
            PythonBeginContext;
    "
        repeat with i from 1 to number of items in thePyScriptLines
            set scriptLine to item i of thePyScriptLines
            set theScript to theScript & "pyScript := Concat(pyScript, '" & scriptLine & "', '" & return & "');" & return
        end repeat
   
        set theScript to theScript & "
            PythonExecute(pyScript);
            PythonEndContext;
            END;
            Run(RunPython);
            "
    end tell
   
    tell application "Vectorworks 2014"
        activate
        DoScript theScript
    end tell
</remark>
</remark>



Revision as of 16:25, 30 December 2013

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Execute the given python script.


You can use 'include' in python to run additional code in python files. However, before you execute the script make sure the python file are foundable through the PythonGetSearchPath. Use PythonSetSearchPath to change it.

Scripts executed via this function should not contain User Interactive functions like GetPt for example.

PROCEDURE PythonExecute(
script :DYNARRAY[] of CHAR);
def vs.PythonExecute(script):
    return None

Parameters

script DYNARRAY[] of CHAR The script to be executed.

Remarks

You can use PythonExecute to send a Python script to VW via AppleScript

   tell application "BBEdit"
       set thePyScript to contents of front window
       set thePyScriptLines to paragraphs of thePyScript
       set theScript to "
           Procedure RunPython;
           VAR
               pyScript :DYNARRAY [] OF CHAR;
      
           BEGIN
           pyScript := ;
           PythonBeginContext;
   "
       repeat with i from 1 to number of items in thePyScriptLines
           set scriptLine to item i of thePyScriptLines
           set theScript to theScript & "pyScript := Concat(pyScript, '" & scriptLine & "', '" & return & "');" & return
       end repeat
   
       set theScript to theScript & "
           PythonExecute(pyScript);
           PythonEndContext;
           END;
           Run(RunPython);
           "
   end tell
   
   tell application "Vectorworks 2014"
       activate
       DoScript theScript
   end tell

Version

Availability: from Vectorworks 2014

See Also

VS Functions:

VS:PythonGetSearchPath | VS:PythonSetSearchPath

VS Functions:

[[VS:PythonGetSearchPath]]

| [[VS:PythonSetSearchPath]]