<!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>Data</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">Data</div>
      <hr noshade="true">
      <table cellspacing="4" align="center">
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1">
               <p class="para_td"><a class="links" href="javascript:void(0)" onclick="top.openFile('routingadmin/write_overview.html');return(false);">Overview</a></p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1">
               <p class="para_td"><a class="links" href="javascript:void(0)" onclick="top.openFile('routingadmin/write_process.html');return(false);">How To</a></p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1">
               <p class="para_td"><a class="links" href="javascript:void(0)" onclick="top.openFile('routingadmin/tcl_rules.html');return(false);">Options</a></p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1">
               <p class="para_td"><a class="links" href="javascript:void(0)" onclick="top.openFile('routingadmin/write_example.html');return(false);">Related Topics</a></p>
            </td>
         </tr>
      </table><br><p class="para_topic">The data passed via the UF_ROUTE_design_rule_data_p_t structure tells the design rule why it is called and what to check:</p>
      <p class="para_topic">typedef struct UG_ROUTE_design_rule_data_s</p>
      <p class="para_topic">{</p>
      <p class="para_topic">int mode;</p>
      <p class="para_topic">int reason;</p>
      <p class="para_topic">int num_objects;</p>
      <p class="para_topic">tag t *objects;</p>
      <p class="para_topic">} UG_ROUTE+design_rule_data_t,</p>
      <p class="para_topic">*UG_ROUTE_design_rule_data_p_t;</p>
      <table bgcolor="#F0F0F0" cellpadding="2" cellspacing="4" width="95%" align="center">
         <colgroup span="1">
            <col span="1" width="46*">
            <col span="1" width="153*">
         </colgroup>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Mode</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Identifies which mode of Routing the function has called from: <b class="uiTerm">Concurrent</b>, <b class="uiTerm">Interactive</b> or <b class="uiTerm">Batch</b>. The value may be: UF_ROUTE_DR_MODE_CONCURR ENT, UF_ROUTE_DR_MODE_INTERACT IVE or UF_ROUTE_DR_MODE_BATCH.
               </p>
            </td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Reason</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Identifies which function in Routing the function has been called from, for example, <b class="uiTerm">Place Part</b>. The value may be:
               </p>
               <p class="para_td">UF_ROUTE_DR_REASON_UNKNOWN,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_CREATE_PATH,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_HEAL_PATH,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_ASSIGN_CORNER,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_ASSIGN_STOCK,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_REMOVE_STOCK,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_STOCK_STYLE,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_ORIENT_STOCK,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_PLACE_PART,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_CREATE_FAB,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_QUALIFIY_PART,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_MOVE_PATH,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_COPY_PATH,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_DELETE_PATH,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_SUBDIVIDE_SEG,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_SIMPLIFIY_PATH,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_REMOVE_PART,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_MOVE_PART,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_EDIT_CHARX,</p>
               <p class="para_td">UF_ROUTE_DR_REASON_INTER_ACTIVE </p>
               <p class="para_td">UF_ROUTE_DR_REASON_BATCH</p>
               <p class="para_td">UF_ROUTE_DR_REASON_ORIENT_STOCK</p>
               <p class="para_td">UF_ROUTE_DR_REASON_UNIFY_PATH</p>
               <p class="para_td">UF_ROUTE_DR_REASON_TRANSFORM_PATH</p>
               <p class="para_td">UF_ROUTE_DR_REASON_OFFSET_PATH</p>
               <p class="para_td">UF_ROUTE_DR_REASON_AUTO_ROUTE_PIN</p>
               <p class="para_td">UF_ROUTE_DR_REASON_MANUAL_ROUTE_PIN</p>
               <p class="para_td">UF_ROUTE_DR_REASON_AUTO_ROUTE_COMP</p>
               <p class="para_td">UF_ROUTE_DR_REASON_MANUAL_ROUTE_COMP</p>
               <p class="para_td">This data might be used to determine what type of objects to look for, or whether to perform the check at all.</p>
            </td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">num_objects</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Identifies the number of objects in the objects array.</p>
            </td>
         </tr>
         <tr valign="top">
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">Objects</p>
            </td>
            <td bgcolor="#f7f7f7" colspan="1" rowspan="1" valign="top">
               <p class="para_td">If the mode is concurrent, objects will be an array of recently modified objects. To keep processing quick, these objects, or closely related objects, should be the only objects checked in the concurrent mode.</p>
            </td>
         </tr>
      </table><br></body>
</html>