Перейти к содержимому

Как postbuilder не выводить точку

  • автор:

Как postbuilder не выводить точку

Не много отвлечемся и я вам расскажу о том, как и где создаются MOM (TCL) расширения. Основную роль в этом играют библиотеки , libcamsmom.dll, libcamsint.dll и libcams.dll. Основные классы описаны в библиотеке — libcamsint.dll и libcamsmom.dll . Их иерархию — я не знаю. Строго говоря, подготовка и обработка данных для постпроцесса состоит из нескольких частей: первая часть это функции MOM_POST_*, вторая часть из более современной — классы. Каждый из них содержит огромное количество методов и свойств, некоторые дополняются своими специфическими. Ниже привожу их как пример (часть) методы класса UGS::TCL :

public: protected: ::ask_output_directory(void) ::ask_output_buffer(void) ::ask_proc_names(char const *) ::clear_end_buffer(void) ::close_output_file(char *) ::do_internal_event(char *) ::does_handler_handle_event(char *) ::dump(int (__cdecl*)(char const *. )) ::eval_boolean(char const *) ::eval_interp_proc_arg(char const *) ::eval_num_expr_in_xlator(char *,double *,int *) ::eval_str_expr_in_xlator(char *,char *,int *) ::init(void) ::implement_unload(void) ::implement_destroy(void) ::init_output_buffer(void) ::load_default_handlers(void) ::load_definition_file(void) ::load_event_handlers(void) ::load_global_vars_into_xlator(void) ::parser_error(char *,int,char *,char *) ::raise_warning(char const *) ::remove_var(char *) ::set_associative_array(char const *,char const *,char const *) ::set_dbl_array(char *,int,double *) ::set_dbl_array_2d(char *,int,int,double *) ::set_debug_mode(int) ::set_double(int,char const *,double) ::set_int(char *,int) ::set_int_array(char *,int,int *) ::set_integer(int,char const *,int) ::set_internal_string(char *,char *) ::set_last_result(char *) ::set_last_result_from_interp(void) ::set_channel_being_postprocessed(class UGS::XTP_channel *) ----xtp ::set_postprocessing_mode(bool) ------xtp ::set_str_array(char *,int,char * *) ::set_string(char *,char *) ::set_double_fast(enum MOM_FAST_VARS_e,double) ::set_int_fast(enum MOM_FAST_VARS_e,int) ::set_string_fast(enum MOM_FAST_VARS_e,char const *) ::set_timing_group(int) ::set_unprefixed_var(char const *,char const *) ::start_translator(void) ::stop_translator(void) ::unload(void) ::unload_definition_file(void) ::write_definition_file(void) ::write_obuf_to_ofile(void) static class UGS::OM::AttributeId ::start_bufferAttId ::symbol_tableAttId ::time_stampAttId ::timing_groupAttId ::xtpTransAttId ::primary_output_file_nameAttId ::previous_xtp_eventAttId

Иерархия классов примерно такая :

Сами MOM- функции создаются в методе класса ::add_funcs_to_xlator(void *this)

А вот присоединяются непосредственно к командам TCL посредством структуры: struct TCL_vtbl_s * pvtbl_tcl — со смещением 17. Что за команда TCL скрыта под этим номером можно только догадываться.

. (*(void (__cdecl **)(int, _DWORD, int (__cdecl *)(int, int, int, int), int, _DWORD)) ((void (__cdecl **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))pvtbl_tcl+ 17))

Если Вы хотите узнать какие именно процедуры (Ваши\не Ваши) загружаются и используются в интерпретаторе, то используйте Tcl команду в событии [end_of_program] :
set s [ info commands ]
MOM_output_to_listing_device $s

В исходниках UG — файлы, отвечающие за МОМ, расположены примерно здесь:

/src/cams/no/ind/
mom_post_tclex.c — создание MOM — команд
mom_doc.c
mom_doc_definitions.c
mom_post.c — основной файл MOM
mom_post_convert_point.c — конвертирует \ поворачивает точку, проверяет лицензию
mom_post_dh_kinematics.c — ведет расчет и выводит точки
mom_post_kinematics.c
mom_post_syscycle.c
mom_post_turbo_cbs.c — отвечает за режим TURBO
mom_post_ytab.c
opr_mom.c — создает MOM — переменные для параметров операций
opr_mom_doc.c — создает MOM — переменные для параметров операций для Shop
Методы классов.

Рассмотрим их, по мере создания и подключения.

Пример цикла обхода всех членов в программе в поисках нужного инструмента, используя язык запросов QRY:

QRY='[$mom_tool_name] &= [^T.*$] &&[$mom_tool_diameter] > [0.5]’
>
]

Синтаксис QRY (запросов):

libcams .dll
UGS::MOM_DOC
UGS::MOM_DOC::add_funcs_to_xlator(void *this)
UGS::MOM_INFO::add_funcs_to_xlator();
«MOM_list_oper_path» MOM_list_oper_path
Команда выводит листинг операции. И позволяет выбрать формат листинга.
Эта команда позволяет Вам постпроцессировать операцию используя существующий постпроцессор (Tcl и Def файл). Вы можете выводить или машинный код G\M, или список UDEs
Пример: вывод листинга операции в CLSF-формате.
set list_tcl [MOM_ask_env_var UGII_CAM_TOOL_PATH_DIR]clsf.tcl
set list_def [MOM_ask_env_var UGII_CAM_TOOL_PATH_DIR]clsf.def
MOM_list_oper_path $mom_operation_name $list_tcl $list_def
«MOM_load_oper_ude_exps» NX 9
«MOM_list_user_defined_events» MOM_list_user_defined_events < Start/End > < operation_name > []
Это расширение позволяет выводить список UDEs определенных в операции.
» Start » — список начальных UDE, » End » — конечные
Пример:
MOM_list_user_defined_events «Start» $mom_operation_name \
«$mom_source_directory\\test_info.def» «$mom_source_directory\\test_info.tcl» «c:\\Temp\\XYZ.txt»
«MOM_refresh_display» мом — функция п о обновлению экрана, для вывода рисунка в документации.
«MOM_capture_image» судя по названию функция делает захват изображения с окна UG, используются технологии VRML GIF
«MOM_capture_path_gif_image» NX 9 MOM_capture_path_gif_image []
— позволяет выбрать путь\папку куда сохранять gif -файлы [ tool path ] операции.
>

Но классы описанные в библиотеке выше являются более общными для всех, а вот непосредственно отвечающими за обработку и вывод постпроцессора являются классы лежащие внутри ниже показанной библиотеки.

  • mom_kin_4th_axis_center_offset
  • mom_kin_5th_axis_center_offset
  • mom_kin_pivot_gauge_offset
  • mom_ result — массив [ X, Y, Z, 4th, 5th ] — первичное решение
  • mom_ result1 — массив [ X, Y, Z, 4th, 5th ] — альтернативное
  • mom_result = mom_special_output < 0 = None, 1 = Use Main MCS, 2 = Fixture Offset, 3 = CSYS Rotation>.
  • mom_result1 = mom_csys_matix[12]
  • mom_result2 = mom_machine_csys_matrix[12].
Класс UGS::UI_WIZD.
  • ISV или методы симуляции УП в Unigraphic -е реализуются методом » хука «. То-есть, классы MOM_SIM — в реализации тоже самое, что и MOM_POST, только обработка события проходит через специфичные для данного класса метода, а уж потом вызываются методы класса MOM_POST.

В библиотеках Юниграфики, собственно за обработку данных координат (для постпроцессора) отвечает большое количество функций с именем: MOM_POST_*. В их теле происходит интенсивная обработка mom -переменных, переменных — кинематики, разного рода вычисления. Вот примерные имена их:

.
MOM_POST_convert_point
MOM_POST_edm_4axis_pt
MOM_POST_rotate_tool_axis
MOM_POST_convert_5axis_pt
MOM_POST_dh_convert_point
MOM_POST_round
MOM_POST_rotary_pos
MOM_POST_rotate_point
MOM_POST_limit_angle
.

— на них, я не буду останавливаться. Их много, а тратить время на их анализ просто не хотелось, кто хочет — может попробовать сам. Покажу только список всех кинематических переменных читаемых функцией MOM_POST_init_kinematic_data. В этой функции MOM читает мом-переменные и заполняет сложную внутреннюю структуру. Все значения приводятся к верхнему регистру MCE_convert_toupper(char *), а затем сравниваются с определенными значениями. Активно применяется PART_ask_units. Внутри функции читается переменная «UGII_CAM_POST_ENABLE_RESOLUTION_ROUND» — за что она отвечает можно только догадываться. Практически все строковые кинематические MOM переменные переводятся в числовые < 1, 0 >= , либо в массив значений.

"kin_cycle_plane_change_to_lower" ; "TRUE" "kin_cycle_plane_change_per_axis" ; "TRUE" "kin_output_unit" ; IN or MM "kin_post_data_unit" ; IN or MM "kin_machine_type" ; "lathe" "3_axis_mill" "4_axis_head" "4_axis_table" "mill_turn" "3_axis_mill_turn" "5_axis_dual_table" "5_axis_dual_head" "5_axis_head_table" "2_axis_wedm" "4_axis_wedm" "kin_wire_tilt_output_type" ; ANGLES, COORDINATES "kin_min_angular_incr" ; "COORDINATES" "ADVANCED" "kin_machine_resolution" "kin_min_arc_length" "kin_track_center_of_ball" ; "TRUE" "kin_4th_axis_plane" ;"ZX" "kin_4th_axis_rotation" ;"reverse" STANDARD "kin_4th_axis_min_incr" "kin_4th_axis_min_limit" "kin_4th_axis_max_limit" "kin_4th_axis_zero" "kin_4th_axis_center_offset" "kin_4th_axis_direction" ; "SIGN_DETERMINES_DIRECTION" "SIGN_PLUS_CCLW" "CCLW_LARGER_ANGLE" "ALWAYS_CLW" "ALWAYS_CCLW" "ALWAYS_SHORTEST" "CODE_FORCES_DIR" "kin_linearization_tol" "kin_linearization_flag" ;"TRUE" "kin_5th_axis_plane" ;"ZX" "kin_5th_axis_rotation"; "reverse" STANDARD "kin_5th_axis_min_incr" "kin_5th_axis_min_limit" "kin_5th_axis_max_limit" "kin_5th_axis_zero" "kin_5th_axis_center_offset" "kin_5th_axis_inclination_to_4th" "kin_5th_axis_direction" ; "SIGN_DETERMINES_DIRECTION" "MAGNITUDE_DETERMINES_DIRECTION" "SIGN_PLUS_CCLW" "CCLW_LARGER_ANGLE" "ALWAYS_CLW"; "ALWAYS_CCLW" "ALWAYS_SHORTEST" "CODE_FORCES_DIR" "kin_iks_usage" "iks_usage" "kin_4th_axis_plane" "kin_5th_axis_plane" "kin_pivot_dist_vec" "kin_pivot_gauge_offset" "kin_coordinate_type" ; "POLAR" ;POSX, POSY, POSZ, NEGX, NEGY, NEGZ "kin_holder1_orientation" , "kin_holder1_offset_x" , "kin_holder1_offset_y" , "kin_holder1_offset_z" "kin_holder2_orientation" , "kin_holder2_offset_x" , "kin_holder2_offset_y" , "kin_holder2_offset_z" "kin_holder3_orientation" , "kin_holder3_offset_x" , "kin_holder3_offset_y" , "kin_holder3_offset_z" "kin_holder4_orientation" , "kin_holder4_offset_x" , "kin_holder4_offset_y" , "kin_holder4_offset_z" "kin_holder5_orientation" , "kin_holder5_offset_x" , "kin_holder5_offset_y" , "kin_holder5_offset_z" "kin_holder6_orientation" , "kin_holder6_offset_x" , "kin_holder6_offset_y" , "kin_holder6_offset_z" "kin_polar_radius_side" ; "POSITIVE" "NEGATIVE" "kin_nurbs_output_type" ; BSPLINE, HEIDENHAIN_POLY, SIEMENS_POLY "kin_independent_head" ; FRONT, REAR, RIGHT, LEFT, SIDE, SADDLE, NONE "kin_ind_to_dependent_head_x" "kin_ind_to_dependent_head_z" "kin_clsf_generation" "kin_no_defaults" "kin_read_ahead_next_motion" ;"TRUE" "kin_is_turbo_output" ;"TRUE" "FALSE" "kin_arc_output_mode" ; FULL_CIRCLE, QUADRANT, LINEAR "kin_helical_arc_output_mode" ;FULL_CIRCLE, QUADRANT, LINEAR, END_POINT  "kin_arc_valid_plane" ; XYZ, XY, YZ, ZX, ANY "kin_min_arc_radius" "kin_max_arc_radius" "kin_tool_tracking_height" "kin_rapid_feed_rate" "kin_max_fpm" "kin_max_fpr" "kin_max_frn" "kin_max_dpm" "kin_min_fpm" "kin_min_fpr" "kin_min_frn" "kin_min_dpm" "kin_tool_change_time" "kin_clamp_time" "kin_flush_time" "kin_spindle_axis" ;"XAXIS" "YAXIS" "ZAXIS" "kin_4th_axis_incr_switch" ; ON (incremental) or OFF (absolute) "kin_5th_axis_incr_switch" "kin_tool_tip_distance_compute_method" "sys_linearization_method"; "axis" 

