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 + -
显示快捷键?