<HTML><HEAD><link type="text/css" href="../css/main_styles.css" rel="stylesheet"></HEAD>
<BODY><TITLE>%mqc_check_single_entity_layer</TITLE><H1>%mqc_check_single_entity_layer </H1><P CLASS="Paragraph">Classname: <B>%mqc_check_single_entity_layer </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>
    Check if all specified types of entities are on proper layers
Parameter:
    (List)   entity_type:          - Type of entity to check
                                     Set one or more from the following list:
                                     { _CURVE, LINE, ARC, CONIC, SPLINE, SKETCH,
                                       SOLID, SOLID_BODY, SHEET_BODY, FACETED_BODY,
                                       COMPONENT, DATUM, DATUM_PLANE, DATUM_AXIS, _POINT,
                                       CSYS, DRAFTING_ENTITY, DIMENSION, _GROUP, PLANE,
                                       PATTERN, PATTERN_POINTS, FOREIGN_ENTITY,
                                       SOLID_COLLECT, SOLID_SECTION, SOLID_SILHOUETTE };
                                     This is the mandatory parameter for the checker.
    (String) layer_range_string:   - String of the layer range description.
                                     This is a mandatory parameter.
                                     The layer range description string may contain
                                     multiple range descriptions separated by commas,
                                     e.g. "1,3-5,7,9"
                                       means layer 1, plus layers 3 to 5
                                       plus layer 7, and layer 9.
    (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:            - Indicate which logging type to use to report
                                     the violation
                                       1 - log error
                                       2 - log warning
                                       3 - log information
                                     The default value is 1 which is to log error.
    (String)  log_msg:             - User defined message to be added when the system
                                     reports the violation.
                                     The default is an empty string.
Results:
   PASS    -- if all specified type entities are contained in proper layers
   FAILED  -- if any specified type entities is not contained in proper layers

<B>See Also:</B>
   %mqc_check_multi_entity_layer
============================================================================================
Create a new checker from this template by providing the mandatory parameters:
   1. (Must) change the class name and the category name
   2. (Must) specify the Entity Type / Layers mapping rules:
        (List)      entity_type: {SOLID,SOLID_BODY};
        (String)    layer_range_string:   "1-5,20-30";
   3. (Optional) change log type:
        (Integer)    log_type:   1;
=============================================================================================
</PRE><PRE><FONT COLOR= blue>DefClass: %mqc_check_single_entity_layer( %ug_base_checker );
</FONT></PRE><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Check-Mate attributes and parameters </PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>   ( String )    %test_category: "Template.File Structure";
    ( String )    %displayed_name: "Check Single Entity / Layer Mapping";
   
</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\">  Checker specific parameters and attributes</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>   ( List )                 entity_type_init: 
                              { _CURVE, LINE, ARC, CONIC, SPLINE, SKETCH, SOLID, 
                                SOLID_BODY, SHEET_BODY, FACETED_BODY,
                                COMPONENT, DATUM, DATUM_PLANE, DATUM_AXIS, 
                                _POINT, CSYS, DRAFTING_ENTITY, DIMENSION,
                                _GROUP, PLANE, PATTERN, PATTERN_POINTS, 
                                FOREIGN_ENTITY, SOLID_COLLECT, SOLID_SECTION,
                                SOLID_SILHOUETTE 
                              };
   ( String )               entity_type_label: "Entity Type";

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>   ( List Parameter )       entity_type: {};
   ( String Parameter )     layer_range_string:   "";
</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  parameter for log_option                                       </PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>   ( String )               layer_range_string_label:   "Layer";

</SPAN></FONT></PRE></DIV><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\">  parameter for log_message     </PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>   ( List )                 log_type_option: { LOG_ERROR, LOG_WARNING, LOG_INFO };
   ( 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\">  Attribute for check rules:</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>   ( String )               log_msg_label: "Log Message";


   ( Boolean )   is_valid_layer?: If ( layer_range_string: = "" | layer_range_string: = noValue )
                                  Then  false
                                  Else  ug_rexp_match( layer_range_string: , "[0-9][0-9,\-]{0,}" );

</SPAN></FONT></PRE></DIV><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>   ( List ) rules_to_check:
   @{
       If -( Empty?( entity_type: ) ) & -( layer_range_string: = "" )
   
       Then  { { entity_type:, layer_range_string: } }
   
       Else  {};
   };


</SPAN></FONT></PRE></DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\">  Checking...</PRE><DIV><PRE STYLE=\"text-align : left;\" CLASS=\"Code\"><FONT COLOR=blue>  ( Any Uncached ) do_check:

                    If  ( -is_valid_layer?: )

                    Then  ug_mqc_log( LOG_WARNING, {}, "Invalid layer string." )

                    Else If  Empty?( rules_to_check: )

                    Then  ug_mqc_empty_param_warning()

                    Else  Loop
                    {
                        For  $each_rule  In  rules_to_check:;
                        For  $entity_type_list  Is  First( $each_rule );
                        For  $layer_str  Is Second( $each_rule );

                        Do Loop
                        {
                           For  $entity_type  In  $entity_type_list;

                           Do  ug_mqc_checkEntityLayer( $entity_type, 
                                                        $layer_str, 
                                                        Nth( log_type:, log_type_option: ), 
                                                        log_msg:,
                                                        ignore_internal?, true );
                        };
                    };

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