Основным классом можно признать UGS::MOM_TCL. Косвенным фактом этого служит обработчик по умолчанию:

proc MOM__halt <> < set pfx_util_done_heading 0;>proc MOM__util_do_heading <> global pfx_part_name; global pfx_logname; global pfx_date; global pfx_util_done_heading; if < $pfx_util_done_heading == 1 >< return >; MOM__util_print «Informational Output for PART: $pfx_part_name»; MOM__util_print «Created By: $pfx_logname»; MOM__util_print «Creation Date: $pfx_date»; MOM__util_print «===============================================»; set pfx_util_done_heading 1; > proc MOM__util_print_line_context set fl [open $filename r]; set from [expr $linenum-$context]; set to [expr $linenum+$context]; set current 1; if < $from < 1 >< set from 1 >; while < $current = 0 > if < $current >= $from > < MOM__util_print "$: $line"; > set current [incr current]; >; close $fl; > proc MOM__util_print < line >set f [open «./pfx_information.out» a]; puts $f $line; flush $f; close $f; > proc MOM__boot <>

set pfx_debug_init_done 0; set pfx_debug_events 0; set pfx_debug_vars 0; set pfx_debug_num_flag 0; set pfx_debug_range_flag 0; set pfx_debug_range_lower 0; set pfx_debug_range_upper 0; set pfx_debug_event_num 0; set pfx_parse_error ""; set pfx_parse_file_name ""; set pfx_parse_line_number ""; set pfx_parse_line ""; set pfx_error_info ""; set pfx_error_code ""; set pfx_error_event ""; set pfx_error_event_handler_name ""; set pfx_parse_error ""; set pfx_parse_file_name ""; set pfx_parse_line_number ""; set pfx_parse_line ""; set pfx_error_info ""; set pfx_error_code ""; set pfx_error_event ""; set pfx_error_event_handler_name ""; proc PFX_on_event_error <> global pfx_error_info; global pfx_error_code; global pfx_error_event; global pfx_error_event_handler_name; MOM__util_print "***** A TCL Error Has Occurred *****"; MOM__util_print "Event Handler: $pfx_error_event_handler_name"; MOM__util_print "Event: $pfx_error_event"; MOM__util_print "Error Info: $pfx_error_info"; MOM__util_print "Error Code: $pfx_error_code"; > proc PFX_on_parse_error <> global pfx_parse_error; global pfx_parse_file_name; global pfx_parse_line_number; global pfx_parse_line; MOM__util_print "***** A Parse Error Has Ocurred *****"; MOM__util_print "Definition file: $pfx_parse_file_name"; MOM__util_print "In Or Near Line Number: $pfx_parse_line_number"; MOM__util_print_line_context $pfx_parse_file_name $pfx_parse_line_number 3 stdonly; MOM__util_print "Parser error message: $pfx_parse_error"; > proc PFX_catch_warning <> global pfx_warning_info; MOM__util_do_heading; MOM__util_print ""; MOM__util_print "+++MOM WARNING+++"; MOM__util_print "Info: $pfx_warning_info"; MOM__util_print ""; > proc PFX_on_event_error_debug <> global pfx_error_info; global pfx_error_code; global pfx_error_event; global pfx_error_event_handler_name; MOM__util_print ""; MOM__util_print "***ERROR***: Error in the Event Handler"; MOM__util_print "---------------------------------------"; MOM__util_print "Event Handler: $pfx_error_event_handler_name"; MOM__util_print "Event: $pfx_error_event"; MOM__util_print "Error Info: $pfx_error_info"; MOM__util_print "Error Code: $pfx_error_code"; MOM__util_print ""; > proc PFX_on_parse_error_debug <> global pfx_parse_error; global pfx_parse_file_name; global pfx_parse_line_number; global pfx_parse_line; MOM__util_print ""; MOM__util_print "***ERROR***: Parse Error in the Definition File"; MOM__util_print "--------------------------------------------------"; MOM__util_print "Definition file: $pfx_parse_file_name"; MOM__util_print "In Or Near Line Number: $pfx_parse_line_number"; MOM__print_line_context $pfx_parse_file_name $pfx_parse_line_number 3 fileonly MOM__util_print "Line: $pfx_parse_line"; MOM__util_print "Parser error message: $pfx_parse_error"; MOM__util_print ""; > proc PFX_end_debug <> < global pfx_util_done_heading; set pfx_util_done_heading 0; >proc PFX_init_debug <> global pfx_debug_init_done; global pfx_part_name; global pfx_logname; global pfx_date; global pfx_util_done_heading; global pfx_debug_events pfx_debug_vars pfx_debug_num_flag; global pfx_debug_range_flag pfx_debug_range_lower pfx_debug_range_upper; MOM__util_print "Set Debugging Options"; PFX_set_defaults; if < [file exists mom_debug_answers] >PFX_read_answers; MOM__util_print "Use the answers found in mom_debug_answers."; > else MOM__util_print "Use default answers."; >; MOM__util_print "Answers: $pfx_debug_events $pfx_debug_vars $pfx_debug_num_flag \ $pfx_debug_range_flag $pfx_debug_range_lower $pfx_debug_range_upper"; set pfx_util_done_heading 0; set pfx_debug_init_done 1; > proc PFX_read_answers <> global pfx_debug_events; global pfx_debug_vars; global pfx_debug_num_flag; global pfx_debug_range_flag; global pfx_debug_range_lower; global pfx_debug_range_upper; set f [open mom_debug_answers r]; gets $f pfx_debug_events; gets $f pfx_debug_vars; gets $f pfx_debug_num_flag; gets $f pfx_debug_range_flag; if < $pfx_debug_range_flag == 1 >gets $f pfx_debug_range_lower; gets $f pfx_debug_range_upper; >; close $f; > proc PFX_set_defaults <> global pfx_debug_events; global pfx_debug_vars; global pfx_debug_num_flag; global pfx_debug_range_flag; global pfx_debug_range_lower; global pfx_debug_range_upper; set pfx_debug_events 1; set pfx_debug_vars 0; set pfx_debug_num_flag 1; set pfx_debug_range_flag 0; set pfx_debug_range_lower 0; set pfx_debug_range_upper 0; > proc PFX_before_each_add_var <> global pfx_debug_assign_var; global pfx_debug_vars; global pfx_debug_event_num; global pfx_debug_range_lower pfx_debug_range_upper pfx_debug_range_flag; if < $pfx_debug_vars == 0 >< return >; MOM__util_do_heading; set num $pfx_debug_event_num; incr num; if < $pfx_debug_range_flag == 1 >if < $num < $pfx_debug_range_lower || $num >$pfx_debug_range_upper > < return >; >; MOM__util_print "Var: $pfx_debug_assign_var"; > proc PFX_before_each_event <> global pfx_debug_event_name; global pfx_debug_events pfx_debug_range_flag pfx_debug_event_num; global pfx_debug_range_lower pfx_debug_range_upper pfx_debug_num_flag; incr pfx_debug_event_num; if < $pfx_debug_events == 0 >< return >; if < $pfx_debug_range_flag == 1 >if < $pfx_debug_event_num < $pfx_debug_range_lower || $pfx_debug_event_num >$pfx_debug_range_upper > < return >; >; MOM__util_do_heading; if < $pfx_debug_num_flag == 1 > < set num $pfx_debug_event_num; >else < set num ""; >; MOM__util_print ""; MOM__util_print "Event $: $pfx_debug_event_name"; MOM__util_print "--------------------------------------------------"; MOM__util_print ""; >

Что делает этот код — я не знаю. Наверно он служит для каких-то отладочных мероприятий.

Подведем итоги.

Как вы можете видеть, при постпроцессировании доступны MOM -функции из 3-х классов

более того, некоторые функции слабо документированы, либо сознательно не афишируются разработчиками даже в утилите Post Builder : mom_vars_browser . tcl

VIII Международная студенческая научная конференция Студенческий научный форум — 2016

ОСОБЕННОСТИ РАЗРАБОТКИ ПОСТПРОЦЕССОРА ДЛЯ РАБОТЫ В МОДУЛЕ NXCAM.

Урманов М.Д. 1
1 Набережночелнинский институт (филиал) Казанского (Приволжского) федерального университета
Работа в формате PDF

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

В настоящее время рациональным решением для подготовки производства на станках с ЧПУ является разработка управляющих программ в автоматизированном режиме непосредственно на рабочем месте технолога. Одним из решений для этой процедуры можно принять использование модуля «Обработка» (САМ) в системе UNIGRAPHICS NX от компании Siemens PLM Software. Одной из проблем, возникающих на производстве, становится то, что для формирования управляющей программы для каждой системы ЧПУ необходим отдельный постпроцессор – программный модуль, переводящий описание траектории инструмента на внутреннем языке САМ в формат управляющей программы. В среде NX существует определенное количество шаблонов для создания постпроцессора. Однако каждый станок с ЧПУ имеет свои особенности в составлении управляющей программы. Именно поэтому существует необходимость в доработки постпроцессора.

В данной работе для создания своего постпроцессора используется программный продукт NX/PostBuilder.В этой среде автоматически будет создаваться стандартный шаблон постпроцессора, который необходимо редактировать под особенности своего станка.После создания нового файла появится следующее диалоговое окно (рис. 1):

Рисунок 1 – Диалоговое окно задания параметров постпроцессора

Вводиться имя постпроцессора, лучше, если оно совпадает с моделью станка, в нашем случае это фрезерный станок с ЧПУ JMD3CNC. Описание станка не изменяем. Единицы вывода постпроцессора задаем в миллиметрах. Ставим галочку в окне «Разрешить изменение для событий, задаваемых пользователем», в этом случае можно задавать функциональные особенности постпроцессора для нашего станка. На этом подготовительная часть для создания шаблона постпроцессора заканчивается.

В следующем окне вводиться характеристики станка, они необходимы для формирования особенностей задания границ обработки и выхода в референтную точку:

Рисунок 2 – Диалоговое окно задания характеристик станка

Теперь непосредственно переходим к редактированию программы. Для нашего случая в начале программного управления станком необходимо, чтобы присутствовали:

  • название программы:
  • расширение файла программы;
  • путь к файлу программы в системе ЧПУ.

Для этого необходимо добавить дополнительные текстовые блоки, в которых и непосредственно будет записаны эти строки (рис. 3).

%_N_K_MPF – где для К- название программы , MPF – расширение.

;$PATH=/N_MPF_DIR – путь к программе;

Однако если записать данные строки, то у нас выйдет ошибка. Это будет связано с тем, что система NX будет воспринимать все стоящее после знака $ как функцию. Чтобы этого не происходило, необходимо ввести обратный слеш, тогда программа не будет выполнять подстановку значений.

Рисунок 3 – Программные коды в задании инициализации программы

Следующим шагом является замена или удаление команд, которые не используются в управляющей программе станка.

В начале программы необходимо добавить в кадре строки безопасности«G40 G17 G90 G71» команду G00. По этой команде перемещения по координатам, идущие сразу после строки безопасности и записанные без определяющих подготовительных функций, будут производиться на быстром ходу, как это и нужно для подвода инструмента. На вкладке «Последовательность в начале операции» в команде «Автоматической смене инструмента» необходимо убрать кадр G91 G28 Z0, так как эта функция отсутствует в системе ЧПУ Sinumerik 802S нашего станка. Так как инструмент в управляющей программе станка обозначается иначе, нам нужно изменить во вкладке «Управлением станком» в команде «Коррекция на длину» команды G43 H01 на команду T01 D01. Во вкладке «Перемещения инструмента» в команде «Круговое перемещение» необходимо убрать команду К. Во вкладке «Встроенные циклы» в команде «Выключение цикла» убрать команду G80, и в командах, расположенных ниже командуQ. Во кладке «Последовательность в конце операции» в команде «ПеремещениеGomove» необходимо добавить кадр с командами G00 и Z. Зададим выражение Z = 100. По этой команде после окончания операции инструмент будет отводится на безопасное расстояние от заготовки. Во вкладке «Последовательность в конце программы» в команде «Конец программы» убираем кадр %_N_K_MPF, а также заменяем кадр M02 на M30.

