{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# AnyBody magic in IPython Notebooks\n", "******\n", "\n", "The _anybodymagic_ extension for IPython will run AnyBody macro commands directly from the IPython Notebook. This is a very easy way to work with the AnyBody console application.\n", "\n", "### Requirements\n", "The [AnyBody Modeling System](www.anybodytech.com) must be installed on the computer for this extension to work. \n", "\n", "###Installation and requirements\n", "The extension is installed directly from github with the `%install_ext` command." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%install_ext https://raw.github.com/melund/anybodymagic/master/anybodymagic.py" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Installed anybodymagic.py. To use it, type:\n", " %load_ext anybodymagic\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Usage\n", "When the extension is installed, it can be loaded with the `%load_ext` command." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load_ext anybodymagic" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Anybody macro commands are executed with the `%%anybody` cell magic. The remaining cell is passed directly to AnyBody as macro commands\n", "\n", "Here is an example " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%anybody\n", "load \"Knee.any\"\n", "operation Main.MyStudy.InverseDynamics\n", "run\n", "exit" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\r\n", "
AnyBody Console Application\r\n", "
AnyBodyCon.exe version : 6. 0. 2. 4052 (64-bit version) \r", "\r\n", "
Build : 16009.55980\r\n", "
Copyright (c) 1999 - 2014 AnyBody Technology A/S\r\n", "
\r\n", "
\r\n", "
Current path: C:\\Users\\Morten\\Documents\\GitHub\\anybodymagic\r\n", "
\r\n", "
#### Macro command > load \"Knee.any\"\r\n", "
Loading Main : \"C:\\Users\\Morten\\Documents\\GitHub\\anybodymagic\\Knee.any\"\r\n", "
Scanning...\r\n", "
Parsing...\r\n", "
Constructing model tree...\r\n", "
Linking identifiers...\r\n", "
Evaluating constants...\r\n", "
Configuring model...\r\n", "
Evaluating model...\r\n", "
Loaded successfully.\r\n", "
Elapsed Time : 0.063000\r\n", "
\r\n", "
#### Macro command > operation Main.MyStudy.InverseDynamics\r\n", "
\r\n", "
#### Macro command > run\r\n", "
\r\n", "
***************************************************************************************\r\n", "
0) InverseDynamics (Operation: Main.MyStudy.InverseDynamics): \r\n", "
0.0) PreOperation (Operation: Main.MyStudy.InverseDynamics.PreOperation): \r\n", "
0.0.0) InitialConditions (Operation: Main.MyStudy.InitialConditions): \r\n", "
0.0.0) ...Design variables have been updated.\r\n", "
0.0.1) ...Load-time positions have been re-established.\r\n", "
0.0.2) ...Kinematic analysis completed. The kinematic constraints have been resolved.\r\n", "
0.0.3) ...Initial conditions are fully updated.\r\n", "
0) Inverse dynamic analysis...\r\n", "
29) ...Inverse dynamic analysis completed\r\n", "
Total simulation time: 0.039\r\n", "
\r\n", "
***************************************************************************************\r\n", "
\r\n", "
#### Macro command > exit\r\n", "
\r\n", "
Closing model...\r\n", "
Saving modified values...\r\n", "
Deleting last loaded model...\r\n", "
...Model deleted.\r\n", "
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Options:\n", "\n", "The cell magic has a few options, which are given on the same line eg. `%%anybody --out consoleoutput`\n", "\n", "**`--dir c:/workdir `** \n", "   Changes the current directory\n", "\n", "**`--out consoleoutput `** \n", "   Stores the console output to `consoleoutput`\n", "\n", "** `--bg`** \n", "   Run the macro commands in a background process. In this case the `-out` command will give a PIPE to console output.\n", "\n", "** `--dump`** \n", "   Exports variables to the Notebook name space\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examples:\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%anybody --dir C:/Users/Morten/Desktop --dump\n", "load \"Knee.any\"\n", "operation Main.MyStudy.InverseDynamics\n", "run\n", "classoperation Main.MyStudy.Output.Abscissa.t \"Dump\"\n", "classoperation Main.MyStudy.Output.MaxMuscleActivity \"Dump\"\n", "exit" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\r\n", "
AnyBody Console Application\r\n", "
AnyBodyCon.exe version : 6. 0. 2. 4052 (64-bit version) \r", "\r\n", "
Build : 16009.55980\r\n", "
Copyright (c) 1999 - 2014 AnyBody Technology A/S\r\n", "
\r\n", "
\r\n", "
Current path: C:\\Users\\Morten\\Desktop\r\n", "
\r\n", "
#### Macro command > load \"Knee.any\"\r\n", "
Loading Main : \"C:\\Users\\Morten\\Desktop\\Knee.any\"\r\n", "
Scanning...\r\n", "
Parsing...\r\n", "
Constructing model tree...\r\n", "
Linking identifiers...\r\n", "
Evaluating constants...\r\n", "
Configuring model...\r\n", "
Evaluating model...\r\n", "
Loaded successfully.\r\n", "
Elapsed Time : 0.053000\r\n", "
\r\n", "
#### Macro command > operation Main.MyStudy.InverseDynamics\r\n", "
\r\n", "
#### Macro command > run\r\n", "
\r\n", "
***************************************************************************************\r\n", "
0) InverseDynamics (Operation: Main.MyStudy.InverseDynamics): \r\n", "
0.0) PreOperation (Operation: Main.MyStudy.InverseDynamics.PreOperation): \r\n", "
0.0.0) InitialConditions (Operation: Main.MyStudy.InitialConditions): \r\n", "
0.0.0) ...Design variables have been updated.\r\n", "
0.0.1) ...Load-time positions have been re-established.\r\n", "
0.0.2) ...Kinematic analysis completed. The kinematic constraints have been resolved.\r\n", "
0.0.3) ...Initial conditions are fully updated.\r\n", "
0) Inverse dynamic analysis...\r\n", "
29) ...Inverse dynamic analysis completed\r\n", "
Total simulation time: 0.037\r\n", "
\r\n", "
***************************************************************************************\r\n", "
\r\n", "
#### Macro command > classoperation Main.MyStudy.Output.Abscissa.t \"Dump\"\r\n", "
Main.MyStudy.Output.Abscissa.t = {0, 0.034482759, 0.068965517, 0.10344828, 0.13793103, 0.17241379, 0.20689655, 0.24137931, 0.27586207, 0.31034483, 0.34482759, 0.37931034, 0.4137931, 0.44827586, 0.48275862, 0.51724138, 0.55172414, 0.5862069, 0.62068966, 0.65517241, 0.68965517, 0.72413793, 0.75862069, 0.79310345, 0.82758621, 0.86206897, 0.89655172, 0.93103448, 0.96551724, 1};\r\n", "
\r\n", "
#### Macro command > classoperation Main.MyStudy.Output.MaxMuscleActivity \"Dump\"\r\n", "
Main.MyStudy.Output.MaxMuscleActivity = {0.092329631, 0.093433752, 0.094336643, 0.095018911, 0.095461541, 0.095646103, 0.095554997, 0.0951717, 0.094481003, 0.093469228, 0.092124436, 0.090436596, 0.088397719, 0.086001951, 0.083245609, 0.08012716, 0.076647135, 0.072807963, 0.068613732, 0.064069855, 0.059182649, 0.053958793, 0.048404686, 0.04252565, 0.036324981, 0.029802794, 0.022954611, 0.015769599, 0.0082283486, 0.00029996798};\r\n", "
\r\n", "
#### Macro command > exit\r\n", "
\r\n", "
Closing model...\r\n", "
Saving modified values...\r\n", "
Deleting last loaded model...\r\n", "
...Model deleted.\r\n", "
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Dumped variables:\n", "- Main_MyStudy_Output_Abscissa_t\n", "- Main_MyStudy_Output_MaxMuscleActivity\n" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The dump'ed variables are now avaiable directly in the Notebook. So let us plot them:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot(Main_MyStudy_Output_Abscissa_t, Main_MyStudy_Output_MaxMuscleActivity)\n", "xlabel('time')\n", "ylabel('Max muscle activity')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The -bg command will excute the cell in a background process. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%anybody --bg --out outpipe\n", "load \"Knee.any\"\n", "operation Main.MyStudy.InverseDynamics\n", "run\n", "classoperation Main.MyStudy.Output.Abscissa.t \"Dump\"\n", "classoperation Main.MyStudy.Output.MaxMuscleActivity \"Dump\"\n", "run\n", "exit" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Starting job # 2 in a separate thread.\n" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "lines = outpipe.readlines()\n", "print \"\".join(lines[-10:])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Total simulation time: 0.018\r\n", "\r\n", "***************************************************************************************\r\n", "\r\n", "#### Macro command > exit\r\n", "\r\n", "Closing model...\r\n", "Saving modified values...\r\n", "Deleting last loaded model...\r\n", "...Model deleted.\r\n", "\n" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }