1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
  
     | 
    
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2008 (1.71)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Easy Guide</TITLE>
<META NAME="description" CONTENT="Easy Guide">
<META NAME="keywords" CONTENT="mma-plugins">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="mma-plugins.css">
<LINK REL="next" HREF="node2.html">
<LINK REL="previous" HREF="mma-plugins.html">
<LINK REL="up" HREF="mma-plugins.html">
<LINK REL="next" HREF="node2.html">
</HEAD>
<BODY  bgcolor="#ffffff">
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html26"
  HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html24"
  HREF="mma-plugins.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html18"
  HREF="mma-plugins.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>   
<BR>
<B> Next:</B> <A NAME="tex2html27"
  HREF="node2.html">Entry Points</A>
<B> Up:</B> <A NAME="tex2html25"
  HREF="mma-plugins.html">Plugins</A>
<B> Previous:</B> <A NAME="tex2html19"
  HREF="mma-plugins.html">Plugins</A>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION00100000000000000000">
Easy Guide</A>
</H1>
<P>
<DIV ALIGN="CENTER">
		<Table CellSpacing=0 Width="80%" Align="Center" CellPadding=10 BGColor="#dddddd" Border=3>
           <tr> <td>
	       
<DIV ALIGN="CENTER">
</DIV><BIG CLASS="XLARGE">This is a DRAFT document. 
	
           </td></tr>
        </Table>
</BIG></DIV>
<P>
This document is provided as a reference to advanced 
<FONT Face="Serif"  Color="Navy"><I>MMA</I></FONT>  users
writing plugins. It does not pretend to be definitive or complete. It
is a supplement to the main reference manual.
<P>
As mentioned in the 
<FONT Face="Serif"  Color="Navy"><I>MMA</I></FONT>  Reference Guide, a plugin must have its own
directory. The name of this directory must be the same as the name you
with to assign to the plugin (without the ``@'' prefix). So, the
plugin @H<SMALL>ELLO</SMALL> will have a directory <TT><SPAN  CLASS="textbf">hello</SPAN></TT>.
<P>
In this directory you must have the following files:
<P>
<OL>
<LI><TT><SPAN  CLASS="textbf">__init__.py</SPAN></TT> -- this must be an empty file. Note that the name
  ``init'' has two leading and trailing underscores,
</LI>
<LI><TT><SPAN  CLASS="textbf">plugin.py</SPAN></TT> -- this contains your plugin code.
</LI>
</OL>
<P>
In the Reference Manual in the Plugins section, we discuss the fact
that characters in filenames are, mostly, not case
sensitive. However, we recommend that you use lower case characters
for all file and directory names.
<P>
When the P<SMALL>LUGIN</SMALL> command finds the file <TT><SPAN  CLASS="textbf">plugin.py</SPAN></TT> it is
loaded into the running 
<FONT Face="Serif"  Color="Navy"><I>MMA</I></FONT>  program. The plugin loader will 
attempt to register three functions or methods from <TT><SPAN  CLASS="textbf">plugin.py</SPAN></TT>:
<P>
<OL>
<LI><code>run(param-list)</code> -- this is the code executed when your new command
  is encountered in a 
<FONT Face="Serif"  Color="Navy"><I>MMA</I></FONT>  script.
<P>
</LI>
<LI><code>trackRun(TrackName, param-list)</code> -- this is the code executed when your new
  command is encountered as part of a track command.
<P>
</LI>
<LI><code>printUsage()</code> -- this code is used when you request a
  usage message from the command line using the ``-I'' option.
<P>
</LI>
</OL>
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html26"
  HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html24"
  HREF="mma-plugins.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html18"
  HREF="mma-plugins.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>   
<BR>
<B> Next:</B> <A NAME="tex2html27"
  HREF="node2.html">Entry Points</A>
<B> Up:</B> <A NAME="tex2html25"
  HREF="mma-plugins.html">Plugins</A>
<B> Previous:</B> <A NAME="tex2html19"
  HREF="mma-plugins.html">Plugins</A></DIV>
<!--End of Navigation Panel-->
<ADDRESS>
Bob van der Poel
2016-06-11
</ADDRESS>
</BODY>
</HTML>
 
     |