<HTML><HEAD><link type="text/css" href="../css/main_styles.css" rel="stylesheet"></HEAD>
<BODY><TITLE>%mqc_check_face_spike</TITLE><H1>%mqc_check_face_spike  </H1><P CLASS="Paragraph">Classname: <B>%mqc_check_face_spike  </B></P><P CLASS="Paragraph">Inherits from: <B><A href=..\checkmate\xug_base_checker.html>%ug_base_checker </A></B></P><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"> </PRE><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">
<B>Description:</B>
    This checker searches the faces for possible spikes or cuts
    by checking the angle between adjoining edges.
    If the angle is very small, the system will check several points along
    the shorter edge. If the distance between those specified points and
    the longer face edge is less than the specified Distance Tolerance,
    then that face is determined to contain a possible spike or cut.
Parameters:
    (Number)  Distance_tol        - distance tolerance for check.
                                    The default is 0.025.
    (Name)    unit                - grams_and_millimeters or pounds_and_inches
                                    The default is grams_and_millimeters.
    (Boolean)  disabled?          - If it is true, the checker is disabled.
                                    Default is False.
    (Boolean)  save_log_in_part   - The flag indicates whether the checking results can
                                    be saved to the part file
                                    Default is True.
    (Integer) log_type            - Error, Warning, Info, or None.
    (String)  log_msg             - error/warning/info/None message
Results:
    PASS:   --  No spike of cuts.
    FAIL:   --  Find spike all cuts.
Object Log:
    Faces with spikes or cuts.
</PRE><PRE><FONT COLOR= blue>DefClass: %mqc_check_face_spike ( %ug_base_checker );
</FONT></PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( String )                      %test_category: "Modeling.Examine Geometry";
( String )                      %displayed_name: "Faces - Spikes/Cuts";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( Boolean Parameter )           disabled?: false;
( Boolean Parameter )           save_log_in_part: True;
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Paramter for distance tolerance:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( Number Parameter )         Distance_tol:              0.025;
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Parameter for tolerance unit:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( String )                   Distance_tol_label:        "Distance Threshold Tolerance";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( Name Parameter )           unit: grams_and_millimeters;
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Paramter for geometry selection:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( List )                     unit_option: { grams_and_millimeters, 
                                            pounds_and_inches
                                          };
( String )                   unit_label: "Tolerance Unit:";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( List )                    selection:                 {};
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">( List )                     selection_mask:            { face };
( Name )                     selection_mode:            Multiple;
</PRE><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Paramter for log_type:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( Integer Parameter )           log_type: 1;
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Paramter for log_msg:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( list )                        log_type_option: { LOG_ERROR, 
                                                   LOG_WARNING, 
                                                   LOG_INFO, 
                                                   LOG_ANY };
( string )                      log_type_label: "Log Option";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( string Parameter )            log_msg: "";
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">   Checker function</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>( string )                      log_msg_label: "Log Message";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>(Any Uncached)  do_check: 
@{
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"> </PRE><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  deal with units:</PRE><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"> </PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>                 ( $Distance_tol, selection: );
                
    $usr_msg << If ( "" = log_msg: ) Then "" Else log_msg: + "~n";

    $detail_msg << "Found " + Stringvalue( Length( $ret_obj ) ) + 
        " face(s) with spikes or cuts in part.";
        
    If   ( -empty?( $ret_obj ) )
    Then  ug_mqc_log( Nth( log_type:, log_type_option: ), $ret_obj, $usr_msg + $detail_msg)
    Else  Donothing;
 };

</SPAN></FONT></PRE></DIV></TABLE><p class=EndLine>&nbsp;</p><p class=blank>&nbsp;</p></BODY></HTML>