!   TITLE:  purge_model.mac (MANAGEMENT)
!
!
!       Added argument 1 (purge) function.
!
!   OBJECTIVE:
!
!   This sub-macro purges the model of any extraneous solid model entities
!   that are not apart of the models.
!
!
!   COMMAND SYNTAX:
!
!                      (1)
!        PURGE_MODEL, purge
!
!
!   ARGUMENTS:
!
!       (1) purge = boolean used to determine entities to be purged:
!
!               0 (or blank) = delete all lower solid model entities:
!
!                   a.) If volumes exist, delete all extraneous areas,
!                       lines and KP's.
!
!                   b.) If no volumes exist, but only areas, delete all
!                       extraneous lines and KP's.
!
!               1 = delete all extraneous lines and KP's
!
!               2 = delete all extraneous KP's
!
!
!   DESCRIPTION:
!
!   The existence of extraneous solid model entities may be the result of
!   boolean operations. This macro "cleans" these extraneous entities by
!   eliminating loose entities that are not apart of the final model.
!
!
!
*get,prkey_,active,0,prkey
/nopr
!
init_entity_num
!
*get,vcnt__,volu,,count
*get,acnt__,area,,count
!
*if,vcnt__,gt,0,then
    *if,arg1,eq,0,then
        isolate_areas
        adele,all,,,1
        !
        init_entity_num
        !
        isolate_lines
        ldele,all,,,1
        !
        init_entity_num
        !
        isolate_kp
        kdele,all
    *elseif,arg1,eq,1,then
        isolate_lines
        ldele,all,,,1
        !
        init_entity_num
        !
        isolate_kp
        kdele,all
    *elseif,arg1,eq,2,then
        isolate_kp
        kdele,all
    *endif
*else
    *if,acnt__,gt,0,then
        *if,arg1,le,1,then
            isolate_lines
            ldele,all,,,1
            !
            init_entity_num
            !
            isolate_kp
            kdele,all
        *elseif,arg1,eq,2,then
            isolate_kp
            kdele,all
        *endif
    *else
        isolate_kp
        kdele,all
    *endif
*endif
!
init_entity_num
!
lplot
!
*set,acnt__,
*set,vcnt__,
!
*if,prkey_,eq,1,then
    /go
*endif