Следующим шагом будет создание в управляющей программе строк с наименованием начала программы и видом обработки.

Для этого необходимо перейти к командам пользователя. В данном разделе будет использоваться встроенный язык программированияTCL.

Рисунок 4 – Задание команд пользователя

Для начала необходимо создать свою команду. НазовемееPB_CMD_MY_OWN_PROGRAMM. Для упрощения работы в системе есть специальная база команд, которую можно открыть: Utilities-BrowseMOMVariables. Для задания строки потребуется команда mom_output_literal. Нам необходимо, что бы наша команда выводила строковое значение. Для этого запишем следующую строку: mom_output_literal “;===START OF THE PROGRAMM===”. Команда, помещенная в кавычках будет считаться системой как строка. Для работы данной команды необходимо добавить ее во вкладку «Последовательность в начале программы» после цикла MOM_set_seq_on. На данном этапе после запуска постпроцессирования, мы получим строку в начале программы:;===STARTOFTHEPROGRAMM===. Следующей задачей является получение строки с название обработки. Для этого создадим еще одну команду и назовем ее PB_CMD_Start_of_operation. В данной команде для отображения названия операции будем использовать команду mom_operation_name. Объявим ее глобальной, используя команду global. ВследующейстрокенеобходимозаписатьMOM_output_literal «;OPERATIONNAME =>$mom_operation_name». В данной команде все записанной в кавычках считается системой текстом, а значение, идущие после знака $ считаются переменной. Так же для работы данной команды необходимо добавить ее во вкладку «Последовательность в начале программы» после цикла PB_CMD_MY_OWN_PROGRAMM.

Чтобы убедиться в работоспособности постпроцессора сохраним его и постпроцессируем заранее подготовленную операцию обработку корпусной детали (рис. 5).

Рисунок 5 – Управляющая программа обработки детали

Таким образом, используя модуль NX/PostBuilder, с его возможностями задания команд пользователя, можно сгенерировать постпроцессор для любого исполнения системы ЧПУ и тем самым повысить эффективность использования модуля NXCAM.

Литература:

  1. Ведмидь П.А.,Сулинов А.В. Программирование обработки в NX CAM. – М.: ДМК Пресс, 2014 – 304 с.

Разработка постпроцессора для оптимизации работы на станках с числовым программным управлением Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Вержаковская Марина Александровна, Аронов Виталий Юрьевич, Слепнев Алексей Андреевич

Данная работа заключается в разработке программного модуля для станков с силовым программным управлением, который отвечает всем требованиям по механической, фрезерной обработке тяжелых сплавов. Актуальность темы данной разработки заключается в необходимости улучшения и ускорения механической обработки деталей, путем внедрения разработанного программного модуля . Цель данной работы разработка программного модуля для автоматизации работы на станках с числовым программным управлением для предприятия ООО «Самарский завод специальных сплавов». Объектом исследования является цех механической обработки деталей, оснащенный станками с числовым программным управлением. Предметом исследования является процесс анализа систем с числовым программным управлением и оптимальный способ реализации программного модуля ( постпроцессора ). В работе рассматривается процесс создания постпроцессора и управляющей программы для станков с числовым программным управлением . Постпроцессор это модуль, преобразующий файл траектории движения инструмента и технологических команд, рассчитанный процессором CAM или CAD/CAM-системы , в файл управляющей программы в строгом соответствии с требованиями методики ручного программирования конкретного комплекса «станок система с ЧПУ». Для разработки программного модуля для оптимизации на работы на станках с ЧПУ использовались следующие программные средства: CAD/CAM система NX Unigraphics 10 (система необходима для создания 3D модели будущей детали и создания управляющих программ для станка с числовым программным управлением ), PostBuilder (генератор постпроцессоров , система необходима для создания 3D модели будущей детали и создания управляющих программ для станка с числовым программным управлением ), Cimko Edit (необходима для виртуального моделирования, демонстрации готовой управляющей программы ). Главной особенностью разработанного постпроцессора является то, что кадры кода управляющей программы записаны циклами. При циклической работе увеличивается скорость движения инструмента, повышается гладкость, уменьшается шероховатость обрабатываемой детали. Циклы заставляют двигаться инструмент плавно по заданному радиусу. В случае с отдельными координатами инструмент движется прерывисто, следовательно на детали остаются следы от инструмента. В заключении приводится сравнительный анализ стандартного и разработанного в данной работе модулей. Разработанный постпроцессор позволяет составлять корректные, более удобные управляющие программы . С экономической точки зрения, постпроцессор позволяет сократить затраты на инструмент и материалы благодаря гибкому алгоритму управляющей программы .

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Вержаковская Марина Александровна, Аронов Виталий Юрьевич, Слепнев Алексей Андреевич

Реализация методов многоканальной обработки с ЧПУ
Обработка деталей РКТ с наличием сложных поверхностей
Обработка деталей РКТ с наличием сложных поверхностей

Повышение эффективности технологической подготовки производства на основе применения cad/cam/cnc систем

Автоматизация подготовки управляющих программ для станков с числовым программным управлением
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Post processor development for optimize work of machines with numerical program control

Developing a software module for machine tools with power program control, which meets all the requirements for the mechanical, milling processing of heavy alloys is described in this work. The relevance of the topic for this development is the need to improve and accelerate the machining of parts, through the introduction of the developed software module. The purpose of this work is the development of a software module for the automation of work on machine tools with numerical program control for the enterprise LLC Samara Special Alloys Plant. The object of the study is the workshop for machining parts, equipped with machine tools with numerical control. The subject of research is the process of analyzing systems with numerical program control and the optimal way to implement a software module (postprocessor). The work discusses the process of creating a postprocessor and control program for machine tools with numerical control. A postprocessor is a module that converts a file of toolpaths and technological commands, calculated by a CAM or CAD / CAM system processor, into a control program file in strict accordance with the manual programming technique requirements of a specific machine-CNC system. The following software was used to develop a software module for optimization on work on CNC machines: CAD / CAM system NX Unigraphics 10 (the system is needed to create a 3D model of the future part and create control programs for the CNC machine), PostBuilder (a postprocessor generator, the system is needed to create a 3D model of the future part and create control programs for a CNC machine), Cimko Edit (necessary for virtual modeling, finished control program demonstration). The developed postprocessor main feature is that the control program code is recorded in cycles. During cyclic operation, the movement speed of the tool increases, smoothness increases, and the roughness of the workpiece decreases. Cycles force the tool to move smoothly over a given radius. In the individual coordinates case, the tool moves intermittently, therefore the tool remain on the part traces. In conclusion, a comparative analysis of the standard and developed in this work modules. The developed postprocessor allows to make correct, more convenient control programs. From an economic point of view, the postprocessor allows you to reduce the cost of tools and materials thanks to a flexible control program algorithm.

Текст научной работы на тему «Разработка постпроцессора для оптимизации работы на станках с числовым программным управлением»

РАЗРАБОТКА ПОСТПРОЦЕССОРА ДЛЯ ОПТИМИЗАЦИИ РАБОТЫ НА СТАНКАХ С ЧИСЛОВЫМ ПРОГРАММНЫМ УПРАВЛЕНИЕМ

ВЕРЖАКОВСКАЯ Марина Александровна1

Виталий Юрьевич2 СЛЕПНЕВ

Сведения об авторах:

1к.ф.-м.н., доцент, доцент кафедры программного обеспечения и управления в технических системах Поволжского государственного университета телекоммуникаций и информатики, г. Самара, Россия, vma@psuti.ru

2к.т.н., доцент кафедры программного обеспечения и управления в технических системах Поволжского государственного университета телекоммуникаций и информатики, г. Самара, Россия, avy@psuti.ru

3программист-технолог цеха металлообработки Самарского завода специальных сплавов, г. Самара, Россия, a.slepnev93@mail.ru

Данная работа заключается в разработке программного модуля для станков с силовым программным управлением, который отвечает всем требованиям по механической, фрезерной обработке тяжелых сплавов. Актуальность темы данной разработки заключается в необходимости улучшения и ускорения механической обработки деталей, путем внедрения разработанного программного модуля. Цель данной работы — разработка программного модуля для автоматизации работы на станках с числовым программным управлением для предприятия ООО «Самарский завод специальных сплавов». Объектом исследования является цех механической обработки деталей, оснащенный станками с числовым программным управлением. Предметом исследования является процесс анализа систем с числовым программным управлением и оптимальный способ реализации программного модуля (постпроцессора). В работе рассматривается процесс создания постпроцессора и управляющей программы для станков с числовым программным управлением. Постпроцессор — это модуль, преобразующий файл траектории движения инструмента и технологических команд, рассчитанный процессором CAM или CAD/CAM-системы, в файл управляющей программы в строгом соответствии с требованиями методики ручного программирования конкретного комплекса «станок — система с ЧПУ». Для разработки программного модуля для оптимизации на работы на станках с ЧПУ использовались следующие программные средства: CAD/CAM система NX Unigraphics 10 (система необходима для создания 3D модели будущей детали и создания управляющих программ для станка с числовым программным управлением), PostBuilder (генератор постпроцессоров, система необходима для создания 3D модели будущей детали и создания управляющих программ для станка с числовым программным управлением), Cimko Edit (необходима для виртуального моделирования, демонстрации готовой управляющей программы). Главной особенностью разработанного постпроцессора является то, что кадры кода управляющей программы записаны циклами. При циклической работе увеличивается скорость движения инструмента, повышается гладкость, уменьшается шероховатость обрабатываемой детали. Циклы заставляют двигаться инструмент плавно по заданному радиусу. В случае с отдельными координатами инструмент движется прерывисто, следовательно на детали остаются следы от инструмента. В заключении приводится сравнительный анализ стандартного и разработанного в данной работе модулей. Разработанный постпроцессор позволяет составлять корректные, более удобные управляющие программы. С экономической точки зрения, постпроцессор позволяет сократить затраты на инструмент и материалы благодаря гибкому алгоритму управляющей программы.

КЛЮЧЕВЫЕ СЛОВА: числовое программное управление; CAD/CAM-система; программный модуль; постпроцессор; управляющая программа; NX Unigraphics; 3D-модель; механическая обработка.

Для цитирования: Вержаковская М.А., Аронов В.Ю., Слепнев A.A. Разработка постпроцессора для оптимизации работы на станках с числовым программным управлением // Наукоемкие технологии в космических исследованиях Земли. 2019. Т. 11. № 2. С. 40-50. doi: 10.24411/2409-5419-2018-10258

Внедрение на предприятии станков с числовым программным управлением (ЧПУ) можно отнести к самому крупному и перспективному достижению в области металлообработки. В результате внедрения станков с ЧПУ происходит повышение производительности труда, появляются возможности для многостаночного обслуживания. На станках с ЧПУ целесообразно изготовлять детали сложной формы, где требуется одновременное перемещение по нескольким координатам.

В зависимости от разработанного программного обеспечения, можно полностью автоматизировать и ускорить процесс производства, что позволит улучшить условия труда рабочих-станочников и значительно уменьшить долю тяжелого, ручного труда.

Основным преимуществом производства с помощью станков с ЧПУ по сравнению с универсальными станками с ручным управлением, следующие:

— сокращение времени обработки детали;

— повышение точности обработки;

— снижение затрат на специальные приспособления;

— возможность использования менее квалифицированной рабочей силы;

— сокращение времени на производство деталей;

— сокращение затрат на контроль и транспортирование деталей.

Основной успех в высокой производительности зависит от правильно подобранной системы с ЧПУ, CAD/ CAM — системы и соответствующего всем требованиям программного модуля. Мало оснастить предприятие современным оборудованием. Очень важно, чтобы это предприятие еще и эффективно работало. Добиться этого можно максимально оптимизировав технологический процесс, а если учесть, что на современном предприятии наиболее сложные и ответственные операции производятся на оборудовании с ЧПУ, то оптимизация технологического процесса сводится к оптимизации программного кода для этих станков [1].

Для обслуживания станков с ЧПУ требуются технологи-программисты, способные с использованием компьютерных технологий разрабатывать управляющие программы для обработки самых различных по форме и размерам деталей [2-3].

