From: Fred P. <pr...@us...> - 2005-04-27 20:04:05
|
Update of /cvsroot/emc/emc2/src/emc/rs274ngc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21409 Modified Files: rs274ngc_pre.cc Log Message: Added user-defined M codes, from BDI-4 Index: rs274ngc_pre.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/rs274ngc/rs274ngc_pre.cc,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** rs274ngc_pre.cc 12 Sep 2004 19:01:39 -0000 1.7 --- rs274ngc_pre.cc 27 Apr 2005 20:03:55 -0000 1.8 *************** *** 130,133 **** --- 130,136 ---- #define DEBUG_EMC + // define USE_AXIS_CLAMPS if you want M26/M27 to do axis clamping + #undef USE_AXIS_CLAMPS + /* *************** *** 512,516 **** group 8 = {m7,m8,m9} - coolant group 9 = {m48,m49} - feed and speed override switch bypass ! */ --- 515,519 ---- group 8 = {m7,m8,m9} - coolant group 9 = {m48,m49} - feed and speed override switch bypass ! group 100+ = {m100..m199} - user-defined */ *************** *** 525,529 **** /* M70 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* M80 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! /* M90 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; /* --- 528,542 ---- /* M70 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* M80 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! /* M90 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ! 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, ! 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, ! 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, ! 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, ! 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, ! 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, ! 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, ! 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, ! 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, ! 190, 191, 192, 193, 194, 195, 196, 197, 198, 199}; /* *************** *** 1191,1202 **** if (block->p_number != -1.0) { CHK(((block->g_modes[0] != G_10) && ! (block->g_modes[0] != G_4) && ! (motion != G_82) && (motion != G_86) && ! (motion != G_88) && (motion != G_89)), NCE_P_WORD_WITH_NO_G4_G10_G82_G86_G88_G89); } if (block->q_number != -1.0) { ! CHK((motion != G_83), NCE_Q_WORD_WITH_NO_G83); } --- 1204,1217 ---- if (block->p_number != -1.0) { CHK(((block->g_modes[0] != G_10) && ! (block->g_modes[0] != G_4) && ! (block->user_m != 1) && ! (motion != G_82) && (motion != G_86) && ! (motion != G_88) && (motion != G_89)), NCE_P_WORD_WITH_NO_G4_G10_G82_G86_G88_G89); } if (block->q_number != -1.0) { ! CHK((motion != G_83) && ! (block->user_m != 1), NCE_Q_WORD_WITH_NO_G83); } *************** *** 4087,4090 **** --- 4102,4106 ---- static char name[] = "convert_m"; int status; + int index; if (block->m_modes[6] != -1) { *************** *** 4116,4129 **** } ! /* No axis clamps in this version ! if (block->m_modes[2] == 26) ! { #ifdef DEBUG_EMC COMMENT("interpreter: automatic A-axis clamping turned on"); #endif settings->a_axis_clamping = ON; ! } ! else if (block->m_modes[2] == 27) ! { #ifdef DEBUG_EMC COMMENT("interpreter: automatic A-axis clamping turned off"); --- 4132,4142 ---- } ! #ifdef USE_AXIS_CLAMPS ! if (block->m_modes[2] == 26) { #ifdef DEBUG_EMC COMMENT("interpreter: automatic A-axis clamping turned on"); #endif settings->a_axis_clamping = ON; ! } else if (block->m_modes[2] == 27) { #ifdef DEBUG_EMC COMMENT("interpreter: automatic A-axis clamping turned off"); *************** *** 4131,4135 **** settings->a_axis_clamping = OFF; } ! */ if (block->m_modes[9] == 48) { --- 4144,4148 ---- settings->a_axis_clamping = OFF; } ! #endif if (block->m_modes[9] == 48) { *************** *** 4145,4148 **** --- 4158,4172 ---- } + /* user-defined M codes */ + for (index = 100; index < 200; index++) { + if (block->m_modes[index] == index) { + if (USER_DEFINED_FUNCTION[index - 100] != 0) { + (*(USER_DEFINED_FUNCTION[index - 100]))(index - 100, block->p_number, block->q_number); + } else { + CHK(1, NCE_UNKNOWN_M_CODE_USED); + } + } + } + return RS274NGC_OK; } *************** *** 6176,6182 **** block->motion_to_be = -1; block->m_count = 0; ! for (n = 0; n < 10; n++) { block->m_modes[n] = -1; } block->p_number = -1.0; block->q_number = -1.0; --- 6200,6207 ---- block->motion_to_be = -1; block->m_count = 0; ! for (n = 0; n < 200; n++) { block->m_modes[n] = -1; } + block->user_m = 0; block->p_number = -1.0; block->q_number = -1.0; *************** *** 7490,7494 **** CHP(read_integer_value(line, counter, &value, parameters)); CHK((value < 0), NCE_NEGATIVE_M_CODE_USED); ! CHK((value > 99), NCE_M_CODE_GREATER_THAN_99); mode = _ems[value]; CHK((mode == -1), NCE_UNKNOWN_M_CODE_USED); --- 7515,7519 ---- CHP(read_integer_value(line, counter, &value, parameters)); CHK((value < 0), NCE_NEGATIVE_M_CODE_USED); ! CHK((value > 199), NCE_M_CODE_GREATER_THAN_199); mode = _ems[value]; CHK((mode == -1), NCE_UNKNOWN_M_CODE_USED); *************** *** 7497,7500 **** --- 7522,7528 ---- block->m_modes[mode] = value; block->m_count++; + if (value >= 100 && value < 200) { + block->user_m = 1; + } return RS274NGC_OK; } *************** *** 10307,10310 **** --- 10335,10348 ---- /***********************************************************************/ /***********************************************************************/ + + /* + Modification history: + + $Log$ + Revision 1.8 2005/04/27 20:03:55 proctor + Added user-defined M codes, from BDI-4 + + */ + /* end of file */ |