<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!--
Copyright (c) 2006 UGS Corp.

All Rights Reserved.

This software and related documentation are proprietary to UGS Corp.
-->
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>AnyController commands</title>
      <script language="javaScript">
        abridged="false";
        displayConditions=new Array();
      </script>
      <link type="text/css" href="../css/main_styles.css" rel="stylesheet">
   </head>
   <body class="bodydocs" onload="top.pageLoader()" bgcolor="#FFFFFF">
      <div class="title_topic2" id="xps10_pagetitle">AnyController commands</div>
      <hr noshade="true">
      <div class="title_division">Data types</div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <tbody valign="top">
            <tr bgcolor="silver">
               <td colspan="2" rowspan="1">
                  <p class="para_td"><b class="uiTerm">Boolean values</b></p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The BOOL data type is used to represent the Boolean values of TRUE and FALSE. All conditional and comparative values return a BOOL-type value. You can substitute the FALSE value with the number 0; and TRUE with every number except 0. This is considered poor programming style, however.</p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">TRUE</pre><pre class="indent">FALSE</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Integers</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">Every integer number in the interval [-2147483648 : 2147483647] can be represented with the INT data type.</p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">-2000</pre><pre class="indent">12</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Floating-point number</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">Floating-point numbers are represented by the FLOAT or the DOUBLE data type. An exponential number can be entered as well. The difference between the types is the precision and range. The DOUBLE type covers 15 digits and approximately a range from +/- 1.7 E308 while the FLOAT type covers only 7 digits and approximately a range from +/- 3.4 E38.</p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">1.234</pre><pre class="indent">-0.1234E-1.0</pre><pre class="indent">345.2e4</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Character string</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">Character strings are represented by the STRING data type. There is no limit to the length of a string. The string line must not exceed one line, however, and must appear within two quotation marks (&rdquo; &rdquo;).</p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">&rdquo;Object1&rdquo;</pre><pre class="indent">&rdquo;c:\UGS\Layout\Parts\Workpiece.GEO&rdquo;</pre></td>
            </tr>
         </tbody>
      </table><br><div class="title_division">Operators</div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Boolean Operators</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">Boolean operators enable the user to carry out comparisons between two values. The result of such a comparison is always of the BOOL data type.</p>
                  <table border="1" cellpadding="2" cellspacing="1">
                     <colgroup span="1">
                        <col span="1">
                        <col span="1">
                     </colgroup>
                     <tbody>
                        <tr>
                           <td colspan="1" height="50" rowspan="1">
                              <p class="para_td" align="center"><b class="literalText">Operators</b></p>
                           </td>
                           <td colspan="1" height="50" rowspan="1">
                              <p class="para_td" align="center"><b class="literalText">Representation</b></p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">equal to</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">==</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">not equal to</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">!=</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">less than</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">&lt;</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" height="24" rowspan="1">
                              <p class="para_td" align="center">greater than</p>
                           </td>
                           <td colspan="1" height="24" rowspan="1">
                              <p class="para_td" align="center">&gt;</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">less than or equal to</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">&lt;=</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">greater than or equal to</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">&gt;=</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">and </p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">AND</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">or</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">OR</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">Exclusive or (xor)</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">XOR</p>
                           </td>
                        </tr>
                     </tbody>
                  </table><br></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">1 == 4 =&gt; Result FALSE</pre><pre class="indent">2 &gt; 3.1 =&gt; Result FALSE</pre><pre class="indent">7 &gt;= 7 =&gt; Result TRUE </pre><pre class="indent">TRUE AND FALSE =&gt; Result FALSE </pre><pre class="indent">TRUE OR FALSE =&gt; Result TRUE </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Note</p>
               </td>
               <td colspan="1" rowspan="1">
                  <p class="para_td">The attempt to match two floating-point numbers will fail as a result of the lack of computing precision.</p>
                  <p class="para_td">The comparison of two strings is carried out from left to right one character at a time. If two non-matching characters are detected, the comparison process is aborted immediately. The comparison of any two characters occurs by means of the corresponding ASCII numeric values of the characters.</p>
               </td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Arithmetic Operators </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" height="231" rowspan="1">
                  <p class="para_td">The result is of the INT, FLOAT or STRING data type.</p>
                  <table border="1" cellpadding="2" cellspacing="1" align="center">
                     <colgroup span="1">
                        <col span="1">
                        <col span="1">
                        <col span="1">
                     </colgroup>
                     <tbody>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center"><b class="literalText">Function</b></p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center"><b class="literalText">Operators</b></p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center"><b class="literalText">Representation</b> 
                              </p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">addition</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">plus</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">+</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">subtraction</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">minus</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">-</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">multiplication</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">times</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">* </p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">division</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">divided by</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center"> /</p>
                           </td>
                        </tr>
                     </tbody>
                  </table><br></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">1 + 4 =&gt; Result 5 (INT)</pre><pre class="indent">2 * 3.1 =&gt; Result 6.2 (FLOAT)</pre><pre class="indent">&rdquo;Any&rdquo; + &rdquo;Controller&rdquo; =&gt; Result &rdquo;AnyController&rdquo; (STRING)</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Note</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">The -, * and / operators are not permissible with STRING arguments.</p>
               </td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td"> THIS Operator</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">A THIS operator can be used at those places in a program where an AnyController command expects an object name as an argument. In this case the THIS operator stands for the entire current kinematic (i.e. the kinematic for which the program was written) .</p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">call (THIS, &rdquo;UP1&rdquo;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Comments</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">A commentary can be inserted anywhere within and between programs. The beginning of a commentary is introduced by a double slash (//) and always ends at the end of the current line. During the running of a program all commentaries are skipped. Commentary characters (//) appearing within a STRING are ignored. </p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">// This is a commentary</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Expression</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The explicit statement of a value (for example, for arguments or allocations) can be replaced by an expression. All operators are permissible in expressions. The sequence in which operators are applied is defined by their priority. The following table defines the descending priority of operators from top to bottom and left to right. </p>
               </td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">3;</pre><pre class="indent">(fVar2 &ndash; 2) * 1.2;</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" height="32" rowspan="1">
                  <table border="1" cellpadding="2" cellspacing="1" align="center">
                     <colgroup span="1">
                        <col span="1">
                        <col span="1">
                     </colgroup>
                     <tbody>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center"><b class="literalText">Type</b></p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center"><b class="literalText">Description</b></p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">()</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">Brackets defining subexpressions</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">*,/</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">Multiplication and division</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">+,</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">Addition and subtraction</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">=</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">Assignment operator</p>
                           </td>
                        </tr>
                        <tr>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">&gt;, &lt;, &gt;=, &lt;=, !=, ==</p>
                           </td>
                           <td colspan="1" rowspan="1">
                              <p class="para_td" align="center">Boolean operators</p>
                           </td>
                        </tr>
                     </tbody>
                  </table><br></td>
            </tr>
         </tbody>
      </table><br><div class="title_division">Program Flow</div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Main Program</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">In ISV it is possible for legacy reasons to call AnyController programs which are defined as main programs.</p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">PROGRAM main ();</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">PROGRAM main ();</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Sub Program </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">Every kinematic can have subprograms. They are only executed when explicitly called. A subprogram can &ndash; for its part &ndash; call other subprograms (which might result in recursions), although it should be noted that only one program per kinematic channel can be run at a time. The attempt to call a program for a kinematic which is currently running another one will result in an error message. The arguments provided to a subprogram can be changed in this subprogram.</p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">PROGRAM &lt;&lt;ReturnDataType&gt;&gt; &lt;SPname&gt; (&lt;&lt;Type&gt; &lt;Arg1&gt;&gt;&lt;, &lt;Type&gt; &lt;Arg2&gt;&gt; ...); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">PROGRAM &lt;&lt;INT | FLOAT | BOOL | STRING&gt;&gt; &lt;SPname&gt; (&lt;&lt;INT | FLOAT | BOOL | STRING&gt;&gt; &lt;VARIABLE&gt;...);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">PROGRAM Open (BOOL bFast);</pre><pre class="indent">IF (bFast)</pre><pre class="indent">move (LOC, &rdquo;Open&rdquo;, 1.0);</pre><pre class="indent">ELSE</pre><pre class="indent">move (LOC, &rdquo;Open&rdquo;, 3.0);</pre><pre class="indent">ENDIF;</pre><pre class="indent">ENDPROG;</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">End of Program </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The <b class="literalText">ENDPROG</b> command is the last command executed in a subprogram. Thereafter any program argument variables and/or the return value are transferred back to the calling program.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">ENDPROG;</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Subroutine Call </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The <b class="literalText">call</b> command is used whenever a subroutine is to be started from within a program. This is a synchronous start of a subroutine. The calling program can be located in the same kinematic or a different one. If the subroutine is located in the same kinematic as the calling program the THIS flag can be specified instead of the object ID.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">call (&lt;TargetKinematic&gt;, &lt;ProgramName&gt;[, &lt;Arg1&gt;...]);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">call (STRING | FLAG, STRING[, &lt;INT | FLOAT | STRING | BOOL&gt;...]);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">PROGRAM main();</pre><pre class="indent">call (THIS, &rdquo;Open&rdquo;, 2.3);</pre><pre class="indent">visibility (THIS, ON, TRUE);</pre><pre class="indent">ENDPROG;</pre><pre class="indent">PROGRAM Open (FLOAT fTime);</pre><pre class="indent">IF (fTime &lt;= 0.0)</pre><pre class="indent">exit();</pre><pre class="indent">ELSE</pre><pre class="indent">move (LOC, &rdquo;Open&rdquo;, fTime);</pre><pre class="indent">ENDIF;</pre><pre class="indent">ENDPROG;</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Note to Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">When this simulation is started, the main program calls the subroutine Open. When the subroutine has ended (after 2.3 seconds), the current kinematic will be switched to completely visible.</p>
               </td>
            </tr>
         </tbody>
      </table><br><div class="title_division">Conditional structures</div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Conditional Statements </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">An IF / ELSE / ENDIF structure enables the user to specify which part of a program is to be run when there are two alternatives. Depending on the value of the Boolean expression which is calculated first, either the statements located between IF and ELSE or that one between ELSE and ENDIF are executed. The ELSE branch need not actually exist. An IF structure must however always be ended by ENDIF.</p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">IF (&lt;Expression&gt;);</pre><pre class="indent">&lt;Statements&gt;;</pre><pre class="indent">[ELSE;</pre><pre class="indent">&lt;Statements&gt;;]</pre><pre class="indent">ENDIF;</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">IF (&lt;BOOL&gt;);</pre><pre class="indent">&lt;Statements&gt;;</pre><pre class="indent">[ELSE;</pre><pre class="indent">&lt;Statements&gt;;]</pre><pre class="indent">ENDIF;</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">IF (50.0 &lt; fSpeed);</pre><pre class="indent">bError = TRUE;</pre><pre class="indent">ELSE;</pre><pre class="indent">bError = FALSE;</pre><pre class="indent">ENDIF;</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">While Loop</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The WHILE loop enables the user to repeat the same program sequence (between WHILE and ENDWHILE) until the boolean expression in the <b class="literalText">WHILE</b> command will be evaluated to FALSE.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">WHILE (&lt;Expression&gt;);</pre><pre class="indent">&lt;Statements&gt;;</pre><pre class="indent">ENDWHILE;</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">WHILE (&lt;BOOL&gt;);</pre><pre class="indent">&lt;Statements&gt;;</pre><pre class="indent">ENDWHILE;</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">nCount = 1;</pre><pre class="indent">WHILE (5 &gt; nCount);</pre><pre class="indent">move (LOC, &quot;Step&quot; + itos (nCount), 2.0);</pre><pre class="indent">nCount = nCount + 1;</pre><pre class="indent">ENDWHILE;</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Note to Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">After initializing the variable nCount with the value 1 the WHILE loop is entered and the conditional expression is evaluated to TRUE, therefore the statements between the WHILE and ENDWHILE statement will be executed (current kinematic will move to the Step1 position and the counter will be increased). When executing the ENDWHILE statement, the program will continue at the corresponding WHILE statement evaluating the expression.</p>
                  <p class="para_td"> After the Step2 to Step4 positions are reached, the nCount variable is set to 5 and the expression in the WHILE statement will be evaluated to FALSE, therefore the execution of the program will continue in the first line after the ENDWHILE statement. </p>
               </td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">For Loop</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The FOR loop enables the user to repeat the same program sequence (between FOR and ENDFOR) until the counting variable (CountVar) is greater or equal to the EndValue. In the first loop, the counting variable is set to the StartValue. After each loop the increment value is added to the counting variable. If the increment value is omitted, the default increment is 1.  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">FOR (&lt;CountVar&gt;, &lt;StartValue&gt;, &lt;EndValue&gt;[, &lt;Increment&gt;]); </pre><pre class="indent">&lt;Statements&gt;; </pre><pre class="indent">ENDFOR;</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">FOR (&lt;INT&gt;, &lt;INT&gt;, &lt;INT&gt;[, &lt;INT&gt;]);  </pre><pre class="indent">&lt;Statements&gt;;</pre><pre class="indent">ENDFOR;</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">INT nCount; </pre><pre class="indent">FOR (nCount, 1, 5);</pre><pre class="indent">move (LOC, &ldquo;Step&rdquo; + itos (nCount), 2.0);</pre><pre class="indent">ENDFOR;</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Note to Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">The result of this example is exactly the same as in the example for the WHILE loop. </p>
               </td>
            </tr>
         </tbody>
      </table><br><div class="title_division">Basic Functions</div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Converting an Integer to String</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">This function converts the given integer number into a string. The variable (or argument) to which the string is to be assigned must be declared as a STRING variable. </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">sVar = itos (&lt;Number&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">&lt;STRING&gt; = itos (&lt;INT&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent"> sVar = itos (12);</pre></td>
            </tr>
         </tbody>
      </table><br><div class="title_division">Layout Command </div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Making an Object visible or invisible </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The <b class="literalText">visibility</b> command enables the user to make an object visible (ON) or invisible (OFF). The optional flag is currently ignored and is provided only for legacy reasons.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">visibility (&lt;TargetObject&gt;, &lt;ON | OFF&gt;[, &lt;TRUE | FALSE&gt;]);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">visibility (&lt;STRING&gt;, &lt;FLAG&gt;[,&lt;FLAG&gt;]);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">visibility (&quot;Object1.11&quot;, OFF); </pre><pre class="indent">visibility (&quot;Object1.11&quot;, ON);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Defining the object position</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The <b class="literalText">position</b> command enables the user to re-define the position of an object within the layout. The values used to define this position (linear vectors along the X, Y and Z axes as well as rotation around the X, Y, and Z axes) are relative to the position of the object&rsquo;s parent object. Thus, whenever an object is first loaded into the layout it is in essence linked to the BASE (world coordinate system) so that its position values are relative to the origin of the world coordinate system. As soon as an object is linked to another object, however, as when it is being grasped by another object, its position values are stated relative to the position of this parent object. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">position (&lt;TargetObject&gt;, &lt;x&gt;, &lt;y&gt;, &lt;z&gt;, &lt;al&gt;, &lt;be&gt;, &lt;ga&gt;); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">position (&lt;STRING&gt;, &lt;FLOAT&gt;, &lt;FLOAT&gt;, &lt;FLOAT&gt;, &lt;FLOAT&gt;, &lt;FLOAT&gt;,&lt;FLOAT&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">position (&rdquo;Object1&rdquo;, 100.0, 0.0, 0.0, 45.0, 0.0, -12.0);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td"> Grasping an object </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The <b class="literalText">grasp</b> command enables the user to link two layout objects. As a result the grasped, or &ldquo;child&rdquo; object moves along with the grasping &ldquo;parent&rdquo; object, whenever the latter is moved.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">grasp (&lt;ChildObject&gt;[, &lt;ParentObject&gt;]); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">grasp (&lt;STRING&gt;[, &lt;STRING&gt;]); </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">grasp (&rdquo;Object1&rdquo;, &rdquo;Rob1.7&rdquo;); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Releasing an object</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The <b class="literalText">release</b> command separates two previously linked layout objects. As a result the child object maintains its current position. The command structure enables the user to specify a new parent object as well, in which case the object would be &ldquo;handed&rdquo; from one kinematic to another. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">release (&lt;ChildObject&gt;[, &lt;ParentObject&gt;]); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">release (&lt;STRING&gt;[, &lt;STRING&gt;]); </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">release (&rdquo;Object1&rdquo;); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Transferring parts</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">transferParts</b> detaches the named workpieces, which are attached to the first table and attaches them to the second table. If there are no workpieces named all workpieces which are attached to the first table will be detached and then attached to the second table.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">transferParts (&lt;NC-tableframe1&gt;, &lt;NC-tableframe2&gt; [,&lt;Part1&gt;, &lt;Part2&gt;, ...]); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">transferParts (&lt;STRING&gt;, &lt;STRING&gt; [,&lt;STRING&gt;, ...]);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">transferParts (&quot;NC-Table1&quot;, &quot;NC-Table2&quot;, &quot;Part1&quot;, &quot;Part2&quot;); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Checking the existence of an object</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">This function enables the user to determine whether or not there is already a layout object having the specified name. This function returns a BOOL-type value. </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">bVar = exist (&lt;ObjectName&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">&lt;BOOL&gt; = exist (&lt;STRING&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">bVar = exist (&rdquo;Object1&rdquo;);</pre></td>
            </tr>
         </tbody>
      </table><br><div class="title_division">Motions</div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Moving an individual joint of a kinematics</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The <b class="literalText">move</b> <i class="variableText">AXIS</i> command enables the user to move a kinematic along one or more separate kinematic joints. To do so the user must specify the desired target value of each joint to move. The motion planning then takes place assuming a point-to-point movement, that is, all the kinematic parts reach their final joint positions simultaneously. The duration of the motion must also be specified in the command.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">move (&lt;AXIS&gt;, &lt;JointNr&gt;, &lt;JointValue&gt;[, &lt;JointNr&gt;, &lt;JointValue&gt;...], &lt;Time&gt;); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">move (&lt;FLAG&gt;, &lt;INT&gt;, &lt;FLOAT&gt;[, &lt;INT&gt;, &lt;FLOAT&gt;...], &lt;FLOAT&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">move (AXIS, 2, 100.0, 4, 75.3, 1.2); </pre></td>
            </tr>
         </tbody>
      </table><br><div class="title_division">NC-Machine</div>
      <table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Activate Language AC </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">To execute in a NC-program commands of the AnyController language the mode has to be switched from NC-mode to AnyController-mode. This is performed by the command: <b class="literalText">##LANGUAGE AC</b></p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Command</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">##LANGUAGE AC</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Activate Language Native </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">Switching from AnyController-mode back to NC-mode is done by the command: <b class="literalText">##LANGUAGE NATIVE</b></p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Command</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">##LANGUAGE NATIVE </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Activate Next Tool</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">By the command <b class="literalText">generateTool</b> tools are generated and assigned to spindle objects. These spindle objects register the newly generated tool as their next tool. Using the command <b class="literalText">activateNextTool</b> the <i class="variableText">TargetSpindle</i> is forced to sign its current tool as unused and to sign its next tool as its current tool. 
                  </p>
                  <p class="para_td"><i class="variableText">TargetSpindle</i>: Specifies the spindle <i class="variableText">TargetSpindle</i> that should activate its next tool.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="27" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="27" rowspan="1"><pre class="indent">activateNextTool (&lt;TargetSpindle&gt;); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">activateNextTool (&lt;STRING&gt;); </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">activateNextTool (&quot;S1&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Activate Magazin/Turret Tool</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">activateCarrierTool</b> activates the tool, which is placed on the specific magazine/turret place on the named magazine/turret. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">activateCarrierTool (&lt;Magazine name&gt;, &lt;magazine place name&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">activateCarrierTool (&lt;STRING&gt;, &lt;STRING&gt;); </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">activateCarrierTool (&quot;Mag_1&quot;, &quot;Place 1&quot;); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Generate Tool</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">Searches for the entry <i class="variableText">ToolName</i> in the tool list and builds the new tool within the layout. The new tool will be assigned as the following tool at spindle <i class="variableText">TargetSpindle</i>. The tool may then be activated by the command <b class="literalText">activateNextTool</b></p>
                  <p class="para_td"><i class="variableText">ToolName</i>: Specifies the tool name of the tool to be build.
                  </p>
                  <p class="para_td"><i class="variableText">TargetSpindle</i>: Specifies the spindle to which the new tool will be assigned. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">generateTool (&lt;ToolName&gt;, &lt;TargetSpindle&gt;); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">generateTool (&lt;STRING&gt;, &lt;STRING&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">generateTool (&quot;T166&quot;, &quot;S1&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get the Current Tool</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">This function returns the tool name of the tool that is currently in use at spindle <i class="variableText">SpindleName</i>.
                  </p>
                  <p class="para_td"><i class="variableText">SpindleName</i>: Specifies the spindle.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getCurrentTool (&lt;SpindleName&gt;)</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">&lt;STRING&gt; getCurrentTool (&lt;STRING&gt;)</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">STRING       strCurrentTool; </pre><pre class="indent">strCurrentTool = getCurrentTool (&quot;S1&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get the Next Tool </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">This function returns the tool name of the tool that is currently registered as the following tool in spindle <i class="variableText">SpindleName</i>. 
                  </p>
                  <p class="para_td"><i class="variableText">SpindleName</i>: Specifies the name of the spindle to be asked for its next tool name. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getNextTool (&lt;SpindleName&gt;) </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">&lt;STRING&gt; getNextTool (&lt;STRING&gt;) </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">STRING       strNextTool;</pre><pre class="indent">strNextTool = getNextTool (&quot;S1&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get Slot ID by Tool</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">getSlotIDByTool</b> returns the name of the turret where the tool is placed.
                  </p>
                  <p class="para_td"> Type of turret/magazine name: </p>
                  <p class="para_td">NAME =&gt; Default setting, equilvalent to the name in tool manager </p>
                  <p class="para_td">(Example: &quot;T4711&quot;)</p>
                  <p class="para_td">OBJ =&gt; equivalent to the name of the object-ID in the layout </p>
                  <p class="para_td">(Example: &quot;T4711_MAS1_Rev1_Place1&quot;)</p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getSlotIDByTool (&lt;Turret name&gt;, &lt;Tool name&gt; [,&lt;Type of turret/magzine name&gt;]); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">getSlotIDByTool (&lt;STRING&gt;, &lt;STRING&gt; [, &lt;NAME&gt;|&lt;OBJ&gt;]);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">getSlotIDByTool (&quot;Turret_1&quot;, &quot;T4711&quot;); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get Spindle Object</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">This function returns the name of the spindle object. Each element of a kinematic structure has its own layout name, that is used to execute commands like <b class="literalText">grasp</b> or <b class="literalText">release</b>. Since there is no easy mapping between the spindle names used for the NC code and the layout names of the spindle objects, this function was designed to support this task. 
                  </p>
                  <p class="para_td"><i class="variableText">SpindleName</i>: Specifies the name of the spindle to be returned.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getSpindleObject (&lt;SpindleName&gt;); </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">&lt;STRING&gt; getSpindleObject (&lt;STRING&gt;) </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">grasp (getNextTool (&quot;S3&quot;), getSpindleObject (&quot;S3&quot;));</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Set Next Tool</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">By using the command <b class="literalText">setNextTool</b> the next tool of the turret / magazinewill be preselected for the named spindle. This tool can be accessed afterwards with the command <b class="literalText">getNextTool</b>, without knowing the name of the tool.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">setNextTool (&lt;Turret name&gt;, &lt;Place name&gt;, &lt;Spindle name&gt;);  </pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">setNextTool (&lt;STRING&gt;, &lt;STRING&gt;, &lt;STRING&gt;); </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">setNextTool (&quot;Rev_1&quot;, &quot;Place 1&quot;, &quot;S1&quot;); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get Array Element</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The function getArrayElement returns the value of one element of the array specified by the indices (nIndex_0 to nIndex_n). </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getArrayElement (Array name, nIndex_0 [nIndex_1, nIndex_2, ...]);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">getArrayElement (&lt;STRING&gt;, &lt;INT&gt; [&lt;INT, INT, ...]);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">var = getArrayElement (&quot;Magazin&quot;, 5);
</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get Carrier Tool</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">getCarrierTool</b> needs two arguments to return the tool ID as  a String. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getCarrierTool (&lt;Carrier name&gt;, &lt;Slot ID&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">getCarrierTool (&lt;STRING&gt;, &lt;STRING&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">var = getCarrierTool (&quot;Rev_1&quot;, &quot;Slot_1&ldquo;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get Channel Name</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">getChannelName</b> returns the name of the current channel.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getChannelName();</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get Junction Name </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">getJunction</b> detects an element by its label in a kinematic.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getJunction (&lt;Kinematic&gt;, &lt;Label&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">getJunction (&lt;STRING&gt;, &lt;STRING&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">getJunction (&quot;BZ40&quot;, &quot;A-Jointframe&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Get Tool Name by Number</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">getToolNameByNumber</b> gets the tool name from the tool manager which is assigned to the named number. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">getToolNameByNumber (&lt;Number&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">getToolNameByNumber (&lt;INT&gt;); </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">var = getToolNameByNumber (55); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Attach Joint</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">NC machines with multiple channels often share their kinematic joints. Joints are kind of borrowed from one channel, though originally another channel has the right to master the specific joint. </p>
                  <p class="para_td">The command <b class="literalText">attachJoint</b> represents the wish of the calling channel to borrow a joint from channel <i class="variableText">ChannelName</i>. To be sure that the called channel does not have the requested joint in use, this command waits until the called channel sets the joint free by the command <b class="literalText">detachJoint</b>. Once the wanted joint is detached by its mastering channel, the calling channel is allowed to attach it and use it by the name defined in the <i class="variableText">NewJointName</i> parameter.
                  </p>
                  <p class="para_td"><i class="variableText">NewJointName</i>: Specifies the name of the joint to be registered in the calling channel.
                  </p>
                  <p class="para_td"><i class="variableText">ChannelName</i>: Specifies the name of the channel which masters the wanted joint.
                  </p>
                  <p class="para_td"><i class="variableText">JointName</i>: Specifies the joint name of the wanted joint.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">attachJoint (&lt;NewJointName&gt;, &lt;ChannelName&gt;, &lt;JointName&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">attachJoint (&lt;STRING&gt;, &lt;STRING&gt;, &lt;STRING&gt;); </pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">attachJoint (&quot;X&quot;, &quot;Backside&quot;, &quot;X2&quot;); </pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Attach Spindle</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">NC machines with multiple channels often share their spindle objects. Spindles are kind of borrowed from one channel, though originally another channel has the right to master the specific spindle. </p>
                  <p class="para_td">The command <b class="literalText">attachSpindle</b> represents the wish of the calling channel to borrow a spindle from channel <i class="variableText">ChannelName</i>. To be sure that the called channel does not have the requested spindle in use, this command waits until the called channel sets the spindle free by the command <b class="literalText">detachSpindle</b>. Once the wanted spindle is detached by its mastering channel, the calling channel is allowed to attach it and use it by the name defined in the <i class="variableText">NewSpindleName</i> parameter.
                  </p>
                  <p class="para_td">If the attached spindle should become the new master spindle of the calling channel, the parameter <i class="variableText">IsMainSpindle</i> has to be programmed with the flag <i class="variableText">TRUE</i>, otherwise with <i class="variableText">FALSE</i>.
                  </p>
                  <p class="para_td"><i class="variableText">NewSpindleName</i>: Specifies the name of the spindle to be registered in the calling channel.
                  </p>
                  <p class="para_td"><i class="variableText">ChannelName</i>: Specifies the name of the channel which masters the wanted spindle.
                  </p>
                  <p class="para_td"><i class="variableText">SpindleName</i>: Specifies the spindle name of the wanted spindle. 
                  </p>
                  <p class="para_td"><i class="variableText">IsMainSpindle</i>: Specifies whether the spindle should become the new main spindle of the calling channel. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">attachSpindle (&lt;NewSpindleName&gt;, &lt;ChannelName&gt;, &lt;SpindleName&gt;, &lt;IsMain-Spindle&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">attachSpindle (&lt;STRING&gt;, &lt;STRING&gt;, &lt;STRING&gt;, &lt;BOOL&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">attachSpindle (&quot;S&quot;, &quot;Revolver&quot;, &quot;S4&quot;, TRUE);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td"> Detach Joint</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">NC machines with multiple channels often share their kinematic joints. Joints are kind of borrowed from one channel, though originally another channel has the right to master the specific joint. There are two ways of using the command <b class="literalText">detachJoint</b>. One is to unregister a joint that was attached from another channel by the command <b class="literalText">attachJoint</b>. The other way is to mark the joint as currently unused and to enable other channels to attach this joint by the command <b class="literalText">attachJoint</b>. 
                  </p>
                  <p class="para_td"><i class="variableText">JointName</i>: Specifies the name of the joint to be detached.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">detachJoint (&lt;JointName&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">detachJoint (&lt;STRING&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">detachJoint (&quot;X2&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Detach Spindle</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">NC machines with multiple channels often share their spindle objects. Spindles are kind of borrowed from one channel, though originally another channel has the right to master the specific spindle. </p>
                  <p class="para_td">There are two ways of using the command <b class="literalText">detachSpindle</b>. One is to unregister a spindle that was attached from another channel by the command <b class="literalText">attachSpindle</b>. The other way is to mark the spindle as currently unused and to enable other channels to attach this spindle by command <b class="literalText">attachSpindle</b>. 
                  </p>
                  <p class="para_td"><i class="variableText">SpindleName</i>: Specifies the name of the spindle to be detached. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">detachSpindle (&lt;SpindleName&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">detachSpindle (&lt;STRING&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">detachSpindle (&quot;S4&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Displace Origin</p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">The command <b class="literalText">displaceOrigin</b> sets one displacement value for the joint. <i class="variableText">TrafoName</i> specifies the name of the transformation to be set. <i class="variableText">Relative</i> defines wether the value is to be set abolutely or relative to the current displacement value. 
                  </p>
                  <p class="para_td">Number and names of the existing transformations depend on the machine model. </p>
                  <p class="para_td"><i class="variableText">TrafoName</i>: Specifies the name of the transformation to be set. 
                  </p>
                  <p class="para_td"><i class="variableText">Relative</i>: Specifies wether the displacement value is to be set incrementally or absolutely. 
                  </p>
                  <p class="para_td"><i class="variableText">JointName</i>: Specifies the joint for which the displacment value is to be set. 
                  </p>
                  <p class="para_td"><i class="variableText">Value</i>: Specifies the displacement value to be set for JointName.
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">displaceOrigin (&lt;TrafoName&gt;, &lt;Relative&gt;, &lt;JointName&gt;, &lt;Value&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">displaceOrigin (&lt;STRING&gt;, &lt;BOOL&gt;, &lt;STRING&gt;, &lt;DOUBLE&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">displaceOrigin (&quot;Fixed&quot;, FALSE, &quot;Z&quot;, 100.0);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Retrieve Joint </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">NC machines with multiple channels often share their kinematic joints. Joints are kind of borrowed from one channel, though originally another channel has the right to master the specific joint. </p>
                  <p class="para_td">If a channel has marked one of its joints as unused by the command <b class="literalText">detachJoint</b>, it is able to get the joint back by the command <b class="literalText">retrieveJoint</b>. If meanwhile another channel has registered this joint for itself by the command <b class="literalText">attachJoint</b>, the <b class="literalText">retrieveJoint</b> command will wait until the joint is unregistered by the other channel. This ensures that a joint is never used by two channels at the same time. 
                  </p>
                  <p class="para_td"><i class="variableText">JointName</i>: Specifies the name of the joint to be retrieved. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">retrieveJoint (&lt;JointName&gt;);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">retrieveJoint (&lt;STRING&gt;);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">retrieveJoint (&quot;X2&quot;);</pre></td>
            </tr>
         </tbody>
      </table><br><table border="0" cellpadding="4" cellspacing="2" width="100%" align="center">
         <colgroup span="1">
            <col span="1" width="55*">
            <col span="1" width="144*">
         </colgroup>
         <thead>
            <tr>
               <td bgcolor="silver" colspan="2" rowspan="1" valign="top">
                  <p class="para_td">Retrieve Spindle </p>
               </td>
            </tr>
         </thead>
         <tbody valign="top">
            <tr>
               <td bgcolor="#F0F0F0" colspan="2" rowspan="1">
                  <p class="para_td">NC machines with multiple channels often share their spindle objects. Spindles are kind of borrowed from one channel, though originally another channel has the right to master the specific spindle. </p>
                  <p class="para_td">If a channel has marked one of its spindles as unused by the command <b class="literalText">detachSpindle</b>, it is able to get the spindle object back by the command <b class="literalText">retrieveSpindle</b>. If meanwhile another channel has registered this spindle for itself by the command <b class="literalText">attachSpindle</b>, the  <b class="literalText">retrieveSpindle</b> command will wait until the spindle object is unregistered by the other channel. This ensures that a spindle object is never used by two channels at the same time.
                  </p>
                  <p class="para_td">If the retrieved spindle should become the new master spindle of the calling channel, the optional parameter <i class="variableText">IsMainSpindle</i> has to be programmed with the flag <i class="variableText">TRUE</i>, otherwise with <i class="variableText">FALSE</i>. The default value is <i class="variableText">FALSE</i>.
                  </p>
                  <p class="para_td"><i class="variableText">SpindleName</i>: Specifies the name of the spindle to be retrieved. 
                  </p>
                  <p class="para_td"><i class="variableText">IsMainSpindle</i> <i class="variableText">(optional)</i>: Specifies, wether the retrieved spindle should become the new master spindle of the calling channel. 
                  </p>
               </td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" height="29" rowspan="1">
                  <p class="para_td">Syntax</p>
               </td>
               <td colspan="1" height="29" rowspan="1"><pre class="indent">retrieveSpindle (&lt;SpindleName&gt;[, &lt;IsMainSpindle&gt;]);</pre></td>
            </tr>
            <tr bgcolor="#F0F0F0">
               <td colspan="1" rowspan="1">
                  <p class="para_td">Types</p>
               </td>
               <td colspan="1" rowspan="1"><pre class="indent">retrieveSpindle (&lt;STRING&gt;[, &lt;BOOL&gt;]);</pre></td>
            </tr>
            <tr>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1">
                  <p class="para_td">Example</p>
               </td>
               <td bgcolor="#F0F0F0" colspan="1" height="32" rowspan="1"><pre class="indent">retrieveSpindle (&quot;S4&quot;);</pre><pre class="indent">retrieveSpindle (&quot;S4&quot;, TRUE);</pre></td>
            </tr>
         </tbody>
      </table><br></body>
</html>