При этом не всегда работу по анализу, переработке и представлению информации способен выполнять компьютер в автоматическом режиме, из-за отсутствия заранее известного алгоритма достижения поставленной задачи. В связи с этим возникает достаточно серьезная проблема, связанная с созданием оптимального технологического процесса механической обработки изделий на оборудовании с ЧПУ в автоматическом режиме [4].

Актуальность темы данной разработки заключается в необходимости улучшения и ускорения механической

Vol 11 No 2-2019, H&ES RESEARC INFORMATICS, COMPUTER ENGINEERING AND CONT

обработки деталей, путем внедрения разработанного программного модуля. Цель данной работы—разработка программного модуля для автоматизации работы на станках с ЧПУ для предприятия ООО «Самарский завод специальных сплавов». Для выполнения механической обработки, на предприятии имеется 3-х координатный фрезерный станок с ЧПУ. Программный модуль необходим предприятию для качественной обработки сложных деталей, таких как: штампы, пресс-формы, сердечники.

ООО «Самарский завод специальных сплавов» является одним из немногих заводов в России, где производится механическая обработка жаропрочных сплавов с помощью станков с ЧПУ Руководство завода стремится улучшать качество готовых деталей, не увеличивая время на механическую обработку.

Сложность механической обработки штампов заключается в высокой прочности обрабатываемого материала. Функция оптимизированной подачи автоматически выявляет сложные для обработки участки и производит движение инструмента на заниженной подаче, что позволяет обеспечить лучшую стойкость инструмента.

Объектом исследования является цех механической обработки деталей, оснащенный станками с ЧПУ.

Предметом исследования является процесс анализа систем ЧПУ и оптимальный способ реализации программного модуля (постпроцессора).

Постпроцессор — это модуль, преобразующий файл траектории движения инструмента и технологических команд, рассчитанный процессором CAM или CAD/ CAM-системы, в файл управляющей программы в строгом соответствии с требованиями методики ручного программирования конкретного комплекса «станок — система с ЧПУ» [5].

Процесс создания постпроцессора условно разделяется на два основных этапа: написание постпроцессора и отладка постпроцессора на станке. Первый этап может происходить дистанционно, без выезда разработчика на предприятие, в случае предоставления всей необходимой документации на оборудование. Второй этап предусматривает обязательное присутствие разработчика непосредственно возле станка, исключение могут составлять только простые станки (до 3х одновременно управляемых координат), в этом случае отладка может так же вестись дистанционно.

Постпроцессор состоит из четырех частей (рис. 1):

1. Паспорт станка («вопросник») — это набор вопросов и возможные варианты ответов о станке и правилах программирования для него, например тип оборудования, возможность программного управления охлаждением; наличие кругового интерполятора, точность аппроксимации и др. [6].

2. Макет кадра — это структура кадра управляющей программы. При этом определяется последовательность

Рис. 1. Структура постпроцессора

вывода адресов команд в кадр УП; размерность числовой информации, следующей за каждым адресом; специальные свойства команд, определяющие условия отмены одних команд другими и необходимость обязательного вывода в кадр УП.

3. Алгоритмический заполнитель — это набор алгоритмов преобразования каждой использованной команды CLDATA в последовательность команд в формате ASCII для данного устройства ЧПУ

4. Макрокоманды — набор укрупненных команд CLDATA, заменяющих действие нескольких отдельных команд CLDATA.

Для разработки программного модуля на персональный компьютер установлены следующие программы:

— CAD/CAM система NX Unigraphics 10. Данная система необходима для создания 3D модели будущей детали и создания управляющих программ для станка с ЧПУ;

— PostBuilder (генератор постпроцессоров). Устанавливается как дополнение к NX Unigraphics, в ней происходит процесс создания постпроцессора;

— Cimko Edit. Необходима для виртуального моделирования, демонстрации готовой управляющей программы.

Генератор постпроцессоров создает программу ЧПУ используя пять явных последовательностей: «Последовател ьность в начале программы», «Последовательность в начале

операции», «Траектория», «Последова-тельюстъ в конце операции», «Последовательность в конце программы» (рис. 2).

Этап «Последовательность в начале программы» формирует начало управляющей программы, т.е. добавляются необходимые кадры и команды, которые будут выводиться в начале каждой управляющей программы. Система нуждается только в некоторых функциях, таких как код остановки, перемотки и конца программы, в начале и конце программы ЧПУ [7]. Также можно управлять выводом других событий в траектории от оставшихся событий траектории инструмента таких как линейная интерполяция, круговая интерполяция и т.д., используя последовательность кадров в траектории инструмента.

Этап «Последовательность в начале операции» задает параметры, которые будут выводиться в начале каждой операции, такие как рабочие оси, по которым будет происходить движение инструмента, устанавливаются режимы резания, а также определяются команды для позиционирования (рис. 3). Система первоначально генерирует и продолжает генерировать это событие, когда мы обрабатываем постпроцессором операции. Данное событие происходит, вне зависимости от наличия смены инструмента в операции.

Этап «Траектория» разделяется на 3 части:

1. Меню «Управление станком» управляет устройствами станка такими как включение СОЖ, шпинделя, подачи. Можно также использовать события управления станком для смены режима, таких как: программирование в абсолютных координатах или в приращениях, задание подачи в обратном времени, в миллиметрах в минуту, в оборотах в минуту или постоянная скорость резания.

2. Меню «Перемещение» описывает, как постпроцессор обрабатывает записи в траектории инструмента. Система генерирует несколько типов перемещений, ускоренное перемещение, линейное перемещение, круговое перемещение.

3. Меню «Встроенные циклы» позволяет сконфигурировать вывод кадров встроенных циклов сверления. Генератор постпроцессоров позволяет задать все параме-

Последовательность в начале

^ Последовательность в начйп © ©¡ЩрШЩШ

Последовательность конце )’эоаэращшм

Последовательность в конце

Рис. 2. Этапы разработки постпроцессора

Vol 11 No 2-2019, H&ES RESEARC INFORMATICS, COMPUTER ENGINEERING AND CONT

Рис. 3. Создание кинематики станка

тры, необходимые для форматирования встроенных циклов для станка.

Этап «Последовательность в конце операции» позволяет задать, какие кадры будут выводиться в программу в конце каждой операции. Обычно это кадры типа возврата в исходное положение и выключения шпинделя или подачи СОЖ. Если нам известно, что кадры в конце операции будут всегда неизменны, то мы можем ввести их в эту последовательность вместо того, чтобы каждый раз задавать события задаваемые пользователем.

Этап «Последовательность в конце программы» позволяет задать вывод в конце каждой программы ЧПУ. Стоит заметить, что события начало программы и конец программы должны выводится только однажды главным постпроцессором. Если перезаписывать любое из этих событий вручную, сопряженный постпроцессор восстанавливает первоначально заданные события начала программы и конца программы.

Разработанный программный модуль для CAD/CAM системы NX Unigraphics состоит из трех файлов с разным расширением: «Postprocessor.pui»; «Postprocessor. def» и «Postprocessor.tcl».

При установке NX Unigraphics уже предлагается несколько готовых, стандартных постпроцессоров. Они отличаются своей сложностью и значительно затрудняют работу оператора и самого станка с ЧПУ. Разработанный программный модуль помещается в папку с типовыми постпроцессорами. После запуска CAD/CAM системы NX Unigraphics пользователь приступает к созданию управляющей программы.

Сейчас на рынке представлено большое количество CAD/CAM систем различного уровня [8-9]. При этом важно понимать, не только то, какие задачи можно решать с помощью имеющегося средства разработки УП, а какие — нет, но и то, насколько эффективно они решаются [10-11].

В результате анализа процесса разработки УП в современных CAM-системах были выделены следующие этапы работы: настройка параметров проекта, импорт геометрических данных, задание параметров инструмента, задание параметров операций, расчет траекторий, визуализация обработки; формирование выходной документации [10, 12].

Автоматизация создания УП имеющихся станков приведет:

— к увеличению загрузки станка;

— снижению квалификации станочника-программиста, необходимой для написания управляющих программ;

— уменьшению времени на ввод управляющей программы в оперативную память станка многократно;

— расширению применения мелкосерийного штучного изготовления деталей;

— увеличению скорости переналадки станка на изготовление другого вида продукции;

— созданию архивов готовых управляющих программ;

— увеличению производительности труда станочника-программиста, за счет снижения времени на переналадку одного станка, станочник-программист сможет обслуживать большее количество станков [13].

Рис. 4. Стартовое окно системы UmgrapЫcs

Ниже приведем алгоритм и пример создания управляющей программы на основании разработанного постпроцессора.

Для создания управляющей программы необходимо запустить систему МХ иг^гарЫс8 и открыть уже готовую 3D модель (рис. 4). Для проверки программного модуля создадим управляющую программу для данной 3D модели. Будем выполнять «черновую» и «чистовую» обработку крепежных элементов представленной детали [14].

Первым шагом необходимо открыть меню «Создание операции», в котором представлены все виды операций, которое могут использоваться для обработки различных деталей (фрезерная и токарная обработка, 3-х, 4-х, 5-х осевая обработка, «черновая», «чистовая», обработка стенок, обработка пола, сверление).

Меню, отвечающее за «черновую» обработку детали, представлено на рис. 5. Здесь необходимо выбрать область резания, в данном случае это крепежные элементы, инструмент, которым будет обрабатываться данный участок, глубину резания, шаблон резания (траектория движения инструмента) и задать «припуск» на чистовую обработку.

После ввода всех необходимых данных необходимо нажать кнопку «Генерировать траекторию». В результате система сгенерирует траекторию обработки на языке системы МХ Unigraphics (рис. 6).

Данный язык не понятен станку с ЧПУ, для этого надо перевести управляющую программу с помощью разработанного программного модуля. Для этого необходимо произвести постпроцессирование, выбрать нужный про-

0 Глубинное фрезерование — [CAVTTV_Mil.L] X

Задать деталь Заготовка

Контрольная геометрия Область резания Границы обрезки

Настройки траектории Метод

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Шаблон резания Шаг между проходами Процент плоского диаметра Общая глубина резани Максимальное расстс Уровни резания Параметры резания Вспомогательные перемещения Скорости и подачи

% плоской области v *

Рис. 5. Меню «САУГП-М1КЬ» для «черновой» обработки детали

Vol 11 No 2-2019, H&ES RESEARC

INFORMATICS, COMPUTER ENGINEERING AND CONT

граммный модуль и путь, куда будет сохранена готовая управляющая программа (рис. 7).

Готовая управляющая программа имеет понятный станку с ЧПУ язык и формат.МРЕ Данный формат можно открыть с помощью блокнота (рис. 8).

Каждая строчка в управляющей программе состоит из кадров. С помощью разработанного программного модуля видно, что каждый кадр пронумерован, в «шапке» программы указана информация по инструменту, каждый кадр отвечает за определенное движение инструмента, кадр N12; N24 выполнены одной строчкой. Данные кадры указывают станку вести инструмент с помощью круговой интерполяции, что позволяет сделать траекторию более плавной. Такая возможность позволяет уменьшить количество кадров и улучшить качество готовой детали. В конце программы указано время, которое будет необходимо для выполнения этой управляющей программы.

Перед внедрением управляющей программы в станок ее необходимо проверить, провести симуляцию обработки в специальной программе Cimco Edit. Данная программа позволяет с максимальной точностью спроектировать движение инструмента. Это покажет, как сгенерирована программа, если ли в ней лишние или не правильные перемещения инструмента, чистота проходов инструмента, позволит сверить время работы управляющей программы. На рис. 9 представлен интерфейс программы Cimko Edit с ранее полученным готовым кодом управляющей программы (рис. 8).

Для проверки сгенерированной управляющей программы необходимо перейти во вкладку «Прорисовка»,

MIL L_5_AXIS_5IN U M ERIK_AC TT_M M

MILLJJWS ACTT IN

LAT H Е_2_АЖП» 00 L_TIP

MILLTURN MULTI SPINDLE

Выходной файл Имя файла

C:\Users\Samsung\De£kto р\ Л еха\Lil B_502\L¡1 B_f

Расширение имени файла mpf

Поиск выходного файла 3

Вывод центра шара IV] Вывод листинга Пред-преждения при выводе Инструмент просмотра

Рис. 7. Меню постпроцессирования траектории

1 НАУКОЕМКИЕ ТЕХНОЛОГИИ

Файл Правка Фермат Вид Справка

