#include "canon.hh"
Include dependency graph for rs274ngc.hh:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | block_struct |
struct | setup_struct |
Defines | |
#define | AND && |
#define | IS == |
#define | ISNT != |
#define | MAX(x, y) ((x) > (y) ? (x) : (y)) |
#define | NOT ! |
#define | OR || |
#define | SET_TO = |
#define | TRUE 1 |
#define | FALSE 0 |
#define | INTERP_TEXT_SIZE 256 |
#define | TOLERANCE_INCH 0.0002 |
#define | TOLERANCE_MM 0.002 |
#define | TOLERANCE_CONCAVE_CORNER 0.01 |
#define | TINY 1e-12 |
#define | UNKNOWN 1e-20 |
#define | TWO_PI 6.2831853071795864 |
#define | PI 3.1415926535897932 |
#define | PI2 1.5707963267948966 |
#define | MAX_GEES 4 |
#define | MAX_EMS 4 |
#define | MAX_ACTIVES 100 |
#define | MM_PER_INCH 25.4 |
#define | INCH_PER_MM 0.039370078740157477 |
#define | OFF 0 |
#define | ON 1 |
#define | UNITS_PER_MINUTE 0 |
#define | INVERSE_TIME 1 |
#define | RS274NGC_OK 0 |
#define | RS274NGC_ERROR -1 |
#define | RS274NGC_EXIT 1 |
#define | RS274NGC_ENDFILE 2 |
#define | RS274NGC_EXECUTE_FINISH 3 |
#define | ABS 1 |
#define | ACOS 2 |
#define | ASIN 3 |
#define | ATAN 4 |
#define | COS 5 |
#define | EXP 6 |
#define | FIX 7 |
#define | FUP 8 |
#define | LN 9 |
#define | ROUND 10 |
#define | SIN 11 |
#define | SQRT 12 |
#define | TAN 13 |
#define | NO_OPERATION 0 |
#define | DIVIDED_BY 1 |
#define | MODULO 2 |
#define | POWER 3 |
#define | TIMES 4 |
#define | AND2 5 |
#define | EXCLUSIVE_OR 6 |
#define | MINUS 7 |
#define | NON_EXCLUSIVE_OR 8 |
#define | PLUS 9 |
#define | RIGHT_BRACKET 10 |
#define | G_0 0 |
#define | G_1 10 |
#define | G_2 20 |
#define | G_3 30 |
#define | G_4 40 |
#define | G_10 100 |
#define | G_17 170 |
#define | G_18 180 |
#define | G_19 190 |
#define | G_20 200 |
#define | G_21 210 |
#define | G_38_2 382 |
#define | G_40 400 |
#define | G_41 410 |
#define | G_42 420 |
#define | G_43 430 |
#define | G_49 490 |
#define | G_53 530 |
#define | G_54 540 |
#define | G_55 550 |
#define | G_56 560 |
#define | G_57 570 |
#define | G_58 580 |
#define | G_59 590 |
#define | G_59_1 591 |
#define | G_59_2 592 |
#define | G_59_3 593 |
#define | G_61 610 |
#define | G_64 640 |
#define | G_80 800 |
#define | G_81 810 |
#define | G_82 820 |
#define | G_83 830 |
#define | G_84 840 |
#define | G_85 850 |
#define | G_86 860 |
#define | G_87 870 |
#define | G_88 880 |
#define | G_89 890 |
#define | G_90 900 |
#define | G_91 910 |
#define | G_92 920 |
#define | G_92_2 922 |
#define | G_93 930 |
#define | G_94 940 |
#define | G_98 980 |
#define | G_99 990 |
#define | ERROR_MACRO(text, function_name, message) |
#define | ERR_MACRO(text, function_name, message) |
#define | ERROR_MACRO_PASS(function_name) return RS274NGC_ERROR |
#define | ERR_MACRO_PASS(function_name) |
#define | BUG_MACRO(function_name, message) |
#define | RS274NGC_MAX_PARAMETERS 5400 |
#define | RS274NGC_COMMENT_LEN 256 |
#define | DEFAULT_RS274NGC_PARAMETER_FILE "rs274ngc.var" |
name of parameter file for saving/restoring interpreter variables. More... | |
#define | RS274NGC_PARAMETER_FILE_BACKUP_SUFFIX ".bak" |
#define | RS274NGC_ACTIVE_G_CODES 12 |
copy active G codes into array [0]..[11]. More... | |
#define | RS274NGC_ACTIVE_M_CODES 7 |
copy active M codes into array [0]..[6]. More... | |
#define | RS274NGC_ACTIVE_SETTINGS 3 |
copy active F, S settings into array [0]..[2]. More... | |
Typedefs | |
typedef int | ON_OFF |
typedef setup_struct | setup |
typedef setup * | setup_pointer |
global in rs274ngc.cc for all settings. More... | |
typedef block_struct | block |
typedef block * | block_pointer |
Enumerations | |
enum | DISTANCE_MODE { MODE_ABSOLUTE, MODE_INCREMENTAL } |
enum | RETRACT_MODE { R_PLANE, OLD_Z } |
Functions | |
int | rs274ngc_init () |
int | rs274ngc_open (const char *filename) |
int | rs274ngc_close () |
int | rs274ngc_read () |
int | rs274ngc_execute (const char *mdi=0) |
int | rs274ngc_reset () |
int | rs274ngc_synch () |
int | rs274ngc_exit () |
const char * | rs274ngc_file () |
int | rs274ngc_line () |
const char * | rs274ngc_command () |
int | rs274ngc_load_tool_table () |
int | rs274ngc_restore_parameters (const char *filename, double parameters[]) |
restore interpreter variables from file. More... | |
int | rs274ngc_save_parameters (const char *filename, const double parameters[]) |
save interpreter variables to file. More... | |
int | rs274ngc_ini_load (const char *filename) |
load settings from INI file. More... | |
int | rs274ngc_active_g_codes (int *codes) |
int | rs274ngc_active_m_codes (int *codes) |
int | rs274ngc_active_settings (double *settings) |
Variables | |
setup | _interpreter_settings |
char | RS274NGC_PARAMETER_FILE [INTERP_TEXT_SIZE] |
|
These are not enums because the "&" operator is used in reading the operation names and is illegal with an enum Definition at line 103 of file rs274ngc.hh. |
|
Definition at line 104 of file rs274ngc.hh. |
|
COMPILER MACROS Definition at line 33 of file rs274ngc.hh. Referenced by adjust_error_handling(), check_other_codes(), close_and_down(), close_and_downcase(), convert_arc_comp1(), convert_arc_comp2(), convert_straight_comp2(), execute_binary1(), interpret_from_file(), interpret_from_keyboard(), print_nc_line_number(), read_text(), and rs274ngc_read().
|
|
Definition at line 124 of file rs274ngc.hh. |
|
Definition at line 105 of file rs274ngc.hh. |
|
Definition at line 106 of file rs274ngc.hh. |
|
Value: if (1) \ { \ CANON_ERROR("%s: bug %d: %s", \ function_name, \ utility_error_number(message, interp_errors, 200), \ message); \ return RS274NGC_ERROR; \ } else Definition at line 272 of file rs274ngc.hh. Referenced by convert_coordinate_system(), execute_binary1(), execute_binary2(), and execute_unary().
|
|
Definition at line 107 of file rs274ngc.hh. |
|
name of parameter file for saving/restoring interpreter variables.
Definition at line 415 of file rs274ngc.hh. |
|
Definition at line 120 of file rs274ngc.hh. |
|
Value: if (1) { \ CANON_ERROR("%s\n%s: error %d: %s", \ text, \ function_name, \ utility_error_number(message, interp_errors, 0), \ message); \ return RS274NGC_ERROR; \ } else If error handling is changed somewhat, only the macros will need changing. There are two types of error handling macro, one for handling errors in the input code (named ERROR_MACRO) and one (named BUG_MACRO) for handling situations that should never occur regardless of the input code, and will only occur if there is a bug in the program. Definition at line 213 of file rs274ngc.hh. Referenced by check_other_codes(), close_and_downcase(), convert_cycle(), execute_binary1(), execute_unary(), and read_one_item().
|
|
Definition at line 252 of file rs274ngc.hh. Referenced by convert_cutter_compensation(), convert_g(), convert_modal_0(), convert_motion(), and execute_block().
|
|
Value: if (1) { \ if (_interpreter_fp ISNT NULL) \ {fclose(_interpreter_fp); _interpreter_fp SET_TO NULL;} \ CANON_ERROR("%s\n%s: error %d: %s", \ text, \ function_name, \ utility_error_number(message, interp_errors, 0), \ message); \ return RS274NGC_ERROR; \ } else Definition at line 239 of file rs274ngc.hh. Referenced by rs274ngc_execute(), rs274ngc_read(), rs274ngc_restore_parameters(), and rs274ngc_save_parameters().
|
|
Value: if (1) { \ if (_interpreter_fp ISNT NULL) \ {fclose(_interpreter_fp); _interpreter_fp SET_TO NULL;} \ return RS274NGC_ERROR; \ } else Definition at line 254 of file rs274ngc.hh. Referenced by rs274ngc_read().
|
|
Definition at line 125 of file rs274ngc.hh. |
|
Definition at line 108 of file rs274ngc.hh. |
|
Definition at line 46 of file rs274ngc.hh. |
|
Definition at line 109 of file rs274ngc.hh. |
|
Definition at line 110 of file rs274ngc.hh. |
|
G Codes are symbolic to be dialect-independent in source code Definition at line 132 of file rs274ngc.hh. |
|
Definition at line 133 of file rs274ngc.hh. |
|
Definition at line 137 of file rs274ngc.hh. |
|
Definition at line 138 of file rs274ngc.hh. |
|
Definition at line 139 of file rs274ngc.hh. |
|
Definition at line 140 of file rs274ngc.hh. |
|
Definition at line 134 of file rs274ngc.hh. |
|
Definition at line 141 of file rs274ngc.hh. |
|
Definition at line 142 of file rs274ngc.hh. |
|
Definition at line 135 of file rs274ngc.hh. |
|
Definition at line 143 of file rs274ngc.hh. |
|
Definition at line 136 of file rs274ngc.hh. |
|
Definition at line 144 of file rs274ngc.hh. |
|
Definition at line 145 of file rs274ngc.hh. |
|
Definition at line 146 of file rs274ngc.hh. |
|
Definition at line 147 of file rs274ngc.hh. |
|
Definition at line 148 of file rs274ngc.hh. |
|
Definition at line 149 of file rs274ngc.hh. |
|
Definition at line 150 of file rs274ngc.hh. |
|
Definition at line 151 of file rs274ngc.hh. |
|
Definition at line 152 of file rs274ngc.hh. |
|
Definition at line 153 of file rs274ngc.hh. |
|
Definition at line 154 of file rs274ngc.hh. |
|
Definition at line 155 of file rs274ngc.hh. |
|
Definition at line 156 of file rs274ngc.hh. |
|
Definition at line 157 of file rs274ngc.hh. |
|
Definition at line 158 of file rs274ngc.hh. |
|
Definition at line 159 of file rs274ngc.hh. |
|
Definition at line 160 of file rs274ngc.hh. |
|
Definition at line 161 of file rs274ngc.hh. |
|
Definition at line 162 of file rs274ngc.hh. |
|
Definition at line 163 of file rs274ngc.hh. |
|
Definition at line 164 of file rs274ngc.hh. |
|
Definition at line 165 of file rs274ngc.hh. |
|
Definition at line 166 of file rs274ngc.hh. |
|
Definition at line 167 of file rs274ngc.hh. |
|
Definition at line 168 of file rs274ngc.hh. |
|
Definition at line 169 of file rs274ngc.hh. |
|
Definition at line 170 of file rs274ngc.hh. |
|
Definition at line 171 of file rs274ngc.hh. |
|
Definition at line 172 of file rs274ngc.hh. |
|
Definition at line 173 of file rs274ngc.hh. |
|
Definition at line 174 of file rs274ngc.hh. |
|
Definition at line 175 of file rs274ngc.hh. |
|
Definition at line 176 of file rs274ngc.hh. |
|
Definition at line 177 of file rs274ngc.hh. |
|
Definition at line 178 of file rs274ngc.hh. |
|
Definition at line 74 of file rs274ngc.hh. |
|
Definition at line 49 of file rs274ngc.hh. |
|
Definition at line 82 of file rs274ngc.hh. |
|
Definition at line 34 of file rs274ngc.hh. |
|
Definition at line 35 of file rs274ngc.hh. |
|
Definition at line 111 of file rs274ngc.hh. |
|
Definition at line 36 of file rs274ngc.hh. |
|
Definition at line 70 of file rs274ngc.hh. |
|
Definition at line 69 of file rs274ngc.hh. |
|
Definition at line 68 of file rs274ngc.hh. |
|
Definition at line 126 of file rs274ngc.hh. |
|
English - Metric conversion (long number keeps error buildup down) Definition at line 73 of file rs274ngc.hh. |
|
Definition at line 121 of file rs274ngc.hh. |
|
Definition at line 127 of file rs274ngc.hh. |
|
Definition at line 37 of file rs274ngc.hh. |
|
binary operations Definition at line 119 of file rs274ngc.hh. |
|
on-off switch settings Definition at line 77 of file rs274ngc.hh. |
|
Definition at line 78 of file rs274ngc.hh. |
|
Definition at line 38 of file rs274ngc.hh. Referenced by close_and_down(), close_and_downcase(), execute_unary(), find_straight_length(), main(), and print_nc_line_number().
|
|
Definition at line 61 of file rs274ngc.hh. |
|
Definition at line 65 of file rs274ngc.hh. |
|
Definition at line 128 of file rs274ngc.hh. |
|
Definition at line 122 of file rs274ngc.hh. |
|
Definition at line 129 of file rs274ngc.hh. |
|
Definition at line 112 of file rs274ngc.hh. |
|
copy active G codes into array [0]..[11].
Definition at line 429 of file rs274ngc.hh. |
|
copy active M codes into array [0]..[6].
Definition at line 433 of file rs274ngc.hh. |
|
copy active F, S settings into array [0]..[2].
Definition at line 437 of file rs274ngc.hh. |
|
Definition at line 362 of file rs274ngc.hh. |
|
Definition at line 89 of file rs274ngc.hh. |
|
Definition at line 87 of file rs274ngc.hh. |
|
Definition at line 90 of file rs274ngc.hh. |
|
Definition at line 88 of file rs274ngc.hh. |
|
Definition at line 307 of file rs274ngc.hh. |
|
error and exit status Definition at line 86 of file rs274ngc.hh. |
|
Definition at line 417 of file rs274ngc.hh. |
|
Definition at line 39 of file rs274ngc.hh. Referenced by START_SPINDLE_CLOCKWISE(), START_SPINDLE_COUNTERCLOCKWISE(), STRAIGHT_PROBE(), USE_LENGTH_UNITS(), adjust_error_handling(), close_and_down(), close_and_downcase(), convert_arc_comp1(), convert_arc_comp2(), convert_straight_comp1(), convert_straight_comp2(), convert_tool_length_offset(), execute_binary1(), execute_binary2(), execute_unary(), find_ends(), main(), read_real_number(), read_text(), and rs274ngc_synch().
|
|
Definition at line 113 of file rs274ngc.hh. |
|
Definition at line 114 of file rs274ngc.hh. |
|
Definition at line 115 of file rs274ngc.hh. |
|
Definition at line 123 of file rs274ngc.hh. |
|
Definition at line 56 of file rs274ngc.hh. |
|
Definition at line 54 of file rs274ngc.hh. |
|
numerical constants Definition at line 52 of file rs274ngc.hh. |
|
Definition at line 53 of file rs274ngc.hh. |
|
Definition at line 42 of file rs274ngc.hh. |
|
Definition at line 58 of file rs274ngc.hh. |
|
feed_mode Definition at line 81 of file rs274ngc.hh. |
|
Definition at line 57 of file rs274ngc.hh. |
|
The current_x, current_y, and current_z are the location of the tool in the current coordinate system. current_x and current_y differ from program_x and program_y when cutter radius compensation is on. current_z is the position of the tool tip in program coordinates when tool length compensation is on; it is the position of the spindle when tool length compensation is off. Definition at line 305 of file rs274ngc.hh. |
|
|
|
Definition at line 395 of file rs274ngc.hh. |
|
|
|
global in rs274ngc.cc for all settings.
Definition at line 360 of file rs274ngc.hh. |
|
distance_mode Definition at line 289 of file rs274ngc.hh. 00289 {MODE_ABSOLUTE, MODE_INCREMENTAL} DISTANCE_MODE; |
|
retract_mode for cycles Definition at line 292 of file rs274ngc.hh. 00292 {R_PLANE, OLD_Z} RETRACT_MODE; |
|
Definition at line 11940 of file rs274ngc_pre.cc. 11942 { 11943 int n; 11944 11945 for (n SET_TO 0; n < RS274NGC_ACTIVE_G_CODES; n++) 11946 { 11947 codes[n] SET_TO _setup.active_g_codes[n]; 11948 } 11949 } |
|
Definition at line 11965 of file rs274ngc_pre.cc. 11967 { 11968 int n; 11969 11970 for (n SET_TO 0; n < RS274NGC_ACTIVE_M_CODES; n++) 11971 { 11972 codes[n] SET_TO _setup.active_m_codes[n]; 11973 } 11974 } |
|
Definition at line 11990 of file rs274ngc_pre.cc. 11992 { 11993 int n; 11994 11995 for (n SET_TO 0; n < RS274NGC_ACTIVE_SETTINGS; n++) 11996 { 11997 settings[n] SET_TO _setup.active_settings[n]; 11998 } 11999 } |
|
Definition at line 11144 of file rs274ngc_pre.cc. 11145 { 11146 if (_setup.file_pointer ISNT NULL) 11147 { 11148 fclose(_setup.file_pointer); 11149 _setup.file_pointer SET_TO NULL; 11150 } 11151 rs274ngc_reset(); 11152 11153 return RS274NGC_OK; 11154 } |
|
Definition at line 437 of file new/rs274ngc.hh. 00437 { static char buf[100]; rs274ngc_line_text(buf,100); return buf;} |
|
Definition at line 11179 of file rs274ngc_pre.cc. 11183 { 11184 static char name[] SET_TO "rs274ngc_execute"; 11185 int status; 11186 int n; 11187 11188 #ifndef NOT_OLD_EMC_INTERP_COMPATIBLE 11189 if(NULL != command) 11190 { 11191 status = rs274ngc_read(command); 11192 } 11193 #endif 11194 11195 for (n SET_TO 0; n < _setup.parameter_occurrence; n++) 11196 { // copy parameter settings from parameter buffer into parameter table 11197 _setup.parameters[_setup.parameter_numbers[n]] 11198 SET_TO _setup.parameter_values[n]; 11199 } 11200 if (_setup.line_length ISNT 0) /* line not blank */ 11201 { 11202 status SET_TO execute_block (&(_setup.block1), &_setup); 11203 write_g_codes(&(_setup.block1), &_setup); 11204 write_m_codes(&(_setup.block1), &_setup); 11205 write_settings(&_setup); 11206 if ((status ISNT RS274NGC_OK) AND 11207 (status ISNT RS274NGC_EXECUTE_FINISH) AND 11208 (status ISNT RS274NGC_EXIT)) 11209 ERP(status); 11210 } 11211 else /* blank line is OK */ 11212 status SET_TO RS274NGC_OK; 11213 return status; 11214 } |
|
Definition at line 11233 of file rs274ngc_pre.cc. 11234 { 11235 char file_name[RS274NGC_TEXT_SIZE]; 11236 11237 GET_EXTERNAL_PARAMETER_FILE_NAME(file_name, (RS274NGC_TEXT_SIZE - 1)); 11238 rs274ngc_save_parameters 11239 (((file_name[0] IS 0) ? RS274NGC_PARAMETER_FILE_NAME_DEFAULT : file_name), 11240 _setup.parameters); 11241 rs274ngc_reset(); 11242 11243 return RS274NGC_OK; 11244 } |
|
Definition at line 438 of file new/rs274ngc.hh. 00438 { static char buf[100]; rs274ngc_file_name(buf,100); return buf;} |
|
load settings from INI file.
|
|
calling interface Definition at line 11273 of file rs274ngc_pre.cc. 11274 { 11275 static char name[] SET_TO "rs274ngc_init"; 11276 int k; // starting index in parameters of origin offsets 11277 int status; 11278 char filename[RS274NGC_TEXT_SIZE]; 11279 double * pars; // short name for _setup.parameters 11280 11281 INIT_CANON(); 11282 _setup.length_units SET_TO GET_EXTERNAL_LENGTH_UNIT_TYPE(); 11283 USE_LENGTH_UNITS(_setup.length_units); 11284 GET_EXTERNAL_PARAMETER_FILE_NAME(filename, RS274NGC_TEXT_SIZE); 11285 if (filename[0] IS 0) 11286 strcpy(filename, RS274NGC_PARAMETER_FILE_NAME_DEFAULT); 11287 CHP(rs274ngc_restore_parameters(filename)); 11288 pars SET_TO _setup.parameters; 11289 _setup.origin_index SET_TO (int)(pars[5220] + 0.0001); 11290 CHK(((_setup.origin_index < 1) OR (_setup.origin_index > 9)), 11291 NCE_COORDINATE_SYSTEM_INDEX_PARAMETER_5220_OUT_OF_RANGE); 11292 k SET_TO (5200 + (_setup.origin_index * 20)); 11293 SET_ORIGIN_OFFSETS((pars[k + 1] + pars[5211]), 11294 (pars[k + 2] + pars[5212]), 11295 (pars[k + 3] + pars[5213]) 11296 #ifdef AA 11297 , (pars[k + 4] + pars[5214]) 11298 #else 11299 #ifdef ALL_AXES 11300 , 0 11301 #endif 11302 #endif 11303 #ifdef BB 11304 , (pars[k + 5] + pars[5215]) 11305 #else 11306 #ifdef ALL_AXES 11307 , 0 11308 #endif 11309 #endif 11310 #ifdef CC 11311 , (pars[k + 6] + pars[5216]) 11312 #else 11313 #ifdef ALL_AXES 11314 , 0 11315 #endif 11316 #endif 11317 ); 11318 SET_FEED_REFERENCE(CANON_XYZ); 11319 #ifdef AA 11320 _setup.AA_axis_offset SET_TO pars[5214]; /*AA*/ 11321 #endif 11322 //_setup.Aa_current set in rs274ngc_synch 11323 #ifdef AA 11324 _setup.AA_origin_offset SET_TO pars[k + 4]; /*AA*/ 11325 #endif 11326 //_setup.active_g_codes initialized below 11327 //_setup.active_m_codes initialized below 11328 //_setup.active_settings initialized below 11329 _setup.axis_offset_x SET_TO pars[5211]; 11330 _setup.axis_offset_y SET_TO pars[5212]; 11331 _setup.axis_offset_z SET_TO pars[5213]; 11332 #ifdef BB 11333 _setup.BB_axis_offset SET_TO pars[5215]; /*BB*/ 11334 #endif 11335 //_setup.Bb_current set in rs274ngc_synch 11336 #ifdef BB 11337 _setup.BB_origin_offset SET_TO pars[k + 5]; /*BB*/ 11338 #endif 11339 //_setup.block1 does not need initialization 11340 _setup.blocktext[0] SET_TO 0; 11341 #ifdef CC 11342 _setup.CC_axis_offset SET_TO pars[5216]; /*CC*/ 11343 #endif 11344 //_setup.Cc_current set in rs274ngc_synch 11345 #ifdef CC 11346 _setup.CC_origin_offset SET_TO pars[k + 6]; /*CC*/ 11347 #endif 11348 //_setup.current_slot set in rs274ngc_synch 11349 //_setup.current_x set in rs274ngc_synch 11350 //_setup.current_y set in rs274ngc_synch 11351 //_setup.current_z set in rs274ngc_synch 11352 _setup.cutter_comp_side SET_TO OFF; 11353 //_setup.cycle values do not need initialization 11354 _setup.distance_mode SET_TO MODE_ABSOLUTE; 11355 _setup.feed_mode SET_TO UNITS_PER_MINUTE; 11356 _setup.feed_override SET_TO ON; 11357 //_setup.feed_rate set in rs274ngc_synch 11358 _setup.filename[0] SET_TO 0; 11359 _setup.file_pointer SET_TO NULL; 11360 //_setup.flood set in rs274ngc_synch 11361 _setup.length_offset_index SET_TO 1; 11362 //_setup.length_units set in rs274ngc_synch 11363 _setup.line_length SET_TO 0; 11364 _setup.linetext[0] SET_TO 0; 11365 //_setup.mist set in rs274ngc_synch 11366 _setup.motion_mode SET_TO G_80; 11367 //_setup.origin_index set above 11368 _setup.origin_offset_x SET_TO pars[k + 1]; 11369 _setup.origin_offset_y SET_TO pars[k + 2]; 11370 _setup.origin_offset_z SET_TO pars[k + 3]; 11371 //_setup.parameters set above 11372 //_setup.parameter_occurrence does not need initialization 11373 //_setup.parameter_numbers does not need initialization 11374 //_setup.parameter_values does not need initialization 11375 //_setup.percent_flag does not need initialization 11376 //_setup.plane set in rs274ngc_synch 11377 _setup.probe_flag SET_TO OFF; 11378 _setup.program_x SET_TO UNKNOWN; /* for cutter comp */ 11379 _setup.program_y SET_TO UNKNOWN; /* for cutter comp */ 11380 //_setup.retract_mode does not need initialization 11381 //_setup.selected_tool_slot set in rs274ngc_synch 11382 _setup.sequence_number SET_TO 0; /*DOES THIS NEED TO BE AT TOP? */ 11383 //_setup.speed set in rs274ngc_synch 11384 _setup.speed_feed_mode SET_TO CANON_INDEPENDENT; 11385 _setup.speed_override SET_TO ON; 11386 //_setup.spindle_turning set in rs274ngc_synch 11387 //_setup.stack does not need initialization 11388 //_setup.stack_index does not need initialization 11389 _setup.tool_length_offset SET_TO 0.0; 11390 //_setup.tool_max set in rs274ngc_synch 11391 //_setup.tool_table set in rs274ngc_synch 11392 _setup.tool_table_index SET_TO 1; 11393 //_setup.traverse_rate set in rs274ngc_synch 11394 11395 write_g_codes((block_pointer)NULL, &_setup); 11396 write_m_codes((block_pointer)NULL, &_setup); 11397 write_settings(&_setup); 11398 11399 // Synch rest of settings to external world 11400 rs274ngc_synch(); 11401 11402 return RS274NGC_OK; 11403 } |
|
Definition at line 436 of file new/rs274ngc.hh. 00436 {return rs274ngc_sequence_number();} |
|
Definition at line 11429 of file rs274ngc_pre.cc. 11430 { 11431 static char name[] SET_TO "rs274ngc_load_tool_table"; 11432 int n; 11433 11434 CHK((_setup.tool_max > CANON_TOOL_MAX), NCE_TOOL_MAX_TOO_LARGE); 11435 for (n SET_TO 0; n <= _setup.tool_max; n++) 11436 { 11437 _setup.tool_table[n] SET_TO GET_EXTERNAL_TOOL_TABLE(n); 11438 } 11439 for(; n <= CANON_TOOL_MAX; n++) 11440 { 11441 _setup.tool_table[n].id SET_TO 0; 11442 _setup.tool_table[n].length SET_TO 0; 11443 _setup.tool_table[n].diameter SET_TO 0; 11444 } 11445 11446 return RS274NGC_OK; 11447 } |
|
Definition at line 11495 of file rs274ngc_pre.cc. 11496 : the name of the input NC-program file */ 11497 { 11498 static char name[] SET_TO "rs274ngc_open"; 11499 char * line; 11500 int index; 11501 int length; 11502 11503 CHK((_setup.file_pointer ISNT NULL), NCE_A_FILE_IS_ALREADY_OPEN); 11504 CHK((strlen(filename) > (RS274NGC_TEXT_SIZE - 1)), NCE_FILE_NAME_TOO_LONG); 11505 _setup.file_pointer SET_TO fopen(filename, "r"); 11506 CHK((_setup.file_pointer IS NULL), NCE_UNABLE_TO_OPEN_FILE); 11507 line SET_TO _setup.linetext; 11508 for(index SET_TO -1; index IS -1;) /* skip blank lines */ 11509 { 11510 CHK((fgets(line, RS274NGC_TEXT_SIZE, _setup.file_pointer) IS NULL), 11511 NCE_FILE_ENDED_WITH_NO_PERCENT_SIGN); 11512 length SET_TO strlen(line); 11513 if (length IS (RS274NGC_TEXT_SIZE - 1)) 11514 { // line is too long. need to finish reading the line to recover 11515 for(;fgetc(_setup.file_pointer) ISNT '\n';); // could look for EOF 11516 ERM(NCE_COMMAND_TOO_LONG); 11517 } 11518 for(index SET_TO (length -1); // index set on last char 11519 (index >= 0) AND (isspace(line[index])); 11520 index--); 11521 } 11522 if(line[index] IS '%') 11523 { 11524 for(index--; (index >= 0) AND (isspace(line[index])); index--); 11525 if (index IS -1) 11526 { 11527 _setup.percent_flag SET_TO ON; 11528 _setup.sequence_number=1; // We have already read the first line 11529 // and we are not going back to it. 11530 } 11531 else 11532 { 11533 fseek(_setup.file_pointer, 0, SEEK_SET); 11534 _setup.percent_flag SET_TO OFF; 11535 _setup.sequence_number=0; // Going back to line 0 11536 } 11537 } 11538 else 11539 { 11540 fseek(_setup.file_pointer, 0, SEEK_SET); 11541 _setup.percent_flag SET_TO OFF; 11542 _setup.sequence_number=0; // Going back to line 0 11543 } 11544 strcpy(_setup.filename, filename); 11545 rs274ngc_reset(); 11546 return RS274NGC_OK; 11547 } |
|
|
|
Definition at line 11643 of file rs274ngc_pre.cc. |
|
restore interpreter variables from file.
|
|
save interpreter variables to file.
Definition at line 11787 of file rs274ngc_pre.cc. 11790 { 11791 static char name[] SET_TO "rs274ngc_save_parameters"; 11792 FILE * infile; 11793 FILE * outfile; 11794 char line[256]; 11795 int variable; 11796 double value; 11797 int required; // number of next required parameter 11798 int index; // index into _required_parameters 11799 int k; 11800 11801 // rename as .bak 11802 strcpy(line, filename); 11803 strcat(line, RS274NGC_PARAMETER_FILE_BACKUP_SUFFIX); 11804 CHK((rename(filename, line) ISNT 0), NCE_CANNOT_CREATE_BACKUP_FILE); 11805 11806 // open backup for reading 11807 infile SET_TO fopen(line, "r"); 11808 CHK((infile IS NULL), NCE_CANNOT_OPEN_BACKUP_FILE); 11809 11810 // open original for writing 11811 outfile SET_TO fopen(filename, "w"); 11812 CHK((outfile IS NULL), NCE_CANNOT_OPEN_VARIABLE_FILE); 11813 11814 k SET_TO 0; 11815 index SET_TO 0; 11816 required SET_TO _required_parameters[index++]; 11817 while (feof(infile) IS 0) 11818 { 11819 if (fgets(line, 256, infile) IS NULL) 11820 { 11821 break; 11822 } 11823 // try for a variable-value match 11824 if (sscanf(line, "%d %lf", &variable, &value) IS 2) 11825 { 11826 CHK(((variable <= 0) OR (variable >= RS274NGC_MAX_PARAMETERS)), 11827 NCE_PARAMETER_NUMBER_OUT_OF_RANGE); 11828 for (; k < RS274NGC_MAX_PARAMETERS; k++) 11829 { 11830 if (k > variable) 11831 ERM(NCE_PARAMETER_FILE_OUT_OF_ORDER); 11832 else if (k IS variable) 11833 { 11834 sprintf(line, "%d\t%f\n", k, parameters[k]); 11835 fputs(line, outfile); 11836 if (k IS required) 11837 required SET_TO _required_parameters[index++]; 11838 k++; 11839 break; 11840 } 11841 else if (k IS required) // know (k < variable) 11842 { 11843 sprintf(line, "%d\t%f\n", k, parameters[k]); 11844 fputs(line, outfile); 11845 required SET_TO _required_parameters[index++]; 11846 } 11847 } 11848 } 11849 } 11850 fclose(infile); 11851 for (; k < RS274NGC_MAX_PARAMETERS; k++) 11852 { 11853 if (k IS required) 11854 { 11855 sprintf(line, "%d\t%f\n", k, parameters[k]); 11856 fputs(line, outfile); 11857 required SET_TO _required_parameters[index++]; 11858 } 11859 } 11860 fclose(outfile); 11861 11862 return RS274NGC_OK; 11863 } |
|
Definition at line 11884 of file rs274ngc_pre.cc. 11885 { 11886 _setup.control_mode SET_TO GET_EXTERNAL_MOTION_CONTROL_MODE(); 11887 #ifdef AA 11888 _setup.AA_current SET_TO GET_EXTERNAL_POSITION_A(); /*AA*/ 11889 #endif 11890 #ifdef BB 11891 _setup.BB_current SET_TO GET_EXTERNAL_POSITION_B(); /*BB*/ 11892 #endif 11893 #ifdef CC 11894 _setup.CC_current SET_TO GET_EXTERNAL_POSITION_C(); /*CC*/ 11895 #endif 11896 _setup.current_slot SET_TO GET_EXTERNAL_TOOL_SLOT(); 11897 _setup.current_x SET_TO GET_EXTERNAL_POSITION_X(); 11898 _setup.current_y SET_TO GET_EXTERNAL_POSITION_Y(); 11899 _setup.current_z SET_TO GET_EXTERNAL_POSITION_Z(); 11900 _setup.feed_rate SET_TO GET_EXTERNAL_FEED_RATE(); 11901 _setup.flood SET_TO (GET_EXTERNAL_FLOOD() ISNT 0) ? ON : OFF; 11902 _setup.length_units SET_TO GET_EXTERNAL_LENGTH_UNIT_TYPE(); 11903 _setup.mist SET_TO (GET_EXTERNAL_MIST() ISNT 0) ? ON : OFF; 11904 _setup.plane SET_TO GET_EXTERNAL_PLANE(); 11905 _setup.selected_tool_slot SET_TO GET_EXTERNAL_TOOL_SLOT(); 11906 _setup.speed SET_TO GET_EXTERNAL_SPEED(); 11907 _setup.spindle_turning SET_TO GET_EXTERNAL_SPINDLE(); 11908 _setup.tool_max SET_TO GET_EXTERNAL_TOOL_MAX(); 11909 _setup.traverse_rate SET_TO GET_EXTERNAL_TRAVERSE_RATE(); 11910 11911 rs274ngc_load_tool_table(); /* must set _setup.tool_max first */ 11912 11913 return RS274NGC_OK; 11914 } |
|
Definition at line 416 of file rs274ngc.hh. |
|
Definition at line 358 of file rs274ngc.hh. |