################################################################################
#   This is the definition file for tool holders with an ASCII File as the 
#    database
#
###############################################################################

DB_PREFIX  "DB("
DB_SUFFIX  ")"
ESS_PREFIX "ESS("
ESS_SUFFIX ")"


#############################################################################
#    The list of DB_ALIAS
#
#    All the <alias> defined here can be used in the class description at the end
#    of this file in order to define the fields that should appear in
#    the search criteria and search result dialogs within UG for every class.
#
#    DB_ALIAS  <alias>
#    {
#       DB_ID       < Attribute Identifier defined in the ASCII Data File >
#       DB_ID_TYPE  < Type of the identifier >
#           d _ double
#           i _ integer
#           s _ string
#           OPTIONS       "opt1" "opt2 " "opt3" 
#           OPTIONS_IDS   "val1"  "val2" "val3"
#           DIALOG_NAME "label in search criteria dialog"
#           RSET_NAME   "label in search result dialog"
#    }
#
#    OPTIONS and OPTIONS_IDS can be ommitted, If they are specified
#    then a corresponding option menu is created in the Search Criteria Dialog
#    instead of a simple search field.
#############################################################################

#    The DB_ALIAS of the library reference. It is mandatory that this DB_ALIAS
#    appears in the alias list
#    
        DB_ALIAS  libref 
        {
           DB_ID        LIBRF
           DB_ID_TYPE   s
           DIALOG_NAME "Libref"
           RSET_NAME   "Libref"
        }

        DB_ALIAS  RecType 
        {
           DB_ID        RTYPE
           DB_ID_TYPE   i	
        }

##################################################################

        DB_ALIAS Type
        {
           DB_ID         HTYPE
           DB_ID_TYPE    i
        }

        DB_ALIAS  SubType 
        {
           DB_ID        STYPE
           DB_ID_TYPE   i	
        }

        DB_ALIAS  N_Sections
        {
           DB_ID       SNUM 
           DB_ID_TYPE   i
        }

        DB_ALIAS  Max_offset
        {
           DB_ID       MAXOFF 
           DB_ID_TYPE   d
        }

        DB_ALIAS  Min_diameter
        {
           DB_ID       MINDIA 
           DB_ID_TYPE   d
        }

        DB_ALIAS  Max_diameter
        {
           DB_ID       MAXDIA 
           DB_ID_TYPE   d
        }

        DB_ALIAS  Description
        {
           DB_ID       DESCR 
           DB_ID_TYPE   s
        }

        DB_ALIAS  MountingStyle
        {
           DB_ID        MTS 
           DB_ID_TYPE    s
           OPTIONS       "none"  "BT30"  "BT40"  "BT50"  "CAT30"  "CAT40"  "CAT50"  "CAT60"  "HSK_32A"  "HSK_40A"  "HSK_50A"  "HSK_63A"  "HSK_80A"  "HSK_100A"  "HSK_125A"  "HSK_160A"  "HSK_25E"  "HSK_32E"  "HSK_40E"  "HSK_50E"  "HSK_63E"  "SK30"  "SK40"  "SK50"
           OPTIONS_IDS   "none"  "BT30"  "BT40"  "BT50"  "CAT30"  "CAT40"  "CAT50"  "CAT60"  "HSK_32A"  "HSK_40A"  "HSK_50A"  "HSK_63A"  "HSK_80A"  "HSK_100A"  "HSK_125A"  "HSK_160A"  "HSK_25E"  "HSK_32E"  "HSK_40E"  "HSK_50E"  "HSK_63E"  "SK30"  "SK40"  "SK50"
           DIALOG_NAME   "Mounting Style"
           RSET_NAME     "Mounting Style"
       }

#######################################################################

        DB_ALIAS  Seq_no
        {
           DB_ID       SEQ
           DB_ID_TYPE   i
        }


        DB_ALIAS  Diameter 
        {
           DB_ID        DIAM
           DB_ID_TYPE   d	
           DIALOG_NAME "(D) Diameter "
           RSET_NAME "(D) Diameter "
        }

        DB_ALIAS Height
        {
           DB_ID      LENGTH
           DB_ID_TYPE d
           DIALOG_NAME "(L) Height"
           RSET_NAME   "(L) Height"
        }

       DB_ALIAS  TaperAngle
        {
           DB_ID     TAPER
           DB_ID_TYPE   d	
           DIALOG_NAME "(B) Taper Angle"
           RSET_NAME   "(B) Taper Angle"
        }

        DB_ALIAS  CornerRadius
        {
           DB_ID       CRAD
           DB_ID_TYPE   d	
           DIALOG_NAME "(R1) Corner Radius"
           RSET_NAME   "(R1) Corner Radius"
        }
        