Ñ1 G54 N2 GO0 2200. N3 ХО.О Y0. О N4 ; OlILL_D40) N5 ТОО М06

N6 GOО Х-94.019 Y200.059 SO МОЗ N7 2120.179 N8 22. 5

N9 G01 2-, 5 F250. N10 Y180.059 N11 Y174.463

N12 G03 Х-90.028 Y170.472 14. 3.01 N13 G01 Х-39.972

N14 G03 Х-35.981 Y174.462 I-.01 34.

N15 G01 Y180.059

N18 G00 2120.179

N19 Х-114.019 Y200.059

N24 G03 Х-110.028 Y150.472 14. 3.009 N25 G01 Х-19.972

N16547 2-31,5 N16548 G00 2120.179 N16549 МЗО

(TOTAL TIME 1349.68 MIN);

Рис. 8. Готовый код управляющей программы

нажать опцию «Прорисовка окна». В результате появится траектория управляющей программы. Для создания ее визуализации, необходимо нажать опцию 3D модель, в результате появится окно, в котором автоматически указываются крайние точки траектории инструмента, инструмент, которым будет производиться симуляция. В данном случае

управляющая программа сделана под фрезу D40R0, следовательно указываются такие же параметры фрезы. После введения всех необходимых данных на основном экране появляется смоделированная 3D визуализация траектории (рис. 10). По результатам визуализации видно, что управляющая программа выполнена правильно.

Для оценки разработанного программного модуля сравним его со стандартным постпроцессором, который, по умолчанию, предлагает система МХ Unigraphics. Для этого были сгенерированы 2 одинаковые программы с помощью разных программных модулей. Для сравнения была выполнена чистовая обработка изготавливаемых деталей (крепежных элементов). На рис. 11 изображены первые кадры управляющей программы: слева программа сгенерирована стандартным программным модулем, справа разработанным в данной работе постпроцессором.

В программе, разработанной стандартным постпроцессором видно, что кадры программы нумеруются десятками. Данная особенность усложняет поиск кадра в длинной программе т.к. предельная нумерация равна 99.999 кадрам.

В новом постпроцессоре кадры нумеруются единицами, что позволяет в 10 раз увеличить числовой диапазон программы.

В исходных данных программы слева указаны исходные точки станка, но т. к. данный постпроцессор стандартный, он не учитывает особенностей конкретного станка, что может привести к ошибке в программе. В программе справа данная опция изменена на нулевые точки детали, что исключает ошибки и врезание инструмента в деталь.

Рис. 9. Интерфейс программы Cimko Edit

Рис. 10. Смоделированная 3D визуализация траектории

Главной особенностью разработанного постпроцессора является то, что кадры записаны циклами, например кадр № 10. В стандартном постпроцессоре данный кадр разбит на отдельные координаты (№ 500-590). При циклической работе увеличивается скорость движения инструмента, повышается гладкость, уменьшается шероховатость обрабатываемой детали. Циклы заставляют двигаться инструмент плавно по заданному радиусу. В случае с отдельными координатами инструмент движется прерывисто, следовательно на детали остаются следы от инструмента.

Сравнив два программных модуля можно сделать вывод, что разработанный в данной работе программный модуль более мобилен, гибок и удобней для рабочего оператора станка с ЧПУ. Также улучшается качество обрабатываемой детали, из-за циклической траектории по-

Vol 11 No 2-2019, H&ES RESEARC INFORMATICS, COMPUTER ENGINEERING AND CONT

вышается стойкость инструмента и уменьшается время на обработку детали.

Разработанный программный модуль отличается от стандартных постпроцессоров следующим:

— постпроцессор нумерует каждый кадр управляющей программы, что облегчает оператору возможность запуска программы с определенной позиции;

— оптимизированная траектория позволяет сократить длительность программы без ущерба для обрабатываемой детали;

— встроенные циклы (при необходимости) позволяют упростить работу оператора и ускорить выполнение управляющей программы;

— исходные данные управляющей программы позволяют программисту писать определенные комментарии для оператора, такие как название управляющей программы, место обработки, информацию по инструменту;

— в конце каждой управляющей программы постпроцессор указывает время работы операции, что позволяет более точно оператору рассчитать время выполнения детали [15].

В данной работе разработан аналог стандартного программного модуля, который используется на предприятии ООО «Самарский завод специальных сплавов». В созданном постпроцессоре исправлены все недостатки своего предшественника и добавлены новые функциональные возможности при генерации управляющей программы [13]. Разработанный постпроцессор позволяет составлять корректные, удобные управляющие программы. С экономической точки зрения, постпроцессор позволяет

N330 Т—»MILL» N340 Мб

N350 MSG («METHOD») N3 60 TRAFOOF

N370 SUPA GO Z=_Z_HOME DO

N380 SUPA GO X=_X_HOME Y=_Y_HQME DO

N400 ¿Initial Move N410 CYCLE832(camtolerance,0,1) N420 TRAFOOF N430 G54

N440 GO X-124.089 Y-110.526 SO DO M3

N460 /Approach Move

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

N480 ;Engage Move

N490 G1 Z17.09 M8 F250.

N500 X-125.585 Y-109.765

N510 X-127.217 Y-109.361

N520 X-128.898 Y-109.306

N530 Х-1Э0.55Э Y-109.601

N540 X-132.11 Y-110.235

N550 X-133.501 Y-111.179

N560 X-134.641 Y-112.411

N580 X-134-831 Y-112.652

N590 X-136.0B1 Y-113.635

N60(1 Х-137.50Я T-114.34? . —

Рис. 11. Сравнение

N2 GOO Z200. N3 XO.O YO.O N4 ; (MILL) N5 TOO MO 6

N6 GOO X—124.089 Y-110.526 SO M03 N7 Z123.161 N8 Z20.09

N9 G01 Z17.09 F250.

N10 G03 X-134.641 Y-112.411 1-4.232 J-6.789 N11 G02 X-134.831 Y-112.652 1-24,563 J19.05 N12 X-140.629 Y-114.873 1-5.717 J6.245

N13 GOl X-150.264

N14 G02 X-154.857 Y-H2.17 10.0 J5.254 N15 G03 X-160.296 Y-110.615 1-3.497 J-1.942

N16 GOl X-158.187 Y-120.244

N18 GOO Z123.161

N19 X-121.708 Y-109.413

N22 G03 X-131.817 Y-112.355 1-3.371 J-7.255 N23 GO2 X-132.825 Y-113.748 1-12.67 J8.111 N24 X-140.629 Y-116.614 1-7.582 J8.59

N25 GOl X-149.634

N26 GO2 X-154.382 Y-114.983 1.334 J8.698 N27 X-156.539 Y-111.954 13.489 J4.767 N28 G03 X-161.538 Y-109.307 1-3.823 J-1.177

сократить затраты на инструмент и материалы благодаря гибкому алгоритму управляющей программы.

1. Солкин А.Ю., Кузнецов П. К. Проблема оптимизации NC программ для механообрабатывающих станков с ЧПУ // Вестник Волжского университета им В. Н. Татищева. 2011. № 17. С. 90-94.

2. Морозов В. В. Программирование обработки деталей на современных фрезерных станках с ЧПУ Владимир: Изд-во Владимирского гос. университета, 2010. 246 с.

3. Морозов В. В. Программирование обработки деталей на современных многофункциональных токарных станках с ЧПУ. Владимир: Изд-во Владимирского гос. университета, 2009. 234 с.

4. Солкин А. Ю. Способы автоматизации создания управляющих программ для металлорежущего оборудования с ЧПУ // Вестник Волжского университета им

B. Н. Татищева. 2012. № 2(19). С. 165-168.

5. Ловыгин А. А. Теверовский Л. В. Современный станок с ЧПУ и CAD/CAM система. М.: ДМК Пресс, 2015. 280 с.

6. Тугенгольд А. К. Система интеллектуального управления станками // Станки и инструменты (СТИН). 2008. № 12.

C. 10-15. URL: https://lib-bkm.ru/13605 (дата обращения 10.10.2018).

7. Кошкин В. Аппаратные системы числового программного управления. М.: Машиностроение, 1989. 260 с.

8. Суханов Ю. С. Проект «Короли» и «капуста» на ниве САМ. Действительные и мнимые лидеры мирового рынка САМ в 2014 году. Часть II. Рейтинги CAM-вендоров // CAD/ CAM/CAE Observer. 2016. №. 1. С. 24-34.

9. Невлюдов И. Ш., Великодный С. С., Омаров М.А. Использование CAD/CAM/CAE/CAPP при формировании управляющих программ для станков с ЧПУ // ВосточноЕвропейский журнал передовых технологий. 2010. № 2 (44). С. 37-44.

10. КазанцевМ. С., Васильев Н. С. Оценка трудоемкости разработки управляющих программ современных CAM- системах // Перспективы науки. 2014. № 12 (63). С. 91-94.

11. Казанцев М. С. Метод оценки трудоемкости разработки управляющих программ для изготовления группы деталей на станах с ЧПУ // Известия высших учебных заведений. Приборостроение. 2015. № 4. С. 322-324.

12. Казанцев М. С. Основные факторы, влияющие на трудоемкость разработки управляющих программ на современных CAM-системах // Национальная ассоциация ученых. 2015. № 3-3(8). С. 63-66.

13. Янюшкин А. С., Лобанов Д.В., Ильин М. М. Автоматизация процесса создания управляющих программ для станков с ЧПУ // Механики XXI веку. 2010. № 9. С. 96-98.

14. Вержаковская М. А., Аронов В. Ю., Слепнев А. А., Осанов В. А. Разработка программного модуля для оптимизации работы на станках с ЧПУ // Материалы XXV Российской научно-технической конференции профессорско-преподавательского состава, научных сотрудников и аспирантов ПГУТИ (Самара, 22-26 января 2018 г.). Самара, 2018. С. 207.

15. Локтева С. Е. Станки с программным управлением и промышленные роботы. М.: Машиностроение, 1986. URL: https://lib-bkm.ru/load/70-1-0-3088 (дата обращения 10.10.2018).

Vol 11 No 2-2019, H&ES RESEARC INFORMATICS, COMPUTER ENGINEERING AND CONT

POST PROCESSOR DEVELOPMENT FOR OPTIMIZE WORK OF MACHINES WITH NUMERICAL PROGRAM CONTROL

MARINA A. VERZHAKOVSKAYA,

Samara, Russia, vma@psuti.ru

VITALY Y. ARONOV,

Samara, Russia, avy@psuti.ru

KEYWORDS: numerical program control; CAD/CAM system; program module; postprocessor; control program; NX Unigraphics; 3D model; mechanical processing.

ALEXEY A. SLEPNEV,

Samara, Russia, a.slepnev93@mail.ru

Developing a software module for machine tools with power program control, which meets all the requirements for the mechanical, milling processing of heavy alloys is described in this work. The relevance of the topic for this development is the need to improve and accelerate the machining of parts, through the introduction of the developed software module. The purpose of this work is the development of a software module for the automation of work on machine tools with numerical program control for the enterprise LLC Samara Special Alloys Plant. The object of the study is the workshop for machining parts, equipped with machine tools with numerical control. The subject of research is the process of analyzing systems with numerical program control and the optimal way to implement a software module (postprocessor). The work discusses the process of creating a postprocessor and control program for machine tools with numerical control. A postprocessor is a module that converts a file of toolpaths and technological commands, calculated by a CAM or CAD / CAM system processor, into a control program file in strict accordance with the manual programming technique requirements of a specific machine-CNC system. The following software was used to develop a software module for optimization on work on CNC machines: CAD / CAM system NX Unigraphics 10 (the system is needed to create a 3D model of the future part and create control programs for the CNC machine), PostBuilder (a postprocessor generator, the system is needed to create a 3D model of the future part and create control programs for a CNC machine), Cimko Edit (necessary for virtual modeling, finished control program demonstration). The developed postprocessor main feature is that the control program code is recorded in cycles. During cyclic operation, the movement speed of the tool increases, smoothness increases, and the roughness of the workpiece decreases. Cycles force the tool to move smooth-

ly over a given radius. In the individual coordinates case, the tool moves intermittently, therefore the tool remain on the part traces. In conclusion, a comparative analysis of the standard and developed in this work modules. The developed postprocessor allows to make correct, more convenient control programs. From an economic point of view, the postprocessor allows you to reduce the cost of tools and materials thanks to a flexible control program algorithm.

1. Solkin A. Yu., Kuznetsov P. K. Problem of optimization of NC programs for the NC machine tooling units]. Vestnik of Volzhsky University named after V. N. Tatishchev. 2011. No. 17. Pp. 90-94. (In Russian)

