1
0
Files
campro_tool_library/feeds_speeds/ascii/tool_materials.tcl
2026-02-22 14:16:24 +01:00

374 lines
9.7 KiB
Tcl

#############################################################################
# REVISIONS
# Date Who Reason
# 03/24/99 Murthy Mandaleeka Initial
# 05/19/99 Murthy Mandaleeka New Environment Variable
# 07/21/99 Subhash Included dbc_general_ascii.tcl file
# 07/21/99 Subhash Used general functions for
# opening and reading dat files.
# 08/06/99 Subhash Removed some unwanted comments
# 11/11/2003 rlm Add ASC_output_header
# 01/30/2004 rlm Move ASC_write to dbc_ascii_general
# 02/12/2004 rlm Add library revision information
# 07/01/2004 rlm 1339644 Add proc DBC_ask_library_values
# 12/06/2004 rlm 1369488 Fix DBC_execute_query_for_count and
# DBC_translate_att_alias
# 01/06/2005 gbs Added a comment to the line
# before
##############################################################################
#
# The format of each line in the text file is:
#
# material_code
# material_name
# material_description
#
# The DB_ID of a DB_ALIAS is its field number in the line (0-based)
###############################################################################
#---------------------------------------------
# Non DBC Global Variables
#---------------------------------------------
#MOM_set_debug_mode ON
#set dbFileName "[MOM_ask_env_var UGII_CAM_LIBRARY_FEEDS_SPEEDS_DATA_DIR]tool_materials.dat"
set DEBUG 0
set fPointer ""
#---------------------------------------------
# Global variables set by DBC for Input/Output
#---------------------------------------------
set dbc_lhs_exp ""
set dbc_rhs_exp ""
set dbc_relop ""
set dbc_query ""
set dbc_subqry1 ""
set dbc_subqry2 ""
set dbc_boolop ""
set dbc_class_name ""
set dbc_attr_count 0
set dbc_attr_id ""
set dbc_query_count 0
set dbc_libref ""
set dbc_var_list ""
set asc_debug 0
#---------------------------------------------
proc ASC_t_create_filename {env_var_name filename} \
{
#
# Creates a complete filename by evaluating an environment variable
# for the directory information
#
set env_var [MOM_ask_env_var $env_var_name]
if { $env_var == "" } \
{
set message "Can't read environment variable $env_var_name"
MOM_abort "\n $message"
}
set fname ""
set fname [append fname $env_var $filename]
return $fname
}
#---------------------------------------------
proc MOM__boot {} {
#---------------------------------------------
# source some general procedures
#
# dbc_ascii_general.tcl
#
set filename \
[ASC_t_create_filename "UGII_UG_LIBRARY_DIR" "dbc_ascii_general.tcl"]
if { [catch {source $filename}] == "1" } \
{
set message "Can't load .tcl file: $filename"
MOM_abort "\n $message"
}
}
proc MOM__halt {} \
{
}
#------------------------------------------------------------
proc DBC_init_db { } \
{
global DEBUG
global dataBase
global lastRowNumber
global dbFileName
global fPointer
global asc_file_name
set asc_part_units ""
set data_unit 0
set mode 0
#
# Set the filename for ASCII Data File
#
ASC_set_data_file_name
#
# And load the file into memory
#
ASC_load_data_file $asc_file_name $data_unit $mode
}
#---------------------------------------------
proc ASC_set_data_file_name {} {
#---------------------------------------------
global dbc_part_units
global asc_file_name
global asc_part_units
MOM_ask_part_units ;# writes to dbc_part_units
set env_var UGII_CAM_LIBRARY_FEEDS_SPEEDS_DATA_DIR
set asc_file_name [ASC_t_create_filename "$env_var" "tool_materials.dat"]
set asc_part_units $dbc_part_units
}
#---------------------------------------------
proc DBC_translate_att_alias {} {
#---------------------------------------------
global DEBUG
global dbc_alias
global dbc_id
ASC_translate_att_alias
}
#------------------------------------------------------------
proc DBC_create_criterion { } {
#------------------------------------------------------------
global DEBUG
global dbc_lhs_exp
global dbc_rhs_exp
global dbc_relop
global dbc_query
### set dbc_query "\[$dbc_lhs_exp\] $dbc_relop \[$dbc_rhs_exp\]"
ASC_create_criterion
}
#------------------------------------------------------------------------
proc DBC_create_query { } {
#------------------------------------------------------------------------
global DEBUG
global dbc_query
global dbc_subqry1
global dbc_subqry2
global dbc_boolop
#### set dbc_query "$dbc_subqry1 $dbc_boolop $dbc_subqry2"
ASC_create_query
}
#------------------------------------------------------------------------
proc DBC_execute_query { } {
#------------------------------------------------------------------------
global asc_database_count
ASC_execute_query
}
#---------------------------------------------
proc DBC_execute_query_for_count {} {
#---------------------------------------------
ASC_execute_query_for_count
}
#---------------------------------------------
proc DBC_retrieve { } {
#---------------------------------------------
global DEBUG
global dbc_libref
global dbc_retrieve_var_list
global dataBase
global dbc_material_code
global dbc_material_name
global dbc_material_description
global dbFileName
global fPointer
global asc_debug
global asc_file_name
global asc_database_count
if { $asc_debug == "1" } \
{
puts " =========================================="
puts " procedure DBC_retrieve for Tool Material"
puts " libref -> $dbc_libref"
}
#
# Look for the desired libref
#
for {set db_row 0} {$db_row < $asc_database_count} {incr db_row 1} \
{
# Find the row for the desired LibRef
set toolmaterial_libref [ASC_ask_att_val LIBRF $db_row \
"" 0 flag]
if { $dbc_libref == $toolmaterial_libref } \
{
break
}
}
if { $db_row >= $asc_database_count } \
{
set message "Error retrieving Tool Material from external library."
set message "$message \n Tool Material with the library reference $dbc_libref"
set message "$message \n does not exist in the"
set message "$message \n ASCII Data File: $asc_file_name"
MOM_abort "\n $message"
}
#
# Get the Material No.
#
set dbc_material_code [ASC_ask_att_val LIBRF $db_row "%s" "" flag]
#
# Get the Material Name
#
set dbc_material_name [ASC_ask_att_val MATNAM $db_row "%s" "" flag]
#
# Get the Material description
#
set dbc_material_description [ASC_ask_att_val MATDESC $db_row "%s" "" flag]
}
#------------------------------------------------------------------------
proc DBC_write { } {
#------------------------------------------------------------------------
global asc_database_name
set asc_database_name "tool_materials.dat"
ASC_write
}
#---------------------------------------------------------------------
proc ASC_output_header { fileid } {
#---------------------------------------------------------------------
global dbc_attr_count
global dbc_attr_aliases
global dbc_attr_id
global dbc_logname
set daytime [clock seconds]
set out_daytime [clock format $daytime -format "%a %b %d %Y %I:%M %p"]
set headerMessage "# TOOL_MATERIALS.DAT
##########################################################################
#
# PURPOSE:
#
# This is the database file used for defining Tool Material.
#
# REVISED:
# $dbc_logname $out_daytime
#
##########################################################################
##########################################################################
##
## The following key words for Attribute ids are defined
##
## LIBREF material_code - Unique record identifier
## (Library Reference)
## MATNAM material_name - Material Name (appears on the label)
## MATDESC material_description - Material Description
#########################################################################
#----------------+-------------------------------+-------------"
puts $fileid "$headerMessage"
# load the database structure
DBC_load_rset_data
# output FORMAT line
set format_line "FORMAT"
for {set i 0} {$i < $dbc_attr_count} {incr i} \
{
DBC_ask_attr_id $dbc_attr_aliases($i)
set format_line "$format_line $dbc_attr_id"
}
puts $fileid $format_line
puts $fileid "#--------------------------------------------------------------------------------"
}
proc DBC_ask_library_values {} \
{
#
# global input
global dbc_libref
global dbc_db_ids_count
global dbc_db_ids
global dbc_event_error
global asc_database_count
#
# global output
global dbc_return_status
global dbc_db_ids_value
# Do not change this string
set NO_MATCH "No matching record found for $dbc_libref"
set dbc_return_status 0
#
# Look for the desired libref
#
for {set db_row 0} {$db_row < $asc_database_count} {incr db_row 1} \
{
set toolmaterial_libref [ASC_ask_att_val LIBRF $db_row \
"" 0 flag]
if { $dbc_libref == $toolmaterial_libref } \
{
break
}
}
#
# and set the desired values
#
if { $db_row < $asc_database_count } \
{
for { set inx 0 } { $inx < $dbc_db_ids_count } { incr inx } \
{
set dbc_db_ids_value($dbc_db_ids($inx)) \
[ASC_ask_att_val $dbc_db_ids($inx) $db_row "" "" flag]
}
} else \
{
set dbc_event_error $NO_MATCH
set dbc_return_status 1
}
}