# for standard turning tool holder
        DB_ALIAS  HolderStyle
        {
            DB_ID         HSTYLE
            DB_ID_TYPE    s
            OPTIONS       "All" "A-Style" "B-Style" "C-Style" "D-Style" "E-Style" "F-Style" "G-Style" "H-Style" "I-Style" "J-Style" "K-Style" "L-Style" "M-Style" "N-Style" "O-Style" "P-Style" "Q-Style" "R-Style" "S-Style" "T-Style" "U-Style" "V-Style" "UD-Style"
            OPTIONS_IDS    "%"    "0"       "1"       "2"       "3"       "4"        "5"       "6"       "7"       "8"       "9"       "10"     "11"       "12"      "13"     "14"      "15"       "16"      "17"    "18"        "19"      "20"     "21"      "22"
            DIALOG_NAME   "Holder Style"
            RSET_NAME     "Holder Style"
        }

        DB_ALIAS  HolderHand
        {
            DB_ID         HHAND
            DB_ID_TYPE    s
            OPTIONS       "All" "Hand-Left" "Hand-Neutral" "Hand-Right"
            OPTIONS_IDS    "%"     "0"          "1"            "2"
            DIALOG_NAME   "Holder Hand"
            RSET_NAME     "Holder Hand"
        }

        DB_ALIAS  HolderLength
        {
            DB_ID         HLENGTH
            DB_ID_TYPE    d
            DIALOG_NAME   "(L) Holder Length"
            RSET_NAME     "(L) Holder Length"
        }

        DB_ALIAS  HolderWidth
        {
            DB_ID         HWIDTH
            DB_ID_TYPE    d
            DIALOG_NAME   "(W) Holder Width"
            RSET_NAME     "(W) Holder Width"
        }

        DB_ALIAS ShankType
        {
            DB_ID         SHANKT
            DB_ID_TYPE    s
            OPTIONS       "All" "Square-Shank" "Round-Shank"
            OPTIONS_IDS    "%"      "0"           "1"
            DIALOG_NAME   "Shank Type"
            RSET_NAME     "Shank Type"
        }

        DB_ALIAS  ShankWidth
        {
            DB_ID         SHANKW
            DB_ID_TYPE    d
            DIALOG_NAME   "(SW) Shank Width"
            RSET_NAME     "(SW) Shank Width"
        }

        DB_ALIAS  ShankLine
        {
            DB_ID         SHANKL
            DB_ID_TYPE    d
            DIALOG_NAME   "(SL) Shank Line"
            RSET_NAME     "(SL) Shank Line"
        }

        DB_ALIAS  HolderAngle
        {
            DB_ID         HANGLE
            DB_ID_TYPE    d
            DIALOG_NAME   "(HA) Holder Angle"
            RSET_NAME     "(HA) Holder Angle"
        }

        DB_ALIAS  ShankHeight
        {
            DB_ID         SHANKH
            DB_ID_TYPE    d
            DIALOG_NAME   "(SH) Shank Height"
            RSET_NAME     "(SH) Shank Height"
        }

        DB_ALIAS  ShankDefinitionMode
        {
            DB_ID         SDEFMODE
            DB_ID_TYPE    s
            OPTIONS       "All" "Insert And Holder" "Cutting Edge Angle"
            OPTIONS_IDS    "%"      "0"           "1"
            DIALOG_NAME   "Shank Definition Mode"
            RSET_NAME     "Shank Definition Mode"
        }

        DB_ALIAS  CuttingEdgeAngle
        {
            DB_ID         CEA
            DB_ID_TYPE    d
            DIALOG_NAME   "(CEA) Cutting Edge Angle"
            RSET_NAME     "(CEA) Cutting Edge Angle"
        }

        DB_ALIAS  AdapterUse
        {
            DB_ID         ADAPTER
            DB_ID_TYPE    s
            OPTIONS       "All"  "No"  "Yes"
            OPTIONS_IDS    "%"   "0"   "1"
            DIALOG_NAME   "Adapter Use"
            RSET_NAME     "Adapter Use"
        }

        DB_ALIAS  AdapterStyle
        {
            DB_ID         ASTYLE
            DB_ID_TYPE    s
            OPTIONS       "All"  "Axial"  "Radial"
            OPTIONS_IDS    "%"   "0"      "1"
            DIALOG_NAME   "Adapter Style"
            RSET_NAME     "Adapter Style"
        }

        DB_ALIAS  AdapterLength
        {
            DB_ID         ALENGTH
            DB_ID_TYPE    d
            DIALOG_NAME   "(L) Adapter Length"
            RSET_NAME     "(L) Adapter Length"
        }

        DB_ALIAS  AdapterWidth
        {
            DB_ID         AWIDTH
            DB_ID_TYPE    d
            DIALOG_NAME   "(W) Adapter Width"
            RSET_NAME     "(W) Adapter Width"
        }

        DB_ALIAS  AdapterHeight
        {
            DB_ID         AHEIGHT
            DB_ID_TYPE    d
            DIALOG_NAME   "(H) Adapter Height"
            RSET_NAME     "(H) Adapter Height"
        }

        DB_ALIAS  AdapterDiameter
        {
            DB_ID         ADIAM
            DB_ID_TYPE    d
            DIALOG_NAME   "(DIA) Adapter Diameter"
            RSET_NAME     "(DIA) Adapter Diameter"
        }

        DB_ALIAS  AdapterZOffset
        {
            DB_ID         AZOFF
            DB_ID_TYPE    d
            DIALOG_NAME   "(Z-OFF) Adapter Z-Offset"
            RSET_NAME     "(Z-OFF) Adapter Z-Offset"
        }

        DB_ALIAS  AdapterStepLength
        {
            DB_ID         ASTEPLEN
            DB_ID_TYPE    d
            DIALOG_NAME   "(SL) Adapter Step Length"
            RSET_NAME     "(SL) Adapter Step Length"
        }

        DB_ALIAS  AdapterStepDiameter
        {
            DB_ID         ASTEPDIAM
            DB_ID_TYPE    d
            DIALOG_NAME   "(SDIA) Adapter Step Diameter"
            RSET_NAME     "(SDIA) Adapter Step Diameter"
        }

        DB_ALIAS  AdapterTaperLength
        {
            DB_ID         ATAPERLEN
            DB_ID_TYPE    d
            DIALOG_NAME   "(TL) Adapter Taper Length"
            RSET_NAME     "(TL) Adapter Taper Length"
        }

        DB_ALIAS  AdapterTaperAngle
        {
            DB_ID         ATAPERANG
            DB_ID_TYPE    d
            DIALOG_NAME   "(TA) Adapter Taper Angle"
            RSET_NAME     "(TA) Adapter Taper Angle"
        }

        DB_ALIAS  AdapterBlockLength
        {
            DB_ID         ABLCKLEN
            DB_ID_TYPE    d
            DIALOG_NAME   "(BL) Adapter Block Length"
            RSET_NAME     "(BL) Adapter Block Length"
        }

        DB_ALIAS  AdapterBlockWidth
        {
            DB_ID         ABLCKWID
            DB_ID_TYPE    d
            DIALOG_NAME   "(BW) Adapter Block Width"
            RSET_NAME     "(BW) Adapter Block Width"
        }

        DB_ALIAS  AdapterBlockHeight
        {
            DB_ID         ABLCKHGHT
            DB_ID_TYPE    d
            DIALOG_NAME   "(BH) Adapter Block Height"
            RSET_NAME     "(BH) Adapter Block Height"
        }

# for grooving tool holder
        DB_ALIAS  GrooveStyle
        {
            DB_ID         GSTYLE
            DB_ID_TYPE    s
            OPTIONS       "All" "Groove-0" "Groove-45" "Groove-90" "Groove-UD"
            OPTIONS_IDS    "%"     "23"        "24"        "25"       "26"
            DIALOG_NAME   "Holder Style"
            RSET_NAME     "Holder Style"
        }

        DB_ALIAS  InsertExtension
        {
            DB_ID         INSERTX
            DB_ID_TYPE    d
            DIALOG_NAME   "(IE) Insert Extension"
            RSET_NAME     "(IE) Insert Extension"
        }

###################################################################
#################################################################


LIBREF     libref


#########################################################################
#                      The Class Hierarchy                              #
#########################################################################

CLASS HOLDER
{
   TYPE QRY
   QUERY  "[DB(libref)] != [0] && DB(RecType) == [1]"
   DIALOG libref
   RSET   libref Type SubType
   UI_NAME "Holder"

   CLASS MILLING_DRILLING
   {
      TYPE QRY
      QUERY  "[DB(Type)] == [01]"
      DIALOG libref Type
      RSET   libref Description N_Sections Max_offset 
      UI_NAME "Milling_Drilling"

        CLASS BT30
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [BT30]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "BT30"
        }

        CLASS BT40
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [BT40]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "BT40"
        }

        CLASS BT50
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [BT50]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "BT50"
        }

        CLASS CAT30
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [CAT30]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "CAT30"
        }

        CLASS CAT40
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [CAT40]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "CAT40"
        }

        CLASS CAT50
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [CAT50]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "CAT50"
        }

        CLASS CAT60
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [CAT60]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "CAT60"
        }

        CLASS HSK_32A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_32A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_32A"
        }

        CLASS HSK_40A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_40A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_40A"
        }

        CLASS HSK_50A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_50A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_50A"
        }

        CLASS HSK_63A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_63A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_63A"
        }

        CLASS HSK_80A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_80A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_80A"
        }

        CLASS HSK_100A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_100A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_100A"
        }

        CLASS HSK_125A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_125A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_125A"
        }

        CLASS HSK_160A
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_160A]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_160A"
        }

        CLASS HSK_25E
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_25E]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_25E"
        }

        CLASS HSK_32E
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_32E]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_32E"
        }

        CLASS HSK_40E
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_40E]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_40E"
        }

        CLASS HSK_50E
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_50E]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_50E"
        }

        CLASS HSK_63E
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [HSK_63E]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "HSK_63E"
        }

        CLASS SK30
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [SK30]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "SK30"
        }

        CLASS SK40
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [SK40]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "SK40"
        }

        CLASS SK50
        {
            TYPE QRY
            QUERY  "[DB(MountingStyle)] == [SK50]"
            DIALOG libref Description
            RSET   libref Description N_Sections Max_offset 
            UI_NAME "SK50"
        }
   }

   CLASS TURNING
   {
       TYPE QRY
       QUERY  "[DB(Type)] == [02]"
       DIALOG libref Type
       RSET   libref Description SubType
       UI_NAME "Turning"

       CLASS TURNING_STD
       {
           TYPE QRY
           QUERY    "[DB(SubType)] == [0]"
           DIALOG   libref Description
           RSET     libref Description
           UI_NAME  "Std_Turning_Tool_Holder"
       }

       CLASS GROOVE
       {
           TYPE QRY
           QUERY   "[DB(SubType)] == [1]"
           DIALOG  libref Description
           RSET    libref Description
           UI_NAME "Grooving_Tool_Holder"
       }
       
       CLASS THREAD
       {
           TYPE QRY
           QUERY   "[DB(SubType)] == [2]"
           DIALOG  libref Description
           RSET    libref Description
           UI_NAME "Threading_Tool_Holder"
       }
   }

   CLASS LASER
   {
      TYPE QRY
      QUERY  "[DB(Type)] == [03]"
      DIALOG libref Type
      RSET   libref Description N_Sections Max_offset
      UI_NAME "Laser"
   }
   
   CLASS WEDM
   {
      TYPE QRY
      QUERY  "[DB(Type)] == [04]"
      DIALOG libref Type
      RSET   libref Description N_Sections
      UI_NAME "Wire EDM"
   }

   CLASS FDM
   {
      TYPE QRY
      QUERY  "[DB(Type)] == [05]"
      DIALOG libref Type
      RSET   libref Description N_Sections
      UI_NAME "FDM"
   }

   CLASS ADDITIVE_TAPE
   {
      TYPE QRY
      QUERY  "[DB(Type)] == [06]"
      DIALOG libref Type
      RSET   libref Description N_Sections
      UI_NAME "TAPE"
   }
}