2. Morozov V. V. Programmirovaniye obrabotki detaley na sovremenny-kh frezernykh stankakh s CHPU: ucheb. posobiye [Programming parts processing on modern milling machines with CNC: studies. Allowance]. Vladimir: Vladimir State University Publ., 2010. 246 p. (In Russian)

3. Morozov V. V. Programmirovaniye obrabotki detaley na sovremen-nykh mnogofunktsional’nykh tokarnykh stankakh s CHPU [Programming the processing of parts on modern multifunctional lathes with CNC: studies. Allowance]. Vladimir: Vladimir State University Publ., 2009. 234 p. (In Russian)

4. Solkin A. Yu. Methods of automating the creation of control programs for cutting equipment with PNC. Vestnik of Volzhsky University named after V. N. Tatishchev. 2012. No. 2 (19). Pp. 165-168. (In Russian)

5. Lyovygin A. A. Teverovsky L. V. Sovremennyy stanok s CHPU i CAD/ CAM sistema. [Modern CNC machine and CAD/CAM system]. Moscow: DMK Press, 2015. 280 p.

6. Tugengold A. K. Sistema intellektual’nogo upravleniya stankami [System of intellectual control of machine tools]. Stanki i instrumenty [Machines and tools]. 2008. No. 12. Pp. 10-15. URL: https://lib-bkm.

ru/13605 (date of access 10.10.2018). (In Russian)

7. Koshkin V. Apparatnyye sistemy chislovogo programmnogo up-ravleniya [Hardware systems of numerical program control]. Moscow: Mashinostroyeniye, 1989. 260 p. (In Russian)

8. Sukhanov Yu. S. Proyekt «Koroli» i «kapusta» na nive SAM. Deystvi-tel’nyye i mnimyye lidery mirovogo rynka SAM v 2014 godu. Chast’ II. Reytingi CAM-vendorov [The project «Kings» and «cabbage» in the field of the CAM. Actual and imaginary leaders of the global CAM market in 2014. Part II. Ratings of CAM-vendors]. CAD / CAM/ CAE Observer. 2016. No. 1. Pp. 24-34. (In Russian)

9. Nevludov I. Sh., Velikodny S. S., Omarov M. A. Usage CAD / CAM / CAE / CAPP at formation of controlling programs for machine tools with CNC (Computer Numerical Controlled). Eastern-European Journal of Enterprise Technologies. 2010. No. 2 (44). Pp. 37-44. (In Russian)

10. Kazantsev M. S., Vasilyev N. S. The Evaluation of the Time Required to create a CNC Machine Program Using Modern CAM Systems. Prospects for science. 2014. No. 12 (63). Pp. 91-94. (In Russian)

11. Kazantsev M. S. Method for evaluation of time expenditures of numerical control program development for a workpiece set production using a CAM system. Izvestiya vysshikh uchebnykh zave-deniy. Priborostroyeniye. [Journal of Instrument Engineering]. 2015. No. 4. Pp. 322-324. (In Russian)

12. Kazantsev M. S. State issue simulation process waterjet machining. Natsional’naya assotsiatsiya uchenykh [National Association of Scientists]. 2015. No. 3-3 (8). Pp. 63-66. (In Russian)

13. Yanushkin A. S., Lobanov D. V., Ilyin M. M. Avtomatizatsiya prot-sessa sozdaniya upravlyayushchikh programm dlya stankov s CHPU

[Automation of the process of creating control programs for CNC machines]. MekhanikiXXI veku. [Mechanics of the XXI century]. 2010. No. 9. Pp. 96-98. (In Russian)

14. Verzhakovskaya MA, Aronov V. Yu., Slepnev A. A., Osanov V. A. Razrabotka programmnogo modulya dlya optimizatsii raboty na stankakh s CHPU [Development of a software module for optimization of work on CNC machines]. Materialy XXV Rossijskoj nauch-no-tekhnicheskoj konferentsii professorsko-prepodavatel’skogo sostava, nauchnykh sotrudnikov i aspirantov PGUTI [Proceedings of the XXV Russian Scientific and Technical Conference of the faculty, researchers and graduate students of PGUTI. Samara, January 22 -January 26, 2018]. Samara, 2018. P. 207. (In Russian)

15. Lokteva S. E. Stanki s programmnym upravleniyem i promysh-lennyye roboty [Machines with software control and industrial robots]. Moscow: Mashinostroyeniye, 1986. URL: https://lib-bkm.ru/ load/70-1-0-3088 (date of access 10.10.2018). (In Russian)

INFORMATION ABOUT AUTHORS:

Verzhakovskaya M.A., PhD, Docent, Associate Associate Professor at the Department of Software and Management in Technical Systems, Volga State University of Telecommunications and Informatics; Aronov V.Yu., PhD, Associate Professor at the Department of Software and Management in Technical Systems, Volga State University of Telecommunications and Informatics;

Slepnev A.A., Programmer-technologist of the metalworking workshop of the Samara Special Alloys Plant.

For citation: Verzhakovskaya M.A., Aronov V.Yu., Slepnev A.A. Post processor development for optimize work of machines with numerical program control. H&ES Research. 2019. Vol. 11. No. 2. Pp. 40-50. doi: 10.24411/2409-5419-2018-10258 (In Russian)

НАУКОЕМКИЕ ТЕХ НОЛ О ГИ И

Pb_cmd_spindle_table.tcl

Эта команда задаваемая пользователем позволяет Вам, задать кодовую таблицу S кодов, которую система использует для каждой частоты вращения шпинделя и диапазона. Вы должны изменить команду задаваемую пользователем PB_CMD_get_spindle_table_scode для вашего станка. Значение по умолчанию девять диапазонов и девять S кодов на диапазон. Вы должны разместить команду PB_CMD_ spindle_table в последовательности Начала операции перед выводом команды выбора диапазона частоты вращения шпинделя для операции. Эта команда задаваемая пользователем только выбирает код S, для получения более подробные информации о том, как можно задать вывод команды выбора диапазона шпинделя см. раздел Spindle Output.

Pb_cmd_tape_length.tcl

Эта команда задаваемая пользователем позволяет Вам, задать фактическую длину ленты в футах. Разместите команду задаваемую пользователем PB_CMD_ptp_size в маркер события Конец программы.

Pb_cmd_three_dimensional_tool_offset

Эта команда пользователя выводит 3D коррекцию радиуса инструмента для системы ЧПУ типа for Fanuc.

Начальный кадр выглядит следубщим образом:

G41 G01 X Y Z I J K D

I,J,K задают вектор нормали в точке контакта.

Вы должны делать следующие шаги в генераторе постпроцессоров:

1. Добавьте слова I,J и K в кадр линейного перемещения используя следующие выражения задаваемые пользователем:

