interp_internal.hh
来自「CNC 的开放码,EMC2 V2.2.8版」· HH 代码 · 共 526 行 · 第 1/2 页
HH
526 行
/********************************************************************* Description: interp_internal.hh** Derived from a work by Thomas Kramer** Author:* License: GPL Version 2* System: Linux* * Copyright (c) 2004 All rights reserved.** Last change:* $Revision: 1.32 $* $Author: cradek $* $Date: 2007/11/02 20:13:39 $********************************************************************/#ifndef INTERP_INTERNAL_HH#define INTERP_INTERNAL_HH#include "config.h"#include <limits.h>#include <stdio.h>#include "canon.hh"#include "libintl.h"#define _(s) gettext(s)/**********************//* COMPILER MACROS *//**********************/#define MAX(x, y) ((x) > (y) ? (x) : (y))#define round_to_int(x) ((int) ((x) < 0.0 ? ((x) - 0.5) : ((x) + 0.5)))/* how far above hole bottom for rapid return, in inches */#define G83_RAPID_DELTA 0.010/* numerical constants */#define TOLERANCE_INCH 0.0005#define TOLERANCE_MM 0.005/* angle threshold for concavity for cutter compensation, in radians */#define TOLERANCE_CONCAVE_CORNER 0.05 #define TOLERANCE_EQUAL 0.0001 /* two numbers compare EQ if the difference is less than this */#define TINY 1e-12 /* for arc_data_r */// max number of m codes on one line#define MAX_EMS 4// English - Metric conversion (long number keeps error buildup down)#define MM_PER_INCH 25.4//#define INCH_PER_MM 0.039370078740157477// on-off switch settings#define OFF 0#define ON 1// feed_modeenum feed_mode { UNITS_PER_MINUTE=0, INVERSE_TIME=1, UNITS_PER_REVOLUTION=2 };// cutter radius compensation mode, OFF already defined to 0// not using CANON_SIDE since interpreter handles cutter radius comp#define RIGHT 1#define LEFT 2// spindle control modesenum SPINDLE_MODE { CONSTANT_RPM, CONSTANT_SURFACE };// unary operations// These are not enums because the "&" operator is used in// reading the operation names and is illegal with an enum#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// binary operations#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/* relational operators (are binary operators)*/#define LT 11#define EQ 12#define NE 13#define LE 14#define GE 15#define GT 16#define RELATIONAL_OP_FIRST 11#define RELATIONAL_OP_LAST 16// O code#define O_none 0#define O_sub 1#define O_endsub 2#define O_call 3#define O_do 4#define O_while 5#define O_if 6#define O_elseif 7#define O_else 8#define O_endif 9#define O_break 10#define O_continue 11#define O_endwhile 12#define O_return 13// G Codes are symbolic to be dialect-independent in source code#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_28 280#define G_30 300#define G_33 330#define G_33_1 331#define G_38_2 382#define G_40 400#define G_41 410#define G_41_1 411#define G_42 420#define G_42_1 421#define G_43 430#define G_43_1 431#define G_49 490#define G_50 500#define G_51 510#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_61_1 611#define G_64 640#define G_76 760#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_1 921#define G_92_2 922#define G_92_3 923#define G_93 930#define G_94 940#define G_95 950#define G_96 960#define G_97 970#define G_98 980#define G_99 990// name of parameter file for saving/restoring interpreter variables#define RS274NGC_PARAMETER_FILE_NAME_DEFAULT "rs274ngc.var"#define RS274NGC_PARAMETER_FILE_BACKUP_SUFFIX ".bak"// number of parameters in parameter table#define RS274NGC_MAX_PARAMETERS 5400// Subroutine parameters#define INTERP_SUB_PARAMS 30#define INTERP_OWORD_LABELS 1000#define INTERP_SUB_ROUTINE_LEVELS 10#define INTERP_FIRST_SUBROUTINE_PARAM 1/**********************//* TYPEDEFS *//**********************//* distance_mode */typedef enum{ MODE_ABSOLUTE, MODE_INCREMENTAL }DISTANCE_MODE;/* retract_mode for cycles */typedef enum{ R_PLANE, OLD_Z }RETRACT_MODE;typedef struct block_struct{ ON_OFF a_flag; double a_number; ON_OFF b_flag; double b_number; ON_OFF c_flag; double c_number; char comment[256]; double d_number_float; ON_OFF d_flag; ON_OFF e_flag; double e_number; double f_number; int g_modes[15]; ON_OFF h_flag; int h_number; ON_OFF i_flag; double i_number; ON_OFF j_flag; double j_number; ON_OFF k_flag; double k_number; int l_number; ON_OFF l_flag; int line_number; int motion_to_be; int m_count; int m_modes[11]; int user_m; double p_number; ON_OFF p_flag; double q_number; ON_OFF r_flag; double r_number; double s_number; int t_number; ON_OFF u_flag; double u_number; ON_OFF v_flag; double v_number; ON_OFF w_flag; double w_number; ON_OFF x_flag;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?