2. Добавьте следующую строку (без символа комментария #) в команду PB_CMD_before_motion

3. Добавьте команду пользователя PB_CMD_cutcom_on в событие Cutcom On в меню Program/Tool Path/Machine Control.

Для использования этой команды включите опцию Output Contact Data [Вывод данных контакта] в меню Machine Control [Управление станком] и выключите вывод круговой интерполяции. Затем задайте вывод CUTCOM/LEFT для активации кадра G41.

Эта опция доступна только для операций обработки поверхностей с фиксированной и переменой осью инструмента в NX2 или выше.

Pb_cmd_tool_list.tcl

Эта команда задаваемая пользователем позволяет Вам вывести список инструмента который используется в программе в начале или конце вашего файла программы ЧПУ. Разместите команду задаваемую пользователем PB_CMD_initialize_tool_list в маркер события Начало программы. Затем разместите команду задаваемую пользователем PB_CMD_create_tool_list или после команды PB_CMD_initialize_tool_list в маркере события Начало программы или в маркере события Конец программы.

Pb_cmd_zw_axis.tcl

Эта команда задаваемая пользователем позволяет Вам управлять выводом паралельных осей Z и W. Это обычно используется на станках, которые имеют пермещение пиноли шпинделя (ось Z), которая имеет ограниченое перемещение и стол (ось W), который имеет больший диапазон пермещения. Постпроцессор следит за пинолью шпинделя и столом постоянно и применяет текущую позицию закрепленной оси, в то время как другая ось позиционируется.

Для использования этой опции Вы должны разместить команду PB_CMD_initialize_parallel_zw_mode в маркере события Начало программы. Вы можете редактировать команду PB_CMD_initialize_parallel_zw_mode и задать исходное положение для осей Z и W, и Вы можете задать лидеры для пиноли шпинделя и стола. Значение по умолчанию — Z и W.

Система содержит несколько полезных команд задаваемых пользователем, чтобы управлять осями W и Z. Эти команды могут быть помещены в любой маркер события.

PB_CMD_set_quill_home Позиционирует пиноль шпинделя в исходное положение на ускоренной подаче.
PB_CMD_set_table_home Позиционирует стол в исходное положение на ускоренной подаче.
PB_CMD_set_mode_zaxis Ось W (стол) зафиксирован. Ось Z (пиноль шпинделя) позиционируется.
PB_CMD_set_mode_waxis Ось Z (пиноль) зафиксирована. Ось W (стол) позиционируется.

Дополнительно Вы можете также использовать постпроцессорные команды SET/MODE,ZAXIS и SET/MODE,WAXIS, чтобы изменить способ вывода. Для постпроцессорных команд SET/ZAXIS,z и SET/WAXIS,w можно также использовать позицию оси.

Вы можете так же задать дополнительные параметры для Вашего кадра цикла.

Prerequisite: NX 2.0.1 [Пререквизит: NX 2.0.1]

1. Создайте CYCLE в Вашем файле ude.cdl

1. Скопируйте и вставьте в ваш ude.cdl файл который располагается в каталоге событий задаваемых пользователем, код который расположен ниже, но убедитесь что удалили комментарии ().

2. Замените все надписи «special» на имя Вашего цикла.

3. Добавьте необходимые Вам параметры.

Например, строка «PARAM special_cycle_param_1» создает переменную mom с именем mom_special_cycle_param_1 при генерации цикла. Вы можете использовать переменную mom как выражение, когда Вы добавляете слово к вашему кадру цикла. Синтаксис для CYCLE остается таким же как и в других событиях задаваемых пользователем, за исключением того, что слово CYCLE используется вместо EVENT.

UI_LABEL «Special cycle value 1»

UI_LABEL «Special cycle value 2»

2. Добавьте кадр в разделе N/C Data Definitions [Задание данных ЧПУ] для каждого нового цикла.

1. Перейдите в закладку N/C Data Definitions [Задание данных ЧПУ].

2. Выберите кадр.

3. Выберите один из кадров циклов, подойдет цикл сверления.

4. Выберите создать.

5. Пеерименуйте кадр нажатием на правую клавишу мышки. Введите имя вашего цикла, которому предшествует cycle_.

6. Нажмите правую клавишу мышки на G адресе в кадре и выберите Change Element [Сменить элемент] и затем Выражение задаваемое пользователем.

7. Введите номер Вашего G кода.

3. Для добавления дополнительных параметров в кадр

1. Выберите New Address [Новый адрес] из всплывающего меню.

2. Выберите добавить в кадр и добавьте в кадр выбранное слово.

3. Смените лидер, формат и модельность если необходимо. Для формата используйте coordinate для вещественных данных и digit_2 или digit_4 для целых данных.

4. Введите Вашу mom переменную, которую Вы задали в файле ude.cdl как параметр.

5. Перейдите на закладку последовательности вывода слов и задайте новую последовательность если новое слово выводится не в нужной последовательности.

4. Добавьте эту команду задаваемую пользователем в событие Start of Program [Начало программы]. Если Вы имеете связанный постпроцессор эта команда должны быть добавлена в событие Start of Program [Начало программы] главного постпроцесора.

5. Удостоверьтесь, что имя вашего цикла в ude.cdl то же самое как имя события в обработчике.

6. Удостоверьтесь, что имена ваших параметров цикла в ude.cdl разделах PARAM те же самые, как в цикле задания данных ЧПУ но без преффикса mom_.

7. Есть два основных вида встроенных циклов, перечисленных здесь. Используйте цикл начала для Maho, Heidenhain, и т.д. Используйте стандартный для Fanuc, Siemens, Fadal, Mazatrol, и т.д.

Import [Импорт]

Закладка Импорта в меню Программа и траектория -> Команда задаваемая пользователем -> Импорт, позволяет Вам, включить много полезных процедур в ваш постпроцессор, которые Вы можете добавить к различным маркерам событий. Команды включают текст всех поставляемых в составе системы утилит. Вы может также просмотреть и импортировать любой из ваших собственных каталогов. Система проверяет синтаксис любго импортированного файл для поиска ошибок в коде TCL, основываясь на наборе опций для того, чтобы проверить команды задаваемые пользователем. См. раздел error checking [проверка ошибок] для получения более подробной информации об опциях, которые доступны при проверке синтаксиса.

Файлы в каталоге команд задаваемых пользователем имеют расширение.tcl и начинаются с pb_cmd_. Каждые из этих файлов содержит одну или более синтаксически правильных процедур tcl.

Следуйте шаги перечисленные ниже, чтобы импортировать команду задаваемую пользователем:

1. Все команды поставляемых с системой, располагаются в каталоге команд задаваемых пользователем.

2. Выберите файлы, которые Вы хотите импортировать из процедур в команду.

3. Одиночным нажатием Вы выбираете процедуры которые хотите просмотреть и двойным нажатием отменяете выбор файла.

4. Система отображает и существующие файлы и тот который Вы собираетесь импортировать.

5. Файлы, которые уже существуют в вашем постпроцессоре, содержат пометку золотого цвета со словом «существует» в левой стороне.

6. Отмените выбор файла, если Вы не хотите перезаписать существующий файл.

7. Система импортирует только процедуры, которые Вы выбрали.

Export [Экспорт]

Закладка Export [Экспорт] в меню Программа и траектория-> Команда задаваемая пользователем-> Экспорт, позволите Вам экспортировать команды задаваемые пользователем, которые Вы создали или изменили в вашем сеансе создания постпроцессора в отдельный файл. Система отображает список всех процедур постпроцессоров, позволяющих Вам, выбрать файл в который Вы хотите экспортировать выбранные процедуры. Вам можете импортировать эти команды в другой постпроцессор.

Вы можете экспортировать несколько команд задаваемых пользователем в один файл. Это облегчит экспорт и импорт группы процедур.

Linked Posts [Связанные постпроцессоры]

Эта закладка позволяет Вам, задать постпроцессоры, которые Вы можете связать с текущим постпроцессором. Эта функциональность подобна команде MACH/ в GPM. Переключение между поспроцессорами происходит по команде и возможно включать или блокировать эту функцию. Когда эта функциональность не доступна, эта страница подсвечивается серым цветом.

С этой опцией создается постпроцессор для каждой уникальной головки или револьвера. Для этой функциональности обычно используют постпроцессоры которые могут поддерживать различные режими кинематики. Способы могут включать токарную и фрезерную головки с различными осями шпинделя и обрабатывающие центры, которые имеют больше чем две оси вращения и различные комбинации кинематики.

Using Legacy NX [Использование наследственности NX]

Поскольку наследованные Вами части используют постпроцессорную команду HEAD в программе или группе методов, которая указывает постпроцессору какую головку использовать, эта команда должна быть задана обязательно. Система содержит таблицу для того, чтобы задать слово после команды HEAD, которое система использует с заданным постпроцессором для выбора головки.

Using NX V2 and Beyond [Использование NX V2 и выше]

Для NX V2 и выше, прибавьте револьвер или имя головки на револьвере в виде станка графического навигатора операций. Система использует это имя, чтобы задать револьвер, который будет использоватся. Определите, какой магазин или револьвер будет использовать система в связанном постпроцессоре, размещая операции под правильным револьвером в виде станка.

Постпроцессор использует постпроцессорную команду HEAD или имя револьвера или магазина для связи с главным именем в связанном постпроцессоре. Система загружает связанный постпроцессор и использует новый постпроцессор, пока другой связанный постпроцессор не будет загружен.

· Когда главный постпроцессор Вы связываете с другими постпроцессорамы, Вы не может использовать опцию просмотра в меню постпроцессорной обработки NX, если связанные постпроцессоры не находятся в каталоге, заданном переменной UGII_CAM_POST_DIR. Система не ищет связанные постпроцессоры в том же самом каталоге в котором находится главный постпроцессор.

Default [По умолчанию]

Эта клавиша восстанавливает опции связанного постпроцесора в первоначальные значения как тогда, когда текущий постпроцессор был создан.

Restore [Востановить]

Эта клавиша отменяет все изменения, которые были сделаны Вами в процессе внесения изменений для связанного постпроцессора в текущем открытии этого меню.

New [Новый]

Эта клавиша выводит на экран меню связанного поспроцессора, чтобы добавить другой постпроцессор в список. Вы можете задать имя главного постпроцессора, магазин или револьвер, заданный в NX. Вы можете ввести текст или просмотреть pui файл для постпроцессора, который будет связан с главным именем. Система не проверяет правильность имени постпроцессора для существующего постпроцессора. Система предполагает, что все постпроцессоры сопряженного постпроцессора расположены в том же каталоге.

Чтобы задавать кадры или команды задаваемые пользователем, необходимые для запуска нового постпроцессора или заголовка, переключится на другую головку, выберите маркер события для Начала использования головки или конца использования головки.

В меню связанного поспроцессора, введите имя заголовка и имя постпроцесора и нажмите OK. Система возвращается в главное меню связанного поспроцессора и добавляет новые записи ваших постпроцессоров в список.

Edit [Изменить]

Выбор клавиши Edit [Изменить] также выводит на экран меню связанного поспроцессора. Здесь Вы можете изменить существующий постпроцессор и заголовок. После создания ваших изменений нажмите OK. Система вносит ваши изменения и возвращается в главное меню связанного постпроцессора. Нажатие клавиши Restore [Востановить] удаляет все созданные Вами изменения, начиная с выбора клавиши Edit [Изменить] и остается в меню изменения. Нажатие клавиши Cancel [Отмена] удаляет все созданные Вами изменения и возвращает Вас в основное меню.

N/C Data Definitions [Задание данных ЧПУ]

Имеется два пути, чтобы просмотреть ваш постпроцессор в пределах генератора постпроцессоров. Один путь доступен через Program View [Вид программы]. Программа траектория выводятся на экран как события, которые происходят в вашей программе и выводятся в кадр ЧПУ. Раздел N/C Data Definitions [Задание данных ЧПУ] позволяет Вам вывести на экран кадры, слова и форматы в формате который подобен формату задания в файле описания. Вы можете редактировать и создать кадры и слова для системы, чтобы использовать их для вывода в последовательностях и событиях. Этот раздел имеет следующие опции или закладки которые Вы можете выбрать.

Block [Кадр]

Это меню позволяет Вам, создать и изменить кадры. Вы имеет те же самые опции для создания нового кадра или изменения существующего кадра, сколько Вы имеет в меню последовательности или события. Когда Вы создаете новый кадр из этого меню, Вы в основном копируете существующий кадр и изменяете его. Вы ограничены одним кадром. Если Вы должны создать больше чем один кадр для вашей функции, Вы можете создать больше чем один кадр.

Creating or Editing a New Block [Создание или изменение нового кадра]

Есть два пути, для создания кадра в пределах генератора постпроцессоров. В меню задания последовательности или события Вы можете выбрать пустой кадр и поместить его в последовательность или событие. Вы можете также изменить любой существующий кадр в последовательности, событии или в меню кадра N/C Data Definitions [Задание данных ЧПУ]. После того, как Вы разместили новый кадр в последовательности или выбрали кадр для изменения система отображает следующее меню, которое позволяет Вам выбрать слова из списка слов, чтобы изменить или сформировать кадр.

Вы можете формировать ваш кадр, включая в него следующие элементы.

New Word [Новое слово]

Выберите опцию New Word [Новое слово] в меню списка слов. Нажмите и держите MB1 на клавише Add Word [Добавить слово]. Переместите слово, пока подсветка не появится в области создания кадра. Как только Вы поместили слово в кадр, система отображает меню, которое позволяет Вам, задать параметры для слова которое Вы хотите создать. См. раздел Words [Слова] для получения информации об опциях изменения.

Text [Текст]

Выберите опцию Text [Текст] в меню списка слов. Нажмите и держите MB1 на клавише Add Word [Добавить слово]. Переместите слово, пока подсветка не появится в области создания кадра. Как только Вы поместили слово в кадр, система отображает меню, которое позволяет Вам, задать параметры для слова которое Вы хотите создать.

Existing Words [Существующее слово]

Выберите существующее слово, которое Вы хотите добавить к текущему кадру. Каждое слово из этого списка имеет выбор предопределенных контекстов. Например, система может выводить слово X, выбирая любую опцию из определений в списке. Или Вы можете задать специальную переменную, что позволяет Вам создать User Defined Expression [Выражение задаваемое пользователем]. Если Вы выбираете существующее слово система выводы текуще значение для того слова. Если Вы например выбираете X-Coordinate, система выводы слово X с текущей позицией X. См. раздел Words [Слова] для получения информации об опциях изменения.

Words [Слова]

Это меню позволяет Вам создать и изменить слова. Вы имеете те же самые опции чтобы создать новое слово или изменить слово, которые Вы используете в меню задания последовательности или события. Когда Вы создаете новое слово из этого меню, Вы в основном копируете существующее слово и изменяете его.

Меню слова позволяет Вам, задать или редактировать характеристики любого слова. Слово состоит из адреса, значения или текста и окончания. Адрес может быть любыми символами. Поскольку система ЧПУ кодирует адрес, обычно используется одна буква такая как G, М или X. Это може быть несколько символов таких как R2, (FI, и т.д. Окончание обычно является пробелом. Это необходимо для некоторых систем ЧПУ, которые требуют формата типа

Вы можете задать какие форматы системы используются для текущего слова. Вы можете выбрать существующийформат из списка форматов, или Вы можете изменить один из существующих форматов. Если Вы должны задать полностью новый формат, или не хотите изменять один из существующих форматов, Вы должны создать новый формат в разделе Format [Формат] меню NC Data Definitions [Задание данных ЧПУ]. Система использует формат, чтобы управлять выводом десятичных знаков, ведущих и конечных нулей и т.д.

Зеленый прямоугольник в верхней части меню показывает Вам, как слово выводится в программу ЧПУ. Когда Вы имеет слово, которое имеет заданное содержание, система отображает формат вывода данного слова в верхней части меню.

Опция Modality [Модальность] может быть установлена в Off (что означает Модальный) или Always (что означает Немодальный). Если эта опция установлена в модальный, система выводит слово, только если значение выражения изменяется между двумя выходными кадрами. Это — настройка по умолчанию для всех слов. Если слово установлено в опцию немодальный система выводит слово в каждом кадре в котором это слово присуствует. Обычно модальные слова это информации о координатах, G кодов перемещения, и так далее. Вы можете всегда задать постоянный вывод в контексте события. Например, событие Opstop [Опциональный останов] должно всегда выводить команду M01.

Для каждого слова Вы можете также задать максимальное и минимальное значения которые система выводит с вашим словом. Вы может также определить, какое действие происходит, когда максимальное или минимальное значение превышены. Вы можете выбрать следующие опции:

Truncate [Ограничение]

Эта настройка указывет системе выводить файл предупреждений. Система так же продолжает использовать максимальные или минимальные значения.

Warning [Предупреждение]

Эта настройка указывает системе выводить только предупреждение.

Abort [Аварийное прекращение]

Эта настройка указывает постпроцессору остановить обработку и сообщить оо обшибке.

Выражение задает номер или текст, который система использует, чтобы создать Ваше слово. Выражение может быть задано только в контексте события. То же самое слово, использованное в различных событиях может иметь различные выражения, задающие вывод. Например, слово М в событии Opstop используется как системный код для opstop (1). Слово М в событии остановки используется как системный код для остановки (0). Выражение не может быть задано в разделе определения данных ЧПУ, потому что это меню задает только статические характеристики слова. Если Вам выбирает слово, которое имеет контекст, Вы не может изменить выражение.

Word Modifiers [Модификаторы слов]

Вы можете применять модификаторы слова при редактировании слова только в пределах меню последовательности или события. Модификаторы слова фактически принадлежат событию или последовательности а не любому кадру или слову. Вы можете обратиться к меню модификатора слова, используя MB3 на любом слове в любом событии или в меню задания последовательности. Если Вы нажимаете MB3 на слове M01 и выбираете опцию Change Element [Сменить элемент], Вы можете использовать различный предварительно заданный контекст для вашего М кода или выбирать User Defined Expression [Выражение задаваемое пользователем].

В описанном выше примере для М кода, Вы можете выбрать код из списка предварительно заданных М-кодов. Слова используют системные переменные, которые назначены для каждой функции. М-код окончания программы задается в таблице М-кодов. Вы можете задать значение для вашего слова, выбирая определяемое пользователем выражение из списка. Это выражение может быть любым выражением языка TCL. Обычно Вы можете ввести номер, текст или mom переменную. Для получения дополнительной информации о переменных mom, см. Справочник по постпроцессору (UG/Post). Например, если Вы хотите задать код M10 для вашего слова, введите текст 10 для вашего выражения. Это выражение должно быть доступным. Другие доступные выражения — 6 для команды включения шпинделя M6. Все переменным mom должны вводится в символом $ в начале, в противном случае система полагает, что введен текс, а не переменная. Текст mom_spindle_speed — выводится в команду как текст, но система заменяет текст $mom_spindle_speed на текущее значение переменной mom_spindle_speed.

· Заметьте, что если Вы задает цифровые или числовые форматы, ваше выражение должно правильно преобразовыватся в числовое значение.

Если Вы создали опциональное слово, система выводит это слово только если Вы задали для него выражение. Например, если Вы задали кадрсо словом, включения СОЖ, и Вы не задали событие включения СОЖ в программе обработки, система не выводит это слово в кадр. Если Вы не используете эту опцию, то система генерирует сообщение об ошибке в коде TCL во время обработки. Если Вы используете эту опцию, система не генерирует ошибку, она просто не выводит это слово. Это необходимо использовать в случаях, когда в кадре может присуствовать опциональное ключевое слово, например включение СОЖ.

Опция No Word Separator [Нет разделителя слов] позволяет Вам подавить вывод разделителя слов после слова. Это полезно при форморовании вывода CLS файла.

Опция Force Output [Постояный вывод] позволяет Вам выводить заданное Вами слово только в текущем кадре. Это используется, чтобы выводить Т код или M06 а каждом кадре смены инструмента. По умолчанию все слова являются модальными и выводятся только если изменяется значение слова в следующем кадре..

Генератор постпроцессоров групппирует G и М коды в модальные группы. То есть когда Вам необходимо вывести код G17 это не отменяет код G01. Однако, если Вам необходимо вывести код G00, затем код G01, и затем код G00 в третьем кадре, код G00 снова выводится в третьем кадре. Этот режим совместим с методом задания модальных кодов в системе управления станка. Генератор постпроцессоров также создет много слов с заданными переменными, чтобы исключить неправильный вывод. Например, когда Вы выбираете слово X, чтобы задать вывод этого слова в кадре, Вы в можете выбрать, как система задает номер. Если Вы нажимаете MB3 на слове X в любом случае Вы получаете доступ к меню структуры кадра, и может видеть что ваши опции могут изменятся в заданном списке.

В меню, которое описанно выше, Вы можете использовать настройку по умолчанию для перемещения по оси x или выбирать одну из опций в списке. Все эти переменные ссылаются на различные mom переменные или константы. См. раздел Modal Word Groups and MOM Variables [Группы модальных слов и переменные MOM] для получения полного списка переменных.

Format [Формат]

Меню Format [Формат] в NC Data Definitions [Задании данных ЧПУ] позволяет Вам, создать и изменить форматы. Генератор постпроцессоров поставляется с заданным по умолчанию набором форматов, которые система использует для всех слов в заданных по умолчанию постпроцессорах. Вы может также изменить форматы при задании и изменении слов используя меню word summary [список слов].

Создайте новый формат, подсвечивая существующий формат и нажимая клавишу Create [Создать]. Это дает Вам, новый кадр который подобен оригиналу кроме имени, которое содержит _1 в конце имени. Вы можете изменить этот новый формат. Используйте эту опцию, когда Вы хотите использовать отличный от существующих форматов формат для одной из ваших координат.

Измените тип данных, чтобы задать числовой или текстовый формат. Вы должны выбрать числовой для всех данных ЧПУ за исключением некоторых G кодов. Например, если Вам необходимо задать адрес L вместо G01, R вместо G00, CW вместо G02, то Вы можете изменить тип на текст и заменить все ваши коды G на текст в перемещениях. Это — единственный случай в котором мы вынуждены использовать текстовый формат. Если Вы задаете текст, тогда система не позволяет форматировать этот адрес.

· Вы должны пробовать делать это, только если Вы знакомы с этой областью.

Вы можете также установить количество разрядов слева и справа от десятичной точки, подавить или выводить десятичную точку, подавить или выводить ведущие или конечные нули, или подавить или выводить знак «плюс».

Используйте нулевой формат, чтобы задать как система выводит нулевые значения. Заданные по умолчанию выводы формата X0.0 или X0 для информации о координатах. Если Вы хотите выводить X0. или X.0 тогда Вы должны изменить количество разрядов соответственно. Поскольку для целых значений Вы получаете M00 или M0 в зависимости от того, подавляются или нет начальные нули.

Other Data Elements [Другие элементы данных]

Sequence Number [Нумерация кадров]

Это меню позволяет Вам, задать как система выводит номера кадров.

Special Characters [Специальные символы]

Это меню позволяет Вам задать символы которые система использует в следующих ситуациях.

Word Separator [Разделитель слов]

Вы имеете следующие выборы.

Настройка по умолчанию для разделителя слов — пробел. Это означает что слова в кадре разделяются пробелами между ними. Например: N0010 G01 X1.23.
Вы можете также задать любой текст как разделитель слов.

End of Block [Конец кадра]

Вы имеете следующие выборы.

По умолчанию конец кадра установлен в none [нет]. Система размещает символ конца кадра в конце каждого кадра. Используйте это, если Вы должны задать дополнительный код в конце кадра.

Message Start / Message End [Начало сообщения/Конец сообщения]

Вы имеете следующие выборы.

Эти два символа задают, как система выводит сообщения оператору когда Вы создаете кадры сообщения оператору в программе и меню последовательности. Вы можете форматировать начало и конец сообщения в этом меню. Заданные по умолчанию символы — (для начала сообщения и) в конце сообщения. Общее начало сообщения — (MSG,.

Listing File & Output Control [Файл листинга и управление выводом]

Меню листинга позволяет Вам управлять, как система форматирует файл листинга. Вы можете также задать, как ваш постпроцессор обрабатывает группы, предупреждения и инструмент отладки. Вы можете также задать заданное по умолчанию расширение выходного файла программы ЧПУ и файла листинга.

Generate Listing File [Генерация файла листинга]

Когда эта опция включена постпроцессор генерирует файл листинга. Файл листинга содержит заголовок, который содержит всю информацию во время выполнения, которая включает время и дату, наименование детали, имя файлов постпроцессора и имя пользователя.

Файл листинга также содержит файл программы ЧПУ, предупреждения и абсолютные позиции осей.

Listing File Elements [Элементы файла листинга]

Вы можете использовать этот меню, чтобы управлять, какие записи Вы хотите вывести в файл листинга. Система выводит только записи, которые отмечены галочкой и которые доступны для данного типа станка.

Create Simulation Driver [Создание драйвера симуляции]

Если Вы включаете эту опцию, генератор постпроцессоров генерирует файл VNC для симуляции.

Other Output Control Elements [Другие элементы управления выводом]

Generate Group Output [Генерировать вывод группы]

Эта опция позволяет Вам, задать как ваш постпроцессор обрабатывает группы. Вы можете организовать ваши операции в группы в NX, чтобы создать больше чем одну программу ЧПУ в файле части. Система рассматривает каждую группу как отдельную программу и Вы должны, рассматривать это как одну законченную программу ЧПУ. Настройка по умолчанию для этой опции — выключено. Вы не должны использовать эту опцию, если Вы не хотите создавать больше чем одну программа ЧПУ одновременно.

Если Вы выбираете больше чем одну группу и включили эту опцию, Вы получаете один файл, который содержит все группы (программы), которые Вы выбрали. Системное имя этого файла my_file.ptp. Вы также получает файл программы ЧПУ для каждой группы или программы которые Вы выбрали. Системные имена их my_file_group.ptp. Система также выводит все группы на отдельную ленту ЧПУ если группа верхнего уровня — NC_PROGRAM и все группы находится на уровне под NC_PROGRAM.

Не смешивайте операции в группах с операциями вне групп, когда Вы включили эту опцию. Это вызовет непредсказуемый вывод. Когда Вы выключаете опцию вывода групп, Вы получаете только один выходной файл программы ЧПУ с именем my_file.ptp. Система выводит все операции в любой выбранной группе в один файл программы ЧПУ. Система игнорирует все расположение группы.

Вам может использовать имя группы или программы в NX как имя программы в событии Начало программы. Система передает это в постпроцессор как имя переменной mom_group_name.

Output Warning Messages [Вывод предупреждений]

Когда Вы включаете эту опцию системные предупреждения выводятся в журнал предупреждения. Системное имя этого файла my_file_warning.out и этот файл записывается в тот же каталог, в который записывается программа ЧПУ.

Display Verbose Error Messages [Отображать подробные сообщения об ошибках]

Когда Вы выбираете эту опциию, Вы получаете очень подробные сообщения об ошибке, если они встречаются в коде TCL. Включите эту опцию когда Вы отлаживаете Ваш постпроцессор. При этом Вы не должны просматривать журнал NX для поиска подробной информации об ошибке. Система отображает все сообщения об ошибке подробно.

· Выбор этой опции вызывает значительно снижение производительности. Используйте эту опцию при отладке вашего постпроцессора.

Activate Review Tool [Активация инструмента отладки]

Когда Вы включаете эту опцию система выполняет программу отладки чтобы помочь Вам отладить вывод вашего постпроцессора. Система отображает три окна на экране дисплея. В первом окне отображаются все события, которые были созданы генератором событий NX. Среднее окно отображает все переменные, которые были созданы и переданы постпроцессору в выбранном событии. Третье окно отображает список кадров программы ЧПУ, который создает Вам постпроцессор. Если Вы выбирает любое событие в первом столбце, система отображает все доступные для этого события переменные в среднем столбце и все кадры программы которые сгенерировало выбранное событие в третьем столбце. Если Вы выбираете любую часть кода программы ЧПУ в третьем окне, в первом окне отображаются события, которые сгенерировали эти кадры программы ЧПУ. Инструмент отладки выполняется в конце генерации программы ЧПУ. Это не отладчик в реальном времени.

Инструмент отладки выводит текущие значения любой mom_ переменной. Это отличный инструмент для анализа и отладки всех переменных, созданных в операции NX и их значений.

· Инструмент отладки вызывает существенное снижение производительности. Используйте эту опцию только с относительно малыми файлами и когда Вы отлаживает проблему.

NC File Output Extension [Расширение выходного файла программы ЧПУ]

Заданное по умолчанию расширение файла для программы ЧПУ.ptp. Система использует это расширение если Вы не задаете расширение для файла программы ЧПУ в меню постпроцесора NX.

Listing File Extension [Расширение для файла листинга]

Эта опция позволяет Вам задать расширение, которое система использует при создании файла листинга. Имя вашего файла листинга соответствует имени файла программы ЧПУ с расширением файла листинга. Значение по умолчанию для расширения файла листинга.lpt.

This option allows you to define the extension that the system uses when the listing file is created. The name of your listing file is the name of the NC file with the listing file extension. The default listing file extension is.lpt.

User’s Tcl Source [Исходный файл TCL пользователя]

Задайте имя файла, который Вы хотите использовать как исходный для Вашего постпроцессора. Этот файл должен распологатся в вашем текущем каталоге постпроцессора. Вы можете использовать эту опцию, чтобы включить в постпроцеесор процедуры и события задаваемые пользователем созданные Вами.

Files Preview [Просмотр файлов]

Меню Files Preview [Просмотр файлов]позволяет Вам просмотреть фактический исходный текст, который система пишет в файл описания и в файл обработчика событий. Когда Вы выбираете закладку обработчика событий, Вы можете просмотреть ваш.tcl файл. Когда Вы выбирает закладку файл описания, Вы можете просмотреть элементы файла описания.

Customizing Postbuilder [Настройки генератора постпроцессоров]

Генератор постпроцессоров позволяет Вам, настроить вид меню. Работайте со следующими двумя файлами, чтобы сделать изменения в настройке.

Ui_pb_resource.tcl

Вы можете изменить этот файл, чтобы изменить заданные по умолчанию наборы шрифтов, метки, сообщения и текстовые строки, которые выводятся в меню генератора постпроцессоров.
Только администратор системы должен изменять этот файл. Этот файл находится в каталоге POSTBUILD/app/ui.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *