From 5a8e0d9f5be98147d76a280a191b15b71cf853b5 Mon Sep 17 00:00:00 2001 From: Rod Date: Mon, 13 Apr 2026 17:44:27 +1000 Subject: [PATCH 01/23] first attempt to create state tag pins --- docs/src/man/man9/motion.9.adoc | 37 + src/emc/motion/control.c | 71 +- src/emc/motion/mot_priv.h | 10 + src/emc/motion/motion.c | 11 + src/emc/motion/state_tag.h | 11 +- src/emc/rs274ngc/interp_convert.cc | 8028 +++++++++++++++------------ src/emc/rs274ngc/rs274ngc_interp.hh | 4 + 7 files changed, 4511 insertions(+), 3661 deletions(-) diff --git a/docs/src/man/man9/motion.9.adoc b/docs/src/man/man9/motion.9.adoc index efb78a7d054..9cf540fcedf 100644 --- a/docs/src/man/man9/motion.9.adoc +++ b/docs/src/man/man9/motion.9.adoc @@ -263,6 +263,43 @@ Note: feed-inhibit applies to G-code commands -- not jogs. *motion.tp-reverse* OUT BIT:: Trajectory planning is reversed (reverse run) +=== Interpreter Metadata Pins + +These pins provide geometric intent and interpreter state for the segment of motion currently being executed. Unlike standard position feedback, these values are synchronized with the trajectory planner's execution point. + +==== Interpreter Status Pins + +* `motion.interp.line-number` (s32, out) + + The current G-code line number being executed. + +* `motion.interp.motion-type` (s32, out) + + The type of motion currently in progress: +** 0: None +** 1: Rapid (G0) +** 2: Feed (G1) +** 3: Arc (G2, G3) +** 4: Tool Change/Other + +* `motion.interp.feedrate` (float, out) + + The interpreted feedrate for the current segment in units per minute. + +==== Interpreter Geometric Pins + +* `motion.interp.straight-heading` (float, out) + + The XY plane heading of the current linear move in degrees. Measured counter-clockwise from the +X axis (0 to 360). This value is 0.0 during circular moves or when no XY motion occurs. + +* `motion.interp.arc-radius` (float, out) + + The radius of the current circular move. This value is 0.0 during linear moves. + +* `motion.interp.arc-center-x` (float, out) + + The absolute X-coordinate of the center point for the current arc. + +* `motion.interp.arc-center-y` (float, out) + + The absolute Y-coordinate of the center point for the current arc. + +[NOTE] +These pins represent the *commanded geometric intent* from the interpreter and are updated in real-time as each motion segment is consumed by the trajectory planner. + == AXIS PINS (*L* is the axis letter, one of: *x y z a b c u v w*) diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index fd42ac027fe..4dc2400db15 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -34,6 +34,7 @@ #include "config.h" #include "homing.h" #include "axis.h" +#include "state_tag.h" // Mark strings for translation, but defer translation to userspace #define _(s) (s) @@ -1888,6 +1889,20 @@ static void output_to_hal(void) *(emcmot_hal_data->coord_error) = GET_MOTION_ERROR_FLAG(); *(emcmot_hal_data->on_soft_limit) = emcmotStatus->on_soft_limit; + /* Update the HAL Output Pins from the active tag */ + /* Geometric Metadata */ + *(emcmot_hal_data->interp_arc_radius) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_RADIUS]; + *(emcmot_hal_data->interp_arc_center_x) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_X]; + *(emcmot_hal_data->interp_arc_center_y) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_Y]; + *(emcmot_hal_data->interp_straight_heading) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_STRAIGHT_HEADING]; + + /* Performance Metadata */ + *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_FEED]; + + /* Line and Motion Type (Casting to int for s32 HAL pins) */ + *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_FLOAT_LINE_NUMBER]; + *(emcmot_hal_data->interp_motion_type) = (int)emcmotStatus->tag.fields[GM_FIELD_MOTION_MODE]; + switch (emcmotStatus->motionType) { case EMC_MOTION_TYPE_FEED: //fall thru case EMC_MOTION_TYPE_ARC: @@ -2033,10 +2048,8 @@ static void output_to_hal(void) /* point to joint struct */ joint = &joints[joint_num]; joint_data = &(emcmot_hal_data->joint[joint_num]); - /* apply backlash and motor offset to output */ - joint->motor_pos_cmd = - joint->pos_cmd + joint->backlash_filt + joint->motor_offset; + joint->motor_pos_cmd = joint->pos_cmd + joint->backlash_filt + joint->motor_offset; /* point to HAL data */ /* write to HAL pins */ *(joint_data->motor_offset) = joint->motor_offset; @@ -2131,6 +2144,9 @@ static void update_status(void) // and the state machine is still active. The homing status deassertion // must be delayed until the state machine is done. joint_status->homing = get_homing(joint_num); + /* check to see if we should pause in order to implement + single emcmotStatus->stepping */ + } joint_status->homed = get_homed(joint_num); joint_status->pos_cmd = joint->pos_cmd; @@ -2211,11 +2227,48 @@ static void update_status(void) emcmotStatus->stepping = 0; emcmotStatus->paused = 1; } -#ifdef WATCH_FLAGS - /*! \todo FIXME - this is for debugging */ - if ( old_motion_flag != emcmotStatus->motionFlag ) { - rtapi_print ( "Motion flag %04X -> %04X\n", old_motion_flag, emcmotStatus->motionFlag ); - old_motion_flag = emcmotStatus->motionFlag; +// State Tags handling +// Get the current executing trajectory component (the "Source of Truth") + /* 1. Update the HAL Output Pins from the active tag */ + if (emcmot_hal_data) { + // Line and Motion Type + if (emcmot_hal_data->interp_line_number) { + *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_FLOAT_LINE_NUMBER]; + } + + // Performance Metadata + if (emcmot_hal_data->interp_feedrate) { + *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_FEED]; + } + + // Geometric Metadata + if (emcmot_hal_data->interp_arc_radius) { + *(emcmot_hal_data->interp_arc_radius) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_RADIUS]; + } + if (emcmot_hal_data->interp_arc_center_x) { + *(emcmot_hal_data->interp_arc_center_x) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_X]; + } + if (emcmot_hal_data->interp_arc_center_y) { + *(emcmot_hal_data->interp_arc_center_y) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_Y]; + } + if (emcmot_hal_data->interp_straight_heading) { + *(emcmot_hal_data->interp_straight_heading) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_STRAIGHT_HEADING]; + } + } + + /* 2. Handle the idle state (Optional cleanup) */ + if (emcmotStatus->activeDepth == 0) { + /* If there is no active move, we can clear the geometric metadata + so the UI doesn't show "old" radius data during a pause. */ + if (emcmot_hal_data && emcmot_hal_data->interp_arc_radius) { + *(emcmot_hal_data->interp_arc_radius) = 0.0; + } } -#endif } +#ifdef WATCH_FLAGS +/*! \todo FIXME - this is for debugging */ +if ( old_motion_flag != emcmotStatus->motionFlag ) { +rtapi_print ( "Motion flag %04X -> %04X\n", old_motion_flag, emcmotStatus->motionFlag ); +old_motion_flag = emcmotStatus->motionFlag; +} +#endif diff --git a/src/emc/motion/mot_priv.h b/src/emc/motion/mot_priv.h index 4ecc10bf87f..4830772dbbd 100644 --- a/src/emc/motion/mot_priv.h +++ b/src/emc/motion/mot_priv.h @@ -199,6 +199,16 @@ typedef struct { hal_float_t *feed_mm_per_second; /* feed mm per second*/ hal_float_t *switchkins_type; + /* Interp State Pins */ + hal_s32_t *interp_line_number; + hal_s32_t *interp_motion_type; + hal_float_t *interp_feedrate; + + /* New Geometric Metadata Pins */ + hal_float_t *interp_arc_radius; + hal_float_t *interp_arc_center_x; + hal_float_t *interp_arc_center_y; + hal_float_t *interp_straight_heading; } emcmot_hal_data_t; /*********************************************************************** diff --git a/src/emc/motion/motion.c b/src/emc/motion/motion.c index 196007388c3..ec6d998bb48 100644 --- a/src/emc/motion/motion.c +++ b/src/emc/motion/motion.c @@ -551,6 +551,17 @@ static int init_hal_io(void) CALL_CHECK(hal_pin_s32_newf(HAL_OUT, &(emcmot_hal_data->program_line), mot_comp_id, "motion.program-line")); CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->jog_is_active), mot_comp_id, "motion.jog-is-active")); + /* Standard Interp State Pins */ + CALL_CHECK(hal_pin_s32_newf(HAL_OUT, &(emcmot_hal_data->interp_line_number), mot_comp_id, "motion.interp.line-number")); + CALL_CHECK(hal_pin_s32_newf(HAL_OUT, &(emcmot_hal_data->interp_motion_type), mot_comp_id, "motion.interp.motion-type")); + CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_feedrate), mot_comp_id, "motion.interp.feedrate")); + + /* New Geometric Metadata Pins */ + CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_radius), mot_comp_id, "motion.interp.arc-radius")); + CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_center_x), mot_comp_id, "motion.interp.arc-center-x")); + CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_center_y), mot_comp_id, "motion.interp.arc-center-y")); + CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_straight_heading), mot_comp_id, "motion.interp.straight-heading")); + /* export debug parameters */ /* these can be used to view any internal variable, simply change a line in control.c:output_to_hal() and recompile */ diff --git a/src/emc/motion/state_tag.h b/src/emc/motion/state_tag.h index ff0dcfe7313..6eeade112ce 100644 --- a/src/emc/motion/state_tag.h +++ b/src/emc/motion/state_tag.h @@ -67,7 +67,7 @@ typedef enum { * WARNING: * * 1) Since these are used as array indices, they have to start at 0, - * be monotonic, and the MAX_FIELDS enum MUST be last in the list. + * be monotonic, and the MAX_FIELDS GM_FIELD_FLOAT_MAX_FIELDSenum MUST be last in the list. * * 2) If your application needs to pass state tags through NML, then * you MUST update the corresponding cms->update function for state @@ -98,6 +98,11 @@ typedef enum { GM_FIELD_FLOAT_SPEED, GM_FIELD_FLOAT_PATH_TOLERANCE, GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE, + GM_FIELD_FLOAT_FEEDRATE, + GM_FIELD_FLOAT_ARC_RADIUS, + GM_FIELD_FLOAT_ARC_CENTER_X, + GM_FIELD_FLOAT_ARC_CENTER_Y, + GM_FIELD_FLOAT_STRAIGHT_HEADING, GM_FIELD_FLOAT_MAX_FIELDS } StateFieldFloat; @@ -118,7 +123,9 @@ struct state_tag_t { float fields_float[GM_FIELD_FLOAT_MAX_FIELDS]; // Any G / M code states that doesn't pack nicely into a single bit - // These are an array mostly because it's easier to pass an + // These are an array mostly because In function ‘output_to_hal’, + + //it's easier to pass an // arbitrary-length array through NML than individual fields int fields[GM_FIELD_MAX_FIELDS]; diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index 59171b7306e..cf4f9aab450 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -5,17 +5,17 @@ */ /******************************************************************** -* Description: interp_convert.cc -* -* Derived from a work by Thomas Kramer -* -* Author: -* License: GPL Version 2 -* System: Linux -* -* Copyright (c) 2004 All rights reserved. -* -********************************************************************/ + * Description: interp_convert.cc + * + * Derived from a work by Thomas Kramer + * + * Author: + * License: GPL Version 2 + * System: Linux + * + * Copyright (c) 2004 All rights reserved. + * + ********************************************************************/ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif @@ -38,7 +38,7 @@ #include #include "units.h" -#define TOOL_INSIDE_ARC(side, turn) (((side)==CUTTER_COMP::LEFT&&(turn)>0)||((side)==CUTTER_COMP::RIGHT&&(turn)<0)) +#define TOOL_INSIDE_ARC(side, turn) (((side) == CUTTER_COMP::LEFT && (turn) > 0) || ((side) == CUTTER_COMP::RIGHT && (turn) < 0)) #define DEBUG_EMC using namespace interp_param_global; @@ -52,8 +52,10 @@ using namespace interp_param_global; // plane-agnostic, the opposite plane conversion happens in // enqueue_STRAIGHT_[FEED|TRAVERSE] when adding to the interp queue. -int Interp::comp_get_current(setup_pointer settings, double *x, double *y, double *z) { - switch(settings->plane) { +int Interp::comp_get_current(setup_pointer settings, double *x, double *y, double *z) +{ + switch (settings->plane) + { case CANON_PLANE::XY: *x = settings->current_x; *y = settings->current_y; @@ -70,8 +72,10 @@ int Interp::comp_get_current(setup_pointer settings, double *x, double *y, doubl return INTERP_OK; } -int Interp::comp_set_current(setup_pointer settings, double x, double y, double z) { - switch(settings->plane) { +int Interp::comp_set_current(setup_pointer settings, double x, double y, double z) +{ + switch (settings->plane) + { case CANON_PLANE::XY: settings->current_x = x; settings->current_y = y; @@ -88,8 +92,10 @@ int Interp::comp_set_current(setup_pointer settings, double x, double y, double return INTERP_OK; } -int Interp::comp_get_programmed(setup_pointer settings, double *x, double *y, double *z) { - switch(settings->plane) { +int Interp::comp_get_programmed(setup_pointer settings, double *x, double *y, double *z) +{ + switch (settings->plane) + { case CANON_PLANE::XY: *x = settings->program_x; *y = settings->program_y; @@ -106,8 +112,10 @@ int Interp::comp_get_programmed(setup_pointer settings, double *x, double *y, do return INTERP_OK; } -int Interp::comp_set_programmed(setup_pointer settings, double x, double y, double z) { - switch(settings->plane) { +int Interp::comp_set_programmed(setup_pointer settings, double x, double y, double z) +{ + switch (settings->plane) + { case CANON_PLANE::XY: settings->program_x = x; settings->program_y = y; @@ -127,7 +135,8 @@ int Interp::comp_set_programmed(setup_pointer settings, double x, double y, doub /* Set *result to the integer nearest to value; return TRUE if value is * within .0001 of an integer */ -static int is_near_int(int *result, double value) { +static int is_near_int(int *result, double value) +{ *result = (int)(value + .5); return fabs(*result - value) < .0001; } @@ -140,712 +149,755 @@ static int is_near_int(int *result, double value) { * Returns a rs274ngc error code, or INTERP_OK if everything is OK. * * Side effects: Generates a nurbs move and updates the position of the tool - + Reference for this code is: Lo Valvo, E., Drago, S. (2014). -An Efficient NURBS Path Generator for an Open Source CNC. +An Efficient NURBS Path Generator for an Open Source CNC. Recent Advances in Mechanical Engineering (pp.173-180). WSEAS Press. -Q=3 NICL NURBS interpolation with linear motion +Q=3 NICL NURBS interpolation with linear motion Q=2 NICC NURBS interpolation with circular motion Q=1 NICU NURBS interpolation with biarch, du=const */ -static unsigned int Q_G6_option = 0; // (NICU, NICL, NICC see publication from Lo Valvo and Drago) +static unsigned int Q_G6_option = 0; // (NICU, NICL, NICC see publication from Lo Valvo and Drago) static unsigned int nurbs_order; -static std::vector < NURBS_CONTROL_POINT > nurbs_g5_control_points; -static std::vector < NURBS_G6_CONTROL_POINT > nurbs_g6_control_points; -int ff_G6_line_counter = 0; //inizializzo il contatore +static std::vector nurbs_g5_control_points; +static std::vector nurbs_g6_control_points; +int ff_G6_line_counter = 0; // inizializzo il contatore void Interp::nurbs_reset_global_variables(void) -{ // called from open gcode file and Interp::convert_stop - Q_G6_option = 0; - ff_G6_line_counter = 0; - if (!nurbs_g5_control_points.empty()) { - nurbs_g5_control_points.clear(); - } - if (!nurbs_g6_control_points.empty()) { - nurbs_g6_control_points.clear(); - } +{ // called from open gcode file and Interp::convert_stop + Q_G6_option = 0; + ff_G6_line_counter = 0; + if (!nurbs_g5_control_points.empty()) + { + nurbs_g5_control_points.clear(); + } + if (!nurbs_g6_control_points.empty()) + { + nurbs_g6_control_points.clear(); + } } int Interp::convert_nurbs(int mode, - block_pointer block, setup_pointer settings) + block_pointer block, setup_pointer settings) { - double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, - w_end; - NURBS_CONTROL_POINT CP_G5; - NURBS_G6_CONTROL_POINT CP_G6; - - if (mode == G_5_2) { - - if (settings->plane == CANON_PLANE::XY) { - CHKS((((block->x_flag) && !(block->y_flag)) - || (!(block->x_flag) - && (block->y_flag))), - (_ - ("You must specify both X and Y coordinates for Control Points"))); - CHKS((!(block->x_flag) && !(block->y_flag) - && (block->p_number > 0) - && (!nurbs_g5_control_points.empty())), - (_ - ("Can specify P without X and Y only for the first control point"))); - } - if (settings->plane == CANON_PLANE::YZ) { - CHKS((((block->y_flag) && !(block->z_flag)) - || (!(block->y_flag) - && (block->z_flag))), - (_ - ("You must specify both Y and Z coordinates for Control Points"))); - CHKS((!(block->y_flag) && !(block->z_flag) - && (block->p_number > 0) - && (!nurbs_g5_control_points.empty())), - (_ - ("Can specify P without Y and Z only for the first control point"))); - } - if (settings->plane == CANON_PLANE::XZ) { - CHKS((((block->x_flag) && !(block->z_flag)) - || (!(block->x_flag) - && (block->z_flag))), - (_ - ("You must specify both X and Z coordinates for Control Points"))); - CHKS((!(block->x_flag) && !(block->z_flag) - && (block->p_number > 0) - && (!nurbs_g5_control_points.empty())), - (_ - ("Can specify P without X and Z only for the first control point"))); - } - - CHKS(((block->p_number <= 0) - && (!nurbs_g5_control_points.empty())), - (_ - ("Must specify positive weight P for every Control Point"))); - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { - CHKS((settings->feed_rate == 0.0), - (_("Cannot make a NURBS with 0 feedrate"))); - } - if (settings->motion_mode != mode) - nurbs_g5_control_points.clear(); - - if (nurbs_g5_control_points.empty()) { - if (settings->plane == CANON_PLANE::XY) { - CP_G5.NURBS_X = settings->current_x; - CP_G5.NURBS_Y = settings->current_y; - if (!(block->x_flag) && !(block->y_flag) - && (block->p_number > 0)) { - CP_G5.NURBS_W = block->p_number; - } else { - CP_G5.NURBS_W = 1; - } - } - if (settings->plane == CANON_PLANE::YZ) { - CP_G5.NURBS_X = settings->current_y; - CP_G5.NURBS_Y = settings->current_z; - if (!(block->y_flag) && !(block->z_flag) - && (block->p_number > 0)) { - CP_G5.NURBS_W = block->p_number; - } else { - CP_G5.NURBS_W = 1; - } - } - if (settings->plane == CANON_PLANE::XZ) { - CP_G5.NURBS_X = settings->current_z; - CP_G5.NURBS_Y = settings->current_x; - if (!(block->x_flag) && !(block->z_flag) - && (block->p_number > 0)) { - CP_G5.NURBS_W = block->p_number; - } else { - CP_G5.NURBS_W = 1; - } - } - nurbs_order = 3; - nurbs_g5_control_points.push_back(CP_G5); - } - if (block->l_number != -1 && block->l_number > 3) { - nurbs_order = block->l_number; - } - - if (settings->plane == CANON_PLANE::XY) { - if ((block->x_flag) && (block->y_flag)) { - CHP(find_ends - (block, settings, &CP_G5.NURBS_X, - &CP_G5.NURBS_Y, &end_z, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G5.NURBS_W = block->p_number; - nurbs_g5_control_points.push_back(CP_G5); - } - } - if (settings->plane == CANON_PLANE::YZ) { - if ((block->y_flag) && (block->z_flag)) { - CHP(find_ends - (block, settings, &end_x, - &CP_G5.NURBS_X, &CP_G5.NURBS_Y, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - CP_G5.NURBS_W = block->p_number; - nurbs_g5_control_points.push_back(CP_G5); - } - } - if (settings->plane == CANON_PLANE::XZ) { - if ((block->x_flag) && (block->z_flag)) { - CHP(find_ends - (block, settings, &CP_G5.NURBS_Y, - &end_y, &CP_G5.NURBS_X, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G5.NURBS_W = block->p_number; - nurbs_g5_control_points.push_back(CP_G5); - } - } + double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, + w_end; + NURBS_CONTROL_POINT CP_G5; + NURBS_G6_CONTROL_POINT CP_G6; -/* - for (long unsigned int i=0;imotion_mode = mode; - } - - else if (mode == G_5_3) { - CHKS((settings->motion_mode != G_5_2), - (_("Cannot use G5.3 without G5.2 first"))); - CHKS((nurbs_g5_control_points.size() < nurbs_order), - _ - ("You must specify a number of control points at least equal to the order L = %d"), - nurbs_order); - - if (settings->plane == CANON_PLANE::XY) { - settings->current_x = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1].NURBS_X; - settings->current_y = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1].NURBS_Y; - } - if (settings->plane == CANON_PLANE::YZ) { - settings->current_y = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1].NURBS_X; - settings->current_z = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1].NURBS_Y; - } - if (settings->plane == CANON_PLANE::XZ) { - settings->current_z = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1].NURBS_X; - settings->current_x = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1].NURBS_Y; - } -/* - for (long unsigned int i=0;iline_number, nurbs_g5_control_points, - nurbs_order, settings->plane); - nurbs_g5_control_points.clear(); - settings->motion_mode = -1; - } -// - if (mode == G_6_2) { - // jjf additional for Q (as replacement for #1 in the original code from Lo Valvo) - // Q=3 NICL NURBS interpolation with linear motion - // Q=2 NICC NURBS interpolation with circular motion - // Q=1 NICU NURBS interpolation with biarch, du=const - - CHKS(((settings->plane != CANON_PLANE::XY) - && (settings->plane != CANON_PLANE::YZ) - && (settings->plane != CANON_PLANE::XZ)), - (_ - ("one plane must be selected for nurbs: XY, YZ, ZX"))); - - if (settings->plane == CANON_PLANE::XY) { - CHKS((((block->x_flag) && !(block->y_flag)) - || (!(block->x_flag) - && (block->y_flag))), - (_ - ("You must specify both X and Y coordinates for Control Points"))); - } - if (settings->plane == CANON_PLANE::YZ) { - CHKS((((block->y_flag) && !(block->z_flag)) - || (!(block->y_flag) - && (block->z_flag))), - (_ - ("You must specify both Y and Z coordinates for Control Points"))); - } - if (settings->plane == CANON_PLANE::XZ) { - CHKS((((block->x_flag) && !(block->z_flag)) - || (!(block->x_flag) - && (block->z_flag))), - (_ - ("You must specify both X and Z coordinates for Control Points"))); - } - - CHKS(((!block->p_flag) - && (nurbs_g6_control_points.empty())), - (_ - ("Program the nurbs order P in the first block of instruction"))); - int p; - if (block->p_flag) { - CHKS((!is_near_int(&p, block->p_number)), - _("nurbs order P number is not an integer")); - } - - CHKS(((block->q_number <= 0) - && (nurbs_g6_control_points.empty())), - (_ - ("Program the nurbs Q value (1,2,3) in the first block of nurbs instruction"))); - int q; - if (block->q_flag) { - CHKS((block->q_number < 1.0) - || (block->q_number > 3.0), - (_("nurbs Q value not in range 1 to 3"))); - CHKS((!is_near_int(&q, block->q_number)), - _("nurbs Q number is not an integer")); - } - - CHKS(((block->r_number <= 0) - && (!nurbs_g6_control_points.empty())), - (_ - ("Must specify positive nurbs weight R for every Control Point"))); - - CHKS(((block->k_number < 0) - && (!nurbs_g6_control_points.empty())), - (_ - ("Must specify nurbs K number for every Control Point"))); - int k; - if (block->k_flag) { - CHKS((!is_near_int(&k, block->k_number)), - _("nurbs K number is not an integer")); - } - - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { - CHKS((settings->feed_rate == 0.0), - (_("Cannot make a nurbs with 0 feedrate"))); - } - - if (block->p_number != -1) { - nurbs_order = block->p_number; - } - - if (block->k_flag) { - CP_G6.NURBS_K = block->k_number; - } - // PER DEFINIRE UNO FRA I TRE MODI DI INTERPOLARE (NURBS) - // EINE DER DREI WEGE VON INTERPOLATION (NURBS) AUSWAEHLERN - // TO DEFINE ONE OF THE THREE WAYS OF INTERPOLAR (NURBS) - if (ff_G6_line_counter == 0) { - Q_G6_option = block->q_number; // Q_G6_option=1...3 (NICU, NICL, NICC see publication from Lo Valvo and Drago) - } - - if (settings->plane == CANON_PLANE::XY) { - if (((block->x_flag) && (block->y_flag)) - || block->k_flag) { - CHP(find_ends - (block, settings, &CP_G6.NURBS_X, - &CP_G6.NURBS_Y, &end_z, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G6.NURBS_R = block->r_number; - nurbs_g6_control_points.push_back(CP_G6); - } - } - if (settings->plane == CANON_PLANE::YZ) { - if (((block->y_flag) && (block->z_flag)) - || block->k_flag) { - CHP(find_ends - (block, settings, &end_x, - &CP_G6.NURBS_X, &CP_G6.NURBS_Y, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - CP_G6.NURBS_R = block->r_number; - nurbs_g6_control_points.push_back(CP_G6); - } - } - if (settings->plane == CANON_PLANE::XZ) { - if (((block->x_flag) && (block->z_flag)) - || block->k_flag) { - CHP(find_ends - (block, settings, &CP_G6.NURBS_Y, - &end_z, &CP_G6.NURBS_X, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G6.NURBS_R = block->r_number; - nurbs_g6_control_points.push_back(CP_G6); - } - } - - settings->motion_mode = mode; - - ff_G6_line_counter++; - if (nurbs_g6_control_points.size() > nurbs_order) { - if (nurbs_g6_control_points - [ff_G6_line_counter - 1].NURBS_K == - nurbs_g6_control_points[ff_G6_line_counter - - nurbs_order + 1 - - 1].NURBS_K) { - CHKS((nurbs_g6_control_points.size() < - nurbs_order), - _ - ("You must specify a number of control points at least equal to the order P = %d"), - nurbs_order); - settings->current_x = - nurbs_g6_control_points - [nurbs_g6_control_points.size() - - 1].NURBS_X; - settings->current_y = - nurbs_g6_control_points - [nurbs_g6_control_points.size() - - 1].NURBS_Y; -/* - for (long unsigned int i=0;iline_number, - nurbs_g6_control_points, - nurbs_order, - settings->feed_rate, - Q_G6_option, - settings->plane); - nurbs_g6_control_points.clear(); - ff_G6_line_counter = 0; - settings->motion_mode = -1; - } - } - } -// - if (mode == G_6_3) // jjf this is missing from Lo Valvo code! not used there and here! - { - printf("mode == G_6_3 not used (%s %d)\n", __FILE__, - __LINE__); - } - return INTERP_OK; -} + if (mode == G_5_2) + { + + if (settings->plane == CANON_PLANE::XY) + { + CHKS((((block->x_flag) && !(block->y_flag)) || (!(block->x_flag) && (block->y_flag))), + (_("You must specify both X and Y coordinates for Control Points"))); + CHKS((!(block->x_flag) && !(block->y_flag) && (block->p_number > 0) && (!nurbs_g5_control_points.empty())), + (_("Can specify P without X and Y only for the first control point"))); + } + if (settings->plane == CANON_PLANE::YZ) + { + CHKS((((block->y_flag) && !(block->z_flag)) || (!(block->y_flag) && (block->z_flag))), + (_("You must specify both Y and Z coordinates for Control Points"))); + CHKS((!(block->y_flag) && !(block->z_flag) && (block->p_number > 0) && (!nurbs_g5_control_points.empty())), + (_("Can specify P without Y and Z only for the first control point"))); + } + if (settings->plane == CANON_PLANE::XZ) + { + CHKS((((block->x_flag) && !(block->z_flag)) || (!(block->x_flag) && (block->z_flag))), + (_("You must specify both X and Z coordinates for Control Points"))); + CHKS((!(block->x_flag) && !(block->z_flag) && (block->p_number > 0) && (!nurbs_g5_control_points.empty())), + (_("Can specify P without X and Z only for the first control point"))); + } + + CHKS(((block->p_number <= 0) && (!nurbs_g5_control_points.empty())), + (_("Must specify positive weight P for every Control Point"))); + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) + { + CHKS((settings->feed_rate == 0.0), + (_("Cannot make a NURBS with 0 feedrate"))); + } + if (settings->motion_mode != mode) + nurbs_g5_control_points.clear(); + + if (nurbs_g5_control_points.empty()) + { + if (settings->plane == CANON_PLANE::XY) + { + CP_G5.NURBS_X = settings->current_x; + CP_G5.NURBS_Y = settings->current_y; + if (!(block->x_flag) && !(block->y_flag) && (block->p_number > 0)) + { + CP_G5.NURBS_W = block->p_number; + } + else + { + CP_G5.NURBS_W = 1; + } + } + if (settings->plane == CANON_PLANE::YZ) + { + CP_G5.NURBS_X = settings->current_y; + CP_G5.NURBS_Y = settings->current_z; + if (!(block->y_flag) && !(block->z_flag) && (block->p_number > 0)) + { + CP_G5.NURBS_W = block->p_number; + } + else + { + CP_G5.NURBS_W = 1; + } + } + if (settings->plane == CANON_PLANE::XZ) + { + CP_G5.NURBS_X = settings->current_z; + CP_G5.NURBS_Y = settings->current_x; + if (!(block->x_flag) && !(block->z_flag) && (block->p_number > 0)) + { + CP_G5.NURBS_W = block->p_number; + } + else + { + CP_G5.NURBS_W = 1; + } + } + nurbs_order = 3; + nurbs_g5_control_points.push_back(CP_G5); + } + if (block->l_number != -1 && block->l_number > 3) + { + nurbs_order = block->l_number; + } - /****************************************************************************/ - /*! convert_spline - * - * Returned value: int - * Returns a rs274ngc error code, or INTERP_OK if everything is OK. - * - * Side effects: Generates a spline move and updates the position of the tool - */ -int Interp::convert_spline(int mode, block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) -{ //!< pointer to machine settings - double x1, y1, z1, x2, y2, z2, x3, y3, z3; - double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, - w_end; - NURBS_CONTROL_POINT cp; - - x1 = 0; - y1 = 0; - z1 = 0; //to avoid compiler warning "may be used uninitialized" - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), _("Cannot convert spline with cutter radius compensation")); // XXX - - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { - CHKS((settings->feed_rate == 0.0), - NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); - } else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) { - CHKS((!block->f_flag), - NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); - } - - CHKS((block->a_flag || block->b_flag - || block->c_flag), - _("Splines may not have motion in A, B, or C")); - - if ((mode == G_5_1) || (mode == G_6_1)) { - printf("mode == G_5_1 or G_6_1 (%s %d)\n", __FILE__, - __LINE__); - CHKS(!block->i_flag - || !block->j_flag, - _("Must specify both I and J with G5.1 or G6.1")); - - if (settings->plane == CANON_PLANE::XY) { - x1 = settings->current_x + block->i_number; - y1 = settings->current_y + block->j_number; - CHP(find_ends - (block, settings, &x2, &y2, &end_z, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, &w_end)); - printf("find_ends x2: %8.4f y2: %8.4f (%s %d)\n", - x2, y2, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::YZ) { - y1 = settings->current_y + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends - (block, settings, &end_x, &y2, &z2, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, &w_end)); - printf("find_ends y2: %8.4f z2: %8.4f (%s %d)\n", - y2, z2, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::XZ) { - x1 = settings->current_x + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends - (block, settings, &x2, &end_y, &z2, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, &w_end)); - printf("find_ends x2: %8.4f z2: %8.4f (%s %d)\n", - x2, z2, __FILE__, __LINE__); - } - - cp.NURBS_W = 1; - - if (settings->plane == CANON_PLANE::XY) { - cp.NURBS_X = settings->current_x; - cp.NURBS_Y = settings->current_y; - } - if (settings->plane == CANON_PLANE::YZ) { - cp.NURBS_X = settings->current_y; - cp.NURBS_Y = settings->current_z; - } - if (settings->plane == CANON_PLANE::XZ) { - cp.NURBS_X = settings->current_z; - cp.NURBS_Y = settings->current_x; - } - nurbs_g5_control_points.push_back(cp); - - if (settings->plane == CANON_PLANE::XY) { - cp.NURBS_X = x1; - cp.NURBS_Y = y1; - } - if (settings->plane == CANON_PLANE::YZ) { - cp.NURBS_X = y1; - cp.NURBS_Y = z1; - } - if (settings->plane == CANON_PLANE::XZ) { - cp.NURBS_X = z1; - cp.NURBS_Y = x1; - } - nurbs_g5_control_points.push_back(cp); - - if (settings->plane == CANON_PLANE::XY) { - cp.NURBS_X = x2; - cp.NURBS_Y = y2; - } - if (settings->plane == CANON_PLANE::YZ) { - cp.NURBS_X = y2; - cp.NURBS_Y = z2; - } - if (settings->plane == CANON_PLANE::XZ) { - cp.NURBS_X = z2; - cp.NURBS_Y = x2; - } - nurbs_g5_control_points.push_back(cp); - - for (long unsigned int i = 0; - i < nurbs_g5_control_points.size(); i++) { - printf("X %8.4f, Y %8.4f W %8.4f\n", - nurbs_g5_control_points[i].NURBS_X, - nurbs_g5_control_points[i].NURBS_Y, - nurbs_g5_control_points[i].NURBS_W); - } - printf - ("*----------------------------------------- (%s %d)\n", - __FILE__, __LINE__); - - NURBS_G5_FEED(block->line_number, nurbs_g5_control_points, - 3, settings->plane); - nurbs_g5_control_points.clear(); - - if (settings->plane == CANON_PLANE::XY) { - settings->current_x = x2; - settings->current_y = y2; - } - if (settings->plane == CANON_PLANE::YZ) { - settings->current_y = y2; - settings->current_z = z2; - } - if (settings->plane == CANON_PLANE::XZ) { - settings->current_x = x2; - settings->current_z = z2; - } - } else { // !(mode == G_5_1) - if (!block->i_flag || !block->j_flag) { - CHKS(block->i_flag - || block->j_flag, - _("Must specify both I and J, or neither")); - if (settings->plane == CANON_PLANE::XY) { - x1 = settings->current_x + - settings->cycle_i; - y1 = settings->current_y + - settings->cycle_j; - } - if (settings->plane == CANON_PLANE::YZ) { - y1 = settings->current_y + - settings->cycle_i; - z1 = settings->current_z + - settings->cycle_j; - } - if (settings->plane == CANON_PLANE::XZ) { - x1 = settings->current_x + - settings->cycle_i; - z1 = settings->current_z + - settings->cycle_j; - } - } else { - if (settings->plane == CANON_PLANE::XY) { - x1 = settings->current_x + block->i_number; - y1 = settings->current_y + block->j_number; - CHP(find_ends - (block, settings, &x3, &y3, &end_z, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - printf("x3: %8.4f y3: %8.4f (%s %d)\n", x3, - y3, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::YZ) { - y1 = settings->current_y + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends - (block, settings, &end_x, &y3, &z3, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - printf("y3: %8.4f z3: %8.4f (%s %d)\n", y3, - z3, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::XZ) { - x1 = settings->current_x + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends - (block, settings, &x3, &end_y, &z3, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - printf("x3: %8.4f z3: %8.4f (%s %d)\n", x3, - z3, __FILE__, __LINE__); - } - } - - CHKS(!block->p_flag - || !block->q_flag, - _("Must specify both P and Q with G5")); - if (settings->plane == CANON_PLANE::XY) { - x2 = x3 + block->p_number; - y2 = y3 + block->q_number; - printf("x2: %8.4f y2: %8.4f (%s %d)\n", x2, y2, - __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::YZ) { - y2 = y3 + block->p_number; - z2 = z3 + block->q_number; - printf("y2: %8.4f z2: %8.4f (%s %d)\n", y2, z2, - __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::XZ) { - z2 = z3 + block->p_number; - x2 = x3 + block->q_number; - printf("x2: %8.4f z2: %8.4f (%s %d)\n", x2, z2, - __FILE__, __LINE__); - } - - cp.NURBS_W = 1; - if (settings->plane == CANON_PLANE::XY) { - cp.NURBS_X = settings->current_x; - cp.NURBS_Y = settings->current_y; - } - if (settings->plane == CANON_PLANE::YZ) { - cp.NURBS_X = settings->current_y; - cp.NURBS_Y = settings->current_z; - } - if (settings->plane == CANON_PLANE::XZ) { - cp.NURBS_X = settings->current_z; - cp.NURBS_Y = settings->current_x; - } - nurbs_g5_control_points.push_back(cp); - if (settings->plane == CANON_PLANE::XY) { - cp.NURBS_X = x1; - cp.NURBS_Y = y1; - } - if (settings->plane == CANON_PLANE::YZ) { - cp.NURBS_X = y1; - cp.NURBS_Y = z1; - } - if (settings->plane == CANON_PLANE::XZ) { - cp.NURBS_X = z1; - cp.NURBS_Y = x1; - } - nurbs_g5_control_points.push_back(cp); - if (settings->plane == CANON_PLANE::XY) { - cp.NURBS_X = x2; - cp.NURBS_Y = y2; - } - if (settings->plane == CANON_PLANE::YZ) { - cp.NURBS_X = y2; - cp.NURBS_Y = z2; - } - if (settings->plane == CANON_PLANE::XZ) { - cp.NURBS_X = z2; - cp.NURBS_Y = x2; - } - nurbs_g5_control_points.push_back(cp); - if (settings->plane == CANON_PLANE::XY) { - cp.NURBS_X = x3; - cp.NURBS_Y = y3; - } - if (settings->plane == CANON_PLANE::YZ) { - cp.NURBS_X = y3; - cp.NURBS_Y = z3; - } - if (settings->plane == CANON_PLANE::XZ) { - cp.NURBS_X = z3; - cp.NURBS_Y = x3; - } - nurbs_g5_control_points.push_back(cp); - -/* - for (long unsigned int i=0;iplane == CANON_PLANE::XY) + { + if ((block->x_flag) && (block->y_flag)) + { + CHP(find_ends(block, settings, &CP_G5.NURBS_X, + &CP_G5.NURBS_Y, &end_z, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G5.NURBS_W = block->p_number; + nurbs_g5_control_points.push_back(CP_G5); + } + } + if (settings->plane == CANON_PLANE::YZ) + { + if ((block->y_flag) && (block->z_flag)) + { + CHP(find_ends(block, settings, &end_x, + &CP_G5.NURBS_X, &CP_G5.NURBS_Y, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + CP_G5.NURBS_W = block->p_number; + nurbs_g5_control_points.push_back(CP_G5); + } + } + if (settings->plane == CANON_PLANE::XZ) + { + if ((block->x_flag) && (block->z_flag)) + { + CHP(find_ends(block, settings, &CP_G5.NURBS_Y, + &end_y, &CP_G5.NURBS_X, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G5.NURBS_W = block->p_number; + nurbs_g5_control_points.push_back(CP_G5); + } + } + + /* + for (long unsigned int i=0;imotion_mode = mode; + } + + else if (mode == G_5_3) + { + CHKS((settings->motion_mode != G_5_2), + (_("Cannot use G5.3 without G5.2 first"))); + CHKS((nurbs_g5_control_points.size() < nurbs_order), + _("You must specify a number of control points at least equal to the order L = %d"), + nurbs_order); + + if (settings->plane == CANON_PLANE::XY) + { + settings->current_x = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1] + .NURBS_X; + settings->current_y = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1] + .NURBS_Y; + } + if (settings->plane == CANON_PLANE::YZ) + { + settings->current_y = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1] + .NURBS_X; + settings->current_z = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1] + .NURBS_Y; + } + if (settings->plane == CANON_PLANE::XZ) + { + settings->current_z = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1] + .NURBS_X; + settings->current_x = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1] + .NURBS_Y; + } + /* + for (long unsigned int i=0;iline_number, nurbs_g5_control_points, + nurbs_order, settings->plane); + nurbs_g5_control_points.clear(); + settings->motion_mode = -1; + } + // + if (mode == G_6_2) + { + // jjf additional for Q (as replacement for #1 in the original code from Lo Valvo) + // Q=3 NICL NURBS interpolation with linear motion + // Q=2 NICC NURBS interpolation with circular motion + // Q=1 NICU NURBS interpolation with biarch, du=const + + CHKS(((settings->plane != CANON_PLANE::XY) && (settings->plane != CANON_PLANE::YZ) && (settings->plane != CANON_PLANE::XZ)), + (_("one plane must be selected for nurbs: XY, YZ, ZX"))); + + if (settings->plane == CANON_PLANE::XY) + { + CHKS((((block->x_flag) && !(block->y_flag)) || (!(block->x_flag) && (block->y_flag))), + (_("You must specify both X and Y coordinates for Control Points"))); } - printf("*----------------------------------------- (%s %d)\n", __FILE__,__LINE__); -*/ - NURBS_G5_FEED(block->line_number, nurbs_g5_control_points, - 4, settings->plane); - nurbs_g5_control_points.clear(); - - settings->cycle_i = -block->p_number; - settings->cycle_j = -block->q_number; - if (settings->plane == CANON_PLANE::XY) { - settings->current_x = x3; - settings->current_y = y3; - } - if (settings->plane == CANON_PLANE::YZ) { - settings->current_y = y3; - settings->current_z = z3; - } - if (settings->plane == CANON_PLANE::XZ) { - settings->current_x = x3; - settings->current_z = z3; - } - } - return INTERP_OK; + if (settings->plane == CANON_PLANE::YZ) + { + CHKS((((block->y_flag) && !(block->z_flag)) || (!(block->y_flag) && (block->z_flag))), + (_("You must specify both Y and Z coordinates for Control Points"))); + } + if (settings->plane == CANON_PLANE::XZ) + { + CHKS((((block->x_flag) && !(block->z_flag)) || (!(block->x_flag) && (block->z_flag))), + (_("You must specify both X and Z coordinates for Control Points"))); + } + + CHKS(((!block->p_flag) && (nurbs_g6_control_points.empty())), + (_("Program the nurbs order P in the first block of instruction"))); + int p; + if (block->p_flag) + { + CHKS((!is_near_int(&p, block->p_number)), + _("nurbs order P number is not an integer")); + } + + CHKS(((block->q_number <= 0) && (nurbs_g6_control_points.empty())), + (_("Program the nurbs Q value (1,2,3) in the first block of nurbs instruction"))); + int q; + if (block->q_flag) + { + CHKS((block->q_number < 1.0) || (block->q_number > 3.0), + (_("nurbs Q value not in range 1 to 3"))); + CHKS((!is_near_int(&q, block->q_number)), + _("nurbs Q number is not an integer")); + } + + CHKS(((block->r_number <= 0) && (!nurbs_g6_control_points.empty())), + (_("Must specify positive nurbs weight R for every Control Point"))); + + CHKS(((block->k_number < 0) && (!nurbs_g6_control_points.empty())), + (_("Must specify nurbs K number for every Control Point"))); + int k; + if (block->k_flag) + { + CHKS((!is_near_int(&k, block->k_number)), + _("nurbs K number is not an integer")); + } + + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) + { + CHKS((settings->feed_rate == 0.0), + (_("Cannot make a nurbs with 0 feedrate"))); + } + + if (block->p_number != -1) + { + nurbs_order = block->p_number; + } + + if (block->k_flag) + { + CP_G6.NURBS_K = block->k_number; + } + // PER DEFINIRE UNO FRA I TRE MODI DI INTERPOLARE (NURBS) + // EINE DER DREI WEGE VON INTERPOLATION (NURBS) AUSWAEHLERN + // TO DEFINE ONE OF THE THREE WAYS OF INTERPOLAR (NURBS) + if (ff_G6_line_counter == 0) + { + Q_G6_option = block->q_number; // Q_G6_option=1...3 (NICU, NICL, NICC see publication from Lo Valvo and Drago) + } + + if (settings->plane == CANON_PLANE::XY) + { + if (((block->x_flag) && (block->y_flag)) || block->k_flag) + { + CHP(find_ends(block, settings, &CP_G6.NURBS_X, + &CP_G6.NURBS_Y, &end_z, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G6.NURBS_R = block->r_number; + nurbs_g6_control_points.push_back(CP_G6); + } + } + if (settings->plane == CANON_PLANE::YZ) + { + if (((block->y_flag) && (block->z_flag)) || block->k_flag) + { + CHP(find_ends(block, settings, &end_x, + &CP_G6.NURBS_X, &CP_G6.NURBS_Y, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + CP_G6.NURBS_R = block->r_number; + nurbs_g6_control_points.push_back(CP_G6); + } + } + if (settings->plane == CANON_PLANE::XZ) + { + if (((block->x_flag) && (block->z_flag)) || block->k_flag) + { + CHP(find_ends(block, settings, &CP_G6.NURBS_Y, + &end_z, &CP_G6.NURBS_X, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G6.NURBS_R = block->r_number; + nurbs_g6_control_points.push_back(CP_G6); + } + } + + settings->motion_mode = mode; + + ff_G6_line_counter++; + if (nurbs_g6_control_points.size() > nurbs_order) + { + if (nurbs_g6_control_points + [ff_G6_line_counter - 1] + .NURBS_K == + nurbs_g6_control_points[ff_G6_line_counter - + nurbs_order + 1 - + 1] + .NURBS_K) + { + CHKS((nurbs_g6_control_points.size() < + nurbs_order), + _("You must specify a number of control points at least equal to the order P = %d"), + nurbs_order); + settings->current_x = + nurbs_g6_control_points + [nurbs_g6_control_points.size() - + 1] + .NURBS_X; + settings->current_y = + nurbs_g6_control_points + [nurbs_g6_control_points.size() - + 1] + .NURBS_Y; + /* + for (long unsigned int i=0;iline_number, + nurbs_g6_control_points, + nurbs_order, + settings->feed_rate, + Q_G6_option, + settings->plane); + nurbs_g6_control_points.clear(); + ff_G6_line_counter = 0; + settings->motion_mode = -1; + } + } + } + // + if (mode == G_6_3) // jjf this is missing from Lo Valvo code! not used there and here! + { + printf("mode == G_6_3 not used (%s %d)\n", __FILE__, + __LINE__); + } + return INTERP_OK; +} + +/****************************************************************************/ +/*! convert_spline + * + * Returned value: int + * Returns a rs274ngc error code, or INTERP_OK if everything is OK. + * + * Side effects: Generates a spline move and updates the position of the tool + */ +int Interp::convert_spline(int mode, block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) +{ //!< pointer to machine settings + double x1, y1, z1, x2, y2, z2, x3, y3, z3; + double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, + w_end; + NURBS_CONTROL_POINT cp; + + x1 = 0; + y1 = 0; + z1 = 0; // to avoid compiler warning "may be used uninitialized" + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), _("Cannot convert spline with cutter radius compensation")); // XXX + + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) + { + CHKS((settings->feed_rate == 0.0), + NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); + } + else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) + { + CHKS((!block->f_flag), + NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); + } + + CHKS((block->a_flag || block->b_flag || block->c_flag), + _("Splines may not have motion in A, B, or C")); + + if ((mode == G_5_1) || (mode == G_6_1)) + { + printf("mode == G_5_1 or G_6_1 (%s %d)\n", __FILE__, + __LINE__); + CHKS(!block->i_flag || !block->j_flag, + _("Must specify both I and J with G5.1 or G6.1")); + + if (settings->plane == CANON_PLANE::XY) + { + x1 = settings->current_x + block->i_number; + y1 = settings->current_y + block->j_number; + CHP(find_ends(block, settings, &x2, &y2, &end_z, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, &w_end)); + printf("find_ends x2: %8.4f y2: %8.4f (%s %d)\n", + x2, y2, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::YZ) + { + y1 = settings->current_y + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends(block, settings, &end_x, &y2, &z2, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, &w_end)); + printf("find_ends y2: %8.4f z2: %8.4f (%s %d)\n", + y2, z2, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::XZ) + { + x1 = settings->current_x + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends(block, settings, &x2, &end_y, &z2, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, &w_end)); + printf("find_ends x2: %8.4f z2: %8.4f (%s %d)\n", + x2, z2, __FILE__, __LINE__); + } + + cp.NURBS_W = 1; + + if (settings->plane == CANON_PLANE::XY) + { + cp.NURBS_X = settings->current_x; + cp.NURBS_Y = settings->current_y; + } + if (settings->plane == CANON_PLANE::YZ) + { + cp.NURBS_X = settings->current_y; + cp.NURBS_Y = settings->current_z; + } + if (settings->plane == CANON_PLANE::XZ) + { + cp.NURBS_X = settings->current_z; + cp.NURBS_Y = settings->current_x; + } + nurbs_g5_control_points.push_back(cp); + + if (settings->plane == CANON_PLANE::XY) + { + cp.NURBS_X = x1; + cp.NURBS_Y = y1; + } + if (settings->plane == CANON_PLANE::YZ) + { + cp.NURBS_X = y1; + cp.NURBS_Y = z1; + } + if (settings->plane == CANON_PLANE::XZ) + { + cp.NURBS_X = z1; + cp.NURBS_Y = x1; + } + nurbs_g5_control_points.push_back(cp); + + if (settings->plane == CANON_PLANE::XY) + { + cp.NURBS_X = x2; + cp.NURBS_Y = y2; + } + if (settings->plane == CANON_PLANE::YZ) + { + cp.NURBS_X = y2; + cp.NURBS_Y = z2; + } + if (settings->plane == CANON_PLANE::XZ) + { + cp.NURBS_X = z2; + cp.NURBS_Y = x2; + } + nurbs_g5_control_points.push_back(cp); + + for (long unsigned int i = 0; + i < nurbs_g5_control_points.size(); i++) + { + printf("X %8.4f, Y %8.4f W %8.4f\n", + nurbs_g5_control_points[i].NURBS_X, + nurbs_g5_control_points[i].NURBS_Y, + nurbs_g5_control_points[i].NURBS_W); + } + printf("*----------------------------------------- (%s %d)\n", + __FILE__, __LINE__); + + NURBS_G5_FEED(block->line_number, nurbs_g5_control_points, + 3, settings->plane); + nurbs_g5_control_points.clear(); + + if (settings->plane == CANON_PLANE::XY) + { + settings->current_x = x2; + settings->current_y = y2; + } + if (settings->plane == CANON_PLANE::YZ) + { + settings->current_y = y2; + settings->current_z = z2; + } + if (settings->plane == CANON_PLANE::XZ) + { + settings->current_x = x2; + settings->current_z = z2; + } + } + else + { // !(mode == G_5_1) + if (!block->i_flag || !block->j_flag) + { + CHKS(block->i_flag || block->j_flag, + _("Must specify both I and J, or neither")); + if (settings->plane == CANON_PLANE::XY) + { + x1 = settings->current_x + + settings->cycle_i; + y1 = settings->current_y + + settings->cycle_j; + } + if (settings->plane == CANON_PLANE::YZ) + { + y1 = settings->current_y + + settings->cycle_i; + z1 = settings->current_z + + settings->cycle_j; + } + if (settings->plane == CANON_PLANE::XZ) + { + x1 = settings->current_x + + settings->cycle_i; + z1 = settings->current_z + + settings->cycle_j; + } + } + else + { + if (settings->plane == CANON_PLANE::XY) + { + x1 = settings->current_x + block->i_number; + y1 = settings->current_y + block->j_number; + CHP(find_ends(block, settings, &x3, &y3, &end_z, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + printf("x3: %8.4f y3: %8.4f (%s %d)\n", x3, + y3, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::YZ) + { + y1 = settings->current_y + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends(block, settings, &end_x, &y3, &z3, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + printf("y3: %8.4f z3: %8.4f (%s %d)\n", y3, + z3, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::XZ) + { + x1 = settings->current_x + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends(block, settings, &x3, &end_y, &z3, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + printf("x3: %8.4f z3: %8.4f (%s %d)\n", x3, + z3, __FILE__, __LINE__); + } + } + + CHKS(!block->p_flag || !block->q_flag, + _("Must specify both P and Q with G5")); + if (settings->plane == CANON_PLANE::XY) + { + x2 = x3 + block->p_number; + y2 = y3 + block->q_number; + printf("x2: %8.4f y2: %8.4f (%s %d)\n", x2, y2, + __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::YZ) + { + y2 = y3 + block->p_number; + z2 = z3 + block->q_number; + printf("y2: %8.4f z2: %8.4f (%s %d)\n", y2, z2, + __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::XZ) + { + z2 = z3 + block->p_number; + x2 = x3 + block->q_number; + printf("x2: %8.4f z2: %8.4f (%s %d)\n", x2, z2, + __FILE__, __LINE__); + } + + cp.NURBS_W = 1; + if (settings->plane == CANON_PLANE::XY) + { + cp.NURBS_X = settings->current_x; + cp.NURBS_Y = settings->current_y; + } + if (settings->plane == CANON_PLANE::YZ) + { + cp.NURBS_X = settings->current_y; + cp.NURBS_Y = settings->current_z; + } + if (settings->plane == CANON_PLANE::XZ) + { + cp.NURBS_X = settings->current_z; + cp.NURBS_Y = settings->current_x; + } + nurbs_g5_control_points.push_back(cp); + if (settings->plane == CANON_PLANE::XY) + { + cp.NURBS_X = x1; + cp.NURBS_Y = y1; + } + if (settings->plane == CANON_PLANE::YZ) + { + cp.NURBS_X = y1; + cp.NURBS_Y = z1; + } + if (settings->plane == CANON_PLANE::XZ) + { + cp.NURBS_X = z1; + cp.NURBS_Y = x1; + } + nurbs_g5_control_points.push_back(cp); + if (settings->plane == CANON_PLANE::XY) + { + cp.NURBS_X = x2; + cp.NURBS_Y = y2; + } + if (settings->plane == CANON_PLANE::YZ) + { + cp.NURBS_X = y2; + cp.NURBS_Y = z2; + } + if (settings->plane == CANON_PLANE::XZ) + { + cp.NURBS_X = z2; + cp.NURBS_Y = x2; + } + nurbs_g5_control_points.push_back(cp); + if (settings->plane == CANON_PLANE::XY) + { + cp.NURBS_X = x3; + cp.NURBS_Y = y3; + } + if (settings->plane == CANON_PLANE::YZ) + { + cp.NURBS_X = y3; + cp.NURBS_Y = z3; + } + if (settings->plane == CANON_PLANE::XZ) + { + cp.NURBS_X = z3; + cp.NURBS_Y = x3; + } + nurbs_g5_control_points.push_back(cp); + + /* + for (long unsigned int i=0;iline_number, nurbs_g5_control_points, + 4, settings->plane); + nurbs_g5_control_points.clear(); + + settings->cycle_i = -block->p_number; + settings->cycle_j = -block->q_number; + if (settings->plane == CANON_PLANE::XY) + { + settings->current_x = x3; + settings->current_y = y3; + } + if (settings->plane == CANON_PLANE::YZ) + { + settings->current_y = y3; + settings->current_z = z3; + } + if (settings->plane == CANON_PLANE::XZ) + { + settings->current_x = x3; + settings->current_z = z3; + } + } + return INTERP_OK; } /****************************************************************************/ @@ -910,181 +962,242 @@ new longer or shorter original arc are taken at this feed. */ -int Interp::convert_arc(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_arc(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - int status; - int first; /* flag set true if this is first move after comp true */ - int ijk_flag; /* flag set true if any of i,j,k present in NC code */ - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end, v_end, w_end; - - CHKS((settings->arc_not_allowed), (_("The move just after exiting cutter compensation mode must be straight, not an arc"))); - - ijk_flag = block->i_flag || block->j_flag || block->k_flag; - first = settings->cutter_comp_firstmove; - - CHKS((settings->plane == CANON_PLANE::UV - || settings->plane == CANON_PLANE::VW - || settings->plane == CANON_PLANE::UW), - _("Cannot do an arc in planes G17.1, G18.1, or G19.1")); - CHKS(((!block->r_flag) && (!ijk_flag)), - NCE_R_I_J_K_WORDS_ALL_MISSING_FOR_ARC); - CHKS(((block->r_flag) && (ijk_flag)), - NCE_MIXED_RADIUS_IJK_FORMAT_FOR_ARC); - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { - CHKS((settings->feed_rate == 0.0), - NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); - } else if(settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) { - CHKS((settings->feed_rate == 0.0), - NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); - CHKS((settings->speed[settings->active_spindle] == 0.0), - _("Cannot feed with zero spindle speed in feed per rev mode")); - } else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) { - CHKS((!block->f_flag), - NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); - } - - if (ijk_flag) { - if (settings->plane == CANON_PLANE::XY) { - CHKS((block->k_flag), NCE_K_WORD_GIVEN_FOR_ARC_IN_XY_PLANE); - if (!block->i_flag) { /* i or j flag on to get here */ - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { - ERS(_("%c word missing in absolute center arc"), 'I'); - } else { - block->i_number = 0.0; - } - } else if (!block->j_flag) { - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { - ERS(_("%c word missing in absolute center arc"), 'J'); - } else { - block->j_number = 0.0; - } - } - } else if (settings->plane == CANON_PLANE::YZ) { - CHKS((block->i_flag), NCE_I_WORD_GIVEN_FOR_ARC_IN_YZ_PLANE); - if (!block->j_flag) { /* j or k flag on to get here */ - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { - ERS(_("%c word missing in absolute center arc"), 'J'); - } else { - block->j_number = 0.0; - } - } else if (!block->k_flag) { - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { - ERS(_("%c word missing in absolute center arc"), 'K'); - } else { - block->k_number = 0.0; - } - } - } else if (settings->plane == CANON_PLANE::XZ) { - CHKS((block->j_flag), NCE_J_WORD_GIVEN_FOR_ARC_IN_XZ_PLANE); - if (!block->i_flag) { /* i or k flag on to get here */ - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { - ERS(_("%c word missing in absolute center arc"), 'I'); - } else { - block->i_number = 0.0; - } - } else if (!block->k_flag) { - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { - ERS(_("%c word missing in absolute center arc"), 'K'); - } else { - block->k_number = 0.0; - } - } - } else { - ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); - } - } else { - // in R format, we need some XYZ words specified because a full circle is not allowed. - if (settings->plane == CANON_PLANE::XY) { - CHKS(((!block->x_flag) && (!block->y_flag) && (!block->radius_flag) && (!block->theta_flag)), - NCE_X_AND_Y_WORDS_MISSING_FOR_ARC_IN_XY_PLANE); - } else if (settings->plane == CANON_PLANE::YZ) { - CHKS(((!block->y_flag) && (!block->z_flag)), - NCE_Y_AND_Z_WORDS_MISSING_FOR_ARC_IN_YZ_PLANE); - } else if (settings->plane == CANON_PLANE::XZ) { - CHKS(((!block->x_flag) && (!block->z_flag)), - NCE_X_AND_Z_WORDS_MISSING_FOR_ARC_IN_XZ_PLANE); - } - } - - - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end)); - - settings->motion_mode = move; - - // Should be done with changes to settings here, so we can pack the state - write_canon_state_tag(block, settings); - - if (settings->plane == CANON_PLANE::XY) { - if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || - (settings->cutter_comp_radius == 0.0)) { - status = - convert_arc2(move, block, settings, - &(settings->current_x), &(settings->current_y), - &(settings->current_z), end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block->i_number, block->j_number); - CHP(status); - } else if (first) { - status = convert_arc_comp1(move, block, settings, end_x, end_y, end_z, - block->i_number, block->j_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - CHP(status); - } else { - status = convert_arc_comp2(move, block, settings, end_x, end_y, end_z, - block->i_number, block->j_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - CHP(status); - } - } else if (settings->plane == CANON_PLANE::XZ) { - if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || - (settings->cutter_comp_radius == 0.0)) { - status = - convert_arc2(move, block, settings, - &(settings->current_z), &(settings->current_x), - &(settings->current_y), end_z, end_x, end_y, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block->k_number, block->i_number); - CHP(status); - } else if (first) { - status = convert_arc_comp1(move, block, settings, end_z, end_x, end_y, - block->k_number, block->i_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - CHP(status); - } else { - status = convert_arc_comp2(move, block, settings, end_z, end_x, end_y, - block->k_number, block->i_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - - CHP(status); - } - } else if (settings->plane == CANON_PLANE::YZ) { - status = - convert_arc2(move, block, settings, - &(settings->current_y), &(settings->current_z), - &(settings->current_x), end_y, end_z, end_x, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block->j_number, block->k_number); - CHP(status); - } else - ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); - return INTERP_OK; + int status; + int first; /* flag set true if this is first move after comp true */ + int ijk_flag; /* flag set true if any of i,j,k present in NC code */ + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end, v_end, w_end; + + CHKS((settings->arc_not_allowed), (_("The move just after exiting cutter compensation mode must be straight, not an arc"))); + + ijk_flag = block->i_flag || block->j_flag || block->k_flag; + first = settings->cutter_comp_firstmove; + + CHKS((settings->plane == CANON_PLANE::UV || settings->plane == CANON_PLANE::VW || settings->plane == CANON_PLANE::UW), + _("Cannot do an arc in planes G17.1, G18.1, or G19.1")); + CHKS(((!block->r_flag) && (!ijk_flag)), + NCE_R_I_J_K_WORDS_ALL_MISSING_FOR_ARC); + CHKS(((block->r_flag) && (ijk_flag)), + NCE_MIXED_RADIUS_IJK_FORMAT_FOR_ARC); + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) + { + CHKS((settings->feed_rate == 0.0), + NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); + } + else if (settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) + { + CHKS((settings->feed_rate == 0.0), + NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); + CHKS((settings->speed[settings->active_spindle] == 0.0), + _("Cannot feed with zero spindle speed in feed per rev mode")); + } + else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) + { + CHKS((!block->f_flag), + NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); + } + + if (ijk_flag) + { + if (settings->plane == CANON_PLANE::XY) + { + CHKS((block->k_flag), NCE_K_WORD_GIVEN_FOR_ARC_IN_XY_PLANE); + if (!block->i_flag) + { /* i or j flag on to get here */ + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) + { + ERS(_("%c word missing in absolute center arc"), 'I'); + } + else + { + block->i_number = 0.0; + } + } + else if (!block->j_flag) + { + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) + { + ERS(_("%c word missing in absolute center arc"), 'J'); + } + else + { + block->j_number = 0.0; + } + } + } + else if (settings->plane == CANON_PLANE::YZ) + { + CHKS((block->i_flag), NCE_I_WORD_GIVEN_FOR_ARC_IN_YZ_PLANE); + if (!block->j_flag) + { /* j or k flag on to get here */ + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) + { + ERS(_("%c word missing in absolute center arc"), 'J'); + } + else + { + block->j_number = 0.0; + } + } + else if (!block->k_flag) + { + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) + { + ERS(_("%c word missing in absolute center arc"), 'K'); + } + else + { + block->k_number = 0.0; + } + } + } + else if (settings->plane == CANON_PLANE::XZ) + { + CHKS((block->j_flag), NCE_J_WORD_GIVEN_FOR_ARC_IN_XZ_PLANE); + if (!block->i_flag) + { /* i or k flag on to get here */ + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) + { + ERS(_("%c word missing in absolute center arc"), 'I'); + } + else + { + block->i_number = 0.0; + } + } + else if (!block->k_flag) + { + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) + + { + ERS(_("%c word missing in absolute center arc"), 'K'); + } + else + { + block->k_number = 0.0; + } + } + } + else + { + ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); + } + } + else + { + // in R format, we need some XYZ words specified because a full circle is not allowed. + if (settings->plane == CANON_PLANE::XY) + { + CHKS(((!block->x_flag) && (!block->y_flag) && (!block->radius_flag) && (!block->theta_flag)), + NCE_X_AND_Y_WORDS_MISSING_FOR_ARC_IN_XY_PLANE); + } + else if (settings->plane == CANON_PLANE::YZ) + { + CHKS(((!block->y_flag) && (!block->z_flag)), + NCE_Y_AND_Z_WORDS_MISSING_FOR_ARC_IN_YZ_PLANE); + } + else if (settings->plane == CANON_PLANE::XZ) + { + CHKS(((!block->x_flag) && (!block->z_flag)), + NCE_X_AND_Z_WORDS_MISSING_FOR_ARC_IN_XZ_PLANE); + } + } + + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end)); + + settings->motion_mode = move; + + // Should be done with changes to settings here, so we can pack the state + write_canon_state_tag(block, settings); + + if (settings->plane == CANON_PLANE::XY) + { + if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || + (settings->cutter_comp_radius == 0.0)) + { + status = + convert_arc2(move, block, settings, + &(settings->current_x), &(settings->current_y), + &(settings->current_z), end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block->i_number, block->j_number); + CHP(status); + } + else if (first) + { + status = convert_arc_comp1(move, block, settings, end_x, end_y, end_z, + block->i_number, block->j_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + CHP(status); + } + else + { + status = convert_arc_comp2(move, block, settings, end_x, end_y, end_z, + block->i_number, block->j_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + CHP(status); + } + } + else if (settings->plane == CANON_PLANE::XZ) + { + if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || + (settings->cutter_comp_radius == 0.0)) + { + status = + convert_arc2(move, block, settings, + &(settings->current_z), &(settings->current_x), + &(settings->current_y), end_z, end_x, end_y, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block->k_number, block->i_number); + CHP(status); + } + else if (first) + { + status = convert_arc_comp1(move, block, settings, end_z, end_x, end_y, + block->k_number, block->i_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + CHP(status); + } + else + { + status = convert_arc_comp2(move, block, settings, end_z, end_x, end_y, + block->k_number, block->i_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + + CHP(status); + } + } + else if (settings->plane == CANON_PLANE::YZ) + { + status = + convert_arc2(move, block, settings, + &(settings->current_y), &(settings->current_z), + &(settings->current_x), end_y, end_z, end_x, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block->j_number, block->k_number); + CHP(status); + } + else + ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); + return INTERP_OK; } /****************************************************************************/ @@ -1106,61 +1219,62 @@ This converts a helical or circular arc. */ -int Interp::convert_arc2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings, //!< pointer to machine settings - double *current1, //!< pointer to current value of coordinate 1 - double *current2, //!< pointer to current value of coordinate 2 - double *current3, //!< pointer to current value of coordinate 3 - double end1, //!< coordinate 1 value at end of arc - double end2, //!< coordinate 2 value at end of arc - double end3, //!< coordinate 3 value at end of arc - double AA_end, //!< a-value at end of arc - double BB_end, //!< b-value at end of arc - double CC_end, //!< c-value at end of arc +int Interp::convert_arc2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings, //!< pointer to machine settings + double *current1, //!< pointer to current value of coordinate 1 + double *current2, //!< pointer to current value of coordinate 2 + double *current3, //!< pointer to current value of coordinate 3 + double end1, //!< coordinate 1 value at end of arc + double end2, //!< coordinate 2 value at end of arc + double end3, //!< coordinate 3 value at end of arc + double AA_end, //!< a-value at end of arc + double BB_end, //!< b-value at end of arc + double CC_end, //!< c-value at end of arc double u, double v, double w, //!< values at end of arc - double offset1, //!< center, either abs or offset from current - double offset2) + double offset1, //!< center, either abs or offset from current + double offset2) { - double center1; - double center2; - int turn; /* number of full or partial turns CCW in arc */ - CANON_PLANE plane = settings->plane; - - // Spiral tolerance is the amount of "spiral" allowed in a given arc segment, or (r2-r1)/theta - double spiral_abs_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? - settings->center_arc_radius_tolerance_inch : settings->center_arc_radius_tolerance_mm; - - // Radius tolerance allows a bit of leeway on the minimum radius for a radius defined arc. - double radius_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? - RADIUS_TOLERANCE_INCH : RADIUS_TOLERANCE_MM; - - if (block->r_flag) { - CHP(arc_data_r(move, plane, *current1, *current2, end1, end2, - block->r_number, block->p_flag? round_to_int(block->p_number) : 1, - ¢er1, ¢er2, &turn, radius_tolerance)); - } else { - CHP(arc_data_ijk(move, plane, *current1, *current2, end1, end2, - (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), - offset1, offset2, block->p_flag? round_to_int(block->p_number) : 1, - ¢er1, ¢er2, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); - } - inverse_time_rate_arc(*current1, *current2, *current3, center1, center2, - turn, end1, end2, end3, block, settings); - - ARC_FEED(block->line_number, end1, end2, center1, center2, turn, end3, - AA_end, BB_end, CC_end, u, v, w); - *current1 = end1; - *current2 = end2; - *current3 = end3; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u; - settings->v_current = v; - settings->w_current = w; - - return INTERP_OK; + double center1; + double center2; + int turn; /* number of full or partial turns CCW in arc */ + CANON_PLANE plane = settings->plane; + + // Spiral tolerance is the amount of "spiral" allowed in a given arc segment, or (r2-r1)/theta + double spiral_abs_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? settings->center_arc_radius_tolerance_inch : settings->center_arc_radius_tolerance_mm; + + // Radius tolerance allows a bit of leeway on the minimum radius for a radius defined arc. + double radius_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? RADIUS_TOLERANCE_INCH : RADIUS_TOLERANCE_MM; + + if (block->r_flag) + { + CHP(arc_data_r(move, plane, *current1, *current2, end1, end2, + block->r_number, block->p_flag ? round_to_int(block->p_number) : 1, + ¢er1, ¢er2, &turn, radius_tolerance)); + } + else + { + CHP(arc_data_ijk(move, plane, *current1, *current2, end1, end2, + (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), + offset1, offset2, block->p_flag ? round_to_int(block->p_number) : 1, + ¢er1, ¢er2, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); + } + inverse_time_rate_arc(*current1, *current2, *current3, center1, center2, + turn, end1, end2, end3, block, settings); + + ARC_FEED(block->line_number, end1, end2, center1, center2, turn, end3, + AA_end, BB_end, CC_end, u, v, w); + *current1 = end1; + *current2 = end2; + *current3 = end3; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u; + settings->v_current = v; + settings->w_current = w; + + return INTERP_OK; } /****************************************************************************/ @@ -1190,28 +1304,28 @@ tangent to the second arc throughout the move. */ -int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings, //!< pointer to machine settings - double end_x, //!< x-value at end of programmed (then actual) arc - double end_y, //!< y-value at end of programmed (then actual) arc - double end_z, //!< z-value at end of arc +int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings, //!< pointer to machine settings + double end_x, //!< x-value at end of programmed (then actual) arc + double end_y, //!< y-value at end of programmed (then actual) arc + double end_z, //!< z-value at end of arc double offset_x, double offset_y, - double AA_end, //!< a-value at end of arc - double BB_end, //!< b-value at end of arc - double CC_end, //!< c-value at end of arc + double AA_end, //!< a-value at end of arc + double BB_end, //!< b-value at end of arc + double CC_end, //!< c-value at end of arc double u_end, double v_end, double w_end) //!< uvw at end of arc { double center_x, center_y; - double gamma; /* direction of perpendicular to arc at end */ - CUTTER_COMP side; /* offset side - right or left */ + double gamma; /* direction of perpendicular to arc at end */ + CUTTER_COMP side; /* offset side - right or left */ double tool_radius; - int turn; /* 1 for counterclockwise, -1 for clockwise */ + int turn; /* 1 for counterclockwise, -1 for clockwise */ double cx, cy, cz; // current CANON_PLANE plane = settings->plane; side = settings->cutter_comp_side; - tool_radius = settings->cutter_comp_radius; /* always is positive */ + tool_radius = settings->cutter_comp_radius; /* always is positive */ double spiral_abs_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? settings->center_arc_radius_tolerance_inch : settings->center_arc_radius_tolerance_mm; double radius_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? RADIUS_TOLERANCE_INCH : RADIUS_TOLERANCE_MM; @@ -1221,26 +1335,31 @@ int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) or G_3 (ccw ar CHKS((hypot((end_x - cx), (end_y - cy)) <= tool_radius), _("Radius of cutter compensation entry arc is not greater than the tool radius")); - if (block->r_flag) { + if (block->r_flag) + { CHP(arc_data_comp_r(move, plane, side, tool_radius, cx, cy, end_x, end_y, - block->r_number, block->p_flag? round_to_int(block->p_number): 1, + block->r_number, block->p_flag ? round_to_int(block->p_number) : 1, ¢er_x, ¢er_y, &turn, radius_tolerance)); - } else { + } + else + { CHP(arc_data_comp_ijk(move, plane, side, tool_radius, cx, cy, end_x, end_y, (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), - offset_x, offset_y, block->p_flag? round_to_int(block->p_number): 1, + offset_x, offset_y, block->p_flag ? round_to_int(block->p_number) : 1, ¢er_x, ¢er_y, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); } inverse_time_rate_arc(cx, cy, cz, center_x, center_y, turn, end_x, end_y, end_z, block, settings); - // the tool will end up in gamma direction from the programmed arc endpoint - if TOOL_INSIDE_ARC(side, turn) { + if TOOL_INSIDE_ARC (side, turn) + { // tool inside the arc: ends up toward the center gamma = atan2((center_y - end_y), (center_x - end_x)); - } else { + } + else + { // outside: away from the center gamma = atan2((end_y - center_y), (end_x - center_x)); } @@ -1267,19 +1386,23 @@ int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) or G_3 (ccw ar CHKS((fabs(cos(A_ang)) < TOLERANCE_EQUAL), NCE_TOOL_RADIUS_NOT_LESS_THAN_ARC_RADIUS_WITH_COMP); - double c_len = b_len/cos(A_ang); + double c_len = b_len / cos(A_ang); // center of the arc is c_len from end in direction AB center_x = end_x + c_len * cos(AB_ang); center_y = end_y + c_len * sin(AB_ang); + // send state tags for arc here + tag_arc(end_x, end_y, center_x, center_y); + /* center to endpoint distances matched before - they still should. */ - CHKS((fabs(hypot(center_x-end_x,center_y-end_y) - - hypot(center_x-cx,center_y-cy)) > spiral_abs_tolerance), - NCE_BUG_IN_TOOL_RADIUS_COMP); + CHKS((fabs(hypot(center_x - end_x, center_y - end_y) - + hypot(center_x - cx, center_y - cy)) > spiral_abs_tolerance), + NCE_BUG_IN_TOOL_RADIUS_COMP); // need this move for lathes to move the tool origin first. otherwise, the arc isn't an arc. - if (settings->cutter_comp_orientation != 0 && settings->cutter_comp_orientation != 9) { + if (settings->cutter_comp_orientation != 0 && settings->cutter_comp_orientation != 9) + { enqueue_STRAIGHT_FEED(settings, block->line_number, 0, 0, 0, cx, cy, cz, @@ -1340,31 +1463,31 @@ their lengths. */ -int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings, //!< pointer to machine settings - double end_x, //!< x-value at end of programmed (then actual) arc - double end_y, //!< y-value at end of programmed (then actual) arc - double end_z, //!< z-value at end of arc +int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings, //!< pointer to machine settings + double end_x, //!< x-value at end of programmed (then actual) arc + double end_y, //!< y-value at end of programmed (then actual) arc + double end_z, //!< z-value at end of arc double offset_x, double offset_y, - double AA_end, //!< a-value at end of arc - double BB_end, //!< b-value at end of arc - double CC_end, //!< c-value at end of arc + double AA_end, //!< a-value at end of arc + double BB_end, //!< b-value at end of arc + double CC_end, //!< c-value at end of arc double u, double v, double w) //!< uvw at end of arc { - double alpha; /* direction of tangent to start of arc */ + double alpha; /* direction of tangent to start of arc */ double arc_radius; - double beta; /* angle between two tangents above */ - double centerx, centery; /* center of arc */ - double delta; /* direction of radius from start of arc to center of arc */ - double gamma; /* direction of perpendicular to arc at end */ + double beta; /* angle between two tangents above */ + double centerx, centery; /* center of arc */ + double delta; /* direction of radius from start of arc to center of arc */ + double gamma; /* direction of perpendicular to arc at end */ double midx, midy; CUTTER_COMP side; - double small = TOLERANCE_CONCAVE_CORNER; /* angle for testing corners */ + double small = TOLERANCE_CONCAVE_CORNER; /* angle for testing corners */ double opx = 0, opy = 0, opz = 0; - double theta; /* direction of tangent to last cut */ + double theta; /* direction of tangent to last cut */ double tool_radius; - int turn; /* number of full or partial circles CCW */ + int turn; /* number of full or partial circles CCW */ CANON_PLANE plane = settings->plane; double cx, cy, cz; double new_end_x, new_end_y; @@ -1377,16 +1500,18 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar comp_get_programmed(settings, &opx, &opy, &opz); comp_get_current(settings, &cx, &cy, &cz); - - if (block->r_flag) { + if (block->r_flag) + { CHP(arc_data_r(move, plane, opx, opy, end_x, end_y, - block->r_number, block->p_flag? round_to_int(block->p_number): 1, + block->r_number, block->p_flag ? round_to_int(block->p_number) : 1, ¢erx, ¢ery, &turn, radius_tolerance)); - } else { + } + else + { CHP(arc_data_ijk(move, plane, opx, opy, end_x, end_y, (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), - offset_x, offset_y, block->p_flag? round_to_int(block->p_number): 1, + offset_x, offset_y, block->p_flag ? round_to_int(block->p_number) : 1, ¢erx, ¢ery, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); } @@ -1394,7 +1519,7 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar turn, end_x, end_y, end_z, block, settings); side = settings->cutter_comp_side; - tool_radius = settings->cutter_comp_radius; /* always is positive */ + tool_radius = settings->cutter_comp_radius; /* always is positive */ arc_radius = hypot((centerx - end_x), (centery - end_y)); theta = atan2(cy - opy, cx - opx); theta = (side == CUTTER_COMP::LEFT) ? (theta - M_PI_2l) : (theta + M_PI_2l); @@ -1403,14 +1528,18 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar beta = (side == CUTTER_COMP::LEFT) ? (theta - alpha) : (alpha - theta); // normalize beta -90 to +270? - beta = (beta > (1.5 * M_PIl)) ? (beta - (2 * M_PIl)) : (beta < -M_PI_2l) ? (beta + (2 * M_PIl)) : beta; + beta = (beta > (1.5 * M_PIl)) ? (beta - (2 * M_PIl)) : (beta < -M_PI_2l) ? (beta + (2 * M_PIl)) + : beta; - if (((side == CUTTER_COMP::LEFT) && (move == G_3)) || ((side == CUTTER_COMP::RIGHT) && (move == G_2))) { + if (((side == CUTTER_COMP::LEFT) && (move == G_3)) || ((side == CUTTER_COMP::RIGHT) && (move == G_2))) + { // we are cutting inside the arc gamma = atan2((centery - end_y), (centerx - end_x)); CHKS((arc_radius <= tool_radius), - NCE_TOOL_RADIUS_NOT_LESS_THAN_ARC_RADIUS_WITH_COMP); - } else { + NCE_TOOL_RADIUS_NOT_LESS_THAN_ARC_RADIUS_WITH_COMP); + } + else + { gamma = atan2((end_y - centery), (end_x - centerx)); delta = (delta + M_PIl); } @@ -1423,35 +1552,45 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar beta > M_PIl + small || // special detection for convex corner on tangent arc->arc (like atop the middle of "m" shape) // or tangent line->arc (atop "h" shape) - (fabs(beta - M_PIl) < small && !TOOL_INSIDE_ARC(side, turn)) - ) { + (fabs(beta - M_PIl) < small && !TOOL_INSIDE_ARC(side, turn))) + { // concave - if (qc().front().type != QARC_FEED) { + if (qc().front().type != QARC_FEED) + { // line->arc double cy = arc_radius * sin(beta - M_PI_2l); double toward_nominal; double dist_from_center; double angle_from_center; - if TOOL_INSIDE_ARC(side, turn) { + if TOOL_INSIDE_ARC (side, turn) + { // tool is inside the arc dist_from_center = arc_radius - tool_radius; toward_nominal = cy + tool_radius; double l = toward_nominal / dist_from_center; CHKS((l > 1.0 || l < -1.0), _("Arc move in concave corner cannot be reached by the tool without gouging")); - if(turn > 0) { + if (turn > 0) + { angle_from_center = theta + asin(l); - } else { + } + else + { angle_from_center = theta - asin(l); } - } else { + } + else + { dist_from_center = arc_radius + tool_radius; toward_nominal = cy - tool_radius; double l = toward_nominal / dist_from_center; CHKS((l > 1.0 || l < -1.0), _("Arc move in concave corner cannot be reached by the tool without gouging")); - if(turn > 0) { + if (turn > 0) + { angle_from_center = theta + M_PIl - asin(l); - } else { + } + else + { angle_from_center = theta + M_PIl + asin(l); } } @@ -1460,14 +1599,19 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar midy = centery + dist_from_center * sin(angle_from_center); CHP(move_endpoint_and_flush(settings, midx, midy)); - } else { + } + else + { // arc->arc struct arc_feed &prev = qc().front().data.arc_feed; double oldrad = hypot(prev.center2 - prev.end2, prev.center1 - prev.end1); double newrad; - if TOOL_INSIDE_ARC(side, turn) { + if TOOL_INSIDE_ARC (side, turn) + { newrad = arc_radius - tool_radius; - } else { + } + else + { newrad = arc_radius + tool_radius; } @@ -1482,13 +1626,16 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar cc_dir = atan2(centery - prev.center2, centerx - prev.center1); double dir; - if TOOL_INSIDE_ARC(side, prev.turn) { - if(turn > 0) + if TOOL_INSIDE_ARC (side, prev.turn) + { + if (turn > 0) dir = cc_dir + pullback; else dir = cc_dir - pullback; - } else { - if(turn > 0) + } + else + { + if (turn > 0) dir = cc_dir - pullback; else dir = cc_dir + pullback; @@ -1503,7 +1650,9 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar find_turn(opx, opy, centerx, centery, turn, end_x, end_y), new_end_x, new_end_y, centerx, centery, turn, end_z, AA_end, BB_end, CC_end, u, v, w); - } else if (beta > small) { /* convex, two arcs needed */ + } + else if (beta > small) + { /* convex, two arcs needed */ midx = opx + tool_radius * cos(delta); midy = opy + tool_radius * sin(delta); dequeue_canons(settings); @@ -1518,7 +1667,9 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar find_turn(opx, opy, centerx, centery, turn, end_x, end_y), new_end_x, new_end_y, centerx, centery, turn, end_z, AA_end, BB_end, CC_end, u, v, w); - } else { /* convex, one arc needed */ + } + else + { /* convex, one arc needed */ dequeue_canons(settings); set_endpoint(cx, cy); enqueue_ARC_FEED(settings, block->line_number, @@ -1602,218 +1753,244 @@ given in the parameters. */ -int Interp::convert_axis_offsets(int g_code, //!< g_code being executed (must be in G_92 series) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_axis_offsets(int g_code, //!< g_code being executed (must be in G_92 series) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - double *pars; /* short name for settings->parameters */ - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), /* not "== true" */ - NCE_CANNOT_CHANGE_AXIS_OFFSETS_WITH_CUTTER_RADIUS_COMP); - CHKS((block->a_flag && settings->a_axis_wrapped && - (block->a_number <= -360.0 || block->a_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), - block->a_number, 'A'); - CHKS((block->b_flag && settings->b_axis_wrapped && - (block->b_number <= -360.0 || block->b_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), - block->b_number, 'B'); - CHKS((block->c_flag && settings->c_axis_wrapped && - (block->c_number <= -360.0 || block->c_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), - block->c_number, 'C'); - pars = settings->parameters; - if ((g_code == G_52) || (g_code == G_92)) { - pars[G92_APPLIED] = 1.0; - - if (g_code == G_52) { - if (block->x_flag) { - settings->current_x += settings->axis_offset_x - block->x_number; - settings->axis_offset_x = block->x_number; - } - - if (block->y_flag) { - settings->current_y += settings->axis_offset_y - block->y_number; - settings->axis_offset_y = block->y_number; - } - - if (block->z_flag) { - settings->current_z += settings->axis_offset_z - block->z_number; - settings->axis_offset_z = block->z_number; - } - if (block->a_flag) { - settings->AA_current += settings->AA_axis_offset - block->a_number; - settings->AA_axis_offset = block->a_number; - } - if (block->b_flag) { - settings->BB_current += settings->BB_axis_offset - block->b_number; - settings->BB_axis_offset = block->b_number; - } - if (block->c_flag) { - settings->CC_current += settings->CC_axis_offset - block->c_number; - settings->CC_axis_offset = block->c_number; - } - if (block->u_flag) { - settings->u_current += settings->u_axis_offset - block->u_number; - settings->u_axis_offset = block->u_number; - } - if (block->v_flag) { - settings->v_current += settings->v_axis_offset - block->v_number; - settings->v_axis_offset = block->v_number; - } - if (block->w_flag) { - settings->w_current += settings->w_axis_offset - block->w_number; - settings->w_axis_offset = block->w_number; - } - - } else { - if (block->x_flag) { - settings->axis_offset_x = - (settings->current_x + settings->axis_offset_x - block->x_number); - settings->current_x = block->x_number; - } - - if (block->y_flag) { - settings->axis_offset_y = - (settings->current_y + settings->axis_offset_y - block->y_number); - settings->current_y = block->y_number; - } - - if (block->z_flag) { - settings->axis_offset_z = - (settings->current_z + settings->axis_offset_z - block->z_number); - settings->current_z = block->z_number; - } - if (block->a_flag) { - settings->AA_axis_offset = (settings->AA_current + - settings->AA_axis_offset - block->a_number); - settings->AA_current = block->a_number; - } - if (block->b_flag) { - settings->BB_axis_offset = (settings->BB_current + - settings->BB_axis_offset - block->b_number); - settings->BB_current = block->b_number; - } - if (block->c_flag) { - settings->CC_axis_offset = (settings->CC_current + - settings->CC_axis_offset - block->c_number); - settings->CC_current = block->c_number; - } - if (block->u_flag) { - settings->u_axis_offset = (settings->u_current + - settings->u_axis_offset - block->u_number); - settings->u_current = block->u_number; - } - if (block->v_flag) { - settings->v_axis_offset = (settings->v_current + - settings->v_axis_offset - block->v_number); - settings->v_current = block->v_number; - } - if (block->w_flag) { - settings->w_axis_offset = (settings->w_current + - settings->w_axis_offset - block->w_number); - settings->w_current = block->w_number; - } - } + double *pars; /* short name for settings->parameters */ + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), /* not "== true" */ + NCE_CANNOT_CHANGE_AXIS_OFFSETS_WITH_CUTTER_RADIUS_COMP); + CHKS((block->a_flag && settings->a_axis_wrapped && + (block->a_number <= -360.0 || block->a_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), + block->a_number, 'A'); + CHKS((block->b_flag && settings->b_axis_wrapped && + (block->b_number <= -360.0 || block->b_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), + block->b_number, 'B'); + CHKS((block->c_flag && settings->c_axis_wrapped && + (block->c_number <= -360.0 || block->c_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), + block->c_number, 'C'); + pars = settings->parameters; + if ((g_code == G_52) || (g_code == G_92)) + { + pars[G92_APPLIED] = 1.0; - SET_G92_OFFSET(settings->axis_offset_x, - settings->axis_offset_y, - settings->axis_offset_z, - settings->AA_axis_offset, - settings->BB_axis_offset, - settings->CC_axis_offset, - settings->u_axis_offset, - settings->v_axis_offset, - settings->w_axis_offset); + if (g_code == G_52) + { + if (block->x_flag) + { + settings->current_x += settings->axis_offset_x - block->x_number; + settings->axis_offset_x = block->x_number; + } - pars[5211] = PROGRAM_TO_USER_LEN(settings->axis_offset_x); - pars[5212] = PROGRAM_TO_USER_LEN(settings->axis_offset_y); - pars[5213] = PROGRAM_TO_USER_LEN(settings->axis_offset_z); - pars[5214] = PROGRAM_TO_USER_ANG(settings->AA_axis_offset); - pars[5215] = PROGRAM_TO_USER_ANG(settings->BB_axis_offset); - pars[5216] = PROGRAM_TO_USER_ANG(settings->CC_axis_offset); - pars[5217] = PROGRAM_TO_USER_LEN(settings->u_axis_offset); - pars[5218] = PROGRAM_TO_USER_LEN(settings->v_axis_offset); - pars[5219] = PROGRAM_TO_USER_LEN(settings->w_axis_offset); - - } else if ((g_code == G_92_1) || (g_code == G_92_2)) { - pars[5210] = 0.0; - settings->current_x = settings->current_x + settings->axis_offset_x; - settings->current_y = settings->current_y + settings->axis_offset_y; - settings->current_z = settings->current_z + settings->axis_offset_z; - settings->AA_current = (settings->AA_current + settings->AA_axis_offset); - settings->BB_current = (settings->BB_current + settings->BB_axis_offset); - settings->CC_current = (settings->CC_current + settings->CC_axis_offset); - settings->u_current = (settings->u_current + settings->u_axis_offset); - settings->v_current = (settings->v_current + settings->v_axis_offset); - settings->w_current = (settings->w_current + settings->w_axis_offset); - - SET_G92_OFFSET(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); - - settings->axis_offset_x = 0.0; - settings->axis_offset_y = 0.0; - settings->axis_offset_z = 0.0; - settings->AA_axis_offset = 0.0; - settings->BB_axis_offset = 0.0; - settings->CC_axis_offset = 0.0; - settings->u_axis_offset = 0.0; - settings->v_axis_offset = 0.0; - settings->w_axis_offset = 0.0; - if (g_code == G_92_1) { - pars[G92_X] = 0.0; - pars[G92_Y] = 0.0; - pars[G92_Z] = 0.0; - pars[G92_A] = 0.0; - pars[G92_B] = 0.0; - pars[G92_C] = 0.0; - pars[G92_U] = 0.0; - pars[G92_V] = 0.0; - pars[G92_W] = 0.0; - } - } else if (g_code == G_92_3) { - pars[5210] = 1.0; - settings->current_x = - settings->current_x + settings->axis_offset_x - USER_TO_PROGRAM_LEN(pars[5211]); - settings->current_y = - settings->current_y + settings->axis_offset_y - USER_TO_PROGRAM_LEN(pars[5212]); - settings->current_z = - settings->current_z + settings->axis_offset_z - USER_TO_PROGRAM_LEN(pars[5213]); - settings->AA_current = - settings->AA_current + settings->AA_axis_offset - USER_TO_PROGRAM_ANG(pars[5214]); - settings->BB_current = - settings->BB_current + settings->BB_axis_offset - USER_TO_PROGRAM_ANG(pars[5215]); - settings->CC_current = - settings->CC_current + settings->CC_axis_offset - USER_TO_PROGRAM_ANG(pars[5216]); - settings->u_current = - settings->u_current + settings->u_axis_offset - USER_TO_PROGRAM_LEN(pars[5217]); - settings->v_current = - settings->v_current + settings->v_axis_offset - USER_TO_PROGRAM_LEN(pars[5218]); - settings->w_current = - settings->w_current + settings->w_axis_offset - USER_TO_PROGRAM_LEN(pars[5219]); - - settings->axis_offset_x = USER_TO_PROGRAM_LEN(pars[5211]); - settings->axis_offset_y = USER_TO_PROGRAM_LEN(pars[5212]); - settings->axis_offset_z = USER_TO_PROGRAM_LEN(pars[5213]); - settings->AA_axis_offset = USER_TO_PROGRAM_ANG(pars[5214]); - settings->BB_axis_offset = USER_TO_PROGRAM_ANG(pars[5215]); - settings->CC_axis_offset = USER_TO_PROGRAM_ANG(pars[5216]); - settings->u_axis_offset = USER_TO_PROGRAM_LEN(pars[5217]); - settings->v_axis_offset = USER_TO_PROGRAM_LEN(pars[5218]); - settings->w_axis_offset = USER_TO_PROGRAM_LEN(pars[5219]); + if (block->y_flag) + { + settings->current_y += settings->axis_offset_y - block->y_number; + settings->axis_offset_y = block->y_number; + } - SET_G92_OFFSET(settings->axis_offset_x, - settings->axis_offset_y, - settings->axis_offset_z, - settings->AA_axis_offset, - settings->BB_axis_offset, - settings->CC_axis_offset, - settings->u_axis_offset, - settings->v_axis_offset, - settings->w_axis_offset); - } else - ERS(NCE_BUG_CODE_NOT_IN_G52_G92_SERIES); + if (block->z_flag) + { + settings->current_z += settings->axis_offset_z - block->z_number; + settings->axis_offset_z = block->z_number; + } + if (block->a_flag) + { + settings->AA_current += settings->AA_axis_offset - block->a_number; + settings->AA_axis_offset = block->a_number; + } + if (block->b_flag) + { + settings->BB_current += settings->BB_axis_offset - block->b_number; + settings->BB_axis_offset = block->b_number; + } + if (block->c_flag) + { + settings->CC_current += settings->CC_axis_offset - block->c_number; + settings->CC_axis_offset = block->c_number; + } + if (block->u_flag) + { + settings->u_current += settings->u_axis_offset - block->u_number; + settings->u_axis_offset = block->u_number; + } + if (block->v_flag) + { + settings->v_current += settings->v_axis_offset - block->v_number; + settings->v_axis_offset = block->v_number; + } + if (block->w_flag) + { + settings->w_current += settings->w_axis_offset - block->w_number; + settings->w_axis_offset = block->w_number; + } + } + else + { + if (block->x_flag) + { + settings->axis_offset_x = + (settings->current_x + settings->axis_offset_x - block->x_number); + settings->current_x = block->x_number; + } + + if (block->y_flag) + { + settings->axis_offset_y = + (settings->current_y + settings->axis_offset_y - block->y_number); + settings->current_y = block->y_number; + } + + if (block->z_flag) + { + settings->axis_offset_z = + (settings->current_z + settings->axis_offset_z - block->z_number); + settings->current_z = block->z_number; + } + if (block->a_flag) + { + settings->AA_axis_offset = (settings->AA_current + + settings->AA_axis_offset - block->a_number); + settings->AA_current = block->a_number; + } + if (block->b_flag) + { + settings->BB_axis_offset = (settings->BB_current + + settings->BB_axis_offset - block->b_number); + settings->BB_current = block->b_number; + } + if (block->c_flag) + { + settings->CC_axis_offset = (settings->CC_current + + settings->CC_axis_offset - block->c_number); + settings->CC_current = block->c_number; + } + if (block->u_flag) + { + settings->u_axis_offset = (settings->u_current + + settings->u_axis_offset - block->u_number); + settings->u_current = block->u_number; + } + if (block->v_flag) + { + settings->v_axis_offset = (settings->v_current + + settings->v_axis_offset - block->v_number); + settings->v_current = block->v_number; + } + if (block->w_flag) + { + settings->w_axis_offset = (settings->w_current + + settings->w_axis_offset - block->w_number); + settings->w_current = block->w_number; + } + } + + SET_G92_OFFSET(settings->axis_offset_x, + settings->axis_offset_y, + settings->axis_offset_z, + settings->AA_axis_offset, + settings->BB_axis_offset, + settings->CC_axis_offset, + settings->u_axis_offset, + settings->v_axis_offset, + settings->w_axis_offset); + + pars[5211] = PROGRAM_TO_USER_LEN(settings->axis_offset_x); + pars[5212] = PROGRAM_TO_USER_LEN(settings->axis_offset_y); + pars[5213] = PROGRAM_TO_USER_LEN(settings->axis_offset_z); + pars[5214] = PROGRAM_TO_USER_ANG(settings->AA_axis_offset); + pars[5215] = PROGRAM_TO_USER_ANG(settings->BB_axis_offset); + pars[5216] = PROGRAM_TO_USER_ANG(settings->CC_axis_offset); + pars[5217] = PROGRAM_TO_USER_LEN(settings->u_axis_offset); + pars[5218] = PROGRAM_TO_USER_LEN(settings->v_axis_offset); + pars[5219] = PROGRAM_TO_USER_LEN(settings->w_axis_offset); + } + else if ((g_code == G_92_1) || (g_code == G_92_2)) + { + pars[5210] = 0.0; + settings->current_x = settings->current_x + settings->axis_offset_x; + settings->current_y = settings->current_y + settings->axis_offset_y; + settings->current_z = settings->current_z + settings->axis_offset_z; + settings->AA_current = (settings->AA_current + settings->AA_axis_offset); + settings->BB_current = (settings->BB_current + settings->BB_axis_offset); + settings->CC_current = (settings->CC_current + settings->CC_axis_offset); + settings->u_current = (settings->u_current + settings->u_axis_offset); + settings->v_current = (settings->v_current + settings->v_axis_offset); + settings->w_current = (settings->w_current + settings->w_axis_offset); + + SET_G92_OFFSET(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + + settings->axis_offset_x = 0.0; + settings->axis_offset_y = 0.0; + settings->axis_offset_z = 0.0; + settings->AA_axis_offset = 0.0; + settings->BB_axis_offset = 0.0; + settings->CC_axis_offset = 0.0; + settings->u_axis_offset = 0.0; + settings->v_axis_offset = 0.0; + settings->w_axis_offset = 0.0; + if (g_code == G_92_1) + { + pars[G92_X] = 0.0; + pars[G92_Y] = 0.0; + pars[G92_Z] = 0.0; + pars[G92_A] = 0.0; + pars[G92_B] = 0.0; + pars[G92_C] = 0.0; + pars[G92_U] = 0.0; + pars[G92_V] = 0.0; + pars[G92_W] = 0.0; + } + } + else if (g_code == G_92_3) + { + pars[5210] = 1.0; + settings->current_x = + settings->current_x + settings->axis_offset_x - USER_TO_PROGRAM_LEN(pars[5211]); + settings->current_y = + settings->current_y + settings->axis_offset_y - USER_TO_PROGRAM_LEN(pars[5212]); + settings->current_z = + settings->current_z + settings->axis_offset_z - USER_TO_PROGRAM_LEN(pars[5213]); + settings->AA_current = + settings->AA_current + settings->AA_axis_offset - USER_TO_PROGRAM_ANG(pars[5214]); + settings->BB_current = + settings->BB_current + settings->BB_axis_offset - USER_TO_PROGRAM_ANG(pars[5215]); + settings->CC_current = + settings->CC_current + settings->CC_axis_offset - USER_TO_PROGRAM_ANG(pars[5216]); + settings->u_current = + settings->u_current + settings->u_axis_offset - USER_TO_PROGRAM_LEN(pars[5217]); + settings->v_current = + settings->v_current + settings->v_axis_offset - USER_TO_PROGRAM_LEN(pars[5218]); + settings->w_current = + settings->w_current + settings->w_axis_offset - USER_TO_PROGRAM_LEN(pars[5219]); + + settings->axis_offset_x = USER_TO_PROGRAM_LEN(pars[5211]); + settings->axis_offset_y = USER_TO_PROGRAM_LEN(pars[5212]); + settings->axis_offset_z = USER_TO_PROGRAM_LEN(pars[5213]); + settings->AA_axis_offset = USER_TO_PROGRAM_ANG(pars[5214]); + settings->BB_axis_offset = USER_TO_PROGRAM_ANG(pars[5215]); + settings->CC_axis_offset = USER_TO_PROGRAM_ANG(pars[5216]); + settings->u_axis_offset = USER_TO_PROGRAM_LEN(pars[5217]); + settings->v_axis_offset = USER_TO_PROGRAM_LEN(pars[5218]); + settings->w_axis_offset = USER_TO_PROGRAM_LEN(pars[5219]); + + SET_G92_OFFSET(settings->axis_offset_x, + settings->axis_offset_y, + settings->axis_offset_z, + settings->AA_axis_offset, + settings->BB_axis_offset, + settings->CC_axis_offset, + settings->u_axis_offset, + settings->v_axis_offset, + settings->w_axis_offset); + } + else + ERS(NCE_BUG_CODE_NOT_IN_G52_G92_SERIES); - return INTERP_OK; + return INTERP_OK; } #define VAL_LEN 30 @@ -1822,7 +1999,7 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) { FORCE_LC_NUMERIC_C; int i; - char param[LINELEN+1]; + char param[LINELEN + 1]; char format[5] = "%lf"; int paramNumber; int stat; @@ -1831,35 +2008,35 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) char *v; int found; - while(*comment) + while (*comment) { - if(*comment == '%') + if (*comment == '%') { // skip over the '%' comment++; // convenient integer looking - if(*comment == 'd') + if (*comment == 'd') { comment++; strcpy(format, "%.0f"); } // convenient 4 position float - else if(*comment == 'f') + else if (*comment == 'f') { comment++; strcpy(format, "%.4f"); } // arbitrary 0-9 position float - else if(*comment == '.') + else if (*comment == '.') { comment++; - if(isdigit(*comment)) + if (isdigit(*comment)) { // forward to the (hopefully) letter f comment++; - if(*comment == 'f') + if (*comment == 'f') { // back up to get the digit into format comment--; @@ -1877,21 +2054,19 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) // back up to the digit to continue processing comment--; *expanded++ = '.'; - } } else { *expanded++ = '.'; } - } else { *expanded++ = '%'; } } - else if(*comment == '#') + else if (*comment == '#') { found = 0; logDebug("a parameter"); @@ -1900,23 +2075,23 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) comment++; CHKS((0 == *comment), NCE_NAMED_PARAMETER_NOT_TERMINATED); - if(isdigit(*comment)) // is this numeric param? + if (isdigit(*comment)) // is this numeric param? { logDebug("numeric parameter"); - for(i=0; isdigit(*comment)&& (i= 0) && - (paramNumber < RS274NGC_MAX_PARAMETERS)) + if ((paramNumber >= 0) && + (paramNumber < RS274NGC_MAX_PARAMETERS)) { value = _setup.parameters[paramNumber]; found = 1; } } - else if(*comment == '<') + else if (*comment == '<') { logDebug("name parameter"); // this is a name parameter @@ -1924,30 +2099,30 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) comment++; CHKS((0 == *comment), NCE_NAMED_PARAMETER_NOT_TERMINATED); - for(i=0; (')' != *comment) && - (i' == *comment) + if ('>' == *comment) { - break; // done + break; // done } - if(isspace(*comment)) // skip space inside the param + if (isspace(*comment)) // skip space inside the param { comment++; continue; } else { - // if tolower is a macro, may need this int - int c = *comment++; - if (FEATURE(NO_DOWNCASE_OWORD)) - param[i] = c; - else - param[i] = tolower(c); + // if tolower is a macro, may need this int + int c = *comment++; + if (FEATURE(NO_DOWNCASE_OWORD)) + param[i] = c; + else + param[i] = tolower(c); i++; } } - if('>' != *comment) + if ('>' != *comment) { ERS(NCE_NAMED_PARAMETER_NOT_TERMINATED); } @@ -1961,7 +2136,7 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) // now lookup the name find_named_param(param, &stat, &value); - if(stat) + if (stat) { found = 1; } @@ -1979,15 +2154,14 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) // we have a parameter -- now insert it // we have the value - if(found) + if (found) { - // avoid -0.0/0.0 issues - double pvalue = equal(value, 0.0) ? 0.0 : value; + // avoid -0.0/0.0 issues + double pvalue = equal(value, 0.0) ? 0.0 : value; int n = snprintf(valbuf, VAL_LEN, format, pvalue); bool fail = (n >= VAL_LEN || n < 0); - if(fail) + if (fail) rtapi_strxcpy(valbuf, "######"); - } else { @@ -1996,12 +2170,12 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) logDebug("found:%d value:|%s|", found, valbuf); v = valbuf; - while(*v) + while (*v) { *expanded++ = *v++; } } - else // not a '#' + else // not a '#' { *expanded++ = *comment++; } @@ -2034,116 +2208,124 @@ subtype of comment. This is an extension to the rs274NGC language. */ -static int streq(char *s1, char *s2) { +static int streq(char *s1, char *s2) +{ return !strcmp(s1, s2); } -static int startswith(char *haystack, char *needle) { +static int startswith(char *haystack, char *needle) +{ return !strncmp(haystack, needle, strlen(needle)); } -int Interp::convert_comment(char *comment, bool enqueue) //!< string with comment +int Interp::convert_comment(char *comment, bool enqueue) //!< string with comment { - enum - { LC_SIZE = 256, EX_SIZE = 2*LC_SIZE}; // 256 from comment[256] in rs274ngc.hh - char lc[LC_SIZE+1]; - char expanded[EX_SIZE+1]; - char MSG_STR[] = "msg,"; - - //!!!KL add two -- debug => same as msg - //!!!KL -- print => goes to stdout - char DEBUG_STR[] = "debug,"; - char PRINT_STR[] = "print,"; - char LOG_STR[] = "log,"; - char LOGOPEN_STR[] = "logopen,"; - char LOGAPPEND_STR[] = "logappend,"; - char LOGCLOSE_STR[] = "logclose"; - char PY_STR[] = "py,"; - char PYRUN_STR[] = "pyrun,"; - char PYRELOAD_STR[] = "pyreload"; - char ABORT_STR[] = "abort,"; - int m, n, start; - - // step over leading white space in comment - m = 0; - while (isspace(comment[m])) - m++; - start = m; - // copy lowercase comment to lc[] - for (n = 0; n < LC_SIZE && comment[m] != 0; m++, n++) { - lc[n] = tolower(comment[m]); - } - lc[n] = 0; // null terminate - - // compare with MSG, SYSTEM, DEBUG, PRINT - if (startswith(lc, MSG_STR)) { - MESSAGE(comment + start + strlen(MSG_STR)); + enum + { + LC_SIZE = 256, + EX_SIZE = 2 * LC_SIZE + }; // 256 from comment[256] in rs274ngc.hh + char lc[LC_SIZE + 1]; + char expanded[EX_SIZE + 1]; + char MSG_STR[] = "msg,"; + + //!!!KL add two -- debug => same as msg + //!!!KL -- print => goes to stdout + char DEBUG_STR[] = "debug,"; + char PRINT_STR[] = "print,"; + char LOG_STR[] = "log,"; + char LOGOPEN_STR[] = "logopen,"; + char LOGAPPEND_STR[] = "logappend,"; + char LOGCLOSE_STR[] = "logclose"; + char PY_STR[] = "py,"; + char PYRUN_STR[] = "pyrun,"; + char PYRELOAD_STR[] = "pyreload"; + char ABORT_STR[] = "abort,"; + int m, n, start; + + // step over leading white space in comment + m = 0; + while (isspace(comment[m])) + m++; + start = m; + // copy lowercase comment to lc[] + for (n = 0; n < LC_SIZE && comment[m] != 0; m++, n++) + { + lc[n] = tolower(comment[m]); + } + lc[n] = 0; // null terminate + + // compare with MSG, SYSTEM, DEBUG, PRINT + if (startswith(lc, MSG_STR)) + { + MESSAGE(comment + start + strlen(MSG_STR)); + return INTERP_OK; + } + else if (startswith(lc, DEBUG_STR)) + { + convert_param_comment(comment + start + strlen(DEBUG_STR), expanded, + EX_SIZE); + if (_setup.parameters[5599] > 0.0) + MESSAGE(expanded); + return INTERP_OK; + } + else if (startswith(lc, PRINT_STR)) + { + FILE *fd = get_stdout(); + if (fd) + { + convert_param_comment(comment + start + strlen(PRINT_STR), expanded, + EX_SIZE); + fprintf(fd, "%s\n", expanded); + fflush(fd); + } + return INTERP_OK; + } + else if (startswith(lc, LOG_STR)) + { + convert_param_comment(comment + start + strlen(LOG_STR), expanded, + EX_SIZE); + LOG(expanded); + return INTERP_OK; + } + else if (startswith(lc, LOGOPEN_STR)) + { + LOGOPEN(comment + start + strlen(LOGOPEN_STR)); + return INTERP_OK; + } + else if (startswith(lc, LOGAPPEND_STR)) + { + LOGAPPEND(comment + start + strlen(LOGAPPEND_STR)); + return INTERP_OK; + } + else if (startswith(lc, PY_STR)) + { + return py_execute(comment + start + strlen(PY_STR), false); + } + else if (startswith(lc, PYRUN_STR)) + { + return py_execute(comment + start + strlen(PYRUN_STR), true); + } + else if (startswith(lc, PYRELOAD_STR)) + { + return py_reload(); + } + else if (startswith(lc, ABORT_STR)) + { + convert_param_comment(comment + start + strlen(ABORT_STR), expanded, + EX_SIZE); + setSavedError(expanded); // avoid printf interpretation + return INTERP_ERROR; + } + else if (streq(lc, LOGCLOSE_STR)) + { + LOGCLOSE(); + return INTERP_OK; + } + // else it's a real comment + if (enqueue) + enqueue_COMMENT(comment + start); return INTERP_OK; - } - else if (startswith(lc, DEBUG_STR)) - { - convert_param_comment(comment+start+strlen(DEBUG_STR), expanded, - EX_SIZE); - if (_setup.parameters[5599] > 0.0) - MESSAGE(expanded); - return INTERP_OK; - } - else if (startswith(lc, PRINT_STR)) - { - FILE *fd = get_stdout(); - if (fd) { - convert_param_comment(comment+start+strlen(PRINT_STR), expanded, - EX_SIZE); - fprintf(fd, "%s\n", expanded); - fflush(fd); - } - return INTERP_OK; - } - else if (startswith(lc, LOG_STR)) - { - convert_param_comment(comment+start+strlen(LOG_STR), expanded, - EX_SIZE); - LOG(expanded); - return INTERP_OK; - } - else if (startswith(lc, LOGOPEN_STR)) - { - LOGOPEN(comment + start + strlen(LOGOPEN_STR)); - return INTERP_OK; - } - else if (startswith(lc, LOGAPPEND_STR)) - { - LOGAPPEND(comment + start + strlen(LOGAPPEND_STR)); - return INTERP_OK; - } - else if (startswith(lc, PY_STR)) - { - return py_execute(comment + start + strlen(PY_STR), false); - } - else if (startswith(lc, PYRUN_STR)) - { - return py_execute(comment + start + strlen(PYRUN_STR), true); - } - else if (startswith(lc, PYRELOAD_STR)) - { - return py_reload(); - } - else if (startswith(lc, ABORT_STR)) - { - convert_param_comment(comment+start+strlen(ABORT_STR), expanded, - EX_SIZE); - setSavedError(expanded); // avoid printf interpretation - return INTERP_ERROR; - } - else if (streq(lc, LOGCLOSE_STR)) - { - LOGCLOSE(); - return INTERP_OK; - } - // else it's a real comment - if (enqueue) - enqueue_COMMENT(comment + start); - return INTERP_OK; } /****************************************************************************/ @@ -2186,41 +2368,51 @@ int Interp::convert_control_mode( setup_pointer settings) // pointer to machine settings { double tolerance, naivecam_tolerance; - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change control mode with cutter radius compensation on"))); - if (g_code == G_61) { - SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH, 0); - settings->control_mode = CANON_EXACT_PATH; - } else if (g_code == G_61_1) { - SET_MOTION_CONTROL_MODE(CANON_EXACT_STOP, 0); - settings->control_mode = CANON_EXACT_STOP; - } else if (g_code == G_64) { - if (tolerance_in >= 0){ - tolerance = tolerance_in; - } - else{ - tolerance = _setup.tolerance_default; - } - settings->control_mode = CANON_CONTINUOUS; - settings->tolerance = tolerance; - SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, tolerance); - - if (naivecam_tolerance_in >= 0){ - naivecam_tolerance = naivecam_tolerance_in; - } - else if (tolerance_in >= 0){ - // if no naivecam_tolerance specified use same for both - naivecam_tolerance = tolerance_in; - } - else{ - naivecam_tolerance = _setup.naivecam_tolerance_default; - } - settings->naivecam_tolerance = naivecam_tolerance; - SET_NAIVECAM_TOLERANCE(naivecam_tolerance); - - } else - ERS(NCE_BUG_CODE_NOT_G61_G61_1_OR_G64); - return INTERP_OK; + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change control mode with cutter radius compensation on"))); + if (g_code == G_61) + { + SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH, 0); + settings->control_mode = CANON_EXACT_PATH; + } + else if (g_code == G_61_1) + { + SET_MOTION_CONTROL_MODE(CANON_EXACT_STOP, 0); + settings->control_mode = CANON_EXACT_STOP; + } + else if (g_code == G_64) + { + if (tolerance_in >= 0) + { + tolerance = tolerance_in; + } + else + { + tolerance = _setup.tolerance_default; + } + settings->control_mode = CANON_CONTINUOUS; + settings->tolerance = tolerance; + SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, tolerance); + + if (naivecam_tolerance_in >= 0) + { + naivecam_tolerance = naivecam_tolerance_in; + } + else if (tolerance_in >= 0) + { + // if no naivecam_tolerance specified use same for both + naivecam_tolerance = tolerance_in; + } + else + { + naivecam_tolerance = _setup.naivecam_tolerance_default; + } + settings->naivecam_tolerance = naivecam_tolerance; + SET_NAIVECAM_TOLERANCE(naivecam_tolerance); + } + else + ERS(NCE_BUG_CODE_NOT_G61_G61_1_OR_G64); + return INTERP_OK; } /****************************************************************************/ @@ -2294,7 +2486,8 @@ nine coordinate systems. Axis offsets are initialized to zero. */ -void Interp::rotate(double *x, double *y, double theta) { +void Interp::rotate(double *x, double *y, double theta) +{ double xx, yy; double t = D2R(theta); xx = *x * cos(t) - *y * sin(t); @@ -2303,99 +2496,101 @@ void Interp::rotate(double *x, double *y, double theta) { *y = yy; } -int Interp::convert_coordinate_system(int g_code, //!< g_code called (must be one listed above) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_coordinate_system(int g_code, //!< g_code called (must be one listed above) + setup_pointer settings) //!< pointer to machine settings { - int origin; - double *parameters; - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change coordinate systems with cutter radius compensation on"))); - parameters = settings->parameters; - switch (g_code) { - case G_54: - origin = 1; - break; - case G_55: - origin = 2; - break; - case G_56: - origin = 3; - break; - case G_57: - origin = 4; - break; - case G_58: - origin = 5; - break; - case G_59: - origin = 6; - break; - case G_59_1: - origin = 7; - break; - case G_59_2: - origin = 8; - break; - case G_59_3: - origin = 9; - break; - default: - ERS(NCE_BUG_CODE_NOT_IN_RANGE_G54_TO_G593); - } - - if (origin == settings->origin_index) { /* already using this origin */ + int origin; + double *parameters; + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change coordinate systems with cutter radius compensation on"))); + parameters = settings->parameters; + switch (g_code) + { + case G_54: + origin = 1; + break; + case G_55: + origin = 2; + break; + case G_56: + origin = 3; + break; + case G_57: + origin = 4; + break; + case G_58: + origin = 5; + break; + case G_59: + origin = 6; + break; + case G_59_1: + origin = 7; + break; + case G_59_2: + origin = 8; + break; + case G_59_3: + origin = 9; + break; + default: + ERS(NCE_BUG_CODE_NOT_IN_RANGE_G54_TO_G593); + } + + if (origin == settings->origin_index) + { /* already using this origin */ #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: continuing to use same coordinate system"); + enqueue_COMMENT("interpreter: continuing to use same coordinate system"); #endif + return INTERP_OK; + } + + // move the current point into the new system + find_current_in_system(settings, origin, + &settings->current_x, &settings->current_y, &settings->current_z, + &settings->AA_current, &settings->BB_current, &settings->CC_current, + &settings->u_current, &settings->v_current, &settings->w_current); + + // remember that this is new system + settings->origin_index = origin; + parameters[5220] = (double)origin; + + // load the origin of the newly-selected system + settings->origin_offset_x = USER_TO_PROGRAM_LEN(parameters[5201 + (origin * 20)]); + settings->origin_offset_y = USER_TO_PROGRAM_LEN(parameters[5202 + (origin * 20)]); + settings->origin_offset_z = USER_TO_PROGRAM_LEN(parameters[5203 + (origin * 20)]); + settings->AA_origin_offset = USER_TO_PROGRAM_ANG(parameters[5204 + (origin * 20)]); + settings->BB_origin_offset = USER_TO_PROGRAM_ANG(parameters[5205 + (origin * 20)]); + settings->CC_origin_offset = USER_TO_PROGRAM_ANG(parameters[5206 + (origin * 20)]); + settings->u_origin_offset = USER_TO_PROGRAM_LEN(parameters[5207 + (origin * 20)]); + settings->v_origin_offset = USER_TO_PROGRAM_LEN(parameters[5208 + (origin * 20)]); + settings->w_origin_offset = USER_TO_PROGRAM_LEN(parameters[5209 + (origin * 20)]); + settings->rotation_xy = parameters[5210 + (origin * 20)]; + + SET_G5X_OFFSET(origin, + settings->origin_offset_x, + settings->origin_offset_y, + settings->origin_offset_z, + settings->AA_origin_offset, + settings->BB_origin_offset, + settings->CC_origin_offset, + settings->u_origin_offset, + settings->v_origin_offset, + settings->w_origin_offset); + + SET_G92_OFFSET(settings->axis_offset_x, + settings->axis_offset_y, + settings->axis_offset_z, + settings->AA_axis_offset, + settings->BB_axis_offset, + settings->CC_axis_offset, + settings->u_axis_offset, + settings->v_axis_offset, + settings->w_axis_offset); + + SET_XY_ROTATION(settings->rotation_xy); return INTERP_OK; - } - - // move the current point into the new system - find_current_in_system(settings, origin, - &settings->current_x, &settings->current_y, &settings->current_z, - &settings->AA_current, &settings->BB_current, &settings->CC_current, - &settings->u_current, &settings->v_current, &settings->w_current); - - // remember that this is new system - settings->origin_index = origin; - parameters[5220] = (double) origin; - - // load the origin of the newly-selected system - settings->origin_offset_x = USER_TO_PROGRAM_LEN(parameters[5201 + (origin * 20)]); - settings->origin_offset_y = USER_TO_PROGRAM_LEN(parameters[5202 + (origin * 20)]); - settings->origin_offset_z = USER_TO_PROGRAM_LEN(parameters[5203 + (origin * 20)]); - settings->AA_origin_offset = USER_TO_PROGRAM_ANG(parameters[5204 + (origin * 20)]); - settings->BB_origin_offset = USER_TO_PROGRAM_ANG(parameters[5205 + (origin * 20)]); - settings->CC_origin_offset = USER_TO_PROGRAM_ANG(parameters[5206 + (origin * 20)]); - settings->u_origin_offset = USER_TO_PROGRAM_LEN(parameters[5207 + (origin * 20)]); - settings->v_origin_offset = USER_TO_PROGRAM_LEN(parameters[5208 + (origin * 20)]); - settings->w_origin_offset = USER_TO_PROGRAM_LEN(parameters[5209 + (origin * 20)]); - settings->rotation_xy = parameters[5210 + (origin * 20)]; - - SET_G5X_OFFSET(origin, - settings->origin_offset_x, - settings->origin_offset_y, - settings->origin_offset_z, - settings->AA_origin_offset, - settings->BB_origin_offset, - settings->CC_origin_offset, - settings->u_origin_offset, - settings->v_origin_offset, - settings->w_origin_offset); - - SET_G92_OFFSET(settings->axis_offset_x, - settings->axis_offset_y, - settings->axis_offset_z, - settings->AA_axis_offset, - settings->BB_axis_offset, - settings->CC_axis_offset, - settings->u_axis_offset, - settings->v_axis_offset, - settings->w_axis_offset); - - SET_XY_ROTATION(settings->rotation_xy); - return INTERP_OK; } /****************************************************************************/ @@ -2423,25 +2618,35 @@ Called by: convert_g */ -int Interp::convert_cutter_compensation(int g_code, //!< must be G_40, G_41, or G_42 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_cutter_compensation(int g_code, //!< must be G_40, G_41, or G_42 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_40) { - CHP(convert_cutter_compensation_off(settings)); - } else if (g_code == G_41) { - CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); - } else if (g_code == G_42) { - CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); - } else if (g_code == G_41_1) { - CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); - } else if (g_code == G_42_1) { - CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); - } else - ERS("BUG: Code not G40, G41, G41.1, G42, G42.1"); - - return INTERP_OK; + if (g_code == G_40) + { + CHP(convert_cutter_compensation_off(settings)); + } + else if (g_code == G_41) + { + CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); + } + else if (g_code == G_42) + { + CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); + } + else if (g_code == G_41_1) + { + CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); + } + else if (g_code == G_42_1) + { + CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); + } + else + ERS("BUG: Code not G40, G41, G41.1, G42, G42.1"); + + return INTERP_OK; } /****************************************************************************/ @@ -2461,25 +2666,26 @@ Called by: convert_cutter_compensation */ -int Interp::convert_cutter_compensation_off(setup_pointer settings) //!< pointer to machine settings +int Interp::convert_cutter_compensation_off(setup_pointer settings) //!< pointer to machine settings { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: cutter radius compensation off"); + enqueue_COMMENT("interpreter: cutter radius compensation off"); #endif - if(settings->cutter_comp_side != CUTTER_COMP::OFF && settings->cutter_comp_radius > 0.0 && - !settings->cutter_comp_firstmove) { - double cx, cy, cz; - comp_get_current(settings, &cx, &cy, &cz); - CHP(move_endpoint_and_flush(settings, cx, cy)); - dequeue_canons(settings); - settings->current_x = settings->program_x; - settings->current_y = settings->program_y; - settings->current_z = settings->program_z; - settings->arc_not_allowed = true; - } - settings->cutter_comp_side = CUTTER_COMP::OFF; - settings->cutter_comp_firstmove = true; - return INTERP_OK; + if (settings->cutter_comp_side != CUTTER_COMP::OFF && settings->cutter_comp_radius > 0.0 && + !settings->cutter_comp_firstmove) + { + double cx, cy, cz; + comp_get_current(settings, &cx, &cy, &cz); + CHP(move_endpoint_and_flush(settings, cx, cy)); + dequeue_canons(settings); + settings->current_x = settings->program_x; + settings->current_y = settings->program_y; + settings->current_z = settings->program_z; + settings->arc_not_allowed = true; + } + settings->cutter_comp_side = CUTTER_COMP::OFF; + settings->cutter_comp_firstmove = true; + return INTERP_OK; } /****************************************************************************/ @@ -2534,60 +2740,70 @@ convex corners. */ -int Interp::convert_cutter_compensation_on(CUTTER_COMP side, //!< side of path cutter is on (LEFT or RIGHT) - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_cutter_compensation_on(CUTTER_COMP side, //!< side of path cutter is on (LEFT or RIGHT) + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - double radius; - int idx, orientation; - - CHKS((settings->plane != CANON_PLANE::XY && settings->plane != CANON_PLANE::XZ), - NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - NCE_CANNOT_TURN_CUTTER_RADIUS_COMP_ON_WHEN_ON); - if(block->g_modes[GM_CUTTER_COMP] == G_41_1 || block->g_modes[GM_CUTTER_COMP] == G_42_1) { - CHKS((!block->d_flag), - _("G%d.1 with no D word"), block->g_modes[GM_CUTTER_COMP]/10 ); - radius = block->d_number_float / 2; - if(block->l_number != -1) { - CHKS((settings->plane != CANON_PLANE::XZ), _("G%d.1 with L word, but plane is not G18"), block->g_modes[GM_CUTTER_COMP]/10); - orientation = block->l_number; - } else { - orientation = 0; - } - } else { - if(!block->d_flag) { - idx = 0; - } else { - int tool; - CHKS(!is_near_int(&tool, block->d_number_float), - _("G%d requires D word to be a whole number"), - block->g_modes[GM_CUTTER_COMP]/10); - CHKS((tool < 0), NCE_NEGATIVE_D_WORD_TOOL_RADIUS_INDEX_USED); - CHP((find_tool_index(settings, tool, &idx))); - } - radius = USER_TO_PROGRAM_LEN(settings->tool_table[idx].diameter) / 2.0; - orientation = settings->tool_table[idx].orientation; - CHKS((settings->plane != CANON_PLANE::XZ && orientation != 0 && orientation != 9), _("G%d with lathe tool, but plane is not G18"), block->g_modes[GM_CUTTER_COMP]/10); - } - if (radius < 0.0) { /* switch side & make radius positive if radius negative */ - radius = -radius; - if (side == CUTTER_COMP::RIGHT) - side = CUTTER_COMP::LEFT; + double radius; + int idx, orientation; + + CHKS((settings->plane != CANON_PLANE::XY && settings->plane != CANON_PLANE::XZ), + NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + NCE_CANNOT_TURN_CUTTER_RADIUS_COMP_ON_WHEN_ON); + if (block->g_modes[GM_CUTTER_COMP] == G_41_1 || block->g_modes[GM_CUTTER_COMP] == G_42_1) + { + CHKS((!block->d_flag), + _("G%d.1 with no D word"), block->g_modes[GM_CUTTER_COMP] / 10); + radius = block->d_number_float / 2; + if (block->l_number != -1) + { + CHKS((settings->plane != CANON_PLANE::XZ), _("G%d.1 with L word, but plane is not G18"), block->g_modes[GM_CUTTER_COMP] / 10); + orientation = block->l_number; + } + else + { + orientation = 0; + } + } else - side = CUTTER_COMP::RIGHT; - } + { + if (!block->d_flag) + { + idx = 0; + } + else + { + int tool; + CHKS(!is_near_int(&tool, block->d_number_float), + _("G%d requires D word to be a whole number"), + block->g_modes[GM_CUTTER_COMP] / 10); + CHKS((tool < 0), NCE_NEGATIVE_D_WORD_TOOL_RADIUS_INDEX_USED); + CHP((find_tool_index(settings, tool, &idx))); + } + radius = USER_TO_PROGRAM_LEN(settings->tool_table[idx].diameter) / 2.0; + orientation = settings->tool_table[idx].orientation; + CHKS((settings->plane != CANON_PLANE::XZ && orientation != 0 && orientation != 9), _("G%d with lathe tool, but plane is not G18"), block->g_modes[GM_CUTTER_COMP] / 10); + } + if (radius < 0.0) + { /* switch side & make radius positive if radius negative */ + radius = -radius; + if (side == CUTTER_COMP::RIGHT) + side = CUTTER_COMP::LEFT; + else + side = CUTTER_COMP::RIGHT; + } #ifdef DEBUG_EMC - if (side == CUTTER_COMP::RIGHT) - enqueue_COMMENT("interpreter: cutter radius compensation on right"); - else - enqueue_COMMENT("interpreter: cutter radius compensation on left"); + if (side == CUTTER_COMP::RIGHT) + enqueue_COMMENT("interpreter: cutter radius compensation on right"); + else + enqueue_COMMENT("interpreter: cutter radius compensation on left"); #endif - settings->cutter_comp_radius = radius; - settings->cutter_comp_orientation = orientation; - settings->cutter_comp_side = side; - return INTERP_OK; + settings->cutter_comp_radius = radius; + settings->cutter_comp_orientation = orientation; + settings->cutter_comp_side = side; + return INTERP_OK; } /****************************************************************************/ @@ -2615,26 +2831,32 @@ Called by: convert_g. // OK to call this in a concave corner with a deferred move, since it // doesn't issue any CANONs -int Interp::convert_distance_mode(int g_code, //!< g_code being executed (must be G_90 or G_91) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_distance_mode(int g_code, //!< g_code being executed (must be G_90 or G_91) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_90) { - if (settings->distance_mode != DISTANCE_MODE::ABSOLUTE) { + if (g_code == G_90) + { + if (settings->distance_mode != DISTANCE_MODE::ABSOLUTE) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: distance mode changed to absolute"); + enqueue_COMMENT("interpreter: distance mode changed to absolute"); #endif - settings->distance_mode = DISTANCE_MODE::ABSOLUTE; + settings->distance_mode = DISTANCE_MODE::ABSOLUTE; + } } - } else if (g_code == G_91) { - if (settings->distance_mode != DISTANCE_MODE::INCREMENTAL) { + else if (g_code == G_91) + { + if (settings->distance_mode != DISTANCE_MODE::INCREMENTAL) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: distance mode changed to incremental"); + enqueue_COMMENT("interpreter: distance mode changed to incremental"); #endif - settings->distance_mode = DISTANCE_MODE::INCREMENTAL; + settings->distance_mode = DISTANCE_MODE::INCREMENTAL; + } } - } else - ERS(NCE_BUG_CODE_NOT_G90_OR_G91); - return INTERP_OK; + else + ERS(NCE_BUG_CODE_NOT_G90_OR_G91); + return INTERP_OK; } /****************************************************************************/ @@ -2662,26 +2884,32 @@ Called by: convert_g. // OK to call this in a concave corner with a deferred move, since it // doesn't issue any CANONs except comments (and who cares where the comments are) -int Interp::convert_ijk_distance_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_ijk_distance_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_90_1) { - if (settings->ijk_distance_mode != DISTANCE_MODE::ABSOLUTE) { + if (g_code == G_90_1) + { + if (settings->ijk_distance_mode != DISTANCE_MODE::ABSOLUTE) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: IJK distance mode changed to absolute"); + enqueue_COMMENT("interpreter: IJK distance mode changed to absolute"); #endif - settings->ijk_distance_mode = DISTANCE_MODE::ABSOLUTE; + settings->ijk_distance_mode = DISTANCE_MODE::ABSOLUTE; + } } - } else if (g_code == G_91_1) { - if (settings->ijk_distance_mode != DISTANCE_MODE::INCREMENTAL) { + else if (g_code == G_91_1) + { + if (settings->ijk_distance_mode != DISTANCE_MODE::INCREMENTAL) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: IJK distance mode changed to incremental"); + enqueue_COMMENT("interpreter: IJK distance mode changed to incremental"); #endif - settings->ijk_distance_mode = DISTANCE_MODE::INCREMENTAL; + settings->ijk_distance_mode = DISTANCE_MODE::INCREMENTAL; + } } - } else - ERS(NCE_BUG_CODE_NOT_G90_OR_G91); - return INTERP_OK; + else + ERS(NCE_BUG_CODE_NOT_G90_OR_G91); + return INTERP_OK; } /****************************************************************************/ @@ -2706,48 +2934,55 @@ Called by: convert_g. */ -int Interp::convert_lathe_diameter_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) - block_pointer block, //!< pointer to current block - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_lathe_diameter_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) + block_pointer block, //!< pointer to current block + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_7) { - if (!settings->lathe_diameter_mode) { - if(block->x_flag) - { - block->x_number /= 2; //Apply scaling now - } - if(block->motion_to_be == G_76) { - block->i_number /= 2; - block->j_number /= 2; - block->k_number /= 2; - } + if (g_code == G_7) + { + if (!settings->lathe_diameter_mode) + { + if (block->x_flag) + { + block->x_number /= 2; // Apply scaling now + } + if (block->motion_to_be == G_76) + { + block->i_number /= 2; + block->j_number /= 2; + block->k_number /= 2; + } #ifdef DEBUG_EMC - COMMENT("interpreter: Lathe diameter mode changed to diameter"); + COMMENT("interpreter: Lathe diameter mode changed to diameter"); #endif - settings->lathe_diameter_mode = true; - } - } else if (g_code == G_8) { - if (settings->lathe_diameter_mode) { - if(block->x_flag) - { - block->x_number *= 2; //Remove any existing scaling - } - if(block->motion_to_be == G_76) { - block->i_number *= 2; - block->j_number *= 2; - block->k_number *= 2; - } + settings->lathe_diameter_mode = true; + } + } + else if (g_code == G_8) + { + if (settings->lathe_diameter_mode) + { + if (block->x_flag) + { + block->x_number *= 2; // Remove any existing scaling + } + if (block->motion_to_be == G_76) + { + block->i_number *= 2; + block->j_number *= 2; + block->k_number *= 2; + } #ifdef DEBUG_EMC - COMMENT("interpreter: Lathe diameter mode changed to radius"); + COMMENT("interpreter: Lathe diameter mode changed to radius"); #endif - settings->lathe_diameter_mode = false; + settings->lathe_diameter_mode = false; + } } - } else - ERS("BUG: Code not G7 or G8"); - return INTERP_OK; + else + ERS("BUG: Code not G7 or G8"); + return INTERP_OK; } - /****************************************************************************/ /*! convert_dwell @@ -2761,10 +2996,10 @@ Called by: convert_g. */ -int Interp::convert_dwell(setup_pointer /*settings*/, double time) //!< time in seconds to dwell */ +int Interp::convert_dwell(setup_pointer /*settings*/, double time) //!< time in seconds to dwell */ { - enqueue_DWELL(time); - return INTERP_OK; + enqueue_DWELL(time); + return INTERP_OK; } /****************************************************************************/ @@ -2789,34 +3024,40 @@ Called by: execute_block. */ -int Interp::convert_feed_mode(int g_code, //!< g_code being executed (must be G_93, G_94 or G_95) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_feed_mode(int g_code, //!< g_code being executed (must be G_93, G_94 or G_95) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_93) { + if (g_code == G_93) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: feed mode set to inverse time"); + enqueue_COMMENT("interpreter: feed mode set to inverse time"); #endif - settings->feed_mode = FEED_MODE::INVERSE_TIME; - enqueue_SET_FEED_MODE(0, 0); - } else if (g_code == G_94) { + settings->feed_mode = FEED_MODE::INVERSE_TIME; + enqueue_SET_FEED_MODE(0, 0); + } + else if (g_code == G_94) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: feed mode set to units per minute"); + enqueue_COMMENT("interpreter: feed mode set to units per minute"); #endif - settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; - enqueue_SET_FEED_MODE(0, 0); - settings->feed_rate = 0.0; - enqueue_SET_FEED_RATE(0); - } else if(g_code == G_95) { + settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; + enqueue_SET_FEED_MODE(0, 0); + settings->feed_rate = 0.0; + enqueue_SET_FEED_RATE(0); + } + else if (g_code == G_95) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: feed mode set to units per revolution"); + enqueue_COMMENT("interpreter: feed mode set to units per revolution"); #endif - settings->feed_mode = FEED_MODE::UNITS_PER_REVOLUTION; - enqueue_SET_FEED_MODE(settings->active_spindle , 1); - settings->feed_rate = 0.0; - enqueue_SET_FEED_RATE(0); - } else - ERS("BUG: Code not G93, G94, or G95"); - return INTERP_OK; + settings->feed_mode = FEED_MODE::UNITS_PER_REVOLUTION; + enqueue_SET_FEED_MODE(settings->active_spindle, 1); + settings->feed_rate = 0.0; + enqueue_SET_FEED_RATE(0); + } + else + ERS("BUG: Code not G93, G94, or G95"); + return INTERP_OK; } /****************************************************************************/ @@ -2836,12 +3077,12 @@ This is called only if the feed mode is UNITS_PER_MINUTE or UNITS_PER_REVOLUTION */ -int Interp::convert_feed_rate(block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_feed_rate(block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - settings->feed_rate = block->f_number; - enqueue_SET_FEED_RATE(block->f_number); - return INTERP_OK; + settings->feed_rate = block->f_number; + enqueue_SET_FEED_RATE(block->f_number); + return INTERP_OK; } /****************************************************************************/ @@ -2902,68 +3143,82 @@ until most of the other modes are set. */ -int Interp::convert_g(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_g(block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { int status; - if ((block->g_modes[GM_MODAL_0] == G_4) && ONCE(STEP_DWELL)) { - status = convert_dwell(settings, block->p_number); - CHP(status); + if ((block->g_modes[GM_MODAL_0] == G_4) && ONCE(STEP_DWELL)) + { + status = convert_dwell(settings, block->p_number); + CHP(status); + } + if ((block->g_modes[GM_SET_PLANE] != -1) && ONCE(STEP_SET_PLANE)) + { + status = convert_set_plane(block->g_modes[GM_SET_PLANE], settings); + CHP(status); } - if ((block->g_modes[GM_SET_PLANE] != -1) && ONCE(STEP_SET_PLANE)) { - status = convert_set_plane(block->g_modes[GM_SET_PLANE], settings); - CHP(status); + if ((block->g_modes[GM_LENGTH_UNITS] != -1) && ONCE(STEP_LENGTH_UNITS)) + { + status = convert_length_units(block->g_modes[GM_LENGTH_UNITS], settings); + CHP(status); } - if ((block->g_modes[GM_LENGTH_UNITS] != -1) && ONCE(STEP_LENGTH_UNITS)) { - status = convert_length_units(block->g_modes[GM_LENGTH_UNITS], settings); - CHP(status); + if ((block->g_modes[GM_LATHE_DIAMETER_MODE] != -1) && ONCE(STEP_LATHE_DIAMETER_MODE)) + { + status = convert_lathe_diameter_mode(block->g_modes[GM_LATHE_DIAMETER_MODE], block, settings); + CHP(status); } - if ((block->g_modes[GM_LATHE_DIAMETER_MODE] != -1) && ONCE(STEP_LATHE_DIAMETER_MODE)) { - status = convert_lathe_diameter_mode(block->g_modes[GM_LATHE_DIAMETER_MODE], block, settings); - CHP(status); + if ((block->g_modes[GM_CUTTER_COMP] != -1) && ONCE(STEP_CUTTER_COMP)) + { + status = convert_cutter_compensation(block->g_modes[GM_CUTTER_COMP], block, settings); + CHP(status); } - if ((block->g_modes[GM_CUTTER_COMP] != -1) && ONCE(STEP_CUTTER_COMP)) { - status = convert_cutter_compensation(block->g_modes[GM_CUTTER_COMP], block, settings); - CHP(status); + if ((block->g_modes[GM_TOOL_LENGTH_OFFSET] != -1) && ONCE(STEP_TOOL_LENGTH_OFFSET)) + { + status = convert_tool_length_offset(block->g_modes[GM_TOOL_LENGTH_OFFSET], block, settings); + CHP(status); } - if ((block->g_modes[GM_TOOL_LENGTH_OFFSET] != -1) && ONCE(STEP_TOOL_LENGTH_OFFSET)){ - status = convert_tool_length_offset(block->g_modes[GM_TOOL_LENGTH_OFFSET], block, settings); - CHP(status); + if ((block->g_modes[GM_COORD_SYSTEM] != -1) && ONCE(STEP_COORD_SYSTEM)) + { + status = convert_coordinate_system(block->g_modes[GM_COORD_SYSTEM], settings); + CHP(status); } - if ((block->g_modes[GM_COORD_SYSTEM] != -1) && ONCE(STEP_COORD_SYSTEM)){ - status = convert_coordinate_system(block->g_modes[GM_COORD_SYSTEM], settings); - CHP(status); + if ((block->g_modes[GM_CONTROL_MODE] != -1) && ONCE(STEP_CONTROL_MODE)) + { + status = convert_control_mode(block->g_modes[GM_CONTROL_MODE], + block->p_number, block->q_number, settings); + CHP(status); } - if ((block->g_modes[GM_CONTROL_MODE] != -1) && ONCE(STEP_CONTROL_MODE)) { - status = convert_control_mode(block->g_modes[GM_CONTROL_MODE], - block->p_number, block->q_number, settings); - CHP(status); + if ((block->g_modes[GM_DISTANCE_MODE] != -1) && ONCE(STEP_DISTANCE_MODE)) + { + status = convert_distance_mode(block->g_modes[GM_DISTANCE_MODE], settings); + CHP(status); } - if ((block->g_modes[GM_DISTANCE_MODE] != -1) && ONCE(STEP_DISTANCE_MODE)) { - status = convert_distance_mode(block->g_modes[GM_DISTANCE_MODE], settings); - CHP(status); + if ((block->g_modes[GM_IJK_DISTANCE_MODE] != -1) && ONCE(STEP_IJK_DISTANCE_MODE)) + { + status = convert_ijk_distance_mode(block->g_modes[GM_IJK_DISTANCE_MODE], settings); + CHP(status); } - if ((block->g_modes[GM_IJK_DISTANCE_MODE] != -1) && ONCE(STEP_IJK_DISTANCE_MODE)){ - status = convert_ijk_distance_mode(block->g_modes[GM_IJK_DISTANCE_MODE], settings); - CHP(status); + if ((block->g_modes[GM_RETRACT_MODE] != -1) && ONCE(STEP_RETRACT_MODE)) + { + status = convert_retract_mode(block->g_modes[GM_RETRACT_MODE], settings); + CHP(status); } - if ((block->g_modes[GM_RETRACT_MODE] != -1) && ONCE(STEP_RETRACT_MODE)){ - status = convert_retract_mode(block->g_modes[GM_RETRACT_MODE], settings); - CHP(status); + if ((block->g_modes[GM_MODAL_0] != -1) && ONCE(STEP_MODAL_0)) + { + status = convert_modal_0(block->g_modes[GM_MODAL_0], block, settings); + CHP(status); } - if ((block->g_modes[GM_MODAL_0] != -1) && ONCE(STEP_MODAL_0)) { - status = convert_modal_0(block->g_modes[GM_MODAL_0], block, settings); - CHP(status); + if ((block->g_modes[GM_G92_IS_APPLIED] != -1) && ONCE(STEP_G92_IS_APPLIED)) + { + status = convert_g92_is_applied(block->g_modes[GM_G92_IS_APPLIED], block, settings); } - if ((block->g_modes[GM_G92_IS_APPLIED] != -1) && ONCE(STEP_G92_IS_APPLIED)) { - status = convert_g92_is_applied(block->g_modes[GM_G92_IS_APPLIED], block, settings); + if ((block->motion_to_be != -1) && ONCE(STEP_MOTION)) + { + status = convert_motion(block->motion_to_be, block, settings); + CHP(status); } - if ((block->motion_to_be != -1) && ONCE(STEP_MOTION)){ - status = convert_motion(block->motion_to_be, block, settings); - CHP(status); - } - return INTERP_OK; + return INTERP_OK; } /*! convert_savehome @@ -2982,10 +3237,12 @@ Saves the absolute coordinates of the current point in parameters 5161-5169 */ -int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) { +int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) +{ double *p = s->parameters; - if(s->cutter_comp_side != CUTTER_COMP::OFF) { + if (s->cutter_comp_side != CUTTER_COMP::OFF) + { ERS(_("Cannot set reference point with cutter compensation in effect")); } @@ -3002,22 +3259,29 @@ int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) double v = PROGRAM_TO_USER_LEN(s->v_current + s->tool_offset.v + s->v_origin_offset + s->v_axis_offset); double w = PROGRAM_TO_USER_LEN(s->w_current + s->tool_offset.w + s->w_origin_offset + s->w_axis_offset); - if(s->a_axis_wrapped) { + if (s->a_axis_wrapped) + { a = fmod(a, 360.0); - if(a<0) a += 360.0; + if (a < 0) + a += 360.0; } - if(s->b_axis_wrapped) { + if (s->b_axis_wrapped) + { b = fmod(b, 360.0); - if(b<0) b += 360.0; + if (b < 0) + b += 360.0; } - if(s->c_axis_wrapped) { + if (s->c_axis_wrapped) + { c = fmod(c, 360.0); - if(c<0) c += 360.0; + if (c < 0) + c += 360.0; } - if(code == G_28_1) { + if (code == G_28_1) + { p[5161] = x; p[5162] = y; p[5163] = z; @@ -3027,7 +3291,9 @@ int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) p[5167] = u; p[5168] = v; p[5169] = w; - } else if(code == G_30_1) { + } + else if (code == G_30_1) + { p[5181] = x; p[5182] = y; p[5183] = z; @@ -3037,13 +3303,14 @@ int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) p[5187] = u; p[5188] = v; p[5189] = w; - } else { + } + else + { ERS("BUG: Code not G28.1 or G38.1"); } return INTERP_OK; } - /****************************************************************************/ /*! convert_home @@ -3079,148 +3346,163 @@ Called by: convert_modal_0. */ -int Interp::convert_home(int move, //!< G-code, must be G_28 or G_30 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings -{ - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end; - double v_end; - double w_end; - double end_x_home; - double end_y_home; - double end_z_home; - double AA_end_home; - double BB_end_home; - double CC_end_home; - double u_end_home; - double v_end_home; - double w_end_home; - double *parameters; - - parameters = settings->parameters; - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end)); - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - NCE_CANNOT_USE_G28_OR_G30_WITH_CUTTER_RADIUS_COMP); - - // waypoint is in currently active coordinate system - - // move indexers first, one at a time - // JOINTS_AXES settings->*_indexer_jnum == -1 means notused - if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum) ) - issue_straight_index(3,settings->a_indexer_jnum, AA_end, block->line_number, settings); - if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum) ) - issue_straight_index(4,settings->b_indexer_jnum, BB_end, block->line_number, settings); - if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum) ) - issue_straight_index(5,settings->c_indexer_jnum, CC_end, block->line_number, settings); - - // Create a state tag and dump it to canon - write_canon_state_tag(block, settings); - - STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - - if (move == G_28) { - find_relative(USER_TO_PROGRAM_LEN(parameters[5161]), - USER_TO_PROGRAM_LEN(parameters[5162]), - USER_TO_PROGRAM_LEN(parameters[5163]), - USER_TO_PROGRAM_ANG(parameters[5164]), - USER_TO_PROGRAM_ANG(parameters[5165]), - USER_TO_PROGRAM_ANG(parameters[5166]), - USER_TO_PROGRAM_LEN(parameters[5167]), - USER_TO_PROGRAM_LEN(parameters[5168]), - USER_TO_PROGRAM_LEN(parameters[5169]), - &end_x_home, &end_y_home, &end_z_home, - &AA_end_home, &BB_end_home, &CC_end_home, - &u_end_home, &v_end_home, &w_end_home, settings); - } else if (move == G_30) { - find_relative(USER_TO_PROGRAM_LEN(parameters[5181]), - USER_TO_PROGRAM_LEN(parameters[5182]), - USER_TO_PROGRAM_LEN(parameters[5183]), - USER_TO_PROGRAM_ANG(parameters[5184]), - USER_TO_PROGRAM_ANG(parameters[5185]), - USER_TO_PROGRAM_ANG(parameters[5186]), - USER_TO_PROGRAM_LEN(parameters[5187]), - USER_TO_PROGRAM_LEN(parameters[5188]), - USER_TO_PROGRAM_LEN(parameters[5189]), - &end_x_home, &end_y_home, &end_z_home, - &AA_end_home, &BB_end_home, &CC_end_home, - &u_end_home, &v_end_home, &w_end_home, settings); - } else - ERS(NCE_BUG_CODE_NOT_G28_OR_G30); - - // if any axes are specified, home only those axes after the waypoint - // (both fanuc & haas, contrary to emc historical operation) - - if (block->x_flag) end_x = end_x_home; - if (block->y_flag) end_y = end_y_home; - if (block->z_flag) end_z = end_z_home; - if (block->a_flag) AA_end = AA_end_home; - if (block->b_flag) BB_end = BB_end_home; - if (block->c_flag) CC_end = CC_end_home; - if (block->u_flag) u_end = u_end_home; - if (block->v_flag) v_end = v_end_home; - if (block->w_flag) w_end = w_end_home; - - // but, if no axes are specified, home all of them - // (haas does this, emc historical did, throws an error in fanuc) - - if (!block->x_flag && !block->y_flag && !block->z_flag && - !block->a_flag && !block->b_flag && !block->c_flag && - !block->u_flag && !block->v_flag && !block->w_flag) { - end_x = end_x_home; - end_y = end_y_home; - end_z = end_z_home; - AA_end = AA_end_home; - BB_end = BB_end_home; - CC_end = CC_end_home; - u_end = u_end_home; - v_end = v_end_home; - w_end = w_end_home; - } - - // move indexers first, one at a time - // JOINTS_AXES settings->*_indexer_jnum == -1 means notused - if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum) ) - issue_straight_index(3,settings->a_indexer_jnum, AA_end, block->line_number, settings); - if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum) ) - issue_straight_index(4,settings->b_indexer_jnum, BB_end, block->line_number, settings); - if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum) ) - issue_straight_index(5,settings->c_indexer_jnum, CC_end, block->line_number, settings); - - STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - - return INTERP_OK; +int Interp::convert_home(int move, //!< G-code, must be G_28 or G_30 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings +{ + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end; + double v_end; + double w_end; + double end_x_home; + double end_y_home; + double end_z_home; + double AA_end_home; + double BB_end_home; + double CC_end_home; + double u_end_home; + double v_end_home; + double w_end_home; + double *parameters; + + parameters = settings->parameters; + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end)); + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + NCE_CANNOT_USE_G28_OR_G30_WITH_CUTTER_RADIUS_COMP); + + // waypoint is in currently active coordinate system + + // move indexers first, one at a time + // JOINTS_AXES settings->*_indexer_jnum == -1 means notused + if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum)) + issue_straight_index(3, settings->a_indexer_jnum, AA_end, block->line_number, settings); + if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum)) + issue_straight_index(4, settings->b_indexer_jnum, BB_end, block->line_number, settings); + if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum)) + issue_straight_index(5, settings->c_indexer_jnum, CC_end, block->line_number, settings); + + // Create a state tag and dump it to canon + write_canon_state_tag(block, settings); + + + STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + + if (move == G_28) + { + find_relative(USER_TO_PROGRAM_LEN(parameters[5161]), + USER_TO_PROGRAM_LEN(parameters[5162]), + USER_TO_PROGRAM_LEN(parameters[5163]), + USER_TO_PROGRAM_ANG(parameters[5164]), + USER_TO_PROGRAM_ANG(parameters[5165]), + USER_TO_PROGRAM_ANG(parameters[5166]), + USER_TO_PROGRAM_LEN(parameters[5167]), + USER_TO_PROGRAM_LEN(parameters[5168]), + USER_TO_PROGRAM_LEN(parameters[5169]), + &end_x_home, &end_y_home, &end_z_home, + &AA_end_home, &BB_end_home, &CC_end_home, + &u_end_home, &v_end_home, &w_end_home, settings); + } + else if (move == G_30) + { + find_relative(USER_TO_PROGRAM_LEN(parameters[5181]), + USER_TO_PROGRAM_LEN(parameters[5182]), + USER_TO_PROGRAM_LEN(parameters[5183]), + USER_TO_PROGRAM_ANG(parameters[5184]), + USER_TO_PROGRAM_ANG(parameters[5185]), + USER_TO_PROGRAM_ANG(parameters[5186]), + USER_TO_PROGRAM_LEN(parameters[5187]), + USER_TO_PROGRAM_LEN(parameters[5188]), + USER_TO_PROGRAM_LEN(parameters[5189]), + &end_x_home, &end_y_home, &end_z_home, + &AA_end_home, &BB_end_home, &CC_end_home, + &u_end_home, &v_end_home, &w_end_home, settings); + } + else + ERS(NCE_BUG_CODE_NOT_G28_OR_G30); + + // if any axes are specified, home only those axes after the waypoint + // (both fanuc & haas, contrary to emc historical operation) + + if (block->x_flag) + end_x = end_x_home; + if (block->y_flag) + end_y = end_y_home; + if (block->z_flag) + end_z = end_z_home; + if (block->a_flag) + AA_end = AA_end_home; + if (block->b_flag) + BB_end = BB_end_home; + if (block->c_flag) + CC_end = CC_end_home; + if (block->u_flag) + u_end = u_end_home; + if (block->v_flag) + v_end = v_end_home; + if (block->w_flag) + w_end = w_end_home; + + // but, if no axes are specified, home all of them + // (haas does this, emc historical did, throws an error in fanuc) + + if (!block->x_flag && !block->y_flag && !block->z_flag && + !block->a_flag && !block->b_flag && !block->c_flag && + !block->u_flag && !block->v_flag && !block->w_flag) + { + end_x = end_x_home; + end_y = end_y_home; + end_z = end_z_home; + AA_end = AA_end_home; + BB_end = BB_end_home; + CC_end = CC_end_home; + u_end = u_end_home; + v_end = v_end_home; + w_end = w_end_home; + } + + // move indexers first, one at a time + // JOINTS_AXES settings->*_indexer_jnum == -1 means notused + if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum)) + issue_straight_index(3, settings->a_indexer_jnum, AA_end, block->line_number, settings); + if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum)) + issue_straight_index(4, settings->b_indexer_jnum, BB_end, block->line_number, settings); + if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum)) + issue_straight_index(5, settings->c_indexer_jnum, CC_end, block->line_number, settings); + + STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + + return INTERP_OK; } /****************************************************************************/ @@ -3259,101 +3541,106 @@ for cycles) need testing. */ -int Interp::convert_length_units(int g_code, //!< g_code being executed (must be G_20 or G_21) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_length_units(int g_code, //!< g_code being executed (must be G_20 or G_21) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_20) { - USE_LENGTH_UNITS(CANON_UNITS_INCHES); - if (settings->length_units != CANON_UNITS_INCHES) { - settings->length_units = CANON_UNITS_INCHES; - settings->current_x = (settings->current_x * INCH_PER_MM); - settings->current_y = (settings->current_y * INCH_PER_MM); - settings->current_z = (settings->current_z * INCH_PER_MM); - settings->program_x = (settings->program_x * INCH_PER_MM); - settings->program_y = (settings->program_y * INCH_PER_MM); - settings->program_z = (settings->program_z * INCH_PER_MM); - qc_scale(INCH_PER_MM); - settings->cutter_comp_radius *= INCH_PER_MM; - settings->axis_offset_x = (settings->axis_offset_x * INCH_PER_MM); - settings->axis_offset_y = (settings->axis_offset_y * INCH_PER_MM); - settings->axis_offset_z = (settings->axis_offset_z * INCH_PER_MM); - settings->origin_offset_x = (settings->origin_offset_x * INCH_PER_MM); - settings->origin_offset_y = (settings->origin_offset_y * INCH_PER_MM); - settings->origin_offset_z = (settings->origin_offset_z * INCH_PER_MM); - - settings->u_current = (settings->u_current * INCH_PER_MM); - settings->v_current = (settings->v_current * INCH_PER_MM); - settings->w_current = (settings->w_current * INCH_PER_MM); - settings->u_axis_offset = (settings->u_axis_offset * INCH_PER_MM); - settings->v_axis_offset = (settings->v_axis_offset * INCH_PER_MM); - settings->w_axis_offset = (settings->w_axis_offset * INCH_PER_MM); - settings->u_origin_offset = (settings->u_origin_offset * INCH_PER_MM); - settings->v_origin_offset = (settings->v_origin_offset * INCH_PER_MM); - settings->w_origin_offset = (settings->w_origin_offset * INCH_PER_MM); - - settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); - settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); - settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); - settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); - settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); - settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); - settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); - settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); - settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); - settings->feed_rate = GET_EXTERNAL_FEED_RATE(); - settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); - settings->naivecam_tolerance = - GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); - } - } else if (g_code == G_21) { - USE_LENGTH_UNITS(CANON_UNITS_MM); - if (settings->length_units != CANON_UNITS_MM) { - settings->length_units = CANON_UNITS_MM; - settings->current_x = (settings->current_x * MM_PER_INCH); - settings->current_y = (settings->current_y * MM_PER_INCH); - settings->current_z = (settings->current_z * MM_PER_INCH); - settings->program_x = (settings->program_x * MM_PER_INCH); - settings->program_y = (settings->program_y * MM_PER_INCH); - settings->program_z = (settings->program_z * MM_PER_INCH); - qc_scale(MM_PER_INCH); - settings->cutter_comp_radius *= MM_PER_INCH; - settings->axis_offset_x = (settings->axis_offset_x * MM_PER_INCH); - settings->axis_offset_y = (settings->axis_offset_y * MM_PER_INCH); - settings->axis_offset_z = (settings->axis_offset_z * MM_PER_INCH); - settings->origin_offset_x = (settings->origin_offset_x * MM_PER_INCH); - settings->origin_offset_y = (settings->origin_offset_y * MM_PER_INCH); - settings->origin_offset_z = (settings->origin_offset_z * MM_PER_INCH); - - settings->u_current = (settings->u_current * MM_PER_INCH); - settings->v_current = (settings->v_current * MM_PER_INCH); - settings->w_current = (settings->w_current * MM_PER_INCH); - settings->u_axis_offset = (settings->u_axis_offset * MM_PER_INCH); - settings->v_axis_offset = (settings->v_axis_offset * MM_PER_INCH); - settings->w_axis_offset = (settings->w_axis_offset * MM_PER_INCH); - settings->u_origin_offset = (settings->u_origin_offset * MM_PER_INCH); - settings->v_origin_offset = (settings->v_origin_offset * MM_PER_INCH); - settings->w_origin_offset = (settings->w_origin_offset * MM_PER_INCH); - - settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); - settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); - settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); - settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); - settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); - settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); - settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); - settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); - settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); - settings->feed_rate = GET_EXTERNAL_FEED_RATE(); - settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); - settings->naivecam_tolerance = - GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); - } - } else - ERS(NCE_BUG_CODE_NOT_G20_OR_G21); - return INTERP_OK; + if (g_code == G_20) + { + USE_LENGTH_UNITS(CANON_UNITS_INCHES); + if (settings->length_units != CANON_UNITS_INCHES) + { + settings->length_units = CANON_UNITS_INCHES; + settings->current_x = (settings->current_x * INCH_PER_MM); + settings->current_y = (settings->current_y * INCH_PER_MM); + settings->current_z = (settings->current_z * INCH_PER_MM); + settings->program_x = (settings->program_x * INCH_PER_MM); + settings->program_y = (settings->program_y * INCH_PER_MM); + settings->program_z = (settings->program_z * INCH_PER_MM); + qc_scale(INCH_PER_MM); + settings->cutter_comp_radius *= INCH_PER_MM; + settings->axis_offset_x = (settings->axis_offset_x * INCH_PER_MM); + settings->axis_offset_y = (settings->axis_offset_y * INCH_PER_MM); + settings->axis_offset_z = (settings->axis_offset_z * INCH_PER_MM); + settings->origin_offset_x = (settings->origin_offset_x * INCH_PER_MM); + settings->origin_offset_y = (settings->origin_offset_y * INCH_PER_MM); + settings->origin_offset_z = (settings->origin_offset_z * INCH_PER_MM); + + settings->u_current = (settings->u_current * INCH_PER_MM); + settings->v_current = (settings->v_current * INCH_PER_MM); + settings->w_current = (settings->w_current * INCH_PER_MM); + settings->u_axis_offset = (settings->u_axis_offset * INCH_PER_MM); + settings->v_axis_offset = (settings->v_axis_offset * INCH_PER_MM); + settings->w_axis_offset = (settings->w_axis_offset * INCH_PER_MM); + settings->u_origin_offset = (settings->u_origin_offset * INCH_PER_MM); + settings->v_origin_offset = (settings->v_origin_offset * INCH_PER_MM); + settings->w_origin_offset = (settings->w_origin_offset * INCH_PER_MM); + + settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); + settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); + settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); + settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); + settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); + settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); + settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); + settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); + settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); + settings->feed_rate = GET_EXTERNAL_FEED_RATE(); + settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); + settings->naivecam_tolerance = + GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); + } + } + else if (g_code == G_21) + { + USE_LENGTH_UNITS(CANON_UNITS_MM); + if (settings->length_units != CANON_UNITS_MM) + { + settings->length_units = CANON_UNITS_MM; + settings->current_x = (settings->current_x * MM_PER_INCH); + settings->current_y = (settings->current_y * MM_PER_INCH); + settings->current_z = (settings->current_z * MM_PER_INCH); + settings->program_x = (settings->program_x * MM_PER_INCH); + settings->program_y = (settings->program_y * MM_PER_INCH); + settings->program_z = (settings->program_z * MM_PER_INCH); + qc_scale(MM_PER_INCH); + settings->cutter_comp_radius *= MM_PER_INCH; + settings->axis_offset_x = (settings->axis_offset_x * MM_PER_INCH); + settings->axis_offset_y = (settings->axis_offset_y * MM_PER_INCH); + settings->axis_offset_z = (settings->axis_offset_z * MM_PER_INCH); + settings->origin_offset_x = (settings->origin_offset_x * MM_PER_INCH); + settings->origin_offset_y = (settings->origin_offset_y * MM_PER_INCH); + settings->origin_offset_z = (settings->origin_offset_z * MM_PER_INCH); + + settings->u_current = (settings->u_current * MM_PER_INCH); + settings->v_current = (settings->v_current * MM_PER_INCH); + settings->w_current = (settings->w_current * MM_PER_INCH); + settings->u_axis_offset = (settings->u_axis_offset * MM_PER_INCH); + settings->v_axis_offset = (settings->v_axis_offset * MM_PER_INCH); + settings->w_axis_offset = (settings->w_axis_offset * MM_PER_INCH); + settings->u_origin_offset = (settings->u_origin_offset * MM_PER_INCH); + settings->v_origin_offset = (settings->v_origin_offset * MM_PER_INCH); + settings->w_origin_offset = (settings->w_origin_offset * MM_PER_INCH); + + settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); + settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); + settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); + settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); + settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); + settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); + settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); + settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); + settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); + settings->feed_rate = GET_EXTERNAL_FEED_RATE(); + settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); + settings->naivecam_tolerance = + GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); + } + } + else + ERS(NCE_BUG_CODE_NOT_G20_OR_G21); + return INTERP_OK; } - /* * given two int arrays and two double arrays representing interpreter * settings as stored in _setup.active_g_codes and @@ -3361,9 +3648,9 @@ int Interp::convert_length_units(int g_code, //!< g_code being executed (mus * their state. */ int Interp::gen_settings( - int *int_current, int *int_saved, // G-codes - double * /*float_current*/, double *float_saved, // S, F, other - std::string &cmd) // command buffer + int *int_current, int *int_saved, // G-codes + double * /*float_current*/, double *float_saved, // S, F, other + std::string &cmd) // command buffer { FORCE_LC_NUMERIC_C; int i, val; @@ -3371,116 +3658,131 @@ int Interp::gen_settings( char buf[LINELEN]; // F, S - for (i = 0; i < ACTIVE_SETTINGS; i++) { - // "if" masked to address https://github.com/LinuxCNC/linuxcnc/issues/1987 - // The setting value is correct, but seems to be mislaid downstream - //if (float_saved[i] != float_current[i]) { - switch (i) { - case GM_FIELD_FLOAT_LINE_NUMBER: - // sequence_number - no point in restoring - break; - case GM_FIELD_FLOAT_FEED: - snprintf(buf,sizeof(buf)," F%.1f", float_saved[i]); - cmd += buf; - break; - case GM_FIELD_FLOAT_SPEED: - snprintf(buf,sizeof(buf)," S%.0f", float_saved[i]); - cmd += buf; - break; - case GM_FIELD_FLOAT_PATH_TOLERANCE: - case GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE: - // G64 special case; see below - g64_changed = 1; - break; - } - //} + for (i = 0; i < ACTIVE_SETTINGS; i++) + { + // "if" masked to address https://github.com/LinuxCNC/linuxcnc/issues/1987 + // The setting value is correct, but seems to be mislaid downstream + // if (float_saved[i] != float_current[i]) { + switch (i) + { + case GM_FIELD_FLOAT_LINE_NUMBER: + // sequence_number - no point in restoring + break; + case GM_FIELD_FLOAT_FEED: + snprintf(buf, sizeof(buf), " F%.1f", float_saved[i]); + cmd += buf; + break; + case GM_FIELD_FLOAT_SPEED: + snprintf(buf, sizeof(buf), " S%.0f", float_saved[i]); + cmd += buf; + break; + case GM_FIELD_FLOAT_PATH_TOLERANCE: + case GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE: + // G64 special case; see below + g64_changed = 1; + break; + } + //} } // G-codes - for (i = 0; i < ACTIVE_G_CODES; i++) { - val = int_saved[i]; - if (val != int_current[i]) { - - switch (i) { - case 0: - // // sequence_number - no point in restoring - break; - case 2: // FIXME - I dont understand this: - // gez[2] = ((block == NULL) ? -1 : block->g_modes[0]); - break; - case 12: // mystery slot - break; - case 5: // - length units - // this is treated before all others - see convert_m() - break; - case 1: // - motion_mode - // restoring the motion mode is a real bad idea to start with - break; - case 3: // - plane - case 4: // - cutter compensation - case 6: // - distance mode - case 7: // - feed mode - case 8: // - coordinate system - case 9: // - tool offset (G43/G49) - case 10: // - retract mode - case 13: // - spindle mode - case 14: // - ijk distance mode - case 15: // - lathe diameter mode + for (i = 0; i < ACTIVE_G_CODES; i++) + { + val = int_saved[i]; + if (val != int_current[i]) + { + + switch (i) + { + case 0: + // // sequence_number - no point in restoring + break; + case 2: // FIXME - I dont understand this: + // gez[2] = ((block == NULL) ? -1 : block->g_modes[0]); + break; + case 12: // mystery slot + break; + case 5: // - length units + // this is treated before all others - see convert_m() + break; + case 1: // - motion_mode + // restoring the motion mode is a real bad idea to start with + break; + case 3: // - plane + case 4: // - cutter compensation + case 6: // - distance mode + case 7: // - feed mode + case 8: // - coordinate system + case 9: // - tool offset (G43/G49) + case 10: // - retract mode + case 13: // - spindle mode + case 14: // - ijk distance mode + case 15: // - lathe diameter mode case 16: // - whether g92 is applied - if (val != -1) { // FIXME not sure if this is correct! - // if this was set in sub, and unset in caller, it will - // not be reset - if (val % 10) { - snprintf(buf,sizeof(buf)," G%d.%d", val / 10, val % 10); - } else { - snprintf(buf,sizeof(buf)," G%d", val / 10); - } + if (val != -1) + { // FIXME not sure if this is correct! + // if this was set in sub, and unset in caller, it will + // not be reset + if (val % 10) + { + snprintf(buf, sizeof(buf), " G%d.%d", val / 10, val % 10); + } + else + { + snprintf(buf, sizeof(buf), " G%d", val / 10); + } + cmd += buf; + } + else + { + // so complain rather loudly + MSG("------ gen_settings BUG: index %d = -1!!\n", i); + } + break; + case 11: // - control mode + // Special case, since G64 requires P and Q flags + // FIXME what about when P or Q changes, even though still G64? + if (val == G_64) + // G64 special case; see below + g64_changed = 1; + else if (val == G_61) + { + snprintf(buf, sizeof(buf), " G61"); cmd += buf; - } else { - // so complain rather loudly - MSG("------ gen_settings BUG: index %d = -1!!\n",i); - } - break; - case 11: // - control mode - // Special case, since G64 requires P and Q flags - // FIXME what about when P or Q changes, even though still G64? - if (val == G_64) - // G64 special case; see below - g64_changed = 1; - else if (val == G_61) { - snprintf(buf,sizeof(buf)," G61"); - cmd += buf; - } else if (val == G_61_1) { - snprintf(buf,sizeof(buf)," G61.1"); - cmd += buf; - } else - MSG("------ gen_settings BUG: index %d = -1!!\n",i); - break; - } - } + } + else if (val == G_61_1) + { + snprintf(buf, sizeof(buf), " G61.1"); + cmd += buf; + } + else + MSG("------ gen_settings BUG: index %d = -1!!\n", i); + break; + } + } } - // Special case for restoring G64: `cmd` may contain a `G64` if // current int settings is `G61` or if current float settings // contain different `G64 P* Q*` args; in these cases, only add a // single `G64` command - if ((int_saved[11] == G_64) && g64_changed) { - if (float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE] < 0) - // No P, Q args - snprintf(buf,sizeof(buf)," G64"); - else if ( - float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE] < 0) - // Only P arg - snprintf(buf,sizeof(buf)," G64 P%f", - float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE]); - else // Both P, Q args - snprintf( - buf,sizeof(buf)," G64 P%f Q%f", - float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE], - float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE]); - cmd += buf; + if ((int_saved[11] == G_64) && g64_changed) + { + if (float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE] < 0) + // No P, Q args + snprintf(buf, sizeof(buf), " G64"); + else if ( + float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE] < 0) + // Only P arg + snprintf(buf, sizeof(buf), " G64 P%f", + float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE]); + else // Both P, Q args + snprintf( + buf, sizeof(buf), " G64 P%f Q%f", + float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE], + float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE]); + cmd += buf; } return INTERP_OK; } @@ -3495,43 +3797,48 @@ int Interp::gen_settings( int Interp::gen_m_codes(int *current, int *saved, std::string &cmd) { FORCE_LC_NUMERIC_C; - int i,val; + int i, val; char buf[LINELEN]; - for (i = 0; i < ACTIVE_M_CODES; i++) { - val = saved[i]; - if (val != current[i]) { - switch (i) { - case 0: /* 0 seq number */ - break; - case 1: /* 1 stopping */ - // FIXME - is the next line needed at all? - // emz[1] = (block == NULL) ? -1 : block->m_modes[4]; - break; - case 3: /* 3 tool change */ - // FIXME - dont know how to handle this. - // emz[3] = - // (block == NULL) ? -1 : block->m_modes[6]; - break; - case 2: // spindle - case 4: // mist - case 5: // flood - case 6: // speed/feed override - case 7: // adaptive feed - case 8: // feed hold - if (val != -1) { // unsure.. - snprintf(buf,sizeof(buf),"M%d\n", val); - cmd += buf; - } else { - MSG("------ gen_m_codes: index %d = -1!!\n",i); - } - break; - } - } + for (i = 0; i < ACTIVE_M_CODES; i++) + { + val = saved[i]; + if (val != current[i]) + { + switch (i) + { + case 0: /* 0 seq number */ + break; + case 1: /* 1 stopping */ + // FIXME - is the next line needed at all? + // emz[1] = (block == NULL) ? -1 : block->m_modes[4]; + break; + case 3: /* 3 tool change */ + // FIXME - dont know how to handle this. + // emz[3] = + // (block == NULL) ? -1 : block->m_modes[6]; + break; + case 2: // spindle + case 4: // mist + case 5: // flood + case 6: // speed/feed override + case 7: // adaptive feed + case 8: // feed hold + if (val != -1) + { // unsure.. + snprintf(buf, sizeof(buf), "M%d\n", val); + cmd += buf; + } + else + { + MSG("------ gen_m_codes: index %d = -1!!\n", i); + } + break; + } + } } return INTERP_OK; } - /** * Create a G-code string to restore a modal state on program abort. * Note: This is only designed to be called on program abort. It restores the @@ -3539,10 +3846,10 @@ int Interp::gen_m_codes(int *current, int *saved, std::string &cmd) * motion line, but does not restore M codes. */ int Interp::gen_restore_cmd(int *current_g, - int * /*current_m*/, - double *current_settings, - StateTag const &saved, - std::string &cmd) + int * /*current_m*/, + double *current_settings, + StateTag const &saved, + std::string &cmd) { int res; // A local copy of the saved settings, unpacked from a state tag @@ -3550,12 +3857,13 @@ int Interp::gen_restore_cmd(int *current_g, int saved_m[ACTIVE_M_CODES]; double saved_settings[ACTIVE_SETTINGS]; - //Extract saved state to local vectors - // FIXME Use saved_settings to store state tag floats, incl. in + // Extract saved state to local vectors + // FIXME Use saved_settings to store state tag floats, incl. in int res_unpack = active_modes(saved_g, saved_m, saved_settings, saved); - if (res_unpack != INTERP_OK) { - logStateTags("gen_restore_cmd() error %d: failed to unpack state tag", - res_unpack); + if (res_unpack != INTERP_OK) + { + logStateTags("gen_restore_cmd() error %d: failed to unpack state tag", + res_unpack); return INTERP_ERROR; } @@ -3566,18 +3874,20 @@ int Interp::gen_restore_cmd(int *current_g, // Force cancellation of tool compensation saved_g[4] = G_40; - //Mimic the order of restoration commands used elsewhere - if (current_g[5] != saved_g[5]) { + // Mimic the order of restoration commands used elsewhere + if (current_g[5] != saved_g[5]) + { char buf[LINELEN]; - snprintf(buf,sizeof(buf), "G%d",saved_g[5]/10); + snprintf(buf, sizeof(buf), "G%d", saved_g[5] / 10); CHKS(execute(buf) != INTERP_OK, _("gen_restore G20/G21 failed: '%s'"), - cmd.c_str()); + cmd.c_str()); } if ((res = gen_settings( - current_g, saved_g, current_settings, saved_settings, cmd))) { - logStateTags("gen_restore_cmd(): error restoring settings (%d)", - res); + current_g, saved_g, current_settings, saved_settings, cmd))) + { + logStateTags("gen_restore_cmd(): error restoring settings (%d)", + res); return INTERP_ERROR; } // M codes should not be restored during an abort with gen_m_codes() @@ -3585,25 +3895,24 @@ int Interp::gen_restore_cmd(int *current_g, return INTERP_OK; } - int Interp::save_settings(setup_pointer settings) { - // the state is sprinkled all over _setup - // collate state in _setup.active_* arrays - write_g_codes((block_pointer) NULL, settings); - write_m_codes((block_pointer) NULL, settings); - write_settings(settings); - write_state_tag((block_pointer) NULL, settings, settings->state_tag); - - // save in the current call frame - active_g_codes((int *)settings->sub_context[settings->call_level].saved_g_codes); - active_m_codes((int *)settings->sub_context[settings->call_level].saved_m_codes); - active_settings((double *)settings->sub_context[settings->call_level].saved_settings); - - // TBD: any other state deemed important to save/restore should be added here - // context_struct might need to be extended too. - - return INTERP_OK; + // the state is sprinkled all over _setup + // collate state in _setup.active_* arrays + write_g_codes((block_pointer)NULL, settings); + write_m_codes((block_pointer)NULL, settings); + write_settings(settings); + write_state_tag((block_pointer)NULL, settings, settings->state_tag); + + // save in the current call frame + active_g_codes((int *)settings->sub_context[settings->call_level].saved_g_codes); + active_m_codes((int *)settings->sub_context[settings->call_level].saved_m_codes); + active_settings((double *)settings->sub_context[settings->call_level].saved_settings); + + // TBD: any other state deemed important to save/restore should be added here + // context_struct might need to be extended too. + + return INTERP_OK; } /* restore global settings/gcodes/mcodes to current call level from a valid context @@ -3616,17 +3925,17 @@ int Interp::save_settings(setup_pointer settings) * restore_settings(settings->call_level + 1) */ int Interp::restore_settings(setup_pointer settings, - int from_level) //!< call level of context to restore from + int from_level) //!< call level of context to restore from { CHKS((from_level < settings->call_level), - (_("BUG: cannot restore from a lower call level (%d) to a higher call level (%d)")),from_level,settings->call_level); - CHKS((from_level < 0), (_("BUG: restore from level %d !?")),from_level); - CHKS((settings->call_level < 0), (_("BUG: restore to level %d !?")),settings->call_level); + (_("BUG: cannot restore from a lower call level (%d) to a higher call level (%d)")), from_level, settings->call_level); + CHKS((from_level < 0), (_("BUG: restore from level %d !?")), from_level); + CHKS((settings->call_level < 0), (_("BUG: restore to level %d !?")), settings->call_level); // linearize state - write_g_codes((block_pointer) NULL, settings); - write_m_codes((block_pointer) NULL, settings); + write_g_codes((block_pointer)NULL, settings); + write_m_codes((block_pointer)NULL, settings); write_settings(settings); std::string cmd; @@ -3638,40 +3947,44 @@ int Interp::restore_settings(setup_pointer settings, // G20/G21 switching is special - it is executed beforehand // so restoring feed lateron is interpreted in the correct context - if (settings->active_g_codes[5] != settings->sub_context[from_level].saved_g_codes[5]) { + if (settings->active_g_codes[5] != settings->sub_context[from_level].saved_g_codes[5]) + { char buf[LINELEN]; - snprintf(buf,sizeof(buf), "G%d",settings->sub_context[from_level].saved_g_codes[5]/10); - CHKS(execute(buf) != INTERP_OK, _("M7x: restore_settings G20/G21 failed: '%s'"), cmd.c_str()); + snprintf(buf, sizeof(buf), "G%d", settings->sub_context[from_level].saved_g_codes[5] / 10); + CHKS(execute(buf) != INTERP_OK, _("M7x: restore_settings G20/G21 failed: '%s'"), cmd.c_str()); } gen_settings( - (int *)settings->active_g_codes, - (int *)settings->sub_context[from_level].saved_g_codes, - (double *)settings->active_settings, - (double *)settings->sub_context[from_level].saved_settings, - cmd); + (int *)settings->active_g_codes, + (int *)settings->sub_context[from_level].saved_g_codes, + (double *)settings->active_settings, + (double *)settings->sub_context[from_level].saved_settings, + cmd); gen_m_codes( - (int *) settings->active_m_codes, - (int *)settings->sub_context[from_level].saved_m_codes, - cmd); - - if (!cmd.empty()) { - // the sequence can be multiline, separated by nl - // so split and execute each line - std::string cpy = cmd; - char *stateptr = NULL; - char *s = strtok_r(cpy.data(), "\n", &stateptr); - while (s != NULL) { - int status = execute(s); - if (status != INTERP_OK) { - char currentError[LINELEN+1]; - rtapi_strxcpy(currentError,getSavedError()); - CHKS(status, _("M7x: restore_settings failed executing: '%s': %s"), s, currentError); - } - s = strtok_r(NULL, "\n", &stateptr); - } - write_g_codes((block_pointer) NULL, settings); - write_m_codes((block_pointer) NULL, settings); - write_settings(settings); + (int *)settings->active_m_codes, + (int *)settings->sub_context[from_level].saved_m_codes, + cmd); + + if (!cmd.empty()) + { + // the sequence can be multiline, separated by nl + // so split and execute each line + std::string cpy = cmd; + char *stateptr = NULL; + char *s = strtok_r(cpy.data(), "\n", &stateptr); + while (s != NULL) + { + int status = execute(s); + if (status != INTERP_OK) + { + char currentError[LINELEN + 1]; + rtapi_strxcpy(currentError, getSavedError()); + CHKS(status, _("M7x: restore_settings failed executing: '%s': %s"), s, currentError); + } + s = strtok_r(NULL, "\n", &stateptr); + } + write_g_codes((block_pointer)NULL, settings); + write_m_codes((block_pointer)NULL, settings); + write_settings(settings); } // TBD: any state deemed important to restore should be restored here @@ -3681,17 +3994,17 @@ int Interp::restore_settings(setup_pointer settings, return INTERP_OK; } - /** * Variation of restore_settings to pull state from a StateTag. */ int Interp::restore_from_tag(StateTag const &tag) { - if (!tag.is_valid() || !tag.flags[GM_FLAG_RESTORABLE]) { - //Invalid line implies a bad tag, don't restore - logStateTags("restore_from_tag() error: Invalid tag"); - print_state_tag(tag); + if (!tag.is_valid() || !tag.flags[GM_FLAG_RESTORABLE]) + { + // Invalid line implies a bad tag, don't restore + logStateTags("restore_from_tag() error: Invalid tag"); + print_state_tag(tag); return INTERP_ERROR; } @@ -3702,8 +4015,8 @@ int Interp::restore_from_tag(StateTag const &tag) _setup.probe_flag = false; // linearize state - write_g_codes((block_pointer) NULL, &_setup); - write_m_codes((block_pointer) NULL, &_setup); + write_g_codes((block_pointer)NULL, &_setup); + write_m_codes((block_pointer)NULL, &_setup); write_settings(&_setup); std::string cmd; @@ -3712,48 +4025,53 @@ int Interp::restore_from_tag(StateTag const &tag) // this assures appropriate canon commands are generated if needed - // just restoring interp variables is not enough - int res_unpack = gen_restore_cmd((int *) _setup.active_g_codes, - (int *) _setup.active_m_codes, - (double *) _setup.active_settings, - tag, - cmd); - if (res_unpack != INTERP_OK) { - logStateTags("restore_from_tag() failed to generate restore command"); - print_state_tag(tag); + int res_unpack = gen_restore_cmd((int *)_setup.active_g_codes, + (int *)_setup.active_m_codes, + (double *)_setup.active_settings, + tag, + cmd); + if (res_unpack != INTERP_OK) + { + logStateTags("restore_from_tag() failed to generate restore command"); + print_state_tag(tag); return res_unpack; } - if (!cmd.empty()) { + if (!cmd.empty()) + { // the sequence can be multiline, separated by nl // so split and execute each line std::string cpy = cmd; char *stateptr = NULL; char *s = strtok_r(cpy.data(), "\n", &stateptr); - while (s != NULL) { + while (s != NULL) + { int status = execute(s); - if (status != INTERP_OK) { - char currentError[LINELEN+1]; - strcpy(currentError,getSavedError()); + if (status != INTERP_OK) + { + char currentError[LINELEN + 1]; + strcpy(currentError, getSavedError()); CHKS(status, _("Failed to restore interp state on abort " - "'%s': %s"), s, currentError); + "'%s': %s"), + s, currentError); } s = strtok_r(NULL, "\n", &stateptr); } - write_g_codes((block_pointer) NULL, &_setup); - write_m_codes((block_pointer) NULL, &_setup); + write_g_codes((block_pointer)NULL, &_setup); + write_m_codes((block_pointer)NULL, &_setup); write_settings(&_setup); - logStateTags("Restored program pre-abort state from tag: |%s|", - cmd.c_str()); - } else { - logStateTags("Program pre-abort state unchanged; not restoring:"); - print_state_tag(tag); + logStateTags("Restored program pre-abort state from tag: |%s|", + cmd.c_str()); + } + else + { + logStateTags("Program pre-abort state unchanged; not restoring:"); + print_state_tag(tag); } return INTERP_OK; } - - /****************************************************************************/ /*! convert_m @@ -3784,433 +4102,553 @@ convert_stop). */ -int Interp::convert_m(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_m(block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - int type; - double timeout; // timeout for M66 - - /* The M62-65 commands are used for DIO */ - /* M62 sets a DIO synched with motion - M63 clears a DIO synched with motion - M64 sets a DIO immediately - M65 clears a DIO immediately - M66 waits for an input - M67 reads a digital input - M68 reads an analog input*/ - - if (is_user_defined_m_code(block, settings, 5) && - STEP_REMAPPED_IN_BLOCK(block, STEP_M_5) && - ONCE_M(5)) { - return convert_remapped_code(block, settings, STEP_M_5, 'm', - block->m_modes[5]); - } else if ((block->m_modes[5] == 62) && ONCE_M(5)) { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set motion output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M62")); - SET_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); - } else if ((block->m_modes[5] == 63) && ONCE_M(5)) { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set motion digital output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M63")); - CLEAR_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); - } else if ((block->m_modes[5] == 64) && ONCE_M(5)){ - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M64")); - SET_AUX_OUTPUT_BIT(round_to_int(block->p_number)); - } else if ((block->m_modes[5] == 65) && ONCE_M(5)) { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M65")); - CLEAR_AUX_OUTPUT_BIT(round_to_int(block->p_number)); - } else if ((block->m_modes[5] == 66) && ONCE_M(5)){ - - //P-word = digital channel - //E-word = analog channel - //L-word = wait type (immediate, rise, fall, high, low) - //Q-word = timeout - // it is an error if: - - // P and E word are specified together - CHKS(((block->p_flag) && (block->e_flag)), - NCE_BOTH_DIGITAL_AND_ANALOG_INPUT_SELECTED); - - // L-word not 0, and timeout <= 0 - CHKS(((block->q_number <= 0) && (block->l_flag) && (round_to_int(block->l_number) > 0)), - NCE_ZERO_TIMEOUT_WITH_WAIT_NOT_IMMEDIATE); - - // E-word specified (analog input) and wait type not immediate - CHKS(((block->e_flag) && (block->l_flag) && (round_to_int(block->l_number) != 0)), - NCE_ANALOG_INPUT_WITH_WAIT_NOT_IMMEDIATE); - - // missing P or E (or invalid = negative) - CHKS( ((block->p_flag) && (round_to_int(block->p_number) < 0)) || - ((block->e_flag) && (round_to_int(block->e_number) < 0)) || - ((!block->p_flag) && (!block->e_flag)) , - NCE_INVALID_OR_MISSING_P_AND_E_WORDS_FOR_WAIT_INPUT); + int type; + double timeout; // timeout for M66 + + /* The M62-65 commands are used for DIO */ + /* M62 sets a DIO synched with motion + M63 clears a DIO synched with motion + M64 sets a DIO immediately + M65 clears a DIO immediately + M66 waits for an input + M67 reads a digital input + M68 reads an analog input*/ + + if (is_user_defined_m_code(block, settings, 5) && + STEP_REMAPPED_IN_BLOCK(block, STEP_M_5) && + ONCE_M(5)) + { + return convert_remapped_code(block, settings, STEP_M_5, 'm', + block->m_modes[5]); + } + else if ((block->m_modes[5] == 62) && ONCE_M(5)) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set motion output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M62")); + SET_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); + } + else if ((block->m_modes[5] == 63) && ONCE_M(5)) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set motion digital output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M63")); + CLEAR_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); + } + else if ((block->m_modes[5] == 64) && ONCE_M(5)) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M64")); + SET_AUX_OUTPUT_BIT(round_to_int(block->p_number)); + } + else if ((block->m_modes[5] == 65) && ONCE_M(5)) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M65")); + CLEAR_AUX_OUTPUT_BIT(round_to_int(block->p_number)); + } + else if ((block->m_modes[5] == 66) && ONCE_M(5)) + { - write_canon_state_tag(block, settings); - if (block->p_flag) { // got a digital input - if (round_to_int(block->p_number) < 0) // safety check for negative words - ERS(_("invalid P-word with M66")); + // P-word = digital channel + // E-word = analog channel + // L-word = wait type (immediate, rise, fall, high, low) + // Q-word = timeout + // it is an error if: + + // P and E word are specified together + CHKS(((block->p_flag) && (block->e_flag)), + NCE_BOTH_DIGITAL_AND_ANALOG_INPUT_SELECTED); + + // L-word not 0, and timeout <= 0 + CHKS(((block->q_number <= 0) && (block->l_flag) && (round_to_int(block->l_number) > 0)), + NCE_ZERO_TIMEOUT_WITH_WAIT_NOT_IMMEDIATE); + + // E-word specified (analog input) and wait type not immediate + CHKS(((block->e_flag) && (block->l_flag) && (round_to_int(block->l_number) != 0)), + NCE_ANALOG_INPUT_WITH_WAIT_NOT_IMMEDIATE); + + // missing P or E (or invalid = negative) + CHKS(((block->p_flag) && (round_to_int(block->p_number) < 0)) || + ((block->e_flag) && (round_to_int(block->e_number) < 0)) || + ((!block->p_flag) && (!block->e_flag)), + NCE_INVALID_OR_MISSING_P_AND_E_WORDS_FOR_WAIT_INPUT); + + write_canon_state_tag(block, settings); + if (block->p_flag) + { // got a digital input + if (round_to_int(block->p_number) < 0) // safety check for negative words + ERS(_("invalid P-word with M66")); + + if (block->l_flag) + { + type = round_to_int(block->l_number); + } + else + { + type = WAIT_MODE_IMMEDIATE; + } + + if (block->q_number > 0) + { + timeout = block->q_number; + } + else + { + timeout = 0; + } + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot wait for digital input with cutter radius compensation on"))); + + int ret = WAIT(round_to_int(block->p_number), DIGITAL_INPUT, type, timeout); + // WAIT returns 0 on success, -1 for out of bounds + CHKS((ret == -1), NCE_DIGITAL_INPUT_INVALID_ON_M66); + if (ret == 0) + { + settings->input_flag = true; + settings->input_index = round_to_int(block->p_number); + settings->input_digital = true; + } + } + else if (round_to_int(block->e_number) >= 0) + { // got an analog input + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot wait for analog input with cutter radius compensation on"))); + + int ret = WAIT(round_to_int(block->e_number), ANALOG_INPUT, 0, 0); // WAIT returns 0 on success, -1 for out of bounds + CHKS((ret == -1), NCE_ANALOG_INPUT_INVALID_ON_M66); + if (ret == 0) + { + settings->input_flag = true; + settings->input_index = round_to_int(block->e_number); + settings->input_digital = false; + } + } + } + else if ((block->m_modes[5] == 67) && ONCE_M(5)) + { + + // E-word = analog channel + // Q-word = analog value + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set motion analog output with cutter radius compensation on"))); // XXX + CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M67"))); + SET_MOTION_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); + } + else if ((block->m_modes[5] == 68) && ONCE_M(5)) + { + // E-word = analog channel + // Q-word = analog value + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set auxiliary analog output with cutter radius compensation on"))); // XXX + CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M68"))); + SET_AUX_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); + } + + if ((block->m_modes[6] != -1) && ONCE_M(6)) + { + int toolno; + bool remapped_in_block = STEP_REMAPPED_IN_BLOCK(block, STEP_M_6); + + switch (block->m_modes[6]) + { + case 6: + if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) + { + return convert_remapped_code(block, settings, + STEP_M_6, + 'm', + block->m_modes[6]); + } + else + { + // the code was used in its very remap procedure - + // the 'recursion case'; record the fact + CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; + CHP(convert_tool_change(settings)); + } + break; + + case 61: + if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) + { + return convert_remapped_code(block, settings, STEP_M_6, 'm', + block->m_modes[6]); + } + else + { + CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; + toolno = round_to_int(block->q_number); + // now also accept M61 Q0 - unload tool + CHKS((toolno < 0), (_("Need non-negative Q-word to specify tool number with M61"))); + + int idx; + + // make sure selected tool exists + CHP((find_tool_index(settings, toolno, &idx))); + settings->current_pocket = idx; + settings->toolchange_flag = true; + CHANGE_TOOL_NUMBER(settings->current_pocket); + set_tool_parameters(); + } + break; + + default: + if (is_user_defined_m_code(block, settings, 6)) + { + return convert_remapped_code(block, settings, STEP_M_6, 'm', + block->m_modes[6]); + } + } + } + + if (FEATURE(RETAIN_G43)) + { + + if ((settings->active_g_codes[9] == G_43) && ONCE(STEP_RETAIN_G43)) + { + if (settings->selected_pocket > 0) + { + struct block_struct g43; + init_block(&g43); + block->g_modes[gees[G_43]] = G_43; + CHP(convert_tool_length_offset(G_43, &g43, settings)); + } + else + { + struct block_struct g49; + init_block(&g49); + block->g_modes[gees[G_49]] = G_49; + CHP(convert_tool_length_offset(G_49, &g49, settings)); + } + } + } + + if (is_user_defined_m_code(block, settings, 7) && ONCE_M(7)) + { + return convert_remapped_code(block, settings, STEP_M_7, 'm', + block->m_modes[7]); + } + else if ((block->m_modes[7] == 3) && ONCE_M(7)) + { + if (block->dollar_flag) + { + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), + (_("Spindle ($) number out of range in M3 Command\nnum_spindles =%i. $=%d\n")), settings->num_spindles, (int)block->dollar_number); + if (block->dollar_number == -1) + { // all spindles + for (int i = 0; i < settings->num_spindles; i++) + { + enqueue_START_SPINDLE_CLOCKWISE(i); + settings->spindle_turning[i] = CANON_CLOCKWISE; + } + } + else + { // a specific spindle + enqueue_START_SPINDLE_CLOCKWISE(block->dollar_number); + settings->spindle_turning[(int)block->dollar_number] = CANON_CLOCKWISE; + } + } + else + { // the default spindle + enqueue_START_SPINDLE_CLOCKWISE(0); + settings->spindle_turning[0] = CANON_CLOCKWISE; + } + } + else if ((block->m_modes[7] == 4) && ONCE_M(7)) + { + if (block->dollar_flag) + { + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), + (_("Spindle ($) number out of range in M4 Command\nnum_spindles =%i. $=%d\n")), settings->num_spindles, (int)block->dollar_number); + if (block->dollar_number == -1) + { // all spindles + for (int i = 0; i < settings->num_spindles; i++) + { + enqueue_START_SPINDLE_COUNTERCLOCKWISE(i); + settings->spindle_turning[i] = CANON_COUNTERCLOCKWISE; + } + } + else + { // a specific spindle + enqueue_START_SPINDLE_COUNTERCLOCKWISE(block->dollar_number); + settings->spindle_turning[(int)block->dollar_number] = CANON_COUNTERCLOCKWISE; + } + } + else + { // default spindle + enqueue_START_SPINDLE_COUNTERCLOCKWISE(0); + settings->spindle_turning[0] = CANON_COUNTERCLOCKWISE; + } + } + else if ((block->m_modes[7] == 5) && ONCE_M(7)) + { + if (block->dollar_flag) + { + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), + (_("Spindle ($) number out of range in M5 Command\nnum_spindles =%i. $=%d\n")), settings->num_spindles, (int)block->dollar_number); + if (block->dollar_number == -1) + { // all spindles + for (int i = 0; i < settings->num_spindles; i++) + { + settings->spindle_turning[i] = CANON_STOPPED; + enqueue_STOP_SPINDLE_TURNING(i); + } + } + else + { // a specific spindle + settings->spindle_turning[block->dollar_number] = CANON_STOPPED; + enqueue_STOP_SPINDLE_TURNING(block->dollar_number); + } + } + else + { // the default spindle + for (int i = 0; i < settings->num_spindles; i++) + { + settings->spindle_turning[i] = CANON_STOPPED; + enqueue_STOP_SPINDLE_TURNING(i); + } + } + } + else if ((block->m_modes[7] == 19) && ONCE_M(7)) + { + for (int i = 0; i < settings->num_spindles; i++) + settings->spindle_turning[i] = CANON_STOPPED; + if (block->dollar_flag) + { + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < 0), + (_("Spindle ($) number out of range in M19 Command"))); + } + if (block->r_flag || block->p_flag) + enqueue_ORIENT_SPINDLE(block->dollar_flag ? block->dollar_number : 0, + block->r_flag ? (block->r_number + settings->orient_offset) : settings->orient_offset, + block->p_flag ? block->p_number : 0); + if (block->q_flag) + { + CHKS((block->q_number <= 0.0), (_("Q word with M19 requires a value > 0"))); + enqueue_WAIT_ORIENT_SPINDLE_COMPLETE(block->dollar_flag ? block->dollar_number : 0, + block->q_number); + } + } + else if ((block->m_modes[7] == 70) || (block->m_modes[7] == 73)) + { + + // save state in current stack frame. We borrow the o-word call stack + // and extend it to hold modes & settings. + save_settings(&_setup); + + // flag this frame as containing a valid context + _setup.sub_context[_setup.call_level].context_status |= CONTEXT_VALID; + + // mark as auto-restore context + if (block->m_modes[7] == 73) + { + if (_setup.call_level == 0) + { + MSG("Warning - M73 at top level: nothing to return to; storing context anyway\n"); + } + else + { + _setup.sub_context[_setup.call_level].context_status |= CONTEXT_RESTORE_ON_RETURN; + } + } + } + else if ((block->m_modes[7] == 71) && ONCE_M(7)) + { + // M72 - invalidate context at current level + _setup.sub_context[_setup.call_level].context_status &= ~CONTEXT_VALID; + } + else if ((block->m_modes[7] == 72) && ONCE_M(7)) + { + + // restore state from current stack frame. + CHKS((!(_setup.sub_context[_setup.call_level].context_status & CONTEXT_VALID)), + (_("Cannot restore context from invalid stack frame - missing M70/M73?"))); + CHP(restore_settings(&_setup, _setup.call_level)); + } + + if (is_user_defined_m_code(block, settings, 8) && + STEP_REMAPPED_IN_BLOCK(block, STEP_M_8) && ONCE_M(8)) + { + return convert_remapped_code(block, settings, STEP_M_8, 'm', block->m_modes[8]); + } + else if ((block->m_modes[8] == 7) && ONCE_M(8)) + { + enqueue_MIST_ON(); + settings->mist = true; + } + else if ((block->m_modes[8] == 8) && ONCE_M(8)) + { + enqueue_FLOOD_ON(); + settings->flood = true; + } + else if ((block->m_modes[8] == 9) && ONCE_M(8)) + { + enqueue_MIST_OFF(); + settings->mist = false; + enqueue_FLOOD_OFF(); + settings->flood = false; + } - if (block->l_flag) { - type = round_to_int(block->l_number); - } else { - type = WAIT_MODE_IMMEDIATE; + /* 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 = true; + } + else if (block->m_modes[2] == 27) + { + #ifdef DEBUG_EMC + COMMENT("interpreter: automatic A-axis clamping turned off"); + #endif + settings->a_axis_clamping = false; + } + */ + if (is_user_defined_m_code(block, settings, 9) && ONCE_M(9)) + { + return convert_remapped_code(block, settings, STEP_M_9, 'm', + block->m_modes[9]); + } + else if ((block->m_modes[9] == 48) && ONCE_M(9)) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_FEED_OVERRIDE(); + settings->feed_override = true; + for (int s = 0; s < settings->num_spindles; s++) + { + settings->speed_override[s] = true; + ENABLE_SPEED_OVERRIDE(s); + } + } + else if ((block->m_modes[9] == 49) && ONCE_M(9)) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + DISABLE_FEED_OVERRIDE(); + settings->feed_override = false; + for (int s = 0; s < settings->num_spindles; s++) + { + settings->speed_override[s] = false; + DISABLE_SPEED_OVERRIDE(s); } + } - if (block->q_number > 0) { - timeout = block->q_number; - } else { - timeout = 0; + if ((block->m_modes[9] == 50) && ONCE_M(9)) + { + if (block->p_number != 0) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_FEED_OVERRIDE(); + settings->feed_override = true; + } + else + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + DISABLE_FEED_OVERRIDE(); + settings->feed_override = false; } + } - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot wait for digital input with cutter radius compensation on"))); - - int ret = WAIT(round_to_int(block->p_number), DIGITAL_INPUT, type, timeout); - //WAIT returns 0 on success, -1 for out of bounds - CHKS((ret == -1), NCE_DIGITAL_INPUT_INVALID_ON_M66); - if (ret == 0) { - settings->input_flag = true; - settings->input_index = round_to_int(block->p_number); - settings->input_digital = true; - } - } else if (round_to_int(block->e_number) >= 0) { // got an analog input - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot wait for analog input with cutter radius compensation on"))); - - int ret = WAIT(round_to_int(block->e_number), ANALOG_INPUT, 0, 0); //WAIT returns 0 on success, -1 for out of bounds - CHKS((ret == -1), NCE_ANALOG_INPUT_INVALID_ON_M66); - if (ret == 0) { - settings->input_flag = true; - settings->input_index = round_to_int(block->e_number); - settings->input_digital = false; - } - } - } else if ((block->m_modes[5] == 67) && ONCE_M(5)) { - - //E-word = analog channel - //Q-word = analog value - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set motion analog output with cutter radius compensation on"))); // XXX - CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M67"))); - SET_MOTION_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); - } else if ((block->m_modes[5] == 68) && ONCE_M(5)) { - //E-word = analog channel - //Q-word = analog value - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set auxiliary analog output with cutter radius compensation on"))); // XXX - CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M68"))); - SET_AUX_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); - } - - if ((block->m_modes[6] != -1) && ONCE_M(6)){ - int toolno; - bool remapped_in_block = STEP_REMAPPED_IN_BLOCK(block, STEP_M_6); - - switch (block->m_modes[6]) { - case 6: - if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) { - return convert_remapped_code(block,settings, - STEP_M_6, - 'm', - block->m_modes[6]); - } else { - // the code was used in its very remap procedure - - // the 'recursion case'; record the fact - CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; - CHP(convert_tool_change(settings)); - } - break; - - case 61: - if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) { - return convert_remapped_code(block, settings, STEP_M_6,'m', - block->m_modes[6]); - } else { - CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; - toolno = round_to_int(block->q_number); - // now also accept M61 Q0 - unload tool - CHKS((toolno < 0), (_("Need non-negative Q-word to specify tool number with M61"))); - - int idx; - - // make sure selected tool exists - CHP((find_tool_index(settings, toolno, &idx))); - settings->current_pocket = idx; - settings->toolchange_flag = true; - CHANGE_TOOL_NUMBER(settings->current_pocket); - set_tool_parameters(); - } - break; - - default: - if (is_user_defined_m_code(block, settings, 6)) { - return convert_remapped_code(block, settings, STEP_M_6,'m', - block->m_modes[6]); - } - } - } - - if (FEATURE(RETAIN_G43)) { - - if ((settings->active_g_codes[9] == G_43) && ONCE(STEP_RETAIN_G43)) { - if(settings->selected_pocket > 0) { - struct block_struct g43; - init_block(&g43); - block->g_modes[gees[G_43]] = G_43; - CHP(convert_tool_length_offset(G_43, &g43, settings)); - } else { - struct block_struct g49; - init_block(&g49); - block->g_modes[gees[G_49]] = G_49; - CHP(convert_tool_length_offset(G_49, &g49, settings)); - } - } - } - - if (is_user_defined_m_code(block, settings, 7) && ONCE_M(7)) { - return convert_remapped_code(block, settings, STEP_M_7, 'm', - block->m_modes[7]); - } else if ((block->m_modes[7] == 3) && ONCE_M(7)) { - if (block->dollar_flag){ - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), - (_("Spindle ($) number out of range in M3 Command\nnum_spindles =%i. $=%d\n")),settings->num_spindles,(int)block->dollar_number); - if (block->dollar_number == -1){ // all spindles - for (int i = 0; i < settings->num_spindles; i++){ - enqueue_START_SPINDLE_CLOCKWISE(i); - settings->spindle_turning[i] = CANON_CLOCKWISE; + if ((block->m_modes[9] == 51) && ONCE_M(9)) + { + int e = -1; + if (block->dollar_flag) + { + CHKS((block->dollar_number <= 0 || block->dollar_number >= settings->num_spindles), + (_("Invalid spindle ($) number in M51 command"))); + e = block->dollar_number; + } + if (block->p_number != 0) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + for (int s = 0; s < settings->num_spindles; s++) + { + if (e == -1 or s == e) + { + ENABLE_SPEED_OVERRIDE(s); + settings->speed_override[s] = true; + } } - } else { // a specific spindle - enqueue_START_SPINDLE_CLOCKWISE(block->dollar_number); - settings->spindle_turning[(int)block->dollar_number] = CANON_CLOCKWISE; - } - } else { // the default spindle - enqueue_START_SPINDLE_CLOCKWISE(0); - settings->spindle_turning[0] = CANON_CLOCKWISE; - } - } else if ((block->m_modes[7] == 4) && ONCE_M(7)) { - if (block->dollar_flag){ - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), - (_("Spindle ($) number out of range in M4 Command\nnum_spindles =%i. $=%d\n")),settings->num_spindles,(int)block->dollar_number); - if (block->dollar_number == -1){ // all spindles - for (int i = 0; i < settings->num_spindles; i++){ - enqueue_START_SPINDLE_COUNTERCLOCKWISE(i); - settings->spindle_turning[i] = CANON_COUNTERCLOCKWISE; - } - } else { // a specific spindle - enqueue_START_SPINDLE_COUNTERCLOCKWISE(block->dollar_number); - settings->spindle_turning[(int)block->dollar_number] = CANON_COUNTERCLOCKWISE; - } - } else { // default spindle - enqueue_START_SPINDLE_COUNTERCLOCKWISE(0); - settings->spindle_turning[0] = CANON_COUNTERCLOCKWISE; - } - } else if ((block->m_modes[7] == 5) && ONCE_M(7)){ - if (block->dollar_flag){ - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), - (_("Spindle ($) number out of range in M5 Command\nnum_spindles =%i. $=%d\n")),settings->num_spindles,(int)block->dollar_number); - if (block->dollar_number == -1){ // all spindles - for (int i = 0; i < settings->num_spindles; i++){ - settings->spindle_turning[i] = CANON_STOPPED; - enqueue_STOP_SPINDLE_TURNING(i); + } + else + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + for (int s = 0; s < settings->num_spindles; s++) + { + if (e == -1 or s == e) + { + DISABLE_SPEED_OVERRIDE(s); + settings->speed_override[s] = false; + } } - } else { // a specific spindle - settings->spindle_turning[block->dollar_number] = CANON_STOPPED; - enqueue_STOP_SPINDLE_TURNING(block->dollar_number); - } - } else { // the default spindle - for (int i = 0; i < settings->num_spindles; i++){ - settings->spindle_turning[i] = CANON_STOPPED; - enqueue_STOP_SPINDLE_TURNING(i); - } - } - } else if ((block->m_modes[7] == 19) && ONCE_M(7)) { - for (int i = 0; i < settings->num_spindles; i++) - settings->spindle_turning[i] = CANON_STOPPED; - if (block->dollar_flag){ - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < 0), - (_("Spindle ($) number out of range in M19 Command"))); - } - if (block->r_flag || block->p_flag) - enqueue_ORIENT_SPINDLE(block->dollar_flag ? block->dollar_number : 0, - block->r_flag ? (block->r_number + settings->orient_offset) : settings->orient_offset, - block->p_flag ? block->p_number : 0); - if (block->q_flag) { - CHKS((block->q_number <= 0.0),(_("Q word with M19 requires a value > 0"))); - enqueue_WAIT_ORIENT_SPINDLE_COMPLETE(block->dollar_flag ? block->dollar_number : 0, - block->q_number); - } - } else if ((block->m_modes[7] == 70) || (block->m_modes[7] == 73)) { - - // save state in current stack frame. We borrow the o-word call stack - // and extend it to hold modes & settings. - save_settings(&_setup); - - // flag this frame as containing a valid context - _setup.sub_context[_setup.call_level].context_status |= CONTEXT_VALID; - - // mark as auto-restore context - if (block->m_modes[7] == 73) { - if (_setup.call_level == 0) { - MSG("Warning - M73 at top level: nothing to return to; storing context anyway\n"); - } else { - _setup.sub_context[_setup.call_level].context_status |= CONTEXT_RESTORE_ON_RETURN; - } - } - } else if ((block->m_modes[7] == 71) && ONCE_M(7)) { - // M72 - invalidate context at current level - _setup.sub_context[_setup.call_level].context_status &= ~CONTEXT_VALID; - - } else if ((block->m_modes[7] == 72) && ONCE_M(7)) { - - // restore state from current stack frame. - CHKS((!(_setup.sub_context[_setup.call_level].context_status & CONTEXT_VALID)), - (_("Cannot restore context from invalid stack frame - missing M70/M73?"))); - CHP(restore_settings(&_setup, _setup.call_level)); - } - - if (is_user_defined_m_code(block, settings, 8) && - STEP_REMAPPED_IN_BLOCK(block, STEP_M_8) && ONCE_M(8)) { - return convert_remapped_code(block, settings, STEP_M_8, 'm', block->m_modes[8]); - } else if ((block->m_modes[8] == 7) && ONCE_M(8)){ - enqueue_MIST_ON(); - settings->mist = true; - } else if ((block->m_modes[8] == 8) && ONCE_M(8)) { - enqueue_FLOOD_ON(); - settings->flood = true; - } else if ((block->m_modes[8] == 9) && ONCE_M(8)) { - enqueue_MIST_OFF(); - settings->mist = false; - enqueue_FLOOD_OFF(); - settings->flood = false; - } - -/* 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 = true; + } } - else if (block->m_modes[2] == 27) + + if ((block->m_modes[9] == 52) && ONCE_M(9)) { -#ifdef DEBUG_EMC - COMMENT("interpreter: automatic A-axis clamping turned off"); -#endif - settings->a_axis_clamping = false; - } -*/ -if (is_user_defined_m_code(block, settings, 9) && ONCE_M(9)) { - return convert_remapped_code(block, settings, STEP_M_9, 'm', - block->m_modes[9]); - } else if ((block->m_modes[9] == 48) && ONCE_M(9)){ - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_FEED_OVERRIDE(); - settings->feed_override = true; - for (int s = 0; s < settings->num_spindles; s++){ - settings->speed_override[s] = true; - ENABLE_SPEED_OVERRIDE(s); - } - } else if ((block->m_modes[9] == 49) && ONCE_M(9)){ - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - DISABLE_FEED_OVERRIDE(); - settings->feed_override = false; - for (int s = 0; s < settings->num_spindles; s++){ - settings->speed_override[s] = false; - DISABLE_SPEED_OVERRIDE(s); + if (block->p_number != 0) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_ADAPTIVE_FEED(); + settings->adaptive_feed = true; + } + else + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + DISABLE_ADAPTIVE_FEED(); + settings->adaptive_feed = false; + } } - } -if ((block->m_modes[9] == 50) && ONCE_M(9)){ - if (block->p_number != 0) { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_FEED_OVERRIDE(); - settings->feed_override = true; - } else { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - DISABLE_FEED_OVERRIDE(); - settings->feed_override = false; - } - } - -if ((block->m_modes[9] == 51) && ONCE_M(9)){ - int e = -1; - if (block->dollar_flag){ - CHKS((block->dollar_number <= 0 || block->dollar_number >= settings-> num_spindles), - (_("Invalid spindle ($) number in M51 command"))); - e = block->dollar_number; - } - if (block->p_number != 0) { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - for (int s = 0; s < settings->num_spindles; s++){ - if (e == -1 or s == e){ - ENABLE_SPEED_OVERRIDE(s); - settings->speed_override[s] = true; - } - } - } else { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - for (int s = 0; s < settings->num_spindles; s++){ - if (e == -1 or s == e){ - DISABLE_SPEED_OVERRIDE(s); - settings->speed_override[s] = false; - } - } - } - } - -if ((block->m_modes[9] == 52) && ONCE_M(9)){ - if (block->p_number != 0) { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_ADAPTIVE_FEED(); - settings->adaptive_feed = true; - } else { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - DISABLE_ADAPTIVE_FEED(); - settings->adaptive_feed = false; + if ((block->m_modes[9] == 53) && ONCE_M(9)) + { + if (block->p_number != 0) + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_FEED_HOLD(); + settings->feed_hold = true; + } + else + { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + DISABLE_FEED_HOLD(); + settings->feed_hold = false; + } } - } -if ((block->m_modes[9] == 53) && ONCE_M(9)){ - if (block->p_number != 0) { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_FEED_HOLD(); - settings->feed_hold = true; - } else { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - DISABLE_FEED_HOLD(); - settings->feed_hold = false; + if (is_user_defined_m_code(block, settings, 10) && ONCE_M(10)) + { + return convert_remapped_code(block, settings, STEP_M_10, 'm', + block->m_modes[10]); } - } - -if (is_user_defined_m_code(block, settings, 10) && ONCE_M(10)) { - return convert_remapped_code(block,settings,STEP_M_10,'m', - block->m_modes[10]); - - } else if ((block->m_modes[10] != -1) && ONCE_M(10)){ - /* user-defined M codes */ - int index = block->m_modes[10]; - if (USER_DEFINED_FUNCTION[index - 100] == 0) { - CHKS(1, NCE_UNKNOWN_M_CODE_USED,index); + else if ((block->m_modes[10] != -1) && ONCE_M(10)) + { + /* user-defined M codes */ + int index = block->m_modes[10]; + if (USER_DEFINED_FUNCTION[index - 100] == 0) + { + CHKS(1, NCE_UNKNOWN_M_CODE_USED, index); + } + enqueue_M_USER_COMMAND(index, block->p_number, block->q_number); } - enqueue_M_USER_COMMAND(index,block->p_number,block->q_number); - } - return INTERP_OK; + return INTERP_OK; } /****************************************************************************/ @@ -4238,34 +4676,49 @@ G53) are executed elsewhere. */ -int Interp::convert_modal_0(int code, //!< G-code, must be from group 0 - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_modal_0(int code, //!< G-code, must be from group 0 + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - if (code == G_10) { - if(block->l_number == 1 || block->l_number == 10 || block->l_number == 11) - CHP(convert_setup_tool(block, settings)); - else if (block->l_number == 0) { - int tno = settings->tool_table[0].toolno; - if (tno > 0) { ERS("G10 L0 not allowed with loaded tool <%d>\n",tno); } - settings->toolchange_flag = true; // refresh actual pos, sync,etc - RELOAD_TOOLDATA(); // msg to io - } - else - CHP(convert_setup(block, settings)); - } else if ((code == G_28) || (code == G_30)) { - CHP(convert_home(code, block, settings)); - } else if ((code == G_28_1) || (code == G_30_1)) { - CHP(convert_savehome(code, block, settings)); - } else if ((code == G_52) || (code == G_92)) { - CHP(convert_axis_offsets(code, block, settings)); - } else if ((code == G_5_3)||(code == G_6_3)) { // jjf - CHP(convert_nurbs(code, block, settings)); - } else if ((code == G_4) || (code == G_53)); // handled elsewhere - else - ERS(NCE_BUG_CODE_NOT_G4_G10_G28_G30_G52_G53_OR_G92_SERIES); - return INTERP_OK; + if (code == G_10) + { + if (block->l_number == 1 || block->l_number == 10 || block->l_number == 11) + CHP(convert_setup_tool(block, settings)); + else if (block->l_number == 0) + { + int tno = settings->tool_table[0].toolno; + if (tno > 0) + { + ERS("G10 L0 not allowed with loaded tool <%d>\n", tno); + } + settings->toolchange_flag = true; // refresh actual pos, sync,etc + RELOAD_TOOLDATA(); // msg to io + } + else + CHP(convert_setup(block, settings)); + } + else if ((code == G_28) || (code == G_30)) + { + CHP(convert_home(code, block, settings)); + } + else if ((code == G_28_1) || (code == G_30_1)) + { + CHP(convert_savehome(code, block, settings)); + } + else if ((code == G_52) || (code == G_92)) + { + CHP(convert_axis_offsets(code, block, settings)); + } + else if ((code == G_5_3) || (code == G_6_3)) + { // jjf + CHP(convert_nurbs(code, block, settings)); + } + else if ((code == G_4) || (code == G_53)) + ; // handled elsewhere + else + ERS(NCE_BUG_CODE_NOT_G4_G10_G28_G30_G52_G53_OR_G92_SERIES); + return INTERP_OK; } int Interp::convert_g92_is_applied(int code, block_pointer block, @@ -4275,7 +4728,6 @@ int Interp::convert_g92_is_applied(int code, block_pointer block, return INTERP_OK; } - /****************************************************************************/ /*! convert_motion @@ -4299,74 +4751,106 @@ Called by: convert_g. */ -int Interp::convert_motion(int motion, //!< g_code for a line, arc, canned cycle - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_motion(int motion, //!< g_code for a line, arc, canned cycle + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - int ai = block->a_flag && (-1 != settings->a_indexer_jnum); - int bi = block->b_flag && (-1 != settings->b_indexer_jnum); - int ci = block->c_flag && (-1 != settings->c_indexer_jnum); - - - if (motion != G_0) { - CHKS((ai), (_("Indexing axis %c can only be moved with G0")), 'A'); - CHKS((bi), (_("Indexing axis %c can only be moved with G0")), 'B'); - CHKS((ci), (_("Indexing axis %c can only be moved with G0")), 'C'); - } - - int xyzuvw_flag = (block->x_flag || block->y_flag || block->z_flag || - block->u_flag || block->v_flag || block->w_flag); - - CHKS((ai && (xyzuvw_flag || block->b_flag || block->c_flag)), - (_("Indexing axis %c can only be moved alone")), 'A'); - CHKS((bi && (xyzuvw_flag || block->a_flag || block->c_flag)), - (_("Indexing axis %c can only be moved alone")), 'B'); - CHKS((ci && (xyzuvw_flag || block->a_flag || block->b_flag)), - (_("Indexing axis %c can only be moved alone")), 'C'); - - if (!is_a_cycle(motion)) - settings->cycle_il_flag = false; - - if (ai || bi || ci) { - int anum=-1,jnum=-1; - if ( ai) {anum = 3; jnum = settings->a_indexer_jnum;} - else if (bi) {anum = 4; jnum = settings->b_indexer_jnum;} - else if (ci) {anum = 5; jnum = settings->c_indexer_jnum;} - CHP(convert_straight_indexer(anum, jnum, block, settings)); - } else if ((motion == G_0) || (motion == G_1) || (motion == G_33) || (motion == G_33_1) || (motion == G_76)) { - CHP(convert_straight(motion, block, settings)); - } else if ((motion == G_3) || (motion == G_2)) { - CHP(convert_arc(motion, block, settings)); - } else if (motion == G_38_2 || motion == G_38_3 || - motion == G_38_4 || motion == G_38_5) { - CHP(convert_probe(block, motion, settings)); - } else if (motion == G_80) { + int ai = block->a_flag && (-1 != settings->a_indexer_jnum); + int bi = block->b_flag && (-1 != settings->b_indexer_jnum); + int ci = block->c_flag && (-1 != settings->c_indexer_jnum); + + if (motion != G_0) + { + CHKS((ai), (_("Indexing axis %c can only be moved with G0")), 'A'); + CHKS((bi), (_("Indexing axis %c can only be moved with G0")), 'B'); + CHKS((ci), (_("Indexing axis %c can only be moved with G0")), 'C'); + } + + int xyzuvw_flag = (block->x_flag || block->y_flag || block->z_flag || + block->u_flag || block->v_flag || block->w_flag); + + CHKS((ai && (xyzuvw_flag || block->b_flag || block->c_flag)), + (_("Indexing axis %c can only be moved alone")), 'A'); + CHKS((bi && (xyzuvw_flag || block->a_flag || block->c_flag)), + (_("Indexing axis %c can only be moved alone")), 'B'); + CHKS((ci && (xyzuvw_flag || block->a_flag || block->b_flag)), + (_("Indexing axis %c can only be moved alone")), 'C'); + + if (!is_a_cycle(motion)) + settings->cycle_il_flag = false; + + if (ai || bi || ci) + { + int anum = -1, jnum = -1; + if (ai) + { + anum = 3; + jnum = settings->a_indexer_jnum; + } + else if (bi) + { + anum = 4; + jnum = settings->b_indexer_jnum; + } + else if (ci) + { + anum = 5; + jnum = settings->c_indexer_jnum; + } + CHP(convert_straight_indexer(anum, jnum, block, settings)); + } + else if ((motion == G_0) || (motion == G_1) || (motion == G_33) || (motion == G_33_1) || (motion == G_76)) + { + CHP(convert_straight(motion, block, settings)); + } + else if ((motion == G_3) || (motion == G_2)) + { + CHP(convert_arc(motion, block, settings)); + } + else if (motion == G_38_2 || motion == G_38_3 || + motion == G_38_4 || motion == G_38_5) + { + CHP(convert_probe(block, motion, settings)); + } + else if (motion == G_80) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: motion mode set to none"); + enqueue_COMMENT("interpreter: motion mode set to none"); #endif - settings->motion_mode = G_80; - } else if (is_user_defined_g_code(motion)) { - CHP(convert_remapped_code(block, settings, STEP_MOTION, 'g', motion)); - } else if (is_a_cycle(motion)) { - - CHP(convert_cycle(motion, block, settings)); - } else if ((motion == G_5) || (motion == G_5_1) || (motion == G_6) || (motion == G_6_1) ) { // jjf - write_canon_state_tag(block, settings); - CHP(convert_spline(motion, block, settings)); - } else if ((motion == G_5_2) || (motion == G_6_2)) { // jjf - write_canon_state_tag(block, settings); - CHP(convert_nurbs(motion, block, settings)); - } else if ( - motion == G_70 || - motion == G_71 || motion == G_71_1 || motion == G_71_2 || - motion == G_72 || motion == G_72_1 || motion == G_72_2 - ) { - CHP(convert_g7x(motion, block, settings)); - } else { - ERS(NCE_BUG_UNKNOWN_MOTION_CODE); - } - - return INTERP_OK; + settings->motion_mode = G_80; + } + else if (is_user_defined_g_code(motion)) + { + CHP(convert_remapped_code(block, settings, STEP_MOTION, 'g', motion)); + } + else if (is_a_cycle(motion)) + { + + CHP(convert_cycle(motion, block, settings)); + } + else if ((motion == G_5) || (motion == G_5_1) || (motion == G_6) || (motion == G_6_1)) + { // jjf + write_canon_state_tag(block, settings); + CHP(convert_spline(motion, block, settings)); + } + else if ((motion == G_5_2) || (motion == G_6_2)) + { // jjf + write_canon_state_tag(block, settings); + CHP(convert_nurbs(motion, block, settings)); + } + else if ( + motion == G_70 || + motion == G_71 || motion == G_71_1 || motion == G_71_2 || + motion == G_72 || motion == G_72_1 || motion == G_72_2) + { + CHP(convert_g7x(motion, block, settings)); + } + else + { + ERS(NCE_BUG_UNKNOWN_MOTION_CODE); + } + + return INTERP_OK; } /****************************************************************************/ @@ -4402,53 +4886,53 @@ current position by calls to get_external_position_x, etc. */ -int Interp::convert_probe(block_pointer block, //!< pointer to a block of RS274 instructions +int Interp::convert_probe(block_pointer block, //!< pointer to a block of RS274 instructions int g_code, - setup_pointer settings) //!< pointer to machine settings + setup_pointer settings) //!< pointer to machine settings { - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end; - double v_end; - double w_end; - - /* probe_type: - ~1 = error if probe operation is unsuccessful (ngc default) - |1 = suppress error, report in # instead - ~2 = move until probe trips (ngc default) - |2 = move until probe clears */ - - unsigned char probe_type = g_code - G_38_2; - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - NCE_CANNOT_PROBE_WITH_CUTTER_RADIUS_COMP_ON); - CHKS((settings->feed_rate == 0.0), NCE_CANNOT_PROBE_WITH_ZERO_FEED_RATE); - CHKS(settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION, - _("Cannot probe with feed per rev mode")); - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end)); - CHKS(((!(probe_type & 1)) && - settings->current_x == end_x && settings->current_y == end_y && - settings->current_z == end_z && settings->AA_current == AA_end && - settings->BB_current == BB_end && settings->CC_current == CC_end && - settings->u_current == u_end && settings->v_current == v_end && - settings->w_current == w_end), - NCE_START_POINT_TOO_CLOSE_TO_PROBE_POINT); - - TURN_PROBE_ON(); - STRAIGHT_PROBE(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, probe_type); - - TURN_PROBE_OFF(); - settings->motion_mode = g_code; - settings->probe_flag = true; - return INTERP_OK; + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end; + double v_end; + double w_end; + + /* probe_type: + ~1 = error if probe operation is unsuccessful (ngc default) + |1 = suppress error, report in # instead + ~2 = move until probe trips (ngc default) + |2 = move until probe clears */ + + unsigned char probe_type = g_code - G_38_2; + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + NCE_CANNOT_PROBE_WITH_CUTTER_RADIUS_COMP_ON); + CHKS((settings->feed_rate == 0.0), NCE_CANNOT_PROBE_WITH_ZERO_FEED_RATE); + CHKS(settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION, + _("Cannot probe with feed per rev mode")); + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end)); + CHKS(((!(probe_type & 1)) && + settings->current_x == end_x && settings->current_y == end_y && + settings->current_z == end_z && settings->AA_current == AA_end && + settings->BB_current == BB_end && settings->CC_current == CC_end && + settings->u_current == u_end && settings->v_current == v_end && + settings->w_current == w_end), + NCE_START_POINT_TOO_CLOSE_TO_PROBE_POINT); + + TURN_PROBE_ON(); + STRAIGHT_PROBE(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, probe_type); + + TURN_PROBE_OFF(); + settings->motion_mode = g_code; + settings->probe_flag = true; + return INTERP_OK; } /****************************************************************************/ @@ -4472,30 +4956,35 @@ this function. */ -int Interp::convert_retract_mode(int g_code, //!< g_code being executed (must be G_98 or G_99) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_retract_mode(int g_code, //!< g_code being executed (must be G_98 or G_99) + setup_pointer settings) //!< pointer to machine settings { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change retract mode with cutter radius compensation on"))); - if (g_code == G_98) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change retract mode with cutter radius compensation on"))); + if (g_code == G_98) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: retract mode set to old_z"); + enqueue_COMMENT("interpreter: retract mode set to old_z"); #endif - settings->retract_mode = RETRACT_MODE::OLD_Z; - } else if (g_code == G_99) { + settings->retract_mode = RETRACT_MODE::OLD_Z; + } + else if (g_code == G_99) + { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: retract mode set to r_plane"); + enqueue_COMMENT("interpreter: retract mode set to r_plane"); #endif - settings->retract_mode = RETRACT_MODE::R_PLANE; - } else - ERS(NCE_BUG_CODE_NOT_G98_OR_G99); - return INTERP_OK; + settings->retract_mode = RETRACT_MODE::R_PLANE; + } + else + ERS(NCE_BUG_CODE_NOT_G98_OR_G99); + return INTERP_OK; } // G10 L1 P[tool number] R[radius] X[x offset] Z[z offset] Q[orientation] // G10 L10 P[tool number] R[radius] X[x offset] Z[z offset] Q[orientation] -int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { +int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) +{ int idx = -1, toolno; int q; double tx, ty, tz, ta, tb, tc, tu, tv, tw; @@ -4512,35 +5001,39 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { block->j_flag), _("G10 L1 without offsets has no effect")); - if(direct) { - if(block->x_flag) + if (direct) + { + if (block->x_flag) settings->tool_table[idx].offset.tran.x = PROGRAM_TO_USER_LEN(block->x_number); - if(block->y_flag) + if (block->y_flag) settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(block->y_number); - if(block->z_flag) + if (block->z_flag) settings->tool_table[idx].offset.tran.z = PROGRAM_TO_USER_LEN(block->z_number); - if(block->a_flag) + if (block->a_flag) settings->tool_table[idx].offset.a = PROGRAM_TO_USER_ANG(block->a_number); - if(block->b_flag) + if (block->b_flag) settings->tool_table[idx].offset.b = PROGRAM_TO_USER_ANG(block->b_number); - if(block->c_flag) + if (block->c_flag) settings->tool_table[idx].offset.c = PROGRAM_TO_USER_ANG(block->c_number); - if(block->u_flag) + if (block->u_flag) settings->tool_table[idx].offset.u = PROGRAM_TO_USER_LEN(block->u_number); - if(block->v_flag) + if (block->v_flag) settings->tool_table[idx].offset.v = PROGRAM_TO_USER_LEN(block->v_number); - if(block->w_flag) + if (block->w_flag) settings->tool_table[idx].offset.w = PROGRAM_TO_USER_LEN(block->w_number); - } else { + } + else + { int to_fixture = block->l_number == 11; - int destination_system = to_fixture? 9 : settings->origin_index; // maybe 9 (g59.3) should be user configurable? + int destination_system = to_fixture ? 9 : settings->origin_index; // maybe 9 (g59.3) should be user configurable? find_current_in_system_without_tlo(settings, destination_system, &tx, &ty, &tz, &ta, &tb, &tc, &tu, &tv, &tw); - if ( to_fixture && settings->parameters[5210]) { + if (to_fixture && settings->parameters[5210]) + { // For G10L11, we don't want to move the origin of the // fixture according to G92. Since find_current_in_system // did this for us already, undo it. @@ -4555,14 +5048,16 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { tw += USER_TO_PROGRAM_LEN(settings->parameters[5219]); } - - if(block->x_flag && block->y_flag) { + if (block->x_flag && block->y_flag) + { tx -= block->x_number; ty -= block->y_number; rotate(&tx, &ty, settings->parameters[5210 + destination_system * 20]); settings->tool_table[idx].offset.tran.x = PROGRAM_TO_USER_LEN(tx); settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(ty); - } else if(block->x_flag) { + } + else if (block->x_flag) + { // keep the component of the tool table's current setting that points // along our possibly-rotated Y axis double ox, oy; @@ -4572,14 +5067,15 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { ox = 0; rotate(&ox, &oy, settings->parameters[5210 + destination_system * 20]); - tx -= block->x_number; ty = 0; rotate(&tx, &ty, settings->parameters[5210 + destination_system * 20]); settings->tool_table[idx].offset.tran.x = PROGRAM_TO_USER_LEN(tx + ox); settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(ty + oy); - } else if(block->y_flag) { + } + else if (block->y_flag) + { double ox, oy; ox = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); oy = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); @@ -4595,27 +5091,30 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(ty + oy); } - - if(block->z_flag) + if (block->z_flag) settings->tool_table[idx].offset.tran.z = PROGRAM_TO_USER_LEN(tz - block->z_number); - if(block->a_flag) + if (block->a_flag) settings->tool_table[idx].offset.a = PROGRAM_TO_USER_ANG(ta - block->a_number); - if(block->b_flag) + if (block->b_flag) settings->tool_table[idx].offset.b = PROGRAM_TO_USER_ANG(tb - block->b_number); - if(block->c_flag) + if (block->c_flag) settings->tool_table[idx].offset.c = PROGRAM_TO_USER_ANG(tc - block->c_number); - if(block->u_flag) + if (block->u_flag) settings->tool_table[idx].offset.u = PROGRAM_TO_USER_LEN(tu - block->u_number); - if(block->v_flag) + if (block->v_flag) settings->tool_table[idx].offset.v = PROGRAM_TO_USER_LEN(tv - block->v_number); - if(block->w_flag) + if (block->w_flag) settings->tool_table[idx].offset.w = PROGRAM_TO_USER_LEN(tw - block->w_number); } - if(block->r_flag) settings->tool_table[idx].diameter = PROGRAM_TO_USER_LEN(block->r_number) * 2.; - if(block->i_flag) settings->tool_table[idx].frontangle = block->i_number; - if(block->j_flag) settings->tool_table[idx].backangle = block->j_number; - if(block->q_number != -1.0) { + if (block->r_flag) + settings->tool_table[idx].diameter = PROGRAM_TO_USER_LEN(block->r_number) * 2.; + if (block->i_flag) + settings->tool_table[idx].frontangle = block->i_number; + if (block->j_flag) + settings->tool_table[idx].backangle = block->j_number; + if (block->q_number != -1.0) + { CHKS((!is_near_int(&q, block->q_number)), _("Q number in G10 is not an integer")); CHKS((q > 9), _("Invalid tool orientation")); settings->tool_table[idx].orientation = q; @@ -4637,7 +5136,8 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { // there tools don't have a home index, and instead we updated index // 0 (the spindle) directly when modifying the loaded tool. // - if ((!settings->random_toolchanger) && (settings->current_pocket == idx)) { + if ((!settings->random_toolchanger) && (settings->current_pocket == idx)) + { settings->tool_table[0] = settings->tool_table[idx]; } @@ -4647,16 +5147,25 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { // Unfortunately, random and nonrandom toolchangers use a different // number for "invalid tool number": nonrandom uses 0, random uses -1. // - if (settings->random_toolchanger) { - if (settings->tool_table[0].toolno >= 0) { + if (settings->random_toolchanger) + { + if (settings->tool_table[0].toolno >= 0) + { settings->parameters[5400] = settings->tool_table[0].toolno; - } else { + } + else + { settings->parameters[5400] = -1; } - } else { - if (settings->tool_table[0].toolno > 0) { + } + else + { + if (settings->tool_table[0].toolno > 0) + { settings->parameters[5400] = settings->tool_table[0].toolno; - } else { + } + else + { settings->parameters[5400] = 0; } } @@ -4678,8 +5187,8 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { // if the modified tool is currently in the spindle, then copy its // information to index 0 of the tool table (which signifies the // spindle) - if ( !_setup.random_toolchanger - && idx == settings->current_pocket) { + if (!_setup.random_toolchanger && idx == settings->current_pocket) + { SET_TOOL_TABLE_ENTRY(0, settings->tool_table[idx].toolno, settings->tool_table[idx].offset, @@ -4725,200 +5234,236 @@ See documentation of convert_coordinate_system for more information. */ -int Interp::convert_setup(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_setup(block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - double x; - double y; - double z; - double a; - double b; - double c; - double u, v, w; - double r; - double *parameters; - int p_int; - - double cx, cy, cz, ca, cb, cc, cu, cv, cw; - - CHKS((block->i_flag || block->j_flag), _("I J words not allowed with G10 L2")); - - parameters = settings->parameters; - p_int = (int) (block->p_number + 0.0001); - - // if P = 0 then use whatever coordinate system that is currently active - if (p_int == 0) { - p_int = settings->origin_index; - } - - CHKS((block->l_number == 20 && block->a_flag && settings->a_axis_wrapped && - (block->a_number <= -360.0 || block->a_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->a_number, 'A'); - CHKS((block->l_number == 20 && block->b_flag && settings->b_axis_wrapped && - (block->b_number <= -360.0 || block->b_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->b_number, 'B'); - CHKS((block->l_number == 20 && block->c_flag && settings->c_axis_wrapped && - (block->c_number <= -360.0 || block->c_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->c_number, 'C'); - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && p_int == settings->origin_index), - (_("Cannot change the active coordinate system with cutter radius compensation on"))); - - find_current_in_system(settings, p_int, - &cx, &cy, &cz, - &ca, &cb, &cc, - &cu, &cv, &cw); - - if (block->r_flag) { - CHKS((block->l_number == 20), _("R not allowed in G10 L20")); - r = block->r_number; - parameters[5210 + (p_int * 20)] = r; - } else - r = parameters[5210 + (p_int * 20)]; - - if (block->l_number == 20) { - // old position in rotated system - double oldx = cx, oldy = cy; - - // find new desired position in rotated system - x = cx; - y = cy; - - if (block->x_flag) { - x = block->x_number; - } - if (block->y_flag) { - y = block->y_number; - } - - // move old current position into the unrotated system - rotate(&oldx, &oldy, r); - // move desired position into the unrotated system - rotate(&x, &y, r); - - // find new offset - x = oldx + USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]) - x; - y = oldy + USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]) - y; - - // parameters are not rotated - parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); - parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); - - if (p_int == settings->origin_index) { - // let the code below fix up the current coordinates correctly - rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); - settings->rotation_xy = 0; - } - } else { - if (block->x_flag) { - x = block->x_number; - parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); - } else { - x = USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]); - } - if (block->y_flag) { - y = block->y_number; - parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); - } else { - y = USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]); - } - } - - if (block->z_flag) { - z = block->z_number; - if (block->l_number == 20) z = cz + USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]) - z; - parameters[5203 + (p_int * 20)] = PROGRAM_TO_USER_LEN(z); - } else - z = USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]); - - if (block->a_flag) { - a = block->a_number; - if (block->l_number == 20) a = ca + USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]) - a; - parameters[5204 + (p_int * 20)] = PROGRAM_TO_USER_ANG(a); - } else - a = USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]); - - if (block->b_flag) { - b = block->b_number; - if (block->l_number == 20) b = cb + USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]) - b; - parameters[5205 + (p_int * 20)] = PROGRAM_TO_USER_ANG(b); - } else - b = USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]); - - if (block->c_flag) { - c = block->c_number; - if (block->l_number == 20) c = cc + USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]) - c; - parameters[5206 + (p_int * 20)] = PROGRAM_TO_USER_ANG(c); - } else - c = USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]); - - if (block->u_flag) { - u = block->u_number; - if (block->l_number == 20) u = cu + USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]) - u; - parameters[5207 + (p_int * 20)] = PROGRAM_TO_USER_LEN(u); - } else - u = USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]); - - if (block->v_flag) { - v = block->v_number; - if (block->l_number == 20) v = cv + USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]) - v; - parameters[5208 + (p_int * 20)] = PROGRAM_TO_USER_LEN(v); - } else - v = USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]); - - if (block->w_flag) { - w = block->w_number; - if (block->l_number == 20) w = cw + USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]) - w; - parameters[5209 + (p_int * 20)] = PROGRAM_TO_USER_LEN(w); - } else - w = USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]); - - if (p_int == settings->origin_index) { /* system is currently used */ - - rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); - - settings->current_x += settings->origin_offset_x; - settings->current_y += settings->origin_offset_y; - settings->current_z += settings->origin_offset_z; - settings->AA_current += settings->AA_origin_offset; - settings->BB_current += settings->BB_origin_offset; - settings->CC_current += settings->CC_origin_offset; - settings->u_current += settings->u_origin_offset; - settings->v_current += settings->v_origin_offset; - settings->w_current += settings->w_origin_offset; - - settings->origin_offset_x = x; - settings->origin_offset_y = y; - settings->origin_offset_z = z; - settings->AA_origin_offset = a; - settings->BB_origin_offset = b; - settings->CC_origin_offset = c; - settings->u_origin_offset = u; - settings->v_origin_offset = v; - settings->w_origin_offset = w; - - settings->current_x -= x; - settings->current_y -= y; - settings->current_z -= z; - settings->AA_current -= a; - settings->BB_current -= b; - settings->CC_current -= c; - settings->u_current -= u; - settings->v_current -= v; - settings->w_current -= w; - - SET_G5X_OFFSET(p_int, x, y, z, a, b, c, u, v, w); - - rotate(&settings->current_x, &settings->current_y, - r); - settings->rotation_xy = r; - SET_XY_ROTATION(settings->rotation_xy); + double x; + double y; + double z; + double a; + double b; + double c; + double u, v, w; + double r; + double *parameters; + int p_int; + + double cx, cy, cz, ca, cb, cc, cu, cv, cw; + + CHKS((block->i_flag || block->j_flag), _("I J words not allowed with G10 L2")); + + parameters = settings->parameters; + p_int = (int)(block->p_number + 0.0001); + + // if P = 0 then use whatever coordinate system that is currently active + if (p_int == 0) + { + p_int = settings->origin_index; + } + + CHKS((block->l_number == 20 && block->a_flag && settings->a_axis_wrapped && + (block->a_number <= -360.0 || block->a_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->a_number, 'A'); + CHKS((block->l_number == 20 && block->b_flag && settings->b_axis_wrapped && + (block->b_number <= -360.0 || block->b_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->b_number, 'B'); + CHKS((block->l_number == 20 && block->c_flag && settings->c_axis_wrapped && + (block->c_number <= -360.0 || block->c_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->c_number, 'C'); + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && p_int == settings->origin_index), + (_("Cannot change the active coordinate system with cutter radius compensation on"))); + + find_current_in_system(settings, p_int, + &cx, &cy, &cz, + &ca, &cb, &cc, + &cu, &cv, &cw); + + if (block->r_flag) + { + CHKS((block->l_number == 20), _("R not allowed in G10 L20")); + r = block->r_number; + parameters[5210 + (p_int * 20)] = r; + } + else + r = parameters[5210 + (p_int * 20)]; + + if (block->l_number == 20) + { + // old position in rotated system + double oldx = cx, oldy = cy; + + // find new desired position in rotated system + x = cx; + y = cy; + + if (block->x_flag) + { + x = block->x_number; + } + if (block->y_flag) + { + y = block->y_number; + } + + // move old current position into the unrotated system + rotate(&oldx, &oldy, r); + // move desired position into the unrotated system + rotate(&x, &y, r); + + // find new offset + x = oldx + USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]) - x; + y = oldy + USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]) - y; + + // parameters are not rotated + parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); + parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); + + if (p_int == settings->origin_index) + { + // let the code below fix up the current coordinates correctly + rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); + settings->rotation_xy = 0; + } + } + else + { + if (block->x_flag) + { + x = block->x_number; + parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); + } + else + { + x = USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]); + } + if (block->y_flag) + { + y = block->y_number; + parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); + } + else + { + y = USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]); + } + } + + if (block->z_flag) + { + z = block->z_number; + if (block->l_number == 20) + z = cz + USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]) - z; + parameters[5203 + (p_int * 20)] = PROGRAM_TO_USER_LEN(z); + } + else + z = USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]); + + if (block->a_flag) + { + a = block->a_number; + if (block->l_number == 20) + a = ca + USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]) - a; + parameters[5204 + (p_int * 20)] = PROGRAM_TO_USER_ANG(a); + } + else + a = USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]); + + if (block->b_flag) + { + b = block->b_number; + if (block->l_number == 20) + b = cb + USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]) - b; + parameters[5205 + (p_int * 20)] = PROGRAM_TO_USER_ANG(b); + } + else + b = USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]); + + if (block->c_flag) + { + c = block->c_number; + if (block->l_number == 20) + c = cc + USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]) - c; + parameters[5206 + (p_int * 20)] = PROGRAM_TO_USER_ANG(c); + } + else + c = USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]); + + if (block->u_flag) + { + u = block->u_number; + if (block->l_number == 20) + u = cu + USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]) - u; + parameters[5207 + (p_int * 20)] = PROGRAM_TO_USER_LEN(u); + } + else + u = USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]); + + if (block->v_flag) + { + v = block->v_number; + if (block->l_number == 20) + v = cv + USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]) - v; + parameters[5208 + (p_int * 20)] = PROGRAM_TO_USER_LEN(v); + } + else + v = USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]); - } + if (block->w_flag) + { + w = block->w_number; + if (block->l_number == 20) + w = cw + USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]) - w; + parameters[5209 + (p_int * 20)] = PROGRAM_TO_USER_LEN(w); + } + else + w = USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]); + + if (p_int == settings->origin_index) + { /* system is currently used */ + + rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); + + settings->current_x += settings->origin_offset_x; + settings->current_y += settings->origin_offset_y; + settings->current_z += settings->origin_offset_z; + settings->AA_current += settings->AA_origin_offset; + settings->BB_current += settings->BB_origin_offset; + settings->CC_current += settings->CC_origin_offset; + settings->u_current += settings->u_origin_offset; + settings->v_current += settings->v_origin_offset; + settings->w_current += settings->w_origin_offset; + + settings->origin_offset_x = x; + settings->origin_offset_y = y; + settings->origin_offset_z = z; + settings->AA_origin_offset = a; + settings->BB_origin_offset = b; + settings->CC_origin_offset = c; + settings->u_origin_offset = u; + settings->v_origin_offset = v; + settings->w_origin_offset = w; + + settings->current_x -= x; + settings->current_y -= y; + settings->current_z -= z; + settings->AA_current -= a; + settings->BB_current -= b; + settings->CC_current -= c; + settings->u_current -= u; + settings->v_current -= v; + settings->w_current -= w; + + SET_G5X_OFFSET(p_int, x, y, z, a, b, c, u, v, w); + + rotate(&settings->current_x, &settings->current_y, -r); + settings->rotation_xy = r; + SET_XY_ROTATION(settings->rotation_xy); + } #ifdef DEBUG_EMC - else - enqueue_COMMENT("interpreter: setting coordinate system origin"); + else + enqueue_COMMENT("interpreter: setting coordinate system origin"); #endif - return INTERP_OK; + return INTERP_OK; } /****************************************************************************/ @@ -4940,40 +5485,52 @@ Called by: convert_g. */ -int Interp::convert_set_plane(int g_code, //!< must be G_17, G_18, or G_19 - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_set_plane(int g_code, //!< must be G_17, G_18, or G_19 + setup_pointer settings) //!< pointer to machine settings { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_17 && settings->plane != CANON_PLANE::XY), - NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_18 && settings->plane != CANON_PLANE::XZ), - NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19 && settings->plane != CANON_PLANE::YZ), - NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19), - NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); - - if (g_code == G_17) { - SELECT_PLANE(CANON_PLANE::XY); - settings->plane = CANON_PLANE::XY; - } else if (g_code == G_18) { - SELECT_PLANE(CANON_PLANE::XZ); - settings->plane = CANON_PLANE::XZ; - } else if (g_code == G_19) { - SELECT_PLANE(CANON_PLANE::YZ); - settings->plane = CANON_PLANE::YZ; - } else if (g_code == G_17_1) { - SELECT_PLANE(CANON_PLANE::UV); - settings->plane = CANON_PLANE::UV; - } else if (g_code == G_18_1) { - SELECT_PLANE(CANON_PLANE::UW); - settings->plane = CANON_PLANE::UW; - } else if (g_code == G_19_1) { - SELECT_PLANE(CANON_PLANE::VW); - settings->plane = CANON_PLANE::VW; - } else - ERS(NCE_BUG_CODE_NOT_G17_G18_OR_G19); - return INTERP_OK; + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_17 && settings->plane != CANON_PLANE::XY), + NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_18 && settings->plane != CANON_PLANE::XZ), + NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19 && settings->plane != CANON_PLANE::YZ), + NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19), + NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); + + if (g_code == G_17) + { + SELECT_PLANE(CANON_PLANE::XY); + settings->plane = CANON_PLANE::XY; + } + else if (g_code == G_18) + { + SELECT_PLANE(CANON_PLANE::XZ); + settings->plane = CANON_PLANE::XZ; + } + else if (g_code == G_19) + { + SELECT_PLANE(CANON_PLANE::YZ); + settings->plane = CANON_PLANE::YZ; + } + else if (g_code == G_17_1) + { + SELECT_PLANE(CANON_PLANE::UV); + settings->plane = CANON_PLANE::UV; + } + else if (g_code == G_18_1) + { + SELECT_PLANE(CANON_PLANE::UW); + settings->plane = CANON_PLANE::UW; + } + else if (g_code == G_19_1) + { + SELECT_PLANE(CANON_PLANE::VW); + settings->plane = CANON_PLANE::VW; + } + else + ERS(NCE_BUG_CODE_NOT_G17_G18_OR_G19); + return INTERP_OK; } /****************************************************************************/ @@ -4991,34 +5548,40 @@ Called by: execute_block. */ -int Interp::convert_speed(int spindle, //The spindle ($) or -1 if none - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings)//!< pointer to machine settings +int Interp::convert_speed(int spindle, // The spindle ($) or -1 if none + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - if (spindle >= 0 && spindle < settings->num_spindles){ + if (spindle >= 0 && spindle < settings->num_spindles) + { enqueue_SET_SPINDLE_SPEED(spindle, block->s_number); settings->speed[spindle] = block->s_number; -} + } - return INTERP_OK; + return INTERP_OK; } int Interp::convert_spindle_mode(int dollar_number, block_pointer block, setup_pointer settings) { - for (int s = 0; s < settings->num_spindles; s++){ - if (dollar_number == -1 || s == dollar_number){ - if(block->g_modes[GM_SPINDLE_MODE] == G_97) { - settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_RPM; - enqueue_SET_SPINDLE_MODE(s, 0); - } else { /* G_96 */ - settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_SURFACE; - if(block->d_flag) - enqueue_SET_SPINDLE_MODE(s, fabs(block->d_number_float)); - else - enqueue_SET_SPINDLE_MODE(s, 1e30); - } - } - } + for (int s = 0; s < settings->num_spindles; s++) + { + if (dollar_number == -1 || s == dollar_number) + { + if (block->g_modes[GM_SPINDLE_MODE] == G_97) + { + settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_RPM; + enqueue_SET_SPINDLE_MODE(s, 0); + } + else + { /* G_96 */ + settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_SURFACE; + if (block->d_flag) + enqueue_SET_SPINDLE_MODE(s, fabs(block->d_number_float)); + else + enqueue_SET_SPINDLE_MODE(s, 1e30); + } + } + } return INTERP_OK; } /****************************************************************************/ @@ -5100,169 +5663,190 @@ settings. They occur on M2 or M30. */ int Interp::convert_stop(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings + setup_pointer settings) //!< pointer to machine settings { - int index; - char *line; - int length; - - double cx = 0, cy = 0, cz = 0; - comp_get_current(settings, &cx, &cy, &cz); - CHP(move_endpoint_and_flush(settings, cx, cy)); - dequeue_canons(settings); - - nurbs_reset_global_variables(); // jjf - - // M99 as subroutine return is handled in interp_o_word.cc - // convert_control_functions() - CHKS((block->m_modes[4] == 99 && settings->call_level > 0), - (_("Bug: Reached convert_stop() from M99 as subprogram return"))); - if (block->m_modes[4] == 0) { - PROGRAM_STOP(); - } else if (block->m_modes[4] == 60) { - PALLET_SHUTTLE(); - PROGRAM_STOP(); - } else if (block->m_modes[4] == 1) { - OPTIONAL_PROGRAM_STOP(); - } else if (block->m_modes[4] == 99 && _setup.loop_on_main_m99) { - - // Fanuc-style M99 main program endless loop - logDebug("M99 main program endless loop"); - - loop_to_beginning(settings); // return control to beginning of file - FINISH(); // Output any final linked segments - return INTERP_EXECUTE_FINISH; // tell task to issue any queued commands - } else if ((block->m_modes[4] == 2) || (block->m_modes[4] == 30) || - (block->m_modes[4] == 99 && !_setup.loop_on_main_m99) - ) { /* reset stuff here */ - -/*1*/ - rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); - settings->current_x += settings->origin_offset_x; - settings->current_y += settings->origin_offset_y; - settings->current_z += settings->origin_offset_z; - settings->AA_current += settings->AA_origin_offset; - settings->BB_current += settings->BB_origin_offset; - settings->CC_current += settings->CC_origin_offset; - settings->u_current += settings->u_origin_offset; - settings->v_current += settings->v_origin_offset; - settings->w_current += settings->w_origin_offset; - - settings->origin_index = 1; - settings->parameters[5220] = 1.0; - settings->origin_offset_x = USER_TO_PROGRAM_LEN(settings->parameters[5221]); - settings->origin_offset_y = USER_TO_PROGRAM_LEN(settings->parameters[5222]); - settings->origin_offset_z = USER_TO_PROGRAM_LEN(settings->parameters[5223]); - settings->AA_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5224]); - settings->BB_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5225]); - settings->CC_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5226]); - settings->u_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5227]); - settings->v_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5228]); - settings->w_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5229]); - settings->rotation_xy = settings->parameters[5230]; - - settings->current_x -= settings->origin_offset_x; - settings->current_y -= settings->origin_offset_y; - settings->current_z -= settings->origin_offset_z; - settings->AA_current -= settings->AA_origin_offset; - settings->BB_current -= settings->BB_origin_offset; - settings->CC_current -= settings->CC_origin_offset; - settings->u_current -= settings->u_origin_offset; - settings->v_current -= settings->v_origin_offset; - settings->w_current -= settings->w_origin_offset; - rotate(&settings->current_x, &settings->current_y, -settings->rotation_xy); - - SET_G5X_OFFSET(settings->origin_index, - settings->origin_offset_x, - settings->origin_offset_y, - settings->origin_offset_z, - settings->AA_origin_offset, - settings->BB_origin_offset, - settings->CC_origin_offset, - settings->u_origin_offset, - settings->v_origin_offset, - settings->w_origin_offset); - SET_XY_ROTATION(settings->rotation_xy); + int index; + char *line; + int length; -/*2*/ if (settings->plane != CANON_PLANE::XY) { - SELECT_PLANE(CANON_PLANE::XY); - settings->plane = CANON_PLANE::XY; - } + double cx = 0, cy = 0, cz = 0; + comp_get_current(settings, &cx, &cy, &cz); + CHP(move_endpoint_and_flush(settings, cx, cy)); + dequeue_canons(settings); -/*3*/ - settings->distance_mode = DISTANCE_MODE::ABSOLUTE; + nurbs_reset_global_variables(); // jjf -/*4*/ settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; - SET_FEED_MODE(0, 0); - settings->feed_rate = block->f_number; - SET_FEED_RATE(0); + // M99 as subroutine return is handled in interp_o_word.cc + // convert_control_functions() + CHKS((block->m_modes[4] == 99 && settings->call_level > 0), + (_("Bug: Reached convert_stop() from M99 as subprogram return"))); + if (block->m_modes[4] == 0) + { + PROGRAM_STOP(); + } + else if (block->m_modes[4] == 60) + { + PALLET_SHUTTLE(); + PROGRAM_STOP(); + } + else if (block->m_modes[4] == 1) + { + OPTIONAL_PROGRAM_STOP(); + } + else if (block->m_modes[4] == 99 && _setup.loop_on_main_m99) + { + + // Fanuc-style M99 main program endless loop + logDebug("M99 main program endless loop"); -/*5*/ if (!settings->feed_override) { - ENABLE_FEED_OVERRIDE(); - settings->feed_override = true; + loop_to_beginning(settings); // return control to beginning of file + FINISH(); // Output any final linked segments + return INTERP_EXECUTE_FINISH; // tell task to issue any queued commands } + else if ((block->m_modes[4] == 2) || (block->m_modes[4] == 30) || + (block->m_modes[4] == 99 && !_setup.loop_on_main_m99)) + { /* reset stuff here */ + + /*1*/ + rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); + settings->current_x += settings->origin_offset_x; + settings->current_y += settings->origin_offset_y; + settings->current_z += settings->origin_offset_z; + settings->AA_current += settings->AA_origin_offset; + settings->BB_current += settings->BB_origin_offset; + settings->CC_current += settings->CC_origin_offset; + settings->u_current += settings->u_origin_offset; + settings->v_current += settings->v_origin_offset; + settings->w_current += settings->w_origin_offset; + + settings->origin_index = 1; + settings->parameters[5220] = 1.0; + settings->origin_offset_x = USER_TO_PROGRAM_LEN(settings->parameters[5221]); + settings->origin_offset_y = USER_TO_PROGRAM_LEN(settings->parameters[5222]); + settings->origin_offset_z = USER_TO_PROGRAM_LEN(settings->parameters[5223]); + settings->AA_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5224]); + settings->BB_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5225]); + settings->CC_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5226]); + settings->u_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5227]); + settings->v_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5228]); + settings->w_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5229]); + settings->rotation_xy = settings->parameters[5230]; + + settings->current_x -= settings->origin_offset_x; + settings->current_y -= settings->origin_offset_y; + settings->current_z -= settings->origin_offset_z; + settings->AA_current -= settings->AA_origin_offset; + settings->BB_current -= settings->BB_origin_offset; + settings->CC_current -= settings->CC_origin_offset; + settings->u_current -= settings->u_origin_offset; + settings->v_current -= settings->v_origin_offset; + settings->w_current -= settings->w_origin_offset; + rotate(&settings->current_x, &settings->current_y, -settings->rotation_xy); + + SET_G5X_OFFSET(settings->origin_index, + settings->origin_offset_x, + settings->origin_offset_y, + settings->origin_offset_z, + settings->AA_origin_offset, + settings->BB_origin_offset, + settings->CC_origin_offset, + settings->u_origin_offset, + settings->v_origin_offset, + settings->w_origin_offset); + SET_XY_ROTATION(settings->rotation_xy); + + /*2*/ if (settings->plane != CANON_PLANE::XY) + { + SELECT_PLANE(CANON_PLANE::XY); + settings->plane = CANON_PLANE::XY; + } -/*6*/ - settings->cutter_comp_side = CUTTER_COMP::OFF; - settings->cutter_comp_firstmove = true; + /*3*/ + settings->distance_mode = DISTANCE_MODE::ABSOLUTE; -/*7*/ - for (int s = 0; s < settings->num_spindles; s++){ - STOP_SPINDLE_TURNING(s); - settings->spindle_turning[s] = CANON_STOPPED; + /*4*/ settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; + SET_FEED_MODE(0, 0); + settings->feed_rate = block->f_number; + SET_FEED_RATE(0); - settings->speed_override[s] = true; - /* turn off FPR */ - SET_SPINDLE_MODE(s, 0); - } + /*5*/ if (!settings->feed_override) + { + ENABLE_FEED_OVERRIDE(); + settings->feed_override = true; + } -/*8*/ settings->motion_mode = G_1; + /*6*/ + settings->cutter_comp_side = CUTTER_COMP::OFF; + settings->cutter_comp_firstmove = true; -/*9*/ if (settings->mist) { - MIST_OFF(); - settings->mist = false; - } - if (settings->flood) { - FLOOD_OFF(); - settings->flood = false; - } + /*7*/ + for (int s = 0; s < settings->num_spindles; s++) + { + STOP_SPINDLE_TURNING(s); + settings->spindle_turning[s] = CANON_STOPPED; + + settings->speed_override[s] = true; + /* turn off FPR */ + SET_SPINDLE_MODE(s, 0); + } -/*10*/ - if (settings->disable_g92_persistence) - // Clear G92/G52 offset - for (index=5210; index<=5219; index++) - settings->parameters[index] = 0; + /*8*/ settings->motion_mode = G_1; - if (block->m_modes[4] == 30) - PALLET_SHUTTLE(); - PROGRAM_END(); - if (_setup.percent_flag && _setup.file_pointer) { - line = _setup.linetext; - for (;;) { /* check for ending percent sign and comment if missing */ - if (fgets(line, LINELEN, _setup.file_pointer) == NULL) { - enqueue_COMMENT("interpreter: percent sign missing from end of file"); - break; + /*9*/ if (settings->mist) + { + MIST_OFF(); + settings->mist = false; } - length = strlen(line); - if (length == (LINELEN - 1)) { // line is too long. need to finish reading the line - for (; fgetc(_setup.file_pointer) != '\n' && !feof(_setup.file_pointer);); - continue; + if (settings->flood) + { + FLOOD_OFF(); + settings->flood = false; } - for (index = (length - 1); // index set on last char - (index >= 0) && (isspace(line[index])); index--); - if (line[index] == '%') // found line with % at end + + /*10*/ + if (settings->disable_g92_persistence) + // Clear G92/G52 offset + for (index = 5210; index <= 5219; index++) + settings->parameters[index] = 0; + + if (block->m_modes[4] == 30) + PALLET_SHUTTLE(); + PROGRAM_END(); + if (_setup.percent_flag && _setup.file_pointer) { - for (index--; (index >= 0) && (isspace(line[index])); index--); - if (index == -1) // found line with only percent sign - break; + line = _setup.linetext; + for (;;) + { /* check for ending percent sign and comment if missing */ + if (fgets(line, LINELEN, _setup.file_pointer) == NULL) + { + enqueue_COMMENT("interpreter: percent sign missing from end of file"); + break; + } + length = strlen(line); + if (length == (LINELEN - 1)) + { // line is too long. need to finish reading the line + for (; fgetc(_setup.file_pointer) != '\n' && !feof(_setup.file_pointer);) + ; + continue; + } + for (index = (length - 1); // index set on last char + (index >= 0) && (isspace(line[index])); index--) + ; + if (line[index] == '%') // found line with % at end + { + for (index--; (index >= 0) && (isspace(line[index])); index--) + ; + if (index == -1) // found line with only percent sign + break; + } + } } - } + unwind_call(INTERP_EXIT, __FILE__, __LINE__, __FUNCTION__); + return INTERP_EXIT; } - unwind_call(INTERP_EXIT, __FILE__,__LINE__,__FUNCTION__); - return INTERP_EXIT; - } else - ERS(NCE_BUG_CODE_NOT_M0_M1_M2_M30_M60_M99); - return INTERP_OK; + else + ERS(NCE_BUG_CODE_NOT_M0_M1_M2_M30_M60_M99); + return INTERP_OK; } /*************************************************************************** */ @@ -5303,7 +5887,7 @@ block to generate a move. If the destination point is the same as the current point, the feed rate will be calculated as zero, so a default of 0.1 is applied in this case (It doesn't matter how wrong the feed rate is on a zero-length move) - + If cutter compensation is in use, the path's length may increase or decrease. Also an arc may be added, to go around a corner, before the straight move. For the purpose of calculating the feed rate when in @@ -5314,149 +5898,183 @@ the new longer or shorter straight move are taken at this feed. */ -int Interp::convert_straight(int move, //!< either G_0 or G_1 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_straight(int move, //!< either G_0 or G_1 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end, v_end, w_end; - int status; - - settings->arc_not_allowed = false; - - if (move == G_1) { - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { - CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); - } else if (settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) { - CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); - CHKS((settings->speed[settings->active_spindle] == 0.0), - (_("Cannot feed with zero spindle speed in feed per rev mode"))); - } else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) { - CHKS((!block->f_flag), - NCE_F_WORD_MISSING_WITH_INVERSE_TIME_G1_MOVE); - } - } - - settings->motion_mode = move; - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, &u_end, &v_end, &w_end)); - - if (move == G_1) { - inverse_time_rate_straight(end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block, settings); - } - - // Create a state tag and dump it to canon - write_canon_state_tag(block, settings); - - if ((settings->cutter_comp_side != CUTTER_COMP::OFF) && /* ! "== true" */ - (settings->cutter_comp_radius > 0.0)) { /* radius always is >= 0 */ - - CHKS((block->g_modes[GM_MODAL_0] == G_53), - NCE_CANNOT_USE_G53_WITH_CUTTER_RADIUS_COMP); - - if(settings->plane == CANON_PLANE::XZ) { - if (settings->cutter_comp_firstmove) - status = convert_straight_comp1(move, block, settings, end_z, end_x, end_y, - AA_end, BB_end, CC_end, u_end, v_end, w_end); - else - status = convert_straight_comp2(move, block, settings, end_z, end_x, end_y, - AA_end, BB_end, CC_end, u_end, v_end, w_end); - } else if(settings->plane == CANON_PLANE::XY) { - if (settings->cutter_comp_firstmove) - status = convert_straight_comp1(move, block, settings, end_x, end_y, end_z, - AA_end, BB_end, CC_end, u_end, v_end, w_end); + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end, v_end, w_end; + int status; + + settings->arc_not_allowed = false; + + if (move == G_1) + { + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) + { + CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); + } + else if (settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) + { + CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); + CHKS((settings->speed[settings->active_spindle] == 0.0), + (_("Cannot feed with zero spindle speed in feed per rev mode"))); + } + else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) + { + CHKS((!block->f_flag), + NCE_F_WORD_MISSING_WITH_INVERSE_TIME_G1_MOVE); + } + } + + settings->motion_mode = move; + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, &u_end, &v_end, &w_end)); + + if (move == G_1) + { + inverse_time_rate_straight(end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block, settings); + } + + // Create a state tag and dump it to canon + write_canon_state_tag(block, settings); + + tag_straight(end_x, end_y); // Update the heading and clear arc data for ANY straight move + + if ((settings->cutter_comp_side != CUTTER_COMP::OFF) && /* ! "== true" */ + (settings->cutter_comp_radius > 0.0)) + { /* radius always is >= 0 */ + + CHKS((block->g_modes[GM_MODAL_0] == G_53), + NCE_CANNOT_USE_G53_WITH_CUTTER_RADIUS_COMP); + + if (settings->plane == CANON_PLANE::XZ) + { + if (settings->cutter_comp_firstmove) + status = convert_straight_comp1(move, block, settings, end_z, end_x, end_y, + AA_end, BB_end, CC_end, u_end, v_end, w_end); + else + status = convert_straight_comp2(move, block, settings, end_z, end_x, end_y, + AA_end, BB_end, CC_end, u_end, v_end, w_end); + } + else if (settings->plane == CANON_PLANE::XY) + { + if (settings->cutter_comp_firstmove) + status = convert_straight_comp1(move, block, settings, end_x, end_y, end_z, + AA_end, BB_end, CC_end, u_end, v_end, w_end); + else + status = convert_straight_comp2(move, block, settings, end_x, end_y, end_z, + AA_end, BB_end, CC_end, u_end, v_end, w_end); + } else - status = convert_straight_comp2(move, block, settings, end_x, end_y, end_z, - AA_end, BB_end, CC_end, u_end, v_end, w_end); - } else ERS("BUG: Invalid plane for cutter compensation"); - CHP(status); - } else if (move == G_0) { - STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, + ERS("BUG: Invalid plane for cutter compensation"); + CHP(status); + } + else if (move == G_0) + { + STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + } + else if (move == G_1) + { + STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - } else if (move == G_1) { - STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - } else if (move == G_33) { - if (block->dollar_flag){ - CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), - (_("Invalid spindle ($) number in G33 move"))); - settings->active_spindle = (int)block->dollar_number; - } - CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && - (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), - _("Spindle not turning in G33")); - START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); - STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); - STOP_SPEED_FEED_SYNCH(); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - } else if (move == G_33_1) { - if (block->dollar_flag){ - CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), - (_("Invalid spindle ($) number in G33.1 move"))); - settings->active_spindle = (int)block->dollar_number; - } - CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && - (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), - _("Spindle not turning in G33.1")); - START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); - double scale = 1; - if(block->i_flag){ - scale = block->i_number; - if(scale < 1){ - scale = 1; - } - } - RIGID_TAP(block->line_number, end_x, end_y, end_z, scale); - STOP_SPEED_FEED_SYNCH(); - // after the RIGID_TAP cycle we'll be in the same spot - } else if (move == G_76) { - if (block->dollar_flag){ - CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), - (_("Invalid D-number in G76 cycle"))); - settings->active_spindle = (int)block->dollar_number; - } - CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && - (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), - _("Chosen spindle (%i) not turning in G76"), settings->active_spindle); - CHKS((settings->AA_current != AA_end || - settings->BB_current != BB_end || - settings->CC_current != CC_end || - settings->u_current != u_end || - settings->v_current != v_end || - settings->w_current != w_end), NCE_CANNOT_MOVE_ROTARY_AXES_WITH_G76); - int result = convert_threading_cycle(block, settings, end_x, end_y, end_z); - if(result != INTERP_OK) return result; - } else - ERS(NCE_BUG_CODE_NOT_G0_OR_G1); - - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - return INTERP_OK; + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + } + else if (move == G_33) + { + if (block->dollar_flag) + { + CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), + (_("Invalid spindle ($) number in G33 move"))); + settings->active_spindle = (int)block->dollar_number; + } + CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && + (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), + _("Spindle not turning in G33")); + START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); + STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); + STOP_SPEED_FEED_SYNCH(); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + } + else if (move == G_33_1) + { + if (block->dollar_flag) + { + CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), + (_("Invalid spindle ($) number in G33.1 move"))); + settings->active_spindle = (int)block->dollar_number; + } + CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && + (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), + _("Spindle not turning in G33.1")); + START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); + double scale = 1; + if (block->i_flag) + { + scale = block->i_number; + if (scale < 1) + { + scale = 1; + } + } + RIGID_TAP(block->line_number, end_x, end_y, end_z, scale); + STOP_SPEED_FEED_SYNCH(); + // after the RIGID_TAP cycle we'll be in the same spot + } + else if (move == G_76) + { + if (block->dollar_flag) + { + CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), + (_("Invalid D-number in G76 cycle"))); + settings->active_spindle = (int)block->dollar_number; + } + CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && + (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), + _("Chosen spindle (%i) not turning in G76"), settings->active_spindle); + CHKS((settings->AA_current != AA_end || + settings->BB_current != BB_end || + settings->CC_current != CC_end || + settings->u_current != u_end || + settings->v_current != v_end || + settings->w_current != w_end), + NCE_CANNOT_MOVE_ROTARY_AXES_WITH_G76); + int result = convert_threading_cycle(block, settings, end_x, end_y, end_z); + if (result != INTERP_OK) + return result; + } + else + ERS(NCE_BUG_CODE_NOT_G0_OR_G1); + + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + return INTERP_OK; } -int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, setup_pointer settings) { +int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, setup_pointer settings) +{ double end_x, end_y, end_z; double AA_end, BB_end, CC_end; double u_end, v_end, w_end; @@ -5475,7 +6093,8 @@ int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, se (axis != 5 && CC_end != settings->CC_current)), _("BUG: An axis incorrectly moved along with an indexer")); - switch(axis) { + switch (axis) + { case 3: issue_straight_index(axis, jnum, AA_end, block->line_number, settings); break; @@ -5491,7 +6110,8 @@ int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, se return INTERP_OK; } -int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, setup_pointer settings) { +int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, setup_pointer settings) +{ CANON_MOTION_MODE save_mode; double save_tolerance, save_cam_tolerance; // temporarily switch to exact stop mode for indexing move @@ -5501,9 +6121,9 @@ int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, if (save_mode != CANON_EXACT_PATH) SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH, 0); - double AA_end = axis == 3? target: settings->AA_current; - double BB_end = axis == 4? target: settings->BB_current; - double CC_end = axis == 5? target: settings->CC_current; + double AA_end = axis == 3 ? target : settings->AA_current; + double BB_end = axis == 4 ? target : settings->BB_current; + double CC_end = axis == 5 ? target : settings->CC_current; // tell canon that this is a special indexing move UNLOCK_ROTARY(lineno, jnum); @@ -5513,9 +6133,10 @@ int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, LOCK_ROTARY(lineno, jnum); // restore path mode - if(save_mode != CANON_EXACT_PATH) { + if (save_mode != CANON_EXACT_PATH) + { SET_MOTION_CONTROL_MODE(save_mode, save_tolerance); - SET_NAIVECAM_TOLERANCE(save_cam_tolerance); + SET_NAIVECAM_TOLERANCE(save_cam_tolerance); } settings->AA_current = AA_end; @@ -5524,71 +6145,69 @@ int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, return INTERP_OK; } - #define AABBCC settings->AA_current, settings->BB_current, settings->CC_current, settings->u_current, settings->v_current, settings->w_current // make one threading pass. only called from convert_threading_cycle. static void threading_pass(setup_pointer settings, block_pointer block, - int boring, double safe_x, double depth, double end_depth, - double start_y, double start_z, double zoff, double taper_dist, - int entry_taper, int exit_taper, double taper_pitch, - double pitch, double full_threadheight, double target_z) { - STRAIGHT_TRAVERSE(block->line_number, boring? - safe_x + depth - end_depth: - safe_x - depth + end_depth, - start_y, start_z - zoff, AABBCC); //back - if(taper_dist && entry_taper) { - DISABLE_FEED_OVERRIDE(); - START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); - STRAIGHT_FEED(block->line_number, boring? - safe_x + depth - full_threadheight: - safe_x - depth + full_threadheight, - start_y, start_z - zoff, AABBCC); //in - STRAIGHT_FEED(block->line_number, boring? safe_x + depth: safe_x - depth, //angled in - start_y, start_z - zoff - taper_dist, AABBCC); - START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); - } else { - STRAIGHT_TRAVERSE(block->line_number, boring? safe_x + depth: safe_x - depth, - start_y, start_z - zoff, AABBCC); //in - DISABLE_FEED_OVERRIDE(); - START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); - } - - if(taper_dist && exit_taper) { - STRAIGHT_FEED(block->line_number, boring? safe_x + depth: safe_x - depth, //over - start_y, target_z - zoff + taper_dist, AABBCC); - START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); - STRAIGHT_FEED(block->line_number, boring? - safe_x + depth - full_threadheight: - safe_x - depth + full_threadheight, - start_y, target_z - zoff, AABBCC); //angled out - } else { - STRAIGHT_FEED(block->line_number, boring? safe_x + depth: safe_x - depth, - start_y, target_z - zoff, AABBCC); //over + int boring, double safe_x, double depth, double end_depth, + double start_y, double start_z, double zoff, double taper_dist, + int entry_taper, int exit_taper, double taper_pitch, + double pitch, double full_threadheight, double target_z) +{ + STRAIGHT_TRAVERSE(block->line_number, boring ? safe_x + depth - end_depth : safe_x - depth + end_depth, + start_y, start_z - zoff, AABBCC); // back + if (taper_dist && entry_taper) + { + DISABLE_FEED_OVERRIDE(); + START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); + STRAIGHT_FEED(block->line_number, boring ? safe_x + depth - full_threadheight : safe_x - depth + full_threadheight, + start_y, start_z - zoff, AABBCC); // in + STRAIGHT_FEED(block->line_number, boring ? safe_x + depth : safe_x - depth, // angled in + start_y, start_z - zoff - taper_dist, AABBCC); + START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); + } + else + { + STRAIGHT_TRAVERSE(block->line_number, boring ? safe_x + depth : safe_x - depth, + start_y, start_z - zoff, AABBCC); // in + DISABLE_FEED_OVERRIDE(); + START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); + } + + if (taper_dist && exit_taper) + { + STRAIGHT_FEED(block->line_number, boring ? safe_x + depth : safe_x - depth, // over + start_y, target_z - zoff + taper_dist, AABBCC); + START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); + STRAIGHT_FEED(block->line_number, boring ? safe_x + depth - full_threadheight : safe_x - depth + full_threadheight, + start_y, target_z - zoff, AABBCC); // angled out + } + else + { + STRAIGHT_FEED(block->line_number, boring ? safe_x + depth : safe_x - depth, + start_y, target_z - zoff, AABBCC); // over } STOP_SPEED_FEED_SYNCH(); - STRAIGHT_TRAVERSE(block->line_number, boring? - safe_x + depth - end_depth: - safe_x - depth + end_depth, - start_y, target_z - zoff, AABBCC); //out + STRAIGHT_TRAVERSE(block->line_number, boring ? safe_x + depth - end_depth : safe_x - depth + end_depth, + start_y, target_z - zoff, AABBCC); // out ENABLE_FEED_OVERRIDE(); } int Interp::convert_threading_cycle(block_pointer block, - setup_pointer settings, - double end_x, double end_y, double end_z) { - + setup_pointer settings, + double end_x, double end_y, double end_z) +{ CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), (_("Cannot use G76 threading cycle with cutter radius compensation on"))); CHKS((block->i_number == 0), - (_("In G76, I must not be 0"))); + (_("In G76, I must not be 0"))); CHKS((block->j_number <= 0), - (_("In G76, J must be greater than 0"))); + (_("In G76, J must be greater than 0"))); CHKS((block->k_number <= block->j_number), - (_("In G76, K must be greater than J"))); + (_("In G76, K must be greater than J"))); double start_x = settings->current_x; double start_y = settings->current_y; @@ -5598,17 +6217,17 @@ int Interp::convert_threading_cycle(block_pointer block, double j_number = block->j_number; double k_number = block->k_number; - if(_setup.lathe_diameter_mode){ - i_number /= 2; - j_number /= 2; - k_number /= 2; + if (_setup.lathe_diameter_mode) + { + i_number /= 2; + j_number /= 2; + k_number /= 2; } - int boring = 0; if (i_number > 0.0) - boring = 1; + boring = 1; double safe_x = start_x; double full_dia_depth = fabs(i_number); @@ -5619,24 +6238,29 @@ int Interp::convert_threading_cycle(block_pointer block, double pitch = block->p_number; double compound_angle = block->q_number; - if(compound_angle == -1) compound_angle = 0; - compound_angle *= M_PIl/180.0; - if(end_z > start_z) compound_angle = -compound_angle; + if (compound_angle == -1) + compound_angle = 0; + compound_angle *= M_PIl / 180.0; + if (end_z > start_z) + compound_angle = -compound_angle; - int spring_cuts = block->h_flag ? block->h_number: 0; + int spring_cuts = block->h_flag ? block->h_number : 0; double degression = block->r_number; - if(degression < 1.0 || !block->r_flag) degression = 1.0; + if (degression < 1.0 || !block->r_flag) + degression = 1.0; - double taper_dist = block->e_flag? block->e_number: 0.0; - if(taper_dist < 0.0) taper_dist = 0.0; - double taper_pitch = taper_dist > 0.0? - pitch * hypot(taper_dist, full_threadheight)/taper_dist: pitch; + double taper_dist = block->e_flag ? block->e_number : 0.0; + if (taper_dist < 0.0) + taper_dist = 0.0; + double taper_pitch = taper_dist > 0.0 ? pitch * hypot(taper_dist, full_threadheight) / taper_dist : pitch; - if(end_z > start_z) taper_dist = -taper_dist; + if (end_z > start_z) + taper_dist = -taper_dist; int taper_flags = block->l_number; - if(taper_flags < 0) taper_flags = 0; + if (taper_flags < 0) + taper_flags = 0; int entry_taper = taper_flags & 1; int exit_taper = taper_flags & 2; @@ -5648,21 +6272,23 @@ int Interp::convert_threading_cycle(block_pointer block, depth = start_depth; zoff = (depth - full_dia_depth) * tan(compound_angle); - while (depth < end_depth) { - threading_pass(settings, block, boring, safe_x, depth, end_depth, start_y, - start_z, zoff, taper_dist, entry_taper, exit_taper, - taper_pitch, pitch, full_threadheight, target_z); - depth = full_dia_depth + cut_increment * pow(++pass, 1.0/degression); + while (depth < end_depth) + { + threading_pass(settings, block, boring, safe_x, depth, end_depth, start_y, + start_z, zoff, taper_dist, entry_taper, exit_taper, + taper_pitch, pitch, full_threadheight, target_z); + depth = full_dia_depth + cut_increment * pow(++pass, 1.0 / degression); zoff = (depth - full_dia_depth) * tan(compound_angle); } // full specified depth now depth = end_depth; zoff = (depth - full_dia_depth) * tan(compound_angle); // cut at least once -- more if spring cuts. - for(int i = 0; iline_number, end_x, end_y, end_z, AABBCC); settings->current_x = end_x; @@ -5672,7 +6298,6 @@ int Interp::convert_threading_cycle(block_pointer block, return INTERP_OK; } - /****************************************************************************/ /*! convert_straight_comp1 @@ -5708,15 +6333,15 @@ the destination point. */ -int Interp::convert_straight_comp1(int move, //!< either G_0 or G_1 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings, //!< pointer to machine settings - double px, //!< X coordinate of end point - double py, //!< Y coordinate of end point - double pz, //!< Z coordinate of end point - double AA_end, //!< A coordinate of end point - double BB_end, //!< B coordinate of end point - double CC_end, //!< C coordinate of end point +int Interp::convert_straight_comp1(int move, //!< either G_0 or G_1 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings, //!< pointer to machine settings + double px, //!< X coordinate of end point + double py, //!< Y coordinate of end point + double pz, //!< Z coordinate of end point + double AA_end, //!< A coordinate of end point + double BB_end, //!< B coordinate of end point + double CC_end, //!< C coordinate of end point double u_end, double v_end, double w_end) { double alpha; @@ -5733,7 +6358,7 @@ int Interp::convert_straight_comp1(int move, //!< either G_0 or G_1 CHKS(((side != CUTTER_COMP::LEFT) && (side != CUTTER_COMP::RIGHT)), NCE_BUG_SIDE_NOT_RIGHT_OR_LEFT); CHKS((distance <= radius), _("Length of cutter compensation entry move is not greater than the tool radius")); - alpha = atan2(py - cy, px - cx) + (side == CUTTER_COMP::LEFT ? M_PIl/2. : -M_PIl/2.); + alpha = atan2(py - cy, px - cx) + (side == CUTTER_COMP::LEFT ? M_PIl / 2. : -M_PIl / 2.); end_x = (px + (radius * cos(alpha))); end_y = (py + (radius * sin(alpha))); @@ -5744,18 +6369,21 @@ int Interp::convert_straight_comp1(int move, //!< either G_0 or G_1 set_endpoint(cx, cy); - if (move == G_0) { + if (move == G_0) + { enqueue_STRAIGHT_TRAVERSE(settings, block->line_number, cos(alpha), sin(alpha), 0, end_x, end_y, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); } - else if (move == G_1) { + else if (move == G_1) + { enqueue_STRAIGHT_FEED(settings, block->line_number, cos(alpha), sin(alpha), 0, end_x, end_y, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); - } else + } + else ERS(NCE_BUG_CODE_NOT_G0_OR_G1); settings->cutter_comp_firstmove = false; @@ -5837,21 +6465,21 @@ move is the same as the end point for a G1 move, however. */ -int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings, //!< pointer to machine settings - double px, //!< X coordinate of programmed end point - double py, //!< Y coordinate of programmed end point - double pz, //!< Z coordinate of end point - double AA_end, //!< A coordinate of end point - double BB_end, //!< B coordinate of end point - double CC_end, //!< C coordinate of end point +int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings, //!< pointer to machine settings + double px, //!< X coordinate of programmed end point + double py, //!< Y coordinate of programmed end point + double pz, //!< Z coordinate of end point + double AA_end, //!< A coordinate of end point + double BB_end, //!< B coordinate of end point + double CC_end, //!< C coordinate of end point double u_end, double v_end, double w_end) { - double end_x, end_y, end_z; /* x-coordinate of actual end point */ - double mid_x, mid_y; /* x-coordinate of end of added arc, if needed */ - double small = TOLERANCE_CONCAVE_CORNER; /* radians, testing corners */ - double opx = 0, opy = 0, opz = 0; /* old programmed beginning point */ + double end_x, end_y, end_z; /* x-coordinate of actual end point */ + double mid_x, mid_y; /* x-coordinate of end of added arc, if needed */ + double small = TOLERANCE_CONCAVE_CORNER; /* radians, testing corners */ + double opx = 0, opy = 0, opz = 0; /* old programmed beginning point */ double cx, cy, cz; int concave; @@ -5859,39 +6487,51 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 comp_get_current(settings, &end_x, &end_y, &end_z); comp_get_programmed(settings, &opx, &opy, &opz); - if ((py == opy) && (px == opx)) { /* no XY motion */ - if (move == G_0) { + if ((py == opy) && (px == opx)) + { /* no XY motion */ + if (move == G_0) + { enqueue_STRAIGHT_TRAVERSE(settings, block->line_number, px - opx, py - opy, pz - opz, cx, cy, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); - } else if (move == G_1) { + } + else if (move == G_1) + { enqueue_STRAIGHT_FEED(settings, block->line_number, px - opx, py - opy, pz - opz, cx, cy, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); - } else + } + else ERS(NCE_BUG_CODE_NOT_G0_OR_G1); // end already filled out, above - } else { + } + else + { // some XY motion double beta = 0.0; // initializing to avoid confusion over else branch below double gamma = 0.0; // that does not define value but returns form function. CUTTER_COMP side = settings->cutter_comp_side; - double radius = settings->cutter_comp_radius; /* will always be positive */ + double radius = settings->cutter_comp_radius; /* will always be positive */ double theta = atan2(cy - opy, cx - opx); double alpha = atan2(py - opy, px - opx); - if (side == CUTTER_COMP::LEFT) { + if (side == CUTTER_COMP::LEFT) + { if (theta < alpha) theta = (theta + (2 * M_PIl)); beta = ((theta - alpha) - M_PI_2l); gamma = M_PI_2l; - } else if (side == CUTTER_COMP::RIGHT) { + } + else if (side == CUTTER_COMP::RIGHT) + { if (alpha < theta) alpha = (alpha + (2 * M_PIl)); beta = ((alpha - theta) - M_PI_2l); gamma = -M_PI_2l; - } else { + } + else + { ERS(NCE_BUG_SIDE_NOT_RIGHT_OR_LEFT); // the ERS macro will return from this function } @@ -5900,27 +6540,34 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 mid_x = (opx + (radius * cos(alpha + gamma))); mid_y = (opy + (radius * sin(alpha + gamma))); - if ((beta < -small) || (beta > (M_PIl + small))) { + if ((beta < -small) || (beta > (M_PIl + small))) + { concave = 1; - } else if (beta > (M_PIl - small) && - (!qc().empty() && qc().front().type == QARC_FEED && - ((side == CUTTER_COMP::RIGHT && qc().front().data.arc_feed.turn > 0) || - (side == CUTTER_COMP::LEFT && qc().front().data.arc_feed.turn < 0)))) { + } + else if (beta > (M_PIl - small) && + (!qc().empty() && qc().front().type == QARC_FEED && + ((side == CUTTER_COMP::RIGHT && qc().front().data.arc_feed.turn > 0) || + (side == CUTTER_COMP::LEFT && qc().front().data.arc_feed.turn < 0)))) + { // this is an "h" shape, tool on right, going right to left // over the hemispherical round part, then up next to the // vertical part (or, the mirror case). there are two ways // to stay to the "right", either loop down and around, or // stay above and right. we're forcing above and right. concave = 1; - } else { + } + else + { concave = 0; mid_x = (opx + (radius * cos(alpha + gamma))); mid_y = (opy + (radius * sin(alpha + gamma))); } - if (!concave && (beta > small)) { /* ARC NEEDED */ + if (!concave && (beta > small)) + { /* ARC NEEDED */ CHP(move_endpoint_and_flush(settings, cx, cy)); - if(move == G_1) { + if (move == G_1) + { enqueue_ARC_FEED(settings, block->line_number, 0.0, // doesn't matter, since we will not move this arc's endpoint mid_x, mid_y, opx, opy, @@ -5928,7 +6575,9 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 AA_end, BB_end, CC_end, u_end, v_end, w_end); dequeue_canons(settings); set_endpoint(mid_x, mid_y); - } else if(move == G_0) { + } + else if (move == G_0) + { // we can't go around the corner because there is no // arc traverse. but, if we do this anyway, at least // most of our rapid will be parallel to the original @@ -5941,9 +6590,14 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 u_end, v_end, w_end); dequeue_canons(settings); set_endpoint(mid_x, mid_y); - } else ERS(NCE_BUG_CODE_NOT_G0_OR_G1); - } else if (concave) { - if (qc().front().type != QARC_FEED) { + } + else + ERS(NCE_BUG_CODE_NOT_G0_OR_G1); + } + else if (concave) + { + if (qc().front().type != QARC_FEED) + { // line->line double retreat; // half the angle of the inside corner @@ -5957,7 +6611,9 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 // we actually want to move the previous line's endpoint here. That's the same as // discarding that line and doing this one instead. CHP(move_endpoint_and_flush(settings, mid_x, mid_y)); - } else { + } + else + { // arc->line // beware: the arc we saved is the compensated one. arc_feed prev = qc().front().data.arc_feed; @@ -5971,9 +6627,12 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 theta = (prev.turn > 0) ? base_dir + M_PI_2l : base_dir - M_PI_2l; phi = atan2(prev.center2 - opy, prev.center1 - opx); - if TOOL_INSIDE_ARC(side, prev.turn) { + if TOOL_INSIDE_ARC (side, prev.turn) + { oldrad_uncomp = oldrad + radius; - } else { + } + else + { oldrad_uncomp = oldrad - radius; } @@ -5983,38 +6642,42 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 double d2; double angle_from_center; - if TOOL_INSIDE_ARC(side, prev.turn) { + if TOOL_INSIDE_ARC (side, prev.turn) + { d2 = d - radius; - double l = d2/oldrad; + double l = d2 / oldrad; CHKS((l > 1.0 || l < -1.0), _("Arc to straight motion makes a corner the compensated tool can't fit in without gouging")); - if(prev.turn > 0) - angle_from_center = - acos(l) + theta + M_PIl; + if (prev.turn > 0) + angle_from_center = -acos(l) + theta + M_PIl; else angle_from_center = acos(l) + theta + M_PIl; - } else { + } + else + { d2 = d + radius; - double l = d2/oldrad; + double l = d2 / oldrad; CHKS((l > 1.0 || l < -1.0), _("Arc to straight motion makes a corner the compensated tool can't fit in without gouging")); - if(prev.turn > 0) + if (prev.turn > 0) angle_from_center = acos(l) + theta + M_PIl; else - angle_from_center = - acos(l) + theta + M_PIl; + angle_from_center = -acos(l) + theta + M_PIl; } mid_x = prev.center1 + oldrad * cos(angle_from_center); mid_y = prev.center2 + oldrad * sin(angle_from_center); CHP(move_endpoint_and_flush(settings, mid_x, mid_y)); } - } else { + } + else + { // no arc needed, also not concave (colinear lines or tangent arc->line) dequeue_canons(settings); set_endpoint(cx, cy); } - (move == G_0? enqueue_STRAIGHT_TRAVERSE: enqueue_STRAIGHT_FEED) - (settings, block->line_number, - px - opx, py - opy, pz - opz, - end_x, end_y, pz, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); + (move == G_0 ? enqueue_STRAIGHT_TRAVERSE : enqueue_STRAIGHT_FEED)(settings, block->line_number, + px - opx, py - opy, pz - opz, + end_x, end_y, pz, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); } comp_set_current(settings, end_x, end_y, pz); @@ -6070,95 +6733,100 @@ spindle and make new entry moves if necessary. */ -int Interp::convert_tool_change(setup_pointer settings) //!< pointer to machine settings +int Interp::convert_tool_change(setup_pointer settings) //!< pointer to machine settings { - if (settings->selected_pocket < 0) { - ERS(NCE_TXX_MISSING_FOR_M6); - } - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change tools with cutter radius compensation on"))); - - if (!settings->tool_change_with_spindle_on) { - for (int s = 0; s < settings->num_spindles; s++){ - STOP_SPINDLE_TURNING(s); - settings->spindle_turning[s] = CANON_STOPPED; - } - } - - if (settings->tool_change_quill_up) { - double up_z; - double discard; - find_relative(0., 0., 0., 0., 0., 0., 0., 0., 0., - &discard, &discard, &up_z, - &discard, &discard, &discard, - &discard, &discard, &discard, - settings); - COMMENT("AXIS,hide"); - STRAIGHT_TRAVERSE(-1, settings->current_x, settings->current_y, up_z, - settings->AA_current, settings->BB_current, settings->CC_current, - settings->u_current, settings->v_current, settings->w_current); - COMMENT("AXIS,show"); - settings->current_z = up_z; - } - - if (settings->tool_change_at_g30) { - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end; - double v_end; - double w_end; - - find_relative(USER_TO_PROGRAM_LEN(settings->parameters[5181]), - USER_TO_PROGRAM_LEN(settings->parameters[5182]), - USER_TO_PROGRAM_LEN(settings->parameters[5183]), - USER_TO_PROGRAM_ANG(settings->parameters[5184]), - USER_TO_PROGRAM_ANG(settings->parameters[5185]), - USER_TO_PROGRAM_ANG(settings->parameters[5186]), - USER_TO_PROGRAM_LEN(settings->parameters[5187]), - USER_TO_PROGRAM_LEN(settings->parameters[5188]), - USER_TO_PROGRAM_LEN(settings->parameters[5189]), - &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end, settings); - COMMENT("AXIS,hide"); - - // move indexers first, one at a time - // JOINTS_AXES settings->*_indexer_jnum == -1 means notused - if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum) ) - issue_straight_index(3,settings->a_indexer_jnum, AA_end, -1, settings); - if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum) ) - issue_straight_index(4,settings->b_indexer_jnum, BB_end, -1, settings); - if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum) ) - issue_straight_index(5,settings->c_indexer_jnum, CC_end, -1, settings); - - STRAIGHT_TRAVERSE(-1, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - COMMENT("AXIS,show"); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - } - - CHANGE_TOOL(); - - settings->current_pocket = settings->selected_pocket; - // tool change can move the controlled point. reread it: - settings->toolchange_flag = true; - set_tool_parameters(); - return INTERP_OK; + if (settings->selected_pocket < 0) + { + ERS(NCE_TXX_MISSING_FOR_M6); + } + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change tools with cutter radius compensation on"))); + + if (!settings->tool_change_with_spindle_on) + { + for (int s = 0; s < settings->num_spindles; s++) + { + STOP_SPINDLE_TURNING(s); + settings->spindle_turning[s] = CANON_STOPPED; + } + } + + if (settings->tool_change_quill_up) + { + double up_z; + double discard; + find_relative(0., 0., 0., 0., 0., 0., 0., 0., 0., + &discard, &discard, &up_z, + &discard, &discard, &discard, + &discard, &discard, &discard, + settings); + COMMENT("AXIS,hide"); + STRAIGHT_TRAVERSE(-1, settings->current_x, settings->current_y, up_z, + settings->AA_current, settings->BB_current, settings->CC_current, + settings->u_current, settings->v_current, settings->w_current); + COMMENT("AXIS,show"); + settings->current_z = up_z; + } + + if (settings->tool_change_at_g30) + { + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end; + double v_end; + double w_end; + + find_relative(USER_TO_PROGRAM_LEN(settings->parameters[5181]), + USER_TO_PROGRAM_LEN(settings->parameters[5182]), + USER_TO_PROGRAM_LEN(settings->parameters[5183]), + USER_TO_PROGRAM_ANG(settings->parameters[5184]), + USER_TO_PROGRAM_ANG(settings->parameters[5185]), + USER_TO_PROGRAM_ANG(settings->parameters[5186]), + USER_TO_PROGRAM_LEN(settings->parameters[5187]), + USER_TO_PROGRAM_LEN(settings->parameters[5188]), + USER_TO_PROGRAM_LEN(settings->parameters[5189]), + &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end, settings); + COMMENT("AXIS,hide"); + + // move indexers first, one at a time + // JOINTS_AXES settings->*_indexer_jnum == -1 means notused + if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum)) + issue_straight_index(3, settings->a_indexer_jnum, AA_end, -1, settings); + if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum)) + issue_straight_index(4, settings->b_indexer_jnum, BB_end, -1, settings); + if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum)) + issue_straight_index(5, settings->c_indexer_jnum, CC_end, -1, settings); + + STRAIGHT_TRAVERSE(-1, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + COMMENT("AXIS,show"); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + } + + CHANGE_TOOL(); + + settings->current_pocket = settings->selected_pocket; + // tool change can move the controlled point. reread it: + settings->toolchange_flag = true; + set_tool_parameters(); + return INTERP_OK; } /****************************************************************************/ @@ -6192,122 +6860,154 @@ integer when it was read, so that check does not need to be repeated. */ -int Interp::convert_tool_length_offset(int g_code, //!< g_code being executed (must be G_43 or G_49) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_tool_length_offset(int g_code, //!< g_code being executed (must be G_43 or G_49) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - int idx; - EmcPose tool_offset; - ZERO_EMC_POSE(tool_offset); - settings->g43_with_zero_offset = 0; - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change tool offset with cutter radius compensation on"))); - if (g_code == G_49) { - idx = 0; - } else if (g_code == G_43) { - logDebug("convert_tool_length_offset h_flag=%d h_number=%d toolchange_flag=%d current_pocket=%d\n", - block->h_flag,block->h_number,settings->toolchange_flag,settings->current_pocket); - if(block->h_flag) { - CHP((find_tool_index(settings, block->h_number, &idx))); - //sequence: - // t12m6 - // g43 should use t12 offset - // g43h12 should also use t12 offset - if (idx==0 && settings->random_toolchanger) { - idx=settings->current_pocket; - } - } else if (settings->toolchange_flag) { - // Tool change is in progress, so the "current tool" is in its - // original index still. - idx = settings->current_pocket; - } else { - // Tool change is done so the current tool is in index 0 (aka the - // spindle). + int idx; + EmcPose tool_offset; + ZERO_EMC_POSE(tool_offset); + settings->g43_with_zero_offset = 0; + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change tool offset with cutter radius compensation on"))); + if (g_code == G_49) + { idx = 0; } - logDebug("convert_tool_length_offset: using index=%d spindle_toolno=%d pocket_toolno=%d", - idx, settings->tool_table[0].toolno,settings->tool_table[settings->current_pocket].toolno); - - tool_offset.tran.x = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); - tool_offset.tran.y = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); - tool_offset.tran.z = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); - tool_offset.a = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); - tool_offset.b = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); - tool_offset.c = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); - tool_offset.u = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); - tool_offset.v = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); - tool_offset.w = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); - settings->g43_with_zero_offset = - !(tool_offset.tran.x || tool_offset.tran.y || tool_offset.tran.z || - tool_offset.a || tool_offset.b || tool_offset.c || - tool_offset.u || tool_offset.v || tool_offset.w); - } else if (g_code == G_43_1) { - tool_offset = settings->tool_offset; - idx = -1; - if(block->x_flag) tool_offset.tran.x = block->x_number; - if(block->y_flag) tool_offset.tran.y = block->y_number; - if(block->z_flag) tool_offset.tran.z = block->z_number; - if(block->a_flag) tool_offset.a = block->a_number; - if(block->b_flag) tool_offset.b = block->b_number; - if(block->c_flag) tool_offset.c = block->c_number; - if(block->u_flag) tool_offset.u = block->u_number; - if(block->v_flag) tool_offset.v = block->v_number; - if(block->w_flag) tool_offset.w = block->w_number; - } else if (g_code == G_43_2) { - CHKS((block->h_flag && (block->x_flag || block->y_flag || block->z_flag - || block->a_flag || block->b_flag || block->c_flag || block->u_flag - || block->v_flag || block->w_flag)), (_("G43.2: Can not have both H and axis words"))); - CHKS((!block->h_flag && !block->x_flag && !block->y_flag && !block->z_flag - && !block->a_flag &&!block->b_flag && !block->c_flag && !block->u_flag - && !block->v_flag && !block->w_flag), (_("G43.2: No axes specified and H word missing"))); - tool_offset = settings->tool_offset; - if (block->h_flag){ - CHP((find_tool_index(settings, block->h_number, &idx))); - tool_offset.tran.x += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); - tool_offset.tran.y += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); - tool_offset.tran.z += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); - tool_offset.a += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); - tool_offset.b += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); - tool_offset.c += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); - tool_offset.u += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); - tool_offset.v += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); - tool_offset.w += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); - } else { - if(block->x_flag) tool_offset.tran.x += block->x_number; - if(block->y_flag) tool_offset.tran.y += block->y_number; - if(block->z_flag) tool_offset.tran.z += block->z_number; - if(block->a_flag) tool_offset.a += block->a_number; - if(block->b_flag) tool_offset.b += block->b_number; - if(block->c_flag) tool_offset.c += block->c_number; - if(block->u_flag) tool_offset.u += block->u_number; - if(block->v_flag) tool_offset.v += block->v_number; - if(block->w_flag) tool_offset.w += block->w_number; - } - } else { - ERS("BUG: Code not G43, G43.1, G43.2, or G49"); - } - USE_TOOL_LENGTH_OFFSET(tool_offset); - - double dx, dy; - - dx = settings->tool_offset.tran.x - tool_offset.tran.x; - dy = settings->tool_offset.tran.y - tool_offset.tran.y; - - rotate(&dx, &dy, -settings->rotation_xy); - - settings->current_x += dx; - settings->current_y += dy; - settings->current_z += settings->tool_offset.tran.z - tool_offset.tran.z; - settings->AA_current += settings->tool_offset.a - tool_offset.a; - settings->BB_current += settings->tool_offset.b - tool_offset.b; - settings->CC_current += settings->tool_offset.c - tool_offset.c; - settings->u_current += settings->tool_offset.u - tool_offset.u; - settings->v_current += settings->tool_offset.v - tool_offset.v; - settings->w_current += settings->tool_offset.w - tool_offset.w; - - settings->tool_offset = tool_offset; - return INTERP_OK; + else if (g_code == G_43) + { + logDebug("convert_tool_length_offset h_flag=%d h_number=%d toolchange_flag=%d current_pocket=%d\n", + block->h_flag, block->h_number, settings->toolchange_flag, settings->current_pocket); + if (block->h_flag) + { + CHP((find_tool_index(settings, block->h_number, &idx))); + // sequence: + // t12m6 + // g43 should use t12 offset + // g43h12 should also use t12 offset + if (idx == 0 && settings->random_toolchanger) + { + idx = settings->current_pocket; + } + } + else if (settings->toolchange_flag) + { + // Tool change is in progress, so the "current tool" is in its + // original index still. + idx = settings->current_pocket; + } + else + { + // Tool change is done so the current tool is in index 0 (aka the + // spindle). + idx = 0; + } + logDebug("convert_tool_length_offset: using index=%d spindle_toolno=%d pocket_toolno=%d", + idx, settings->tool_table[0].toolno, settings->tool_table[settings->current_pocket].toolno); + + tool_offset.tran.x = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); + tool_offset.tran.y = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); + tool_offset.tran.z = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); + tool_offset.a = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); + tool_offset.b = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); + tool_offset.c = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); + tool_offset.u = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); + tool_offset.v = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); + tool_offset.w = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); + settings->g43_with_zero_offset = + !(tool_offset.tran.x || tool_offset.tran.y || tool_offset.tran.z || + tool_offset.a || tool_offset.b || tool_offset.c || + tool_offset.u || tool_offset.v || tool_offset.w); + } + else if (g_code == G_43_1) + { + tool_offset = settings->tool_offset; + idx = -1; + if (block->x_flag) + tool_offset.tran.x = block->x_number; + if (block->y_flag) + tool_offset.tran.y = block->y_number; + if (block->z_flag) + tool_offset.tran.z = block->z_number; + if (block->a_flag) + tool_offset.a = block->a_number; + if (block->b_flag) + tool_offset.b = block->b_number; + if (block->c_flag) + tool_offset.c = block->c_number; + if (block->u_flag) + tool_offset.u = block->u_number; + if (block->v_flag) + tool_offset.v = block->v_number; + if (block->w_flag) + tool_offset.w = block->w_number; + } + else if (g_code == G_43_2) + { + CHKS((block->h_flag && (block->x_flag || block->y_flag || block->z_flag || block->a_flag || block->b_flag || block->c_flag || block->u_flag || block->v_flag || block->w_flag)), (_("G43.2: Can not have both H and axis words"))); + CHKS((!block->h_flag && !block->x_flag && !block->y_flag && !block->z_flag && !block->a_flag && !block->b_flag && !block->c_flag && !block->u_flag && !block->v_flag && !block->w_flag), (_("G43.2: No axes specified and H word missing"))); + tool_offset = settings->tool_offset; + if (block->h_flag) + { + CHP((find_tool_index(settings, block->h_number, &idx))); + tool_offset.tran.x += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); + tool_offset.tran.y += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); + tool_offset.tran.z += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); + tool_offset.a += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); + tool_offset.b += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); + tool_offset.c += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); + tool_offset.u += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); + tool_offset.v += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); + tool_offset.w += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); + } + else + { + if (block->x_flag) + tool_offset.tran.x += block->x_number; + if (block->y_flag) + tool_offset.tran.y += block->y_number; + if (block->z_flag) + tool_offset.tran.z += block->z_number; + if (block->a_flag) + tool_offset.a += block->a_number; + if (block->b_flag) + tool_offset.b += block->b_number; + if (block->c_flag) + tool_offset.c += block->c_number; + if (block->u_flag) + tool_offset.u += block->u_number; + if (block->v_flag) + tool_offset.v += block->v_number; + if (block->w_flag) + tool_offset.w += block->w_number; + } + } + else + { + ERS("BUG: Code not G43, G43.1, G43.2, or G49"); + } + USE_TOOL_LENGTH_OFFSET(tool_offset); + + double dx, dy; + + dx = settings->tool_offset.tran.x - tool_offset.tran.x; + dy = settings->tool_offset.tran.y - tool_offset.tran.y; + + rotate(&dx, &dy, -settings->rotation_xy); + + settings->current_x += dx; + settings->current_y += dy; + settings->current_z += settings->tool_offset.tran.z - tool_offset.tran.z; + settings->AA_current += settings->tool_offset.a - tool_offset.a; + settings->BB_current += settings->tool_offset.b - tool_offset.b; + settings->CC_current += settings->tool_offset.c - tool_offset.c; + settings->u_current += settings->tool_offset.u - tool_offset.u; + settings->v_current += settings->tool_offset.v - tool_offset.v; + settings->w_current += settings->tool_offset.w - tool_offset.w; + + settings->tool_offset = tool_offset; + return INTERP_OK; } /****************************************************************************/ @@ -6335,20 +7035,48 @@ A zero t_number is allowed and means no tool should be selected. // OK to select tool in a concave corner, I think? -int Interp::convert_tool_select(block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_tool_select(block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - int idx; - CHP((find_tool_index(settings, block->t_number, &idx))); - SELECT_TOOL(block->t_number); - settings->selected_pocket = idx; - settings->selected_tool = block->t_number; - return INTERP_OK; + int idx; + CHP((find_tool_index(settings, block->t_number, &idx))); + SELECT_TOOL(block->t_number); + settings->selected_pocket = idx; + settings->selected_tool = block->t_number; + return INTERP_OK; } - int Interp::update_tag(StateTag &tag) { UPDATE_TAG(tag); return INTERP_OK; } + +int Interp::tag_straight(double x, double y) +{ + double dx = x - _setup.current_x; + double dy = y - _setup.current_y; + + // Calculate heading (atan2 returns radians, converting to degrees) + double heading = (hypot(dx, dy) > 1e-9) ? (atan2(dy, dx) * 180.0 / M_PI) : 0.0; + + _setup.state_tag.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = heading; + // Reset arc fields for linear moves + _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = 0.0; + _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = 0.0; + _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = 0.0; + return INTERP_OK; +} + +int Interp::tag_arc(double /*x*/, double /*y*/, double center_x, double center_y) + { + double dx = center_x - _setup.current_x; + double dy = center_y - _setup.current_y; + + _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = hypot(dx, dy); + _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = center_x; + _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = center_y; + // Reset heading for arc moves + _setup.state_tag.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = 0.0; + return INTERP_OK; + } diff --git a/src/emc/rs274ngc/rs274ngc_interp.hh b/src/emc/rs274ngc/rs274ngc_interp.hh index c96ce99be45..83b481bf26f 100644 --- a/src/emc/rs274ngc/rs274ngc_interp.hh +++ b/src/emc/rs274ngc/rs274ngc_interp.hh @@ -657,6 +657,10 @@ int read_inputs(setup_pointer settings); void doLog(unsigned int flags, const char *file, int line, const char *fmt, ...) __attribute__((format(printf,5,6))); + /* State Tags Helpers */ + int tag_straight(double x, double y); + int tag_arc(double x, double y, double center_x, double center_y); + const char *interp_status(int status); //technically this violates encapsulation rules but is needed for From cac77e534ab8b36b30d8ffd3b2980d8dd9980752 Mon Sep 17 00:00:00 2001 From: Rod Date: Tue, 14 Apr 2026 21:14:01 +1000 Subject: [PATCH 02/23] After getting most things working except publishing pins --- nc_files/gestg2.ngc | 22 ++++++ nc_files/testg2.ngc | 13 ++++ src/.gitignore | 1 + src/emc/motion/control.c | 115 +++++++++++++++++----------- src/emc/motion/motion.c | 2 +- src/emc/rs274ngc/interp_convert.cc | 96 ++++++++++++++++++----- src/emc/rs274ngc/interp_internal.hh | 14 +++- src/emc/rs274ngc/interp_write.cc | 6 ++ src/emc/rs274ngc/rs274ngc_interp.hh | 4 +- 9 files changed, 206 insertions(+), 67 deletions(-) create mode 100644 nc_files/gestg2.ngc create mode 100644 nc_files/testg2.ngc diff --git a/nc_files/gestg2.ngc b/nc_files/gestg2.ngc new file mode 100644 index 00000000000..ac8e8c807d8 --- /dev/null +++ b/nc_files/gestg2.ngc @@ -0,0 +1,22 @@ +(Test G-code for Tangential Arcs) +G17 G21 G90 G54 (XY Plane, mm, Absolute, Coord System 1) +F1000 (Set a visible feedrate) + +(Step 1: Straight move to establish initial heading) +G0 X0 Y0 +G1 X10 Y0 + +(Step 2: G3 Counter-Clockwise Circle) +(Start: 10,0 | Center: 20,0 | End: 10,0) +G3 X10 Y0 I10 J0 + +(Step 3: Move to position for G2) +G1 X30 Y0 + +(Step 4: G2 Clockwise Circle) +(Start: 30,0 | Center: 40,0 | End: 30,0) +G2 X30 Y0 I10 J0 + +(Step 5: Return Home) +G1 X0 Y0 +M2 diff --git a/nc_files/testg2.ngc b/nc_files/testg2.ngc new file mode 100644 index 00000000000..928e2ffe567 --- /dev/null +++ b/nc_files/testg2.ngc @@ -0,0 +1,13 @@ +(Test G-code for Tangential Arcs) +G17 G21 G90 G54 (XY Plane, mm, Absolute, Coord System 1) +F1000 (Set a visible feedrate) + +(Step 1: Straight move to establish initial heading) +G0 X0 Y0 +g1 x100 y0 +g1 x100 y100 +g1 x0 y100 +g1 x0 y0 +g1 x100 y 100 + +M2 diff --git a/src/.gitignore b/src/.gitignore index dc74c003d16..2b3822b440c 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -22,3 +22,4 @@ /configure~ /.html-images-stamp /.htmldoc-stamp +/nc_files diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index 4dc2400db15..0ea38075061 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -1889,18 +1889,18 @@ static void output_to_hal(void) *(emcmot_hal_data->coord_error) = GET_MOTION_ERROR_FLAG(); *(emcmot_hal_data->on_soft_limit) = emcmotStatus->on_soft_limit; - /* Update the HAL Output Pins from the active tag */ + /* Update the HAL Output Pins from the active tag */ /* Geometric Metadata */ - *(emcmot_hal_data->interp_arc_radius) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_RADIUS]; - *(emcmot_hal_data->interp_arc_center_x) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_X]; - *(emcmot_hal_data->interp_arc_center_y) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_Y]; - *(emcmot_hal_data->interp_straight_heading) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_STRAIGHT_HEADING]; + *(emcmot_hal_data->interp_arc_radius) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_RADIUS]; + *(emcmot_hal_data->interp_arc_center_x) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X]; + *(emcmot_hal_data->interp_arc_center_y) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y]; + *(emcmot_hal_data->interp_straight_heading) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING]; /* Performance Metadata */ - *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_FEED]; + *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_FEED]; /* Line and Motion Type (Casting to int for s32 HAL pins) */ - *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_FLOAT_LINE_NUMBER]; + *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_LINE_NUMBER]; *(emcmot_hal_data->interp_motion_type) = (int)emcmotStatus->tag.fields[GM_FIELD_MOTION_MODE]; switch (emcmotStatus->motionType) { @@ -2227,43 +2227,72 @@ static void update_status(void) emcmotStatus->stepping = 0; emcmotStatus->paused = 1; } -// State Tags handling -// Get the current executing trajectory component (the "Source of Truth") - /* 1. Update the HAL Output Pins from the active tag */ - if (emcmot_hal_data) { - // Line and Motion Type - if (emcmot_hal_data->interp_line_number) { - *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_FLOAT_LINE_NUMBER]; - } - - // Performance Metadata - if (emcmot_hal_data->interp_feedrate) { - *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_FEED]; - } + // State Tags handling + // Get the current executing trajectory component (the "Source of Truth") + /* Update the HAL Output Pins from the active tag */ + if (emcmot_hal_data) { + // Line and Motion Type + if (emcmot_hal_data->interp_line_number) { + *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_LINE_NUMBER]; + } + + // Performance Metadata + if (emcmot_hal_data->interp_feedrate) { + *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_FEED]; + } - // Geometric Metadata - if (emcmot_hal_data->interp_arc_radius) { - *(emcmot_hal_data->interp_arc_radius) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_RADIUS]; - } - if (emcmot_hal_data->interp_arc_center_x) { - *(emcmot_hal_data->interp_arc_center_x) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_X]; - } - if (emcmot_hal_data->interp_arc_center_y) { - *(emcmot_hal_data->interp_arc_center_y) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_ARC_CENTER_Y]; - } - if (emcmot_hal_data->interp_straight_heading) { - *(emcmot_hal_data->interp_straight_heading) = emcmotStatus->tag.fields[GM_FIELD_FLOAT_STRAIGHT_HEADING]; - } - } - - /* 2. Handle the idle state (Optional cleanup) */ - if (emcmotStatus->activeDepth == 0) { - /* If there is no active move, we can clear the geometric metadata - so the UI doesn't show "old" radius data during a pause. */ - if (emcmot_hal_data && emcmot_hal_data->interp_arc_radius) { - *(emcmot_hal_data->interp_arc_radius) = 0.0; - } - } + // Geometric Metadata + + if (emcmot_hal_data->interp_arc_radius) { + *(emcmot_hal_data->interp_arc_radius) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_RADIUS]; + } + if (emcmot_hal_data->interp_arc_center_x) { + *(emcmot_hal_data->interp_arc_center_x) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X]; + } + if (emcmot_hal_data->interp_arc_center_y) { + *(emcmot_hal_data->interp_arc_center_y) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y]; + } + // Get the current motion type from the tag (1=G1, 2=G2, 3=G3) + int motion_type = (int)emcmotStatus->tag.fields[GM_FIELD_MOTION_MODE]; + if (motion_type == 10) { + /* --- G1: STATIC HEADING --- */ + // For linear moves, the heading doesn't change during the segment. + if (emcmot_hal_data->interp_straight_heading) { + *(emcmot_hal_data->interp_straight_heading) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING]; + } + } + else if (motion_type == 20 || motion_type == 30) { + /* --- G2/G3: DYNAMIC ARC HEADING --- */ + double cx = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X]; + double cy = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y]; + + // Current RT feedback position + double dx = emcmotStatus->carte_pos_fb.tran.x - cx; + double dy = emcmotStatus->carte_pos_fb.tran.y - cy; + double angle_rad = atan2(dy, dx); + double heading_deg; + + // G3 (CCW): Heading is Radial Angle + 90 degrees + if (motion_type == 3) { + heading_deg = (angle_rad + M_PI_2) * (180.0 / M_PI); + } + // G2 (CW): Heading is Radial Angle - 90 degrees + else { + heading_deg = (angle_rad - M_PI_2) * (180.0 / M_PI); + } + // 0-360 Normalization + while (heading_deg < 0) heading_deg += 360.0; + while (heading_deg >= 360.0) heading_deg -= 360.0; + + // Now assign the calculated value + if (emcmot_hal_data->interp_straight_heading) + *(emcmot_hal_data->interp_straight_heading) = heading_deg; + // Performance Metadata + if (emcmot_hal_data->interp_feedrate) { + *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_FEED]; + } + } + } } #ifdef WATCH_FLAGS /*! \todo FIXME - this is for debugging */ diff --git a/src/emc/motion/motion.c b/src/emc/motion/motion.c index ec6d998bb48..31c025292c0 100644 --- a/src/emc/motion/motion.c +++ b/src/emc/motion/motion.c @@ -560,7 +560,7 @@ static int init_hal_io(void) CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_radius), mot_comp_id, "motion.interp.arc-radius")); CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_center_x), mot_comp_id, "motion.interp.arc-center-x")); CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_center_y), mot_comp_id, "motion.interp.arc-center-y")); - CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_straight_heading), mot_comp_id, "motion.interp.straight-heading")); + CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_straight_heading), mot_comp_id, "motion.interp.heading")); /* export debug parameters */ /* these can be used to view any internal variable, simply change a line diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index cf4f9aab450..ab5e0c6c1dd 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -1262,6 +1262,30 @@ int Interp::convert_arc2(int move, //!< either G_2 (cw arc) inverse_time_rate_arc(*current1, *current2, *current3, center1, center2, turn, end1, end2, end3, block, settings); + // We need to determine which 'center' is X and which is Y +double abs_x = 0, abs_y = 0; +double abs_cx = 0, abs_cy = 0; + + if (settings->plane == CANON_PLANE::XY) { + abs_x = end1; + abs_y = end2; + abs_cx = center1; + abs_cy = center2; + } else if (settings->plane == CANON_PLANE::XZ) { + abs_x = end1; + abs_y = 0; // Or whatever your system expects for non-active axes + abs_cx = center1; + abs_cy = 0; + } else { // YZ plane + abs_x = 0; + abs_y = end1; + abs_cx = 0; + abs_cy = center1; + } + + // Call our tagger with the resolved X, Y, CX, and CY + tag_arc(block, abs_x, abs_y, abs_cx, abs_cy, move); + ARC_FEED(block->line_number, end1, end2, center1, center2, turn, end3, AA_end, BB_end, CC_end, u, v, w); *current1 = end1; @@ -1392,8 +1416,7 @@ int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) o center_x = end_x + c_len * cos(AB_ang); center_y = end_y + c_len * sin(AB_ang); - // send state tags for arc here - tag_arc(end_x, end_y, center_x, center_y); + /* center to endpoint distances matched before - they still should. */ CHKS((fabs(hypot(center_x - end_x, center_y - end_y) - @@ -5947,7 +5970,7 @@ int Interp::convert_straight(int move, //!< either G_0 or G_1 // Create a state tag and dump it to canon write_canon_state_tag(block, settings); - tag_straight(end_x, end_y); // Update the heading and clear arc data for ANY straight move + // Check if the move is a Straight Line (G0 or G1) if ((settings->cutter_comp_side != CUTTER_COMP::OFF) && /* ! "== true" */ (settings->cutter_comp_radius > 0.0)) @@ -5980,6 +6003,7 @@ int Interp::convert_straight(int move, //!< either G_0 or G_1 } else if (move == G_0) { + tag_straight(block,end_x, end_y); // Update the heading and clear arc data for ANY straight move STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); @@ -5989,6 +6013,7 @@ int Interp::convert_straight(int move, //!< either G_0 or G_1 } else if (move == G_1) { + tag_straight(block,end_x, end_y); // Update the heading and clear arc data for ANY straight move STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); @@ -7052,31 +7077,62 @@ int Interp::update_tag(StateTag &tag) return INTERP_OK; } -int Interp::tag_straight(double x, double y) +int Interp::tag_straight(block_pointer block, double x, double y) { - double dx = x - _setup.current_x; - double dy = y - _setup.current_y; + // Get current position to find the vector + double start_x = _setup.current_x; + double start_y = _setup.current_y; + + double dx = x - start_x; + double dy = y- start_y; + - // Calculate heading (atan2 returns radians, converting to degrees) - double heading = (hypot(dx, dy) > 1e-9) ? (atan2(dy, dx) * 180.0 / M_PI) : 0.0; - _setup.state_tag.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = heading; - // Reset arc fields for linear moves - _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = 0.0; - _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = 0.0; - _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = 0.0; + // Store in the block + // Calculate Heading but check for Z axis only moves + double heading = atan2( dy,dx) * (180.0 / M_PI); + if (heading < 0.00) heading += 360.0; + rtapi_print("start_x = %f, start_y = %f, end_x = %f, end_y = %f, heading = %f\n", start_x, start_y,x,y,heading); + block->arc_heading = heading; + + // If no XY movement, block->arc_heading remains whatever it was last, + // preventing a sudden "jump" during Z-only moves. + + // Reset Arc data so HAL pins don't show old values + block->radius = 0.0; + block->arc_center_x = 0.0; + block->arc_center_y = 0.0; return INTERP_OK; } -int Interp::tag_arc(double /*x*/, double /*y*/, double center_x, double center_y) +int Interp::tag_arc(block_pointer block, double x, double y, double center_x, double center_y, int move) { + double dx = center_x - _setup.current_x; double dy = center_y - _setup.current_y; - - _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = hypot(dx, dy); - _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = center_x; - _setup.state_tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = center_y; - // Reset heading for arc moves - _setup.state_tag.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = 0.0; + double radial_angle = atan2(dy, dx); // radial angle (centre to tool) + double tangent_angle; + + // The Tangent is 90 degrees offset + if (move == G_3) { // Counter-Clockwise + tangent_angle = radial_angle + (M_PI / 2.0); + } else { // Clockwise (G_2) + tangent_angle = radial_angle - (M_PI / 2.0); + } + // Convert to degrees for HAL pins + double heading = tangent_angle * (180.0 / M_PI); + + // Normalise 0-360 + while (heading < 0) heading += 360.0; + while (heading >= 360.0) heading -= 360.0; + + // Save for tags + block->arc_center_x = center_x; + block->arc_center_y = center_y; + block->arc_radius = hypot(dx, dy); + block->arc_heading = heading; + write_canon_state_tag(block,&_setup); + + //rtapi_print("DEBUG WRITE: CX= %f, CY= %f, Radius = %f, Heading = %f\n", block->arc_center_x, block->arc_center_y, block->arc_radius, block->arc_heading ); return INTERP_OK; } diff --git a/src/emc/rs274ngc/interp_internal.hh b/src/emc/rs274ngc/interp_internal.hh index bbcf9e926e7..004e9e6345b 100644 --- a/src/emc/rs274ngc/interp_internal.hh +++ b/src/emc/rs274ngc/interp_internal.hh @@ -495,6 +495,13 @@ struct block_struct long offset{}; // start of line in file int o_type{}; int call_type{}; // oword-sub, python oword-sub, remap + + // Add Geometic fields + double arc_center_x; + double arc_center_y; + double arc_radius; + double arc_heading; + const char *o_name{}; // !!!KL be sure to free this double params[INTERP_SUB_PARAMS]{}; int param_cnt{}; @@ -781,7 +788,6 @@ struct setup context sub_context[INTERP_SUB_ROUTINE_LEVELS]; int call_state; // enum call_states - indicate Py handler reexecution offset_map_type offset_map; // store label x name, file, line - bool adaptive_feed; // adaptive feed is enabled bool feed_hold; // feed hold is enabled int loggingLevel; // 0 means logging is off @@ -817,6 +823,12 @@ struct setup int disable_g92_persistence; +// add new geometric fields for our new tags + double heading; + double radius; + double center_x; + double center_y; + #define FEATURE(x) (_setup.feature_set & FEATURE_ ## x) #define FEATURE_RETAIN_G43 0x00000001 #define FEATURE_OWORD_N_ARGS 0x00000002 diff --git a/src/emc/rs274ngc/interp_write.cc b/src/emc/rs274ngc/interp_write.cc index 16b93c78ed0..c577dfcf923 100644 --- a/src/emc/rs274ngc/interp_write.cc +++ b/src/emc/rs274ngc/interp_write.cc @@ -333,6 +333,12 @@ int Interp::write_state_tag(block_pointer block, state.fields_float[GM_FIELD_FLOAT_FEED] = settings->feed_rate; state.fields_float[GM_FIELD_FLOAT_SPEED] = settings->speed[0]; + + // Pack new geometric data + state.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = (float)block->arc_heading; + state.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = (float)block->arc_radius; + state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = (float)block->arc_center_x; + state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = (float)block->arc_center_y; return 0; } diff --git a/src/emc/rs274ngc/rs274ngc_interp.hh b/src/emc/rs274ngc/rs274ngc_interp.hh index 83b481bf26f..2efc425c0bf 100644 --- a/src/emc/rs274ngc/rs274ngc_interp.hh +++ b/src/emc/rs274ngc/rs274ngc_interp.hh @@ -658,8 +658,8 @@ int read_inputs(setup_pointer settings); const char *fmt, ...) __attribute__((format(printf,5,6))); /* State Tags Helpers */ - int tag_straight(double x, double y); - int tag_arc(double x, double y, double center_x, double center_y); + int tag_straight(block_pointer block, double x, double y); + int tag_arc(block_pointer block, double x, double y, double center_x, double center_y, int move); const char *interp_status(int status); From 52572e530d5d15cd7d37285dd03a03387670b4a8 Mon Sep 17 00:00:00 2001 From: Rod Date: Fri, 24 Apr 2026 21:51:54 +1000 Subject: [PATCH 03/23] corrections for straight heading --- arc_heading | 0 docs/src/man/man9/motion.9.adoc | 6 ++-- src/emc/motion/control.c | 6 ++-- src/emc/rs274ngc/interp_convert.cc | 44 ++++++++++++++++++++---------- 4 files changed, 36 insertions(+), 20 deletions(-) create mode 100644 arc_heading diff --git a/arc_heading b/arc_heading new file mode 100644 index 00000000000..e69de29bb2d diff --git a/docs/src/man/man9/motion.9.adoc b/docs/src/man/man9/motion.9.adoc index 9cf540fcedf..759af9f736e 100644 --- a/docs/src/man/man9/motion.9.adoc +++ b/docs/src/man/man9/motion.9.adoc @@ -285,11 +285,11 @@ These pins provide geometric intent and interpreter state for the segment of mot ==== Interpreter Geometric Pins -* `motion.interp.straight-heading` (float, out) + - The XY plane heading of the current linear move in degrees. Measured counter-clockwise from the +X axis (0 to 360). This value is 0.0 during circular moves or when no XY motion occurs. +* `motion.interp.heading` (float, out) + + The XY plane heading of the current linear move in degrees. Measured counter-clockwise from the +X axis (0 to 360). This could be used to control a tangential knife. * `motion.interp.arc-radius` (float, out) + - The radius of the current circular move. This value is 0.0 during linear moves. + The radius of the current circular move. This value is 0.0 during linear moves. This could be used to modify plasma cutting parameters based on the arc radius and when hole cutting. * `motion.interp.arc-center-x` (float, out) + The absolute X-coordinate of the center point for the current arc. diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index 0ea38075061..a532e07fba1 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -26,7 +26,6 @@ #include #include //for kinematicsSwitchable() #include - #include "../tp/tp.h" #include "simple_tp.h" #include "motion.h" @@ -36,6 +35,7 @@ #include "axis.h" #include "state_tag.h" + // Mark strings for translation, but defer translation to userspace #define _(s) (s) @@ -2254,7 +2254,7 @@ static void update_status(void) } // Get the current motion type from the tag (1=G1, 2=G2, 3=G3) int motion_type = (int)emcmotStatus->tag.fields[GM_FIELD_MOTION_MODE]; - if (motion_type == 10) { + if (motion_type == 10 || motion_type == 0) { /* --- G1: STATIC HEADING --- */ // For linear moves, the heading doesn't change during the segment. if (emcmot_hal_data->interp_straight_heading) { @@ -2273,7 +2273,7 @@ static void update_status(void) double heading_deg; // G3 (CCW): Heading is Radial Angle + 90 degrees - if (motion_type == 3) { + if (motion_type == 30) { heading_deg = (angle_rad + M_PI_2) * (180.0 / M_PI); } // G2 (CW): Heading is Radial Angle - 90 degrees diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index ab5e0c6c1dd..f07bf00b850 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -7079,35 +7079,51 @@ int Interp::update_tag(StateTag &tag) int Interp::tag_straight(block_pointer block, double x, double y) { - // Get current position to find the vector + // Use a static variable to remember the heading between function calls + // Initialize to 0.0 or your preferred default start angle + static double last_valid_heading = 0.0; + double start_x = _setup.current_x; double start_y = _setup.current_y; double dx = x - start_x; - double dy = y- start_y; - + double dy = y - start_y; + // Only update the heading if there is actual XY motion + if (hypot(dx, dy) > 0.0001) + { + double heading = atan2(dy, dx) * (180.0 / M_PI); + + // Normalization + heading = fmod(heading, 360.0); + if (heading < 0.0) heading += 360.0; - // Store in the block - // Calculate Heading but check for Z axis only moves - double heading = atan2( dy,dx) * (180.0 / M_PI); - if (heading < 0.00) heading += 360.0; - rtapi_print("start_x = %f, start_y = %f, end_x = %f, end_y = %f, heading = %f\n", start_x, start_y,x,y,heading); - block->arc_heading = heading; + // Store it for this block AND for the next Z-only move + block->arc_heading = heading; + last_valid_heading = heading; + } + else + { + // For Z-only moves, reuse the last calculated XY heading + block->arc_heading = last_valid_heading; + } - // If no XY movement, block->arc_heading remains whatever it was last, - // preventing a sudden "jump" during Z-only moves. - - // Reset Arc data so HAL pins don't show old values + // Reset Arc data for safety block->radius = 0.0; block->arc_center_x = 0.0; block->arc_center_y = 0.0; + + // Ship the data to the status registers + write_canon_state_tag(block, &_setup); + return INTERP_OK; } int Interp::tag_arc(block_pointer block, double x, double y, double center_x, double center_y, int move) { - + // Silence unused parameter warnings + (void)x; + (void)y; double dx = center_x - _setup.current_x; double dy = center_y - _setup.current_y; double radial_angle = atan2(dy, dx); // radial angle (centre to tool) From 12d2cc2a6a85b3cd45f021e4ede004e9fb731a34 Mon Sep 17 00:00:00 2001 From: rod Date: Sat, 2 May 2026 07:42:40 +1000 Subject: [PATCH 04/23] changes for abort --- src/emc/motion/command.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/emc/motion/command.c b/src/emc/motion/command.c index c806deccf4f..53c7a9d2c48 100644 --- a/src/emc/motion/command.c +++ b/src/emc/motion/command.c @@ -530,6 +530,13 @@ void emcmotCommandHandler_locked(void *arg, long servo_period) SET_JOINT_FAULT_FLAG(joint, 0); } emcmotStatus->paused = 0; + // Clear pins on abort so tests see a clean state + if (emcmot_hal_data) { + *(emcmot_hal_data->interp_arc_radius) = 0.0; + *(emcmot_hal_data->interp_arc_center_x) = 0.0; + *(emcmot_hal_data->interp_arc_center_y) = 0.0; + *(emcmot_hal_data->interp_straight_heading) = 0.0; + } break; case EMCMOT_JOG_ABORT: From 1321309d3229bfca92bdf3fe32774fba5e756af3 Mon Sep 17 00:00:00 2001 From: rod Date: Sat, 2 May 2026 16:03:39 +1000 Subject: [PATCH 05/23] add normalheading and an iscircle flag --- docs/man/man9/output_buffer.9 | 98 +++++++++++++++++++++++++++++ src/emc/motion/command.c | 2 + src/emc/motion/control.c | 14 ++++- src/emc/motion/mot_priv.h | 2 + src/emc/motion/motion.c | 7 ++- src/emc/motion/state_tag.h | 2 + src/emc/rs274ngc/interp_convert.cc | 13 ++++ src/emc/rs274ngc/interp_internal.hh | 9 ++- src/emc/rs274ngc/interp_write.cc | 2 + src/emc/rs274ngc/rs274ngc_pre.cc | 2 +- 10 files changed, 144 insertions(+), 7 deletions(-) create mode 100644 docs/man/man9/output_buffer.9 diff --git a/docs/man/man9/output_buffer.9 b/docs/man/man9/output_buffer.9 new file mode 100644 index 00000000000..58fa3305022 --- /dev/null +++ b/docs/man/man9/output_buffer.9 @@ -0,0 +1,98 @@ +'\" t +.\" Title: output_buffer +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 05/02/2026 +.\" Manual: LinuxCNC Documentation +.\" Source: LinuxCNC +.\" Language: English +.\" +.TH "OUTPUT_BUFFER" "9" "05/02/2026" "LinuxCNC" "LinuxCNC Documentation" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +output_buffer \- Feed through multiple bits when enable pin is set +.SH "SYNOPSIS" +.sp +\fBloadrt output_buffer\fR [\fBcount\fR=\fIN\fR|\fBnames\fR=\fIname1\fR[,\fIname2\fR\&...]] [\fBpersonality\fR=\fIP1\fR[,\fIP2\fR\&...]] +.SH "DESCRIPTION" +.sp +Feed through up to 32 bit inputs to their outputs when enable set, otherwise outputs will be the value of \fIoff\-level\fR (default 0)\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf + ┌───────────┐ +output\-buffer\&.N\&.in\-0 ─────┤ ──[>]── ├───── output\-buffer\&.N\&.out\-0 + │ ┌─┘ │ +output\-buffer\&.N\&.in\-1 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-1 + │ ├─┘ │ +output\-buffer\&.N\&.in\-2 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-2 + │ ├─┘ │ + \&.\&.\&. ─────┤ : ├───── \&.\&.\&. + │ : │ +output\-buffer\&.N\&.in\-M ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-M + │ ├─┘ │ + enable ─────┤ ─┘ │ + │ │ + off\-level ─────┤ [0/1] │ + └───────────┘ +.fi +.if n \{\ +.RE +.\} +.sp +The number of channels are determined by the value of \fIpersonality\fR\&. +.SH "FUNCTIONS" +.PP +\fBoutput\-buffer\fR\&.\fIN\fR (requires a floating\-point thread) +.RS 4 +.RE +.SH "PINS" +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBenable\fR bit in +.RS 4 +Enable input +.RE +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBoff\-level\fR bit in (default: \fI0\fR) +.RS 4 +Signal level when output is off (enable=0) +.RE +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBin\-\fR\fB\fIM\fR\fR bit in (M=0\&.\&.personality) +.RS 4 +Inputs +.RE +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBout\-\fR\fB\fIM\fR\fR bit out (M=0\&.\&.personality) +.RS 4 +Outputs (Follow inputs when enable=1) +.RE +.SH "EXAMPLES" +.sp +\fBloadrt output_buffer count=1 personality=8\fR will create a 8 bit buffer\&. +.SH "AUTHOR" +.sp +Hans Unzner +.SH "LICENSE" +.sp +GPL diff --git a/src/emc/motion/command.c b/src/emc/motion/command.c index 53c7a9d2c48..11308c701a4 100644 --- a/src/emc/motion/command.c +++ b/src/emc/motion/command.c @@ -536,6 +536,8 @@ void emcmotCommandHandler_locked(void *arg, long servo_period) *(emcmot_hal_data->interp_arc_center_x) = 0.0; *(emcmot_hal_data->interp_arc_center_y) = 0.0; *(emcmot_hal_data->interp_straight_heading) = 0.0; + *(emcmot_hal_data->interp_normal_heading) = 0.0; + *(emcmot_hal_data->iscircle) = 0.0; } break; diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index a532e07fba1..8c8d6487b20 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -1902,7 +1902,7 @@ static void output_to_hal(void) /* Line and Motion Type (Casting to int for s32 HAL pins) */ *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_LINE_NUMBER]; *(emcmot_hal_data->interp_motion_type) = (int)emcmotStatus->tag.fields[GM_FIELD_MOTION_MODE]; - + *(emcmot_hal_data->iscircle) = (int)emcmotStatus->tag.fields[GM_FLAG_IS_CIRCLE]; switch (emcmotStatus->motionType) { case EMC_MOTION_TYPE_FEED: //fall thru case EMC_MOTION_TYPE_ARC: @@ -2265,11 +2265,21 @@ static void update_status(void) /* --- G2/G3: DYNAMIC ARC HEADING --- */ double cx = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X]; double cy = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y]; - + *(emcmot_hal_data->interp_normal_heading) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_NORMAL_HEADING]; + *(emcmot_hal_data->iscircle) = (hal_bit_t)((emcmotStatus->tag.packed_flags & (1 << GM_FLAG_IS_CIRCLE)) != 0); // Current RT feedback position double dx = emcmotStatus->carte_pos_fb.tran.x - cx; double dy = emcmotStatus->carte_pos_fb.tran.y - cy; double angle_rad = atan2(dy, dx); + // Normal heading is tool-to-centre (opposite of radial) + double normal_heading_deg = (angle_rad * (180.0 / M_PI)) + 180.0; + + // 0-360 Normalization + while (normal_heading_deg < 0) normal_heading_deg += 360.0; + while (normal_heading_deg >= 360.0) normal_heading_deg -= 360.0; + + *(emcmot_hal_data->interp_normal_heading) = normal_heading_deg; + double heading_deg; // G3 (CCW): Heading is Radial Angle + 90 degrees diff --git a/src/emc/motion/mot_priv.h b/src/emc/motion/mot_priv.h index 4830772dbbd..1712a505c4c 100644 --- a/src/emc/motion/mot_priv.h +++ b/src/emc/motion/mot_priv.h @@ -209,6 +209,8 @@ typedef struct { hal_float_t *interp_arc_center_x; hal_float_t *interp_arc_center_y; hal_float_t *interp_straight_heading; + hal_float_t *interp_normal_heading; + hal_bit_t *iscircle; } emcmot_hal_data_t; /*********************************************************************** diff --git a/src/emc/motion/motion.c b/src/emc/motion/motion.c index 31c025292c0..4bda24cef84 100644 --- a/src/emc/motion/motion.c +++ b/src/emc/motion/motion.c @@ -561,7 +561,11 @@ static int init_hal_io(void) CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_center_x), mot_comp_id, "motion.interp.arc-center-x")); CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_arc_center_y), mot_comp_id, "motion.interp.arc-center-y")); CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_straight_heading), mot_comp_id, "motion.interp.heading")); - + CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_normal_heading), mot_comp_id, "motion.interp.normal-heading")); + CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &emcmot_hal_data->iscircle, mot_comp_id, "motion.interp.iscircle")); + //CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->jog_is_active), mot_comp_id, "motion.jog-is-active")); + + /* export debug parameters */ /* these can be used to view any internal variable, simply change a line in control.c:output_to_hal() and recompile */ @@ -574,6 +578,7 @@ static int init_hal_io(void) CALL_CHECK(hal_param_s32_newf(HAL_RO, &(emcmot_hal_data->debug_s32_0), mot_comp_id, "motion.debug-s32-0")); CALL_CHECK(hal_param_s32_newf(HAL_RO, &(emcmot_hal_data->debug_s32_1), mot_comp_id, "motion.debug-s32-1")); + // FIXME - debug only, remove later // export HAL parameters for some trajectory planner internal variables // so they can be scoped diff --git a/src/emc/motion/state_tag.h b/src/emc/motion/state_tag.h index 6eeade112ce..31b727e4568 100644 --- a/src/emc/motion/state_tag.h +++ b/src/emc/motion/state_tag.h @@ -57,6 +57,7 @@ typedef enum { GM_FLAG_IN_REMAP, GM_FLAG_IN_SUB, GM_FLAG_EXTERNAL_FILE, + GM_FLAG_IS_CIRCLE, GM_FLAG_MAX_FLAGS } StateFlag; @@ -103,6 +104,7 @@ typedef enum { GM_FIELD_FLOAT_ARC_CENTER_X, GM_FIELD_FLOAT_ARC_CENTER_Y, GM_FIELD_FLOAT_STRAIGHT_HEADING, + GM_FIELD_FLOAT_NORMAL_HEADING, GM_FIELD_FLOAT_MAX_FIELDS } StateFieldFloat; diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index f07bf00b850..7cf74b2c352 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -7142,11 +7142,24 @@ int Interp::tag_arc(block_pointer block, double x, double y, double center_x, do while (heading < 0) heading += 360.0; while (heading >= 360.0) heading -= 360.0; + double normal_heading = radial_angle * (180.0 / M_PI) + 180.0; + // Normalise 0-360 + while (normal_heading < 0) + normal_heading += 360.0; + while (normal_heading >= 360.0) + normal_heading -= 360.0; + // Check if this is a full circle allowing for tolerance + double start_dx = _setup.current_x - x; + double start_dy = _setup.current_y - y; + double distance_to_end = hypot(start_dx, start_dy); + block->iscircle = (distance_to_end < TOLERANCE_EQUAL) ? 1 : 0; + // Save for tags block->arc_center_x = center_x; block->arc_center_y = center_y; block->arc_radius = hypot(dx, dy); block->arc_heading = heading; + block->normal_heading = normal_heading; write_canon_state_tag(block,&_setup); //rtapi_print("DEBUG WRITE: CX= %f, CY= %f, Radius = %f, Heading = %f\n", block->arc_center_x, block->arc_center_y, block->arc_radius, block->arc_heading ); diff --git a/src/emc/rs274ngc/interp_internal.hh b/src/emc/rs274ngc/interp_internal.hh index 004e9e6345b..421da80094e 100644 --- a/src/emc/rs274ngc/interp_internal.hh +++ b/src/emc/rs274ngc/interp_internal.hh @@ -501,7 +501,8 @@ struct block_struct double arc_center_y; double arc_radius; double arc_heading; - + double normal_heading{}; + bool iscircle{}; const char *o_name{}; // !!!KL be sure to free this double params[INTERP_SUB_PARAMS]{}; int param_cnt{}; @@ -535,7 +536,7 @@ struct block_struct // true if in a remap procedure the code being remapped was // referenced, which caused execution of the builtin semantics // reason for recording the fact: this permits an epilog to do the - // right thing depending on whether the builtin was used or not. + // right thing depending oniscircle whether the builtin was used or not. bool builtin_used{}; }; @@ -776,7 +777,7 @@ struct setup int defining_sub; // true if in a subroutine defn const char *sub_name; // name of sub we are defining (free this) int doing_continue; // true if doing a continue - int doing_break; // true if doing a break + int doing_break; // true if doing a breakiscircle int executed_if; // true if executed in current if const char *skipping_o; // o_name we are skipping for (or zero) const char *skipping_to_sub; // o_name of sub skipping to (or zero) @@ -828,6 +829,8 @@ struct setup double radius; double center_x; double center_y; + double normal_heading; + bool iscircle; #define FEATURE(x) (_setup.feature_set & FEATURE_ ## x) #define FEATURE_RETAIN_G43 0x00000001 diff --git a/src/emc/rs274ngc/interp_write.cc b/src/emc/rs274ngc/interp_write.cc index c577dfcf923..72b41ff45d8 100644 --- a/src/emc/rs274ngc/interp_write.cc +++ b/src/emc/rs274ngc/interp_write.cc @@ -339,6 +339,8 @@ int Interp::write_state_tag(block_pointer block, state.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = (float)block->arc_radius; state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = (float)block->arc_center_x; state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = (float)block->arc_center_y; + state.fields_float[GM_FIELD_FLOAT_NORMAL_HEADING] = (block == NULL) ? 0.0f : (float)block->normal_heading; + state.flags[GM_FLAG_IS_CIRCLE] = block->iscircle; return 0; } diff --git a/src/emc/rs274ngc/rs274ngc_pre.cc b/src/emc/rs274ngc/rs274ngc_pre.cc index e2f798f161f..9addd7d961f 100644 --- a/src/emc/rs274ngc/rs274ngc_pre.cc +++ b/src/emc/rs274ngc/rs274ngc_pre.cc @@ -2235,7 +2235,7 @@ int Interp::active_modes(int *g_codes, // system of unpacking state tags into arrays of fixed type and // purpose should be refactored into something more elegant settings[0] = tag.fields[GM_FIELD_LINE_NUMBER]; - + // Where do we update tag.fields[GM_FLAG_IS_CIRCLE] return INTERP_OK; } From 7ae69792f269d8406db3f41d6c63b20d067bd61e Mon Sep 17 00:00:00 2001 From: rod Date: Sat, 2 May 2026 16:15:12 +1000 Subject: [PATCH 06/23] update docs for normal heading and iscircle --- docs/src/man/man9/motion.9.adoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/src/man/man9/motion.9.adoc b/docs/src/man/man9/motion.9.adoc index 759af9f736e..1002594b865 100644 --- a/docs/src/man/man9/motion.9.adoc +++ b/docs/src/man/man9/motion.9.adoc @@ -297,6 +297,12 @@ These pins provide geometric intent and interpreter state for the segment of mot * `motion.interp.arc-center-y` (float, out) + The absolute Y-coordinate of the center point for the current arc. +* `motion.interp.normal-heading` (float, out) + + the heading from the current point back to the arc circlefor the current arc. + + * `motion.interp.iscircle` (bit, out) + + True if the current arc is a full circle. + [NOTE] These pins represent the *commanded geometric intent* from the interpreter and are updated in real-time as each motion segment is consumed by the trajectory planner. From 8a869ecf28edbb7e463f8924cb530e7c78d3dad5 Mon Sep 17 00:00:00 2001 From: rod Date: Sat, 2 May 2026 20:27:00 +1000 Subject: [PATCH 07/23] M70 problems --- src/emc/motion/state_tag.h | 2 +- src/emc/rs274ngc/interp_internal.hh | 8 ++++---- src/emc/rs274ngc/interp_write.cc | 12 ++++++------ src/emc/rs274ngc/rs274ngc_pre.cc | 12 ++++++++++-- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/emc/motion/state_tag.h b/src/emc/motion/state_tag.h index 31b727e4568..d271d443656 100644 --- a/src/emc/motion/state_tag.h +++ b/src/emc/motion/state_tag.h @@ -68,7 +68,7 @@ typedef enum { * WARNING: * * 1) Since these are used as array indices, they have to start at 0, - * be monotonic, and the MAX_FIELDS GM_FIELD_FLOAT_MAX_FIELDSenum MUST be last in the list. + * be monotonic, and the MAX_FIELDS GM_FIELD_FLOAT_MAX_FIELDS enum MUST be last in the list. * * 2) If your application needs to pass state tags through NML, then * you MUST update the corresponding cms->update function for state diff --git a/src/emc/rs274ngc/interp_internal.hh b/src/emc/rs274ngc/interp_internal.hh index 421da80094e..8f1049fa04b 100644 --- a/src/emc/rs274ngc/interp_internal.hh +++ b/src/emc/rs274ngc/interp_internal.hh @@ -497,10 +497,10 @@ struct block_struct int call_type{}; // oword-sub, python oword-sub, remap // Add Geometic fields - double arc_center_x; - double arc_center_y; - double arc_radius; - double arc_heading; + double arc_center_x{}; + double arc_center_y{}; + double arc_radius{}; + double arc_heading{}; double normal_heading{}; bool iscircle{}; const char *o_name{}; // !!!KL be sure to free this diff --git a/src/emc/rs274ngc/interp_write.cc b/src/emc/rs274ngc/interp_write.cc index 72b41ff45d8..9191d962e19 100644 --- a/src/emc/rs274ngc/interp_write.cc +++ b/src/emc/rs274ngc/interp_write.cc @@ -335,12 +335,12 @@ int Interp::write_state_tag(block_pointer block, state.fields_float[GM_FIELD_FLOAT_SPEED] = settings->speed[0]; // Pack new geometric data - state.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = (float)block->arc_heading; - state.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = (float)block->arc_radius; - state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = (float)block->arc_center_x; - state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = (float)block->arc_center_y; - state.fields_float[GM_FIELD_FLOAT_NORMAL_HEADING] = (block == NULL) ? 0.0f : (float)block->normal_heading; - state.flags[GM_FLAG_IS_CIRCLE] = block->iscircle; + state.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = (block == NULL) ? 0.0f : (float)block->arc_heading; + state.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = (block == NULL) ? 0.0f : (float)block->arc_radius; + state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = (block == NULL) ? 0.0f : (float)block->arc_center_x; + state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = (block == NULL) ? 0.0f : (float)block->arc_center_y; + state.fields_float[GM_FIELD_FLOAT_NORMAL_HEADING] = (block == NULL) ? 0.0f : (float)block->normal_heading; + state.flags[GM_FLAG_IS_CIRCLE] = block->iscircle = (block == NULL) ? 0 : (bool)block->iscircle; return 0; } diff --git a/src/emc/rs274ngc/rs274ngc_pre.cc b/src/emc/rs274ngc/rs274ngc_pre.cc index 9addd7d961f..685b76c7375 100644 --- a/src/emc/rs274ngc/rs274ngc_pre.cc +++ b/src/emc/rs274ngc/rs274ngc_pre.cc @@ -2230,11 +2230,19 @@ int Interp::active_modes(int *g_codes, // Copy float-type state for (i=0; i Date: Sat, 2 May 2026 21:54:53 +0800 Subject: [PATCH 08/23] state-tags: clean up M70 fix, iscircle null-deref, wrong flag-as-field read active_modes() in rs274ngc_pre.cc still ran the original unclamped loop above the clamped one, so the stack overflow into saved_settings[5] was unchanged. The line-number copy was also commented out. Drop the duplicate and restore the line-number copy. write_state_tag() still dereferenced block on the iscircle assignment (`block->iscircle = (block == NULL) ? 0 : block->iscircle`), reintroducing the M70 NULL-deref. Replace with a plain null-guarded read. control.c output_to_hal() read the iscircle bit out of `tag.fields[]` using the StateFlag index GM_FLAG_IS_CIRCLE, which indexes past `fields[]` (GM_FIELD_MAX_FIELDS == 8). Read it from packed_flags instead, like the update_status() copy does. Also dropped the duplicate interp_normal_heading write in the G2/G3 branch and restored the WATCH_FLAGS debug block to live inside update_status(). --- src/emc/motion/control.c | 22 +++++++++------------- src/emc/rs274ngc/interp_write.cc | 15 ++++++++------- src/emc/rs274ngc/rs274ngc_pre.cc | 15 ++++++--------- 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index 8c8d6487b20..5b0a592b990 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -1902,7 +1902,7 @@ static void output_to_hal(void) /* Line and Motion Type (Casting to int for s32 HAL pins) */ *(emcmot_hal_data->interp_line_number) = (int)emcmotStatus->tag.fields[GM_FIELD_LINE_NUMBER]; *(emcmot_hal_data->interp_motion_type) = (int)emcmotStatus->tag.fields[GM_FIELD_MOTION_MODE]; - *(emcmot_hal_data->iscircle) = (int)emcmotStatus->tag.fields[GM_FLAG_IS_CIRCLE]; + *(emcmot_hal_data->iscircle) = (hal_bit_t)((emcmotStatus->tag.packed_flags & (1UL << GM_FLAG_IS_CIRCLE)) != 0); switch (emcmotStatus->motionType) { case EMC_MOTION_TYPE_FEED: //fall thru case EMC_MOTION_TYPE_ARC: @@ -2265,19 +2265,15 @@ static void update_status(void) /* --- G2/G3: DYNAMIC ARC HEADING --- */ double cx = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X]; double cy = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y]; - *(emcmot_hal_data->interp_normal_heading) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_NORMAL_HEADING]; - *(emcmot_hal_data->iscircle) = (hal_bit_t)((emcmotStatus->tag.packed_flags & (1 << GM_FLAG_IS_CIRCLE)) != 0); + *(emcmot_hal_data->iscircle) = (hal_bit_t)((emcmotStatus->tag.packed_flags & (1UL << GM_FLAG_IS_CIRCLE)) != 0); // Current RT feedback position double dx = emcmotStatus->carte_pos_fb.tran.x - cx; double dy = emcmotStatus->carte_pos_fb.tran.y - cy; double angle_rad = atan2(dy, dx); // Normal heading is tool-to-centre (opposite of radial) double normal_heading_deg = (angle_rad * (180.0 / M_PI)) + 180.0; - - // 0-360 Normalization while (normal_heading_deg < 0) normal_heading_deg += 360.0; while (normal_heading_deg >= 360.0) normal_heading_deg -= 360.0; - *(emcmot_hal_data->interp_normal_heading) = normal_heading_deg; double heading_deg; @@ -2301,13 +2297,13 @@ static void update_status(void) if (emcmot_hal_data->interp_feedrate) { *(emcmot_hal_data->interp_feedrate) = emcmotStatus->tag.fields_float[GM_FIELD_FLOAT_FEED]; } - } + } } -} #ifdef WATCH_FLAGS -/*! \todo FIXME - this is for debugging */ -if ( old_motion_flag != emcmotStatus->motionFlag ) { -rtapi_print ( "Motion flag %04X -> %04X\n", old_motion_flag, emcmotStatus->motionFlag ); -old_motion_flag = emcmotStatus->motionFlag; -} + /*! \todo FIXME - this is for debugging */ + if ( old_motion_flag != emcmotStatus->motionFlag ) { + rtapi_print ( "Motion flag %04X -> %04X\n", old_motion_flag, emcmotStatus->motionFlag ); + old_motion_flag = emcmotStatus->motionFlag; + } #endif +} diff --git a/src/emc/rs274ngc/interp_write.cc b/src/emc/rs274ngc/interp_write.cc index 9191d962e19..cbbc525d590 100644 --- a/src/emc/rs274ngc/interp_write.cc +++ b/src/emc/rs274ngc/interp_write.cc @@ -334,13 +334,14 @@ int Interp::write_state_tag(block_pointer block, state.fields_float[GM_FIELD_FLOAT_FEED] = settings->feed_rate; state.fields_float[GM_FIELD_FLOAT_SPEED] = settings->speed[0]; - // Pack new geometric data - state.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = (block == NULL) ? 0.0f : (float)block->arc_heading; - state.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = (block == NULL) ? 0.0f : (float)block->arc_radius; - state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = (block == NULL) ? 0.0f : (float)block->arc_center_x; - state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = (block == NULL) ? 0.0f : (float)block->arc_center_y; - state.fields_float[GM_FIELD_FLOAT_NORMAL_HEADING] = (block == NULL) ? 0.0f : (float)block->normal_heading; - state.flags[GM_FLAG_IS_CIRCLE] = block->iscircle = (block == NULL) ? 0 : (bool)block->iscircle; + // Pack new geometric data. block is NULL on the M70 save path + // (save_settings() in interp_convert.cc), so guard against null deref. + state.fields_float[GM_FIELD_FLOAT_STRAIGHT_HEADING] = (block == NULL) ? 0.0f : (float)block->arc_heading; + state.fields_float[GM_FIELD_FLOAT_ARC_RADIUS] = (block == NULL) ? 0.0f : (float)block->arc_radius; + state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_X] = (block == NULL) ? 0.0f : (float)block->arc_center_x; + state.fields_float[GM_FIELD_FLOAT_ARC_CENTER_Y] = (block == NULL) ? 0.0f : (float)block->arc_center_y; + state.fields_float[GM_FIELD_FLOAT_NORMAL_HEADING] = (block == NULL) ? 0.0f : (float)block->normal_heading; + state.flags[GM_FLAG_IS_CIRCLE] = (block == NULL) ? false : block->iscircle; return 0; } diff --git a/src/emc/rs274ngc/rs274ngc_pre.cc b/src/emc/rs274ngc/rs274ngc_pre.cc index 685b76c7375..fe2f81788e1 100644 --- a/src/emc/rs274ngc/rs274ngc_pre.cc +++ b/src/emc/rs274ngc/rs274ngc_pre.cc @@ -2228,22 +2228,19 @@ int Interp::active_modes(int *g_codes, tag.flags[GM_FLAG_FEED_HOLD] ? 53 : -1; - // Copy float-type state - for (i=0; i Date: Sun, 3 May 2026 06:50:50 +1000 Subject: [PATCH 09/23] reset iscircle, remove output_buffer.9 intermediate file --- docs/man/man9/output_buffer.9 | 98 ------------------------------ src/emc/rs274ngc/interp_convert.cc | 2 + 2 files changed, 2 insertions(+), 98 deletions(-) delete mode 100644 docs/man/man9/output_buffer.9 diff --git a/docs/man/man9/output_buffer.9 b/docs/man/man9/output_buffer.9 deleted file mode 100644 index 58fa3305022..00000000000 --- a/docs/man/man9/output_buffer.9 +++ /dev/null @@ -1,98 +0,0 @@ -'\" t -.\" Title: output_buffer -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 05/02/2026 -.\" Manual: LinuxCNC Documentation -.\" Source: LinuxCNC -.\" Language: English -.\" -.TH "OUTPUT_BUFFER" "9" "05/02/2026" "LinuxCNC" "LinuxCNC Documentation" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -output_buffer \- Feed through multiple bits when enable pin is set -.SH "SYNOPSIS" -.sp -\fBloadrt output_buffer\fR [\fBcount\fR=\fIN\fR|\fBnames\fR=\fIname1\fR[,\fIname2\fR\&...]] [\fBpersonality\fR=\fIP1\fR[,\fIP2\fR\&...]] -.SH "DESCRIPTION" -.sp -Feed through up to 32 bit inputs to their outputs when enable set, otherwise outputs will be the value of \fIoff\-level\fR (default 0)\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf - ┌───────────┐ -output\-buffer\&.N\&.in\-0 ─────┤ ──[>]── ├───── output\-buffer\&.N\&.out\-0 - │ ┌─┘ │ -output\-buffer\&.N\&.in\-1 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-1 - │ ├─┘ │ -output\-buffer\&.N\&.in\-2 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-2 - │ ├─┘ │ - \&.\&.\&. ─────┤ : ├───── \&.\&.\&. - │ : │ -output\-buffer\&.N\&.in\-M ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-M - │ ├─┘ │ - enable ─────┤ ─┘ │ - │ │ - off\-level ─────┤ [0/1] │ - └───────────┘ -.fi -.if n \{\ -.RE -.\} -.sp -The number of channels are determined by the value of \fIpersonality\fR\&. -.SH "FUNCTIONS" -.PP -\fBoutput\-buffer\fR\&.\fIN\fR (requires a floating\-point thread) -.RS 4 -.RE -.SH "PINS" -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBenable\fR bit in -.RS 4 -Enable input -.RE -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBoff\-level\fR bit in (default: \fI0\fR) -.RS 4 -Signal level when output is off (enable=0) -.RE -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBin\-\fR\fB\fIM\fR\fR bit in (M=0\&.\&.personality) -.RS 4 -Inputs -.RE -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBout\-\fR\fB\fIM\fR\fR bit out (M=0\&.\&.personality) -.RS 4 -Outputs (Follow inputs when enable=1) -.RE -.SH "EXAMPLES" -.sp -\fBloadrt output_buffer count=1 personality=8\fR will create a 8 bit buffer\&. -.SH "AUTHOR" -.sp -Hans Unzner -.SH "LICENSE" -.sp -GPL diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index 7cf74b2c352..a1968be8aeb 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -7112,6 +7112,8 @@ int Interp::tag_straight(block_pointer block, double x, double y) block->radius = 0.0; block->arc_center_x = 0.0; block->arc_center_y = 0.0; + block->normal_heading = 0.0; + block->iscircle = false; // Ship the data to the status registers write_canon_state_tag(block, &_setup); From 245e91bca168d12cd6d26f5c30da97785486608d Mon Sep 17 00:00:00 2001 From: Luca Toniolo <10792599+grandixximo@users.noreply.github.com> Date: Sun, 3 May 2026 08:43:01 +0800 Subject: [PATCH 10/23] state-tags: replace M_PI_2 with M_PI/2 for RTAI build M_PI_2 is a glibc extension and is not exposed by RTAI's rtapi_math.h, so the RTAI build fails with 'M_PI_2 undeclared' at control.c:2283. M_PI is available in both, so use M_PI/2.0 instead. --- src/emc/motion/control.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index 5b0a592b990..bf88b09ef08 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -2280,11 +2280,11 @@ static void update_status(void) // G3 (CCW): Heading is Radial Angle + 90 degrees if (motion_type == 30) { - heading_deg = (angle_rad + M_PI_2) * (180.0 / M_PI); - } + heading_deg = (angle_rad + (M_PI / 2.0)) * (180.0 / M_PI); + } // G2 (CW): Heading is Radial Angle - 90 degrees else { - heading_deg = (angle_rad - M_PI_2) * (180.0 / M_PI); + heading_deg = (angle_rad - (M_PI / 2.0)) * (180.0 / M_PI); } // 0-360 Normalization while (heading_deg < 0) heading_deg += 360.0; From 70216903151aeb9903b8bd25c1eefb55594cdb93 Mon Sep 17 00:00:00 2001 From: rod Date: Sun, 3 May 2026 11:19:27 +1000 Subject: [PATCH 11/23] edit .gitignore to exclude docs/man/man9/output_buffer.9 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 94e742f2bd7..1c18d5d721a 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ position.txt *.*-stamp # Ignore VSCode settings .vscode/settings.json +docs/man/man9/output_buffer.9 From 20992b0c6ae64880d939ed1ddf08b1ac5e3bab93 Mon Sep 17 00:00:00 2001 From: rod Date: Sun, 3 May 2026 22:42:32 +1000 Subject: [PATCH 12/23] 1. Deleted nc_files folder which was added due to Issue #3924 that was not resolved when work commenced on this PR. 2. Deleted spurious arc_heading file. 3. Moved docs/man/man9/output_buffer.9 to docs/man/.gitignore --- .gitignore | 2 +- arc_heading | 0 docs/man/.gitignore | 1 + nc_files/3D_Chips.html | 48 - nc_files/3D_Chips.ngc | 4711 ------------ nc_files/3D_Chips.pdf | Bin 69393 -> 0 bytes nc_files/3dtest.ngc | 54 - nc_files/M101 | 22 - nc_files/M102.c | 29 - nc_files/arcspiral.ngc | 1008 --- nc_files/b-index.ngc | 14 - nc_files/cds.ngc | 284 - nc_files/comp-g1.ngc | 39 - nc_files/comp.ngc | 61 - nc_files/comp311.ngc | 37 - nc_files/comp311_2.ngc | 36 - nc_files/cone.ngc | 42 - nc_files/daisy.ngc | 159 - nc_files/factorial.ngc | 11 - nc_files/filtertest-gui.py | 64 - nc_files/filtertest.py | 19 - nc_files/flowsnake.ngc | 45 - nc_files/flowsnake.py | 29 - nc_files/g20sub.ngc | 14 - nc_files/g76.ngc | 115 - nc_files/g881.ngc | 37 - nc_files/g881min.ngc | 5 - nc_files/g882.ngc | 6 - nc_files/gcmc_lib/cpocket.gcmc | 196 - nc_files/gcmc_lib/cpocket.png | Bin 5836 -> 0 bytes nc_files/gcmc_lib/drill.gcmc | 58 - nc_files/gcmc_lib/drill.png | Bin 2578 -> 0 bytes nc_files/gcmc_lib/ensure_units.gcmc | 35 - nc_files/gcmc_lib/involute-gear.gcmc | 240 - nc_files/gcmc_lib/involute-gear.png | Bin 4661 -> 0 bytes nc_files/gcmc_lib/rectangle.gcmc | 70 - nc_files/gcmc_lib/star.gcmc | 123 - nc_files/gcmc_lib/star.png | Bin 2705 -> 0 bytes nc_files/gcmc_lib/trochoid-path.gcmc | 198 - nc_files/gcmc_lib/trochoid-path.png | Bin 14921 -> 0 bytes nc_files/gcmc_lib/wheels.gcmc | 167 - nc_files/gestg2.ngc | 22 - nc_files/gladevcp_lib/oword.ngc | 14 - ..._tools_with_cutter_radius_compensation.ngc | 93 - nc_files/gridprobe.ngc | 45 - nc_files/hole-circle.ngc | 12 - nc_files/holecircle.py | 245 - nc_files/increment.ngc | 4 - nc_files/involute.py | 13 - nc_files/lathe-g76.ngc | 115 - nc_files/lathe_g70_71_demo.ngc | 35 - nc_files/lathe_g7x_face_boring.ngc | 19 - nc_files/lathe_g7x_quadrants.ngc | 64 - nc_files/lathe_pawn.ngc | 151 - nc_files/lathecomp.ngc | 49 - nc_files/m250.ngc | 29 - nc_files/m61demo.ngc | 34 - nc_files/m6demo.ngc | 88 - nc_files/m6remap.ngc | 6 - nc_files/m70m72-demo.ngc | 41 - nc_files/m73-demo.ngc | 53 - nc_files/m75.ngc | 33 - nc_files/m76.ngc | 29 - nc_files/macros/lathe/LatheMacro.svg | 6619 ----------------- nc_files/macros/lathe/boring.ngc | 103 - nc_files/macros/lathe/chamfer.ngc | 102 - nc_files/macros/lathe/drill.ngc | 86 - nc_files/macros/lathe/facing.ngc | 74 - nc_files/macros/lathe/go_to_position.ngc | 30 - nc_files/macros/lathe/go_to_position.png | Bin 3725 -> 0 bytes nc_files/macros/lathe/go_to_position_data.txt | 2 - nc_files/macros/lathe/probe-hole.ngc | 85 - nc_files/macros/lathe/radius.ngc | 85 - nc_files/macros/lathe/threading.ngc | 93 - nc_files/macros/lathe/turning.ngc | 109 - nc_files/macros/mill/go_to_home.ngc | 13 - nc_files/macros/mill/go_to_home.svg | 82 - nc_files/macros/mill/go_to_position.ngc | 27 - nc_files/macros/mill/go_to_position.png | Bin 3725 -> 0 bytes nc_files/macros/mill/go_to_zero.ngc | 18 - nc_files/macros/mill/go_to_zero.png | Bin 3742 -> 0 bytes nc_files/mmount.ngc | 335 - nc_files/nestedcall.ngc | 14 - nc_files/ngcgui_lib/arc1.ngc | 301 - nc_files/ngcgui_lib/arc1.png | Bin 6732 -> 0 bytes nc_files/ngcgui_lib/arc2.ngc | 54 - nc_files/ngcgui_lib/arc2.png | Bin 5848 -> 0 bytes nc_files/ngcgui_lib/backlash.ngc | 89 - nc_files/ngcgui_lib/db25.ngc | 54 - nc_files/ngcgui_lib/gosper.ngc | 67 - nc_files/ngcgui_lib/gosper.png | Bin 7972 -> 0 bytes nc_files/ngcgui_lib/helix.ngc | 154 - nc_files/ngcgui_lib/helix_rtheta.ngc | 29 - nc_files/ngcgui_lib/hole_circle.ngc | 45 - nc_files/ngcgui_lib/ihex.ngc | 218 - nc_files/ngcgui_lib/iquad.ngc | 179 - nc_files/ngcgui_lib/iquad.png | Bin 7475 -> 0 bytes nc_files/ngcgui_lib/lathe/g76base.ngc | 119 - nc_files/ngcgui_lib/lathe/g76base.png | Bin 5870 -> 0 bytes nc_files/ngcgui_lib/lathe/g76diam.ngc | 69 - nc_files/ngcgui_lib/lathe/g76diam.png | Bin 7364 -> 0 bytes nc_files/ngcgui_lib/lathe/id.ngc | 56 - nc_files/ngcgui_lib/lathe/lathe_std.ngc | 12 - nc_files/ngcgui_lib/lathe/od.ngc | 48 - nc_files/ngcgui_lib/lathe/taper-od.ngc | 32 - nc_files/ngcgui_lib/mfiles/M110 | 19 - nc_files/ngcgui_lib/ohex.ngc | 175 - nc_files/ngcgui_lib/oquad.ngc | 136 - nc_files/ngcgui_lib/qpex.ngc | 139 - nc_files/ngcgui_lib/qpex_mm.ngc | 136 - nc_files/ngcgui_lib/qpocket.ngc | 485 -- nc_files/ngcgui_lib/qpocket.png | Bin 12102 -> 0 bytes nc_files/ngcgui_lib/rectangle_probe.ngc | 87 - nc_files/ngcgui_lib/simp.ngc | 11 - nc_files/ngcgui_lib/simp.png | Bin 3548 -> 0 bytes nc_files/ngcgui_lib/slot.ngc | 93 - nc_files/ngcgui_lib/slot.png | Bin 5560 -> 0 bytes nc_files/ngcgui_lib/utilitysubs/bye.ngc | 3 - nc_files/ngcgui_lib/utilitysubs/cross.ngc | 40 - nc_files/ngcgui_lib/utilitysubs/dir.ngc | 129 - nc_files/ngcgui_lib/utilitysubs/dot.ngc | 45 - nc_files/ngcgui_lib/utilitysubs/entry.ngc | 84 - .../ngcgui_lib/utilitysubs/g59preview.ngc | 14 - .../ngcgui_lib/utilitysubs/gosper_sub.ngc | 29 - nc_files/ngcgui_lib/utilitysubs/in_std.ngc | 12 - nc_files/ngcgui_lib/utilitysubs/line.ngc | 31 - nc_files/ngcgui_lib/utilitysubs/loadtool.ngc | 51 - nc_files/ngcgui_lib/utilitysubs/mm_std.ngc | 11 - nc_files/ngcgui_lib/utilitysubs/move.ngc | 34 - .../ngcgui_lib/utilitysubs/pointsdata.ngc | 53 - nc_files/ngcgui_lib/utilitysubs/spin.ngc | 20 - nc_files/ngcgui_lib/xyz.ngc | 85 - nc_files/ngcgui_lib/xyz.png | Bin 10991 -> 0 bytes nc_files/nurbs/G5/Curva_Chitarra #1=3_G5.ngc | 46 - nc_files/nurbs/G5/Curva_Delfino #1=1_G5.ngc | 90 - nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.jpg | Bin 144217 -> 0 bytes nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc | 42 - nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc | 55 - nc_files/nurbs/G5/butterfly-xy.ngc | 105 - nc_files/nurbs/G5/butterfly-yz.ngc | 106 - nc_files/nurbs/G5/butterfly-zx.ngc | 106 - nc_files/nurbs/G5/leto-xy.ngc | 33 - nc_files/nurbs/G5/nurbs-xy.ngc | 28 - nc_files/nurbs/G5/nurbs-yz.ngc | 28 - nc_files/nurbs/G5/nurbs-zx.ngc | 28 - nc_files/nurbs/G5/trident-xy-yz-zx.ngc | 77 - nc_files/nurbs/G5/trident-xy.ngc | 33 - nc_files/nurbs/G5/trident-yz.ngc | 33 - nc_files/nurbs/G5/trident-zx.ngc | 33 - nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg | Bin 135001 -> 0 bytes nc_files/nurbs/G6/Curva_Chitarra #1=1.jpg | Bin 140216 -> 0 bytes nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc | 47 - nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc | 48 - nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc | 48 - nc_files/nurbs/G6/Curva_Delfino #1=1.jpg | Bin 135488 -> 0 bytes nc_files/nurbs/G6/Curva_Delfino #1=1.ngc | 54 - nc_files/nurbs/G6/Curva_Delfino #1=2.ngc | 54 - nc_files/nurbs/G6/Curva_Delfino #1=3.ngc | 54 - nc_files/nurbs/G6/Curva_Farfalla #1=1.jpg | Bin 149021 -> 0 bytes nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc | 72 - nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc | 72 - nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc | 71 - .../nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg | Bin 166760 -> 0 bytes .../nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc | 107 - nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc | 42 - nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc | 43 - nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc | 43 - nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg | Bin 127950 -> 0 bytes .../nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc | 110 - nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc | 33 - .../nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc | 110 - nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc | 32 - nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg | Bin 150025 -> 0 bytes nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc | 689 -- nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc | 688 -- nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc | 687 -- nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg | Bin 149211 -> 0 bytes nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc | 240 - nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc | 240 - nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc | 240 - nc_files/nurbs/G6/Curva_Stella #1=1.jpg | Bin 134904 -> 0 bytes nc_files/nurbs/G6/Curva_Stella #1=1.ngc | 34 - nc_files/nurbs/G6/Curva_Stella #1=2-xy.ngc | 40 - nc_files/nurbs/G6/Curva_Stella #1=2-yz.ngc | 44 - nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc | 46 - nc_files/nurbs/G6/Curva_Stella #1=3.ngc | 34 - nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb | 325 - nc_files/nurbs/G6/Ruota_dentata #1=1.jpg | Bin 145440 -> 0 bytes nc_files/nurbs/G6/Ruota_dentata #1=1.ngc | 610 -- nc_files/nurbs/G6/Ruota_dentata #1=2.ngc | 610 -- nc_files/nurbs/G6/Ruota_dentata #1=3.ngc | 610 -- nc_files/nurbs/G6/UNIPA #1=1.jpg | Bin 139618 -> 0 bytes nc_files/nurbs/G6/UNIPA #1=1.ngc | 114 - nc_files/nurbs/G6/UNIPA #1=2.ngc | 113 - nc_files/nurbs/G6/UNIPA #1=3.ngc | 121 - nc_files/nurbs/G6/homer #1=1.jpg | Bin 161131 -> 0 bytes nc_files/nurbs/G6/homer #1=1.ngc | 381 - nc_files/nurbs/G6/homer #1=2.ngc | 361 - nc_files/nurbs/G6/homer #1=3.ngc | 362 - nc_files/nurbs/G6/homer-16 #1=1-xy.ngc | 33 - nc_files/nurbs/G6/homer-16 #1=1-yz.ngc | 38 - nc_files/nurbs/G6/homer-16 #1=1-zx.ngc | 35 - nc_files/nurbs/G6/read.me | 39 - nc_files/offsets.ngc | 13 - nc_files/orphans/README | 3 - nc_files/plasmac/imperial_air_scribe.ngc | 94 - nc_files/plasmac/imperial_circles.ngc | 25 - .../plasmac/imperial_ihs_skip_thc_off.ngc | 30 - nc_files/plasmac/imperial_ihs_skip_thc_on.ngc | 30 - nc_files/plasmac/imperial_line.ngc | 15 - nc_files/plasmac/imperial_material_change.ngc | 41 - nc_files/plasmac/imperial_ramp_pierce.ngc | 54 - nc_files/plasmac/imperial_squares.ngc | 27 - .../plasmac/imperial_temporary_materials.ngc | 37 - nc_files/plasmac/imperial_wrench.ngc | 37 - nc_files/plasmac/m_files/M159 | 112 - nc_files/plasmac/m_files/M190 | 68 - nc_files/plasmac/metric_air_scribe.ngc | 94 - nc_files/plasmac/metric_circles.ngc | 24 - nc_files/plasmac/metric_ihs_skip_thc_off.ngc | 30 - nc_files/plasmac/metric_ihs_skip_thc_on.ngc | 30 - nc_files/plasmac/metric_line.ngc | 15 - nc_files/plasmac/metric_material_change.ngc | 41 - nc_files/plasmac/metric_pipe.ngc | 940 --- nc_files/plasmac/metric_ramp_pierce.ngc | 52 - nc_files/plasmac/metric_squares.ngc | 27 - .../plasmac/metric_temporary_materials.ngc | 37 - nc_files/plasmac/metric_wrench.ngc | 37 - nc_files/plasmatest.ngc | 404 - nc_files/polar.ngc | 21 - nc_files/probe-hole.ngc | 73 - .../macros/probe_back_edge_angle.ngc | 116 - .../macros/probe_back_left_inside.ngc | 110 - .../macros/probe_back_left_outside.ngc | 106 - .../basic_probe/macros/probe_back_outside.ngc | 82 - .../macros/probe_back_right_inside.ngc | 110 - .../macros/probe_back_right_outside.ngc | 105 - .../macros/probe_cal_round_boss.ngc | 296 - .../macros/probe_cal_round_pocket.ngc | 204 - .../macros/probe_cal_square_boss.ngc | 204 - .../macros/probe_cal_square_pocket.ngc | 162 - .../probe_corner_x_minus_edge_angle.ngc | 155 - .../macros/probe_corner_x_plus_edge_angle.ngc | 155 - .../probe_corner_y_minus_edge_angle.ngc | 155 - .../macros/probe_corner_y_plus_edge_angle.ngc | 155 - .../macros/probe_front_edge_angle.ngc | 116 - .../macros/probe_front_left_inside.ngc | 110 - .../macros/probe_front_left_outside.ngc | 106 - .../macros/probe_front_outside.ngc | 82 - .../macros/probe_front_right_inside.ngc | 113 - .../macros/probe_front_right_outside.ngc | 106 - .../macros/probe_left_edge_angle.ngc | 116 - .../basic_probe/macros/probe_left_outside.ngc | 82 - .../basic_probe/macros/probe_rect_boss.ngc | 164 - .../basic_probe/macros/probe_rect_pocket.ngc | 135 - .../basic_probe/macros/probe_ridge_x.ngc | 114 - .../basic_probe/macros/probe_ridge_y.ngc | 115 - .../macros/probe_right_edge_angle.ngc | 116 - .../macros/probe_right_outside.ngc | 82 - .../basic_probe/macros/probe_round_boss.ngc | 188 - .../basic_probe/macros/probe_round_pocket.ngc | 147 - .../basic_probe/macros/probe_valley_x.ngc | 101 - .../basic_probe/macros/probe_valley_y.ngc | 99 - .../basic_probe/macros/probe_x_minus.ngc | 85 - .../basic_probe/macros/probe_x_minus_wco.ngc | 103 - .../probe/basic_probe/macros/probe_x_plus.ngc | 85 - .../basic_probe/macros/probe_x_plus_wco.ngc | 103 - .../basic_probe/macros/probe_y_minus.ngc | 85 - .../basic_probe/macros/probe_y_minus_wco.ngc | 103 - .../probe/basic_probe/macros/probe_y_plus.ngc | 85 - .../basic_probe/macros/probe_y_plus_wco.ngc | 103 - .../basic_probe/macros/probe_z_minus.ngc | 65 - .../basic_probe/macros/probe_z_minus_sub.ngc | 84 - .../basic_probe/macros/probe_z_minus_wco.ngc | 93 - .../basic_probe/macros/reset_all_data.ngc | 20 - .../probe/basic_probe/macros/tool_sensor.ngc | 35 - .../probe/basic_probe/macros/touch_plate.ngc | 31 - .../probe/basic_probe/macros/x_data_reset.ngc | 14 - .../probe/basic_probe/macros/y_data_reset.ngc | 15 - nc_files/probe/down.ngc | 31 - nc_files/probe/gtk_probe/gtk_probe_down.ngc | 23 - nc_files/probe/gtk_probe/gtk_probe_xminus.ngc | 18 - nc_files/probe/gtk_probe/gtk_probe_xplus.ngc | 18 - nc_files/probe/gtk_probe/gtk_probe_yminus.ngc | 17 - nc_files/probe/gtk_probe/gtk_probe_yplus.ngc | 17 - nc_files/probe/xminus.ngc | 23 - nc_files/probe/xplus.ngc | 23 - nc_files/probe/yminus.ngc | 23 - nc_files/probe/yplus.ngc | 23 - nc_files/remap-subroutines/change.ngc | 11 - nc_files/remap-subroutines/on_abort.ngc | 19 - nc_files/remap-subroutines/prepare.ngc | 10 - .../remap-subroutines/qt_auto_probe_tool.ngc | 238 - .../remap_lib/common_nc_subs/on_abort.ngc | 13 - .../remap_lib/common_nc_subs/reset_state.ngc | 25 - .../remap_lib/python-stdglue/python/remap.py | 17 - .../python-stdglue/python/stdglue.py | 1 - .../python-stdglue/python/toplevel.py | 18 - nc_files/remap_lib/python-stdglue/stdglue.py | 659 -- nc_files/retval.ngc | 29 - nc_files/roparams.ngc | 43 - nc_files/skeleton.ngc | 22 - nc_files/smartprobe.ngc | 54 - nc_files/spiral.ngc | 13 - nc_files/systems.ngc | 1003 --- nc_files/testg2.ngc | 13 - nc_files/threading.ngc | 76 - nc_files/tool-length-probe.ngc | 51 - nc_files/toplevel.ngc | 25 - nc_files/tort.ngc | 282 - nc_files/torus.png | Bin 20811 -> 0 bytes nc_files/touchoff.ngc | 18 - nc_files/useful-subroutines.ngc | 93 - nc_files/x-trim.ngc | 16 - 314 files changed, 2 insertions(+), 39805 deletions(-) delete mode 100644 arc_heading delete mode 100644 nc_files/3D_Chips.html delete mode 100644 nc_files/3D_Chips.ngc delete mode 100644 nc_files/3D_Chips.pdf delete mode 100644 nc_files/3dtest.ngc delete mode 100755 nc_files/M101 delete mode 100644 nc_files/M102.c delete mode 100644 nc_files/arcspiral.ngc delete mode 100644 nc_files/b-index.ngc delete mode 100644 nc_files/cds.ngc delete mode 100644 nc_files/comp-g1.ngc delete mode 100644 nc_files/comp.ngc delete mode 100644 nc_files/comp311.ngc delete mode 100644 nc_files/comp311_2.ngc delete mode 100644 nc_files/cone.ngc delete mode 100644 nc_files/daisy.ngc delete mode 100644 nc_files/factorial.ngc delete mode 100644 nc_files/filtertest-gui.py delete mode 100644 nc_files/filtertest.py delete mode 100644 nc_files/flowsnake.ngc delete mode 100644 nc_files/flowsnake.py delete mode 100644 nc_files/g20sub.ngc delete mode 100644 nc_files/g76.ngc delete mode 100644 nc_files/g881.ngc delete mode 100644 nc_files/g881min.ngc delete mode 100644 nc_files/g882.ngc delete mode 100644 nc_files/gcmc_lib/cpocket.gcmc delete mode 100644 nc_files/gcmc_lib/cpocket.png delete mode 100644 nc_files/gcmc_lib/drill.gcmc delete mode 100644 nc_files/gcmc_lib/drill.png delete mode 100644 nc_files/gcmc_lib/ensure_units.gcmc delete mode 100644 nc_files/gcmc_lib/involute-gear.gcmc delete mode 100644 nc_files/gcmc_lib/involute-gear.png delete mode 100644 nc_files/gcmc_lib/rectangle.gcmc delete mode 100644 nc_files/gcmc_lib/star.gcmc delete mode 100644 nc_files/gcmc_lib/star.png delete mode 100644 nc_files/gcmc_lib/trochoid-path.gcmc delete mode 100644 nc_files/gcmc_lib/trochoid-path.png delete mode 100644 nc_files/gcmc_lib/wheels.gcmc delete mode 100644 nc_files/gestg2.ngc delete mode 100644 nc_files/gladevcp_lib/oword.ngc delete mode 100644 nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc delete mode 100644 nc_files/gridprobe.ngc delete mode 100644 nc_files/hole-circle.ngc delete mode 100644 nc_files/holecircle.py delete mode 100644 nc_files/increment.ngc delete mode 100644 nc_files/involute.py delete mode 100644 nc_files/lathe-g76.ngc delete mode 100644 nc_files/lathe_g70_71_demo.ngc delete mode 100644 nc_files/lathe_g7x_face_boring.ngc delete mode 100644 nc_files/lathe_g7x_quadrants.ngc delete mode 100644 nc_files/lathe_pawn.ngc delete mode 100644 nc_files/lathecomp.ngc delete mode 100644 nc_files/m250.ngc delete mode 100644 nc_files/m61demo.ngc delete mode 100644 nc_files/m6demo.ngc delete mode 100644 nc_files/m6remap.ngc delete mode 100644 nc_files/m70m72-demo.ngc delete mode 100644 nc_files/m73-demo.ngc delete mode 100644 nc_files/m75.ngc delete mode 100644 nc_files/m76.ngc delete mode 100644 nc_files/macros/lathe/LatheMacro.svg delete mode 100644 nc_files/macros/lathe/boring.ngc delete mode 100644 nc_files/macros/lathe/chamfer.ngc delete mode 100644 nc_files/macros/lathe/drill.ngc delete mode 100644 nc_files/macros/lathe/facing.ngc delete mode 100644 nc_files/macros/lathe/go_to_position.ngc delete mode 100644 nc_files/macros/lathe/go_to_position.png delete mode 100644 nc_files/macros/lathe/go_to_position_data.txt delete mode 100644 nc_files/macros/lathe/probe-hole.ngc delete mode 100644 nc_files/macros/lathe/radius.ngc delete mode 100644 nc_files/macros/lathe/threading.ngc delete mode 100644 nc_files/macros/lathe/turning.ngc delete mode 100644 nc_files/macros/mill/go_to_home.ngc delete mode 100644 nc_files/macros/mill/go_to_home.svg delete mode 100644 nc_files/macros/mill/go_to_position.ngc delete mode 100644 nc_files/macros/mill/go_to_position.png delete mode 100644 nc_files/macros/mill/go_to_zero.ngc delete mode 100644 nc_files/macros/mill/go_to_zero.png delete mode 100644 nc_files/mmount.ngc delete mode 100644 nc_files/nestedcall.ngc delete mode 100644 nc_files/ngcgui_lib/arc1.ngc delete mode 100644 nc_files/ngcgui_lib/arc1.png delete mode 100644 nc_files/ngcgui_lib/arc2.ngc delete mode 100644 nc_files/ngcgui_lib/arc2.png delete mode 100644 nc_files/ngcgui_lib/backlash.ngc delete mode 100644 nc_files/ngcgui_lib/db25.ngc delete mode 100644 nc_files/ngcgui_lib/gosper.ngc delete mode 100644 nc_files/ngcgui_lib/gosper.png delete mode 100644 nc_files/ngcgui_lib/helix.ngc delete mode 100644 nc_files/ngcgui_lib/helix_rtheta.ngc delete mode 100644 nc_files/ngcgui_lib/hole_circle.ngc delete mode 100644 nc_files/ngcgui_lib/ihex.ngc delete mode 100644 nc_files/ngcgui_lib/iquad.ngc delete mode 100644 nc_files/ngcgui_lib/iquad.png delete mode 100644 nc_files/ngcgui_lib/lathe/g76base.ngc delete mode 100644 nc_files/ngcgui_lib/lathe/g76base.png delete mode 100644 nc_files/ngcgui_lib/lathe/g76diam.ngc delete mode 100644 nc_files/ngcgui_lib/lathe/g76diam.png delete mode 100644 nc_files/ngcgui_lib/lathe/id.ngc delete mode 100644 nc_files/ngcgui_lib/lathe/lathe_std.ngc delete mode 100644 nc_files/ngcgui_lib/lathe/od.ngc delete mode 100644 nc_files/ngcgui_lib/lathe/taper-od.ngc delete mode 100755 nc_files/ngcgui_lib/mfiles/M110 delete mode 100644 nc_files/ngcgui_lib/ohex.ngc delete mode 100644 nc_files/ngcgui_lib/oquad.ngc delete mode 100644 nc_files/ngcgui_lib/qpex.ngc delete mode 100644 nc_files/ngcgui_lib/qpex_mm.ngc delete mode 100644 nc_files/ngcgui_lib/qpocket.ngc delete mode 100644 nc_files/ngcgui_lib/qpocket.png delete mode 100644 nc_files/ngcgui_lib/rectangle_probe.ngc delete mode 100644 nc_files/ngcgui_lib/simp.ngc delete mode 100644 nc_files/ngcgui_lib/simp.png delete mode 100644 nc_files/ngcgui_lib/slot.ngc delete mode 100644 nc_files/ngcgui_lib/slot.png delete mode 100644 nc_files/ngcgui_lib/utilitysubs/bye.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/cross.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/dir.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/dot.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/entry.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/g59preview.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/in_std.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/line.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/loadtool.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/mm_std.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/move.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc delete mode 100644 nc_files/ngcgui_lib/utilitysubs/spin.ngc delete mode 100644 nc_files/ngcgui_lib/xyz.ngc delete mode 100644 nc_files/ngcgui_lib/xyz.png delete mode 100644 nc_files/nurbs/G5/Curva_Chitarra #1=3_G5.ngc delete mode 100644 nc_files/nurbs/G5/Curva_Delfino #1=1_G5.ngc delete mode 100644 nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.jpg delete mode 100644 nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc delete mode 100644 nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc delete mode 100644 nc_files/nurbs/G5/butterfly-xy.ngc delete mode 100644 nc_files/nurbs/G5/butterfly-yz.ngc delete mode 100644 nc_files/nurbs/G5/butterfly-zx.ngc delete mode 100644 nc_files/nurbs/G5/leto-xy.ngc delete mode 100644 nc_files/nurbs/G5/nurbs-xy.ngc delete mode 100644 nc_files/nurbs/G5/nurbs-yz.ngc delete mode 100644 nc_files/nurbs/G5/nurbs-zx.ngc delete mode 100644 nc_files/nurbs/G5/trident-xy-yz-zx.ngc delete mode 100644 nc_files/nurbs/G5/trident-xy.ngc delete mode 100644 nc_files/nurbs/G5/trident-yz.ngc delete mode 100644 nc_files/nurbs/G5/trident-zx.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=1.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=2.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=3.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Stella #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Curva_Stella #1=1.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Stella #1=2-xy.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Stella #1=2-yz.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc delete mode 100644 nc_files/nurbs/G6/Curva_Stella #1=3.ngc delete mode 100644 nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb delete mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=1.jpg delete mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=1.ngc delete mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=2.ngc delete mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=3.ngc delete mode 100644 nc_files/nurbs/G6/UNIPA #1=1.jpg delete mode 100644 nc_files/nurbs/G6/UNIPA #1=1.ngc delete mode 100644 nc_files/nurbs/G6/UNIPA #1=2.ngc delete mode 100644 nc_files/nurbs/G6/UNIPA #1=3.ngc delete mode 100644 nc_files/nurbs/G6/homer #1=1.jpg delete mode 100644 nc_files/nurbs/G6/homer #1=1.ngc delete mode 100644 nc_files/nurbs/G6/homer #1=2.ngc delete mode 100644 nc_files/nurbs/G6/homer #1=3.ngc delete mode 100644 nc_files/nurbs/G6/homer-16 #1=1-xy.ngc delete mode 100644 nc_files/nurbs/G6/homer-16 #1=1-yz.ngc delete mode 100644 nc_files/nurbs/G6/homer-16 #1=1-zx.ngc delete mode 100644 nc_files/nurbs/G6/read.me delete mode 100644 nc_files/offsets.ngc delete mode 100644 nc_files/orphans/README delete mode 100644 nc_files/plasmac/imperial_air_scribe.ngc delete mode 100644 nc_files/plasmac/imperial_circles.ngc delete mode 100644 nc_files/plasmac/imperial_ihs_skip_thc_off.ngc delete mode 100644 nc_files/plasmac/imperial_ihs_skip_thc_on.ngc delete mode 100644 nc_files/plasmac/imperial_line.ngc delete mode 100644 nc_files/plasmac/imperial_material_change.ngc delete mode 100644 nc_files/plasmac/imperial_ramp_pierce.ngc delete mode 100644 nc_files/plasmac/imperial_squares.ngc delete mode 100644 nc_files/plasmac/imperial_temporary_materials.ngc delete mode 100644 nc_files/plasmac/imperial_wrench.ngc delete mode 100755 nc_files/plasmac/m_files/M159 delete mode 100755 nc_files/plasmac/m_files/M190 delete mode 100644 nc_files/plasmac/metric_air_scribe.ngc delete mode 100644 nc_files/plasmac/metric_circles.ngc delete mode 100644 nc_files/plasmac/metric_ihs_skip_thc_off.ngc delete mode 100644 nc_files/plasmac/metric_ihs_skip_thc_on.ngc delete mode 100644 nc_files/plasmac/metric_line.ngc delete mode 100644 nc_files/plasmac/metric_material_change.ngc delete mode 100644 nc_files/plasmac/metric_pipe.ngc delete mode 100644 nc_files/plasmac/metric_ramp_pierce.ngc delete mode 100644 nc_files/plasmac/metric_squares.ngc delete mode 100644 nc_files/plasmac/metric_temporary_materials.ngc delete mode 100644 nc_files/plasmac/metric_wrench.ngc delete mode 100644 nc_files/plasmatest.ngc delete mode 100644 nc_files/polar.ngc delete mode 100644 nc_files/probe-hole.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_back_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_front_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_left_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_rect_boss.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_ridge_x.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_ridge_y.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_right_outside.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_round_boss.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_round_pocket.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_valley_x.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_valley_y.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_x_minus.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_x_plus.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_y_minus.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_y_plus.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_z_minus.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc delete mode 100644 nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc delete mode 100644 nc_files/probe/basic_probe/macros/reset_all_data.ngc delete mode 100644 nc_files/probe/basic_probe/macros/tool_sensor.ngc delete mode 100644 nc_files/probe/basic_probe/macros/touch_plate.ngc delete mode 100644 nc_files/probe/basic_probe/macros/x_data_reset.ngc delete mode 100644 nc_files/probe/basic_probe/macros/y_data_reset.ngc delete mode 100644 nc_files/probe/down.ngc delete mode 100644 nc_files/probe/gtk_probe/gtk_probe_down.ngc delete mode 100644 nc_files/probe/gtk_probe/gtk_probe_xminus.ngc delete mode 100644 nc_files/probe/gtk_probe/gtk_probe_xplus.ngc delete mode 100644 nc_files/probe/gtk_probe/gtk_probe_yminus.ngc delete mode 100644 nc_files/probe/gtk_probe/gtk_probe_yplus.ngc delete mode 100644 nc_files/probe/xminus.ngc delete mode 100644 nc_files/probe/xplus.ngc delete mode 100644 nc_files/probe/yminus.ngc delete mode 100644 nc_files/probe/yplus.ngc delete mode 100644 nc_files/remap-subroutines/change.ngc delete mode 100644 nc_files/remap-subroutines/on_abort.ngc delete mode 100644 nc_files/remap-subroutines/prepare.ngc delete mode 100644 nc_files/remap-subroutines/qt_auto_probe_tool.ngc delete mode 100644 nc_files/remap_lib/common_nc_subs/on_abort.ngc delete mode 100644 nc_files/remap_lib/common_nc_subs/reset_state.ngc delete mode 100644 nc_files/remap_lib/python-stdglue/python/remap.py delete mode 120000 nc_files/remap_lib/python-stdglue/python/stdglue.py delete mode 100644 nc_files/remap_lib/python-stdglue/python/toplevel.py delete mode 100644 nc_files/remap_lib/python-stdglue/stdglue.py delete mode 100644 nc_files/retval.ngc delete mode 100644 nc_files/roparams.ngc delete mode 100644 nc_files/skeleton.ngc delete mode 100644 nc_files/smartprobe.ngc delete mode 100644 nc_files/spiral.ngc delete mode 100644 nc_files/systems.ngc delete mode 100644 nc_files/testg2.ngc delete mode 100644 nc_files/threading.ngc delete mode 100644 nc_files/tool-length-probe.ngc delete mode 100644 nc_files/toplevel.ngc delete mode 100644 nc_files/tort.ngc delete mode 100644 nc_files/torus.png delete mode 100644 nc_files/touchoff.ngc delete mode 100644 nc_files/useful-subroutines.ngc delete mode 100644 nc_files/x-trim.ngc diff --git a/.gitignore b/.gitignore index 1c18d5d721a..c8dde82378f 100644 --- a/.gitignore +++ b/.gitignore @@ -57,4 +57,4 @@ position.txt *.*-stamp # Ignore VSCode settings .vscode/settings.json -docs/man/man9/output_buffer.9 + diff --git a/arc_heading b/arc_heading deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/docs/man/.gitignore b/docs/man/.gitignore index dbd3b0aa127..3352dea346b 100644 --- a/docs/man/.gitignore +++ b/docs/man/.gitignore @@ -463,6 +463,7 @@ man9/xor2.9 man9/xyzab_tdr_kins.9 man9/xyzacb_trsrn.9 man9/xyzbca_trsrn.9 +man9/output_buffer.9 # Ignore po4a-generated files for other languages ar/* bg/* diff --git a/nc_files/3D_Chips.html b/nc_files/3D_Chips.html deleted file mode 100644 index 9cd48e881e5..00000000000 --- a/nc_files/3D_Chips.html +++ /dev/null @@ -1,48 +0,0 @@ - - -

3D_Chips.ngc

-


-

This program is copyright of Rab Gordon, Gary Drew, and Paul Corner.

-

It is released here under a GPL without warranty to do with as you may.

-

With scales factors set at 1.0, the part is cut from a 100x100x50mm

-

block with the zero point at the center top of the block

-

and Cutter is assumed to be a 10mm ball nose

-

and feedrate is 450 mm/min

-


-

It uses the tool currently in the machine.

-

Last run we used tool 1:

-


- - - - - - - - - - - - - - - - -
-

Tool

-

Pocket

-

X

-

Y

-

Z

-

Diameter

-

Comment

-

1

-

1

-

0

-

0

-

.511"

-

.394"

-

10mm ball endmill

-

diff --git a/nc_files/3D_Chips.ngc b/nc_files/3D_Chips.ngc deleted file mode 100644 index 5e373f0fd7b..00000000000 --- a/nc_files/3D_Chips.ngc +++ /dev/null @@ -1,4711 +0,0 @@ -( This program is copyright of Rab Gordon, Gary Drew, and Paul Corner.) -( It is released here under a GPL without warranty to do with as you may.) -( With scales factors set at 1.0, the part is cut from a 100x100x50mm ) -( block with the zero point at the center top of the block ) -( and Cutter is assumed to be a 10mm ball nose ) -( and feedrate is 450 mm/min ) - -# = 1.0 -# = 1.0 -# = 1.0 -# = 10000.0 -# = 1 -# = 1600 - -N30 G21 -N40G90 -G64P.1 -N50T#M6 -N60M8 -N70S#M3 -N90G0Z[#*10.] -N80G0X[#*53.]Y[#*-56.128] -N100G1Z[#*-25.372]F[#*100] -N110G1Z[#*-27.372]F[#*225] -N120Y[#*-56.12]Z[#*-27.725] -N130Y[#*-56.105]Z[#*-27.894] -N140Y[#*-56.06]Z[#*-28.152] -N150Y[#*-56.051]Z[#*-28.184] -N160Y[#*-55.992]Z[#*-28.405] -N170Y[#*-55.902]Z[#*-28.651] -N180Y[#*-55.792]Z[#*-28.888] -N190Y[#*-55.661]Z[#*-29.115] -N200Y[#*-55.511]Z[#*-29.329] -N210Y[#*-55.343]Z[#*-29.53] -N220Y[#*-55.158]Z[#*-29.715] -N230Y[#*-54.957]Z[#*-29.883] -N240Y[#*-54.743]Z[#*-30.033] -N250Y[#*-54.516]Z[#*-30.164] -N260Y[#*-54.279]Z[#*-30.274] -N270Y[#*-54.033]Z[#*-30.364] -N280Y[#*-53.78]Z[#*-30.432] -N290Y[#*-53.522]Z[#*-30.477] -N300Y[#*-53.31]Z[#*-30.496] -N310Y[#*-53.262]Z[#*-30.5] -N320Y[#*-53.] -N330Y[#*-47.891]F[#*450] -N340Y[#*-19.891] -N350Y[#*-13.891] -N360Y[#*0.109] -N370Y[#*16.109] -N380Y[#*18.109] -N390Y[#*25.109] -N400Y[#*32.109] -N410Y[#*44.109] -N420Y[#*53.] -N430X[#*52.972]Y[#*53.293] -N440X[#*52.893]Y[#*53.547] -N450X[#*52.769]Y[#*53.762] -N460X[#*52.609]Y[#*53.937] -N470X[#*52.42]Y[#*54.074] -N480X[#*52.209]Y[#*54.172] -N490X[#*51.983]Y[#*54.23] -N500X[#*51.75]Y[#*54.25] -N510X[#*51.517]Y[#*54.23] -N520X[#*51.291]Y[#*54.172] -N530X[#*51.08]Y[#*54.074] -N540X[#*50.891]Y[#*53.937] -N550X[#*50.731]Y[#*53.762] -N560X[#*50.607]Y[#*53.547] -N570X[#*50.528]Y[#*53.293] -N580X[#*50.5]Y[#*53.] -N590Y[#*34.738] -N600Y[#*18.738] -N610Y[#*14.738] -N620Y[#*2.738] -N630Y[#*-1.262] -N640Y[#*-19.262] -N650Y[#*-29.262] -N660Y[#*-52.262] -N670Y[#*-53.] -N680X[#*50.472]Y[#*-53.293] -N690X[#*50.393]Y[#*-53.547] -N700X[#*50.269]Y[#*-53.762] -N710X[#*50.109]Y[#*-53.938] -N720X[#*49.92]Y[#*-54.074] -N730X[#*49.709]Y[#*-54.172] -N740X[#*49.483]Y[#*-54.23] -N750X[#*49.251]Y[#*-54.25] -N760X[#*49.017]Y[#*-54.23] -N770X[#*48.791]Y[#*-54.172] -N780X[#*48.58]Y[#*-54.074] -N790X[#*48.391]Y[#*-53.938] -N800X[#*48.231]Y[#*-53.762] -N810X[#*48.107]Y[#*-53.547] -N820X[#*48.028]Y[#*-53.293] -N830X[#*48.]Y[#*-53.] -N840Y[#*-47.225] -N850Y[#*-38.225] -N860Y[#*-36.225] -N870Y[#*-32.725] -N880Y[#*-32.288] -N890Y[#*-32.241] -N900Y[#*-32.225] -N910Y[#*-31.733] -N920Y[#*-31.725] -N930Y[#*-31.538] -N940Y[#*-31.452] -N950Y[#*-31.444]Z[#*-7.922] -N960Y[#*-31.436]Z[#*-7.835] -N970Y[#*-31.397]Z[#*-7.589] -N980Y[#*-31.35]Z[#*-7.4] -N990Y[#*-31.225]Z[#*-7.001] -N1000Y[#*-31.038]Z[#*-6.311] -N1010Y[#*-30.975]Z[#*-6.142] -N1020Y[#*-30.725]Z[#*-5.69] -N1030Y[#*-29.975]Z[#*-4.625] -N1040Y[#*-29.85]Z[#*-4.472] -N1050Y[#*-29.725]Z[#*-4.34] -N1060Y[#*-29.225]Z[#*-3.955] -N1070Y[#*-28.225]Z[#*-3.273] -N1080Y[#*-27.975]Z[#*-3.144] -N1090Y[#*-27.725]Z[#*-3.051] -N1100Y[#*-27.225]Z[#*-2.944] -N1110Y[#*-26.475]Z[#*-2.817] -N1120Y[#*-26.256]Z[#*-2.781] -N1130Y[#*-25.975]Z[#*-2.75] -N1140Y[#*-25.725]Z[#*-2.753] -N1150Y[#*-25.225]Z[#*-2.846] -N1160Y[#*-24.475]Z[#*-3.096] -N1170Y[#*-24.225]Z[#*-3.182] -N1180Y[#*-23.975]Z[#*-3.283] -N1190Y[#*-23.788]Z[#*-3.385] -N1200Y[#*-23.725]Z[#*-3.424] -N1210Y[#*-23.475]Z[#*-3.618] -N1220Y[#*-23.288]Z[#*-3.808] -N1230Y[#*-23.256]Z[#*-3.845] -N1240Y[#*-23.241]Z[#*-3.864] -N1250Y[#*-23.038]Z[#*-4.112] -N1260Y[#*-22.92]Z[#*-4.255] -N1270Y[#*-22.913]Z[#*-4.264] -N1280Y[#*-22.881]Z[#*-4.296] -N1290Y[#*-22.725]Z[#*-4.014] -N1300Y[#*-21.975]Z[#*-2.927] -N1310Y[#*-21.85]Z[#*-2.776] -N1320Y[#*-21.725]Z[#*-2.649] -N1330Y[#*-21.225]Z[#*-2.266] -N1340Y[#*-20.475]Z[#*-1.721] -N1350Y[#*-20.225]Z[#*-1.569] -N1360Y[#*-19.725]Z[#*-1.374] -N1370Y[#*-18.288]Z[#*-1.016] -N1380Y[#*-17.975]Z[#*-0.979] -N1390Y[#*-17.725] -N1400Y[#*-17.225]Z[#*-1.054] -N1410Y[#*-16.725]Z[#*-1.149] -N1420Y[#*-16.288]Z[#*-1.233] -N1430Y[#*-16.241]Z[#*-1.242] -N1440Y[#*-15.975]Z[#*-1.298] -N1450Y[#*-15.85]Z[#*-1.334] -N1460Y[#*-15.725]Z[#*-1.379] -N1470Y[#*-15.225]Z[#*-1.649] -N1480Y[#*-14.725]Z[#*-1.977] -N1490Y[#*-14.288]Z[#*-2.264] -N1500Y[#*-14.233]Z[#*-2.3] -N1510Y[#*-14.225]Z[#*-2.305] -N1520Y[#*-13.975]Z[#*-2.503] -N1530Y[#*-13.725]Z[#*-2.774] -N1540Y[#*-13.475]Z[#*-3.128] -N1550Y[#*-13.256]Z[#*-3.442] -N1560Y[#*-13.225]Z[#*-3.486] -N1570Y[#*-13.163]Z[#*-3.568] -N1580Y[#*-13.155]Z[#*-3.577] -N1590Y[#*-12.975]Z[#*-3.332] -N1600Y[#*-12.788]Z[#*-3.128] -N1610Y[#*-12.725]Z[#*-3.071] -N1620Y[#*-12.475]Z[#*-2.88] -N1630Y[#*-12.225]Z[#*-2.738] -N1640Y[#*-11.725]Z[#*-2.556] -N1650Y[#*-10.975]Z[#*-2.33] -N1660Y[#*-10.725]Z[#*-2.269] -N1670Y[#*-10.475]Z[#*-2.235] -N1680Y[#*-10.225]Z[#*-2.229] -N1690Y[#*-9.725]Z[#*-2.293] -N1700Y[#*-8.475]Z[#*-2.552] -N1710Y[#*-8.35]Z[#*-2.588] -N1720Y[#*-8.225]Z[#*-2.632] -N1730Y[#*-7.725]Z[#*-2.889] -N1740Y[#*-6.725]Z[#*-3.511] -N1750Y[#*-6.225]Z[#*-3.879] -N1760Y[#*-5.725]Z[#*-4.396] -N1770Y[#*-5.225]Z[#*-4.918] -N1780Y[#*-4.725]Z[#*-5.605] -N1790Y[#*-4.225]Z[#*-6.476] -N1800Y[#*-4.1]Z[#*-6.718] -N1810Y[#*-3.975]Z[#*-7.038] -N1820Y[#*-3.85]Z[#*-7.576] -N1830Y[#*-3.756]Z[#*-8.041] -N1840Y[#*-3.694]Z[#*-8.353] -N1850Y[#*-3.655]Z[#*-8.548] -N1860Y[#*-3.616]Z[#*-8.812] -N1870Y[#*-3.608]Z[#*-8.942] -N1880Y[#*-3.6]Z[#*-30.5] -N1890Y[#*2.525] -N1900Y[#*2.65] -N1910Y[#*3.025] -N1920Y[#*3.267] -N1930Y[#*3.275] -N1940Y[#*3.603] -N1950Y[#*3.611]Z[#*-8.879] -N1960Y[#*3.619]Z[#*-8.782] -N1970Y[#*3.658]Z[#*-8.534] -N1980Y[#*3.712]Z[#*-8.26] -N1990Y[#*3.744]Z[#*-8.104] -N2000Y[#*3.9]Z[#*-7.331] -N2010Y[#*3.962]Z[#*-7.079] -N2020Y[#*4.025]Z[#*-6.896] -N2030Y[#*4.275]Z[#*-6.392] -N2040Y[#*4.525]Z[#*-5.961] -N2050Y[#*4.775]Z[#*-5.516] -N2060Y[#*5.275]Z[#*-4.866] -N2070Y[#*6.025]Z[#*-4.083] -N2080Y[#*6.275]Z[#*-3.833] -N2090Y[#*6.775]Z[#*-3.48] -N2100Y[#*7.525]Z[#*-3.013] -N2110Y[#*7.767]Z[#*-2.863] -N2120Y[#*8.025]Z[#*-2.718] -N2130Y[#*8.275]Z[#*-2.614] -N2140Y[#*8.775]Z[#*-2.486] -N2150Y[#*9.744]Z[#*-2.289] -N2160Y[#*9.767]Z[#*-2.285] -N2170Y[#*10.025]Z[#*-2.242] -N2180Y[#*10.275]Z[#*-2.228] -N2190Y[#*10.525]Z[#*-2.24] -N2200Y[#*10.775]Z[#*-2.279] -N2210Y[#*11.525]Z[#*-2.494] -N2220Y[#*11.759]Z[#*-2.567] -N2230Y[#*12.025]Z[#*-2.654] -N2240Y[#*12.275]Z[#*-2.763] -N2250Y[#*12.525]Z[#*-2.913] -N2260Y[#*12.65]Z[#*-3.007] -N2270Y[#*12.712]Z[#*-3.059] -N2280Y[#*12.744]Z[#*-3.087] -N2290Y[#*12.962]Z[#*-3.316] -N2300Y[#*13.134]Z[#*-3.548] -N2310Y[#*13.15]Z[#*-3.57] -N2320Y[#*13.158]Z[#*-3.574] -N2330Y[#*13.212]Z[#*-3.503] -N2340Y[#*13.275]Z[#*-3.415] -N2350Y[#*13.744]Z[#*-2.751] -N2360Y[#*13.775]Z[#*-2.713] -N2370Y[#*14.275]Z[#*-2.272] -N2380Y[#*15.275]Z[#*-1.615] -N2390Y[#*15.525]Z[#*-1.469] -N2400Y[#*15.775]Z[#*-1.36] -N2410Y[#*16.275]Z[#*-1.235] -N2420Y[#*17.525]Z[#*-1.] -N2430Y[#*17.775]Z[#*-0.977] -N2440Y[#*18.275]Z[#*-1.014] -N2450Y[#*18.775]Z[#*-1.134] -N2460Y[#*19.775]Z[#*-1.387] -N2470Y[#*20.025]Z[#*-1.474] -N2480Y[#*20.275]Z[#*-1.596] -N2490Y[#*20.775]Z[#*-1.942] -N2500Y[#*21.525]Z[#*-2.482] -N2510Y[#*21.744]Z[#*-2.667] -N2520Y[#*21.775]Z[#*-2.697] -N2530Y[#*22.275]Z[#*-3.373] -N2540Y[#*22.744]Z[#*-4.044] -N2550Y[#*22.876]Z[#*-4.293] -N2560Y[#*22.884] -N2570Y[#*22.9]Z[#*-4.277] -N2580Y[#*23.025]Z[#*-4.128] -N2590Y[#*23.275]Z[#*-3.823] -N2600Y[#*23.525]Z[#*-3.574] -N2610Y[#*23.759]Z[#*-3.402] -N2620Y[#*24.275]Z[#*-3.165] -N2630Y[#*25.275]Z[#*-2.831] -N2640Y[#*25.525]Z[#*-2.776] -N2650Y[#*25.775]Z[#*-2.75] -N2660Y[#*26.275]Z[#*-2.784] -N2670Y[#*27.525]Z[#*-2.998] -N2680Y[#*27.775]Z[#*-3.067] -N2690Y[#*28.275]Z[#*-3.304] -N2700Y[#*29.525]Z[#*-4.166] -N2710Y[#*29.65]Z[#*-4.27] -N2720Y[#*29.775]Z[#*-4.391] -N2730Y[#*30.275]Z[#*-5.054] -N2740Y[#*30.775]Z[#*-5.763] -N2750Y[#*30.9]Z[#*-5.978] -N2760Y[#*31.025]Z[#*-6.272] -N2770Y[#*31.244]Z[#*-7.059] -N2780Y[#*31.275]Z[#*-7.158] -N2790Y[#*31.384]Z[#*-7.531] -N2800Y[#*31.431]Z[#*-7.793] -N2810Y[#*31.447]Z[#*-7.969] -N2820Y[#*31.455]Z[#*-30.5] -N2830Y[#*31.775] -N2840Y[#*34.775] -N2850Y[#*53.] -N2860X[#*47.972]Y[#*53.293] -N2870X[#*47.893]Y[#*53.547] -N2880X[#*47.769]Y[#*53.762] -N2890X[#*47.609]Y[#*53.937] -N2900X[#*47.42]Y[#*54.074] -N2910X[#*47.209]Y[#*54.172] -N2920X[#*46.983]Y[#*54.23] -N2930X[#*46.75]Y[#*54.25] -N2940X[#*46.517]Y[#*54.23] -N2950X[#*46.291]Y[#*54.172] -N2960X[#*46.08]Y[#*54.074] -N2970X[#*45.884]Y[#*53.93] -N2980X[#*45.731]Y[#*53.762] -N2990X[#*45.607]Y[#*53.547] -N3000X[#*45.528]Y[#*53.293] -N3010X[#*45.5]Y[#*53.] -N3020Y[#*32.517] -N3030Y[#*32.509] -N3040Y[#*32.501]Z[#*-7.93] -N3050Y[#*32.485]Z[#*-7.766] -N3060Y[#*32.431]Z[#*-7.458] -N3070Y[#*32.001]Z[#*-5.987] -N3080Y[#*31.751]Z[#*-5.391] -N3090Y[#*31.689]Z[#*-5.283] -N3100Y[#*31.501]Z[#*-5.011] -N3110Y[#*31.251]Z[#*-4.706] -N3120Y[#*31.235]Z[#*-4.687] -N3130Y[#*31.189]Z[#*-4.631] -N3140Y[#*30.751]Z[#*-4.103] -N3150Y[#*30.251]Z[#*-3.547] -N3160Y[#*30.001]Z[#*-3.343] -N3170Y[#*28.751]Z[#*-2.538] -N3180Y[#*28.251]Z[#*-2.264] -N3190Y[#*28.001]Z[#*-2.168] -N3200Y[#*27.751]Z[#*-2.096] -N3210Y[#*26.751]Z[#*-1.837] -N3220Y[#*26.251]Z[#*-1.725] -N3230Y[#*25.751]Z[#*-1.693] -N3240Y[#*25.251]Z[#*-1.746] -N3250Y[#*24.251]Z[#*-1.931] -N3260Y[#*23.751]Z[#*-2.057] -N3270Y[#*23.501]Z[#*-2.156] -N3280Y[#*23.189]Z[#*-2.319] -N3290Y[#*23.025]Z[#*-2.425] -N3300Y[#*23.009]Z[#*-2.427] -N3310Y[#*22.993]Z[#*-2.404] -N3320Y[#*22.97]Z[#*-2.37] -N3330Y[#*22.743]Z[#*-2.063] -N3340Y[#*22.735]Z[#*-2.054] -N3350Y[#*22.501]Z[#*-1.805] -N3360Y[#*22.251]Z[#*-1.594] -N3370Y[#*22.001]Z[#*-1.424] -N3380Y[#*21.751]Z[#*-1.275] -N3390Y[#*20.751]Z[#*-0.682] -N3400Y[#*20.251]Z[#*-0.451] -N3410Y[#*20.001]Z[#*-0.375] -N3420Y[#*19.751]Z[#*-0.322] -N3430Y[#*18.251]Z[#*-0.051] -N3440Y[#*17.751]Z[#*-0.026] -N3450Y[#*17.251]Z[#*-0.081] -N3460Y[#*16.251]Z[#*-0.227] -N3470Y[#*15.751]Z[#*-0.313] -N3480Y[#*15.22]Z[#*-0.497] -N3490Y[#*15.126]Z[#*-0.542] -N3500Y[#*13.751]Z[#*-1.298] -N3510Y[#*13.251]Z[#*-1.665] -N3520Y[#*13.009]Z[#*-1.911] -N3530Y[#*12.751]Z[#*-1.767] -N3540Y[#*12.501]Z[#*-1.658] -N3550Y[#*12.251]Z[#*-1.574] -N3560Y[#*11.751]Z[#*-1.474] -N3570Y[#*10.751]Z[#*-1.333] -N3580Y[#*10.251]Z[#*-1.311] -N3590Y[#*10.001]Z[#*-1.331] -N3600Y[#*9.751]Z[#*-1.373] -N3610Y[#*9.251]Z[#*-1.514] -N3620Y[#*8.251]Z[#*-1.821] -N3630Y[#*7.751]Z[#*-2.021] -N3640Y[#*7.251]Z[#*-2.319] -N3650Y[#*6.251]Z[#*-2.942] -N3660Y[#*5.751]Z[#*-3.33] -N3670Y[#*4.751]Z[#*-4.296] -N3680Y[#*4.251]Z[#*-4.867] -N3690Y[#*3.751]Z[#*-5.681] -N3700Y[#*3.501]Z[#*-6.095] -N3710Y[#*3.251]Z[#*-6.562] -N3720Y[#*3.189]Z[#*-6.718] -N3730Y[#*3.126]Z[#*-6.907] -N3740Y[#*3.001]Z[#*-7.366] -N3750Y[#*2.72]Z[#*-8.443] -N3760Y[#*2.673]Z[#*-8.731] -N3770Y[#*2.657]Z[#*-8.932] -N3780Y[#*2.65]Z[#*-30.5] -N3790Y[#*2.626] -N3800Y[#*2.485] -N3810Y[#*2.251] -N3820Y[#*-2.64] -N3830Y[#*-2.647] -N3840Y[#*-2.655]Z[#*-9.] -N3850Y[#*-2.663]Z[#*-8.838] -N3860Y[#*-2.686]Z[#*-8.628] -N3870Y[#*-2.757]Z[#*-8.289] -N3880Y[#*-2.999]Z[#*-7.374] -N3890Y[#*-3.249]Z[#*-6.567] -N3900Y[#*-3.374]Z[#*-6.311] -N3910Y[#*-3.78]Z[#*-5.634] -N3920Y[#*-4.249]Z[#*-4.87] -N3930Y[#*-4.765]Z[#*-4.283] -N3940Y[#*-4.874]Z[#*-4.178] -N3950Y[#*-5.749]Z[#*-3.332] -N3960Y[#*-6.249]Z[#*-2.943] -N3970Y[#*-7.249]Z[#*-2.32] -N3980Y[#*-7.749]Z[#*-2.022] -N3990Y[#*-8.249]Z[#*-1.822] -N4000Y[#*-9.249]Z[#*-1.515] -N4010Y[#*-9.749]Z[#*-1.374] -N4020Y[#*-10.249]Z[#*-1.311] -N4030Y[#*-10.749]Z[#*-1.333] -N4040Y[#*-11.749]Z[#*-1.473] -N4050Y[#*-12.249]Z[#*-1.573] -N4060Y[#*-12.757]Z[#*-1.77] -N4070Y[#*-12.999]Z[#*-1.905] -N4080Y[#*-13.007]Z[#*-1.91] -N4090Y[#*-13.046]Z[#*-1.871] -N4100Y[#*-13.249]Z[#*-1.667] -N4110Y[#*-13.499]Z[#*-1.463] -N4120Y[#*-13.749]Z[#*-1.3] -N4130Y[#*-14.749]Z[#*-0.747] -N4140Y[#*-15.249]Z[#*-0.484] -N4150Y[#*-15.749]Z[#*-0.314] -N4160Y[#*-15.811]Z[#*-0.299] -N4170Y[#*-15.874]Z[#*-0.286] -N4180Y[#*-16.749]Z[#*-0.155] -N4190Y[#*-17.249]Z[#*-0.082] -N4200Y[#*-17.749]Z[#*-0.027] -N4210Y[#*-17.999]Z[#*-0.028] -N4220Y[#*-18.249]Z[#*-0.05] -N4230Y[#*-19.749]Z[#*-0.321] -N4240Y[#*-20.249]Z[#*-0.451] -N4250Y[#*-20.499]Z[#*-0.552] -N4260Y[#*-20.749]Z[#*-0.681] -N4270Y[#*-21.749]Z[#*-1.274] -N4280Y[#*-22.249]Z[#*-1.592] -N4290Y[#*-22.499]Z[#*-1.803] -N4300Y[#*-22.749]Z[#*-2.07] -N4310Y[#*-23.015]Z[#*-2.432] -N4320Y[#*-23.069]Z[#*-2.395] -N4330Y[#*-23.265]Z[#*-2.275] -N4340Y[#*-23.499]Z[#*-2.157] -N4350Y[#*-23.78]Z[#*-2.047] -N4360Y[#*-23.999]Z[#*-1.984] -N4370Y[#*-24.749]Z[#*-1.838] -N4380Y[#*-25.249]Z[#*-1.746] -N4390Y[#*-25.749]Z[#*-1.693] -N4400Y[#*-25.999]Z[#*-1.698] -N4410Y[#*-26.249]Z[#*-1.724] -N4420Y[#*-26.749]Z[#*-1.836] -N4430Y[#*-27.749]Z[#*-2.096] -N4440Y[#*-28.249]Z[#*-2.263] -N4450Y[#*-28.499]Z[#*-2.385] -N4460Y[#*-28.749]Z[#*-2.537] -N4470Y[#*-29.749]Z[#*-3.176] -N4480Y[#*-30.249]Z[#*-3.545] -N4490Y[#*-30.499]Z[#*-3.8] -N4500Y[#*-31.249]Z[#*-4.704] -N4510Y[#*-31.749]Z[#*-5.387] -N4520Y[#*-31.874]Z[#*-5.639] -N4530Y[#*-31.999]Z[#*-5.979] -N4540Y[#*-32.249]Z[#*-6.819] -N4550Y[#*-32.436]Z[#*-7.482] -N4560Y[#*-32.491]Z[#*-7.814] -N4570Y[#*-32.507]Z[#*-8.05] -N4580Y[#*-32.515]Z[#*-30.5] -N4590Y[#*-32.538] -N4600Y[#*-32.811] -N4610Y[#*-32.999] -N4620Y[#*-37.749] -N4630Y[#*-49.749] -N4640Y[#*-52.992] -N4650Y[#*-53.] -N4660X[#*45.472]Y[#*-53.293] -N4670X[#*45.393]Y[#*-53.547] -N4680X[#*45.269]Y[#*-53.762] -N4690X[#*45.109]Y[#*-53.938] -N4700X[#*44.92]Y[#*-54.074] -N4710X[#*44.709]Y[#*-54.172] -N4720X[#*44.483]Y[#*-54.23] -N4730X[#*44.25]Y[#*-54.25] -N4740X[#*44.017]Y[#*-54.23] -N4750X[#*43.791]Y[#*-54.172] -N4760X[#*43.58]Y[#*-54.074] -N4770X[#*43.391]Y[#*-53.938] -N4780X[#*43.231]Y[#*-53.762] -N4790X[#*43.107]Y[#*-53.547] -N4800X[#*43.028]Y[#*-53.293] -N4810X[#*43.]Y[#*-53.] -N4820Y[#*-50.009] -N4830Y[#*-39.009] -N4840Y[#*-32.524] -N4850Y[#*-32.384] -N4860Y[#*-32.267] -N4870Y[#*-32.235] -N4880Y[#*-32.228]Z[#*-9.305] -N4890Y[#*-32.196]Z[#*-8.689] -N4900Y[#*-32.134]Z[#*-7.801] -N4910Y[#*-32.118]Z[#*-7.679] -N4920Y[#*-32.103]Z[#*-7.586] -N4930Y[#*-32.071]Z[#*-7.439] -N4940Y[#*-32.009]Z[#*-7.22] -N4950Y[#*-31.759]Z[#*-6.589] -N4960Y[#*-31.509]Z[#*-5.992] -N4970Y[#*-31.259]Z[#*-5.478] -N4980Y[#*-31.009]Z[#*-5.132] -N4990Y[#*-30.071]Z[#*-4.022] -N5000Y[#*-30.009]Z[#*-3.958] -N5010Y[#*-29.509]Z[#*-3.562] -N5020Y[#*-28.509]Z[#*-2.877] -N5030Y[#*-28.259]Z[#*-2.733] -N5040Y[#*-28.009]Z[#*-2.62] -N5050Y[#*-27.509]Z[#*-2.469] -N5060Y[#*-26.509]Z[#*-2.197] -N5070Y[#*-26.259]Z[#*-2.149] -N5080Y[#*-26.009]Z[#*-2.124] -N5090Y[#*-25.509]Z[#*-2.143] -N5100Y[#*-24.509]Z[#*-2.283] -N5110Y[#*-24.259]Z[#*-2.325] -N5120Y[#*-24.009]Z[#*-2.391] -N5130Y[#*-23.759]Z[#*-2.483] -N5140Y[#*-23.509]Z[#*-2.603] -N5150Y[#*-23.259]Z[#*-2.757] -N5160Y[#*-23.009]Z[#*-2.951] -N5170Y[#*-22.509]Z[#*-2.342] -N5180Y[#*-22.259]Z[#*-2.066] -N5190Y[#*-22.009]Z[#*-1.851] -N5200Y[#*-21.509]Z[#*-1.538] -N5210Y[#*-20.509]Z[#*-0.968] -N5220Y[#*-20.259]Z[#*-0.848] -N5230Y[#*-20.009]Z[#*-0.756] -N5240Y[#*-19.509]Z[#*-0.642] -N5250Y[#*-18.259]Z[#*-0.407] -N5260Y[#*-18.009]Z[#*-0.382] -N5270Y[#*-17.509]Z[#*-0.4] -N5280Y[#*-16.04]Z[#*-0.642] -N5290Y[#*-15.759]Z[#*-0.709] -N5300Y[#*-15.509]Z[#*-0.796] -N5310Y[#*-15.009]Z[#*-1.047] -N5320Y[#*-14.509]Z[#*-1.321] -N5330Y[#*-14.134]Z[#*-1.526] -N5340Y[#*-14.009]Z[#*-1.596] -N5350Y[#*-13.759]Z[#*-1.76] -N5360Y[#*-13.509]Z[#*-1.969] -N5370Y[#*-13.259]Z[#*-2.236] -N5380Y[#*-13.024]Z[#*-2.514] -N5390Y[#*-13.009]Z[#*-2.533] -N5400Y[#*-12.993]Z[#*-2.545] -N5410Y[#*-12.946]Z[#*-2.507] -N5420Y[#*-12.759]Z[#*-2.372] -N5430Y[#*-12.509]Z[#*-2.226] -N5440Y[#*-12.259]Z[#*-2.113] -N5450Y[#*-12.134]Z[#*-2.067] -N5460Y[#*-12.009]Z[#*-2.028] -N5470Y[#*-11.509]Z[#*-1.935] -N5480Y[#*-10.509]Z[#*-1.852] -N5490Y[#*-10.259]Z[#*-1.842] -N5500Y[#*-10.009]Z[#*-1.855] -N5510Y[#*-9.509]Z[#*-1.955] -N5520Y[#*-8.259]Z[#*-2.361] -N5530Y[#*-8.009]Z[#*-2.46] -N5540Y[#*-7.509]Z[#*-2.749] -N5550Y[#*-6.509]Z[#*-3.423] -N5560Y[#*-6.009]Z[#*-3.813] -N5570Y[#*-5.009]Z[#*-4.81] -N5580Y[#*-4.509]Z[#*-5.47] -N5590Y[#*-4.009]Z[#*-6.157] -N5600Y[#*-3.759]Z[#*-6.593] -N5610Y[#*-3.384]Z[#*-7.528] -N5620Y[#*-3.321]Z[#*-7.693] -N5630Y[#*-3.259]Z[#*-7.859] -N5640Y[#*-3.196]Z[#*-8.029] -N5650Y[#*-3.103]Z[#*-8.351] -N5660Y[#*-3.048]Z[#*-8.681] -N5670Y[#*-3.032]Z[#*-8.89] -N5680Y[#*-2.993]Z[#*-9.595] -N5690Y[#*-2.97]Z[#*-10.132] -N5700Y[#*-2.962]Z[#*-30.5] -N5710Y[#*-2.946] -N5720Y[#*-1.009] -N5730Y[#*-0.009] -N5740Y[#*2.866] -N5750Y[#*2.96] -N5760Y[#*2.968]Z[#*-10.186] -N5770Y[#*3.038]Z[#*-8.8] -N5780Y[#*3.061]Z[#*-8.573] -N5790Y[#*3.077]Z[#*-8.476] -N5800Y[#*3.116]Z[#*-8.294] -N5810Y[#*3.241]Z[#*-7.907] -N5820Y[#*3.491]Z[#*-7.251] -N5830Y[#*3.741]Z[#*-6.632] -N5840Y[#*3.991]Z[#*-6.184] -N5850Y[#*4.491]Z[#*-5.495] -N5860Y[#*4.991]Z[#*-4.83] -N5870Y[#*5.991]Z[#*-3.83] -N5880Y[#*6.491]Z[#*-3.435] -N5890Y[#*6.991]Z[#*-3.1] -N5900Y[#*7.741]Z[#*-2.599] -N5910Y[#*7.991]Z[#*-2.468] -N5920Y[#*8.491]Z[#*-2.285] -N5930Y[#*9.491]Z[#*-1.96] -N5940Y[#*9.741]Z[#*-1.896] -N5950Y[#*9.866]Z[#*-1.874] -N5960Y[#*9.991]Z[#*-1.857] -N5970Y[#*10.491]Z[#*-1.851] -N5980Y[#*11.491]Z[#*-1.934] -N5990Y[#*11.741]Z[#*-1.966] -N6000Y[#*11.929]Z[#*-2.007] -N6010Y[#*12.241]Z[#*-2.106] -N6020Y[#*12.491]Z[#*-2.217] -N6030Y[#*12.741]Z[#*-2.36] -N6040Y[#*12.999]Z[#*-2.545] -N6050Y[#*13.366]Z[#*-2.113] -N6060Y[#*13.491]Z[#*-1.986] -N6070Y[#*13.991]Z[#*-1.606] -N6080Y[#*15.241]Z[#*-0.92] -N6090Y[#*15.491]Z[#*-0.803] -N6100Y[#*15.991]Z[#*-0.652] -N6110Y[#*17.491]Z[#*-0.402] -N6120Y[#*17.741]Z[#*-0.38] -N6130Y[#*17.991] -N6140Y[#*18.491]Z[#*-0.448] -N6150Y[#*19.866]Z[#*-0.715] -N6160Y[#*19.991]Z[#*-0.75] -N6170Y[#*20.491]Z[#*-0.959] -N6180Y[#*21.741]Z[#*-1.67] -N6190Y[#*21.929]Z[#*-1.792] -N6200Y[#*21.991]Z[#*-1.837] -N6210Y[#*22.491]Z[#*-2.319] -N6220Y[#*22.976]Z[#*-2.912] -N6230Y[#*22.991]Z[#*-2.931] -N6240Y[#*23.007]Z[#*-2.95] -N6250Y[#*23.241]Z[#*-2.769] -N6260Y[#*23.491]Z[#*-2.613] -N6270Y[#*23.741]Z[#*-2.49] -N6280Y[#*23.991]Z[#*-2.397] -N6290Y[#*24.491]Z[#*-2.286] -N6300Y[#*24.991]Z[#*-2.215] -N6310Y[#*25.491]Z[#*-2.145] -N6320Y[#*25.741]Z[#*-2.123] -N6330Y[#*25.991] -N6340Y[#*26.491]Z[#*-2.193] -N6350Y[#*27.866]Z[#*-2.569] -N6360Y[#*27.976]Z[#*-2.608] -N6370Y[#*28.491]Z[#*-2.866] -N6380Y[#*29.491]Z[#*-3.55] -N6390Y[#*29.741]Z[#*-3.725] -N6400Y[#*29.991]Z[#*-3.94] -N6410Y[#*30.741]Z[#*-4.813] -N6420Y[#*30.866]Z[#*-4.962] -N6430Y[#*30.991]Z[#*-5.111] -N6440Y[#*31.491]Z[#*-5.95] -N6450Y[#*31.991]Z[#*-7.168] -N6460Y[#*32.085]Z[#*-7.498] -N6470Y[#*32.132]Z[#*-7.782] -N6480Y[#*32.147]Z[#*-7.96] -N6490Y[#*32.218]Z[#*-9.089] -N6500Y[#*32.226]Z[#*-9.257] -N6510Y[#*32.233]Z[#*-30.5] -N6520Y[#*52.999] -N6530X[#*42.972]Y[#*53.292] -N6540X[#*42.893]Y[#*53.546] -N6550X[#*42.769]Y[#*53.761] -N6560X[#*42.609]Y[#*53.937] -N6570X[#*42.42]Y[#*54.074] -N6580X[#*42.209]Y[#*54.171] -N6590X[#*41.983]Y[#*54.23] -N6600X[#*41.75]Y[#*54.25] -N6610X[#*41.517]Y[#*54.23] -N6620X[#*41.291]Y[#*54.172] -N6630X[#*41.08]Y[#*54.074] -N6640X[#*40.891]Y[#*53.937] -N6650X[#*40.731]Y[#*53.762] -N6660X[#*40.607]Y[#*53.547] -N6670X[#*40.528]Y[#*53.293] -N6680X[#*40.5]Y[#*53.] -N6690Y[#*52.961] -N6700Y[#*34.961] -N6710Y[#*30.54] -N6720Y[#*30.532]Z[#*-9.059] -N6730Y[#*30.524]Z[#*-8.985] -N6740Y[#*30.485]Z[#*-8.772] -N6750Y[#*30.399]Z[#*-8.503] -N6760Y[#*30.211]Z[#*-8.05] -N6770Y[#*29.711]Z[#*-6.883] -N6780Y[#*29.461]Z[#*-6.379] -N6790Y[#*29.336]Z[#*-6.201] -N6800Y[#*29.211]Z[#*-6.058] -N6810Y[#*29.086]Z[#*-5.94] -N6820Y[#*28.93]Z[#*-5.809] -N6830Y[#*28.899]Z[#*-5.784] -N6840Y[#*27.961]Z[#*-5.023] -N6850Y[#*27.461]Z[#*-4.725] -N6860Y[#*27.336]Z[#*-4.68] -N6870Y[#*26.711]Z[#*-4.523] -N6880Y[#*25.961]Z[#*-4.353] -N6890Y[#*25.711]Z[#*-4.334] -N6900Y[#*25.461]Z[#*-4.351] -N6910Y[#*25.336]Z[#*-4.372] -N6920Y[#*24.461]Z[#*-4.589] -N6930Y[#*23.961]Z[#*-4.787] -N6940Y[#*23.711]Z[#*-4.913] -N6950Y[#*23.461]Z[#*-5.061] -N6960Y[#*22.961]Z[#*-5.414] -N6970Y[#*22.782]Z[#*-5.553] -N6980Y[#*22.704]Z[#*-5.427] -N6990Y[#*22.68]Z[#*-5.389] -N7000Y[#*22.649]Z[#*-5.339] -N7010Y[#*22.446]Z[#*-5.064] -N7020Y[#*22.336]Z[#*-4.929] -N7030Y[#*21.961]Z[#*-4.5] -N7040Y[#*21.461]Z[#*-4.013] -N7050Y[#*20.961]Z[#*-3.61] -N7060Y[#*20.461]Z[#*-3.273] -N7070Y[#*19.961]Z[#*-2.95] -N7080Y[#*19.711]Z[#*-2.846] -N7090Y[#*18.461]Z[#*-2.512] -N7100Y[#*17.961]Z[#*-2.415] -N7110Y[#*17.836]Z[#*-2.412] -N7120Y[#*17.711]Z[#*-2.419] -N7130Y[#*17.461]Z[#*-2.463] -N7140Y[#*16.961]Z[#*-2.59] -N7150Y[#*15.961]Z[#*-2.87] -N7160Y[#*15.711]Z[#*-2.981] -N7170Y[#*15.461]Z[#*-3.13] -N7180Y[#*14.961]Z[#*-3.478] -N7190Y[#*14.461]Z[#*-3.875] -N7200Y[#*13.961]Z[#*-4.334] -N7210Y[#*13.461]Z[#*-4.858] -N7220Y[#*13.211]Z[#*-5.161] -N7230Y[#*13.047]Z[#*-5.394] -N7240Y[#*12.993]Z[#*-5.342] -N7250Y[#*12.711]Z[#*-5.115] -N7260Y[#*12.461]Z[#*-4.943] -N7270Y[#*11.961]Z[#*-4.68] -N7280Y[#*11.954]Z[#*-4.676] -N7290Y[#*11.899]Z[#*-4.655] -N7300Y[#*11.461]Z[#*-4.484] -N7310Y[#*10.961]Z[#*-4.323] -N7320Y[#*10.461]Z[#*-4.223] -N7330Y[#*10.211]Z[#*-4.211] -N7340Y[#*9.93]Z[#*-4.24] -N7350Y[#*8.961]Z[#*-4.501] -N7360Y[#*8.461]Z[#*-4.641] -N7370Y[#*8.211]Z[#*-4.743] -N7380Y[#*7.954]Z[#*-4.896] -N7390Y[#*7.461]Z[#*-5.277] -N7400Y[#*6.961]Z[#*-5.688] -N7410Y[#*6.461]Z[#*-6.205] -N7420Y[#*6.211]Z[#*-6.573] -N7430Y[#*5.461]Z[#*-7.753] -N7440Y[#*5.211]Z[#*-8.345] -N7450Y[#*4.961]Z[#*-9.178] -N7460Y[#*4.875]Z[#*-9.565] -N7470Y[#*4.844]Z[#*-9.725] -N7480Y[#*4.805]Z[#*-10.002] -N7490Y[#*4.797]Z[#*-26.444] -N7500Y[#*4.782]Z[#*-26.437] -N7510Y[#*4.696]Z[#*-26.399] -N7520Y[#*4.649]Z[#*-26.379] -N7530Y[#*4.586]Z[#*-26.352] -N7540Y[#*4.461]Z[#*-26.298] -N7550Y[#*4.399]Z[#*-26.27] -N7560Y[#*3.961]Z[#*-26.084] -N7570Y[#*3.836]Z[#*-26.031] -N7580Y[#*3.461]Z[#*-25.887] -N7590Y[#*2.961]Z[#*-25.732] -N7600Y[#*1.961]Z[#*-25.509] -N7610Y[#*1.461]Z[#*-25.455] -N7620Y[#*-0.039]Z[#*-25.355] -N7630Y[#*-1.539]Z[#*-25.46] -N7640Y[#*-2.039]Z[#*-25.526] -N7650Y[#*-2.539]Z[#*-25.635] -N7660Y[#*-3.039]Z[#*-25.756] -N7670Y[#*-3.539]Z[#*-25.911] -N7680Y[#*-4.039]Z[#*-26.117] -N7690Y[#*-4.796]Z[#*-26.443] -N7700Y[#*-4.804]Z[#*-10.] -N7710Y[#*-4.843]Z[#*-9.725] -N7720Y[#*-4.89]Z[#*-9.49] -N7730Y[#*-4.921]Z[#*-9.346] -N7740Y[#*-4.976]Z[#*-9.115] -N7750Y[#*-5.101]Z[#*-8.668] -N7760Y[#*-5.289]Z[#*-8.123] -N7770Y[#*-5.539]Z[#*-7.62] -N7780Y[#*-5.601]Z[#*-7.521] -N7790Y[#*-6.039]Z[#*-6.842] -N7800Y[#*-6.539]Z[#*-6.106] -N7810Y[#*-6.789]Z[#*-5.838] -N7820Y[#*-7.039]Z[#*-5.623] -N7830Y[#*-7.539]Z[#*-5.216] -N7840Y[#*-8.039]Z[#*-4.839] -N7850Y[#*-8.164]Z[#*-4.767] -N7860Y[#*-8.289]Z[#*-4.707] -N7870Y[#*-8.539]Z[#*-4.617] -N7880Y[#*-9.539]Z[#*-4.342] -N7890Y[#*-10.039]Z[#*-4.223] -N7900Y[#*-10.289]Z[#*-4.211] -N7910Y[#*-10.539]Z[#*-4.234] -N7920Y[#*-10.789]Z[#*-4.282] -N7930Y[#*-11.039]Z[#*-4.343] -N7940Y[#*-11.289]Z[#*-4.42] -N7950Y[#*-12.039]Z[#*-4.713] -N7960Y[#*-12.539]Z[#*-4.994] -N7970Y[#*-13.046]Z[#*-5.393] -N7980Y[#*-13.289]Z[#*-5.06] -N7990Y[#*-13.539]Z[#*-4.771] -N8000Y[#*-14.039]Z[#*-4.262] -N8010Y[#*-14.539]Z[#*-3.805] -N8020Y[#*-15.039]Z[#*-3.426] -N8030Y[#*-15.539]Z[#*-3.08] -N8040Y[#*-16.039]Z[#*-2.843] -N8050Y[#*-16.101]Z[#*-2.824] -N8060Y[#*-16.539]Z[#*-2.705] -N8070Y[#*-17.039]Z[#*-2.569] -N8080Y[#*-17.539]Z[#*-2.445] -N8090Y[#*-17.789]Z[#*-2.414] -N8100Y[#*-18.039]Z[#*-2.422] -N8110Y[#*-18.289]Z[#*-2.47] -N8120Y[#*-19.539]Z[#*-2.795] -N8130Y[#*-20.039]Z[#*-2.99] -N8140Y[#*-20.289]Z[#*-3.145] -N8150Y[#*-20.539]Z[#*-3.33] -N8160Y[#*-21.039]Z[#*-3.665] -N8170Y[#*-21.539]Z[#*-4.083] -N8180Y[#*-22.039]Z[#*-4.584] -N8190Y[#*-22.539]Z[#*-5.181] -N8200Y[#*-22.664]Z[#*-5.363] -N8210Y[#*-22.773]Z[#*-5.539] -N8220Y[#*-22.789]Z[#*-5.553] -N8230Y[#*-22.804]Z[#*-5.54] -N8240Y[#*-22.914]Z[#*-5.452] -N8250Y[#*-23.164]Z[#*-5.263] -N8260Y[#*-23.539]Z[#*-5.013] -N8270Y[#*-24.039]Z[#*-4.753] -N8280Y[#*-24.289]Z[#*-4.649] -N8290Y[#*-24.539]Z[#*-4.565] -N8300Y[#*-25.039]Z[#*-4.443] -N8310Y[#*-25.539]Z[#*-4.342] -N8320Y[#*-25.789]Z[#*-4.336] -N8330Y[#*-26.101]Z[#*-4.379] -N8340Y[#*-26.539]Z[#*-4.481] -N8350Y[#*-27.039]Z[#*-4.603] -N8360Y[#*-27.539]Z[#*-4.758] -N8370Y[#*-27.664]Z[#*-4.821] -N8380Y[#*-27.789]Z[#*-4.897] -N8390Y[#*-28.039]Z[#*-5.086] -N8400Y[#*-28.046]Z[#*-5.092] -N8410Y[#*-28.539]Z[#*-5.492] -N8420Y[#*-29.039]Z[#*-5.899] -N8430Y[#*-29.289]Z[#*-6.143] -N8440Y[#*-29.414]Z[#*-6.306] -N8450Y[#*-29.539]Z[#*-6.515] -N8460Y[#*-29.601]Z[#*-6.638] -N8470Y[#*-30.289]Z[#*-8.23] -N8480Y[#*-30.414]Z[#*-8.543] -N8490Y[#*-30.492]Z[#*-8.801] -N8500Y[#*-30.531]Z[#*-9.049] -N8510Y[#*-30.539]Z[#*-30.5] -N8520Y[#*-30.546] -N8530Y[#*-31.039] -N8540Y[#*-31.101] -N8550Y[#*-33.039] -N8560Y[#*-39.039] -N8570Y[#*-46.039] -N8580Y[#*-50.039] -N8590Y[#*-53.] -N8600X[#*40.472]Y[#*-53.293] -N8610X[#*40.393]Y[#*-53.547] -N8620X[#*40.269]Y[#*-53.762] -N8630X[#*40.109]Y[#*-53.938] -N8640X[#*39.92]Y[#*-54.074] -N8650X[#*39.709]Y[#*-54.172] -N8660X[#*39.483]Y[#*-54.23] -N8670X[#*39.25]Y[#*-54.25] -N8680X[#*39.017]Y[#*-54.23] -N8690X[#*38.791]Y[#*-54.172] -N8700X[#*38.58]Y[#*-54.074] -N8710X[#*38.391]Y[#*-53.938] -N8720X[#*38.231]Y[#*-53.762] -N8730X[#*38.107]Y[#*-53.547] -N8740X[#*38.028]Y[#*-53.293] -N8750X[#*38.]Y[#*-53.] -N8760Y[#*-51.974] -N8770Y[#*-45.974] -N8780Y[#*-31.974] -N8790Y[#*-29.974] -N8800Y[#*-23.349] -N8810Y[#*-23.099] -N8820Y[#*-23.052] -N8830Y[#*-23.037] -N8840Y[#*-23.021] -N8850Y[#*-22.982] -N8860Y[#*-22.974]Z[#*-27.943] -N8870Y[#*-22.951]Z[#*-27.17] -N8880Y[#*-22.943]Z[#*-26.419] -N8890Y[#*-22.912]Z[#*-26.088] -N8900Y[#*-22.888]Z[#*-25.919] -N8910Y[#*-22.88]Z[#*-25.863] -N8920Y[#*-22.833]Z[#*-25.591] -N8930Y[#*-22.787]Z[#*-25.383] -N8940Y[#*-22.724]Z[#*-25.157] -N8950Y[#*-22.474]Z[#*-24.512] -N8960Y[#*-22.099]Z[#*-23.723] -N8970Y[#*-21.974]Z[#*-23.481] -N8980Y[#*-21.724]Z[#*-23.112] -N8990Y[#*-21.474]Z[#*-22.836] -N9000Y[#*-20.974]Z[#*-22.446] -N9010Y[#*-19.474]Z[#*-21.501] -N9020Y[#*-19.224]Z[#*-21.374] -N9030Y[#*-18.974]Z[#*-21.276] -N9040Y[#*-18.474]Z[#*-21.155] -N9050Y[#*-17.474]Z[#*-20.992] -N9060Y[#*-16.974]Z[#*-20.902] -N9070Y[#*-16.474]Z[#*-20.833] -N9080Y[#*-15.974]Z[#*-20.845] -N9090Y[#*-14.974]Z[#*-20.989] -N9100Y[#*-14.037]Z[#*-21.108] -N9110Y[#*-13.724]Z[#*-21.185] -N9120Y[#*-13.474]Z[#*-21.275] -N9130Y[#*-12.974]Z[#*-21.535] -N9140Y[#*-11.724]Z[#*-22.283] -N9150Y[#*-11.474]Z[#*-22.457] -N9160Y[#*-11.224]Z[#*-22.676] -N9170Y[#*-11.099]Z[#*-22.808] -N9180Y[#*-10.974]Z[#*-22.959] -N9190Y[#*-10.724]Z[#*-23.343] -N9200Y[#*-10.474]Z[#*-23.888] -N9210Y[#*-10.224]Z[#*-24.457] -N9220Y[#*-10.099]Z[#*-24.782] -N9230Y[#*-9.99]Z[#*-25.161] -N9240Y[#*-9.919]Z[#*-25.513] -N9250Y[#*-9.865]Z[#*-25.981] -N9260Y[#*-9.857]Z[#*-27.866] -N9270Y[#*-9.724]Z[#*-27.561] -N9280Y[#*-9.474]Z[#*-27.143] -N9290Y[#*-8.974]Z[#*-26.388] -N9300Y[#*-8.474]Z[#*-25.75] -N9310Y[#*-7.974]Z[#*-25.201] -N9320Y[#*-7.474]Z[#*-24.713] -N9330Y[#*-6.474]Z[#*-23.889] -N9340Y[#*-5.474]Z[#*-23.25] -N9350Y[#*-4.974]Z[#*-22.983] -N9360Y[#*-3.974]Z[#*-22.519] -N9370Y[#*-3.474]Z[#*-22.358] -N9380Y[#*-2.974]Z[#*-22.195] -N9390Y[#*-2.474]Z[#*-22.063] -N9400Y[#*-1.974]Z[#*-21.968] -N9410Y[#*-0.974]Z[#*-21.835] -N9420Y[#*0.026]Z[#*-21.781] -N9430Y[#*1.026]Z[#*-21.838] -N9440Y[#*1.526]Z[#*-21.888] -N9450Y[#*2.026]Z[#*-21.978] -N9460Y[#*3.026]Z[#*-22.213] -N9470Y[#*4.026]Z[#*-22.539] -N9480Y[#*5.026]Z[#*-23.008] -N9490Y[#*5.526]Z[#*-23.283] -N9500Y[#*6.026]Z[#*-23.601] -N9510Y[#*6.526]Z[#*-23.926] -N9520Y[#*7.526]Z[#*-24.753] -N9530Y[#*8.026]Z[#*-25.256] -N9540Y[#*8.526]Z[#*-25.804] -N9550Y[#*8.776]Z[#*-26.093] -N9560Y[#*8.901]Z[#*-26.274] -N9570Y[#*9.01]Z[#*-26.437] -N9580Y[#*9.276]Z[#*-26.832] -N9590Y[#*9.401]Z[#*-27.022] -N9600Y[#*9.526]Z[#*-27.213] -N9610Y[#*9.651]Z[#*-27.411] -N9620Y[#*9.713]Z[#*-27.527] -N9630Y[#*9.768]Z[#*-27.644] -N9640Y[#*9.823]Z[#*-27.771] -N9650Y[#*9.831]Z[#*-26.079] -N9660Y[#*9.838]Z[#*-25.933] -N9670Y[#*9.87]Z[#*-25.651] -N9680Y[#*9.924]Z[#*-25.326] -N9690Y[#*9.963]Z[#*-25.153] -N9700Y[#*10.026]Z[#*-24.925] -N9710Y[#*10.276]Z[#*-24.275] -N9720Y[#*10.526]Z[#*-23.694] -N9730Y[#*10.776]Z[#*-23.195] -N9740Y[#*10.901]Z[#*-23.011] -N9750Y[#*11.026]Z[#*-22.853] -N9760Y[#*11.276]Z[#*-22.595] -N9770Y[#*11.526]Z[#*-22.393] -N9780Y[#*12.526]Z[#*-21.779] -N9790Y[#*13.026]Z[#*-21.486] -N9800Y[#*13.276]Z[#*-21.349] -N9810Y[#*13.526]Z[#*-21.242] -N9820Y[#*14.026]Z[#*-21.105] -N9830Y[#*15.026]Z[#*-20.977] -N9840Y[#*16.026]Z[#*-20.838] -N9850Y[#*16.526] -N9860Y[#*18.526]Z[#*-21.166] -N9870Y[#*18.776]Z[#*-21.221] -N9880Y[#*18.901]Z[#*-21.257] -N9890Y[#*19.026]Z[#*-21.3] -N9900Y[#*19.526]Z[#*-21.54] -N9910Y[#*20.526]Z[#*-22.172] -N9920Y[#*20.963]Z[#*-22.444] -N9930Y[#*21.276]Z[#*-22.666] -N9940Y[#*21.526]Z[#*-22.895] -N9950Y[#*21.776]Z[#*-23.19] -N9960Y[#*21.963]Z[#*-23.476] -N9970Y[#*22.026]Z[#*-23.59] -N9980Y[#*22.276]Z[#*-24.108] -N9990Y[#*22.526]Z[#*-24.634] -N1Y[#*22.651]Z[#*-24.947] -N11Y[#*22.776]Z[#*-25.357] -N21Y[#*22.862]Z[#*-25.768] -N31Y[#*22.893]Z[#*-25.982] -N41Y[#*22.932]Z[#*-26.301] -N51Y[#*22.94]Z[#*-26.443] -N61Y[#*22.948]Z[#*-27.152] -N71Y[#*22.971]Z[#*-27.867] -N81Y[#*22.979]Z[#*-28.108] -N91Y[#*22.987]Z[#*-30.5] -N101Y[#*38.026] -N111Y[#*53.] -N121X[#*37.972]Y[#*53.293] -N131X[#*37.893]Y[#*53.547] -N141X[#*37.769]Y[#*53.762] -N151X[#*37.609]Y[#*53.937] -N161X[#*37.42]Y[#*54.074] -N171X[#*37.209]Y[#*54.172] -N181X[#*36.983]Y[#*54.23] -N191X[#*36.75]Y[#*54.25] -N201X[#*36.517]Y[#*54.23] -N211X[#*36.291]Y[#*54.172] -N221X[#*36.08]Y[#*54.074] -N231X[#*35.891]Y[#*53.937] -N241X[#*35.731]Y[#*53.762] -N251X[#*35.607]Y[#*53.547] -N261X[#*35.528]Y[#*53.293] -N271X[#*35.5]Y[#*53.] -N281Y[#*48.823] -N291Y[#*45.823] -N301Y[#*40.823] -N311Y[#*35.823] -N321Y[#*23.323] -N331Y[#*23.261] -N341Y[#*23.222] -N351Y[#*23.214]Z[#*-28.173] -N361Y[#*23.191]Z[#*-27.925] -N371Y[#*23.066]Z[#*-26.499] -N381Y[#*23.058]Z[#*-26.418] -N391Y[#*23.042]Z[#*-26.298] -N401Y[#*22.98]Z[#*-25.992] -N411Y[#*22.886]Z[#*-25.695] -N421Y[#*22.761]Z[#*-25.406] -N431Y[#*22.573]Z[#*-25.021] -N441Y[#*22.073]Z[#*-23.993] -N451Y[#*21.823]Z[#*-23.584] -N461Y[#*21.761]Z[#*-23.501] -N471Y[#*21.573]Z[#*-23.283] -N481Y[#*21.323]Z[#*-23.047] -N491Y[#*21.073]Z[#*-22.856] -N501Y[#*19.823]Z[#*-22.004] -N511Y[#*19.323]Z[#*-21.724] -N521Y[#*19.073]Z[#*-21.626] -N531Y[#*18.761]Z[#*-21.538] -N541Y[#*17.823]Z[#*-21.326] -N551Y[#*17.323]Z[#*-21.199] -N561Y[#*16.823]Z[#*-21.103] -N571Y[#*16.573]Z[#*-21.087] -N581Y[#*15.823]Z[#*-21.091] -N591Y[#*14.823]Z[#*-21.159] -N601Y[#*14.323]Z[#*-21.209] -N611Y[#*13.823]Z[#*-21.34] -N621Y[#*13.573]Z[#*-21.443] -N631Y[#*13.323]Z[#*-21.57] -N641Y[#*12.823]Z[#*-21.833] -N651Y[#*12.323]Z[#*-22.043] -N661Y[#*11.823]Z[#*-22.304] -N671Y[#*11.573]Z[#*-22.486] -N681Y[#*11.323]Z[#*-22.712] -N691Y[#*11.073]Z[#*-22.999] -N701Y[#*10.823]Z[#*-23.385] -N711Y[#*10.698]Z[#*-23.639] -N721Y[#*10.433]Z[#*-24.211] -N731Y[#*10.425]Z[#*-24.214] -N741Y[#*10.308]Z[#*-24.109] -N751Y[#*10.261]Z[#*-24.067] -N761Y[#*10.073]Z[#*-23.912] -N771Y[#*9.698]Z[#*-23.614] -N781Y[#*9.323]Z[#*-23.287] -N791Y[#*8.823]Z[#*-22.866] -N801Y[#*7.823]Z[#*-21.995] -N811Y[#*7.323]Z[#*-21.605] -N821Y[#*6.323]Z[#*-20.944] -N831Y[#*5.823]Z[#*-20.661] -N841Y[#*4.823]Z[#*-20.177] -N851Y[#*4.323]Z[#*-19.991] -N861Y[#*3.823]Z[#*-19.822] -N871Y[#*2.823]Z[#*-19.534] -N881Y[#*1.823]Z[#*-19.328] -N891Y[#*1.323]Z[#*-19.266] -N901Y[#*0.823]Z[#*-19.231] -N911Y[#*0.323]Z[#*-19.196] -N921Y[#*-0.177]Z[#*-19.185] -N931Y[#*-1.177]Z[#*-19.256] -N941Y[#*-2.177]Z[#*-19.401] -N951Y[#*-3.177]Z[#*-19.609] -N961Y[#*-4.177]Z[#*-19.942] -N971Y[#*-5.177]Z[#*-20.345] -N981Y[#*-5.677]Z[#*-20.588] -N991Y[#*-6.177]Z[#*-20.847] -N1001Y[#*-6.677]Z[#*-21.182] -N1011Y[#*-7.177]Z[#*-21.504] -N1021Y[#*-7.677]Z[#*-21.879] -N1031Y[#*-8.177]Z[#*-22.282] -N1041Y[#*-9.177]Z[#*-23.153] -N1051Y[#*-10.177]Z[#*-23.971] -N1061Y[#*-10.427]Z[#*-24.188] -N1071Y[#*-10.489]Z[#*-24.244] -N1081Y[#*-10.497]Z[#*-24.234] -N1091Y[#*-10.802]Z[#*-23.597] -N1101Y[#*-10.927]Z[#*-23.351] -N1111Y[#*-11.177]Z[#*-22.976] -N1121Y[#*-11.239]Z[#*-22.898] -N1131Y[#*-11.427]Z[#*-22.694] -N1141Y[#*-11.677]Z[#*-22.472] -N1151Y[#*-11.927]Z[#*-22.293] -N1161Y[#*-12.177]Z[#*-22.15] -N1171Y[#*-12.677]Z[#*-21.93] -N1181Y[#*-13.177]Z[#*-21.69] -N1191Y[#*-13.677]Z[#*-21.431] -N1201Y[#*-14.177]Z[#*-21.257] -N1211Y[#*-14.302]Z[#*-21.228] -N1221Y[#*-14.427]Z[#*-21.205] -N1231Y[#*-14.677]Z[#*-21.175] -N1241Y[#*-15.177]Z[#*-21.139] -N1251Y[#*-16.177]Z[#*-21.087] -N1261Y[#*-16.677]Z[#*-21.088] -N1271Y[#*-17.177]Z[#*-21.149] -N1281Y[#*-17.677]Z[#*-21.282] -N1291Y[#*-18.677]Z[#*-21.511] -N1301Y[#*-19.177]Z[#*-21.65] -N1311Y[#*-19.427]Z[#*-21.755] -N1321Y[#*-19.677]Z[#*-21.887] -N1331Y[#*-20.177]Z[#*-22.223] -N1341Y[#*-21.177]Z[#*-22.918] -N1351Y[#*-21.677]Z[#*-23.378] -N1361Y[#*-21.802]Z[#*-23.531] -N1371Y[#*-21.927]Z[#*-23.708] -N1381Y[#*-22.192]Z[#*-24.204] -N1391Y[#*-22.302]Z[#*-24.432] -N1401Y[#*-22.677]Z[#*-25.214] -N1411Y[#*-22.927]Z[#*-25.789] -N1421Y[#*-22.989]Z[#*-26.001] -N1431Y[#*-23.052]Z[#*-26.313] -N1441Y[#*-23.091]Z[#*-26.711] -N1451Y[#*-23.177]Z[#*-27.735] -N1461Y[#*-23.192]Z[#*-27.921] -N1471Y[#*-23.216]Z[#*-28.18] -N1481Y[#*-23.223]Z[#*-30.5] -N1491Y[#*-23.434] -N1501Y[#*-25.177] -N1511Y[#*-53.] -N1521X[#*35.472]Y[#*-53.293] -N1531X[#*35.393]Y[#*-53.547] -N1541X[#*35.269]Y[#*-53.762] -N1551X[#*35.109]Y[#*-53.938] -N1561X[#*34.92]Y[#*-54.074] -N1571X[#*34.709]Y[#*-54.172] -N1581X[#*34.483]Y[#*-54.23] -N1591X[#*34.25]Y[#*-54.25] -N1601X[#*34.017]Y[#*-54.23] -N1611X[#*33.791]Y[#*-54.172] -N1621X[#*33.58]Y[#*-54.074] -N1631X[#*33.391]Y[#*-53.938] -N1641X[#*33.231]Y[#*-53.762] -N1651X[#*33.107]Y[#*-53.547] -N1661X[#*33.028]Y[#*-53.293] -N1671X[#*33.]Y[#*-53.] -N1681Y[#*-51.859] -N1691Y[#*-49.859] -N1701Y[#*-36.859] -N1711Y[#*-24.109] -N1721Y[#*-23.875] -N1731Y[#*-23.859] -N1741Y[#*-23.625] -N1751Y[#*-23.554] -N1761Y[#*-23.531] -N1771Y[#*-23.523]Z[#*-28.492] -N1781Y[#*-23.507]Z[#*-28.31] -N1791Y[#*-23.406]Z[#*-27.347] -N1801Y[#*-23.375]Z[#*-27.06] -N1811Y[#*-23.32]Z[#*-26.608] -N1821Y[#*-23.304]Z[#*-26.487] -N1831Y[#*-23.281]Z[#*-26.349] -N1841Y[#*-23.234]Z[#*-26.145] -N1851Y[#*-23.109]Z[#*-25.774] -N1861Y[#*-22.859]Z[#*-25.222] -N1871Y[#*-22.359]Z[#*-24.169] -N1881Y[#*-22.109]Z[#*-23.739] -N1891Y[#*-21.922]Z[#*-23.497] -N1901Y[#*-21.859]Z[#*-23.426] -N1911Y[#*-21.359]Z[#*-22.985] -N1921Y[#*-20.859]Z[#*-22.613] -N1931Y[#*-20.359]Z[#*-22.218] -N1941Y[#*-20.109]Z[#*-22.031] -N1951Y[#*-19.859]Z[#*-21.88] -N1961Y[#*-19.359]Z[#*-21.664] -N1971Y[#*-18.859]Z[#*-21.494] -N1981Y[#*-18.359]Z[#*-21.347] -N1991Y[#*-17.859]Z[#*-21.204] -N2001Y[#*-17.359]Z[#*-21.083] -N2011Y[#*-16.859]Z[#*-21.043] -N2021Y[#*-15.859]Z[#*-21.007] -N2031Y[#*-15.359]Z[#*-20.958] -N2041Y[#*-14.859]Z[#*-20.962] -N2051Y[#*-13.609]Z[#*-21.034] -N2061Y[#*-13.484]Z[#*-21.041] -N2071Y[#*-13.359]Z[#*-21.03] -N2081Y[#*-12.859]Z[#*-20.91] -N2091Y[#*-12.359]Z[#*-20.839] -N2101Y[#*-11.89]Z[#*-20.773] -N2111Y[#*-11.859]Z[#*-20.769] -N2121Y[#*-11.734]Z[#*-20.734] -N2131Y[#*-11.359]Z[#*-20.566] -N2141Y[#*-10.859]Z[#*-20.37] -N2151Y[#*-9.859]Z[#*-20.059] -N2161Y[#*-8.859]Z[#*-19.594] -N2171Y[#*-7.859]Z[#*-19.213] -N2181Y[#*-6.859]Z[#*-18.779] -N2191Y[#*-5.859]Z[#*-18.384] -N2201Y[#*-4.859]Z[#*-18.043] -N2211Y[#*-3.859]Z[#*-17.743] -N2221Y[#*-2.859]Z[#*-17.546] -N2231Y[#*-2.359]Z[#*-17.445] -N2241Y[#*-1.859]Z[#*-17.359] -N2251Y[#*-0.359]Z[#*-17.25] -N2261Y[#*0.141]Z[#*-17.235] -N2271Y[#*1.641]Z[#*-17.342] -N2281Y[#*2.141]Z[#*-17.4] -N2291Y[#*3.141]Z[#*-17.602] -N2301Y[#*4.141]Z[#*-17.827] -N2311Y[#*5.141]Z[#*-18.133] -N2321Y[#*6.141]Z[#*-18.502] -N2331Y[#*7.141]Z[#*-18.893] -N2341Y[#*8.141]Z[#*-19.34] -N2351Y[#*9.141]Z[#*-19.734] -N2361Y[#*9.641]Z[#*-19.981] -N2371Y[#*10.141]Z[#*-20.166] -N2381Y[#*10.641]Z[#*-20.324] -N2391Y[#*11.141]Z[#*-20.505] -N2401Y[#*11.391]Z[#*-20.619] -N2411Y[#*11.625]Z[#*-20.73] -N2421Y[#*11.641]Z[#*-20.734] -N2431Y[#*12.141]Z[#*-20.823] -N2441Y[#*12.641]Z[#*-20.895] -N2451Y[#*13.016]Z[#*-20.968] -N2461Y[#*13.141]Z[#*-21.001] -N2471Y[#*13.297]Z[#*-21.046] -N2481Y[#*13.641]Z[#*-21.025] -N2491Y[#*14.641]Z[#*-20.969] -N2501Y[#*15.141]Z[#*-20.952] -N2511Y[#*16.141]Z[#*-21.044] -N2521Y[#*16.641] -N2531Y[#*16.891] -N2541Y[#*17.141]Z[#*-21.063] -N2551Y[#*17.641]Z[#*-21.163] -N2561Y[#*18.641]Z[#*-21.445] -N2571Y[#*19.141]Z[#*-21.607] -N2581Y[#*19.641]Z[#*-21.794] -N2591Y[#*20.141]Z[#*-22.086] -N2601Y[#*20.641]Z[#*-22.478] -N2611Y[#*21.516]Z[#*-23.123] -N2621Y[#*21.641]Z[#*-23.231] -N2631Y[#*21.891]Z[#*-23.487] -N2641Y[#*22.016]Z[#*-23.642] -N2651Y[#*22.141]Z[#*-23.82] -N2661Y[#*22.391]Z[#*-24.282] -N2671Y[#*23.016]Z[#*-25.586] -N2681Y[#*23.133]Z[#*-25.859] -N2691Y[#*23.235]Z[#*-26.183] -N2701Y[#*23.282]Z[#*-26.403] -N2711Y[#*23.305]Z[#*-26.562] -N2721Y[#*23.328]Z[#*-26.747] -N2731Y[#*23.352]Z[#*-26.933] -N2741Y[#*23.383]Z[#*-27.192] -N2751Y[#*23.493]Z[#*-28.185] -N2761Y[#*23.508]Z[#*-28.327] -N2771Y[#*23.524]Z[#*-28.525] -N2781Y[#*23.532]Z[#*-30.5] -N2791Y[#*23.641] -N2801Y[#*32.141] -N2811Y[#*44.141] -N2821Y[#*53.] -N2831X[#*32.972]Y[#*53.293] -N2841X[#*32.893]Y[#*53.547] -N2851X[#*32.769]Y[#*53.762] -N2861X[#*32.609]Y[#*53.937] -N2871X[#*32.42]Y[#*54.074] -N2881X[#*32.209]Y[#*54.172] -N2891X[#*31.983]Y[#*54.23] -N2901X[#*31.75]Y[#*54.25] -N2911X[#*31.517]Y[#*54.23] -N2921X[#*31.291]Y[#*54.172] -N2931X[#*31.08]Y[#*54.074] -N2941X[#*30.891]Y[#*53.937] -N2951X[#*30.731]Y[#*53.762] -N2961X[#*30.607]Y[#*53.547] -N2971X[#*30.528]Y[#*53.293] -N2981X[#*30.5]Y[#*53.] -N2991Y[#*51.531] -N3001Y[#*39.531] -N3011Y[#*23.875] -N3021Y[#*23.867] -N3031Y[#*23.859]Z[#*-28.882] -N3041Y[#*23.851]Z[#*-28.772] -N3051Y[#*23.796]Z[#*-28.394] -N3061Y[#*23.664]Z[#*-27.617] -N3071Y[#*23.656]Z[#*-27.568] -N3081Y[#*23.57]Z[#*-26.865] -N3091Y[#*23.562]Z[#*-26.802] -N3101Y[#*23.5]Z[#*-26.462] -N3111Y[#*23.406]Z[#*-26.15] -N3121Y[#*23.281]Z[#*-25.85] -N3131Y[#*22.531]Z[#*-24.218] -N3141Y[#*22.281]Z[#*-23.82] -N3151Y[#*22.031]Z[#*-23.523] -N3161Y[#*21.781]Z[#*-23.287] -N3171Y[#*21.531]Z[#*-23.063] -N3181Y[#*20.531]Z[#*-22.251] -N3191Y[#*20.031]Z[#*-21.94] -N3201Y[#*19.781]Z[#*-21.83] -N3211Y[#*19.031]Z[#*-21.584] -N3221Y[#*18.531]Z[#*-21.363] -N3231Y[#*18.031]Z[#*-21.189] -N3241Y[#*17.531]Z[#*-21.086] -N3251Y[#*17.031]Z[#*-20.989] -N3261Y[#*16.531]Z[#*-20.904] -N3271Y[#*16.031]Z[#*-20.835] -N3281Y[#*15.531]Z[#*-20.717] -N3291Y[#*15.406]Z[#*-20.673] -N3301Y[#*15.281]Z[#*-20.606] -N3311Y[#*14.531]Z[#*-20.232] -N3321Y[#*13.531]Z[#*-19.688] -N3331Y[#*11.531]Z[#*-18.572] -N3341Y[#*10.531]Z[#*-18.058] -N3351Y[#*9.531]Z[#*-17.63] -N3361Y[#*8.531]Z[#*-17.232] -N3371Y[#*7.531]Z[#*-16.89] -N3381Y[#*6.531]Z[#*-16.57] -N3391Y[#*4.531]Z[#*-16.055] -N3401Y[#*2.531]Z[#*-15.719] -N3411Y[#*1.531]Z[#*-15.636] -N3421Y[#*0.531]Z[#*-15.574] -N3431Y[#*-0.469]Z[#*-15.571] -N3441Y[#*-1.969]Z[#*-15.663] -N3451Y[#*-2.469]Z[#*-15.709] -N3461Y[#*-4.469]Z[#*-16.043] -N3471Y[#*-6.469]Z[#*-16.552] -N3481Y[#*-7.469]Z[#*-16.865] -N3491Y[#*-8.469]Z[#*-17.203] -N3501Y[#*-9.469]Z[#*-17.592] -N3511Y[#*-10.469]Z[#*-18.01] -N3521Y[#*-11.469]Z[#*-18.509] -N3531Y[#*-12.469]Z[#*-19.049] -N3541Y[#*-14.469]Z[#*-20.158] -N3551Y[#*-14.969]Z[#*-20.395] -N3561Y[#*-15.469]Z[#*-20.65] -N3571Y[#*-15.719]Z[#*-20.736] -N3581Y[#*-15.969]Z[#*-20.795] -N3591Y[#*-16.469]Z[#*-20.889] -N3601Y[#*-17.469]Z[#*-21.057] -N3611Y[#*-17.969]Z[#*-21.156] -N3621Y[#*-18.469]Z[#*-21.304] -N3631Y[#*-18.969]Z[#*-21.525] -N3641Y[#*-19.969]Z[#*-21.887] -N3651Y[#*-20.469]Z[#*-22.169] -N3661Y[#*-20.532]Z[#*-22.213] -N3671Y[#*-21.469]Z[#*-22.979] -N3681Y[#*-21.969]Z[#*-23.436] -N3691Y[#*-22.469]Z[#*-24.064] -N3701Y[#*-22.594]Z[#*-24.294] -N3711Y[#*-23.219]Z[#*-25.689] -N3721Y[#*-23.469]Z[#*-26.313] -N3731Y[#*-23.547]Z[#*-26.64] -N3741Y[#*-23.563]Z[#*-26.735] -N3751Y[#*-23.571]Z[#*-26.791] -N3761Y[#*-23.579]Z[#*-26.856] -N3771Y[#*-23.664]Z[#*-27.587] -N3781Y[#*-23.68]Z[#*-27.683] -N3791Y[#*-23.704]Z[#*-27.823] -N3801Y[#*-23.813]Z[#*-28.479] -N3811Y[#*-23.821]Z[#*-28.526] -N3821Y[#*-23.86]Z[#*-28.866] -N3831Y[#*-23.868]Z[#*-30.5] -N3841Y[#*-23.891] -N3851Y[#*-23.907] -N3861Y[#*-24.094] -N3871Y[#*-24.469] -N3881Y[#*-28.469] -N3891Y[#*-42.469] -N3901Y[#*-53.] -N3911X[#*30.472]Y[#*-53.293] -N3921X[#*30.393]Y[#*-53.547] -N3931X[#*30.269]Y[#*-53.762] -N3941X[#*30.109]Y[#*-53.938] -N3951X[#*29.92]Y[#*-54.074] -N3961X[#*29.709]Y[#*-54.172] -N3971X[#*29.483]Y[#*-54.23] -N3981X[#*29.25]Y[#*-54.25] -N3991X[#*29.017]Y[#*-54.23] -N4001X[#*28.797]Y[#*-54.173] -N4011X[#*28.58]Y[#*-54.074] -N4021X[#*28.391]Y[#*-53.938] -N4031X[#*28.231]Y[#*-53.762] -N4041X[#*28.107]Y[#*-53.547] -N4051X[#*28.028]Y[#*-53.293] -N4061X[#*28.]Y[#*-53.] -N4071Y[#*-51.427] -N4081Y[#*-40.427] -N4091Y[#*-38.427] -N4101Y[#*-25.427] -N4111Y[#*-24.552] -N4121Y[#*-24.31] -N4131Y[#*-24.302]Z[#*-30.426] -N4141Y[#*-24.279]Z[#*-30.081] -N4151Y[#*-24.217]Z[#*-29.401] -N4161Y[#*-24.146]Z[#*-28.905] -N4171Y[#*-24.052]Z[#*-28.46] -N4181Y[#*-23.677]Z[#*-26.827] -N4191Y[#*-23.427]Z[#*-26.147] -N4201Y[#*-22.927]Z[#*-25.103] -N4211Y[#*-22.677]Z[#*-24.544] -N4221Y[#*-22.49]Z[#*-24.224] -N4231Y[#*-22.427]Z[#*-24.134] -N4241Y[#*-21.927]Z[#*-23.595] -N4251Y[#*-21.427]Z[#*-23.137] -N4261Y[#*-20.927]Z[#*-22.662] -N4271Y[#*-20.677]Z[#*-22.458] -N4281Y[#*-20.427]Z[#*-22.293] -N4291Y[#*-19.927]Z[#*-22.048] -N4301Y[#*-19.427]Z[#*-21.823] -N4311Y[#*-18.427]Z[#*-21.415] -N4321Y[#*-17.927]Z[#*-21.203] -N4331Y[#*-17.427]Z[#*-20.952] -N4341Y[#*-16.427]Z[#*-20.282] -N4351Y[#*-15.427]Z[#*-19.53] -N4361Y[#*-14.427]Z[#*-18.81] -N4371Y[#*-13.427]Z[#*-18.146] -N4381Y[#*-12.427]Z[#*-17.509] -N4391Y[#*-11.427]Z[#*-16.953] -N4401Y[#*-10.927]Z[#*-16.684] -N4411Y[#*-10.427]Z[#*-16.432] -N4421Y[#*-9.927]Z[#*-16.223] -N4431Y[#*-8.427]Z[#*-15.654] -N4441Y[#*-7.427]Z[#*-15.319] -N4451Y[#*-5.427]Z[#*-14.801] -N4461Y[#*-4.427]Z[#*-14.632] -N4471Y[#*-3.427]Z[#*-14.478] -N4481Y[#*-2.427]Z[#*-14.349] -N4491Y[#*-0.427]Z[#*-14.243] -N4501Y[#*0.573]Z[#*-14.251] -N4511Y[#*2.573]Z[#*-14.357] -N4521Y[#*3.073]Z[#*-14.423] -N4531Y[#*4.573]Z[#*-14.655] -N4541Y[#*5.573]Z[#*-14.839] -N4551Y[#*7.573]Z[#*-15.359] -N4561Y[#*8.573]Z[#*-15.715] -N4571Y[#*10.073]Z[#*-16.284] -N4581Y[#*10.573]Z[#*-16.515] -N4591Y[#*11.573]Z[#*-17.05] -N4601Y[#*12.573]Z[#*-17.611] -N4611Y[#*13.573]Z[#*-18.27] -N4621Y[#*14.573]Z[#*-18.943] -N4631Y[#*16.573]Z[#*-20.426] -N4641Y[#*17.323]Z[#*-20.93] -N4651Y[#*17.573]Z[#*-21.083] -N4661Y[#*18.073]Z[#*-21.303] -N4671Y[#*18.573]Z[#*-21.5] -N4681Y[#*19.573]Z[#*-21.913] -N4691Y[#*20.073]Z[#*-22.136] -N4701Y[#*20.323]Z[#*-22.261] -N4711Y[#*20.573]Z[#*-22.417] -N4721Y[#*21.073]Z[#*-22.842] -N4731Y[#*21.573]Z[#*-23.306] -N4741Y[#*21.948]Z[#*-23.634] -N4751Y[#*22.073]Z[#*-23.75] -N4761Y[#*22.323]Z[#*-24.027] -N4771Y[#*22.573]Z[#*-24.394] -N4781Y[#*23.323]Z[#*-25.954] -N4791Y[#*23.448]Z[#*-26.209] -N4801Y[#*23.573]Z[#*-26.508] -N4811Y[#*23.698]Z[#*-26.955] -N4821Y[#*24.01]Z[#*-28.289] -N4831Y[#*24.065]Z[#*-28.523] -N4841Y[#*24.166]Z[#*-29.026] -N4851Y[#*24.221]Z[#*-29.441] -N4861Y[#*24.276]Z[#*-30.021] -N4871Y[#*24.291]Z[#*-30.242] -N4881Y[#*24.315]Z[#*-30.5] -N4891Y[#*38.573] -N4901Y[#*39.573] -N4911Y[#*48.573] -N4921Y[#*53.] -N4931X[#*27.972]Y[#*53.293] -N4941X[#*27.893]Y[#*53.547] -N4951X[#*27.769]Y[#*53.762] -N4961X[#*27.609]Y[#*53.937] -N4971X[#*27.42]Y[#*54.074] -N4981X[#*27.209]Y[#*54.172] -N4991X[#*26.983]Y[#*54.23] -N5001X[#*26.75]Y[#*54.25] -N5011X[#*26.517]Y[#*54.23] -N5021X[#*26.291]Y[#*54.172] -N5031X[#*26.08]Y[#*54.074] -N5041X[#*25.891]Y[#*53.937] -N5051X[#*25.731]Y[#*53.762] -N5061X[#*25.607]Y[#*53.547] -N5071X[#*25.528]Y[#*53.293] -N5081X[#*25.5]Y[#*53.] -N5091Y[#*38.123] -N5101Y[#*31.123] -N5111Y[#*24.701] -N5121Y[#*24.693]Z[#*-30.476] -N5131Y[#*24.584]Z[#*-30.006] -N5141Y[#*24.576]Z[#*-29.954] -N5151Y[#*24.522]Z[#*-29.57] -N5161Y[#*24.498]Z[#*-29.419] -N5171Y[#*24.467]Z[#*-29.266] -N5181Y[#*24.373]Z[#*-28.942] -N5191Y[#*23.873]Z[#*-27.537] -N5201Y[#*23.623]Z[#*-26.916] -N5211Y[#*23.373]Z[#*-26.361] -N5221Y[#*23.123]Z[#*-25.945] -N5231Y[#*22.123]Z[#*-24.338] -N5241Y[#*21.623]Z[#*-23.733] -N5251Y[#*20.623]Z[#*-22.845] -N5261Y[#*20.123]Z[#*-22.493] -N5271Y[#*19.123]Z[#*-21.656] -N5281Y[#*18.123]Z[#*-20.694] -N5291Y[#*17.123]Z[#*-19.775] -N5301Y[#*16.123]Z[#*-18.949] -N5311Y[#*15.123]Z[#*-18.175] -N5321Y[#*14.623]Z[#*-17.767] -N5331Y[#*14.123]Z[#*-17.373] -N5341Y[#*13.123]Z[#*-16.728] -N5351Y[#*12.123]Z[#*-16.115] -N5361Y[#*11.123]Z[#*-15.591] -N5371Y[#*9.123]Z[#*-14.743] -N5381Y[#*8.623]Z[#*-14.558] -N5391Y[#*6.123]Z[#*-13.877] -N5401Y[#*5.623]Z[#*-13.777] -N5411Y[#*4.123]Z[#*-13.55] -N5421Y[#*3.123]Z[#*-13.399] -N5431Y[#*2.123]Z[#*-13.336] -N5441Y[#*0.123]Z[#*-13.242] -N5451Y[#*-0.877]Z[#*-13.277] -N5461Y[#*-2.877]Z[#*-13.372] -N5471Y[#*-3.377]Z[#*-13.437] -N5481Y[#*-5.377]Z[#*-13.739] -N5491Y[#*-5.877]Z[#*-13.818] -N5501Y[#*-6.377]Z[#*-13.946] -N5511Y[#*-7.877]Z[#*-14.353] -N5521Y[#*-8.377]Z[#*-14.489] -N5531Y[#*-8.877]Z[#*-14.639] -N5541Y[#*-11.377]Z[#*-15.694] -N5551Y[#*-11.877]Z[#*-15.958] -N5561Y[#*-12.877]Z[#*-16.568] -N5571Y[#*-13.877]Z[#*-17.201] -N5581Y[#*-14.877]Z[#*-17.959] -N5591Y[#*-15.877]Z[#*-18.74] -N5601Y[#*-16.877]Z[#*-19.544] -N5611Y[#*-17.877]Z[#*-20.434] -N5621Y[#*-18.877]Z[#*-21.387] -N5631Y[#*-19.377]Z[#*-21.879] -N5641Y[#*-19.877]Z[#*-22.306] -N5651Y[#*-20.377]Z[#*-22.636] -N5661Y[#*-20.877]Z[#*-23.039] -N5671Y[#*-21.377]Z[#*-23.489] -N5681Y[#*-21.877]Z[#*-23.981] -N5691Y[#*-22.127]Z[#*-24.311] -N5701Y[#*-23.377]Z[#*-26.354] -N5711Y[#*-23.627]Z[#*-26.908] -N5721Y[#*-23.877]Z[#*-27.533] -N5731Y[#*-24.377]Z[#*-28.95] -N5741Y[#*-24.471]Z[#*-29.278] -N5751Y[#*-24.517]Z[#*-29.535] -N5761Y[#*-24.58]Z[#*-29.98] -N5771Y[#*-24.588]Z[#*-30.025] -N5781Y[#*-24.697]Z[#*-30.5] -N5791Y[#*-24.705] -N5801Y[#*-29.877] -N5811Y[#*-42.877] -N5821Y[#*-44.877] -N5831Y[#*-48.877] -N5841Y[#*-53.] -N5851X[#*25.472]Y[#*-53.293] -N5861X[#*25.393]Y[#*-53.547] -N5871X[#*25.269]Y[#*-53.762] -N5881X[#*25.109]Y[#*-53.938] -N5891X[#*24.92]Y[#*-54.074] -N5901X[#*24.709]Y[#*-54.172] -N5911X[#*24.483]Y[#*-54.23] -N5921X[#*24.25]Y[#*-54.25] -N5931X[#*24.017]Y[#*-54.23] -N5941X[#*23.791]Y[#*-54.172] -N5951X[#*23.58]Y[#*-54.074] -N5961X[#*23.391]Y[#*-53.938] -N5971X[#*23.231]Y[#*-53.762] -N5981X[#*23.107]Y[#*-53.547] -N5991X[#*23.028]Y[#*-53.293] -N6001X[#*23.]Y[#*-53.] -N6011Y[#*-43.909] -N6021Y[#*-37.909] -N6031Y[#*-35.909] -N6041Y[#*-25.284] -N6051Y[#*-25.237] -N6061Y[#*-25.159]Z[#*-30.224] -N6071Y[#*-24.909]Z[#*-29.354] -N6081Y[#*-24.659]Z[#*-28.778] -N6091Y[#*-23.909]Z[#*-27.213] -N6101Y[#*-22.909]Z[#*-25.522] -N6111Y[#*-22.409]Z[#*-24.749] -N6121Y[#*-21.909]Z[#*-23.998] -N6131Y[#*-20.909]Z[#*-22.752] -N6141Y[#*-19.909]Z[#*-21.556] -N6151Y[#*-18.909]Z[#*-20.526] -N6161Y[#*-17.909]Z[#*-19.496] -N6171Y[#*-16.909]Z[#*-18.613] -N6181Y[#*-15.909]Z[#*-17.749] -N6191Y[#*-14.909]Z[#*-16.971] -N6201Y[#*-12.909]Z[#*-15.639] -N6211Y[#*-12.409]Z[#*-15.344] -N6221Y[#*-10.909]Z[#*-14.677] -N6231Y[#*-9.909]Z[#*-14.233] -N6241Y[#*-9.409]Z[#*-14.034] -N6251Y[#*-6.909]Z[#*-13.34] -N6261Y[#*-5.909]Z[#*-13.125] -N6271Y[#*-3.909]Z[#*-12.832] -N6281Y[#*-2.909]Z[#*-12.714] -N6291Y[#*-0.909]Z[#*-12.629] -N6301Y[#*0.091]Z[#*-12.594] -N6311Y[#*1.091]Z[#*-12.637] -N6321Y[#*3.091]Z[#*-12.722] -N6331Y[#*3.591]Z[#*-12.785] -N6341Y[#*4.091]Z[#*-12.859] -N6351Y[#*6.091]Z[#*-13.152] -N6361Y[#*6.591]Z[#*-13.252] -N6371Y[#*9.091]Z[#*-13.944] -N6381Y[#*10.091]Z[#*-14.315] -N6391Y[#*11.091]Z[#*-14.759] -N6401Y[#*12.091]Z[#*-15.203] -N6411Y[#*12.591]Z[#*-15.439] -N6421Y[#*13.091]Z[#*-15.763] -N6431Y[#*14.091]Z[#*-16.429] -N6441Y[#*15.091]Z[#*-17.095] -N6451Y[#*15.591]Z[#*-17.478] -N6461Y[#*17.091]Z[#*-18.776] -N6471Y[#*18.091]Z[#*-19.69] -N6481Y[#*20.091]Z[#*-21.76] -N6491Y[#*21.591]Z[#*-23.612] -N6501Y[#*22.091]Z[#*-24.269] -N6511Y[#*23.591]Z[#*-26.586] -N6521Y[#*23.841]Z[#*-27.078] -N6531Y[#*24.591]Z[#*-28.639] -N6541Y[#*24.841]Z[#*-29.173] -N6551Y[#*24.966]Z[#*-29.548] -N6561Y[#*25.209]Z[#*-30.398] -N6571Y[#*25.232]Z[#*-30.481] -N6581Y[#*25.24]Z[#*-30.5] -N6591Y[#*51.091] -N6601Y[#*53.] -N6611X[#*22.972]Y[#*53.293] -N6621X[#*22.893]Y[#*53.547] -N6631X[#*22.769]Y[#*53.762] -N6641X[#*22.609]Y[#*53.937] -N6651X[#*22.42]Y[#*54.074] -N6661X[#*22.209]Y[#*54.172] -N6671X[#*21.983]Y[#*54.23] -N6681X[#*21.75]Y[#*54.25] -N6691X[#*21.517]Y[#*54.23] -N6701X[#*21.291]Y[#*54.172] -N6711X[#*21.08]Y[#*54.074] -N6721X[#*20.891]Y[#*53.937] -N6731X[#*20.731]Y[#*53.762] -N6741X[#*20.607]Y[#*53.547] -N6751X[#*20.528]Y[#*53.293] -N6761X[#*20.5]Y[#*53.] -N6771Y[#*29.217] -N6781Y[#*27.217] -N6791Y[#*25.78] -N6801Y[#*25.772]Z[#*-30.487] -N6811Y[#*25.467]Z[#*-29.562] -N6821Y[#*25.217]Z[#*-28.971] -N6831Y[#*24.217]Z[#*-26.951] -N6841Y[#*23.217]Z[#*-25.36] -N6851Y[#*22.217]Z[#*-23.891] -N6861Y[#*21.217]Z[#*-22.567] -N6871Y[#*20.217]Z[#*-21.374] -N6881Y[#*19.217]Z[#*-20.271] -N6891Y[#*18.217]Z[#*-19.233] -N6901Y[#*16.217]Z[#*-17.449] -N6911Y[#*15.717]Z[#*-17.062] -N6921Y[#*13.217]Z[#*-15.375] -N6931Y[#*12.717]Z[#*-15.118] -N6941Y[#*11.217]Z[#*-14.447] -N6951Y[#*10.217]Z[#*-14.] -N6961Y[#*9.717]Z[#*-13.809] -N6971Y[#*7.217]Z[#*-13.117] -N6981Y[#*6.217]Z[#*-12.894] -N6991Y[#*4.217]Z[#*-12.605] -N7001Y[#*3.217]Z[#*-12.47] -N7011Y[#*2.217]Z[#*-12.428] -N7021Y[#*0.217]Z[#*-12.346] -N7031Y[#*-0.783]Z[#*-12.369] -N7041Y[#*-2.783]Z[#*-12.451] -N7051Y[#*-3.783]Z[#*-12.542] -N7061Y[#*-6.283]Z[#*-12.904] -N7071Y[#*-6.783]Z[#*-12.997] -N7081Y[#*-8.783]Z[#*-13.55] -N7091Y[#*-9.783]Z[#*-13.828] -N7101Y[#*-10.283]Z[#*-14.03] -N7111Y[#*-12.783]Z[#*-15.147] -N7121Y[#*-13.283]Z[#*-15.417] -N7131Y[#*-13.783]Z[#*-15.755] -N7141Y[#*-15.783]Z[#*-17.105] -N7151Y[#*-16.283]Z[#*-17.506] -N7161Y[#*-16.783]Z[#*-17.95] -N7171Y[#*-17.783]Z[#*-18.843] -N7181Y[#*-18.783]Z[#*-19.788] -N7191Y[#*-20.783]Z[#*-21.999] -N7201Y[#*-21.783]Z[#*-23.312] -N7211Y[#*-22.783]Z[#*-24.676] -N7221Y[#*-23.783]Z[#*-26.249] -N7231Y[#*-24.783]Z[#*-28.095] -N7241Y[#*-25.283]Z[#*-29.102] -N7251Y[#*-25.533]Z[#*-29.759] -N7261Y[#*-25.775]Z[#*-30.494] -N7271Y[#*-25.783]Z[#*-30.5] -N7281Y[#*-37.783] -N7291Y[#*-39.783] -N7301Y[#*-43.783] -N7311Y[#*-48.783] -N7321Y[#*-51.783] -N7331Y[#*-53.] -N7341X[#*20.472]Y[#*-53.293] -N7351X[#*20.393]Y[#*-53.547] -N7361X[#*20.269]Y[#*-53.762] -N7371X[#*20.109]Y[#*-53.938] -N7381X[#*19.92]Y[#*-54.074] -N7391X[#*19.709]Y[#*-54.172] -N7401X[#*19.483]Y[#*-54.23] -N7411X[#*19.25]Y[#*-54.25] -N7421X[#*19.017]Y[#*-54.23] -N7431X[#*18.791]Y[#*-54.172] -N7441X[#*18.58]Y[#*-54.074] -N7451X[#*18.391]Y[#*-53.938] -N7461X[#*18.231]Y[#*-53.762] -N7471X[#*18.107]Y[#*-53.547] -N7481X[#*18.028]Y[#*-53.293] -N7491X[#*18.]Y[#*-53.] -N7501Y[#*-52.685] -N7511Y[#*-32.685] -N7521Y[#*-29.685] -N7531Y[#*-27.685] -N7541Y[#*-26.123] -N7551Y[#*-26.115]Z[#*-30.484] -N7561Y[#*-25.935]Z[#*-29.937] -N7571Y[#*-25.685]Z[#*-29.23] -N7581Y[#*-25.185]Z[#*-28.234] -N7591Y[#*-24.685]Z[#*-27.237] -N7601Y[#*-24.185]Z[#*-26.401] -N7611Y[#*-23.685]Z[#*-25.627] -N7621Y[#*-22.685]Z[#*-24.168] -N7631Y[#*-21.685]Z[#*-22.863] -N7641Y[#*-20.685]Z[#*-21.652] -N7651Y[#*-19.185]Z[#*-20.017] -N7661Y[#*-18.685]Z[#*-19.515] -N7671Y[#*-16.685]Z[#*-17.758] -N7681Y[#*-15.685]Z[#*-17.001] -N7691Y[#*-14.685]Z[#*-16.334] -N7701Y[#*-13.685]Z[#*-15.667] -N7711Y[#*-13.185]Z[#*-15.363] -N7721Y[#*-10.185]Z[#*-14.032] -N7731Y[#*-9.685]Z[#*-13.875] -N7741Y[#*-7.185]Z[#*-13.187] -N7751Y[#*-6.685]Z[#*-13.06] -N7761Y[#*-3.685]Z[#*-12.624] -N7771Y[#*-2.685]Z[#*-12.55] -N7781Y[#*-0.685]Z[#*-12.467] -N7791Y[#*0.315]Z[#*-12.452] -N7801Y[#*1.315]Z[#*-12.493] -N7811Y[#*3.315]Z[#*-12.577] -N7821Y[#*4.315]Z[#*-12.715] -N7831Y[#*6.315]Z[#*-13.004] -N7841Y[#*7.315]Z[#*-13.222] -N7851Y[#*8.315]Z[#*-13.498] -N7861Y[#*9.815]Z[#*-13.91] -N7871Y[#*10.315]Z[#*-14.087] -N7881Y[#*12.815]Z[#*-15.196] -N7891Y[#*13.315]Z[#*-15.432] -N7901Y[#*13.815]Z[#*-15.754] -N7911Y[#*15.815]Z[#*-17.087] -N7921Y[#*16.315]Z[#*-17.435] -N7931Y[#*18.315]Z[#*-19.189] -N7941Y[#*19.315]Z[#*-20.158] -N7951Y[#*20.315]Z[#*-21.248] -N7961Y[#*21.315]Z[#*-22.379] -N7971Y[#*22.315]Z[#*-23.684] -N7981Y[#*23.315]Z[#*-25.053] -N7991Y[#*24.315]Z[#*-26.601] -N8001Y[#*25.315]Z[#*-28.489] -N8011Y[#*25.565]Z[#*-28.983] -N8021Y[#*25.815]Z[#*-29.57] -N8031Y[#*25.94]Z[#*-29.947] -N8041Y[#*26.119]Z[#*-30.495] -N8051Y[#*26.127]Z[#*-30.5] -N8061Y[#*53.] -N8071X[#*17.972]Y[#*53.293] -N8081X[#*17.893]Y[#*53.547] -N8091X[#*17.769]Y[#*53.762] -N8101X[#*17.609]Y[#*53.937] -N8111X[#*17.42]Y[#*54.074] -N8121X[#*17.209]Y[#*54.172] -N8131X[#*16.983]Y[#*54.23] -N8141X[#*16.75]Y[#*54.25] -N8151X[#*16.523]Y[#*54.231] -N8161X[#*16.291]Y[#*54.172] -N8171X[#*16.08]Y[#*54.074] -N8181X[#*15.891]Y[#*53.937] -N8191X[#*15.731]Y[#*53.762] -N8201X[#*15.607]Y[#*53.547] -N8211X[#*15.528]Y[#*53.293] -N8221X[#*15.5]Y[#*53.] -N8231Y[#*28.452] -N8241Y[#*26.265] -N8251Y[#*26.257] -N8261Y[#*26.234]Z[#*-30.43] -N8271Y[#*26.202]Z[#*-30.338] -N8281Y[#*25.952]Z[#*-29.585] -N8291Y[#*25.702]Z[#*-28.974] -N8301Y[#*24.952]Z[#*-27.528] -N8311Y[#*24.452]Z[#*-26.658] -N8321Y[#*23.952]Z[#*-25.93] -N8331Y[#*23.452]Z[#*-25.182] -N8341Y[#*22.452]Z[#*-23.834] -N8351Y[#*21.452]Z[#*-22.598] -N8361Y[#*20.452]Z[#*-21.524] -N8371Y[#*19.452]Z[#*-20.478] -N8381Y[#*18.452]Z[#*-19.522] -N8391Y[#*17.452]Z[#*-18.668] -N8401Y[#*16.452]Z[#*-17.845] -N8411Y[#*15.952]Z[#*-17.498] -N8421Y[#*15.452]Z[#*-17.184] -N8431Y[#*13.952]Z[#*-16.215] -N8441Y[#*13.452]Z[#*-15.894] -N8451Y[#*12.952]Z[#*-15.653] -N8461Y[#*11.452]Z[#*-14.998] -N8471Y[#*10.452]Z[#*-14.57] -N8481Y[#*9.952]Z[#*-14.382] -N8491Y[#*7.452]Z[#*-13.698] -N8501Y[#*6.452]Z[#*-13.468] -N8511Y[#*3.452]Z[#*-13.029] -N8521Y[#*2.952]Z[#*-13.] -N8531Y[#*0.452]Z[#*-12.892] -N8541Y[#*-0.548]Z[#*-12.896] -N8551Y[#*-2.548]Z[#*-12.982] -N8561Y[#*-3.548]Z[#*-13.042] -N8571Y[#*-6.548]Z[#*-13.481] -N8581Y[#*-7.048]Z[#*-13.587] -N8591Y[#*-8.548]Z[#*-13.998] -N8601Y[#*-9.548]Z[#*-14.271] -N8611Y[#*-10.548]Z[#*-14.61] -N8621Y[#*-13.048]Z[#*-15.694] -N8631Y[#*-13.548]Z[#*-15.952] -N8641Y[#*-14.048]Z[#*-16.277] -N8651Y[#*-16.048]Z[#*-17.558] -N8661Y[#*-16.548]Z[#*-17.923] -N8671Y[#*-17.548]Z[#*-18.748] -N8681Y[#*-18.548]Z[#*-19.604] -N8691Y[#*-19.548]Z[#*-20.579] -N8701Y[#*-20.548]Z[#*-21.621] -N8711Y[#*-21.548]Z[#*-22.713] -N8721Y[#*-22.548]Z[#*-23.955] -N8731Y[#*-23.548]Z[#*-25.325] -N8741Y[#*-24.548]Z[#*-26.797] -N8751Y[#*-24.798]Z[#*-27.235] -N8761Y[#*-25.048]Z[#*-27.709] -N8771Y[#*-25.798]Z[#*-29.168] -N8781Y[#*-26.048]Z[#*-29.871] -N8791Y[#*-26.258]Z[#*-30.5] -N8801Y[#*-32.548] -N8811Y[#*-37.548] -N8821Y[#*-39.548] -N8831Y[#*-42.548] -N8841Y[#*-53.] -N8851X[#*15.472]Y[#*-53.293] -N8861X[#*15.393]Y[#*-53.547] -N8871X[#*15.269]Y[#*-53.762] -N8881X[#*15.109]Y[#*-53.938] -N8891X[#*14.92]Y[#*-54.074] -N8901X[#*14.709]Y[#*-54.172] -N8911X[#*14.483]Y[#*-54.23] -N8921X[#*14.25]Y[#*-54.25] -N8931X[#*14.017]Y[#*-54.23] -N8941X[#*13.791]Y[#*-54.172] -N8951X[#*13.58]Y[#*-54.074] -N8961X[#*13.391]Y[#*-53.938] -N8971X[#*13.231]Y[#*-53.762] -N8981X[#*13.107]Y[#*-53.547] -N8991X[#*13.028]Y[#*-53.293] -N9001X[#*13.]Y[#*-53.] -N9011Y[#*-45.009] -N9021Y[#*-26.228] -N9031Y[#*-26.22]Z[#*-30.482] -N9041Y[#*-26.009]Z[#*-29.867] -N9051Y[#*-25.759]Z[#*-29.159] -N9061Y[#*-25.509]Z[#*-28.666] -N9071Y[#*-25.009]Z[#*-27.74] -N9081Y[#*-24.009]Z[#*-26.102] -N9091Y[#*-23.009]Z[#*-24.701] -N9101Y[#*-22.009]Z[#*-23.524] -N9111Y[#*-21.009]Z[#*-22.35] -N9121Y[#*-20.009]Z[#*-21.355] -N9131Y[#*-19.009]Z[#*-20.386] -N9141Y[#*-18.009]Z[#*-19.567] -N9151Y[#*-17.009]Z[#*-18.78] -N9161Y[#*-16.509]Z[#*-18.37] -N9171Y[#*-16.009]Z[#*-18.009] -N9181Y[#*-15.009]Z[#*-17.386] -N9191Y[#*-13.509]Z[#*-16.483] -N9201Y[#*-13.009]Z[#*-16.232] -N9211Y[#*-10.509]Z[#*-15.182] -N9221Y[#*-10.009]Z[#*-14.987] -N9231Y[#*-8.009]Z[#*-14.443] -N9241Y[#*-7.009]Z[#*-14.172] -N9251Y[#*-6.509]Z[#*-14.071] -N9261Y[#*-4.009]Z[#*-13.697] -N9271Y[#*-3.009]Z[#*-13.59] -N9281Y[#*-0.009]Z[#*-13.454] -N9291Y[#*2.991]Z[#*-13.589] -N9301Y[#*3.991]Z[#*-13.694] -N9311Y[#*4.991]Z[#*-13.843] -N9321Y[#*6.491]Z[#*-14.068] -N9331Y[#*6.991]Z[#*-14.167] -N9341Y[#*9.991]Z[#*-14.981] -N9351Y[#*10.491]Z[#*-15.175] -N9361Y[#*10.991]Z[#*-15.388] -N9371Y[#*11.991]Z[#*-15.808] -N9381Y[#*12.991]Z[#*-16.225] -N9391Y[#*13.491]Z[#*-16.472] -N9401Y[#*15.491]Z[#*-17.684] -N9411Y[#*15.991]Z[#*-17.998] -N9421Y[#*16.491]Z[#*-18.355] -N9431Y[#*16.991]Z[#*-18.765] -N9441Y[#*17.991]Z[#*-19.553] -N9451Y[#*18.991]Z[#*-20.369] -N9461Y[#*19.991]Z[#*-21.338] -N9471Y[#*20.991]Z[#*-22.332] -N9481Y[#*22.991]Z[#*-24.678] -N9491Y[#*23.991]Z[#*-26.078] -N9501Y[#*24.491]Z[#*-26.799] -N9511Y[#*24.741]Z[#*-27.238] -N9521Y[#*24.991]Z[#*-27.707] -N9531Y[#*25.491]Z[#*-28.633] -N9541Y[#*25.741]Z[#*-29.118] -N9551Y[#*25.866]Z[#*-29.45] -N9561Y[#*26.226]Z[#*-30.499] -N9571Y[#*26.233]Z[#*-30.5] -N9581Y[#*29.991] -N9591Y[#*52.999] -N9601X[#*12.972]Y[#*53.292] -N9611X[#*12.893]Y[#*53.546] -N9621X[#*12.769]Y[#*53.761] -N9631X[#*12.609]Y[#*53.937] -N9641X[#*12.42]Y[#*54.074] -N9651X[#*12.209]Y[#*54.171] -N9661X[#*11.983]Y[#*54.23] -N9671X[#*11.75]Y[#*54.25] -N9681X[#*11.517]Y[#*54.23] -N9691X[#*11.291]Y[#*54.172] -N9701X[#*11.08]Y[#*54.074] -N9711X[#*10.891]Y[#*53.937] -N9721X[#*10.731]Y[#*53.762] -N9731X[#*10.607]Y[#*53.547] -N9741X[#*10.528]Y[#*53.293] -N9751X[#*10.5]Y[#*53.] -N9761Y[#*42.958] -N9771Y[#*29.958] -N9781Y[#*26.208] -N9791Y[#*26.083] -N9801Y[#*26.029] -N9811Y[#*26.021]Z[#*-30.489] -N9821Y[#*26.005]Z[#*-30.444] -N9831Y[#*25.99]Z[#*-30.398] -N9841Y[#*25.708]Z[#*-29.582] -N9851Y[#*25.458]Z[#*-28.93] -N9861Y[#*25.208]Z[#*-28.467] -N9871Y[#*24.458]Z[#*-27.104] -N9881Y[#*23.958]Z[#*-26.358] -N9891Y[#*22.958]Z[#*-24.993] -N9901Y[#*21.958]Z[#*-23.819] -N9911Y[#*20.958]Z[#*-22.699] -N9921Y[#*19.958]Z[#*-21.757] -N9931Y[#*18.958]Z[#*-20.832] -N9941Y[#*17.958]Z[#*-20.015] -N9951Y[#*16.458]Z[#*-18.896] -N9961Y[#*15.958]Z[#*-18.539] -N9971Y[#*13.958]Z[#*-17.384] -N9981Y[#*13.458]Z[#*-17.093] -N9991Y[#*12.958]Z[#*-16.836] -N1Y[#*10.958]Z[#*-16.022] -N11Y[#*10.458]Z[#*-15.819] -N21Y[#*9.958]Z[#*-15.628] -N31Y[#*7.958]Z[#*-15.089] -N41Y[#*6.958]Z[#*-14.82] -N51Y[#*6.458]Z[#*-14.72] -N61Y[#*3.958]Z[#*-14.339] -N71Y[#*2.958]Z[#*-14.232] -N81Y[#*-0.042]Z[#*-14.092] -N91Y[#*-0.542]Z[#*-14.114] -N101Y[#*-3.042]Z[#*-14.236] -N111Y[#*-4.042]Z[#*-14.352] -N121Y[#*-6.042]Z[#*-14.657] -N131Y[#*-7.042]Z[#*-14.842] -N141Y[#*-9.042]Z[#*-15.379] -N151Y[#*-10.042]Z[#*-15.655] -N161Y[#*-10.542]Z[#*-15.853] -N171Y[#*-12.542]Z[#*-16.663] -N181Y[#*-13.042]Z[#*-16.871] -N191Y[#*-13.542]Z[#*-17.143] -N201Y[#*-15.542]Z[#*-18.297] -N211Y[#*-16.042]Z[#*-18.591] -N221Y[#*-18.042]Z[#*-20.077] -N231Y[#*-19.042]Z[#*-20.909] -N241Y[#*-20.042]Z[#*-21.834] -N251Y[#*-21.042]Z[#*-22.792] -N261Y[#*-22.042]Z[#*-23.912] -N271Y[#*-23.042]Z[#*-25.106] -N281Y[#*-24.042]Z[#*-26.472] -N291Y[#*-24.542]Z[#*-27.257] -N301Y[#*-25.292]Z[#*-28.619] -N311Y[#*-25.542]Z[#*-29.113] -N321Y[#*-25.792]Z[#*-29.824] -N331Y[#*-26.018]Z[#*-30.483] -N341Y[#*-26.026]Z[#*-30.5] -N351Y[#*-26.042] -N361Y[#*-30.042] -N371Y[#*-31.042] -N381Y[#*-53.] -N391X[#*10.472]Y[#*-53.293] -N401X[#*10.393]Y[#*-53.547] -N411X[#*10.269]Y[#*-53.762] -N421X[#*10.109]Y[#*-53.938] -N431X[#*9.92]Y[#*-54.074] -N441X[#*9.709]Y[#*-54.172] -N451X[#*9.483]Y[#*-54.23] -N461X[#*9.25]Y[#*-54.25] -N471X[#*9.017]Y[#*-54.23] -N481X[#*8.791]Y[#*-54.172] -N491X[#*8.58]Y[#*-54.074] -N501X[#*8.391]Y[#*-53.938] -N511X[#*8.231]Y[#*-53.762] -N521X[#*8.107]Y[#*-53.547] -N531X[#*8.028]Y[#*-53.293] -N541X[#*8.]Y[#*-53.] -N551Y[#*-51.721] -N561Y[#*-35.721] -N571Y[#*-34.721] -N581Y[#*-28.721] -N591Y[#*-25.659] -N601Y[#*-25.651]Z[#*-30.478] -N611Y[#*-25.627]Z[#*-30.41] -N621Y[#*-25.471]Z[#*-29.955] -N631Y[#*-25.221]Z[#*-29.227] -N641Y[#*-24.971]Z[#*-28.694] -N651Y[#*-24.221]Z[#*-27.34] -N661Y[#*-23.721]Z[#*-26.547] -N671Y[#*-22.721]Z[#*-25.21] -N681Y[#*-21.721]Z[#*-24.05] -N691Y[#*-20.721]Z[#*-22.97] -N701Y[#*-19.721]Z[#*-22.059] -N711Y[#*-18.721]Z[#*-21.177] -N721Y[#*-17.721]Z[#*-20.397] -N731Y[#*-16.221]Z[#*-19.328] -N741Y[#*-15.721]Z[#*-18.992] -N751Y[#*-15.221]Z[#*-18.719] -N761Y[#*-13.221]Z[#*-17.616] -N771Y[#*-12.721]Z[#*-17.379] -N781Y[#*-10.221]Z[#*-16.391] -N791Y[#*-9.721]Z[#*-16.218] -N801Y[#*-8.721]Z[#*-15.952] -N811Y[#*-6.721]Z[#*-15.421] -N821Y[#*-6.221]Z[#*-15.337] -N831Y[#*-3.721]Z[#*-14.951] -N841Y[#*-2.721]Z[#*-14.862] -N851Y[#*-0.721]Z[#*-14.761] -N861Y[#*0.279]Z[#*-14.739] -N871Y[#*2.779]Z[#*-14.865] -N881Y[#*3.279]Z[#*-14.891] -N891Y[#*3.779]Z[#*-14.96] -N901Y[#*6.279]Z[#*-15.346] -N911Y[#*7.279]Z[#*-15.567] -N921Y[#*9.279]Z[#*-16.101] -N931Y[#*10.279]Z[#*-16.414] -N941Y[#*12.279]Z[#*-17.204] -N951Y[#*13.279]Z[#*-17.648] -N961Y[#*15.279]Z[#*-18.75] -N971Y[#*16.279]Z[#*-19.369] -N981Y[#*18.279]Z[#*-20.796] -N991Y[#*19.279]Z[#*-21.669] -N1001Y[#*20.279]Z[#*-22.55] -N1011Y[#*21.279]Z[#*-23.571] -N1021Y[#*22.279]Z[#*-24.653] -N1031Y[#*22.779]Z[#*-25.287] -N1041Y[#*23.779]Z[#*-26.624] -N1051Y[#*24.279]Z[#*-27.445] -N1061Y[#*24.779]Z[#*-28.347] -N1071Y[#*25.029]Z[#*-28.799] -N1081Y[#*25.154]Z[#*-29.056] -N1091Y[#*25.248]Z[#*-29.304] -N1101Y[#*25.654]Z[#*-30.487] -N1111Y[#*25.662]Z[#*-30.5] -N1121Y[#*25.716] -N1131Y[#*33.279] -N1141Y[#*35.279] -N1151Y[#*37.279] -N1161Y[#*49.279] -N1171Y[#*53.] -N1181X[#*7.972]Y[#*53.293] -N1191X[#*7.893]Y[#*53.547] -N1201X[#*7.769]Y[#*53.762] -N1211X[#*7.609]Y[#*53.937] -N1221X[#*7.42]Y[#*54.074] -N1231X[#*7.209]Y[#*54.172] -N1241X[#*6.983]Y[#*54.23] -N1251X[#*6.75]Y[#*54.25] -N1261X[#*6.517]Y[#*54.23] -N1271X[#*6.291]Y[#*54.172] -N1281X[#*6.08]Y[#*54.074] -N1291X[#*5.891]Y[#*53.937] -N1301X[#*5.731]Y[#*53.762] -N1311X[#*5.607]Y[#*53.547] -N1321X[#*5.528]Y[#*53.293] -N1331X[#*5.501]Y[#*53.007] -N1341Y[#*52.537] -N1351Y[#*51.24] -N1361Y[#*51.232]Z[#*-29.671] -N1371Y[#*51.216]Z[#*-29.482] -N1381Y[#*51.162]Z[#*-29.167] -N1391Y[#*51.131]Z[#*-29.044] -N1401Y[#*51.037]Z[#*-28.764] -N1411Y[#*50.912]Z[#*-28.49] -N1421Y[#*50.787]Z[#*-28.274] -N1431Y[#*50.537]Z[#*-27.938] -N1441Y[#*50.427]Z[#*-27.819] -N1451Y[#*50.412]Z[#*-27.378] -N1461Y[#*50.365]Z[#*-27.062] -N1471Y[#*50.287]Z[#*-26.765] -N1481Y[#*50.162]Z[#*-26.445] -N1491Y[#*50.037]Z[#*-26.205] -N1501Y[#*49.974]Z[#*-26.103] -N1511Y[#*49.787]Z[#*-25.843] -N1521Y[#*49.537]Z[#*-25.573] -N1531Y[#*49.412]Z[#*-25.462] -N1541Y[#*49.037]Z[#*-25.172] -N1551Y[#*48.537]Z[#*-24.874] -N1561Y[#*48.287]Z[#*-24.773] -N1571Y[#*48.037]Z[#*-24.698] -N1581Y[#*47.537]Z[#*-24.602] -N1591Y[#*47.037]Z[#*-24.522] -N1601Y[#*46.537]Z[#*-24.492] -N1611Y[#*46.037]Z[#*-24.48] -N1621Y[#*45.537]Z[#*-24.527] -N1631Y[#*45.037]Z[#*-24.589] -N1641Y[#*44.537]Z[#*-24.678] -N1651Y[#*44.037]Z[#*-24.818] -N1661Y[#*43.537]Z[#*-24.975] -N1671Y[#*43.037]Z[#*-25.176] -N1681Y[#*42.537]Z[#*-25.45] -N1691Y[#*42.037]Z[#*-25.776] -N1701Y[#*41.537]Z[#*-26.234] -N1711Y[#*41.506]Z[#*-26.273] -N1721Y[#*41.287]Z[#*-26.587] -N1731Y[#*41.037]Z[#*-27.099] -N1741Y[#*40.974]Z[#*-27.283] -N1751Y[#*40.787]Z[#*-27.878] -N1761Y[#*40.763]Z[#*-27.969] -N1771Y[#*40.724]Z[#*-28.204] -N1781Y[#*40.677]Z[#*-28.574] -N1791Y[#*40.654]Z[#*-28.836] -N1801Y[#*40.646]Z[#*-30.5] -N1811Y[#*40.623] -N1821Y[#*40.591] -N1831Y[#*40.037] -N1841Y[#*26.537] -N1851Y[#*25.162] -N1861Y[#*25.154]Z[#*-30.496] -N1871Y[#*25.021]Z[#*-30.103] -N1881Y[#*24.912]Z[#*-29.779] -N1891Y[#*24.787]Z[#*-29.405] -N1901Y[#*24.537]Z[#*-28.799] -N1911Y[#*24.287]Z[#*-28.339] -N1921Y[#*23.787]Z[#*-27.433] -N1931Y[#*23.537]Z[#*-26.983] -N1941Y[#*23.037]Z[#*-26.291] -N1951Y[#*22.537]Z[#*-25.629] -N1961Y[#*21.537]Z[#*-24.429] -N1971Y[#*20.537]Z[#*-23.381] -N1981Y[#*19.537]Z[#*-22.448] -N1991Y[#*18.537]Z[#*-21.6] -N2001Y[#*17.537]Z[#*-20.844] -N2011Y[#*15.537]Z[#*-19.492] -N2021Y[#*15.037]Z[#*-19.217] -N2031Y[#*13.537]Z[#*-18.424] -N2041Y[#*13.037]Z[#*-18.167] -N2051Y[#*12.537]Z[#*-17.934] -N2061Y[#*10.037]Z[#*-16.975] -N2071Y[#*9.537]Z[#*-16.806] -N2081Y[#*7.537]Z[#*-16.277] -N2091Y[#*6.537]Z[#*-16.02] -N2101Y[#*3.537]Z[#*-15.549] -N2111Y[#*2.537]Z[#*-15.474] -N2121Y[#*0.537]Z[#*-15.369] -N2131Y[#*-0.463]Z[#*-15.365] -N2141Y[#*-2.963]Z[#*-15.496] -N2151Y[#*-3.463]Z[#*-15.537] -N2161Y[#*-5.463]Z[#*-15.85] -N2171Y[#*-6.463]Z[#*-16.007] -N2181Y[#*-6.963]Z[#*-16.126] -N2191Y[#*-9.463]Z[#*-16.787] -N2201Y[#*-10.463]Z[#*-17.14] -N2211Y[#*-12.463]Z[#*-17.906] -N2221Y[#*-13.463]Z[#*-18.385] -N2231Y[#*-14.963]Z[#*-19.178] -N2241Y[#*-15.463]Z[#*-19.447] -N2251Y[#*-16.463]Z[#*-20.121] -N2261Y[#*-17.463]Z[#*-20.796] -N2271Y[#*-18.463]Z[#*-21.54] -N2281Y[#*-19.463]Z[#*-22.385] -N2291Y[#*-20.463]Z[#*-23.304] -N2301Y[#*-21.463]Z[#*-24.353] -N2311Y[#*-22.463]Z[#*-25.532] -N2321Y[#*-23.463]Z[#*-26.866] -N2331Y[#*-23.713]Z[#*-27.299] -N2341Y[#*-24.463]Z[#*-28.663] -N2351Y[#*-24.713]Z[#*-29.187] -N2361Y[#*-24.963]Z[#*-29.931] -N2371Y[#*-25.143]Z[#*-30.463] -N2381Y[#*-25.159]Z[#*-30.5] -N2391Y[#*-25.213] -N2401Y[#*-40.635] -N2411Y[#*-40.643] -N2421Y[#*-40.651]Z[#*-28.876] -N2431Y[#*-40.674]Z[#*-28.6] -N2441Y[#*-40.729]Z[#*-28.168] -N2451Y[#*-40.744]Z[#*-28.062] -N2461Y[#*-40.807]Z[#*-27.811] -N2471Y[#*-40.963]Z[#*-27.316] -N2481Y[#*-41.026]Z[#*-27.131] -N2491Y[#*-41.088]Z[#*-26.967] -N2501Y[#*-41.213]Z[#*-26.712] -N2511Y[#*-41.338]Z[#*-26.506] -N2521Y[#*-41.494]Z[#*-26.288] -N2531Y[#*-41.526]Z[#*-26.248] -N2541Y[#*-41.713]Z[#*-26.038] -N2551Y[#*-41.963]Z[#*-25.829] -N2561Y[#*-42.213]Z[#*-25.654] -N2571Y[#*-42.463]Z[#*-25.495] -N2581Y[#*-42.963]Z[#*-25.214] -N2591Y[#*-43.463]Z[#*-25.] -N2601Y[#*-43.963]Z[#*-24.84] -N2611Y[#*-44.463]Z[#*-24.697] -N2621Y[#*-44.963]Z[#*-24.598] -N2631Y[#*-45.463]Z[#*-24.536] -N2641Y[#*-45.963]Z[#*-24.483] -N2651Y[#*-46.463]Z[#*-24.489] -N2661Y[#*-46.963]Z[#*-24.514] -N2671Y[#*-47.463]Z[#*-24.589] -N2681Y[#*-47.963]Z[#*-24.681] -N2691Y[#*-48.463]Z[#*-24.841] -N2701Y[#*-48.713]Z[#*-24.964] -N2711Y[#*-48.963]Z[#*-25.119] -N2721Y[#*-49.463]Z[#*-25.506] -N2731Y[#*-49.588]Z[#*-25.623] -N2741Y[#*-49.713]Z[#*-25.756] -N2751Y[#*-49.963]Z[#*-26.085] -N2761Y[#*-50.088]Z[#*-26.297] -N2771Y[#*-50.213]Z[#*-26.563] -N2781Y[#*-50.354]Z[#*-27.011] -N2791Y[#*-50.362]Z[#*-27.046] -N2801Y[#*-50.409]Z[#*-27.344] -N2811Y[#*-50.424]Z[#*-27.815] -N2821Y[#*-50.494]Z[#*-27.89] -N2831Y[#*-50.526]Z[#*-27.925] -N2841Y[#*-50.713]Z[#*-28.164] -N2851Y[#*-50.963]Z[#*-28.594] -N2861Y[#*-51.088]Z[#*-28.906] -N2871Y[#*-51.151]Z[#*-29.121] -N2881Y[#*-51.198]Z[#*-29.348] -N2891Y[#*-51.221]Z[#*-29.524] -N2901Y[#*-51.229]Z[#*-29.616] -N2911Y[#*-51.237]Z[#*-30.5] -N2921Y[#*-51.346] -N2931Y[#*-53.] -N2941X[#*5.472]Y[#*-53.293] -N2951X[#*5.393]Y[#*-53.547] -N2961X[#*5.269]Y[#*-53.762] -N2971X[#*5.109]Y[#*-53.938] -N2981X[#*4.92]Y[#*-54.074] -N2991X[#*4.709]Y[#*-54.172] -N3001X[#*4.483]Y[#*-54.23] -N3011X[#*4.25]Y[#*-54.25] -N3021X[#*4.017]Y[#*-54.23] -N3031X[#*3.791]Y[#*-54.172] -N3041X[#*3.58]Y[#*-54.074] -N3051X[#*3.391]Y[#*-53.938] -N3061X[#*3.231]Y[#*-53.762] -N3071X[#*3.107]Y[#*-53.547] -N3081X[#*3.028]Y[#*-53.293] -N3091X[#*3.]Y[#*-53.] -N3101Y[#*-51.218] -N3111Y[#*-51.203]Z[#*-29.635] -N3121Y[#*-51.187]Z[#*-29.466] -N3131Y[#*-51.14]Z[#*-29.195] -N3141Y[#*-51.062]Z[#*-28.914] -N3151Y[#*-51.038]Z[#*-28.847] -N3161Y[#*-50.781]Z[#*-28.316] -N3171Y[#*-50.593]Z[#*-28.049] -N3181Y[#*-50.515]Z[#*-27.954] -N3191Y[#*-50.499]Z[#*-27.935] -N3201Y[#*-50.492]Z[#*-27.516] -N3211Y[#*-50.46]Z[#*-27.201] -N3221Y[#*-50.406]Z[#*-26.935] -N3231Y[#*-50.281]Z[#*-26.558] -N3241Y[#*-50.156]Z[#*-26.293] -N3251Y[#*-50.031]Z[#*-26.081] -N3261Y[#*-49.781]Z[#*-25.75] -N3271Y[#*-49.656]Z[#*-25.612] -N3281Y[#*-49.562]Z[#*-25.508] -N3291Y[#*-49.531]Z[#*-25.473] -N3301Y[#*-49.281]Z[#*-25.23] -N3311Y[#*-49.031]Z[#*-25.036] -N3321Y[#*-48.531]Z[#*-24.753] -N3331Y[#*-48.031]Z[#*-24.551] -N3341Y[#*-47.531]Z[#*-24.384] -N3351Y[#*-46.531]Z[#*-24.203] -N3361Y[#*-45.531]Z[#*-24.118] -N3371Y[#*-44.531]Z[#*-24.109] -N3381Y[#*-43.531]Z[#*-24.151] -N3391Y[#*-43.031]Z[#*-24.195] -N3401Y[#*-42.531]Z[#*-24.25] -N3411Y[#*-42.031]Z[#*-24.334] -N3421Y[#*-41.531]Z[#*-24.441] -N3431Y[#*-41.031]Z[#*-24.576] -N3441Y[#*-40.531]Z[#*-24.743] -N3451Y[#*-40.031]Z[#*-24.951] -N3461Y[#*-39.531]Z[#*-25.181] -N3471Y[#*-38.531]Z[#*-25.692] -N3481Y[#*-38.031]Z[#*-25.924] -N3491Y[#*-37.656]Z[#*-26.134] -N3501Y[#*-37.531]Z[#*-26.214] -N3511Y[#*-37.281]Z[#*-26.393] -N3521Y[#*-37.031]Z[#*-26.609] -N3531Y[#*-36.781]Z[#*-26.884] -N3541Y[#*-36.656]Z[#*-27.059] -N3551Y[#*-36.546]Z[#*-27.218] -N3561Y[#*-36.093]Z[#*-27.839] -N3571Y[#*-36.031]Z[#*-27.923] -N3581Y[#*-35.906]Z[#*-28.095] -N3591Y[#*-35.796]Z[#*-28.281] -N3601Y[#*-35.788]Z[#*-28.297] -N3611Y[#*-35.718]Z[#*-28.46] -N3621Y[#*-35.656]Z[#*-28.684] -N3631Y[#*-35.593]Z[#*-29.236] -N3641Y[#*-35.531]Z[#*-29.777] -N3651Y[#*-35.523]Z[#*-29.863] -N3661Y[#*-35.499]Z[#*-30.214] -N3671Y[#*-35.492]Z[#*-30.5] -N3681Y[#*-30.531] -N3691Y[#*-24.562] -N3701Y[#*-24.554]Z[#*-30.493] -N3711Y[#*-24.281]Z[#*-29.659] -N3721Y[#*-24.031]Z[#*-28.965] -N3731Y[#*-23.031]Z[#*-27.091] -N3741Y[#*-22.531]Z[#*-26.377] -N3751Y[#*-21.531]Z[#*-25.051] -N3761Y[#*-21.031]Z[#*-24.513] -N3771Y[#*-20.031]Z[#*-23.493] -N3781Y[#*-19.531]Z[#*-23.007] -N3791Y[#*-18.531]Z[#*-22.211] -N3801Y[#*-17.531]Z[#*-21.398] -N3811Y[#*-16.531]Z[#*-20.74] -N3821Y[#*-15.531]Z[#*-20.104] -N3831Y[#*-14.531]Z[#*-19.552] -N3841Y[#*-12.531]Z[#*-18.547] -N3851Y[#*-12.031]Z[#*-18.346] -N3861Y[#*-11.531]Z[#*-18.158] -N3871Y[#*-9.531]Z[#*-17.418] -N3881Y[#*-6.531]Z[#*-16.628] -N3891Y[#*-6.031]Z[#*-16.54] -N3901Y[#*-3.531]Z[#*-16.146] -N3911Y[#*-2.531]Z[#*-16.063] -N3921Y[#*-0.531]Z[#*-15.955] -N3931Y[#*0.469]Z[#*-15.952] -N3941Y[#*2.469]Z[#*-16.06] -N3951Y[#*3.469]Z[#*-16.136] -N3961Y[#*4.469]Z[#*-16.294] -N3971Y[#*5.969]Z[#*-16.531] -N3981Y[#*6.469]Z[#*-16.614] -N3991Y[#*9.469]Z[#*-17.399] -N4001Y[#*10.469]Z[#*-17.76] -N4011Y[#*11.969]Z[#*-18.323] -N4021Y[#*12.469]Z[#*-18.518] -N4031Y[#*14.469]Z[#*-19.522] -N4041Y[#*15.469]Z[#*-20.066] -N4051Y[#*16.969]Z[#*-21.026] -N4061Y[#*17.469]Z[#*-21.354] -N4071Y[#*19.469]Z[#*-22.957] -N4081Y[#*19.969]Z[#*-23.431] -N4091Y[#*20.969]Z[#*-24.45] -N4101Y[#*21.469]Z[#*-24.975] -N4111Y[#*22.469]Z[#*-26.296] -N4121Y[#*22.969]Z[#*-26.986] -N4131Y[#*23.969]Z[#*-28.842] -N4141Y[#*24.219]Z[#*-29.472] -N4151Y[#*24.407]Z[#*-30.042] -N4161Y[#*24.516]Z[#*-30.375] -N4171Y[#*24.54]Z[#*-30.447] -N4181Y[#*24.555]Z[#*-30.496] -N4191Y[#*24.563]Z[#*-30.5] -N4201Y[#*24.594] -N4211Y[#*25.469] -N4221Y[#*32.469] -N4231Y[#*35.407] -N4241Y[#*35.485] -N4251Y[#*35.493] -N4261Y[#*35.508]Z[#*-30.079] -N4271Y[#*35.524]Z[#*-29.846] -N4281Y[#*35.532]Z[#*-29.767] -N4291Y[#*35.594]Z[#*-29.225] -N4301Y[#*35.665]Z[#*-28.641] -N4311Y[#*35.688]Z[#*-28.551] -N4321Y[#*35.719]Z[#*-28.457] -N4331Y[#*35.969]Z[#*-28.005] -N4341Y[#*36.469]Z[#*-27.325] -N4351Y[#*36.719]Z[#*-26.967] -N4361Y[#*36.844]Z[#*-26.806] -N4371Y[#*36.969]Z[#*-26.67] -N4381Y[#*37.219]Z[#*-26.442] -N4391Y[#*37.469]Z[#*-26.255] -N4401Y[#*37.969]Z[#*-25.955] -N4411Y[#*38.469]Z[#*-25.719] -N4421Y[#*39.469]Z[#*-25.213] -N4431Y[#*39.969]Z[#*-24.977] -N4441Y[#*40.469]Z[#*-24.766] -N4451Y[#*40.969]Z[#*-24.594] -N4461Y[#*41.469]Z[#*-24.456] -N4471Y[#*41.969]Z[#*-24.345] -N4481Y[#*42.469]Z[#*-24.259] -N4491Y[#*43.469]Z[#*-24.154] -N4501Y[#*44.469]Z[#*-24.111] -N4511Y[#*45.469]Z[#*-24.115] -N4521Y[#*45.969]Z[#*-24.147] -N4531Y[#*46.469]Z[#*-24.194] -N4541Y[#*47.469]Z[#*-24.37] -N4551Y[#*47.969]Z[#*-24.526] -N4561Y[#*48.219]Z[#*-24.626] -N4571Y[#*48.462]Z[#*-24.723] -N4581Y[#*48.719]Z[#*-24.845] -N4591Y[#*48.969]Z[#*-24.994] -N4601Y[#*49.219]Z[#*-25.178] -N4611Y[#*49.469]Z[#*-25.408] -N4621Y[#*49.844]Z[#*-25.826] -N4631Y[#*49.969]Z[#*-25.991] -N4641Y[#*50.094]Z[#*-26.184] -N4651Y[#*50.188]Z[#*-26.355] -N4661Y[#*50.344]Z[#*-26.728] -N4671Y[#*50.376]Z[#*-26.826] -N4681Y[#*50.391]Z[#*-26.881] -N4691Y[#*50.454]Z[#*-27.161] -N4701Y[#*50.485]Z[#*-27.409] -N4711Y[#*50.501]Z[#*-27.937] -N4721Y[#*50.594]Z[#*-28.05] -N4731Y[#*50.719]Z[#*-28.221] -N4741Y[#*50.844]Z[#*-28.424] -N4751Y[#*50.907]Z[#*-28.542] -N4761Y[#*51.032]Z[#*-28.829] -N4771Y[#*51.079]Z[#*-28.966] -N4781Y[#*51.157]Z[#*-29.276] -N4791Y[#*51.196]Z[#*-29.549] -N4801Y[#*51.204]Z[#*-29.655] -N4811Y[#*51.219]Z[#*-30.5] -N4821Y[#*53.] -N4831X[#*2.972]Y[#*53.293] -N4841X[#*2.893]Y[#*53.547] -N4851X[#*2.769]Y[#*53.762] -N4861X[#*2.609]Y[#*53.937] -N4871X[#*2.42]Y[#*54.074] -N4881X[#*2.209]Y[#*54.172] -N4891X[#*1.983]Y[#*54.23] -N4901X[#*1.75]Y[#*54.25] -N4911X[#*1.517]Y[#*54.23] -N4921X[#*1.291]Y[#*54.172] -N4931X[#*1.08]Y[#*54.074] -N4941X[#*0.891]Y[#*53.937] -N4951X[#*0.731]Y[#*53.762] -N4961X[#*0.607]Y[#*53.547] -N4971X[#*0.528]Y[#*53.293] -N4981X[#*0.5]Y[#*53.] -N4991Y[#*49.765] -N5001Y[#*49.758] -N5011Y[#*49.75]Z[#*-29.781] -N5021Y[#*49.742]Z[#*-29.696] -N5031Y[#*49.695]Z[#*-29.43] -N5041Y[#*49.601]Z[#*-29.137] -N5051Y[#*49.484]Z[#*-28.891] -N5061Y[#*49.359]Z[#*-28.693] -N5071Y[#*49.234]Z[#*-28.534] -N5081Y[#*49.094]Z[#*-28.383] -N5091Y[#*49.07]Z[#*-28.36] -N5101Y[#*49.062]Z[#*-27.618] -N5111Y[#*49.055]Z[#*-27.522] -N5121Y[#*49.023]Z[#*-27.318] -N5131Y[#*48.969]Z[#*-27.104] -N5141Y[#*48.922]Z[#*-26.969] -N5151Y[#*48.859]Z[#*-26.824] -N5161Y[#*48.734]Z[#*-26.596] -N5171Y[#*48.609]Z[#*-26.418] -N5181Y[#*48.484]Z[#*-26.271] -N5191Y[#*48.109]Z[#*-25.877] -N5201Y[#*47.609]Z[#*-25.495] -N5211Y[#*47.547]Z[#*-25.456] -N5221Y[#*47.484]Z[#*-25.418] -N5231Y[#*47.109]Z[#*-25.222] -N5241Y[#*46.609]Z[#*-25.008] -N5251Y[#*46.109]Z[#*-24.83] -N5261Y[#*45.609]Z[#*-24.69] -N5271Y[#*45.109]Z[#*-24.596] -N5281Y[#*43.609]Z[#*-24.349] -N5291Y[#*42.609]Z[#*-24.268] -N5301Y[#*41.609]Z[#*-24.153] -N5311Y[#*40.609]Z[#*-24.12] -N5321Y[#*40.109]Z[#*-24.137] -N5331Y[#*39.609]Z[#*-24.182] -N5341Y[#*38.609]Z[#*-24.292] -N5351Y[#*37.609]Z[#*-24.403] -N5361Y[#*36.609]Z[#*-24.601] -N5371Y[#*36.109]Z[#*-24.737] -N5381Y[#*35.609]Z[#*-24.905] -N5391Y[#*34.609]Z[#*-25.272] -N5401Y[#*33.609]Z[#*-25.607] -N5411Y[#*33.109]Z[#*-25.805] -N5421Y[#*32.609]Z[#*-26.046] -N5431Y[#*32.109]Z[#*-26.352] -N5441Y[#*31.609]Z[#*-26.752] -N5451Y[#*31.109]Z[#*-27.251] -N5461Y[#*30.609]Z[#*-27.702] -N5471Y[#*30.109]Z[#*-28.206] -N5481Y[#*30.078]Z[#*-28.251] -N5491Y[#*29.984]Z[#*-28.409] -N5501Y[#*29.922]Z[#*-28.552] -N5511Y[#*29.609]Z[#*-29.644] -N5521Y[#*29.484]Z[#*-30.023] -N5531Y[#*29.453]Z[#*-30.154] -N5541Y[#*29.445]Z[#*-30.211] -N5551Y[#*29.437]Z[#*-30.5] -N5561Y[#*29.414] -N5571Y[#*24.109] -N5581Y[#*23.851]Z[#*-30.496] -N5591Y[#*23.828]Z[#*-30.421] -N5601Y[#*23.734]Z[#*-30.112] -N5611Y[#*23.547]Z[#*-29.478] -N5621Y[#*23.484]Z[#*-29.273] -N5631Y[#*23.359]Z[#*-28.962] -N5641Y[#*22.609]Z[#*-27.486] -N5651Y[#*22.109]Z[#*-26.663] -N5661Y[#*21.109]Z[#*-25.309] -N5671Y[#*20.609]Z[#*-24.731] -N5681Y[#*19.609]Z[#*-23.732] -N5691Y[#*18.609]Z[#*-22.831] -N5701Y[#*17.609]Z[#*-22.058] -N5711Y[#*16.609]Z[#*-21.354] -N5721Y[#*15.609]Z[#*-20.753] -N5731Y[#*14.609]Z[#*-20.14] -N5741Y[#*13.609]Z[#*-19.651] -N5751Y[#*12.609]Z[#*-19.181] -N5761Y[#*11.609]Z[#*-18.76] -N5771Y[#*9.609]Z[#*-18.034] -N5781Y[#*8.609]Z[#*-17.737] -N5791Y[#*6.609]Z[#*-17.221] -N5801Y[#*5.609]Z[#*-17.03] -N5811Y[#*3.609]Z[#*-16.714] -N5821Y[#*2.609]Z[#*-16.614] -N5831Y[#*0.609]Z[#*-16.504] -N5841Y[#*-0.391]Z[#*-16.492] -N5851Y[#*-2.391]Z[#*-16.602] -N5861Y[#*-3.391]Z[#*-16.679] -N5871Y[#*-5.391]Z[#*-16.995] -N5881Y[#*-6.391]Z[#*-17.165] -N5891Y[#*-8.391]Z[#*-17.681] -N5901Y[#*-9.391]Z[#*-17.954] -N5911Y[#*-11.391]Z[#*-18.681] -N5921Y[#*-12.391]Z[#*-19.078] -N5931Y[#*-13.391]Z[#*-19.548] -N5941Y[#*-14.391]Z[#*-20.032] -N5951Y[#*-15.391]Z[#*-20.618] -N5961Y[#*-16.391]Z[#*-21.223] -N5971Y[#*-17.391]Z[#*-21.891] -N5981Y[#*-18.391]Z[#*-22.659] -N5991Y[#*-19.391]Z[#*-23.511] -N6001Y[#*-20.391]Z[#*-24.513] -N6011Y[#*-21.391]Z[#*-25.692] -N6021Y[#*-21.891]Z[#*-26.371] -N6031Y[#*-22.391]Z[#*-27.075] -N6041Y[#*-22.891]Z[#*-28.03] -N6051Y[#*-23.391]Z[#*-29.032] -N6061Y[#*-23.641]Z[#*-29.796] -N6071Y[#*-23.766]Z[#*-30.218] -N6081Y[#*-23.852]Z[#*-30.497] -N6091Y[#*-23.86]Z[#*-30.5] -N6101Y[#*-27.391] -N6111Y[#*-29.391] -N6121Y[#*-29.438] -N6131Y[#*-29.445]Z[#*-30.208] -N6141Y[#*-29.461]Z[#*-30.112] -N6151Y[#*-29.641]Z[#*-29.548] -N6161Y[#*-29.891]Z[#*-28.648] -N6171Y[#*-30.016]Z[#*-28.351] -N6181Y[#*-30.078]Z[#*-28.25] -N6191Y[#*-30.203]Z[#*-28.086] -N6201Y[#*-30.391]Z[#*-27.89] -N6211Y[#*-30.891]Z[#*-27.468] -N6221Y[#*-31.391]Z[#*-26.97] -N6231Y[#*-31.891]Z[#*-26.514] -N6241Y[#*-32.391]Z[#*-26.169] -N6251Y[#*-32.641]Z[#*-26.029] -N6261Y[#*-32.891]Z[#*-25.904] -N6271Y[#*-33.391]Z[#*-25.689] -N6281Y[#*-33.891]Z[#*-25.51] -N6291Y[#*-34.391]Z[#*-25.345] -N6301Y[#*-35.391]Z[#*-24.987] -N6311Y[#*-36.391]Z[#*-24.657] -N6321Y[#*-36.891]Z[#*-24.535] -N6331Y[#*-37.391]Z[#*-24.437] -N6341Y[#*-37.891]Z[#*-24.364] -N6351Y[#*-39.391]Z[#*-24.211] -N6361Y[#*-40.391]Z[#*-24.124] -N6371Y[#*-40.891]Z[#*-24.12] -N6381Y[#*-41.391]Z[#*-24.137] -N6391Y[#*-41.891]Z[#*-24.182] -N6401Y[#*-42.391]Z[#*-24.247] -N6411Y[#*-43.391]Z[#*-24.324] -N6421Y[#*-44.391]Z[#*-24.474] -N6431Y[#*-45.391]Z[#*-24.644] -N6441Y[#*-45.891]Z[#*-24.764] -N6451Y[#*-46.391]Z[#*-24.925] -N6461Y[#*-46.891]Z[#*-25.122] -N6471Y[#*-47.391]Z[#*-25.365] -N6481Y[#*-47.891]Z[#*-25.692] -N6491Y[#*-48.141]Z[#*-25.907] -N6501Y[#*-48.516]Z[#*-26.306] -N6511Y[#*-48.641]Z[#*-26.46] -N6521Y[#*-48.766]Z[#*-26.648] -N6531Y[#*-48.899]Z[#*-26.912] -N6541Y[#*-48.953]Z[#*-27.057] -N6551Y[#*-49.031]Z[#*-27.36] -N6561Y[#*-49.063]Z[#*-27.623] -N6571Y[#*-49.07]Z[#*-28.36] -N6581Y[#*-49.203]Z[#*-28.499] -N6591Y[#*-49.391]Z[#*-28.739] -N6601Y[#*-49.516]Z[#*-28.95] -N6611Y[#*-49.641]Z[#*-29.243] -N6621Y[#*-49.711]Z[#*-29.501] -N6631Y[#*-49.719]Z[#*-29.541] -N6641Y[#*-49.75]Z[#*-29.785] -N6651Y[#*-49.758]Z[#*-30.5] -N6661Y[#*-49.797] -N6671Y[#*-50.016] -N6681Y[#*-50.391] -N6691Y[#*-52.992] -N6701Y[#*-53.] -N6711X[#*0.472]Y[#*-53.293] -N6721X[#*0.393]Y[#*-53.547] -N6731X[#*0.269]Y[#*-53.762] -N6741X[#*0.109]Y[#*-53.938] -N6751X[#*-0.08]Y[#*-54.074] -N6761X[#*-0.291]Y[#*-54.172] -N6771X[#*-0.517]Y[#*-54.23] -N6781X[#*-0.75]Y[#*-54.25] -N6791X[#*-0.983]Y[#*-54.23] -N6801X[#*-1.209]Y[#*-54.172] -N6811X[#*-1.42]Y[#*-54.074] -N6821X[#*-1.609]Y[#*-53.938] -N6831X[#*-1.769]Y[#*-53.762] -N6841X[#*-1.893]Y[#*-53.547] -N6851X[#*-1.972]Y[#*-53.293] -N6861X[#*-2.]Y[#*-53.] -N6871Y[#*-52.992] -N6881Y[#*-46.367] -N6891Y[#*-46.305] -N6901Y[#*-46.274]Z[#*-30.111] -N6911Y[#*-46.242]Z[#*-29.955] -N6921Y[#*-46.18]Z[#*-29.758] -N6931Y[#*-46.149]Z[#*-29.683] -N6941Y[#*-46.024]Z[#*-29.448] -N6951Y[#*-45.93]Z[#*-29.311] -N6961Y[#*-45.907]Z[#*-29.28] -N6971Y[#*-45.774]Z[#*-29.107] -N6981Y[#*-45.742]Z[#*-29.058] -N6991Y[#*-45.711]Z[#*-29.006] -N7001Y[#*-45.664]Z[#*-28.93] -N7011Y[#*-45.657]Z[#*-28.217] -N7021Y[#*-45.649]Z[#*-28.146] -N7031Y[#*-45.617]Z[#*-27.973] -N7041Y[#*-45.586]Z[#*-27.858] -N7051Y[#*-45.524]Z[#*-27.69] -N7061Y[#*-45.399]Z[#*-27.458] -N7071Y[#*-45.149]Z[#*-27.123] -N7081Y[#*-44.961]Z[#*-26.859] -N7091Y[#*-44.899]Z[#*-26.787] -N7101Y[#*-44.399]Z[#*-26.379] -N7111Y[#*-43.899]Z[#*-26.071] -N7121Y[#*-43.399]Z[#*-25.725] -N7131Y[#*-41.399]Z[#*-24.8] -N7141Y[#*-40.899]Z[#*-24.623] -N7151Y[#*-40.399]Z[#*-24.49] -N7161Y[#*-38.899]Z[#*-24.199] -N7171Y[#*-37.899]Z[#*-24.071] -N7181Y[#*-37.399]Z[#*-24.037] -N7191Y[#*-36.899]Z[#*-24.025] -N7201Y[#*-35.899]Z[#*-24.069] -N7211Y[#*-32.899]Z[#*-24.344] -N7221Y[#*-31.899]Z[#*-24.5] -N7231Y[#*-30.899]Z[#*-24.715] -N7241Y[#*-29.899]Z[#*-24.973] -N7251Y[#*-28.899]Z[#*-25.206] -N7261Y[#*-27.899]Z[#*-25.41] -N7271Y[#*-26.899]Z[#*-25.644] -N7281Y[#*-25.899]Z[#*-25.938] -N7291Y[#*-24.899]Z[#*-26.304] -N7301Y[#*-24.399]Z[#*-26.535] -N7311Y[#*-23.899]Z[#*-26.741] -N7321Y[#*-23.399]Z[#*-26.875] -N7331Y[#*-22.899]Z[#*-27.001] -N7341Y[#*-22.649]Z[#*-27.037] -N7351Y[#*-21.961]Z[#*-27.016] -N7361Y[#*-21.899]Z[#*-27.014] -N7371Y[#*-21.875] -N7381Y[#*-21.649]Z[#*-26.687] -N7391Y[#*-20.899]Z[#*-25.672] -N7401Y[#*-20.399]Z[#*-25.035] -N7411Y[#*-18.899]Z[#*-23.623] -N7421Y[#*-17.899]Z[#*-22.818] -N7431Y[#*-16.899]Z[#*-22.1] -N7441Y[#*-15.899]Z[#*-21.453] -N7451Y[#*-14.899]Z[#*-20.879] -N7461Y[#*-13.899]Z[#*-20.336] -N7471Y[#*-11.899]Z[#*-19.424] -N7481Y[#*-10.899]Z[#*-19.041] -N7491Y[#*-8.899]Z[#*-18.343] -N7501Y[#*-6.899]Z[#*-17.832] -N7511Y[#*-5.899]Z[#*-17.592] -N7521Y[#*-3.899]Z[#*-17.276] -N7531Y[#*-2.899]Z[#*-17.136] -N7541Y[#*-0.399]Z[#*-16.996] -N7551Y[#*0.101]Z[#*-16.98] -N7561Y[#*1.101]Z[#*-17.035] -N7571Y[#*3.101]Z[#*-17.153] -N7581Y[#*3.601]Z[#*-17.229] -N7591Y[#*6.101]Z[#*-17.629] -N7601Y[#*8.101]Z[#*-18.138] -N7611Y[#*9.101]Z[#*-18.409] -N7621Y[#*11.101]Z[#*-19.113] -N7631Y[#*12.101]Z[#*-19.519] -N7641Y[#*14.101]Z[#*-20.429] -N7651Y[#*14.601]Z[#*-20.708] -N7661Y[#*16.101]Z[#*-21.569] -N7671Y[#*17.101]Z[#*-22.245] -N7681Y[#*18.101]Z[#*-22.963] -N7691Y[#*19.101]Z[#*-23.816] -N7701Y[#*19.601]Z[#*-24.291] -N7711Y[#*20.101]Z[#*-24.734] -N7721Y[#*20.601]Z[#*-25.289] -N7731Y[#*21.351]Z[#*-26.285] -N7741Y[#*21.601]Z[#*-26.623] -N7751Y[#*21.836]Z[#*-26.958] -N7761Y[#*21.843]Z[#*-26.97] -N7771Y[#*21.875]Z[#*-27.014] -N7781Y[#*22.476]Z[#*-27.032] -N7791Y[#*22.586]Z[#*-27.035] -N7801Y[#*22.601] -N7811Y[#*22.851]Z[#*-27.013] -N7821Y[#*23.601]Z[#*-26.822] -N7831Y[#*24.101]Z[#*-26.675] -N7841Y[#*24.601]Z[#*-26.439] -N7851Y[#*25.101]Z[#*-26.222] -N7861Y[#*26.101]Z[#*-25.872] -N7871Y[#*27.101]Z[#*-25.593] -N7881Y[#*28.101]Z[#*-25.367] -N7891Y[#*29.101]Z[#*-25.162] -N7901Y[#*30.101]Z[#*-24.926] -N7911Y[#*31.101]Z[#*-24.666] -N7921Y[#*32.101]Z[#*-24.463] -N7931Y[#*33.101]Z[#*-24.321] -N7941Y[#*35.101]Z[#*-24.144] -N7951Y[#*36.101]Z[#*-24.054] -N7961Y[#*36.601]Z[#*-24.03] -N7971Y[#*37.101]Z[#*-24.027] -N7981Y[#*38.101]Z[#*-24.091] -N7991Y[#*39.101]Z[#*-24.237] -N8001Y[#*40.101]Z[#*-24.428] -N8011Y[#*40.601]Z[#*-24.539] -N8021Y[#*41.101]Z[#*-24.689] -N8031Y[#*41.601]Z[#*-24.886] -N8041Y[#*42.601]Z[#*-25.385] -N8051Y[#*42.851]Z[#*-25.474] -N8061Y[#*43.101]Z[#*-25.576] -N8071Y[#*43.601]Z[#*-25.848] -N8081Y[#*44.101]Z[#*-26.196] -N8091Y[#*44.351]Z[#*-26.35] -N8101Y[#*44.601]Z[#*-26.518] -N8111Y[#*44.726]Z[#*-26.619] -N8121Y[#*44.851]Z[#*-26.737] -N8131Y[#*44.976]Z[#*-26.878] -N8141Y[#*45.086]Z[#*-27.028] -N8151Y[#*45.226]Z[#*-27.224] -N8161Y[#*45.414]Z[#*-27.482] -N8171Y[#*45.476]Z[#*-27.591] -N8181Y[#*45.57]Z[#*-27.809] -N8191Y[#*45.633]Z[#*-28.045] -N8201Y[#*45.656]Z[#*-28.212] -N8211Y[#*45.672]Z[#*-28.942] -N8221Y[#*45.851]Z[#*-29.208] -N8231Y[#*45.976]Z[#*-29.376] -N8241Y[#*46.101]Z[#*-29.584] -N8251Y[#*46.195]Z[#*-29.799] -N8261Y[#*46.258]Z[#*-30.02] -N8271Y[#*46.289]Z[#*-30.261] -N8281Y[#*46.304]Z[#*-30.5] -N8291Y[#*53.] -N8301X[#*-2.028]Y[#*53.293] -N8311X[#*-2.107]Y[#*53.547] -N8321X[#*-2.231]Y[#*53.762] -N8331X[#*-2.391]Y[#*53.937] -N8341X[#*-2.58]Y[#*54.074] -N8351X[#*-2.791]Y[#*54.172] -N8361X[#*-3.017]Y[#*54.23] -N8371X[#*-3.25]Y[#*54.25] -N8381X[#*-3.483]Y[#*54.23] -N8391X[#*-3.709]Y[#*54.172] -N8401X[#*-3.92]Y[#*54.074] -N8411X[#*-4.109]Y[#*53.937] -N8421X[#*-4.269]Y[#*53.762] -N8431X[#*-4.393]Y[#*53.547] -N8441X[#*-4.472]Y[#*53.293] -N8451X[#*-4.5]Y[#*53.] -N8461Y[#*43.102] -N8471Y[#*43.024] -N8481Y[#*43.016]Z[#*-30.487] -N8491Y[#*42.946]Z[#*-30.175] -N8501Y[#*42.915]Z[#*-30.038] -N8511Y[#*42.852]Z[#*-29.833] -N8521Y[#*42.727]Z[#*-29.514] -N8531Y[#*42.227]Z[#*-28.275] -N8541Y[#*41.977]Z[#*-27.831] -N8551Y[#*41.477]Z[#*-27.133] -N8561Y[#*40.977]Z[#*-26.484] -N8571Y[#*40.727]Z[#*-26.238] -N8581Y[#*40.477]Z[#*-26.033] -N8591Y[#*40.352]Z[#*-25.942] -N8601Y[#*39.977]Z[#*-25.702] -N8611Y[#*39.477]Z[#*-25.422] -N8621Y[#*38.477]Z[#*-24.96] -N8631Y[#*37.977]Z[#*-24.75] -N8641Y[#*37.477]Z[#*-24.584] -N8651Y[#*36.977]Z[#*-24.462] -N8661Y[#*36.477]Z[#*-24.369] -N8671Y[#*35.477]Z[#*-24.242] -N8681Y[#*34.477]Z[#*-24.144] -N8691Y[#*33.477]Z[#*-24.059] -N8701Y[#*32.477]Z[#*-24.011] -N8711Y[#*31.477]Z[#*-24.024] -N8721Y[#*28.477]Z[#*-24.208] -N8731Y[#*27.477]Z[#*-24.259] -N8741Y[#*26.477]Z[#*-24.322] -N8751Y[#*25.477]Z[#*-24.416] -N8761Y[#*24.477]Z[#*-24.536] -N8771Y[#*23.477]Z[#*-24.672] -N8781Y[#*22.477]Z[#*-24.739] -N8791Y[#*21.477]Z[#*-24.719] -N8801Y[#*20.977]Z[#*-24.675] -N8811Y[#*20.727]Z[#*-24.61] -N8821Y[#*19.977]Z[#*-24.375] -N8831Y[#*19.469]Z[#*-24.132] -N8841Y[#*18.977]Z[#*-23.816] -N8851Y[#*17.477]Z[#*-22.95] -N8861Y[#*16.477]Z[#*-22.344] -N8871Y[#*15.477]Z[#*-21.741] -N8881Y[#*14.477]Z[#*-21.206] -N8891Y[#*13.477]Z[#*-20.693] -N8901Y[#*11.477]Z[#*-19.818] -N8911Y[#*10.477]Z[#*-19.447] -N8921Y[#*8.477]Z[#*-18.766] -N8931Y[#*7.477]Z[#*-18.513] -N8941Y[#*6.477]Z[#*-18.259] -N8951Y[#*5.477]Z[#*-18.039] -N8961Y[#*3.477]Z[#*-17.72] -N8971Y[#*2.477]Z[#*-17.609] -N8981Y[#*0.477]Z[#*-17.495] -N8991Y[#*-0.523]Z[#*-17.497] -N9001Y[#*-2.523]Z[#*-17.612] -N9011Y[#*-3.523]Z[#*-17.727] -N9021Y[#*-5.523]Z[#*-18.046] -N9031Y[#*-6.523]Z[#*-18.271] -N9041Y[#*-8.523]Z[#*-18.779] -N9051Y[#*-10.523]Z[#*-19.463] -N9061Y[#*-11.523]Z[#*-19.838] -N9071Y[#*-13.523]Z[#*-20.713] -N9081Y[#*-14.523]Z[#*-21.231] -N9091Y[#*-15.523]Z[#*-21.765] -N9101Y[#*-16.523]Z[#*-22.374] -N9111Y[#*-17.523]Z[#*-22.975] -N9121Y[#*-19.023]Z[#*-23.843] -N9131Y[#*-19.523]Z[#*-24.168] -N9141Y[#*-20.023]Z[#*-24.39] -N9151Y[#*-20.523]Z[#*-24.546] -N9161Y[#*-21.023]Z[#*-24.679] -N9171Y[#*-22.023]Z[#*-24.764] -N9181Y[#*-23.523]Z[#*-24.67] -N9191Y[#*-24.523]Z[#*-24.53] -N9201Y[#*-25.523]Z[#*-24.411] -N9211Y[#*-26.523]Z[#*-24.318] -N9221Y[#*-27.523]Z[#*-24.257] -N9231Y[#*-28.523]Z[#*-24.205] -N9241Y[#*-30.523]Z[#*-24.082] -N9251Y[#*-31.523]Z[#*-24.022] -N9261Y[#*-32.523]Z[#*-24.012] -N9271Y[#*-33.523]Z[#*-24.063] -N9281Y[#*-34.523]Z[#*-24.148] -N9291Y[#*-35.523]Z[#*-24.247] -N9301Y[#*-36.523]Z[#*-24.376] -N9311Y[#*-37.023]Z[#*-24.472] -N9321Y[#*-37.523]Z[#*-24.597] -N9331Y[#*-38.023]Z[#*-24.767] -N9341Y[#*-38.523]Z[#*-24.98] -N9351Y[#*-39.523]Z[#*-25.446] -N9361Y[#*-40.023]Z[#*-25.73] -N9371Y[#*-40.523]Z[#*-26.067] -N9381Y[#*-40.773]Z[#*-26.279] -N9391Y[#*-41.023]Z[#*-26.535] -N9401Y[#*-41.523]Z[#*-27.196] -N9411Y[#*-42.023]Z[#*-27.897] -N9421Y[#*-42.273]Z[#*-28.385] -N9431Y[#*-42.773]Z[#*-29.629] -N9441Y[#*-42.898]Z[#*-29.974] -N9451Y[#*-42.96]Z[#*-30.238] -N9461Y[#*-43.015]Z[#*-30.481] -N9471Y[#*-43.023]Z[#*-30.5] -N9481Y[#*-50.523] -N9491Y[#*-53.] -N9501X[#*-4.528]Y[#*-53.293] -N9511X[#*-4.607]Y[#*-53.547] -N9521X[#*-4.731]Y[#*-53.762] -N9531X[#*-4.891]Y[#*-53.938] -N9541X[#*-5.08]Y[#*-54.074] -N9551X[#*-5.291]Y[#*-54.172] -N9561X[#*-5.517]Y[#*-54.23] -N9571X[#*-5.75]Y[#*-54.25] -N9581X[#*-5.983]Y[#*-54.23] -N9591X[#*-6.209]Y[#*-54.172] -N9601X[#*-6.426]Y[#*-54.07] -N9611X[#*-6.609]Y[#*-53.938] -N9621X[#*-6.769]Y[#*-53.762] -N9631X[#*-6.893]Y[#*-53.547] -N9641X[#*-6.972]Y[#*-53.293] -N9651X[#*-7.]Y[#*-53.] -N9661Y[#*-47.977] -N9671Y[#*-39.946] -N9681Y[#*-39.938]Z[#*-30.498] -N9691Y[#*-39.852]Z[#*-30.14] -N9701Y[#*-39.727]Z[#*-29.698] -N9711Y[#*-38.977]Z[#*-28.078] -N9721Y[#*-38.477]Z[#*-27.411] -N9731Y[#*-37.977]Z[#*-26.9] -N9741Y[#*-37.477]Z[#*-26.43] -N9751Y[#*-37.227]Z[#*-26.212] -N9761Y[#*-36.977]Z[#*-26.028] -N9771Y[#*-36.477]Z[#*-25.729] -N9781Y[#*-35.977]Z[#*-25.495] -N9791Y[#*-35.477]Z[#*-25.315] -N9801Y[#*-33.977]Z[#*-24.83] -N9811Y[#*-32.977]Z[#*-24.564] -N9821Y[#*-31.977]Z[#*-24.374] -N9831Y[#*-30.977]Z[#*-24.269] -N9841Y[#*-29.977]Z[#*-24.201] -N9851Y[#*-28.977]Z[#*-24.143] -N9861Y[#*-26.977]Z[#*-24.039] -N9871Y[#*-25.977]Z[#*-24.012] -N9881Y[#*-24.977]Z[#*-24.016] -N9891Y[#*-22.977]Z[#*-24.082] -N9901Y[#*-21.977]Z[#*-24.081] -N9911Y[#*-20.977]Z[#*-24.008] -N9921Y[#*-19.977]Z[#*-23.91] -N9931Y[#*-19.477]Z[#*-23.806] -N9941Y[#*-18.477]Z[#*-23.601] -N9951Y[#*-17.977]Z[#*-23.435] -N9961Y[#*-16.977]Z[#*-23.014] -N9971Y[#*-15.977]Z[#*-22.486] -N9981Y[#*-13.977]Z[#*-21.574] -N9991Y[#*-12.977]Z[#*-21.082] -N1Y[#*-10.977]Z[#*-20.245] -N11Y[#*-9.977]Z[#*-19.889] -N21Y[#*-8.977]Z[#*-19.548] -N31Y[#*-7.977]Z[#*-19.226] -N41Y[#*-5.977]Z[#*-18.716] -N51Y[#*-4.977]Z[#*-18.511] -N61Y[#*-2.977]Z[#*-18.186] -N71Y[#*-1.977]Z[#*-18.11] -N81Y[#*0.023]Z[#*-17.997] -N91Y[#*2.023]Z[#*-18.113] -N101Y[#*3.023]Z[#*-18.193] -N111Y[#*5.023]Z[#*-18.519] -N121Y[#*6.023]Z[#*-18.727] -N131Y[#*8.023]Z[#*-19.238] -N141Y[#*9.023]Z[#*-19.564] -N151Y[#*10.023]Z[#*-19.905] -N161Y[#*11.023]Z[#*-20.263] -N171Y[#*13.023]Z[#*-21.102] -N181Y[#*14.023]Z[#*-21.597] -N191Y[#*16.023]Z[#*-22.508] -N201Y[#*17.023]Z[#*-23.039] -N211Y[#*17.523]Z[#*-23.279] -N221Y[#*18.023]Z[#*-23.451] -N231Y[#*19.023]Z[#*-23.712] -N241Y[#*20.023]Z[#*-23.92] -N251Y[#*21.023]Z[#*-24.012] -N261Y[#*22.023]Z[#*-24.082] -N271Y[#*23.023] -N281Y[#*25.023]Z[#*-24.015] -N291Y[#*26.023]Z[#*-24.012] -N301Y[#*27.023]Z[#*-24.041] -N311Y[#*29.023]Z[#*-24.146] -N321Y[#*30.023]Z[#*-24.203] -N331Y[#*31.023]Z[#*-24.272] -N341Y[#*32.023]Z[#*-24.381] -N351Y[#*33.023]Z[#*-24.575] -N361Y[#*34.023]Z[#*-24.845] -N371Y[#*35.523]Z[#*-25.33] -N381Y[#*36.023]Z[#*-25.515] -N391Y[#*36.523]Z[#*-25.753] -N401Y[#*37.023]Z[#*-26.059] -N411Y[#*37.523]Z[#*-26.473] -N421Y[#*38.023]Z[#*-26.943] -N431Y[#*38.523]Z[#*-27.465] -N441Y[#*38.773]Z[#*-27.764] -N451Y[#*39.023]Z[#*-28.167] -N461Y[#*39.523]Z[#*-29.254] -N471Y[#*39.773]Z[#*-29.829] -N481Y[#*39.882]Z[#*-30.266] -N491Y[#*39.937]Z[#*-30.494] -N501Y[#*39.945]Z[#*-30.5] -N511Y[#*49.023] -N521Y[#*53.] -N531X[#*-7.028]Y[#*53.293] -N541X[#*-7.107]Y[#*53.547] -N551X[#*-7.231]Y[#*53.762] -N561X[#*-7.391]Y[#*53.937] -N571X[#*-7.58]Y[#*54.074] -N581X[#*-7.791]Y[#*54.172] -N591X[#*-8.017]Y[#*54.23] -N601X[#*-8.25]Y[#*54.25] -N611X[#*-8.483]Y[#*54.23] -N621X[#*-8.709]Y[#*54.172] -N631X[#*-8.92]Y[#*54.074] -N641X[#*-9.109]Y[#*53.937] -N651X[#*-9.269]Y[#*53.762] -N661X[#*-9.393]Y[#*53.547] -N671X[#*-9.472]Y[#*53.293] -N681X[#*-9.5]Y[#*53.] -N691Y[#*51.733] -N701Y[#*43.733] -N711Y[#*42.733] -N721Y[#*36.421] -N731Y[#*36.382] -N741Y[#*36.374]Z[#*-30.477] -N751Y[#*36.296]Z[#*-30.202] -N761Y[#*36.202]Z[#*-29.885] -N771Y[#*36.171]Z[#*-29.786] -N781Y[#*36.108]Z[#*-29.625] -N791Y[#*35.983]Z[#*-29.386] -N801Y[#*35.233]Z[#*-28.184] -N811Y[#*34.733]Z[#*-27.53] -N821Y[#*34.608]Z[#*-27.415] -N831Y[#*34.233]Z[#*-27.114] -N841Y[#*32.733]Z[#*-26.105] -N851Y[#*32.233]Z[#*-25.821] -N861Y[#*31.733]Z[#*-25.613] -N871Y[#*31.233]Z[#*-25.442] -N881Y[#*30.733]Z[#*-25.299] -N891Y[#*29.733]Z[#*-25.072] -N901Y[#*28.733]Z[#*-24.872] -N911Y[#*26.733]Z[#*-24.529] -N921Y[#*25.733]Z[#*-24.397] -N931Y[#*24.733]Z[#*-24.307] -N941Y[#*22.733]Z[#*-24.202] -N951Y[#*21.733]Z[#*-24.131] -N961Y[#*20.733]Z[#*-24.026] -N971Y[#*19.733]Z[#*-23.905] -N981Y[#*17.733]Z[#*-23.524] -N991Y[#*16.733]Z[#*-23.215] -N1001Y[#*15.733]Z[#*-22.882] -N1011Y[#*14.733]Z[#*-22.48] -N1021Y[#*13.733]Z[#*-22.038] -N1031Y[#*12.733]Z[#*-21.623] -N1041Y[#*10.733]Z[#*-20.846] -N1051Y[#*9.733]Z[#*-20.474] -N1061Y[#*7.733]Z[#*-19.81] -N1071Y[#*5.733]Z[#*-19.286] -N1081Y[#*4.733]Z[#*-19.075] -N1091Y[#*2.733]Z[#*-18.733] -N1101Y[#*2.233]Z[#*-18.693] -N1111Y[#*0.233]Z[#*-18.565] -N1121Y[#*-0.267]Z[#*-18.567] -N1131Y[#*-1.267]Z[#*-18.63] -N1141Y[#*-2.267]Z[#*-18.695] -N1151Y[#*-3.267]Z[#*-18.825] -N1161Y[#*-5.267]Z[#*-19.168] -N1171Y[#*-7.267]Z[#*-19.685] -N1181Y[#*-8.267]Z[#*-19.984] -N1191Y[#*-10.267]Z[#*-20.66] -N1201Y[#*-11.267]Z[#*-21.058] -N1211Y[#*-12.267]Z[#*-21.438] -N1221Y[#*-13.267]Z[#*-21.836] -N1231Y[#*-15.267]Z[#*-22.706] -N1241Y[#*-16.267]Z[#*-23.071] -N1251Y[#*-17.267]Z[#*-23.38] -N1261Y[#*-18.267]Z[#*-23.628] -N1271Y[#*-19.267]Z[#*-23.824] -N1281Y[#*-20.267]Z[#*-23.969] -N1291Y[#*-21.267]Z[#*-24.092] -N1301Y[#*-22.267]Z[#*-24.169] -N1311Y[#*-23.267]Z[#*-24.236] -N1321Y[#*-24.267]Z[#*-24.28] -N1331Y[#*-25.267]Z[#*-24.35] -N1341Y[#*-26.267]Z[#*-24.462] -N1351Y[#*-27.267]Z[#*-24.618] -N1361Y[#*-28.267]Z[#*-24.789] -N1371Y[#*-29.267]Z[#*-24.975] -N1381Y[#*-30.267]Z[#*-25.186] -N1391Y[#*-31.267]Z[#*-25.453] -N1401Y[#*-31.767]Z[#*-25.626] -N1411Y[#*-32.267]Z[#*-25.838] -N1421Y[#*-32.767]Z[#*-26.126] -N1431Y[#*-33.267]Z[#*-26.462] -N1441Y[#*-33.767]Z[#*-26.798] -N1451Y[#*-34.267]Z[#*-27.139] -N1461Y[#*-34.767]Z[#*-27.564] -N1471Y[#*-35.017]Z[#*-27.851] -N1481Y[#*-35.275]Z[#*-28.251] -N1491Y[#*-35.517]Z[#*-28.646] -N1501Y[#*-36.017]Z[#*-29.443] -N1511Y[#*-36.142]Z[#*-29.706] -N1521Y[#*-36.267]Z[#*-30.1] -N1531Y[#*-36.282]Z[#*-30.155] -N1541Y[#*-36.376]Z[#*-30.485] -N1551Y[#*-36.384]Z[#*-30.5] -N1561Y[#*-36.517] -N1571Y[#*-53.] -N1581X[#*-9.528]Y[#*-53.293] -N1591X[#*-9.607]Y[#*-53.547] -N1601X[#*-9.731]Y[#*-53.762] -N1611X[#*-9.891]Y[#*-53.938] -N1621X[#*-10.08]Y[#*-54.074] -N1631X[#*-10.291]Y[#*-54.172] -N1641X[#*-10.517]Y[#*-54.23] -N1651X[#*-10.75]Y[#*-54.25] -N1661X[#*-10.983]Y[#*-54.23] -N1671X[#*-11.209]Y[#*-54.172] -N1681X[#*-11.42]Y[#*-54.074] -N1691X[#*-11.609]Y[#*-53.938] -N1701X[#*-11.769]Y[#*-53.762] -N1711X[#*-11.893]Y[#*-53.547] -N1721X[#*-11.972]Y[#*-53.293] -N1731X[#*-12.]Y[#*-53.] -N1741Y[#*-50.29] -N1751Y[#*-48.29] -N1761Y[#*-45.29] -N1771Y[#*-34.29] -N1781Y[#*-32.266] -N1791Y[#*-32.258]Z[#*-30.497] -N1801Y[#*-32.227]Z[#*-30.416] -N1811Y[#*-32.165]Z[#*-30.253] -N1821Y[#*-31.852]Z[#*-29.568] -N1831Y[#*-31.79]Z[#*-29.458] -N1841Y[#*-31.29]Z[#*-28.844] -N1851Y[#*-30.79]Z[#*-28.287] -N1861Y[#*-30.29]Z[#*-27.796] -N1871Y[#*-29.79]Z[#*-27.391] -N1881Y[#*-29.29]Z[#*-27.086] -N1891Y[#*-28.79]Z[#*-26.843] -N1901Y[#*-28.29]Z[#*-26.625] -N1911Y[#*-27.29]Z[#*-26.221] -N1921Y[#*-26.29]Z[#*-25.856] -N1931Y[#*-25.29]Z[#*-25.537] -N1941Y[#*-24.29]Z[#*-25.305] -N1951Y[#*-21.29]Z[#*-24.785] -N1961Y[#*-19.29]Z[#*-24.341] -N1971Y[#*-18.29]Z[#*-24.088] -N1981Y[#*-17.29]Z[#*-23.865] -N1991Y[#*-16.29]Z[#*-23.55] -N2001Y[#*-15.29]Z[#*-23.216] -N2011Y[#*-11.29]Z[#*-21.665] -N2021Y[#*-10.29]Z[#*-21.291] -N2031Y[#*-9.29]Z[#*-20.93] -N2041Y[#*-8.29]Z[#*-20.592] -N2051Y[#*-7.29]Z[#*-20.265] -N2061Y[#*-5.29]Z[#*-19.724] -N2071Y[#*-4.29]Z[#*-19.517] -N2081Y[#*-3.29]Z[#*-19.336] -N2091Y[#*-2.29]Z[#*-19.187] -N2101Y[#*-0.29]Z[#*-19.05] -N2111Y[#*0.21]Z[#*-19.045] -N2121Y[#*2.21]Z[#*-19.182] -N2131Y[#*2.71]Z[#*-19.233] -N2141Y[#*4.71]Z[#*-19.594] -N2151Y[#*5.71]Z[#*-19.838] -N2161Y[#*6.71]Z[#*-20.111] -N2171Y[#*7.71]Z[#*-20.399] -N2181Y[#*9.71]Z[#*-21.076] -N2191Y[#*11.71]Z[#*-21.824] -N2201Y[#*14.71]Z[#*-22.992] -N2211Y[#*15.71]Z[#*-23.362] -N2221Y[#*16.71]Z[#*-23.687] -N2231Y[#*17.71]Z[#*-23.955] -N2241Y[#*19.71]Z[#*-24.434] -N2251Y[#*20.71]Z[#*-24.659] -N2261Y[#*21.71]Z[#*-24.856] -N2271Y[#*22.71]Z[#*-25.036] -N2281Y[#*23.71]Z[#*-25.202] -N2291Y[#*24.71]Z[#*-25.394] -N2301Y[#*25.71]Z[#*-25.659] -N2311Y[#*26.71]Z[#*-26.008] -N2321Y[#*27.71]Z[#*-26.382] -N2331Y[#*28.71]Z[#*-26.808] -N2341Y[#*29.21]Z[#*-27.045] -N2351Y[#*29.46]Z[#*-27.182] -N2361Y[#*29.71]Z[#*-27.337] -N2371Y[#*30.21]Z[#*-27.727] -N2381Y[#*30.71]Z[#*-28.205] -N2391Y[#*31.585]Z[#*-29.178] -N2401Y[#*31.71]Z[#*-29.338] -N2411Y[#*31.96]Z[#*-29.799] -N2421Y[#*32.179]Z[#*-30.291] -N2431Y[#*32.226]Z[#*-30.413] -N2441Y[#*32.257]Z[#*-30.494] -N2451Y[#*32.265]Z[#*-30.5] -N2461Y[#*34.71] -N2471Y[#*35.71] -N2481Y[#*41.71] -N2491Y[#*53.] -N2501Y[#*53.008] -N2511X[#*-12.028]Y[#*53.293] -N2521X[#*-12.107]Y[#*53.547] -N2531X[#*-12.231]Y[#*53.762] -N2541X[#*-12.391]Y[#*53.937] -N2551X[#*-12.58]Y[#*54.074] -N2561X[#*-12.791]Y[#*54.172] -N2571X[#*-13.017]Y[#*54.23] -N2581X[#*-13.25]Y[#*54.25] -N2591X[#*-13.483]Y[#*54.23] -N2601X[#*-13.709]Y[#*54.172] -N2611X[#*-13.92]Y[#*54.074] -N2621X[#*-14.109]Y[#*53.937] -N2631X[#*-14.269]Y[#*53.762] -N2641X[#*-14.393]Y[#*53.547] -N2651X[#*-14.472]Y[#*53.293] -N2661X[#*-14.5]Y[#*53.] -N2671Y[#*47.404] -N2681Y[#*44.404] -N2691Y[#*40.404] -N2701Y[#*34.404] -N2711Y[#*33.404] -N2721Y[#*28.404] -N2731Y[#*27.185] -N2741Y[#*27.162]Z[#*-30.498] -N2751Y[#*27.146]Z[#*-30.475] -N2761Y[#*26.654]Z[#*-29.768] -N2771Y[#*26.404]Z[#*-29.417] -N2781Y[#*26.154]Z[#*-29.151] -N2791Y[#*25.904]Z[#*-28.943] -N2801Y[#*25.404]Z[#*-28.605] -N2811Y[#*23.904]Z[#*-27.618] -N2821Y[#*23.404]Z[#*-27.307] -N2831Y[#*22.904]Z[#*-27.056] -N2841Y[#*22.404]Z[#*-26.852] -N2851Y[#*21.404]Z[#*-26.48] -N2861Y[#*20.404]Z[#*-26.055] -N2871Y[#*19.404]Z[#*-25.615] -N2881Y[#*18.404]Z[#*-25.162] -N2891Y[#*17.404]Z[#*-24.801] -N2901Y[#*16.904]Z[#*-24.636] -N2911Y[#*16.404]Z[#*-24.452] -N2921Y[#*15.404]Z[#*-23.963] -N2931Y[#*14.404]Z[#*-23.489] -N2941Y[#*13.404]Z[#*-23.028] -N2951Y[#*12.404]Z[#*-22.586] -N2961Y[#*11.404]Z[#*-22.167] -N2971Y[#*10.404]Z[#*-21.768] -N2981Y[#*8.404]Z[#*-20.994] -N2991Y[#*7.404]Z[#*-20.64] -N3001Y[#*6.404]Z[#*-20.331] -N3011Y[#*5.404]Z[#*-20.042] -N3021Y[#*4.404]Z[#*-19.797] -N3031Y[#*2.904]Z[#*-19.511] -N3041Y[#*2.404]Z[#*-19.429] -N3051Y[#*0.404]Z[#*-19.283] -N3061Y[#*-0.596]Z[#*-19.297] -N3071Y[#*-2.096]Z[#*-19.403] -N3081Y[#*-2.596]Z[#*-19.454] -N3091Y[#*-4.596]Z[#*-19.833] -N3101Y[#*-5.596]Z[#*-20.101] -N3111Y[#*-6.596]Z[#*-20.389] -N3121Y[#*-7.596]Z[#*-20.712] -N3131Y[#*-8.596]Z[#*-21.064] -N3141Y[#*-10.596]Z[#*-21.844] -N3151Y[#*-11.596]Z[#*-22.248] -N3161Y[#*-12.596]Z[#*-22.667] -N3171Y[#*-14.596]Z[#*-23.577] -N3181Y[#*-16.596]Z[#*-24.546] -N3191Y[#*-17.096]Z[#*-24.696] -N3201Y[#*-17.596]Z[#*-24.867] -N3211Y[#*-18.596]Z[#*-25.242] -N3221Y[#*-19.596]Z[#*-25.698] -N3231Y[#*-20.596]Z[#*-26.139] -N3241Y[#*-21.596]Z[#*-26.553] -N3251Y[#*-22.596]Z[#*-26.926] -N3261Y[#*-23.096]Z[#*-27.147] -N3271Y[#*-23.596]Z[#*-27.421] -N3281Y[#*-25.596]Z[#*-28.732] -N3291Y[#*-26.096]Z[#*-29.099] -N3301Y[#*-26.346]Z[#*-29.348] -N3311Y[#*-26.596]Z[#*-29.685] -N3321Y[#*-27.159]Z[#*-30.493] -N3331Y[#*-27.166]Z[#*-30.5] -N3341Y[#*-28.596] -N3351Y[#*-49.596] -N3361Y[#*-53.] -N3371X[#*-14.528]Y[#*-53.293] -N3381X[#*-14.607]Y[#*-53.547] -N3391X[#*-14.731]Y[#*-53.762] -N3401X[#*-14.891]Y[#*-53.938] -N3411X[#*-15.08]Y[#*-54.074] -N3421X[#*-15.291]Y[#*-54.172] -N3431X[#*-15.517]Y[#*-54.23] -N3441X[#*-15.75]Y[#*-54.25] -N3451X[#*-15.983]Y[#*-54.23] -N3461X[#*-16.209]Y[#*-54.172] -N3471X[#*-16.42]Y[#*-54.074] -N3481X[#*-16.609]Y[#*-53.938] -N3491X[#*-16.769]Y[#*-53.762] -N3501X[#*-16.893]Y[#*-53.547] -N3511X[#*-16.972]Y[#*-53.293] -N3521X[#*-17.]Y[#*-53.] -N3531Y[#*-52.514] -N3541Y[#*-33.514] -N3551Y[#*-24.514] -N3561Y[#*-21.092] -N3571Y[#*-21.014]Z[#*-30.403] -N3581Y[#*-20.514]Z[#*-29.729] -N3591Y[#*-20.014]Z[#*-29.158] -N3601Y[#*-19.514]Z[#*-28.749] -N3611Y[#*-18.514]Z[#*-27.893] -N3621Y[#*-18.014]Z[#*-27.432] -N3631Y[#*-17.514]Z[#*-27.066] -N3641Y[#*-16.764]Z[#*-26.575] -N3651Y[#*-16.514]Z[#*-26.366] -N3661Y[#*-16.014]Z[#*-25.809] -N3671Y[#*-15.514]Z[#*-25.378] -N3681Y[#*-14.514]Z[#*-24.555] -N3691Y[#*-14.014]Z[#*-24.133] -N3701Y[#*-13.514]Z[#*-23.725] -N3711Y[#*-13.014]Z[#*-23.379] -N3721Y[#*-11.514]Z[#*-22.459] -N3731Y[#*-10.514]Z[#*-21.8] -N3741Y[#*-10.014]Z[#*-21.52] -N3751Y[#*-9.514]Z[#*-21.257] -N3761Y[#*-9.014]Z[#*-21.039] -N3771Y[#*-8.514]Z[#*-20.843] -N3781Y[#*-7.514]Z[#*-20.425] -N3791Y[#*-7.014]Z[#*-20.229] -N3801Y[#*-6.264]Z[#*-19.982] -N3811Y[#*-6.053]Z[#*-19.913] -N3821Y[#*-6.022]Z[#*-19.903] -N3831Y[#*-6.014]Z[#*-12.363] -N3841Y[#*-5.967]Z[#*-11.562] -N3851Y[#*-5.904]Z[#*-10.677] -N3861Y[#*-5.858]Z[#*-10.325] -N3871Y[#*-5.826]Z[#*-10.152] -N3881Y[#*-5.818]Z[#*-10.112] -N3891Y[#*-5.639]Z[#*-9.286] -N3901Y[#*-5.514]Z[#*-8.765] -N3911Y[#*-5.264]Z[#*-8.079] -N3921Y[#*-5.014]Z[#*-7.332] -N3931Y[#*-4.764]Z[#*-6.818] -N3941Y[#*-4.514]Z[#*-6.361] -N3951Y[#*-4.139]Z[#*-5.75] -N3961Y[#*-4.076]Z[#*-5.656] -N3971Y[#*-4.014]Z[#*-5.569] -N3981Y[#*-3.764]Z[#*-5.292] -N3991Y[#*-3.639]Z[#*-5.182] -N4001Y[#*-3.514]Z[#*-5.088] -N4011Y[#*-3.014]Z[#*-4.783] -N4021Y[#*-2.514]Z[#*-4.54] -N4031Y[#*-2.014]Z[#*-4.327] -N4041Y[#*-1.514]Z[#*-4.162] -N4051Y[#*-0.514]Z[#*-3.947] -N4061Y[#*-0.264]Z[#*-3.913] -N4071Y[#*-0.014]Z[#*-3.906] -N4081Y[#*0.986]Z[#*-4.012] -N4091Y[#*1.236]Z[#*-4.044] -N4101Y[#*1.486]Z[#*-4.1] -N4111Y[#*1.986]Z[#*-4.294] -N4121Y[#*2.361]Z[#*-4.459] -N4131Y[#*2.471]Z[#*-4.507] -N4141Y[#*2.736]Z[#*-4.633] -N4151Y[#*2.986]Z[#*-4.79] -N4161Y[#*3.486]Z[#*-5.22] -N4171Y[#*3.986]Z[#*-5.678] -N4181Y[#*4.236]Z[#*-5.959] -N4191Y[#*4.486]Z[#*-6.321] -N4201Y[#*4.736]Z[#*-6.747] -N4211Y[#*4.986]Z[#*-7.217] -N4221Y[#*5.674]Z[#*-8.892] -N4231Y[#*5.892]Z[#*-9.623] -N4241Y[#*5.924]Z[#*-9.81] -N4251Y[#*5.955]Z[#*-10.251] -N4261Y[#*6.002]Z[#*-11.003] -N4271Y[#*6.01]Z[#*-11.14] -N4281Y[#*6.017]Z[#*-11.305] -N4291Y[#*6.033]Z[#*-12.064] -N4301Y[#*6.041]Z[#*-19.9] -N4311Y[#*6.486]Z[#*-20.047] -N4321Y[#*7.486]Z[#*-20.402] -N4331Y[#*8.486]Z[#*-20.824] -N4341Y[#*8.986]Z[#*-21.021] -N4351Y[#*9.486]Z[#*-21.238] -N4361Y[#*10.486]Z[#*-21.779] -N4371Y[#*11.486]Z[#*-22.434] -N4381Y[#*12.986]Z[#*-23.361] -N4391Y[#*13.486]Z[#*-23.703] -N4401Y[#*13.986]Z[#*-24.108] -N4411Y[#*14.486]Z[#*-24.535] -N4421Y[#*14.986]Z[#*-24.935] -N4431Y[#*15.986]Z[#*-25.782] -N4441Y[#*16.361]Z[#*-26.191] -N4451Y[#*16.424]Z[#*-26.263] -N4461Y[#*16.486]Z[#*-26.335] -N4471Y[#*16.736]Z[#*-26.557] -N4481Y[#*16.986]Z[#*-26.72] -N4491Y[#*17.486]Z[#*-27.047] -N4501Y[#*17.986]Z[#*-27.409] -N4511Y[#*18.486]Z[#*-27.867] -N4521Y[#*19.486]Z[#*-28.727] -N4531Y[#*19.986]Z[#*-29.134] -N4541Y[#*20.486]Z[#*-29.692] -N4551Y[#*20.986]Z[#*-30.366] -N4561Y[#*21.017]Z[#*-30.408] -N4571Y[#*21.088]Z[#*-30.499] -N4581Y[#*21.096] -N4591Y[#*39.486] -N4601Y[#*52.992] -N4611Y[#*53.] -N4621X[#*-17.028]Y[#*53.293] -N4631X[#*-17.107]Y[#*53.547] -N4641X[#*-17.231]Y[#*53.762] -N4651X[#*-17.391]Y[#*53.937] -N4661X[#*-17.58]Y[#*54.074] -N4671X[#*-17.791]Y[#*54.172] -N4681X[#*-18.017]Y[#*54.23] -N4691X[#*-18.25]Y[#*54.25] -N4701X[#*-18.483]Y[#*54.23] -N4711X[#*-18.709]Y[#*54.172] -N4721X[#*-18.92]Y[#*54.074] -N4731X[#*-19.109]Y[#*53.937] -N4741X[#*-19.269]Y[#*53.762] -N4751X[#*-19.393]Y[#*53.547] -N4761X[#*-19.472]Y[#*53.293] -N4771X[#*-19.5]Y[#*53.] -N4781Y[#*48.079] -N4791Y[#*29.079] -N4801Y[#*16.204] -N4811Y[#*16.173] -N4821Y[#*16.165]Z[#*-30.482] -N4831Y[#*15.954]Z[#*-29.986] -N4841Y[#*15.829]Z[#*-29.693] -N4851Y[#*15.579]Z[#*-29.263] -N4861Y[#*15.079]Z[#*-28.207] -N4871Y[#*14.079]Z[#*-26.21] -N4881Y[#*13.079]Z[#*-24.403] -N4891Y[#*12.579]Z[#*-23.626] -N4901Y[#*12.079]Z[#*-22.939] -N4911Y[#*11.579]Z[#*-22.118] -N4921Y[#*11.079]Z[#*-21.487] -N4931Y[#*10.829]Z[#*-21.258] -N4941Y[#*10.579]Z[#*-21.07] -N4951Y[#*9.954]Z[#*-20.63] -N4961Y[#*9.931]Z[#*-20.614] -N4971Y[#*9.876]Z[#*-20.303] -N4981Y[#*9.845]Z[#*-20.136] -N4991Y[#*9.837]Z[#*-20.092] -N5001Y[#*9.767]Z[#*-19.616] -N5011Y[#*9.759]Z[#*-19.465] -N5021Y[#*9.744]Z[#*-19.07] -N5031Y[#*9.736]Z[#*-18.921] -N5041Y[#*9.728]Z[#*-18.793] -N5051Y[#*9.712]Z[#*-18.576] -N5061Y[#*9.634]Z[#*-17.798] -N5071Y[#*9.611]Z[#*-17.602] -N5081Y[#*9.501]Z[#*-16.796] -N5091Y[#*9.47]Z[#*-16.588] -N5101Y[#*9.439]Z[#*-16.387] -N5111Y[#*9.361]Z[#*-15.937] -N5121Y[#*9.064]Z[#*-14.52] -N5131Y[#*8.954]Z[#*-14.036] -N5141Y[#*8.829]Z[#*-13.551] -N5151Y[#*8.579]Z[#*-12.716] -N5161Y[#*8.079]Z[#*-11.138] -N5171Y[#*7.329]Z[#*-9.06] -N5181Y[#*7.079]Z[#*-8.442] -N5191Y[#*6.579]Z[#*-7.47] -N5201Y[#*6.079]Z[#*-6.587] -N5211Y[#*5.579]Z[#*-5.847] -N5221Y[#*5.079]Z[#*-5.253] -N5231Y[#*4.579]Z[#*-4.748] -N5241Y[#*4.079]Z[#*-4.326] -N5251Y[#*3.579]Z[#*-4.012] -N5261Y[#*3.079]Z[#*-3.708] -N5271Y[#*2.579]Z[#*-3.496] -N5281Y[#*1.579]Z[#*-3.177] -N5291Y[#*1.079]Z[#*-3.089] -N5301Y[#*0.079]Z[#*-3.018] -N5311Y[#*-0.421]Z[#*-3.029] -N5321Y[#*-1.421]Z[#*-3.198] -N5331Y[#*-1.921]Z[#*-3.305] -N5341Y[#*-2.921]Z[#*-3.64] -N5351Y[#*-3.421]Z[#*-3.833] -N5361Y[#*-3.671]Z[#*-3.969] -N5371Y[#*-3.921]Z[#*-4.137] -N5381Y[#*-4.171]Z[#*-4.347] -N5391Y[#*-4.921]Z[#*-5.065] -N5401Y[#*-5.421]Z[#*-5.654] -N5411Y[#*-5.921]Z[#*-6.345] -N5421Y[#*-6.421]Z[#*-7.199] -N5431Y[#*-6.921]Z[#*-8.144] -N5441Y[#*-7.421]Z[#*-9.27] -N5451Y[#*-7.921]Z[#*-10.587] -N5461Y[#*-8.921]Z[#*-13.774] -N5471Y[#*-9.046]Z[#*-14.287] -N5481Y[#*-9.139]Z[#*-14.737] -N5491Y[#*-9.413]Z[#*-16.16] -N5501Y[#*-9.514]Z[#*-16.841] -N5511Y[#*-9.585]Z[#*-17.381] -N5521Y[#*-9.631]Z[#*-17.785] -N5531Y[#*-9.647]Z[#*-17.931] -N5541Y[#*-9.725]Z[#*-18.833] -N5551Y[#*-9.756]Z[#*-19.586] -N5561Y[#*-9.772]Z[#*-19.761] -N5571Y[#*-9.819]Z[#*-20.098] -N5581Y[#*-9.827]Z[#*-20.144] -N5591Y[#*-9.866]Z[#*-20.356] -N5601Y[#*-9.881]Z[#*-20.442] -N5611Y[#*-9.905]Z[#*-20.582] -N5621Y[#*-9.921]Z[#*-20.615] -N5631Y[#*-9.983]Z[#*-20.658] -N5641Y[#*-10.421]Z[#*-20.962] -N5651Y[#*-10.921]Z[#*-21.339] -N5661Y[#*-11.171]Z[#*-21.586] -N5671Y[#*-11.421]Z[#*-21.891] -N5681Y[#*-11.671]Z[#*-22.279] -N5691Y[#*-11.921]Z[#*-22.741] -N5701Y[#*-12.421]Z[#*-23.388] -N5711Y[#*-12.921]Z[#*-24.142] -N5721Y[#*-13.921]Z[#*-25.882] -N5731Y[#*-14.921]Z[#*-27.857] -N5741Y[#*-15.921]Z[#*-29.906] -N5751Y[#*-16.108]Z[#*-30.347] -N5761Y[#*-16.171]Z[#*-30.494] -N5771Y[#*-16.178]Z[#*-30.5] -N5781Y[#*-19.921] -N5791Y[#*-22.921] -N5801Y[#*-25.921] -N5811Y[#*-29.921] -N5821Y[#*-40.921] -N5831Y[#*-43.921] -N5841Y[#*-46.921] -N5851Y[#*-53.] -N5861X[#*-19.528]Y[#*-53.293] -N5871X[#*-19.607]Y[#*-53.547] -N5881X[#*-19.731]Y[#*-53.762] -N5891X[#*-19.891]Y[#*-53.938] -N5901X[#*-20.08]Y[#*-54.074] -N5911X[#*-20.291]Y[#*-54.172] -N5921X[#*-20.517]Y[#*-54.23] -N5931X[#*-20.75]Y[#*-54.25] -N5941X[#*-20.983]Y[#*-54.23] -N5951X[#*-21.209]Y[#*-54.172] -N5961X[#*-21.42]Y[#*-54.074] -N5971X[#*-21.609]Y[#*-53.938] -N5981X[#*-21.769]Y[#*-53.762] -N5991X[#*-21.893]Y[#*-53.547] -N6001X[#*-21.972]Y[#*-53.293] -N6011X[#*-22.]Y[#*-53.] -N6021Y[#*-50.555] -N6031Y[#*-38.555] -N6041Y[#*-26.555] -N6051Y[#*-20.555] -N6061Y[#*-18.555] -N6071Y[#*-14.688] -N6081Y[#*-14.68]Z[#*-30.482] -N6091Y[#*-14.665]Z[#*-30.389] -N6101Y[#*-14.626]Z[#*-30.156] -N6111Y[#*-14.618]Z[#*-30.11] -N6121Y[#*-14.595]Z[#*-29.97] -N6131Y[#*-14.571]Z[#*-29.832] -N6141Y[#*-14.563]Z[#*-29.792] -N6151Y[#*-14.555]Z[#*-29.755] -N6161Y[#*-14.055]Z[#*-27.768] -N6171Y[#*-13.555]Z[#*-26.211] -N6181Y[#*-12.555]Z[#*-23.683] -N6191Y[#*-12.055]Z[#*-22.389] -N6201Y[#*-11.805]Z[#*-21.791] -N6211Y[#*-11.555]Z[#*-21.113] -N6221Y[#*-11.055]Z[#*-19.281] -N6231Y[#*-10.555]Z[#*-17.354] -N6241Y[#*-9.555]Z[#*-14.264] -N6251Y[#*-8.555]Z[#*-11.895] -N6261Y[#*-8.055]Z[#*-10.826] -N6271Y[#*-7.805]Z[#*-10.325] -N6281Y[#*-7.555]Z[#*-9.651] -N6291Y[#*-7.055]Z[#*-7.998] -N6301Y[#*-6.805]Z[#*-7.28] -N6311Y[#*-6.305]Z[#*-6.083] -N6321Y[#*-6.055]Z[#*-5.574] -N6331Y[#*-5.555]Z[#*-4.716] -N6341Y[#*-5.055]Z[#*-4.009] -N6351Y[#*-4.555]Z[#*-3.427] -N6361Y[#*-4.055]Z[#*-2.89] -N6371Y[#*-3.805]Z[#*-2.67] -N6381Y[#*-3.555]Z[#*-2.495] -N6391Y[#*-3.055]Z[#*-2.246] -N6401Y[#*-2.055]Z[#*-1.895] -N6411Y[#*-1.555]Z[#*-1.747] -N6421Y[#*-0.555]Z[#*-1.593] -N6431Y[#*-0.055]Z[#*-1.546] -N6441Y[#*0.445]Z[#*-1.586] -N6451Y[#*1.32]Z[#*-1.711] -N6461Y[#*1.445]Z[#*-1.733] -N6471Y[#*1.945]Z[#*-1.885] -N6481Y[#*2.945]Z[#*-2.298] -N6491Y[#*3.195]Z[#*-2.418] -N6501Y[#*3.445]Z[#*-2.571] -N6511Y[#*3.945]Z[#*-2.945] -N6521Y[#*4.445]Z[#*-3.373] -N6531Y[#*4.945]Z[#*-3.921] -N6541Y[#*5.445]Z[#*-4.537] -N6551Y[#*5.945]Z[#*-5.382] -N6561Y[#*6.195]Z[#*-5.833] -N6571Y[#*6.445]Z[#*-6.365] -N6581Y[#*7.445]Z[#*-9.] -N6591Y[#*8.445]Z[#*-11.764] -N6601Y[#*9.445]Z[#*-14.079] -N6611Y[#*10.445]Z[#*-16.989] -N6621Y[#*10.945]Z[#*-18.808] -N6631Y[#*11.195]Z[#*-19.847] -N6641Y[#*11.445]Z[#*-20.762] -N6651Y[#*11.945]Z[#*-22.143] -N6661Y[#*12.945]Z[#*-24.635] -N6671Y[#*13.445]Z[#*-25.923] -N6681Y[#*13.945]Z[#*-27.421] -N6691Y[#*14.195]Z[#*-28.263] -N6701Y[#*14.32]Z[#*-28.777] -N6711Y[#*14.538]Z[#*-29.68] -N6721Y[#*14.601]Z[#*-30.008] -N6731Y[#*14.679]Z[#*-30.473] -N6741Y[#*14.687]Z[#*-30.5] -N6751Y[#*17.445] -N6761Y[#*18.445] -N6771Y[#*21.445] -N6781Y[#*25.445] -N6791Y[#*40.445] -N6801Y[#*47.445] -N6811Y[#*53.] -N6821Y[#*53.008] -N6831X[#*-22.028]Y[#*53.293] -N6841X[#*-22.107]Y[#*53.547] -N6851X[#*-22.231]Y[#*53.762] -N6861X[#*-22.391]Y[#*53.937] -N6871X[#*-22.58]Y[#*54.074] -N6881X[#*-22.791]Y[#*54.172] -N6891X[#*-23.017]Y[#*54.23] -N6901X[#*-23.25]Y[#*54.25] -N6911X[#*-23.483]Y[#*54.23] -N6921X[#*-23.709]Y[#*54.172] -N6931X[#*-23.92]Y[#*54.074] -N6941X[#*-24.109]Y[#*53.937] -N6951X[#*-24.269]Y[#*53.762] -N6961X[#*-24.393]Y[#*53.547] -N6971X[#*-24.472]Y[#*53.293] -N6981X[#*-24.5]Y[#*53.] -N6991Y[#*41.543] -N7001Y[#*34.543] -N7011Y[#*15.035] -N7021Y[#*15.027]Z[#*-30.463] -N7031Y[#*14.926]Z[#*-29.828] -N7041Y[#*14.871]Z[#*-29.55] -N7051Y[#*14.73]Z[#*-28.975] -N7061Y[#*14.543]Z[#*-28.203] -N7071Y[#*14.043]Z[#*-26.578] -N7081Y[#*13.543]Z[#*-25.286] -N7091Y[#*12.543]Z[#*-23.003] -N7101Y[#*11.543]Z[#*-20.762] -N7111Y[#*11.043]Z[#*-19.508] -N7121Y[#*10.793]Z[#*-18.723] -N7131Y[#*10.543]Z[#*-17.817] -N7141Y[#*9.543]Z[#*-13.949] -N7151Y[#*8.543]Z[#*-11.072] -N7161Y[#*7.543]Z[#*-8.642] -N7171Y[#*6.543]Z[#*-6.614] -N7181Y[#*6.043]Z[#*-5.712] -N7191Y[#*5.543]Z[#*-4.924] -N7201Y[#*5.043]Z[#*-4.236] -N7211Y[#*4.543]Z[#*-3.625] -N7221Y[#*4.043]Z[#*-3.172] -N7231Y[#*3.543]Z[#*-2.759] -N7241Y[#*3.043]Z[#*-2.441] -N7251Y[#*2.543]Z[#*-2.207] -N7261Y[#*2.043]Z[#*-1.99] -N7271Y[#*1.543]Z[#*-1.816] -N7281Y[#*1.418]Z[#*-1.788] -N7291Y[#*0.543]Z[#*-1.663] -N7301Y[#*0.043]Z[#*-1.611] -N7311Y[#*-0.473]Z[#*-1.645] -N7321Y[#*-0.582]Z[#*-1.665] -N7331Y[#*-0.957]Z[#*-1.749] -N7341Y[#*-1.457]Z[#*-1.866] -N7351Y[#*-1.957]Z[#*-2.011] -N7361Y[#*-2.457]Z[#*-2.246] -N7371Y[#*-2.957]Z[#*-2.507] -N7381Y[#*-3.457]Z[#*-2.801] -N7391Y[#*-3.957]Z[#*-3.19] -N7401Y[#*-4.457]Z[#*-3.599] -N7411Y[#*-4.707]Z[#*-3.853] -N7421Y[#*-4.957]Z[#*-4.167] -N7431Y[#*-5.457]Z[#*-4.825] -N7441Y[#*-5.957]Z[#*-5.58] -N7451Y[#*-6.457]Z[#*-6.454] -N7461Y[#*-7.457]Z[#*-8.436] -N7471Y[#*-8.457]Z[#*-10.792] -N7481Y[#*-9.457]Z[#*-13.623] -N7491Y[#*-9.957]Z[#*-15.471] -N7501Y[#*-10.457]Z[#*-17.549] -N7511Y[#*-10.957]Z[#*-19.34] -N7521Y[#*-11.207]Z[#*-20.02] -N7531Y[#*-11.957]Z[#*-21.767] -N7541Y[#*-12.457]Z[#*-22.834] -N7551Y[#*-13.457]Z[#*-25.078] -N7561Y[#*-13.957]Z[#*-26.321] -N7571Y[#*-14.457]Z[#*-27.859] -N7581Y[#*-14.895]Z[#*-29.655] -N7591Y[#*-14.926]Z[#*-29.831] -N7601Y[#*-15.028]Z[#*-30.466] -N7611Y[#*-15.035]Z[#*-30.5] -N7621Y[#*-15.207] -N7631Y[#*-24.457] -N7641Y[#*-25.457] -N7651Y[#*-34.457] -N7661Y[#*-40.457] -N7671Y[#*-53.] -N7681X[#*-24.528]Y[#*-53.293] -N7691X[#*-24.607]Y[#*-53.547] -N7701X[#*-24.731]Y[#*-53.762] -N7711X[#*-24.891]Y[#*-53.938] -N7721X[#*-25.08]Y[#*-54.074] -N7731X[#*-25.291]Y[#*-54.172] -N7741X[#*-25.517]Y[#*-54.23] -N7751X[#*-25.75]Y[#*-54.25] -N7761X[#*-25.983]Y[#*-54.23] -N7771X[#*-26.209]Y[#*-54.172] -N7781X[#*-26.426]Y[#*-54.07] -N7791X[#*-26.609]Y[#*-53.938] -N7801X[#*-26.769]Y[#*-53.762] -N7811X[#*-26.893]Y[#*-53.547] -N7821X[#*-26.972]Y[#*-53.293] -N7831X[#*-27.]Y[#*-53.] -N7841Y[#*-52.007] -N7851Y[#*-25.007] -N7861Y[#*-24.007] -N7871Y[#*-23.007] -N7881Y[#*-15.569] -N7891Y[#*-15.523] -N7901Y[#*-15.444]Z[#*-30.011] -N7911Y[#*-15.382]Z[#*-29.619] -N7921Y[#*-15.319]Z[#*-29.309] -N7931Y[#*-15.007]Z[#*-27.998] -N7941Y[#*-14.507]Z[#*-26.4] -N7951Y[#*-14.257]Z[#*-25.713] -N7961Y[#*-14.007]Z[#*-25.153] -N7971Y[#*-13.507]Z[#*-24.083] -N7981Y[#*-13.007]Z[#*-23.198] -N7991Y[#*-12.507]Z[#*-22.344] -N8001Y[#*-12.007]Z[#*-21.611] -N8011Y[#*-11.757]Z[#*-21.247] -N8021Y[#*-11.569]Z[#*-21.003] -N8031Y[#*-11.538]Z[#*-20.967] -N8041Y[#*-11.507]Z[#*-20.931] -N8051Y[#*-11.444]Z[#*-20.829] -N8061Y[#*-11.257]Z[#*-20.4] -N8071Y[#*-11.007]Z[#*-19.661] -N8081Y[#*-10.007]Z[#*-16.535] -N8091Y[#*-9.007]Z[#*-13.894] -N8101Y[#*-8.007]Z[#*-11.672] -N8111Y[#*-7.007]Z[#*-9.848] -N8121Y[#*-6.007]Z[#*-8.284] -N8131Y[#*-5.507]Z[#*-7.578] -N8141Y[#*-5.007]Z[#*-6.904] -N8151Y[#*-4.507]Z[#*-6.317] -N8161Y[#*-4.007]Z[#*-5.75] -N8171Y[#*-3.507]Z[#*-5.235] -N8181Y[#*-3.007]Z[#*-4.815] -N8191Y[#*-2.507]Z[#*-4.433] -N8201Y[#*-1.757]Z[#*-3.966] -N8211Y[#*-1.507]Z[#*-3.849] -N8221Y[#*-1.007]Z[#*-3.7] -N8231Y[#*-0.507]Z[#*-3.562] -N8241Y[#*-0.257]Z[#*-3.514] -N8251Y[#*-0.007]Z[#*-3.499] -N8261Y[#*0.493]Z[#*-3.556] -N8271Y[#*0.962]Z[#*-3.64] -N8281Y[#*0.993]Z[#*-3.646] -N8291Y[#*1.243]Z[#*-3.693] -N8301Y[#*1.493]Z[#*-3.769] -N8311Y[#*1.993]Z[#*-4.021] -N8321Y[#*2.493]Z[#*-4.298] -N8331Y[#*2.993]Z[#*-4.684] -N8341Y[#*3.493]Z[#*-5.107] -N8351Y[#*3.993]Z[#*-5.637] -N8361Y[#*4.993]Z[#*-6.815] -N8371Y[#*5.993]Z[#*-8.216] -N8381Y[#*6.993]Z[#*-9.825] -N8391Y[#*7.993]Z[#*-11.704] -N8401Y[#*8.993]Z[#*-13.896] -N8411Y[#*9.993]Z[#*-16.505] -N8421Y[#*10.493]Z[#*-18.03] -N8431Y[#*10.743]Z[#*-18.843] -N8441Y[#*11.243]Z[#*-20.346] -N8451Y[#*11.431]Z[#*-20.789] -N8461Y[#*11.493]Z[#*-20.91] -N8471Y[#*11.993]Z[#*-21.586] -N8481Y[#*12.493]Z[#*-22.32] -N8491Y[#*12.993]Z[#*-23.172] -N8501Y[#*13.493]Z[#*-24.058] -N8511Y[#*13.743]Z[#*-24.565] -N8521Y[#*13.993]Z[#*-25.123] -N8531Y[#*14.493]Z[#*-26.358] -N8541Y[#*14.743]Z[#*-27.108] -N8551Y[#*14.993]Z[#*-27.939] -N8561Y[#*15.212]Z[#*-28.866] -N8571Y[#*15.227]Z[#*-28.932] -N8581Y[#*15.306]Z[#*-29.252] -N8591Y[#*15.376]Z[#*-29.582] -N8601Y[#*15.431]Z[#*-29.925] -N8611Y[#*15.462]Z[#*-30.12] -N8621Y[#*15.517]Z[#*-30.462] -N8631Y[#*15.524]Z[#*-30.5] -N8641Y[#*15.743] -N8651Y[#*29.993] -N8661Y[#*40.993] -N8671Y[#*48.993] -N8681Y[#*52.993] -N8691X[#*-27.028]Y[#*53.286] -N8701X[#*-27.107]Y[#*53.54] -N8711X[#*-27.231]Y[#*53.755] -N8721X[#*-27.391]Y[#*53.932] -N8731X[#*-27.58]Y[#*54.069] -N8741X[#*-27.791]Y[#*54.167] -N8751X[#*-28.017]Y[#*54.226] -N8761X[#*-28.25]Y[#*54.247] -N8771X[#*-28.483]Y[#*54.228] -N8781X[#*-28.709]Y[#*54.17] -N8791X[#*-28.92]Y[#*54.073] -N8801X[#*-29.109]Y[#*53.936] -N8811X[#*-29.269]Y[#*53.761] -N8821X[#*-29.393]Y[#*53.547] -N8831X[#*-29.472]Y[#*53.293] -N8841X[#*-29.492]Y[#*53.083] -N8851X[#*-29.5]Y[#*53.] -N8861Y[#*49.237] -N8871Y[#*35.237] -N8881Y[#*30.237] -N8891Y[#*28.237] -N8901Y[#*17.237] -N8911Y[#*15.878] -N8921Y[#*15.87]Z[#*-30.457] -N8931Y[#*15.683]Z[#*-29.281] -N8941Y[#*15.636]Z[#*-29.036] -N8951Y[#*15.487]Z[#*-28.384] -N8961Y[#*15.237]Z[#*-27.322] -N8971Y[#*14.737]Z[#*-25.837] -N8981Y[#*14.487]Z[#*-25.252] -N8991Y[#*13.987]Z[#*-24.173] -N9001Y[#*13.737]Z[#*-23.73] -N9011Y[#*13.237]Z[#*-22.869] -N9021Y[#*12.737]Z[#*-22.13] -N9031Y[#*12.237]Z[#*-21.425] -N9041Y[#*11.737]Z[#*-20.826] -N9051Y[#*11.237]Z[#*-20.279] -N9061Y[#*10.987]Z[#*-20.071] -N9071Y[#*10.237]Z[#*-19.503] -N9081Y[#*9.737]Z[#*-19.228] -N9091Y[#*9.237]Z[#*-19.051] -N9101Y[#*9.175]Z[#*-19.036] -N9111Y[#*9.112]Z[#*-19.021] -N9121Y[#*9.05]Z[#*-18.948] -N9131Y[#*8.925]Z[#*-18.784] -N9141Y[#*8.737]Z[#*-18.528] -N9151Y[#*8.487]Z[#*-18.006] -N9161Y[#*7.737]Z[#*-16.575] -N9171Y[#*7.237]Z[#*-15.482] -N9181Y[#*6.237]Z[#*-13.677] -N9191Y[#*4.737]Z[#*-11.229] -N9201Y[#*4.237]Z[#*-10.475] -N9211Y[#*3.237]Z[#*-9.204] -N9221Y[#*2.737]Z[#*-8.696] -N9231Y[#*2.237]Z[#*-8.264] -N9241Y[#*1.737]Z[#*-7.875] -N9251Y[#*1.612]Z[#*-7.808] -N9261Y[#*1.487]Z[#*-7.751] -N9271Y[#*1.237]Z[#*-7.667] -N9281Y[#*0.987]Z[#*-7.589] -N9291Y[#*0.737]Z[#*-7.512] -N9301Y[#*0.237]Z[#*-7.381] -N9311Y[#*0.112]Z[#*-7.367] -N9321Y[#*-0.013]Z[#*-7.363] -N9331Y[#*-0.263]Z[#*-7.387] -N9341Y[#*-0.388]Z[#*-7.415] -N9351Y[#*-0.763]Z[#*-7.538] -N9361Y[#*-1.263]Z[#*-7.712] -N9371Y[#*-1.763]Z[#*-7.933] -N9381Y[#*-1.825]Z[#*-7.972] -N9391Y[#*-2.013]Z[#*-8.116] -N9401Y[#*-2.763]Z[#*-8.786] -N9411Y[#*-3.263]Z[#*-9.309] -N9421Y[#*-4.263]Z[#*-10.601] -N9431Y[#*-4.763]Z[#*-11.369] -N9441Y[#*-5.763]Z[#*-12.979] -N9451Y[#*-6.763]Z[#*-14.71] -N9461Y[#*-7.763]Z[#*-16.661] -N9471Y[#*-8.263]Z[#*-17.601] -N9481Y[#*-8.513]Z[#*-18.098] -N9491Y[#*-8.7]Z[#*-18.497] -N9501Y[#*-8.763]Z[#*-18.602] -N9511Y[#*-9.083]Z[#*-19.015] -N9521Y[#*-9.122]Z[#*-19.024] -N9531Y[#*-9.2]Z[#*-19.042] -N9541Y[#*-9.271]Z[#*-19.061] -N9551Y[#*-9.513]Z[#*-19.138] -N9561Y[#*-9.763]Z[#*-19.242] -N9571Y[#*-10.263]Z[#*-19.521] -N9581Y[#*-10.763]Z[#*-19.902] -N9591Y[#*-11.263]Z[#*-20.305] -N9601Y[#*-11.763]Z[#*-20.858] -N9611Y[#*-12.263]Z[#*-21.458] -N9621Y[#*-12.763]Z[#*-22.168] -N9631Y[#*-13.263]Z[#*-22.913] -N9641Y[#*-13.763]Z[#*-23.774] -N9651Y[#*-14.013]Z[#*-24.226] -N9661Y[#*-14.263]Z[#*-24.767] -N9671Y[#*-14.763]Z[#*-25.912] -N9681Y[#*-15.263]Z[#*-27.413] -N9691Y[#*-15.638]Z[#*-29.046] -N9701Y[#*-15.685]Z[#*-29.295] -N9711Y[#*-15.872]Z[#*-30.471] -N9721Y[#*-15.88]Z[#*-30.5] -N9731Y[#*-21.763] -N9741Y[#*-41.763] -N9751Y[#*-53.] -N9761X[#*-29.528]Y[#*-53.293] -N9771X[#*-29.607]Y[#*-53.547] -N9781X[#*-29.731]Y[#*-53.762] -N9791X[#*-29.891]Y[#*-53.938] -N9801X[#*-30.08]Y[#*-54.074] -N9811X[#*-30.291]Y[#*-54.172] -N9821X[#*-30.517]Y[#*-54.23] -N9831X[#*-30.75]Y[#*-54.25] -N9841X[#*-30.983]Y[#*-54.23] -N9851X[#*-31.209]Y[#*-54.172] -N9861X[#*-31.42]Y[#*-54.074] -N9871X[#*-31.609]Y[#*-53.938] -N9881X[#*-31.769]Y[#*-53.762] -N9891X[#*-31.893]Y[#*-53.547] -N9901X[#*-31.972]Y[#*-53.293] -N9911X[#*-32.]Y[#*-53.] -N9921Y[#*-44.682] -N9931Y[#*-33.682] -N9941Y[#*-30.682] -N9951Y[#*-25.682] -N9961Y[#*-16.12] -N9971Y[#*-16.034] -N9981Y[#*-15.839]Z[#*-29.25] -N9991Y[#*-15.823]Z[#*-29.15] -N1Y[#*-15.745]Z[#*-28.651] -N11Y[#*-15.682]Z[#*-28.324] -N21Y[#*-15.182]Z[#*-26.454] -N31Y[#*-14.932]Z[#*-25.761] -N41Y[#*-14.682]Z[#*-25.154] -N51Y[#*-14.182]Z[#*-24.098] -N61Y[#*-13.682]Z[#*-23.237] -N71Y[#*-13.182]Z[#*-22.464] -N81Y[#*-12.682]Z[#*-21.75] -N91Y[#*-12.182]Z[#*-21.121] -N101Y[#*-11.682]Z[#*-20.532] -N111Y[#*-10.932]Z[#*-19.866] -N121Y[#*-10.682]Z[#*-19.686] -N131Y[#*-10.182]Z[#*-19.423] -N141Y[#*-9.714]Z[#*-19.213] -N151Y[#*-9.682]Z[#*-19.201] -N161Y[#*-9.182]Z[#*-19.063] -N171Y[#*-8.807]Z[#*-19.016] -N181Y[#*-8.714]Z[#*-19.009] -N191Y[#*-8.526]Z[#*-18.996] -N201Y[#*-8.511]Z[#*-18.993] -N211Y[#*-8.182]Z[#*-18.721] -N221Y[#*-7.682]Z[#*-18.349] -N231Y[#*-7.182]Z[#*-18.031] -N241Y[#*-6.682]Z[#*-17.791] -N251Y[#*-6.182]Z[#*-17.604] -N261Y[#*-5.682]Z[#*-17.499] -N271Y[#*-5.182]Z[#*-17.43] -N281Y[#*-4.807] -N291Y[#*-4.714]Z[#*-17.435] -N301Y[#*-4.682]Z[#*-17.436] -N311Y[#*-4.284]Z[#*-17.462] -N321Y[#*-4.261]Z[#*-17.463] -N331Y[#*-4.245]Z[#*-17.417] -N341Y[#*-4.182]Z[#*-17.252] -N351Y[#*-3.932]Z[#*-16.662] -N361Y[#*-3.682]Z[#*-16.124] -N371Y[#*-3.182]Z[#*-15.243] -N381Y[#*-2.432]Z[#*-14.118] -N391Y[#*-2.182]Z[#*-13.772] -N401Y[#*-1.932]Z[#*-13.499] -N411Y[#*-1.682]Z[#*-13.297] -N421Y[#*-1.182]Z[#*-12.985] -N431Y[#*-0.932]Z[#*-12.85] -N441Y[#*-0.682]Z[#*-12.723] -N451Y[#*-0.432]Z[#*-12.608] -N461Y[#*-0.214]Z[#*-12.547] -N471Y[#*-0.057]Z[#*-12.529] -N481Y[#*0.068] -N491Y[#*0.286]Z[#*-12.56] -N501Y[#*0.818]Z[#*-12.779] -N511Y[#*1.255]Z[#*-13.004] -N521Y[#*1.693]Z[#*-13.273] -N531Y[#*1.818]Z[#*-13.366] -N541Y[#*2.318]Z[#*-13.912] -N551Y[#*2.818]Z[#*-14.641] -N561Y[#*3.318]Z[#*-15.418] -N571Y[#*3.818]Z[#*-16.348] -N581Y[#*4.068]Z[#*-16.906] -N591Y[#*4.271]Z[#*-17.415] -N601Y[#*4.286]Z[#*-17.462] -N611Y[#*4.318]Z[#*-17.459] -N621Y[#*4.818]Z[#*-17.432] -N631Y[#*5.068]Z[#*-17.427] -N641Y[#*5.318]Z[#*-17.441] -N651Y[#*5.818]Z[#*-17.523] -N661Y[#*6.068]Z[#*-17.573] -N671Y[#*6.318]Z[#*-17.641] -N681Y[#*6.818]Z[#*-17.849] -N691Y[#*7.318]Z[#*-18.101] -N701Y[#*7.818]Z[#*-18.434] -N711Y[#*8.193]Z[#*-18.722] -N721Y[#*8.255]Z[#*-18.773] -N731Y[#*8.31]Z[#*-18.818] -N741Y[#*8.474]Z[#*-18.954] -N751Y[#*8.489]Z[#*-18.968] -N761Y[#*8.513]Z[#*-18.989] -N771Y[#*8.521]Z[#*-18.995] -N781Y[#*8.818]Z[#*-19.017] -N791Y[#*9.193]Z[#*-19.065] -N801Y[#*9.318]Z[#*-19.091] -N811Y[#*9.818]Z[#*-19.255] -N821Y[#*10.068]Z[#*-19.37] -N831Y[#*10.302]Z[#*-19.477] -N841Y[#*10.818]Z[#*-19.778] -N851Y[#*11.318]Z[#*-20.202] -N861Y[#*11.818]Z[#*-20.676] -N871Y[#*12.318]Z[#*-21.287] -N881Y[#*12.818]Z[#*-21.943] -N891Y[#*13.318]Z[#*-22.658] -N901Y[#*13.818]Z[#*-23.458] -N911Y[#*14.068]Z[#*-23.874] -N921Y[#*14.318]Z[#*-24.365] -N931Y[#*14.568]Z[#*-24.879] -N941Y[#*15.068]Z[#*-26.1] -N951Y[#*15.318]Z[#*-26.956] -N961Y[#*15.7]Z[#*-28.402] -N971Y[#*15.755]Z[#*-28.716] -N981Y[#*15.818]Z[#*-29.115] -N991Y[#*15.997]Z[#*-30.272] -N1001Y[#*16.029]Z[#*-30.475] -N1011Y[#*16.036]Z[#*-30.5] -N1021Y[#*19.318] -N1031Y[#*32.318] -N1041Y[#*53.] -N1051X[#*-32.028]Y[#*53.293] -N1061X[#*-32.107]Y[#*53.547] -N1071X[#*-32.231]Y[#*53.762] -N1081X[#*-32.391]Y[#*53.937] -N1091X[#*-32.58]Y[#*54.074] -N1101X[#*-32.791]Y[#*54.172] -N1111X[#*-33.017]Y[#*54.23] -N1121X[#*-33.25]Y[#*54.25] -N1131X[#*-33.483]Y[#*54.23] -N1141X[#*-33.709]Y[#*54.172] -N1151X[#*-33.92]Y[#*54.074] -N1161X[#*-34.109]Y[#*53.937] -N1171X[#*-34.269]Y[#*53.762] -N1181X[#*-34.393]Y[#*53.547] -N1191X[#*-34.472]Y[#*53.293] -N1201X[#*-34.5]Y[#*53.] -N1211Y[#*52.86] -N1221Y[#*49.86] -N1231Y[#*45.86] -N1241Y[#*29.86] -N1251Y[#*19.86] -N1261Y[#*15.962] -N1271Y[#*15.938]Z[#*-30.388] -N1281Y[#*15.923]Z[#*-30.302] -N1291Y[#*15.915]Z[#*-30.256] -N1301Y[#*15.798]Z[#*-29.561] -N1311Y[#*15.735]Z[#*-29.199] -N1321Y[#*15.673]Z[#*-28.939] -N1331Y[#*15.36]Z[#*-27.758] -N1341Y[#*15.11]Z[#*-26.932] -N1351Y[#*14.86]Z[#*-26.22] -N1361Y[#*14.61]Z[#*-25.586] -N1371Y[#*14.36]Z[#*-25.029] -N1381Y[#*13.86]Z[#*-24.073] -N1391Y[#*13.36]Z[#*-23.222] -N1401Y[#*12.86]Z[#*-22.502] -N1411Y[#*11.86]Z[#*-21.168] -N1421Y[#*11.36]Z[#*-20.581] -N1431Y[#*10.86]Z[#*-20.124] -N1441Y[#*10.36]Z[#*-19.72] -N1451Y[#*9.86]Z[#*-19.434] -N1461Y[#*9.735]Z[#*-19.374] -N1471Y[#*9.61]Z[#*-19.32] -N1481Y[#*9.36]Z[#*-19.229] -N1491Y[#*8.86]Z[#*-19.091] -N1501Y[#*8.36]Z[#*-18.979] -N1511Y[#*7.86]Z[#*-18.878] -N1521Y[#*7.36]Z[#*-18.69] -N1531Y[#*6.86]Z[#*-18.426] -N1541Y[#*6.36]Z[#*-18.206] -N1551Y[#*5.86]Z[#*-18.057] -N1561Y[#*5.36]Z[#*-17.952] -N1571Y[#*4.86]Z[#*-17.898] -N1581Y[#*4.36] -N1591Y[#*4.11]Z[#*-17.918] -N1601Y[#*4.048]Z[#*-17.912] -N1611Y[#*3.86]Z[#*-17.863] -N1621Y[#*3.829]Z[#*-17.854] -N1631Y[#*3.61]Z[#*-17.789] -N1641Y[#*2.86]Z[#*-17.481] -N1651Y[#*2.36]Z[#*-17.324] -N1661Y[#*1.86]Z[#*-17.2] -N1671Y[#*1.36]Z[#*-17.113] -N1681Y[#*0.86]Z[#*-17.052] -N1691Y[#*0.36]Z[#*-17.005] -N1701Y[#*-0.14]Z[#*-16.995] -N1711Y[#*-0.64]Z[#*-17.026] -N1721Y[#*-1.14]Z[#*-17.086] -N1731Y[#*-1.64]Z[#*-17.161] -N1741Y[#*-2.14]Z[#*-17.272] -N1751Y[#*-2.64]Z[#*-17.402] -N1761Y[#*-3.14]Z[#*-17.585] -N1771Y[#*-3.64]Z[#*-17.781] -N1781Y[#*-4.015]Z[#*-17.873] -N1791Y[#*-4.054]Z[#*-17.883] -N1801Y[#*-4.093]Z[#*-17.879] -N1811Y[#*-4.109]Z[#*-17.877] -N1821Y[#*-4.171]Z[#*-17.87] -N1831Y[#*-4.64]Z[#*-17.849] -N1841Y[#*-5.14]Z[#*-17.876] -N1851Y[#*-5.64]Z[#*-17.946] -N1861Y[#*-6.14]Z[#*-18.08] -N1871Y[#*-6.64]Z[#*-18.269] -N1881Y[#*-7.14]Z[#*-18.512] -N1891Y[#*-7.577]Z[#*-18.772] -N1901Y[#*-7.609]Z[#*-18.787] -N1911Y[#*-7.655]Z[#*-18.802] -N1921Y[#*-8.14]Z[#*-18.94] -N1931Y[#*-8.265]Z[#*-18.961] -N1941Y[#*-8.64]Z[#*-19.034] -N1951Y[#*-9.14]Z[#*-19.163] -N1961Y[#*-9.64]Z[#*-19.331] -N1971Y[#*-10.14]Z[#*-19.58] -N1981Y[#*-10.39]Z[#*-19.74] -N1991Y[#*-10.64]Z[#*-19.929] -N2001Y[#*-11.14]Z[#*-20.375] -N2011Y[#*-11.64]Z[#*-20.893] -N2021Y[#*-12.14]Z[#*-21.514] -N2031Y[#*-12.64]Z[#*-22.185] -N2041Y[#*-13.14]Z[#*-22.904] -N2051Y[#*-13.64]Z[#*-23.691] -N2061Y[#*-14.14]Z[#*-24.564] -N2071Y[#*-14.64]Z[#*-25.647] -N2081Y[#*-15.14]Z[#*-27.019] -N2091Y[#*-15.39]Z[#*-27.87] -N2101Y[#*-15.734]Z[#*-29.191] -N2111Y[#*-15.741]Z[#*-29.231] -N2121Y[#*-15.757]Z[#*-29.32] -N2131Y[#*-15.913]Z[#*-30.246] -N2141Y[#*-15.921]Z[#*-30.293] -N2151Y[#*-15.952]Z[#*-30.466] -N2161Y[#*-15.96]Z[#*-30.5] -N2171Y[#*-31.14] -N2181Y[#*-32.14] -N2191Y[#*-37.14] -N2201Y[#*-50.14] -N2211Y[#*-53.] -N2221X[#*-34.528]Y[#*-53.293] -N2231X[#*-34.607]Y[#*-53.547] -N2241X[#*-34.731]Y[#*-53.762] -N2251X[#*-34.891]Y[#*-53.938] -N2261X[#*-35.08]Y[#*-54.074] -N2271X[#*-35.291]Y[#*-54.172] -N2281X[#*-35.517]Y[#*-54.23] -N2291X[#*-35.75]Y[#*-54.25] -N2301X[#*-35.983]Y[#*-54.23] -N2311X[#*-36.209]Y[#*-54.172] -N2321X[#*-36.42]Y[#*-54.074] -N2331X[#*-36.609]Y[#*-53.938] -N2341X[#*-36.769]Y[#*-53.762] -N2351X[#*-36.893]Y[#*-53.547] -N2361X[#*-36.972]Y[#*-53.293] -N2371X[#*-37.]Y[#*-53.] -N2381Y[#*-34.048] -N2391Y[#*-16.048] -N2401Y[#*-15.719] -N2411Y[#*-15.712]Z[#*-30.482] -N2421Y[#*-15.516]Z[#*-29.463] -N2431Y[#*-15.423]Z[#*-29.143] -N2441Y[#*-15.048]Z[#*-27.91] -N2451Y[#*-14.548]Z[#*-26.651] -N2461Y[#*-14.298]Z[#*-26.068] -N2471Y[#*-14.048]Z[#*-25.565] -N2481Y[#*-13.548]Z[#*-24.686] -N2491Y[#*-13.048]Z[#*-23.848] -N2501Y[#*-12.048]Z[#*-22.46] -N2511Y[#*-11.048]Z[#*-21.237] -N2521Y[#*-10.048]Z[#*-20.187] -N2531Y[#*-9.548]Z[#*-19.755] -N2541Y[#*-9.048]Z[#*-19.426] -N2551Y[#*-8.548]Z[#*-19.136] -N2561Y[#*-8.048]Z[#*-18.897] -N2571Y[#*-7.548]Z[#*-18.685] -N2581Y[#*-7.048]Z[#*-18.491] -N2591Y[#*-6.048]Z[#*-18.19] -N2601Y[#*-5.048]Z[#*-17.934] -N2611Y[#*-4.048]Z[#*-17.724] -N2621Y[#*-3.048]Z[#*-17.569] -N2631Y[#*-1.048]Z[#*-17.338] -N2641Y[#*-0.048]Z[#*-17.28] -N2651Y[#*0.452]Z[#*-17.295] -N2661Y[#*0.952]Z[#*-17.316] -N2671Y[#*1.952]Z[#*-17.414] -N2681Y[#*2.952]Z[#*-17.548] -N2691Y[#*3.952]Z[#*-17.725] -N2701Y[#*4.952]Z[#*-17.954] -N2711Y[#*5.952]Z[#*-18.215] -N2721Y[#*6.952]Z[#*-18.504] -N2731Y[#*7.452]Z[#*-18.686] -N2741Y[#*7.952]Z[#*-18.89] -N2751Y[#*8.452]Z[#*-19.115] -N2761Y[#*8.952]Z[#*-19.384] -N2771Y[#*9.452]Z[#*-19.696] -N2781Y[#*9.952]Z[#*-20.1] -N2791Y[#*10.452]Z[#*-20.612] -N2801Y[#*10.952]Z[#*-21.142] -N2811Y[#*11.952]Z[#*-22.35] -N2821Y[#*12.452]Z[#*-22.987] -N2831Y[#*12.952]Z[#*-23.706] -N2841Y[#*13.452]Z[#*-24.506] -N2851Y[#*13.952]Z[#*-25.398] -N2861Y[#*14.452]Z[#*-26.429] -N2871Y[#*14.952]Z[#*-27.611] -N2881Y[#*15.515]Z[#*-29.458] -N2891Y[#*15.577]Z[#*-29.76] -N2901Y[#*15.71]Z[#*-30.475] -N2911Y[#*15.718]Z[#*-30.5] -N2921Y[#*20.952] -N2931Y[#*30.952] -N2941Y[#*34.952] -N2951Y[#*53.] -N2961X[#*-37.028]Y[#*53.293] -N2971X[#*-37.107]Y[#*53.547] -N2981X[#*-37.231]Y[#*53.762] -N2991X[#*-37.391]Y[#*53.937] -N3001X[#*-37.58]Y[#*54.074] -N3011X[#*-37.791]Y[#*54.172] -N3021X[#*-38.017]Y[#*54.23] -N3031X[#*-38.25]Y[#*54.25] -N3041X[#*-38.483]Y[#*54.23] -N3051X[#*-38.709]Y[#*54.172] -N3061X[#*-38.92]Y[#*54.074] -N3071X[#*-39.109]Y[#*53.937] -N3081X[#*-39.269]Y[#*53.762] -N3091X[#*-39.393]Y[#*53.547] -N3101X[#*-39.472]Y[#*53.293] -N3111X[#*-39.5]Y[#*53.] -N3121Y[#*51.215] -N3131Y[#*22.215] -N3141Y[#*15.231] -N3151Y[#*15.223]Z[#*-30.491] -N3161Y[#*15.184]Z[#*-30.292] -N3171Y[#*15.09]Z[#*-29.815] -N3181Y[#*15.028]Z[#*-29.558] -N3191Y[#*14.465]Z[#*-27.841] -N3201Y[#*14.215]Z[#*-27.28] -N3211Y[#*13.715]Z[#*-26.208] -N3221Y[#*13.215]Z[#*-25.34] -N3231Y[#*12.715]Z[#*-24.539] -N3241Y[#*12.215]Z[#*-23.849] -N3251Y[#*11.215]Z[#*-22.606] -N3261Y[#*10.215]Z[#*-21.54] -N3271Y[#*9.715]Z[#*-21.077] -N3281Y[#*9.215]Z[#*-20.629] -N3291Y[#*8.215]Z[#*-19.881] -N3301Y[#*7.715]Z[#*-19.58] -N3311Y[#*7.215]Z[#*-19.294] -N3321Y[#*6.715]Z[#*-19.073] -N3331Y[#*5.715]Z[#*-18.754] -N3341Y[#*5.215]Z[#*-18.625] -N3351Y[#*4.215]Z[#*-18.39] -N3361Y[#*3.215]Z[#*-18.201] -N3371Y[#*2.215]Z[#*-18.054] -N3381Y[#*1.215]Z[#*-17.947] -N3391Y[#*0.215]Z[#*-17.896] -N3401Y[#*-0.785]Z[#*-17.926] -N3411Y[#*-1.785]Z[#*-17.998] -N3421Y[#*-2.785]Z[#*-18.128] -N3431Y[#*-3.785]Z[#*-18.318] -N3441Y[#*-4.785]Z[#*-18.525] -N3451Y[#*-5.785]Z[#*-18.766] -N3461Y[#*-6.285]Z[#*-18.913] -N3471Y[#*-6.785]Z[#*-19.109] -N3481Y[#*-7.285]Z[#*-19.331] -N3491Y[#*-7.785]Z[#*-19.611] -N3501Y[#*-8.285]Z[#*-19.915] -N3511Y[#*-9.285]Z[#*-20.678] -N3521Y[#*-9.785]Z[#*-21.131] -N3531Y[#*-10.285]Z[#*-21.6] -N3541Y[#*-10.785]Z[#*-22.141] -N3551Y[#*-11.785]Z[#*-23.292] -N3561Y[#*-12.785]Z[#*-24.65] -N3571Y[#*-13.285]Z[#*-25.451] -N3581Y[#*-13.785]Z[#*-26.357] -N3591Y[#*-14.285]Z[#*-27.426] -N3601Y[#*-14.535]Z[#*-28.047] -N3611Y[#*-14.785]Z[#*-28.81] -N3621Y[#*-15.035]Z[#*-29.582] -N3631Y[#*-15.097]Z[#*-29.849] -N3641Y[#*-15.222]Z[#*-30.485] -N3651Y[#*-15.23]Z[#*-30.5] -N3661Y[#*-15.285] -N3671Y[#*-21.785] -N3681Y[#*-30.785] -N3691Y[#*-42.785] -N3701Y[#*-44.785] -N3711Y[#*-46.785] -N3721Y[#*-49.785] -N3731Y[#*-53.] -N3741X[#*-39.53]Y[#*-53.299] -N3751X[#*-39.607]Y[#*-53.547] -N3761X[#*-39.731]Y[#*-53.762] -N3771X[#*-39.891]Y[#*-53.938] -N3781X[#*-40.08]Y[#*-54.074] -N3791X[#*-40.291]Y[#*-54.172] -N3801X[#*-40.517]Y[#*-54.23] -N3811X[#*-40.75]Y[#*-54.25] -N3821X[#*-40.983]Y[#*-54.23] -N3831X[#*-41.209]Y[#*-54.172] -N3841X[#*-41.42]Y[#*-54.074] -N3851X[#*-41.609]Y[#*-53.938] -N3861X[#*-41.769]Y[#*-53.762] -N3871X[#*-41.893]Y[#*-53.547] -N3881X[#*-41.972]Y[#*-53.293] -N3891X[#*-42.]Y[#*-53.] -N3901Y[#*-52.727] -N3911Y[#*-43.727] -N3921Y[#*-38.727] -N3931Y[#*-33.727] -N3941Y[#*-29.727] -N3951Y[#*-28.727] -N3961Y[#*-21.727] -N3971Y[#*-14.352] -N3981Y[#*-14.344]Z[#*-30.487] -N3991Y[#*-14.258]Z[#*-30.057] -N4001Y[#*-14.227]Z[#*-29.909] -N4011Y[#*-13.977]Z[#*-29.128] -N4021Y[#*-13.727]Z[#*-28.388] -N4031Y[#*-13.477]Z[#*-27.762] -N4041Y[#*-12.977]Z[#*-26.738] -N4051Y[#*-12.727]Z[#*-26.247] -N4061Y[#*-11.727]Z[#*-24.741] -N4071Y[#*-10.727]Z[#*-23.557] -N4081Y[#*-10.227]Z[#*-23.03] -N4091Y[#*-9.727]Z[#*-22.554] -N4101Y[#*-8.727]Z[#*-21.73] -N4111Y[#*-8.227]Z[#*-21.356] -N4121Y[#*-7.727]Z[#*-20.997] -N4131Y[#*-7.227]Z[#*-20.709] -N4141Y[#*-6.727]Z[#*-20.438] -N4151Y[#*-5.727]Z[#*-19.999] -N4161Y[#*-4.727]Z[#*-19.612] -N4171Y[#*-4.227]Z[#*-19.451] -N4181Y[#*-3.727]Z[#*-19.359] -N4191Y[#*-2.727]Z[#*-19.195] -N4201Y[#*-1.727]Z[#*-19.053] -N4211Y[#*-0.227]Z[#*-18.959] -N4221Y[#*0.273] -N4231Y[#*1.273]Z[#*-19.03] -N4241Y[#*2.273]Z[#*-19.124] -N4251Y[#*4.273]Z[#*-19.463] -N4261Y[#*4.773]Z[#*-19.608] -N4271Y[#*5.273]Z[#*-19.794] -N4281Y[#*5.773]Z[#*-20.007] -N4291Y[#*6.273]Z[#*-20.2] -N4301Y[#*6.773]Z[#*-20.448] -N4311Y[#*7.273]Z[#*-20.724] -N4321Y[#*8.273]Z[#*-21.381] -N4331Y[#*9.273]Z[#*-22.136] -N4341Y[#*9.773]Z[#*-22.593] -N4351Y[#*10.273]Z[#*-23.072] -N4361Y[#*10.773]Z[#*-23.61] -N4371Y[#*11.273]Z[#*-24.2] -N4381Y[#*11.773]Z[#*-24.806] -N4391Y[#*12.273]Z[#*-25.555] -N4401Y[#*12.773]Z[#*-26.327] -N4411Y[#*13.523]Z[#*-27.855] -N4421Y[#*13.773]Z[#*-28.524] -N4431Y[#*14.148]Z[#*-29.637] -N4441Y[#*14.21]Z[#*-29.843] -N4451Y[#*14.257]Z[#*-30.051] -N4461Y[#*14.343]Z[#*-30.482] -N4471Y[#*14.351]Z[#*-30.5] -N4481Y[#*15.273] -N4491Y[#*18.273] -N4501Y[#*24.273] -N4511Y[#*27.273] -N4521Y[#*31.273] -N4531Y[#*41.273] -N4541Y[#*46.273] -N4551Y[#*52.273] -N4561Y[#*53.] -N4571X[#*-42.028]Y[#*53.293] -N4581X[#*-42.107]Y[#*53.547] -N4591X[#*-42.231]Y[#*53.762] -N4601X[#*-42.391]Y[#*53.937] -N4611X[#*-42.58]Y[#*54.074] -N4621X[#*-42.791]Y[#*54.172] -N4631X[#*-43.017]Y[#*54.23] -N4641X[#*-43.25]Y[#*54.25] -N4651X[#*-43.483]Y[#*54.23] -N4661X[#*-43.709]Y[#*54.172] -N4671X[#*-43.92]Y[#*54.074] -N4681X[#*-44.109]Y[#*53.937] -N4691X[#*-44.269]Y[#*53.762] -N4701X[#*-44.393]Y[#*53.547] -N4711X[#*-44.472]Y[#*53.293] -N4721X[#*-44.5]Y[#*53.] -N4731Y[#*36.429] -N4741Y[#*35.429] -N4751Y[#*12.897] -N4761Y[#*12.89]Z[#*-30.468] -N4771Y[#*12.866]Z[#*-30.35] -N4781Y[#*12.835]Z[#*-30.214] -N4791Y[#*12.679]Z[#*-29.734] -N4801Y[#*12.366]Z[#*-28.81] -N4811Y[#*12.304]Z[#*-28.629] -N4821Y[#*12.179]Z[#*-28.348] -N4831Y[#*11.679]Z[#*-27.331] -N4841Y[#*11.429]Z[#*-26.867] -N4851Y[#*10.929]Z[#*-26.121] -N4861Y[#*10.429]Z[#*-25.416] -N4871Y[#*9.429]Z[#*-24.28] -N4881Y[#*8.429]Z[#*-23.386] -N4891Y[#*7.929]Z[#*-22.983] -N4901Y[#*6.929]Z[#*-22.31] -N4911Y[#*6.429]Z[#*-22.021] -N4921Y[#*5.429]Z[#*-21.531] -N4931Y[#*4.929]Z[#*-21.322] -N4941Y[#*3.929]Z[#*-20.991] -N4951Y[#*3.429]Z[#*-20.838] -N4961Y[#*2.429]Z[#*-20.639] -N4971Y[#*1.429]Z[#*-20.489] -N4981Y[#*0.429]Z[#*-20.418] -N4991Y[#*-0.571]Z[#*-20.428] -N5001Y[#*-1.571]Z[#*-20.497] -N5011Y[#*-2.071]Z[#*-20.568] -N5021Y[#*-2.571]Z[#*-20.667] -N5031Y[#*-3.571]Z[#*-20.875] -N5041Y[#*-4.571]Z[#*-21.206] -N5051Y[#*-5.571]Z[#*-21.605] -N5061Y[#*-6.571]Z[#*-22.092] -N5071Y[#*-7.071]Z[#*-22.409] -N5081Y[#*-7.571]Z[#*-22.745] -N5091Y[#*-8.571]Z[#*-23.514] -N5101Y[#*-9.071]Z[#*-23.954] -N5111Y[#*-9.571]Z[#*-24.439] -N5121Y[#*-10.571]Z[#*-25.592] -N5131Y[#*-11.071]Z[#*-26.334] -N5141Y[#*-11.571]Z[#*-27.113] -N5151Y[#*-12.071]Z[#*-28.13] -N5161Y[#*-12.571]Z[#*-29.416] -N5171Y[#*-12.821]Z[#*-30.164] -N5181Y[#*-12.899]Z[#*-30.5] -N5191Y[#*-14.571] -N5201Y[#*-23.571] -N5211Y[#*-38.571] -N5221Y[#*-45.571] -N5231Y[#*-48.571] -N5241Y[#*-53.] -N5251X[#*-44.528]Y[#*-53.293] -N5261X[#*-44.607]Y[#*-53.547] -N5271X[#*-44.731]Y[#*-53.762] -N5281X[#*-44.891]Y[#*-53.938] -N5291X[#*-45.08]Y[#*-54.074] -N5301X[#*-45.291]Y[#*-54.172] -N5311X[#*-45.517]Y[#*-54.23] -N5321X[#*-45.75]Y[#*-54.25] -N5331X[#*-45.983]Y[#*-54.23] -N5341X[#*-46.209]Y[#*-54.172] -N5351X[#*-46.42]Y[#*-54.074] -N5361X[#*-46.609]Y[#*-53.938] -N5371X[#*-46.769]Y[#*-53.762] -N5381X[#*-46.893]Y[#*-53.547] -N5391X[#*-46.972]Y[#*-53.293] -N5401X[#*-47.]Y[#*-53.] -N5411Y[#*-49.856] -N5421Y[#*-23.856] -N5431Y[#*-10.504] -N5441Y[#*-10.497]Z[#*-30.485] -N5451Y[#*-10.106]Z[#*-29.364] -N5461Y[#*-9.606]Z[#*-28.345] -N5471Y[#*-9.356]Z[#*-27.919] -N5481Y[#*-8.856]Z[#*-27.173] -N5491Y[#*-8.356]Z[#*-26.552] -N5501Y[#*-7.856]Z[#*-25.982] -N5511Y[#*-7.356]Z[#*-25.518] -N5521Y[#*-6.856]Z[#*-25.079] -N5531Y[#*-6.356]Z[#*-24.708] -N5541Y[#*-5.856]Z[#*-24.372] -N5551Y[#*-5.356]Z[#*-24.061] -N5561Y[#*-4.356]Z[#*-23.57] -N5571Y[#*-3.856]Z[#*-23.376] -N5581Y[#*-2.856]Z[#*-23.04] -N5591Y[#*-1.856]Z[#*-22.835] -N5601Y[#*-0.856]Z[#*-22.712] -N5611Y[#*-0.356]Z[#*-22.679] -N5621Y[#*0.144]Z[#*-22.664] -N5631Y[#*1.144]Z[#*-22.732] -N5641Y[#*1.644]Z[#*-22.793] -N5651Y[#*2.644]Z[#*-22.993] -N5661Y[#*3.144]Z[#*-23.135] -N5671Y[#*4.144]Z[#*-23.475] -N5681Y[#*5.144]Z[#*-23.957] -N5691Y[#*5.644]Z[#*-24.23] -N5701Y[#*6.644]Z[#*-24.903] -N5711Y[#*7.644]Z[#*-25.771] -N5721Y[#*8.144]Z[#*-26.31] -N5731Y[#*8.644]Z[#*-26.879] -N5741Y[#*9.144]Z[#*-27.602] -N5751Y[#*9.644]Z[#*-28.422] -N5761Y[#*10.144]Z[#*-29.452] -N5771Y[#*10.331]Z[#*-29.997] -N5781Y[#*10.496]Z[#*-30.482] -N5791Y[#*10.503]Z[#*-30.5] -N5801Y[#*33.144] -N5811Y[#*53.] -N5821X[#*-47.028]Y[#*53.293] -N5831X[#*-47.107]Y[#*53.547] -N5841X[#*-47.231]Y[#*53.762] -N5851X[#*-47.391]Y[#*53.937] -N5861X[#*-47.58]Y[#*54.074] -N5871X[#*-47.791]Y[#*54.172] -N5881X[#*-48.017]Y[#*54.23] -N5891X[#*-48.25]Y[#*54.25] -N5901X[#*-48.483]Y[#*54.23] -N5911X[#*-48.709]Y[#*54.172] -N5921X[#*-48.92]Y[#*54.074] -N5931X[#*-49.109]Y[#*53.937] -N5941X[#*-49.269]Y[#*53.762] -N5951X[#*-49.393]Y[#*53.547] -N5961X[#*-49.472]Y[#*53.293] -N5971X[#*-49.5]Y[#*53.] -N5981Y[#*51.241] -N5991Y[#*29.241] -N6001Y[#*27.241] -N6011Y[#*23.241] -N6021Y[#*19.241] -N6031Y[#*17.241] -N6041Y[#*5.733] -N6051Y[#*5.718]Z[#*-30.469] -N6061Y[#*5.616]Z[#*-30.289] -N6071Y[#*5.226]Z[#*-29.706] -N6081Y[#*5.116]Z[#*-29.569] -N6091Y[#*4.741]Z[#*-29.141] -N6101Y[#*4.241]Z[#*-28.672] -N6111Y[#*3.741]Z[#*-28.283] -N6121Y[#*3.241]Z[#*-27.953] -N6131Y[#*2.741]Z[#*-27.707] -N6141Y[#*2.241]Z[#*-27.502] -N6151Y[#*1.741]Z[#*-27.333] -N6161Y[#*1.241]Z[#*-27.226] -N6171Y[#*0.741]Z[#*-27.141] -N6181Y[#*0.241]Z[#*-27.107] -N6191Y[#*-0.259]Z[#*-27.108] -N6201Y[#*-0.759]Z[#*-27.142] -N6211Y[#*-1.259]Z[#*-27.229] -N6221Y[#*-1.759]Z[#*-27.339] -N6231Y[#*-2.259]Z[#*-27.508] -N6241Y[#*-2.759]Z[#*-27.716] -N6251Y[#*-3.259]Z[#*-27.963] -N6261Y[#*-3.759]Z[#*-28.294] -N6271Y[#*-4.259]Z[#*-28.687] -N6281Y[#*-4.759]Z[#*-29.162] -N6291Y[#*-5.259]Z[#*-29.756] -N6301Y[#*-5.634]Z[#*-30.316] -N6311Y[#*-5.735]Z[#*-30.5] -N6321Y[#*-8.759] -N6331Y[#*-37.759] -N6341Y[#*-48.759] -N6351Y[#*-53.] -N6361X[#*-49.528]Y[#*-53.293] -N6371X[#*-49.607]Y[#*-53.547] -N6381X[#*-49.731]Y[#*-53.762] -N6391X[#*-49.797]Y[#*-53.835] -N6401X[#*-49.891]Y[#*-53.938] -N6411X[#*-50.08]Y[#*-54.074] -N6421X[#*-50.291]Y[#*-54.172] -N6431X[#*-50.517]Y[#*-54.23] -N6441X[#*-50.75]Y[#*-54.25] -N6451X[#*-50.983]Y[#*-54.23] -N6461X[#*-51.209]Y[#*-54.172] -N6471X[#*-51.42]Y[#*-54.074] -N6481X[#*-51.605]Y[#*-53.941] -N6491X[#*-51.769]Y[#*-53.762] -N6501X[#*-51.893]Y[#*-53.547] -N6511X[#*-51.972]Y[#*-53.293] -N6521X[#*-52.]Y[#*-53.] -N6531Y[#*-45.473] -N6541Y[#*-39.473] -N6551Y[#*-18.473] -N6561Y[#*-15.473] -N6571Y[#*-9.473] -N6581Y[#*-3.473] -N6591Y[#*6.527] -N6601Y[#*17.527] -N6611Y[#*20.527] -N6621Y[#*21.527] -N6631Y[#*26.527] -N6641Y[#*30.527] -N6651Y[#*47.527] -N6661Y[#*50.527] -N6671Y[#*53.] -N6681Y[#*53.26]F[#*225] -N6691Y[#*53.264] -N6701Y[#*53.277]Z[#*-30.499] -N6711Y[#*53.555]Z[#*-30.471] -N6721Y[#*53.686]Z[#*-30.448] -N6731Y[#*53.947]Z[#*-30.387] -N6741Y[#*54.209]Z[#*-30.3] -N6751Y[#*54.471]Z[#*-30.185] -N6761Y[#*54.732]Z[#*-30.039] -N6771Y[#*54.994]Z[#*-29.852] -N6781Y[#*55.125]Z[#*-29.742] -N6791Y[#*55.387]Z[#*-29.477] -N6801Y[#*55.518]Z[#*-29.32] -N6811Y[#*55.648]Z[#*-29.133] -N6821Y[#*55.779]Z[#*-28.91] -N6831Y[#*55.91]Z[#*-28.63] -N6841Y[#*56.008]Z[#*-28.344] -N6851Y[#*56.025]Z[#*-28.283] -N6861Y[#*56.056]Z[#*-28.167] -N6871Y[#*56.061]Z[#*-28.146] -N6881Y[#*56.105]Z[#*-27.894] -N6891Y[#*56.11]Z[#*-27.838] -N6901Y[#*56.128]Z[#*-27.634] -N6911G0Z[#*10.] -N6931M9 -N6941M2 - - - - - diff --git a/nc_files/3D_Chips.pdf b/nc_files/3D_Chips.pdf deleted file mode 100644 index 67bd4b5781973ba4e2949f4199bb1823faedce59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69393 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

^)ki_m;-7_wjLBVyT{v zfH0PD(}1gQl%y=SHX8GEJ^W|V&Ohb4Uy`veu!fa|mHAKB!SQF-_TL%sKQq67!WzN9 z!WsraTPve~BsOdS&foL}oFZm=eaj~OHYG7 z=N$BhO4fIrUXJ+|AFy<6>jTW&x!?SNZ(4f|#A;Q$FckJ>t!IPvwyu)~AvWv}@}Ts( zcCk&^ye$tPsyf98tdb2loRF#D8y$@K)YhQK?3X5jfe|z{b?cp_bw7iQsyN@e;M0mO11&%#5;R<12HU;oYiZy6?yIbK}PGufuzjXJxWFUk^c(XZoTsuN6F9x~s=x z9l_Pii_dvO0=&J)zo32AV+a{kr>~JZ=L-A&!R5fj?%#9z{_R}<2fXsX@v(noEI`)3 zG8QnmUHEhz>Ebf z2e*}#6MQ|Gjj*wSnF{b94B)!&AX?AYXVB$?t2y_SNMKEQ}4Ez+wq&FuVC}LBg7opT3xQh!&W zXzXa~>|ki@NCKu%FRhj_HZs?L;j%9`!3Lh6$<7JXVG?t&b+!YyO$kiQz#P}^#fG6f zlaLaa#=4jr8Y_wkGD(m)foU2aACnOHzQ9$0O}wn;*|1a(N&8q&RJ%GPE z?@I@PA@$!o1^&-o0pHQTyXD1Oq|A*RwMc&RWs={|tQVn>t@F#s{zpx~zXNk2eK6s+ zH3g3bxJK|J^rffZndIz@Z3GOR%x!J7{xHd;uAxa{<7{R1$1i5EacO-UQ)*)y1|b2O z{~T+uGyi+Ag}~Ep!5E%LR76x1jP1ebo*l@{%*F{WS->Uh%kdu`W#nvV{6BguLVxIh z0CG+bs;9!AmX71!M+-aXbKw zGFdqQ00w4uDrROXn*Zn!HwR-AcxEssg$G;u*9MMWRxlqmA^Ahb#=-pJlP?>I&A(*e zeQ-qoO$K0P0eA1q_NN|zl?~h>e~|&eQ1Q`S*I+ zI6yCB`ImZGK_CFw^Zp_O^IR|i{x2Dr?EYQ$@|60U3;=jRvoG7f@0Shym-z2(W@F>z z_t_3^Cf9tXRcl+2mz(o0P^|EumfaAZmg#$eB|0R2QBL7>@$w43d#SDj+ ziQr1+9>!odU{bWT1&7Q_n1JIz!p6jwF8`t!UP103bL?piUNQDVKAN-5M>h- nVip3ihzJNW3xEKimjH8g(sywB?XGMbY#f~M@7{^XiNgOcvp@X2 diff --git a/nc_files/3dtest.ngc b/nc_files/3dtest.ngc deleted file mode 100644 index 2f96b92eac5..00000000000 --- a/nc_files/3dtest.ngc +++ /dev/null @@ -1,54 +0,0 @@ -n099 (This is a test plot nc program to be run on backplot) -n100 (Author Ray Henry 10-Feb-2000) -n101 g20 -n102 g0 x0 y0 z0 f30 -n103 x1 y1(start xy circle) -n104 g17 g02 i.5 j.5 -n106 g0 z.1 (add xy lettering) -n107 y1.75 -n108 z0 -n109 g1 y1.25 x1.4 -n110 y1.5 x1.2 -n111 y1.25 x1 -n112 y1.75 x1.4 -n113 g0 z.1 -n114 y1.75 x1.6 -n115 z0 -n116 g1 y1.5 x1.8 -n117 y1.75 x2 -n118 y1.5 x1.8 -n119 y1.25 -n120 g0 x0 y0 z0 -n121 x1 z1(start xz circle) -n122 g18 g02 i.5 k.5 -n124 g0 y.1 (add xz lettering) -n125 z1.75 -n126 y0 -n127 g1 z1.25 x1.4 -n128 z1.5 x1.2 -n129 z1.25 x1 -n130 z1.75 x1.4 -n131 g0 y.1 -n132 z1.75 x1.6 -n133 y0 -n134 g1 x2 -n135 z1.25 x1.6 -n136 x2 -n137 g0 x0 y0 z0 -n138 y1 z1 (start yz circle) -n139 g19 g02 j.5 k.5 -n141 g0 x.1 (add yz lettering) -n142 z1.75 -n143 x0 -n144 g1 z1.5 y1.2 -n145 z1.75 y1.4 -n146 z1.5 y1.2 -n147 z1.25 -n148 g0 x.1 -n149 z1.75 y1.6 -n150 x0 -n151 g1 y2 -n152 z1.25 y1.6 -n153 y2 -n154 g0 x0 y0 z0 -n155 m2 diff --git a/nc_files/M101 b/nc_files/M101 deleted file mode 100755 index 9d2eb115f18..00000000000 --- a/nc_files/M101 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# M101 in your G-code program will run the Linux commands in this -# shell script "batch" file, passing the P and Q variables as command -# line arguments. - -# give the command line arguments descriptive names -P=$1 -Q=$2 - -MCMD=$(readlink -nf "$0") -MNAME=$(basename "$MCMD") - -echo -echo "Example for User M-code invocation:" -echo "M-code File: $MCMD" -echo "$MNAME P$P Q$Q" - - -# if a M1nn command exits with nonzero status, -# the G-code program exits. So always exit 0. -exit 0 diff --git a/nc_files/M102.c b/nc_files/M102.c deleted file mode 100644 index 191436f49ed..00000000000 --- a/nc_files/M102.c +++ /dev/null @@ -1,29 +0,0 @@ -#include - -/* - Compile this with "gcc M102.c -o M102" to build an M102 executable - program in the emc/programs/ directory. M102 in your G-code program - will execute this code, passing the P and Q variables as command - line arguments. - */ - -int main(int argc, char *argv[]) -{ - double p = 0.0, q = 0.0; - - /* process the P and Q command line args we will be given */ - if (argc > 1) { - sscanf(argv[1], "%lf", &p); - } - if (argc > 2) { - sscanf(argv[2], "%lf", &q); - } - - /* put your code here */ - - printf("M102 P%f Q%f: put your code here\n", p, q); - - return 0; -} - - diff --git a/nc_files/arcspiral.ngc b/nc_files/arcspiral.ngc deleted file mode 100644 index e2e5aab5339..00000000000 --- a/nc_files/arcspiral.ngc +++ /dev/null @@ -1,1008 +0,0 @@ -g20 g64 -s3400 m3 -g0z1 -g0x0y0z1 -g0 x1.724638 y-1.012731 -g1z-.1f24 -g1 x1.724638 y-1.012731 -g2 r1.997999 x1.613302 y-1.178668 -r1.996000 x1.486083 y-1.332506 -r1.994000 x1.344282 y-1.472733 -r1.992000 x1.189344 y-1.597975 -r1.990000 x1.022843 y-1.707013 -r1.988000 x0.846464 y-1.798789 -r1.986000 x0.661990 y-1.872422 -r1.984000 x0.471277 y-1.927214 -r1.982000 x0.276244 y-1.962655 -r1.980000 x0.078845 y-1.978430 -r1.978000 x-0.118942 y-1.974421 -r1.976000 x-0.315142 y-1.950708 -r1.974000 x-0.507799 y-1.907568 -r1.972000 x-0.694996 y-1.845471 -r1.970000 x-0.874875 y-1.765076 -r1.968000 x-1.045656 y-1.667222 -r1.966000 x-1.205650 y-1.552921 -r1.964000 x-1.353282 y-1.423350 -r1.962000 x-1.487103 y-1.279832 -r1.960000 x-1.605805 y-1.123828 -r1.958000 x-1.708233 y-0.956924 -r1.956001 x-1.793399 y-0.780806 -r1.954000 x-1.860485 y-0.597253 -r1.952000 x-1.908861 y-0.408112 -r1.950000 x-1.938080 y-0.215284 -r1.948000 x-1.947890 y-0.020702 -r1.946000 x-1.938233 y0.173687 -r1.944000 x-1.909246 y0.365943 -r1.942000 x-1.861258 y0.554151 -r1.940000 x-1.794786 y0.736439 -r1.938000 x-1.710533 y0.910999 -r1.936000 x-1.609377 y1.076105 -r1.934000 x-1.492362 y1.230126 -r1.932000 x-1.360690 y1.371549 -r1.930000 x-1.215706 y1.498986 -r1.928000 x-1.058886 y1.611194 -r1.926000 x-0.891819 y1.707084 -r1.924000 x-0.716195 y1.785733 -r1.922000 x-0.533785 y1.846390 -r1.919999 x-0.346426 y1.888488 -r1.918000 x-0.155999 y1.911645 -r1.916000 x0.035589 y1.915669 -r1.914000 x0.226423 y1.900560 -r1.912000 x0.414597 y1.866508 -r1.910000 x0.598240 y1.813893 -r1.908000 x0.775525 y1.743280 -r1.906000 x0.944697 y1.655410 -r1.904000 x1.104083 y1.551198 -r1.902000 x1.252112 y1.431719 -r1.900000 x1.387330 y1.298197 -r1.898000 x1.508413 y1.151996 -r1.896000 x1.614182 y0.994602 -r1.893999 x1.703613 y0.827609 -r1.892000 x1.775848 y0.652707 -r1.890000 x1.830202 y0.471658 -r1.888000 x1.866169 y0.286284 -r1.886000 x1.883429 y0.098443 -r1.884000 x1.881850 y-0.089983 -r1.882000 x1.861487 y-0.277110 -r1.880000 x1.822584 y-0.461074 -r1.877999 x1.765567 y-0.640043 -r1.876000 x1.691046 y-0.812243 -r1.874000 x1.599802 y-0.975966 -r1.872000 x1.492781 y-1.129597 -r1.870000 x1.371085 y-1.271623 -r1.868000 x1.235962 y-1.400651 -r1.866000 x1.088788 y-1.515420 -r1.864000 x0.931060 y-1.614814 -r1.861999 x0.764375 y-1.697873 -r1.860000 x0.590417 y-1.763805 -r1.858000 x0.410939 y-1.811986 -r1.856000 x0.227744 y-1.841974 -r1.854000 x0.042669 y-1.853509 -r1.852000 x-0.142432 y-1.846515 -r1.850000 x-0.325712 y-1.821102 -r1.848000 x-0.505345 y-1.777563 -r1.846000 x-0.679544 y-1.716373 -r1.844000 x-0.846583 y-1.638180 -r1.841999 x-1.004807 y-1.543802 -r1.840000 x-1.152658 y-1.434218 -r1.838000 x-1.288680 y-1.310553 -r1.836000 x-1.411541 y-1.174073 -r1.834000 x-1.520043 y-1.026170 -r1.832000 x-1.613134 y-0.868344 -r1.830000 x-1.689918 y-0.702194 -r1.828000 x-1.749664 y-0.529396 -r1.826000 x-1.791812 y-0.351691 -r1.824000 x-1.815979 y-0.170864 -r1.822000 x-1.821965 y0.011273 -r1.820000 x-1.809749 y0.192897 -r1.818000 x-1.779492 y0.372198 -r1.816000 x-1.731538 y0.547388 -r1.814000 x-1.666402 y0.716728 -r1.812000 x-1.584774 y0.878541 -r1.810000 x-1.487506 y1.031226 -r1.808000 x-1.375602 y1.173279 -r1.806000 x-1.250213 y1.303305 -r1.804000 x-1.112620 y1.420033 -r1.802000 x-0.964225 y1.522325 -r1.800000 x-0.806533 y1.609194 -r1.798000 x-0.641139 y1.679805 -r1.796000 x-0.469712 y1.733490 -r1.794000 x-0.293977 y1.769750 -r1.792000 x-0.115699 y1.788261 -r1.790000 x0.063336 y1.788879 -r1.788000 x0.241340 y1.771637 -r1.786000 x0.416536 y1.736748 -r1.784000 x0.587182 y1.684599 -r1.782000 x0.751585 y1.615749 -r1.780000 x0.908115 y1.530924 -r1.778000 x1.055229 y1.431005 -r1.776000 x1.191477 y1.317026 -r1.774000 x1.315525 y1.190155 -r1.771999 x1.426160 y1.051689 -r1.770000 x1.522309 y0.903036 -r1.768000 x1.603044 y0.745704 -r1.766000 x1.667593 y0.581283 -r1.764000 x1.715349 y0.411431 -r1.762000 x1.745872 y0.237856 -r1.760000 x1.758897 y0.062301 -r1.758000 x1.754334 y-0.113478 -r1.756000 x1.732268 y-0.287724 -r1.754000 x1.692958 y-0.458702 -r1.752000 x1.636838 y-0.624711 -r1.750000 x1.564506 y-0.784105 -r1.748000 x1.476720 y-0.935308 -r1.746000 x1.374394 y-1.076828 -r1.744000 x1.258581 y-1.207274 -r1.742000 x1.130469 y-1.325369 -r1.740000 x0.991366 y-1.429963 -r1.738000 x0.842685 y-1.520041 -r1.736000 x0.685934 y-1.594738 -r1.734000 x0.522696 y-1.653344 -r1.732000 x0.354616 y-1.695309 -r1.730000 x0.183384 y-1.720253 -r1.728000 x0.010717 y-1.727967 -r1.726000 x-0.161658 y-1.718413 -r1.724000 x-0.332020 y-1.691727 -r1.722000 x-0.498673 y-1.648214 -r1.720000 x-0.659961 y-1.588349 -r1.718000 x-0.814287 y-1.512766 -r1.716000 x-0.960124 y-1.422258 -r1.713999 x-1.096037 y-1.317762 -r1.712001 x-1.220693 y-1.200356 -r1.710000 x-1.332871 y-1.071240 -r1.708000 x-1.431481 y-0.931732 -r1.706000 x-1.515571 y-0.783250 -r1.704000 x-1.584335 y-0.627296 -r1.702000 x-1.637121 y-0.465445 -r1.700000 x-1.673440 y-0.299329 -r1.698000 x-1.692969 y-0.130614 -r1.696000 x-1.695551 y0.039007 -r1.694000 x-1.681202 y0.207840 -r1.692000 x-1.650103 y0.374199 -r1.690000 x-1.602605 y0.536430 -r1.688000 x-1.539221 y0.692923 -r1.686000 x-1.460622 y0.842128 -r1.684000 x-1.367628 y0.982573 -r1.682000 x-1.261202 y1.112876 -r1.680000 x-1.142439 y1.231760 -r1.678000 x-1.012554 y1.338065 -r1.676001 x-0.872871 y1.430760 -r1.674000 x-0.724806 y1.508951 -r1.672000 x-0.569860 y1.571892 -r1.670000 x-0.409595 y1.618991 -r1.668000 x-0.245625 y1.649816 -r1.666001 x-0.079596 y1.664098 -r1.664000 x0.086830 y1.661733 -r1.662000 x0.251990 y1.642786 -r1.660000 x0.414237 y1.607485 -r1.658000 x0.571958 y1.556222 -r1.656000 x0.723590 y1.489548 -r1.654000 x0.867632 y1.408166 -r1.652000 x1.002666 y1.312922 -r1.650000 x1.127364 y1.204803 -r1.648000 x1.240506 y1.084919 -r1.646000 x1.340990 y0.954495 -r1.644000 x1.427844 y0.814860 -r1.642000 x1.500234 y0.667430 -r1.640000 x1.557471 y0.513695 -r1.638000 x1.599022 y0.355207 -r1.636000 x1.624509 y0.193560 -r1.634000 x1.633718 y0.030376 -r1.632000 x1.626595 y-0.132713 -r1.629999 x1.603252 y-0.294077 -r1.628000 x1.563963 y-0.452111 -r1.626000 x1.509157 y-0.605244 -r1.624000 x1.439422 y-0.751958 -r1.622001 x1.355489 y-0.890806 -r1.620000 x1.258231 y-1.020419 -r1.618000 x1.148654 y-1.139526 -r1.616000 x1.027880 y-1.246964 -r1.614000 x0.897145 y-1.341688 -r1.612000 x0.757777 y-1.422785 -r1.610000 x0.611191 y-1.489478 -r1.608000 x0.458867 y-1.541138 -r1.606000 x0.302341 y-1.577284 -r1.604000 x0.143186 y-1.597596 -r1.602000 x-0.017001 y-1.601910 -r1.600000 x-0.176620 y-1.590222 -r1.598000 x-0.334076 y-1.562689 -r1.596000 x-0.487805 y-1.519626 -r1.594000 x-0.636279 y-1.461501 -r1.592000 x-0.778029 y-1.388933 -r1.590000 x-0.911658 y-1.302682 -r1.588000 x-1.035850 y-1.203644 -r1.586000 x-1.149389 y-1.092841 -r1.584000 x-1.251169 y-0.971407 -r1.582000 x-1.340203 y-0.840583 -r1.580000 x-1.415634 y-0.701698 -r1.578000 x-1.476743 y-0.556160 -r1.576000 x-1.522956 y-0.405439 -r1.574000 x-1.553850 y-0.251052 -r1.572000 x-1.569154 y-0.094552 -r1.570000 x-1.568756 y0.062495 -r1.568000 x-1.552699 y0.218518 -r1.566000 x-1.521184 y0.371963 -r1.564000 x-1.474564 y0.521303 -r1.562000 x-1.413344 y0.665058 -r1.560000 x-1.338173 y0.801806 -r1.558000 x-1.249836 y0.930201 -r1.556000 x-1.149250 y1.048981 -r1.554000 x-1.037450 y1.156985 -r1.552000 x-0.915581 y1.253162 -r1.550000 x-0.784887 y1.336582 -r1.548000 x-0.646695 y1.406446 -r1.546000 x-0.502404 y1.462090 -r1.544000 x-0.353470 y1.502995 -r1.542000 x-0.201394 y1.528792 -r1.540000 x-0.047702 y1.539261 -r1.538000 x0.106069 y1.534338 -r1.536000 x0.258380 y1.514112 -r1.534000 x0.407717 y1.478825 -r1.532000 x0.552595 y1.428868 -r1.530000 x0.691579 y1.364778 -r1.528000 x0.823297 y1.287232 -r1.526000 x0.946452 y1.197040 -r1.524000 x1.059837 y1.095135 -r1.522000 x1.162346 y0.982566 -r1.520001 x1.252984 y0.860484 -r1.517999 x1.330875 y0.730133 -r1.516001 x1.395278 y0.592838 -r1.514000 x1.445582 y0.449986 -r1.512000 x1.481325 y0.303020 -r1.510000 x1.502186 y0.153417 -r1.508000 x1.507998 y0.002679 -r1.506000 x1.498741 y-0.147687 -r1.504000 x1.474549 y-0.296180 -r1.502000 x1.435702 y-0.441322 -r1.500000 x1.382627 y-0.581672 -r1.498000 x1.315892 y-0.715843 -r1.496001 x1.236201 y-0.842511 -r1.494000 x1.144382 y-0.960430 -r1.492000 x1.041386 y-1.068447 -r1.490000 x0.928271 y-1.165510 -r1.488000 x0.806193 y-1.250679 -r1.486000 x0.676395 y-1.323135 -r1.484000 x0.540195 y-1.382189 -r1.482000 x0.398969 y-1.427287 -r1.480000 x0.254142 y-1.458016 -r1.478000 x0.107168 y-1.474110 -r1.476000 x-0.040478 y-1.475445 -r1.474000 x-0.187320 y-1.462049 -r1.472001 x-0.331895 y-1.434096 -r1.470000 x-0.472764 y-1.391903 -r1.468000 x-0.608531 y-1.335932 -r1.466000 x-0.737855 y-1.266778 -r1.464000 x-0.859462 y-1.185167 -r1.462000 x-0.972157 y-1.091950 -r1.460000 x-1.074841 y-0.988087 -r1.458000 x-1.166516 y-0.874646 -r1.456000 x-1.246295 y-0.752785 -r1.454000 x-1.313415 y-0.623744 -r1.452000 x-1.367241 y-0.488832 -r1.450000 x-1.407271 y-0.349412 -r1.448000 x-1.433144 y-0.206888 -r1.446000 x-1.444640 y-0.062692 -r1.444000 x-1.441685 y0.081732 -r1.442000 x-1.424348 y0.224940 -r1.440000 x-1.392841 y0.365506 -r1.438000 x-1.347519 y0.502033 -r1.436000 x-1.288872 y0.633171 -r1.434000 x-1.217523 y0.757624 -r1.432000 x-1.134220 y0.874167 -r1.430000 x-1.039829 y0.981660 -r1.428000 x-0.935321 y1.079054 -r1.426000 x-0.821770 y1.165405 -r1.424000 x-0.700335 y1.239882 -r1.422001 x-0.572250 y1.301774 -r1.420000 x-0.438812 y1.350498 -r1.418000 x-0.301370 y1.385605 -r1.416000 x-0.161307 y1.406782 -r1.414000 x-0.020029 y1.413858 -r1.412000 x0.121050 y1.406802 -r1.410000 x0.260521 y1.385723 -r1.408000 x0.396997 y1.350873 -r1.406000 x0.529124 y1.302637 -r1.404000 x0.655593 y1.241537 -r1.402000 x0.775159 y1.168218 -r1.400000 x0.886647 y1.083447 -r1.398000 x0.988967 y0.988104 -r1.396000 x1.081123 y0.883170 -r1.394000 x1.162224 y0.769721 -r1.392000 x1.231492 y0.648915 -r1.390000 x1.288270 y0.521978 -r1.388000 x1.332025 y0.390195 -r1.386000 x1.362359 y0.254898 -r1.384000 x1.379008 y0.117445 -r1.382000 x1.381844 y-0.020782 -r1.380000 x1.370879 y-0.158403 -r1.378000 x1.346262 y-0.294044 -r1.376000 x1.308279 y-0.426358 -r1.374000 x1.257349 y-0.554031 -r1.372000 x1.194016 y-0.675804 -r1.370000 x1.118949 y-0.790476 -r1.368000 x1.032933 y-0.896924 -r1.366000 x0.936858 y-0.994109 -r1.364000 x0.831713 y-1.081087 -r1.362000 x0.718574 y-1.157020 -r1.360001 x0.598595 y-1.221182 -r1.358000 x0.472993 y-1.272966 -r1.356000 x0.343039 y-1.311892 -r1.354000 x0.210045 y-1.337609 -r1.352000 x0.075346 y-1.349899 -r1.350000 x-0.059707 y-1.348679 -r1.348000 x-0.193765 y-1.334001 -r1.346000 x-0.325491 y-1.306052 -r1.344001 x-0.453578 y-1.265150 -r1.342000 x-0.576756 y-1.211741 -r1.340000 x-0.693812 y-1.146397 -r1.338000 x-0.803593 y-1.069805 -r1.336000 x-0.905026 y-0.982764 -r1.334000 x-0.997122 y-0.886174 -r1.332000 x-1.078990 y-0.781028 -r1.330000 x-1.149843 y-0.668401 -r1.328000 x-1.209007 y-0.549442 -r1.326000 x-1.255925 y-0.425356 -r1.324000 x-1.290167 y-0.297398 -r1.322001 x-1.311428 y-0.166859 -r1.320000 x-1.319535 y-0.035048 -r1.318000 x-1.314447 y0.096714 -r1.316000 x-1.296255 y0.227112 -r1.314000 x-1.265180 y0.354847 -r1.311999 x-1.221571 y0.478651 -r1.310000 x-1.165903 y0.597302 -r1.308000 x-1.098768 y0.709629 -r1.306000 x-1.020871 y0.814530 -r1.304000 x-0.933022 y0.910981 -r1.302000 x-0.836130 y0.998043 -r1.300000 x-0.731190 y1.074877 -r1.298000 x-0.619274 y1.140747 -r1.296000 x-0.501522 y1.195028 -r1.294000 x-0.379127 y1.237214 -r1.292000 x-0.253325 y1.266922 -r1.290000 x-0.125384 y1.283892 -r1.288000 x0.003412 y1.287995 -r1.286000 x0.131775 y1.279231 -r1.284000 x0.258425 y1.257725 -r1.282000 x0.382100 y1.223733 -r1.280000 x0.501577 y1.177633 -r1.278000 x0.615675 y1.119923 -r1.276000 x0.723271 y1.051216 -r1.274000 x0.823312 y0.972231 -r1.272000 x0.914822 y0.883790 -r1.270000 x0.996913 y0.786806 -r1.268000 x1.068797 y0.682274 -r1.266000 x1.129786 y0.571261 -r1.264000 x1.179307 y0.454897 -r1.262001 x1.216901 y0.334361 -r1.260000 x1.242230 y0.210868 -r1.258000 x1.255080 y0.085662 -r1.256000 x1.255363 y-0.040001 -r1.254000 x1.243115 y-0.164865 -r1.252000 x1.218499 y-0.287686 -r1.250000 x1.181800 y-0.407244 -r1.248000 x1.133423 y-0.522356 -r1.246001 x1.073889 y-0.631886 -r1.244000 x1.003826 y-0.734758 -r1.242000 x0.923970 y-0.829966 -r1.240000 x0.835149 y-0.916584 -r1.238000 x0.738278 y-0.993775 -r1.236000 x0.634351 y-1.060799 -r1.234000 x0.524429 y-1.117018 -r1.232000 x0.409628 y-1.161907 -r1.230000 x0.291112 y-1.195054 -r1.228000 x0.170074 y-1.216166 -r1.226000 x0.047732 y-1.225070 -r1.224000 x-0.074687 y-1.221719 -r1.222000 x-0.195962 y-1.206185 -r1.220000 x-0.314884 y-1.178664 -r1.218000 x-0.430274 y-1.139468 -r1.216000 x-0.540992 y-1.089029 -r1.214000 x-0.645947 y-1.027886 -r1.212000 x-0.744109 y-0.956685 -r1.210000 x-0.834521 y-0.876170 -r1.208000 x-0.916306 y-0.787177 -r1.206000 x-0.988675 y-0.690621 -r1.204000 x-1.050937 y-0.587492 -r1.202000 x-1.102504 y-0.478841 -r1.200000 x-1.142896 y-0.365773 -r1.198000 x-1.171746 y-0.249430 -r1.196000 x-1.188806 y-0.130985 -r1.194000 x-1.193943 y-0.011629 -r1.192000 x-1.187148 y0.107444 -r1.189999 x-1.168526 y0.225046 -r1.188000 x-1.138305 y0.340008 -r1.186000 x-1.096825 y0.451189 -r1.184000 x-1.044537 y0.557493 -r1.182000 x-0.982001 y0.657874 -r1.180000 x-0.909875 y0.751351 -r1.178000 x-0.828912 y0.837012 -r1.176000 x-0.739951 y0.914029 -r1.174000 x-0.643906 y0.981662 -r1.172000 x-0.541762 y1.039268 -r1.170000 x-0.434559 y1.086305 -r1.168000 x-0.323385 y1.122340 -r1.166000 x-0.209363 y1.147050 -r1.164000 x-0.093642 y1.160227 -r1.162000 x0.022616 y1.161780 -r1.160000 x0.138249 y1.151732 -r1.158000 x0.252104 y1.130225 -r1.156000 x0.363051 y1.097511 -r1.154000 x0.469991 y1.053957 -r1.152000 x0.571870 y1.000034 -r1.150000 x0.667689 y0.936318 -r1.148000 x0.756511 y0.863479 -r1.146000 x0.837474 y0.782274 -r1.144000 x0.909797 y0.693546 -r1.142000 x0.972787 y0.598205 -r1.140000 x1.025848 y0.497228 -r1.138000 x1.068485 y0.391642 -r1.136000 x1.100309 y0.282517 -r1.134000 x1.121040 y0.170956 -r1.132000 x1.130509 y0.058083 -r1.130000 x1.128662 y-0.054973 -r1.128000 x1.115557 y-0.167080 -r1.126000 x1.091366 y-0.277123 -r1.124000 x1.056367 y-0.384010 -r1.122000 x1.010951 y-0.486685 -r1.120000 x0.955607 y-0.584137 -r1.118000 x0.890922 y-0.675412 -r1.115999 x0.817577 y-0.759620 -r1.114000 x0.736336 y-0.835946 -r1.112000 x0.648036 y-0.903656 -r1.110000 x0.553586 y-0.962103 -r1.108000 x0.453951 y-1.010739 -r1.106000 x0.350145 y-1.049111 -r1.104000 x0.243218 y-1.076876 -r1.102000 x0.134251 y-1.093792 -r1.100000 x0.024339 y-1.099731 -r1.098000 x-0.085416 y-1.094673 -r1.096000 x-0.193921 y-1.078708 -r1.094000 x-0.300094 y-1.052036 -r1.092000 x-0.402886 y-1.014962 -r1.090000 x-0.501280 y-0.967894 -r1.088000 x-0.594312 y-0.911338 -r1.086000 x-0.681070 y-0.845896 -r1.084000 x-0.760713 y-0.772251 -r1.082000 x-0.832470 y-0.691171 -r1.080000 x-0.895655 y-0.603492 -r1.078000 x-0.949667 y-0.510115 -r1.076000 x-0.994001 y-0.411992 -r1.074000 x-1.028251 y-0.310122 -r1.072000 x-1.052112 y-0.205535 -r1.070000 x-1.065384 y-0.099287 -r1.068000 x-1.067973 y0.007556 -r1.066000 x-1.059895 y0.113924 -r1.064000 x-1.041269 y0.218757 -r1.062001 x-1.012322 y0.321013 -r1.060000 x-0.973380 y0.419681 -r1.058000 x-0.924870 y0.513789 -r1.056000 x-0.867314 y0.602414 -r1.054000 x-0.801319 y0.684692 -r1.052000 x-0.727578 y0.759825 -r1.050000 x-0.646855 y0.827090 -r1.048000 x-0.559983 y0.885846 -r1.046000 x-0.467854 y0.935536 -r1.044000 x-0.371408 y0.975701 -r1.042000 x-0.271623 y1.005975 -r1.040000 x-0.169510 y1.026093 -r1.038000 x-0.066098 y1.035893 -r1.036000 x0.037577 y1.035318 -r1.034000 x0.140476 y1.024413 -r1.032000 x0.241577 y1.003327 -r1.030000 x0.339876 y0.972309 -r1.028000 x0.434402 y0.931708 -r1.026000 x0.524225 y0.881966 -r1.024000 x0.608467 y0.823616 -r1.022000 x0.686309 y0.757274 -r1.020000 x0.756997 y0.683634 -r1.018000 x0.819854 y0.603459 -r1.016000 x0.874283 y0.517577 -r1.014000 x0.919772 y0.426866 -r1.012000 x0.955904 y0.332253 -r1.010000 x0.982353 y0.234697 -r1.008000 x0.998894 y0.135185 -r1.006000 x1.005401 y0.034718 -r1.004000 x1.001848 y-0.065697 -r1.002000 x0.988312 y-0.165058 -r1.000000 x0.964966 y-0.262375 -r0.998000 x0.932084 y-0.356685 -r0.996000 x0.890031 y-0.447059 -r0.994000 x0.839264 y-0.532608 -r0.992000 x0.780326 y-0.612499 -r0.990000 x0.713838 y-0.685956 -r0.988000 x0.640494 y-0.752271 -r0.986000 x0.561054 y-0.810811 -r0.984000 x0.476337 y-0.861022 -r0.982000 x0.387210 y-0.902437 -r0.980000 x0.294581 y-0.934678 -r0.978000 x0.199389 y-0.957459 -r0.976000 x0.102596 y-0.970593 -r0.974000 x0.005176 y-0.973986 -r0.972000 x-0.091897 y-0.967646 -r0.970000 x-0.187655 y-0.951675 -r0.968000 x-0.281145 y-0.926273 -r0.966000 x-0.371445 y-0.891731 -r0.964000 x-0.457664 y-0.848434 -r0.962000 x-0.538959 y-0.796848 -r0.960000 x-0.614539 y-0.737524 -r0.958000 x-0.683671 y-0.671087 -r0.956000 x-0.745692 y-0.598230 -r0.954000 x-0.800013 y-0.519707 -r0.952000 x-0.846123 y-0.436326 -r0.950000 x-0.883595 y-0.348940 -r0.948000 x-0.912093 y-0.258439 -r0.946000 x-0.931368 y-0.165740 -r0.944000 x-0.941267 y-0.071779 -r0.942000 x-0.941731 y0.022502 -r0.940000 x-0.932795 y0.116159 -r0.938000 x-0.914589 y0.208259 -r0.936000 x-0.887332 y0.297888 -r0.934000 x-0.851337 y0.384163 -r0.932000 x-0.807000 y0.466235 -r0.930000 x-0.754799 y0.543303 -r0.928000 x-0.695290 y0.614618 -r0.926000 x-0.629099 y0.679493 -r0.924000 x-0.556914 y0.737308 -r0.922000 x-0.479484 y0.787515 -r0.920000 x-0.397604 y0.829645 -r0.918000 x-0.312111 y0.863314 -r0.916000 x-0.223875 y0.888221 -r0.914000 x-0.133790 y0.904155 -r0.912000 x-0.042763 y0.910997 -r0.910000 x0.048292 y0.908718 -r0.908000 x0.138467 y0.897380 -r0.906000 x0.226862 y0.877137 -r0.904000 x0.312605 y0.848230 -r0.902000 x0.394850 y0.810986 -r0.900000 x0.472790 y0.765813 -r0.898000 x0.545666 y0.713199 -r0.896000 x0.612773 y0.653701 -r0.894000 x0.673467 y0.587944 -r0.892000 x0.727168 y0.516614 -r0.890000 x0.773373 y0.440448 -r0.888000 x0.811653 y0.360228 -r0.886000 x0.841661 y0.276773 -r0.884000 x0.863134 y0.190933 -r0.882000 x0.875897 y0.103574 -r0.880000 x0.879862 y0.015578 -r0.878000 x0.875028 y-0.072175 -r0.876000 x0.861485 y-0.158809 -r0.874000 x0.839405 y-0.243464 -r0.872000 x0.809050 y-0.325302 -r0.870000 x0.770761 y-0.403519 -r0.868000 x0.724955 y-0.477351 -r0.866000 x0.672125 y-0.546080 -r0.864000 x0.612832 y-0.609043 -r0.862000 x0.547697 y-0.665637 -r0.860000 x0.477397 y-0.715326 -r0.858000 x0.402660 y-0.757647 -r0.856000 x0.324253 y-0.792210 -r0.854000 x0.242975 y-0.818706 -r0.852000 x0.159652 y-0.836908 -r0.850000 x0.075126 y-0.846674 -r0.848000 x-0.009752 y-0.847944 -r0.846000 x-0.094134 y-0.840747 -r0.844000 x-0.177179 y-0.825193 -r0.842000 x-0.258063 y-0.801478 -r0.840000 x-0.335988 y-0.769878 -r0.838000 x-0.410190 y-0.730745 -r0.836000 x-0.479945 y-0.684506 -r0.834000 x-0.544578 y-0.631657 -r0.832000 x-0.603467 y-0.572758 -r0.830000 x-0.656052 y-0.508425 -r0.828000 x-0.701837 y-0.439328 -r0.826001 x-0.740398 y-0.366180 -r0.824000 x-0.771383 y-0.289731 -r0.822000 x-0.794521 y-0.210761 -r0.820000 x-0.809618 y-0.130071 -r0.818000 x-0.816562 y-0.048475 -r0.816000 x-0.815324 y0.033206 -r0.814000 x-0.805956 y0.114156 -r0.812000 x-0.788590 y0.193570 -r0.810000 x-0.763441 y0.270662 -r0.808000 x-0.730797 y0.344674 -r0.806000 x-0.691021 y0.414881 -r0.804000 x-0.644547 y0.480599 -r0.802000 x-0.591871 y0.541196 -r0.800000 x-0.533550 y0.596091 -r0.798000 x-0.470197 y0.644763 -r0.796000 x-0.402468 y0.686757 -r0.794000 x-0.331062 y0.721688 -r0.792000 x-0.256711 y0.749242 -r0.790000 x-0.180173 y0.769180 -r0.788000 x-0.102223 y0.781341 -r0.786000 x-0.023649 y0.785644 -r0.784000 x0.054763 y0.782085 -r0.782000 x0.132230 y0.770739 -r0.779999 x0.207981 y0.751760 -r0.778000 x0.281270 y0.725377 -r0.776000 x0.351376 y0.691889 -r0.774000 x0.417615 y0.651670 -r0.772000 x0.479346 y0.605154 -r0.769999 x0.535973 y0.552840 -r0.768000 x0.586959 y0.495281 -r0.766000 x0.631823 y0.433077 -r0.763999 x0.670147 y0.366876 -r0.762000 x0.701585 y0.297360 -r0.760000 x0.725856 y0.225240 -r0.758000 x0.742756 y0.151251 -r0.756000 x0.752156 y0.076142 -r0.754000 x0.754000 y0.000670 -r0.752000 x0.748310 y-0.074410 -r0.750000 x0.735182 y-0.148349 -r0.748000 x0.714788 y-0.220414 -r0.746000 x0.687369 y-0.289896 -r0.744000 x0.653238 y-0.356113 -r0.742000 x0.612771 y-0.418421 -r0.740000 x0.566406 y-0.476218 -r0.738000 x0.514640 y-0.528952 -r0.736000 x0.458017 y-0.576122 -r0.734000 x0.397130 y-0.617287 -r0.732000 x0.332612 y-0.652069 -r0.730000 x0.265125 y-0.680153 -r0.728000 x0.195362 y-0.701297 -r0.726000 x0.124032 y-0.715327 -r0.724000 x0.051855 y-0.722141 -r0.722000 x-0.020441 y-0.721711 -r0.720000 x-0.092134 y-0.714081 -r0.718000 x-0.162510 y-0.699367 -r0.716000 x-0.230873 y-0.677756 -r0.714000 x-0.296552 y-0.649502 -r0.712000 x-0.358904 y-0.614924 -r0.710000 x-0.417326 y-0.574403 -r0.708000 x-0.471254 y-0.528378 -r0.706000 x-0.520176 y-0.477339 -r0.704000 x-0.563631 y-0.421825 -r0.702000 x-0.601214 y-0.362416 -r0.700000 x-0.632585 y-0.299728 -r0.698000 x-0.657463 y-0.234406 -r0.696000 x-0.675639 y-0.167118 -r0.694000 x-0.686968 y-0.098547 -r0.692000 x-0.691376 y-0.029388 -r0.690000 x-0.688859 y0.039666 -r0.688000 x-0.679482 y0.107926 -r0.686000 x-0.663379 y0.174712 -r0.684000 x-0.640749 y0.239367 -r0.682000 x-0.611857 y0.301256 -r0.680000 x-0.577028 y0.359776 -r0.678000 x-0.536644 y0.414363 -r0.676000 x-0.491143 y0.464494 -r0.674000 x-0.441009 y0.509693 -r0.672000 x-0.386770 y0.549539 -r0.670000 x-0.328993 y0.583664 -r0.668000 x-0.268277 y0.611761 -r0.666000 x-0.205246 y0.633585 -r0.664000 x-0.140545 y0.648955 -r0.662000 x-0.074829 y0.657757 -r0.660000 x-0.008763 y0.659942 -r0.658000 x0.056992 y0.655527 -r0.656000 x0.121780 y0.644597 -r0.654000 x0.184958 y0.627301 -r0.652000 x0.245905 y0.603850 -r0.650000 x0.304026 y0.574516 -r0.648000 x0.358755 y0.539628 -r0.646000 x0.409568 y0.499570 -r0.644000 x0.455980 y0.454773 -r0.642000 x0.497553 y0.405715 -r0.640000 x0.533903 y0.352913 -r0.638000 x0.564698 y0.296918 -r0.636000 x0.589665 y0.238309 -r0.634000 x0.608590 y0.177690 -r0.632000 x0.621323 y0.115679 -r0.630000 x0.627775 y0.052904 -r0.628000 x0.627920 y-0.010001 -r0.626000 x0.621798 y-0.072408 -r0.624000 x0.609510 y-0.133694 -r0.622001 x0.591217 y-0.193254 -r0.620000 x0.567140 y-0.250503 -r0.618000 x0.537559 y-0.304885 -r0.616000 x0.502803 y-0.355872 -r0.614000 x0.463254 y-0.402978 -r0.612000 x0.419339 y-0.445757 -r0.610000 x0.371524 y-0.483808 -r0.608000 x0.320314 y-0.516781 -r0.606000 x0.266243 y-0.544381 -r0.604000 x0.209871 y-0.566366 -r0.602000 x0.151776 y-0.582553 -r0.600000 x0.092551 y-0.592819 -r0.598000 x0.032796 y-0.597100 -r0.596000 x-0.026888 y-0.595393 -r0.594000 x-0.085905 y-0.587755 -r0.592000 x-0.143668 y-0.574303 -r0.590000 x-0.199608 y-0.555209 -r0.588000 x-0.253178 y-0.530702 -r0.586000 x-0.303858 y-0.501065 -r0.584001 x-0.351161 y-0.466629 -r0.582000 x-0.394635 y-0.427770 -r0.580000 x-0.433873 y-0.384908 -r0.578000 x-0.468511 y-0.338498 -r0.576000 x-0.498234 y-0.289031 -r0.573999 x-0.522778 y-0.237020 -r0.572000 x-0.541934 y-0.183006 -r0.570000 x-0.555548 y-0.127541 -r0.568000 x-0.563521 y-0.071191 -r0.566000 x-0.565814 y-0.014525 -r0.564001 x-0.562443 y0.041886 -r0.562000 x-0.553481 y0.097480 -r0.560000 x-0.539059 y0.151707 -r0.558000 x-0.519359 y0.204034 -r0.556000 x-0.494616 y0.253951 -r0.554000 x-0.465113 y0.300975 -r0.552000 x-0.431180 y0.344656 -r0.550000 x-0.393188 y0.384582 -r0.548000 x-0.351546 y0.420380 -r0.546000 x-0.306699 y0.451721 -r0.544000 x-0.259117 y0.478325 -r0.542000 x-0.209297 y0.499959 -r0.540000 x-0.157755 y0.516443 -r0.538000 x-0.105018 y0.527651 -r0.536000 x-0.051624 y0.533508 -r0.534000 x0.001889 y0.533997 -r0.532000 x0.054984 y0.529151 -r0.530001 x0.107132 y0.519060 -r0.528000 x0.157818 y0.503863 -r0.526000 x0.206547 y0.483750 -r0.524000 x0.252844 y0.458962 -r0.522000 x0.296266 y0.429780 -r0.520000 x0.336398 y0.396530 -r0.518000 x0.372865 y0.359577 -r0.516000 x0.405329 y0.319319 -r0.514000 x0.433496 y0.276184 -r0.512000 x0.457117 y0.230626 -r0.510000 x0.475991 y0.183120 -r0.508000 x0.489965 y0.134157 -r0.506000 x0.498939 y0.084239 -r0.504000 x0.502860 y0.033873 -r0.502000 x0.501731 y-0.016433 -r0.500000 x0.495601 y-0.066176 -r0.498000 x0.484573 y-0.114862 -r0.496000 x0.468795 y-0.162011 -r0.494000 x0.448463 y-0.207164 -r0.492000 x0.423818 y-0.249885 -r0.490000 x0.395141 y-0.289765 -r0.488000 x0.362752 y-0.326428 -r0.486000 x0.327005 y-0.359532 -r0.484000 x0.288287 y-0.388776 -r0.482000 x0.247009 y-0.413897 -r0.480000 x0.203606 y-0.434678 -r0.478000 x0.158530 y-0.450946 -r0.476000 x0.112247 y-0.462576 -r0.474000 x0.065230 y-0.469490 -r0.472000 x0.017958 y-0.471658 -r0.470000 x-0.029095 y-0.469099 -r0.467999 x-0.075459 y-0.461876 -r0.466000 x-0.120675 y-0.450104 -r0.464000 x-0.164300 y-0.433937 -r0.462000 x-0.205909 y-0.413577 -r0.460000 x-0.245103 y-0.389261 -r0.458000 x-0.281511 y-0.361270 -r0.456000 x-0.314790 y-0.329914 -r0.454000 x-0.344636 y-0.295537 -r0.452000 x-0.370778 y-0.258510 -r0.450000 x-0.392987 y-0.219229 -r0.448000 x-0.411075 y-0.178105 -r0.446000 x-0.424897 y-0.135568 -r0.444000 x-0.434352 y-0.092057 -r0.442000 x-0.439384 y-0.048017 -r0.440000 x-0.439983 y-0.003895 -r0.438000 x-0.436182 y0.039868 -r0.436000 x-0.428059 y0.082834 -r0.434000 x-0.415735 y0.124581 -r0.432000 x-0.399372 y0.164700 -r0.430000 x-0.379170 y0.202805 -r0.428000 x-0.355369 y0.238531 -r0.426000 x-0.328239 y0.271542 -r0.424000 x-0.298084 y0.301532 -r0.422000 x-0.265235 y0.328229 -r0.420000 x-0.230046 y0.351395 -r0.418000 x-0.192893 y0.370832 -r0.416000 x-0.154167 y0.386379 -r0.414000 x-0.114271 y0.397917 -r0.412000 x-0.073617 y0.405370 -r0.410000 x-0.032621 y0.408700 -r0.408000 x0.008303 y0.407916 -r0.406000 x0.048745 y0.403063 -r0.404000 x0.088304 y0.394231 -r0.402000 x0.126590 y0.381548 -r0.400000 x0.163233 y0.365178 -r0.398000 x0.197880 y0.345322 -r0.396000 x0.230203 y0.322215 -r0.394000 x0.259902 y0.296120 -r0.392000 x0.286703 y0.267330 -r0.390000 x0.310368 y0.236161 -r0.388000 x0.330689 y0.202950 -r0.386000 x0.347498 y0.168051 -r0.384000 x0.360661 y0.131833 -r0.382001 x0.370083 y0.094673 -r0.380000 x0.375708 y0.056953 -r0.378000 x0.377519 y0.019060 -r0.376000 x0.375538 y-0.018625 -r0.374000 x0.369825 y-0.055726 -r0.372000 x0.360476 y-0.091874 -r0.370000 x0.347624 y-0.126718 -r0.368000 x0.331436 y-0.159920 -r0.366000 x0.312109 y-0.191165 -r0.364000 x0.289872 y-0.220159 -r0.362000 x0.264981 y-0.246636 -r0.360000 x0.237714 y-0.270355 -r0.358000 x0.208372 y-0.291110 -r0.356000 x0.177272 y-0.308724 -r0.354000 x0.144748 y-0.323054 -r0.352000 x0.111142 y-0.333993 -r0.350000 x0.076804 y-0.341469 -r0.347999 x0.042088 y-0.345445 -r0.346000 x0.007349 y-0.345922 -r0.344000 x-0.027065 y-0.342934 -r0.342000 x-0.060811 y-0.336550 -r0.340000 x-0.093556 y-0.326875 -r0.338000 x-0.124982 y-0.314044 -r0.336000 x-0.154788 y-0.298223 -r0.334000 x-0.182693 y-0.279605 -r0.332000 x-0.208439 y-0.258413 -r0.330000 x-0.231791 y-0.234889 -r0.328000 x-0.252543 y-0.209299 -r0.326000 x-0.270517 y-0.181925 -r0.324000 x-0.285565 y-0.153065 -r0.322000 x-0.297571 y-0.123027 -r0.320000 x-0.306451 y-0.092129 -r0.318000 x-0.312154 y-0.060693 -r0.316000 x-0.314663 y-0.029043 -r0.314000 x-0.313990 y0.002500 -r0.312000 x-0.310183 y0.033619 -r0.310000 x-0.303321 y0.064005 -r0.307999 x-0.293509 y0.093360 -r0.306000 x-0.280887 y0.121403 -r0.304000 x-0.265616 y0.147865 -r0.302000 x-0.247886 y0.172501 -r0.299999 x-0.227906 y0.195086 -r0.298000 x-0.205910 y0.215419 -r0.296000 x-0.182144 y0.233323 -r0.294000 x-0.156874 y0.248650 -r0.292000 x-0.130374 y0.261279 -r0.290000 x-0.102928 y0.271120 -r0.287999 x-0.074827 y0.278109 -r0.286000 x-0.046365 y0.282217 -r0.284000 x-0.017833 y0.283440 -r0.282000 x0.010479 y0.281805 -r0.280000 x0.038286 y0.277370 -r0.278000 x0.065316 y0.270218 -r0.276000 x0.091305 y0.260460 -r0.274001 x0.116005 y0.248232 -r0.272000 x0.139183 y0.233692 -r0.270000 x0.160629 y0.217022 -r0.268000 x0.180148 y0.198421 -r0.266000 x0.197571 y0.178106 -r0.263999 x0.212753 y0.156307 -r0.262000 x0.225573 y0.133269 -r0.260000 x0.235936 y0.109243 -r0.258000 x0.243774 y0.084488 -r0.256000 x0.249045 y0.059267 -r0.254000 x0.251736 y0.033841 -r0.252000 x0.251858 y0.008473 -r0.250000 x0.249450 y-0.016580 -r0.248000 x0.244576 y-0.041070 -r0.246000 x0.237324 y-0.064755 -r0.244000 x0.227807 y-0.087408 -r0.242000 x0.216156 y-0.108815 -r0.240000 x0.202525 y-0.128778 -r0.238000 x0.187085 y-0.147117 -r0.236000 x0.170022 y-0.163672 -r0.234000 x0.151538 y-0.178304 -r0.232000 x0.131843 y-0.190896 -r0.230000 x0.111160 y-0.201354 -r0.228000 x0.089716 y-0.209607 -r0.226000 x0.067742 y-0.215608 -r0.224000 x0.045473 y-0.219336 -r0.222000 x0.023140 y-0.220791 -r0.220000 x0.000974 y-0.219998 -r0.218000 x-0.020803 y-0.217005 -r0.216000 x-0.041975 y-0.211882 -r0.214000 x-0.062336 y-0.204720 -r0.212000 x-0.081692 y-0.195628 -r0.210000 x-0.099863 y-0.184736 -r0.208000 x-0.116685 y-0.172188 -r0.206000 x-0.132010 y-0.158143 -r0.204000 x-0.145710 y-0.142774 -r0.202000 x-0.157675 y-0.126264 -r0.200000 x-0.167814 y-0.108804 -r0.198000 x-0.176060 y-0.090592 -r0.196000 x-0.182364 y-0.071830 -r0.194000 x-0.186699 y-0.052722 -r0.192000 x-0.189060 y-0.033471 -r0.190000 x-0.189463 y-0.014279 -r0.188000 x-0.187942 y0.004658 -r0.186000 x-0.184554 y0.023149 -r0.184000 x-0.179371 y0.041012 -r0.182000 x-0.172485 y0.058076 -r0.179999 x-0.164003 y0.074181 -r0.178000 x-0.154047 y0.089182 -r0.175999 x-0.142752 y0.102945 -r0.174001 x-0.130265 y0.115357 -r0.172000 x-0.116740 y0.126316 -r0.170000 x-0.102342 y0.135743 -r0.168000 x-0.087240 y0.143573 -r0.166001 x-0.071609 y0.149761 -r0.164000 x-0.055621 y0.154280 -r0.162000 x-0.039454 y0.157122 -r0.160000 x-0.023280 y0.158297 -r0.158000 x-0.007268 y0.157833 -r0.156000 x0.008417 y0.155773 -r0.154000 x0.023620 y0.152178 -r0.152000 x0.038191 y0.147124 -r0.150000 x0.051995 y0.140700 -r0.148000 x0.064905 y0.133009 -r0.146000 x0.076807 y0.124164 -r0.144000 x0.087603 y0.114288 -r0.142001 x0.097206 y0.103514 -r0.140000 x0.105546 y0.091978 -r0.138000 x0.112570 y0.079825 -r0.136000 x0.118238 y0.067199 -r0.134000 x0.122527 y0.054250 -r0.132000 x0.125431 y0.041123 -r0.130000 x0.126956 y0.027966 -r0.128000 x0.127128 y0.014918 -r0.126000 x0.125982 y0.002119 -r0.124000 x0.123571 y-0.010303 -r0.122000 x0.119959 y-0.022224 -r0.120000 x0.115220 y-0.033530 -r0.117999 x0.109442 y-0.044117 -r0.116000 x0.102720 y-0.053894 -r0.114000 x0.095157 y-0.062778 -r0.112000 x0.086863 y-0.070702 -r0.110000 x0.077954 y-0.077609 -r0.108000 x0.068547 y-0.083459 -r0.106000 x0.058764 y-0.088220 -r0.104000 x0.048726 y-0.091879 -r0.102000 x0.038554 y-0.094433 -r0.100000 x0.028366 y-0.095892 -r0.098000 x0.018278 y-0.096280 -r0.096000 x0.008400 y-0.095632 -r0.094000 x-0.001165 y-0.093993 -r0.092000 x-0.010318 y-0.091420 -r0.090000 x-0.018972 y-0.087978 -r0.088000 x-0.027045 y-0.083741 -r0.086000 x-0.034469 y-0.078790 -r0.084000 x-0.041182 y-0.073212 -r0.082000 x-0.047136 y-0.067099 -r0.080000 x-0.052291 y-0.060544 -r0.078000 x-0.056623 y-0.053646 -r0.076000 x-0.060114 y-0.046501 -r0.074000 x-0.062759 y-0.039208 -r0.072000 x-0.064567 y-0.031861 -r0.070000 x-0.065552 y-0.024555 -r0.068000 x-0.065742 y-0.017377 -r0.066000 x-0.065174 y-0.010411 -r0.064000 x-0.063891 y-0.003736 -r0.062000 x-0.061946 y0.002578 -r0.060000 x-0.059400 y0.008467 -r0.058000 x-0.056316 y0.013876 -r0.055999 x-0.052764 y0.018759 -r0.054000 x-0.048820 y0.023079 -r0.052000 x-0.044558 y0.026806 -r0.050000 x-0.040057 y0.029924 -r0.048000 x-0.035395 y0.032422 -r0.046000 x-0.030649 y0.034302 -r0.044000 x-0.025894 y0.035574 -r0.042000 x-0.021204 y0.036255 -r0.040000 x-0.016646 y0.036372 -r0.038000 x-0.012285 y0.035959 -r0.036000 x-0.008179 y0.035059 -r0.034000 x-0.004381 y0.033717 -r0.032000 x-0.000934 y0.031986 -r0.030000 x0.002122 y0.029925 -r0.028000 x0.004759 y0.027593 -r0.026000 x0.006955 y0.025053 -r0.024000 x0.008697 y0.022369 -r0.022000 x0.009979 y0.019607 -r0.020000 x0.010806 y0.016829 -r0.018000 x0.011189 y0.014100 -r0.016000 x0.011147 y0.011478 -r0.014000 x0.010708 y0.009019 -r0.012000 x0.009904 y0.006776 -r0.010000 x0.008776 y0.004794 -r0.007999 x0.007368 y0.003115 -r0.006000 x0.005732 y0.001773 -r0.004000 x0.003920 y0.000795 -r0.002000 x0.001990 y0.000200 -g0z1 -m2 diff --git a/nc_files/b-index.ngc b/nc_files/b-index.ngc deleted file mode 100644 index b5c9da128e4..00000000000 --- a/nc_files/b-index.ngc +++ /dev/null @@ -1,14 +0,0 @@ -; this file tests the lock/unlock of an indexing rotary. -; run it with a configuration having [AXIS_4]LOCKING_INDEXER=1 -g20 g90 -g0b0 -g0x0y0z0 -g1x1f70 -g0x2 -b45 -x3 -b90 -x2 -b0 -x1 -m2 diff --git a/nc_files/cds.ngc b/nc_files/cds.ngc deleted file mode 100644 index 55a042f035f..00000000000 --- a/nc_files/cds.ngc +++ /dev/null @@ -1,284 +0,0 @@ -(Circle Diamond Square Program) -(Tom Kramer) -(26-Sep-1994) -(Assumes 4"x4"x2" finished stock) -(Top of stock at Z=2") -(X: 0.000 to 4.0) -(Y: -0.250 to 3.915) -(Z: 1.406 to 3.0) -(Cutter does not descend more than 0.94" below top) -n0080 G90 M9 -n0090 G43 H1 g20 -n0140 F16.0 S3500 M3 -n0150 (MILLING AN ENCLOSED POCKET) -n0155 G0 Z+2.1 -n0160 G0 X+0.0 Y+3.915 -n0170 G0 Z+2.1 -n0180 G1 Z+1.6875 (start left circle zigzag) -n0190 G1 X+4.0 -n0200 G1 Y+3.725 -n0210 G1 X+0.0 -n0220 G1 Y+3.535 -n0230 G1 X+1.437 -n0240 G3 X+1.0704 Y+3.345 R+1.635 -n0250 G1 X+0.0 -n0260 G1 Y+3.155 -n0270 G1 X+0.8428 -n0280 G3 X+0.6802 Y+2.965 R+1.635 -n0290 G1 X+0.0 -n0300 G1 Y+2.775 -n0310 G1 X+0.5603 -n0320 G3 X+0.4732 Y+2.585 R+1.635 -n0330 G1 X+0.0 -n0340 G1 Y+2.395 -n0350 G1 X+0.4134 -n0360 G3 X+0.3779 Y+2.205 R+1.635 -n0370 G1 X+0.0 -n0380 G1 Y+2.015 -n0390 G1 X+0.3651 -n0400 G3 X+0.365 Y+2.0 R+1.635 -n0410 G3 X+0.3744 Y+1.825 R+1.635 -n0420 G1 X+0.0 -n0430 G1 Y+1.635 -n0440 G1 X+0.4063 -n0450 G3 X+0.4621 Y+1.445 R+1.635 -n0460 G1 X+0.0 -n0470 G1 Y+1.255 -n0480 G1 X+0.5446 -n0490 G3 X+0.6587 Y+1.065 R+1.635 -n0500 G1 X+0.0 -n0510 G1 Y+0.875 -n0520 G1 X+0.8136 -n0530 G3 X+1.0284 Y+0.685 R+1.635 -n0540 G1 X+0.0 -n0550 G1 Y+0.495 -n0560 G1 X+1.3611 -n0570 G3 X+2.0 Y+0.365 R+1.635 -n0580 G3 X+2.6389 Y+0.495 R+1.635 -n0590 G1 X+4.0 -n0600 G1 Y+0.305 -n0610 G1 X+0.0 -n0620 G1 Y+0.115 -n0630 G1 X+4.0 -n0640 G0 Z+3.0 (end left circle zigzag) -n0650 G0 X+1.437 Y+3.535 -n0660 G0 Z+2.1 -n0670 G1 Z+1.6875 (start right circle zigzag) -n0680 G2 X+2.0 Y+3.635 R+1.635 -n0690 G2 X+2.563 Y+3.535 R+1.635 -n0700 G1 X+4.0 -n0710 G1 Y+3.345 -n0720 G1 X+2.9296 -n0730 G2 X+3.1572 Y+3.155 R+1.635 -n0740 G1 X+4.0 -n0750 G1 Y+2.965 -n0760 G1 X+3.3198 -n0770 G2 X+3.4397 Y+2.775 R+1.635 -n0780 G1 X+4.0 -n0790 G1 Y+2.585 -n0800 G1 X+3.5268 -n0810 G2 X+3.5866 Y+2.395 R+1.635 -n0820 G1 X+4.0 -n0830 G1 Y+2.205 -n0840 G1 X+3.6221 -n0850 G2 X+3.6349 Y+2.015 R+1.635 -n0860 G1 X+4.0 -n0870 G1 Y+1.825 -n0880 G1 X+3.6256 -n0890 G2 X+3.5937 Y+1.635 R+1.635 -n0900 G1 X+4.0 -n0910 G1 Y+1.445 -n0920 G1 X+3.5379 -n0930 G2 X+3.4554 Y+1.255 R+1.635 -n0940 G1 X+4.0 -n0950 G1 Y+1.065 -n0960 G1 X+3.3413 -n0970 G2 X+3.1864 Y+0.875 R+1.635 -n0980 G1 X+4.0 -n0990 G1 Y+0.685 -n1000 G1 X+2.9716 (end right circle zigzag) -n1010 G0 Z+3.0 (boundary cut deleted) -n1140 G0 X+2.0 Y+0.375 (start cut around circle) -n1150 G0 Z+2.1 -n1160 G1 Z+1.6875 -n1170 G2 X+0.375 Y+2.0 R+1.625 -n1180 G2 X+2.0 Y+3.625 R+1.625 -n1190 G2 X+3.625 Y+2.0 R+1.625 -n1200 G2 X+2.0 Y+0.375 R+1.625 -n1210 G1 Z+2.1 (end cut around circle) -n1220 G0 Z+3.0 -n1230 (MILLING AN ENCLOSED POCKET) -n1240 G0 X+1.4732 Y+3.59 -n1250 G0 Z+2.1 (start left diamond zigzag) -n1260 G1 Z+1.8437 -n1270 G1 X+1.8991 -n1280 G1 X+1.7091 Y+3.4 -n1290 G1 X+1.0804 -n1300 G3 X+0.8418 Y+3.21 R+1.675 -n1310 G1 X+1.5191 -n1320 G1 X+1.3291 Y+3.02 -n1330 G1 X+0.6714 -n1340 G3 X+0.5451 Y+2.83 R+1.675 -n1350 G1 X+1.1391 -n1360 G1 X+0.9491 Y+2.64 -n1370 G1 X+0.4521 -n1380 G3 X+0.3866 Y+2.45 R+1.675 -n1390 G1 X+0.7591 -n1400 G1 X+0.5691 Y+2.26 -n1410 G1 X+0.3453 -n1420 G3 X+0.3265 Y+2.07 R+1.675 -n1430 G1 X+0.3846 -n1440 G3 X+0.4045 Y+1.9045 R+0.135 -n1450 G1 X+0.4291 Y+1.88 -n1460 G1 X+0.3293 -n1470 G3 X+0.3539 Y+1.69 R+1.675 -n1480 G1 X+0.6191 -n1490 G1 X+0.8091 Y+1.5 -n1500 G1 X+0.4014 -n1510 G3 X+0.4737 Y+1.31 R+1.675 -n1520 G1 X+0.9991 -n1530 G1 X+1.1891 Y+1.12 -n1540 G1 X+0.5748 -n1550 G3 X+0.7113 Y+0.93 R+1.675 -n1560 G1 X+1.3791 -n1570 G1 X+1.5691 Y+0.74 -n1580 G1 X+0.8964 -n1590 G3 X+1.1615 Y+0.55 R+1.675 -n1600 G1 X+1.7591 -n1610 G1 X+1.9045 Y+0.4045 -n1620 G3 X+2.0955 Y+0.4045 R+0.135 -n1630 G1 X+2.2409 Y+0.55 -n1640 G1 X+2.8385 -n1650 G2 X+2.3406 Y+0.36 R+1.675 -n1660 G1 X+1.6594 -n1670 G0 Z+3.0 (end left diamond zigzag) -n1680 G0 X+1.8991 Y+3.59 -n1690 G0 Z+2.1 (start right diamond zigzag) -n1700 G1 Z+1.8437 -n1710 G1 X+1.9045 Y+3.5955 -n1720 G2 X+2.0955 Y+3.5955 R+0.135 -n1730 G1 X+2.1009 Y+3.59 -n1740 G1 X+2.5268 -n1750 G2 X+2.9196 Y+3.4 R+1.675 -n1760 G1 X+2.2909 -n1770 G1 X+2.4809 Y+3.21 -n1780 G1 X+3.1582 -n1790 G2 X+3.3286 Y+3.02 R+1.675 -n1800 G1 X+2.6709 -n1810 G1 X+2.8609 Y+2.83 -n1820 G1 X+3.4549 -n1830 G2 X+3.5479 Y+2.64 R+1.675 -n1840 G1 X+3.0509 -n1850 G1 X+3.2409 Y+2.45 -n1860 G1 X+3.6134 -n1870 G2 X+3.6547 Y+2.26 R+1.675 -n1880 G1 X+3.4309 -n1890 G1 X+3.5955 Y+2.0955 -n1900 G2 X+3.6154 Y+2.07 R+0.135 -n1910 G1 X+3.6735 -n1920 G2 X+3.675 Y+2.0 R+1.675 -n1930 G2 X+3.6707 Y+1.88 R+1.675 -n1940 G1 X+3.5709 -n1950 G1 X+3.3809 Y+1.69 -n1960 G1 X+3.6461 -n1970 G2 X+3.5986 Y+1.5 R+1.675 -n1980 G1 X+3.1909 -n1990 G1 X+3.0009 Y+1.31 -n2000 G1 X+3.5263 -n2010 G2 X+3.4252 Y+1.12 R+1.675 -n2020 G1 X+2.8109 -n2030 G1 X+2.6209 Y+0.93 -n2040 G1 X+3.2887 -n2050 G2 X+3.1036 Y+0.74 R+1.675 -n2060 G1 X+2.4309 (end right diamond zigzag) -n2070 G0 Z+3.0 (boundary cut deleted) -n2160 G0 X+2.0884 Y+0.4116 -n2170 G0 Z+2.1 (start diamond boundary) -n2180 G1 Z+1.8437 -n2190 G2 X+1.9116 Y+0.4116 R+0.125 -n2200 G1 X+0.4116 Y+1.9116 -n2210 G2 X+0.4116 Y+2.0884 R+0.125 -n2220 G1 X+1.9116 Y+3.5884 -n2230 G2 X+2.0884 Y+3.5884 R+0.125 -n2240 G1 X+3.5884 Y+2.0884 -n2250 G2 X+3.5884 Y+1.9116 R+0.125 -n2260 G1 X+2.0884 Y+0.4116 -n2270 G1 Z+2.1 -n2280 g0 z+3.0 -n2290 g0 x+2.0 y+3.8 -n2300 g0 z+2.1 (start diamond top) -n2310 g1 z+2.0 -n2320 g1 y+3.5 -n2330 g1 x+2.1 y+3.4 -n2340 g1 x+1.9 -n2350 g1 x+1.7 y+3.2 -n2360 g1 x+2.3 -n2370 g1 x+2.5 y+3.0 -n2380 g1 x+1.5 -n2390 g1 x+1.3 y+2.8 -n2400 g1 x+2.7 -n2410 g1 x+2.9 y+2.6 -n2420 g1 x+1.1 -n2430 g1 x+0.9 y+2.4 -n2440 g1 x+3.1 -n2450 g1 x+3.3 y+2.2 -n2460 g1 x+0.7 -n2470 g1 x+0.5 y+2.0 -n2480 g1 x+3.5 -n2490 g1 x+3.3 y+1.8 -n2500 g1 x+0.7 -n2510 g1 x+0.9 y+1.6 -n2520 g1 x+3.1 -n2530 g1 x+2.9 y+1.4 -n2540 g1 x+1.1 -n2550 g1 x+1.3 y+1.2 -n2560 g1 x+2.7 -n2570 g1 x+2.5 y+1.0 -n2580 g1 x+1.5 -n2590 g1 x+1.7 y+0.8 -n2600 g1 x+2.3 -n2610 g1 x+2.1 y+0.6 -n2620 g1 x+1.1 -n2630 g0 z+3.0 (end diamond top) -n3020 g0 x+0.0 y-0.25 -n3030 g0 z+2.1 (start left and back ramps) -n3040 g1 z+1.37 -n3050 g1 y+0.0 -n3060 g1 y+2.0 z+1.375 -n3070 g1 y+4.0 z+1.37 -n3080 g1 x+2.0 z+1.375 -n3090 g1 x+4.0 z+1.37 -n3100 g1 y+3.8125 -n3110 g1 x+2.0 y+3.8175 z+1.375 -n3120 g1 x+0.0 y+3.8125 z+1.37 -n3130 g1 x+0.1875 y+4.0 -n3140 g1 x+0.1825 y+2.0 z+1.375 -n3150 g1 x+0.1875 y+0.0 z+1.37 (end left and back ramps) -n3160 g1 x+0.375 z+1.53125 (start left and back ledges) -n3170 g1 y+3.625 -n3180 g1 x+4.0 (end left and back ledges) -n3190 g1 y+4.0 z+1.37 (start right and front ramps) -n3300 g1 y+0.5 z+1.06379 -n3310 g1 y+0.0 -n3320 g1 x+3.5 -n3330 g1 x+0.0 z+1.37 -n3340 g1 y+0.125 -n3350 g1 x+3.5 z+1.06379 -n3360 g1 x+3.875 -n3370 g1 y+0.5 -n3380 g1 y+4.0 z+1.37 -n3390 g1 x+3.75 -n3400 g1 y+0.5 z+1.06379 -n3410 g1 y+0.25 -n3420 g1 x+3.5 -n3430 g1 x+0.0 z+1.37 -n3440 g1 y+0.375 -n3450 g1 x+3.5 z+1.06379 -n3460 g1 x+3.625 -n3470 g1 y+0.5 -n3480 g1 y+4.0 z+1.37 -n3490 g0 z+3.0 (end right and front ramps) -n3500 M5 -n3510 M2 - - diff --git a/nc_files/comp-g1.ngc b/nc_files/comp-g1.ngc deleted file mode 100644 index ed74f96298a..00000000000 --- a/nc_files/comp-g1.ngc +++ /dev/null @@ -1,39 +0,0 @@ -(comp-g1.ngc) -(This is the program shows a G1 straight feed entry and exit move) -(with cutter radius compensation from the tool table) -(tool 4 is 1" in diameter and must be defined in the tool table) -(this file needs X-4 to X5 travel and Y-3 to Y5 travel) - -G20 (set units to inches) -F60 (set feed to 60 IPM) - -(first, no compensation so we can see the part outline) -G0 Z1 -G0 X2 Y3 -G1 Z0 -G2 X3 Y2 J-1 (part outline) -G1 Y-1 -G2 X2 Y-2 I-1 -G1 X-3 -G1 X1.4 Y2.8 -G2 X2 Y3 I.6 J-.8 - -(with compensation) -T4 M6 (change tool) -G0 Z1 -(straight line entries must not form a concave path or it is an error) -G0 X0 Y3.5 (change Y3.5 to Y4 to see the concave entry error) -G1 Z0 -G41 (turn cutter comp left on) -G1 X2 Y3 (entry move) -G2 X3 Y2 J-1 (same path as above) -G1 Y-1 -G2 X2 Y-2 I-1 -G1 X-3 -G1 X1.4 Y2.8 -G2 X2 Y3 i.6 J-.8 -G40 (turn cutter comp off) -G1 X3 Y3.5 (exit move can be any angle) -T0 M6 (remove tool) - -M2 diff --git a/nc_files/comp.ngc b/nc_files/comp.ngc deleted file mode 100644 index 89061bf173c..00000000000 --- a/nc_files/comp.ngc +++ /dev/null @@ -1,61 +0,0 @@ -g20 g64 g17 -g0x-.2y-.2z0 -f30 -g40 -g1x0y0 -g1y1 -g3r.25x-.25y1.25 -g1x-.5 -g2r.25x-.75y1.5 -g1y1.75 -g0x-.2y-.2z0 -g42 d1 -g1x0y0 -g1y1 -g3r.25x-.25y1.25 -g1x-.5 -g2r.25x-.75y1.5 -g1y1.75 -g40 -g0x.2y-.2z0 -g41 d1 -g1x0y0 -g1y1 -g3r.25x-.25y1.25 -g1x-.5 -g2r.25x-.75y1.5 -g1y1.75 -g40 - -g20 g64 g18 -g0x-.2z-.2y0 -g40 -g1x0z0 -g1z1 -g2r.25x-.25z1.25 -g1x-.5 -g3r.25x-.75z1.5 -g1z1.75 -g0x-.2z-.2y0 -g42 d1 -g1x0z0 -g1z1 -g2r.25x-.25z1.25 -g1x-.5 -g3r.25x-.75z1.5 -g1z1.75 -g40 -g0x.2z-.2y0 -g41 d1 -g1x0z0 -g1z1 -g2r.25x-.25z1.25 -g1x-.5 -g3r.25x-.75z1.5 -g1z1.75 -g40 -g0x.2z-.2y0 - -m2 - - diff --git a/nc_files/comp311.ngc b/nc_files/comp311.ngc deleted file mode 100644 index e151c9f4b96..00000000000 --- a/nc_files/comp311.ngc +++ /dev/null @@ -1,37 +0,0 @@ -(this is the program describing entry moves for) -(radius compensation in Figure 3 of the Handbook) -(http://linuxcnc.org/docs/2.9/html/gcode/tool-compensation.html) - -g20 f60 - -(first, no compensation so we can see the part outline) -g0 z1 -g0 x1 y5 -g1 z0 -g1 y4 -g3 x2 y3 i1 -g2 x3 y2 j-1 -g1 y-1 -g2 x2 y-2 i-1 -g1 x-2 -g2 x-2.6 y-0.2 j1 -g1 x1.4 y2.8 -g2 x2 y3 i.6 j-.8 - -(with compensation) -t4 m6 -g0 z1 -g0 x1 y5 -g1 z0 -g41 g1 y4 -g3 x2 y3 i1 -g2 x3 y2 j-1 -g1 y-1 -g2 x2 y-2 i-1 -g1 x-2 -g2 x-2.6 y-0.2 j1 -g1 x1.4 y2.8 -g2 x2 y3 i.6 j-.8 -g40 - -m2 diff --git a/nc_files/comp311_2.ngc b/nc_files/comp311_2.ngc deleted file mode 100644 index 18d70cc2ea9..00000000000 --- a/nc_files/comp311_2.ngc +++ /dev/null @@ -1,36 +0,0 @@ -(this is the program describing entry moves for) -(radius compensation in Figure 3 of the Handbook) -(http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_38a.html#999268) - -g20 f60 - -(first, no compensation so we can see the part outline) -g0 z1 -g0 x1 y4 -g1 z0 -g3 x2 y3 i1 -g2 x3 y2 j-1 -g1 y-1 -g2 x2 y-2 i-1 -g1 x-2 -g2 x-2.6 y-0.2 j1 -g1 x1.4 y2.8 -g2 x2 y3 i.6 j-.8 - -(with compensation) -t4 m6 -g0 z1 -g0 x1 y4 -g1 z0 -g41 -g3 x2 y3 i1 -g2 x3 y2 j-1 -g1 y-1 -g2 x2 y-2 i-1 -g1 x-2 -g2 x-2.6 y-0.2 j1 -g1 x1.4 y2.8 -g2 x2 y3 i.6 j-.8 -g40 - -m2 diff --git a/nc_files/cone.ngc b/nc_files/cone.ngc deleted file mode 100644 index a5af85c04af..00000000000 --- a/nc_files/cone.ngc +++ /dev/null @@ -1,42 +0,0 @@ -(for the simulated 5 axis machine) -g21 g90 g94 g28 - -o200 sub - -g0 b0 c0 (tool length change must happen with b,c=0) -g91 g28 z0 (could also be done with tool change position) -g90 -g43.1 z#1 (change tool length) -g0z0 (move Z to apply new length) - -x-100 b-45 c-180 -g1 z-100 f2000 - -#100=-180 -o100 while [ #100 le 180 ] - g1 x[100*cos[#100]] y[100*sin[#100]] c#100 - #100=[#100+10] -o100 endwhile -g0 z0 -x0 y0 b0 c0 -o200 endsub - -(cut around the "cone" with different tool lengths) -o200 call [50] -o200 call [80] - -g61 - -g0 x-100 b-45 c-180 -#100=-180 -o101 while [ #100 lt 180 ] - g0 x[150*cos[#100]] y[150*sin[#100]] z-100 c#100 - g1 w100 f2000 (drill) - g0 w0 - #100=[#100+45] -o101 endwhile - -g28 -g49 - -m2 diff --git a/nc_files/daisy.ngc b/nc_files/daisy.ngc deleted file mode 100644 index 6be373f3787..00000000000 --- a/nc_files/daisy.ngc +++ /dev/null @@ -1,159 +0,0 @@ -G20 - -O100 sub ([f0] [f1] [f2] [f3]) -#61=#1 - -O110 if [#2 gt 0] -#62=#2 -O110 else -#62=#1 -O110 endif - -O111 if [#3 gt 0] -#63=#3 -O111 else -#63=#1 -O111 endif - -O112 if [#4 gt 0] -#64=#4 -O112 else -#64=#1 -O112 endif - -#41=0 #42=0 #43=0 #44=0 -G0 X0Y0Z0A0 -G93 -O100 endsub - -O200 sub ([t] [p1] [p2] [p3] [p4]) - -(Find new X) -#2=[#2*#1/#61] -O210 if [#41 gt 0] - #41=[#41-#2] -O210 else - #41=[#41+#2] -O210 endif - -(Find new Y) -#3=[#3*#1/#62] -O220 if [#42 gt 0] - #42=[#42-#3] -O220 else - #42=[#42+#3] -O220 endif - -(Find new Z) -#4=[#4*#1/#63] -O230 if [#43 gt 0] - #43=[#43-#4] -O230 else - #43=[#43+#4] -O230 endif - -(Find new A) -#5=[#5*#1/#64] -O240 if [#44 gt 0] - #44=[#44-#5] -O240 else - #44=[#44+#5] -O240 endif - -G1 X#41 Y#42 Z#43 A#44 F[60/#1] - -O200 endsub - -#100 = [440*1.781797] (Key of G) - -(equal temperament chromatic scale) -#101 = [#100*1.059463] (g#) -#102 = [#100*1.122462] (a) -#103 = [#100*1.189207] (a#) -#104 = [#100*1.259921] (b) -#105 = [#100*1.334840] (c) -#106 = [#100*1.414214] (c#) -#107 = [#100*1.498307] (d) -#108 = [#100*1.587401] (d#) -#109 = [#100*1.681793] (e) -#110 = [#100*1.781797] (f) -#111 = [#100*1.887749] (f#) - -(set XYZA axis scales) -O100 call [6400] [6400] [8000] [80] - -G4P2 - -O200 call [1] [#107] [#100/2.0] [#104/2.0] [0] (Dai-) (G) -O200 call [1] [#104] [#100/2.0] [#104/2.0] [0] (-sy) - -O200 call [1] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (Dai-) -O200 call [1] [#107/2.0] [#100/2.0] [#104/2.0] [#110/2.0] (-sy) (G7) - -O200 call [0.333] [#109/2.0] [#100/2.0] [#105/2.0] [#109/2.0] (Give) (C) -O200 call [0.333] [#111/2.0] [#100/2.0] [#105/2.0] [#109/2.0] (me) -O200 call [0.333] [#100] [#100/2.0] [#105/2.0] [#109/2.0] (your) -O200 call [0.667] [#109/2.0] [#102/2.0] [#105/2.0] [#100] (ans-) (Am7) -O200 call [0.333] [#100] [#102/2.0] [#105/2.0] [#100] (-wer) - -O200 call [2] [#107/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (do.) (G) - -O200 call [1] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (I'm) (D7) -O200 call [1] [#107] [#111/4.0] [#105/2.0] [#107/2.0] (half) - -O200 call [1] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (cra-) (G) -O200 call [1] [#100] [#100/2.0] [#104/2.0] [#109/2.0] (-zy) (Em) - -O200 call [0.333] [#109/2.0] [#102/2.0] [#106/2.0] [#100] (All) (A7) -O200 call [0.333] [#111/2.0] [#102/2.0] [#106/2.0] [#100] (for) -O200 call [0.333] [#100] [#102/2.0] [#106/2.0] [#100] (the) -O200 call [0.667] [#102] [#102/2.0] [#106/2.0] [#100] (love) -O200 call [0.333] [#104] [#102/2.0] [#106/2.0] [#100] (of) - -O200 call [1.667] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (you..) (D7) -O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (it) - -O200 call [0.333] [#105] [#111/4.0] [#105/2.0] [#107/2.0] (won't) (D7) -O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (be) -O200 call [0.333] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (a) - -O200 call [0.667] [#107] [#111/4.0] [#105/2.0] [#107/2.0] (sty-) -O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (-lish) - -O200 call [0.333] [#102] [#100/2.0] [#104/2.0] [#107/2.0] (marr-) (G) -O200 call [1.333] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (iage...) -O200 call [0.333] [#102] [#100/2.0] [#104/2.0] [#107/2.0] (I) - -O200 call [0.667] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (can't) -O200 call [0.333] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (a-) - -O200 call [0.667] [#109/2.0] [#100/2.0] [#105/2.0] [#109/2.0] (-fford) (C) -O200 call [0.333] [#100] [#100/2.0] [#105/2.0] [#109/2.0] (a) - -O200 call [0.333] [#109/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (carr-) (G) -O200 call [1.333] [#107/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (iage...) -O200 call [0.333] [#107/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (but) - -O200 call [0.667] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (you'll) (G) -O200 call [0.333] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (look) -O200 call [0.667] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (sweet) (D7) -O200 call [0.333] [#107/2.0] [#111/4.0] [#105/2.0] [#107/2.0] (up-) - -O200 call [0.667] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (-on) (G) -O200 call [0.333] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (the) -O200 call [0.333] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (seat) (D7) -O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (of) -O200 call [0.333] [#105] [#111/4.0] [#105/2.0] [#107/2.0] (a) - -O200 call [0.333] [#107] [#100/2.0] [#104/2.0] [#107/2.0] (bi-) (G) -O200 call [0.333] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (-cy-) -O200 call [0.333] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (-cle) -O200 call [0.667] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (built) (D7) -O200 call [0.333] [#107/2.0] [#111/4.0] [#105/2.0] [#107/2.0] (for) - -O200 call [2] [#100] [#100/4.0] [#104/2.0] [#107/2.0] (two.) (G) - -G4P2 -G0 X0Y0Z0A0 - -M2 diff --git a/nc_files/factorial.ngc b/nc_files/factorial.ngc deleted file mode 100644 index 255f57527ab..00000000000 --- a/nc_files/factorial.ngc +++ /dev/null @@ -1,11 +0,0 @@ -; recursive function example -; factorial -o sub -o if [[#1] EQ 0] -o return [1] -o else -o call [[#1] - 1] -o return [#<_value> * #1] -o endif -o endsub -m2 diff --git a/nc_files/filtertest-gui.py b/nc_files/filtertest-gui.py deleted file mode 100644 index 863960bbb65..00000000000 --- a/nc_files/filtertest-gui.py +++ /dev/null @@ -1,64 +0,0 @@ -import sys -from qtpy.QtWidgets import (QApplication, QDialog, QDialogButtonBox, - QVBoxLayout,QDialogButtonBox) -from qtpy.QtCore import QTimer, Qt - -class CustomDialog(QDialog): - - def __init__(self, *args, **kwargs): - super(CustomDialog, self).__init__(*args, **kwargs) - - self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) - self.setWindowTitle("Filter-with-GUI Test") - - QBtn = QDialogButtonBox.Cancel - - self.buttonBox = QDialogButtonBox(QBtn) - self.buttonBox.rejected.connect(self.reject) - - self.layout = QVBoxLayout() - self.layout.addWidget(self.buttonBox) - self.setLayout(self.layout) - - self._percentDone = 0 - - self._timer = QTimer() - self._timer.timeout.connect(self.process) - self._timer.start(100) - - def reject(self): - # This provides an error message - print('You asked to cancel before finished.', file=sys.stderr) - raise SystemExit(1) - - def process(self): - try: - # output a line of gcode - print('(MSG, made line of code : {})'.format(self._percentDone), file=sys.stdout) - - # keep track of progress - self._percentDone +=1 - - # update progress - print('FILTER_PROGRESS={}'.format(self._percentDone), file=sys.stderr) - - # if done end with no error/error message - if self._percentDone == 100: - print("m2") - raise SystemExit(0) - - except Exception as e: - # This provides an error message - print(('Something bad happened:',e), file=sys.stderr) - # this signals the error message should be shown - raise SystemExit(1) - - - -if __name__ == "__main__": - - app = QApplication(sys.argv) - w = CustomDialog() - w.show() - sys.exit( app.exec_() ) - diff --git a/nc_files/filtertest.py b/nc_files/filtertest.py deleted file mode 100644 index 9f08327920f..00000000000 --- a/nc_files/filtertest.py +++ /dev/null @@ -1,19 +0,0 @@ -import time -import sys - -for i in range(0,100): - try: - # simulate calculation time - time.sleep(.1) - - # output a line of gcode - print('G0 X1', file=sys.stdout) - - # update progress - print('FILTER_PROGRESS={}'.format(i), file=sys.stderr) - except: - # This causes an error message - print('Error; But this was only a test', file=sys.stderr) - raise SystemExit(1) - -print('M2', file=sys.stdout) diff --git a/nc_files/flowsnake.ngc b/nc_files/flowsnake.ngc deleted file mode 100644 index cdeecefe83e..00000000000 --- a/nc_files/flowsnake.ngc +++ /dev/null @@ -1,45 +0,0 @@ -% -(Program to mill a flowsnake) -(K. Lerman) - -o1000 sub -# = #1 -# = #2 -# = #3 -# = #4 -# = #5 - - o1001 if [# EQ 0] - g1 f10 x# y# - o1001 else - # = [[# * 2 + #]/3] - # = [[# * 2 + #]/3] - - # = [[# + #]/2 + [# - #]/[SQRT[12.0]]] - # = [[# + #]/2 - [# - #]/[SQRT[12.0]]] - - # = [[# + 2 * #]/3] - # = [[# + 2 * #]/3] - - o1000 call [#-1] [#] [#] [#] [#] - o1000 call [#-1] [#] [#] [#] [#] - o1000 call [#-1] [#] [#] [#] [#] - o1000 call [#-1] [#] [#] [#] [#] - o1001 endif -o1000 endsub - -S1M3 -g0 z1 -g0 x.25 y1.0 -g1 f10 z0 -# = 5 -#<_foobar> = 729 -(debug, param 2:#2) -(debug, level:#) -(debug, _foobar:#<_foo bar>) -o1000 call [#] [.25] [1.0] [3.75] [1.0] -o1000 call [#] [3.75] [1.0] [2.0] [3.95] -o1000 call [#] [2.0] [3.95] [.25] [1.0] -g0 z1 -M5 -% diff --git a/nc_files/flowsnake.py b/nc_files/flowsnake.py deleted file mode 100644 index 6aa7e0c6a27..00000000000 --- a/nc_files/flowsnake.py +++ /dev/null @@ -1,29 +0,0 @@ -from math import sqrt - -def flowsnake(level, startX, startY, endX, endY): - if level == 0: - print("g1 f10 x", endX, "y", endY) - else: - p1X = (startX * 2 + endX)/3 - p1Y = (startY * 2 + endY)/3 - - p2X = (startX + endX)/2 + (endY - startY)/sqrt(12.0) - p2Y = (startY + endY)/2 - (endX - startX)/sqrt(12.0) - - p3X = (startX + 2 * endX)/3 - p3Y = (startY + 2 * endY)/3 - - flowsnake(level-1, startX, startY, p1X, p1Y) - flowsnake(level-1, p1X, p1Y, p2X, p2Y) - flowsnake(level-1, p2X, p2Y, p3X, p3Y) - flowsnake(level-1, p3X, p3Y, endX, endY) - -print("S1M3") -print("g0 z1") -print("g0 x.25 y1.0") -print("g1 f10 z0") -flowsnake(5, .25, 1.0, 3.75, 1.0) -flowsnake(5, 3.75, 1.0, 2.0, 3.95) -flowsnake(5, 2.0, 3.95, .25, 1.0) -print("g0 z1") -print("M2") diff --git a/nc_files/g20sub.ngc b/nc_files/g20sub.ngc deleted file mode 100644 index 819df2cb1e6..00000000000 --- a/nc_files/g20sub.ngc +++ /dev/null @@ -1,14 +0,0 @@ -; - -O sub -M70 (save in current call context) - -g20 (imperial) -g90 (absolute mode) -f4 (much faster feed) -G0 X1.0 Y1.0 (move absolute to 1in/1in) - -M71 (restore to caller context) -O endsub - -m2 \ No newline at end of file diff --git a/nc_files/g76.ngc b/nc_files/g76.ngc deleted file mode 100644 index fd41030c3be..00000000000 --- a/nc_files/g76.ngc +++ /dev/null @@ -1,115 +0,0 @@ -(cut a small 1/4-20 thread and part it) -(t1 is for facing and left turning, t4 is threading tool, t9 parting) -(proper tool offsets should be set in the tool table!) - -g20 g64 g18 - -(face and turn outside diameter) -t1 m6 -s1200 m3 -g4p1 -g43 -g0z0x.2 -f4 -g1x-.0625 -g0z.1 -x.120 -f5 -g1z-.55 -g0x.2 - - -(round the end) -o100 sub -g0z1x-1 -g41 -g0z1 -g2 x0 z0 r1 -g3 x3.05 z-3.05 i0 k-3.05 -g91 -g2 z-1.5 x1 r1.5 -g90 -g40 -g0 x4.5 -o100 endsub - -g21 -f50 - -g0z1.3 -g92z0 -o100 call - -f50 - -g92.1 -g0z.9 -g92z0 -o100 call - -g92.1 -g0z.5 -g92z0 -o100 call - -g92.1 -g0z.3 -g92z0 -o100 call - -g92.1 -g0z.1 -g92z0 -o100 call - -g92.1 -g0z0 -g92z0 -o100 call -g0z0 -o100 call - -g92.1 -g0z-.025 -g92z0 -o100 call - -g92.1 -m5 -g20 -f5 - -(thread) -t4 m6 -g43 -s800 m3 -g4p1 -g0z.2x.2 - -(p = thread pitch, distance per revolution) -(z = end of drive line) -(i = offset from drive line to thread peaks) -( negative i means the threads are at a smaller radius than the drive line,) -( so i is negative for outside threads, positive for inside threads) -(j = initial cut depth; subsequent depths follow degression formula) -(r = depth degression: 1.0 = constant depth, 2.0 = constant area) -( any number >= 1.0 allowed) -(k = full thread depth) -(q = "compound slide" angle) -(h = number of spring passes) -(e = distance along drive line used for tapered start/end) -(l = which ends get the taper: 0 = neither, 1 = begin, 2 = end, 3 = both) -g76 p.05 z-.5 i-.075 j.008 k.045 h3 r2.0 q29.5 e.05 l2 -g0x.5 -g0z0 -m5 - -(part) -t9 m6 -g43 -s400 m3 -g4p1 -g0z-.6x.135 -g1x0f.2 -g0x.2 -m2 diff --git a/nc_files/g881.ngc b/nc_files/g881.ngc deleted file mode 100644 index d77df776a37..00000000000 --- a/nc_files/g881.ngc +++ /dev/null @@ -1,37 +0,0 @@ -o sub -(debug, in g881); x=[#1] y=[#2] z=[#3] r=[#4]) - -(debug, g881 call_level= #<_call_level> remap_level=#<_remap_level>) - -o if [EXISTS[#]] -(debug, X param set: #) -o endif - -o if [EXISTS[#]] -(debug, Y param set: #) -o endif - -o if [EXISTS[#]] -(debug, Z param set: #) -o endif - -o if [EXISTS[#

]] -(debug, P param set: #

) -o endif - -o if [EXISTS[#]] -(debug, Q param set: #) -o endif - -o if [EXISTS[#]] -(debug, R param set: #) -o endif - -;m250 - -(debug, end g881) - - -o endsub [1] -m2 - diff --git a/nc_files/g881min.ngc b/nc_files/g881min.ngc deleted file mode 100644 index d03cc8c3dcd..00000000000 --- a/nc_files/g881min.ngc +++ /dev/null @@ -1,5 +0,0 @@ -o sub -(debug, in g881min, nargs=#) -; # = 31 -o endsub [1] -m2 diff --git a/nc_files/g882.ngc b/nc_files/g882.ngc deleted file mode 100644 index 6715a7a8c8e..00000000000 --- a/nc_files/g882.ngc +++ /dev/null @@ -1,6 +0,0 @@ -o sub -(debug, in g882 x=[#1] y=[#2] z=[#3] r=[#4], next is M75) -m75p1q47 -o endsub [1] -m2 - diff --git a/nc_files/gcmc_lib/cpocket.gcmc b/nc_files/gcmc_lib/cpocket.gcmc deleted file mode 100644 index 938fe1a3b80..00000000000 --- a/nc_files/gcmc_lib/cpocket.gcmc +++ /dev/null @@ -1,196 +0,0 @@ -/* renamed from cc_hole.gcmc for clarity - * - * G-code meta compiler - * - * Copyright (C) 2014 B. Stultiens - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Hole milling example - * -------------------- - * Mill a hole in continuous curvature movements. Not a single straight line is - * required to mill an arbitrary large hole from any size milling bit. - * Continuous curvature milling reduces the stress on the mill, bit and object - * by preventing any jerking. - * - * A hole is milled at a given center and depth with a target radius. The - * milling-bit radius and the cutting step define how many turning cycles are - * required to finish the hole. The mill is retracted with a helical move back - * to the center and starting Z-position. - * - * @@@--svg-toolwidth 6.0 --svg-opacity 0.2@@@ - */ - -feedrate(600mm); - -function cc_hole(center, targetradius, toolradius, cutstep, cutz) -{ - local mkunitsum = ismodemm() ? 0.0mm : 0.0in; - local oldz = position()[2]; - if(!isvector(center) || count(center) < 1) { - error("Center argument must be a vector and must have at least one X or Y coordinate"); - return; - } - if(count(center) > 3) { - error("Center argument has more than 3 axes defined, may cause unforeseen problems"); - return; - } - if(count(center) > 2 && !isundef(center[2])) { - warning("Center argument has a Z-coordinate, ignoring to prevent plowing into object"); - center = head(center, 2); - } - if((count(center) == 1 && isundef(center[0])) || (count(center) > 1 && isundef(center[0]) && isundef(center[1]))) { - warning("Center argument has neither X nor Y coordinate, using current position"); - center = head(position(), 2); - } - if(!isscalar(targetradius)) { - error("Target radius argument must be scalar"); - return; - } - if(!isnone(targetradius) && !isdistance(targetradius)) { - error("Target radius argument must be a distance"); - return; - } - targetradius += mkunitsum; // Make sure we have units - if(targetradius <= 0.0mm) { - error("Target radius argument must be larger than zero"); - return; - } - if(!isscalar(toolradius)) { - error("Tool radius argument must be scalar"); - return; - } - if(!isnone(toolradius) && !isdistance(toolradius)) { - error("Tool radius argument must be a distance"); - return; - } - toolradius += mkunitsum; // Make sure we have units - if(toolradius <= 0.0mm) { - error("Tool radius argument must be larger than zero"); - return; - } - if(targetradius <= toolradius) { - error("Hole target radius (", targetradius, ") must be larger than tool radius (", toolradius, ")"); - return; - } - if(!isscalar(cutstep)) { - error("Cutting step argument must be scalar"); - return; - } - if(!isnone(cutstep) && !isdistance(cutstep)) { - error("Cutting step must be a distance"); - return; - } - cutstep += mkunitsum; // Make sure we have units - if(cutstep <= 0.0mm) { - error("Cutting step argument must be larger than zero"); - return; - } - if(!isscalar(cutz)) { - error("Cutting depth argument must be scalar"); - return; - } - if(!isnone(cutz) && !isdistance(cutz)) { - error("Cutting depth must be a distance"); - return; - } - cutz += mkunitsum; // Make sure we have units - if(cutstep > 2.0*toolradius) { - warning("Cutting step is larger than twice the tool radius, not all material will be removed"); - } elif(cutstep == 2.0*toolradius) { - warning("Cutting step is exactly twice the tool radius, material may be left at the inner edge"); - } - - comment("-- cc_hole center=", center, " targetradius=", targetradius, " toolradius=", toolradius, " cutstep=", cutstep, " cutz=", cutz, " --"); - - goto(center); // Center of the hole - move([-, -, cutz]); // Start the initial cut at the center; r = toolradius - - local r = toolradius; // Keep track how big the hole is - local n = 1; - local dir = -1.0; // Alternating end-point tracking (=> (-1)^n sign shift) - local p; // endpoint for new arc into next hole circle - - // We have to circle 1..n times to make the hole - while(r < targetradius) { - if(targetradius - r >= cutstep) { - // Take a full cutting step because space allows - p = (2*n-1) * cutstep; - r += cutstep; - } else { - // Last cut is under cutstep in size - p = (2*n-2) * cutstep + targetradius - r; - r += targetradius - r; - } - arc_cw_r([0.0mm, dir * p], p/2.0); // Arc into the next circle - circle_cw(center); // Widen the hole - n++; - dir = -dir; // Arc endpoint alternate - } - - // Curve _out_ of the hole by helical arc move back to center and oldz - arc_cw_r([0.0mm, dir * (targetradius - toolradius), oldz-cutz], (targetradius - toolradius)/2.0); - - comment("-- end cc_hole --"); - return; -} - -/* -------------------- Main Program -------------------- */ - -//ngcgui: info: Circular pocket with continuous curvature movements - -//ngcgui: umode = 1; //, units: 1:mm, 0:inch -//ngcgui: xctr = 0; //, x center -//ngcgui: yctr = 0; //, y center -//ngcgui: diameter = 10; //, diameter -//ngcgui: tool_diameter = 2; //, tool_diameter -//ngcgui: step = 1; //, step -//ngcgui: cutdepth = -1; //, cutdepth -//ngcgui: xfinal = 0; // -//ngcgui: yfinal = 0; // -//ngcgui: zfinal = 1; // -//ngcgui: verbose = 0; // precede ensure_units -include("ensure_units.gcmc"); // avoid preamble conflict - -if (umode == 1) { - zero = 0.0mm; -} else { - zero = 0.0in; -} -// ngcgui entries are unitless so these additions are used -// to ensure 1) floatingpoint and 2) units per umode setting - - xctr = zero + xctr; - yctr = zero + yctr; - diameter = zero + diameter; -tool_diameter = zero + tool_diameter; - step = zero + step; - cutdepth = zero + cutdepth; - xfinal = zero + xfinal; - yfinal = zero + xfinal; - zfinal = zero + xfinal; - - -location = [xctr,yctr]; -FINALPOS = [xfinal,yfinal,zfinal]; -goto(FINALPOS); -if(!issvg()) { - move(FINALPOS); // To visualize subsequent rapids in LinuxCNC -} - -// Center R_hole R_tool Step Cutting-Z -cc_hole(location, diameter/2, tool_diameter/2, step, cutdepth); - -goto(FINALPOS); diff --git a/nc_files/gcmc_lib/cpocket.png b/nc_files/gcmc_lib/cpocket.png deleted file mode 100644 index 7854338985d04a726fef266d1c580349aee37af8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5836 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 diff --git a/nc_files/gcmc_lib/drill.gcmc b/nc_files/gcmc_lib/drill.gcmc deleted file mode 100644 index 8ef00394ae6..00000000000 --- a/nc_files/gcmc_lib/drill.gcmc +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************* -The following //comment lines identify ngcgui inputs: - -example option: -//ngcgui: --precision 6 - -info message (appears on ngcgui tab page): -//ngcgui: info: gcmc drill example - -variables with defaults: -//ngcgui: umode = 1; //, units: 1:mm, 0:inch -//ngcgui: nx=4; // -//ngcgui: ny=3; // -//ngcgui: xstart=1; // -//ngcgui: ystart=1; // -//ngcgui: xspacing=0.5; // -//ngcgui: yspacing=1.0; // -//ngcgui: retract=0.1; // -//ngcgui: increment=0.5; // -//ngcgui: repeatct=1; // -//ngcgui: fr=10,feedrate; // - -variable with comment text: -//ngcgui: zdepth=0 , z(neg typ) -//ngcgui: verbose = 0; //precede ensure_units -*******************************************************/ -include("ensure_units.gcmc"); //avoid preamble conflict - -if (umode == 1) { - zero = 0.0mm; -} else { - zero = 0.0in; -} -// ngcgui entries are unitless so these additions are used -// to ensure 1) floatingpoint and 2) units per umode setting - xstart = zero + xstart; - ystart = zero + ystart; - xspacing = zero + xspacing; - yspacing = zero + yspacing; - retract = zero + retract; -increment = zero + increment; - fr = zero + fr; - -feedrate(fr); - -x=xstart; -y=ystart; -sign = 1; - -for (i = 0; i < nx ; i++) { - for (j = 0; j < ny; j++) { - drill([x, y, zdepth], retract, increment, repeatct); - y = y + sign * yspacing; - } - y = y - sign * yspacing; - sign = -1 *sign; - x = x + xspacing; -} diff --git a/nc_files/gcmc_lib/drill.png b/nc_files/gcmc_lib/drill.png deleted file mode 100644 index 6ef98ce8844b7c654ae69b873b6ed3db2c95bb22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2578 zcmZ`*X;_n27QSB~By1Y01jAwxw}J$su@EpoWKnP-47(5{vSUj?f`BX`vWQk4ZABDQ zmMI9B7_d{v=K`0_np%Bm(kO)Kq#y}zyJ5K97GxOuS-#zC&=RN1S_j&GlFS)rM z)>P9~0|02cI6Jxn0Fe~?MWl*i&ERV8RQyz9oKMgJ*zoZE2i@GWK~LdC#JL=ILX2x{ z(!#0{@IT#BxYXmEeB&IVqoP7-aUkSu#OT?FLPho+7srF1iKFx5Jlf`NG-9%9ud)5H zNsX)5V~~5L7bd`K*xzseNVO2?koL7h(8kHfU!&TM+oqAuNQ*=EiKlNE3?|Ny$z(~K z*NVgio5xA6OzOhh71A5o$>y0TheL;6ydLUbPmyf_cSa>>0K;t>VpsZU!pZ@pY{&%4 zC?yM|#lCdz|hZfK_*h^n!X= z!UiJ{`E0O^j2K&*j;WZw?njM^=};5(CqY+y4v%m{%wh>XJ+aD$SZ`*)g`&JbyULFI z*e4+>x3BwDp3EvPE{>5bjN^2#wzsuCSIxpu{qX!n~pJza(~^Pd%}0>m}ecF0z8BwgC^Tlg)`*g4R?$yR>)BULbxY%Xw$wg{@2> zV`fCDs^9Jo%nc0Nx{}E+SeDVx%gBYg2MQPLLl?GL>OHed-9cOQg1Nvn^s-mQ!C2avT2Rtt5;GoqTP~Ns;*{%i zyp#F^cYqea*6iJ%Ts#P>aDbk_a#NJGpR<|y z>X(pxQVhc~I&3{DWt$e$=FvIJM_*c~^K2OULC^7gcYo&@8=?~}wr`~rS^S!?m0Wga z|JL12-L_Agk9$0t4MUE7n^4Fr3!TXy3oolIuJ?a#&X&bCeEu$ixZ#?sYx`PtwMf$G zL?99=s{(`7?K&Pw8lh&_UM@eA+Fk2BW_n*xn4iTv$*YYt=mptY3`I`GJNZm?xQ|bI zn(Xb@De&PDStJYoY-ev@uiTT_nJG|Ea=dN2wwRfl-xybQw<(kMC)+SEtXjI2`M~!R zm7V=$oYJv5nc|i@<61u;}($o0(PskH`>d;U`Ycf5eb9hhr3cgS+h=ne9Lp9cm`*T~s9$LT2i185v4}tve|;WfegQ>6FT@#tF?Qhko~2nd-w-L8NItE%cX()WQog&_GFmwy)&X&p=KIm-#u7}l^M!ZbeREPW;ZdE2EXm- z?~RtUS#IRb^$)MD$dZkv5#lN5Aq4uY{K4IdPfrj2wvBYpCZcRrH#QM@9kKb`XYRFh zet>{Fq!E+4;>W!cOZl$YX}%B~!^xDX=b-K2F{sw)ugGm!-n)nwD``(2T5nQV`?XNIJT1SrxjW1STN!GEFwynidswUVOpl)r>-ktds^OOd9p5^=l1A?Fw|DR6m<$gkXj8xOqMn`bX)l@b90NU@fOKKAnwjvNWl32zaA zcZ57>gHXm6-!HA^&NbX5h=tG3=B+m%jld=%?>KDWmM>5vLB7jUu9{=u^W_9KK{2Ra z8KSbQa*ChkPMpH@PFBF0zIn;E>QNm0X8>c`Lsd+5hp?7HklA*jut9*!gYH1+gn}Yi zrY1}uLUyVMh%&YvYi%3A?4aA( ne 1]\n\ - (debug, !!!ensure_units.gcmc: set g21)\n\ - g21\n\ - o1 endif\n\ - "); - } else { - literal("\ - o1 if [#<_metric> ne 1]\n\ - g21\n\ - o1 endif\n\ - "); - } -} else { - if (isdefined("verbose") && verbose == 1) { - literal("\ - o1 if [#<_imperial> ne 1]\n\ - (debug, !!!ensure_units.gcmc: set g20)\n\ - g20\n\ - o1 endif\n\ - "); - } else { - literal("\ - o1 if [#<_imperial> ne 1]\n\ - g20\n\ - o1 endif\n\ - "); - } -} diff --git a/nc_files/gcmc_lib/involute-gear.gcmc b/nc_files/gcmc_lib/involute-gear.gcmc deleted file mode 100644 index fd62bd10f0f..00000000000 --- a/nc_files/gcmc_lib/involute-gear.gcmc +++ /dev/null @@ -1,240 +0,0 @@ -/* - * G-code meta compiler - * - * Copyright (C) 2014 B. Stultiens - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Gear example - * ------------ - * This example is by no means a complete or correct implementation of gears in - * any generic form. It is primarily for inspiration and to show what gcmc can - * do with relatively little coding. You may use this script as inspiration to - * create a better implementation if you like. - * - * Please note: The below parameters will shift the examples with an XY offset - * as indicated by the options. These are passed on the command-line when the - * examples are generated. - * - * @@@--svg-toolwidth 0.1 --svg-opacity 1 --svg-no-movelayer -x 110 -y 70@@@ - */ - - -/* - * Gear terms: - * N - Number of Teeth - * Pa - Pressure Angle - * D - Pitch Diameter - D = N/P = Do - 2/P (Gear radius at center of the teeth) - * P - Diametral Pitch - P = N/D - * p - Circular Pitch - p = pi() / P - * Db - Base Diameter - Db = D * cos(Pa) (Bottom of teeth insertion) - * Dr - Root Diameter - Dr = D - 2b (Bottom of tooth cutout) - * Do - Outside Diameter - Do = D + 2a - * a - Addendum - a = 1/P - * b - Dedendum - b = ht - a - * ht - Whole Depth (Pa<20) - 2.157/P - * ht - Whole Depth (Pa>=20) - 2.2/P + 0.05mm (Total depth from outer dia to bottom) - * t - Tooth Thickness - t = pi()/(2*P) (Thinckness at Pitch Diameter) - */ - -__ang_step = 2.0deg; /* Trace interval for curves */ - -/* - * Point on involute curve at specified angle, see https://en.wikipedia.org/wiki/Involute - * Cartesian: - * x = a * ( cos(t) + t * sin(t)) - * y = a * ( sin(t) - t * cos(t)) - * Polar: - * r = a * sqrt(1 + t^2) = sqrt(a^2 + (a*t)^2) - * phi = t - atan(t) - * where: - * - a = circle radius - * - t = angle (radians) - * - * For angle from circle radius: t^2 = (r/a)^2 - 1 - */ -function involute_point(angle, radius) -{ - angle = to_rad(angle); /* Multiplication must be in radians */ - return radius * [cos(angle) + to_none(angle) * sin(angle), sin(angle) - to_none(angle) * cos(angle)]; -} - -function involute_angle(radius, outrad) -{ - return to_rad(sqrt(pow(outrad/radius, 2.0) - 1)); -} - -/* - * Make a gear with: - * - nteeth Number of teeth - * - pressure_angle Teeth contact pressure angle - * - diametral_pitch Diametral pitch (teets/length) - * - * Return a vectorlist with outer points of the gear centered at [0,0] - */ -function gear_P(nteeth, pressure_angle, diametral_pitch) -{ - /* The routine gets is serious trouble if you make the pressure angle - * too large or too small. Warn the user if such case occurs. - */ - if(pressure_angle > 24.6deg) { - warning("Pressure angle (", pressure_angle, ") too large, cannot fit teeth inside the set outside diameter"); - } - if(pressure_angle < 12.0deg) { - warning("Pressure angle (", pressure_angle, ") too small, teeth may get stuck at pitch radius"); - } - local i; - local pitch_diameter = nteeth / diametral_pitch; - local base_diameter = pitch_diameter * cos(pressure_angle); - local addendum = 1.0/diametral_pitch; - local ht = 2.157 / diametral_pitch; - local dedendum = ht - addendum; - local outside_diameter = pitch_diameter + 2.0*addendum; - local root_diameter = base_diameter - 2.0*dedendum; - local work_diameter = outside_diameter - 4.0*addendum; - - local tooth = {}; // The curve for one tooth - - /* - * message("nteeth=", nteeth, " pressure_angle=", pressure_angle, " diametral_pitch=", diametral_pitch); - * message("addendum=", addendum, " dedendum=", dedendum, " ht=", ht); - * message("pitch_diameter=", pitch_diameter); - * message("base_diameter=", base_diameter); - * message("outside_diameter=", outside_diameter); - * message("root_diameter=", root_diameter); - * message("work_diameter=", work_diameter); - */ - - /* - * Show the different diameters: - * hole([0, 0], pitch_diameter/2.0); - * hole([0, 0], base_diameter/2.0); - * hole([0, 0], outside_diameter/2.0); - * hole([0, 0], root_diameter/2.0); - * hole([0, 0], work_diameter/2.0); - */ - - // Fillet radius is approx. Will not reach root exactly, but close enough - // Otherwise need to calculate intersection with root-circle - local filletrad = (base_diameter - root_diameter)/8.0; - - // Center of the fillet arc, involute makes a ~240deg angle with fillet arc - // The fillet arc runs from the root to the working depth of the gear - local center = rotate_xy([-filletrad, 0.0mm], 60.0deg) + [work_diameter/2.0, 0]; - - // Trace the fillet arc from ~root-circle to working depth at involute arc starting Y-level - for(i = 180.0deg; i > 60.0deg; i -= __ang_step*2.5) { - tooth += { [cos(i), sin(i)] * filletrad + center }; - } - if(i != 60.0deg) { - // Add the last point if we did not reach the working depth - tooth += { [cos(60.0deg), sin(60.0deg)] * filletrad + center }; - } - - // Calculate the maximum involute angle to intersect at the outside radius - local max_a = involute_angle(base_diameter/2.0, outside_diameter/2.0); - - // Trace the involute arc from the base up to outside radius - for(i = 0.0deg; i < max_a; i += __ang_step) { - tooth += { involute_point(i, base_diameter/2.0)}; - } - if(i != max_a) { - // Add the last point if we did not reach the outside radius - tooth += { involute_point(max_a, base_diameter/2.0)}; - } - - // We now have one side of the tooth. Rotate to be at tooth-symmetry on X-axis - tooth = rotate_xy(tooth, -90.0deg / nteeth); - - // Add the same curve mirrored to make the other side of the tooth - // Coordinates reverse to have them all in one direction only - tooth += reverse(scale(tooth, [1, -1])); - - // Create all teeth of the gear by adding each tooth at correct angle - local gear = {}; - repeat(nteeth; i) { - gear += rotate_xy(tooth, 360.0deg * i / nteeth); - } - - return gear; -} - -/* -------------------- Helper Functions -------------------- */ - -/* - * Trace a path at given offset - */ -function trace(path, offset) -{ - goto(path[-1] + offset); - foreach(path; v) { - move(v + offset); - } -} - -/* - * Make a hole at center point with given radius - */ -function hole(point, radius) -{ - goto(point - [radius]); - circle_cw_r([radius, 0]); -} - -/* -------------------- Main Program -------------------- */ - -//ngcgui: info: Involute-gear example - -//ngcgui: umode = 1; //, units: 1:mm, 0:inch -//ngcgui: D = 100.0; //, Pitch Dia -//ngcgui: HD = 6.0; //, Hole Dia -//ngcgui: N = 9; //, Number of teeth -//ngcgui: PA = 20.0; //, Pressure Angle (deg) -//ngcgui: frate = 600; //, Feedrate -//ngcgui: xoffset = 0; -//ngcgui: yoffset = 0; -//ngcgui: howmany = 1; //, howmany (1 | 2) -//ngcgui: verbose = 0; -include("ensure_units.gcmc"); //avoid preamble conflict - -if (umode == 1) { - zero = 0.0mm; -} else { - zero = 0.0in; -} -// ngcgui entries are unitless so these additions are used -// to ensure 1) floatingpoint and 2) units per umode setting -frate = frate + zero; - HD = HD + zero; - D = D + zero; - PA = PA + 0.0deg; - -P = N/D; // Diametral pitch - -feedrate(frate); -location = [xoffset,yoffset]; - -if (howmany == 1) { - hole(location, HD/2.0); - trace(gear_P(N, PA, P), location); -} elif (howmany == 2) { - hole(location + [D/2.0, 0.0mm], HD/2.0); - trace(gear_P(N, PA, P), location + [D/2.0, 0.0mm]); - hole(location + [-D/2.0, 0.0mm], HD/2.0); - trace(gear_P(N, PA, P), location + [-D/2, 0.0mm]); -} else { - error("howmany must be 1 or 2"); -} - diff --git a/nc_files/gcmc_lib/involute-gear.png b/nc_files/gcmc_lib/involute-gear.png deleted file mode 100644 index 4dde1e97cf2f8fcd8e10eed9202f0afe12d6d0bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4661 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 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - - -/* Return new path from 'srcpath' traced internally offset by 'width' */ -function erode(srcpath, width) -{ - local n, i, pp, pc, pn, v1, v2, bisect, newpoint, crossp, res; - n = count(srcpath); - res = {}; - for(i = 0; i < n; i++) { - pp = srcpath[(i-1+n)%n]; /* Previous point */ - pc = srcpath[i]; /* Current point */ - pn = srcpath[(i+1+n)%n]; /* Next point */ - v1 = normalize(pp - pc); - v2 = normalize(pn - pc); - bisect = width * normalize(v1 + v2); - newpoint = bisect + pc; - if(i > 0) { - /* Check convex polygon interior angle */ - crossp = v1[0] * v2[1] - v1[1] * v2[0]; - if(crossp < 0.0) { - newpoint = -bisect + pc; - } - } - res += { newpoint }; - } - return res; -} - -/* Trace the path at offset */ -function tracepath(path, offset) -{ - move(path[count(path)-1] + offset); - dwell(0); - foreach(path; p) { - move(p + offset); - dwell(0); - } -} - -/* A nice star */ -starpath = { - [ 1, 1], [ 0, 3], - [-1, 1], [-3, 0], - [-1, -1], [ 0, -3], - [ 1, -1], [ 3, 0] -}; - -if (umode == 1) { - fix = 0.0mm; -} else { - fix = 0.0in; -} - x1 = fix + x1; - y1 = fix + y1; - frate = fix + feedr; - zsafe = fix + zsafe; - zcut = fix + zcut; -erode_width = fix + erode_width; - -theoffset = [x1,y1]; -/******************** Program start ********************/ -feedrate(feedr); - -goto([-,-,zsafe]); /* Safe Z */ -starpath *= myscale*10.0; /* Scale the star */ -goto(starpath[count(starpath)-1]); /* First coordinate */ -move([-,-,zcut]); /* Goto cutting depth */ - -/* Cut the stars smaller and smaller */ -for(i = 0; i < n_erodes; i++) { - tracepath(erode(starpath, erode_width * -i), theoffset); -} - -move([-,-,zsafe]); /* Back to safe Z */ diff --git a/nc_files/gcmc_lib/star.png b/nc_files/gcmc_lib/star.png deleted file mode 100644 index 3d4d04844580eff47e060d3831d7db3b9289e4a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2705 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 Ki?tT0-~R=`I!6Qm diff --git a/nc_files/gcmc_lib/trochoid-path.gcmc b/nc_files/gcmc_lib/trochoid-path.gcmc deleted file mode 100644 index d5d0ee2f8e8..00000000000 --- a/nc_files/gcmc_lib/trochoid-path.gcmc +++ /dev/null @@ -1,198 +0,0 @@ -/* - * G-code meta compiler - * - * Copyright (C) 2014 B. Stultiens - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Trochoidal example - * ------------------ - * Trochoidal movement for high-speed milling. A path is followed in a circular - * pattern with given radius and increment. Afterwards, a clean cut is - * performed to remove the residuals. - * - * NOTE: To take full advantage of trochoidal milling, you need to have a CNC - * program that can look ahead to keep the speed high. For LinuxCNC that means - * you will need the git version on branch circular-blend-arc-rc3 (or any later - * branch thereof, until it is merges into the master branch). - * - * @@@--svg-toolwidth 0.5 --svg-opacity 0.25@@@ - */ - -/* - * Trochoidal point calculation. - * See: https://en.wikipedia.org/wiki/Trochoid - */ -function trochoid_point(ang, a, b) -{ - ang = to_rad(ang); // Trochoids are defined in radians - // The first part is the trochoid, the second part moves the first 180 - // degree point at a relative "0, 0" location so we can scale in any - // way without having to do hard math - return [ a * to_none(ang) - b * sin(ang), b - b * cos(ang) ] - [a*pi(), 2.0*b]; -} - -/* - * Perform a move from startpoint to endpoint using a trochoidal path. - * - Cutting at depth cutz (returns to old Z) - * - Trochoid radius as specified - * - Increment for each turn as specified - */ -function trochoid_move(startpoint, endpoint, cutz, radius, increment) -{ - local min_ainc = .1deg; // avoid too long compute times (and log( value<=1)) - local min_rotations = 5; // avoid confusing appearance if too small - local i; - local a = increment/(2.0*pi()); // Trochoid step parameter - local ainc = log10(to_mm(radius)) * 5.0deg; // Steps are logarithmic based on the radius to reduce small steps - local oldz = position()[2]; - local vec = endpoint - startpoint; // Vector denoting path to move - - if (ainc < min_ainc) { - error("ainc too small: ",ainc," (try: increase trochoid radius)"); - return; - } - - // If we are not moving, it is an error - if(length(vec) <= zero) { - error("trochoid move is not going anywhere"); - return; - } - - comment("-- trochoid_move at ", cutz, " from ", startpoint, " to ", endpoint, " radius=", radius, " increment=", increment, " --"); - // Calculate the number of *whole* rotations, rounded up, we need to make - local n = 2.0rad * pi() * to_none(ceil(length(vec) / increment)); - local nrotations = n/(2.0rad * pi()); - if (nrotations < min_rotations) { - error("too few rotations= ",nrotations," (try: decrease trochoid increment)"); - return; - } - if (verbose) { - comment("debug, rotations= ",nrotations); - comment("debug, ainc= ",ainc); - } - - // The path may be arbitrary angled, get the angle for rotating the trochoid - local rot = atan(vec[1], vec[0]); - - // Go to the trochoid entry-point and move to cutting deph - goto(startpoint + rotate_xy(trochoid_point(0.0rad, a, radius), rot)); - move([-, -, cutz]); - - // Calculate each next point of the trochoid until we traversed the whole path to the endpoint - for(i = 0.0deg; i < n; i += ainc) { - move(startpoint + rotate_xy(trochoid_point(i, a, radius), rot)); - } - - // Return to old Z so we will not bump into stuff - goto([-, -, oldz]); - comment("-- trochoid_move end --"); -} - -/* -------------------- Main Program -------------------- */ -//ngcgui: info: troichoid-path example (mm or inch per parm#1 (units) setting, !! DEFAULTS are in mm !!) -//ngcgui: umode = 1; //, units: 1:mm, 0:inch -//ngcgui: trochoid_r = 5; //, trochoidal radius -//ngcgui: trochoid_incr = 2; //, trochoidal increment -//ngcgui: path_scale = 25; //, path scale (all xi,yi) -//ngcgui: xoffset = 0; //, path x offset -//ngcgui: yoffset = 0; //, path y offset -//ngcgui: x0 = 0; //, path x0 -//ngcgui: y0 = 1; //, path y0 -//ngcgui: x1 = 2; //, path x1 -//ngcgui: y1 = 2; //, path y1 -//ngcgui: x2 = 0; //, path x2 -//ngcgui: y2 = 4; //, path y2 -//ngcgui: x3 = -1; //, path x3 -//ngcgui: y3 = 2; //, path y3 -//ngcgui: cutdepth = -1; // -//ngcgui: safez = 5; // z safe -//ngcgui: x_return = 0; // x return -//ngcgui: y_return = 0; // y return -//ngcgui: fnormal = 300; //, feed normal -//ngcgui: fslow = 150; //, feed slow -//ngcgui: ffast = 3000; //, feed fast -//ngcgui: verbose = 1; - -include("ensure_units.gcmc"); //avoid preamble conflict -if (umode == 1) { - zero = 0.0mm; -} else { - zero = 0.0in; -} -// ngcgui entries are unitless so these additions are used -// to ensure 1) floatingpoint and 2) units per umode setting - trochoid_r = zero + trochoid_r; -trochoid_incr = zero + trochoid_incr; - xoffset = zero + xoffset; - yoffset = zero + yoffset; - x0 = zero + x0; - y0 = zero + y0; - x1 = zero + x1; - y1 = zero + y1; - x2 = zero + x2; - y2 = zero + y2; - x3 = zero + x3; - y3 = zero + y3; - cutdepth = zero + cutdepth; - safez = zero + safez; - x_return = zero + x_return; - y_return = zero + y_return; - fnormal = zero + fnormal; - fslow = zero + fslow; - ffast = zero + ffast; - -CUTZ = cutdepth; -SAFEZ = safez; -HOME = [x_return, y_return, safez]; - -path = { [xoffset + x0, yoffset + y0], - [xoffset + x1, yoffset + y1], - [xoffset + x2, yoffset + y2], - [xoffset + x3, yoffset + y3] }; -path *= path_scale; //path_scale is dimensionless - -feedrate(fnormal); -if (verbose) { - comment("debug, feed normal= ",fnormal); -} -goto([-, -, SAFEZ]); -move([-, -, SAFEZ]); -goto(HOME); - -/* Trochoidal high-speed milling of the outline */ -if (verbose) { - comment("debug, feed fast= ",ffast); -} -feedrate(ffast); // *Really* high-speed milling -repeat(count(path); i) { - trochoid_move(path[i-2], path[i-1], CUTZ, trochoid_r, trochoid_incr); - -} - -/* Clean-cutting the object */ -if (verbose) { - comment("debug, feed slow= ",fslow); -} -feedrate(fslow); // "Finishing the edge" speed -pathmode(1); // Exact path mode so we hit the corners exactly -move([-, -, CUTZ]); // We are at the "outside" of the path, reenter cutting depth -move(path[-1]); // The first corner -foreach(path; v) { - move(v); // Trace the object -} - -goto([-, -, SAFEZ]); -goto(HOME); diff --git a/nc_files/gcmc_lib/trochoid-path.png b/nc_files/gcmc_lib/trochoid-path.png deleted file mode 100644 index 9fdc0a36470da06aab933fdaf02732311c86cd50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14921 zcmYLwcRX8f^#6@mtx}^#P&AaPQG(W{8Zk@Js@N@Jgwmo`Lr`jK%tq~)HEJtrl-4Hp zh+S$_)!xN7pYQked;R{nxyj9Q?>+Z9=bq<%&Uv5kM|v9cmpLy306?#$2{!})5T3jR z(NdF-z^a;($h%8!nn-s5VEF#u21*oR-~s?XKns5Vv3Kf5+Wpr{Ut-iDm~+0T%#!QP zxZa0*2xr%vdj{3GxysJO5mDdwKSVjGRRMvU+P;UWvNf#Na%r{RP;Ln%8+NZpeLg*F zI#r$zSuEe7>#!{uN5*ypu##_T&CCcP?}o9R!@l=KBNnVg2|_F{@*D_)gu-xTwQa?+Jk2z;7ii&B zwH5D-N-%V-|J}go^Kbj$AoqgJEge+G#)yxUY(TwinE76?eEjBI&rWM#&saZ!Y6SwI zLAW}`N~+K?_1_2nZ{8%R%+7W%Zr@S~IG^_5eMSvf2axZSB{Sgrw`@H7eRuNn(=CAEVZC4f=dH6NvZh9+tuApx->(KDcE0Pv=Si)qLcaV0 z9#hLB0J$O0IQ-4bk67tXsXv2&$+vh?w{Y;mg!paDc%C8Cl^9)r$rjBsNdr+Js5^5` zg1#{3YFw1^P(VnacjyeK8d#O*+POaUbw)qbwrL}D=v@NO@C#-aB|P7AT8?LvNiY7q zB?~EgvGcE^m49br>fU&OjUt%1QmM!jJEx)}{6N`nqiFxa+R3cYVkXvgt_gz_tR8k~ zv{La~av%0gC$1zP78Q&Tb1?0MSGnjV+SFt3ul+~$bDIsDZN_)H|G0RQwAM!#Z|pzY z|2T=-Q$TO9xZd0Ko89sJZ}jI%o~t=M4E?K|ZxMTl-jYrZidFgaJx-Sg7WM%4E_ohQ zX>|K|bgdevx(}EvTs_Lu#+)lKIzeDyAh6+2i$kz^Pu#Q(^2IlrE&QPVcg9DDc8{Cg z(m?ZI@^lE?O9;IwZ`tGS;Z_o|Z}57hU{SQP^j+egDWI4ZzMT2UPvZI#%m93yuMvzw zxy|_U{e}E%G=M5GkZr7q0w*V7$XVdkLRc#q3|>wGm)D4)c}!I@f zFijjU`TPKECwEjQP!nP|$`BhIUe48Q&$Q0WwQBh8JGU5)Bc=9`s1p3#+8uS( zJ@+=U$=u>V|Z8Ch~6f)mk^o` zZCW`ixdNIzVFB!czZGDKohFX-q`2ALV*SICag&zutPHOt9T5@Z$pg2vz@i|{Wxl<< zikzk#-{4wau{7y!n9_O^o~)rA3-6@1D?lkV9Q88$p17&73>yE-JbrAL+SbL4NkB@~ zHACvUJ=3=!2w+Yh*86Si$`S;`fs^ON&kmW}kp5i~at%Cfnn0NlX9bGWp^8W`c)a#cR31p4)sA>mUqL zFY0c5Z@cvXOG6$&;g&4c9i~<D+7`AS;d(MaK!J+F#BcPjVg{E{znku{YrU@GYw_=VqmTS}J& zvL}z@Af4SFgm|Him9oDmHLwwGOZspIKEv0`T;2Z$7*?<)8E{aS=ypMVfa(cqv8w=%0c3~B-`FZvg6(ZE6;#6 zU!yVj?Um=ZHNG+;m6fiC+RB+gsG(OELi?P zk4ZIKBc!oaoVU;EpmUE1gLeu9d!7R~_YwOVQ>i;gwi^N%hXe{8Tr}MW2 z>=v{7Dtm6OptGHMGis|UTVL$9eB3-3z)j+2)qHhyMQ_BBkl>l_Y7TlWhugT-k^|P< zC#PKq0SPdcAB3BP6iIAee~W_4Xk25xw9zo=+#gpK1*0_SX&i8;AkRJ}*|Xp0WF*ws zHI**;DnLorirK1j{1W`%L26)Q8fYa86PL?UIztyQzt;16SF@TU`j0iYV@Ba5{Gg4* z)(coa;e#n;(sLLnycEeDH3~a;v8WmKI?ZSO3B*k5^SC1u?zxt4* zrnm^wpugz`kuvQ#IWBKv$KPB$LO><}gkTrFf?cKZ%DLkxnY-k>a?TdR~IY8MtqndU{GUAJ>QsM!n;12`^0@zGs*6;=Me zqCFmGMa%mH8L_K|&t^p=a5l?G1}R{IE36k`68xc-;eEBJnUsesWCip@ zJX!8SDO;M#O4VkOa|^%hhx$%V=nlx-JzDw+&THrQ@;v9ju2Z-FYD7`6alG-*qF>!h zPb48s*>de@Iec`jsR2I#hmU%~68@#7YF|S(`$*Z+!kKJymPN0|7+aZY=$*xq+%`(OlEha$Y?Sv$=`_Vqy1C4 z?a(tNnU7N&#yqhdn@zw6DkxsdBv@a#>9JO<9TII*mm@()Twvm5=Xv2(>T+u^@ayQ+ znb*XZ!RuFgsd2s3-u9J4*6oBOw&}AaP_Pb{@Dt(dMq=7g6DifV>=G7r<%v!gKom7p z3Z&fg>-n>1a)XG5p!dnK#sO&8M%ogO?eGDyI znpYcExaEFh>vB}SRlRsXq9GZ79vRvM4PXaVZK;Qu**Ddl!?o^y8ss)){K%nrU5g6( zN>|{r7OvXXS*hW}i{24MSchdd4eB^zB*t?hB8ycB*cek3o3%?wcFGhZMu7%kO zN)1 zd-rrv>W2Zl z73< zX~CQZl2Bj%dFh`#Gz*RN7enas$o{WS;bC%wnBS5B0}OCMO|;vVd`s0YoLX_MnD|lk z`(B{2qkz>yXUbbSL%ahCFM9;09fG#J z73)ua^)l+ay?GRW$y)A}Q*=mMcCFQ)y7Anl8(p}AKoGV`;TMj*g1)H%d9ja zDV_5D4$X=`+KKL_`Ji#|8jQx!S63V3Bi^4hD*YT(ZD_-ox|oFr!8(Q(cjBh)j8DUE zU^O1OrCG3tMX~5#e|zz_oKS<>O(a#8eDjkrfnUq2{T_c-T4%7`YD)>~s0f)hppY<_jbmSXE#sO^5LBQhrE zR!cc<=+nQiKbxN_GQb_5=j=;$+aWGW&w_V@HQTW(9gS@Iv3B_Ll7$i?-yB8{QO6*> z$L*t>(Ohd&U74h{>6d*`Z;@KLLW9!{cE0TNHa_aWW`kFJXjhFt$*{fe9Q_cL(=zb7 zq#*S(xStM=$hs-cgL4Si`dkukb;S759Xe_Y16K+CjMg*tPS~{YO7afcSFP_Qdzrr7 zwIM$-Ax?dD%~F0h%PM!x$fT0+hu3<#WLp^lsg}CHPFinj7e{P{BeJyF496;ak7WJl zp-Xi?y6|to{vENy0})V`+#Nxes691 zzJ{PxZD$-XefRgX{S5Nwr2{bZ!75%I=~$xqvZ@;68cm(bOGYFmd&xr8Q`w2F*I$Y) zaH}YnNl5u_wDa^-bet6DZmeRcfvsC9bMIRD!SZhC!!9?d=ZE^Qbf5j*96B57YG>PbfP*w_S^x6c|pk%#-!|W$H_BjBta#wTk#1 zSPK1!S!%LqPt_dT>?A~7Vm^e9KJA0aVENcP#0cY~)6tqqiqcA(pw3rfRBF>QsU@`sp{)tre3+ z|CxbR?qJ94_9>Gt=ZsN_ln`7xNc!fAne6^V9Za#V(z~^ygdID)P<9M$ujVr>#M(k! z7{=-w=V$oLR6wd*OV9=UlLC=V-#!`sh)%~EA>aS|e5|QO-dxZ2C`yziz4m+iRBUx@ zr%W(%WVf)s67h{Vn$)uQBGQuo+NLLM&B80Fk#>Xl^Fii#CLwQPFB5R}&Df@#edAB- z+;8N#vnkf_AW;9jnDh2Tx=wi1_|4@k)=}^85jEu}6xP&xs9wW8_W>~Pyaw%+nGECK zG0p5u`Vz@Kbv<9J*@^Swzpyteu~h8J=G@jgUmis2`4?*;J=79BQyr(AzJ;*FSD$@} z>V)ss7|ZvXE?0{VW8RA^yO;q{p;mPNzAiC&xjYEJe7~nurJE7(+dVf&*vh5{D)IyT zm(x0hf=d>HC0SF(u$zU2&UUn!8S0-VRUK+pn4u4bfyV-0Jz0F8?@XrMD`C@0TX+um zNpwf(l(J>Emothi5&t0-3VWPtYc)X=zjSee zY5Pm#tka;bS#LeAE{9mj*l8}KfR)We*z!yEYF;2l?Yn25I$Mdma-1O7%j;vx*3=)` z)}VM_ig8UrI+eAYL&9OZ2?peLP1If>`ts2nPZh1Ej=SB^B-@97(JLNMqlgQwp4lep z^6i5McfvZO7_d(q>Dx)wOiUDODT7HGr-_DRiaV|Qa-l}KJ=svk@Y}_a-7JF+>wFO) z4ZEuKC{8-33)7FfbEK26{ofC%#vOR`nIU>;K3+TI*h$4~o9?AlP?x81vc@XYr?F~{ z!|D)}6Lw%pF1ph}$oI1y{!Zjx?uO8e6%fO~&gnbj!yiE0XOW>C@vnBNnGXtHm+5eX zhrVi<=|1znIBW0>a$XQ9+M;8`R<;n)8}&W)-+fOwf2jr!EXk@b%%#ZqWd6WxVEQ2B zY~4Y5qAT@$=T^b9vA5lvTLg+lR)#PAJE?+XOQCSRjYd2M8-Sj+D%^-{q1(mRI}`g92Y)t|^ z=`aNY>^0oee8P2mD?+gak9rx2B5tcGS5%nRL>ITc|CLq`JQe=cQ!%DKzwxdqe?vr1 z+l|%x1aIZK_oRE}qrkCe9!`=n>I=02VcXpSm*uU`Cx&57d#N6o!pQEXUiIyZjAKtl z;$rbN+UVrAh^ShQTUnRjkDZJCzbw*c$$Yt8No}J{ZM!j;zOfY+3F}e!Vq*}2 z-|c|H@=U!P8Jb>{C2Wmw!Pw;AUBeraguX3qyU{%q#w6L*`=i>aTb|6T@#iL?8??W( zYL9ox_7`s;y@y^u{pAL=Ndqj4%Gs)`P8@S5s$3S|g6DaUJOv&und0uFxx?i9O*g&{ z+@c>pyTf1+U#M9(?DR}ry;ii=38u*2Q~T|d5;&SS2o_M>6S^snCBi5lS7ACnY(+j$ zhnXsm%Oi6RrKFO>-osxt0OpBd@xzgid9ORtmbHWWJYVli&X?h$mIVh%rUp7>>k5j$ z45%nRhun}=th~`Uw;#SACOBA?;*Gi%5N+?^biC#R>oL|6aRaTV2Z9?KG%eG$-=z z2e1c2OB|RcO6{l6K9vTGTE&;AavL+nD2LQ_R1}lfqj8ZmRUit5T9{@o;|a{Nq53Sm z-K;SZ5c~ZZ6mR%%%v#y3b3|XU&cvkwz$&lG{0Vn9m0{8UxVls(ljM;7YcfNs+(V%4 zx{!371O4)TIV{yc57w0NCIAFr_P+FcQ{rBxB76KwJ-e3Qpps&3eGMNOpAVyD#!lwf ztrl!S)@W#{l-Mw??k=HqF(gLlsU%pGtE-B#MWJjMEZmsPM63KD`wRrMXZM}>L_hw7 zM+`fYGVh4--e7nd=8zO)i;$Ps?waFm3voa_V+OVo#ZYIJ-1aGc)d|FVF6lDaNJHD= z`+lKzc!ad^hZ*f65U~8Ml6iWX<$6xtFxu9)_tWr>ywTa(*`a`jjTR0UmP#wep5ifJ zw(ivW?iMw6e}|Br?yqTSFEhM zH%zDIH$gzn{d)Dl2x_mSZM$^I+|reY@#-g|nHT9xy7A+7{P=fAk` z#b1-9r{Gr9wGTL!zRJ4(qzKz$Jhp>sEaEQ0B>Ff|rA-THVZsT%mlDMClhd;cANGA} zP<5K2%Vttw@1plBYf~_g>SMr!##LL9;!baDjAa$3L@fAKVI41IL2o@p~-z@Ksxo@aOU#q|M$B)eH-(w&?>z=TEY$=|xO%tRi-`hSac ztB0*r3v8_-;+pX*0sBiTjBJJlpImfI*?}^_l0P9HeSV+Ucmg3e7&NNyZSr(&F^>CL zBalh_r;{Whpyk|Ia=o@ad3Hnl7wE5p(vWNwTp*qtu)fN=XXAT1c(9>Ka}9X!*JNGf zMl^D=4BVdeA}2&t_8;<#%l8k4A2Urnu_ec?$56+V-rs~3>=u#|u*L|CBZ;yDDQ*a= z&}8b>>ldl~4gIfUZ4vaO$GW2T@Lrf6a{!Q~R;-41fLy-LFRB(H%*Vq=(8Ug&r*$!g zgvk=Y;gjcI86;eMdS2$a^f*P5ZDa8UB&15q_U=q|@{M`g(#jcr$mLk5^t~|Yp7{Z; zkKW2g5hjXqMnH=s?#lh4rB~lom3oGX%YEUMIs$EI$#l)2e&rnG1GL4gr4zdDu5sE; z0C*EsKz#M(M&^qSCwsB@+2n(#rZu0|ouATG-n`394q#X44!Ezlw1WXz@jVi6BFgFE zD>8V%RhgmF8YdJj+9TcKE~cK>#7Au|I?-GK252&DcR-{Eu{T1Z5%M)p$|1~>{$kepn zrvRcfxS|M!Vs}U;PfnZXHfN>^iUp)U=Jy~1th-(!=7zHc)0;<7Yyfr_CeoOLOjM${ zYsg_-AneN41y^=xzj-6KvDn2-h;I`)f{ya8(uR;cL$uhI2)GFeQ8`BQ}(4Jh* zLlmJ1)z=%(#7xv|p}(DwNn!$rVa7rf03a?sJH;>UpzUAf06#rFKW{=lmZ}zHIi4S! zekM)fIHN^28lYw2?z}VROUGkr)A#-Xf>3EGq4AFhSY<-|RD4~C96#9(A4Od7W;pgJ z#z@h}0)H$fT+0(0oD<@EE9rSA`Qku;!$~OPVR9R=R z0$Su2WKxieBhDR@hlhtt>AyZCiO0Wi_|(%VlYpct6C&t!0RUw4KQ6$*)n_08KG0rm z04D=byj(eNy7=&4Iozw1S&5j##F;yV#94CLcU%nyj^g;}G>6-dk$C;Eq-!7;S5oUB z4s*TbSgmoL8hC%73{PNPC@p94&B?j^BKNW_{ z{nUyJq5!a`I#ZduH<>E+({Oy4WVZhS?`#+!Zjz(}d76-Xa-S@|1l?cx;V8WlNk{a9 z7Tvod|1@|k_|#=^kIJk2BWNf9HwMMn%t6s!aw%We#og{fiy={b(Y95u$32Fu&@!rN z&-M`1l4`RPr4d9NX8b)4!)SJZ(7XIM5(GGRIX^J6)g@bl<+-=t)DOlopM^R1fQZ*p zMhCM=qlr9#n;yCLb_Zgls$)&Aj`w}Q+lOycq^y)*_TVCyOIyZFVlyE~bj{e=_BNBL zy?_xJ3KZD$hzrfA7d1ZR6(N%-{0O=K2-VBCX3y>QTD|J@5x2waS~WSvclJo+1aOrS zEdx2Mksf!(Y+o!-?Y^n3Pb25A$rOb@uL5*`y>6b%N0yQc&iUUg%@A`%4lbtaqn^$G z1=}aoc2&TX(lp4p01G!Q*OoxZ}?(hmK@^dTZLu9v*sCp8X-pH*U?@n3Yx;I!ce%bv(ES z0{DXV;MjDBR&*#Scn$iXxpP&@`!{|Rfv=P_|wKiPFr#$ZF*TLHkCO)jQQwW+v$pQaSP1SL zB=54%h+{@!-)1R{x+!tn@}1eQmuEFZHLD?HMn@)ldgvx(qM8(G&#ZSbyKW_><7^op zPTL!04y~2r_oN0oGm$uri5POwPX|q5; z!p;*->2Y=!uInn^D(MFrT!f@>+w4$mdc)JY^`OI-Rl&3X$2$~%X~6Jn!#n|g+1e?W zRWRl$Ga(Bae`akExK<7`)5OsO^PDEeORMzDc#jVUCXm7l{%HM=a2O%tHz9I2Zn*f| zvX+Ltl9`(7)~`u+7khjddy#u;bGsqGr^YSS(X0D>`(RA*KNY94bp105aJnadFk<<2 zJv!pCak%$ucF0voAUWarNfMhbyFW&bEII z7PLQj9A#YGkx;Q^V+Y*|YRt#L!;a`vrBYo0Y`NxsQvEc`kF6?GI(fY+5_+xf7U2Zn zmEbWM<|g4pyLuc~1j;>hjp>2h39nt_ez$p$ zEEhzi;@-_9;hl`_^yDkU@X$Fg=3}VRPaG3RpNnz#cs?+4mSk>EPRy4vC>bx&4n}n) zQB*i7B+l{EsY7z!mTuD4A) zQoZZi=`(enwmj(W%IWFI9Rl(U-K`ng&?KkVq`!7VD@ zXz|9ivO!OFVfCgT)h^-dzY8l2*?ca$w;z8C@3mZ&7o#KO>pM~lrbQL?NdObfYbiSj z(URUkIKshUPDJC*6KjW0&ZCm3L(RNax~&rAm4LYj!|bekv5#{|QTMFOr-m{B^Ki@f zhc_1)2vf-?T-Wh`o&hFGV$D&V2|J#~Ep3+Rr8}ur1bUExz&7RlW$)qVZ?5Yv^Ks_d zZqp9ZJ|lxGE5m=Dbu#{a9F>U5gwBL)-tQ+;J0S;bSJ&r|`4Ad4a4EpfxN-6er#v{kkP7@+*c~TVB?OxoFvDoD1}}wP+xIF z6dNb{r&+BRWm2T=?Z(RUmEE<=!i|Fr(J1eU&wT^l7O1QCmx0Q1C-F%S&#HrL3w?aO zj>t{aJ`Pf=C|u63ubs?_H*DgO5Pt43YEyg{N0*sEyvUP_t6%(SgAoK`f@+tC;u${T zn7OLc^YzcqyxSuQqvocfVzAsQ3;R9S^K?(QY^h>0LBp!P%7Q%pb+i_fqE!;!T%CHt zIfr>o0qR@gnUg>+hA*v#RM&2nWl=QaRo$3Mg4<5fP;IWS;EA$k2 zOpJLZN9-Lp?h6WsoO>(k2}$H~Yuai<2wSs3rXH^mbK^r^B-ktsAd)$1o)c&&U)xyx z*em?6j&z8zoQqMlIxcy;)Anx z*YH?`+E*9oSuJVTH{N)wwrQ&JRanZEcXZK0wLSW(MHT`qHCt`eE1L@#El7!oD-u_BjgDqh!V{UfCW_MV{m*^%dDd*H zt?!ckw$34&fPqKEXuJwlH85Bb6R$S|r)muM&*T%nkP) zzW>#gC@-}xKD%GB7<%*j7ro|JN931C|A1_MmdWf>jTA z5CB;`67BKADL$)U0#51|{i7mjsKp;wCT9@X@3B3tKO9!w!>tpc>E0ye*2``5Mx&r2w$axZ-Gd=zEM?m;b{ zTI~wlGBxexyww<`{my6DqNFLCNpD$dd}AbIXfv}GM6Dp~*ANdFG~BaPz^uyH1oW!r= z8fdjqk_u5KKbKZ1W6FKzZ`YZ>N-o_lvkXMf10jU#nyC?o)(5Z+h48Z)KWzxZMzhhI z1d~Z|WBtLJoKC2jo0WHRt3In}Su3swZkyk>Kr9H;^5_|Pf0?=bIhPbAGc{xgHOv@W zSzzZgwC_;Wneoo1vdjqAOaHo|k=I=1N!VCBC{ExQdVczwNf^6ys%bALa=b;{1{u81i`ljsoI0(9XFP(1al*je(?5y$Mu@^=# zPLHrToKXVO>aJ|NQpU?a{2VX+{&2#6*lO^+^0ahR$I+~eCt2*D&K_I86m--nL)df( zd9xQd{r1CBMAHwoKx+A`ls>B&RNGT}?~_<;oN06LzN$dm`^ziW)_)G@d6e9>p}$qt zZ24@ST?U#`=S|S;a%TQkDL(W1?&WaA?O9B6Q$CyVq+ znwzwJ-d|@rF>~m@h12j0kGuZ5 z$ZZbH(CiCo{_2?wsg5b;vpe`PJS%_5OGA@Ld>U)hZxTd&qsvS%e+bWqKp zzI$19=~`w}9XZU{Ap)Cg?)L1L;EPb8sa^lYNR>Yme$0=~Sfbi(!?k~5j6K?R4(uvY9vo3`roY0ARE|O^~Q@z0N!Ul(_ zn9H#Te=5>FIL^9ig~RX4s^mXRCWobtn8SW^;jzqFehEd-4kKm{i2iA>W(hY)WEAqy zWoXkIA>TW!$2HM-mdvcsk?XF@!b98ZDO=Ln+n&-`J^$l?Nw}guCh2tS{mufO=wVCN zW)Zc`HyU&O)2M-{Yqw^T0#tDBY%1%@v*n&i?3-661Zd8Skkh(8zM{Cz*d zxj!h8E%LqAyTJ{eGdpPfn6eXwOe1%*GK_ccWG@{8M8 zQ*6wCGrkR{!guloYlLP06u`W8ZPd~Zxo-kckr`K;>ObySilhu?Cm4hRXtqx!e()pv zxNO}MFZ~U>Sc;1^uA%bWo?{ zNl&`_N_WkAqa?EUkyqh{&fw;=g%u&ItH32VEO=1-ais5@uFL0KE*LrPBY`v4G?a(a zO)?aisdh#l+2(zw-}-+j?V*=b#>Y(sO6n?A0V$CD@W{>#$=5)!RSJ4C51x!*iat;> zn+sTyg46tQUb@HsJOR2yUV~@bJKZmt)4^f!^X%0Lrz<^T`A8JCveU)!&S)>7n460s z4pr!Su(9Upk`bDp?M6t3LO~tYlCeuyATFbJK>UrC$I;GMjm)-FiOTQF{gz?%G3P0g zzIe(kG5+iiVO`wQ3Oe<9U2{EanF2wkc)^B%JbK#nQ&d$-^phUP`!kQf@(K%WKD_7) ziu_pZ%H-{_=-8|_lbd~=ON>O;lv7Se01Y1<6i*+PCnHddd@bn0R;Z(i!%2tr^SqaS ziQceEh#Khq)BryrB5XaA@YUrr}f-oc^u!CWQ0Ah90@4TosT zB#)iz%pvdQE;*vrZ_M7sottg=G-~Mtn$C#<{Mb%s+Kfb};BT?9R}X)rlZ$`caDi>^ zkegxTsTR!U#xt*fJMmY_Fw-VyO^Nz0zy}ZZ)KNHQ3w*c)N710nC*F(^=carmx~{x6{2h8;Dz;9>WKqog zu72z8I`I)F?ytdFRJ7Hx1|S~ z_TZ^mbM+kV5O%tZ?2zxDB~G8jlr-gz50>I8oBMqgAH^dnQ+{SS#*D8&@lUXlNfE6g zmTZkl_)AwQ2WdXC3LnT8NB>Zh?eL~UWK7#a156hQWJ zm@QjKp4xAHamBqKQ-0eFp~ea#H``T=1mhfT%m^(ys`xc$V_GAw^wW~t1CHjOW;hzp zErJabkW9L$$y*is%&}W=wCe1sXYnSjqokY1dvP;vp6dON1h>hRqIe)lpYtBA& zLuXqQ0$Pc! ztu@p(cZ0=9xi))TnC`*h_){I!i;j;B@naAAsLZLtdIJl<1F^BOhTY>oo2!a7%zd+2 zdg2s<4LsRht*S~ioUPTVpHj)-gYVO{;Hfvepr#Wb$MI++#1l<}U#Z+|uu9B6`p+KmM&Que@x38uG+ zFek#7eil~s%YfM`w15grBsV>^7L4G3gn>rPyc{o?z#S@1S;J|cdXYe7AjF-JXEF-^mV`O zBo0JT;d<3SY}0aXo{5t()9U7K8u=|0-f=Ct3=ELF-_&gB<~-8=@H-S^b}mQfHyh8T zYyrSBfUDyh%H%@YOXD?KyblWR1yKNd!707!|CM!4$yv_r?d@NA57urz%k5o#m^y1; zXotQ-3cfA#^g1QEj;ku*Zh-1vt~^7Pbb5Xq@^{z(0aIAb<<=;-v_WNQ`>|q$-D6+x ze{{flpyu*VH&7=-JK^#_4_+7wtjG$%R;vntmDNGUX~Ak!XGceFu0qUNnx{FrKUV!p zOql^|1;#F{zIU4a8{op=P4$P~Gx?H^pAH)Ua2l*hT>zg(1vE9kJMB}xN&3_b0Am!m zD;$W;wBtdp2mI>*Z~%gWL*p8ynoC(6uL35#VOKu1hLPxi`J+rha2`|Lq7~Gv5=8E0 zghC{)KXl0Hq}pc#`l;a5&T2Z3ieCd*GK~<_0J;yF|3^OI|Myk?Un^$&1(@UPilf8U S$Q^R$C7`9Q2QO8#4*DM`D1;{f diff --git a/nc_files/gcmc_lib/wheels.gcmc b/nc_files/gcmc_lib/wheels.gcmc deleted file mode 100644 index 86e4d9e11b5..00000000000 --- a/nc_files/gcmc_lib/wheels.gcmc +++ /dev/null @@ -1,167 +0,0 @@ -/* demo for using gcmc file with [py]ngcgui - -//ngcgui: info: WHEELS (gcmc G-Code Meta Compiler) - -//ngcgui: umode = 1; //, units: 1:mm, 0:inch -//ngcgui: r1=10; //,Radius 1 (10mm = .39370 in) -//ngcgui: r2= 5; //,Radius 2 ( 5mm = .19685 in) -//ngcgui: r3= 3.333; //,Radius 3 ( 3.333mm = .13122 in) - -//ngcgui: s1= 1 ,Speed 1 (ratio, nounits) -//ngcgui: s2= 7 ,Speed 2 (ratio, nounits) -//ngcgui: s3= -17 ,Speed 3 (ratio, nounits) - -//ngcgui: p1= 0 ,Phase 1 (angle, degrees) -//ngcgui: p2= 0 ,Phase 2 (angle, degrees) -//ngcgui: p3= 90 ,Phase 3 (angle, degrees) - -//ngcgui: zsafe = 1; //, zsafe -//ngcgui: zcut = -1; //, zcut (neg) - -//ngcgui: xoffset = 0; -//ngcgui: yoffset = 0; - -//ngcgui: scalex = 5; -//ngcgui: scaley = 5; -//ngcgui: scalez = 1; -//ngcgui: frate = 60; //, feedrate -//ngcgui: verbose = 0; // precede ensure_units -*/ -include("ensure_units.gcmc"); //avoid preamble conflict - -/* - Copyright: 2013 - Author: Alan Battersby - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -/********************************************************/ -/* Code to produce wheels paths */ -/* Using GCMC Compiler */ -/* Author: Alan Battersby */ -/* Version: 1.0 */ -/********************************************************/ - -/********************************************************/ -/* Each wheel is a vector of three components */ -/* Radius - The radius of the wheel */ -/* Speed - The speed of the wheel */ -/* Phase - The phase of the wheel */ - -function Radius(wheel) -{ - return wheel[0]; -} - -function Speed(wheel) -{ - return wheel[1]; -} - -function Phase(wheel) -{ - return wheel[2]; -} - -function CreateWheel(r, s, p) -{ - return [r,s,p]; -} - -/* Wheels are held in global vector list called wheels */ - -function CalcPoint(wheels, angle) -{ - local at, posn, r, s, p, w; - - posn = [0, 0]; - - foreach (wheels; w) - { - r = Radius(w); - s = Speed(w); - p = Phase(w); - at = s * angle + p; - posn += [r * cos(at), r * sin(at) ]; - } - - return posn; -} - -function CutPath(wheels, start, inc, end, cdepth, scale) -{ - local angle, point; - /* move to first point at safe height */ - for(angle = start; angle <= end; angle += inc) - { - if (angle == start) - { - /* we should be at safe height */ - /* so move to cutting depth */ - point = scale(CalcPoint(wheels, angle), scale); - goto(point + theoffset); - goto([-,-,cdepth * scale[2]]); - } - else - { - point = scale(CalcPoint(wheels, angle), scale); - move(point + theoffset); - } - } -} -/******************* Library ****************************/ -function GoAtSafeHeight(x,y) -{ - goto([-,-,safeheight]); - goto([x,y,safeheight]); -} - -/******************* main program ***********************/ -if (umode == 1) { - zero = 0.0mm; -} else { - zero = 0.0in; -} -// ngcgui entries are unitless so these additions are used -// to ensure 1) floatingpoint and 2) units per umode setting - -xoffset = zero + xoffset; -yoffset = zero + yoffset; - zsafe = zero + zsafe; - zcut = zero + zcut; - r1 = zero + r1; - r2 = zero + r2; - r3 = zero + r3; - - s1 = 0.0 + s1; //angular speed ratio (unitless) - s2 = 0.0 + s2; //angular speed ratio (unitless) - s3 = 0.0 + s3; //angular speed ratio (unitless) - - theoffset = [xoffset, yoffset]; - safeheight = zsafe; - cuttingdepth = zcut; - -svec = [scalex, scaley ,scalez ]; -wheels = { - CreateWheel(r1, s1, p1 * 1deg), - CreateWheel(r2, s2, p2 * 1deg), - CreateWheel(r3, s3, p3 * 1deg) -}; -feedrate(frate); -GoAtSafeHeight(0, 0); -CutPath(wheels, 0deg, 0.01deg, 360deg, cuttingdepth, svec); -GoAtSafeHeight(0, 0); - diff --git a/nc_files/gestg2.ngc b/nc_files/gestg2.ngc deleted file mode 100644 index ac8e8c807d8..00000000000 --- a/nc_files/gestg2.ngc +++ /dev/null @@ -1,22 +0,0 @@ -(Test G-code for Tangential Arcs) -G17 G21 G90 G54 (XY Plane, mm, Absolute, Coord System 1) -F1000 (Set a visible feedrate) - -(Step 1: Straight move to establish initial heading) -G0 X0 Y0 -G1 X10 Y0 - -(Step 2: G3 Counter-Clockwise Circle) -(Start: 10,0 | Center: 20,0 | End: 10,0) -G3 X10 Y0 I10 J0 - -(Step 3: Move to position for G2) -G1 X30 Y0 - -(Step 4: G2 Clockwise Circle) -(Start: 30,0 | Center: 40,0 | End: 30,0) -G2 X30 Y0 I10 J0 - -(Step 5: Return Home) -G1 X0 Y0 -M2 diff --git a/nc_files/gladevcp_lib/oword.ngc b/nc_files/gladevcp_lib/oword.ngc deleted file mode 100644 index b581af924da..00000000000 --- a/nc_files/gladevcp_lib/oword.ngc +++ /dev/null @@ -1,14 +0,0 @@ - -; this is called from gladevcp MDI action with the following -; MDI command: -; O call [${spin-f}] [${check}] [${toggle}] [${scale-f}] [${spin-f}] - -O sub - -(DEBUG, oword.ngc: spin-f=#1 check=#2) -(DEBUG, toggle=#3 scale=#4) -(DEBUG, spin-f=#5 combo-s=#6) - -O endsub - -m2 diff --git a/nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc b/nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc deleted file mode 100644 index c286c43cbed..00000000000 --- a/nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc +++ /dev/null @@ -1,93 +0,0 @@ -; Gmoccapy_2_tools_with_compensation.ngc -; testprogram to mill two circles with cutter radius compensation -; and two different tools - -; set the basic settings, this should be -; on every program the beginning -G17 -G21 -G54 -G61 -G40 -G49 -G80 -G90 - -; get the first tool -T3 M6 -G43 - -; go to center of the workpiece -G0 X50 Y50 -G0 Z30 - -; turn on spindle clockwise -S3000 -M3 - -; coolant on -M8 - -G0 Z10 -F250 -G1 Z0 - -; tool radius compensation -; go in circle with lower feed rate -G41 -G3 X70 Y50 Z-1 I10 J0 - -; make first circle with normal feed -F2000 -G3 I -20 - -; out of the workpiece -G3 X50 Y50 Z1 I-10 J0 -G0 Z30 - -; coolant off -M9 - -; turn off cutter radius compensation, otherwise no tool change is possible -G40 -T1 M6 -G43 - -; optional stop for testing -(MSG, optional stop, i.e. for cleaning the workpiece, or other thinks) -M1 - -; go again to the center of the workpiece -G0 X50 Y50 -G0 Z10 - -; turn on spindle clockwise -S6000 -M3 - -; mist on -M7 - -G0 Z10 -F400 -G1 Z1 - -; Werkzeugradienkompensation ein -; Anfahrradius mit Eintauchgeschwindigkeit -G41 -G3 X65 Y50 Z-1 I7.5 J0 - -; 2. Kreis mit Vorschubgeschwindigkeit fräsen -F1000 -G3 I-15 - -; Aus dem Werkstück -G3 X50 Y50 Z1 I-7.5 J0 -G0 Z30 - -G0 Z30 -G0 X50 Y50 - -M9 ; coolant off -M5 ; spindle off -M2 ; program end diff --git a/nc_files/gridprobe.ngc b/nc_files/gridprobe.ngc deleted file mode 100644 index f5713d89ce0..00000000000 --- a/nc_files/gridprobe.ngc +++ /dev/null @@ -1,45 +0,0 @@ -( Rectangular Probing ) -( ) -( This program repeatedly probes in a regular XY grid and writes the ) -( probed location to the file 'probe-results.txt' in the same directory ) -( as the INI file ) - -(Configuration section) -G20 (Inches) -F4 (probe speed) - -#1=0 (X start) -#2=.25 (X increment) -#3=13 (X count) - -#4=0 -#5=.25 -#6=5 (Y count) - -#7=.1 (Z safety) -#8=-.5 (Z probe) -(End configuration section) - -(PROBEOPEN probe-results.txt) -#9=0 #10=0 -G0Z#7 -O1 while [#9 lt #6] - #10=0 - G0 Y[#4+#5*#9] - O2 while [#10 lt #3] - O3 if [[#9/2] - fix[#9/2] eq 0] - G0X[#1+#2*#10] - O3 else - G0X[#1+#2*[#3-#10-1]] - O3 endif - G38.2Z#8 - G0Z#7 - #10=[#10+1] - O2 endwhile - #9=[#9+1] -O1 endwhile - -(PROBECLOSE) -G0Z#7 -G0X#1Y#4 -M2 diff --git a/nc_files/hole-circle.ngc b/nc_files/hole-circle.ngc deleted file mode 100644 index f2820d5d959..00000000000 --- a/nc_files/hole-circle.ngc +++ /dev/null @@ -1,12 +0,0 @@ -; drill a bolt hole circle for 6 bolts at diameter 3 inches - -G20 G17 G90 - -; position over first hole, establishing our radius of 1.5 -; an equivalent command would be G0 @1.5 ^0 Z0 -G0 X1.5 Y0 Z0 - -; drill six holes, incrementing 60 degrees each time -G91 G81 R.1 Z-.5 ^60 L6 F10 - -M2 diff --git a/nc_files/holecircle.py b/nc_files/holecircle.py deleted file mode 100644 index 2dabca89509..00000000000 --- a/nc_files/holecircle.py +++ /dev/null @@ -1,245 +0,0 @@ -import sys, os -BASE = os.environ['LINUXCNC_HOME'] -sys.path.insert(0, os.path.join(BASE, "lib", "python")) - -import math - -def _(s): return s - -def ui(): - import tkinter - import pickle - import nf - import rs274.options - import os - - app = tkinter.Tk() - rs274.options.install(app) - app.tk.call("source", os.path.join(BASE, "share", "axis", "tcl", "combobox.tcl")) - - app.wm_title(_("Circular Holes")) - app.wm_iconname(_("Circular Holes")) - - prev = tkinter.Canvas(app, width=200, height=200) - f = tkinter.Frame(app) - b = tkinter.Frame(app) - prev.grid(row=0, column=0, sticky="nw") - f.grid(row=0, column=1, sticky="nw") - b.grid(row=1, column=0, columnspan=2, sticky="ne") - - validate_float = "expr {[regexp {^-?([0-9]+(\.[0-9]*)?|\.[0-9]+|)$} %P]}" - validate_int = "expr {[regexp {^-?([0-9]+|)$} %P]}" - validate_posfloat = "expr {[regexp {^?([0-9]+(\.[0-9]*)?|\.[0-9]+|)$} %P]}" - validate_posint = "expr {[regexp {^([0-9]+|)$} %P]}" - def posfloatentry(f, v): - var = tkinter.DoubleVar(f) - var.set(v) - w = tkinter.Entry(f, textvariable=var, validatecommand=validate_posfloat, validate="all", width=10) - return w, var - - def floatentry(f, v): - var = tkinter.DoubleVar(f) - var.set(v) - w = tkinter.Entry(f, textvariable=var, validatecommand=validate_float, validate="all", width=10) - return w, var - - def posintentry(f, v): - var = tkinter.IntVar(f) - var.set(v) - w = tkinter.Entry(f, textvariable=var, validatecommand=validate_posint, validate="all", width=10) - return w, var - - - def intentry(f, v): - var = tkinter.IntVar(f) - var.set(v) - w = tkinter.Entry(f, textvariable=var, validatecommand=validate_int, validate="all", width=10) - return w, var - - def checkbutton(k, v): - var = tkinter.BooleanVar(f) - var.set(v) - g = tkinter.Frame(f) - w = tkinter.Checkbutton(g, variable=var, text="Yes") - w.pack(side="left") - return g, var - - def intscale(k, v, min=1, max = 100): - var = tkinter.IntVar(f) - var.set(v) - g = tkinter.Frame(f, borderwidth=0) - w = tkinter.Scale(g, orient="h", variable=var, from_=min, to=max, showvalue=False) - l = tkinter.Label(g, textvariable=var, width=3) - l.pack(side="left") - w.pack(side="left", fill="x", expand=1) - return g, var - - def optionmenu(k, v, *options): - options = list(options) - def trace(*args): - try: - var.set(options.index(svar.get())) - except ValueError: - pass - - try: - opt = options[v] - except (TypeError, IndexError): - v = 0 - opt = options[0] - - var = tkinter.IntVar(f) - var.set(v) - svar = tkinter.StringVar(f) - svar.set(options[v]) - svar.trace("w", trace) - wp = f._w.rstrip(".") + ".c" + svar._name - f.tk.call("combobox::combobox", wp, "-editable", 0, "-width", - max(len(opt) for opt in options)+3, "-textvariable", svar._name, - "-background", "white") - f.tk.call(wp, "list", "insert", "end", *options) - w = nf.makewidget(f, tkinter.Widget, wp) - return w, var - - rc = os.path.expanduser("~/.holecirclerc") - constructors = [ - ("units", lambda f, v: optionmenu(f, v, _("G20 (in)"), _("G21 (mm)"))), - ("cx", floatentry), - ("cy", floatentry), - ("th0", floatentry), - ("inc", floatentry), - ("rad", posfloatentry), - ("count", posintentry), - ("feedrate", posfloatentry), - ("depth", floatentry), - ("dwell", posfloatentry), - ("retract", floatentry), - ] - - defaults = dict( - cx = 0, - cy = 0, - th0 = 0, - inc = 15, - count = 6, - feedrate = 8, - depth=-.1, - retract=.1, - units=0, - dwell=0, - rad=1 - ) - - texts = dict( - units=_("Units"), - rad=_("Radius"), - cx=_("Center X"), - cy=_("Center Y"), - th0=_("Start Angle"), - inc=_("Increment Angle"), - count=_("Hole Count"), - feedrate=_("Feed Rate"), - depth=_("Hole Depth"), - retract=_("Retract Height"), - dwell=("Dwell (0=no dwell)"), - ) - - try: - defaults.update(pickle.load(open(rc, "rb"))) - except (IOError, pickle.PickleError): pass - - vars = {} - widgets = {} - for j, (k, con) in enumerate(constructors): - v = defaults[k] - text = texts.get(k, k.replace("_", " ")) - lab = tkinter.Label(f, text=text) - widgets[k], vars[k] = con(f, v) - lab.grid(row=j, column=0, sticky="w") - widgets[k].grid(row=j, column=1, sticky="ew") - - def update_preview(*args): - prev.delete("all") - try: - count = vars['count'].get() - th0 = vars['th0'].get() - inc = vars['inc'].get() - except ValueError: return - for i in range(count): - th = (th0 + i * inc) * math.pi / 180 - x = 100 + 75 * math.cos(th) - y = 100 - 75 * math.sin(th) - prev.create_oval((x-4,y-4,x+4,y+4), fill='black') - - def update_ok(*args): - result = True - for i in vars.values(): - try: - i.get() - except ValueError: - result = False - break - if result: bb.configure(state="normal") - else: bb.configure(state="disabled") - # This line creates an error when you load holecircle twice - # from inside linuxcnc eg. gladevcp filechooser or AXIS GUI - #print(("update_ok", args), file=sys.stderr) - - vars['count'].trace('w', update_preview) - vars['inc'].trace('w', update_preview) - vars['th0'].trace('w', update_preview) - - for i in vars.values(): i.trace('w', update_ok) - - update_preview() - - status = tkinter.IntVar() - bb = tkinter.Button(b, text=_("OK"), command=lambda:status.set(1), width=8, default="active") - bb.pack(side="left", padx=4, pady=4) - bc = tkinter.Button(b, text=_("Cancel"), command=lambda:status.set(-1), width=8, default="normal") - bc.pack(side="left", padx=4, pady=4) - - app.bind("", lambda evt: bc.invoke()) - app.bind("", lambda evt: bb.invoke()) - app.wm_protocol("WM_DELETE_WINDOW", lambda: bc.invoke()) - app.wm_resizable(0,0) - - app.wait_visibility() - app.tk.call("after", "idle", ("after", "idle", "focus [tk_focusNext .]")) - #app.tk_focusNext().focus() - app.wait_variable(status) - - if status.get() == -1: - raise SystemExit(1) - - for k, v in vars.items(): - defaults[k] = v.get() - - app.destroy() - - pickle.dump(defaults, open(rc, "wb")) - - return defaults - -unitcodes = ['G20', 'G21'] -u = ui() -print(unitcodes[u['units']]) -print("F%.1f" % u['feedrate']) - -count = u['count'] -th0 = u['th0'] -inc = u['inc'] -depth = u['depth'] -retract = u['retract'] -cx = u['cx'] -cy = u['cy'] -rad = u['rad'] - -if u['dwell']: cycle = "G82 P% 8.4f" % u['dwell'] -else: cycle = "G81" -for i in range(count): - th = (th0 + i * inc) * math.pi / 180 - x = cx + rad * math.cos(th) - y = cy + rad * math.sin(th) - print("%s X% 8.4f Y% 8.4f Z% 8.4f R% 8.4f" % (cycle, x, y, depth, retract)) -print("M2") diff --git a/nc_files/increment.ngc b/nc_files/increment.ngc deleted file mode 100644 index 4791827bde9..00000000000 --- a/nc_files/increment.ngc +++ /dev/null @@ -1,4 +0,0 @@ -O sub -g91 g0 x#1 y#2 -g90 -O endsub diff --git a/nc_files/involute.py b/nc_files/involute.py deleted file mode 100644 index 025f0da3db5..00000000000 --- a/nc_files/involute.py +++ /dev/null @@ -1,13 +0,0 @@ -from math import * - -print("G20 F60") -print("G64 P0.001") -print("G0 X0 Y0 Z0") -a=.1 -for i in range(100): - t = i/10. - x = a * (cos(t) + t * sin(t)) - y = a * (sin(t) - t * cos(t)) - print("G1 X%f Y%f" % (x,y)) -print("M2") - diff --git a/nc_files/lathe-g76.ngc b/nc_files/lathe-g76.ngc deleted file mode 100644 index fd41030c3be..00000000000 --- a/nc_files/lathe-g76.ngc +++ /dev/null @@ -1,115 +0,0 @@ -(cut a small 1/4-20 thread and part it) -(t1 is for facing and left turning, t4 is threading tool, t9 parting) -(proper tool offsets should be set in the tool table!) - -g20 g64 g18 - -(face and turn outside diameter) -t1 m6 -s1200 m3 -g4p1 -g43 -g0z0x.2 -f4 -g1x-.0625 -g0z.1 -x.120 -f5 -g1z-.55 -g0x.2 - - -(round the end) -o100 sub -g0z1x-1 -g41 -g0z1 -g2 x0 z0 r1 -g3 x3.05 z-3.05 i0 k-3.05 -g91 -g2 z-1.5 x1 r1.5 -g90 -g40 -g0 x4.5 -o100 endsub - -g21 -f50 - -g0z1.3 -g92z0 -o100 call - -f50 - -g92.1 -g0z.9 -g92z0 -o100 call - -g92.1 -g0z.5 -g92z0 -o100 call - -g92.1 -g0z.3 -g92z0 -o100 call - -g92.1 -g0z.1 -g92z0 -o100 call - -g92.1 -g0z0 -g92z0 -o100 call -g0z0 -o100 call - -g92.1 -g0z-.025 -g92z0 -o100 call - -g92.1 -m5 -g20 -f5 - -(thread) -t4 m6 -g43 -s800 m3 -g4p1 -g0z.2x.2 - -(p = thread pitch, distance per revolution) -(z = end of drive line) -(i = offset from drive line to thread peaks) -( negative i means the threads are at a smaller radius than the drive line,) -( so i is negative for outside threads, positive for inside threads) -(j = initial cut depth; subsequent depths follow degression formula) -(r = depth degression: 1.0 = constant depth, 2.0 = constant area) -( any number >= 1.0 allowed) -(k = full thread depth) -(q = "compound slide" angle) -(h = number of spring passes) -(e = distance along drive line used for tapered start/end) -(l = which ends get the taper: 0 = neither, 1 = begin, 2 = end, 3 = both) -g76 p.05 z-.5 i-.075 j.008 k.045 h3 r2.0 q29.5 e.05 l2 -g0x.5 -g0z0 -m5 - -(part) -t9 m6 -g43 -s400 m3 -g4p1 -g0z-.6x.135 -g1x0f.2 -g0x.2 -m2 diff --git a/nc_files/lathe_g70_71_demo.ngc b/nc_files/lathe_g70_71_demo.ngc deleted file mode 100644 index 9c61bb6db38..00000000000 --- a/nc_files/lathe_g70_71_demo.ngc +++ /dev/null @@ -1,35 +0,0 @@ -G54 G18 G21 -F400 - -O100 SUB - G0 X0.202 Z3.041 - G2 X1.081 Z0.919 I3.0 K0.0 - G1 X3.0 Z-1.0 - G1 Z-4.0 - X2.268 Z-5.268 - G2 X2.0 z-6.268 I1.73205 K-1.0 - G1 Z-6.732 - G2 X4.0 Z-8.732 I2.0 K0.0 - G1 X4.5 - G3 X6.285 Z-12.982 I-0.0 K-2.5 - G2 Z-19.982 I3.57071 K-3.5 - ; Let's make the pawn safe to play with - G1 X10 A0.2 - G1 X8.5 Z-22.58 - G1 X10.0 Z-25.178 - G1 Z-27.178 - G2 X11.014 Z-35.1 I5.70735 K-3.29514 - G1 X12.0 Z-36.1 - G1 Z-38.1 - G0 X15.0 -O100 ENDSUB - -G40 T2M6G43 -G71.1 Q100 X15 Z3.041 D1 I1 R0.3 -G40 T10M6G43 -G71.2 Q100 X15 Z3.041 D0.51 I0.5 R0.3 -G42.1 D0.3 L2 -G70 Q100 X15 Z3.041 E0 D0.5 P2 - - -M2 diff --git a/nc_files/lathe_g7x_face_boring.ngc b/nc_files/lathe_g7x_face_boring.ngc deleted file mode 100644 index 31c5cf04612..00000000000 --- a/nc_files/lathe_g7x_face_boring.ngc +++ /dev/null @@ -1,19 +0,0 @@ -G21 G54 G18 -F400 - -O100 SUB - G0 X0 Z-10 - O101 REPEAT [3] - G1 X[#<_x>+5] Z[#<_Z>+3] - G1 X[#<_x>+5] - O101 ENDREPEAT -O100 ENDSUB - -O101 SUB - G72 Q100 X1 Z1 D0.5 I1 R0.3 - G70 Q100 X1 Z1 D0.5 P2 -O101 ENDSUB - -O101 CALL - -M2 diff --git a/nc_files/lathe_g7x_quadrants.ngc b/nc_files/lathe_g7x_quadrants.ngc deleted file mode 100644 index 7c5045d6d1e..00000000000 --- a/nc_files/lathe_g7x_quadrants.ngc +++ /dev/null @@ -1,64 +0,0 @@ -G54 G18 G21 -F400 - - -O100 SUB - G0Z-12X14 - G1Z-10X14 - G1 X10 Z-10 - G3 K5 I0 X5 Z-5 - G1 X5 Z0 - X-1 - Z2 -O100 ENDSUB - -G70 Q100 X15 Z4 D1 P1 -G71 Q100 X-5 Z-14 D0.5 I1 R0.3 -G72 Q100 X15 Z4 D0.5 I1 R0.3 - -#<_distance>=20 -O101 SUB - G0 X-1 Z[2+#<_distance>] - G1 X-1 Z[0+#<_distance>] - G1 X5 Z[0+#<_distance>] - G1 X5 Z[-5+#<_distance>] - G2 I5 K0 X10 Z[-10+#<_distance>] - G1 X14 Z[-10+#<_distance>] - G0 X14 Z[-12+#<_distance>] -O101 ENDSUB - -G72 Q101 X-5 Z[-14+#<_distance>] D0.5 I1 R0.3 -G71 Q101 X15 Z[4+#<_distance>] D0.5 I1 R0.3 -G70 Q101 X15 Z[4+#<_distance>] D1 P1 - -#<_distance>=[#<_distance>+12] -O102 SUB - G0Z[12+#<_distance>]X14 - G1Z[10+#<_distance>]X14 - G1 X10 Z[10+#<_distance>] - G2 K-5 I0 X5 Z[5+#<_distance>] - G1 X5 Z[0+#<_distance>] - X-1 - Z[-2+#<_distance>] -O102 ENDSUB - -G71 Q102 X-5 Z[14+#<_distance>] D0.5 I1 R0.3 -G72 Q102 X15 Z[-4+#<_distance>] D0.5 I1 R0.3 -G70 Q102 X15 Z[-4+#<_distance>] D1 P1 - -#<_distance>=[#<_distance>+20] -O103 SUB - G0 X-1 Z[-2+#<_distance>] - G1 X-1 Z[-0+#<_distance>] - G1 X5 Z[-0+#<_distance>] - G1 X5 Z[5+#<_distance>] - G3 I5 K0 X10 Z[10+#<_distance>] - G1 X14 Z[10+#<_distance>] - G0 X14 Z[12+#<_distance>] -O103 ENDSUB - -G72 Q103 X-5 Z[14+#<_distance>] D0.5 I1 R0.3 -G71 Q103 X15 Z[-4+#<_distance>] D0.5 I1 R0.3 -G70 Q103 X15 Z[-4+#<_distance>] D1 P1 - -M2 diff --git a/nc_files/lathe_pawn.ngc b/nc_files/lathe_pawn.ngc deleted file mode 100644 index a6fadf14770..00000000000 --- a/nc_files/lathe_pawn.ngc +++ /dev/null @@ -1,151 +0,0 @@ -G21 -G64 -G18 G8 -G00 X13.5 Z1.0 S1000 M3 -Z0.488 -G94 G01 X-1.0 F50.0 -Z0.975 -G00 X0.383 Z1.269 -X13.5 -Z0.0 -G01 X-1.0 -Z0.488 -G00 X0.383 Z0.782 -X13.5 -Z1.0 -Z2.0 -X11.237 -G01 Z-34.973 F50.0 -X12.2 Z-35.95 -Z-37.95 -X12.625 -G00 X13.625 Z-36.95 -Z2.0 -X9.849 -G01 Z-19.832 -G00 X10.849 Z-18.832 -Z2.0 -X8.461 -G01 Z-19.832 -X9.849 -G00 X10.849 Z-18.832 -Z2.0 -X7.073 -G01 Z-10.296 -G00 X8.073 Z-9.296 -Z2.0 -X5.685 -G01 Z-8.784 -G03 X7.073 Z-10.296 I-0.98513 K-2.29772 -G00 X8.073 Z-9.296 -Z2.0 -X4.297 -G01 Z-8.582 -X4.7 -G03 X5.685 Z-8.784 I-0.0 K-2.5 -G00 X6.685 Z-7.784 -Z2.0 -X2.909 -G01 Z-0.559 -G00 X3.909 Z0.441 -Z2.0 -X1.521 -G01 Z0.829 -X2.909 Z-0.559 -G00 X4.909 Z1.441 -Z0.441 -X2.909 -G01 Z-0.559 -X3.2 Z-0.85 -Z-4.15 -X2.909 Z-4.654 -Z-8.11 -G02 X4.2 Z-8.582 I1.29082 K1.52767 -G01 X4.297 -G00 X5.297 Z-7.582 -Z-4.654 -X3.909 -G01 X2.909 -X2.468 Z-5.418 -G02 X2.2 Z-6.418 I1.73205 K-1.0 -G01 Z-6.582 -G02 X2.909 Z-8.11 I2.0 K0.0 -G00 X3.909 Z-7.11 -X7.073 -Z-9.296 -G01 Z-10.296 -G03 X7.2 Z-11.082 I-2.3731 K-0.78638 -G01 Z-11.382 -G03 X7.073 Z-12.168 I-2.5 K0.0 -G01 Z-19.832 -X8.461 -G00 X9.461 Z-18.832 -Z-12.168 -X8.073 -G01 X7.073 -G03 X6.485 Z-13.132 I-2.3731 K0.78638 -G02 X5.685 Z-14.204 I3.57071 K-3.5 -G01 Z-18.76 -G02 X6.485 Z-19.832 I4.37094 K2.42793 -G01 X7.073 -G00 X8.073 Z-18.832 -Z-14.204 -X6.685 -G01 X5.685 -G02 X5.058 Z-16.482 I4.37075 K-2.42793 -G02 X5.685 Z-18.76 I4.99775 K0.15 -G00 X6.685 Z-17.76 -X9.849 -Z-18.832 -G01 Z-19.832 -X10.2 -Z-20.132 -X9.849 Z-20.74 -Z-24.42 -G00 X10.849 Z-23.42 -Z-20.74 -G01 X9.849 -X8.787 Z-22.58 -X9.849 Z-24.42 -G00 X10.849 Z-23.42 -X9.849 -G01 Z-24.42 -X10.2 Z-25.028 -Z-27.328 -G02 X9.849 Z-28.029 I5.70735 K-3.29514 -G01 Z-32.917 -G02 X11.214 Z-34.95 I6.0583 K2.594 -G01 X11.237 Z-34.973 -G00 X12.237 Z-33.973 -Z-28.029 -X10.849 -G01 X9.849 -G02 X9.319 Z-30.473 I6.05858 K-2.594 -G02 X9.849 Z-32.917 I6.58858 K0.15 -G00 X10.849 Z-31.917 -Z-29.029 -X11.237 -Z2.0 -X0.534 Z3.241 -G01 X0.202 Z3.041 F75.0 -G02 X1.081 Z0.919 I3.0 K0.0 -G01 X3.0 Z-1.0 -Z-4.0 -X2.268 Z-5.268 -G02 X2.0 Z-6.268 I1.73205 K-1.0 -G01 Z-6.732 -G02 X4.0 Z-8.732 I2.0 K0.0 -G01 X4.5 -G03 X6.285 Z-12.982 I-0.0 K-2.5 -G02 Z-19.982 I3.57071 K-3.5 -G01 X10.0 -X8.5 Z-22.58 -X10.0 Z-25.178 -Z-27.178 -G02 X11.014 Z-35.1 I5.70735 K-3.29514 -G01 X12.0 Z-36.1 -Z-38.1 -G00 X15.0 -Z10.0 -M2 -% diff --git a/nc_files/lathecomp.ngc b/nc_files/lathecomp.ngc deleted file mode 100644 index dd137799339..00000000000 --- a/nc_files/lathecomp.ngc +++ /dev/null @@ -1,49 +0,0 @@ -g20 g64 g18 f30 - -g49 -t0 m6 - -g0x.3z0 -g40 -g1x.1 -g3x0z.1r.1 -g1z1 -g2r.25x-.25z1.25 -g3r.25x-.5z1.5 -g1z1.75 -g0x.3 - -t2 m6 -g43 h2 - -g0z0 -g42 -g1x.1 -g3x0z.1r.1 -g1z1 -g2r.25x-.25z1.25 -g3r.25x-.5z1.5 -g1z1.75 -g40 -g0x.3 - -t7 m6 -g43 h9 - -g0z1.85 -g0x-.3 -g41 -g1x-.4 -g2x-.5z1.75r.1 -g1z1.5 -g2r.25x-.25z1.25 -g3r.25x0z1 -g1z.1 -g2r.1x.1z0 -g40 -g0x.3 - -g49 -t0 m6 - -m2 diff --git a/nc_files/m250.ngc b/nc_files/m250.ngc deleted file mode 100644 index 361578d5a81..00000000000 --- a/nc_files/m250.ngc +++ /dev/null @@ -1,29 +0,0 @@ -o sub -(debug, in M250.ngc) - -o if [EXISTS[#]] -(debug, X param set: #) -o endif - -o if [EXISTS[#]] -(debug, Y param set: #) -o endif - -o if [EXISTS[#]] -(debug, Z param set: #) -o endif - -o if [EXISTS[#

]] -(debug, P param set: #

) -o endif - -o if [EXISTS[#]] -(debug, Q param set: #) -o endif - -o if [EXISTS[#]] -(debug, R param set: #) -o endif - -o endsub -m2 diff --git a/nc_files/m61demo.ngc b/nc_files/m61demo.ngc deleted file mode 100644 index 493fd6c1906..00000000000 --- a/nc_files/m61demo.ngc +++ /dev/null @@ -1,34 +0,0 @@ -; This demonstrates doing an M61 remapped to a named oword sub -; -; to activate, incantate as follows in the INI file: -; -; [RS274NGC] - -; # remap M61 to a named oword subroutine. -; # parameter #1: the Q value -; M61_COMMAND=ocall -; -; -O sub -; -; O if ;; trigger error report -; -(DEBUG,m61demo.ngc: M61 Q=#1) - -; test fail-change line from gladevcp -M66 P2 L0 - -O if [#5399 EQ 1] - (DEBUG, digital-input-02=#5399 - returning -1 to fail M61) - ; a return value < 0 fails the M61 - O return [-1] -O endif - - -; return the tool number to commit the change. -; return a negative return to abort the interpreter with a message like -; "M61 failed ()" - the tool number will be unchanged -; -O endsub [#1] - -m2 diff --git a/nc_files/m6demo.ngc b/nc_files/m6demo.ngc deleted file mode 100644 index 4553ed53d01..00000000000 --- a/nc_files/m6demo.ngc +++ /dev/null @@ -1,88 +0,0 @@ -; This demonstrates doing an M6 remapped to a named oword sub -; -; to activate, incantate as follows in the INI file: -; -; [RS274NGC] - -; # remap M6 to a named oword subroutine. -; M6_COMMAND=ocall -; -; parameter #1: the current tool-in-spindle -; parameter #2: the tool number requested in the last T (prepare) command -; parameter #3: pocket of new tool -; -; -; -O sub -; -(DEBUG, executing M6 O-word sub, tool-in-spindle=#1 prepared=#2 pocket=#3) -; -M66 P2 L0 -;(debug, digital-input-02=#5399) - -# = 0 -# = 0 -# = 0 - -; number of seconds to wait for 'tool-changed' equivalent -# = 9999 -; -O if [# EQ 0] - M5 -O endif - -O if [# NE 0] - G0 G53 Z0 -O endif - -O if [# NE 0] - G30 -O endif - -; set analog output pin #2 to signal the pocket number -; iocontrol.tool-number becomes motion.analog-out-02 -M68 E2 Q[#2] -;(DEBUG, set current tool number on motion.analog-out-02: #2) -; -; assert the equivalent of the iocontrol.tool-change pin -; which is now motion.digital-out-01 -M64 P1 -;(DEBUG, motion.digital-out-01 set high, waiting for motion.digital-in-01) - - -; wait for the equivalent of the iocontrol.tool-changed pin to go high -; we use motion.digital-in-01 -; -M66 P1 L3 Q# -; -; if we waited too long, fail change and abort. -; -O if [#5399 EQ -1] - (DEBUG, timeout waiting for digital-in-01 to become true - failing change ) - O return [-1] -O endif - -; retract iocontrol.tool-change equivalent -;(DEBUG, deasserting motion.digital-out-01) -M65 P1 -; - -; test fail-change line from gladevcp -M66 P2 L0 -; (debug, digital-input-02=#5399) -O if [#5399 EQ 1] - (DEBUG, returning -1 to fail change) - O return [-1] -O else - (debug, change ok, returning +1 to commit change) - ; a positive return value commits the tool change - O return [1] -O endif -; -; return a positive value commit the change. -; a negative return value will fail the change and -; abort the interpreter with a message like -; "M6 failed ()" -; -O endsub -m2 diff --git a/nc_files/m6remap.ngc b/nc_files/m6remap.ngc deleted file mode 100644 index 8172956219a..00000000000 --- a/nc_files/m6remap.ngc +++ /dev/null @@ -1,6 +0,0 @@ -O sub -(DEBUG, executing in M69 in m6remap O-word sub) -M69 -(DEBUG, done) -O endsub -m2 \ No newline at end of file diff --git a/nc_files/m70m72-demo.ngc b/nc_files/m70m72-demo.ngc deleted file mode 100644 index 1f779a7e86d..00000000000 --- a/nc_files/m70m72-demo.ngc +++ /dev/null @@ -1,41 +0,0 @@ -; Demonstrate saving and explicitly restoring the global state around -; a subroutine call using M70 - save state and M72 - restore state -; -; note that the subroutine itself is not aware of the M7x features - -O sub -(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) -O endsub - -O sub -; -g20 (imperial) -g91 (relative mode) -F5 (low feed) -S300 (low rpm) -; -(debug, in subroutine, state now:) -o call -; -O endsub - - -; main program -g21 (metric) -g90 (absolute) -f200 (fast speed) -S2500 (high rpm) -; -(debug, in main, state now:) -o call -;; -M70 (save caller state in at global level) -; -O call -; -M72 (explicitly restore state) -; -(debug, back in main, state now:) -o call -; -m2 diff --git a/nc_files/m73-demo.ngc b/nc_files/m73-demo.ngc deleted file mode 100644 index b420cd51a37..00000000000 --- a/nc_files/m73-demo.ngc +++ /dev/null @@ -1,53 +0,0 @@ -; Demonstrate saving the global state within a subroutine -; using the M73 autorestore feature -; - -O sub -(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) -O endsub - - -O sub -M73 (save caller state in current call context, restore on return or endsub) -; -g20 (imperial) -g91 (relative mode) -F5 (low feed) -S300 (low rpm) -; -(debug, in subroutine, state now:) -o call -(debug, arg=#1) -o if [[#1] GT 0] -; if called with param #1 > 0, demonstrate restore-on-return -(debug, executing return) -o return -o endif - -; note - no exit M7x code needed - the following endsub or an -; explicit 'return' will restore caller state -(debug, executing endsub) -O endsub - - -; main program -g21 (metric) -g90 (absolute) -f200 (fast speed) -S2500 (high rpm) -; -(debug, in main after endsub, state now:) -o call -; -; show restore-on-endsub: -o call [0] -; -(debug, back in main after return, state now:) -o call -; now show restore-on-return: -o call [1] -; -(debug, back in main, state now:) -o call -; -m2 diff --git a/nc_files/m75.ngc b/nc_files/m75.ngc deleted file mode 100644 index 79cdbc9b4f8..00000000000 --- a/nc_files/m75.ngc +++ /dev/null @@ -1,33 +0,0 @@ -o sub -(debug, in M75.ngc) - -(debug, in M75: call_level=#<_call_level> remap_level=#<_remap_level>) - -o if [EXISTS[#]] -(debug, X param set: #) -o endif - -o if [EXISTS[#]] -(debug, Y param set: #) -o endif - -o if [EXISTS[#]] -(debug, Z param set: #) -o endif - -o if [EXISTS[#

]] -(debug, P param set: #

) -o endif - -o if [EXISTS[#]] -(debug, Q param set: #) -o endif - -o if [EXISTS[#]] -(debug, R param set: #) -o endif - -;m76P#

Q[#*5] - -o endsub -m2 diff --git a/nc_files/m76.ngc b/nc_files/m76.ngc deleted file mode 100644 index 605be2ccff1..00000000000 --- a/nc_files/m76.ngc +++ /dev/null @@ -1,29 +0,0 @@ -o sub -(debug, in M76.ngc) - -o if [EXISTS[#]] -(debug, X param set: #) -o endif - -o if [EXISTS[#]] -(debug, Y param set: #) -o endif - -o if [EXISTS[#]] -(debug, Z param set: #) -o endif - -o if [EXISTS[#

]] -(debug, P param set: #

) -o endif - -o if [EXISTS[#]] -(debug, Q param set: #) -o endif - -o if [EXISTS[#]] -(debug, R param set: #) -o endif - -o endsub -m2 diff --git a/nc_files/macros/lathe/LatheMacro.svg b/nc_files/macros/lathe/LatheMacro.svg deleted file mode 100644 index be242455a4a..00000000000 --- a/nc_files/macros/lathe/LatheMacro.svg +++ /dev/null @@ -1,6619 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Finish - Infeed Peck - Retract Peck - Diameter - - - - - Depth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Probe - - - - - Center - - - - - - - - - - - - - - - - - - - - - r1 - - - - - d1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/nc_files/macros/lathe/boring.ngc b/nc_files/macros/lathe/boring.ngc deleted file mode 100644 index 30be296bc1c..00000000000 --- a/nc_files/macros/lathe/boring.ngc +++ /dev/null @@ -1,103 +0,0 @@ -; MACROCOMMAND=Finish Diameter,Surface Speed,DOC,FPR,Finish Length,Radius,Angle,Tool Number, Max RPM -; MACRODEFAULTS=1,500,.02,.007,-2,0,0,1,1500 -; MACROSVG=LatheMacro.svg,1 - -; MACROOPTIONS=load:yes,save:yes,default:default.txt,path:~/macros -; O call [${bore.x-f}] [${bore.sf-f}] [${bore.cut-f}] [${bore.feed-f}] [${bore.z-f}] [${bore.rad-f}] [${bore.angle-f}] [${bore.tool-s}] - -; #1 finish diameter -; #2 surface speed -; #3 depth of cut -; #4 feed/rpm -; #5 finish length -; #6 radius -; #7 angle -; #8 tool number -; #9 max RPM - -;boring - -O sub - -O110 IF [#<_imperial>] - (MSG, IMPERIAL sizes) -O110 ELSE - (MSG, METRIC sizes) -O110 ENDIF - - -(debug, Start Diameter %.3f#<_x>) -(debug, Finish Diameter %.3f#1) -(debug, Z Start %.3f#<_z>) -(debug, Z Finish %.3f#5) - -O107 IF [#<_imperial>] - (MSG, IMPERIAL ON) - #1 = [#1 * 25.4]; X - #2 = [#2 * 3.28]; surface speed - #3 = [#3 * 25.4]; doc - #4 = [#4 * 25.4]; feed - #5 = [#5 * 25.4]; length - #6 = [#6 * 25.4]; radius -O107 ENDIF - -M73 ;save/restore codes - -G8 ; Radius mode (easier maths) -G18 ; XZ Plane -G21 ; Metric Units -G90 ; Absolute Distance -G91.1 ; but not for arcs - -#1 = [#1 / 2] ; because of radius mode - -#14 = [#<_x>] (starting X) -#13 = #<_z> (starting Z) - -#20 = [#6 * SIN[#7]] -#21 = [-#6 * COS[#7]] -#22 = [#6 / COS[#7]] -#23 = [#5 + #6 - #20] -#24 = [[#23 - #13] * TAN[#7]] - -(MSG, Unpause To Start Boring Macro) -m0 - -M6 T#8 G43 - -G96 D#9 S#2 ; Constant Surface Speed Mode -m3 ;Start Spindle -g95 F#4 ; Feed-Per-Rev Mode - -g4p1 ; Wait to reach speed - - (debug, Turning finish dia #1 start dia #14 start length #13 finish length #5) - O100 WHILE [#14 LT [#1 - #3]] - g0 X #14 - #14=[#14 + #3] - G1 X #14 - G1 Z #23 X[#14 + #24] - O101 IF [#6 GT 0] - G3 Z#5 X[#14 + #24 + #21] I#21 K#20 - G1 X[#14 + #24 + #21 - #3] - O101 ELSE - G1 X[#14 + #24 - [#3 * 1.5]] - O101 ENDIF - G0 Z[#13] - O100 ENDWHILE - - G0 x#1 - G1 Z #23 X[#1 + #24] - O102 IF [#6 GT 0] - G3 Z#5 X[#1 + #24 + #21] I#21 K#20 - G1 X[#1 + #24 + #21 - #3] - O102 ELSE - G1 X[#1 + #24 - #3] - O102 ENDIF - G0 Z #13 - G0 X #1 ; For touch-off - M5 - G7 -O endsub - -M2 diff --git a/nc_files/macros/lathe/chamfer.ngc b/nc_files/macros/lathe/chamfer.ngc deleted file mode 100644 index dd1abf371cd..00000000000 --- a/nc_files/macros/lathe/chamfer.ngc +++ /dev/null @@ -1,102 +0,0 @@ -; MACROCOMMAND=X,SFM,DOC,Z,Tool Number,Chamfer size,Front Outside,Front Inside,Back Outside,Max RPM -; MACRODEFAULTS=1,300,.5,1,1,.015,true,false,false,1500 -; MACROSVG=LatheMacro.svg,4 - -; Ocall [${chamfer.x-f}] [${chamfer.sf-f}] [0.5] [${chamfer.z-f}] [${chamfer.tool-s}] [${chamfer.size-f}] [${chamfer.fo}] [${chamfer.fi}] [${chamfer.bo}] - -; #1 chamfer x -; #2 surface speed * -; #3 doc -; #4 chamfer z -; #5 tool number -; #6 chanfer size -; #7 front outside switch * -; #8 front inside switch * -; #9 back outside switch * -; #10 Max RPM - -;chamfer - -O sub - -O107 IF [#<_imperial>] - (MSG, IMPERIAL ON) - #1 = [#1 * 25.4]; X - #2 = [#2 * .3048] ; sf/m to m/m - #3 = [#3 * 25.4]; doc? - #4 = [#4 * 25.4]; Z - #6 = [#6 * 25.4]; chanfer size -O107 ENDIF - -M73 ; save/restore codes - -G8 ; Lathe radius Mode -G18 ; XZ Plane -G21 ; Metric Units -G90 ; Absolute Distance - - -#1 = [#1 / 2] ; because of radius mode - -#14 = [#<_x>] (starting X) -#13 = [#<_z>] (starting Z) - -(MSG, Unpause To start Chamfer Macro) -m0 - -M6 T#5 G43 - -G96 D#10 S#2 ; Constant Surface Speed Mode -M3 -g95 F0.1 ; Feed-Per-Rev Mode - -#20 = 0 -O101 if [#7 GT 0.5] ; front outside - o100 while [[#20 + #3] lt #6] - #20 = [#20 + #3] - g0 x[#1 - #20] z#13 - g1 z#4 - g1 x#1 z[#4 - #20] - g1 x #14 - g0 z#13 - o100 endwhile - g0 x#14 z#13 - g0 x[#1 - #6] - g1 z#4 - g1 x#1 z[#4 - #6] - g1 x #14 - g0 z#13 -O101 elseif [#8 GT 0.5] ; front inside - o102 while [[#20 + #3] lt #6] - #20 = [#20 + #3] - g0 x[#1 + #20] z#13 - g1 z#4 - g1 x#1 z[#4 - #20] - g1 x #14 - g0 z#13 - o102 endwhile - g0 x#14 z#13 - g0 x[#1 + #6] - g1 z#4 - g1 x#1 z[#4 - #6] - g1 x #14 - g0 z#13 -O101 elseif [#9 GT 0.5] ; back outside - o103 while [[#20 + #3] lt #6] - #20 = [#20 + #3] - g0 x[#1 - #20] z#13 - g1 z#4 - g1 x#1 z[#4 + #20] - g1 x #14 - g0 z#13 - o103 endwhile - g0 x#14 z#13 - g0 x[#1 - #6] - g1 z#4 - g1 x#1 z[#4 + #6] - g1 x #14 - g0 z#13 -O101 endif -G7 -O endsub -m2 diff --git a/nc_files/macros/lathe/drill.ngc b/nc_files/macros/lathe/drill.ngc deleted file mode 100644 index ded026573c4..00000000000 --- a/nc_files/macros/lathe/drill.ngc +++ /dev/null @@ -1,86 +0,0 @@ -; MACROCOMMAND= Drill Diameter,Finish Depth,SFM,FPR,Tool Number,Peck Depth,Retract Depth -; MACRODEFAULTS=1.0,-1.0,300.0,.007,1,0.2,.1 -; MACROSVG=LatheMacro.svg,6 -; O call [${drill.diameter-f}] [${drill.zdepth-f}] [${drill.sf-f}] [${drill.feed-f}] [${drill.tool-s}] [${drill.peck-f}] [${drill.retract-f}] - -; #1 drill diameter -; #2 zdepth -; #3 surface speed -; #4 feed/rpm -; #5 tool number -; #6 peck amount -; #7 peck retract amount - not used right now - -O sub - -O100 IF [#<_imperial>] - (MSG, IMPERIAL sizes) - (MSG, ) - # = [#1 * 25.4] - # = [#2 * 25.4] - # = [#3 * .3048] ; sf/m to m/m - # = [#4 * 25.4] - # = [#6 * 25.4] - # = [#7 * 25.4] - #10 = [[#3 *12] / [3.1415 * #1]] ; RPM from sfm request - - (debug, Drill Diameter: %d#1 in) - (debug, Peck Increment: %.3f#6 in) - (debug, Start Z: %.3f#<_z> in) - (debug, Finish Z: %.3f#2 in) - (debug, Feed: %.3f#4 in/rev) - (debug, Tool: %d#5) - (debug, Speed: %d#3 sfm @ %d#10 rpm) -O100 ELSE - (MSG, METRIC sizes) - # = #1 - # = #2 - # = #3 ;m/m - # = #4 - # = #6 - # = #7 - #10 = [# / [3.1415 * #]] ; rpm from m/m request - - (debug, Drilling Diameter: %d# mm) - (debug, Peck Distance: %.2f# mm) - (debug, Start Z: %.2f#<_z> mm) - (debug, Finish depth: %.2f# mm) - (debug, Feed: %.2f# mm/rev) - (debug, Tool: %d#5) - (debug, Speed %d# m/min @ #10 rpm) -O100 ENDIF - -M73 ; save state, restore on exit - -G7 ; diameter mode -G17 ; XY Plane -G21 ; Metric Units don't change units! -G90 ; Absolute Distance - -# = #<_z> (starting Z) - -(MSG, Unpause To start Drilling Macro) -m0 - -M6 T#5 G43 - -G97 S#10 ; Constant RPM mode -M3 ;Start Spindle -G95 F# ; Feed-Per-Rev Mode - -g4p1 ; Wait to reach speed - -G0 X0 ; must drill from the centerline. Tool should be zeroed here -G00 Z # -G98 -G83 Z# R# Q# -G80 - -G0 Z # -M5 -G7 - -(MSG,Done Drilling Macro) -O endsub - -M2 diff --git a/nc_files/macros/lathe/facing.ngc b/nc_files/macros/lathe/facing.ngc deleted file mode 100644 index 02581c15b46..00000000000 --- a/nc_files/macros/lathe/facing.ngc +++ /dev/null @@ -1,74 +0,0 @@ -; MACROCOMMAND=Face Diameter,SFM,DOC,FPR,Z Length,Angle,Tool Number, Max RPM -; MACRODEFAULTS=1,500,.02,.007,-2,0,1,1500 -; MACROSVG=LatheMacro.svg,2,10 - -; Ocall [${face.x-f}] [${face.sf-f}] [${face.cut-f}] [${face.feed-f}] [${face.z-f}] [${face.angle-s}] [${face.tool-s}] - -; #1 face diameter -; #2 surface speed -; #3 DOC -; #4 feed/rpm -; #5 Face Z length -; #6 face angle -; #7 tool number -; #8 max RPM -;Facing - -O sub - -O10 IF [#6 NE 0] - (MSG, Angled facing isn't supported yet) - M2 -O10 ENDIF - -O107 IF [#<_imperial>] - (MSG, IMPERIAL ON) - #1 = [#1 * 25.4] - #2 = [#2 * .3048] ; sf/m to m/m - #3 = [#3 * 25.4] - #4 = [#4 * 25.4] - #5 = [#5 * 25.4] -O107 ENDIF - -M73 - -G7 ; Lathe Diameter Mode -G18 ; XZ Plane -G21 ; Metric Units -G90 ; Absolute Distance - - -#14 = [#<_x> * 2] (starting X) -#13 = #<_z> (starting Z) - -(debug, Facing start X #14 mm, Start Z #13 mm) -(debug, Finish Z #5 mm) -(MSG, Unpause To start Facing Macro) -m0 - -M6 T#7 G43 - -G96 D#8 S#2 ; Constant Surface Speed Mode -M3 -g95 F#4 ; Feed-Per-Rev Mode - -g4p1 ; Wait to reach speed - - O200 WHILE [#13 GT #5 + #3] - - #13=[#13-#3] - G1 Z#13 - G1 X#1 - G0 Z[#13+#3] - G0 X#14 - G0 Z#13 - O200 ENDWHILE - - G1 Z#5 - G1 X#1 - G0 Z[#13+#3] - G0 X[#14+#3] - G0 Z#5 ; For touch-off - M5 -O endsub -M2 diff --git a/nc_files/macros/lathe/go_to_position.ngc b/nc_files/macros/lathe/go_to_position.ngc deleted file mode 100644 index 534fcba67c5..00000000000 --- a/nc_files/macros/lathe/go_to_position.ngc +++ /dev/null @@ -1,30 +0,0 @@ -; MACROCOMMAND=xinc,zinc -; MACRODEFAULTS=0.0,0.0 -; MACROIMAGE=go_to_position.png -; MACROOPTIONS =load:yes,save:yes -; Testfile go to position -; will jog the machine to a given position - -O sub - -G17 -G20 -G54 -G61 -G40 -G49 -G80 -G90 - -;#1 = -;#2 = - -(DEBUG, %fWill now move machine to X = #1 , Z = #2) -(MSG, Unpause To Start Go-To-Position Macro) -m0 - -G0 X #1 Z #2 - -O endsub - -M2 diff --git a/nc_files/macros/lathe/go_to_position.png b/nc_files/macros/lathe/go_to_position.png deleted file mode 100644 index 39e345ca2ac689a1258f7ed49b6a0ab44cbfbbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3725 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 diff --git a/nc_files/macros/lathe/go_to_position_data.txt b/nc_files/macros/lathe/go_to_position_data.txt deleted file mode 100644 index 6cf0bd4ded5..00000000000 --- a/nc_files/macros/lathe/go_to_position_data.txt +++ /dev/null @@ -1,2 +0,0 @@ -go_to_position0,1.0, xinc -go_to_position1,3.5, zinc diff --git a/nc_files/macros/lathe/probe-hole.ngc b/nc_files/macros/lathe/probe-hole.ngc deleted file mode 100644 index 592647a8fa2..00000000000 --- a/nc_files/macros/lathe/probe-hole.ngc +++ /dev/null @@ -1,85 +0,0 @@ -; MACROCOMMAND=r1 Max,Fast Feed,Slow Feed,d1 (mm) -; MACRODEFAULTS=1,25,.1,6 -; MACROSVG=LatheMacro.svg,8,9 -; O call [Max Radius] [slow_feed] [fast_feed] [diameter] - -; #1 Max radius -; #2 fast probe speed -; #3 slow probe feed -; #5 probe diameter (in mm) - -O sub - -; Fast feed for roughing in measurements -G20 F#2 - -#1000=#1 ;max radius - -G91 G38.3 Z.00001 -#1001=#5061 -#1002=#5062 - -G91 G38.2 X#1000 -#1003=#5061 -G90 G0 X#1001 -G91 G38.2 X[0-#1000] -#1004=#5061 -#1001=[[#1003+#1004]/2] -G90 G0 X#1001 - -G91 G38.2 Y#1000 -#1005=#5062 -G90 G0 Y#1002 -G91 G38.2 Y[0-#1000] -#1006=#5062 -#1002=[[#1005+#1006]/2] -G90 G0 Y#1002 - - -G91 G38.2 X#1000 -#1003=#5061 -G90 G0 X#1001 -G91 G38.2 X[0-#1000] -#1004=#5061 -#1001=[[#1003+#1004]/2] -G90 G0 X#1001 - -G91 G38.2 Y#1000 -#1005=#5062 -G90 G0 Y#1002 -G91 G38.2 Y[0-#1000] -#1006=#5062 -#1002=[[#1005+#1006]/2] -G90 G0 Y#1002 - -; Slow probe for accuracy -F#3 - -G90 G0 X[#1003-0.005] -G91 G38.2 X0.010 -#1003=#5061 -G90 G0 X[#1004+0.005] -G91 G38.2 X-0.010 -#1004=#5061 -#1001=[[#1003+#1004]/2] -G90 G0 X#1001 - -G90 G0 Y[#1005-0.005] -G91 G38.2 Y0.010 -#1005=#5062 -G90 G0 Y[#1006+0.005] -G91 G38.2 Y-0.010 -#1006=#5062 -#1002=[[#1005+#1006]/2] -G90 G0 Y#1002 -G91 G1 F1 X[0-#5071] Y[0-#5072] -G90 - -#1007=[#1003-#1004+[#5/25.4]] -#1008=[#1005-#1006+[#5/25.4]] -#1009=[[#1007+#1008]/2] -#1010=[atan[#1002]/[#1001]] -#1011=[sqrt[[#1001*#1001]+[#1002*#1002]]] - -(debug,Dia #1009 Ang #1010 Dist #1011) -O endsub diff --git a/nc_files/macros/lathe/radius.ngc b/nc_files/macros/lathe/radius.ngc deleted file mode 100644 index 6d1a9b7ea17..00000000000 --- a/nc_files/macros/lathe/radius.ngc +++ /dev/null @@ -1,85 +0,0 @@ -; MACROCOMMAND=X,SFM,DOC,Z,Tool Number,Radius,Front Outside,Front Inside,Back Outside -; MACRODEFAULTS=1,300,.5,1,.1,.015,true,false,false -; MACROSVG=LatheMacro.svg,3 - -; O call [${radius.x-f}] [${radius.sf-f}] [0.5] [0][${radius.z-f}] [${radius.tool-s}] [0] [${radius.rad-f}] [${radius.fo}] [${radius.fi}] [${radius.bo}] - -O sub - -O107 IF [#<_imperial>] - (MSG, IMPERIAL ON) - #1 = [#1 * 25.4]; X - #2 = [#2 * 3.28]; surface speed - #3 = [#3 * 25.4]; doc - #4 = [#4 * 25.4]; Z - #6 = [#6 * 25.4]; radius -O107 ENDIF - -M73 ; save/restore codes - -G8 ; Lathe radius Mode -G18 ; XZ Plane -G21 ; Metric Units -G90 ; Absolute Distance - - -M6 T#6 G43 - -#1 = [#1 / 2] ; because of radius mode -#14 = [#<_x>] (starting X) -#13 = [#<_z>] (starting Z) - -G96 D1500 S#2 ; Constant Surface Speed Mode -M3 -g95 F0.1 ; Feed-Per-Rev Mode - -#20 = 0 -O101 if [#9 GT 0.5] ; Front outside - o100 while [[#20 + #3] lt #8] - #20 = [#20 + #3] - g0 x[#1 - #20] z#13 - g1 z#5 - g3 x#1 z[#5 - #20] K[-#20] - g1 x #14 - g0 z#13 - o100 endwhile - g0 x#14 z#13 - g0 x[#1 - #8] - g1 z#5 - g3 x#1 z[#5 - #8] K[-#8] - g1 x #14 - g0 z#13 -O101 elseif [#10 GT 0.5] ; front inside - o102 while [[#20 + #3] lt #8] - #20 = [#20 + #3] - g0 x[#1 + #20] z#13 - g1 z#5 - g2 x#1 z[#5 - #20] K[-#20] - g1 x #14 - g0 z#13 - o102 endwhile - g0 x#14 z#13 - g0 x[#1 + #8] - g1 z#5 - g2 x#1 z[#5 - #8] K[-#8] - g1 x #14 - g0 z#13 -O101 elseif [#11 GT 0.5] ; back outside - o103 while [[#20 + #3] lt #8] - #20 = [#20 + #3] - g0 x[#1 - #20] z#13 - g1 z#5 - g2 x#1 z[#5 + #20] K#20 - g1 x #14 - g0 z#13 - o103 endwhile - g0 x#14 z#13 - g0 x[#1 - #8] - g1 z#5 - g2 x#1 z[#5 + #8] K#8 - g1 x #14 - g0 z#13 -O101 endif -G7 -O endsub -m2 diff --git a/nc_files/macros/lathe/threading.ngc b/nc_files/macros/lathe/threading.ngc deleted file mode 100644 index 3afafa490ed..00000000000 --- a/nc_files/macros/lathe/threading.ngc +++ /dev/null @@ -1,93 +0,0 @@ -; MACROCOMMAND=Thread X, SFM, Tool Number, Pitch, Z, Internal, External -; MACRODEFAULTS=1,300,1,.015,1,False,true -; MACROSVG=LatheMacro.svg,5 - -; Ocall [${thread.x-f}] [${thread.sf-f}] [${thread.tool-s}] [${thread.pitch-f}] [${thread.z-f}] [${thread.internal}] [${thread.external}] -; #1=thread.x -; #2=thread.sf -; #3=thread.tool-s -; #4=thread.pitch-f -; #5=thread.z-f -; #6=thread.internal -; #7=thread.external - -;threading - -O sub - -O107 IF [#<_imperial>] - (MSG, IMPERIAL ON) - #1 = [#1 * 25.4] ; start X - #2 = [#2 * .3048] ; sf/m to m/m - #4 = [#4 * 25.4] ; pitch - #5 = [#5 * 25.4] ; z finish -O107 ENDIF - -G7 ; Lathe Diameter Mode -G18 ; XZ Plane -G21 ; Metric Units -G90 ; Absolute Distance - -#14 = [#<_x> * 2] (starting X) -#13 = #<_z> (starting Z) - -O50 IF [#6 GT 0.5] - (debug, INTERNAL Threading thread dia-#1) - (debug, start-#13) - (debug, finish-#5) - (debug, Pitch-#4) - (debug, Depth-#3) -O50 ELSE - # = [#1 - 0.108 * #4] - # = [#1 - 1.0825 * #4] - (debug, EXTERNAL Threading OD = # ID = #) -O50 ENDIF - -(MSG, Unpause To start Threading Macro) -m0 - -M6 T#3 G43 - -G96 D200 S#2 ; Constant Surface Speed Mode -M3 -g95 F0.1 ; Feed-Per-Rev Mode - -g4p1 ; Wait to reach speed - -;Threading - ; Internal - O51 IF [#6 GT 0.5] - # = [#1] - # = [#1 - 1.3 * #4] - ;g1X [# - 1] ;thread truncation - ;g0 Z #13 - ;g1 X # - ;g1 Z #5 - G0 X[# - 1] - g0 Z #13 - #3 = [#4 * 1.3] - - g1X [# - 1] - g76 p#4 z#5 i1 j0.2 k#3 h3 r1.5 q29.5 e0 l0 - - ; External - O51 ELSE - # = [#1 - 0.108 * #4] - # = [#1 - 1.0825 * #4] - ; EXTERNAL Threading OD = # ID = #) - #3 = [#4 * 1.0825] - g1X [# + 1] ;final thread truncation - g0 z#13 - g1 X # - g1 Z #5 - G0 X[# +1] - G0 Z #13 - g76 p#4 z#5 i-1 j0.2 k#3 h3 r1.5 q29.5 e0 l0 - - O51 ENDIF - - G0 Z #13 - m5 -O endsub - -M2 diff --git a/nc_files/macros/lathe/turning.ngc b/nc_files/macros/lathe/turning.ngc deleted file mode 100644 index 0f268a0171a..00000000000 --- a/nc_files/macros/lathe/turning.ngc +++ /dev/null @@ -1,109 +0,0 @@ -; MACROCOMMAND=Finish Diameter,SFM,DOC,FPR,Finish Length,Radius,Angle,Tool Number, Max RPM -; MACRODEFAULTS=1.0,500.0,.02,.007,-2.0,0.0,0.0,1,1500 -; MACROSVG=LatheMacro.svg,0,11 - -; O call [${turn.x-f}] [${turn.sf-f}] [${turn.cut-f}] [${turn.feed-f}] [${turn.z-f}] [${turn.rad-f}] [${turn.angle-f}] [${turn.tool-s}] - -; #1 finish diameter -; #2 speed -; #3 depth of cut -; #4 feed/rpm -; #5 finish length -; #6 radius -; #7 angle -; #8 tool number -; #9 max RPM - -;Turning - -O sub - -O110 IF [#<_imperial>] - (MSG, IMPERIAL sizes) -O110 ELSE - (MSG, METRIC sizes) -O110 ENDIF - -(debug, Start Diameter %.3f#<_x>) -(debug, Finish Diameter %.3f#1) -(debug, Z Start %.3f#<_z>) -(debug, Z Finish %.3f#5) - -O107 IF [#<_imperial>] - (MSG, IMPERIAL ON) - #1 = [#1 * 25.4] - #2 = [#2 * .3048] ; sf/m to m/m - #3 = [#3 * 25.4] - #4 = [#4 * 25.4] - #5 = [#5 * 25.4] - #6 = [#6 * 25.4] -O107 ENDIF - -M73 ;save/restore codes - -G8 ; Radius mode (easier maths) -G18 ; XZ Plane -G21 ; Metric Units -G90 ; Absolute Distance -G91.1 ; but not for arcs - -# = #1 -#1 = [#1 / 2] ; because of radius mode -#14 = [#<_x>] (starting X) -# = [#14 *2] -#13 = [#<_z>] (starting Z) - -#20 = [#6 * SIN[#7]] -#21 = [#6 * COS[#7]] -#22 = [#6 / COS[#7]] -#23 = [#5 + #6 - #20] -#24 = [[#13 - #23] * TAN[#7]] - - -(MSG, Unpause To Start Turning Macro) -m0 - -M6 T#8 G43 - -G96 D#9 S#2 ; Constant Surface Speed Mode -m3 ;Start Spindle -g95 F#4 ; Feed-Per-Rev Mode - - -g4p1 ; Wait to reach speed - - - O100 WHILE [#14 GT [#1 + #3 / 2]] - g0 X #14 - #14=[#14-#3 / 2] - G1 X #14 - G1 Z #23 X[#14 + #24] - O101 IF [#6 GT 0] - G2 Z#5 X[#14 + #24 + #21] I#21 K#20 - G1 X[#14 + #24 + #21 + #3/2] - O101 ELSE - G1 X[#14 + #24 + [#3 * .6]] - O101 ENDIF - O104 IF [#7 LT 0] - G0 X#14 - O104 ENDIF - G0 Z[#13] - O100 ENDWHILE - - G0 x#1 - G1 Z #23 X[#1 + #24] - O102 IF [#6 GT 0] - G2 Z#5 X[#1 + #24 + #21] I#21 K#20 - G1 X[#1 + #24 + #21 + #3] - O102 ELSE - G1 X[#1 + #24 + #3] - O102 ENDIF - O106 IF [#7 LT 0] - G0 X#14 - O106 ENDIF - G0 Z #13 - G0 X #1 ; For touch-off - M5 - G7 -O endsub -M2 diff --git a/nc_files/macros/mill/go_to_home.ngc b/nc_files/macros/mill/go_to_home.ngc deleted file mode 100644 index 91ba54620f4..00000000000 --- a/nc_files/macros/mill/go_to_home.ngc +++ /dev/null @@ -1,13 +0,0 @@ -; MACROCOMMAND= -; MACRODEFAULTS= -; MACROIMAGE=go_to_home.svg,1,1 - -O sub - - G0 G53 - G28 Z0 - G28 X0 Y0 - -O endsub - -M2 diff --git a/nc_files/macros/mill/go_to_home.svg b/nc_files/macros/mill/go_to_home.svg deleted file mode 100644 index f9202272fde..00000000000 --- a/nc_files/macros/mill/go_to_home.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - Go To Home - - diff --git a/nc_files/macros/mill/go_to_position.ngc b/nc_files/macros/mill/go_to_position.ngc deleted file mode 100644 index d0bf095fb9a..00000000000 --- a/nc_files/macros/mill/go_to_position.ngc +++ /dev/null @@ -1,27 +0,0 @@ -; MACROCOMMAND=xinc,yinc,zinc -; MACRODEFAULTS=0,0,0 -; MACROIMAGE= go_to_position.png -; Testfile go to position -; will jog the machine to a given position - -O sub - -G17 -G20 -G54 -G61 -G40 -G49 -G80 -G90 - -;#1 = -;#2 = -;#3 = - -(DEBUG, Will now move machine to X = #1 , Y = #2 , Z = #3) -G0 X #1 Y #2 Z #3 - -O endsub - -M2 diff --git a/nc_files/macros/mill/go_to_position.png b/nc_files/macros/mill/go_to_position.png deleted file mode 100644 index 39e345ca2ac689a1258f7ed49b6a0ab44cbfbbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3725 zcmV;84s!8{P)6du}RxbcieW4ovaeiBIit&^9S^1 zW-*J|%{Gh7=_EVHr_=E`AwEewe#D6k*u3TNHeirINR%GdtE8$~NWzkkKp>E0yME`~ zbEK+URp0mNyWi{9y&|v??*O<8;B5eU0AlcXoe>0J18@((7XW_F)Ug!6cK|rP@okg# zzW_9Gr6CfO=K+95f*=^ZUVpc?wzgld*RMz&>62N}|Xf+rN_d7c~%`vyeH@>B9Wo2dFxw$!& z*XykTKu`cW0l;K34FVAGV~odEsIRXdwApN306HlE1_03MbWQ*yFCHFSA*L$;P)Wt> zJVK$6Tf%_R;^Y~fBf;s|MN;(AdcgT&I0xJ_BK6!{P+UHFpAW348tgC znpV;@T|YTF`6q+HFm(R>`I`!bBABnyw-edF3RXU*E6EDPvaEn**`i_Y?%lh`Mn^~g z41f>{h2HAw>fYMg+NrX#GM88^X54PKY;kc>zp$`ive|4cR;%@h-EMy%lgU>0k}joE z8T{y@kNzv&x$D=j|7#!+&{S7f|JvEvc|Y|$MNyGrlJQQF$U{+PVdLZD#<8)ncL5M; zwR-l_rAyc3a(R+vk;~<7gTdhL=;)a6dcC)Q{`u$be7IqPAW%|LvZ<9LNiwoYpI0H% zE$%F=zrX(s$8iFYNaVhB>C$z%T+VDpn?j)oUA%a)XEPVm+uPeTH8pkAnzM_wQ6XZt^t6ChK7e*DbH4jL?VK3zWL_j z^78V*81o!SlEF|Yq_Wv;hrj>+`$Mg*t>2$Kd2(nsWt>WLf#`Vsvas3N*#q&yu5snAPBChsp2yw$$+WZ! ziW3(wSwK4SW`P80EKorkP1D*~91+s#be>%90-D0trSeB(ok_??Xb!s5>ek4hvwYBx(FTeb9$?0^~c)ebkLZJxkwhJpD z9eK4tWHB^>KtLn}q?!5=oBVL={Z?03^#D*(QeqQ{L|nRiH8eD=yNmhxd3}!b6A2cm zkaXmuZLmN^QRET|g~3>%P?CwB_uhN&UL+D(ud{sp_1AxOI2`*^c?g9{CP-8GqO#$Qh(eHqU^l%_zUatj7A8m&0~NF#IB>w4P*AMR=9+{7krcd2B$5CC z_vTGAX=&+_)9I`nA0I!` z*48#DlgUC^xC{^kK_v1}US95;nVEst>(zR_URi228vrIICicfa8;!=b9A!`}bnNw1 z2AMXECkUb_+KCe<`Urwx1A&0z#*G_ieLkOLv;K)eb>i{H#>NGKKoE{ZB9z%|Zb`k4 zWm#%?c(@G!v|8<=LZM)Cp*v0k$8kg<>DcR*s5c~le+Pip*4EKjZKB{yM>HCZFB}dB ztyXK5-|tshES5LiZZ`#h6$k_XKzKYJ>C>lA^=7lVb$NNYhT}M*q@={z*w{E9zmHff zW@(zH91e%x;c(~!fk0TN)2&ey#jUQcDtmf*-gY<~l>|X>r%#{0qtR&mxzIf@Fwo2} zj99DHF4xu7*$PF+UbkQ{C>kCfKD;4_E+(`2=9_O$C=`l-*=&9@6bebl#>U#m#>Uz+ z1f87GXq@iq>UxyQ!14)wMc)URn1lQ5g@oP;@jWbvN zIgTST$uggG6l^M^*dqUymX>D?4GrH64Gq;UEG+D!X}XkQ7%|6jgit69DV0iBMMZ_} z@ZrNV<>lqxbd#whN#gS5%l8Hb2Ij}d$Ln1#S7|sL7K+7UUqwZQt*xzXtg5PNZ8y{A zbXim(=*UMQkwA3E1zf#)^}0%>3V;WXE#P*$C0~B|<&{(y#;?lYkuAuyg+%Z#)$_<9 z2I3bM^2j>IOJ{+27si8kVLS?$#`6lqW4md5>bfxAh4I)DY1f7EE{sP`E{sIW?Mprm^Z{}`}D(4e=5ZFd=|EIUrGeSLD8~f zxop|7T=vZN?9kbhXAzrm&lR_`=yN9J`#Wir12N^;*2v_uusy=3AAWi#_OUA*3B&W; zgNdgT7#<(SoOKQ(lOt$-qjfhPb*2D7Z09`rU>&{D+g(1yixIH(2Bn6F1gX1m7 zArVVp9x`KMZeq6-Xgf;17uR>?NLKv%`+N|cg_$?)H^Dq)hTHAtL)2t+rhI?!TD!3A zKEoIAMcv!d9K6q?uly+F3e@bYLCYI0kcy=nu5r)~4E{a{tKABJzz+fhTRs$LQoJ><&9ZOz17KSR69yjBCeQk3CaJ6-=?X zFcJWpPZySmsre}YfJ&uWKepmnLC^gj1VYKLDbXGpgTD`Ad}bW)zWpxBOUu{KJzIW; zo_jrDxnx${UN_ucHzuA=G$&o{o={_N&TXIQFG-_S4O20 zX`~pkFe2X;C^d)%fQIS@06;Jl#I0X%ArK0nOkIZKEytnP>Hz>&yA=;d9>PgG@xw1a z;KTDDLM)2@t(ke)43=Y2rLRK!p>}AL8jvK3=f3B#*==|-`(#^j%{H^JB^s5FSMk-?{nPfL1-d#ikYpSXXlzp}Hvb1~mWXoCXfYm2+ju6@>#>D+$( zejG9#0svU1E%5n$P%G8Ac;+I6l<-AA!+z+sdi>+3f57E&!7^>Z(St_;0Bdw~tHiEj zU64s+>({6hDyS4HG#qHio0NCTLuzc;eWE+@5Zi2OUgJ1U@L=FU^@43d4Zxb`@=HP1 z#;5b8kccEO>Wnyj>@?1Io(D-ryUs1n0RTFhJCXz+he#+wM{`sc=dJVW$K^6P0O0qT z-w}?43mR$el!rvLHMOO4A7pi9^>YC5`Fvs&$=djQ)qzH09}jQVZ_N|6B&h*!A`Iox zb8D^_8?+v(KZM@~e?#AB9|kM~FjN>&QCb0=R)@;+%5??J2X@LsB1#k`X+r>|Tp0m? z2p7qF0l3gRlx6h{CLB#JBqB-1KJjy*@Qa13Ee$Q8ND71FgYbAgSg>1|8=#l zWR4G)R-#+#s8#Cp=3iNY`s#YTb@VNKaP|Y7K6V-a@MPvmUZlJmJY-0rGs!extsuK| zY|GMB@2ds?^jrGV2E$C4!K1N9(Y}?{SxLUiP!%og`F+_JJOt6-Da365zlZmNhb?59 z_uV=2NyN4k=wR(Z$Rsk*ZW=dk-@vowXJEn%m@tC{+XBA5{Viw@4VhGirn;u}>#qH9 z4UfhiVQFOv{-7T$%Ob>tU|Y4}wmCXMuT^WaRsxkGTG$+$8r!xK?UaXNS0HTiK2ScZ zm~-)gnl`u;OK|q&S@hiNfql)6@9ut=HUK^M*14nt+?sn0{bT(ZA1)S(ajN}P*2J3j zo6tAfhu)E1^p5myC^T+{o$|1QN`AgyMJ|p?^j6T7>F~k%4_?e8`C{`(vKRA6sln-$ zvsW;)FoPxg64qR62!%r+NfIi#3RU_l9Bw!axm2Dtu}2z@faO?B&P~Gm+`D0lWG{Gl z34-XP9lbaJ_~esMtWv3zMgFl5Jhp?yLKEQk`vsqW{<$H^0>!ozA^6{?XkjamyV`)w zR%P(md+hZ8FpBB-Nv}YKc%hx+xV>}K1hHC#3iK)r)bt9Ju*23XftO&Xua^}`uX6+e zh$E3mzFsKfNBc{TNF)-MYmfr41mJ+nFH^a z(P#|u;^DCsrlzLiGr#vJ0AB#OYOz?T=H}*zR;%TB5%I``)zwwPVzI;9CHf;tHfebiL6*k|fd8)Wp@*)p2UIniC3z zyyRYEFbo5lrirPkDZ*m05G>0AfCa!w0CZwsP0SK;eB;|D?VmASNzUgJa0bA?Ai5&5 r5`dT=hp#n)u}u9QfWISU&Hn!bY1gwo<(rI@00000NkvXXu0mjf%l{x{ diff --git a/nc_files/macros/mill/go_to_zero.ngc b/nc_files/macros/mill/go_to_zero.ngc deleted file mode 100644 index 85bcaaa6269..00000000000 --- a/nc_files/macros/mill/go_to_zero.ngc +++ /dev/null @@ -1,18 +0,0 @@ -; MACROCOMMAND= -; MACRODEFAULTS= -; MACROIMAGE=go_to_zero.png -; will jog the machine to zero - -o sub - - o<100> if [#5422 LT 0] - G0 Z0 - G0 X0 Y0 - o<100> else if [#5422 GE 0] - G0 X0 Y0 - G0 Z0 - o<100> endif - -o endsub - -M2 diff --git a/nc_files/macros/mill/go_to_zero.png b/nc_files/macros/mill/go_to_zero.png deleted file mode 100644 index f15b97f8abba01e4e7100565e97f1c3475cab272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3742 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 callsub - -G1 X10 (this move still relative and in metric units, note slow feed restored) -m2 diff --git a/nc_files/ngcgui_lib/arc1.ngc b/nc_files/ngcgui_lib/arc1.ngc deleted file mode 100644 index 6a6aa0a8e81..00000000000 --- a/nc_files/ngcgui_lib/arc1.ngc +++ /dev/null @@ -1,301 +0,0 @@ -(info: arc1: inside/outside, cw/ccw, cutter radius compensation) - -; Arc making subroutine formatted for ngcgui - -; Specify: -; dir == 2 for cw, 3 for ccw -; inside == 1 for inside, 0 for outside -; xoff,yoff == arc center -; arc radius == distance to center of rotation -; angle == anglular spread of arc -; rotate == rotation of arc -; width == width of arc - -; see also arc2.ngc to specify using center of rotation - -;---------------------------------------------------------------------- -; Copyright: 2012 -; Author: Dewey Garrett -; -; This program is free software; you can redistribute it and/or modify -; it under the terms of the GNU General Public License as published by -; the Free Software Foundation; either version 2 of the License, or -; (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program; if not, write to the Free Software -; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -;---------------------------------------------------------------------- - -o sub - -# = #1 (=1) -#

= #2 (=2 2:cw 3:ccw) -# = #3 (=1 1:inside 0:outside) -# = #4 (=2000) -# = #5 (=100) -# = #6 -# = #7 -# = #8 (=0.25) -# = #9 (=0) -# = #10 (=.3) -# = #11 (=45 Angle) -# = #12 (=2 Arc Radius) -# = #13 (=-90) -# = #14 (=2) -# = #15 (=0) -# = #16 (=1) -# = #17 (=0) -# = #18 (=1) -# = #19 (=0) -# = #20 (=0) - -# = 1 ;minimum angle -g40; cutter comp off to begin - -o if [# LE 0] - (print, arc1: bad scale: # - EXITING) - (debug, arc1: bad scale: # - EXITING) - (AXIS,notify, arc1: bad scale - EXITING) - m2 -o endif - -o if [[# NE 2] AND [# NE 3]] - (print, arc1: bad dir=# - EXITING) - (debug, arc1: bad dir=# - EXITING) - (AXIS,notify, arc1: bad dir - EXITING) - m2 -o endif - -o if [[# NE 1] AND [# NE 0]] - (print, arc1: bad inside specifier: # - EXITING) - (debug, arc1: bad inside specifier: # - EXITING) - (AXIS,notify, arc1: bad inside specifier - EXITING) - m2 -o endif - -o if [# LT #] - (print, arc1: angle too small: # - EXITING) - (debug, arc1: angle too small: # - EXITING) - (AXIS,notify, arc1: angle too small - EXITING) - m2 -o endif - -o call [#][#][#][#] -# = [#5410 + .001] - -o if [[# GT #] AND [# EQ 1]] - (print, arc1: tooldiam too big: # - EXITING) - (debug, arc1: tooldiam too big: # - EXITING) - (AXIS,notify, arc1: tooldiam too big - EXITING) - m2 -o endif - - -; construct arc parallel to x axis (for transformation later) - - # = [#/2] - # = [90 - #/2] - # = [2 * # * COS[#]] ; between endpoints - -; (xa,ya), (xb,yb), ... are points on arc -; (vxas,vyas), (vxbs,vybs), ... are vectors to subarc centers (short ones) -; (vxal,vyal), (vxbl,vybl), ... are vectors to subarc centers (long ones) - -; start point is at center of outside arc: - # = 0 - # = [# + # * [1 - sin[#]]] - # = 0 - # = [0 - # - #] - - # = [0 + #/2 + # * cos[#]] - # = [0 + # * sin[#]] - # = [0 - # * cos[#]] - # = [0 - # * sin[#]] - # = [0 - [# + #] * cos[#]] - # = [0 - [# + #] * sin[#]] - - # = [0 + #/2 - # * cos[#]] - # = [0 - # * sin[#]] - # = [0 + # * cos[#]] - # = [0 + # * sin[#]] - # = [0 - [# - #] * cos[#]] - # = [0 - [# - #] * sin[#]] - - # = [0 - #/2 + # * cos[#]] - # = [0 - # * sin[#]] - # = [0 - # * cos[#]] - # = [0 + # * sin[#]] - # = [0 + [# - #] * cos[#]] - # = [0 - [# - #] * sin[#]] - - # = [0 - #/2 - # * cos[#]] - # = [0 + # * sin[#]] - # = [0 + # * cos[#]] - # = [0 - # * sin[#]] - # = [0 + [# + # ] * cos[#]] - # = [0 - [# + # ] * sin[#]] - -;# this offset makes center at x,y = 0,0 for convenience: - # = [0 - # * [1 - sin[#]]] - # = [# + #] - # = [# + #] - # = [# + #] - # = [# + #] - # = [# + #] - -; choose points according to dir: -o if [# EQ 2] ; cw 0->a->b->c->d->0 - # = 2 ; pre entry - # = 2 ; most - # = 3 ; inside of arc - - ; 1/4 circle arc entry move - # = [# - #/2] - # = [# - #/2] - # = [#/2] - # = 0 - - # = # - # = # - # = # - # = # - - # = # - # = # - # = # - # = # - - # = # - # = # - # = # - # = # - - # = # - # = # - # = # - # = # -o else ; ccw 0->d->c->b->a->0 - # = 3 ; pre entry - # = 3 ; most - # = 2 ; inside of arc - - ; 1/4 circle arc entry move - # = [# + #/2] - # = [# - #/2] - # = [0 - #/2] - # = 0 - - # = # - # = # - # = # - # = # - - # = # - # = # - # = # - # = # - - # = # - # = # - # = # - # = # - - # = # - # = # - # = # - # = # -o endif - -; apply rotation, scaling, offsets -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -; vectors to arc centers: just rotate and scale, no offset -o call [#][#][#][#][0][0] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][0][0] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][0][0] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][0][0] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][0][0] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][0][0] -# = #<_move:x> -# = #<_move:y> - - s # m3 -o if [# GT 0] - o call [#] -o endif - f# - - g0 z# - g0 x# y# ; pre-entry point - -o if [# EQ 1] -o if [# EQ 2] - /g42 ;# cutter compensation right of path -o else - /g41 ;# cutter compensation left of path -o endif -o else -o if [# EQ 2] - /g41 ;# cutter compensation left of path -o else - /g42 ;# cutter compensation right of path -o endif -o endif - - ; entry with cutter radius compensation - g# x# y# i # j # - g1 z# - - # = [# - #] -o while [# GT [0 - #]] - g# x# y# i# j# z # - g# x# y# i# j# - g# x# y# i# j# - g# x# y# i# j# - g# x# y# i# j# - #=[#-#] -o endwhile - g# x# y# i# j# z [0 - #] - g# x# y# i# j# - g# x# y# i# j# - g# x# y# i# j# - g# x# y# i# j# - g# x# y# i# j# - - g0 z# - g40 ;# cancel cutter radius compensation - -o endsub diff --git a/nc_files/ngcgui_lib/arc1.png b/nc_files/ngcgui_lib/arc1.png deleted file mode 100644 index 864ccabba5c54ffdc491dd7b027e6d046677c86e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6732 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 diff --git a/nc_files/ngcgui_lib/arc2.ngc b/nc_files/ngcgui_lib/arc2.ngc deleted file mode 100644 index d003f11ebed..00000000000 --- a/nc_files/ngcgui_lib/arc2.ngc +++ /dev/null @@ -1,54 +0,0 @@ -(info: arc2: specify arc center, offset, angle) - -; dir: 2 for cw, 3 for ccw -; inside: 1 for inside, else outside - -; Specify: -; (xoff,yoff) == arc center -; (xctr,yctr) == center of rotation -; angle == anglular spread of arc -; width == width of arc - -; calls arc1.ngc - -o sub - -# = #1 (=1) -# = #2 (=2 2:cw 3:ccw) -# = #3 (=1 1:inside 0:outside) -# = #4 (=2000) -# = #5 (=100) -# = #6 -# = #7 -# = #8 (=0.25) -# = #9 (=0) -# = #10 (=.25) -# = #11 (=15) -# = #12 (=2) -# = #13 (=1) -# = #14 (=0) -# = #15 (=0) -# = #16 (=1) -# = #17 (=0) -# = #18 (=1) -# = #19 (=0) -# = #20 (=0) - -# = .1 - - # = [# - #] - # = [# - #] - # = [SQRT[#*# + #*#]] -# = [-90 + ATAN[#]/[#]] - -o if [# LT #] - (print, arc2: separation too small: # - EXITING) - (debug, arc2: separation too small: # - EXITING) - (AXIS,notify, arc2: separation too small - EXITING) - m2 -o endif - - -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - -o endsub diff --git a/nc_files/ngcgui_lib/arc2.png b/nc_files/ngcgui_lib/arc2.png deleted file mode 100644 index 4aa6f6a63c942517727ce611d2ebadef61692423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5848 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 diff --git a/nc_files/ngcgui_lib/backlash.ngc b/nc_files/ngcgui_lib/backlash.ngc deleted file mode 100644 index 3674b0777b5..00000000000 --- a/nc_files/ngcgui_lib/backlash.ngc +++ /dev/null @@ -1,89 +0,0 @@ -(info: backlash measurement utility, use with dial indicator) -o sub -# = #1 (= 0 0=x 1=y 2=z) -# = #2 (= 1.1) -# = #3 (= 2) -# = #4 (= 0.1) -# = #5 (= 10) -# = #6 (= 10) - -o if [# GT #] - # = # - # = # -o else - # = # - # = # -o endif - - # = [# - #] -o if [ABS[#] GT 0.9] (protect indicator) - (debug, backlash: move too big for indicator # - EXITING) - (print, backlash: move too big for indicator # - EXITING) - (AXIS,notify, backlash: move too big for indicator - EXITING) - m2 -o endif -o if [[# GT .99] OR [# LT .01]] - (debug, backlash: bad fraction: # - EXITING) - (print, backlash: bad fraction: # - EXITING) - (AXIS,notify, bad fraction - EXITING) - m2 -o endif - - # = [# + [# - #] * #] - # = 0 - f # g1 - -o while [# GT 0] -o if [# EQ 0] - # = 1 - x # - x # - (debug, set indicator ZERO, S to continue) - m0 (mandatory stop) - M110 - x # - x # -o endif -o if [# EQ 1] - # = 1 - y # - y # - (debug, set indicator ZERO, S to continue) - m0 (mandatory stop) - M110 - y # - y # -o endif -o if [# EQ 2] - # = 1 - z # - z # - (debug, set indicator ZERO, S to continue) - m0 (mandatory stop) - M110 - z # - z # -o endif -o if [# EQ 5] - # = 1 - c # - c # - (debug, set indicator ZERO, S to continue) - m0 (mandatory stop) - M110 - c # - c # -o endif - - # = [# - 1] - (debug, READ indicator, S to continue) - m0 (mandatory stop) - M110 -o endwhile - -o if [# EQ 0] - (debug, bad axis specifier: #) - (print, bad axis specifier: #) -o endif - -o endsub diff --git a/nc_files/ngcgui_lib/db25.ngc b/nc_files/ngcgui_lib/db25.ngc deleted file mode 100644 index b3600f24477..00000000000 --- a/nc_files/ngcgui_lib/db25.ngc +++ /dev/null @@ -1,54 +0,0 @@ -(info: db25 connector -- uses iquad.ngc) -; centered at origin, use offsets to relocate -o sub -# = #1 (=1) -# = #2 (=2000) -# = #3 (=2 2conv|3climb) -# = #4 (=10) -# = #5 (=.1) -# = #6 (=.02) -# = #7 (=0.2) -# = #8 (=0) -# = #9 (=0) -# = #10 (=0) -# = #11 (=0) -# = #12 (=1) -#= #13 (=0) -# = #14 (=0) - -; reject tools that are too big -o call [#][#][#][#] -# = #5410 -o if [# Gt 0.12501] - (debug, db25: tooldiam too big: # - EXITING) - (print, db25: tooldiam too big: # - EXITING) - (AXIS,notify, db25: tooldiam too big - EXITING) - m2 -o endif - -; http://www.interfacebus.com/Connector_D-Sub_Mechanical_Dimensions.html -; mounting hole spacing is 1.857 - - # = 1.635 - # = 1.675 ; adjust to allow use of 0.125 cutter diameter - # = 0.432 -# = [# - 2 * # * tan[10]] - -; center at origin -# = [0.5 * #] -# = [0.5 * #] - -# = [ 0.5 * #] -# = [-0.5 * #] - -# = [-0.5 * #] -# = [-0.5 * #] - -# = [-0.5 * #] -# = [ 0.5 * #] - -# = 1.0 - -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - -o endsub diff --git a/nc_files/ngcgui_lib/gosper.ngc b/nc_files/ngcgui_lib/gosper.ngc deleted file mode 100644 index 184c96bd765..00000000000 --- a/nc_files/ngcgui_lib/gosper.ngc +++ /dev/null @@ -1,67 +0,0 @@ -(Adapted from Program to mill a flowsnake.ngc by K. Lerman) -(info: gosper -- recursion demo -- line is x1,y1 to x2,y2) -o sub - -# = #1 (=2000) -# = #2 (=.010 depth of cut) -# = #3 (=10) -# = #4 (=0.5 safety height) -# = #5 (=-0.866 line x1) -# = #6 (=-0.5 line y1) -# = #7 (= 0.866 line x2) -# = #8 (=-0.5 line y2) -# = #9 (=3 recursion lvl) -# = #10 (=1) -# = #11 (=0) -# = #12 (=-3) -# = #13 (=-3) - - (debug, feature: #<_feature:>) - (debug, remaining: #<_remaining_features:>) - -o if [# EQ 0] - # = 1.0 - (debug, scale was 0, setting #) -o endif - -o if [# LT 0] - # = 0 - (debug, level set to #) -o endif -o if [# GT 4] - # = 4 - (debug, level reduced to #) -o endif - -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -# = #<_move:len> -# = #<_move:phi> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -# = #<_move:len> -# = #<_move:phi> -# = # - - s# M3 (spindle on) -o call [#] - - g0 z # - g0 x # y # - f # - g1 z [0 - #] - # = [# - #] - # = [# - #] - # = [SQRT[#*# + #*#]] - # = ATAN [#]/[#] (degrees) - (compute p3 for equilateral triangle) - # = [# + # * COS[# + 60]] - # = [# + # * SIN[# + 60]] - (three sides of equilateral triangle) - o call [#][#] [#] [#] [#] [#] - o call [#][#] [#] [#][#][#] - o call [#][#][#][#] [#] [#] - g0 z # -o endsub diff --git a/nc_files/ngcgui_lib/gosper.png b/nc_files/ngcgui_lib/gosper.png deleted file mode 100644 index 70d287a8a2acd5c926f16190b10489f2e745f44e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7972 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 MSv8qTDf6)Z0gE sub - -# = #1 (=1) -# = #2 (=2000) -# = #3 (=10) -# = #4 (=3 2:cw, 3:ccw) -# = #5 (=1 1:in, 0:out) -# = #6 (z cutdepth) -# = #7 (z increment) -# = #8 (=0.5) -# = #9 (x center) -# = #10 (y center) -# = #11 (diameter) -# = #12 (=0 face angle) -# = #13 (=0 d angle) -# = #14 (=0) -#= #15 (=0) -# = #16 (=1) -# = #17 (=0) -# = #18 (=0) - -o call [#][#][#][#] -# = [#5410 + .001] - - #
= [#/2] - # = [-1 * #] -o if [# GT 0.0] - (debug, helix: bad cutdepth # - EXITING) - (print, helix: bad cutdepth # - EXITING) - (AXIS,notify, helix: bad cutdepth - EXITING) - m2 -o endif - - # = [-1 * #] -o if [# GT 0.0] - (debug, helix: bad zincr # - EXITING) - (print, helix: bad zincr # - EXITING) - (AXIS,notify, helix: bad zincr - EXITING) - m2 -o endif -o if [[# NE 0] AND [# NE 1]] - (debug, helix: bad inside specifier # - EXITING) - (print, helix: bad inside specifier # - EXITING) - (AXIS,notify, helix: bad inside specifier - EXITING) - m2 -o endif -o if [[#
NE 2] AND [# NE 3]] - (debug, helix: bad dir specifier # - EXITING) - (print, helix: bad dir specifier # - EXITING) - (AXIS,notify, helix: bad dir specifier - EXITING) - m2 -o endif - - # = [# / 2.0] - G40 (cutter radius compensation off) - s# m3 (spindle cw) -o if [# GT 0] -o call [#] -o endif - f # - - # = # - # = [#/2] - - (to avoid gouging, start point is arc opposite flat) - (start point x0,y0 and vector to center vx0,vy0) - # = [# + #
* cos[# + 180]] - # = [# + #
* sin[# + 180]] - # = [#
* cos[#]] - # = [#
* sin[#]] - -o call [#][#
][#][#][#][#][#] - # = #<_entry:prex> (pre entry point) - # = #<_entry:prey> - # = #<_entry:vx> (vector to arc center) - # = #<_entry:vy> - - (points at the ends of the arc) - (x1,y1 start point of flat, vx1,vy1 vector to center) - (x2,y2 start point of flat, vx2,vy2 vector to center) -o if [# eq 2] (cw) - # = [# + #
* cos[# + #]] - # = [# + #
* sin[# + #]] - # = [#
* cos[# + # + 180]] - # = [#
* sin[# + # + 180]] - - # = [# + #
* cos[# - #]] - # = [# + #
* sin[# - #]] - # = [#
* cos[# - # + 180]] - # = [#
* sin[# - # + 180]] -o else - # = [# + #
* cos[# + #]] - # = [# + #
* sin[# + #]] - # = [#
* cos[# + # + 180]] - # = [#
* sin[# + # + 180]] - - # = [# + #
* cos[# - #]] - # = [# + #
* sin[# - #]] - # = [#
* cos[# - # + 180]] - # = [#
* sin[# - # + 180]] -o endif - - g0 z # - -o if [# NE 0] (inside) -o if [# eq 2] (cw) - (debug conventional CW,INSIDE) - g0 x# y# z # -/ g42 (cutter radius comp right of path) - g2 x# y# i# j# -o else (ccw) - (debug climb CCW,INSIDE) - g0 x# y# z # -/ g41 (cutter radius comp left of path) - g3 x# y# i# j# -o endif - -o else (outside) -o if [# eq 2] (2 ==> cw) - (debug,climb CW,OUTSIDE) - g0 x# y# z # -/ g41 (cutter radius comp left of path) - g3 x# y# i# j# -o else (3 ==> ccw) - (debug conventional CCW,OUTSIDE) - g0 x# y# z # -/ g42 (cutter radius comp right of path) - g2 x# y# i# j# -o endif -o endif - (entry complete: #,#,#) - - g0 z [# + 0.05] (hardcoded delta) - g1 z # (plunge) - # = # - #<_:pass> = 1 (colon makes hidden global var) -o while [# GT #] - # = [# + #] -o if [# LT #] - # = # -o endif - g# x# y# i# j# z# - g1 x# y# - g# x# y# i# j# z# - #<_:pass> = [#<_:pass> + 1] -o endwhile - (final traverse at full depth) - g# x# y# i# j# z# - g1 x# y# - g# x# y# i# j# z# - g0 z# - g40 -o endsub diff --git a/nc_files/ngcgui_lib/helix_rtheta.ngc b/nc_files/ngcgui_lib/helix_rtheta.ngc deleted file mode 100644 index 24c6d5483ca..00000000000 --- a/nc_files/ngcgui_lib/helix_rtheta.ngc +++ /dev/null @@ -1,29 +0,0 @@ -(info: helix_rtheta: specify center with r,theta, uses helix.ngc) -o sub - -# = #1 (=1) -# = #2 (=2000) -# = #3 (=10) -# = #4 (=3 2:cw, 3:ccw) -# = #5 (=1 1:in, 0:out) -# = #6 (z cutdepth) -# = #7 (z increment) -# = #8 (=0.5) -# = #9 (hole diameter) -# = #10 (=0 face angle) -# = #11 (=0 d angle) -# = #12 (r center) -# = #13 (theta center) -# = #14 (=0) -#= #15 (=0) -# = #16 (=1) -# = #17 (=0) -# = #18 (=0) - -o call [#][#][#][#] -# = [#5410 + 0.001] - -# = [# * COS[#]] -# = [# * SIN[#]] -ocall [#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] -o endsub diff --git a/nc_files/ngcgui_lib/hole_circle.ngc b/nc_files/ngcgui_lib/hole_circle.ngc deleted file mode 100644 index 6a40a4f5553..00000000000 --- a/nc_files/ngcgui_lib/hole_circle.ngc +++ /dev/null @@ -1,45 +0,0 @@ -(info: hole_circle: equally spaced, uses helix.ngc) -o sub - -# = #1 -# = #2 (=2000) -# = #3 (=10) -# = #4 (=3 2:cw, 3:ccw) -# = #5 (=1 1:in, 0:out) -# = #6 -# = #7 -# = #8 (=0.5) -# = #9 (Circle diameter) -# = #10 (=0 start theta) -# = #11 (hole diameter) -# = #12 (=4 N holes) -# = #13 (=0) -# = #14 (= 0) -# = #15 (= 0) -#= #16 (= 0) -# = #17 (=1) -# = #18 (=0) -# = #19 (=0) - -o call [#][#][#][#] -# = [#5410 + .001] - -# = 0 -# = [360/#] -# = 0 (notused helix item) -# = 0 (notused helix item) -# = [# / 2] - -o while [# LT #] - # = [# + # * COS[#]] - # = [# + # * SIN[#]] - - ocall [#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - # = [# + 1] - # = [# + #] - #<_feature:> = # (using _feature: here disables stop) - (that would occur in helix at spin sub call) -o endwhile - - -o endsub diff --git a/nc_files/ngcgui_lib/ihex.ngc b/nc_files/ngcgui_lib/ihex.ngc deleted file mode 100644 index cddee2cb847..00000000000 --- a/nc_files/ngcgui_lib/ihex.ngc +++ /dev/null @@ -1,218 +0,0 @@ -(require: angle at intersection of p1-2 and p1-4 must be obtuse) -(cw traverse: p1,p2,p3,p4) -(ccw traverse: p1,p4,p3,p2) - -(info: ihex: internal hexagon, cw/ccw dir, radius compensation) -o sub - -# = #1 (=1) -# = #2 (=2000) -# = #3 (=10) -# = #4 (=2 2conv | 3climb) -# = #5 (distance across flats) -# = #6 -# = #7 -# = #8 (=0.2) -# = #9 (=0) -# = #10 (=1) -# = #11 (=0) -# = #12 (=0) -# = #13 (=0) -# = #14 (=0) -# = #15 (=1) -# = #16 (=0) -# = #17 (=0) - -o if [# EQ 0] - # = 1.0 - (debug, scale was 0, setting #) -o endif - -o call [#][#][#][#] -# = [#5410 + .001] - -o if [[# NE 2] AND [# NE 3]] - (debug, ihex: direction must be 2 or 3 - EXITING) - (print, ihex: direction must be 2 or 3 - EXITING) - (AXIS,notify, ihex: direction must be 2 or 3 - EXITING) - m2 -o endif - -# = [#/2] -#

= [#/cos[30]] - -# = [#

* cos[60]] -# = [#

* sin[60]] - -(p1 -> p2 -> is cw) -(apply scale,rotate, then offset to all input points) -# = #

-# = 0 -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = # -# = [0 - #] -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [0 - #] -# = [0 - #] -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [0 - #

] -# = 0 -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [0 -# ] -# = # -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = # -# = # -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [#/2] -# = [0 - #] -# = [0 - #] - -(get lengths and angles for connecting lines) -o call [#][#][#][#] -# = #<_line:phi> -o call [#][#][#][#] -# = #<_line:len> -# = #<_line:phi> -# = #<_line:cos> -# = #<_line:sin> -o call [#][#][#][#] -# = #<_line:phi> - -o call [#][#][#][#] -# = #<_line:len> -# = #<_line:phi> -# = #<_line:cos> -# = #<_line:sin> - - g40 (cutter radius compensation off) - f # - s # m3 (spindle cw) -o if [# GT 0] -o call [#] -o endif - g0 z# - # = # - # = 1 - -o while [# GT #] - # = [# + #] -o if [# LT #] - # = # -o endif -o if [# GT 100] - (debug, ihex: too many passes - EXITING) - (print, ihex: too many passes - EXITING) - (AXIS,notify, ihex: too many passes - EXITING) - m2 -o endif - -o if [#

EQ 2] -o if [# EQ 1] - (arc entry along line1-2 where corner 1 is obtuse) - # = [# + 1 * # * cos[#]] (entry) - # = [# + 1 * # * sin[#]] - # = [# + 2 * # * sin[#]] (preentry 1) - # = [# - 2 * # * cos[#]] - # = [# + # * cos[#]] (preentry 2) - # = [# + # * sin[#]] - # = [0 - # * sin[#]] (r vector) - # = [0 + # * cos[#]] - g0 x # y # (preentry 1) - g0 x # y # (preentry 2) -/ g42 (cutter radius comp right of path) - g2 x # y # i # j # (arc entry) - # = [#] - # = [#] - (go along the 2-->3 line to exit) - (angle between 1-->2 and 2-->3) - (only necessary for acute angles) - # = [180 + # - #] - # = [# / ABS[TAN[#/2]]] - # = [#/#] - (print angle=# elen=# k=#) -o if [# GE 1] - (debug, ihex: can't get in final corner k=# - EXITING) - (print, ihex: can't get in final corner k=# - EXITING) - (AXIS,notify, ihex: can't get in final corner - EXITING) - m2 -o endif - # = [# + # * # * #] - # = [# + # * # * #] - g1 z # (plunge) -o endif - x # y # z# - x # y # - x # y # - x # y # - x # y # - x # y # - # = [# + 1] -o else (dir EQ 3 CCW) -o if [# EQ 1] - (arc entry along line4-1 where corner 1 is obtuse) - # = [# + 1 * # * cos[#]] (entry) - # = [# + 1 * # * sin[#]] - # = [# - 2 * # * sin[#]] (preentry 1) - # = [# + 2 * # * cos[#]] - # = [# + # * cos[#]] (preentry 2) - # = [# + # * sin[#]] - # = [0 + # * sin[#]] (r vector) - # = [0 - # * cos[#]] - g0 x # y # (preentry 1) - g0 x # y # (preentry 2) -/ g41 (cutter radius comp left of path) - g3 x # y # i # j # (arc entry) - # = [#] - # = [#] - (go along the 4-->3 line to exit) - (angle between 4-->3 and 1-->4) - (only necessary for acute angles) - # = [180 - # + #] - # = [# / ABS[TAN[#/2]]] - # = [#/#] -o if [# GE 1] - (debug, ihex: can't get in corner k=# - EXITING) - (print, ihex: can't get in corner k=# - EXITING) - (AXIS,notify, ihex: can't get in corner - EXITING) - m2 -o endif - # = [# + 1.01* # * # * #] - # = [# + 1.01* # * # * #] - g1 z # (plunge) -o endif - x # y # z# - x # y # - x # y # - x # y # - x # y # - x # y # - # = [# + 1] -o endif - -o endwhile - - g1 x # y # - g1 x # y # - - g0 z # - g40 -o endsub diff --git a/nc_files/ngcgui_lib/iquad.ngc b/nc_files/ngcgui_lib/iquad.ngc deleted file mode 100644 index 1baa496f62d..00000000000 --- a/nc_files/ngcgui_lib/iquad.ngc +++ /dev/null @@ -1,179 +0,0 @@ -(inside quadrangle, vertex 1 should be largest) -(computes direction for polygon cw or ccw and swaps indices if required) -(ok for non-pathological 4 sided polygons including convex) - -(info: iquad: internal quadrilateral, four x,y points, cw/ccw dir, radius comp) -o sub - -# = #1 (=1) -# = #2 (=1) -# = #3 (=2 2conv|3climb) -# = #4 (=10) -# = #5 (=.1) -# = #6 (=.02) -# = #7 (=0.2) -# = #8 (=0) -# = #9 -# = #10 -# = #11 -# = #12 -# = #13 -# = #14 -# = #15 -# = #16 -# = #17 (=1) -# = #18 (=0) -# = #19 (=0) -# = #20 (=0) -# = #21 (=0) -# = #22 (=1) -# = #23 (=0) -# = #24 (=0) - -o if [# EQ 0] - # = 1.0 - (debug, scale was 0, setting #) -o endif - -o call [#][#][#][#] -# = [#5410 + .001] - -o if [[# NE 2] AND [# NE 3]] - (debug, iquad: bad direction # - EXITING) - (print, iquad: bad direction # - EXITING) - (AXIS,notify, iquad: bad direction - EXITING) - m2 -o endif - - (compute direction eg cw,ccw for points as specified:) -o call [4][#][#][#][#][#][#][#][#] - # = #<_dir:> - -o if [# NE #] - (print swap for pointsdir=# user:#) - (swap 1234 --> 1432) - # = # - # = # - # = # - # = # - # = # - # = # -o endif - -(apply scale, rotate, then offset to all input points) -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [#/2] -# = [0 - #] -# = [0 - #] - - (get lengths and angles for connecting lines) -o call [#][#][#][#] - # = #<_line:cos> - # = #<_line:sin> -o call [#][#][#][#] - # = #<_line:cos> - # = #<_line:sin> - - (compute angles at line intersections:) -o call [#][#][#][#][#][#] - # = #<_dot:ang> -o call [#][#][#][#][#][#] - # = #<_dot:ang> - - g40 (cutter radius compensation off) - f # - s # m3 (spindle cw) -o if [# GT 0] -o call [#] -o endif - g0 z# - # = # - # = 1 - -o while [# GT #] - # = [# + #] -o if [# LT #] - # = # -o endif -o if [# GT 100] - (debug, iquad: too many passes - EXITING) - (print, iquad: too many passes - EXITING) - (AXIS,notify, iquad: too many passes - EXITING) - m2 -o endif - -o if [# EQ 1] - (entry point:) - (for acute angle: go along the 1-->2 line to enter) - (at a point where tool will fit) - - # = [ # / [TAN[#/2]]] - # = [# / #] - (print entry 12 k=# elen12=# angle=#) - # = [# + # * #] - # = [# + # * #] - (compute pre-entry points:) -o if [# EQ 2] - # = [# + # * # - # * #] - # = [# - # * # - # * #] - # = [# + # * #] - # = [# + # * #] - # = [ # * #] - # = [ # * #] -o else (dir EQ 3 CCW) - # = [# - # * # - # * #] - # = [# + # * # - # * #] - # = [# + # * #] - # = [# + # * #] - # = [ # * #] - # = [ # * #] -o endif - g0 x # y # (preentry 1) - g0 x # y # (preentry 2) -o if [# EQ 2] -/ g42 (cutter radius comp right of path) - g2 x # y # i # j # (arc entry) -o else (dir EQ 3 CCW) -/ g41 (cutter radius comp left of path) - g3 x # y # i # j # (arc entry) -o endif - # = # - # = # - (rampdown finishes at point 2, to exit: need to turn corner at 2) - (and go along the 2-->3 line enough to exit) - # = [ # / [TAN[#/2]]] - # = [# / #] - (print exit 23 k=# elen23=# angle=#) - - (need a test here: if you go along 23 too far you gouge vertex 3) - # = [# + # * #] - # = [# + # * #] - g1 z # (plunge to start height todo:g0) -o endif - x # y # z# (ramp down to zcurrent) - x # y # - x # y # - x # y # - # = [# + 1] -o endwhile - (print a= # # k=#) - (print b= # #) - - g1 x # y # - g1 x # y # - - g0 z # - g40 -o endsub diff --git a/nc_files/ngcgui_lib/iquad.png b/nc_files/ngcgui_lib/iquad.png deleted file mode 100644 index 940346d71ff9a9d428845fe572ad926ba912f5ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7475 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 diff --git a/nc_files/ngcgui_lib/lathe/g76base.ngc b/nc_files/ngcgui_lib/lathe/g76base.ngc deleted file mode 100644 index f07045f171e..00000000000 --- a/nc_files/ngcgui_lib/lathe/g76base.ngc +++ /dev/null @@ -1,119 +0,0 @@ -(info: G76 Threading, Specify driveline and offset, use NEGATIVE offset I for External Thread) - -; default values: -; external thread example: xi=0.5,k=0.05,i=-0.03 -; for majordiam=0.94,minordiam=0.84,i=-0.03 - -; internal thread example: xi=0.39,k=0.05,i=+0.03 -; for majordiam=0.94,minordiam=0.84,i=+0.03 - -o sub - # = #1 (= 10) - # = #2 (= 200 Spindle RPM) - - # = #3 (= 0.5 X: Xi driveline) - # = #4 (= -0.5 Z: Zi driveline) - -; G76 required items: - #

= #5 (= 0.125 P: Pitch, NEG for tpi) - # = #6 (= -1.0 Z: Zf final) - # = #7 (= -0.03 I: Thread peak offset) - # = #8 (= 0.05 K: Full thread depth) - # = #9 (= 0.015 J: Initial cut depth) - -; G76 optional items: - # = #10 (= 1.0 R: Depth degression) - # = #11 (= 29.5 Q: Compound slide angle) - # = #12 (= 0 H: No. of spring passes) - # = #13 (= 0.050 E: Taper dist =K typ) - # = #14 (= 2 L: End Taper 0,1,2,3) - -; other: - # = #15 (=3 Dir: Right=3 Left=4) - # = #16 (=8 G7/G8 Radius=8 Diam=7) - # = #17 (=0 0:silent, 1:verbose) - -o if [#

LT 0] - #

= ABS[1 / #

] - (debug, g76base: Computed pitch = #

from tpi) -o endif - -o if [ [# NE 0] AND [# NE 1] AND [# NE 2] AND [# NE 3] ] - (print, q76base: Require: L = 0 or 1 or 2 or 3 - EXITING) - (debug, q76base: Require: L = 0 or 1 or 2 or 3 - EXITING) - (AXIS,notify, q76base: Require: L = 0 or 1 or 2 or 3 - EXITING) - m2 -o endif - -o if [ [# NE 3] AND [# NE 4]] - (print, q76base: Dir: 3 for RH 4 for LH - EXITING) - (debug, q76base: Dir: 3 for RH 4 for LH - EXITING) - (AXIS,notify, q76base: Dir: 3 for RH 4 for LH - EXITING) - m2 -o endif - -o if [ [# NE 7] AND [# NE 8] ] - (print, q76base: Mode: 7 for D 8 for R - EXITING) - (debug, q76base: Mode: 7 for D 8 for R - EXITING) - (AXIS,notify, q76base: Mode: 7 for D 8 for R - EXITING) - m2 -o endif - -o if [#<_vmajor> lT 2.6] - ; no introspection on lathe radius/diameter mode - ; so allow only G8 (radius mode) -o if [# NE 8] - (print, g76base: v2.5 requires G8 - EXITING) - (debug, g76base: v2.5 requires G8 - EXITING) - (AXIS,notify, g76base: v2.5 requires G8 - EXITING) - m2 -o endif -o else - ; >= 2.6 - ; use introspection on lathe radius/diameter mode - ; to restore mode -o if [#<_lathe_diameter_mode> EQ 1] - # = 7 ; diam -o endif -o if [#<_lathe_radius_mode> EQ 1] - # = 8 ; radius -o endif -o if [ [#<_lathe_diameter_mode> EQ 0] AND [ #<_lathe_radius_mode> EQ 0] ] - ; not supposed to happen: - (print, g76base: unexpected lathe mode - EXITING) - (debug, g76base: unexpected lathe mode - EXITING) - (AXIS,notify, g76base: unexpected lathe mode - EXITING) - m2 -o endif -o if [ [#<_lathe_diameter_mode> EQ 1] AND [ #<_lathe_radius_mode> EQ 1] ] - ; not supposed to happen: - (print, g76base: unexpected lathe mode - EXITING) - (debug, g76base: unexpected lathe mode - EXITING) - (AXIS,notify, g76base: unexpected lathe mode - EXITING) - m2 -o endif -o endif - -G# - -o if [# GT 0] -o if [# EQ 7] - (debug, g76base: set G7 DIAMETER mode) -o else - (debug, g76base: set G8 RADIUS mode) -o endif -o endif - -o call [#] - -M# S# - -G0 X# Z# - -G76 P#

Z# I# J# R# K# Q# H# E# L# - -o if [[#<_vmajor> GE 2.6] AND [# GT 0]] - (debug, g76base restoring mode to G #) -o endif - -o endsub diff --git a/nc_files/ngcgui_lib/lathe/g76base.png b/nc_files/ngcgui_lib/lathe/g76base.png deleted file mode 100644 index a2c6751ca6caafe31726bf5513c0b9e20a04a4ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5870 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 diff --git a/nc_files/ngcgui_lib/lathe/g76diam.ngc b/nc_files/ngcgui_lib/lathe/g76diam.ngc deleted file mode 100644 index 5e20dc7c2e4..00000000000 --- a/nc_files/ngcgui_lib/lathe/g76diam.ngc +++ /dev/null @@ -1,69 +0,0 @@ -(info: G76 Threading, Specify Major, Minor diameters, use NEGATIVE offset I for External Thread) - -; convenience routine that allows specifying major and -; minor diameters for using G76 - -; Note: To make the number of passes equal for G7 (diam) and G8 (radius) modes, -; jeq = j_for_G7 = 2 * j_for_G8 - -o sub - # = #1 (= 10) - # = #2 (= 200 Spindle RPM) - - # = #3 (= -0.03 I: offset NEG:external) - # = #4 (= -0.5 Z: Zi driveline) - -; required items: - #

= #5 (= -8 P: Pitch, NEG for tpi) - # = #6 (= -1.0 Z: Zf final) -# = #7 (= 0.94) -# = #8 (= 0.84) - # = #9 (= 0.015 Initial RADIAL cut depth) - -; G76 optional items: - # = #10 (= 1.0 R: Depth degression) - # = #11 (= 29.5 Q: Compound slide angle) - # = #12 (= 0 H: No. of spring passes) - # = #13 (= 0.05 E: Taper dist =K typ) - # = #14 (= 2 L: End Taper 0,1,2,3) - -; other: - # = #15 (=3 Dir: Right=3 Left=4) - # = #16 (=8 G7/G8 Radius=8 Diam=7) - # = #17 (=0 0:quiet,1:verbose) - -o if [# LE #] - (print, g76diam: major <= minor ? - EXITING) - (debug, g76diam: major <= minor ? - EXITING) - (AXIS,notify, g76diam: major <= minor ? - EXITING) - m2 -o endif - - - # = # ; as-is for radius mode -o if [# EQ 8] ; RADIUS - # = [ABS[# - #]/2] -o if [# LE 0] ; EXTERNAL - # = [#/2 - #] -o else ; INTERNAL - # = [#/2 - #] -o endif - -o else ; DIAMETER - # = [ABS[# - #]] - # = [2 * #] ;workaround g76 behavior in diam mode -o if [# LE 0] ; EXTERNAL - # = [# - #] -o else ; INTERNAL - # = [# - #] -o endif -o endif - -o if [# GT 0] - (debug, g76diam: driveline xi=# i=#) - (debug, g76diam: k=# j=#) -o endif - -o call [#][#][#][#][#

][#][#][#][#][#][#][#][#][#][#][#][#] - -o endsub diff --git a/nc_files/ngcgui_lib/lathe/g76diam.png b/nc_files/ngcgui_lib/lathe/g76diam.png deleted file mode 100644 index 9b5bba577f586147844f80a517b15248058a8ccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7364 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 Iin5OQFQ=%Xwg3PC diff --git a/nc_files/ngcgui_lib/lathe/id.ngc b/nc_files/ngcgui_lib/lathe/id.ngc deleted file mode 100644 index 0abeca63142..00000000000 --- a/nc_files/ngcgui_lib/lathe/id.ngc +++ /dev/null @@ -1,56 +0,0 @@ -; Author: jthornton -(info: inside diameter -- lathe boring) -osub - # = #1 (=0.500 Starting Hole Diameter) - # = #2 (=0.625 Final Hole Diameter) - # = #3 (=0.010 Depth of Cut) - # = #4 (=0 Spring Cuts) - # = #5 (=0.100 Z Start of Cut) - # = #6 (=-0.600 Z End of Cut) - # = #7 (=80 Surface Speed) - # = #8 (=2 Feed IPM) -# = #9 (=1500 MAX RPM) - # = #10 (=8 Tool Number) - # = #11 (=8 Coolant 8=On 9=Off) - -T# M6 -; G43: toollength offset -; G7: diameter mode -; G96: constant surface speed -G43 G7 G96 D# S# - -; Turn the OD -M3 M# ; spindle cw, coolant on/off:w - -G0 X# Z# -# = # - -o100 while [# lt #] - -O101 if [# + # lt #] - # = [# + #] -O101 else - # = # -O101 endif - - X# - G1 Z# F# - G0 X[#-0.010] - Z# -o100 endwhile - -o102 while [# gt 0] - G1 X# - Z# - X[#-0.010] - G0 Z# - # = [# -1] -o102 endwhile - -G0 X[#-0.010] -M5 M9 ; stop spindle, all coolant off -Z# -G49 ; cancel tool length offset -G53 G0 X0 Z0 ; move in machine coordinates - -oendsub diff --git a/nc_files/ngcgui_lib/lathe/lathe_std.ngc b/nc_files/ngcgui_lib/lathe/lathe_std.ngc deleted file mode 100644 index ecb3e645fc0..00000000000 --- a/nc_files/ngcgui_lib/lathe/lathe_std.ngc +++ /dev/null @@ -1,12 +0,0 @@ -(not_a_subfile) - -g18 (xz plane) -g20 (inches) -g40 (cancel cutter radius compensation) -g49 (cancel tool lengthoffset) -g90 (absolute distance mode) -g94 (units/min feedrate) -g54 (Coordinate system 1 default) - -# = 0.001 -g64 p# (path control stop) diff --git a/nc_files/ngcgui_lib/lathe/od.ngc b/nc_files/ngcgui_lib/lathe/od.ngc deleted file mode 100644 index cfa6559d420..00000000000 --- a/nc_files/ngcgui_lib/lathe/od.ngc +++ /dev/null @@ -1,48 +0,0 @@ -; Author: jthornton - -(info: outside diameter - lathe turning) -o sub -# = #1 (=0.260 Material Diameter) - # = #2 (=0.180 Final Diameter) - # = #3 (=0.010 Depth of Cut) - # = #4 (=0.000 Final Cut) -# = #5 (=100 Surface Speed) - # = #6 (=2 Feed Rate) - # = #7 (=1500 Max Spindle RPM) - # = #8 (=-0.5 End of Cut) -# = #9 (=0.100 Start of Cut) - # = #10 (=6 Roughing Tool) - # = #11 (=6 Finishing Tool) - # = #12 (=8 Flood=8, Off=9) - -T# M6 -; G43: toolength offset -; G7: diameter mode -; G96: constant surface speed -G43 G7 G96 D# S# - -; Turn the OD -M3 M# ; spindle cw, coolant on/off -G0 X# Z# -#=# - -o100 while [# gt #] - -O101 if [#-# gt #] - #=[#-#] -O101 else - #=# -O101 endif - - X# - G1 Z# F# - G0 X[#+0.025] - Z# -o100 endwhile - -G0 X[#+0.025] -M5 M9 ; stop spindle, all coolant off -Z# -G49 ; cancel tool length offset compensation -G53 G0 X0 Z0 ; move in machine coordinates -o endsub diff --git a/nc_files/ngcgui_lib/lathe/taper-od.ngc b/nc_files/ngcgui_lib/lathe/taper-od.ngc deleted file mode 100644 index 8cec564d62c..00000000000 --- a/nc_files/ngcgui_lib/lathe/taper-od.ngc +++ /dev/null @@ -1,32 +0,0 @@ -; Author: jthornton - -(info: outside taper) -o sub -# = #1 (= 3000 Max RPM) -# = #2 (= 100 Surface Units/Min) -# = #3 (= 2 Feed Rate) -# = #4 (= 0.000 Z Start) -# = #5 (= -2 Z End) -# = #6 (= 1 Start Diameter) -# = #7 (= 10 Angle) -# = #8 (= 6 Tool Number) -# = #9 (= 8 Flood=8, Off=9) - -# = [# + [[# - #] * TAN[#]]] - -G7 G18 G40 G54 -G96 D# S# (Constance Surface Speed) -T# M6 -#=#5410 -G43 (load tool offset) -G42 (start cutter comp) -M3 M# -G0 X# Z[# + .1000] -G1 X# Z# F# -X# Z# -X[# + [# * 2] + 0.005] -M5 M9 -G0 Z# -G40 -G53 G0 X0.000 Z0.000 -o endsub diff --git a/nc_files/ngcgui_lib/mfiles/M110 b/nc_files/ngcgui_lib/mfiles/M110 deleted file mode 100755 index 41cbb28abd0..00000000000 --- a/nc_files/ngcgui_lib/mfiles/M110 +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# Clear axis info notifications -# use in gcode subroutines and/or connect to pushbutton - -# M1nn files must exist _before_ starting emc -# in the [DISPLAY]PROGRAM_PREFIX -# or in a dir specified by [RS274NGC]USER_M_PATH - -# the pin for axisui.notifications-clear-info is in emc-2.4pre -# using an earlier version will print error to stdout - -halcmd setp axisui.notifications-clear-info 1 -sleep .100 ;# requires a sleep that does <1 -halcmd setp axisui.notifications-clear-info 0 - -# if a M1nn command fails and its script exits with nonzero status, -# the gcode program exits. So always exit 0, and make sure -# the M1nn command prints a message in order to keep on going. -exit 0 diff --git a/nc_files/ngcgui_lib/ohex.ngc b/nc_files/ngcgui_lib/ohex.ngc deleted file mode 100644 index 1dd11db27fb..00000000000 --- a/nc_files/ngcgui_lib/ohex.ngc +++ /dev/null @@ -1,175 +0,0 @@ -(cw traverse: p1,p2,p3,p4) -(ccw traverse: p1,p4,p3,p2) - -(info: ohex: outside hexagon, cw/ccw dir, radius compensation) -o sub - -# = #1 (=1) -# = #2 (=2000) -# = #3 (=10) -#

= #4 (=2 2conv | 3climb) -# = #5 (distance across flats) -# = #6 -# = #7 -# = #8 (=0.2) -# = #9 (=0) -# = #10 (=1) -# = #11 (=0) -# = #12 (=0) -# = #13 (=0) -# = #14 (=0) -# = #15 (=1) -# = #16 (=0) -# = #17 (=0) - -o if [# EQ 0] - # = 1.0 - (debug, scale was 0, setting #) -o endif - -o call [#][#][#][#] -# = [#5410 +.001] - -o if [[# NE 2] AND [# NE 3]] - (debug, ohex: direction must be 2 or 3 - EXITING) - (print, ohex: direction must be 2 or 3 - EXITING) - (AXIS,notify, ohex: direction must be 2 or 3 - EXITING) - m2 -o endif - -# = [#/2] -#

= [#/cos[30]] - -# = [#

* cos[60]] -# = [#

* sin[60]] - -(p1 -> p2 -> is cw) -(apply scale,rotate, then offset to all input points) -# = #

-# = 0 -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = # -# = [0 - #] -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [0 - #] -# = [0 - #] -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [0 - #

] -# = 0 -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [0 -# ] -# = # -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = # -# = # -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [#/2] -# = [0 - #] -# = [0 - #] - -(get lengths and angles for connecting lines) -o call [#][#][#][#] -# = #<_line:phi> -o call [#][#][#][#] -# = #<_line:len> -# = #<_line:phi> -# = #<_line:cos> -# = #<_line:sin> -o call [#][#][#][#] -# = #<_line:phi> - -o call [#][#][#][#] -# = #<_line:len> -# = #<_line:phi> -# = #<_line:cos> -# = #<_line:sin> - -# = # (starting line for cw) -# = # (starting line for ccw) - - g40 (cutter radius compensation off) - f # - s # m3 (spindle cw) -o if [# GT 0] -o call [#] -o endif - g0 z# - # = # - # = 1 - -o while [# GT #] - # = [# + #] -o if [# LT #] - # = # -o endif -o if [# GT 100] - (debug, ohex: too many passes - EXITING) - (print, ohex: too many passes - EXITING) - (AXIS,notify, ohex: too many passes - EXITING) - m2 -o endif - -o if [#

EQ 3] -o if [# EQ 1] - # = [# + # * sin[#] - # * cos[#]] - # = [# - # * cos[#] - # * sin[#]] - # = [0 + # * cos[#]] (r vector) - # = [0 + # * sin[#]] - g0 x # y # (preentry 1) -/ g42 (cutter radius comp right of path) - g2 x # y # i # j # (arc entry) - # = # - # = # - g1 z # (plunge) -o endif - x # y # z# - x # y # - x # y # - x # y # - x # y # - x # y # - # = [# + 1] -o else (dir EQ 2 CW) -o if [# EQ 1] - # = [# - # * sin[#] - # * cos[#]] - # = [# + # * cos[#] - # * sin[#]] - # = [0 + # * cos[#]] (r vector) - # = [0 + # * sin[#]] - g0 x # y # -/ g41 (cutter radius comp left of path) - g3 x # y # i # j # (arc entry) - # = # - # = # - g1 z # (plunge) -o endif - x # y # z# - x # y # - x # y # - x # y # - x # y # - x # y # - # = [# + 1] -o endif -o endwhile - g1 x # y # - g0 z # - g40 -o endsub diff --git a/nc_files/ngcgui_lib/oquad.ngc b/nc_files/ngcgui_lib/oquad.ngc deleted file mode 100644 index 5db00f27888..00000000000 --- a/nc_files/ngcgui_lib/oquad.ngc +++ /dev/null @@ -1,136 +0,0 @@ -(outside traverse arbitrary quadrangle) -(computes direction for polygon cw or ccw and swaps if required) - -(info: oquad: outside quadrilateral, specify four x,y points) -o sub - -# = #1 (=1) -# = #2 (=1) -# = #3 (=2 2conv|3climb) -# = #4 (=10) -# = #5 -# = #6 -# = #7 (=0.2) -# = #8 (=0) -# = #9 -# = #10 -# = #11 -# = #12 -# = #13 -# = #14 -# = #15 -# = #16 -# = #17 (=1) -# = #18 (=0) -# = #19 (=0) -# = #20 (=0) -# = #21 (=0) -# = #22 (=1) -# = #23 (=0) -# = #24 (=0) - -o if [# EQ 0] - # = 1.0 - (debug, scale was 0, setting #) -o endif - -o call [#][#][#][#] -# = [#5410 + .001] - -o if [[# NE 2] AND [# NE 3]] - (debug, oquad: bogus direction # - EXITING) - (print, oquad: bogus direction # - EXITING) - (AXIS,notify, oquad: bogus direction - EXITING) - m2 -o endif - - (determine direction eg cw or ccw of points) -o call [4][#][#][#][#][#][#][#][#] - # = #<_dir:> - -o if [# NE #] - (swap 1234 --> 1432) - # = # - # = # - # = # - # = # - # = # - # = # -o endif - -(apply scale, rotate, then offset to all input points) -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> - -# = [#/2] -# = [0 - #] -# = [0 - #] - -(get lengths and angles for connecting lines) -o call [#][#][#][#] -# = #<_line:phi> - - g40 (cutter radius compensation off) - f # - s # m3 (spindle cw) -o if [# GT 0] -o call [#] -o endif - g0 z# - # = # - # = 1 - -o while [# GT #] - # = [# + #] -o if [# LT #] - # = # -o endif -o if [# GT 100] - (debug, oquad: too many passes - EXITING) - (print, oquad: too many passes - EXITING) - (AXIS,notify, oquad: too many passes - EXITING) - m2 -o endif - -o if [# EQ 1] -o if [# EQ 2] - # = [# - # * sin[#] - # * cos[#]] - # = [# + # * cos[#] - # * sin[#]] - # = [ # * cos[#]] (b to arc center) - # = [ # * sin[#]] - g0 x # y # -/ g41 (cutter radius comp left of path) - g3 x # y # i # j # (arc entry) -o else (dir EQ 3 CCW) - # = [# + # * sin[#] - # * cos[#]] - # = [# - # * cos[#] - # * sin[#]] - # = [ # * cos[#]] (b to arc center) - # = [ # * sin[#]] - g0 x # y # -/ g42 (cutter radius comp right of path) - g2 x # y # i # j # (arc entry) -o endif - # = # - # = # - g1 z # (plunge to start height todo:g0) -o endif - x # y # z# (ramp down to zcurrent) - x # y # - x # y # - x # y # - # = [# + 1] -o endwhile - g1 x # y # - g0 z # - g40 -o endsub diff --git a/nc_files/ngcgui_lib/qpex.ngc b/nc_files/ngcgui_lib/qpex.ngc deleted file mode 100644 index 12a9978f033..00000000000 --- a/nc_files/ngcgui_lib/qpex.ngc +++ /dev/null @@ -1,139 +0,0 @@ -(info: qpex: qpocket examples) - -o sub - - # = #1 (=1) - # = #2 (=1000) - # = #3 (=2 2conv|3climb) ; conventional=cw, climb=ccw - # = #4 (=10) - # = #5 (=1) - # = #6 (=.4) - # = #7 (=0.2) - # = #8 (=0) - # = #9 (=0.9) - # = #10 (=0.002) -# = #11 (=0) - # = #12 (=1) - # = #13 (=0) - # = #14 (=0) - -;shorthand required for call linelength: -# = # -#= # -# = # -# = # - -o call [#][#][#][#] - - # = -0.5 - # = -0.5 - # = +0.5 - # = -0.5 - # = +0.5 - # = +0.5 - # = -0.5 - # = +0.5 - # = 2 - # = 0 - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, square at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - - # = -0.5 - # = -1.0 - # = +0.5 - # = -1.0 - # = +0.5 - # = +1.0 - # = -0.5 - # = +1.0 - # = 2 - # = 2 - # = 30 - # = 1 -M110 ; clear axis notifications -(debug, rectangle at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - - # = -1.0 - # = -0.5 - # = +0.5 - # = -0.5 - # = +1.0 - # = +0.5 - # = -0.5 - # = +0.5 - # = 0 - # = 2 - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, parallelogram at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - - # = -1 - # = -1 - # = 0 - # = -.75 - # = 1 - # = -1 - # = 0 - # = 0 - # = -2 - # = 2 - # = 0 - # = 1 -(debug, kite at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - - # = 1 - # = -1 - # = 0 - # = 1 - # = -1 - # = -1 - # = 0 - # = -0.999 ;disallow colinear pts in 3-sided figure - # = -2 - # = 0 - # = 45 - # = 1 -M110 ; clear axis notifications -(debug, triangle at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - - # = -1 - # = -1 - # = 0 - # = -1.5 - # = 1 - # = -1 - # = 0 - # = 0 - # = -2 - # = 2 - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, kite at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - - # = -1 - # = -1 - # = 0 - # = -.75 - # = 1 - # = -1 - # = 0 - # = 0 - # = 0 - # = -1 - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, dart at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - -o endsub diff --git a/nc_files/ngcgui_lib/qpex_mm.ngc b/nc_files/ngcgui_lib/qpex_mm.ngc deleted file mode 100644 index b9adf2746d1..00000000000 --- a/nc_files/ngcgui_lib/qpex_mm.ngc +++ /dev/null @@ -1,136 +0,0 @@ -(info: qpex_mm: qpocket mm examples, use a 5mm tool) -; for testing qpocket with mm system -; adapted from qpex.ngc and scaled for mm -; too small tools and/or small sos may exceed outlinepasslimit - -o sub - - # = #1 (use a 5mm diam) - # = #2 (=1000) - # = #3 (=2 2conv|3climb) ; conventional=cw, climb=ccw - # = #4 (=250) - # = #5 (=10) - # = #6 (=5) - # = #7 (=1) - # = #8 (=0) - # = #9 (=0.9) - # = #10 (=0.002) -# = #11 (=0) - # = #12 (=1) - #= #13 (=0) - # = #14 (=0) - -;shorthand required for call linelength: -# = # -#= # -# = # -# = # - -o call [#][#][#][#] -# = #5410 -(debug, duh #) -o if [# GT 10] - (print, qpex_mm: tooldiam is too big # - EXITING) - (debug, qpex_mm: tooldiam is too big # - EXITING) - (AXIS,notify, qpex:_mm tooldiam is too big - EXITING) - m2 -o endif -o if [# LT .5] - (print, qpex_mm: tooldiam is too small # - EXITING) - (debug, qpex_mm: tooldiam is too small # - EXITING) - (AXIS,notify, qpex_mm: tooldiam is too small - EXITING) - m2 -o endif - - # = [-0.5 * 25.4] - # = [-0.5 * 25.4] - # = [+0.5 * 25.4] - # = [-0.5 * 25.4] - # = [+0.5 * 25.4] - # = [+0.5 * 25.4] - # = [-0.5 * 25.4] - # = [+0.5 * 25.4] - # = [2 * 25.4] - # = 0 - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, square at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - # = [-0.5 * 25.4] - # = [-1.0 * 25.4] - # = [+0.5 * 25.4] - # = [-1.0 * 25.4] - # = [+0.5 * 25.4] - # = [+1.0 * 25.4] - # = [-0.5 * 25.4] - # = [+1.0 * 25.4] - # = [2 * 25.4] - # = [2 * 25.4] - # = 30 - # = 1 -M110 ; clear axis notifications -(debug, rectangle at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - # = [-1.0 * 25.4] - # = [-0.5 * 25.4] - # = [+0.5 * 25.4] - # = [-0.5 * 25.4] - # = [+1.0 * 25.4] - # = [+0.5 * 25.4] - # = [-0.5 * 25.4] - # = [+0.5 * 25.4] - # = [0 * 25.4] - # = [2 * 25.4] - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, parallelogram at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - # = [1 * 25.4] - # = [-1 * 25.4] - # = [0 * 25.4] - # = [1 * 25.4] - # = [-1 * 25.4] - # = [-1 * 25.4] - # = [0 * 25.4] - # = [-0.999 * 25.4] ;disallow colinear pts in 3-sided figure - # = [-2 * 25.4] - # = 0 - # = 45 - # = 1 -M110 ; clear axis notifications -(debug, triangle at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - # = [1 * 25.4] - # = [-1 * 25.4] - # = [0 * 25.4] - # = [0 * 25.4] - # = [-1 * 25.4] - # = [-1 * 25.4] - # = [0 * 25.4] - # = [-1.5 * 25.4] - # = [-2 * 25.4] - # = [2 * 25.4] - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, kite at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - # = [1 * 25.4] - # = [-1 * 25.4] - # = [0 * 25.4] - # = [0 * 25.4] - # = [-1 * 25.4] - # = [-1 * 25.4] - # = [0 * 25.4] - # = [-.75 * 25.4] - # = [0 * 25.4] - # = [-1 * 25.4] - # = 0 - # = 1 -M110 ; clear axis notifications -(debug, dart at #,# rotate=# scale=#) -ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] - -o endsub diff --git a/nc_files/ngcgui_lib/qpocket.ngc b/nc_files/ngcgui_lib/qpocket.ngc deleted file mode 100644 index 01f9f1f66e3..00000000000 --- a/nc_files/ngcgui_lib/qpocket.ngc +++ /dev/null @@ -1,485 +0,0 @@ -(info: Quadrilateral pocketing using cutter radius compensation) - -; Use with care, test in simulator first. - -; Notes: -; Defaults herein are inch based -; Uses tool diameter from tool table for cutter radius compensation -; Supports conventional or climb milling -; Ramps to depth for each z increment -; Mirror about x axis for negative scale - -; too small diameter tools and/or small stepovers may exceed outlinepasslimit -; too large diameter tools may case gouging errors - -; Works for most rectangles and parallelograms but may require some care -; for specifying: -; point ordering (see entry move notes below) -; tool diameter (in tool table) -; stepover - -; Entry moves: -; Input point ordering Requested Direction Entry line -; -------------------- ------------------------ ------------------ -; 1234 == CW 2 == CW == Conventional point1 --> point2 -; 1234 == CW 3 == CCW == Climb point1 --> point4 - -; 1234 == CCW 2 == CW == Conventional point1 --> point4 -; 1234 == CCW 3 == CCW == Climb point1 --> point2 - -; To accommodate the widest range of tool diameters, order the point sequence -; (1234) so that the entry move is not directed towards an acute angle. - -; Scaling, rotations, and offsets are supported. -; Scaling is applied first. -; Rotation is then applied (with respect to origin). It is often simplest -; to specify the feature so that it is centered at the origin. -; Offsets are applied last. - -;---------------------------------------------------------------------- -; Copyright: 2012,2014 -; Author: Dewey Garrett -; -; This program is free software; you can redistribute it and/or modify -; it under the terms of the GNU General Public License as published by -; the Free Software Foundation; either version 2 of the License, or -; (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program; if not, write to the Free Software -; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -;---------------------------------------------------------------------- - -o sub - - # = #1 (=1) - # = #2 (=1000) - # = #3 (=2 2conv|3climb) ; conventional=cw, climb=ccw - # = #4 (=10) - # = #5 (=0.1) - # = #6 (=0.02) - # = #7 (=0.2) - # = #8 (=0) - - # = #9 - # = #10 - # = #11 - # = #12 - # = #13 - # = #14 - # = #15 - # = #16 - - # = #17 (=1) ; use neg value for mirroring - # = #18 (=0) ; angle in degrees - # = #19 (=0) - # = #20 (=0) - # = #21 (=0.5) ; tooldiameter fraction - # = #22 (=0.002) -# = #23 (=1) ; 1 == prompt user - # = #24 (=1) - # = #25 (=0) - # = #26 (=0) - - # = 100 ; outer loop -# = 100 ; inner loop - # = 0.01 ; small increment to tool diameter - # = [0 - #] - # = [0 - #] - -g40 ; make sure cutter radius compensation off at start -g64 p # ; path tolerance - -o if [# EQ 0] - (print, qpocket: zero scale # - EXITING) - (debug, qpocket: zero scale # - EXITING) - (AXIS,notify, qpocket: zero scale - EXITING) - m2 -o endif - -o if [# LT 0] - (print, qpocket: MIRROR about x axis for negative scale #) - (debug, qpocket: MIRROR about x axis for negative scale #) - (AXIS,notify, qpocket: MIRROR about x axis for negative scale) -o endif - # = [# * #] - # = [# * #] - # = [# * #] - # = [# * #] - - # = [ABS[#]] - # = [# * #] - # = [# * #] - # = [# * #] - # = [# * #] - - # = 1 - -o if [[# GT 1] OR [# LE 0]] - (print, qpocket: invalid stepover=# - EXITING) - (debug, qpocket: invalid stepover=# - EXITING) - (AXIS,notify, qpocket: invalid stepover - EXITING) - m2 -o endif - -o if [[# NE 2] AND [# NE 3]] - (print, qpocket:bad dir=# - EXITING) - (debug, qpocket:bad dir=# - EXITING) - (AXIS,notify, qpocket:bad dir - EXITING) - m2 -o endif - - ;compute direction eg 2==cw,3==ccw for points as ordered: -o call [4][#][#][#][#][#][#][#][#] - # = #<_dir:> ; direction of input points 2==cw - # = #<_dir:cx> ; centroid - # = #<_dir:cy> ; centroid - -o if [# LE 0] - ; failed to get direction -- pathological case - (print, failed to compute direction - EXITING) - (debug, failed to compute direction - EXITING) - (AXIS,notify, failed to compute direction - EXITING) - m2 -o endif - -; Get data for x,y points -# = 4 -o call [#] [#][#][#][#] - # = #<_pointsdata:ctr> -# = [#<_pointsdata:min> - #] -# = [#<_pointsdata:max> - #] -o call [#] [#][#][#][#] - # = #<_pointsdata:ctr> -# = [#<_pointsdata:min> - #] -# = [#<_pointsdata:max> - #] - -; Respecify input points about the x,y centroid -o if [# GT 0] - (debug, centroid: # #) -o endif - - # = [# - #] - # = [# - #] - # = [# - #] - # = [# - #] - - # = [# - #] - # = [# - #] - # = [# - #] - # = [# - #] - -; make order of points agree with input direction request -o if [# NE #] -o if [# GT 0] - (debug, reversing input point sequence: 1-4-3-2) -o endif - ; swap points ordering: 1234 --> 1432 - # = # - # = # - # = # - # = # - # = # - # = # -o endif - -; determine min size for first outline pass -o if [[#-#] GT [#-#]] - # = [ABS[#-#]/2] -o else - # = [ABS[#-#]/2] -o endif - -; load tool and establish scaling for first outline pass -o call [#][#][#][#] - # = #5410 - # = [#5410 + #] - # = [# / 2] - # = [# / #] - # = [# * #] - -o if [# GE #] - (print, qpocket: tooldiam is too big # - EXITING) - (debug, qpocket: tooldiam is too big # - EXITING) - (AXIS,notify, qpocket: tooldiam is too big - EXITING) - m2 -o endif - -; scale the centered feature and translate to original position -o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> -o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> -o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> -o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> -; xni,yni are the initial points at the smallest scaling - -; apply input rotation and offset -o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> -o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> -o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> -o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> - - ;get angles for connecting lines -o call [#][#][#][#] - # = #<_line:cos> - # = #<_line:sin> -o call [#][#][#][#] - # = #<_line:cos> - # = #<_line:sin> -o call [#][#][#][#] - # = #<_line:cos> - # = #<_line:sin> -o call [#][#][#][#] - # = #<_line:cos> - # = #<_line:sin> - - ;compute angles at line intersections: -o call [#][#][#][#][#][#] - # = #<_dot:ang> -o call [#][#][#][#][#][#] - # = #<_dot:ang> -o call [#][#][#][#][#][#] - # = #<_dot:ang> -o call [#][#][#][#][#][#] - # = #<_dot:ang> - - f # - s # m3 ;spindle cw -o if [# GT 0] -o call [#] ; optionally prompt user -o endif - g0 z# - - ; depth loop (outer) - # = # - # = 1 -o while [# GT #] - # = # - # = [# + #] -o if [# LT #] - # = # -o endif -o if [# GT #] - (print, qpocket: depthpasslimit exceeded # - EXITING) - (debug, qpocket: depthpasslimit exceeded # - EXITING) - (AXIS,notify, qpocket: depthpasslimit exceeded - EXITING) - m2 -o endif - -o if [# EQ 1] - ;entry point: - ;go along the 1-->2 line to enter at a point where tool will fit - - # = [ # / [TAN[#/2]]] - # = [# / #] - ;(print, entry 12 k=# elen12=# angle=#) - # = [# + # * #] - # = [# + # * #] - ;compute pre-entry points: -o if [# EQ 2] ; dir EQ 2 CW (conventional) - # = [# + # * # - # * #] - # = [# - # * # - # * #] - # = [# + # * #] - # = [# + # * #] - # = [ # * #] - # = [ # * #] -o else ;dir EQ 3 CCW (climb) - # = [# - # * # - # * #] - # = [# + # * # - # * #] - # = [# + # * #] - # = [# + # * #] - # = [ # * #] - # = [ # * #] -o endif - g0 x # y # ;preentry 1 - g0 x # y # ;preentry 2 -o if [# EQ 2] ; CW -/ g42 ;cutter radius comp right of path - g2 x # y # i # j # ;arc entry -o else ;dir EQ 3 CCW -/ g41 ;cutter radius comp left of path - g3 x # y # i # j # ;arc entry -o endif - g1 z # ;plunge to start height from zsafe -o else - ; depthpass GT 1: return to interior entry point - g1 x # y # z# ; use zlast -o endif - - ; outline loop (inner) - # = 1 - # = # - # = # -o do -o if [# GT #] - (print, qpocket: outlinepasslimit exceeded # - EXITING) - (debug, qpocket: outlinepasslimit exceeded # - EXITING) - (AXIS,notify,qpocket: outlinepasslimit exceeded - EXITING) - m2 -o endif - - # = [# mod 4] -o if [# EQ 1] - ; move through smallest interior outline - -o if [# EQ 1] - g1 x # y # z# ;ramp down to zcurrent - g1 x # y # - g1 x # y # - g1 x # y # - g1 x # y # -o endif -o if [# EQ 2] - g1 x # y # z# ;ramp down to zcurrent - g1 x # y # - g1 x # y # - g1 x # y # - g1 x # y # -o endif -o if [# EQ 3] - g1 x # y # z# ;ramp down to zcurrent - g1 x # y # - g1 x # y # - g1 x # y # - g1 x # y # -o endif -o if [# EQ 0] - g1 x # y # z# ;ramp down to zcurrent - g1 x # y # - g1 x # y # - g1 x # y # - g1 x # y # -o endif - - # = [# + 1] -o else - ; increasingly larger outlines - # = [# + # * #] - # = [# * #] - # = [# + 1] -o if [# GE #] - # = # - # = 0 ;terminate after this pass -o endif - ; scale the centered feature and translate to original position - o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> - o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> - o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> - o call [#][#][0][#][#][#] - # = #<_move:x> - # = #<_move:y> - - ; apply input rotation and offset - o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> - o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> - o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> - o call [#][#][#][1][#][#] - # = #<_move:x> - # = #<_move:y> - - ; move through scaled interior outline -o if [# EQ 0] - g1 x # y # z # - x # y # - x # y # - x # y # - x # y # -o endif -o if [# EQ 1] - g1 x # y # z # - x # y # - x # y # - x # y # - x # y # -o endif -o if [# EQ 2] - g1 x # y # z # - x # y # - x # y # - x # y # - x # y # -o endif -o if [# EQ 3] - g1 x # y # z # - x # y # - x # y # - x # y # - x # y # -o endif - -o endif - -o while [# GT 0] - # = [# + 1] -o endwhile - - ; after finishing at input scale, need to turn corner - ; and go along the next line enough to turn off compensation -o if [# EQ 0] ;end at pt 1 - # = # - # = # - # = [# / [TAN[#/2]]] - # = [# + # * #] - # = [# + # * #] -o endif -o if [# EQ 1] ;end at pt 2 - # = # - # = # - # = [# / [TAN[#/2]]] - # = [# + # * #] - # = [# + # * #] -o endif -o if [# EQ 2] ;end at pt 3 - # = # - # = # - # = [# / [TAN[#/2]]] - # = [# + # * #] - # = [# + # * #] -o endif -o if [# EQ 3] ;end at pt 4 - # = # - # = # - # = [# / [TAN[#/2]]] - # = [# + # * #] - # = [# + # * #] -o endif - - g1 x # y # - g1 x # y # - - g0 z # - g40 ;cutter radius compensation off - -o endsub diff --git a/nc_files/ngcgui_lib/qpocket.png b/nc_files/ngcgui_lib/qpocket.png deleted file mode 100644 index b450c13ce635e363702bcbaaa41f362a06088091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12102 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 diff --git a/nc_files/ngcgui_lib/rectangle_probe.ngc b/nc_files/ngcgui_lib/rectangle_probe.ngc deleted file mode 100644 index 6e2acc52126..00000000000 --- a/nc_files/ngcgui_lib/rectangle_probe.ngc +++ /dev/null @@ -1,87 +0,0 @@ -( Rectangular area probe ) -( adapted for ngcgui-compatibility from smartprobe.ngc written by Chris Radek ) -( This program repeatedly probes a regular XY grid and writes the ) -( probed locations to the file 'rectangle_probe_result.txt' in the same directory ) -( as the INI file ) - -( Requires a probe connected to motion.probe-input ) -( or use scripts/simulate_probe ) - -(info: Probe a rectangular area) -o sub - # = #1 (= -1.0) - # = #2 (= 1.0) - # = #3 (= 0.1) - # = #4 (= -1.0) - # = #5 (= 1.0) - # = #6 (= 0.1) - # = #7 (= 1.1) - # = #8 (= -0.1) -# = #9 (= 20) - # = #10 (= 20 in|mm 20|21) - # = #11 (= 1 Wait for Start) - -O1 if [ [# ne 20] and [# ne 21]] - (debug, in_or_mm invalid: # - EXITING) - (print, in_or_mm invalid: # - EXITING) - (AXIS,notify, rectangle_probe: in_or_mm invalid - EXITING) - m2 -O1 endif - -# = [fix [abs[# - #]/# + 1]] -# = [fix [abs[# - #]/# + 1]] - -G# -# = [# * #] - -(debug, Probing # * # = # points) -(LOGOPEN,rectangle_probe_result.txt) -(LOG,# xmin = # xmax = # xinterval = # xsteps = #) -(LOG,# ymin = # ymax = # yinterval = # ysteps = #) - -# = 0 -# = 0 -G0Z# -F# - -O2 while [# lt #] - # = 0 - G0 Y[#+#*#] -O3 while [# lt #] - # = 0 -O4 if [[#/2] - fix[#/2] eq 0] - # = [# + # * #] -O4 else - # = [# + # * [# - # - 1]] -O4 endif - # = 1 -O5 while [# NE 0] - G38.5 z# (probe until no contact away from work, no error) - # = #5070 - G38.3 x# (probe until contact, toward work, no error) - # = #5070 -O5 endwhile -O6 if [[# eq 1] and [[# eq 0] and [# eq 0]]] - (debug, S to Begin Rectangle Probe) - m0 (mandatory stop) - M110 (axisui.notifications-clear) -O6 endif - G38.2Z# (probe until contact, toward work, with error) - G0z# - # = #5061 - # = #5062 - # = #5063 - (LOG,X# Y# Z#) - # = [# + 1] -O3 endwhile - G0Z# - # = [# + 1] -O2 endwhile - -(LOG,# Finished: total points = #) -(LOGCLOSE) -(debug, Finished: see rectangle_probe_result.txt) - -G0Z# -G0X#Y# -o endsub diff --git a/nc_files/ngcgui_lib/simp.ngc b/nc_files/ngcgui_lib/simp.ngc deleted file mode 100644 index c1d276c6b1b..00000000000 --- a/nc_files/ngcgui_lib/simp.ngc +++ /dev/null @@ -1,11 +0,0 @@ -(info: simp -- simple subroutine example -- Ctrl-U to edit) -o sub - # = #1 (=.6 Radius A) ;Example parm with comment - # = #2 (=0.4) ;Example parm with no comment - # = #3 (=100) - (debug, feature: #<_feature:>) - (debug, remaining: #<_remaining_features:>) - g0x0y0z1 - g3 i# f# - g3 i[0-#] -o endsub diff --git a/nc_files/ngcgui_lib/simp.png b/nc_files/ngcgui_lib/simp.png deleted file mode 100644 index a820ff39512b824a37d05576e06fbc6c437c7a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3548 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 A#Q*>R diff --git a/nc_files/ngcgui_lib/slot.ngc b/nc_files/ngcgui_lib/slot.ngc deleted file mode 100644 index 9b0611b5df1..00000000000 --- a/nc_files/ngcgui_lib/slot.ngc +++ /dev/null @@ -1,93 +0,0 @@ -(adapted from useful-subroutines.ngc) -(Original file is Copyright 2006 Chris Radek and released under the GPL v2.) - -(info: slot: specify x1,y1 and x2,y2, applies radius compensation) -o sub - -# = #1 (=1) -# = #2 (=2000) -# = #3 (=10) -# = #4 -# = #5 -# = #6 (=0.5) -# = #7 (=0.005) -# = #8 (x1 center) -# = #9 (y1 center) -# = #10 (x2 center) -# = #11 (y2 center) -# = #12 -# = #13 (=1) -# = #14 (=0) -# = #15 (=0) -# = #16 (=0) -# = #17 (=0) -# = #18 (=1) -# = #19 (=0) -# = #20 (=0) - -o if [# EQ 0] - # = 1.0 - (debug, scale was 0, setting #) -o endif - -# = [# * #] - -o call [#][#][#][#] -# = [#5410 + .001] - -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -# = #<_move:len> -# = #<_move:phi> -o call [#][#][#][#][#][#] -# = #<_move:x> -# = #<_move:y> -# = #<_move:len> -# = #<_move:phi> - - -#=[#/2] (radius) -#=[[atan [#-#]/[#-#]] + 180] ("backward" direction) -#=[# + 90] ("right" side direction) -#=[# * [cos [#]]] -#=[# * [sin [#]]] -#=[# * [cos [#]]] -#=[# * [sin [#]]] - - - s # m3 -o if [# GT 0] -o call [#] -o endif - f# - - g0 z# - g0 x[#+#+#] y[#+#+#] - - g41 g1 x[#+#] y[#+#] - g1 z# - - (#=[#/2] rule-of-thumb) - #=# - - #=[#-#] (z) - (down toward the specified depth a bit at a time) - -o201 while [# GT [0-#]] - g1 x[#+#] y[#+#] z# - g3 x[#-#] y[#-#] r# - g1 x[#-#] y[#-#] - g3 x[#+#] y[#+#] r# - #=[#-#] -o201 endwhile - (down to the actual depth and one more cut) - g1 x[#+#] y[#+#] z[0-#] - g3 x[#-#] y[#-#] r# - g1 x[#-#] y[#-#] - g3 x[#+#] y[#+#] r# - g1 x[#+#] y[#+#] - - g0 z# - g40 -o endsub diff --git a/nc_files/ngcgui_lib/slot.png b/nc_files/ngcgui_lib/slot.png deleted file mode 100644 index 8ab6f736b75d8e42c0cee90c17902a1af1fdc5ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5560 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 + result but note:) -(if traversing 1->2->3, a cw cross product ==> a ccw traverse) - -(return:) -( _cross:z magnitude) -( _cross:dir 1 for ccw per convention) - -o sub -(not_a_subfile) -# = #1 -# = #2 -# = #3 -# = #4 -# = #5 -# = #6 - -#<_cross:z> = [[#-#]*[#-#]-[#-#]*[#-#]] - - #<_cross:dir> = 0 (default: 0) -o if [#<_cross:z> GT 0] - #<_cross:dir> = 1 (ccw) -o endif -o if [#<_cross:z> LT 0] - #<_cross:dir> = -1 (cw) -o endif - -o call [#][#][#][#] - # = #<_line:len> -o call [#][#][#][#] - # = #<_line:len> - -(print cross: # # # # # # # #) -(print cross: # # #) -(print cross: # # #) -(print cross: z=#<_cross:z> dir=#<_cross:dir>) -(print ) -(debug cross: z=#<_cross:z> dir=#<_cross:dir>) - -o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/dir.ngc b/nc_files/ngcgui_lib/utilitysubs/dir.ngc deleted file mode 100644 index 5b9366aa8b2..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/dir.ngc +++ /dev/null @@ -1,129 +0,0 @@ -(info:dir determine direction for polygon described by ordered points) -(minimum 3 points, up to 6 points) - -(return: #<_dir:> == 2 for CW, 3 for CCW, -1 for undetermined) -(return: #<_dir:area>) -(return: #<_dir:cx>, #<_dir:cy> centroid) - -o sub -# = #1 (=4 N neg:verbose) -# = #2 -# = #3 -# = #4 -# = #5 -# = #6 -# = #7 -# = #8 (=0) -# = #9 (=0) -# = #10 (=0) -# = #11 (=0) -# = #12 (=0) -# = #13 (=0) - - # = 0 -o if [# LT 0] - # = [ABS[#]] - # = 1 -o endif - -o if [[# GE 7] or [# LE 2]] - (print, dir: problem bad n=#) - (debug, dir: problem bad n=#) - #<_dir:> = -1 ;undetermined with message, caller must handle -o endif - - # = 0 - # = 0 - # = 0 - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - -o if [# eq 3] - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] -o endif -o if [# eq 4] - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] -o endif -o if [# eq 5] - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] -o endif -o if [# eq 6] - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] - - # = [# * # - # * #] - # = [# + #] - # = [# + [# + #] * #] - # = [# + [# + #] * #] -o endif - - #<_dir:cx> = [# / # / 3] ; signed area reqd here - #<_dir:cy> = [# / # / 3] ; signed area reqd here - #<_dir:area> = [ABS[#]/2] ; return unsigned area - -o if [# GT 0] - #<_dir:> = 3 (ccw) -o else -o if [# LT 0] - #<_dir:> = 2 (cw) -o else - #<_dir:> = -1 ;undetermined -o endif -o endif - -o if [# GT 0] -o if [#<_dir:> eq 2] - (debug, dir: CW #<_dir:> area=#<_dir:area> cx=#<_dir:cx> cy=#<_dir:cy>) -o else - (debug, dir: CCW #<_dir:> area=#<_dir:area> cx=#<_dir:cx> cy=#<_dir:cy>) -o endif -o endif - -o endsub -; ref: many sources for polygons on the web, for example: -; http://paulbourke.net/geometry/polyarea/ - diff --git a/nc_files/ngcgui_lib/utilitysubs/dot.ngc b/nc_files/ngcgui_lib/utilitysubs/dot.ngc deleted file mode 100644 index b7eda133e86..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/dot.ngc +++ /dev/null @@ -1,45 +0,0 @@ -(dot product for two vectors 1-2 and 3-2 having a common vertex 2) -(note u=[Ucos[a],Usin[a]], v=[V[cos[b],Vsin[b] then:) -( u dot v = U*Vcos[a-b] phi := a-b ) -( u dot v > 0 ==> acute phi = [-90, 90] ) -( u dot v < 0 ==> obtuse phi = [ 90,270] ) -( u dot v = 0 ==> right phi = 90 ) - -(return:) -( _dot:dot scalar product) -(_dot:ang [ 0,180] angle between vectors -- for cw,ccw determination) -(_dot:phi [-180,180] actual angle between vectors) -(_dot:acu [ 0, 90] acute angle between the extended vectors) - -o sub -(not_a_subfile) -# = #1 -# = #2 -# = #3 -# = #4 -# = #5 -# = #6 - -# = [#-#] -# = [#-#] -# = [#-#] -# = [#-#] - -#<_dot:dot> = [#*# + #*#] -# = SQRT[[#*#+#*#]*[#*#+#*#]] -#<_dot:ang> = ACOS[#<_dot:dot>/#] - - #<_dot:phi> = #<_dot:ang> -o if [#<_dot:dot> LT 0] - #<_dot:phi> = [ 0 - #<_dot:ang>] -o endif - - #<_dot:acu> = #<_dot:phi> -o if [#<_dot:ang> GT 90] - #<_dot:acu> = [180 - #<_dot:ang>] -o endif - -(print dot: # # # # # # magp=# ) -(print dot: dot=#<_dot:dot> ang=#<_dot:ang> phi=#<_dot:phi> acu=#<_dot:acu>) - -o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/entry.ngc b/nc_files/ngcgui_lib/utilitysubs/entry.ngc deleted file mode 100644 index 36d17199fa6..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/entry.ngc +++ /dev/null @@ -1,84 +0,0 @@ -(compute a quarter-arc preentry and radius vector to a point x,y) -(return: _entry:prex,prey == preentry point) -( _entry:vx,vy == vector from start x,y to center xctr,yctr) - -(Usage: for entry to a point on an arc of a circle:) -( o call [inside][dir][tooldiam][x][y][xctr][yctr]) -( then preentry point is: prex = #<_entry:prex>) -( prey = #<_entry:prey>) -( and the entry arc is: g2|3 x # y # i #<_entry:vx> j #<_entry:vy>) - - -o sub -(not_a_subfile) -# = #1 (1:in, 0:out) -# = #2 (2:cw, 3:ccw) -# = #3 -# = #4 -# = #5 -# = #6 -# = #7 - -# = [# - #] -# = [# - #] - -o if [[# NE 0] AND [# NE 1]] - (debug, entry: bad inside specifier # -- EXITING) - (print, entry: bad inside specifier # -- EXITING) - (AXIS,notify, entry: bad inside specifier -- EXITING) - m2 -o endif -o if [[# NE 2] AND [# NE 3]] - (debug, entry: bad dir specifier # -- EXITING) - (print, entry: bad dir specifier # -- EXITING) - (AXIS,notify, entry: bad dir specifier # -- EXITING) - m2 -o endif - - # = [# / 2.0] - # = 0.000001 - -o if [ABS[#] GT #] - # = ATAN[#]/[#] -o else -o if [# GE 0] - # = 90 -o else - # = -90 -o endif -o endif - - (compute pre-entry px,py for 1/4 circle with radius rt) - (and vector from start x,y to center of circle) -o if [# EQ 1] -o if [# EQ 2] (cw) - # = [# - #*sin[#] - #*cos[#]] - # = [# + #*cos[#] - #*sin[#]] - # = [0 + #*sin[#]] - # = [0 - #*cos[#]] -o else (ccw) - # = [# + #*sin[#] - #*cos[#]] - # = [# - #*cos[#] - #*sin[#]] - # = [0 - #*sin[#]] - # = [0 + #*cos[#]] -o endif -o else -o if [# EQ 2] (cw) - # = [# - #*sin[#] + #*cos[#]] - # = [# + #*cos[#] + #*sin[#]] - # = [0 + #*sin[#]] - # = [0 - #*cos[#]] -o else (ccw) - # = [# + #*sin[#] + #*cos[#]] - # = [# - #*cos[#] + #*sin[#]] - # = [0 - #*sin[#]] - # = [0 + #*cos[#]] -o endif -o endif - -#<_entry:prex> = [# + #] -#<_entry:prey> = [# + #] -#<_entry:vx> = # -#<_entry:vy> = # - -o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/g59preview.ngc b/nc_files/ngcgui_lib/utilitysubs/g59preview.ngc deleted file mode 100644 index b9ff836e936..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/g59preview.ngc +++ /dev/null @@ -1,14 +0,0 @@ -(not_a_subfile) -g17 (xy plane) -g20 (inches) -g40 (cancel cutter radius compensation) -g49 (cancel tool lengthoffset) -g90 (absolute distance mode) -g94 (units/min feedrate) -g61 (exact stop) - -#<_tol> = 0.001 - -g64 p#<_tol> (path control) - -g59 diff --git a/nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc b/nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc deleted file mode 100644 index 622ccdd1019..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc +++ /dev/null @@ -1,29 +0,0 @@ -(Adapted from Program to mill a flowsnake.ngc by K. Lerman) -o sub -(not_a_subfile) - (one level of gosper recursive algorithm) - # = #1 - # = #2 - # = #3 - # = #4 - # = #5 - # = #6 - - # = # - -o if [# EQ 0] - g1 f # x # y # -o else - # = [[# * 2 + #]/3] - # = [[# * 2 + #]/3] - # = [[# + #]/2 + [# - #]/[SQRT[12.0]]] - # = [[# + #]/2 - [# - #]/[SQRT[12.0]]] - # = [[# + 2 * #]/3] - # = [[# + 2 * #]/3] - o call [#-1][#][#][#] [#] [#] - o call [#-1][#] [#] [#] [#] [#] - o call [#-1][#] [#] [#] [#] [#] - o call [#-1][#] [#] [#][#][#] -o endif - -o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/in_std.ngc b/nc_files/ngcgui_lib/utilitysubs/in_std.ngc deleted file mode 100644 index 87555aff91e..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/in_std.ngc +++ /dev/null @@ -1,12 +0,0 @@ -(not_a_subfile) - -g17 (xy plane) -g20 (inches) -g40 (cancel cutter radius compensation) -g49 (cancel tool lengthoffset) -g90 (absolute distance mode) -g94 (units/min feedrate) -g54 (Coordinate system 1 default) - -# = 0.001 -g64 p# (path control stop) diff --git a/nc_files/ngcgui_lib/utilitysubs/line.ngc b/nc_files/ngcgui_lib/utilitysubs/line.ngc deleted file mode 100644 index b7dcbf5fb90..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/line.ngc +++ /dev/null @@ -1,31 +0,0 @@ -(return: _line:len,phi,cos,sin) - -o sub -(not_a_subfile) -# = #1 -# = #2 -# = #3 -# = #4 -(print line: # # # #) - -# = 0.000001 -# = [# - #] -# = [# - #] -#<_line:len> = SQRT[#*# + #*#] - -o if [ABS[#] GT #] - #<_line:phi> = ATAN[#]/[#] -o else -o if [# GE 0] - #<_line:phi> = 90 -o else - #<_line:phi> = -90 -o endif -o endif - -#<_line:cos> = COS[#<_line:phi>] -#<_line:sin> = SIN[#<_line:phi>] - -(print line: #<_line:len> #<_line:phi> #<_line:cos> #<_line:sin>) - -o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/loadtool.ngc b/nc_files/ngcgui_lib/utilitysubs/loadtool.ngc deleted file mode 100644 index 445339ba98e..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/loadtool.ngc +++ /dev/null @@ -1,51 +0,0 @@ -; loadtool: with options for G43 and H - -o sub -(not_a_subfile) - # = #1 - # = #2 -# = #3 - # = #4 - -o if [# EQ 0] - ;Uncomment next 4 lines to require a nonzero toolno - ;(print, loadtool: EXIT: toolno required not 0) - ;(debug, loadtool: EXIT: toolno required not 0) - ;(AXIS,notify, loadtool: EXIT: toolno required not 0) - ;m2 (quit) - (print, loadtool: Warning: toolno is 0) - (debug, loadtool: Warning: toolno is 0) -o endif - -o if [# NE 0] -o if [# EQ 0] -o if [# NE 0] - (debug, loadtool:G43 noH) -o endif - T# M6 G43 -o else -o if [# NE 0] - (debug, loadtool:G43 H#) -o endif - T# M6 G43 H# -o endif -o else -o if [# NE 0] - (debug, loadtool:no G43) -o endif - T# M6 -o endif - -o endsub -;G43 without an H word uses the currently loaded tool from the last Tn M6. -;G43 Hn uses the offset for tool n. -;Note -; G43 H0 is a little special. Its behavior is different on random tool -; changer machines and nonrandom tool changer machines -; -; On nonrandom tool changer machines, G43 H0 applies the TLO of the -; tool currently in the spindle, or a TLO of 0 if no tool is in the spindle. -; -; On random tool changer machines, G43 H0 applies the TLO of the tool T0 -; defined in the tool table file (or causes an error if T0 is not defined -; in the tool table). diff --git a/nc_files/ngcgui_lib/utilitysubs/mm_std.ngc b/nc_files/ngcgui_lib/utilitysubs/mm_std.ngc deleted file mode 100644 index f15d7937a1d..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/mm_std.ngc +++ /dev/null @@ -1,11 +0,0 @@ -(not_a_subfile) -g17 (xy plane) -g21 (mm) -g40 (cancel cutter radius compensation) -g49 (cancel tool lengthoffset) -g90 (absolute distance mode) -g94 (units/min feedrate) -g54 (Coordinate system 1 default) - -# = 0.001 -g64 p# (path control stop) diff --git a/nc_files/ngcgui_lib/utilitysubs/move.ngc b/nc_files/ngcgui_lib/utilitysubs/move.ngc deleted file mode 100644 index 3e09d51ba9a..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/move.ngc +++ /dev/null @@ -1,34 +0,0 @@ -(return: _move:x,y,len,phi,cos,sin) -o sub -(not_a_subfile) -# = #1 -# = #2 -# = #3 (=0 degrees) -# = #4 (=1) -# = #5 (=0 after rotation) -# = #6 (=0 after rotation) - -o if [0] - (for offsetting before rotation) - # = [# + #] - # = [# + #] -o endif - - o call [0][0][#][#] - # = #<_line:len> - # = #<_line:phi> - # = #<_line:cos> - # = #<_line:sin> - - # = [# + # * # * COS[# + #]] - # = [# + # * # * SIN[# + #]] - -o call [0][0][#][#] - #<_move:len> = #<_line:len> - #<_move:phi> = #<_line:phi> - #<_move:cos> = #<_line:cos> - #<_move:sin> = #<_line:sin> - #<_move:x> = # - #<_move:y> = # - -o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc b/nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc deleted file mode 100644 index 7d016ef6f1b..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc +++ /dev/null @@ -1,53 +0,0 @@ -(info: compute ctr, min, max, avg) -o sub -# = #1 (=4) - # = #2 - # = #3 - # = #4 - # = #5 - # = #6 (=0) - # = #7 (=0) - # = #8 (=0) - # = #9 (=0) - -# = 8 -o if [# GT #] - (debug, pointsdata: howmany too big: # - EXITING) - (debug, pointsdata: howmany too big: # - EXITING) - (AXIS,notify, pointsdata: howmany too big - EXITING) - m2 -o endif -o if [# LT 2] - (debug, pointsdata: howmany too small: # - EXITING) - (debug, pointsdata: howmany too small: # - EXITING) - (AXIS,notify, pointsdata: howmany too small - EXITING) - m2 -o endif - - # = 2 - # = 0 -#<_pointsdata:min> = +99999999 -#<_pointsdata:max> = -99999999 - -o while [# LE [1 + #]] - # = ## - ;(debug, val=#) -o if [# GT #<_pointsdata:max>] - #<_pointsdata:max> = # -o endif -o if [# LT #<_pointsdata:min>] - #<_pointsdata:min> = # -o endif - # = [# + #] - # = [# +1] -o endwhile - -#<_pointsdata:ctr> = [[#<_pointsdata:max>+#<_pointsdata:min>]/2] -#<_pointsdata:avg> = [#/#] - -;(debug, min=#<_pointsdata:min>) -;(debug, ctr=#<_pointsdata:ctr>) -;(debug, max=#<_pointsdata:max>) -;(debug, avg=#<_pointsdata:avg>) - -o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/spin.ngc b/nc_files/ngcgui_lib/utilitysubs/spin.ngc deleted file mode 100644 index 55d4f86ab8d..00000000000 --- a/nc_files/ngcgui_lib/utilitysubs/spin.ngc +++ /dev/null @@ -1,20 +0,0 @@ -;dng-- designed with the axis gui in mind -; but not very intuitive with touchy -; so changed message and remove mandatory stop -; for touchy testing - -;helper routine to prompt setting of spindle speed -;use after giving operator message for example -; 1) prompt user to continue -; 2) M110 clears axis notifications (requires emc2.4) - -o sub -(not_a_subfile) - # = #1 -o if [#<_feature:> LT 1] - ;(debug, S to continue: Spindle rpm=#) - ;m0 (mandatory stop) - (debug, Spindle rpm = #) - M110 (axisui.notifications-clear) -o endif -o endsub diff --git a/nc_files/ngcgui_lib/xyz.ngc b/nc_files/ngcgui_lib/xyz.ngc deleted file mode 100644 index 41e5231c904..00000000000 --- a/nc_files/ngcgui_lib/xyz.ngc +++ /dev/null @@ -1,85 +0,0 @@ -(info: xyz -- x,y,z axis exerciser, type 0: line, type 1: box) -o sub -(for testing, tuning servo, etc) -(for single axis, set axes for zero travel) -(type 0: simple motion between two points) -(type 1: series of moves one,two,or three axes at a time) - - # = #1 (=60 feedrate) - # = #2 (=1 type: 0|1) - # = #3 (=-0.5 x distance) - # = #4 (=+0.5 x distance) - # = #5 (=+2.0 y distance) - # = #6 (=+3.5 y distance) - # = #7 (=+1.0 z distance) - # = #8 (=+2.0 z distance) - # = #9 (=5 iterations) - - # = 0 - # = # - # = # - # = # - # = # - # = # - # = # - - (debug, feature: #<_feature:>) - (debug, remaining: #<_remaining_features:>) - - f # - g1 x # y # z # - -o while [# LT #] - -o if [# EQ 0] - x # y # z # - x # y # z # -o endif - -o if [# EQ 1] - (gray) - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - - (gray) - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - - (gray) - x # y # z # - x # y # z # - x # y # z # - x # y # z # - - x # y # z # - x # y # z # - x # y # z # - x # y # z # - - (binary) - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # - x # y # z # -o endif - - # = [# + 1] -o endwhile - -o endsub diff --git a/nc_files/ngcgui_lib/xyz.png b/nc_files/ngcgui_lib/xyz.png deleted file mode 100644 index fe3e297313accc39c86cb1c0b7bd6128ed5f2925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10991 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

Kp-E&V)0wV3S}|VCr;r;5?Ks;Rbtx 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 z z%uDOQaPSABTJe*fn(zU05_w z!{A7C+Iq-l+DO$1&c`-|{y*g$V8~96uALSgH=!rSKPO4fk0T&SV?VyxZjMyNVN<{c zLH#v)egc$#2w?ZeZb4WWf?VjmH2t$Kwl9LNR^$nv9kpBY9YU;pGAnUWN-N48o zfcv=N!Il^Qbig#{wA79Ce-T3HFClD&^=Y95WIkS-yfw)dYj~Zf@5SK1*EySY8ezmo zM8n_eOkWvL#5|>KXz#_S-7$HotT*s4yuC7U5JsRm-L!?N(A^-5%pU3*_BpWoPk`W$ zVe|Bw5HiwQ9e+j|zFFFj;(7~GF+wImnVj0MLNCdF3-glqAv^)B$fs$Ku2WOkA2HHJ z^SBK+4zZH60wvqn{Zrb1mGqmfIP-n*jZYCY;1as3(`Un*GAi#<@FsY-V4aa~AcDH=}_Mb?LZ1sL1bB zyl`3kFJ;(eXau`VPMLr@t-v~LE-VWEyom1PU<%2IAhLQk(Se=fqH&0QN)JfK#9{+H4pH?dZd*ilqkk@$5X2y z-oXbSWwLV#U^c)v+fGW5(4bmmHB#WE87(@Vd+)rqs`gUwCPrI8la&d*GVm^IYUqOq zT945zr;V-fd{JfN{`bLOBjn3jlKItU3rL?j!__;4oOU=*K}l;3(@aWk2K5R^_T29P z0SKm3J9O=;Uu;x;bnR5-eTDBJ*Sk5PK5x>;Uz`{g=LwJE7-*PLR?{NwB7~Xs0mYXs z)*YksUP4pmaha|qkf{fg0(IrJetcSJ4%tE!Y}?Z05f!XgyL4~67im8`>2hL1+47PC zrNp5GQXT`C00nNM#>cTtc2L{9F$pkeo+i(ab>y%4e0Wmh6oC39$1{d_sT;#S$4*PB zzRi94TX$=xvG|@*8Q@h_og{7dSxddll!y6lf^H3i~6G?_2|K;|tDRlR1HE$lZ ztbxvPbAeEQRWqhrQN>U~;k}_gwIUDMwsE-26j_)ih(iDBX{Z)2>?$~Jd8qRWYAo5@ zmnb9r8v}OkJP((3#Fug;X{I|?xX~^kYRk98EFSHpKc8(f|DxpOW*GAO6b3Ga^ApHf z?KA0LW6eUmwzuD+FB{AxhzNQ1YlZ!AMoENxO00rF35K@Mghz+wO~q{7g!Nn9>=kf4 zl01J~&3u-H!-ctVINaprnQDYoj%x=N5s0t>%@{q^F)eQ+ck2IQ)j1*2AXa6dX3Ek0$=0`>h!>aAkd7U4vUEm(R8|NHxz4fu$fHw># zzgnSm1$D{rYYzFI7VFC$bAxq|FV^>d%org%VVu;d&@A(q(&*9*=|sDKM*IHUA6Dn} zS>%@*B%3?-{)a{HLuY>WILfXi9EX#dl^e5Nu3MV-T*-mbq?4WL{>iOh(<6u_?-+N< z5T!Cjba~ZkPrX`c8H40LVY|C+lR5Hr|LhDQ@xx=z-f##>ghW&y`i_!w;q+^MzlT42|xW~?VoKgv?mRS8kxhFaai?_k(nT1cfK+9 z;~%mtX;^3Y#4P+dn&fi+o5hb$fAGb`D@5p=U)E~#@a)R99sK7NKteUmIg^B2^J8^V zdNZ2k%fIVy{n?L?E0Md&&E}UWzeR9*nfD?;tDTk`0+@z{!5A)DcORcb|68xWVz9=* z6b6Q(xyX+zI~#um^j-V3jau4!ldr6IAD3 zOa%Xyhs5>*ow%rw96g)D4HdkffLAF0CHo&D(fWtQ7cYLpIQ|`0{11%t-(ffI%`UtV z->qyTJUBi=-ugDv{C3srPaQq|JyP$TmOZSeK7!3U{LO9z#UIOm#pd4=;=JI+UpB2Ht)Z&cG4yPmuAk*{xHS&f2(@`+ix{I{!__Uf2;Q8a>CaV zaV^I|KcYywGF2Up-M34>W_J6LhW-OXV!}8}umoc|G29E5u8iE=6)~H=>I>z@$@YaN zSvt!o8jq};rTv5KXvK`>-C5@G#g{)=C`7QfqrpJoG44Bv-U_2HF zx_SgC*{{A{LfxxPIacXK7x&1iZ@ge_27_&k&S-w4?E8(9$l!NWe?&Z+-+dY}vWHEwW0%LFL|JN^8c0;~Ww*vj z`g+yfgx8FQUmcZky+6DhGY<5vjU{e{4Qp^(N|+d}JeT+0Hdc(JJ>)`cN0NT#CCq2I zZI3tRVax$wCurokm1d@f=0Uv|?Al1swU^HxzkJqQb2PCnntCz?;=MHa@%_uvi|~sd z=gUkmM2SAt1{q2<>XR{sY6=3dR;BmM)!=cD)jH;=wQ8Vv%|Q!Cx_>Xn{1=iYFOS2^ zpG7FmcA*|k7CKuJ%T~9y3fQu-a(DSOuFSgUAkt5xz~sEbc}MmJ$;>56Robyb?G*YM zAWj}_dQw-#9T1J9j&Oc%-^0o9Seze_>RerFb=U`v zx8_1=L9CshR|)ORjDb?95^d*aA>A0-D4}So7gODEfl-kvyyQ!UIXIX;P5Nl7GzELtU?v&t?+`t?dlfp55WhdbejJa~%`fR(}!y)TrxQQZb z&6Slm35Ae6!#frlpk923ZYm=gClS5O-m4$vl+ zUZ>5!9@w(2Jx1w3jVQ>;a^OwiaB$##IZy3TW0E>>PFlNqB`?Q1L#L^Y5d*Glmv}^bwKici z2t?P_HhskPkt6BmW{zErnjxRf(oS6}>E8%Sesc z8ogpDqI%6$(Y8jbSmF^6*Iw!saLdSsuK$I?mp~@PhN&904#M=YHBMH*9f8hQU;VXc zhyqkLpa)5PvK2)d)ak&b=an83R1HAMEpp<_(Jc)L$xs2){9qJl@^O3k9;8o2^2|^B z%WGB(0&3lcc*!Du1bw8+?kn0$d`PzF5PiBo)iRA_`e$JTC>f?-ia(%}AOvt#;Eb^U z1oSz_e*!o}+z{T^$9hH&HJ=e5OIVw0Scy99`&+aNQhj{3iczZtso2Vhe7bY+PF9aZ zuqY&4S=@8(@y*x#^X-7e%R77dh_bm}Y!n<8*J0L~1HqZ*0tkV@) zyu9i+C`r~Qkh@}6hKDDA0@2vhMcSvUbmKx+c>Ld4#Bo4W2x9x=57FGM(Vp3$RN?9E z#3Vn&f(c(BAtKQ6?``R|r0Q|KS>rJ&DjyAmz!kZek)Aqe*fu=&d`gNAi`Ahn~)uy*=ExJKR_gN2J71 zX9f7NT02}V%8g50`x>nVH0@uEeeQ{WxG;2q3aLY*BRUHb^Wkk}%P~5cnpm_7B zTOLUvdXnJipt^&L5@I~*W&^bDv$D01>a1pSmDonkTV>S`uPZXur~5pw-Lo9#eP>eGd6D(vi9S|d9duTDF9m;rX^?@ z*NtcARgR)-n)KxmDCj?|7~Hb0t(?5W*6!D(;g+6CzU;5F_=R;Iti<^$>#UA^Y};Ga zA^M6jFG5sb287Qt>P7#Ijavj!DXjGqXq+Ns^SM;&_ooh3Q<3i*cckE82g(&a;twf} zy4J^d3sC#!Z~F3Skpzm7t~Bsa^F|mINGE}I3A0c`C__bnti*0Wi$n-O-zmXWr26k} zsROK(?oj;xs{^&I1JDrIt**eY%jL}*9368NcvLokJA@Q z0%}j;JZeRG6B!wff^L0VlN8xl6aJBLI6PS&Q^95_V=#4b_*q=`&cWKtH0J;Gi^1W5 zer34Xj2ywk<0^ZjWL#AB4X3}r0KRSc5Krl6M0$mXQ*hUF8e54NTebJsdlNJ$+j(E- zfD{U1=+VNTJ({{&4fADgG4xB98Y)Q}A^VN<3m9M%IXJ`?LNi|D8SDneC68$y`Q;pV zQzO{c-SN8sr)xgnHQFVd#$GW-8k3ko9%O8?Qn`=gLCp2}`DUWg(hBSnfO9Pzm zF;>%#!WuA?+uB2B${GkqwSJ#*VUw>~$B_ca*4x;5XV&}qp&<@Iur}Anj=3pnV@*C9 zi$Q{^ByvNc9k7t|CO2X#eUyLT(W{u=S4hY}1h;5UAt|_DT_wbEqH&h*ic)sKKG*{} z$ek^d@aV>v&CxdxlM-`koNqsYQk^h$MQN2NCo?_XwxYv2D_F# z1XnwdMT~tD%sWq_#8>3T9ml_SNkU)fJA{<4q&-a$MTvqi3foSuBo+^pZPWs?BcS7D zYDXK=2hNG+7xHo;MWhUorCbT=M`GSQYANgozWv_<+!0XaOd`g&(}l%hqskbzu_n4H z>{$w22Wfp(16Xeqt|M!VPX<5o!8Xxw*2H3@TBHh2%nxpTh@z9Ixb?!>y>W?N^dS zTs^G4TF=J{Jckhim1f$|eY1GWNg3Oh=6=muRCzgpPP(9T>E z@q+1Y$#yh-mKrs;fLbb{qC@5^#6gY6sSw}Cv2Bxj89&?3eaer3SXFuipPWiXjm@o6>S}*)O;J1(K_a$ZHL1 z71_9f80$!N&a08ocUKBLmfN~}xyl>L8b9;8J$+zxx@4iB~pN? zc-W0rL>bNI5TDHFD)F#78=Nb)W@^P8zdlI2t8hOS8;)xrQ}wV&_)F4hEANPmiOG#| z@t|49BR9i)Zm#Hb4fY*eMDK`i#Fq6GWvcVGVmC1U;Qajyh=bHe^dehwimx3lA%#{^=ZnY@ML4- zMsLm@cZ%x!=X33nAFRVt2iZ-NeDB`W71hjatM$+k zU1!NH+Y3N+O5l$#FvXaitu>y;Z;Bq5L?ID|LPh-2H-(9U;ZuMQw}RRz!-S=)q@RD_D9HdQcy`ccXz@E?9Hq_BZ1Aj1z@Mv}(TE9SwD*p5> zAkYKi9t)8+7npP@#gU&(cy=8!=^?U6CG;SZDQ?_&I>w!+#WH`}^~B#U^sY$M;Lrs6 zmbxL%$2uoW)*pv~_WKjaS^ITvb7_L4c`GaQfbRn$4w)Gyyq%m}@=ugg6#(Yo1yNhZ;omMXg3+GMgz)v)3>I z+$aX8_eiIM=Zth%l?c zaPUb?tEVX}3+(EBcxxp<1VnfX=33#M7FAN8dl#jcdP2)j7uf;LX$_{JTo)F@U?i(E z+Us=!U)7{TjqXIN^7%V6@$T*b)hQaDB)2k6cw)Om)`iRTGY6PS208 z#}H{|Io)$GR+?mk$^o|Vsse|of$yyZTgLfR!EoEa=H2Q&-SO_#*W~osBjOrWspSwcv#=gnUT{A0qPo~&F~@-S z8RgYd_j*!V0VpWWuK=fXoyeE-i!*|j(vIK9*-S#1fEeCbf;=9!x#m{RoNWnbo0A_> zsSP9yP)?S_xAUWo1W|gZyp)%-qVY7nm%5UXsl5C7fk3H1ZLL*Ubz!U zRoVt#-kQvFj)<=cNT!3M!5Zx1ZY;A_+9)Ym;G`SHs*SJ~{p=`2sK&=qi@bQBPvZYZ zDY@iFfhhgQ2M~s{@PSFuRpa(q;xuS3%b1*EcMJ+fcG@$!yw336@DlKJC+kZLA*&6K2^=_i&kN#P zCrVj*U#3aqyW5>S;Ec`PMSfL{t#o<3O#xPhFhP^6hH9$>M2Tg=#8>VsR!H{aRqEs$ zyzkVpR#Ue$jCAPo<{XVBfSAOrYl_WtEZ%UQ!i-*6iGEy;qp{;~7?xa{NO;EKDa7>o zi}9cXF<~9D(HgPwfT>#O1HoG*JXrzpSI&@2AW)$(>5-3}XPjy_ONpm7k{L~+IZq8t z$1>BZ=iKg%ft6F@&2aK{uV!Z>Fiui-My{{jT}8{p7+J}C7_&Q%)|hzq>L6e_ea+<( z8?H(s+;VRHM$aQKTz}HwiZ>oLis;@nrLx9tT8xR;*kU&$DfR3<>o|V04Bf)XjOKdU(w4jTwh& zuKv|7T?NzW)_M=i|LMc6BYyBIVM9w$w$w$#UZTB;{Vf4nP1PjI-qMk2OX0@oqbm;Q zuxvBu;_(z%@4Km*nTm15+uj)m)XUr{cKN4{RYM^2wQGq+wLKOWwBy7AHkySYHsmBh zVy)v8*a!=Y*tkb-!mG>ff&8mkJB_9hYS2$l>tJOzf|S*j! zwrUAGtIJHX|0%%7c+*!iz?@H^j1))BoIK@9#l-bD=Q<`-8i~!+?yrZ+mHwdkR~>rR z*oQSnkF-ivhf7Fj=vxUwcphG3%Yc3qPs;Zl;CW|PcbN>I2{va{>$Ks>Q9kgo_AgL< zC8-tvuzx;DUrp%^kM2W=%aMJz#w#3y@}th{T~U;+v1+j&l=|C4p6XP$f}Q^EHp>w; z=8En!!30rjKK18SGy3{B>s}|Su$RvZy1o3f-$KhA&XL>`AvPRqRI~}L*#*S0|4n*~ z;N(V5dOfZ31fSzO1qSZWA#)WWL?J1=f$F=H|0bp1`VbPTctQ zYD)DCk)q7zCH>tg9-Y|6r#u#LSD;H;V5)V8m11{vu>U+82Ytw8{7{-`AIN?8jTh~(W(7!Xz{MGk%Q#vZ_*8~;-jX24|)Nz#}$ng7(r1^|1zR~?@-6z z=*Ql|c^K*JFsS;`S?!`Bd?$C&*q$ObLrIYyMUd5B&4!qyiynB2@#xgWG(Rn%Rf1jbPXB>WzTLGIN{zQbeui_iOe;6NxH+c9RPNo_B@+h zNG82*oBqO6Ic~3HaUY}aodp$_Jf z(b#C`F?Ace^-m!+(bbX+deRaV<5+!9b5n>t#QTJ-6(oiYVlVza7S!Z7(YTM&E6aX_ z`{FgC4WZ@6(Y14@C&cmz$(SUdO=D^ z6SzY%0Hw6y(^73-nPxD>&aJ{tZRT^kQV`1h-ic!Uaq@NV^EdP?0#sC01l}S9E$w=?c;crgbmg!Y5+S zv{kEdvZJj^%|^s{gHEUEZ$f@IGUd5EA74MT81%MyML-@-~GphOYK0; zt2Asdx%{*S=vOjf!YBRsOjRO1om>}j{>0%Xx zAW;D~JX<&?{{KGh6E@9Mc;f#R*}4OghHYOsaMk9~gpDGodgZ`>AVLfF5NU){8qiK??&D!@?>4v1K z1h-@|WC^HkZ7uE$vPfm`4dd8Rqsm%UaOZ0L5gFcJrl)&!>R&bFL9##G{ZVM%wGjV9H;rZ$N)_ z`-fHx0fc{M7oVLG5-0k)>bpl~wQy!eJQqm=@8DfLeBSh!Y=I_1Hcsz^z_E{mv(${UW8+kAw z#qvwIfDs}XRlN`FDpv}{*SvND#%(>u8L;Xp4%k2{!Z5}IOik%rg~t&Zg{gnJFJzWP z#uQby_f?8*g(ug6I^SZPt1{w>`^TNHys~Or$2$3@I9;m_aLD);PKgfNqGNGt<4r6QHcK%glPk zyg0*$qnhv|lhlKozt_P7vgFTi6*jPaH^fL84R>_5u&TNGe81VaUis=x*j*vHj2taS zUIFx;UiwY%BWpDNS$FboON#4_GnZ;m{-;ONkE#Wk77Z%?skICh zW(X5wj3UUjg_3qP(uU5zuBJbqqr6vFTOqbd5x2D$XH<&&;E`D=yw`^)GmZW@gq86M z@S@N5S{F7Z{QlaF%%0%>!*xzV#R?+Ohp*OSL2?LB&##dMnkTyG4I{dmHxA25_o z-m0%gQ`PhQi<@aK+kImt$FL6*^+KwG)iLLK+|uhB1eVq8M3etgb@^6gOmsP-TG`G1 zX|Uo98&dO~BCT!S*M5ed0BYUXr$u>rDX8V4He9QgRrnu%9IbJ2ji*Fh#}Jr{cYo?! z?37Y7uIP;l(<2rmZ3Hl9+3~!Mr*j&mV;|`MR$q8CZQBuDzvIC7Ha`$}j2;TF})vQ67I+_j3BJ_(oQ^g5#F;W+EXWI-Gjyoyit0kK8++|dKg$r}=(H%2a ztS4a*Z+~t?D%kbn{D#p=gp1RjduQVHKBBz!L59`jhHB1CCnG}1+7`pv%qT)4QtKG^ zF@ByQN?!U0@VFp<>A=NZAvz7-8k7Hx~)x*0x$H9@l>2k*2-D6HjBa zba}NVZ9|F^n1TovAk2R=FxORZrtVIG8IZ(Vitg^x?N0Ui-ETVT^edKO8`TcNezLiJ zcMY=NL3R`uCe0?+Nb2}7KgyV`TfFjYsVvtaQaw48N(l=zKjxFV4PoQWe93&M2^Zpp zNd1ZV7eBm8RBv&n?G_bxViOep zwZjgA(?-+mGR$Ds z+8WC^fuX>48%KSg7gRV}L)52X7?DOkqS%vaa$Dq+S9_eitr!MidUM;d^g=C#1`Jfg zlz-!S<4||qX1oUt;EJNZ-bn{`CU~fuCSkQ6;`T7sj4)550;BpyMB|ObNX~VlyU!fQtBhuz3q(SfpO*xce7q$4 zyMxw0s*n5xjm5uM)LxP1KsUNRz007HJoOv`-k_aT+wbXiu3$Kv@~VR z(|;8f^OmZQXNBsxS6d5;yFy)~A-GJ50k8ZgR>WeTgxaj#M8%H->h8Sg`S5$akF>!%cxQZJAojAB)Q?^)HFNJ(LyENDKHebGKt>907ObvSx+l~K zwq!Z>}dNgaB{ z2%aGxpf|IxHft&}I*dJbC_a$;fZVfQJid;{HEbewRlx6e(QMVZUQoJ>nS?mcPk`e6 zI_bO7laNHmrC@y>qUrXJv@|vXlmazG|3F6*Bl^Dw>LuB8e1Y zl*?Lgemk-F2UJtCDZ-Galu^6=@s=x%V+LYlfdwamIoD4R)QXDDLrv;$E*}2}S7WHI zx%=qK>X#zwb!dLaR`}fizW#qBf!QW`nsUwR8VkGLzW+d%|B1ev-cXmNr10_c*j6b( z7MHA=F`g=L$y}%HG>h!0T5em~AvE9ocrVTnFv`=(okSeaR%9|56(YHA=0DcoR{%As zNzo8UeXuf1g-()^j7_{PwjSSP2>^icVzlaGb3zNI)Jn)6`?zz;c_$Daej zHh@$uq<=y2z3K<8pfZAa(;Zyt>TU>N6zMSQ_ z{(h+xctoK>DBs#M?wnBz7bymNwT814GIvEC+Z>=8vBKr%chOH1JH86EnsBbMkXoj3 zgR>1?N{5f_-Exq_^ zsp7N64HL^ZHBPyl<7#(}NAb`sM(&$T>$+DninwjKlO|(zr70}hk!yhj&ytziF0-~K zai&fQpLt5q=Fr=F{$IQWb23~QdD;0~mIAl$gboUldAJk>i;>ImA`1C6^)ST4?*@k8@`nJS(KLG`vLl*qO%k6(WM6O9a+- zAFE>dDE(2uJ#J_Ag09n{yYl}tux<2IowTcOX?V`|uGqtAOa-g56~F(I);kiCF=YcW(Igsl()3)7M2R z9&V9JUCV{J6hf{FunAldUewIy@A=HV7I=Tt!8MF_0;z?IcinX~S5y_|a!}kDx>~qr z`@ZyhuY5eJu8Wnf?_fDR{lm#VuH>9 diff --git a/nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc b/nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc deleted file mode 100644 index 1a162571446..00000000000 --- a/nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc +++ /dev/null @@ -1,42 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z5 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z5 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X0.000 Y100.000 - Z1 - G1 Z0 F100 -#1=1 -G5.2 X0.000 Y100.000 P1 F100 - X10.000 Y100.000 P1 - X10.000 Y70.665 P1 - X27.928 Y59.258 P1 - X34.093 Y56.935 P1 - X41.136 Y54.281 P1 - X63.112 Y51.556 P1 - X79.999 Y60.000 P1 - X99.998 Y40.002 P1 - X100.000 Y0.012 P1 -G5.3 - - -G0 X0.000 Y100.000 -G0 X10.000 Y100.000 -G0 X10.000 Y70.665 -G0 X27.928 Y59.258 -G0 X34.093 Y56.935 -G0 X41.136 Y54.281 -G0 X63.112 Y51.556 -G0 X79.999 Y60.000 -G0 X99.998 Y40.002 -G0 X100.000 Y0.012 - - -G1 X100.000 Y0.012 Z1 -G0 X100.000 Y0.012 Z5 - -M5 -M2 - diff --git a/nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc b/nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc deleted file mode 100644 index efe8d5c4ca3..00000000000 --- a/nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc +++ /dev/null @@ -1,55 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X63.562 Y106.120 - Z1 - G1 Z-1 F100 -#1=1 -G2.2 X63.562 Y106.120 P1 - X64.124 Y106.120 P1 - X65.998 Y103.621 P1 - X80.988 Y83.634 P1 - X110.968 Y83.634 P1 - X86.984 Y59.650 P1 - X92.980 Y35.666 P1 - X63.000 Y53.654 P1 - X33.020 Y35.666 P1 - X39.016 Y59.650 P1 - X15.032 Y83.634 P1 - X45.012 Y83.634 P1 - X60.002 Y103.621 P1 - X61.876 Y106.120 P1 - X63.000 Y106.120 P1 - X63.562 Y106.120 P1 -;K14 -;K14 -;K14 -G5.3 - -G0 X63.562 Y106.120 -G0 X64.124 Y106.120 -G0 X65.998 Y103.621 -G0 X80.988 Y83.634 -G0 X110.968 Y83.634 -G0 X86.984 Y59.650 -G0 X92.980 Y35.666 -G0 X63.000 Y53.654 -G0 X33.020 Y35.666 -G0 X39.016 Y59.650 -G0 X15.032 Y83.634 -G0 X45.012 Y83.634 -G0 X60.002 Y103.621 -G0 X61.876 Y106.120 -G0 X63.000 Y106.120 -G0 X63.562 Y106.120 - - -G1 X63.562 Y106.120 Z1 -G0 X63.562 Y106.120 Z50 -M5 -M2 - diff --git a/nc_files/nurbs/G5/butterfly-xy.ngc b/nc_files/nurbs/G5/butterfly-xy.ngc deleted file mode 100644 index 261a608b05d..00000000000 --- a/nc_files/nurbs/G5/butterfly-xy.ngc +++ /dev/null @@ -1,105 +0,0 @@ - -G17 (Plane XY) - -G21 -G0 Z10 -G0 X0 Y0 -;M3 S10000 -G0 Z1 -G1 Z0 F100 -F300 - -G5.2 X3.53 Y-1.50 P2 - X5.33 Y-11.01 P1 - X3.52 Y-24.00 P1 - X0.0 Y-29.56 P1 -G5.3 - -G5.2 X-3.52 Y-24.00 P1 - X-5.33 Y-11.01 P1 - X-3.53 Y-1.50 P2 - X0.0 Y0.0 P1 -G5.3 - -G0 Z10 -G0 X-4.30 Y-5.00 -G0 Z1 -G1 Z0 F100 -F300 - -G5.2 X-10.78 Y2.56 P1 - X-24.12 Y7.57 P1 - X-35.39 Y-1.18 P1 - X-33.00 Y-9.76 P1 - X-25.07 Y-10.98 P1 - X-19.41 Y-18.53 P1 - X-22.02 Y-25.27 P1 - X-18.77 Y-30.08 P1 - X-12.70 Y-28.16 P2 - X-8.25 Y-23.28 P1 - X-5.65 Y-22.06 P2 - X-2.94 Y-23.50 P1 -G5.3 - -G0 Z10 -G0 X2.94 Y-23.50 -G0 Z1 -G1 Z0 F100 -F300 - -G5.2 X5.65 Y-22.06 P2 - X8.25 Y-23.28 P1 - X12.70 Y-28.16 P2 - X18.77 Y-30.08 P1 - X22.02 Y-25.27 P1 - X19.41 Y-18.53 P1 - X25.07 Y-10.98 P1 - X33.00 Y-9.76 P1 - X35.39 Y-1.18 P1 - X24.12 Y7.57 P1 - X10.78 Y2.56 P1 - X4.30 Y-5.00 P1 -G5.3 - -G0 Z10 -G0 X2 Y-1 -G0 Z1 -G1 Z0 F100 -F300 - -G5.2 X3.00 Y3.00 P1 L3 - X4.33 Y8.35 P1 - X5.00 Y10.50 P2 - X8.44 Y17.58 P1 - X15.32 Y16.03 P1 - X14.05 Y9.75 P1 - X10.03 Y9.40 P1 - X7.87 Y12.30 P1 - X10.56 Y15.00 P1 - X12.45 Y14.00 P1 - X12.03 Y13.00 P1 -G5.3 - -G0 Z10 -G0 X-12.03 Y13.00 -G0 Z1 -G1 Z0 F100 -F300 - -G5.2 X-12.45 Y14.00 P1 - X-10.56 Y15.00 P1 - X-7.87 Y12.30 P1 - X-10.03 Y9.40 P1 - X-14.05 Y9.75 P1 - X-15.32 Y16.03 P1 - X-8.44 Y17.58 P1 - X-5.00 Y10.50 P2 - X-4.33 Y8.35 P1 - X-3.00 Y3.00 P1 - X-2.00 Y-1.00 P1 -G5.3 - -G0 X0 Y0 Z10 -M5 -M2 -; diff --git a/nc_files/nurbs/G5/butterfly-yz.ngc b/nc_files/nurbs/G5/butterfly-yz.ngc deleted file mode 100644 index bb5d6060d88..00000000000 --- a/nc_files/nurbs/G5/butterfly-yz.ngc +++ /dev/null @@ -1,106 +0,0 @@ - -G19 (Plane YZ) - -G21 -G0 X10 -G0 Y0 Z0 -;M3 S10000 -G0 X2 -G1 X0 F100 -F300 - -G5.2 Y3.53 Z-1.50 P2 - Y5.33 Z-11.01 P1 - Y3.52 Z-24.00 P1 - Y0.0 Z-29.56 P1 -G5.3 - -G5.2 Y-3.52 Z-24.00 P1 - Y-5.33 Z-11.01 P1 - Y-3.53 Z-1.50 P2 - Y0.0 Z0.0 P1 -G5.3 - -G0 X10 -G0 Y-4.30 Z-5.00 -G0 X2 -G1 X0 F100 -F600 - -G5.2 Y-10.78 Z2.56 P1 - Y-24.12 Z7.57 P1 - Y-35.39 Z-1.18 P1 - Y-33.00 Z-9.76 P1 - Y-25.07 Z-10.98 P1 - Y-19.41 Z-18.53 P1 - Y-22.02 Z-25.27 P1 - Y-18.77 Z-30.08 P1 - Y-12.70 Z-28.16 P2 - Y-8.25 Z-23.28 P1 - Y-5.65 Z-22.06 P2 - Y-2.94 Z-23.50 P1 -G5.3 - -G0 X10 -G0 Y2.94 Z-23.50 -G0 X2 -G1 X0 F100 -F600 - -G5.2 Y5.65 Z-22.06 P2 - Y8.25 Z-23.28 P1 - Y12.70 Z-28.16 P2 - Y18.77 Z-30.08 P1 - Y22.02 Z-25.27 P1 - Y19.41 Z-18.53 P1 - Y25.07 Z-10.98 P1 - Y33.00 Z-9.76 P1 - Y35.39 Z-1.18 P1 - Y24.12 Z7.57 P1 - Y10.78 Z2.56 P1 - Y4.30 Z-5.00 P1 -G5.3 - -G0 Z10 -G0 Y2 Z-1 -G0 X2 -G1 X0 F100 -F600 - -G5.2 Y3.00 Z3.00 P1 L3 - Y4.33 Z8.35 P1 - Y5.00 Z10.50 P2 - Y8.44 Z17.58 P1 - Y15.32 Z16.03 P1 - Y14.05 Z9.75 P1 - Y10.03 Z9.40 P1 - Y7.87 Z12.30 P1 - Y10.56 Z15.00 P1 - Y12.45 Z14.00 P1 - Y12.03 Z13.00 P1 -G5.3 - -G0 X10 -G0 Y-12.03 Z13.00 -G0 X2 -G1 X0 F100 -F600 - -G5.2 Y-12.45 Z14.00 P1 - Y-10.56 Z15.00 P1 - Y-7.87 Z12.30 P1 - Y-10.03 Z9.40 P1 - Y-14.05 Z9.75 P1 - Y-15.32 Z16.03 P1 - Y-8.44 Z17.58 P1 - Y-5.00 Z10.50 P2 - Y-4.33 Z8.35 P1 - Y-3.00 Z3.00 P1 - Y-2.00 Z-1.00 P1 -G5.3 - -G0 X10 Y0 Z0 -M5 -M2 - - diff --git a/nc_files/nurbs/G5/butterfly-zx.ngc b/nc_files/nurbs/G5/butterfly-zx.ngc deleted file mode 100644 index d1c0bbb4f9d..00000000000 --- a/nc_files/nurbs/G5/butterfly-zx.ngc +++ /dev/null @@ -1,106 +0,0 @@ - -G18 (PlZne XZ) - -G21 -G0 Y10 -G0 Z0 X0 -M3 S10000 -G0 Y2 -G1 Y0 F100 -F300 - -G5.2 Z3.53 X-1.50 P2 - Z5.33 X-11.01 P1 - Z3.52 X-24.00 P1 - Z0.0 X-29.56 P1 -G5.3 - -G5.2 Z-3.52 X-24.00 P1 - Z-5.33 X-11.01 P1 - Z-3.53 X-1.50 P2 - Z0.0 X0.0 P1 -G5.3 - -G0 Y10 -G0 Z-4.30 X-5.00 -G0 Y2 -G1 Y0 F100 -F600 - -G5.2 Z-10.78 X2.56 P1 - Z-24.12 X7.57 P1 - Z-35.39 X-1.18 P1 - Z-33.00 X-9.76 P1 - Z-25.07 X-10.98 P1 - Z-19.41 X-18.53 P1 - Z-22.02 X-25.27 P1 - Z-18.77 X-30.08 P1 - Z-12.70 X-28.16 P2 - Z-8.25 X-23.28 P1 - Z-5.65 X-22.06 P2 - Z-2.94 X-23.50 P1 -G5.3 - -G0 Y10 -G0 Z2.94 X-23.50 -G0 Y2 -G1 Y0 F100 -F600 - -G5.2 Z5.65 X-22.06 P2 - Z8.25 X-23.28 P1 - Z12.70 X-28.16 P2 - Z18.77 X-30.08 P1 - Z22.02 X-25.27 P1 - Z19.41 X-18.53 P1 - Z25.07 X-10.98 P1 - Z33.00 X-9.76 P1 - Z35.39 X-1.18 P1 - Z24.12 X7.57 P1 - Z10.78 X2.56 P1 - Z4.30 X-5.00 P1 -G5.3 - -G0 Y10 -G0 Z2 X-1 -G0 Y2 -G1 Y0 F100 -F600 - -G5.2 Z3.00 X3.00 P1 L3 - Z4.33 X8.35 P1 - Z5.00 X10.50 P2 - Z8.44 X17.58 P1 - Z15.32 X16.03 P1 - Z14.05 X9.75 P1 - Z10.03 X9.40 P1 - Z7.87 X12.30 P1 - Z10.56 X15.00 P1 - Z12.45 X14.00 P1 - Z12.03 X13.00 P1 -G5.3 - -G0 Y10 -G0 Z-12.03 X13.00 -G0 Y2 -G1 Y0 F100 -F600 - -G5.2 Z-12.45 X14.00 P1 - Z-10.56 X15.00 P1 - Z-7.87 X12.30 P1 - Z-10.03 X9.40 P1 - Z-14.05 X9.75 P1 - Z-15.32 X16.03 P1 - Z-8.44 X17.58 P1 - Z-5.00 X10.50 P2 - Z-4.33 X8.35 P1 - Z-3.00 X3.00 P1 - Z-2.00 X-1.00 P1 -G5.3 - -G0 Z0 Y10 X0 -M5 -M2 - - diff --git a/nc_files/nurbs/G5/leto-xy.ngc b/nc_files/nurbs/G5/leto-xy.ngc deleted file mode 100644 index de76c46be88..00000000000 --- a/nc_files/nurbs/G5/leto-xy.ngc +++ /dev/null @@ -1,33 +0,0 @@ - -; M. Piacentini, E. L. Valvo, M. Leto -; CAD/CAM Integration for NURBS Path Interpolation on PC Based Real-Time Numerical Control -; Figure 2 -; changed by Joachim Franek to use G5.2 - -G17 ; Plane XY - -G21 G40 G54 G90 G94 -G0 Z1 -G0 X2 Y-1 -G1 Z-1 F100 - -G5.2 P1 L3 - X3.00 Y3.00 P1 - X4.33 Y8.35 P1 - X5.00 Y10.50 P2 - X8.44 Y17.58 P1 - X15.32 Y16.03 P1 - X14.05 Y9.75 P1 - X10.03 Y9.40 P1 - X7.87 Y12.30 P1 - X10.56 Y15.00 P1 - X12.45 Y14.00 P1 - X12.03 Y13.00 P1 -G5.3 - -G1 Z1 -G0 X-12 Y13.00 -M2 - - - diff --git a/nc_files/nurbs/G5/nurbs-xy.ngc b/nc_files/nurbs/G5/nurbs-xy.ngc deleted file mode 100644 index 0c253ddfa4c..00000000000 --- a/nc_files/nurbs/G5/nurbs-xy.ngc +++ /dev/null @@ -1,28 +0,0 @@ - -; from -; linuxcnc.org/docs/html/gcode/g-code.html#gcode::g5.2-g5.3 -; - -G17 ; Plane XY - -G0 X0 Y0 (rapid move) -F100 (set feed rate) - -G5.2 P1 L3 - X0 Y1 P1 - X2 Y2 P1 - X2 Y0 P1 - X0 Y0 P2 -G5.3 - -; The rapid moves show the same path without the NURBS Block -G0 X0 Y1 - X2 Y2 - X2 Y0 - X0 Y0 - -G0 X0 Y0 (rapid move) -M2 - - - diff --git a/nc_files/nurbs/G5/nurbs-yz.ngc b/nc_files/nurbs/G5/nurbs-yz.ngc deleted file mode 100644 index 3323fe26331..00000000000 --- a/nc_files/nurbs/G5/nurbs-yz.ngc +++ /dev/null @@ -1,28 +0,0 @@ - -; from -; linuxcnc.org/docs/html/gcode/g-code.html#gcode::g5.2-g5.3 -; - -G19 ; Plane YZ - -G0 Y0 Z0 (rapid move) -F100 (set feed rate) - -G5.2 P1 L3 - Y0 Z1 P1 - Y2 Z2 P1 - Y2 Z0 P1 - Y0 Z0 P2 -G5.3 - -; The rapid moves show the same path without the NURBS Block -G0 Y0 Z1 - Y2 Z2 - Y2 Z0 - Y0 Z0 - -G0 Y0 Z0 (rapid move) -M2 - - - diff --git a/nc_files/nurbs/G5/nurbs-zx.ngc b/nc_files/nurbs/G5/nurbs-zx.ngc deleted file mode 100644 index cc6b8d28903..00000000000 --- a/nc_files/nurbs/G5/nurbs-zx.ngc +++ /dev/null @@ -1,28 +0,0 @@ - -; from -; linuxcnc.org/docs/html/gcode/g-code.html#gcode::g5.2-g5.3 -; - -G18 ; Plane ZX - -G0 Z0 X0 (rapid move) -F100 (set feed rate) - -G5.2 P1 L3 - Z0 X1 P1 - Z2 X2 P1 - Z2 X0 P1 - Z0 x0 P2 -G5.3 - -; The rapid moves show the same path without the NURBS Block -G0 Z0 X1 - Z2 X2 - Z2 X0 - Z0 X0 - -G0 Z0 X0 (rapid move) -M2 - - - diff --git a/nc_files/nurbs/G5/trident-xy-yz-zx.ngc b/nc_files/nurbs/G5/trident-xy-yz-zx.ngc deleted file mode 100644 index 3609f6f668f..00000000000 --- a/nc_files/nurbs/G5/trident-xy-yz-zx.ngc +++ /dev/null @@ -1,77 +0,0 @@ - -; Lo Valvo, page 178 -; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 - -G0 X0 Y0 Z0 -G21 G40 G54 G90 G94 -;G96 S200 M3 - -;----------------------------------------------- -G17 ; Plane XY - -G0 X10 Y0 -G0 Z1 - -G1 Z0 F300 - -G5.2 P1 L4 - X10 Y0 P1 - X20 Y20 P1 - X12 Y8 P1 - X10 Y20 P1 - X8 Y8 P1 - X0 Y20 P1 - X10 Y0 P1 -G5.3 - -G0 Z1 -G0 X10 Y0 -G0 X0 Y0 Z0 - -;----------------------------------------------- -G19 (Plane YZ) - -G0 Y10 Z0 -G0 X1 - -G1 X0 - -G5.2 P1 L4 - Y10 Z0 P1 - Y20 Z20 P1 - Y12 Z8 P1 - Y10 Z20 P1 - Y8 Z8 P1 - Y0 Z20 P1 - Y10 Z0 P1 -G5.3 - -G0 X1 -G0 Y0 Z0 - -;----------------------------------------------- -G18 ; Plane ZX - -G0 Z10 X0 -G0 Y1 - -G1 Y0 - -G5.2 P1 L4 - Z10 X0 P1 - Z20 X20 P1 - Z12 X8 P1 - Z10 X20 P1 - Z8 X8 P1 - Z0 X20 P1 - Z10 X0 P1 -G5.3 - -G0 Y1 -G0 Z0 X0 - - -M2 - - - diff --git a/nc_files/nurbs/G5/trident-xy.ngc b/nc_files/nurbs/G5/trident-xy.ngc deleted file mode 100644 index 557b32cc7f1..00000000000 --- a/nc_files/nurbs/G5/trident-xy.ngc +++ /dev/null @@ -1,33 +0,0 @@ - -; Lo Valvo, page 178 -; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 - -G17 ; Plane XY - -G21 G40 G54 G90 G94 -G0 X0 Y0 Z1 - -;G96 S200 M3 - -G0 X10 Y0 -;G0 Z1 - -G1 Z0 F100 - -G5.2 P1 L4 - X10 Y0 P1 - X20 Y20 P1 - X12 Y8 P1 - X10 Y20 P1 - X8 Y8 P1 - X0 Y20 P1 - X10 Y0 P1 -G5.3 - -G0 Z1 -G0 X0 Y0 - -M2 - - - diff --git a/nc_files/nurbs/G5/trident-yz.ngc b/nc_files/nurbs/G5/trident-yz.ngc deleted file mode 100644 index aed71d47bdc..00000000000 --- a/nc_files/nurbs/G5/trident-yz.ngc +++ /dev/null @@ -1,33 +0,0 @@ - -; Lo Valvo, page 178 -; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 - -G19 (Plane YZ) - -G21 G40 G54 G90 G94 -G0 Y0 Z0 X1 - -;G96 S200 M3 - -G0 Y10 Z0 -;G0 X1 - -G1 X0 F100 - -G5.2 P1 L4 - Y10 Z0 P1 - Y20 Z20 P1 - Y12 Z8 P1 - Y10 Z20 P1 - Y8 Z8 P1 - Y0 Z20 P1 - Y10 Z0 P1 -G5.3 - -G0 X1 -G0 Y0 Z0 - -M2 - - - diff --git a/nc_files/nurbs/G5/trident-zx.ngc b/nc_files/nurbs/G5/trident-zx.ngc deleted file mode 100644 index d5dbeabcbb6..00000000000 --- a/nc_files/nurbs/G5/trident-zx.ngc +++ /dev/null @@ -1,33 +0,0 @@ - -; Lo Valvo, page 178 -; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 - -G18 ; Plane ZX - -G21 G40 G54 G90 G94 -G0 Z0 X0 Y1 - -;G96 S200 M3 - -G0 Z10 X0 -;G0 Y1 - -G1 Y0 F100 - -G5.2 P1 L4 - Z10 X0 P1 - Z20 X20 P1 - Z12 X8 P1 - Z10 X20 P1 - Z8 X8 P1 - Z0 X20 P1 - Z10 X0 P1 -G5.3 - -G0 Y1 -G0 Z0 X0 - -M2 - - - diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg b/nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg deleted file mode 100644 index 30110518a540da117264b9c2cb6cc3026b7b0789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135001 zcmeEu1yoi`*YJ7hZV-@eC8S$GkdzXTmImn*M5R%>I|Ze?B$ZHFK%`STM34{=>Hj>G zUa#+c@4f%G*1x{B{(0Xke}h9_%2D2j(CX;1PH* zft8{4&vQv>IYkO~7B*HEUVxpIot>YJou8eXf{l%zi0w$!BzvG{E0PQB&;_(q9t$em3r1`I1KE)kWmOO5fTy8($Ot9KBA=nSOMgcTf2sn7K*nlvweT!jqQYm~?y{lT}1#{DiP^wdR zR&lG#(qZNpZ|B41AT=IG+Q_@SF_WFNL65tso$ro4+Iy@LE@|_aevP?r?ryFEAFy@k zuBj%@D{W!;d|$kpcUSnTP>)Ub_-shD57Wx#t2WsnZmF$wXXb^b1$-0cmX#1!)1JsV zYuC&%qE6@SW`?Q?{b&ZsZ2b2Mv`-7X+HI*qh-ju@2XfZOwQk(6SWh?Y!*5~dx#wYC ztzI4L@O*RX7%)8AP3!hP4BcNSp6b`DHjBB0_92NitKD`(vNqf<{6l0vxsACT=L&LW zVQ`8N<~QNBgv<#iEvq@|KJMLCVO@D)UGo<WDfo5`15zepVMx9;_Jfsr^31=<{N& zoKM1-n_Wz5C0z?}mT^bxt5?uo3w{VdpA+};P#D>J#<$$+{yvN-I9tpSNC~R)rg*fG zkXpHMJ>etE>}3+$*CDN;Z&U2Rd#Pv{_vBi z&=9tPvki4>Yo_bNT!bV1x?AiD37<9GbdU(wzV{whusJiUM~7wWIjuW9<5+H{D6vKL zNWJ_Cd0bl9i2vv=fZPed(s z$2gqEmd`b=ds?L$WJt0X`p$#X<-73kF;HiEHe&g!u9EYTLTO)9(aBH8MDUcrLLlY# z?rmrbu#%^v8hTp(9@-+blR(cIk6cZ!Ku_|>d6)D#*5%uqXZ;6M_G!i)Fz4^Att7u( z&agwh5?qS(#k<)IO5n9GtXFjm6j~i*!w?mO>FmC3zB|Hd+=lq9|5Ji^B&w02a{nrc zN|}~Gd$qN(tmoU=kgNB_imzBs*|$XdIw@<=jdexBJPPiRp^crtZ8~m9q#sa1-HK)+ zM*j|hZMjR8XWfvtr0u$ypF=#2w|*H*+K~nY*~D-v)6=Guk*~V}(r9<=+4_Y1MaDMk2s;`Sd z5?+23#y(h{Uki9-RhT%_P*LG-vYD!pPG)Pr+7!{`j^TdWTZCN3#~?p*Je!DO6;65J z?qZ`xCrkxw5_xNeOXTwr%?T}YG8c5lR^n2;C`Ni-dbqFr7{1vDYK;U=v7>3?53Tzo zs7wH%1|;eT=h>o1z~17D)Fy4C`2G~Hy*IV+Q{k2R*PGlG2ZjRfdjp$v$f^6h!yefQX7K(mhSg@@3{*ObHhj$@!eGU^!k za-@4`{yiZ8_#fu2sMGScW!BE}p;iB5wdV4%1F(zX1MbU%x`zlJLTT1%pM<07-{A+A zpoU2C9-3)o?_thMi{Qt9iL*4ObziPpOzJ!8u{s6>4MFFKJh*Dk0E2zK)PsPqWT~3> z@Jh>P?1nqABmF8-im(JT1k_>tk^2p1_2#~P#{gA`i@< zaVfwCvA+D)ZJU~H((9&^j)&8Gig3Yw8|3fn6ux`ri{(4#PCqXR>DO{kBTbK_6un{i zeQ~|nRU=-3{r+ryt;^#X@?D~G-MxdvV?c}(Qk`YSn6*@|>$7cP6yJ`I=$s&THdYUQ8+-32aHX}g$z4pPkhA^Epc)+qiPg)> zxa#ix>h7gGF0E|>V-$KM1I5xk=`?eR(e1*k<;-%f?UwmUFOo@Ym;y=6HHN1k;{yvZ z%mQo;1h>L>GAXdKdL*|qMT55=V>M<@$n(&?dUCXno+~^h8KAo|atthH6dl1g9|O%Q zxC&g2YY7tJwd#xbq>$B^j6NGmqQ?&yNBXUmzlU5ckVf0os{3T@JT@TDp?WleKaJ{A zW!={T=pU^gQSN;Z5dZRAG$3Z?uzyLWSHy%E&k(H88KBvNEk zy?kOckzNoWJVYE|O^ouFct|QQ!M~NAzAxKe5|_=y-mrzYiOZ^}u19h>>9W`V5(x0( zRDr8NRGx?lU;w~AKo7{}tQp~C7l)q*nClzI{R7F(q7WA`uuI%|$AE66`zI3*4pT6m zFq|D%XO4k30)@Trx`*(&$=bTRFzp~6>M@X7PN%{jT7C>j_N}tKX?o&kNd4WRT{sq; z4f6^jpSOm1%~!fztvZs(Q6{OO0J}f|Wmy|(mqrp)p6{LV?Xqy2=k5UUD-)#ResbY! zQF-6v@j^ckXWXzKfohK87ggEe|JK2186C-Q9OPUG`hP7jqrAnfKsmzQ4bI1ls&^Z+ zM+f5X5|rCob2`g^Cq$HeC>K$GWx8Y{k}ESZC_disDBQ}7R4TMwM!s>!Il{Em8QVM*0t|s^~tw|@mx_jZ;MmG1YEVaWl~e6?m3Fd)cV4+ z{{v^?N+3p^e2~ZCvj2l)pg{#oSd~j6e`1`u=@@u*Sw9HQ-xbeYd1xcIAHzzg4OAvF z%9kTNaCAP`Z!cdv^41o2ItEbO=NxtSw!uJnBNa1y?8JIxK1zOYzbbPvq~}8`vGhH3 zQJ3Vq?~#O++EG2Y-uckw8gw#W%%)(0jJu#_IybpTl!`VAPCqE;M^*h-_{gKWOJF1B zS!$P#L`vO<-W~&=n5CmJGWcuFrTc994;!)@j)C$j$R6(Q9pZWxtNT?`yqheT2@~x- zHx3o%Wo`aRXCEf&bd>=aiifsfazYn=g)mXF11!D~jN!`o&!L zNl_1SagO(aM~|`&w-|nu0UlPA+AM&ZQz+&u*bvZ7Lsd!m#bRs!bsv`fsL8;mF+?9C*t0#+kg7=nW z{n}|w?rv^BsM`b$?qe^}%zv#CArHsNRv6QNDWm;Rx27v|UN zD-(6A=Ny%=gj(=_vx2b4PjIlmRmUb7-Xq#tx*gx=B=k|3 z#P$8`dPc+)QwaLeI1bFN##nFSw+!uLpy`9LB=x&gWVp{5ax3F@-sC!NQS*k>ND+HC z==Y`gwzIot&}NlL-4|nPrQt`fzk@s~MQB4UBQKg3A*Rm2yDb8*@;dx>EQd7NW2!~Y zG{p*b!lo2f3heD{y4OBRb$1qHKf~ZA07aa6uS3hngUAx?Li<(R%#VTYk3-;UW<;g8 zYZK<05ye;5avH2I`=_(7U0_3;k6uEaUv?m0izUByneWS*F6keA^&$R>$r1%D6A7h_ z5(c`9@6W-V6Ot&7rwD-_s@L3SztjaDJQXA6EM+ofUlGmTrYql;LshQmrwMp`WuTvd z(vW%hk)7fqK274a_^Z}yxregmwi495v;710D`V3;_xDqBp4PujOL+Hfj){noe zMFej*ZM^l_wHzANiZ1igb|=625vQN9F!;JE0p;nRD zHQ_wQ_R@E|yqEgwcX|8iI}3x0F4N_AxEoi16H1Wq&X;50dqUk2NdoKBRfD^8@b4;V zj>rZA)r8A!Dsm4q+LVyGD`l*No=Pb0OWlvb5@VF4J)rEL3J!g9kdyKUCi$zqQt#)= z*xKoaF zmyev{aw*2cZtIlAgm^2<;1T}{D`SjYSl5Y19}qb071+i|x8xg(L-7T%#-HnQ-#3Ph zR%zDsXO6kX_iUUoEW3fX!;$acs+yEw)c{TCd;R+4@1u_t;Z#&Ic{`#t^gC~;>OEL* znhkBm+Y0%Z6}wXs7nu!TT1|sFga=8S`?%|Im?63-;N*z+kmn&$jqd(8Mv2jn);IG= z!d?a-0`(-DN&T(2Qrfj23Yn}vv@{HLF8~bME$+`@+rGwJok`nAA6d3f0jCtr8f4Du z2U#&xsGjvqlOcRrEHOtGYebdn_r>}@x&j;GaL}F`bz7RI0ux+GT=BRqjt4Qg zJmyCcL6|;9;^CtWn-oM`B#wt(@iu@V^~T-$w<)`%YDcxk;FMx1cou*qSfsj=c}qC3=Khy|B$1GQc#6n96s4Ye=t z*B{l=e{&gb9reMqxdtv5HSv^bQY$!$KE7)06+WsJSa~44x#zwXdQ^M&g~t`wki{c+ zg~JVSf=>HG2}2@d4BX{D@1s_zyoqlT4B1R7UNXr`b2p|8*6=gHf=l}+*JO@?lv~0F z2;{Sp2b7Q04)!#TfhpEwfOv@^6~pETtCsP|mFXB*Cv*=cUw^u!ySa4l81QI3ut<-kp(h1dF**7!d$090Sv+z4eQ|-NyjL_j}JVfTRoni3QsLKf}7Sy`OKqxo3rN9ogE1=^p zs&rL_bY`EGQFM#OD1|f^@`tVN(pQN{l~*n+jI>N|;TM6ItF2Fj6_yp-Z7544*l^h_ zv7T8AYcdIx5nEkWu%V4Sq2VT}M8S_l7$u1w1GQC%sJ((IuQ?_UHf73WE3%tc3H|vxoeg-uBn-UpL=Qe_ zi~d%+O4Nvky`6Pi8~_(yfBV1>F9Q3V=srXQUcU_GyJHn=5p1)yAs&7;g%#>h=@(Hy z$c_Qx)u{OvGda|RUls}1W1iS0I7cI7JPhA#JO*6cw?F4v@RvDO`k|4K31e*C7D3`F z(1qm=KLW3P19J2Sxrj((q|yQbz34XKaIj|LzRc$S`Y|v`e)#B*JbyY%`-zAl751mI zpNK$aKb`$Ase*7TS2tf)@ojetMEhP!fg1l{QTUNRnZQ@!@3{=Ah(cv~EZkZ*M@YUR zU}jA`FHcsnYJPq1`Xf8g9>JmIC)HIBZ;N1fq3uXP=8lkQ&ZFFIES$7qrJl5&?vA_z zs^oa&pOZv1pLK#!NmGMJ#LX-Bxa5sSWVr*`QmwHvNBqjg^gg#6 z@)5xLoAAG`Ax^;S}6I>eF-Jq4TJ5d*nh(wn`l3HA2r1ZkN;p*_)oLtICLQM27%Kr&KBGotr(q9p8cpBx| zIm*@LMYAC7B{<9tP)k!-BrF)3_Or&JrN{jfo+q?;rgsC-@{Ba1Rz#=nw}%DONQ(j! z+!(|B=?iyIZ!`r8gk|GL>iG-cmHlJZD4Z-!f)&yf5G@*i3IM=*5?%^W%NhJS3V(wy z!-r~e8ieP>5MEc1nine-C$j<0EF1lWEMQA1!X2z=LfZfU29)w5lRO@OgC9tO;=+=p zHM`X7T=(K}-rE)HA_N}a!T#1X`w`9BYnLf6br&HA?J0?FG~{orTWR(k-Ysq!A?j(> zUtIafsA;VEyZgGqT_$ zuD&t8XGf;b+|&oi;>qL$_0EUb{@ zvgbasd)WDH^&0M{JR{^9Cr^3)urPtw1<^AUU*1+I1wJ=MRF76JYcDJMepr`PM;5yD zb*IZa|78Z_T&>Xf4xi=6Dv!Ss7$z9Cq;Gs;?T(!*kJ%nM^@zak9e46i6-$;6bX`Le z_ijvQ3Kqp`%B>~Q^N^6!qfhpKdm>$|^2%ku^^%L%{gA9}LAQaght5xWTos6In7>QCx&~(WAxV}o<)og~b(Eqd$!&6=J4GDdBn>jfzu^95=j$fK(9e$(H zJ2`v@#X;sd%3LER8VwzuTRBb3h3=Ah*Fw{{<~l7&A8*vvxzKfgbCb;+_$y%mcw&M+ z8jmR{z??(`05A}iI*Buj5&IZ~2t5#S^h5W<@$?0$F2^2xgP@KXLyB0lD)uTj~Ud<+EFb z&JkX0NlZ7AE|p+Hr9H?kaz@?DEvE-QMj*Q+6!dmp%Nq$tO@S`Hx7|8|@t)jhRAly!NvW(5+-)-=F!+yv02M+S+ z`d!qe5D@_3O%$=o6eArgScW$B@j}G_5_OThFMmG(d1=cE*we@xNi*5;5}Q!`;PE>M zwdeCEU0Hho;E}_feql{Kf3v|w2{2+efBxU@ADtMUrI;%Dl(;nj7z!x4&|XGJ7K3!yalyC?8W2=fpc71 zq>2K7VLswiBI!uv7dGI;?D^vNjL)$b4IuWyU0(3u4m>F!lszv8pUA+_6O=IrAS2CE zMF8XzZg;CwoIh;QJKhVD-vaQTw(nodk7_RUfkuMfC-s4| zfjtgwp`_TAHxVH|?yU_W27QAeJ1(3wzXY)e30fwuZ8(Mh2k;piq~*TWRM`08CmL-< z*m{7|NWbsBIJp;@swaGLqdt>h*WR@tULX0oTC~*aWq#4zAAlciN0goyz)lzIfiT=B zs638KvmbzKb4v#M8gw7Z=bjc(fF$p0UmW>p)a4tiWu-KO=jZ7+P4RMqp|GLNPAJJUsLg;q zE=1(L7;ZZDP*$kOd9BkN!Y7|C@YMqV)C)e=3aI2PtgD<9j3zT*+H$O3Qtj*dQQ^Y= zexTl?<0|eM^Cp4zvJ|#w%SO`eW5|XjA10~u?D`L?69{geKXvUL0NBgb93`PUrx~7= zb6XVTDM*x&IYk-$s8LH+_;jn4;s*jSqUaPkIYoeJyFvQMdF!V#CfBjTuOA}iZc4QLAlC_16WufXT`2kszNl7*{9S?vDCcZo`rIWDUTcPf?r@gQ zy9^s1MJ}5Ppc&n6dS~fzUJB-3{97BKwf!N{Ul~AjQv^!1YJ^yWgD#5T`xG=|Qz9jd9M3U;h!%l?oDT(9R%5oTwE0!!ocg3Cwl)A*PN)0Ou5raz_N!*K~6Oyx#a!!7lpXy&uD_?ZzC+p+B zcMJcOdDN!I8S#aeA)HPlqLHa*C8yb6u-3dbiKt`6+w_C}7el(32!+BZCOIK>Ha{q# z5Zr%^5T3U6IZ9cHZxnx2xFmPoT*po79C0y}=ZK5^cS{)LcaAqEqfohCJ)cDa?ma+CFdycrse`l}+g8Q~|aA1gl zX|?{;_Ew1Xg8CBkbxk)nUAzm#xffp`E`Z-SFnkKjbdKc|IM4j5$+<+IXBj-g3>UTk z8Q(mX!>V55gAZWXfzS%H$#0LYdz`U?>2?<-c%5+jhi?ASsDZ8^HkM#e%L=jvm@BuI zIXBnOdkGt1P5dZo9J(4fOaI6rz&NQ{_N?CwI>r3T>JsW+^wo#2@y{6p|I90x9)A1u zUSkkC!-GDzD93S0uR*qaZxO_NI7oqGNagqPU zi~#`Ux;;fhfvOy*)PJ6!{*@O4kTQPtf-#k>q*J!P`U>zbxwiA5Uzf242k#{P8Y_T* zWWnbPBml0qri>Y0=hWkVoiYL7AK5N&wtfLnW1bZV3ttO3?ddPG4me?-FaA%;@#K5VLuwbNAokx`mG;YRv)x^nGou3jG_U<_t3ulz)~lcZ`*C)`az5%Lk<|ib zErKTvz|3dmDRg(tcz|T5>Caay=Ow?cJ|;RUnaqePp+0qf?Qpi@Lp45R>T~6vuC|(9 z?m*QMfpUm==8ru3N(T!HpQOLv5RUU6TjIk8u+|?Xfv-49HhJa-4-{*?l3@!9v4!&e z)nfksAlL`mC3t{K^Rr7Xg0Vfvgooep;w#nq-+~LmpX~eJw*l?pxw1elG5hxtybdd$ zJ6{?H`I;ostKr73O(xIebwP9}&c_T|?=KsJaB3pZc#-KZbXUl#N0ucK(nCrGwRXM(e30-R! zqPaITb?z=d=@Ci^{9`*n*1V6ld}A`^P0C$&`5WgK$N1jg94tj zMEsi&fVwfZ#xi#J~Rz#-w}nqFF*BH*glwlt^fIs<5c&hiC}|*?leme zsGwF|52?|#?&<++-o2S(&oMbYAbOQf_>>lH=MA1lf{O6oABYPG^2clbGgC)Sxc_O4 zId>_~@>^c|o!thIoG5xY;XpoJD?kK*P#IBqTyTH_pjA8x|E7*XHw~lyZkj?e5)oD< zj0dSP{-qfS>XnKUT9{lDDhvsSX%7J4?g-B{p$;ki!_MW!FoM+Nw=22kg4nDaLE>K$ zbhwylSv1i5kduNDal^AU0yd(;8J|}9a0i5sNerKmqkzww;mm7Cvv~jr(^TdpoyKrK zUs}T`kV|mboL=sA6YTP>$hpxgF*j3OG<7df59*31>11w#rSVb3K**^%!<}SE#Q;Fk zu7`F{;SYNm(zBmhtQMgZ(6PC<`MDwaXEBWYi1ZyR*>Pj@1OF9Hm@GccaQPOMpRM6f}wv@rv-^T-G-k(2SMs7$&I-8 zH*-?$gg`|$u%^gMYLflDZ*wjy>{2=B!jJJ{)_CxxC0upUyPj#DzgSMcsPmNB*)KFC z7L(9!jc|6ANj1olpgUk!SrhyAO}CAnt-E00X3P_Ply5eGTaNHaO%7Zb`M(ny5`CFN z!6#qWO9b{&%~Znam~qd_qS#2(aKvm`T(%Seo5Z;@D)9z)f;=o9I%2K6>?&nhR=Q!0iQ9IR6Oh;eWe3jOV<>18@T|{<&QiL?SB>C<4wdY4p6{#E{yiY-C|9^SS_ls(SZ3U3nL;#~BKGp@qy&po=zVMrX%`z9}`qOM*5> zc~y@su4AMQBti+#)#HuKa31ICiX;k~U?XgRPmf`Z52@t7!S2`&ZggHG7Bad>&gB=6 zk4zYnjT=BT?rRr;+s@YYViF@4L;%9L>8Wv@prFyMO?95i7Lh7WTaH?9gj%l8zfkqo z?W7iU^mUL#Etra_IPs>&`kp?ml$ZJ-0HZg=OVWnxjFYAQvm?P43)xsDZ1x`(o*1rz zf-35gKxz`qJa~=jDicjOnaD1UJ}-Fh%a6Q zBi_hFJ|XoH?BUPj~(g z5p=g8gLLirPIiMn({ZnpO-;B$-t&KGa}dBy>6yYDM#f*p!I{tY`HN+|{- z0d^4=#!MxZPRIDRT6~xz$C6UxYYqQ~ofuX+9y@6~1>B9MD0X~Y#ag_#Gq*bzdw;hn z`d|6Ov7y`$qa2BVomS<*Y3b=(q%M0WJ>04kVZu@7@n38Ih5#z8L`$+o*D64}$W(?E zJvPl}S@o8H>sbZsol&P@f9dYJ8o{vN)cmg~C~Gk_9q-vaMZQaiyz6wY?#?V{8CWzI z7u{VPGq1nSAyn8r6u^H?uR3o6lV8vlkrSN=;3R?`)DG+z@b%%>D{8t9D~(wk)=3GCRdc2O`! zJ_0wFsTG@?qpNW5iO0-blVGg_Y%q=Y7R*1vj@VO?IU$ z9W8x#wDm4Ft@akU!2U<+oIfHgB(6<@q^nPTi0?9u{#9{Y9~iC5lTv#MZJ{T9Tf@_9E-;1eDQqP#s!9{+|501(rfp7kikCNdND zMd0)Z#lPevse=TKC+HkYZF6GSPybcO1Q!od%Wt3-`R_Ubtwkln0M+roXMk;~H5&jd#UPpnC=s#GFf{v{ z30CFe0tnz#03ZG3!2%%QH$=c^j$vRRaL@;Y;Q&~82n+)Fa54@7EjKnNmxv-F76mJf z9)~UUB}%HBbZqS6;A6o^;4{Mzco@pT9Na5``jpb)VZp&xe(Nds%;Bv>3bOIbVJcEp z`%y+cwG&5YFX3&1$%gmQUg_z2!VUtsHmR=0lhnc^LFAY9K7dT(K0}sF{A<4;VOp2hOd*`1K}-j# zXb&&VOj%)j6*yavl)pm``bdqN7#NBobBhq4Sb`|tO=nz=o*svnu0OlY#eSp3K)TX^ z*t^N`>d-s_iPX3z+H*0(xL&b{mRbKxsN9CVU!7Ccef^rI(KXOi71(Zdy&~tLykc8s z_kDt2dbvc88_k*t4(8*th_J+{7C15aq099m)X5Rn5$d(s`4TMLc~$q40?JUi#W}wR z;@4hglBb|BG(1WZx+#A-@#EB7N#b(@=@m_Ra=|32`!3J$n$o*<|CLg~u}EK=w%++t z`jIi7K-lWr!fg}i-$;C-iHR{*{=}WjPNPHEx-+;d{Hg@e*GGs*q;Vg|Ws>Z*LpJFA z#yxC5NH#O9V0>b^c|(iHNC&Bco0}d*%SSc>K41OHu;r4e!TS63!Qwn`{9{1jK*12* zNK$J0x+OPpV}GM}y=NnxB=&UcBC!*WkGd@LzKRnWKR?qreV+Xz!sjx$NMUWnvg_)Q zRME1f4m3C&chf4De?VE73}f7AduypG=`%D^|Z$M68C1WhkdlFkEvD9+`|r2N#K9 zs4lr!F>@;SmTt#QRS5yqnx@I7PA#ptj@&-AYb-e}7OvN<3)Q@G^FM0#BZ-YSiM53VS9!u{mz7CHnU+RD{@~#MNBp%u28PNVIW3tl zqe{H(DSr72(2UMy>0B3KIUGKRV1Zb?D~GN!Hg5ggSe$KmiE{qQzTz??W%5C2wG#D{ zwUNrIk4($3)n5~cv%N;K1s}^@ui+A<4jGp?21IAb>ozAX+|O?kxhpqbQa@3NDaK} zub@IU`rt+4`Ss=ZoL9-F8_$Tv7xEuA!kgL_&)zq`c8Kif%Bw3)b$#a(VKX|dM2j>%6hVoQx9t+-*O1fq1`o|N53w)SNHKr7*52F0{#pi&w! zJq;@=9bEYcqm_E=J~CUwt%o3zN`~atj!4WW9Fmd_hhJ&<)mM0G;3`ET=~2YuPdPxD z$&X2BR*1$bYnQiK!bz82)^xOhu;72%(4oe6fx| zr`V_dXm+!*Ow1@r&#!d5r_^|YIbl<=*GRG1^<^n`VBQUe<}Ec`tMrb&C7i-xu}Cte zx5hy6?xa1(s_ zvfZR4uo!#}R!E~QP#aYLZ>y5~CkH?fzik{AO z8?&y)nH^0b4p)S;i@>c5LJT*XK+s>-!MRh$FY!Qj+n2?4=NLGe3m1av3Xf!dYSHYw z!BNd@p<+i=hCC@jRtHN_A4z#_IkWdOp`kp$f>FsavZl8aSHB`KHjPOEX1 z7fIk8=GSXXjyzK8y41DVS6m@6vf6TNAWuDYX>Qdp8$ge#Wa z)~b3P^EL4805G?fh9)rd)HTZ-J~TV1L#a~X(v$QgVr!%kWF|I@177!ib92TA1SqH` z2MS;5wI18Glp#~N7K$qlZ;nO!Q-PY5fs-E>3w!g5DnsM7z10Jc7%iiFo^D^gqD?m1 znZLNE#X4Jg9nQlk(u|6y@~#*;T_V)X%W1a$NQJ-E&>|;z8DBr|;B6Asrx5{a8q|Cj z3$_AxsQk_Et&$K5VbvhH`LT|p{#@CSn*Ll`@-?qdka->h4dzo^w!~HF+6Z~WY#q#x zBsv^%EN;^!S1k__F$P7q$dtd$FH9fE;ZpHt$vVZ%(%w~K$%Nv} zva6jJ+eK8hYa3;migj^|ec{QcwLq4~Q;yNft37Q9+MV;36UAF(W@%3={E5T=G6a@} zYYAJdtz?uq0_nKwWyNdKe(ZEoBFmCv)vdI!#%Xl-iv|@0=;(>aZk6Q0Pm{|+fF8W;85m!egkK^2Yu<77be1ksdC^z-=m>3AcxCwD@yqH~K9#JfKG>Au@aSY&wg`#be;%p>0@jmvp z%+*f4#!tmri zV&eaw|MLzM@c7%Lg_Y<$8$rMRcx{*ieNxi$plqy5+v&UOYE4W}rRAgO0*2RSvpbI8 zM)tM0V^qg-T(6I~>>q&z2@!`8QiB|rQn6Bwp{Mx(iSUxJQDPI z>HxmPj=>|yakN^lCRLuN9CNz^E-N_2E}7nxH)WT%n7jDVr z{;b_|+@wr{DfehXUs;WBMubKCS5z6qBBV`ehr{5&w+|W2kVfZte-IVUId9)CW(hY+d3(`#UDu@d|&?l>47H0F)&*+n}f`#QJGViS(EVD;^(X*Vtp!HO!J#U z^|b+^VyDDm8N(QN#^#6Vn;2+o6Jr*xE#mRyqEr~zPdaZj1(9f!68IBqtnv@6@Et0^ z?a&Nai9d2*Adf3>HnZxl3nzQ^ILZp`$ig1w!_JjqGcRqok+SxyoPBdPjlBr4giUi# ztpb{!wq5s4M@3*~#JNPV<+3yssw@{~FWx$WiaG0T2bV}DIUf5tu6aYkprd)u&`yob z;TQ-Z49}o^VUf+T+G0!=ZTBfo>b*cJ1N9KP=USf9Mnklnw#1CtYdLyp4c*Vq^wo5) z%o+QR0oH@oQR<;PF~%blDV|+CdSor4jk8{}ii06qib0$V#Wt%qZj6yXhQf+YtrPv! z=qQ7ijbo)~WA0=i8cWo~O72G-Dla3NMRU=7BRWW=9Ly)ldh%+uud;aB;j2AbB>Ths z4_O7I@sTZrSE>mIN1jEJZeq~gSo^6D5-m8xZ$+Q9-7-YB)Tc|6F!*Sgr~Y}6zdWSi zH$YBn(SwhdKF3X5_ZLY+utuTCv?K+;MSv2o8gHE@BXz_cPNnteDVkjxVXz4a@mnOg z7$*D})T1n~#}O74FKUH1F*_|t<)tP@i+4!M+Yz-g&>y`#Z7X+k+`2>V(aWJ%@%fIL z4zXkTj@H)9&@R-7?lXd@$CY>U9W6*TTUAR2%)mFhmgGn0<(#5GMisM3r3p~9SWeEY|DGas~#U zw9^xN=YKL!-v!*Qf^O9$=J^q=yA|=}Wi1uG6DYkcYOrdo;>;OcBa&+dqXM=nrNMU} z9OOoA*gn28Gk@*TkpM~Ew=dPI6+NGoo8O}-HFeuvKQge;99;}%a(!i`U_7Af$ZMU! zF#odB^A*Eb0OR(h&nfBx3hQOQ!7JRXUpw^;bWOP>=+Puwu&=JoxM2}K#*-&TpSsy7 z8^T;AUeeu!E!TW$-xuFkq&(b5{~HmZ&seC7qw`dN^2!9q-~ZF+7dwTYMA#!V`w0y2TW3Qb9hsSzCHJKsDhwFM@;Qca z2U@R^JYvyntk<%sdS`~=bcZpnX4`@*qf0~U${$+e zSE^KfL;U3B65^cpH^YceA)jFrB@jMc+wa63kGxxszXX2&#d!Qu6<;A=I+q!`rkHBj zz+VEw#J8ELP9n^Kif`0Gj?72hef@o#x!u}U)9ZZ)%zkG5cV}C zEPsRmw_8W7ZiX|njj%);DaG-86gM*%9qqL>SQypq_db2p#eWQM(X14w)DOXceVIzlxAR&iN@%(t-U*z6=1Pz zlpl0OSoD1Fbm(YYsJ<`drq^DoBWMQuqz>WpBue6=#Vh)%zY5^FLCHHh_l^<)g>$ zX@MbN5FBuoJA5OgHGn+srD_4i4Tkxu#~-3EzhWO;%ZMFwygGkv#(bmGNj{_o9f6el@7yPZ4_0_qZO`O7x?fYloMR=OxrQKcG7}ci{zlKTnqikFpxUXbJ|Z znRLOd2|`zu{C46T-A5czMnUo)t>SkG|2(G+)91SIT`1Ody^B$!k?~gG&Tvt`Ys*DH zdrF>Eu!cQn2PYvdLMc5B%$Xl@tv$8LD2*LaUHhd@^baxWh`0M*uhr_mUMvwyav-}9 z;oXnkjw714R|V&CajogM<|suPDdyPNo!jF4X@ombViS40;l#Ab(*3f+JBvT{@Tb-q zgctSK9uplnlRNy5g9p23dz-H!#!iHLtLF~ynM#gSeuM)emMr|$Hw2mSegV&w>K4xx ze%@Q|icO?|s>eoxS+hu1-dN6RtZ zs0RJYgi&h!@P`qcQwpl~%6dETZ-FkH_P&m{I@J=~bt z%A~7y{l|0X*;P7?A|ibYL5;nc5#zp5huHL=kYix2ct#~4_x&9ZM-3-7e^m%*Y)jkf zMZnE4HOa(%WA|9}HP-WK`c&hG+e51R_1d5)Gi1dc&kQz_MIbp!rI)>r z0soH@sNY)LsStl{2RfY{!oCYyCb4~S1zF8Vn3sGG@tf7FXZFHNuiLw#w_1#x+K76{ zP?!^ad)`ij`q~Nzqk-Rmqa^#)Mkjecc2@7r31*eNjm})sR2|Jne?shw`Q`ePrY7z- ztQ+vDG?O8(-)LS5ts_4Mg4`eeVo_`9hqt!d9xCX|IA_az;1e}yboL{;s@$h>i77Bf zd};E)sgVi;0+>6M%n!?(bt~Af=P=3b1PI@pOLv>NY0F8qWVl1^y6~&p)J1Mz zYq0xL;DK#tZ%6)(Qtq8?ds3ezaeFZ5Sj3lCW;E*HcfKC z>`32|&2^wxc19D6#Pe%cN2E#N`l*vGZcw9LrxX&|2$7rb=dy+wS>BDB16n?>JCX_hrF`Z0&UB_1@aKTN23Z)Umcd=~|#6 z=9A|Re?J-F!Q*P12h6MUwd0kqVs`8&R#jzn<`3?%aKsY5D-53ncTNtsQgYlzm76uW zTqv!qGbc&zEZ=jrTq{W4E~~3}F!+9NWKv7uU!jsp3zAn)0?Qz676I!0TQ3Y{*ggc@ z|C$zDXCfYs5zfsvD=#D%q$n1XbH(sE3B^*_>|C-C*K)GGV3%dv%q_Wk(pz$IdWw^5 zY4Ks;CriV5ccuaaOAccg(PN1@xs6L`7*)Hgu)4eSON_2z6zz6*UgO=_E!srs)&MUS z-1Zdu>+k+-f{nZNqr6{6yJop}`4!t9YV&$g`BsSv8?`2$Ew-L>P@|fVqjaDJnJrM; zc2(T9CP#QDCBb4+$Cwd7b3DGxyH_X6CN-|Ld(a z|GR6!?z8KZo!Wa>@2+!B6*!HhaUY@&8BbkxS!b09(9UyDB&YtTl@zlM0_>m;t#Y}#?E@5)oo>7ZhVcwF4&A{T@n)9XY_cz72%$Q&@?O2dc z6CuiJy1gJ1hmh*69NMCX~xf03&s4ds?5QF~tqRS(~jl7@)o_ z-&;Z7uTpKIq>J@llmksS*0tpiPRreY=E$r&$HA+l=?)ILR`YBgkwXS*?kkw|lWS?1 zACptS(~`M>ZYD4Gn{>3Zv}l{?B-e@I6B&Uyi^Tx79abv`cV=Gw_?I5Ayy&{aS*xb4 zcha6&LFth%qxpS&l&Vcy1K0#a4@KF!_O=dsCzyn-paGuW4xWW+9aDo-fi} zkCP>!3qV3crQxIJpm+4I-AwbVvScRdriV$`q%$JRK(qBt)l3foek&Q~&-*zqn~GB3 zxJ<=r<2>`&n2@>!PDrK9OXMGsjsM!$L)}SYLuZ{H4^InTgMqK(51mz4w=^@C)W!$W znA_S<)&Yn&CBlF9?ZRKB2h5as*b>V|xHj)%4r)X+XFoUqGoagtBgBMI*=@RwBY)(o9$jhlaJ@DSLm?)9 zC%(h@Y*=of*+lZa$sTEZ_$$1`2OU#hF!8CPguCKo=S!{mgO#&y+G^XDq~vLjhdb!L zAS>Nt>%&^$2i1!<4I^u4j?-W6@ngSn_z0DyOWMtncspD9eqUW21s^BIq=6%RKepfkF?# z9RW|c8t)-5G~--y?{Dmlv8gtw^Zt0=EQ$it9QIJ=hZJ&p&Z7l@0xO0S%r-S2- zO;A>qD>P77Gr8E_ktuwrKf)MAANMj*=P|V#>aU-;0v%`}ic2xtN)IcyMHv>=O+vDR zf7w0UMxowoHz6hb6PaZbbee3|>bdRBjZLjnswF#TpmW0Wve}p!WYIgfPybDq%sDB;#CDT*QC1M+?84F-d2YFb(# z5XjQf+S)ouF>w7gA3H0*Sl-@jVkpW1(yvg`9}Q=g)kkJ8(T60uMMiemc};XcwA^P6 zeAv{ZW14iZK4l4WQ(WMAg3y7adP_`d?0N z58&Zh7o}dRsSY;KAtPj%&V37;GblS%Ex*pA05r5lTRpM$lFD zAo6>MXq_G3!pfo$rM|n+_J8(($*AY#*FNsX=eNHjU1%8b+EwYrFs(X7Rg@i#VfS5V zT=Cj9e;FOmzY0N1vwinaVNw5WaD@-j! zlf#I3Cwsu9XDk(Nvc~eJ0!w%<^~0{SxMU}G#2CZLZ$UV|cdqzGe7b)l`b&};>&}Fh z&yL66h}ik1gkO-mCPi|H9n$?xTzp%8`wJ@3fxo+Flz&!oju56|c~{M2?Z95OBp$#j z6mm27AU-gM#z(|avnzXdsF&EYW@Mdie{;-(Vf~^!npsxL2>iPFr7-zGys<(Y`7bnu zvyz*juwo)7eV%X@A=wNWb!LfB+;p{o4EZcTEc=Ae-=iuQNllr66Es{`0vfo%2khC=nvUrm| zr}Z>tDU&7%mj@f){GB7jm$>NdJ)vk-o(VCA&1@E+!89l@RE!Z$A7x@LnTek;m{7m> zH2r(~9Z(lE%V|DNKcV6^700JV9seyvT{f+G4>{(uL7OWszsSyOn_WcB!C931^D`pir__+)ka!HTPT!D?SE(ku zuQ>>v-sv8kd(t`$Nt-*33)ufY?v}QGDeV5;)k6qB9eD8kIVvHEAOgH~A|0=5A7>~d zCo_^>lZn5=O877A`W9VNRP@17B-fUE|L)K9j!Jk2Yk@~!2{*AEE{c{>o=h_6jidebHvU6 z|32t~+i1e(PI_j;%Eit+hBK{UpybBAu>7x&zf3S6JHl1&oKj0ylsXW0D2k}$c0_KT z<90%}=kbyFTS3&1s1q0umH_b)sRTE^n&)WXrT)H=q4+_H zw2_}MMV3VMsSvhQ?ynU0(|r}F9}|hf&IS5Ood3Zi15KqBZK6&F97qN)cBNMml8BA@ z8*eYJ?Bmvn@39^aKQ><$souoeG2`2(WVA2;_D;Ezm%8>d8)iDyL2&wBs7FKgtVEO; zBVx4Ah0{kVOGRfJMeXfANqox-NyKvzZ^~I%J4-VH-l0#tEIo^MRplQfVmm~80>e;kQx@7bN$u&WT=Vl$k%!4BzfpKR->)l+NjJkJ49y6w zj`~^vbsJGXNT_b0mP)%Idgqa;f5FxM(Z;oFu9j+$U|2ZZii9MmbXjnc@)GT{Qd;;S zoMX;G0#Tq_LPbnzl{#GmQh2nuz{qRF=HaxG!jIMf2ls}_ z%|5TzIG0S3xy(2A4b!-eF-_1yZxrkqVVJm%vEfg=-vxdV#vnG2_a1dYi>H)cRy}16 z*L`;+Zbx~gF{1iC4|@3P6bb6i9@=wcF*#hLGVEj}6CsfY=M^i=aRGuC1C7+sN6|bN z(Zk4dk_d4>q#ARYjN;4pHxt9gEb)p`R@eX8sFG>Ij+|5Fl}dCMPJR z)}>xK$|oD%UUnI5_=T|W($#)9ef0CGg2+S=j&4f@0m^G+BemLS#~M!Z!BiI2wm=SB zTLJ6m4ZYvteqD0-JJ&ChP3%Q7@1XY?6HVGc9B}bccH8An%RI~*&eILl6e_N^Qe`We@+IaGIPe{=#^VKw_Ky5$ zs7t_{@;&(pV~gzC+15Ohyl7Y99mNPgN&W8S?w;=38do%fl;Gr8tnhpHF^lCQ>v7%p z-pr!-(zB@zfq~IugJKZo?EMX%-4l76Wv8e*qzTWu4+;hY4yzrpX&{AsIgwwTV{Ec?>wiro_*#d8!zU}9=eO@DVtw(ZYiWT@&v79_G^y* zTFpN644Uqybdh7LSvhn^4f!~Wk&!g zqWyl*g4_*Eild3zmPf)4MXu{Y;1ioGw8OSj8gCh|Vip@k*p39xu{_`h^Nu)$x(-YB zj3{4aKQhu}rb@R&otgz4t`(py;YUVchC-}F=PbRvrWJnc^pukbK3w5ocu4=N%kkK` z<*3FI;}d0JIG(i;`SFwXEoEyve)mYtxs;;|lXn8>?}3#{at1(^9M}II^M6bJe>sp} zz?C%xd0K0})1WI~GXP4eT!-UY%Gy&U0J`+qronjW;M*BAGwz zbqm=A3@$k@(bf#{`m^0d-ovpC4uru@ysp>an{8#`dHWu#iN=WPN2ShayO30f4z`iP z-a&Q(myJeUO%k_B)g=`~m#h1n!Ha3no|kCt*}#YqAbf~5iRdch8O}mWa1Jl8?wbR0 z$f&nUVlBC)Hy8b*CI9|F>O)>G$5q&1+XKHo_SS18prQ;^x#bTIuXWJpg1T``3c69V z>BNabafPM6EA6feS_ksNU3S^0bP4YDpo;&w` zYi~a1r4tf7O)y;G?33sC98neq`?(9OYdmVUzy2qL|h zS9AV?fJIKpCT46BkkHUSOXZYU(8tLI&~Vwor&c#@yi~0Z%rD&i{pKCCR);9;PnZST z2uV!1lTul%q35m}4vh&ErI3DJ6<2n~+UCm1%DryM{5|B_BE%3G#0rCsK~XXE{0hXg ztHSzh<3)JvcMs!kl#q2Wc&unn;s)IMt{qGHyJ2e#WZf$D(yhTnHQKyjARC~GN6VY0 zh@@G9sm?~L9=aSXrYUk{!-*YR=Xi@Ym%Q7r{D2J4S4c;(T#US0#}DVyOPv;PbsF{) z#=viLNd)`H{73hcAT2$KWdGn0`8$gZ4m-!5Uks#uy7|8~Q`d-7BBj9&X|@(NBa(Qy z#+T?bseo0Lj^y}W44*K>?Uz0av8dJRVJZbAS(FM}=%p(R|k?`vx#b_FFiFp0W_R%2c*g}Sm?PsvODdkcWy~gV~`UpG*yVS}= z8!d}Bm1(MBKoG40DelJR{9qN=t{qR+Ad{O1C#=8h?&o9;o3@E8dpYDbN7aQeqCTRb z?1^4opoX-GSoR#L_mP2a|1}u0ET>S@^+5C99K3G-y@btraxP(r2OY9(L#yHHA1cRl z23f5PU_!hrND?YRvx7hHvj?zLYiZip(E+Q8>n!bGte~ zTfG}6^Imy%I;TZR!y1Xw7;uCD4&C>F^FIME_Y--%!FM&qD{SKSn{f)ADP6F##=Q@K z%prr35#B3a=`H5>CkE4#%z@X{j{S+$H7ko1>O}0&OmPM?7>g*gn&gF0m50PvkwrT)_(RB)Cn&a3)dkErVR7bk~a$4xF)!$sxaxHdBiP z1bzf2In&~NkEf>D5T^K$oSg5^@@g)Ju99HK<=z8!XRKAqYdwi5Tq(8E^j5TCmVIS!+juEh@0_4(2FMoiRB|6=PPr-wXe`k~VO$+B#dCY$=Y^|Pp&dfEJRHi=f`Y&7A46{Wf$h$ zRTH)N*zvoO%ZXVgw^1idLT5&k4Mvw#15ZS})Jv*@3d{D7N!F;lhwC;!Vd}*ZWeVzk z6CvT&OVMwGlt_g;!CAR#o9{dD@rLVFuvnoFAl4RUCN(9&2eA`gai4~^c%}5^=i{g0 zyO`Lq(%0zSAOC1UV-j$`I{LPXZu^ZXu-8lid8($H|N2>+K@F87S>7Mrk>%7Xsovl* zh0eRkh!iqb9nmt#RelXPI{8f%AgSarN10lAQU2{9Ma@QS67Oo!Cr4P=o1(_h!ik>p zP4K|5LwO8c-g(+Oy1`#yUVbrQs%$`_x^1pshmk$^o9o}|z0d!#BWM}+wEA{h1kAmJ zTgof0m6sZu`+H>C&={*Kgq@X@bQY(}E2_VWMFOit3I*QYNC3OWwdLEf^5>)Dyp zDv~T(3!1K1e|YxUt*hb19kn{PHV~hg+AWyed%+>&>qTD&YWbN6~ z&Cc&WzxnNmJ`N!J@ztNTJYJ@LsfCx~pP>3sIhAXSD@5ub5}{Y=+RMFs+y8kVW{vhW zF|^96`I*)|Hy59)WhX605Tg&gTly1KZ7ZJ~{z2F`WI*89H_Y;oW>qFs>Fk-`cK8IFQbCXa_b@PTzpR?H zK26)G!Yd1^tc*_ZXe0cs12m7 zd1WVesxr>Q@Cpi?NIboReosXgP0b}Qaw!(AJhhk8Z+cd2|3**_SD{h%B^)|NRw{c7 z9&(gLSZz;+fFu7FZHm7O`})$AH_da5mwTKYYDo&z@`c&4_#U zd+?T1Yx18F^v(^xK3V zhFA=XcXhO;WHtvMZc{UUwrv_lG(D!;T(aK zBH4`9-7bW_dP(aMg{qBvQCq$)Z0&uU+PJ!J32Cd+EqHTYi@rLAej-=x_mUh@OD0$= zKc04P1LCb!R{l89>vvu@l~gwxs2qps48CnGqS@FT7+1Ty(!nm=?CgI3+cUJ|sRPvk zuN3!j3%IQ_A*bI5u2MuT-dpa>w4JprCA7|mPLd)J$)r#aF=E#|lkX7glTln+d$rC8SdTJ_p1QzDv-Szt|H`9%)chGP)So$GpET=0ry;HUigR^jW`A1qRi0dhrBR*I@Kn@39I4kcAEBIqM`7VrCS666T!dk2Kh<()FU-U>GJ#BOo)3dh%sz%b!|Y=;4$tWY7kD`57w*+Y$#!7F7TxM1H@VYKUIPC>yZ!@3Tx zrk77nZn3|CMmKpcYdONxBxHe;zt@Z`I->L4R+A;{$&@tPp+{LD!$88z@ zkiYy?^~`CS__BYgBm)Ys$W z@Adk@d=fGTI7!Uq=&Z|G_xN^@i=1M=OiI>KJza{D4ycb&_Uee6?mV0){o`Q-=l|%V zNY6NnS6M4kyit+i_Vgrh0nbo~pLwCO#Z{7*$5@KqTsa!`p!8iP6pT?S>ezYAjH(vH2V84L5q6u%qLhcuytTT7pD@=?2DWUX>7Kp(WnUiew(c#Dr-vyC zPGa}VbA77})q2L9?sdS35LiMnjO>!+~nAlD;?80~I-od6^Dq|{6(b5t3a_89L zv!V>b{p`ea`*dy6RFaRyw@8E5dC9puL@~HulQyXSQxdFTp3HI_lIaHv)7^`q^63x# z9xtS7+B!JCCgjOxB;14C3Xh=AOOUmMP#p_C>J(^607ng zgJhz(m9-5}RcS7fIw?jH*N&H2%*ejXh4evxhKkfxEZS`n?w{_4s4wMfy#B8969yU{ z0Q?FMJbMN${E3M04B=NgA85tSXV~mG6kp)6aLL)k#MO-PD4m=W5I8tBOsD{=0kb=Z zru7Y%)anI^`Hg-3zas;1e3sutXcJc);zmT}3S6$8)Ika9wvGeJ(M zt$aX;>ci}E;S+qrLj86@6}eP}Tq;CEKVjaYITM_k;gM$_kZx|6z0zOf%|+@%Xp|(# zcsV(GhEnbXj+hjNkXitYy}I4q%^vCFiI>vQ&bd%V4|C#KA|^S|3&pn!C1x|Mg5Q68 z8-pZ~+}dbPSCu4TZ^@snhSPRctbh~%Cxy`}xLHNvRFfX zwAokAT=wb5AD<=D%!q!%R7iOlpYIWUdN<89j3~P1IGUeMzE;crJ)`X~l|AmMaLjX9 zlp{#ITUSpj(|Hof128JN(ij)1El>Nkx;kGTd+Inw_O)@CmnxF$$HrbCD;vA+x#%qQ zJSJ&*WY}HX1<_l-vB*1j^oK4F-SuB33_nqFoa0p}SPWv+Yo$HLR zbF{Y8&I;!+`;;v+lkqsw`*OAy$vnqsX4lDE<)8CW8>0QVU2pPN#H%Z7EiJ%yFexW= zVC%V-HSLH>EqY+P;cFb1BcwLr8hH$KZ}`xelaJzE))LU!?o(T8{K0@x?`*A*4)IOQ7>F{Hpeg zi8?4JO~cJQ@3LR4<|)Gywp2OmhM% z@Y61wJPdfd^&5CI0W5gK7J16_U(liN7vPF?H=?`plo`M7^n#xC*>y-nv}qB<^~^nA zuRHlVoQuR=7{F6zI!`SbdkjAx{Rj(I9;?|@d86>2cHuNj(_v$MQs>uUpsxp~tIspA z^5pf#*7$p#Unh^x9qatT6|0=NpP$~rLdwh?a5gbJgrG=+Z9HEiaz6`i{W3Z;PR6F* zZxWbH=Uz8Ly59^*ragFDYk((mQ%%ia<$?2)k#qF@rCLPyKr6p9o|uXifgo)$EzqYL ze7j7l)D?Y=T4B5AJFVl^YdHb=3xtMlKs6jeGtWHW+zyn!uQ}BTn{$ab;w-Gg2YL;| zW|8N?ir4Fd(1?8nH^I18jxCZ?`WjD}i-lVttye%IrALhP<%zB+dJjl?;T&)>yAnh# zgPj}m8w4!QMOmEJplmPoL_4e45>KR*g;$&g_T7QMF4Fl+%2g~(4Bx7D8HNij=2gOh zKEFxeJh6tdg62?xljTC7&;()zVZ9^q>7oewvcBJ@Y~-)(YxYZdC*M90%8GVB1i!u} z#Gc9IpX$(RR2x6?+&f^FuH?chOLUb=9deBpBAR+@|2g3}hp=1(fb;9jXyqN{$?^Ry z2+^bBOct@dI$}yMO1yk+>e_lCw&AxnFgs4-iK&mEQMp0c>*!aZTP$tlv)q0DDv^7= zMjR366K@6BddKP34yd?qv-?a{qLZTPgs{1##5t7ED#+^HAuI9Y(ZP}Y8&*ndWV zTy4*85h%fB)FOas^m^+-IaL1H=($MIgVT?vUO6Vs)JL>2)_4&Z_JE|cm+wBx_9OJo zmkNtom^%(Sqr8Xa?KrX|W^&NpsA&heG#@DeJ-ESR>nUXz^z8$YkbRqt#a1R|?VL%t z^LI#@r0U|RfjjA!^x4BZ8N=2aSYM>8qzR%~h=6R(Cf5D4Aw{VF*nRe$>Gv0^E;O?p zv>rDCIvV10BxvnxXoYKN1CNbEfq=`-m4rvh!O1PIW|ELtP&9`{CFbnn`X->Ev1yi^ z4WO#tk8c{3T-f&oky=91*eP&Fodr4L5ei_~&3tm+urWvU|d%tzH-Y z3-B*{{C_+hurlS@xYsAcCo>L^{@H&F3IzKqPjOwNh zHdWFd7%HGaln{yraK9zVCA{X28Zu=`&a4d0AI2FpBTi2??v@LccPIf=^iTqn)MI;I zB}?ot>1lnMCx2v%kjcz2Zab&JXq!b+Z-b2(o{LC125kGtCtjGUK~hae zQSdK+B0`_&P%UJnUrRZ~Iz2!g5(3q@iK!#>m%VME57tK7@@Q^SeRgNfhd$f zA_K*@>S}Su8tRx^;`lR*@Z^Nzzl~*An51Sk?^dLKmRQh`Q*DuvN)&R|ET?x0 z=a33Uds(K#yfA$4Mvg`9>t(MG=wuPHID=O1^w`o3j42&y5KTNxrPN z(~K^bVCH!RcI1t=?wXZ#a$MaBqa7|+tg@-_Qq1D6VP5vxN~ANAV2x<^rc$4vBB-n~ zJC2wj3 zF0T5q4o&EuRoBu^tqSx+&Chtlr9_=ilSO<8Hg6ihO&3MrWQI>y=09qz1Pb;~7~k`! zlA!VR>t{H_XRFap)7W6rD^RSqn9vyCy9ea+)2lEGe%DbeO|Gx7V9a)FL6cMD8&_9W zFl#s#wJla>E5!$r2;^Khj!0Q|rTTvE=d2xve8f)hz&k;N*jfARwCYn3Bx2$zjIy=! zzu}wW)tpK(UG!y+l!i%b9LVfh;sz(G)5p7&(q_NaYo68;NGV>5)6#y6#7-y39%ZrI z#{=7GE=jAzOrefm1F?L?uiCN{|EaSvefzs;Tk6RcVPb!~35Vl&^GQVCSQb#P<^+E! z9L4#OxR~H&dNXNR>RQfE1RYZ>K;jqGEeiMrjvHcPB8)+^v&4(PP@06Gs#U> z3@rnn`k7gd?E(|8vkRx6r);Q#r|xpYU-~MNDT3e zW*e)AlqZ<$DbVU8U@HV@c@!ZA1&=4L2=DWa^Tq6SDVZVDDBA{4O|-M+tH}c&gq(vd zT3loKd7{+~n*ei&lKXLUG&9!`V3mmEq$WFk?qysJSQsVQZq{7`n_D7!2E%KnR61&_ z`f|@+)3JGG9FoGS#MULY;^B&>D)VcaY{UMuRKxH-SDbHmt^#h#QdPHPJhM-{hx1jo|CVD{7HHwWgjT-l_+^+>yRzZC8hVl4 z+G(WI7P5<&QqAJXu~e!aAaQ%IvZY6G53U9mpn@#RrDi+KPP?QkY3tRW(J9xsL*Gbv z9K=E$EKeIcl)RBNAe$zkaZ&1=_N?DTi=h>`OsJcY?c!xry!2Jy(uQRo3pas+dz47t zEt@JLBU?hQnW$VUQ+wC3T1lmsBO@Yh4*O#|IyELCnu16+C6P_kJZrm;Ez1*?XQ+V( z5+O)|hhT}Cny>dm>IEKmFm0~MVxxR~hL>iO)~n{Gn?k+T`pE3uR6k8_-bg|$2Ld}> zL>sw&TwF}E4d-EhrJ7^9NVZCIYCT(1Q@z34)PDJxq&LPHqxXd^qhl+!AVMnw%}nCV ztv;mp4vHzkiTQU@uUqVBOkMPriIjyIVAUH7s;G&V8KBBeP9CqW2A3e1bOF^9hII4Z zOcfAUj#lmmMLA@RYB^vBCr{yUOzgl@yygvWd5eH>9U=GV>n2oMGPJVlywnhMU~%Y% zJ7*y;-@rGvlx@nU_-P4i5mR>0R)T;%b%@WQ*jSs}qIY(h;Y7Elu{hJBlUb35PqCH$ z^q^*Nm#J>6r{TN8RbXb8jobnRwA6^GD&@9#E%EJ+7wMRgRt&R1aSx}%oU3Mr*0NOb zJ%>QVVCs>>_moTNLe6tW6HZ`5MSdh6YtY-)Phr3TT%{fDWy_djr{L1u&Rs)a1bUkY z1H}yE%~d<#aIuRQFnyZQZIGgqMhh;Y#^G`p$0p(yXzA5VWAlbkskjnSsZvS!I>d^k zzws08xNRzWfQnuRjbgiIN5b&yXoRQ?t!P3!^T;%&lMd>cokdQLwh7RU z{oJNU)dw7$dGuDHPdWBN%^GLGh?&QebEQeXGKGptRg9a));Tf{q^U}qQvlFJ&S983 zx{5GsG_))wxQZ)+iXj?Jy|Q-twIm(#lyafX6%R<6QI{KdQTgz6Y#-OykqZ#bbH%S2 zG-HP_U(Dt7HSh*Wp#=F*b&a){FI6|0XLb1w*&}haYd1!I!M=;8Glr=dZAqRF&g&P9 z0K6Q6&(f0CBEv-m28yfIU?*blLmyAXagPz4^9{taZ`C5sanK#v;$d#JK(4V)AYq^X z*Wdpj3&7*UVPeO$OMJhS{#bXiNb| zM8wR5erhOp{s z8{kon22YH&$5?2=YEsd~byNs25fNi7zfGaKmu4d9j;Xfb?s@%c#-ug7zID;0L9wjk z-naSHne~xcO+y!JEtNZLhJX|@&ZPL7%B8@lI?id=iQXDnrS)f?K z1V|h%*D6R56)boiN@~K`O|hmW5xVQQV%5#;!x#TeVuhU1)};MSrM!PzrH&D9Tq+O; zw`sJ#eek8an8Phn$F2tQBEaCDU!TEp)i#EvF(4ktIy09j3sYHcwAF$*!huao`V@sg zR(GpbwtrEpNV~F9z5CRIE`>g;lr|?Nox3FU?3vwS?V&Ucczl;I*hpM|q)G|Zu3KVJ zMPF!rKCwK_)F*UcGJ$n_CN zK*B9i1&myBB0c6;9;4}%rXu8e!tgdp8S;;!{*txRGOi+Dz8lM7Xb?gnLvyZWdHKQ5 z73o--*bS0U0djWKt=}JKB%TMIx|*~eyilkx#1v;?{gMLG@-?NlEY)EVx=RvUaMc=S zOzCdAi;MD_!55GG!qW`tdFe(r9fDx3GXq}lwOH89E>81P zxN-}ih#?v&kj8?|C7sc!YpB$@S&0QkDyc$;qn{}$llsJ7CZ4@Kv96DuaIRcR@}`*{NmlI{;eVB z+ZgNW{&yt*t$F^1`(I6-|4XgY{~qGkjgpe!=e-L@ zEi`k3q>a{BDFIuIAj(m^C`bDxImlh!>9mL-nmw4{e0aobU2D6cugi|JTXhIZmj+V7x-Mx^ZOEfQ zzf*0zA|Na%L=nwyy7~G>1B73IPa$|aV`QW&usxO~##N!!RTPW~^zzA4lk`U{MZBP- zd0g|2fBE)+AYN%*t}NWn$4f}73Ec}0FJxMQ#)gZ5wX_gzjP&)o^CY<2c8(xFOYr@S zXY5ZHBn%!f^@pD@arXtw&PW`SDVk|+-{$}=5SuQKd-BF{S!X#}U{tIw;Zkzj6D~%l z<>Za*9t!ybMf_rXtB&d15WuZOkN1W>d;HxgGy|@=Li6#O+iUtF-BoeoIlD$7(lKfn zZZ=*oZ1VU{g6f!y0i*pN7SA3A!WME_Sy_{YB-sHa<-pFRf$06{QGb8991|`YkkrfoEqV!|; zC^{(|YKKZ9gHPle9ZyYe4C#Sc@;cz=)p1aT#@*X@(I2vO8riUHP3#MXg87nzPlg%f zw_a6r_nWCv>fLTOL^C=}CdYEfhV2ujrpvFa6Lj)C#|K3FP2bCWUh+3r92Y3yddag! z8Te`bdcJo6af&2c3!PQr#TzGewvGLQWIeN=Fv~cnZAZS)@C?JEh2Aq}Igbxw3)A%Z zeEETZtY;vgZ;PLp1diiKG22bQ9jOORdb&N^#}ez+4`Ef-cNLEhi3XQ5+?-?d81&@v zrSF%P^1wzj*sp_VsS`u<1V*df7B2O|EY$lISjZV1K_klI@_r&0H<7k_;|>a))|3_s z&O8$IdN9C_>z4_EUy9f5`Cs$wW`XSUOJoZu3%}{-j7F4vO#KxpEWKiMQOj~ksZS$S zQ))5C!{gOHIYNHJmc&5K&YGI09wm6yQ#gq}Ceo(3(CsX*?q3Uv5k02~^ru|qy+=70 zG-M5q>@)_4;CIRn=Y}d^SU5(ZkB?9 zAg#JxAFivNuS?zl-_*^|{A0+>+tbLm0fILz7Yy%h8su7BT1U&KoJ~F%|df0iX zzBObHVxM%k?8c8EgP`lo zw1@a1XjZ13NaVYA)=!vn&nLeL$%SFfqAv3N(MD)(j;>9~QNQWUh{Y1HsdMoj`)DI` z0kW2oL%~ioamXqLJ5!_^g>f?d?vbI*r)cWBr-3iC&nBuq$~afQDX=w7#rwL_tEifC!j)c} zZ~717U>eutVH&GPih+|+s1>wPeM}F{BLMMIjC|gSB2nxYO(Z4IPwZM(^IWx#|>kFN-Yfpt8dQJji}cIoI*r3+pwgK*7CkHb1G|7+QiX8f8uM z9*9k^tbW%Rdvuj~=3M7xc%n&#mkrn%Js(wB<8`_Bhd_eCT{U(pfokAD=GD?{eRX9W z-)UpIh6@-Gs9v)w*U`YT&$Lt3UZHCqGR|N3<_lhs_>dog(%r&=aRCE-GfIt~+Ko{k z+W5q4d{Hy~xpOALebFcyho3OA-A86SgJGFueXokY7^Lt4oMS+Zg#`(6w5Pc&(Y6B& z!4r#MGiTJ6=cp#8>{nW$XKT7@Z55IRNgvW8see#lS)Q2Ch|9XZZHCLi(uCmJXGuQi z4*oJnqagFbcWPW`IE z!3C57ROC?sqMNN<<>~dMgPm3CH6+^pY84&XK5S|G)n_Is3Mns;cZJw1HoHx~+PKL_ zJUOLawxv+G&sFMpM(4I|!haThDrirmyC*WA zR2Pa!xd$@Vj5O#~c{T1!fvga@#i*@ClnA4F@?)i+nZh5K$%&a@4^CY+_8aehbtkz3 zPN8YxSxg&MO4Nwq8n-(uHiuSuR&Coa$>Pp$!`%O~hFHv;8RgGPG;1$k2wRdd`jPE5 z_e>^;8)bawBm*0c#ODqNbCSoX@3KQPC6iDF=`%R%NYc99E0R|fpX%ex%Qfxhhn8Lv zNx7oKVU>(eGUgUik<9?rV%6z)?Q?7xMvo&{Z;psFKBa^%s3L2a+f}I4*L@E61y2Z+ z<^ppx6bfJ^mp)ti)F<#v+IO(>Mj8#IwN2qzD=N0l3`S^I&x+eB6?tC1EHdl%c@g{* z#>xmY?^3#~Wjs3C)o3-0*yAS*B`!1mxC6~c=feICFq4M-SfI456*3nst-iIXWRfU8Xb=&cMe0u&)VDcQyONz#T)Lo`5?dQRRoPLL zjKqw_U5KJ^t&MM<4n>sm_6uA=j?32^_A7*yV++<`N0;}`pSVs^nn}R*>-3_P0lmYv z-oX;#W_aJ2^t1>y%QY9a(0fi|O0_0E8PwF1(I4L}dQQM6>85^7`Leiyi#Q9uNn8Wq z$T7;Pl|`?$ITKw}ImlI-tN6HnN}7sdL8*@Mu3T*&E_zDvp8GHm0pA>4y_?ji#T$la zIdYgg@$U_Vv|6Jon6`?S%pOdCNH+2B4UR>E#`nXf7mfV?e1ifgQB^OH*ur1+PacOP zNBKXe`!YNi>wNmV87irdBW+rZsi}4llNwm2ij2YQ_Qc%L~?y-BEhqX zv!quI6uSI76!sSG65;f<%(>hNEIsp}E`8zjl_EuN_6F(n8#B`w_S2y*ko#BQaOOk9 zzk!B_h|T_^sK4U_RLN7xEu2{6E*`Ux?6o@juKw_yPF*GS7?*icSd_sBVg$F@Zp*|2fU7NGf;xvrVAx$JjRbENRYA*Lkc`e zVus9U1-3B5U?P~X@^g)YtAX;#+tAtp!(rLKc+>bPp?b;Oft=vXyiJkJ7@cPDoB@uA>EA2DZXhWjIF(nkyyWTAwJcP?sa zy_app2rkk^qwHoc0F$tU=3E71d(Svmy(@L=PK2HDKM+A}w2b6ulaUq9iPf!Tn%FweV4&t(ftuTy@|DhJIn^Wu&FM z+Oi)UL7myI%qW!O1W`TBb?B?ylneAhm3&H42c=RjTU0kWoa0Mgud#9 z>h>2-77@Ibx>^N+nP7S6S9WJ~A8?erS=hkFR~&Fa>JaK2o9*#l91O*XB@hRC(~pk^ zta#w-R#N}g>Y8%j0I;4T?=M$cPhI;HW}k@BoYpIqW?e(sbiZVpf<>I$xE57F8up43lv1-TtCQo z4E0Hslq9|zbSdS;*xMZq*){|Ub9qNaGg>S&C&NwFf0ME@>#oI%c%&Wtj`dYN(IPdu zoH@Y7)7CFrHdEsvYuRtK_ET?`N>ktZSHFx?ql5vhcpRp8hS> zj73*41y70=f}`UqwF|&-A(m2WgElO2ZoLG?A;jEK3qVl8vjzOZ$s=*9q!#_YD|`pTd~O} zF5T|bpbC)o|Kjewqng~deqlsViXcKj1XK_LgeD+OMCk|#p`=hklM*C>(3GZPp$Y_~ zBy^A#AoSjgbZLt8jx$ zG!B&qqwNW=Y`Tvt{F;e#N#S;Uv_fgonw(RV8~y&Ss`}0U&qj4z9IMf?Q@~s_my*@n z)kH|B8iy!?=+-HlfZ<4?WVcb>QyYzLHEN6wLVC|juVD?Hg!sYQpi8+B94Kf?Pb2$1 zFV&ivKuX++Q~$FO{Ljb!|Jaj&N~LkICUmoB=mBDrKhgSy=B3weOm%_ea!ry5S!Xf$ zlIsMnf+)Osf*$1p4!k|ovB-u$VsEa2YM!!6(~&v(sKX3pqyTd~pQtJNDu#2< z{#{5_j(zWIFrW^_(3EsIo9nH(hV}~}ROgLIrg>wt!d`42Fx%|)3cihC=`qzKmEXha zZ%aC@JKi@w5(#^(oYrrMqt7d|Guql~O%~=L+eyUjr)70iauu5WMy1+82B1ceN(-0~7;Odm3zCf|ylww^&X$nktE_ z%pJ{|?2Zk1W@bF}sr&j>>v@@ZJJTDq;mfWTPeOSxqL5K~j;Zl{ye~~v08w1)8ULdW zo)m(|PG0Lc8Vy!mtV<3Oq+Bu_WTTJOlES!fql}VPxIfm)N>BIIc_;!F5?~RMS+Gq| z7Xyx*;Au|1q?Ez%MR4_G%UM9p(3!F%y{3cQ09Um{$Y1o6Sg$a_w?ioPG@oeOAA2%JGCXFlu#f@O`fQ3NsbXWnAk9c z!6}7M`HJfu?nSVVHkn#@T=RPBd}zG%eye>Ewy$Pn;eZ)FKU@(z4ZTXQ^l(m14bwYi zy`xafVjvX=msJ*5jJpiZV(DoOv&pVzdRpFKV`-SfQvH!$QvO~8=@)E(_;>34?9C$Z}@1|6^r@dk9@@Ep(6HR|A*I;ybtAs3PWe+lpc=#Mn&TM>hcJv@sjYu zwe3>q&6ftO?v$%8Y#GY!E5X14j+6KEUhq5#d3Sl?zQ!n@;1CDae6HXL;RmJO7U;Tcm0JI+b=sVFDr*C_dEgou|18oR?133uKVg@n2R_G5h}}7iedy{O#{gnPF-*xF~h91i)9}xxKo_gq}J^ zH6l$xn9z^KQ~gl-M;eo%VsbH<^TPh9A4S@)*z|#fUR~WqZm=kZs-n&~XaistYp2^p zK#GGr#jT=C$QpNGZ-l>n<9UMJT65o0w{)9(^!v;lr@A|dawH2(Ffs?waPRiy%Da0n zo_bH#vP`n2>l5#~$spZdGo*}WE}9H3@}Jnr;qgiPS|fl>&=g$< zX$Xyqs5RI|T!xp4wuZtXhT4WSTuxu!_wI1FPj*gnh&kmqYTu*n6Tipi(h&Eu0vjvL z#AemudlVIvC=RVw0OlRWVDmL-!=Bdll%b1`MDECxwIc7-LLHRYLwIbj^_t$tqGgKq znB2+A4#whib0Kj&iSAaXdzuhy1#D_{OHMAigOd0*jn|O6hDR-AI-Km>{H<{bk|>yU zl1s{Y$zwb@vHj>f@jJ-y-q4!>{ACI#B~1IblG|S_lVqa;adw1Nr>4 z=Fy54<)RcM(^lNUW~d{&Vz)i)gq{f{TQ?%?%atGZ!BJ9@W<-lBQxT4HZh&r-RWnoY zMKz}6P^5gH7-^K%2qzrK*bh1ikXFqV_1s#1$q;#*QzmdzbUP0SG=FfXdofuXxDBfV z7NS#Wrf(B>rqy^*EblW0V^q>(_eCfHbs5poW=Iic!yVQ|tayz-Mnot56yr4$EoXG5 zZ?F|Cm{0OTd}@MkdQ|mASWGv=9mSGXqC=%4N}q|hxALa+aP4nY^vteMM7^;HHd{6?o7)_Nii191_{rIa7~t7tNG^p z=Q_?aouN{cI*8}ObN2Bdkb^0bo@TTnJWj)@jvxJwTjKe|eXZUMIg4{;D}VY@rNUAF z7x|KBDtZg6dN#wXb==1u^@uU@gLb{=71$1ua(z?rdUw);A~~{5N2vnVG(&j^Y1{)@ ze0v{Y${h|O-5;qQ+=_|lD-|rb04nm(>yfLh(bH;uUZ}59pj$7qDtXV5(Ty)VFUjmR zmED1f)#+1q{?gH3I3SoGn?yNQoY|#jg!n*t`uP-4Vxpkvw zbq@#UyLSQw+c1Tvx$-$ZoT^3e@aPp=qqW4l+(iOoeuO50S#-serHG=;4)#imRVse8zQKPngI3dvS-24F z{rsHG$WD>=#C;V$FYinW=lILYBY$y@CDOb%dS&9iT43P|z(2UE4h7j&aaG=p7#5~A zKTCrs&JYKBToNW*%nJWvIbF4P@BRP!c_KVtly6zU?QGsp#7R1a7eZ@7US$;u25^b& zx2*a~ueL_7x$*6!tKvfCHN(~?1xI&>0p&Xrk@rq@L!~E&ODsAOxf@BMEIX|N%i3-t zT0jR8HPIG$<4%fGr9@n+lg!Sbfm;zTY{3ya-`L2kvv7gW`LtBW#Z9>PB|7W0_J+5su%e*xNPMHb~@tv+9ZikFcgpAV^QRs}Zd@ z5RhJ~kBxv6aF=i&;7OTSRs4DcBI%S+NV@{k433O$wDSGNrBpl^6$$}FHxzEivaWq$k z_pW{6?|bp!{4yuqd1AZ=0|!^uvG{K-R7#;hW)t4so4RR6GRh65}uMKrx#@)n|XCG zHBKvkq|7M}aPX>K5w2^)=DF+rFq*l4wNk`KD=e0}jlTL0$jho|OJnHkO5ziCX|lmE zQQVQ%sNBH$ycWCq^7ksc;Yn_d+{_noay&A1`;M%nJWFdr)95w36SGQphJ7FP24dl# ztMMmp0M-T*FYz>weicnnFFqfGQ9p8_1;(r=5jT4s|4h_p8Ixq z3AYiD8?znth12%k?ebOXky3W4g#MMqYf0}q@5*Q5-?-eqkUSf4?Rq1R{k;bYeIIt* z{q#9C~@Zh8Y!Cd^DJdm*I^ydI%`P4(hdKp+SxSWACt{GO5R zaDSjl``}1%Icmcf^of8iG*jrt=oZDthLZ6xm${r%N7o%M=5P6RfWk_fEe<-*I=dhP zU*{4s%)`!RkJO7cefEkFjBjN~wB?o|r>zr3ivcL8cFhbYQa^avBn9rMwhT45t1g*i zuUomxLd>wVAV4bd6D;y?FUTre1swA{GFm*{K!_e>F@=5e`%FeG8H5Nz-<0(Sv+YAG zx!ljOZqMN?j^CP$GT)$_?Ir|7M^gvFE%rUcDo6=Aj0H30YT>F&Azfy2Np8zzp#ZiM z^cuA%w|c8Gdo;Ak;$Xi;Ao$11$Vbl7eQ&CODTvzJA9B$z?)$ntur_ke8*$}v(<$H= zmuPM?GuF(%ckSUQ$aajwqy^)49ea>xQ&yvhqL@svMd3we8vKs2@8~9%E7Y#Gu(o$L z8Gb-CQoLYE`JNC)|WHlo;W0RLC%`ZeQ!R>WPOwQ<}2Z~8CPlHK;A z17@K`OaG;BTe+KAf8;a;R7@76uBsaHT?r}L0X_ZtERc&_Qi$30a=n}RGW6rf1Q<+w z#eX5-C2PoURGn8{4{ERU;S-J0qpc6$3V4l;*dOr8pXk`V%drq;)r#S;>gX3(?##}L zVCVo$mOSkGEV#FLK@6_gA&S4dOmj|6{>Ai}KkL~whRbwT1Zy6efwoS6v(m+|7MY22 zjm$Lu2z;rl2(Ohk5|%aLk01-c7HPPqMQP>0+D-d_Zla}dIT}ofV5ianfeLK`MWF6R zfQoc8EeD)7MQ1afew=0h`4#_;{2SXRkW*~)IpNW zephhmpN!I5^S23nj}84!S*+M^6;8Od60IvIj~))}LA~pv84SU&)eTPZ$f#!2Xifw` zOm5=X1T_px3cRVsQU5%RYdW&5%wsOlY=Ggp;*=yl*vziY{`u&#(LuTyfI3<@UKM5l zc20k7U9OQ$td*ps28(|<^7-OVbM=b)V6#ZmT1#rgW6_reRO~|DTGBpgJKf{pl=;@& zs)NsP8~K=pO_fE6u*uvxog``a%kQr??sh5{L}sTz0oTu74*Dx04DTgL*!PKv1JeA; zs~UHYwegg62j^byUb*%oOY6z-^S1|47k;CH{l`X*>C_5;f=#fy`d;em$erSz;=0XW zh#I0|h-u*W@zzvVrDO_O|DE6d*)X35$LlOB6O{{LB4d2U=`B&V0p7NMmaiL_ztRk4 z+YnILe(Q}fJ-rqWj}R`z%8J}#J5ancfy3tOp-YMh3T+t?yaPk6e_2z8Dk8RbinPZ? zqv_}yw7Rn8Zc3GY3V)&N^uX43h$EI7-m1%D<#evWh+n}m^-6eMU@A>sv+L`>;t1lg zMp_=i-&9PG*p~=Y;YgNI{Z99Jjh9(hE<#}IebDPNX)G&;{Gctj4dX}efWCXkZzzlP*vKSf zAzpSPW2*Uar{?xfNO}dkuo+#sVPWp6x92_`2K^Na?|x!|56|Uaba882ex!wxL;4JQ zql~%1HRmypn&)ZD7w0y!m8RzC4TYBZrzN{GUfA*W^k<`pxn?G>ilR7`;eDdqSnH31 zj7UwAX^+B9H?i;WopphV)$I219TLe2{HJ=)7t+g%k9NLUK5Nt?`4F4JNQkyTIkNk3 zfK?2OHYJDXQyHVMOERWo6SExoM;TxXHd$Qg)W*ZRJ!}k*cuymQk;mS_yzfIauE5#F zLKR3#k$&^kJ+dLBZvwLt8O}vr2S>MSqGL;q*TUV~9`sHrUB4sIzv{|;E0?ic%^aYg z$5F{BSDm3hc#e(X1fyGRu<+DaRf#6uEve?lPLVUMh}L*`Xs6{naFV>gPabq{+Z^W- zh*YhLL7#YgoOy7_-CMz(s8r}D-rk;f;8}@O#f^XEs4;jW(>t#I>_N{c2g@Y1k{F%8 zAyp~gA0`KjLap7NmcCrErx8qgjPxDzzsYlCd@BrkT$>{v>3vE~N%4WP;C26^_c?)o z_SoG@6Ihb^A*4a^9Wg`F#7=!eUQ+lkzfuBDWCKAqI)1$JUsh=Tmxc=~9~WwOSP8Qv zE;=ldo8Gfk><3%({9utt7VU;cFE*X;u28^Vv>bY1~rK17a7B!b}CM}-P(j;^0TaAoq#fCJ>)F-DDSZN)Pw8$MZSzeqTyuvMVUaL zF-S1DZR#uCo;T!A(xm*Kg`t{$Z^#RUVwYgK84O0nh(}W{jeBdT)#T6G#KV8u49|#( zba2RykgnK=l=$WAq}9A&COUB;TOL6bXhjdX-}qE1Mtsa{8sT-EN9BJOh9OaAWc;6I_xE;Rkk zULHCIDT@8G|p zcJCjEB=p*j%T%g!fUf8D`s}yXTxYaC4X&hgJ$~nLnk>t zp63A(moJ>9+pO*5O@F9U_D&h!A~2ltbzb++%1>j~-)Ei#e_Jr(ShbXUD$fZ1cw3*@ z@RfV}THA%ZyQd#%rr3DQYxrA=5$1Y5_OHEr+i~wx+>?GCO2PMct&fDMMD#X;B(cmj zUR|%}j8FeK691QczaM03Z!sF9iTnU-aFCyD+A?fxTx^oe*Q{#I>MmJeVbNx$83-6~ z*);l{pds~@rUaO~u&dfd`|myhi`?J6!7sh!V>w4CmDxRZ*JB;$o&GgR;=O$c8b2Po zjCY2x$byW6rNw!_Fs&9@(Cm+5{I6xc%h*z!%O@(A=z2`td@v8Ki4M#f$l6z+LZr-} zxifsxb>l@;Q_z2=4OKN)ET zsrKqK{lzWw`S0gUGv2=@b+!3$>4Dj%3KjWAt1PSjx46oo)4rF<^L_u4#eb6*MxY*> zmpT}u@PS2ex|mXhh; z{)pMM(C>qhxxtan?B?E|#o|9N$lRY03<#x!R-ZkW^Q^lk++U30;#aG)|B+x)67+=V z1shEJFm>Z^R3}~f_$TJq{}Z){;mJU_M7NU1Y!)k2XYST%e%TnFSEHNow!dh3|19gs zKG3kY$@l!j9yDB{_kU^BO{*Jfm-AP3{tq+%`);%=Ug7LwSALKwCjQP{PMC-Of)cA+ zVd8{|>&ZQMv;Kdk)56Wn=}Rd{*+00&oQV9~S7mrNU_))dJ!^1-`9Cs=%bFXQs3l%V zdKLC%EytUjEO02!0%vux`Y84SSzG^NVRrBKs843noW0 z{hJX48w~h+8@$#qFgW33`1yOT6UgNXKm2+&wSwI4L#TJxXD>n z>*Lhun2-8X*A^Os@WuIpe>Ihx3%x-hg6U5Jj+)o}&WqgYsh>XrU+%rS8?*YmnJ|3k ziPX`LP>WWDUdKk(*R_awB^E=mHrD>*NP^`{^Sco$&JQfevDL4k=NF65*a897%a|$v ztoyyPdD{qyhz@SO{m`_Nzx|Qyzk1WgT4saaj<$ zxxMK!0@MXCs^lVGPBZiTZrmyUu7g?Hg=$ToZuVgPvYe+)L0&Zx{0x^Mchp6sR6yTu(GhPO5iYuKy3ilkl}BoMD(b`g4)U~OEn z$WW2WQ)7mc0j)@XA?aS*dOTUomo$Gc)1mSe&NO0m>tQaPqm}t zqxpXSZbp*6=ItHZ|MCNDauV5Wi9&Wn*51n5dU#WK|hMdn&*T?gW_ zeF8^#M^IB)&&OL0TVf@js;SY!9HN>G=)aIgiJHvn9ZYY*g7{)5mDhv& zHwr5EK8)dcf1Ha>{Ws|NH5QiIkU)7yn^*&$TaB(cyB$UoS{+jZ3tu>t&yg_D9}Ji1 z42ZsC7s23l#Q{wfb{V;dZ*CQDpw}f9T9F0z<6!9f6xZ3NRZ4cQFTZ;?4ugwsEEK;# zr!~mNF4)+8o#5^eGuD8*XL zTMut(vby0#&4=oH&xQM_lC|D6V&{$xTdiGSJ#xZ2v-4slj!pZB_x7&B)dIw`@^X3M77(?} zi1j#_AUE2((_kSw(5RBVjvC1?v2_`T?n%|8!-=#EX2~Ui8m9tvjvfiLIzeQw>K~zv zzlI#t7l-BsFe}uUZFQQ}G{tz|psPKev+1QUUN_ZhFNQ&w{J~z7dldt`RXMVG6BF8c z*Lt#h$Iet#Mo;ku2>Hm$O0rB*k}b9c^2q5=?4l2*{)o9|SRq7ar?M~>)S9@hqS3e1 z-g=@i&O(HJ_qgvLqEg^PBx{!3l;-4bREvii-es*9@=h|9kQ0L0_uzX^UJ59h$0fvp z?(_jAvZxnMp{xeHts_I|D+`wvxmD=$qCD%-o`$j9Xx8$xeV_&mx*{}Pxe%^@ti^g( zR&u?bgT27Xi$I{(`81EeQYV(JDVLo6qikk2w^gP86m|xBv7g zct4s;F|K~~rAZ`%MPXsyrR#$8!eReEHg8D9`-;isXd?4Dd!gl=m&`Y%@mjLn{Q(pD z#h~5R5jnD5p>z?XGE^`W_9`!Y%&wcYkRD^23cFLK^m=u z2`n{taH<*U=-SwiGfnzv09eAfTMwV&`N?CVp~+xFV}`t$b9Tvb`{^UHLjE6MzFe|m@H!dLZ zs#0+<(YH%N7WPb(=aHoZUHo=%-L3Q&Vh^p~{9vwGqG=OQ5{}Nm(j78{*YE2pRuM6Z zi3!T)zno2fg9d|vh#I(21+ha{^I)+_1n0)()UDmye!Z#7Kn?GQwn{Lk}wqrFMUK`|7l_9N~t6M+cx` zsEhmb_uFse&ThX*cDlTLSz%nc=ayT^6T+j#I~1GuduPiJ!>>;XRo@L|&c8^exGUaG z;wOGQxM7&2{Ps3htZpdx)Uo@}*R4N{e68pgsNbibC+jvo=sz`@JB7w{$c#6rnTgf^1JgqdL<(fx<{G6afe(mSCJQqT z(lAeD@dfNNPK<73oY7Ia4k}O$N0Z$sbyMQ#Fe3eov>6PgB|SKrHAqOm&QD)~SPrK~I$Jm<=fLsl|LsK0>LfpTnpptOVLTznf5%(^Zxw=vXl5JA9C}3w0Rq0SbE$k20 zv`k541v!tBDc9uGee-RSxZu3=P0AGts@IrnVp)0G4du?y78O-d=-D3p?gCTzAiMdd z^bS(aNqA;4#0!QCS37Erf<{N5)5nCwnM0Nf!He-@ZHgVw5ECVtUJ;V0OG)qrbYRT_ zn3al`A9(sgh&`JeN^LHQl8Ig*N!Wr7{5&pd#Do~AYb(eaFlmCbzOv|fyh&78(;H9l zsYcop!HBdZnO$$5tkxvj4g*xJ@SM_TG>9)S(FGu7=~gq!bn z&-mC*F>d1_KHz=qm+LFd$$x~d#HE^z(B`L_+}gT`#Ma}BzflDg7g6F8!+@If>h__g zb=4cN%!Ai$?qE1+^$e(OO<^VGC z1<7PVLG}>bSc)S+J!^uO>)BAOkg?p<{RB0XII!coYY{SU+hv7i8_{x)hc%8d0;Fjz zn2{ClThdX{B>X{2(=%wZiDOnAtF}JIxjhm&jF!Uffb2rg;SIpSoTq}vPT5ttk>rq? zNg@}n>Zz~!hhh-rHa*F(=+jg*18U~#0%T!vMrY7{)kFE@IJ>}fCQ7yzGmu2V(-^`D zvqpm+jzF)Jf^;l6rjfwarWxyG6WSx&xn?G;5*v%bGLvT>t~vM>WP#)lGE60?auQH8 zwCwac7LKYdzDi77Bngp@_rT@M8Ogzm7;uMRD>59JuS7GNGsXlQmB7fcg&AtH?K{sd zgzMY)$~l>8Rr!ZTzL82wN z=_P?uiu)+j*(GP0`<}0|Fb+MsLOj{L9hfVjOYNxcvP=hy6LcCSRL6Gn@VHg!JmFC| z{33}R6+2bQ@co`61R@lxd`c*j`zB&9^(e_?t_D}uk#F{o`})V zt$|KvPixiMIOE$!&U~k0Ef$bVW6v*L6UPBLgWV!d68X;ON1i<43H5VeZ#=eQaH}A$ zmR(YT9^P1w;Nr>|p#iE|SMcTQymrbG%naSAjsLsTyS<`qq$Ji1piLGSpt|Y0@G|a! zsxaxRk&5ghP3vr|Pe^1SO`;OD=8;sWJ0@tRFp0tSq$Qm%#3SQ?3r@aM!%7-3T0vjc zmFX=CB~=zsKQav9E+ZtE@v_(2iRB`gMf>@d8-~0`du|L`l0k;lqmbfa0r5_Iln31e zh>=F9i?VLV&3FfD;!bGaQqZ}!{Yvfvmrh?U# z$A-yQqm+f;oPYh2aF=mOzvo)uw$Sp0*6(cF`1wa6-_;$iiDnQ^X&j}6BW1l#H3`t(g{|Xxn}t~LK_qp_o4&lhDUocgKb?jZ_698@;#Cc;0|)xAlwYd{8Qla51L@M=?pkhLS1v_LL)_ z7h$Fe#4?WwvCJ*L_^ei`NXSW~cN(AgR``W`ky&OZX6V{AT%dGT8PalxihVZYnbfV2 zMoX?lu-K~U{Te_Lm8n1)A#u!4vLh(PvdIFI+xRL>U?^aQ6N;nc_nagx4@72%x)JV2 z3){F&fQ-i-WCl5+N5%Cf+}}}&inCdYF8Dz4e3Fal1kg3~s} zm#MMZvr+ws=5adx(R}0iILfl>Li_{6k3h2rI6gXu+>9Y2xL_03P%5UI`81?E8Oe4} zad~;y;=TK4U`Q}AkLzAT326ZMN>BAP9o96C^a05FEX+k0u;ieO{bW87x!_Ez&~;a6bW?+y#CyisO_ZoE`%>Q%BkX1Nde5nxnh zFkWtPAX4pa(Z!Z;PRRi>kP$mk79MZZnczJCY4gKLvilTcMQ?u;;=%JVDi_j({uykD zCMBz)T9OVJ#!|$Sms|AhkE+oxeUu{=TGf4un5}O3o*pu~Ta7mhRsF$6hYmP3soBEc z%F{_MunC7&4#s&eigH;U;tMcOzDSpnexs`C>5TjF*Y6m>@eHRjo1RRwi?WiqyRYW` zMzs){!^#YKX^fQ8N{tBiARCiZ68!*M@;7c`MRrGvN=s^_lb_GIN{jmxe+hMiU}k0kiCQ z6G}1Y;IM~JdrM_TxZHHA9n8%N!G1Nu%r!25Jgh`_%MhD5oe9tk+7X$#v;y6m2daI7 zFoVd}B#1Mu@Bo7WTIjI=pwpSPjg@5x0g`D|MV*mkDqm2XM9HE)XBM*-OK&!NW7}M!o58N< zq;eij&7B*Cg8g-q*$^dz{dh=W{*FKHl>ZoiLj+=DC<1UG;1+Fj2Xfl2LSU){3W_eh zCj69K-9Al6PrH6irTG9q*R^xN!S$KG%)7beI6Gy{rl8KI!@U1=bYA5LFGL9)c zxiTFDG&Rtf)tSo)Tm4{<7Q~m0p|Jftixm- z_aQQl9i}=OV;1Au@bC%>_r03L?n~+bzYP-$jVin6IKr9a!{sxe zbMFWm^TKzVt*}Sc<`VKdYRnl0-HF4YcGq2zqNpK3?Ra>+;%kCMNc5$`5DA~2rlEZEUgvYeOl>>B}zbDr?7rRRFN@g9fQrNTsVf@L5i2u%*h<5u^b=v?@T zk0%*q;nt|3)jvcBNQuN=YQGVpdES2Hroq>tnD}lYpD?a7v4p!UUu7`oF%Unza1nks zI55bG@fl#^5+~x#En;Ky^5Rifq5I==^urxa0`o!aSE|+ zMt)>7PAW?qK>hZ0ra4TJAl@E|-w0^(l(O zX*pa~jO;IQm-UBOFAL$@t4goF0Cc^$HC$KM<^y0m8CGCkAw1f`z9d;HuE zRA@pG)cG+IJ1o<$)$0oS)6sQL^|siX#X$PE;$W~y*4XudGIoReX%;)zFvcJdlqgJoo8V`#xfU_pmBhSfNunwRKyXWE+^FHTbO9xmIcR{VTUJ2 zTrIF)Ogd~C^F`rdt}__0tdw73*W|Ehwb_lE*qGG`&4wr6XG|f=Wc#pslev*YFJO6S24Y3?NJTz%Hq+}J*7X3MpATD!5;6?xZ;0L15L9OF6cF;+J zXl8`KKo&XsgE^f#NuGNJ(>5>m_hUXA^ zOisdSGmv%}9%M3h%b{MRIeprBB3sIc&BMjt8eX2>t zCdIxHiyKUu>0*hEPKyB(haPrttI53F{r4aADrk1Y?1|r~45N+p9!j46hDuI3+Os_> zO5U^O$mnpI%(y5b^Wm3=(|0;_fQFY3q^GLC+9Yk=>;74B`xB;PcvAT}KG6ITw$PDT zrqZkvjVeZpI)v_1vT02e2Q6H_%hR8cjy6I>V^EhVRRLrcjHBu{ANM>g=dCgrHvif5e%#J>*3FG z)q<+S8zM+%fP`NFN`4m8%sM{tOgeTeb}}wS*pz*AZAIL)!9`sdG2P3W7*d_UIXF38 zh}F4((b(?V3q{vfPa*19t9qRcP-pz%`;D$gnP(N^;_Q6^hU2H+RCnO`Q&@+d`}FCK zvS!G3#+O7VdRJD4)P6=vS~${;t3k3~X~_uoCnwMc3(h9pS3b}Yw~A_|R@GQZWJVeF``MF2d$ZENz{JQj|Mf3ZG!ei*NOns|S zs;TJyK3{+7B=v~Z=W!K1f`V?vGCj1+QbzsxJal_>ucW^+;BcgCr+1~YgZzh$wIeI< z8mxx&>stik7~uP#*f<;JkT*lJA#!i@#7dveD5yCVxuL7`J~hfA@@tr@B}_EZk|?QN z1Eo0otgFLHvBcfZ3vSnjZtpzIWC46qMvII+7AIcC^Bzi&W5i<7kqb4-n-c?*Y$Z^R?smZ`UE(4}r_QcHh3hxAI?w3k`p(OWRo)19&CBDs%5yb1;JXbI5ZsepI?)v{+3*O(G>(_N=s)6eW>| zdn``81ggL{9Lo)Q=tRqJwKyLrE>04)5Eo|bmsVku?&~w{4p%{5zXPe27{Z?k2T|oj zbK~4$Yq&-~h)%{MgMdDW^nqb1Gp|VG`}XSFnjB)`uB5B;bth}GY^j}SCz{@#4&}m$ z$;D2};!aRM-*Q!p3UO{FI%U63M><-XT$L~kY`_=;#zpFZn~UPWpsmn~v_-jrBChP! zR=;(ng_O==IaWfVDTmfBRWQuNfiz@%LS<}!-&z=pj2$4Ffepr~E^&Hv^hoAhgvJ5P z*iGImDVs!H6B~Y|r;DW~_cD>bgS?_=UNg%8*cP6N=8g}y9_fjhEIpH0s@Id0mdT<{ z)uvNZV@dLZ3Dd|B%ElpDg-@djwp`Jn3uc84Xs7U4h^2yu2)ZoJ#T5|#c=t$hRqQnD zTHpxn9Mbq;Dex*s5*A7niHm9(w22S;6xIQIHU9YWc>teD#iU9GlN^8OMO1P*21zAY z-zv9!Px;Hg|6pmrh7(UhE`MV%{zOd)>4v;W2HvJ)2aFQqcxYU=IzNeiyMHwAa$VZW z)a86-z{Xh6FRSR-;2&pnKtQHO$o*(v!<#ak?MiLv_NsDJ7)P}469u=nIV-HyrK%(y znflO*5KX~C;BcX4wW+Jvz{$eg#ohLd!OvO!pJh&4cog5ktGgguwe?B@a`6>L>Z?JV zX#Z<+$4;`?*J(XEvn-{uB0z$)iRUD8eNWA98CZ#UrzNEdDIo{}KkTdJ44^Gw1wm1B z;07a2eF4cIw}xCkdsh&N4+1ysFPmh%^vEt1hK05wRMOZ5=g-teh@Lfig{u_TN^qvG zR--nDk}^37c82;)w^siN&#^?CO5f}$R0~)8#i*qM-Gy2AN4nj$67}8{ro3JaPhE2# zEV!IDVZ`krVBfC{n4Tv+Qo8LY2`>Umm_y_ioy}nS6HunEE@t4;L^P3+HI$(jFRL^i zCD7iEZzYOH+ZyGTyQUdv7KOUBr?L>8bj1mUmF3uO7*aPlXeBk?Jh8;~YC3hB-h>;N zRwI{i=@uuOJ6^4t_k;wlRDDuL7r(ng$OcP2Vh$C7m4oUvgD z-wP%Bx^J}SCRsB+f_$6E8oKKNKRUMZ_@z$&G3CLXopG~JGx{`@q8j6^04@ z4w=^y-)Y^I&A`8L)Vz>98hY(|A>jY6=BH;0T1A^G41PJfpX71=-C5Xq3RXmI9@7^h zpM5zp*2WFkiKgFJ=I#fiXMrP%r@5}A7S>L7o5)Y;j)aSIsz;F*#&3R4V7wf@>K2z)FXM((8HxHSOs_2*A&WwHVCb zklL+f3Mzu~ae0iWMYAtF#_i9%;8@JT!jwa@qvBwNS+g(irYePXUs+$=+QHYeg-A#V z>x|I;WL%UV@*3HV(?Gal3RyKmTj*B!jal?PSS|odE4>iCF^P)I^1HpdMqc$JnbUp{ znDPB|!SgO0Z)1@9!?3}9uA8&AdO3-5fqysy**O;H14gp1J`KUt<6}I&WuYfh^rS-69)8!_>U|?d& zGnzthRCZQRD-{2FIq=fYmkY6)+Ze>;G5lmaKdr=FxQ%3@5ek>M$emWH?n@c`B2C_1 z*aD?245sQI9BKJQy^F3gpIG|>1mE+wnd75r6brHh6NWe|7eUJ@7$si2e>r-B4`uY@ z$vSQ!YI?cCv)5gg@POJB$n#c=DTe7ELk(cvDZAh!Lb*FRhR=!h$l81s{fqej=5bc? z&&Qu>W=|GY<%&CoyVST@{qw|6x3aCX@* z;*@Ml)X}a0dGyRn$wsuVS~y?nz%7lTcH3e&Rmnm;51o8-MiGQ#0traHVZ{T;+jN%l zL(iC(WtCt*%dH4;RgA-6(IC|_O0Nki9%Lzz1D4U!W%j2@_hm|(9fKtCi_0SJ);bW+ z$Gtk|nPHi0end;APD%6p-Z(@Av!Qrhbiv<7HYO_Wl>xT5=n5#PXLRJK&0+TerBS7X zpQ!I(rT6Z|Vi*>toomJ_Ny62h+dA{V_oG{%AN%u|Gkb<+(I|-l4AT^rGj(ia*0nyB zmF)Jpbnm4p488{=5EvUDxm{CSgV`W=_zG=%L{G@AU~C_co%y#EIeUCErANq+iVrh9 zHiZ2Wi{=~jnN1=gon~-tV~$0S&c;HJW_@+E{=e@=V`_VlHN48G_=~OO_H$5P_^Bo#Dl#n?|$U4D|Pju@cQ>s<5-Wk7n%bGE>~NSMOBWjzz`8~>5Rg!ooPV)nAydI(aO zNECdt52zE!Ce3(*drPXe924CTvQR3Tb!U0+G?KBu8~(h=_VNh7KLO&LmH)FF)@aH+ zQzj}pG0tONRHAjNqX^SsFd{?6R$4Q&5cDx6Hj)4lfpuo-H7>Kjk<;=a^SzYo2i*8O z30}rxWHGLKXdQiLp&Wpa6>8vAHuiu!)f1&=C`N{GMJawGs6vfhXN7{rx^{j@DDM5z|teP?8(TGK5b8psE_LO4&E_RLegx2j~BnMFIqGu$GOz$*>s zMT7nwWo#0w%S52RF{WBoVI;dXnh*tMibZXx-zx^c2B(w6pUkioQ-VWAyqFfe-8&hr zM|xMqI1#3ByG5Qnux2`>$e8}$;)m(&4RJoyZ+3o-3tL;P;9U!>F1RT` zw!la8j^GTFn9JmRNP(vi%+ZZQ)J3pvtmwb{#qTdd)E7ZSAg7878=`+w4&?ovgOWCu z(&@>UonOeBJMPjr7S)SGKm1tw8I1F%J&{&OkbhfEkc~gA<;`%_LF!mkLq6d3BRBr= znBncA_X);QRiPB=5-3r3ydOtMZ8?ZR1lkbd+LE|mBggK411<}dJkA>7Ga&&tKXh)h zd(23#RZz;BA?ERCbri2Fl~JzEPbyw5xb#(c>JC@XN2!SH->53Wt|XWI{b$F6Js%0M z1-GQzn!6!9PN_MuFKH;1Q7VwCj^-ebv5mH(!I1zWJV^4Uz{=8gkGbA8hn1!hS4XFj zlEINYaSIHPH|y+o#syswefFz2Tv*6zGoJvF5}?+909&viOIVM)u;Rs1Y&qJvbhJvpcsp)X8o zUzCdoTVst~+LDf`subPtAr2l6LGn)UUv)eC_=Pp4A{?d@n_*li;N;}y+P)sM?Pt=P z&J0wY@{GVu(+0HQFL(k!CeL&+$F)?2X}WTSRnY|5@c`*I=H(9CuoAZThIg&2ni(F zk7S?w@BP1X@45eZ_rCYO`+cX^`eue+)wQ~-s;jG;?keUgOiniL7$M=5n)=f?Rquct z;A+Dla_HEz5 z0y^LCO4JW6k9NN~35ql&=8T~bVmhunyC$6X^%3C|>8ZF$;ptjdP}r8ZZ+7L<+n89D zyn6q5?$Yg@+7srHme`u`+H&RP&D`8=m(ffnD$`_mw)1vf;TY3dcjRD*G3BX>+^{1t zBu@)zi41g{UAF3Nrepj)lY;GM&>X!$EeVe`2y#?Tim#dhYzBYy*crsuWI_HJ-(_4i zzmNO$Ji3GPMo@x)XB|Zsz6f}oeVA+{RjR<~zQ2+6Mh%`=tis|d z|K>R>&!&nRv7-4vHM{*9jx=-(XI<~i_+t6|(OvKWjpf5DnP|%3_B{6?rDmAN)v#dT zhMEB|K~%yagc_3H8U>kTYl^2zWr&naOi48|?Ln#YT!w`im<&9IJf*9ecFm8|&a@$x z$&C=4th+(}h@R^^k?(?QG|F$CU5)i|rwTXI$R>_4Obw=LN&atgpNW2L#sH(pTT^?Fj+dS2Tv@F19Bqxh0w%LaKY0 z_X8wX58HREaUTQuKAv$#dqs1ah;WS8bt9{cgs)XX{91{zG=~JESGF znGID1RGm!Ev({9`*XKekY*m!sVJITc>lar=guBo1t+4iU&gRp6Zq|9Uv36moi+y}1 zy+^m9O*8iok?&smi~&BQZQcW;&D>N+g(C7mOEkE#zDJ;Z$UKqvjC%tqmALyD`#Esx zjp2Vdc|d7AJGv#oW(QX_|DHU|malL?N0!Bjs(d>Wh&$5FTvqRl23B$!pyz6~7XgAYx=_ zDBT|bo4nh*zv%7Dr>(ojLT+}glAP^Uadd4sxk~TX>^YPI#7u9dBG5^r3??M&rMgu0 zsJeVkIX22iO9gCQU@*^2tAk**ZiBi_@m_Xuv;ApJj{d`%j0j**)tNHZsRNxRg|wRz zc-CtiKzFM+^D+G>}N(dZLbDz}xb zJ|*2{!a>dEPt{Ox_k5le6=HmyI*R&}l;Tk`ej;wU?n#qZmS7hH^%m~Rg@g!VL8zzB z<PM6fWTaq2NHr7%f@;@j#VDrgJh>s|EtLQ^+{yeqA7culo|_Pyl(V z<<+U4a#aooGp~n6ryB6&iELC4$hcL!sVj5ndwkrH8by|^YKyWDNw@F6{-O}H#CSwx zxOM~LJ0D#ig(nyw`ZoUGVC1Sq)Z^g1m&J#zsanA55Q4d%Z-mc3;5~h^K=?H5M^A_w{D@H>^fh4{ru6cxb--R%l&Wt68INeO-w8WTMq8(f9cNKnpJJJo*#SxKTN~GIAHujCFtu`vFG*+qR@Vi~A<@+GmX2VgdyuzH% zV`TNs0aDF&RD8o)`w_rlj7}iBL!p{h&)N!c%+gZ-+4oZf%=5jaN-slVpH`Y(d;oJf z0+jvyROiQ0zCK)wUAyB;Ri6g!7twwT&)+(68k`biryr@-$~m?p`1Uc(!?$|xAl{Cd zXX$H6uU+yBr=5fK1e06bXNuGFC|>EQ+thBfINBcn4VcF+ry$R361IqA#mI`;Bs)b! z_~~$+y(;ru7?O8wt?z)&weLm(gMCi$ zNtEloncwWK2;jh=N)j!io_mj$f9XmPe~qKzoff* z!b|=D=sNqE>5D-hJu-2YkzL{Lhn(VTYxatuO2Z;^LnBt87_k4``J=wwUx#RC1N% zNATeLH{E}Zo>+B)gU<(r-KQ6g!sIt?tL6mRCs z6GP?Z5-#2!`GfPH+1;(`uf^#tb+y~{6wZ=7Nw3EUoQM+ZMyHzBAtda&X_v)kQJl8F z&X;~vJQX$`o!FBpX0y0Tw$K;K?9&EuhdUJJWk5`q)JcJ@LTq0B)@~jOC~2@E)>m1B zqm$8V&BpQ(DO7si+o)f@tE;qk_j5W>We6R{6)aG`;UmIWMH|-7>kA@S7je;)W`letTDuESnGA33`J(F3+ zD-m^|cOB$Z-Q6Vmr@BA3`lLYrN5W;Vh&)P}5*~1=jz^CG;>N2C<2W2Z`j?Qm-7^oj ziC7>GsJ0|`q-qAvV{~vZaBkSNBfPJlkZbZ?K6AXNew7crgL62PxhJNxYV_Symb2Yq zc~iu!#(mXLgCzmfSnhzs%lo1o78Ret)Z-Y~|Igf^GHXgKcU``hkKS<_{Rylk+S0AI z&(WRtZl)r6Q%&`VEsNH}ex3v~{eXH*pP7O+i<>nGiMXZyod9EfmG(jqd z_=i0@;Le92p_E45SC4LpEh+y#*ojzWh;!{zo4B;A7Xq&j3Bbc1anbph-4Rtgb+dl} zLa|ows@*~#qE^=yOb%XN%-h|vCk}E>qm(qDH92z#)*DCQY+V1yf-{oqEst%q)let? zC@(w~h{C2i^}jLGXz$-&c=KG7*al5$Y7hC{!m48uTu8aMtaS!F*BzsyTrkZ@WX&AH$FA+0=zh=`ehXqGip(3u#Je^K z>>_f=x4{JUprh)WA8rL#1f?euuV)N)mFlivmsF(F?elUAGDqj6rK)VmYyfOv?gBrw zH7tOZZ8jiND<>aSxVDgPftz!08>yFt((}wMnL_8xS)9{)l`+KHVGnkHvaB4OGPXA4 z$_xWeXI7VC+O-MxiAq%)1tBwElcZI#BTN^Mme(GMB(=6RiJV+6w$BpI0?h#8xI(;S$doM5gc*!Q~+l993 z3@;om!G8c6asF;q(fi34vAKj`IKhN8OfbsWr0Lj<)cNj+1#%RK1Zo>lM_bNgm?<*t zIyTq3p@8y$X<#J^NCry%)rlUI=d@^xFK5_eMMVyKYrrDMGwSVxdIwRWoGjd2`|T=DMQP8)<9zc; znHH)9Rpz)-6y-P}&916!K@3w?f`|Xq)^`tporX?{#~2Ehcs#-HiVdBX(2(i{n(Wjo zjrs)08PxAg+*EVxd-b=ROuo@?`0*MT!p+4-c5)4xC0ha(Q`xxAjSKYF4)ArKcQGi( z*p->;u6nWMTGenx2(BNzmRwW#yIu$OXnak9;E~=il0~1?+|8iHddMc13z)!K1Dr73 ztgEz&30U89^i9GtxYgP&@hg@ZKM=a{Lz*Jrw2lsf~8$1+Sfl$FaYzi^7$%PZ;l$LFyX)#~-Kh<)N@ zb9TEh!qVPhV(62+C@KDE&?@!ctWn9e3lpyL49dwx4j*8Dl<{c6IpSBE7eR0ywCtzv zA0*~GIgmrcxdRTgiBJBl#-?t2rEiy1+4;qMhr)Xn6~<@j<@t1dnR?3z60aYng`fcqqLcjl#c=ddKxZ217d-ZA2dOztt7|tEl)RUJeA&> zNh_z1KJ!$~;{pGasB(r^ZWt;_e*iv7tft%Bd7l^Rc3b#NPlLikuDU-HUQSHL5MFfK zyLDcsq^Pr{>=4!or3;iX_D^&AgG?sszkQLLWIi&Ig-mA^`o>IUilCg3W(QVgK^C~W zprE+2o+jevYFAA#pP5Hrz0pJzD|M`VUVl93h`G#{_j$P(kh(1`%XTXCzFu>I;36(h zL`{@0?m~sf7v_@ch>K;!5eg*reO$bup`))^E32q<(swZ0InxXzK%Bw zWcz-AgdqoVd%6%0v9}Nufa@9Z?7C&Ven_uZZC~G-l-DrZld`0n2z{|6qvv|yjtrmG ztF|o@dz`?~I^8t4^0|d;q3gMKM}wMNough~*)lKX7wyd937mmsjt1T^%|NSL>+sQ6 z%=Qy`&h(Pp$jXJXsG3tSQGecOuxsj^Rr$68jbDhwvzbg*B-+MBbOq_)C?7O&P7_Af z3*)$(G!KLM@~ug^tFbc1ao=SAR8nTkY*M-VRx~G}T=^Qmm6S$pB;6$|Q@PKXUH>kD zEu1snhM;P8e<6AGJV|NUf{e?C$U(n;hVw$O+MvOP@G?<>%Szv*i7!KR)QNH~jI(#Y zDM`XWkJ?YIU&CZdv)ii5Ry>w#cd?XQWg!}5@fcr}#mIXJzOlv(W0PoNW2tr(=c;*y zK8evM&~U3+`{*Y1GB{C#fZMjN+C%nJ-85U5Jgdl*m2hLDi*6z2N7-6+P5LQ$AZL?3 zOfM8@Wt9wXP%lUxHgZ_Of<3xBG%VdOr%$A*8ZwoQ8l5)m^Q|jZ`4~k&QLkagS6|gQ zKeXPSfsl5V@R7HAGnArFBU7V2qnNpmXBnQ;SVKbdF>ob-SY^}dn`jl>-fl;wsT>Rx zX|AniZx2p6>^;27$ug0zMs;OfK1(;$sLNZzDbbs7!D+KE*6n9|ePV6(p2oN8xo?Nt zn)T>mMZl4;xwq{f0KJKO>nEvvZYJCk6*cy-`Wuoqi$^iCSVFZR4R$jwuRd%GQL=aY z7QGUy4FU7oJx4Fr^B^6=BmAta`pHTe%S1n|sJ25l$fj?4|CmUi3clH7!nC|EJcTGLUo(dyut_A&Z(hGI>HLsDrinqLR`bQgH z7$s?C!A+l{nMW1^W@nwwTAoF;Jsw}!*^48Y-qo$mi*jp=?~P~G%Kh0YFys(%XxxQE z;`_xv>hYKo>tNr{?NXV!rZwX)!J;0VPfru@n)iHmw)9(_5h-Sx#53Cg8zZwe=h9*Nl=XRbPYE3yCL&VEwesz zvOh)uV0;7s0umx31_}ZK;CDhG0MPSFYg=96OL>K-77xx{)A49E?OA&Mu?|3g1VWIc z54Img!bX;{W@b*5dl>~D1&`73It#iPqZgQW=HF zhyLn|4dPHUAs><0mgouvEun#(R(b9e)KDUcw1n`aGj&Kic7eOzJrbF6hCZ85 z47af$8Ivuk(S9=&4ndq&uD1zVFkN$W{5&(d@j`AQ$W2(_@D9?cNc13d{CfiOZJI$EZm96L$7?TwHjHUC+2Q!c%9Lo5_ z3i*yPQ79ti&}e=`Bnt$@8-y3m7XzT8#_c4zQtgrejDdyMyiAxZIH%M0-`V`XymD+X zBT1>8W)Q>1JohbrO3r%VX`4u}(Q80}I<927`MES>Riu7m4bKg*aspJKZV++tZCO>~<*!Hxef;fYr|bVsgQeT@4IZAuj%mHZPDki-IRd)__Xr&a3&OqnE+X z<(rS+nFV$N&@7&F@in9A^EB z#9)8&yOBi#$F*GuxM4KoYjgjvtm=HjFuSIbfE$MnyDOuS+J-)cc4WTrnNBInFkP`bR_RNMw_zQ2h9*&Pn+W?kL0lE7 zXb9yVdt>;}Jh~E+*zoXAobfL=4u}H;0v8(2yn%EWEUeaAx=wlYQt93m&Bv*l*Av98 zPGpF04}nr%z2v1DaWIN_CF(gs!AcC~>|_L{ModC(g8?dPrcHHI62e(6ZqSStTFR`h zMRVA!L>^hnUTN8SJp)2sv_asMqiM-1dsN@aT#)~Ir0c{i8lcG znhmnZA*N(5&`HUl1bIiHjcf(`1j%I5B&%WyG!+qWBsG@Y?S1K?5Rd|;_t4nvsdKD9 zu{|&u^SWi5Gn<_l>qtDf7=hAb1^OLrIlB_jd7Q722;BP``10|W?~zxfK*K%EH(M&c zGp1hFk$QjJxhDcQC$@6leb~Jh{Qr0Uvk0U`z)o{MGAst!(gtUE6WQfp&E?u0!OSqsXw8^=gD zBVh@859p&&y>fHQ(=A-NNl_IPm76qYbRk&=bskI9FU~0ugyQnX&L-%wLyTVJ1f3~2 zHeGsyi5PsbZx@=-$BM|C#M3G4T^S}f4;fh?x;!Sb#9#xQSU3ih&)z4x5rvB=&d+Xv zWO}B!I8GbcEbXp#DOVLV&PsURXqc}ZARCugcu|du885VHtZF$GK#yw^9Z#HwE6|iM zZ|+vT)kN-}bFeyy zqt#8FF)q-T(3-NHX%qY{sqa6nE2|ODBSJZZ~Vi_f$8L$C+`nH z+F?*2e-{(ME84M8m2T^4bMoyR=rl zn!2wQUhxhqr@e|#n@eP(07&P~0ff?o@&l{HSVoDVhZJK}lO8%+ROvdTK${t53cU`T zw;g#4o&y;2C7TKt<}S%~B|C7GOn#vHF*mPiy04vaFf{rT{v9($c{;g~q4}V+~jU&4KVSyOaC(UA(FIM%A2Ipa#$2qjrfj&<%jU!%t2zp%cB6brL zaiu_5$aQ#uHB+IGkSk?w?W3p>!l|DY0RgsM4qdWJqNN+F*dU^;Nch&@3Oi5MY29*Iz34 z72SE6qnc{GK%RWNt0tXXnnSx_9*Ze<9FT?A_GhK6jN#{02G=%j>Wt6#N3G4xU85x8 zVxrsYE{Rh=ve6uw3ixel=kUkV85TfH}I|3rrl0F(o=(Qw4)=<5$>-<8*@ z6N@vxj%DCuiJl8|PJs?d6$=$&U*(Fi5aBONjOP%!$!bi79bz&V5^&zKxc>ntO>?i> z&N$AoG(PP|q^px=AZtR4Q&}DKOW7>cm2Mo*z%byt8157*Lq(29XF%Z-qf+ZjwoHh_ z+Aox{RVKhmc!DG|=T)1Sn!HVHT;z#X$lQ?hLLQP{%l3kfBc+Qs5-7k)N-;h`cDbil z)J^sZK~BE$Cjbt7jZZvonmrgFtPO8Ozw{*S&`+AeG1(jtA>tZ6`9||3dH8;qn#!|g zPAp9VpvYBlTLI(xbOy@*xtBU1rvEBi7C}Qc;Oc}QUH;QE&bS1bATEM3{AHF{_bcWB zlkYDXHw@f}n7!oKhHv~X*MF3c4dcB$IbW&4XXiK!xcidv5hA`@*f}J zQi*t4Hn_$r6?^bcH?bb$memwHx!Cbpy&h2j4#;3WAJRpJ8IBnaAbeeV;;`-Xu#xWnud%Gc&U^z+%2xAWY^gdVa2H zLQDjNCIP^(<8ape_!x0l7>&VwVUi0_dxAHzN(r99s1)#yZKd4vy@Y&AtYcQbP?m~; zZ+S+i2atHkG8TPcL$^gD9n_XC+nU5Aa5frB_kS+U0ZKuf-7PPeT`p?OZZ)o#i6RkY zwrw8D0aIAV;4*>N;@}wxtQgUy@vGMLPCcCDgNU}Tt(?Wrs#Ry}kQ6_c|A&1xy@ z7;ySRLBK%k$g?)pM1HT5(PtP!k)?v4kP=n(GkGfGeb5m$Ijq=YPJQMT{p7e9(K_s^tXx5&1@TRM=C5By93Pn-4 z%^}M2;XsP!37EuP(dkor+2;MzM*`|f;$5S-H^~x9)E+mxNko#zx%C@1cnF6Y+Zg=; z5T(IF-?<{yj^@GX-sHxwlz~WhQ@h`cVOG|0y#<>@;iXXe>hXqy;8A2{m|o%9i39|W zRhogBv+clM^eH7nIU^Bm7nCqX=@Oa@3Y~m>d=+kDq^B`zHsm!`oKu_x&%L=KEdA@^ z&^Kxb{*g$`d?3(nk4Vre0KD@sYEl(yX^85nHMZ4rOMeZhGDRZ0mNQ zE}$-guHGXwl`A0@rZxdIePsrjF}#;Eo85bZsgwD$UMgbYgS<{LHM(XzS5p4~R6AxL z2C?p5CheAWBBGQIRg9StvK#Oj=9$Myi+S+~K`$M!^oAz{FuxgV%Hd!HW%}D|AsatD zeYt2O-!j%zC82T0>=C-!_eOy8Na$`vI$^S5qzK|q22bvpgoOKayH}b;wijkxvQSylbC8K|56ye79cMy>zrP;S$=%COj!sH zLane>IJlv6kOCP`R8hZ+I^$B`N{J0*UL~oYj^Mz|qwT;l$et2Ma5k3bQW!t@-bO_A z(qZ*S|AIobV(ke(v`Dx74Pv9 zN1Bi&yC9-90S=Ce{u6ZuTTQO0W522#9UMC6z<`Kj>(6AeTr1Z4JaHwjt-6Fshzvla zadY8fpj7sa8}C^W)X`PU9I|9R^h9A2URL489STF zY-l%uv^*oV(}l|vhakw6nMb|HuLkS|yO2Aih*V%`DM^HfUzsNt3cD7KjDTuN6NS#S;F>=siLz1)kg?Dc=vDo+ zOg@gq52=wgPmECR+(2;HTv3hq9bH_=?09>2%sHC1HzB}TNq9Zw0%i?Wr+ytK2^{2O zuwtuBDOkXXGB4Uo{tT3Nv?IkrIndEZaLHdCReP| zMKc59&~QWn0@xD@fRG|UjS=1fjPfjby=!~xJD@jjp%uvJf2u)*(3OPGG3Q8Rpckr_hbp;Cmvfr-F0OzYeca`NyC zKW&=-09>GEY8P(`c^orlD5i+=(5w+4Y|J$v?5gV!9`Jw#S0SY z5#ctnUDPp!o2=S$`OH-CFjN&;gtb%0u$09evBZQc4QHQS0GbIck;7*~a6_4F30JYi zfFmHr-=pB$nQfefw<1S>LVN}r!w_T8&qN|p!H&)6=M1V5P5lc0C}=ljw*Sqew(3MU$!K(p>-*m{OF9)~5b7 zBlwN7wwj}WcOjH@A%L2)E_I1 z5A}+7|G8}C-7Q7b{4e97(rD8j40<+GeFKs_C-A-vlXIRR5DY|sI2n9 zGJ?-(bnJKZrc_a4)9D2OjF($u9_+CwDKocL8N&a<&qjX=(z5BEM9C9p5=!g}@ig&? zpPsJIK*ui2OJjK^PcjV+f3KD^!jHeyyj#VPD8U}|2G>AXgnB{v!SRla#J$Zg`J<^03&~=4!XKPW?gJ+ ztj4fr$Jkh=IWZTOT(F|$yClEl?;3~#JPoM1By2Cm+BnPg3-O|q)gZ@e#ci~=Q>hL6qh#K;)5&dx*HmK;^9^Xr zRZ4F|!y>+Uwm7B|UccqQLY@>9d94ojy!5$lFG%nVVND$+iq%I+vI-1?f8%cec9mIrrM+*Bb=-V7!2!)jc> zpE7zSu@HEiH{VWDwP_0vN5=gcYNuqmWw)rXIDp?Y7zGwnP#=HLWjzDCvK0j zl(K2r_A%y-SLk=obMFDd?P(<`+{0{Lur&B)yVt*QYLz*l4yih4SRd&c7|usCZZ@`E z+baiVhz=75^ok-}An0hygMjQJ?p?$RGO8E;b=q=HuX2#q#M@qK>O0VY>_( zQM#B4;FhkOJQ_WcNS1I^_KQ(lqGE2y$Dr-IzTY30si>p1CpW)ULRzS}gA`#M5-|s| zlIf0~GY4d9@-~1>9P%wL!SACSJ*;=8nYK>s_Lp!R{W6IpCnR4fM_SH#yOnG9PWhg* z79c1~ICW!Nj220wREb^wwsi85XE}~7EKp5#OE;>Xzo@3YWE&U)DDV(o8uC3HGL;wWEv- zUCOhsVB67)pwdstN=>QyaieGB15rFlBiNVpiX7>vQj7wG{`Bm-5=E=Jwwc0K((zH( z*L!RV9{Bdx79ID_N{4X_Ivj`uC`*HE8p|_n1#6yRpfZY#AwEd$J88IZLgPg|7@@hh zF61oi$gxFSo>4+wkH1xG@|a8x`r&auW_{f~r3MEEiZPI#tr&yW){_Gj6hYXfrcMkl z%Ql6}zZ&@bOXa5gNngy$L+?F5SElnMUT0J2U@{P`sXVTix5B~nm#JO8Bp<3x0ktr5 zmZf5xX2ZOaZg)0JbF)@mmBLzQrArG=8~Hg636R!k;~J6L7sb=sSCV;;<>)3=1Q=Sh ze9JDj-|um=e9VJJ+mqbUm`saSWeI4jLlm=(+u!98iWHz`HkH8!_4>l0n5vEe>(GQr z=J*yq0#Qqjw96XJkF^HFgiOlmX}#X%_?Gopr>=)?gkWZnp0a#5dyTJN|L*f&d>@xg zG*+XMo77k=HL|nVG3((@FhO_dum3$<#=r)`<5GzN4?_jVe>%!pD@!S>ala};z+jA4 z9x7(?oDlIr$K_b_TWB5pq?6uL1obSkxRO}Gc}{ysyHfBfsNK*n=b*#<_Q$!6d6(Q9 z#Y&cpOTu~k22lFXbR!>by28ZvyCjXL^>yP`B0AXWy#+GHd^OdBleTSgH z`PccKTd&MJeixVYxS6ZY7Gh4Ez}DU%kQ@%qX5yAuX|TO-sZ z<2_ecTTNr?7hL)+^8cY7*A~gho7fvl@LP>O`JPeK;Ww1P23V8)v+$oC>rH>x2ORID zt)R$6I4FM1GSibJaOW0-9viZPIY_5fr7<*D=PqJ0snf#Kp?;XDy{tfL*J+-TPRC90O-8p+)-*$ob zuYvc|=AR51N5@tLZzK`LrSLNs_}^y8t-t$|Dc>IF29FAp`_k~`%RTDB70NJesj;p- zEh)-E}%0ZUZ$4D{TZ zaFXeQkGHOBLrga#@aV7Bj?|*Zb@Gs88S%@<*@OWxx8g_^=_dSFLwdY6#97b$`U;$W zYeGFm#w@HBD;BfATK6@>hG;W|4Zq1*I!U=9!i!3tz9o&D_r!?hah#3oYN4?Y~0>DkvG2K;1A0*4+>KD*e z@q#v*&zx^+dVZd2 z=af0aDmJl=oH5lEa_p;-+?ZI|0Uyn|E&giyH-o$2_cSPlOJ~Vzv&c2t`8fKinJ9@P-xdSH+;MT{;e(SKM|KsVb}}w^f4)% z5`nLRGA!T4?Eccml79-D-uKG_fJ!R^I@u-{bzwzi8aF{G_rTnv2_0hcyR+1Mv(TV& zeOFF-I`DS+=6i+iKVjz~QEM~u0$vudtMqBE+?5xEBK_*V|0ZY+=aFmXl=W4`Q52N# zJpTS#?H>%57b}7^dIa>z(*hy)<$dqF)86?16UcXo1kY*LFT!F~LTyQLJ)l!0(hdx= z?*+hTi-8)>t(g-1U=7S}Vf+acTYlYYHBdEQh2!E@F$DW-?G8Us{z(TuE75lB5 zX~1e;%~3!I;$NM{T!XHVJ=x8xOA}v{SW~#s?Ce#?%_i%{+3(TS8?9X2K?eWj4v9|A zVYe`8((k|i#<%UIYte9v7OP z>a>__e&4OZV<>$w-&G*wZ;i2c`!M?4%nBz^BNQHGiDR6`MTK|;5v1E`PXO-HU10mq zoMFd_ilixgRiOvltn!pv-L7|9opQZIK`}$EX=!0O53RWQY_0mf;V&^ezc_yCGsJWI zaYzdziylE^Z5GNn`#}I3Wxx)MJNyL2kF?e`fxjPzFLA~Nvu=%-8e^0fZCgAhN{rtU zbJa`1=gr*tf}GHszw>1Kad7*oh+qPoc%2hCjkxYfBx~rCfhF+TYA?q!6$5|03vc=H zF8DkG2YiUWX>;BsWO1&(4)hdS>2yv~Xyoz#>4IAzY}exAh3)@0$^-`=2mMSFhsR6D z73yQPXJcq5CK_a91E})Q*bQ4{Nub>*(O}_h3g~W{7$ehoSd(DtVyNsCWs}L5UJ=~; z#W=1fNE}5lK`J*z$px9tmW&nNz9^(1amF5(QitF0V# zx)l+s*tFn~dVlX|K(Kf+)u3Puz7nU^Iwe*3Q2%9V`n077UlVUYo9AYngq8VSOz2V1 zf3r>hvQq!~S1$#{D9%{#%ZA=}q4QEyiZaEVahk!z>`i+N%-<^OMt#^)Els!Wr@Pzw ziKFqo44&i>i+@OY@1VzN@BXR>59~hbv3|8Hehy*k{87MXMw*>t4!W+4XjX>~&Fs*Q zX!Cf^sFXv|=&uAVaZ27e%GNw_JqfDeagXm}MxD~FQd3$nrFW*=0U`>rpJNj|XRtqm z8D6MX%J&v!9^V5@Ev4<}+t}cW$5ruCO0W4HbiNM5|xWi;XNH&V7I&7t{Ee~EDVk(g{ zeY+rcp_L+5SKB0}E6L+XxSVLNWIe-W`%)HhQ)U7s4LRF5+G#VB(EEwPe(abN0AJ;^ zhLaK$q%1|p9qguc4i=xoJk64`&Mg@*S+dO*=HGl*(MU!oTt*oc^=~LXb%lQ4n^xdt%-#PwGj|gxJT8z-w z>vumMJBTmU{d$F5Lb4|6KJU?}C|9r$4J+{Hwk^t!FkdN}W5So7ZyFS;U?-o=MT$T< zOjsKwccg*fN7p8j&gT!?O)^D#F`2(*os#;L0u{8id=0}dY=*3EB7V@gae$?^Nhc*U zFP^&c={L^Gp`Q7%%SzU7WTno3DS{AZ;FmFfIyWt=+TB1jv}0n%jNs*ds?RAmx7yO~ zi=Sq+IrMr&i4e?hZ(|&G9~MUztwuN{r<;m$k#St}R)c@hd{($@z}84idzzSk2?~~@ z%K}wOXD5d_4T{JpjVk;79I+=tS}#>snv1>8q2vu+Gdg-;Eg9NPx{~)@!HJ#e*e)Y@7OSj|1 zm&R8`*=Exm07OHS1v+LA0f$KJCt69kB!pN(7WDnQdqP5pXsD@Q@LoNA@$K^-pL9V; z>|i9rIL`KnIqK0|mAT@|qsIEk7*-drjv#ePSKix5U8fvdC-(63$HU#no&J!2|26Kd zTTshpyYJi0%;?&nDYqbi7Dgn66L6;+wH%(C&sClrW2l8LWz6NJ*RzLeYCYBdV$sc6 zjkSzEjA*-c6t@tCY%rB<#3eApDu)o?f}&g7(m;|NIVv$~#LO{l+!h2Y%Eb+U@F?%h zL|8Vhvp$_Wk!2=aCF`A4Qc_Tfmg!3U|Bt5>!5+(QLcegWkm@Ly*$yx{O5LG8;l=f z9LVC^L^$vrU3G|$D$E5}mf0tA20w5XS~Pb(dVZAI`BQ~##$*axcU%T|Qr}h)nm#Vd zH6BZ)$$LssXy*W?l#UHiX0JXliVU@G%H$_tWFj{Zq6D(k?V(|r8(^PdfXB~=5~50- z@smqJ7`KS9fzR8*RExQs47Uw3k=04DwWg)mWR&s|50d2UoX2BmST``?rKu0u(pJGd zx}rrG){LZT7+00gr+?fG*c22+M68gD07+;$tdmdD1DpjTT*>C)J-TlQ*~7Bg_I95o zVbcs7z5rVBuu$yIUlC@#)j%-{)gm*1f z`#Y)Y5eXO4w@juJ(N(<1z;W@l5-~gU*x?9SW`{+FS-)~Bs4?lUl(cJrWq*f zG7Q5CXnA|iz}=>)a+{b9 zaonQ5OkV8yW zm@3lAJAP2~4UUoYl7T}V8EDuWo$k<$@RFc~(0#t3^ z(xjPUWpo6ThgndKE*$Fc?wH*kMx&;EHNnLJbtP|J9%ipL^vaMnI~vHYaOr|&)K1kl zv|5x@jhiKZ7{}x^+9{^%WOmB26@{|Ii3dM{J72jWm5&^QY)N7+I#lWq;W9~surHb)xEH$#u~y(JCH*?Bzl zM|V3wuG9f)(u9nl&ZZ`>frd&o>$k#Dnlo|k=iX&Vb=bR4C4W^odA9pm=6CwD%akqg zPXH@MJz>CmQzxhPTWo-6 z;vV~X0=;Q{*B8NS7~PaTzJm2qN11Y*qm$aPpA1s^wlAX65L%V$RBHEbJ0DIrduH+_ zpa3%XWx=@r~@`feW9@&_e|oa|)-pQ5_Holh(zL^>~YOnK=U2Vc$#6lgq56kr% z5z#SK=587IrJjUL)w*+R_MeiuD(~d-^gD22-thEJxkjg3KTmTQ<*L-}m3Oj?=cuX{ zbk?Dg=ar7sNoDHa6GuOk>^~&ig1TrVrK6$NN-Zs|DEt6x>p^e*m8;6rR`byHJ>ltS z_R13mRpQl29KpA8BL_p?QO9T}T9bOJMPK3SW3!gTcXXekc4CGy5HB*M2qB5Z(M)00 zUWB2z@BIw@sq}mKvcJz_?PkZ7Kja6!CRrr7vdh=)OXI`5jQe82UhwpYZ{#)leW`h* zd%EIjzAzW?cecs7^tK;wIMf)PruX$4_G=er8yYE8*L#?YZM5(Ig21*{%^e ze!N6cGF09}hxO7UZU9dj#!%cB0Y^9~!j_Hd|`p@>)Tv+@^2;Ca?I(tS-nrFF4?1q^e46y#a?&>tGbF=Ipn@qG+zJ zzD6>AaP&~{e3&zzAAZRo<03TRY3L2%jKJ3Y^|QS2E`6@;A)H*&eE0ZwKMZmaDc})` zd$Gsb!>;0J-(J_p(ntL|y*ejc#1txP&FJTq3f;$R2Sk_5Z$=Lrv<}p?kFs|8BQBg< zu-tp{lxARtOB4(23E*;wdPL;oyPJjYiiR!rO%nISPkd)Q)8H~N(Z}M8QXlQQl(Jru zcO{*U$~5cSw_x4OFwUNC%l7WjDe+UDLc8ha?rVX?c^0KUJa^`#%xs<3Lz1uD5;{S6 ze$EjY&vyS&-M^NdT}jtSW)YgLQ)XP5%(qQ)vjxMlOWZL$;a|#y3aCw0`D3(ip0_ny zgpeTZYMIR1B2Nf=ja%9umk&sFEK823RN*q7q&IiZ@4~?|cLfySUb_Ikr@R|OSRfCb z?qVHzgS%o1rKYZHE{gETT$?s>L}-VoWqq723ZM_isg70O-(aa@=rqT3S?k_@l4;Im zEns_Q&pmN@C@dV&-fOJWrE^cxA!Nvc>gWpmcqts8CLgu;6t$mviG%wQF6m3bbRr1z zS*y`bk7e#};dgi|)+*UQP*(-qbC9~+!Y|Q%Zp$%K*4$hIBQ7$CNcW64btiW{NtJc7 zqX}OWJLaLriN!iyrovl?>~piI86Xb`c{(UBQ}HC}Q3p1DgZ9^8w|l!%L#?ZvtRnf# z4WwKE=8+Ntzo~Lv+>RIS`@+>iL&XKm-E>lqi6h<%aE>2W-DQ_tpG3(2=sO`C8dFUF z$>0nLozuc_q|O6;^Ov;qsnC#PG5S}I*!9e)wsoAy$Pjx^;vJ^W4;+~4-GK@0%`$QN zoTI8gS^uKOLdcW1+fW{sp>F(kT%KyDY^3%rqk6U@>6mN6y<7!`I3E^&r!4F0at+Ph z*5gs3S2`?p!&>&ioWxTDS$7*-DKg5ow>>`KD@?SK@KW;%xB~y|F{93>GmS{AmljPc z?y6LxTe^A);@FT@&ipj%jd(%PvD|x1ZSjR40N)n5r+otwFTDtf*T|PVt9z(5X4|pP zPv6&&6n)t>F7ZX7pqEM**CyTGlBa`CN2elafSW++_@JSf`X6WiBO9x z93i2J6~!S_y4Ho~W(Aduek>eQiU|a653v-}Fy&owQ!B6k~(-EFW#Lqsp*h;=K>YrD*WJy5!T*RSh)l znPr)M>`4oTen*kE{-=lT3^i3Lyp*kT6<<;W#NU=E@qOhP685k|5+*E~ z#;2CKR>agmy){j*FoHcq{ZZu7KGFE^27U>GEq8;pF7rS&PG`gg+1}x(XkUDL>f2f+ z|A2^8pX7N{3uP9=mvF7VYr_LFybTP7%Ix>!PVQPMj0&C~vJ*@4h;x2xH#q>CC_H8! z>O?1bbkLenN!d7ghPPBnK5v}PwQ+{M{*mylc|8Q}$T2=uS3n>$x0`88I1) zKH0YUX&GC|z#n4ZP26EQ9qQ>IX0CV9idq5jtr)53q${mj?R)AZXC1D&bovsMu{Zfx zI*Zt@vazK#Yw}>=_ufZO&|@NB8952)Fz8{rJa7sQghtJz)3sNOSdQ677h*}Izz!F4 zAN9HC>O{gGl51DVs|80Eg>l<)q3&Puta~|@EzqD2j zt9~>jy8T)FZVPLhvSSu@57V_g`^9faoI0FSQl)daq%&HZ1DWIbY}hG>uSJdE)#Os% zw-j1^CWdu)|Ik?B?x8siftX1BYyR#THMjb1Nc*)c9z|*Ns$@gCuHYVBn0NOy;&|c5 zm)PDWY_+Fui+;HQ$L5^;YtypY@8uPQ@9P>1{L(`jI$|*$d5e?Rnc1Id9tih9o+w!1 z&SX7OSc>|k#!lGd2#IgWE-Xc4DyQ!xhq&Z*W-(BWNX&;l%mjy7R*9^MxGX0CC?n`#-$lIGxBO3c8% z8(hjL*7_AdNb$X2(i_|*XTuBIxfV)8^Q(^1vETDDr{f-9>pHh<)pY-$l`q%)AL6vN zgORt?6}i~WCnFQ@oXE31_@gA(ZX%o~#e(&$7|`BSgfkCjN}h-3w?#UH&Q-ls%5;q! zOw!3NPIKaD6ip4Acl9>Ru~wE+=b%=mJA!j=#6w#JnN#C#u~@hB9v7wW@1M-Ro-kI4 zuVJ3YD1jH^cc)-!^59a-->T1X@FhU^zgu>Lc2gmtDTPzZFdo_ z8BY15m2{iqv|Q2RADjs(qxwhFa_^fOQ;ei)?22xZ_7&+jej!42Hw~WOk}SQctg?}j zvD;WILK9A!F2bqO_x8V~NSZ_<7xakHI{0v5iWj16t$8q_hPY9ufdTr(am6l zwpFe{klt_MV+d4sg*xY);^s*{PsQ2GM%}Czea`Me!34saX!iO&<-;d%-eLh5O>@|J zb<(A99+{~{Uxmsrsu>1M$adE7ktigP>>0n0nzt@j9T4E*k2`wxo4JmGmhA->wpTQm zMvdYwG*-rPm1>9{PPYhqqlsxeFuu=%k99E8H(V_4#B7U0wBh@kQWdV!0t=Rv&koAG zJ!Qe78S9nmH}U||#=v04{iZ#%owZ;gz}~jsL3_wDHW5Z8kTZ4}LA=S_#ki)TAfa)v zr7^qhLdmQ4u?vWDhTS_jj~L{dj-S{uba0G;PXyt0L0&ZN9co5GbnPU}i+ zzu5Ier+=!18E2QS_fCj8p&We9_RYP}RTkC;&lH;Bz#7KkI8kzg$0hxip&iV^1+i{5 zfZp(7-ab^Z2+IuhVoZCQcR^=ac0L_n*K$Ou1BL?Q1sYyz243 z%z`9FH$TytJO%Gm9r^hr7B4b%W)FYkLCN0S+!IXM9ds71FR%H#EI74VT1VHrt_qyG zzA;K5>W(s0kMf}Ic=$cb>7WC3O`p$s1TXyYJ8#H`#v;TX;>8AHoE8GdvRkAS3?Ja%W^!k6||W%yD@v}_0{_Vg@Ugf zEz`fmD~MdHKBeE=B4o-b%B*M+VVH1>kt!$p;p4DWRs0^?Pexn`0)SiBL9EVm1^HFRDj zK~&q_*t#ukSNf=6W&C*ITHW_V>Ue=N=bu14&FqLuSAJe_Amf*cAd?Cz?mQSf5X$U1 z{4P?%D&X@CFCekoU&4whyF?0SXHJsHkP3p_shxq){{&joo+Pv8%I><_S9amed(G!6 zXS0HRXEan=8!8GBG|b^v4|HSn5F(UCSVZlby2V(17`=02vGJb1?Y7nRH%;fOo3G0x zk7rx>S-#J6(mmidXDB7vZK7|v=poMIFQS`4eLBPZvEHsASnJ5F$E6+`k4UWBlwB{1k` zrS6Mh@nYsSbW3JqVIX}fFdU3aVGYS4=VpXf=3u(q6Lv&YuPw4NEJt@U2`GA=YrU~! zO8UmV#|2tchw#Ab!zYDP1%sPKoXa2Ti`858uwXl(FNRPsSxIZ8<+HgIF`I515%Csh zgg1#iF~A3);u1Q_vs&DDb(qLF)dqW1xrs2AqtFoH@$IfJ4}~__M9zg@UV44-gpRlW z_4zb`gd{D`Lk1c3)M*xdHFzrekDXCsu&Ox&8`~xOQJV`_?%(B+(@a!@r-uk2F+D~D z6V1rp0mB`~_FiugxFcVYu`yd4#CDU?TneN+C1PZ>p3u3RExoilXJ;Q%&rOvs?1iWt zUN!5Xbyss%>g|ew2CLOhs5&_U`nu@7eR#Be=EMWjqMf9k>~6NqGaj=}xlde@FMKrG z2Payx)fTEJxuwv^TgD*JLjq4YY|!_TA+Dx_=_uVo<9Sy3+=afVL*G;qrXKL5yk0@7 z1x&Z41Sk8ETH3vrzc!mC$6kG$@K~BHXb#1x*2WtAMfQks^573Ucd z*VA7URhTi3sh1p>QP!F4zz|&=amcpeiNXhDrjYye#yG^5YUUYOH38?%)HBxX~doTG)EC3n35CTU{0qguhFCG zjnY+?wYQJ)$rsE;KGF$4Ms|v_;2R3dr!|%&$sB7lZc=^iyzj5%^!8re&{K4;yuoZV4N2D z(!Y+t>LsNO)eS4cH$}-Z?}!h`TNc%4oERzdW#)a2;JX#qBgbQwXc`dW9rAFwHt?R- z%c#>{;d(2}TKD?B2GG_X3b2e{s#mT41U}R9-z-!F=V^H)+3^(1=_D$cCQ>60q*)%8IT z!y>=g4}4d{Nn^SLGAHZI(a#-qxCzlMD@>c#-<%=3I{WdF?*VP zFyq;Hy1UsAsnmCg%-q+|yssn)7&dlrTzyHi+ zhdhl>zgCiNYj|((dHEH;{M`6SsSCFgPScY2pil4KkwGLm483iF|vE2fJ zu646Qna(V(_+vp^WAaR>mCl9Krz5qNHGMRv&bf%Czsc*UX6&w{?LxZok z`XTbGr=pXc*YHJ&b;j)rvVHTIty~$*1WO?+4=yb91}GI61=Hs!AW(PH2cHs4}N?GrJPI z%G->}=^R|u)iY%!vhr{I1X#Zx7#}dMRxht8#7ipvI ze^(_g4OwWTBLDcxy3q~A{ib^f`T8cpx1aQ12`m*y*}k9wm@VB*E@0|8GW$MLb7rtB z!7Na7UZJC}{dHe(1sx5dYjPrLhn(R|fDo=Lj_E)9Ga^{AY-gd*qzKdr7ukDdGeN z-=m^)(OH7nq3OO?y2Z8*Fw*XQu}5>M7_GTdvTW#W9(*?wogyTKl;y)E%`^m3u2;NX z2&mGV)EDrqY?r9wENO{0{XkuGJJ7i8N?^W=m9ZK#M;RSdBUwhtbx&PxU7x>SLYOHg ze5fS%j&KrV@#n0|F~UAv_r~*}>GUkelW zy~F#b*i5@uunQ-%hFi691SzR8`VlO?jO^S!K*zvX8235qjf;-2T%R>(>j*HW^Tej5FD(!Dl+4|< zFVrOW*1cgczFWc)JC}S#Q?L7N@tGf|Escz%s!{}ePi5Iuy2q8ios;cJqalp49f$3G zW#l%XuY=@5`-YFEYAfS36%~D9U-|fw-|)komfNOfjXZA!7VXwE@#hp=L95~`#ioid5i|oV#_|xLQa)BA*$PS04FOYo<11n^d#LH zr)IX@^^kmsf8UPek(Tj-VF~aCu)Sj?_vg+u%RFBu$c$o=z?F7v%($rC9*o5?pVJ2o zO>W^BOhfgOTH?JhZ`fTH>u0Z|q)|JfPB?Mam1LBU1?<8z2zjw7 zQTyZz52k)R`bGRd{bwg{w0h*Bb3Nr68-8pxxwIV~+!YNz(vg7*0zd&O@W+-&@}JUf zBme%X;*3coV4&*YVQWby0vIR)4b{m;0#FndmIy%;h0!F~Rvxfk`_N7b;`SfJM5rz% z8Um1Ap(HE@jzA-Ed?YxG2>b`zH4AlU5~%r)hJW)E1xo3lNdz>CfQCZ;;QH@r$Of<& zDA;iXhN9}fD{}uO|5p8iYqBIfg-BYpyLS8yo#5)0Lmx5TH#H!Xz zY(6ZVKM{u^!eIaw7E;A`?;m9o-7o+GlZZznAs7He3J(AfG{qbi`1gN0Fd`O%!~#$P zfCQDS83HgQ08L)2|HBbSBtt-O(L@Luxf*SXI2HzunN3xHCyr3LSaKu3hdvyjE;uG65%j14ue8$ zDo28D;4!Fw%Ms=c$FQ5S;K(Fy(Eq+d5&;8?P6RW3tJ@F^nSdt4VOu-$=Q>$~Vh%Kv zh=-vzOdv3c5X$`XXZ}A>;Q5K`$Wk<{6+DbW#G^O0Z8UAI;3yE25NI$sV2D7l$Y3id zOF4oQ%euC|tl;@THZaa)1Q=Kt00&n2SM9DRb!r$JMb%#vm?41z=vvcyc+p^9pa@`D zrQfu9=tikf5@g>h ziznjuuZwJ3uV4~Eh$*dqEVw_O5(E+n${Rci8_X1l(Wq5$H(ECa%m$^Jpt4b?jDfX+ z=c9}Y9FQozPNC3Y8=PyE)U6b+4NjOo0ey)8L*bmZ@c(HrckwT8n%j`2Kun@^5Vl43 zj}U`W7F#KsoPU6LUHP9Oo>*^Mi_e;&Us=4_L~&^|AiwBN>m!!Zx)JKlEZ!=Ppzv%d z;^gto(@o85S^OW&e};H7yqLrd=G83TVq#T4e$&cYQ?=gQCXeEJ>uMHn(to)M`wvPg zVRDnQshN_+oAh7xKSR8Qf`7lx|A#DICvF9FRrCKdh%a_+xVP!UAF_De|4kr%QJglz zOW>{EU|XH2H@y8-L2OuAt9T|Jn%m&n9C*Kz#rTx1V;;3`H}SV17O5uiFRzP)cCCB$ zTM!Eb5HJ_lWjB2${1(K8U7I3Q-(9{!09H=PC5xftWH;udekV|7I$IL0I2zQS`5utqiNg z>Ww9j0NcVwS&RQvwlJ)=rh>;`-fpG?7(m0nklo6#s<~@J7K7U4|1F5Yi8@g$f6cuu zL+ke;c3P87SXlLB)%x#3jMrI{P2|~>{cVWXgRm8ae}$Mby@L>gn;Fhk)9Xq=xBnI5 z)$7n|0vO@vtAP?S+z9o*W-&e=GzUUVA`B&+q;z&msQ(pWIgmfG3zJl=zBWR(WYcd$ ztV!AXk?B~sCdPTC7Qu+#uN?$s4UQ$^Kzu_fde+LnLac!y+UJAJ2?I`>Qfsn! zKJZ!+iHD(nslt%K4Jr<{$+ikHc$&MgZf=c}a)k9m!1-t6k`N6ApKT8THf0HG(~DSc z*M{tB_bIaINCf(qQOYT}xdjccyFsC>O)qMjw^AQ^Y-nZyWw#^<8GNWEeCtIY#t_tS zP@|fnMIsB$M6l!h#cu+m>Hie1>IUDe%` zy2i#f3B+PU53B_NK*1CP8NkrNL4eSIxY)#VQ(DYZH?&7W=v+tYYn?U@d61*Uo zh9o>d!~@{?BqAtv(pHE!to%g<)MDVg5jv?bW zgNFJoSqw9PCKABAi0DMz=EAXM1^FijNOr)V|3QDxE}7wNDcnJflL zz`V!igr@&b!bPHa7}RD{%JM&vC1VvHdL?#wf&=^4y!T&p8O}<^qM>jYh%#l``RkDW z4IKvs`BC6p2f_SdUHBa(AjCL;2vG7DNm-Tt#>8LKDG;M@;F^d|g#Wj)AjH6b?d`f7 zND&MP|6jSf$xNiiAb)p?+m!kh8EiiBH>c%wS2shtagX}XP5(;4Qy~5y7CbQcU(3Qa zY|&9VGZ{X3Lx;H%ao znZcK*L8)k{!B?%Vy=)D_%qtCmuUezLXKe{Bg|(|f`hxFUo6)b#UVYgb6$Eks`4gBE zSm0xAc!Ve@EvG_cGJZGuW~T_xO3SO-{XT{0w8P{xuVpVp?&QD^PWMH_J((=Bn$P?X zF8H39{0Rsk9aP@T420R8vD0EQ8)M|IA&&r>0NPmeX|l_t3rt;RiH$a8;jNaeJg?s_ z%Sc3R(}I(&VW_h=(<$PmgY$)BZGCQ<3Ej6U9W9drM;-G*Fi}73(uW;$e@NHtQQF}o z>+Y<4$13Fu*+N*MxHp0(nJZIHS6XyP(BI{3$&D;V-KN#Fh9{mj5TH4nHIu#5{AF6z4POqC(;puNerKiuJmpR`^x4HaA zd;a%^9x}56El4Ef<=v+OYQCvce+2Z~W5NZf@5kGQEX~G8jjNw@3`25g~SAgTpxHboWFl zjlB7ZdNN*?-azdrjSE#b^Ny#xYR+%~RXA@AD)Or<7IBfhc{;B`lLTY=c>Lan?r;c6 z?&L~&1XM63gOc`GW$YxGsgBee>jZRgk6PkN$Aj&_l-Ue)8^~YeEr;P z(2(m*`1Y{Cge%wMj)|qBLWM9x<5NGHJ{;zZMOYh)ia)klbjJ4-BGSziDvGux>xB2E z&S;SxW=w`chr$#dAE?}6*0Iy*RF8*ELP-Yyr<4;zg_WguKCAG(uC{IZ1pc1)Eqk%R zW%yw1Kn~Yzn5?6k-n$FKLuDopORVRwyUUgQ1UL(O^b15y)Qh2?*vTiItR&^~ix+fT z#59^Bc_mLPmVQ>Z)0*ZoecSgyvY^pEe>%;_<>T{PQZQcQx{D(;YDc~qhp9<^s>-hl z2+AfPj?fF7$s7(6Xy|&9vfIrq&EY3NcY4gZW@PAuV;G(0*V@3ZpGrS##lKw2!%qcN zY_qDasqKDz&GyHO+W=>GrH?OdF?`_hMgFh*>p$fCqrbE)wm&y|{Wx? zEwSw-pFgxZ^UmGd!9emmfA`L*3ZfHr;YmS6{`t<89|_A812k^NjPK9V!aJBFPA;w- z?0NI3Y>|uZv*W$M^Swt#C2#FC zIV*K)a1Zj^X^OLkR~XEFc%J(AI4*{pYV1FtWEHhrd953-xv8zMzH;~d(C~&o|6`BO zora3gis+!!#qC0Dwz$G)MVz-ETU~vpeAn~Z*RQ3YqmR^H)fmqiSmd$vxVb-x80JIz zZv5$~_+VU4pMGx|t1uHAO|{OD2w9(0xJNKQ&TF7k;ryJdE`HNRGZYOM1M z{v zy~-b?9g{43N}EvJcg<*@(#*SDxr;j$-v>M`I-RU56xkE@gY{Eo&k+g_)#gac8*r2K zI~*Z&e{6r*Q+QKK6W}S7v9hmM;#h?cg+yOLn{qgIXKlRtft}~`gYMX^R3szEm9mr& zK}&Ij!w0LYYw!I83J+80#d5p4l+rb(MXV(0$pip@Mw)H&g99wj}*4g_ zpb(w#_icV`h0i^|Oj^oX4F_J@ z`+YuzTv}ar+~4}KZ0Q%OSBxH{n5G`4j8Mq)+wN zp*s-Om3NDb`BfRfl+&+1%!+>OBM5NovS=0WFFGuc#e1V(f_ocWUCaHzX z$v*)H78aO^+1{Cq!qmsma!zp`l?$1;(WrsZX~C+Ys!#zKjv+LZagJNYAc@w{y=Go7EtUaiC2(q#*?3CwrRCnb zm>C7J$Xj=_X&feLg$xfqc_)Pz4~tW3m+Ke!bp7n;jBsc61z7pel+~L++N zCr34mj#XIyFaAiEr6wqb?RdKH$>X{&7j&FC1x%EHoae>GbYvPfJ`Xq$ohJi1LF;Ug zr*0xzlZwk^qbpQEL7WU^Dod--X7gcbRCoY#(v2XYp6XO;=wczGt6uz!|IO1KUk@k8 zu(jDb4v-iKGU`bTHmYsJ6k4d3x)@)uTsgf4S2Nvg?Nu)Ae(uACBmAMx+mn5*#BVg+s-|YcERq>T5Ts zJ>5IbVVa<+WZ&97Y;{%OH~|$YL5Ow^3vo4-NfpZ49;q#$FhS z)t1Bw<`hT55>+j)3OMOU0%9^XG@WU;qRz}buKUg$AQMX{YoflDTYxgmh!uRxJW$9r zZ^$ZQN`)6^kGFQHv=FlVwei+pjQnTZ$;%vo^oivNdRE4f55)hNc&T6V&H zxTSJ__@4{e1%~s z(K=%jjbhS)QnqJT=efWiYG3az z?|O8A{NwGGD}gWD-u!LjOdv1+-p@aQ**lb1t}}xlEQtMq5yuHFRznGYaiW92i+(b5L;bN5nX&#TSNyF~QUi@ksP8#wf_Hs|#S@HqTf+fG6ZGVVpV&|D$Fg8#{}azWk##=-`>{%@7qllkp7DlC*WMgyPHu`U^c~Zxpbr)qcLhw|w=!&# zC3WTxOfO9+sB#DzmwU9@htn(UG^(?9m2XUWd?Rd-*yz0z)jrDv0p{Xbr>@>uk;nO)rs+a z^=x}m_b^bh0v#B#|K$-nCLo1|4}y;8IA47o8TYmpn{b^;Ad|3{;FKO-aqjh`Rbvy8 z+3ouMl|?TkB1{G-M6WhG$U9(3miB&9nET|r| z-Pxd}X49=DJR!Ni^+@rH{9#zV8Z7MK|M+tp_(EDxK4Z+*h_-Ozn3M*7}*wUZ#| z)v1?A?N@Y@mpT0Er5PA2`rI5}@W7#iKh&~JW|zrYGaWsWvoGKUBcWurYgcSeu~C=b z6xB0FGcZSm;ES@M-5Mdep)%Qwo^y19usCmf1vDWH#!{(Y(*n>KiUw=r6vzSL!B66w zpgg&h!TJ^wGD}6DU3(5xxvObweMenq(fHCGRNEoW9gzdgi3n$Yp~NCwhU(z(@ynA}`Hh*=KNK zl3MLc&ZhD2LZ7tl;JLF#u{Pw~CkojQ)sK_a;Czo~ITbzWXj33gj?{i1_JzknUC|ID z!dN#KVcV zrj$XAWOt0emY2VRQ!%FGrQD8lk15f+V zN3JG;Oc-xXd8SoIy69xfDT86IH0MoUjyj)w#`Txyk~ z(GSz-@MsH%O1L)PvN>d*#$Ycy8illza9?$;w|0ZjY0ka09n~|kCRRt~(nyf6S!Fz?#Qh3A(z~i|Xk`w`+vsWc zh}L+eQSzf-Fs~L5(>SH))I1EldFB1ebIrGa;}O^2t7woJBS;qy*pFpP144mlm!T)yS5u>pqjO42Vb_}8?r!=k)3zfKWo<*CvX%g?G}hu20Cr$MLWFd>*!_hnTR zPFtn!6jjY(Deq#)`KrME?`jPJt`&}?H)6VSV34wF&L5!HFTc3*CFHm&{ZUng^L)>> z5;WU`ZAFN}@8nL4b0p<~ofil8n~y-#mK(s|vsD$!af*+|@{|u8Sk-W4oCH-*wCKfY zwu*4O+XUK8*#Q80wF!-X1IDtmJCpzO5raqE?#;i3G#Y#=ndz>G{Z*H!rQr`51XS}B zay4(+P1(or+ki3kKtX$XWy#mles z!18`U$Xt*P)&HSpUd6T_7hRhhrdZzLDSq{)Za+Bx0GWCJ%*X6VSKB+wm`W1BX=Vv5M%LxF-=SN=U&9*00r4LsB6j7p@}M z9^ID#pCYgd+ND+f9~2~K;84gNEov$vfFugjBE4Dcluhh?uRr#VWDSWsDS7<)ntGQK z99MrZ6n^-JJ_{ZD=-N@^kei89 zKf}G7*o*}>>$zC$5 z#u9oQClL z^m#*U0+pd^b>&t#SSSu=^Ak8AGCvxv&HU+Mj+Ch2*AIDrzZm|_8p#Y(??`*V?Wnzs zq~YgwRCA9}mCk`5je}b$s3NCxC4$gLbTiZ#8Bn}#=DhULccFxW{!mCTb~{lvln(fi zoQQz6xZ{^Vf;)XE1PX)E zfSZ2G=YMC%o17&8Z@;Zu!9v3J)Mj&y<#RQQ4U$zVE8C zIgN5Gys4E1K5NHs({g(x*Ab&$g=D(<6HsgUyG#DRybtidiFi0={XPRTcU|yq`MGbs z<25dQnF^lcHR8K1s`MXBtHQ5#ct~FmXzpU0kzJI^OTMlCu=a++wzuHy4FI$ZBtx%q zW5{u9KT#J>-JoDxP*mjpl5E?CF_rG0z_qWD@T?e{qX8$V>juYcax4DQ-)C#VbU%^E?h&$TGi3hTaPMp^jXLf(!afS&h zO8N96!KmZ+Vu=hDES{^l&l?{64?J7saY|lZ&%@NCx0farM+pZjbtr zfa{hT*FjXfzjg4ugi}QhJgST{e4y3h5MD9OlOP^?0ShBewi$!2{IguNR9{^a8R9Y3+7C6+UJ(KUqkN25TS8=5<~voqQI3%U}|| zyf@z0|C2FR7zT~8d+jTf!jYw_;9EItjk|MgCkrz{-887lE~2tOx$)r8^KBoik zqMqKlIg~x|*2x=?ufM+C6e@MRkt@VI;5lEluCQ7LhgZG8^kp7BPEEHFs&G%M2YN1d zY2{5XT*Lx2`OQs%nkQ>!ts3;qBOH!4$v}3fm)!KFA3o2ycN+YPCg&m1LL?RVemC~9 zhn-r^N)T$R?q_p}yF-$fCUWkf)h!pCu!#f{#wRlMxk)^@PDizrm-8I=55{0V-eG|#+x+SomPaBFus6V~Hbe%t1H_-9^ZYl0Y+Qe2W z@8VXK2L1YD%ywTSU&sPum{5}wk0B_|Udwh5`F3yFER}4WCoN7iCWa>LfeF%Q2S;(V zXp8lIIu9(bMAuKCj5s_8-Kk3RMm8}BUL`7$ovkB2va}S%DaTe}K(zzCo$<@|2s(Is zEoob35DTrUX@(S9@vC_x)zRyFjz932S8CdOLTik#31HE7JjlmjDNu@O3eI&bFT0PG z=Exq6Ir$3tUA4fVjzwpiYoChpzJhGu5us-Gj*;lpAw>A3<+nIE2Xp7=Cu$-yg_e@R zSCC5a=e1p*Wn9|N=@w~Zn~=rVb?vnq*L2o!wWG_`%!q`8&@KQVxkqTd6ZL!rT))Pz zp`^qlROJ6%_0`kl4sfRvsrflXPFX#yBbZK0qOvp!x>GpYErC^7f`&<&CeXNAUykYi zwzt^Tfo^p6Gg=7+=g&X&d@1lJaPElFi`_bKfQGnm8J|bKG>uBOo-|%IymQHEE{K-& z6)@z{=hu^-xzx{E*bk^(4yKLZexWW|tgP8aG)bwbXUz@MHS4HA!KaTq_E%4Ciy}F_ zaB4oJsCn*4PvzX?Jd;-02XFxjg(K0}U?}YW)jyY$*NyTWb+FqRFYFVPy_ec&x#H=D zJCHA0{(cg2MMEA!o;HGul{74l!b6=3tJI6u}`}e6$lpW-EMT6|h!r)>z+ZgcJ+lREBWZ9^rCRIn>eCLJU*J0-#nai?afp;ZIwNhl5 z%CwtK*;Q7?=Em|_HTp1y=^lC>QQuuEI6)%st25}Y>H^z`Rlc8_4Cs-M>d!R7`#Pu3 z6q#;SuhNYha3rCu{I6d(%wUT3kNBeRcJDLFp%os1LsXtx zcgn}GC{4b?3>U-r)R`a$>VqB*2%3F9vWB9Qz`eOS#rMJ_uu6!hK^2=`Qj0L@24UBDX{4A3)3bt)McgA^i9UovV zJ!n%i{^8@WP&Gbnpn~(eMr4_j@_oJ?LGiAK$pyA+LnNKbbUZ3o)(`Zug=7@e+K{6C z>Pj1HTZ{^w0}~PfL4N{$t&8ukBMVlEAT_Pv5<)(98luzlN*w+Rszq}zXO^W(^!Rcs z8oL}t0tGJjMkYT={ri@Z`%%0ccxot|$8251R6on8+2Q~Y=>l0X|0`5m3}1&vxS`7N zX&?thYLsEj=Zps_cX0lX-pN})9Z6d&F3I^{X#1c0$7(rHc{m*$b4T8PWYiB@>0;_> zkeD<4XF#xu_4sbH#S?pKPLF=ZZ8Gylo4&d#xmtZ8l1MV%E3zOHug}Ojye$u0 zz$8H(49mBIO$tQ6Neo%Eenodo!z7Tf8}q~B^MTzPMQN>V9h}qlvGQ-AQ7o9aRihtu z-O1VgUXJU1bkFUAuzfHe5rLoq@Psp$y?kt{`4m>68$E$pY5nX6$a=<=tUhIp_o0r} zqG*m{{?Vo3WvBql>2$QGUBai_%~k_cFSCG`DwSNbxVu@Ik~${Z6RIP5hh6sVJ(A>y z6#}e)c~#4>`Y^hR@Z`lF5y^;Pc%BS7TS8Wh#UKI7DCy{H>GqyTPJ|mFsj9JOFP-GS-KtdJ3Bw&mBTh*7t%Nhmf*r@fe_9UefSGIPOZu=lxCs!9-9;&pwp z1NB~-GKCcU>BcDg9~z^ZIBG>&F8S(4Qo~fE0;JD z{A31{Q{+*}F=`3P%{eYXmWNZUpodi?Ekb1td|KA2MF&l@5=tDE{7Jp8IFuq&->%(a zk@5%ZnNWED)f*e+9HA=IVFvu}1X+3wEM+azNrIzNs%djtltnp%Upl)F-4n&>bNu(O zF2Ei!2V@Y^{{y(o_5IjO@`MDX^xj{`&9F%^{V5&G6uwYRPq5&Q`8`*T7iRtarem^M zpqCjWc0K)t>0QwjB$5icH3v0hIduL;r8#$;w5=4(F%2?yK~cuW3k$*17k|82SNJKx zcB>i2YK>0qoJ5!TcFCO-oTNmxHN<`=(MvGp1dL)%9X$^{vmBf?N3yFMG}C8BJ7BP1 zP{3Z@%Cm`}%ZNaF^f2W~54_d(utu^$=IL?e4xYu4Kl%bn%zlkjgCTkf?OZqL7`3kX zosSRGxWJCZ^wEz9PJCC2Z(tiZ7h04qD{UD*buvtoezhf}_HF-GlJPI|%AM8v?VH8G zy!JFh#cDYXUiRSAHLT<3++n<#jc9LDY{Aki2zp)q+U7aY%=)+Ve*Moucgx_hZ2s7# zC~sE>vlO)Z65!M>YZzvGSUqLjX3<)|9egU*@xFnJ7jUi6BV&vle*FY*6Hx!5o4V>I zt>in_>oT#2H;R*_db2&2mS7~NOT^o(FBFuq*kDM_ffQ(7fbELYu!^Uh71JjEby>}t zZ&JaU1ytKbei{VJ%Nhv7qoo7o7hjlj|SZu*-eWGh~`nwJK}0{ zo+E70Jw^8OBsqk2TF^#FtaF&72gA?~-%*F&%{(`tRnjm(C%8q&NKzp{cCdMx2oyJ> zlti;g6{|}t^Hp@aA?+bO;pSJR%8ukW@_!7Dl2rlE@Dz59G2wzYAW@G^P!u4Hu~s)E zaw7gjn%`}MIc+Gf_Qr~H2<j3~V#9_aITR52<@fSccloXwyO>o7t000Fj;kBnmp>RSKiag>Jsada&z;@dqbV z;s-M3U6)cET!)U>98|(WlS#mAo8s%c?%Lp15m2`7l;IFqQm;U=2X88onj#)y>33kCte=|Z3Z=b? z@1xxWYcz96QJB-;HH!$p@ns?g%X7iAYPcPaT%&?ne#uA_A`5`u-7!Ms#47U;ayg`5JL~E zFMd^6Q#HH$t=HWv-?@X)N(>oNs4un;~D++neQy65A>6H_7 zXIJbxj;CaEqK6@p;pUaO`H*8A7+MPAwrKi9ba_L;f3x92wzjc!N6@!G*A)DYH>W84XEZF6rc7@vPRu^ z-{|`r5##OVk}9`mXcx%TD=f&EE53h3 zI=cq>1&`OTMKZt49=T#!PuA!^Lr(!#Dk1WEtriO_0i`qS1c)vvr!+Qvr;_YfP`+0{ z1okKq&MQK`jRU=8x)Uc!MWKQFT$nVe_xi?H$QpYLBuo2SAx4Lvnj+Vi$TO*3h(}0? zn&LFYu`q#;L?gn?GdlBQJZ4^;Xa1wm&^0STxu$K%~~S~ zngTS&=f-EcH0_!}#QG&r7aW5pz1!{E@DG`<RPc+CA)HYoa>F$=XFy?c zfa5A2AI1l#hr4J{F|glo08(}>$KqnuVZ&k>riSq=_Li?&qz8KJL{wha@;vaLXf5K> zOzziCJ3HI)IhNS_pkfhXNtB%S{0{8VS25O=b+zQ@8%Es+oVRcotjkc}_!VW|X_32; zb>C8i%FfLQe3acKVeye*Ak^m3#IEq zc>EniN%bsaEIpDYNriViO0}kFreE2L`1V5&)oYb<-JI%vO4QKNA*cwqBb{D%7pQqB zUjLfhhw@fG!Wr4?{j|1QPu~eTZcx?pxu^ zo+yRWW6r_#Au(sto3Xxol^|C02hnaAA`Mr5O|9msG#%P{Fx?91r6#qC`I8qcBAWgZ zVHd9roj?|jam^3A{FQhB_El@TyCm$9K>?&jd(ukEv#ntO8v5Lg8c z$&IVt!n8ZDt86jP)z7 z<-{hHbw?dx!kw)Y4qC#~zJn08Q(Cdo(MZ9*Ths52nK~3>aWj9YO+l5_o*pX?>f_TY z?L2gh-MN0OxS)cR3G(k>lcG|=0uzJ=CVu9e*{oDzjC{Ijfrk#=fN{@x!;S2zi5EfR z7S`J%YY+MDZ~g|JP&Nd;QVEC_2F-33k<_oAvFS61+fa~*YW0n8Xtws=&Y5iqlY02( zq27k^)x_`pKk2d-u)#9j7H6y}`n##5&`D(nbZOBv3m{^!+aAVDfsG%GxKA{+y{ZR- zy<2Ot*xJ(j`~*iSj1&Ryk>lU1yICH-BIzDnSNk^2;s-cXzF?vnx|$^UiSDXQ1YFY3 z0NAYsZRNes_!L7YPC-mYJ{vS=8-0Ud2D1CmuQRHB6fQ;NyWvX9)-3yS6*N7rOFo{f z0cQfcV|`~Aq7sTL-h8=mlGpJ~pKJEP5HwisiM@TOlkqw3RY@t>kh;vMPur@a^&n*} z)n{NA$($p3!%tN${x{%#KP*l0BS9J(92#WQ)(&7nz|ObOiBeR!0kM-h9OJhF7~^nn zAN0&nE;iL4dn%13{xDd)^K@oAd`E9inu0B^IQc0>j@XbvrX^d{lrO*=Ec)V|O` zqsxDshKJsT9bLI8aq9q!%6!0gBr1y=HJHBOj$M zC$7om=iD>p5fENP%Pd;y?ah_skg+ZnKMd`BZm0!&{KHDA=*N-Va249`C+Ec%vkDE5 zzOY96;B55N2%Irp=GAx6k5NxuC0jH;#`h6B`7R&~aPRJJ&XUb3TzxFVYsY+5GjQX& z30EsuQe-VDDbGz#eWQ$})|l2A2xBSRBr>{2DG1<2_EwOXDIDgd#|XUpC|=+8*UcLB z*$I`(a&FQm<3H9r0=303dCKSGebv@rQgb~8tc8Z0L=p~4L%M+D7AfS3-hxbh6uV@J*xP??*<=RWjHz%j4o=it9-B^`jy=pIckeECJajnYGS#gmGyS`%iT9Wie zdX=ca!R-uHQo8aAXb<+o{=??STn>17iihnFoVdYJvuwJ)=vELp-r3N>rW}WyB=_dI zcC&SSz~M=DQa!yxg+(aU4@xt!%bh9SUux%~D>2vbhG){D1JpcM_L{fM*uIZqr%chTqBAj`dq7p}0@!l1rQP6;f{b?U1{$$gKH%f<5!O0NzL3u zoYMyE+O*hM!%oB|XY^|k5kd@kq^@KLlM$F+ZUZCmwfX>TN&}R*<3-c0QqdoCXiuUM z1s*rO89}iuDtx7aJRv8&g+)2Vx~@O?%6 z#srp%FhJ5PBqiv4acfaSq#98>-C<&#dynFeG0}qdzV30!;t#QDcuQZ%Sin;WuE6eK zQ<->D=n$2bK}nCzp6q49dv`C2F11;ZdO^R5mR3UI@PmHIab;7V4N`S}Qs0tqmNL^PBReh?RU@cMg z=~wGSjcEO4+;G-eLyCbKvAolb8d=H5NapuQ*#RwENI}useDwt$L(v^0!sZwiir%2j zS?qaFzD58Sio)OPz%2u8!qzVXnJfGYWb+HmH6hD%Yzrp|$dDZZ0!cNq^)vEU_ufkN zY_q$PE$kVccnT^wyoEW0j|ob25>OA=aA=dBDgJ}df#v3g@Kk4Mwtm0Hq4SM3X6IUQo0V;eZ{ZEl4=WZfB z6F?ij7PU>E=*H&qPJ00yHDp9hdCIB~r-P2{H&f&yWVjguiryYf*6!kU{4X!Wi&Bs9 zNQ_4(UF(WT_#{nIbVw?P+?Nar|7cJL=l%ZPwHBNvjNDz#KK+>onaNbe)z@$FN!pUo z8(y_dJ4e6N&MF!c1Pa0K*3ZIm)Gc>Qw%ByjAT&s#lBj5D?6jCdbIb}^cqR2OPLDPv z(Vf^Nl0@(`PMW=eb&p^T>bdq}Hf>MLKq-6Z+ku0tZeMWxD^Z%MJN3Lz8bz$%aH^@i zyxK$d`hi3zp^OU~o3}qy@ToM#h6<2>;&W_Z&(8fImcqn~=ObII4zgtO8hOeuol!)c zO5sL`=Rvt2x+?8iw(t8TY!T7mS&Qk^C=c1EJCx6RFu`%Ebh7Hz$>9M&L>^!Cq*j&9 z!QKb9y&^Ggk9peBL70)`lTV#MuF@4IR#Xkvf2xvdf>_7XQf=!SS6DT5~OQ?^}dkg|bJ1y2y40u~pgkz+6>o`pO+G*`Bjo3d2{F5M-n*} zFcu$m#DtV!CXH4e5%QP1%T73$Y6EvnM`{qf9* zErSE%6#J|hG)eLU1<|hfB=Z|{$Ev@+Y8dWG)Dvw3!Q?9k=%epTyM;*R-#~!)Z=fTy zDNSk0-g3g_d6Deu!}6p7{sgbIvu;h!#dB7oN3l0wgzhm>AB6npX9EALQO)KyFL?;5 zBYxu-lTlLX9VtqAg<*3+LCyg?3e2o z?V@w_>QKd!!FvHNFFBGQ#pdl`h=O%y0Uy$n`&_EIiylw9Cm8JYCP6^SRByqd_T6v$ z-jP4ZGdFJ=jn9&fccy7j0#3ZW*VNRD7cZSUFw$+9C%17ZPYcdwwQyf`6vk)&xJ$rx z^5NU;XD@EkCuV~T+~lj)S^7& zenEUCG;s9p(R()?+&c$w8u5_OS{n?p%MDU}YWppQz~v9;-Q>M+aVo^3H$6$>2vv0a z+vbnnQ&}g5=<)VoMvU@;5OwXyh>zT!kmUv)FHY96hZV%nxG1QvTe*!H@Y|AAKh)fa zROkFBx0Rd}q`I3fQb`h}Zrz!l0qBj}%`#qj%#9sCVB{riT~px_E!W>!4Q*{>a&@J(4BD6*S~?$LEKk-D);c~@9N zk~B0M6N+E`2F6m%nu#?i5e}fymr@se8yj|dH;=}s4-(i7y2z-wlsJW_vd_6NV+%F1|sw-YZ9uWD`;Pdo)K-dx;~%8_$VdEE5Kp|`hgt#k2@qo?~@?jI-K zbQcy!Dyv?E-aq^D>*W9aaz6(p)`vs0>BO`UD~0fn1}H6du$6uMES^A*Qd^^5@Jw#3 zT^G^Mll#?aeZe0MM7N0$aoSC>q%_Lb32NIxztpn6K;ki1xO7$24Vnxz-Z$U4@iKhe z!tlxVzBxP8ta??7cnGaX&H3?6_`JB^KV$S_Fm$N$^6+NxV-F~IkNkK!26tb6VUfxg z7h&gT`@fD8si7uRG1M$#XFA3Vd7vZl%RRvt9)jAE5|3IJJ14u~#A?pv_h! zoGf}2N?`?S&hix15E`XiNp9Cc8Jify%y>_-&~Hg`lc!jLB%wF7 zeM21cv&<`aBct#L`mMJr^d+|CrW^rMob41Pl&NW4W(t_e*W|2ji97p+W(cTO8*_wE{~z@jyE|UZ;!;r^mgJ57I&t z=I|STvUiy$ffO=}p^G+n4~ipmsECJRs0u&l9lb1_W;RjvJJ$TAHkv-ggM?L7(B#wJ zV%A{@4g9uX2^7rDM(}0XbVWDO_I%)3o@K`rQC^S)=TA43koF$m_M?XjH(qnN+%q7v zxGXfXoDSX5kNI|V&S%!l5oQL(;Uz=ssm-?T(G*kNRunA$6U~1(ck{L4oMZywiQjs0 zi=Nt6ImkVN!ntl}f9RyWJv!t1VW+Ez>J3XC(sIyTkv+hC9^UFof}1(x{{Nb9?PMl} z68(H_Y$vm2ba!hnx2S7%;(f@;Dk&u#P9{$tJUvSoiZ+Z@`3>~{sk?S=LAdw8e&0v5 zltE_sQMy$G{43%0C=E8QsLM&hIrMVbyf2S@lP5|<3}u9h;EwZLdg#ujM=GT6OO@dG z8`zuMLMsNWpE^`I$Y$KPFZZ|Fi!bt(fXkpN3k%iWUT`j+RXGsj&V+QbgqJBdsNzQ- z<>#uHxB6&x4)HeXqdrnfE)BAfTi>bAi$^c{f4Fb{r4ApD zI@!MqI<6C&JpB#eFV_vsnt_*atc{08zUM@N7XB5N8AX4Wd_>p>Y=p>IsA}={<-^MQ zLh`LSkMk8vZD6;;H)+$fK0GdLH5ufGTEOJsS*A`8{-m3D|9u?xOB6^9^tmUIVp;Nb z363*?#O^s>I;h$gO7?w1R)Y)PNX?-oG_bY#I_6Wyk)dG}?#>W52~5`FlYMs+)g?7; z;s=ur!Q7fP6T#aJSAR&O;oa!~<}zNw?d^TTc%sde7&a~fQTAPzQT0@oQlW5l`P1)z zBJb2}+_Sbd*DH7wLnPzDn;B1a$VJ_CnYpHMYO0FPAKC_LaA2CWrs0&b`_lOH8y9jR z@rhG_wrtrT)+08yxXJhu_sc|u&#{FSw)|-_+|g;=AVx=tTO&YUg9+{z@cd(8CHHL| zva$~sw!`YZU2baxTN)!msX&vxz3n}r?d#UEk6#(qQ0Ju~s zpi)8DkKw#Q8V?ePuyM`duc0ML9Fv@t%K6Rm4k5H9i`@6~@JRQ=!s6+gedc(g5_zF- zM`6fPalYVeU?1?qi8`@5)CrewyNQ zMz8;IqO7W(JQ>&Shx}Kn;k)CXuMVK085I>Z-p4NUO!Df=jH9vI!|6y@-^LNQm~i9o zo_~S-LnNg8m>sf`+0gLf!@ZjD2I{hmyM5_OR*J!!LT_*E&~=0PaA?*A(yptD?VJ9jfd>XGzhm^97ImV|BMt~0K~cHDBOp) zJ!enQ7My_3GMJy%GX&kMnUtP6Zgx)h7lD)_gROTKDd@AF(!O|QlyDFz#4a9Tf%WhP zVht-4KWA!5#&QAhI$`@;-_d_E4O(oe-+| zs!PO+&B~*nNYt}X>PQHQLs`w(H?7DawS^DQ^ z)l33;h#ou;950(uA^q&9M?Ea&>G4#aF{Xl0Wq|Iu)Y=@lwTYbgISo}#x-Yg_pja(H zu2Im%L+S||gfGg3#7fwh%wU>0n?kPuSDG6PQ-@xi|q`M&oS{_z@bnf-1)ORNr%Hcx&q260qmXvBis_{td4UP4GJgk`O z;vZQ7O`|rRGvi768Z8`i6=>Dn1J(295Dv@76rp;a zieyJzf8EDc0oC6+CG@i~(~t-#qC>mcab3`B{3V`jn>v1j!qIt&lXl^EH(&VawN|39 zWSnmQ`O)ipnX{p|nzPV+4l|ZaF%>38o`F5wi|klwZX%ZBd;Fkg@^n)~(})gnXi>~3 z#h-5=HXG{!rw{u`k44eyL;G*!3+$uk0yZ$5L@7QojwUAflDoO=$>~_B1RjBm<4ad# zq_`8mgP`Z%-fRcf9bLEhn;IUHA`5@<9@HR{O` z^j1Xd;HPzVhev;-QtvbvMNW!_Y15NNrCPVdi8Q9q-IGz%Eqx(L{C=YWH=67q!W~;D z;V`5%S@^x@ zM#8yxCfbuH3F(O5J9N~!EaN5TTJ{;s4U_W`)DRZ^!$rGFlLvZ__`*T7$4ljQ`0)9b%a#H{j4HU#02y6M^h11p{LGm zo$_T+u*sv4+1~))p74ATxRL5}R2#$ zAo~YhZ_TkHFC6(GE<`@1;3&|>OFhqnoQ2kb@AhD|jhvF)_8-@>GOwA$&DVyK^^Jk^ z6@%*KE?ybvs_D)3X7;o&$XX<5w#Z(3VZQ$M%0t{%Sd5k0*}^JDnbt&5e>$~j!Hw=E zi}TVBRjpp2!cLY1cWZE^If1N7S#1-}3j>}bof~|^t@e(8Gh%>dS|3&{qD-sXJ3Q^Hhc9dx`VQEcco}`|U zyh3GJ$N;t5pe5Ac;MJf2R zef>j+w}3giwR^p=LTQFz(R1!^`G(?tNGqYS1wP;WL=t2X9UrKp-e0KuBO;=~`kB{U zo#lV<3(*kM?dHpcD{Y1!nzYac27I;S<< zjMmDLW)%E`3Zny>_@0YOO9)!CBSE7Gk}q2@F?!|66_VCA5{VkH2N{fqng)ACR}wi- ziq}azZ!X=X&DwgWLhbi3b!gX^TyUj9i-faVkCvc;>;KQ?j8Rlj<7|O~e^^2zR#MBwgsFMJht(GTfjx(&3xyDqBC1$!E@Y z+CLU5m3oJ#3_gH-J7lnQFpXRu`tEtzo+R)y|CJVnF?#7xya*uizT^0TX=(LW9&Uur z^nwG*bndcX^!9?|?kpS&2A$WHe6EF5vq{I$9r4n5uv5#XGF-{6+)cx#gv36irRr&x ztmaF{UJJiIuMN3$0&G6;z83GyakX6M z>P-vfozV0YH|$lGySohz2#FXrRo&5_w=5t4J&QqQ`BR+i9FUYIl?hKHE(Du)c*CU( z43!bvLWZbZMGp=7M{zSX^DQpLNTbyRdG-LF3&pLXJ6lDY;@0r7H&&}tuDTEwlH6NF zS9IRC==q34ZVLPL84Eb`^x_MAU$OkYT!0heLSyM|^GxWIyRWQ2p7;+`(?)l~wJS2* z<9t9^rM{bWf#;3*q<3!0s2AAGTxgt%hbD=w20X6!eeRLuug8=Y)TXA<%l`Tk2WSx; zF}1$pg#^DfWSFyazrUYSc|r4sv{>Sp#gq`kvNa7c8xtSrM;hB$J+36&u4@m2zkl;0 z;=|*sZa+UJ2)%1y+gSNj(wZrs$!%-6dvJ3axtp|OMyVHLQgZ39DL~Oz58^_AyrLT! zgo!o8XM^L0NGnj^ayKh$s~92IUZYL05UY%XH=F&rC!vs%=MTZAEND|5NWIRn6Rx#V zsy!|3vyI}_=YrhV2o@wY#0q^X{OsiAE@4q49nZvRplk^bM!ve)Q=duT&4Pps<+G53 zG2$8uuBaJF7_uJT3Q3cioCSYlkevTfxk6;2@qSGk+Nmru9#aVe zbwJ9C_Qdx;hqS$6^GH6iTNU@scAZYDmda33zIiH|YJJL=`_*rVcI@o7ihYM)#HSeZ z76oW@(l(to$%|8&H!u=*j@y0%{@fI$@Qs=Jv)~`PWcEOl1XS&6I}U|5P1aQ?S$)8& z-d63aSG#A+ut7gAI0@DeWcpS@!4?3(^Y#6mo51PV5_0G!N&M!^eRO8rf+=K9VfA&{ zymbK~?oB?)Pg+_*0*((o_&rYbP$+BD+Omg+5i~Vf`O|n|%2bdGrvYadp@AAJ;@aPe ziF#H>5g?FygbK5T?jfr2#YZzBQEKE_R zf^Fb4P&aQ}$<<^kqw8q45co!+T-|MOPT-&(4NnWE%}&(LQF&_Y<}m~k2f1HC1sVSq$;pHVQc=U5>43)!IKw`CwIBfJ#+;OkB5Fdzrh{ z;#RIhFlR$QSYqH^Aj$gQ1_nEqoYEA>#kcHg`l9BZ78U{1K`M6W9@wt%+ZExPt3D<` zCj}YF8EtE;3)_Ke_S}a%Ki?-0WBLyjx9CJOlzs!XM}d<+^rpfoi?dFuMcK+G<6}sx z6kWfs-|d&gAXwu}O}GvU@->+Au5Y>Wyj9Av`k9@Wmw$(=+?S3-_{uGrNJm}z7}R)J zZ6YhX23ilUGWrJV{Mv6K_>5Bh>tv>#Jc2|C*RkbA2m& zsg4&+2T+H41BZdD!_}7|WgleN8uISdRmdD`*%)1AkFg@2=Uy|#uYG7p$KnVNzY*_{ zI=FIl+g|Q^tHnCUaEN#9M}Yp^;HU4n{)|@}3xF@9+9IPCKUyB-3NggKxDj@(oaKmAZdsoPP zdt1pCH45}G`7a1PbXYT6=Pplt6gQd%7N3*&Ntn1R_m&_Mqfe=y?_8F$PgYAEF_bx}o7%B|ycvm`EPur>a6g## zH}EK4BSb|l+Ua;G*|!UGly@2Mw{@W}TAy#lrzxDJxOjHKeyOT87#p<`R^)2g81P%; zf~Hbh(jMyeHTuQ!O~L|u4+hFmD>;vCYbJ`(#tWcgtRT*(MuYDO&-I9)6k=^!)r6l<3So0t*c+i#S867<=hq^~o(YX6=d^sGHNA{_R~>O!@VdZ*wZf z6cR;uBQ*bvpm%#Mw$uUK9K!77ah0vCy2P4k^N|RDhkQRaLWr@XeWCG9?wz{0wxD@N zjYhi_$8goxQot(>t*8P1r#UJ5T`6@3vrZ=)s~f`#lpRDNL5L|-_Tz2+=SQxb3uI$= zAsI@!Jao;CB$8#l8*_b6D)n`t!;p%np>+b3t2Ol&#P6F47E1)vBQ{Y5*kb#-NSbck zt9e?(&=`7qXY!51CR>=ZCzLIJ^`nlSrk=iLy4{Ov^C-EI5O2~m2l~|3%e=6Do^NeH znJXCHWee;;2L3pqBOmZdF8{~ zZ0}-3!y+yAgz!RQGQ)R`AcACw@E1d%Qn!aqiuQdUTEpNbkwP*Pi)+Ujzk$c6^`VhY z8b=X$h!g2bbSzGffmuU?110eKx>|S!-GD~E&See}U^ccIHQ7KE4RvA<0MS83ac&Bg z$dON^3OfZ-F07M1qOv(#_cpz6w%=v?LeuUqs*M|p6Z=k_UK)rrq*j<$h|Zcve!tor$z9Zi@7#IT>RLITI zwJ&r$T75p*cYw2!QACiP1_ugKK!*s)PVSj7ONLB#WszW{|AUTM?a2BmMbyt#WQJdz z7Qs<8Sql#NIL1Awuo%R(iZ-!U*#hxX;}eY1ugr#EGm2#$r`ryqKQYTr8ohif7-MJn zl{1wGl}N*`Kp~|*m^Gp7@`{e1f(}ux{8(!I#=ZK02$~W8fv67(cWL4ZI0u)rF*(46u5^ z(V5hAq*Ei9-V6wrQ3B!-%9=Uxsi7lMfiXzKVKl8P#dZ-FgtA4PdPAUyOI9gsIf+-H@?zGx`Xua+syw`R z5t>)$JhN3^Ez{aFg;K1{Pyl*KJ}#LiBM3WI!eZtppv7zWKDCo z-+Yl3p#tbH$W4JO6=HybvdY6NU^;VRjf(2&W45aPc}Qy#e@(2rKd%AeLD&`|J-Wh(=r&{w9kP=SlR&mP>aLgBju)lzIX?4xqPIhB9eE zw;?1@zmd;ulDd3mJCpAnED@Ib*k2~J|G;&JTasY~d5NnmAp)MCp;|~WXcm^eu$}Kh zg!%WVDkxgwCg72*HCfA_LX`v-fe-(duj~)ubM8}e!^8(^+{YrfQK!N3(9v}QePlF; zjsdg-!A9TBmqiV#d~e(rw-G?qV-_elQ_>-Eg9E5LV=4!3=~)5(p?3uAAwt#UvHIwW zl*)b4mcRP@yKw$V@Z$_kNT${$!Tn=|Sb9);jh9TbZKDe4#_`pS7=jHB)MIn_FEnr$ zPD&zLWj)^#OqrL7KxCShg$|vz7;w{pvtfm5J3tiGz9IZTxgRp-*3-JBw%h#WqHntS z0BgKDIwdC6i(p0YKT}_q6a@+w5oVMVCyfEu+@6n;K**L^gqF}mB%|xS)N1jf_9T(H z>ORPv*~ae*%So_gK}s;@v@aN1niVw`{V8A-R@@iGunFg3@*!l+w>`^1LReteuCwNZ zXc`_+As*Iqiavm$F4!78*)P*OLR-K#=9DnTE*W%dDY4$ZX6gby;fepsi7iG$@Zgg- zVgCpwo+VJtk#&JJ%(-cbJkPTA1$5Rv*zKvrEgs zfH14@_muGuiRt=#1vEJxVC%6kzNm!z6V-IIYQ^MKF0PqFjCAEbRnyY)cLgNk?q|7U zt!oYBLt2kw@M7gx^4nbE`+(zW_4851i{BD88Wa+?W9|m29=pF+bCu; z2~9;1=$@o^OORU%B!svB^)Za=u3Z zGQFL}l2`T08%0Cc1!LiNGMA=-+XKo3v^l(T+4VR@M5_+jW)>zv6c8MthZvg5yIIy( zN@oGCX}20Oozp341)Jt~2HZH+_*<`2t5a|hocX)@jtgXittVt51xi@^X!Kd2yB{C_VwLFGpz1ETGTCqv7-`fm<#(Wq!pwM|-9~nLaN=OkcNozeJJ#}x`r1%Q> z{9Mz`d6X;P4Jw<3P^C(h1i1yMel}1nqtJx@M_}S_PV1G`nlsrt}tW*U-2fwf60sCgo;Y`D{MyK5_ z#zY0Cg_iI)3w;++vyh#)6;r%3u8%VLCV%$Z#$gb0u3xK0$# z-{Q0iyrputtbKA*cwr?jK4g$+&6l`sNqNmcjUQR6lK9994L^-{#i5q+xud$v$4-dj zZm+q7B9*1l#W2dRhnNE_ z=8kGp&$D&zB6BNJrIJjFQ&itKzI8A>aqFM6Ov#G2d8RFl3?-3JuxD?REB8>j`S$Pj z2pyJeM<1Z1e8cxo`{5PIKW!;C9+D(RA}(X1ejg4H<;ZBbp@Y6osrAaT7?~3*VY-*+ z&G+)qPd7x++N$nMn>p>85Rn>8v$o51*FMN#0WTvdO8oBgpwDH)TmLW({xSN^k)#mn z!C@}y2Fl8to&7)Z_J!CGSAsptJW=GDSdDL{&er|zan=TM2jnb?Y`5d-mW6QnUcs(2 z{6^@kcjw~lox&z;H5>1jtr2BleM}wz-koB3lrp*cb=+~p@KJ%9NXexa6K4hrV%Am3 z=kVUQFQr~EE+LCLB*jgYCt9w0Ns#A-i+zx@2!7zJ)0NwL>ODInW8&x3zdNb^lvb=-tG)Xt~OTwJ$N2MI_c^`t9f_>7V|m z#^9_;&Vdy+3m561SRG=ZI&b&6p#>ZBmT>()M+iyJ_@u|zTaiz;N4U+U9H2vwm-8sL z9iAHWh0H}TZKPio_tF`uIpiG;Zj{N_2yNZ~wV2Gs8=zX^K*^VyC8! zP8NDT_zrv`UY$a5B}Fg>5~=OuVbgjcXCGy@5~~Bl{G^*X?k^3JS4vFv9f&a034u(U zxhS;dY16~1GEj9u_A)GZct0oY9r7G>mUXD~o&J48TfT2?Nc1mggHUPa`>crYdRET< z7dSzmy6n>@v8i(S?bl3TK)F@wOAx!R9o-MJ^Rq|Bl|iTCZp`d{V#unk>S*#;0yoH# zA|t?@l^4VD$WfDHMuTtRxkr41DUW%A1ByO(mS54WCM$MxMQ%OkS$I(v7G|q!zFFzo z5I)2s4$$lB3qw1s(GCH|lDWA%+T-0@uFtUnYc{68m^s$X#LB1>AApGNTb9j^dB4IU zUK@40w6r$+(Zx=OKv#R3rMwJG!`3x8=IKdQzF4kG9fPf=_gc~qFyQoRha5eh!lZJV zG}#gf5_~BWtpdGmO6=ucWnP)7%`V?&tWG3ItoBJPEnWYoHU%9Qvz($^Mm4)Qd|I=Q zfhR^ZTrPv?Af5nmf@7Q=+Z{v*L9Wq?zP2n!Qc=tUS@reA_7_ZL;wj%tnw(aV_5NCr z+&Yxx2&~T2l<@G~9mk{<&e85ggRnfnxYg$PqFLBl1F6jmg121iLdrAml8@7NuG=*Z zmz{Qih~?X=*+R_LyX7<4G5rdJU}7pgdsIkr-wwzIA2V+^X)?aGK#lk!6i-i-q0@$p zvJ7P8VMH6*v z*+cXvfgK+L!VukVLYvxW&yGnLO+3V@=0nDewU#{f3F;b`t+y_yuYU|7k@h4G`pJkS zrwTDAe38;Sng>3Qh5Dlfiqs0Hi{h6}S|`R&1HsIo(t9Dd<+B67ZNVKgv? z&5Cz7H|(asRpF-xenRTm3V1!Kg5MVRB1#+_F=PKSZf-Vgy_Ook?Tl;v3IG!h+aKru z@LXw3q#~(NHZ(G1BUWKjMGp5c5+tPXHEz{*XxSK?v|kvF4nJECaY01uOeOI6=uNz7 z=RZ?;q^WXL*vC2eyi_<>k9CF;c&6gd=Q3mko{EQK;~8ybW;wA`sxrD>M?dJO%4D7! zI%;V;*GbiDbXPZ?hreI;2VgSY`>wRhK0EDwm0009Zb##fYki$AZ|rsI-1V&Ti9M5O zM@c(k+~Nk}E}=+8)^EG4L8GBDkb=4RNxoFR*~_8^Dx1E;k=k)PxVRqtK+{tWj=Sv* z>r8K-JRs&O0DICcGL6s+su`zMRj>1k##UN>+vHy>AXP;teXV;<048}M80*&Z3Gj+T zB-AfDy(Ej^A#rwLHst282VyeI4pdkm3RIy}HXE!uTgW+JFk<)PW^(A>mvCX8-}80J z3=K;%e^kL1NrClHx$Sx+XSVua?-gH7lKCG1^h->=P8pe*at=LA6;`yRW;4p`;~%3E zw)Qz2T{p_kA0h9(@%jtV)zh1RiUPH5uJ>DdW2#wTY1V3Dv`6KC0~8g!T77Wr%t6xz z#XfGlvspbk*D!79hs_mGR;rhXdGlUvQ?x);Byle%aPSJ%81Ux%l zkzL0H=jwyIf9F*3N>QsHD91R2_rMFKK&vw`scO6?{L>3xWt{-Vr3y5f(Dr?DW=)>9 za)rPL>eqgKx=C?A&#d6#q^TTW)*GRF{(Z?z3tt^MOi3FgD9-!z$0_xcDdfv92E711 zUVgXyxnJdJV2G~m)$o>b#Z4oH9N0bh&1)J{q^F5KTsciD%Xtm;(BS*Xl*&SyTAV6e zZd){hW6^br1CWH;CD_4e25l8;)<&T3Z;o0R0CjG+#a$0&ns;0TRO~r{pY0Pw!#t{8 zT9P1zCM*T`JLi?xEJ`9;Q;j9lot&pFrCuDsjKnamN{r64PD;}`J^H;RL@wB2B8VJQ z2@ZWR!7=sL+|X!Cn%v$FBXKK2ziVy}LU*J3BKwGrN2CdiFo=e*v)NrRAgn2$U zf`o*OgouKSjEstkf`);QiGhxeL5z!sg-=dGNkL9RMn*+RXAhrkC4j|wl;!<;pA>pYQ zAk*06bNNI*MWGchsU=YDUZUeRbhwX-MtGixn1r5zk%^gwhnMdXzkr~Gq?ELbtem`> zx`w8fw$61UV-r&|a|=sHr#sFru5NdI{T}!~3_vIS%U6}}>gpRBo0?l%dwTo&KMZ^v92)yNJ~25p{cYy^^2+MkkM)hst!~`B z2`ujRr^*u0{ZQk9;Age>m^ zAM%O|LsNvYBw?ehepyr6nJT4y$t6P@T0;$Z-+R0dJm6hOz;k5To4kc8l*lIhh|hiV z3LbPTFMOJi;c~OOGt%f4X!TS@7T457wK=85MVyO+ncm#-(SJB_vO`PeAS!!2{~o4D`* zj^W_v2`8eNknL4N1itJXHyGLZ`Kb5}@r2V0GpF;pS`>vSbP(iaY z<}SiSlxN#;7;?vt-5G7A$kKJ}%f2?r+&|X7rcd{IsylucVbPb(=Wu_qX5u_rwH5!+`Ff1zol$+n5}|? z3;dvr1hw~oMB6nZq6$-fN}9-~Yg6H)B`wb%Wz&t% z%qWnAR+0IuHErb8bD`qv`>yy7B)j1QYk`AU&8_E9NoDj}W8O{xVpL>%wF4`eY2G9s zCLdX-Y7q^W8Lc#2Zi(*S2dJU=Dx#R$d}QP1LU?6Z0|bhN9P(}|F;n|@ zKPWq^d2057h|qz(J6==f@N;zWT=TBo9Q^e`ZeQb=uNIqCn0KBdDt&CfRupZ`HgCGL zH?e3}?K(Ocp@5$=BunbpdHb6EE}aX(`G+<%)dK}K*%dpIwl_H4k}es@?R>6OMjl8* zAvEG(qNhb%dPO@MbX&H+?I9#wta_F1Ma_06(xtdb>PKE5yrQi~ z{uvAnDLCQ&=6xV}G$)-Fde1YhnkCKqe>WuOqH_|d&y?AQO`}YvyV1?*cOqM4nfpKy zaZN-jR(4X(HrAx9^PJ7ZgC?UO&F{j#TdK;4s@>QGX@=>kT#xT`$tTTQ?E^x1Yx@9N zR1gq8FAKn-EYJ8r@p*?Pd~nA<`s}gDGeLrdtfjTcaNRn%=dXh3HOt#6j#Tu>9bp0u zVwJ1VyI4D$Uhllg7&Teo^rL4JqtZs*_Q2rhk+PI=Qc8uJgGsz8c{^Hv9hGVm2&uPy zgaZ~i7D42g5AiZVb|QPL$@6vJ0O-uD4!$yS8qM`^)Q-w4)FwNqJ3Y3K_}!g%Mv}MI z2;L1@;_0y6r%K`fUdJz-K9bih+H3Lo{CIyMt=mo2D?I?W@5&c_qhwActAtU}kG%qV zLKk|Ph|nWg`3m=eb}ZCH9MV0qO%Qc8fK3#Las^xpZd8yc zP#SpqIJX7os;^{2-F%11%*Z#hOexKJofhMkhgQbP>fjBqx6dzl`ckZQ&F30^Z5`_A zmcFfu-N`+AZ_;NQM<+%ZDSRDTv=4|~uG!hPsMG6{g>#FV5$hbziL-0FP3KAUtd$8~ z<$_aSuT6trTnA{9?8a;&i;oz$pc>?zv2?ddlXO%U-cy(akQME;y6H_WSP5sBy-sc% zGxcdL{(hNbjrL_K3R3~O^bli3uu7R?go3<~Th}A1@4|i#BHR5>L=i!!MRZ9)*#{;Z z9zkE5Ld9PSE(+s-^D=pH&$VOs0pM|w_jNeOoma6)-7AHh@9zd_>&MZ#E7FC?AT|?C ze^l@2^FUt75Ev5W?;=h`n>9z{d4xsm?3sbIMl?N=8HO^ZgNDFGKrJi!QslbCxi8*T z*x6T*3q4rm0b_B|ls7gV$*($ugP4G{!w(#3(dLF-4)o44XxO`cwl%Z)`vA9|$!D*o zDi4{}qR@*VtF&M^xv9662oy=-D??x(Ew3r$eZWp+hg~(lW)*%Ps7Tq1i@tD0u8bCPXb*lvLq$4*S5{P?HZ8{!P0|)OKSU5hZJ+q|rJ&fQl48pyjp{4wYf{ znr*b3VD&9r9i!Y0Q{4v!LPndFk$VsIlxds(O(d2cz*mtv^O5*nfV7&c`kgXF3BIKT z0ZibBWpVfIJ}^JM518bz)95TxJ!nB&VTpQkThYpLT}4~ljU$2BeaT@Ds`frC9TZcp z+CL(A(t*`nU(t;{+Q?>t{hX5N*ds7DYdq^gE73&2zAZL?l`I@Tn9f?`y}#;Zoa@)i zECi+U#8c@z-TQ9^UR=h~zw5K8(B5`5U9f3`SCbW17mRI#Q(-6Or>vi#qRbWXc~;q9 z1=l5B_F{&;%_Hxc$U{W6t&&|U7H>4BG;g#sCU*PIh&$~*5ZS7?y_~d#25h@khNnW+ zV+sx|>tsHT=LN;KX8dz?`qn@r$oL9Q2#_ybML#@y7$ukWAwuxWg7L5Zu#s3!(Grexpdj9(m@*OnY#6b>n@7H zmm^riK^O@%?S^7UTUQ40gS<#WcSye);vJHr! zwI1?aWD!@=!P@13^1K3)MZ2c5phTH4uWog1x&AuC6KiiDrh5rjhVN1B-ly#JW*+(6 z;^D^L9*;@gi7Z79P`uUmBtSee@H4@_@LW}wpVx{27@co%dr^y0DqT`pqil_eJyhI* zHNq_N=mWtV*u7WL=Owt=vkySUFX{d0-v<(kN*8{oNI(lTtd<4a*E>6pqNT4P-KR-*xk!nuB5{O zUF#+#m8X267i3o9KD(joR3FCe>YaOcuq8)FG>ATLK2B-OIr0XAbWgvT>*}9uRx*Og zSLjSd{K-6DJh>iG@@i?aotU(MUZ+v%GUP0HbY9_c20-!SFG2E-Q5s}957mRuPz^Ku#Iow_5q+zIAO1sLN zn(2hy20%E-bRAsV%~lCWKhxQ~Xw6+SgWrCSu%;p1N2PY(i#BEQTF|yY1}YI-Q)(*m zZ$s4%#aG>;7-@2U(Jq6QqOiY2F@yoUgm&ZUNzvDRyu9yN+-^v76EV(Sdr@|;be5FL zSoNb(h|i4N^~Pvb$LIaA-+wxO?zv!R5`Df)F-a||*JNnn!(OS1plOyr;lZ58@DW-X z4tlI#gghhlzK^cR$@D|=;pI>oNK%ZQrxtL{L+D> zicUFp&GniK@I=pduU#f{Qk$Ju&Z^00y}$jSy=7OWgH@1YjpZ7qX}2f|Nk^IHz}w*v zF(E4+OD{i;P7$Sj_mYFr>%L9$;A0@59`^>k?7^gpRb`NVn^k4Z!!=*8H&-h6;z#8-hj z(eXa6$nf?c|2DPc9y3FQ5_vBVyvNUct3CE+RX?tVsCEWH1dthV!5_b zH0nle@wq%V0z8SPUAMt$A@|WeOOG;Z2ALi9*VbY!(i2##LBM-hG|h7nP4FlDv?TI@ z;@&=x(iv;^iV@LZW)ED}mUBMIvD!wB3?}tedu0NeG1$}4D>9w}9W>nO{yOY^Yt3Z) z0E<&=8v`M!O5<&9uYg=CLg+2iAWCi*$vchw`+(J~DB*-utrvYABGu)K*D&2}4t8Zl z+uy+r&%j6di|BEQblOWzmrG@k$!Euh_kk^x&t3ysP*ZQ#ZYg|-;UZMqYk)pW!jZSK zxkOf7maqJBkjLn5F&KTXYJ4{;DbVcu94w>ynm+KQdvUFBzh)3i$grLL3~6O^D;Mp} zb`K;`sIeN$-oxRiI&@{BfeC0xw^ET*mA)a5D?&ejhk}&s3@w)OOcs{K^%vmEzjuXl zXkZ^$U0btcm8luq2M{u)oLZg@CGl#$x|7mU$BA+K~J<6&~t zRt*<$e&ZpT(JmsO|H2Q$LEmoIRn^PvhA-?~w-1DCZa3&>snQWgVAod^2ojWf15w`a zc9YLLIYo&aq*l1Gcj4SR1+^N%&DPH)yFqZM!N{pt7G0i8%zEN$wMONp+}D}HsaR{n zp%re7RzW;b3a^_r@4B#Npw!EDk-1cHD2Ci9@k?_kZ-vv7V;Of@u!y|6Li9E^H9APh_atX1GsB(ZUs`SIF87evTGgG-EbeMd6y%D zD&^vJid&hV8d667yEfMJ)}=1)Cj6*NvEiTh##S$i^e*SQP!;smrgIiMBcgVW+%>I= zhvK<@AY>;frKUxA_Qm+F+KsXEAv(dlk4*ww7z{dCE!ASbM%H%U9Q`?}%4tos@XMds z_??IKA|qoKrCa?*N}&Crc*bIm@>P&(a=DzNP=N39k_WQspV1J-+_)MAPpFMY%lNb_ z^SYoUV#IE`rMFB>&7~UopdMNF5keVny5Qo-3)jY?M1M5sS+yDK7YJF_e}Q{zJPq#2 zSVAdqINfvAQleXRF`(qR>)SV9U#`e-n9lk(5Z+UyB1!eNM5PUAiwV)eE#FjvQFKn$Gm#QS-{H^4&%|Wq87uXrM0CEd&7xDF72~1=s#9M|I(o2)!f2Y@A>ctRJ9vQGks0Ud(0Hp* z@obkUi<%X2B-!V-Sis1&wyB7~u3c%dXj+t@-Q_`i;5d48nf1h7Wuw=hoI8DP-$t95 zexbdJw==udJ;k^&u$qdJZ~-k9H;0P+)1521g^&C$v=|{j8N5{;D-xeFs@ECLDNE;US=B8lw3d~hql)Pd}TOv zdZN9xiE*;x_4V~VOLIf*U|V)7{>C|bun%xGejk{Q*b{jd(gZ%DdN>1n`iNu%Zqg-S z54X4}cULI0H$gn&aHtzr?=BN;2+x!;@K9tbvNa*1w3N;X?g*&2VIx8QFVNyL36f3V zv*{F2^BtJc=!n9_dLlwOkF^9IzMSF$COp?o#>qH9Nig%sQ(ni|bU_}9+yYO|lo+UZ zg!B`1M$@#r%oj7l*ac_mC1}nsLR;3sp8JCb_i*rVaIilxA%K5~D6ktXL^Nb%BoquZ z3=DKMbac#fxY(HIaL%ElV-sTI;NcSx5MW@PCnCfr!o?@RKe&g32m2r(q9P)q;$xy? z;{WHg{|>x|gP%q`2M+}WyLNcYerZsA|ud>b;^gqkVj#9%z=UGEPV)^W;>E2@eW%=Ep;-g zCqc8*mZ@;~bB?oE|FQ;Ik*4$paWl`u5vn2&mRThs$gRuW7y8Ht(8^I+B~BTc_i@By zWW@hVdOy+NLeWdaVy%O@o?yQuGj5iSqI(M1ks@mg$gOLji>*jKiO3;{)(;e9hFzck zw*(`N#U3RKXtvPE0ssOvowYYguXfUZqXNT*NI!@OkHDSMKkf>L0;k?8?rlSo+J4m= z0P4k4L`N@yg@2PEN`AF?it5&SO3#Pe7w+zocq+-5=miE|(RL0hO3DA;KhoQ3RlxDM zqG^e~XyEDH>JK?D3@=X%gjsH8f)TL`1-Rh`P$OzveQ9O)4gCxm?7wB(uynh5+%>8!an^T5SgW=WI2? zzRJV~lnGwwC7tSSxR*_GI1Tp;GWqs98s{RjFKQAoJj?vas!jTt!h+UBZ^(W9cSbJ; zt<8;K^?uh&p@s)YGvxO^)A`GA+xPoRe8P0@Lwa%wURTh;w4gA-`9nL|m5a%@{MWml>@eZoI2Y2>xNdU~0oi>!ZrZY=7?P$DkZxT~ zP-on#NZ_dafqjBH&zOx)=hmgGxhsy(py6yal+t%v;y(&3Hg0ciDyGcsCS2?PTS0(y z@y@Hw7z~F<@JsaoK#Y}Y#F+#TwR`V!g5Y;{#9|@uJiGzmp!)aJz}9^61*_IPr4;GG z3>nhK8C^P5ZpfxFC%k$u7jegP{XLE(|5x67+@x70kB?|U%EgE$*?A>tp>P=x}v|quWbus z)vdu(hrBZu_CD!M6?WHk4FCiOwVCySy9i&+v^jB+MVP*vApEufw|2Mkd@q?dfa%M` z)A3eQK_5gTuC288K1RouxgrGqT8dPr)*C>j;fWGf@`d;vH~t~N6|N<|Z4?1OD$P^; z17BLj;z2e&aUW<$31h;$H_JTXpP0TSB6{5UNZsd3Rpq|`6wyKpF7WD!0= zmK6EMQ~j$guAA5LbXQOv_xWpnI1^!_0Mbkb%8KYFGeTg*F4z6!8yNoF)LGY?zl!dh zbUM-%A6B|LfJ&?T@j#|+u7*sjREc4p0w)PQo=IMm%af0@o-MoM$zGm3>S@CE764d( zUEt5B_rI@>p8x>Q2&z#YNSXEl_B;KfP5^K`HTJ5kZ^5ZqT^?4D^yzBl=a$O0C_?BR z!yf2JW*1O&Wr%QTWn|7fwW+N^D<^Jt=?!I%B$R82iqrnbGEL<>_LjVx_ilY7D=K^V9 z6cHwQ#YUN6C5S#>^U9$)A`DWYwFJO`$LS44;e)j%DgfT8hX<1bBMV;OnKfm0OR+^l z2*a}XmIyei0uJ2_kp(#GjhqVUFgo`z%AeT(KTFl$C9=;k-XVxkWt zdreK9e8n3qfTL-3h=K)JV#_kDwmd8zd?SAQ;dC)e05m{)<6|)LSg}4>M)(FYjo{eZ zlnUsz^dw8+0KlE+j~}H&$~4g4!f+pFsId`f9$X`HtJ#>CjRJJH+YW-u2c zTU!QA<0PTBTKZNi|0*;9yoeP&#yJqWCz=gOf|$sR9(`GMKAn+lx#3fv2!?mFY$T#g zwvN1GspK&_m>&i6pO7PSPU1yb`UwO}beN@wP6d_^c+X(VY4F?Q=~y){k0gBKP}Xx% zQlHb;=@B*BZfCm`I6Eil(0@*<#|HhYu7T5lgY|;5831-zzqIQBB9Lv5*j3q&^rEN8 z{6Rsd=j;Ic6yU@v4%Z2(gtw>Y{ZSi;-a)))@Xk!aud764{pnc)`~88>Q}cF692aR2 z<#?ErU~HQx8cv6GAOFd5%VGWplRG8q5&reo)Z?BfjBbniy1z%-dVSn*m>;c>C%_{w zV>eMg0UZ`jF@79Rf58B&_XTFg-=6~G#q=Y)r=FhT!$!nsdB<2ME^!Pv$^T$M=sM~r zD2Ihp%$``#FDNIA$O-&t?Kq{W!=}^m=g@ z0son|zs$lZz;Bk2BQgH8B>hEFbO`>>h4jDL8*s|J{vzqW)*GaPoV&rl&j}WO&jfK8 z$0S@Z57M#I9@l^7zl0Ui{#gM<70t0H<_DXF zQ%(x&a@x56^$de6&Ze|$xj?`H#b1^LJkzHXC(QhN!R6ohXRO8+9+Es8uFmM;Uo#1L zbE}eX@@U5aaK*uuop1&G(~jd9^OyJnlB}S(6?5ge<&DP&dpn3eO{nNGG5{%;kNvqg z{(BS0ShmK~Ib6iSHS}lP19vW`1KG(Mbu!>_;ZKV-05Ei%+8GkUG4&mH0qyfIJHz9) zKa)Gn+?iPcPS&MkA}9GDmJhJ~RH!<=Spi%Avpa)(%2PYE(`+8?N?=>;zocKL_jm&W z;+TKBhAJ~UYRHplhUjCPPJ8d7pFunZd3F-fdU!9Tk zf7!3jOygNe|GVDKa&tD+{|i@u{2=VQH8jxms!KCPAr+>i;}hmtA3ft^|7Ov^T)5$E zl}1~0c%C>uYs01m-ntlo=p3Es&a(e+#K(2_AnF{s4P*8AxONbz4)z}>(|*R%|CQrG z-n7|<>x#nYo;;HPjrw5fF*3aiU=3%T`|vpR-vSpb#2=nYP9#5TT>m}jgU?NB^wTms?&ly6pBAM(JdxU=`p(Rt^AXKVEX2<|#sH1i?^UukhIBWEcIz0ObTnfNnJg}X zLChde*L~OagPw5Z?vYb7kNY^l%_2fVNV7^y-SMMd2xC)s$ow<_bP+}sd6j|tte4Ac zsf%$eThq*W@^8j%-W@-eJLW-0p~3x^{Q{wQFq{9@k_S%erf`RNvv@-2yYd?WM#jE^ zfz^i$#2e5AQ){wiaR7(`+nmJmDwYB*N9Vm`&q8;(C|%?3pfP{niqsa5r}w@Uru*CD zLI0W`>{H-PMGsowgd&bHq`U#-mVjX-BhD5q3hx7G^!T?%=hegVG1^~qSa|Wkj{3x% zh~SfEi7Wl8+>j%hPJqjtQu3+wAvz-67HdZCGi?lg0P<2dlw07OBOdq|4wmRPw>h7@ z{&GBZ&19s2o2+lOo zpeX*V7-wNHs|)O;Uz5Xb8sn2D>bfu4DiwubU_#v$b$jORVb4?|v}IFPlTVG{Q_Kft z@A*)olPC`F7fy`s01+`IZvLv{+0lR&JiVEdIfVu2x3$cNC}F~(OUKCXh2H}3%vtU! z{PwnEJBt)T@k zO#gs5TvwYjYL?IT3B{wC$F=vk@g3Z^=rJpmTZA$1P2tuS8r0~=N7pxJ)q6x5S7ZJKIR|US z`OpfoW%t>mr{717Uvhwo=19l$RWl}9mVw4idC6Y_>W8RdF5BRF=%_cLp z?xYNML)(%S!Gv4Vz^sFmdZf@Llo z-C+K+olb_DPg}qY5;pa%b6ctZ0KZVwg)3E8SxZ1eLyX-0fk<&=5EJXnwdt8WAaQpgg1P4gt7U&|puo&oWmmfr~S zNi)4LDcVhsuA;$CFBv8XNp)K~d@xS#`Xe3~&pvcJ0QCa#^R>0?RmX?jLp8lrr`QLb z+-SOjPQm77gWj>?U~xgaS;rl|gv>96;VNfSARPak3^jv7!|nuwqcT|JN@7$NfN)rm zi;mX^`h9Pr=7aQy347v#P}E{wbk1hQ`?@bYOH<9*63m zVc@S7*sj`)VbZVp23mp%v$2mcv+1A(vvFzan@4buJs-h6)4y=i8R=x0 z6VM+EF#3j6^xF#Od;FZ>qmr@}1(?_F_(mofTYT)4wwG- z&`p0y6 z0!yvP`KOE{^PD6Si9?OD$=)}6JR$odg+DaF(WM0#3mSXF5yfy3z)RNP(@yMNeESFF zzX$V#xl%{WL;+}nY&K->TbDW8yV5Y`{?}-sq^a++G?tW|GQGcN;@8&uOj)i6^5rNb zO*2vlKfU_Xz<$O3`#N=iDjM;*1S+79uU*QuQ!$p?wdC)6{HYbYo*5AXv=aEGOhSpJ zuV&q&^2{AwVt+#ad-yRiz=AY2R7B~WXt=PPI0vQv*(mt;G)`Lmsb!fCw3VeqihQ28 z%lA1M(<^fAiN<9q;czkU6TE+4kigEs=OX74h2)uX;XIt#wo7cxWf3RpSh68LAotFc zBf%R9kAt?B3P8f+^lJw=d^vz{zK}*dj(;2lffG$kg1VOu*kyXq+-!fJX$_}EQ5vr`LzU|(z<8%=Gti;4whOGa+P@!8j`(d zebD}1xZ|t(KMo8>^nmK=fv>d)TE~>~w3~5|AS(&@@QFnsjb+(HPUZHVgL9IQ{B#LD z{vU~*ML;pczkd*Ec(KxreR&ie+{0*tbLB6!4sw`s#fSFLRpOVvvmmRB71>wXki=w7lmQ>rb2L-iI?~_$V z7(*Tx$4a=@-~3CLe*~QPlt#;{G1*-71*(7S@>>KPV-@WKU9$Rhm!5O7e)RUYX#WUA zc^6^e4_8M8L);VjNA%w!=<@~ySR~?(&;(*w!5}6kPV_!*IighxH@nsz0L%oI z{pzpcA!5YR%Q_NqCN`=5mEP|m;j9z(kL!&^P#w+lNc~hScogUijHs3FOICq5r%&?~ zVZ9)0=A@~=@BUjTB+K>$j-3tudYca$fWSkL5D?)Jz+az3z(xcB9uW?L1pdC95SN!v z6d8w#UKyK%hlZApTmLpS7Xzo{dGLqbDB!QYA&79)AD#uqyeW>zXl|BnEU$M}dY%ba zmZ}+p*5h+snN=RqLbQO1;Qt5xZ_q?o=sEutTDE{T8m{J$(q9UNGNQ#JVKqx^iZ@3w zGViDf4J5AKvg&Xv;+=Z^AB(Edjl=wXZzO~!SHdg>@;{I}N8fG2S829>+L-bviGF9+ z*m@#!x?EVC?}r(+WpzoJ%qw?4lW9BAx@P$n6vz@ViFxUe^Vx2H08Z z*<2qL!^L8^s&!OaT4zdhj|luUMGFMk3dIsok{E@}FMN{iN8N z!p^t(41XeM_8|?!;@3Ewrd)V!1pd{%Ske)z$jBY4U4$6%V#L0-f)w zmM2OM3u_=|-Be)*cPY;&Yfima`2Cc;cjV*KN^H^u&&?*FwEN*O$~1l+N<+?@u#b== zv$vGTU$MLGB9>|u`LZB^ncAU%dFvyKDYf+yG+2UURzwa5XItUsNENcE+IdH|P|Z*I z)y8omJYuE6-Lq4>HNCIxkMFZerN4Bl{lWrvve z!LodqIIqo>UH$qV=CItq#%rcHy`)?|JBhgOMcf zEea78hR*Z^iUoZeH4fMqadpl!NfEnWDNk`_{nkDpd5hwv4t^+lvd(0(Lbp}H7dAxi zVnVpL+UOAd-xt}H>GKd?h(?nkRNTa`kj}yFhr6CC*VAP12G)?kuS#~RvvU%$Wdb_O zbD`(WmId^Gp!oZ7{*ORi*-GQzy;9iSDd~#Z`;wOQ#zW6(MXj;QYST-n7^`E+cv;fOOUrMi`u8J7PRuTT z<-A$=oMinLVb6#L`Aq`c{H#`L_T2VNNR^^(OIcq=%@rDrAruFrj(D}_eYXcyf)pwn z(%3fS?!EW=Qgx$`F>}sVo@5)yHTNL2vP9vtc?$H>cIda;m3BVjt3~gFYyy_ab*zdy=ToME3z0RrWia9^138)Rk zA5a;Hh}Gb1v)_rJ`Ch+0jK7-IEyb>!==UxsJ}=qB|CvDqf@==Cey8HQq^px&?_8p_ zi7!0REXt7*AH=465!WwtvnT4d#Ypk%s&5m(AKy~j%;2XqZ=G;|uSJ)t3R)-_^C#thcBtZ7#B(;#J(H1=_BYJ5&Iuo*fw*{5Pv zvYGWvO_Moy_?q(wycQ(iyZ^1_7v9?>FEMqI3jYewC`(X$Y+T5tMa&u!+bBOyZy%NG z-pbsb_?#i{$%Raf3=LD`{sdlAMeWSxDMg)VP5t3hs4rV|!MWJBrh&I`7mT z;7{UD&Hi;PhL4BHf9d`INz`}MLB0m9P#l^MYf@u_)0|p~I7jDzn_oCRWckfu2DckY5rt|P1hE#uN zX_Aw`G`1=W(8A`7d2i42`u!c5R|+a?lkc8D*VDK!`LAt}e0IM9{zvB8i&+Yodo|J& zlj&HTm-psMZ&bwH4du&b|N8nHR_#3aHnoDU7OmR7BNW`!I!bs(Y3=oH2)ph!Mp8}h zZL5hzd>{ zKqSKAUSZ-o z=X-;*{pQEzTNy~-?3+10lczEnltNw%as7Sw|1+&Ejky+8Z8yWj8ywb~ExwO>`o!B- zk*D{Ejj)Vox6Nv3su|h7{}DHA65QD(l3!Hb)svl*He^{^b-8paJA|AOs^V}r$|@`E z)jfjY^TG{rcz2d$5k+X$+@0{~ilEN9&vK@Z9yK9<|vzo(W*IKWlYdFC-k)r8OG;-3lzvb%)aEhH{e$=)P z;J>;e$J?u-Tl1mLS#WWAVEO$*8TihRCcP$AT=nNluZkRRO}**3m$<>ZVD)L>pjtff z`X!xm-y7dgk2-|(XGCrqzV2~*h~(0%Yhi=pAIjF~8_pvA^gdP7XVa2Tr$?ZixM7DG z({JJ|={WSMq>OvBpqWLYFWVps)qdNwi!P^EDY9@;mI%WLFN(02zzsd(?xHLqhOx%P z1+i~iz4;WqiV+S{O@nBQqrP?sNt7q!e~c_`HcxUyx@%Irx{mTgLVRncU*Eh*-)ymH z%7fMRLobzmx$>Pr4dA&3f{gat+z9?*Cc*mrU6zR-bOVY~;5z}ey&~5Frt^Y0zC|d# z{hE}DB|&|2xz;|%QieT8ngn0_(hsWCneYNwnMu%S))L46f#rN@TLx|$OO$U~cV1}@ zbfVf~99eFAnEFEwS+-w(uWqDmpn;Mqe~*;^dj~`rb5D+s1Qy z&GJmSLlgN~iG8Cp(a$%i36tNIQdjBpew@E&&Kolzjq2g|4kvAqG06P zA)gDmab<1Jq0F>1F@d;=eN0B7MD0%p8sfXDUi%h$u7vu*jr--%6>&OK)pc5NDp@av$Zs`^5C0Gf4QJsU z^*gaG$_X>_YqB4PQa8vlTaa&**4-*^KV&oiO5?YTfr9743k>%Ca-CY&?E7F@u?vXGSX~-9bt< zppV~OGH;19#g5GN#Il@xlQg<7`X(SId)_zm&HU z>td?c5~`Ufb{qXDQ4H%Nh|%uX@cdrdbqP7G>k?bR_swq(mBU$?Hf0}w#JRnyHHl%k z8@RZ@Fl>|Ab(zVd(n85#C_k^0#mo)PU-0lubSaGwElBY- zTeOQyX!t`cDpqRv$l`FhftQBN>GWCkBcg*SH=1i{2Ja;@&DOGf%Js4@l-uA^kVsd$ zD>gErb2rD}V;+iC^|5(;Va^VERuuKeWq>g!)j86=xA9!`Ceka$A&b0G7mhy0yS*=p z7npjPo>C%0S57?H+iWKpI?Y-h?8vuueIJ0k9lrT=ft8J+A-=SY^==~j(*?niyC1$6 zERf951`bo~>4ft=^IDs-R@X9$>2xSNFdZnQP;MROf_H{!5*Hho)3lki#J#Fc*d>Ne z*Sy+hx37|_Xf3I6L>grwDM;k{q276G1eqkS?~3Nj^&4SXiFt`hrsdH_8j4Qgs<}b= z>d$Rrd8Nv91X{aKWErF#B-+F#PhE#u+d|=yS8t-Rd?~2yuy22w&t%z3QtJQg?+Uq_ zJ%JYI4cBiXTHj$PR}LY z2fTl3=GMiJtYcsIfoQy+WDKgvT{dSozqwoo&!gi-B=%FJqp zHE4eA@NxWD$vojVa{I;^Lc6&qMxCM8@9fF2en-jfXv5^ydWzqD;I>yl6}$4@#GRp0 zmx^Pjn!I|jX?e@ras_<7Y3Hug@E$IC!;x`E)t-Y8q33~K(G`&+IZsL$G9c?0LOsC zBS(lQ=$UhpJKi z=@D~p&aX)~s+ibv-c)LM(IVU~SB4@srbTAosAtEop3u646xV>s>dLYBD*?}Ag|j*(EjGqgJl*r4B$yyS7;?X-5T5BW1Q(o)UaKCMJS#MsjyU4kC?0=`s zt&(yXe0`;(n_Kwrm>Nv^8vLmfI_t6bJE^Jfr*09$TSbYy;@+^G{$2mZeZa?MCspL` z;>NK{pYp_EY^`f7PFaDG3x%VL%b%w;mIvWU7Cdw-ePAHuql+}>ZQ z^O5rxK@;c$Uxn?mD$;uX%`Y=FYSLB3OYzq!P&t+$XB8M z=4ybP->gRQq6y`0v+epXQ{>_IaAR*BG~PENc}sUmz;*q~5bexb_@cG5a#lAbGZle- z_Qs>L!p&hgJi56v@1XR8b2q{R^B%{otS1EzO%v0q?y=VH^#6)}po>uEXK)Xkz*ndR zy>G`?%c_|ThZMpaNxmLxt6#Oe5@SJTk`NvEZA_0M7*v| zmo7>pFsi)A{;R)$YvPlJx$h}zikdq`=QD!W&{RtjS-1nkW&es>%vpKeW${JJMxXA>NepuK}7qelyxQT@}VV3He1}Tm-|>BeBKYv{FC?X zNIs%`$FSNTEg_#TKX#@=jVce?;GdH{&yTHiMF<^%*sYNa+056_Uy1CY)oUu{4#%g; zs}A=on_ax|W-XUxUP~zPNs;@#PVbJTWLsre5DeD1_VJr&yAG`iU%!P{u4m@!kg>q(|m1shSBz3QW?Bz@L+C0y$3D&L|>PmS)L`rUek{fo}n^BXS$@B{O+kw zZdmWfP3K_zsh38yky3(IM^4lF-ib=t>=C}QOlvMc_SPVf3f+_EQ6itvdV`Yy;Y}8% zF*sOWz9>lB(a?oM!r;BJ9HaEBxiNR}l3Z)V=?_jYD>XXfp` z{eIkYy1Tl&y1Kf$S`OVcAF3B$p@DBJStSqB3V_U+z$`eyqXmWnT{SH*YyO7y(&x7> z_at+U&OVQ?t0pt>YEmYqB1x@)W3nIlijl(aU4!qAJOd4AjkfEws>iM$4lv5qd8X+( zm6yhNU!ds`aiotaeXLY$zoTerKW7)7#Qxcbc~Ztz&CF3@N(M{jQ&o6ON&tb)5b0C> zO#IBMm&}?(KZ|lj4ck?lJ*_K#$^C=TZ@nQ#Azg`43vTbdIOQLC@pg7|&3?X!YL!*4 zr(Ltg&>gkG;oTlV@AAPc`xgbKk1Lf4+l-b`Y;%OMJuC9N($lwrPa6lXzu9-itDV8U zuy~14v8;?wyL!4#UO|FV*Gqkl{)mroJ#aWxC2(6J+PJ@%c|Vt<_vS#&$R3)*TjCj8 zwr)0Eg=@3Br@1c$b*iKnT`D@q)Y*>{|snhfc2%!^SZ1e=pw!Mj3j*b;L{;j z-|%3Hl5ztzWlSgItiaK*wS9&?3aYXXiz1n<9+YiTYMIZ%mlg?2u5b|58-LZ9H0E7> zbc0>o!17O+&)$6x!`uSA4xF+| zND%7rm%udHCA!mK#AMgKeW=Fbchcc}SiAFmeJ@nViA zT0oyo!+<%y>T8+wZ7EJd&)Y?|jl&VL?elhP;G3m&Jy+^nm*mQCEMLjCQg& z;)b%9;)fLikak|XL$yiq2$DmC5o0+sAKUDBWBn;hha#=SsU5QU2K-`enDPa_tYHz< zM&{kZyKlX-zsAZhoo>2vrWio==PKxlEkCHJ1kybcrGC6JGjtPh`op(wfBEXuWXlISQ7Wmto=vw)P-|ybZXKyGHC2 z{Z=z5M!n!%4Wa>VQTJBHy7a$#m=c$6r1bu%Q05FMF+hR+mLos){jVxK@YksK#<07F zNx8O|^*xijte3*tsQiRZCWiZ$n)(T23bn3o(r@Isaa$!UYO!_$pJKdab`R_D)#CtZ zxTBx7Xe=J-Z7AuN*}1Vg7FErcrdEx8`(R+j#s#TP*nisV`+`HUwW=;dGtBg?xb!^S zPoV3KngubhTK4L1MPek#;_^91Ka@v=Q{GWYk$`q~w1tCZy^V)=n~N8HCT=`c*43qO z|DDA+9XZ>E_&rggXMaIuJbedkVH83B?xdw)Vxhj88NnKbqpfK05K8HH$7A({%a8^7 z40qP%o?uSh8M}n|KF<{nogBt{MVA#t<#NNX0GK2qfu}3sZ$t0m{N4QHOZP>eG|3jJ zm6Eq5OV80Mv3Gd5dAccyw?qrvH+OT{%9g4qhvCgiXouZzC2Sl^hNTuuJOlMbLCuQ5 z{!W5j{E8P(;8{f=TwO%~YI9ByLNs@sCwJZ(dnqLL=0P;O=Y|)^uHVAeQK`?S>F^~H z^)aN7CwY3q_PXs4>UNWsYz02A2V=|_1R?e!;^)da0>Bxwp`Tm;+8M=E8G4QM4t^uA zPn@Vfu;zk~?=6&+%WNR5oJGZ2jbkZk8l-4?Z`Wv<-G|-{d`ysxdZc@5V1KvfBd_tg z?FMQc{z>FX|L@tYbxBc1l&M@D^uZ>}?FVJ$TP9G%Z(i}l=DkOj>7(R%MyJ)k7HZR( zUD17`&Z-kJlv0y1rjuNKE1!g=V+zzuajQ5e*q2|sTAZS8`v43vYRS*-xO=(%fkJJ(GtF zKXnlF0Baaza&CQFmXX&A^|DBUi>J`MnIduHU|O=G1Fr&#rWF{e*Ds#MQKdUz)Go(8 zIzFgAeQEgWDBtwV%@4u{sz7ZD)q{3~aj@nou%aqhYbZ%3>ft3$7p8>LHZs!v4?u6) z?eu#j70_y>Bdvd=*O=j(Kl>!W_pT+`>HPdR^izEYmqZB=_Ydt_mnT-BW`$9cL-dV);DW|0VtP zRpXsP;);d)?=_dT?1_7=@rR;s{P41(sHe${@A%BB0+AeO;dAP5heK`~*q*}S2<`xF zt#z5Tb05-UVaU1<1?$_zj_(znL#^Gw_~65%Ds1m z{0uR-ZMdm?Wd3jTFkV%K~r}5+;BYK$7)FhoA@aoV6{ z&F8|(!7=iqu^dE{Z;~Jj7I^(rxRf84LTArOWsYcfD$2(g!?Won#+y79lL7iYm(axa z%KX&G9o1_38yuy&7o|y2)fIqZYR{zOh|WE{izd2TNOYyV%&$xsoAD;SXOoUVv^T498BcZtM={cjNAh$`?|&fs zrybhwzv1qX0j)Vf5^$x*OV?)9cbTkcOH+T1Qum*J4Rk-^xi0qw4F95!z@%@retkT4 z`Pf8)Bo@(q3~vz8AQq_>TLV{3+dfbECyYGNx9iO6KiF+0$F{(EPK1N2WQT-1gq@NQ z@n3rHC(NwImk#Ump=2fPrHdyvEBSW;29tFx+_qxx zh$$U^qxxZ0!o6t0zsJ(Nu@~zdXeG%#Oj=hw*p)DpO!qO4f9fVCZuWPv2Q5EgB&U@) zC-gRo6|QEeSTQQ{_aqndpVog@8}Ip$pJ*I;d|C4`{4P5smhApVvO?Ily#li4jRNwv z8^{80j+Ra<8i4(Qz6jno&jOxj(HxO7?CFWSG5D*5LxPD&puVHU84CdJ1P=z0UJ!gB zc;TRMwfrqSq_~>c$tAQ!ik5yjIlW`u&*M#W+~W(HoA=#86ra6y@e@w#+HI=T2}vws zi78chNGW$0fRMRlvjF*cac2w)Qf$+WZ?&&1h1ExXJw>07-<-`}yS0{iwXff3T)Va1 zpi1k~_azW0bOT@V=|@2`s-|R|c-N9UHypj;p1|!!jxD%OYUkf}|3+=(PW~!~b9Q+- zaZn#dM$6C&s^Iw$)HBc2p}l^|DYhO96J(z(JyBFRpd>G3uQeK$h+EUZh|9&8+EL%2 z;nq7kvRK`t%0>5_mGV>(M^6grY;00t>ACt95@4mDEG0UXeTTYOnL9NqyV(7_-M+#Z zUqtzYv@leW^Yt*@_K~RgNbqF69(74smU>c{z)O_LZLuArUvcxKjiFUi|#A-kb=BE76LuYK2hMD4+ojn zb4IDyA`m#>oXZ92TuMf~d0~wm`3pdN4nt($A0fg$5VIZt^%lliSZ^=rd&jd0!#RWz z|0CG2bQ^^nppNh~H=T=!pypswsOzX?yciBkQx{86dB_a}-E zZ^EJ4a^DG1f2x6frcL2Z?q?#m8J?3G79S5$ZwZsHH#>(#;-c3Z}(HCv05=!rqkg@OV`Bn`pvlmI50(c+xIh?fN@MStt#MA4F{C74Xa%bkY6E)Co2}!A>x2<3m3yh;OubNu zAW5OY3DHy$Qp^d)9tWI)$BSr_eet^)SYg^UKf)63U%l#mel0?+(0=OrG*r9=2wFyd z8->q&x*T31eL%q7a{kFqJSol=jEy$MFOe$kHv>KOfz#5y53R`4_c_#-xu5KT_B zaITNPVg1+6%k<{!mEpFO&-!VO7XRBgAg@-EzgOG8$AZjGJi$t+>9~^u0Tk=gEsD5y z!WGRyLSkamVcUzr#Q69)f-*<0sT@xp90`P(BdhO)bT|4$5cdRy>=Gu>Cv)x3=FIQn z>b=V?2Rbpe$e@wXh@i~IUO=ao4)~L8I&vDRUT}_mgV@-fKgQ_w3V4&_gjOLMgDRuv zF)FQj*tB9ygoTT@KUran?}b!LRG8Y8ik`{W#AdVg^zkn9Xb_<Wu^r3m}@y+Pg(6I+nu+AY4cYqCRgkKTk0yL%4HJgkWt;MsF!EzJ{!`?MdQ zsBi6Fbrgz_wX9d-P;I&=icb!7yG>FfshoWp3B=c_$9hdC-bl+>9YnWYfl$h2&Jx9Q zXV?2foB5k_i(8;lGx7(5yvTZs2u(QhQcmmQ2+j(x+9<*mc01k%wuL4Ie1z|f>Ta9$ zfxT3t%pIr?8fii9(yMG0UqH#cqq3AA@+0h;?DZ3-<079Z&Q(CZBwJTIc9yCd#B9M6 z{GWM`#)q+i1zb8PwdMt&POfzx0wF#;a6E=X{Wva)A34qY#3NrcqEi( zs85D@;C~&xgoT5F$40=R;&8se<(5#_c%4u;i-pH!5}25WNX;p(Y3x$pJ3~pMw#_bS zntv&s+qVX(VF|j{Q?asOam`YDMjaAnh|*RmJ_KB8X)3Ck!%`Bu%`CI(yf7Hk!AFiO-fWY(zAprnLU^ z1)t5*@EP{dbMJytDy6oXY+-S&`2lz`?wAnb$gy!qn}$4&E9S!GRTso~ffxNs4J*DB z{K05DNeJ?N_K*XE-tU#HXmbdpl$HbQ;W<8Mj$3COL*K{}>OPY1tp-oEDuaQ>n9JT& z!u%;}CKciB6?rV><`<`^7zO}wjemK;K6vNrd-=QdcZ|x!)>en|%3gG{MWX=#Z0pg^ z#zY)N@JkaX+B*>q1QwQor0ub8>8A6y@zz zAuUN@b}uoZ-TXS29?QHb)`gp02D?7(;4^y$Xius)hKHMkvtt!F`lIp zy~0D`{uT6dzDQS2Ktu#r3wzO1)54Ai(mC@OeZ>_Ig^%YCjB)Z=Ky1r2BiXzaM@HtH z6JWQ8tMNI_gfgMVp8H<6(W)ABJXd>&CrDMJc^Cz$6E)Nu+`UYDZ-lQouu>;abP)1M z_Kh^4nq4@4Y&M+kiau!8N@k2cTl?(wXa+&j=mmB$$8C$of{?fbHY^mt>`vBK(@W`n zy8b|A^WCULN0yGG``eO?!%NVw-um5laGNrrtBl=n+KM8^ zN!c-y*`#HUxce((^;5a8uUq((SC%E7KfIp|lxw2c=r4QPyl2RiP@v9bq|~BH`3a*P zFA1M(mi*Yhol_m=DhcbA46+$tc~2UJ#Zq`3!APrxNQ)Z6xpj1fEbfZ#lG9?qbvrYb zX$UTHX_EebOQx`CzWS^#NyAC%%EMWKNtW9l zls-6?2qDI9L;F9iB(9|eBOrkL2f<%>{>z<0T;#|FuCM&~J%lmg{8QesNC~3=S5nd! z*QnQWe3qK^fw&KUG3Lcf95n;s(pgNiF9Ie&m^oy8A?>73A$e!2hsP~)6(43qbN^I? z?&YCeUtGdJ1(`jeHE;>}33Zed6l#AOD*x{}iI5JZl0d+W!fL!~T{njSSe3dcz`Dx*c_ zT8;x<_vjLHacA4}F@GUtKPVzM z!4{k6)o!r>Rjqg!@CLWVP|OiBRYAvB4B*BzVu+Ppa*C&FGyyQy98Nq}GVIh*E}u*K zvdiDF6ajh*hZ*nf?{96vuV&*yDX86K{_s*TA9_=;EjN;-{ue(gXwl)~bbi7>4>bbd z2DljZ$S?mEBZ$oQLbxya_RuXXgJD)=W?;_zUap-#-9AVDs~j#c>5%+j$EN-*%?2ru zSGCZmAhLM$CeGEFdqp(i>>d68epzNqO#l-)$v%UBiDl()DeY1~&Qi!lJMB`g#KxAE zY5ewMqw;iFjY&NKgJZ2nsWpgG`^yH1W7quzfDhy1w$s?kMD(0QZ#|F830YPC%hM{N9^uu0F0p!CO6pHO-f1q|%VL!bJ~w zn1O$l^YoqN@ozY0$x6lZ+(|%LpA*z^_95SoyF2~?>h~j%vgWMYG@T@-SYHoS#^C*Y3s`~f1)kTe{ zd9CuPPUe~gjZ;(?3`N>U(c9Ax$c*ePg}DXDXA$baA*We7wnRt`qMDGH(}jx+BFx>6 zD23#>gnL=ZCjQbv^HfA&dEC5={iS9j zpJ<|w)+xqRVfKQM)SE+wCY9;+dxg{g`w{4o23b4Bc^~O##_ksJxe2l5y919RjIXl- z4vMjET189vLv6GV6{%z?rM5iI(HeWn6LR&xjQKL!BVYN{0f4epM&y3>#XRb&S0(Y( zY-88hpD0=mpU+}lhO6J*7r(*6 z{?t5`jcNg0s^2nzK?2lJB=xK~)*OCC?8NxF}1Qf*Im$Ce^u8Do|v?idIRDX@d z!6|`@CvF`0q{G!TO`H*t@@8n*HB5tYd;7L&xe|LWe=i2$ek}%ms1vNABg}mbj#qgV z-uz~HZ82C4m+J$5w(?X#OK1T+mvGPWJ!HBCTyB|q5Uq^+oY1S!eKxz>ebTd6?QmlD zEYNzZDFGK@4x2!EYRUp!4}!%?%PGUEJz*Q5x0+0W#pU{J&zOLVI5RQz3GJ5N>=`^SRYPCOVheKJQQeHS|_$^V`k}}d{*>&z2)~R`q+)9Cv#We=UBsSV} zHyaF)r)Xq~R1dMWUIq68B@R^sQCbd~G4dAIoeRa;#8k?dVeB9{6;awI{|erMEq*Ql z4OV7&wK5)^813W;JFkA)&Pzyl2NjoV-)kGOg5F9bJ}u`gWa80TBxK?T9Z&1T)TPjN zTFxEMfaZHTl(Zjpe?XITcFU z7LKWDDvw^&VOm-a;6-HuO4=9+Ip<8d?%o~s+>e9=G={xq;iT}qId#VG)3>Fu)kZf! zudqVkaAs%r&Qs1lhHX2j%{WR|wR8n0g?23v z@o^I|r29xvM&Zdw%|cC=Kll)C>okJ}nAUSENE^+#_$(c5@@JoFkvq@ifDk!JmZ@vt!E&$8$VEVj89T zPPdyDzrzU}IFdAPC zY~ML*xUG9Zv8R#1@agWYC!^1Z=;){@2(SpS@Q6>rCnI+_REW47ToQQHoZLL>CJBj2 zd9zsJ&Mt3U1C#UX>Yp};*d^68f*bm_@oA-`O@n&pE|8307iiLHnO*Kc3L9lWMFUrV zUD1Uk2FI^xYw!WYzpk5KNqd0bK}#1ofz@mPRvga{qr>aO(k^#LaR^B=JdphG+@?da znPAqI#%BClk~g!P`yZZvFyVi-B;YE@B6Uca@-_$ulIUiO$5u{J$}U>P)7Wv1U^k`h zBCk$dAvjoi!Trkw;?Bs-7JBP4<+P+tB&#My0FhK@M@Cj5woFq}?Q(d2iP^R?-V>!f zZ={@;GZDRntSQ=Dk;APgqr6z@bJE6lER#t{eAAtEjyS2~L(#Wt&aug+H2;OGnH7Y|8X`+LUs7k*>DbXz>|FLBIELGo#Vot3+ zBAE?1!XHtUkEMyX$A<&}lHRK0nZv>1ywAd%)aO5}m$E^@53{m2owtS15(h{N@zX6o z;>@4rgZ4?b&Nc8pl-iMIR;>|)CnD4-op%Px2eLBM%Q>mlf|tIL^AG z=}w~qCsiA$an|cM6^S&e=)}Qe-GJVZ+O;>TANW|VE!*d-Z%VzW|If0P>4hq}VFGD0 z&f3=Lv9WMD1AY)*dxL@cU}(Z=V}cs*;LyN+Hx^pm7{eHx9D-D&wwjoiyo$|vge0)2 zuW`vJxTj_wP(smLF5$SzWN16o>=D5c^!b)XX#rCtR?^Oeq{wEsk|(%m&B0SdLQ3n= zf{q}Te*maTTQocCmfr@-l|GtbnSI?^5ar-9)JW^6E+)jlmOL`1gkPo#F87|a$Al$( z`mU~!R;JGWDw7Fgv9X>Jy>;8ZN**BvsJ<(-CBw7z6GjSAj`BT6>-;A>Wf|F98^e2X zwGpRpXw5BURVYflE*bidC)9nL#jT7lb;nrFJvKs-*1rwx!(C}gkRPZ^CKtcAG15f7 z$eHfbH6hq=F=T{Ew~n;&xaFixef=Uss|QgoybZapmD*Gtg32g80c+n!t|ktW=Wo)( zCl!-v3E8z$jycjF1nis^S#MIan-3oxbdZ22)f?g>j699|9D?1}H!u34&mw&(A~VzGC#gE^G%6TD&k%qW zNZXpU1LL6!^~LZhS}w_3gl>A}Q-{*LF`JGf#gCV9TBD4QWcQ*yaz%PK(#g@O3T%;b za2YMEm5lJFg{wv_w`~YOL_q+T$hO`Sfmr??v`lb^0|Gv#j$3*>)nA$otasa6`)G>0c2zXh2Y# zT&d=}1@nXT*qjG3nfg6}{2TLoP%Hhj)iJqB?YI9HpHaliQC5ng16#7R6RJMW4|D%^?` z2Tkj?m)O2q{tUiMm7 zVLZhq02&)bHpqH0ftjtWnanw_#@!akwkD=G=@>)tl2NdE8Oo$N3V5c4dlXurjUD`g zuL7Sjs!9`+NUP%a~Pv-#d`)oIJUO9#=a(E{wN#BRqg9g_0Ge!&nS!;oyHWaut zF!9N;mIsJB$H7Ei?=j~YIU#)qfn+J!q*-%f*gtCO=jjNvD3|l((W0(%V;8e`Fr`bn zdD?!a3%0Q@@C36b4}8F0c==)6){RsqKAW_TnIUFqhXlDrQF|1FGn0)hQ8Fr;I39KB zTa_&Q;~S!TF48wzLuSG)8YB=$@9|TWqtBaz=HOdqUlZ9dJpL2Py{7JnE}Z>s6@aP?az7C-(7GI7g=#No0WDZ%6yBhCXyrVY)VwPYlfln_M>GpIBW75fo1?Q0S zTxXAuT}?2gLN-#Qk4?~qXxqyl?PT;9uzA;GdQ+0qAoFMJ>bB)Y@M$gsox%J-INfG= zCaHQG9qmhtcDlk0bv+_rhT@oClzm)!dp5OLjTwH`fEhZ%(-oiX`bELIy|{M0Sm)7bKxxg`J4~ zOM&6I$BHtF=ArWHm&dBKu$Vg~5$M;4EH=u=rXK#|_x~*p1fd2#3mEc}dN`AP`)WUt z>*yzpa6*pu-EPc%_Y|$w!VfPR(VFW~qFeuL`KgMBtA9=vkLHNK;z_&I^)zO9QXOFt zda0NxI;=QAs!t!S*~y{KY|VZyCb>J6pR}W8RzN>6`%4F_cp0nJ+6+Go%-Of&wOQ!8 zszuY|axs18foLJB#bj-c6&_R?TMHTDl~K%c=ro-;m@!tJdHBI&bnb<|ufT}15P_;k z>)C4>d%j629bxOR~T>|B9Sd{WL{>^APpZ8S)0 zq}hvVp`eGC!XsIQ9{F_x#h3jU1$2lxTTb#7_a_W|*C(^H9jV^uY5`?sVSBS>OmI78 zhQ2DIy4Lb4Q}liNSk4Nt9qZJ`k;)7p6p!7#*F_l?<=iP_Na70lwjMk7A_5Hb8_BkG zt-T38Vq}R=1q3mG79E?hZCyOwn(|sG;wG5I!ADjxfT0i};4R zikr3i_Bow!?X{DNV!mPI70Gj6>5gCmp2ljRo6Kd<#7T$CGIbmpMeUFtfvUGmJ~J#~ zp$I*#X0+VIN;#R{Jh&m?Tz$-4o%NoBu&w0c%^G?&3xY0#?-oY2o;OGi&pGkxgb`KX zrAr0hJCg5&avJP&RgJNVYti0=;cU8Ui|JctNf_PiV}^D3%sRi`<203j{Yvr@EN3j z475s2xMI>{Po8gAJy}!IBDJQ+3GHkPeZDH7m`(YtSC-BBP|;!_gv6jQRdFe#xEM#w zaz`(3M_lYeX_HsFTmP}`=d+1%I)z+t{=<~~h3Zk#yW)@<;KUg0Pz5T)MW+wU*hFGxfzbxh2)Fo!2 z!~VB$4c_YqsWRB1&-AF6QdJZ|cumTpI0>4yM?;(b5pFb2VgrH+Ejc@6@(y+xsfq?& zJSg4Mv7J9*u#RMZC7|S8U+-IVfqAC!@2>^Hwx4Mve)}*O7P(KFj0*W^$O**-d*Khq zP{nGv6RtCnDZ>8!2>+4tzgKwv*NX1nD?K#O{zoGdSmr0piyj1HmB(%^rP0yx$g;Zt zMGcVn^8MHxblxfG{Lp<)Q=c`jogtX&wx3W8xv1#{Picnz3c~Eiy!TF{y{;%%Sm=dMMB#wlwmaplT#J_FLi)e@ill6cQZ=FrJ}n{ylsigRgY?-YOaw zhFO3c7)GVVljOFK-hq;8=qMDSe0l_9xK)}m9z{usCfMLzKUD{nWA$KBRLHSnz0Gp} zNvB#9Z*ujTO+!kHM#<6515q4Ojg~RxeBX*xG_o@z%2JF5q|hHJ_L?{nXX^cFjESbZ zec|gwX)(Y+V;^|P*{;F(wH9Fb`e|zLNIZ=mnP#O$9~`zOt!9w!PwaZ$+Yq*oFQt?? zWaNk{OOn~h8O`GFNVnoVd%xxY(0sa807)nD+pzfj6d;#BH%KxAUSH4m);~ZB$7!UH z{Y#%6nFoGqsy+K=k@d=Oc!l*>#z!BVSA++|X?u9j@UY}HjqU7IvuiGpp}k2s3R0?B z=8J+y9xVO!WhQhf@pvs&y9|^?Vl`HeGCVAMEp!`=*qlYJ8C1zE0j!4J@8o+uH5{5r zp&8D=s%ABfLbU{SuWFTnf!T8<05hdcafH@x0q-8O37cSkhV2Ld;8?XZi*sN?uOV-0 z$jVkk;5vIB&CLh6GvU&>9b{C5Yjfm&*wF#Nu_pO@R`)k3tig>}vMia2qY6Qg3chWp zr2zHasH7f?zsAOO#Gq`o9L2C1(rHPmrDsJ9mM{=~ic~l}RKkTf%?$j=i6iy_kdf-u zz`z;og6on&L-+lGeaVyBLScyoaplw5g;Pu>o)Q}H42tiU^us?;5F5yF@e?NFj(bjT zDa>h&EOd1Vf&cWG+t;@<>2maRX!d;NXrqewiddZ0KW@nT2$Ov9qwI)J)$kx%Gc0@|h$Tfp`dbsN|>$mpOyzvL}iZDesifA_sUV2DUiRojjRs8;w zXR&yTf{j7MMG!JX!w=}`e2wbZEYSjJrjuDa+`1n(iMTa&e#E-jC4GJe+clGNYTjCu z&YMvNB5@sabm9MFwIOF47F@F)WDI;t|=m-crN(PdKe58U!ek z@7N%_*?>O9pD?>(?h)jOMzcZ~W<_Y4c(o-dgGYv0?(d<8bEw2gAQrR{=nxivM;#ON zI1YoBt+;sMWjMSwn_awC$iwa`K{&=jJKvKjh0C8XKRB49<26w+3n7sPAY4PY8)9Z$ zatx!=pD?PPPCsFmT<{`�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 OAxEQD{kG2U$NvGidJvTW diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc b/nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc deleted file mode 100644 index ed65f781103..00000000000 --- a/nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc +++ /dev/null @@ -1,47 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X59.171 Y23.693 - Z1 - G1 Z-1 F500 -F290 -G6.2 X59.171 Y23.693 R46.5833333333333 K0 P5 Q1 - X59.144 Y23.725 R59.1666666666667 K0 - X59.120 Y23.838 R76.5 K0 - X59.514 Y33.682 R6 K0 - X51.214 Y35.690 R1 K0 - X47.800 Y34.150 R1 K1 - X43.985 Y22.570 R0.75 K2 - X34.346 Y33.012 R1 K3 - X48.470 Y50.884 R1.2 K4 - X38.898 Y62.999 R1 K5 - X26.247 Y81.942 R0.75 K6 - X40.705 Y108.180 R0.75 K7 - X67.207 Y106.884 R1 K8 - X67.338 Y106.742 R1 K9 - X100.679 Y99.077 R0.9 K10 - X87.225 Y56.038 R1 K11 - X75.511 Y56.506 R0.75 K12 - X86.154 Y29.264 R1 K13 - X89.032 Y17.416 R0.2 K14 - X80.732 Y19.425 R1 K15 - X77.854 Y31.272 R1 K16 - X71.027 Y28.193 R10 K17 - X69.152 Y23.240 R100 K18 - X67.483 Y23.307 R1.00247499999999 K19 - X64.969 Y23.407 R1.0000000825 K20 - X59.219 Y23.637 R33.9950502475 K21 - X59.171 Y23.693 R46.5782997650487 K22 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G1 X59.171 Y23.693 Z1 -G0 X59.171 Y23.693 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc b/nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc deleted file mode 100644 index 675b18e3072..00000000000 --- a/nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc +++ /dev/null @@ -1,48 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X59.171 Y23.693 - Z1 - G1 Z-1 F500 - -F290 -G6.2 X59.171 Y23.693 R46.5833333333333 K0 P5 Q2 - X59.144 Y23.725 R59.1666666666667 K0 - X59.120 Y23.838 R76.5 K0 - X59.514 Y33.682 R6 K0 - X51.214 Y35.690 R1 K0 - X47.800 Y34.150 R1 K1 - X43.985 Y22.570 R0.75 K2 - X34.346 Y33.012 R1 K3 - X48.470 Y50.884 R1.2 K4 - X38.898 Y62.999 R1 K5 - X26.247 Y81.942 R0.75 K6 - X40.705 Y108.180 R0.75 K7 - X67.207 Y106.884 R1 K8 - X67.338 Y106.742 R1 K9 - X100.679 Y99.077 R0.9 K10 - X87.225 Y56.038 R1 K11 - X75.511 Y56.506 R0.75 K12 - X86.154 Y29.264 R1 K13 - X89.032 Y17.416 R0.2 K14 - X80.732 Y19.425 R1 K15 - X77.854 Y31.272 R1 K16 - X71.027 Y28.193 R10 K17 - X69.152 Y23.240 R100 K18 - X67.483 Y23.307 R1.00247499999999 K19 - X64.969 Y23.407 R1.0000000825 K20 - X59.219 Y23.637 R33.9950502475 K21 - X59.171 Y23.693 R46.5782997650487 K22 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G1 X59.171 Y23.693 Z1 -G0 X59.171 Y23.693 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc b/nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc deleted file mode 100644 index 23381d22513..00000000000 --- a/nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc +++ /dev/null @@ -1,48 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 -;M6 T0 -G96 M3 S200 -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) -G0 X59.171 Y23.693 -G0 Z1 -G1 Z-1 F500 - -F290 -G6.2 X59.171 Y23.693 R46.5833333333333 K0 P5 Q3 - X59.144 Y23.725 R59.1666666666667 K0 - X59.120 Y23.838 R76.5 K0 - X59.514 Y33.682 R6 K0 - X51.214 Y35.690 R1 K0 - X47.800 Y34.150 R1 K1 - X43.985 Y22.570 R0.75 K2 - X34.346 Y33.012 R1 K3 - X48.470 Y50.884 R1.2 K4 - X38.898 Y62.999 R1 K5 - X26.247 Y81.942 R0.75 K6 - X40.705 Y108.180 R0.75 K7 - X67.207 Y106.884 R1 K8 - X67.338 Y106.742 R1 K9 - X100.679 Y99.077 R0.9 K10 - X87.225 Y56.038 R1 K11 - X75.511 Y56.506 R0.75 K12 - X86.154 Y29.264 R1 K13 - X89.032 Y17.416 R0.2 K14 - X80.732 Y19.425 R1 K15 - X77.854 Y31.272 R1 K16 - X71.027 Y28.193 R10 K17 - X69.152 Y23.240 R100 K18 - X67.483 Y23.307 R1.00247499999999 K19 - X64.969 Y23.407 R1.0000000825 K20 - X59.219 Y23.637 R33.9950502475 K21 - X59.171 Y23.693 R46.5782997650487 K22 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G6.2 K23 -G1 X59.171 Y23.693 Z1 -G0 X59.171 Y23.693 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Delfino #1=1.jpg b/nc_files/nurbs/G6/Curva_Delfino #1=1.jpg deleted file mode 100644 index d5dc638a9ee87cca707ac9d5707908af4879feee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135488 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

H%(K`oL_Os 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
  • 8FYc$DKAP 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 z zzhSGNVJB8q7-?WqC61A4cVN%IuzK!I`8&s56B*A~-pe4~BPM&Ym1-)R-L(�eN#K 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 diff --git a/nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc b/nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc deleted file mode 100644 index fe4738dde43..00000000000 --- a/nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc +++ /dev/null @@ -1,72 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 -;M6 T0 -;G96 M3 S200 -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X54.493 Y52.139 - Z1 - G1 Z-1 F100 - -F290 -G6.2 X54.493 Y52.139 R1 K0 P5 Q1 - X55.507 Y52.139 R1 K0 - X56.082 Y49.615 R1 K0 - X56.780 Y44.971 R1.2 K0 - X69.575 Y51.358 R1 K0 - X77.786 Y58.573 R1 K1 - X90.526 Y67.081 R1 K2 - X105.973 Y63.801 R1 K3 - X100.400 Y47.326 R1 K4 - X94.567 Y39.913 R1 K5 - X92.369 Y30.485 R1 K6 - X83.440 Y33.757 R2 K7 - X91.892 Y28.509 R1 K8 - X89.444 Y20.393 R1 K9 - X83.218 Y15.446 R5 K10 - X87.621 Y4.830 R3 K11 - X80.945 Y9.267 R1 K12 - X79.834 Y14.535 R1 K13 - X76.074 Y8.522 R1 K14 - X70.183 Y12.550 R1 K15 - X64.171 Y16.865 R1 K16 - X59.993 Y22.122 R1 K17 - X55.680 Y36.359 R1 K18 - X56.925 Y24.995 R1 K19 - X59.765 Y19.828 R1 K20 - X54.493 Y14.940 R1 K21 - X49.220 Y19.828 R1 K22 - X52.060 Y24.994 R1 K23 - X53.305 Y36.359 R1 K24 - X48.992 Y22.122 R1 K25 - X44.814 Y16.865 R1 K26 - X38.802 Y12.551 R1 K27 - X32.911 Y8.521 R1 K28 - X29.152 Y14.535 R1 K29 - X28.040 Y9.267 R1 K30 - X21.364 Y4.830 R3 K31 - X25.768 Y15.447 R5 K32 - X19.539 Y20.391 R1 K33 - X17.097 Y28.512 R1 K34 - X25.537 Y33.750 R2 K35 - X16.602 Y30.496 R1 K36 - X14.199 Y39.803 R1 K37 - X8.668 Y47.408 R1 K38 - X3.000 Y63.794 R1 K39 - X18.465 Y67.084 R1 K40 - X31.197 Y58.572 R1 K41 - X39.411 Y51.358 R1 K42 - X52.204 Y44.971 R1 K43 - X52.904 Y49.614 R1 K44 - X53.478 Y52.139 R1 K45 - X54.492 Y52.139 R1 K46 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G1 X54.492 Y52.139 Z1 -G0 X54.492 Y52.139 Z10 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc b/nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc deleted file mode 100644 index ebbc1186527..00000000000 --- a/nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc +++ /dev/null @@ -1,72 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X54.493 Y52.139 - Z1 - G1 Z-1 F100 - -F100 -G6.2 X54.493 Y52.139 R1 K0 P5 Q2 - X55.507 Y52.139 R1 K0 - X56.082 Y49.615 R1 K0 - X56.780 Y44.971 R1.2 K0 - X69.575 Y51.358 R1 K0 - X77.786 Y58.573 R1 K1 - X90.526 Y67.081 R1 K2 - X105.973 Y63.801 R1 K3 - X100.400 Y47.326 R1 K4 - X94.567 Y39.913 R1 K5 - X92.369 Y30.485 R1 K6 - X83.440 Y33.757 R2 K7 - X91.892 Y28.509 R1 K8 - X89.444 Y20.393 R1 K9 - X83.218 Y15.446 R5 K10 - X87.621 Y4.830 R3 K11 - X80.945 Y9.267 R1 K12 - X79.834 Y14.535 R1 K13 - X76.074 Y8.522 R1 K14 - X70.183 Y12.550 R1 K15 - X64.171 Y16.865 R1 K16 - X59.993 Y22.122 R1 K17 - X55.680 Y36.359 R1 K18 - X56.925 Y24.995 R1 K19 - X59.765 Y19.828 R1 K20 - X54.493 Y14.940 R1 K21 - X49.220 Y19.828 R1 K22 - X52.060 Y24.994 R1 K23 - X53.305 Y36.359 R1 K24 - X48.992 Y22.122 R1 K25 - X44.814 Y16.865 R1 K26 - X38.802 Y12.551 R1 K27 - X32.911 Y8.521 R1 K28 - X29.152 Y14.535 R1 K29 - X28.040 Y9.267 R1 K30 - X21.364 Y4.830 R3 K31 - X25.768 Y15.447 R5 K32 - X19.539 Y20.391 R1 K33 - X17.097 Y28.512 R1 K34 - X25.537 Y33.750 R2 K35 - X16.602 Y30.496 R1 K36 - X14.199 Y39.803 R1 K37 - X8.668 Y47.408 R1 K38 - X3.000 Y63.794 R1 K39 - X18.465 Y67.084 R1 K40 - X31.197 Y58.572 R1 K41 - X39.411 Y51.358 R1 K42 - X52.204 Y44.971 R1 K43 - X52.904 Y49.614 R1 K44 - X53.478 Y52.139 R1 K45 - X54.492 Y52.139 R1 K46 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G1 X54.492 Y52.139 Z1 -G0 X54.492 Y52.139 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc b/nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc deleted file mode 100644 index 3250f3eafe7..00000000000 --- a/nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc +++ /dev/null @@ -1,71 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X54.493 Y52.139 - Z1 - G1 Z-1 F100 -F100 -G6.2 X54.493 Y52.139 R1 K0 P5 Q3 - X55.507 Y52.139 R1 K0 - X56.082 Y49.615 R1 K0 - X56.780 Y44.971 R1.2 K0 - X69.575 Y51.358 R1 K0 - X77.786 Y58.573 R1 K1 - X90.526 Y67.081 R1 K2 - X105.973 Y63.801 R1 K3 - X100.400 Y47.326 R1 K4 - X94.567 Y39.913 R1 K5 - X92.369 Y30.485 R1 K6 - X83.440 Y33.757 R2 K7 - X91.892 Y28.509 R1 K8 - X89.444 Y20.393 R1 K9 - X83.218 Y15.446 R5 K10 - X87.621 Y4.830 R3 K11 - X80.945 Y9.267 R1 K12 - X79.834 Y14.535 R1 K13 - X76.074 Y8.522 R1 K14 - X70.183 Y12.550 R1 K15 - X64.171 Y16.865 R1 K16 - X59.993 Y22.122 R1 K17 - X55.680 Y36.359 R1 K18 - X56.925 Y24.995 R1 K19 - X59.765 Y19.828 R1 K20 - X54.493 Y14.940 R1 K21 - X49.220 Y19.828 R1 K22 - X52.060 Y24.994 R1 K23 - X53.305 Y36.359 R1 K24 - X48.992 Y22.122 R1 K25 - X44.814 Y16.865 R1 K26 - X38.802 Y12.551 R1 K27 - X32.911 Y8.521 R1 K28 - X29.152 Y14.535 R1 K29 - X28.040 Y9.267 R1 K30 - X21.364 Y4.830 R3 K31 - X25.768 Y15.447 R5 K32 - X19.539 Y20.391 R1 K33 - X17.097 Y28.512 R1 K34 - X25.537 Y33.750 R2 K35 - X16.602 Y30.496 R1 K36 - X14.199 Y39.803 R1 K37 - X8.668 Y47.408 R1 K38 - X3.000 Y63.794 R1 K39 - X18.465 Y67.084 R1 K40 - X31.197 Y58.572 R1 K41 - X39.411 Y51.358 R1 K42 - X52.204 Y44.971 R1 K43 - X52.904 Y49.614 R1 K44 - X53.478 Y52.139 R1 K45 - X54.492 Y52.139 R1 K46 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G6.2 K47 -G1 X54.492 Y52.139 Z1 -G0 X54.492 Y52.139 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg deleted file mode 100644 index b89b60303871553e88d23df01e5a0bbce2a02200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166760 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 nO(6wE{zCHfjCdEx_#`K5 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≷+)=~pC;3qKuh;4{xCUu=|3qLf@ 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 DS8vkb diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc deleted file mode 100644 index b8756b41fa1..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc +++ /dev/null @@ -1,107 +0,0 @@ - - -(Curva acquisita Nr=1) - -#10=290 - -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 - -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -X0.000 Y100.000 -Z1 -G1 Z0 F#10 - -; G6.2 parameter -; R1 -; K0 -; P4 nurbs order=4 - -G17 (Plane XY) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 X0.000 Y100.000 R1 K0 P4 Q1 - X10.000 Y100.000 R1 K0 - X10.000 Y70.665 R1 K0 - X27.928 Y59.258 R1 K0 - X34.093 Y56.935 R1 K1 - X41.136 Y54.281 R1 K2 - X63.112 Y51.556 R1 K3 - X79.999 Y60.000 R1 K4 - X99.998 Y40.002 R1 K5 - X100.000 Y0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 X100.000 Y0.012 Z1 -G0 X100.000 Y0.012 Z10 - -G0 X50 -Y0Z0 -;G96 M3 S200 -G0 X50 (movimento per avvicinarsi alla posizione di taglio) -Y0.000 Z100.000 -X1 -G1 X0 F#10 - -G19 (Plane YZ) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 Y0.000 Z100.000 R1 K0 P4 Q1 - Y10.000 Z100.000 R1 K0 - Y10.000 Z70.665 R1 K0 - Y27.928 Z59.258 R1 K0 - Y34.093 Z56.935 R1 K1 - Y41.136 Z54.281 R1 K2 - Y63.112 Z51.556 R1 K3 - Y79.999 Z60.000 R1 K4 - Y99.998 Z40.002 R1 K5 - Y100.000 Z0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Y100.000 Z0.012 X1 -G0 Y100.000 Z0.012 X10 - -G0 Y50 -Z0X0 -;G96 M3 S200 -G0 Y50 (movimento per avvicinarsi alla posizione di taglio) -Z0.000 X100.000 -Y1 -G1 Y0 F#10 - - -G18 (Plane ZX) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 Z0.000 X100.000 R1 K0 P4 Q1 - Z10.000 X100.000 R1 K0 - Z10.000 X70.665 R1 K0 - Z27.928 X59.258 R1 K0 - Z34.093 X56.935 R1 K1 - Z41.136 X54.281 R1 K2 - Z63.112 X51.556 R1 K3 - Z79.999 X60.000 R1 K4 - Z99.998 X40.002 R1 K5 - Z100.000 X0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Z100.000 X0.012 Y1 -G0 Z100.000 X0.012 Y10 - - -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc deleted file mode 100644 index 86055edb26b..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc +++ /dev/null @@ -1,42 +0,0 @@ - -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 - -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X0.000 Y100.000 - Z2 -G1 Z1 F100 -G1 Z0 F100 - -G17 (Plane XY) - -; G6.2 parameter -; R1 -; K0 -; P4 nurbs order=4 -; Q selects the used method 1=NICU, 2=NICC, 3=NICL - -F290 - -G6.2 X0.000 Y100.000 R1 K0 P4 Q1 - X10.000 Y100.000 R1 K0 - X10.000 Y70.665 R1 K0 - X27.928 Y59.258 R1 K0 - X34.093 Y56.935 R1 K1 - X41.136 Y54.281 R1 K2 - X63.112 Y51.556 R1 K3 - X79.999 Y60.000 R1 K4 - X99.998 Y40.002 R1 K5 - X100.000 Y0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 X100.000 Y0.012 Z1 -G0 X100.000 Y0.012 Z10 -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc deleted file mode 100644 index 493c8421a89..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc +++ /dev/null @@ -1,43 +0,0 @@ - - -G21 G40 G54 G90 G94 -G0 X10 -Y0Z0 - -G0 X10 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - Y0.000 Z100.000 - X1 - G1 X0 F100 - -; G6.2 parameter -; R1 -; K0 -; P4 nurbs order=4 - -G19 (Plane YZ) - -F290 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL - -G6.2 Y0.000 Z100.000 R1 K0 P4 Q1 - Y10.000 Z100.000 R1 K0 - Y10.000 Z70.665 R1 K0 - Y27.928 Z59.258 R1 K0 - Y34.093 Z56.935 R1 K1 - Y41.136 Z54.281 R1 K2 - Y63.112 Z51.556 R1 K3 - Y79.999 Z60.000 R1 K4 - Y99.998 Z40.002 R1 K5 - Y100.000 Z0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Y100.000 Z0.012 X1 -G0 Y100.000 Z0.012 X10 -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc deleted file mode 100644 index 61b2aca9f31..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc +++ /dev/null @@ -1,43 +0,0 @@ - - -G21 G40 G54 G90 G94 -G0 Y50 -Z0X0 -M6 T0 -G96 M3 S200 -G0 Y50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - Z0.000 X100.000 - Y1 - G1 Y0 F100 - -; G6.2 parameter -; R1 -; K0 -; P4 nurbs order=4 - -G18 (Plane ZX) - -F290 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 Z0.000 X100.000 R1 K0 P4 Q1 - Z10.000 X100.000 R1 K0 - Z10.000 X70.665 R1 K0 - Z27.928 X59.258 R1 K0 - Z34.093 X56.935 R1 K1 - Z41.136 X54.281 R1 K2 - Z63.112 X51.556 R1 K3 - Z79.999 X60.000 R1 K4 - Z99.998 X40.002 R1 K5 - Z100.000 X0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Z100.000 X0.012 Y1 -G0 Z100.000 X0.012 Y50 -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg b/nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg deleted file mode 100644 index cdc3c55af62a877f3fd0664aee665159dc2d9573..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127950 zcmeFa1z1+g*EhUrkdT({F6l-(q?Ar+P&%X=q#L9`x z02Z+>&5TY#wx!B|>LeKp|B~0omN5Y#N2r*x8rrz@wWZddS0`^aAY;jF=mWakQEV;{v2P z;B`@E!J}hQa>>h>!6H#%J>5dk%wr}B#755t1sS7y{UO13b+etitV&19@Zy!C0-+&{ z?*4#H9MvyDwgfgBrIHXR$}Sy2j2&G1g9rdD&;P{w4Ff3~Um`#WtCR^J4pQefq;L%p z#3PjWFbNXukSrmtE`#5w{SEsiPQ680)+mHF(Tz8`DP}71VQ}|_seywL1=i-7cD2N= zO5Cpb_CYIYKCHh%`E?ZnO3wH>fF2{E^{7lwE;5+3EF{)Ol&+Ut7rBZ%K^6`=$BZlk zTkqG(f5U}_-Imu^N+ZYAxfFubN9Kv@^cQg82BdgA0ib~NQH||oVE}}6W-c7Trvs<4`3;n7+*tudqyg9C&Q$YgP;&OPiS+e#1s0T4Md}v8) zJ(E3LMRjh)(l6=NONF5>e@p({qjNx%Xz!+Y=NR90%7=S=#V7tFyOySJ3J%u}8VTom zGINUF@2x#nU=!BlGYHT~$r6##^79<<9N72Z+;_rx2&` zYzI!ib+4xS+Yw((er6BT+WSVzeJTwu_rU!#OywsN``aDNbz6I!&j%k&-d=Ig4c(aC zGiBZT$kFLaneXN>YmR%YABD(K;%~INkr3u+!95_(7F!>uUcGVhu{L34BR3YKC-bY}|DJ7vB?keQ~&Te*m->J7f4`vR8 z5(%y@Sq^pRvsjbW=gwRYjMZyTb5$(%MwXppBD-(V*Uqh^-ZuX5nqgsI6Z>z+2Izzx zq|nl)(FF)VJcC5Mk@foy4|jjkNgD(DNJvhvGZ$p??;85XzaJ12MWzU{0w_J@!IwgPUPcQqgc4Fl z)ngMq6_8c>RgxPY0Yrgzmd^XcH)0;u4dsb``QAoT|G=$dG|{2`fJziENPv7XKW06d`L3FfMZdb_FD zROegeuL-vS+)9JM%3QS0v_=3M34v$}EV;>+$J2p}^a;ZJHyz~LxvNJ2VBxbEKjsNj z9CIHgEdoK@?_2$^39t{m7GqHqqeK9ZVn>1|n`B25!a4o(;2 zti&6IPLSN+rjry7lP)w9WB^c$M=(;rjsWzzc#`p+fX(2`BF%&6)iUABcEC`=5TP%Z z0>D>iL5vR(r}2cI(Pg?J20@(h4{cnX0cDJ)c0=wb{i`e}(cOlmSRt+6#L;VZJW<^h zCdB9+R#sLv_Vm}7_d$L3mf`1U0vhQNj2iSw0K{kcWN|rv)L57jzHF|39uHPXu0mN8 z7kBcLFr>6){GbX8>aetRD;p~Z9%PxKZ!PVk8Y?Qs2O)#K^;H|43F!C}+kG=JoVe8& zT9h{Mv-f|i`5WSjfxbzhNr<3PcMWdY*fS-BPzn=wjV^B*Q3Wo4_Rnupe@FZ^v)`oP zvPkl$|Kl*hJsx3123}gqZX>H^(t)+a+HJ>z2SNP| z2l4rqh8X7+?5``~3g`FatvA6qQ~G>P)X9@UBze;^5!)5!&^T`mreB7%>q8CcIRysO zr}&0}*4MWLiuHdmCnVKW7jps*2Q-;2ry+T6>9Dncm45>R5&w}%A@}l;6YWUw1+F4p z#(?j5zbo8&6FOBcGUWpRXp--vrzG|2>c1EL8gRd7{-*SoL(34Oi;XH{K&^c*`DaG^ z>d4@AK5$t?TAtrQL82OeZ1|4z`@+}V5cU@m-*t#mznZsK>HdJJzo@e7{4b<0Syz1e zl69GXXD;ZC+>wHwlve~nW*^I?WK!8XN~*$dsdAa%g3*mj3tZ~_m_uwi&K8o%KN_9NQ2@~=X}*UBHQS=Uk!e(NsKZ3g}9oB9vL zuR`Kik+1vbH-(#w>zM=50Q9(t=QrLD1mVN>cWNZ&LO-xCia&%1@I9mg-j4!+Sx&=m z?+5>Uq!6ZT0>5bcGwa{F59o;YWfB0;4*xr_|6g?tFgMEk-9Z1`YJcM&e{MBEie3hE zPW)y1576MtiM4)-1pt5Ux&YJ!^?w~0P|DEf8t`kpzoPq3^dgVR344zh48oZ*LL}hbxC}G8i0!B$(DIsHeK*;{!-v` z{!y;%T{; ztvP#MHuA$-{nx>hz4+e#$369hp(67Ii0OeGLA)b6&_grqomZvSPRAYT>z56Dm;d{H z4gfmcNX&D6Q+|8E1^ytI0tkC_H;}J(g{8MtQ{W2Y3s`ZU=M~;p5(2D(FzGw~bfq&} z&4a6w;IEKEc^ne2vOZ6pDB^8q@Vsi;E+{7pD_s&y$a3PDCJC|xfzOiSRJ~-w#Jr%W zF2Vi~WhRX%>Fvjqs~B(>w>4=O90;9PuTt*QnB@*6Do#SL7Yrm{a3MGCU-o>rUwz(B z3A9z=NwR8)VhqZON0aZ+_WLVfS4TrRl@fsNaX|?JYI>qQE5$f!!XrE^gPx97PplL>*hSy2AwCFm<(P-2z}Yx+!lxqSBih_ufIu)FH` zO<&l6pEv+G(0UE_O0kpf34CRK&T3k6?0M`$>xiy0Eo$Aki)s$Oo|wMYe0E9FZj;U^ z&?7mdYkN#Y^G)}neTJP7y3NI`J_~_!y;(&)eTA471{#|a3zp>Y(P__BV7jtd8ncW0 zuPX_$<4*RSR5o_krYp=ZjmZ?PCYy=u$+9b;=tY3kzNPrm90XW4cCfHF zF%jrIvw*NBz)`VBcLf6|@37sp-#FpA$^#}24(FfCz3INf{IVKoO*%neNj`#$jz#$E zc{&8P=bAky(}l}wCiEkamwimTqWA+j!FDjdl7pn~d4>Pk`^00FoOsveZ}`ba#7h(5 z_mJcz8<0G{E<*lA5Nm*l3D>DGNi70&;$4Pak$X;8ISG%zMuhIAyx71RPZfte2D4X8kbV#%C}PqZ!LBW3o?$Jnk?Abn_34esOwDIvJgRzogkYy=RCUgEwy zO5NW%(0A>Ajkiym5*?tQnL#nRs(crIE@aW}^dWzz^V`A~13Qk{l3@o>teYCXj2}UO z*6Te;`(6Xw_+!TRoZpr%j@AwVqra#JA3XgP`xlbHg?E*T;q>aUmj|@NFGjEHvoi-Y zBj$~F<|-Id1?1@8XKSXWn+Ua9*JBq72(n|33TQWAXVD}{#-)}NWyY0zii=$w85$9# zoSM+|s|J4NeKsp>TCrm(pTMZ3zB$LE-ae7%e8{7c%xn7(`$KJ8o%8b&-})Rr9tgGV zcHVu{o?#|-WV~8y#K$<&M^(xfzqfRc9c|3u_E~tKa-qN=fE=0%Z6~?e*A8e zzU2QRzi8P4A#%xbX1zB|V?s=HS^o1J%oLl3%)HVB^mYyebpbvC z#hQs9#3LgrNt?lG8C5?W4pbjMTaHKHZ250nU`%9k!mvYSpQ;4V$%b3^GCU__b_Qis zEBS!Y?h5R6u^`j={T2nby_)rlFV+4m*|O?M>*qyQjpYHwl-P)7L1rs(imJHSpHD4+ z1_hFa&QWPs55zTB_e8Xc*GMrk5id?mhb`u#YWQQQ3k9(JnBCY6v1#Qr@VXQm<>-~N zyXKTS{}B{mV(4o4Wt^`NvUit#Z_mU!gZ<@ie*}s(z;SbtUL>@t81!x!6)_6DO+dG% z=N~~_3S-GgJPUIEVlui3c;R*#-VY<1Y>(a8?_P@hQGNvv$zOrm=P7+Jq+Zh>L3|T# zHWAHI7?qed83jz*Y7CropCVtk;LY=PAdilcao^)aU(@ zpy+C|6JqK&A%`N}@lc27AN7A0fPl-#jJzX9YF>C3EdPdKnlb6{~a1CE_Zdp~fl4yd$SmMx=nM&?1gjX9K@XC7sOtPk@+2w6}fbUL?MJIk+WEnH-7WH}16CRf-{+U-h&0-*c`^y&!XxjBS`G8CF01qECn| zZCC3OHmA3lC|DP7K4p@`-{bsLi$Ia3F3R_1={#3QdzlqO@!mvKhYuJJfq~LpgU(Wh z7=-_4qyLD@m>6k{e()tmLN@o}2+Ep^600MgKBWyBCa#M1eZcX)_eY(7EMMs>6ccAG zqO_-_&Oa*sQUEJdCl$T&bN6s|iE3a{KyO+7+oSIffCv-?MgdAlWTR;p6`;3L{~$rs z3|>le$3WHT6*!jUwF{RGmJ{QGZjx0JyKKbiL#1muiO~>zn(HQHn=YmQAy0G)d>})T z00$$q`KnjcOT^5eMV%RQ#R+ncP6G%IUk_fZkhXLk7Sgz(KDuLqR}(dAk`BfPex6hekoiz+^>Z zyNgQ1BA|mz&PYPaWCcS^#>_5C0eYhu7WASs7!)|kNhe)?o>c^M#Cv_w$Qx`j#lDrL zRaKbd%~KN^8t|sN=4SN&4XjZRCC4j5 zR;nr`zNaqWYd)<2H^DfUUAn|!i4{^DD+D_`tpPV7r)_a0h^O2fXn67;n^d2A(8A

    U}qF?A=6!z-M^pIp^wzigL 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

    Dv;2cG!} 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 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc b/nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc deleted file mode 100644 index 3b7717c1337..00000000000 --- a/nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc +++ /dev/null @@ -1,240 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 -;M6 T0 -;G96 M3 S200 -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X-77.0061 Y61.1565 - Z1 - G1 Z-1 F500 - F290 -G6.2 X-77.0061 Y61.1565 R1 K0 P4 Q1 - X-76.8871 Y61.1867 R0.988856343009953 K0 - X-76.7757 Y61.2381 R0.988856343009953 K0 - X-76.6754 Y61.3089 R1 K0 - X-76.5065 Y61.4282 R1 K1 - X-75.8309 Y62.0966 R1 K2 - X-75.9397 Y63.8298 R1 K3 - X-73.8533 Y63.8628 R1 K4 - X-73.9476 Y62.3576 R1 K5 - X-74.1208 Y61.6599 R1 K6 - X-74.1262 Y61.6383 R0.999627216068866 K7 - X-74.1323 Y61.6168 R0.999627216068866 K8 - X-74.1391 Y61.5956 R1 K9 - X-74.1715 Y61.4944 R1 K10 - X-74.2545 Y61.2779 R1 K11 - X-74.4250 Y60.9549 R1 K12 - X-74.6505 Y60.6316 R1 K13 - X-74.9242 Y60.3267 R1 K14 - X-75.2447 Y60.0465 R1 K15 - X-75.6096 Y59.7976 R1 K16 - X-76.0157 Y59.5863 R1 K17 - X-76.4590 Y59.4183 R1 K18 - X-76.9347 Y59.2992 R1 K19 - X-77.4371 Y59.2339 R1 K20 - X-77.9602 Y59.2265 R1 K21 - X-78.4971 Y59.2807 R1 K22 - X-79.0404 Y59.3992 R1 K23 - X-79.5826 Y59.5837 R1 K24 - X-80.1156 Y59.8353 R1 K25 - X-80.6311 Y60.1538 R1 K26 - X-81.1209 Y60.5384 R1 K27 - X-81.5768 Y60.9868 R1 K28 - X-81.9906 Y61.4961 R1 K29 - X-82.3546 Y62.0622 R1 K30 - X-82.6614 Y62.6802 R1 K31 - X-82.9041 Y63.3439 R1 K32 - X-83.0764 Y64.0467 R1 K33 - X-83.1730 Y64.7809 R1 K34 - X-83.1890 Y65.5382 R1 K35 - X-83.1208 Y66.3096 R1 K36 - X-82.9658 Y67.0856 R1 K37 - X-82.7222 Y67.8564 R1 K38 - X-82.3895 Y68.6117 R1 K39 - X-81.9685 Y69.3413 R1 K40 - X-81.4611 Y70.0348 R1 K41 - X-80.8701 Y70.6820 R1 K42 - X-80.2001 Y71.2730 R1 K43 - X-79.4563 Y71.7982 R1 K44 - X-78.6455 Y72.2487 R1 K45 - X-77.7752 Y72.6160 R1 K46 - X-76.8541 Y72.8927 R1 K47 - X-75.8918 Y73.0722 R1 K48 - X-74.8988 Y73.1488 R1 K49 - X-73.8862 Y73.1182 R1 K50 - X-72.8657 Y72.9772 R1 K51 - X-71.8495 Y72.7238 R1 K52 - X-70.8500 Y72.3574 R1 K53 - X-69.8800 Y71.8789 R1 K54 - X-68.9520 Y71.2906 R1 K55 - X-68.0785 Y70.5961 R1 K56 - X-67.2717 Y69.8004 R1 K57 - X-66.5432 Y68.9102 R1 K58 - X-65.9042 Y67.9332 R1 K59 - X-65.3647 Y66.8784 R1 K60 - X-64.9341 Y65.7564 R1 K61 - X-64.6207 Y64.5783 R1 K62 - X-64.4314 Y63.3567 R1 K63 - X-64.3718 Y62.1046 R1 K64 - X-64.4463 Y60.8362 R1 K65 - X-64.6576 Y59.5657 R1 K66 - X-65.0069 Y58.3083 R1 K67 - X-65.4936 Y57.0788 R1 K68 - X-66.1157 Y55.8925 R1 K69 - X-66.8693 Y54.7643 R1 K70 - X-67.7490 Y53.7088 R1 K71 - X-68.7477 Y52.7403 R1 K72 - X-69.8567 Y51.8720 R1 K73 - X-71.0658 Y51.1166 R1 K74 - X-72.3634 Y50.4856 R1 K75 - X-73.7366 Y49.9891 R1 K76 - X-75.1713 Y49.6362 R1 K77 - X-76.6522 Y49.4343 R1 K78 - X-78.1635 Y49.3892 R1 K79 - X-79.6883 Y49.5049 R1 K80 - X-81.2094 Y49.7838 R1 K81 - X-82.7092 Y50.2264 R1 K82 - X-84.1699 Y50.8310 R1 K83 - X-85.5740 Y51.5944 R1 K84 - X-86.9042 Y52.5112 R1 K85 - X-88.1436 Y53.5742 R1 K86 - X-89.2760 Y54.7742 R1 K87 - X-90.2864 Y56.1006 R1 K88 - X-91.1606 Y57.5406 R1 K89 - X-91.8858 Y59.0802 R1 K90 - X-92.4508 Y60.7038 R1 K91 - X-92.8458 Y62.3947 R1 K92 - X-93.0631 Y64.1349 R1 K93 - X-93.0965 Y65.9055 R1 K94 - X-92.9423 Y67.6871 R1 K95 - X-92.5984 Y69.4596 R1 K96 - X-92.0651 Y71.2027 R1 K97 - X-91.3449 Y72.8960 R1 K98 - X-90.4425 Y74.5195 R1 K99 - X-89.3646 Y76.0533 R1 K100 - X-88.1203 Y77.4786 R1 K101 - X-86.7206 Y78.7771 R1 K102 - X-85.1784 Y79.9318 R1 K103 - X-83.5088 Y80.9272 R1 K104 - X-81.7282 Y81.7492 R1 K105 - X-79.8548 Y82.3854 R1 K106 - X-77.9081 Y82.8253 R1 K107 - X-75.9088 Y83.0606 R1 K108 - X-73.8786 Y83.0852 R1 K109 - X-71.8398 Y82.8950 R1 K110 - X-69.8152 Y82.4888 R1 K111 - X-67.8278 Y81.8673 R1 K112 - X-66.2464 Y81.1836 R1 K113 - X-65.3369 Y80.7042 R1 K114 - X-65.0529 Y80.5456 R1 K115 - X-64.5655 Y80.2207 R0.804737854124364 K116 - X-64.4506 Y79.6463 R0.804737854124364 K117 - X-64.7756 Y79.1589 R1 K118 - X-65.1005 Y78.6715 R0.804737854124364 K119 - X-65.6749 Y78.5566 R0.804737854124364 K120 - X-66.1623 Y78.8815 R1 K121 - X-66.4086 Y79.0163 R1 K122 - X-67.2207 Y79.4365 R1 K123 - X-68.6384 Y80.0382 R1 K124 - X-70.4315 Y80.5853 R1 K125 - X-72.2551 Y80.9379 R1 K126 - X-74.0884 Y81.0954 R1 K127 - X-75.9109 Y81.0598 R1 K128 - X-77.7024 Y80.8351 R1 K129 - X-79.4435 Y80.4272 R1 K130 - X-81.1157 Y79.8444 R1 K131 - X-82.7018 Y79.0963 R1 K132 - X-84.1857 Y78.1946 R1 K133 - X-85.5527 Y77.1523 R1 K134 - X-86.7900 Y75.9839 R1 K135 - X-87.8862 Y74.7049 R1 K136 - X-88.8320 Y73.3319 R1 K137 - X-89.6198 Y71.8821 R1 K138 - X-90.2439 Y70.3735 R1 K139 - X-90.7009 Y68.8240 R1 K140 - X-90.9890 Y67.2521 R1 K141 - X-91.1087 Y65.6758 R1 K142 - X-91.0620 Y64.1129 R1 K143 - X-90.8533 Y62.5808 R1 K144 - X-90.4884 Y61.0959 R1 K145 - X-89.9747 Y59.6740 R1 K146 - X-89.3215 Y58.3298 R1 K147 - X-88.5393 Y57.0766 R1 K148 - X-87.6398 Y55.9266 R1 K149 - X-86.6359 Y54.8904 R1 K150 - X-85.5415 Y53.9770 R1 K151 - X-84.3710 Y53.1939 R1 K152 - X-83.1396 Y52.5469 R1 K153 - X-81.8627 Y52.0400 R1 K154 - X-80.5560 Y51.6757 R1 K155 - X-79.2351 Y51.4544 R1 K156 - X-77.9154 Y51.3753 R1 K157 - X-76.6119 Y51.4355 R1 K158 - X-75.3392 Y51.6308 R1 K159 - X-74.1110 Y51.9554 R1 K160 - X-72.9401 Y52.4023 R1 K161 - X-71.8387 Y52.9631 R1 K162 - X-70.8173 Y53.6281 R1 K163 - X-69.8857 Y54.3870 R1 K164 - X-69.0521 Y55.2283 R1 K165 - X-68.3233 Y56.1401 R1 K166 - X-67.7049 Y57.1097 R1 K167 - X-67.2008 Y58.1242 R1 K168 - X-66.8135 Y59.1705 R1 K169 - X-66.5442 Y60.2354 R1 K170 - X-66.3923 Y61.3060 R1 K171 - X-66.3562 Y62.3696 R1 K172 - X-66.4325 Y63.4138 R1 K173 - X-66.6170 Y64.4271 R1 K174 - X-66.9039 Y65.3983 R1 K175 - X-67.2866 Y66.3175 R1 K176 - X-67.7573 Y67.1753 R1 K177 - X-68.3075 Y67.9637 R1 K178 - X-68.9280 Y68.6756 R1 K179 - X-69.6088 Y69.3050 R1 K180 - X-70.3397 Y69.8473 R1 K181 - X-71.1101 Y70.2991 R1 K182 - X-71.9091 Y70.6582 R1 K183 - X-72.7261 Y70.9236 R1 K184 - X-73.5503 Y71.0955 R1 K185 - X-74.3713 Y71.1755 R1 K186 - X-75.1792 Y71.1661 R1 K187 - X-75.9644 Y71.0710 R1 K188 - X-76.7181 Y70.8949 R1 K189 - X-77.4320 Y70.6431 R1 K190 - X-78.0989 Y70.3222 R1 K191 - X-78.7122 Y69.9390 R1 K192 - X-79.2666 Y69.5013 R1 K193 - X-79.7573 Y69.0171 R1 K194 - X-80.1810 Y68.4947 R1 K195 - X-80.5351 Y67.9427 R1 K196 - X-80.8183 Y67.3699 R1 K197 - X-81.0302 Y66.7848 R1 K198 - X-81.1714 Y66.1960 R1 K199 - X-81.2436 Y65.6115 R1 K200 - X-81.2493 Y65.0393 R1 K201 - X-81.1918 Y64.4867 R1 K202 - X-81.0754 Y63.9603 R1 K203 - X-80.9049 Y63.4662 R1 K204 - X-80.6858 Y63.0099 R1 K205 - X-80.4240 Y62.5959 R1 K206 - X-80.1261 Y62.2279 R1 K207 - X-79.7985 Y61.9087 R1 K208 - X-79.4482 Y61.6404 R1 K209 - X-79.0822 Y61.4241 R1 K210 - X-78.7073 Y61.2599 R1 K211 - X-78.3304 Y61.1472 R1 K212 - X-77.9578 Y61.0846 R1 K213 - X-77.5958 Y61.0698 R1 K214 - X-77.2786 Y61.0973 R1 K215 - X-77.0877 Y61.1358 R1 K216 - X-77.0080 Y61.1560 R1 K217 -G6.2 K218 -G6.2 K218 -G6.2 K218 -G6.2 K218 -G1 X-77.0080 Y61.1560 Z1 -G0 X-77.0080 Y61.1560 Z10 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc b/nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc deleted file mode 100644 index 3b6bf5a7073..00000000000 --- a/nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc +++ /dev/null @@ -1,240 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X-77.0061 Y61.1565 - Z1 - G1 Z-1 F100 -F100 -G6.2 X-77.0061 Y61.1565 R1 K0 P4 Q2 - X-76.8871 Y61.1867 R0.988856343009953 K0 - X-76.7757 Y61.2381 R0.988856343009953 K0 - X-76.6754 Y61.3089 R1 K0 - X-76.5065 Y61.4282 R1 K1 - X-75.8309 Y62.0966 R1 K2 - X-75.9397 Y63.8298 R1 K3 - X-73.8533 Y63.8628 R1 K4 - X-73.9476 Y62.3576 R1 K5 - X-74.1208 Y61.6599 R1 K6 - X-74.1262 Y61.6383 R0.999627216068866 K7 - X-74.1323 Y61.6168 R0.999627216068866 K8 - X-74.1391 Y61.5956 R1 K9 - X-74.1715 Y61.4944 R1 K10 - X-74.2545 Y61.2779 R1 K11 - X-74.4250 Y60.9549 R1 K12 - X-74.6505 Y60.6316 R1 K13 - X-74.9242 Y60.3267 R1 K14 - X-75.2447 Y60.0465 R1 K15 - X-75.6096 Y59.7976 R1 K16 - X-76.0157 Y59.5863 R1 K17 - X-76.4590 Y59.4183 R1 K18 - X-76.9347 Y59.2992 R1 K19 - X-77.4371 Y59.2339 R1 K20 - X-77.9602 Y59.2265 R1 K21 - X-78.4971 Y59.2807 R1 K22 - X-79.0404 Y59.3992 R1 K23 - X-79.5826 Y59.5837 R1 K24 - X-80.1156 Y59.8353 R1 K25 - X-80.6311 Y60.1538 R1 K26 - X-81.1209 Y60.5384 R1 K27 - X-81.5768 Y60.9868 R1 K28 - X-81.9906 Y61.4961 R1 K29 - X-82.3546 Y62.0622 R1 K30 - X-82.6614 Y62.6802 R1 K31 - X-82.9041 Y63.3439 R1 K32 - X-83.0764 Y64.0467 R1 K33 - X-83.1730 Y64.7809 R1 K34 - X-83.1890 Y65.5382 R1 K35 - X-83.1208 Y66.3096 R1 K36 - X-82.9658 Y67.0856 R1 K37 - X-82.7222 Y67.8564 R1 K38 - X-82.3895 Y68.6117 R1 K39 - X-81.9685 Y69.3413 R1 K40 - X-81.4611 Y70.0348 R1 K41 - X-80.8701 Y70.6820 R1 K42 - X-80.2001 Y71.2730 R1 K43 - X-79.4563 Y71.7982 R1 K44 - X-78.6455 Y72.2487 R1 K45 - X-77.7752 Y72.6160 R1 K46 - X-76.8541 Y72.8927 R1 K47 - X-75.8918 Y73.0722 R1 K48 - X-74.8988 Y73.1488 R1 K49 - X-73.8862 Y73.1182 R1 K50 - X-72.8657 Y72.9772 R1 K51 - X-71.8495 Y72.7238 R1 K52 - X-70.8500 Y72.3574 R1 K53 - X-69.8800 Y71.8789 R1 K54 - X-68.9520 Y71.2906 R1 K55 - X-68.0785 Y70.5961 R1 K56 - X-67.2717 Y69.8004 R1 K57 - X-66.5432 Y68.9102 R1 K58 - X-65.9042 Y67.9332 R1 K59 - X-65.3647 Y66.8784 R1 K60 - X-64.9341 Y65.7564 R1 K61 - X-64.6207 Y64.5783 R1 K62 - X-64.4314 Y63.3567 R1 K63 - X-64.3718 Y62.1046 R1 K64 - X-64.4463 Y60.8362 R1 K65 - X-64.6576 Y59.5657 R1 K66 - X-65.0069 Y58.3083 R1 K67 - X-65.4936 Y57.0788 R1 K68 - X-66.1157 Y55.8925 R1 K69 - X-66.8693 Y54.7643 R1 K70 - X-67.7490 Y53.7088 R1 K71 - X-68.7477 Y52.7403 R1 K72 - X-69.8567 Y51.8720 R1 K73 - X-71.0658 Y51.1166 R1 K74 - X-72.3634 Y50.4856 R1 K75 - X-73.7366 Y49.9891 R1 K76 - X-75.1713 Y49.6362 R1 K77 - X-76.6522 Y49.4343 R1 K78 - X-78.1635 Y49.3892 R1 K79 - X-79.6883 Y49.5049 R1 K80 - X-81.2094 Y49.7838 R1 K81 - X-82.7092 Y50.2264 R1 K82 - X-84.1699 Y50.8310 R1 K83 - X-85.5740 Y51.5944 R1 K84 - X-86.9042 Y52.5112 R1 K85 - X-88.1436 Y53.5742 R1 K86 - X-89.2760 Y54.7742 R1 K87 - X-90.2864 Y56.1006 R1 K88 - X-91.1606 Y57.5406 R1 K89 - X-91.8858 Y59.0802 R1 K90 - X-92.4508 Y60.7038 R1 K91 - X-92.8458 Y62.3947 R1 K92 - X-93.0631 Y64.1349 R1 K93 - X-93.0965 Y65.9055 R1 K94 - X-92.9423 Y67.6871 R1 K95 - X-92.5984 Y69.4596 R1 K96 - X-92.0651 Y71.2027 R1 K97 - X-91.3449 Y72.8960 R1 K98 - X-90.4425 Y74.5195 R1 K99 - X-89.3646 Y76.0533 R1 K100 - X-88.1203 Y77.4786 R1 K101 - X-86.7206 Y78.7771 R1 K102 - X-85.1784 Y79.9318 R1 K103 - X-83.5088 Y80.9272 R1 K104 - X-81.7282 Y81.7492 R1 K105 - X-79.8548 Y82.3854 R1 K106 - X-77.9081 Y82.8253 R1 K107 - X-75.9088 Y83.0606 R1 K108 - X-73.8786 Y83.0852 R1 K109 - X-71.8398 Y82.8950 R1 K110 - X-69.8152 Y82.4888 R1 K111 - X-67.8278 Y81.8673 R1 K112 - X-66.2464 Y81.1836 R1 K113 - X-65.3369 Y80.7042 R1 K114 - X-65.0529 Y80.5456 R1 K115 - X-64.5655 Y80.2207 R0.804737854124364 K116 - X-64.4506 Y79.6463 R0.804737854124364 K117 - X-64.7756 Y79.1589 R1 K118 - X-65.1005 Y78.6715 R0.804737854124364 K119 - X-65.6749 Y78.5566 R0.804737854124364 K120 - X-66.1623 Y78.8815 R1 K121 - X-66.4086 Y79.0163 R1 K122 - X-67.2207 Y79.4365 R1 K123 - X-68.6384 Y80.0382 R1 K124 - X-70.4315 Y80.5853 R1 K125 - X-72.2551 Y80.9379 R1 K126 - X-74.0884 Y81.0954 R1 K127 - X-75.9109 Y81.0598 R1 K128 - X-77.7024 Y80.8351 R1 K129 - X-79.4435 Y80.4272 R1 K130 - X-81.1157 Y79.8444 R1 K131 - X-82.7018 Y79.0963 R1 K132 - X-84.1857 Y78.1946 R1 K133 - X-85.5527 Y77.1523 R1 K134 - X-86.7900 Y75.9839 R1 K135 - X-87.8862 Y74.7049 R1 K136 - X-88.8320 Y73.3319 R1 K137 - X-89.6198 Y71.8821 R1 K138 - X-90.2439 Y70.3735 R1 K139 - X-90.7009 Y68.8240 R1 K140 - X-90.9890 Y67.2521 R1 K141 - X-91.1087 Y65.6758 R1 K142 - X-91.0620 Y64.1129 R1 K143 - X-90.8533 Y62.5808 R1 K144 - X-90.4884 Y61.0959 R1 K145 - X-89.9747 Y59.6740 R1 K146 - X-89.3215 Y58.3298 R1 K147 - X-88.5393 Y57.0766 R1 K148 - X-87.6398 Y55.9266 R1 K149 - X-86.6359 Y54.8904 R1 K150 - X-85.5415 Y53.9770 R1 K151 - X-84.3710 Y53.1939 R1 K152 - X-83.1396 Y52.5469 R1 K153 - X-81.8627 Y52.0400 R1 K154 - X-80.5560 Y51.6757 R1 K155 - X-79.2351 Y51.4544 R1 K156 - X-77.9154 Y51.3753 R1 K157 - X-76.6119 Y51.4355 R1 K158 - X-75.3392 Y51.6308 R1 K159 - X-74.1110 Y51.9554 R1 K160 - X-72.9401 Y52.4023 R1 K161 - X-71.8387 Y52.9631 R1 K162 - X-70.8173 Y53.6281 R1 K163 - X-69.8857 Y54.3870 R1 K164 - X-69.0521 Y55.2283 R1 K165 - X-68.3233 Y56.1401 R1 K166 - X-67.7049 Y57.1097 R1 K167 - X-67.2008 Y58.1242 R1 K168 - X-66.8135 Y59.1705 R1 K169 - X-66.5442 Y60.2354 R1 K170 - X-66.3923 Y61.3060 R1 K171 - X-66.3562 Y62.3696 R1 K172 - X-66.4325 Y63.4138 R1 K173 - X-66.6170 Y64.4271 R1 K174 - X-66.9039 Y65.3983 R1 K175 - X-67.2866 Y66.3175 R1 K176 - X-67.7573 Y67.1753 R1 K177 - X-68.3075 Y67.9637 R1 K178 - X-68.9280 Y68.6756 R1 K179 - X-69.6088 Y69.3050 R1 K180 - X-70.3397 Y69.8473 R1 K181 - X-71.1101 Y70.2991 R1 K182 - X-71.9091 Y70.6582 R1 K183 - X-72.7261 Y70.9236 R1 K184 - X-73.5503 Y71.0955 R1 K185 - X-74.3713 Y71.1755 R1 K186 - X-75.1792 Y71.1661 R1 K187 - X-75.9644 Y71.0710 R1 K188 - X-76.7181 Y70.8949 R1 K189 - X-77.4320 Y70.6431 R1 K190 - X-78.0989 Y70.3222 R1 K191 - X-78.7122 Y69.9390 R1 K192 - X-79.2666 Y69.5013 R1 K193 - X-79.7573 Y69.0171 R1 K194 - X-80.1810 Y68.4947 R1 K195 - X-80.5351 Y67.9427 R1 K196 - X-80.8183 Y67.3699 R1 K197 - X-81.0302 Y66.7848 R1 K198 - X-81.1714 Y66.1960 R1 K199 - X-81.2436 Y65.6115 R1 K200 - X-81.2493 Y65.0393 R1 K201 - X-81.1918 Y64.4867 R1 K202 - X-81.0754 Y63.9603 R1 K203 - X-80.9049 Y63.4662 R1 K204 - X-80.6858 Y63.0099 R1 K205 - X-80.4240 Y62.5959 R1 K206 - X-80.1261 Y62.2279 R1 K207 - X-79.7985 Y61.9087 R1 K208 - X-79.4482 Y61.6404 R1 K209 - X-79.0822 Y61.4241 R1 K210 - X-78.7073 Y61.2599 R1 K211 - X-78.3304 Y61.1472 R1 K212 - X-77.9578 Y61.0846 R1 K213 - X-77.5958 Y61.0698 R1 K214 - X-77.2786 Y61.0973 R1 K215 - X-77.0877 Y61.1358 R1 K216 - X-77.0080 Y61.1560 R1 K217 -G6.2 K218 -G6.2 K218 -G6.2 K218 -G6.2 K218 -G1 X-77.0080 Y61.1560 Z1 -G0 X-77.0080 Y61.1560 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc b/nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc deleted file mode 100644 index d85391ff310..00000000000 --- a/nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc +++ /dev/null @@ -1,240 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X-77.0061 Y61.1565 - Z1 - G1 Z-1 F100 -F100 -G6.2 X-77.0061 Y61.1565 R1 K0 P4 Q3 - X-76.8871 Y61.1867 R0.988856343009953 K0 - X-76.7757 Y61.2381 R0.988856343009953 K0 - X-76.6754 Y61.3089 R1 K0 - X-76.5065 Y61.4282 R1 K1 - X-75.8309 Y62.0966 R1 K2 - X-75.9397 Y63.8298 R1 K3 - X-73.8533 Y63.8628 R1 K4 - X-73.9476 Y62.3576 R1 K5 - X-74.1208 Y61.6599 R1 K6 - X-74.1262 Y61.6383 R0.999627216068866 K7 - X-74.1323 Y61.6168 R0.999627216068866 K8 - X-74.1391 Y61.5956 R1 K9 - X-74.1715 Y61.4944 R1 K10 - X-74.2545 Y61.2779 R1 K11 - X-74.4250 Y60.9549 R1 K12 - X-74.6505 Y60.6316 R1 K13 - X-74.9242 Y60.3267 R1 K14 - X-75.2447 Y60.0465 R1 K15 - X-75.6096 Y59.7976 R1 K16 - X-76.0157 Y59.5863 R1 K17 - X-76.4590 Y59.4183 R1 K18 - X-76.9347 Y59.2992 R1 K19 - X-77.4371 Y59.2339 R1 K20 - X-77.9602 Y59.2265 R1 K21 - X-78.4971 Y59.2807 R1 K22 - X-79.0404 Y59.3992 R1 K23 - X-79.5826 Y59.5837 R1 K24 - X-80.1156 Y59.8353 R1 K25 - X-80.6311 Y60.1538 R1 K26 - X-81.1209 Y60.5384 R1 K27 - X-81.5768 Y60.9868 R1 K28 - X-81.9906 Y61.4961 R1 K29 - X-82.3546 Y62.0622 R1 K30 - X-82.6614 Y62.6802 R1 K31 - X-82.9041 Y63.3439 R1 K32 - X-83.0764 Y64.0467 R1 K33 - X-83.1730 Y64.7809 R1 K34 - X-83.1890 Y65.5382 R1 K35 - X-83.1208 Y66.3096 R1 K36 - X-82.9658 Y67.0856 R1 K37 - X-82.7222 Y67.8564 R1 K38 - X-82.3895 Y68.6117 R1 K39 - X-81.9685 Y69.3413 R1 K40 - X-81.4611 Y70.0348 R1 K41 - X-80.8701 Y70.6820 R1 K42 - X-80.2001 Y71.2730 R1 K43 - X-79.4563 Y71.7982 R1 K44 - X-78.6455 Y72.2487 R1 K45 - X-77.7752 Y72.6160 R1 K46 - X-76.8541 Y72.8927 R1 K47 - X-75.8918 Y73.0722 R1 K48 - X-74.8988 Y73.1488 R1 K49 - X-73.8862 Y73.1182 R1 K50 - X-72.8657 Y72.9772 R1 K51 - X-71.8495 Y72.7238 R1 K52 - X-70.8500 Y72.3574 R1 K53 - X-69.8800 Y71.8789 R1 K54 - X-68.9520 Y71.2906 R1 K55 - X-68.0785 Y70.5961 R1 K56 - X-67.2717 Y69.8004 R1 K57 - X-66.5432 Y68.9102 R1 K58 - X-65.9042 Y67.9332 R1 K59 - X-65.3647 Y66.8784 R1 K60 - X-64.9341 Y65.7564 R1 K61 - X-64.6207 Y64.5783 R1 K62 - X-64.4314 Y63.3567 R1 K63 - X-64.3718 Y62.1046 R1 K64 - X-64.4463 Y60.8362 R1 K65 - X-64.6576 Y59.5657 R1 K66 - X-65.0069 Y58.3083 R1 K67 - X-65.4936 Y57.0788 R1 K68 - X-66.1157 Y55.8925 R1 K69 - X-66.8693 Y54.7643 R1 K70 - X-67.7490 Y53.7088 R1 K71 - X-68.7477 Y52.7403 R1 K72 - X-69.8567 Y51.8720 R1 K73 - X-71.0658 Y51.1166 R1 K74 - X-72.3634 Y50.4856 R1 K75 - X-73.7366 Y49.9891 R1 K76 - X-75.1713 Y49.6362 R1 K77 - X-76.6522 Y49.4343 R1 K78 - X-78.1635 Y49.3892 R1 K79 - X-79.6883 Y49.5049 R1 K80 - X-81.2094 Y49.7838 R1 K81 - X-82.7092 Y50.2264 R1 K82 - X-84.1699 Y50.8310 R1 K83 - X-85.5740 Y51.5944 R1 K84 - X-86.9042 Y52.5112 R1 K85 - X-88.1436 Y53.5742 R1 K86 - X-89.2760 Y54.7742 R1 K87 - X-90.2864 Y56.1006 R1 K88 - X-91.1606 Y57.5406 R1 K89 - X-91.8858 Y59.0802 R1 K90 - X-92.4508 Y60.7038 R1 K91 - X-92.8458 Y62.3947 R1 K92 - X-93.0631 Y64.1349 R1 K93 - X-93.0965 Y65.9055 R1 K94 - X-92.9423 Y67.6871 R1 K95 - X-92.5984 Y69.4596 R1 K96 - X-92.0651 Y71.2027 R1 K97 - X-91.3449 Y72.8960 R1 K98 - X-90.4425 Y74.5195 R1 K99 - X-89.3646 Y76.0533 R1 K100 - X-88.1203 Y77.4786 R1 K101 - X-86.7206 Y78.7771 R1 K102 - X-85.1784 Y79.9318 R1 K103 - X-83.5088 Y80.9272 R1 K104 - X-81.7282 Y81.7492 R1 K105 - X-79.8548 Y82.3854 R1 K106 - X-77.9081 Y82.8253 R1 K107 - X-75.9088 Y83.0606 R1 K108 - X-73.8786 Y83.0852 R1 K109 - X-71.8398 Y82.8950 R1 K110 - X-69.8152 Y82.4888 R1 K111 - X-67.8278 Y81.8673 R1 K112 - X-66.2464 Y81.1836 R1 K113 - X-65.3369 Y80.7042 R1 K114 - X-65.0529 Y80.5456 R1 K115 - X-64.5655 Y80.2207 R0.804737854124364 K116 - X-64.4506 Y79.6463 R0.804737854124364 K117 - X-64.7756 Y79.1589 R1 K118 - X-65.1005 Y78.6715 R0.804737854124364 K119 - X-65.6749 Y78.5566 R0.804737854124364 K120 - X-66.1623 Y78.8815 R1 K121 - X-66.4086 Y79.0163 R1 K122 - X-67.2207 Y79.4365 R1 K123 - X-68.6384 Y80.0382 R1 K124 - X-70.4315 Y80.5853 R1 K125 - X-72.2551 Y80.9379 R1 K126 - X-74.0884 Y81.0954 R1 K127 - X-75.9109 Y81.0598 R1 K128 - X-77.7024 Y80.8351 R1 K129 - X-79.4435 Y80.4272 R1 K130 - X-81.1157 Y79.8444 R1 K131 - X-82.7018 Y79.0963 R1 K132 - X-84.1857 Y78.1946 R1 K133 - X-85.5527 Y77.1523 R1 K134 - X-86.7900 Y75.9839 R1 K135 - X-87.8862 Y74.7049 R1 K136 - X-88.8320 Y73.3319 R1 K137 - X-89.6198 Y71.8821 R1 K138 - X-90.2439 Y70.3735 R1 K139 - X-90.7009 Y68.8240 R1 K140 - X-90.9890 Y67.2521 R1 K141 - X-91.1087 Y65.6758 R1 K142 - X-91.0620 Y64.1129 R1 K143 - X-90.8533 Y62.5808 R1 K144 - X-90.4884 Y61.0959 R1 K145 - X-89.9747 Y59.6740 R1 K146 - X-89.3215 Y58.3298 R1 K147 - X-88.5393 Y57.0766 R1 K148 - X-87.6398 Y55.9266 R1 K149 - X-86.6359 Y54.8904 R1 K150 - X-85.5415 Y53.9770 R1 K151 - X-84.3710 Y53.1939 R1 K152 - X-83.1396 Y52.5469 R1 K153 - X-81.8627 Y52.0400 R1 K154 - X-80.5560 Y51.6757 R1 K155 - X-79.2351 Y51.4544 R1 K156 - X-77.9154 Y51.3753 R1 K157 - X-76.6119 Y51.4355 R1 K158 - X-75.3392 Y51.6308 R1 K159 - X-74.1110 Y51.9554 R1 K160 - X-72.9401 Y52.4023 R1 K161 - X-71.8387 Y52.9631 R1 K162 - X-70.8173 Y53.6281 R1 K163 - X-69.8857 Y54.3870 R1 K164 - X-69.0521 Y55.2283 R1 K165 - X-68.3233 Y56.1401 R1 K166 - X-67.7049 Y57.1097 R1 K167 - X-67.2008 Y58.1242 R1 K168 - X-66.8135 Y59.1705 R1 K169 - X-66.5442 Y60.2354 R1 K170 - X-66.3923 Y61.3060 R1 K171 - X-66.3562 Y62.3696 R1 K172 - X-66.4325 Y63.4138 R1 K173 - X-66.6170 Y64.4271 R1 K174 - X-66.9039 Y65.3983 R1 K175 - X-67.2866 Y66.3175 R1 K176 - X-67.7573 Y67.1753 R1 K177 - X-68.3075 Y67.9637 R1 K178 - X-68.9280 Y68.6756 R1 K179 - X-69.6088 Y69.3050 R1 K180 - X-70.3397 Y69.8473 R1 K181 - X-71.1101 Y70.2991 R1 K182 - X-71.9091 Y70.6582 R1 K183 - X-72.7261 Y70.9236 R1 K184 - X-73.5503 Y71.0955 R1 K185 - X-74.3713 Y71.1755 R1 K186 - X-75.1792 Y71.1661 R1 K187 - X-75.9644 Y71.0710 R1 K188 - X-76.7181 Y70.8949 R1 K189 - X-77.4320 Y70.6431 R1 K190 - X-78.0989 Y70.3222 R1 K191 - X-78.7122 Y69.9390 R1 K192 - X-79.2666 Y69.5013 R1 K193 - X-79.7573 Y69.0171 R1 K194 - X-80.1810 Y68.4947 R1 K195 - X-80.5351 Y67.9427 R1 K196 - X-80.8183 Y67.3699 R1 K197 - X-81.0302 Y66.7848 R1 K198 - X-81.1714 Y66.1960 R1 K199 - X-81.2436 Y65.6115 R1 K200 - X-81.2493 Y65.0393 R1 K201 - X-81.1918 Y64.4867 R1 K202 - X-81.0754 Y63.9603 R1 K203 - X-80.9049 Y63.4662 R1 K204 - X-80.6858 Y63.0099 R1 K205 - X-80.4240 Y62.5959 R1 K206 - X-80.1261 Y62.2279 R1 K207 - X-79.7985 Y61.9087 R1 K208 - X-79.4482 Y61.6404 R1 K209 - X-79.0822 Y61.4241 R1 K210 - X-78.7073 Y61.2599 R1 K211 - X-78.3304 Y61.1472 R1 K212 - X-77.9578 Y61.0846 R1 K213 - X-77.5958 Y61.0698 R1 K214 - X-77.2786 Y61.0973 R1 K215 - X-77.0877 Y61.1358 R1 K216 - X-77.0080 Y61.1560 R1 K217 -G6.2 K218 -G6.2 K218 -G6.2 K218 -G6.2 K218 -G1 X-77.0080 Y61.1560 Z1 -G0 X-77.0080 Y61.1560 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Stella #1=1.jpg b/nc_files/nurbs/G6/Curva_Stella #1=1.jpg deleted file mode 100644 index 284a062ef6fc7bc38faa69c953c7937ca149c679..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134904 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 YZ - -(Curva acquisita Nr=1) - -#10=290 ; feedrate - -G21 G40 G54 G90 G94 -G0 X10 - -Y0 Z0 - -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -G0 Y63.562 Z106.120 -G0 X1 -G1 X-1 F100 - -G19 (Plane YZ) -F#10 -G6.2 Y63.562 Z106.120 R1 K0 P3 Q2 - Y64.124 Z106.120 R1 K0 - Y65.998 Z103.621 R1 K0 - Y80.988 Z83.634 R1 K1 - Y110.968 Z83.634 R1 K2 - Y86.984 Z59.650 R1 K3 - Y92.980 Z35.666 R1 K4 - Y63.000 Z53.654 R1 K5 - Y33.020 Z35.666 R1 K6 - Y39.016 Z59.650 R1 K7 - Y15.032 Z83.634 R1 K8 - Y45.012 Z83.634 R1 K9 - Y60.002 Z103.621 R1 K10 - Y61.876 Z106.120 R1 K11 - Y63.000 Z106.120 R1 K12 - Y63.562 Z106.120 R1 K13 -G6.2 K14 -G6.2 K14 -G6.2 K14 -G1 Y63.562 Z106.120 X1 -G0 Y63.562 Z106.120 X10 - -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc b/nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc deleted file mode 100644 index a54a72df11b..00000000000 --- a/nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc +++ /dev/null @@ -1,46 +0,0 @@ - -; XY -> ZX - -(Curva acquisita Nr=1) - -#10=290 ; feedrate - -G21 G40 G54 G90 G94 -G0 Y10 - - - - -Z0X0 - -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -G0 Z63.562 X106.120 -G0 Y1 -G1 Y-1 F100 - -G18 (Plane ZX) - -F#10 -G6.2 Z63.562 X106.120 R1 K0 P3 Q2 - Z64.124 X106.120 R1 K0 - Z65.998 X103.621 R1 K0 - Z80.988 X83.634 R1 K1 - Z110.968 X83.634 R1 K2 - Z86.984 X59.650 R1 K3 - Z92.980 X35.666 R1 K4 - Z63.000 X53.654 R1 K5 - Z33.020 X35.666 R1 K6 - Z39.016 X59.650 R1 K7 - Z15.032 X83.634 R1 K8 - Z45.012 X83.634 R1 K9 - Z60.002 X103.621 R1 K10 - Z61.876 X106.120 R1 K11 - Z63.000 X106.120 R1 K12 - Z63.562 X106.120 R1 K13 -G6.2 K14 -G6.2 K14 -G6.2 K14 -G1 Z63.562 X106.120 Y1 -G0 Z63.562 X106.120 Y10 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Stella #1=3.ngc b/nc_files/nurbs/G6/Curva_Stella #1=3.ngc deleted file mode 100644 index 4a1b5560135..00000000000 --- a/nc_files/nurbs/G6/Curva_Stella #1=3.ngc +++ /dev/null @@ -1,34 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X63.562 Y106.120 - Z1 - G1 Z-1 F100 -F100 -G6.2 X63.562 Y106.120 R1 K0 P3 Q3 - X64.124 Y106.120 R1 K0 - X65.998 Y103.621 R1 K0 - X80.988 Y83.634 R1 K1 - X110.968 Y83.634 R1 K2 - X86.984 Y59.650 R1 K3 - X92.980 Y35.666 R1 K4 - X63.000 Y53.654 R1 K5 - X33.020 Y35.666 R1 K6 - X39.016 Y59.650 R1 K7 - X15.032 Y83.634 R1 K8 - X45.012 Y83.634 R1 K9 - X60.002 Y103.621 R1 K10 - X61.876 Y106.120 R1 K11 - X63.000 Y106.120 R1 K12 - X63.562 Y106.120 R1 K13 -G6.2 K14 -G6.2 K14 -G6.2 K14 -G1 X63.562 Y106.120 Z1 -G0 X63.562 Y106.120 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb b/nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb deleted file mode 100644 index d3b78dd5bde..00000000000 --- a/nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb +++ /dev/null @@ -1,325 +0,0 @@ -Option Explicit - - ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' - ' Description - ' Divides a curve based on the linear distance between points. - ' - Sub CREA_CODE - 'La curva chiusa spezzata; dopodich suddivisa in segmenti, per ogni segmento sono generate le istruzioni NC in formato NURBS - - 'Dim strPoint, strText, dblWeight, Gcode, dblDegree, dblknot_vector - Dim cc - 'Rhino.MessageBox ("Dalla barra di comando inserire 1 per realizzare l'interpolazione NURBS tramite movimento circolare (con incrementi du=cost), 2 per realizzare l'interpolazione NURBS tramite movimento circolare (con incrementi ds=cost), 3 per realizzare l'interpolazione NURBS tramite movimento lineare (con incrementi ds=cost) oppure non inserire nulla (premere invio) per lasciare la scelta al CN in funzione del valore assunto dall'incremento ds") - cc=Rhino.GetInteger("Selezionare la modalit di interpolazione NURBS inserendo 1,2,3 oppure premere direttamente invio") - - Dim F, S - Dim PP - 'Rhino.MessageBox ("Dalla barra di comando inserire il valore dell'avanzamento [mm/min] con il quale eseguire l'interpolazione NURBS") - F=Rhino.GetString("Inserire l'avanzamento [mm/min] con il quale eseguire l'interpolazione NURBS") - S=Rhino.GetString("Inserire la velocit di taglio in [m/min] ") - PP=Rhino.GetString("Inserire la profondit di passata [mm]") - - - Dim G - Dim III - - 'Chiede all'utente di specificare un nome di file - Dim strFilter, strFileName - strFilter = " File NGC (*.ngc)|*.ngc|All Files (*.*)|*.*||" - strFileName = Rhino.SaveFileName("Save Code NC ", strFilter) - If IsNull(strFileName) Then Exit Sub - - ' Ottieni i file system dall'oggetto - Dim objFSO, objStream - Set objFSO = CreateObject("Scripting.FileSystemObject") - - 'Aprire un file di testo da scrivere - On Error Resume Next - Set objStream = objFSO.CreateTextFile(strFileName, True) - If Err Then - MsgBox Err.Description - Exit Sub - End If - - - objStream.WriteLine("G21 G40 G54 G90 G94") - objStream.WriteLine("G0 Z50") - objStream.WriteLine("X0Y0") - objStream.WriteLine("M6 T0") - objStream.WriteLine("G96 M3 S"+ CStr (S)) - objStream.WriteLine("G0 Z50 (movimento per avvicinarsi alla posizione di taglio)") - - Dim var - var=1 - For III =1 To 100 Step 1 'Il numero massimo di curve selezionabili fissato pari a 100 - - If(var=1)Then - G=1 - var=2 - Else - G=Rhino.GetInteger("Inserire 1 per acquisire una nuova curva, altrimenti 0 per chiudere il ciclo") - End If - - If (G=1) Then - objStream.WriteLine("(Curva acquisita N="+CStr (III)+")") - If(III>1) Then - - - End If - - - Const rhCurveObject = 4 - Dim sCurve, strObject, CRV - CRV= Rhino.GetObject("Selezionare la curva NURBS", rhCurveObject) - Rhino.Print ("Curva NURBS acquisita") - If IsNull(CRV) Then Exit Sub - - Dim arrDomain - - If Rhino.IsCurve(CRV) Then - arrDomain = Rhino.CurveDomain(CRV) - End If - - - 'Dim ij,pt - 'For ij=(arrDomain(1)-0.0001) To arrDomain(1) Step 0.0001 - ' pt = Rhino.EvaluateCurve(CRV, ij) 'PUNTO APPARTENENTE ALLA CRVA - ' Rhino.AddPoint pt - 'Next - - - Dim tt0, tt1 - - tt0 = (arrDomain(1)-0.0001) - tt1 = arrDomain(1) - sCurve= Rhino.TrimCurve(CRV, Array(tt1, tt0),vbFalse ) - strObject=sCurve - 'Rhino.DeleteObject (sCurva) - 'Rhino.DeleteObject (strObject) - - Rhino.EnableRedraw True - - ',vbFalse - - 'Ottieni i punti di controllo della curva - Dim arrPoints, intCount - arrPoints = Rhino.CurvePoints(strObject) - intCount = Rhino.CurvePointCount(strObject) - If Not IsArray(arrPoints) Then Exit Sub - - - - 'Ottieni i valori dei peso dei punti di controllo della curva - Dim arrWeights - arrWeights = Rhino.CurveWeights(strObject) 'IL VALORE 2.555 LO RESTITUISCE CON LA VIRGOLA 2,555 lo modifico manualmente - If Not IsArray(arrWeights) Then Exit Sub - - 'Ottieni il grado della curva - Dim intDegree, k, n, c, U - intDegree = Rhino.CurveDegree(strObject) - 'If Not IsInt(intDegree) Then Exit Sub - k=intDegree+1 'ordine NURBS - n=intCount-1 ' i punti di controllo vanno da {P0.....Pn} se fossero 7 n=6 - Dim knot_vector()'si crea un vettore grande (l'ideale n+k) - Dim ii, intRankK - c= (n+k) - - For ii=0 To c Step 1 ' esegue finch i<=n+k la dimensione del vettore dei nodi(m+1)= n+k+1; k grado n numero complessivo dei punti di controllo;i parte da 0 - If (ii < k) Then ' se i= k And ii <= n)Then ' Se In Knot considerato va da n knot=n-k+2 - End If - Next - - intRankK = c+1 ' +1 perch c' sempre il discorso il il numero dei punti di controllo intCount=n+1 - 'Rhino.MessageBox ("il grado della curva NURBS ="&" "&intDegree) - 'Rhino.MessageBox ("il numero dei punti di controllo ="&" "&intCount) - 'Rhino.MessageBox ("la dimensione del vettorei dei nodi ="&" "&intRankK) - - Dim intBB - intBB=(intCount)/k'se l'ordine della NURBS uguale a k il numero minimo dei punti pari a 4. - 'k=4 n=4 knot=(0000, 1111) - Dim sud - sud=0 - 'Suddivisione delle curva - 'Rhino.MessageBox ("La curva suddivisa in "&" "&intBB) - If(intBB >=2000000000)Then 'la suddivisione condotta solo se bb>=2 ovvero solo se la curva pu essere suddivisa in due o pi tratti - - sud=1 - objStream.WriteLine(" X... Y...") - objStream.WriteLine(" Z1") - objStream.WriteLine(" G1 Z"+ CStr (PP)+ " F"+ CStr (F)) - Dim nSegments, aPoints - nSegments = intBB - aPoints = Rhino.DivideCurve(strObject, nSegments) 'questo comando divide la curva in segmenti e ne memorizza gli estremi - If Not IsArray(aPoints) Then Exit Sub - Rhino.EnableRedraw False - - Dim i, t0, t1, CCurva - For i = 0 To UBound(aPoints) - 1 - t0 = Rhino.CurveClosestPoint(strObject, aPoints(i)) - t1 = Rhino.CurveClosestPoint(strObject, aPoints(i+1)) - CCurva= Rhino.TrimCurve(strObject, Array(t0, t1), vbFalse) - 'strObject=CCurva - '''''''''''''''''''''''''''''''' - 'Ottieni i punti di controllo della curva - arrPoints = Rhino.CurvePoints(CCurva) - intCount = Rhino.CurvePointCount(CCurva) - - If Not IsArray(arrPoints) Then Exit Sub - - 'Ottieni i valori dei peso dei punti di controllo della curva - arrWeights = Rhino.CurveWeights(CCurva) 'IL VALORE 2.555 LO RESTITUISCE CON LA VIRGOLA 2,555 lo modifico manualmente - If Not IsArray(arrWeights) Then Exit Sub - - 'Ottieni il grado della curva - intDegree = Rhino.CurveDegree(CCurva) - 'If Not IsInt(intDegree) Then Exit Sub - k=intDegree+1 'ordine NURBS - n=intCount-1 ' i punti di controllo vanno da {P0.....Pn} se fossero 7 n=6 - c= (n+k) - - For ii=0 To c Step 1 ' esegue finchè i<=n+k la dimensione del vettore dei nodi(m+1)= n+k+1; k grado n numero complessivo dei punti di controllo;i parte da 0 - If (ii < k) Then ' se i= k And ii <= n)Then ' Se In Knot considerato va da n knot=n-k+2 - End If - Next - - intRankK = c+1 ' +1 perch c' sempre il discorso il il numero dei punti di controllo intCount=n+1 - - - 'Rhino.MessageBox ("il grado della curva NURBS ="&" "&intDegree) - 'Rhino.MessageBox ("il numero dei punti di controllo ="&" "&intCount) - 'Rhino.MessageBox ("la dimensione del vettorei dei nodi ="&" "&intRankK) - - ' Write each point as text to the file (Scrivere nel file ogni punto come testo ) - ' Write each point as text to the file - - Dim strPoint, strText, dblWeight, Gcode, dblDegree, dblknot_vector, j, jj - Gcode=Split(Rhino.Pt2Str(arrPoints(0)),",") - 'objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)) - 'objStream.WriteLine(" Z1") - 'objStream.WriteLine(" G1 Z"+ CStr (PP)+ " F"+ CStr (F)) - - ' this changes are untestet, because I do not have Rhino jjf - ' objStream.WriteLine("#1="+ CStr (cc)) jjf - ' objStream.WriteLine("G6.2 X"+Gcode(0)+" Y"+Gcode(1)+ " R" +Replace(arrWeights(0),",",".")+" K"+CStr(knot_vector(0))+" P"+ CStr(k)+ " F"+ CStr (F)) jjf - objStream.WriteLine(" F"+ CStr (F)) - objStream.WriteLine("G6.2 X"+Gcode(0)+" Y"+Gcode(1)+ " R" +Replace(arrWeights(0),",",".")+" K"+CStr(knot_vector(0))+" P"+ CStr(k)+ " Q"+ CStr (cc)) - For j =1 To intCount-1 - Gcode=Split(Rhino.Pt2Str(arrPoints(j)),",") - objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)+ " R" + Replace(arrWeights(j),",",".")+" K"+CStr(knot_vector(j))) - Next - - For jj =intCount To (n+k) Step 1 - objStream.WriteLine( "G6.2 K" & knot_vector(jj))'NB se la curva non avesse gli ultimi tre nodi con molteplicit piena si avrebbe un errore, i nodi programmati non coincidono con quelli della curva. - Next - 'objStream.WriteLine("G1 X"+Gcode(0)+" Y"+Gcode(1)+ " Z1") - 'objStream.WriteLine("G0 X"+Gcode(0)+" Y"+Gcode(1)+ " Z50") - - - Rhino.DeleteObject (CCurva)'Questo comando cancella il segmento di curva generato - 'Rhino.DeleteObject (sCurva) - 'Rhino.DeleteObject (strObject) - Next - 'objStream.WriteLine("G1 X...Y...Z...(inserire posizione per all'ontanarsi dal profilo)") - 'objStream.WriteLine("G0 Z50") - 'objStream.WriteLine("M5") - 'objStream.WriteLine("M2") - - - - - Else 'se il numero dei punti di controllo fosse <2*ordine - - 'Ottieni i valori dei peso dei punti di controllo della curva - arrWeights = Rhino.CurveWeights(strObject) 'IL VALORE 2.555 LO RESTITUISCE CON LA VIRGOLA 2,555 lo modifico manualmente - If Not IsArray(arrWeights) Then Exit Sub - - 'Ottieni il grado della curva - intDegree = Rhino.CurveDegree(strObject) - 'If Not IsInt(intDegree) Then Exit Sub - k=intDegree+1 'ordine NURBS - n=intCount-1 ' i punti di controllo vanno da {P0.....Pn} se fossero 7 n=6 - c= (n+k) - - For ii=0 To c Step 1 ' esegue finchè i<=n+k la dimensione del vettore dei nodi(m+1)= n+k+1; k grado n numero complessivo dei punti di controllo;i parte da 0 - If (ii < k) Then ' se i= k And ii <= n)Then ' Se In Knot considerato va da n knot=n-k+2 - End If - Next - - intRankK = c+1 ' +1 perch c' sempre il discorso il il numero dei punti di controllo intCount=n+1 - - - 'Rhino.MessageBox ("il grado della curva NURBS ="&" "&intDegree) - 'Rhino.MessageBox ("il numero dei punti di controllo ="&" "&intCount) - 'Rhino.MessageBox ("la dimensione del vettorei dei nodi ="&" "&intRankK) - - ' Write each point as text to the file (Scrivere nel file ogni punto come testo ) - ' Write each point as text to the file - - 'Dim strPoint, strText, dblWeight, Gcode, dblDegree, dblknot_vector, j, jj - Gcode=Split(Rhino.Pt2Str(arrPoints(0)),",") - - - objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)) - objStream.WriteLine(" Z1") - objStream.WriteLine(" G1 Z"+ CStr (PP)+ " F"+ CStr (F)) - objStream.WriteLine("#1="+ CStr (cc)) - objStream.WriteLine("G6.2 X"+Gcode(0)+" Y"+Gcode(1)+ " R" +Replace(arrWeights(0),",",".")+" K"+CStr(knot_vector(0))+" P"+ CStr(k)+ " F"+ CStr (F)) - For j =1 To intCount-1 - Gcode=Split(Rhino.Pt2Str(arrPoints(j)),",") - objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)+ " R" + Replace(arrWeights(j),",",".")+" K"+CStr(knot_vector(j))) - Next - - For jj =intCount To (n+k) Step 1 - objStream.WriteLine( "K" & knot_vector(jj))'NB se la curva non avesse gli ultimi tre nodi con molteplicit piena si avrebbe un errore, i nodi programmati non coincidono con quelli della curva. - Next - objStream.WriteLine("G1 X"+Gcode(0)+" Y"+Gcode(1)+ " Z1") - objStream.WriteLine("G0 X"+Gcode(0)+" Y"+Gcode(1)+ " Z50") - End If - Rhino.DeleteObject (sCurva) - Rhino.DeleteObject (strObject) - - - Else - Rhino.DeleteObject (sCurva) - Rhino.DeleteObject (strObject) - If(sud >=1) Then - objStream.WriteLine("G1 X"+Gcode(0)+" Y"+Gcode(1)+ " Z1") - objStream.WriteLine("G0 X"+Gcode(0)+" Y"+Gcode(1)+ " Z50") - End If - objStream.WriteLine("M5") - objStream.WriteLine("M2") - - Exit Sub - End If - Rhino.EnableRedraw True - Next - - End Sub - - - - diff --git a/nc_files/nurbs/G6/Ruota_dentata #1=1.jpg b/nc_files/nurbs/G6/Ruota_dentata #1=1.jpg deleted file mode 100644 index dfaf2eac4aa65c1a2aa77b2313be53d45c4c2c5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145440 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

    wUB^np%yvz4;uAjQRnqV2NLfM7r75{p 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

    bQ+smWt?G4dh1fIk@!HC4M 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 N&b?KgtsnlL`8WJ6fg=C_ diff --git a/nc_files/nurbs/G6/UNIPA #1=1.ngc b/nc_files/nurbs/G6/UNIPA #1=1.ngc deleted file mode 100644 index 94a05adb1d4..00000000000 --- a/nc_files/nurbs/G6/UNIPA #1=1.ngc +++ /dev/null @@ -1,114 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 -;M6 T0 -;G96 M3 S200 -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X3.065 Y104.213 - Z1 - G1 Z-1 F100 - -#10=290 - -F#10 -G6.2 X3.065 Y104.213 R1 K0 P4 Q1 - X16.980 Y86.399 R1 K0 - X30.607 Y97.799 R1 K0 - X19.550 Y119.323 R1 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G1 X19.550 Y119.323 Z1 -G0 X19.550 Y119.323 Z10 -(Curva acquisita Nr=2) - X38.715 Y107.894 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X38.715 Y107.894 R1 K0 P4 Q1 - X23.247 Y146.298 R2.1019057984 K0 - X68.900 Y86.090 R1.00022038115968 K0 - X51.150 Y143.427 R1.00000003305717 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G1 X51.150 Y143.427 Z1 -G0 X51.150 Y143.427 Z10 -(Curva acquisita Nr=3) - X66.650 Y122.061 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X66.650 Y122.061 R1 K0 P2 Q1 - X68.846 Y145.629 R1 K0 -G6.2 K1 -G6.2 K1 -G1 X68.846 Y145.629 Z1 -G0 X68.846 Y145.629 Z10 -(Curva acquisita Nr=4) - X69.058 Y147.472 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X69.058 Y147.472 R1 K0 P4 Q1 - X68.249 Y147.666 R1 K0 - X67.055 Y151.734 R1 K0 - X71.905 Y150.569 R1 K0 - X69.866 Y147.278 R1 K1 - X69.058 Y147.472 R1 K2 -G6.2 K3 -G6.2 K3 -G6.2 K3 -G6.2 K3 -G1 X69.058 Y147.472 Z1 -G0 X69.058 Y147.472 Z10 -(Curva acquisita Nr=5) - X77.303 Y119.564 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X77.303 Y119.564 R1 K0 P4 Q1 - X78.649 Y138.868 R1 K0 - X90.323 Y142.861 R1 K0 - X101.109 Y136.873 R1 K0 - X96.668 Y123.685 R1 K1 - X85.882 Y129.673 R1 K2 - X79.431 Y131.556 R1 K3 -G6.2 K4 -G6.2 K4 -G6.2 K4 -G6.2 K4 -G1 X79.431 Y131.556 Z1 -G0 X79.431 Y131.556 Z10 -(Curva acquisita Nr=6) - X97.559 Y103.575 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X97.559 Y103.575 R1 K0 P4 Q1 - X124.571 Y135.020 R1 K0 - X135.431 Y124.434 R1 K0 - X124.703 Y87.512 R1 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G1 X124.703 Y87.512 Z1 -G0 X124.703 Y87.512 Z10 -(Curva acquisita Nr=7) - X103.139 Y113.276 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X103.139 Y113.276 R1 K0 P2 Q1 - X131.270 Y103.021 R1 K0 -G6.2 K1 -G6.2 K1 -G1 X131.270 Y103.021 Z1 -G0 X131.270 Y103.021 Z10 -M5 -M2 - diff --git a/nc_files/nurbs/G6/UNIPA #1=2.ngc b/nc_files/nurbs/G6/UNIPA #1=2.ngc deleted file mode 100644 index 8c52305a4d4..00000000000 --- a/nc_files/nurbs/G6/UNIPA #1=2.ngc +++ /dev/null @@ -1,113 +0,0 @@ - -#10=290 ; Velocity - -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X3.065 Y104.213 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X3.065 Y104.213 R1 K0 P4 Q2 - X16.980 Y86.399 R1 K0 - X30.607 Y97.799 R1 K0 - X19.550 Y119.323 R1 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G1 X19.550 Y119.323 Z1 -G0 X19.550 Y119.323 Z50 -(Curva acquisita Nr=2) - X38.715 Y107.894 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X38.715 Y107.894 R1 K0 P4 Q2 - X23.247 Y146.298 R2.1019057984 K0 - X68.900 Y86.090 R1.00022038115968 K0 - X51.150 Y143.427 R1.00000003305717 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G1 X51.150 Y143.427 Z1 -G0 X51.150 Y143.427 Z50 -(Curva acquisita Nr=3) - X66.650 Y122.061 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X66.650 Y122.061 R1 K0 P2 Q2 - X68.846 Y145.629 R1 K0 -G6.2 K1 -G6.2 K1 -G1 X68.846 Y145.629 Z1 -G0 X68.846 Y145.629 Z50 -(Curva acquisita Nr=4) - X69.058 Y147.472 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X69.058 Y147.472 R1 K0 P4 Q2 - X68.249 Y147.666 R1 K0 - X67.055 Y151.734 R1 K0 - X71.905 Y150.569 R1 K0 - X69.866 Y147.278 R1 K1 - X69.058 Y147.472 R1 K2 -G6.2 K3 -G6.2 K3 -G6.2 K3 -G6.2 K3 -G1 X69.058 Y147.472 Z1 -G0 X69.058 Y147.472 Z50 -(Curva acquisita Nr=5) - X77.303 Y119.564 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X77.303 Y119.564 R1 K0 P4 Q2 - X78.649 Y138.868 R1 K0 - X90.323 Y142.861 R1 K0 - X101.109 Y136.873 R1 K0 - X96.668 Y123.685 R1 K1 - X85.882 Y129.673 R1 K2 - X79.431 Y131.556 R1 K3 -G6.2 K4 -G6.2 K4 -G6.2 K4 -G6.2 K4 -G1 X79.431 Y131.556 Z1 -G0 X79.431 Y131.556 Z50 -(Curva acquisita Nr=6) - X97.559 Y103.575 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X97.559 Y103.575 R1 K0 P4 Q2 - X124.571 Y135.020 R1 K0 - X135.431 Y124.434 R1 K0 - X124.703 Y87.512 R1 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G1 X124.703 Y87.512 Z1 -G0 X124.703 Y87.512 Z50 -(Curva acquisita Nr=7) - X103.139 Y113.276 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X103.139 Y113.276 R1 K0 P2 Q2 - X131.270 Y103.021 R1 K0 -G6.2 K1 -G6.2 K1 -G1 X131.270 Y103.021 Z1 -G0 X131.270 Y103.021 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/UNIPA #1=3.ngc b/nc_files/nurbs/G6/UNIPA #1=3.ngc deleted file mode 100644 index 8ffddc3666a..00000000000 --- a/nc_files/nurbs/G6/UNIPA #1=3.ngc +++ /dev/null @@ -1,121 +0,0 @@ - -#10=290 ; Velocity - -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X3.065 Y104.213 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X3.065 Y104.213 R1 K0 P4 Q3 - X16.980 Y86.399 R1 K0 - X30.607 Y97.799 R1 K0 - X19.550 Y119.323 R1 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 - -G1 X19.550 Y119.323 Z1 -G0 X19.550 Y119.323 Z50 -(Curva acquisita Nr=2) - X38.715 Y107.894 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X38.715 Y107.894 R1 K0 P4 Q3 - X23.247 Y146.298 R2.1019057984 K0 - X68.900 Y86.090 R1.00022038115968 K0 - X51.150 Y143.427 R1.00000003305717 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 - -G1 X51.150 Y143.427 Z1 -G0 X51.150 Y143.427 Z50 -(Curva acquisita Nr=3) - X66.650 Y122.061 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X66.650 Y122.061 R1 K0 P2 Q3 - X68.846 Y145.629 R1 K0 -G6.2 K1 -G6.2 K1 - -G1 X68.846 Y145.629 Z1 -G0 X68.846 Y145.629 Z50 -(Curva acquisita Nr=4) - X69.058 Y147.472 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X69.058 Y147.472 R1 K0 P4 Q3 - X68.249 Y147.666 R1 K0 - X67.055 Y151.734 R1 K0 - X71.905 Y150.569 R1 K0 - X69.866 Y147.278 R1 K1 - X69.058 Y147.472 R1 K2 -G6.2 K3 -G6.2 K3 -G6.2 K3 -G6.2 K3 - -G1 X69.058 Y147.472 Z1 -G0 X69.058 Y147.472 Z50 -(Curva acquisita Nr=5) - X77.303 Y119.564 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X77.303 Y119.564 R1 K0 P4 Q3 - X78.649 Y138.868 R1 K0 - X90.323 Y142.861 R1 K0 - X101.109 Y136.873 R1 K0 - X96.668 Y123.685 R1 K1 - X85.882 Y129.673 R1 K2 - X79.431 Y131.556 R1 K3 -G6.2 K4 -G6.2 K4 -G6.2 K4 -G6.2 K4 - -G1 X79.431 Y131.556 Z1 -G0 X79.431 Y131.556 Z50 -(Curva acquisita Nr=6) - X97.559 Y103.575 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X97.559 Y103.575 R1 K0 P4 Q3 - X124.571 Y135.020 R1 K0 - X135.431 Y124.434 R1 K0 - X124.703 Y87.512 R1 K0 -G6.2 K1 -G6.2 K1 -G6.2 K1 -G6.2 K1 - -G1 X124.703 Y87.512 Z1 -G0 X124.703 Y87.512 Z50 -(Curva acquisita Nr=7) - X103.139 Y113.276 - Z1 - G1 Z-1 F100 -F#10 -G6.2 X103.139 Y113.276 R1 K0 P2 Q3 - X131.270 Y103.021 R1 K0 -G6.2 K1 -G6.2 K1 - -G1 X131.270 Y103.021 Z1 -G0 X131.270 Y103.021 Z50 -M5 -M2 - diff --git a/nc_files/nurbs/G6/homer #1=1.jpg b/nc_files/nurbs/G6/homer #1=1.jpg deleted file mode 100644 index 535fd05d17437d082e1bef719b318d9382e10618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161131 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%0DV$yjjF@2OwB`t3kir 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 YZ - - - -G21 G40 G54 G90 G94 -G0 X10 -Y0Z0 - -G0 X10 (movimento per avvicinarsi alla posizione di taglio) - -#10=290 - -(Curva acquisita Nr=16) -G0 Y-96.6264 Z62.3541 -G0 X1 -G1 X-1 F100 - -G19 (Plane YZ) - -F#10 -G6.2 Y-96.6264 Z62.3541 R1 K0 P4 Q1 - Y-97.4527 Z67.2421 R1 K0 - Y-99.0487 Z76.6838 R1 K0 - Y-91.3490 Z58.1042 R1 K0 - Y-91.3512 Z77.9016 R1 K1 - Y-88.6822 Z69.1298 R1 K2 - Y-87.3324 Z64.6938 R1 K3 -G6.2 K4 -G6.2 K4 -G6.2 K4 -G6.2 K4 - -G1 Y-87.3324 Z64.6938 X1 -G0 Y-87.3324 Z64.6938 X10 -M5 -M2 - diff --git a/nc_files/nurbs/G6/homer-16 #1=1-zx.ngc b/nc_files/nurbs/G6/homer-16 #1=1-zx.ngc deleted file mode 100644 index caf4c88006e..00000000000 --- a/nc_files/nurbs/G6/homer-16 #1=1-zx.ngc +++ /dev/null @@ -1,35 +0,0 @@ - - -G21 G40 G54 G90 G94 -G0 Y10 -Z0X0 - -G0 Y10 (movimento per avvicinarsi alla posizione di taglio) - -#10=290 - -(Curva acquisita Nr=16) -G0 Z-96.6264 X62.3541 -G0 Y1 -G1 Y-1 F100 - -G18 (Plane ZX) - -F#10 -G6.2 Z-96.6264 X62.3541 R1 K0 P4 Q1 - Z-97.4527 X67.2421 R1 K0 - Z-99.0487 X76.6838 R1 K0 - Z-91.3490 X58.1042 R1 K0 - Z-91.3512 X77.9016 R1 K1 - Z-88.6822 X69.1298 R1 K2 - Z-87.3324 X64.6938 R1 K3 -G6.2 K4 -G6.2 K4 -G6.2 K4 -G6.2 K4 - -G1 Z-87.3324 X64.6938 Y1 -G0 Z-87.3324 X64.6938 Y10 -M5 -M2 - diff --git a/nc_files/nurbs/G6/read.me b/nc_files/nurbs/G6/read.me deleted file mode 100644 index 72f072094d8..00000000000 --- a/nc_files/nurbs/G6/read.me +++ /dev/null @@ -1,39 +0,0 @@ - -The files are from La Valvo and Drago: -An Efficient NURBS Path Generator for a Open Source CNC - -A little bit modified by Joachim Franek for inclusion to LinuxCNC 2023-01-20 - -Curva_Chitarra #1=1.ngc -Curva_Chitarra #1=2.ngc -Curva_Chitarra #1=3.ngc -Curva_Delfino #1=1.ngc -Curva_Delfino #1=2.ngc -Curva_Delfino #1=3.ngc -Curva_Farfalla #1=1.ngc -Curva_Farfalla #1=2.ngc -Curva_Farfalla #1=3.ngc -Curva_Mazatrol #1=1.ngc -Curva_Mazatrol #1=2.ngc -Curva_Mazatrol #1=3.ngc -Curva_Scrool_F #1=1.ngc -Curva_Scrool_F #1=2.ngc -Curva_Scrool_F #1=3.ngc -Curva_Scrool_M #1=1.ngc -Curva_Scrool_M #1=2.ngc -Curva_Scrool_M #1=3.ngc -Curva_Stella #1=1.ngc -Curva_Stella #1=2.ngc -Curva_Stella #1=3.ngc -homer #1=1.ngc -homer #1=2.ngc -homer #1=3.ngc -Ruota_dentata #1=1.ngc -Ruota_dentata #1=2.ngc -Ruota_dentata #1=3.ngc -UNIPA #1=1.ngc -UNIPA #1=2.ngc -UNIPA #1=3.ngc - - - diff --git a/nc_files/offsets.ngc b/nc_files/offsets.ngc deleted file mode 100644 index f0913b260fa..00000000000 --- a/nc_files/offsets.ngc +++ /dev/null @@ -1,13 +0,0 @@ -#5599 = 1 - - -# = 0 -o10 do -;(debug,set tool #) -M61Q#G43 -(debug, z offset=#5403) -g4p1 -G49 -# = [[#] + 1] -o10 while [[#] LT 5] -m2 diff --git a/nc_files/orphans/README b/nc_files/orphans/README deleted file mode 100644 index 7daa805f24a..00000000000 --- a/nc_files/orphans/README +++ /dev/null @@ -1,3 +0,0 @@ -orphans/README - -abandoned or superseded .ngc files diff --git a/nc_files/plasmac/imperial_air_scribe.ngc b/nc_files/plasmac/imperial_air_scribe.ngc deleted file mode 100644 index 018de5e3171..00000000000 --- a/nc_files/plasmac/imperial_air_scribe.ngc +++ /dev/null @@ -1,94 +0,0 @@ -(imperial air-scribe) - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -M6 T1 (air scribe tool) -G43 (apply tool offsets) - -G0 X1.0918 Y0.7874 -M3 $1 S1 (start air-scribe) -G1 X1.0918 Y1.1811 -G1 X1.2493 Y1.1811 -G1 X1.3019 Y1.1155 -G1 X1.3019 Y1.0499 -G1 X1.2493 Y0.9827 -G1 X1.0918 Y0.9827 -M5 $1 (stop air-scribe) - -G0 X1.3753 Y1.1811 -M3 $1 S1 (start air-scribe) -G1 X1.3753 Y0.8530 -G1 X1.4278 Y0.7874 -M5 $1 (stop air-scribe) - -G0 X1.6588 Y0.8530 -M3 $1 S1 (start air-scribe) -G1 X1.6063 Y0.7874 -G1 X1.5538 Y0.7874 -G1 X1.5013 Y0.8530 -G1 X1.5013 Y0.9827 -G1 X1.5538 Y1.0499 -G1 X1.6063 Y1.0499 -G1 X1.6588 Y0.9827 -G1 X1.6588 Y0.8530 -G1 X1.7113 Y0.7874 -M5 $1 (stop air-scribe) - -G0 X1.7848 Y0.7874 -M3 $1 S1 (start air-scribe) -G1 X1.9422 Y0.7874 -G1 X1.9948 Y0.8530 -G1 X1.9422 Y0.9186 -G1 X1.8373 Y0.9186 -G1 X1.7848 Y0.9827 -G1 X1.8373 Y1.0499 -G1 X1.9948 Y1.0499 -M5 $1 (stop air-scribe) - -G0 X2.0682 Y0.7874 -M3 $1 S1 (start air-scribe) -G1 X2.0682 Y1.0499 -M5 $1 (stop air-scribe) - -G0 X2.0682 Y0.98270 -M3 $1 S1 (start air-scribe) -G1 X2.1207 Y1.0499 -G1 X2.1732 Y0.9449 -G1 X2.2257 Y1.0499 -G1 X2.2782 Y0.9827 -G1 X2.2782 Y0.7874 -M5 $1 (stop air-scribe) - -G0 X2.5092 Y0.8530 -M3 $1 S1 (start air-scribe) -G1 X2.4567 Y0.7874 -G1 X2.4042 Y0.7874 -G1 X2.3517 Y0.8530 -G1 X2.3517 Y0.9827 -G1 X2.4042 Y1.0499 -G1 X2.4567 Y1.0499 -G1 X2.5092 Y0.9827 -G1 X2.5092 Y0.8530 -G1 X2.5617 Y0.7874 -M5 $1 (stop air-scribe) - -G0 X2.8452 Y0.8530 -M3 $1 S1 (start air-scribe) -G1 X2.7926 Y0.7874 -G1 X2.6877 Y0.7874 -G1 X2.6352 Y0.8530 -G1 X2.6352 Y1.1155 -G1 X2.6877 Y1.1811 -G1 X2.7926 Y1.1811 -G1 X2.8452 Y1.1155 -M5 $1 (stop air-scribe) - -M6 T0 (torch tool) -G43 (apply tool offsets) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/imperial_circles.ngc b/nc_files/plasmac/imperial_circles.ngc deleted file mode 100644 index 5ded93196c2..00000000000 --- a/nc_files/plasmac/imperial_circles.ngc +++ /dev/null @@ -1,25 +0,0 @@ -(imperial circles) - -#1 = 2 (Scale) -#2 = 3 (Iterations) -#3 = 30 (Feed Rate) -#4 = 0.5 -#5 = [#1*#2*#4] - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -o100 repeat [#2] - G0 X[#5+-#4*#1] Y[#5+0] - M3 $0 S1 (start plasma torch) - G0 z0 - G2 I[#4*#1] - M5 $0 (stop plasma torch) - #4 = [#4+0.5] -o100 endrepeat - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/imperial_ihs_skip_thc_off.ngc b/nc_files/plasmac/imperial_ihs_skip_thc_off.ngc deleted file mode 100644 index 2d2dcd43b0c..00000000000 --- a/nc_files/plasmac/imperial_ihs_skip_thc_off.ngc +++ /dev/null @@ -1,30 +0,0 @@ -(imperial skip ihs with thc disabled) - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -G0 X1 Y1 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -G0 X1 Y2 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -G0 X1 Y3 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -G0 X1 Y4 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/imperial_ihs_skip_thc_on.ngc b/nc_files/plasmac/imperial_ihs_skip_thc_on.ngc deleted file mode 100644 index 40bcc94eeee..00000000000 --- a/nc_files/plasmac/imperial_ihs_skip_thc_on.ngc +++ /dev/null @@ -1,30 +0,0 @@ -(imperial skip ihs with thc enabled) - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -G0 X1 Y1 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -G0 Y2 -M3 $0 S1 (start plasma torch) -G1 X1 -M5 $0 (stop plasma torch) - -G0 Y3 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -G0 Y4 -M3 $0 S1 (start plasma torch) -G1 X1 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/imperial_line.ngc b/nc_files/plasmac/imperial_line.ngc deleted file mode 100644 index db7eecd84f7..00000000000 --- a/nc_files/plasmac/imperial_line.ngc +++ /dev/null @@ -1,15 +0,0 @@ -(imperial line) - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -G0 X0.5 Y0.5 -M3 $0 S1 (start plasma torch) -G1 X23.5 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/imperial_material_change.ngc b/nc_files/plasmac/imperial_material_change.ngc deleted file mode 100644 index f1e950a488e..00000000000 --- a/nc_files/plasmac/imperial_material_change.ngc +++ /dev/null @@ -1,41 +0,0 @@ -(imperial material change) - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -M190 P1 (material #1) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X1 Y1 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -M190 P2 (material #2) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y2 -M3 $0 S1 (start plasma torch) -G1 X1 -M5 $0 (stop plasma torch) - -M190 P3 (material #3) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X1 Y3 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -M190 P4 (material #4) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y4 -M3 $0 S1 (start plasma torch) -G1 X1 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M190 P-1 (default material) -M2 (end program) diff --git a/nc_files/plasmac/imperial_ramp_pierce.ngc b/nc_files/plasmac/imperial_ramp_pierce.ngc deleted file mode 100644 index 1556620cbeb..00000000000 --- a/nc_files/plasmac/imperial_ramp_pierce.ngc +++ /dev/null @@ -1,54 +0,0 @@ -; file name: ramp.ngc -; date and time: Wed Nov 08 2023 21:15:23 -; postprocessor: LinuxCNC PlasmaC.scpost rev: 0.5 -; -# = 25.4 - -;begin pre-amble - G20 (imperial units) - G64 P0.005 (path tolerance) - G40 (cutter compensation: off) - G90 (distance mode: absolute) - M52 P1 (enable adaptive feed) - M65 P2 (enable THC) - M65 P3 (enable torch) - M68 E3 Q0 (velocity 100%) -;end pre-amble - m159 p601 q2 (pierce type - ramp) - m159 p602 q50 (pierce motino delay as a percentage of total pierce time - 50%) - m159 p603 q[2.5 / #] (pierce end height) - m159 p604 q1 (cut height delay in seconds) - m159 p605 q[980 / #] (gouge speed in units per min) - m159 p606 q[5 / #] (Gouge distance in machine units) - m159 p607 q[245 / #] (Creep speed in unit per min) - m159 p608 q[3 / #] (Creep distance in machine units) - M67 E3 Q100 -; -;begin material setup - T0 M6 (select plasma tool) - G43 H0 (apply tool offsets) - (o=0,kw=0.07874, ph=0.15748, pd=1, ch=0.05905, fr=19.29133, th=1, cv=99, pe=0.3, jh=0, jd=0) - F#<_hal[plasmac.cut-feed-rate]> -;end material setup - G0 X0 Y0 - M3 $0 S1 (plasma start) - M67 E3 Q100 - G1 X0 Y[60 / #] - m159 p609 (reset to default pierce behaviour) - M5 $0 (plasma end) - ; - ;begin post-amble - G40 (cutter compensation: off) - G90 (distance mode: absolute) - M65 P2 (enable THC) - M65 P3 (enable torch) - M68 E3 Q0 (velocity 100%) - M5 $-1 (backup stop) - ;end post-amble - ; - ;begin statistics - ;Pierces = 1 - ; Cuts = 1, Length = 60.00mm - ;end statistics - ; - M30 (end program) diff --git a/nc_files/plasmac/imperial_squares.ngc b/nc_files/plasmac/imperial_squares.ngc deleted file mode 100644 index 96e5e59a183..00000000000 --- a/nc_files/plasmac/imperial_squares.ngc +++ /dev/null @@ -1,27 +0,0 @@ -(imperial squares) - -#1 = 2 (Scale) -#2 = 3 (Iterations) -#3 = 30 (Feed Rate) -#4 = 0.5 -#5 = [#1*#2*#4] - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -o100 repeat [#2] - G0 X[#5-#4*#1] Y[#5-#4*#1] - M3 $0 S1 (start plasma torch) - G1 Y[#5+#4*#1] - G1 X[#5+#4*#1] - G1 Y[#5-#4*#1] - G1 X[#5-#4*#1] - M5 $0 (stop plasma torch) - #4 = [#4+0.5] -o100 endrepeat - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/imperial_temporary_materials.ngc b/nc_files/plasmac/imperial_temporary_materials.ngc deleted file mode 100644 index effa65f10a7..00000000000 --- a/nc_files/plasmac/imperial_temporary_materials.ngc +++ /dev/null @@ -1,37 +0,0 @@ -(imperial temporary materials) - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -(o=0, na=Steel 0.10", ph=0.10, pd=0.0, ch=0.01, fr=100, kw=0.040) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X1 Y1 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -(o=0, na=Steel 0.11", ph=0.11, pd=0.1, ch=0.011, fr=101, kw=0.041) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y2 -M3 $0 S1 (start plasma torch) -G1 X1 -M5 $0 (stop plasma torch) - -(o=0, na=Steel 0.12", ph=0.2, pd=0.2, ch=0.012, fr=102, kw=0.042) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X1 Y3 -M3 $0 S1 (start plasma torch) -G1 X5 -M5 $0 (stop plasma torch) - -(o=0, na=Steel 0.13", ph=0.3, pd=0.3, ch=0.013, fr=103, kw=0.043) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y4 -M3 $0 S1 (start plasma torch) -G1 X1 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M190 P-1 (default material) -M2 (end program) \ No newline at end of file diff --git a/nc_files/plasmac/imperial_wrench.ngc b/nc_files/plasmac/imperial_wrench.ngc deleted file mode 100644 index 27cfe4c1da8..00000000000 --- a/nc_files/plasmac/imperial_wrench.ngc +++ /dev/null @@ -1,37 +0,0 @@ -(imperial wrench) - -# = 4 (holes and arcs with overburn) - -G20 (imperial units) -G64 P0.005 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -(the hole) -G0 X5.8952 Y1.0807 -M3 $0 S1 (start plasma torch) -G3 X5.8952 Y1.0807 I-0.0787 J0 -M5 $0 (stop plasma torch) - -(the wrench) -G0 X0.1937 Y1.5240 -M3 $0 S1 (start plasma torch) -G1 X0.1937 Y1.7208 -G2 X0.2323 Y1.8082 I0.1181 J-0.0000 -G2 X1.6956 Y1.6535 I0.6627 J-0.7298 -G3 X2.2783 Y1.3956 I0.5795 J0.5223 -G1 X5.8165 Y1.3169 -G2 X5.8165 Y0.8444 I0.0000 J-0.2362 -G1 X2.2783 Y0.7657 -G3 X1.6955 Y0.5078 I0.0000 J-0.7874 -G2 X0.2322 Y0.3532 I-0.800 J0.5692 -G2 X0.1937 Y0.4405 I0.0650 J0.0809 -G1 X0.1937 Y0.5393 -G1 X0.8629 Y0.5393 -G3 X0.8629 Y1.6220 I-0.3221 J0.5413 -G1 X0.1937 Y1.6220 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/m_files/M159 b/nc_files/plasmac/m_files/M159 deleted file mode 100755 index c628729ccaa..00000000000 --- a/nc_files/plasmac/m_files/M159 +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/python3 -''' -M159 - -Copyright (C) 2023 James Walker - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -''' - -import sys -import linuxcnc -from subprocess import run as RUN - -# P param. Code for function to be performed -# Q param, Value to be used by the function selected - - -def abort(msg): - try: - linuxcnc.command().error_msg(msg) - linuxcnc.command().abort() - exit() - except KeyboardInterrupt: - pass - - -action = int(float(sys.argv[1])) -value = float(sys.argv[2]) -if action == -1: - abort("M159 - Missing P parameter") -elif action not in [601, 602, 603, 604, 605, 606, 607, 608, 609]: - abort(f"M159 - Invalid parameter: P{action}") -elif action != 609 and value == -1: - abort(f"M159 P{action} - Missing Q parameter") - -# Example setting code snippet for sheetcam or similar. -# m159 p601 q2 -# m159 p602 q50 -# m159 p603 q2.5 -# m159 p604 q1 -# m159 p605 q980 -# m159 p606 q5 -# m159 p607 q245 -# m159 p608 q3 - -# Ensure all the params needed are there. Below params and "comment" taken from plasmac comp. -# pin in unsigned pierce_type = 0 "allows motion to progress during pierce. 0=No movement, 1=Wiggle, 2=Ramp"; -# pin in float pierce_motion_delay = 0 "delay starting motion during pierce delay period. This is a % of Pierce Delay. Only used when pierce-with-motion is True"; -# pin in float cut_height_delay = 0 "at the end of transition to end-pierce-height how long to pause before transition to cut height"; -# pin in float pierce_end_height = 0 "The height at end of piercing (in machine units). Can be different to Cut Height. Default 0 means not used. i.e. no change in height"; -# pin in float gouge_speed = 0 "Ramp starting speed for gouge. In machine units/min."; -# pin in float gouge_speed_distance = 0 "Distance gouge will run in machine units. Gouge plus creep distance should not be longer than any lead in"; -# pin in float creep_speed = 0 "Ramp creep or intermediate speed. Comes after gouge and is before cut speed. In machine units/min."; -# pin in float creep_speed_distance = 0 "Distance creep will run in machine units. Gouge plus creep distance should not be longer than any lead in"; - -# Explanation of the function codes passed to P -# 601 = Pierce Type (0=Normal, 1-Wiggle, 2=Ramp) -# 602 = Pierce Motion Delay (Delay in Z motion to Pierce End Height expressed as a % of Pierce Delay) -# 603 = Pierce End Height (Target pierce height at end of Pierce Delay. Normally lower than Pierce Height) -# 604 = Cut Height Delay (At the end of transition to Pierce End Height wait x secs before transition to Cut Height) - -# 605 = Gouge Speed (Speed in machine units/min) -# 606 = Gouge Distance (Distance of gouge to travel in machine units) -# 607 = Creep Speed (Speed in machine units. Creep takes effect after gouge has finished) -# 608 = Creep Distance (Distance of creep to travel in machine units) - -# 609 = Reset to standard behaviour. Pierce type = 0 - -# Act on P code found. Set the relevant plasmac pin to the supplied value in Q - -try: - if action == 601: - RUN(['halcmd', 'setp', 'plasmac.pierce-type', f'{int(value)}']) - elif action == 602: - RUN(['halcmd', 'setp', 'plasmac.pierce-motion-delay', f'{value}']) - elif action == 603: - RUN(['halcmd', 'setp', 'plasmac.pierce-end-height', f'{value}']) - elif action == 604: - RUN(['halcmd', 'setp', 'plasmac.cut-height-delay', f'{value}']) - elif action == 605: - RUN(['halcmd', 'setp', 'plasmac.gouge-speed', f'{value}']) - elif action == 606: - RUN(['halcmd', 'setp', 'plasmac.gouge-speed-distance', f'{value}']) - elif action == 607: - RUN(['halcmd', 'setp', 'plasmac.creep-speed', f'{value}']) - elif action == 608: - RUN(['halcmd', 'setp', 'plasmac.creep-speed-distance', f'{value}']) - elif action == 609: - RUN(['halcmd', 'setp', 'plasmac.pierce-type', '0']) - RUN(['halcmd', 'setp', 'plasmac.pierce-motion-delay', '0.0']) - RUN(['halcmd', 'setp', 'plasmac.pierce-end-height', '0.0']) - RUN(['halcmd', 'setp', 'plasmac.cut-height-delay', '0.0']) - RUN(['halcmd', 'setp', 'plasmac.gouge-speed', '0.0']) - RUN(['halcmd', 'setp', 'plasmac.gouge-speed-distance', '0.0']) - RUN(['halcmd', 'setp', 'plasmac.creep-speed', '0.0']) - RUN(['halcmd', 'setp', 'plasmac.creep-speed-distance', '0.0']) -except: - abort(f"M159 P{action} Q{value} - Error setting HAL pin") - -exit() diff --git a/nc_files/plasmac/m_files/M190 b/nc_files/plasmac/m_files/M190 deleted file mode 100755 index 9569c49aeda..00000000000 --- a/nc_files/plasmac/m_files/M190 +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/python3 - -''' -M190 - -Copyright (C) 2019 - 2024 Phillip A Carter -Copyright (C) 2020 - 2024 Gregory D Carl - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -''' - -import sys -import time -from subprocess import run as RUN - -materialNum = int(float(sys.argv[1])) -timeout = 0.5 - - -def get_material(): - response = RUN(['halcmd', 'getp', 'qtplasmac.material_change_number'], capture_output=True) - return int(response.stdout.decode()) - - -def set_material(material): - RUN(['halcmd', 'setp', 'qtplasmac.material_change_number', f'{material}']) - - -def get_change(): - response = RUN(['halcmd', 'getp', 'qtplasmac.material_change'], capture_output=True) - return int(response.stdout.decode()) - - -def set_change(value): - RUN(['halcmd', 'setp', 'qtplasmac.material_change', f'{value}']) - - -def set_timeout(): - RUN(['halcmd', 'setp', 'qtplasmac.material_change_timeout', 1]) - - -try: - if materialNum != get_material(): - set_change(1) - set_material(materialNum) - else: - set_change(3) - start = time.time() - while get_change() == 1 or get_change() == 3: - if time.time() > start + timeout: - set_timeout() - break - set_change(0) -except: - pass -exit() diff --git a/nc_files/plasmac/metric_air_scribe.ngc b/nc_files/plasmac/metric_air_scribe.ngc deleted file mode 100644 index 1c05d69a62e..00000000000 --- a/nc_files/plasmac/metric_air_scribe.ngc +++ /dev/null @@ -1,94 +0,0 @@ -(metric air-scribe) - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -M6 T1 (air scribe tool) -G43 (apply tool offsets) - -G0 X27.733 Y20.000 -M3 $1 S1 (start air-scribe) -G1 X27.733 Y30.000 -G1 X31.733 Y30.000 -G1 X33.067 Y28.333 -G1 X33.067 Y26.667 -G1 X31.733 Y25.000 -G1 X27.733 Y25.000 -M5 $1 (stop air-scribe) - -G0 X34.933 Y30.000 -M3 $1 S1 (start air-scribe) -G1 X34.933 Y21.667 -G1 X36.267 Y20.000 -M5 $1 (stop air-scribe) - -G0 X42.133 Y21.667 -M3 $1 S1 (start air-scribe) -G1 X40.800 Y20.000 -G1 X39.467 Y20.000 -G1 X38.133 Y21.667 -G1 X38.133 Y25.000 -G1 X39.467 Y26.667 -G1 X40.800 Y26.667 -G1 X42.133 Y25.000 -G1 X42.133 Y21.667 -G1 X43.467 Y20.000 -M5 $1 (stop air-scribe) - -G0 X45.333 Y20.000 -M3 $1 S1 (start air-scribe) -G1 X49.333 Y20.000 -G1 X50.667 Y21.667 -G1 X49.333 Y23.333 -G1 X46.667 Y23.333 -G1 X45.333 Y25.000 -G1 X46.667 Y26.667 -G1 X50.667 Y26.667 -M5 $1 (stop air-scribe) - -G0 X52.533 Y20.000 -M3 $1 S1 (start air-scribe) -G1 X52.533 Y26.667 -M5 $1 (stop air-scribe) - -G0 X52.533 Y25.000 -M3 $1 S1 (start air-scribe) -G1 X53.867 Y26.667 -G1 X55.200 Y24.000 -G1 X56.533 Y26.667 -G1 X57.867 Y25.000 -G1 X57.867 Y20.000 -M5 $1 (stop air-scribe) - -G0 X63.733 Y21.667 -M3 $1 S1 (start air-scribe) -G1 X62.400 Y20.000 -G1 X61.067 Y20.000 -G1 X59.733 Y21.667 -G1 X59.733 Y25.000 -G1 X61.067 Y26.667 -G1 X62.400 Y26.667 -G1 X63.733 Y25.000 -G1 X63.733 Y21.667 -G1 X65.067 Y20.000 -M5 $1 (stop air-scribe) - -G0 X72.267 Y21.667 -M3 $1 S1 (start air-scribe) -G1 X70.933 Y20.000 -G1 X68.267 Y20.000 -G1 X66.933 Y21.667 -G1 X66.933 Y28.333 -G1 X68.267 Y30.000 -G1 X70.933 Y30.000 -G1 X72.267 Y28.333 -M5 $1 (stop air-scribe) - -M6 T0 (torch tool) -G43 (apply tool offsets) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/metric_circles.ngc b/nc_files/plasmac/metric_circles.ngc deleted file mode 100644 index f1a95f7764d..00000000000 --- a/nc_files/plasmac/metric_circles.ngc +++ /dev/null @@ -1,24 +0,0 @@ -(metric circles) - -#1 = 50 (Scale) -#2 = 3 (Iterations) -#3 = 762 (Feed Rate) -#4 = 0.5 -#5 = [#1*#2*#4] - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -o100 repeat [#2] - G0 X[#5+-#4*#1] Y[#5+0] - M3 $0 S1 (start plasma torch) - G2 I[#4*#1] - M5 $0 (stop plasma torch) - #4 = [#4+0.5] -o100 endrepeat - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/metric_ihs_skip_thc_off.ngc b/nc_files/plasmac/metric_ihs_skip_thc_off.ngc deleted file mode 100644 index f550bab3511..00000000000 --- a/nc_files/plasmac/metric_ihs_skip_thc_off.ngc +++ /dev/null @@ -1,30 +0,0 @@ -(metric skip ihs with thc disabled) - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -G0 X25 Y25 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -G0 X25 Y50 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -G0 X25 Y75 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -G0 X25 Y100 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/metric_ihs_skip_thc_on.ngc b/nc_files/plasmac/metric_ihs_skip_thc_on.ngc deleted file mode 100644 index 07331db3ce5..00000000000 --- a/nc_files/plasmac/metric_ihs_skip_thc_on.ngc +++ /dev/null @@ -1,30 +0,0 @@ -(metric skip ihs with thc enabled) - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -G0 X25 Y25 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -G0 Y50 -M3 $0 S1 (start plasma torch) -G1 X25 -M5 $0 (stop plasma torch) - -G0 Y75 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -G0 Y100 -M3 $0 S1 (start plasma torch) -G1 X25 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/metric_line.ngc b/nc_files/plasmac/metric_line.ngc deleted file mode 100644 index 26c7f2885e1..00000000000 --- a/nc_files/plasmac/metric_line.ngc +++ /dev/null @@ -1,15 +0,0 @@ -(metric line) - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -G0 X10 Y10 -M3 $0 S1 (start plasma torch) -G1 X590 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/metric_material_change.ngc b/nc_files/plasmac/metric_material_change.ngc deleted file mode 100644 index 05d8dd94e8e..00000000000 --- a/nc_files/plasmac/metric_material_change.ngc +++ /dev/null @@ -1,41 +0,0 @@ -(metric material change) - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -M190 P1 (material #1) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X25 Y25 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -M190 P2 (material #2) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y50 -M3 $0 S1 (start plasma torch) -G1 X25 -M5 $0 (stop plasma torch) - -M190 P3 (material #3) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X25 Y75 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -M190 P4 (material #4) -M66 P3 L3 Q1 (wait for material ready) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y100 -M3 $0 S1 (start plasma torch) -G1 X25 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M190 P-1 (default material) -M2 (end program) diff --git a/nc_files/plasmac/metric_pipe.ngc b/nc_files/plasmac/metric_pipe.ngc deleted file mode 100644 index d04b03b05b7..00000000000 --- a/nc_files/plasmac/metric_pipe.ngc +++ /dev/null @@ -1,940 +0,0 @@ -N0010 (Filename: metric_pipe.ngc) -N0020 (Post processor: PlasmaRotary PlasmaC.scpost) -N0030 (Date: 26/06/2023) -N0040 G21 (Units: Metric) -N0050 #=1 -N0060 G90 G40 -N0070 G00 Z58.2843 -N0080 (Part: untitled) -N0090 (Operation: Outside Offset, 17_, T4: Plasma, 1.5 mm kerf) -N0100 (o=0, pd=0.5) -N0110 G00 X14.7352 Y3.922 Z50.0 A270.0 -N0120 G38.2 Z15.00 F500.0 -N0130 G92 Z[25.0 - #<_hal[plasmac.float-switch-travel]>] -N0140 G00 Z28.0 -N0150 M03 $0 S1 -N0160 G01 Z26.5 F100.0 -N0170 G03 X18.7657 Y5.98 I0.9862 J3.0442 F2000.0 -N0180 G01 X21.7803 Y14.0015 A270.0 -N0190 X24.7737 Y18.6269 F1607.3831 -N0200 X24.8985 Y18.2268 Z28.1283 A265.1218 F36128.0795 -N0210 X25.0232 Y17.0917 Z29.0361 A262.1772 F23009.3659 -N0220 X25.1479 Y15.9114 Z29.8843 A259.2325 -N0230 X25.2726 Y14.6891 Z30.6709 A256.2879 -N0240 X25.3974 Y13.428 Z31.3935 A253.3432 -N0250 X25.5221 Y12.1315 Z32.0505 A250.3986 -N0260 X25.7831 Y9.8855 Z33.0005 A245.457 F21888.6158 -N0270 X26.0441 Y7.566 Z33.7535 A240.5155 -N0280 X26.3051 Y5.1903 Z34.304 A235.574 -N0290 X26.5661 Y2.776 Z34.6477 A230.6324 -N0300 X26.8272 Y0.341 Z34.7822 A225.6909 -N0310 X27.0882 Y-2.0964 Z34.7065 A220.7493 -N0320 X27.3492 Y-4.5183 Z34.421 A215.8078 -N0330 X27.6102 Y-6.9066 Z33.9281 A210.8662 -N0340 X27.8712 Y-9.2436 Z33.2312 A205.9247 -N0350 X28.1322 Y-11.5118 Z32.3356 A200.9832 -N0360 X28.3932 Y-13.6945 Z31.2479 A196.0416 -N0370 X28.6542 Y-15.7754 Z29.9763 A191.1001 -N0380 X28.9153 Y-17.739 Z28.5302 A186.1585 -N0390 X29.1763 Y-19.5707 Z26.9203 A181.217 -N0400 X29.4373 Y-19.675 Z26.5 A180.0 F5228.7843 -N0410 X29.9593 Y-18.8125 F2000.0 -N0420 X35.054 Y-11.9223 -N0430 X40.7627 Y-5.5315 -N0440 X47.0367 Y0.3053 -N0450 X53.8225 Y5.5383 -N0460 X61.0622 Y10.1228 -N0470 X68.694 Y14.0198 -N0480 X76.6528 Y17.196 -N0490 X84.8707 Y19.6243 -N0500 X88.2335 Y19.9563 F1971.6651 -N0510 X88.9541 Y18.2063 Z28.1456 A175.0674 F15067.3921 -N0520 X89.6747 Y17.5831 Z28.6548 A173.4373 F5324.8879 -N0530 X90.3953 Y16.9458 Z29.146 A171.8071 -N0540 X91.1159 Y16.2947 Z29.6189 A170.1769 -N0550 X91.8365 Y15.6304 Z30.0731 A168.5468 -N0560 X92.5571 Y14.9534 Z30.5082 A166.9166 -N0570 X93.2777 Y14.2644 Z30.9239 A165.2864 -N0580 X94.9825 Y13.3991 Z31.4091 A163.2767 F3286.1612 -N0590 X96.6874 Y12.5173 Z31.8637 A161.267 -N0600 X98.3922 Y11.6201 Z32.2871 A159.2572 -N0610 X100.097 Y10.7086 Z32.6787 A157.2475 -N0620 X101.8019 Y9.784 Z33.0382 A155.2377 -N0630 X103.5156 Y9.6919 Z33.0719 A155.0391 F2016.5309 -N0640 X105.2294 Y9.5998 Z33.1053 A154.8405 -N0650 X106.9431 Y9.5075 Z33.1385 A154.6419 -N0660 X108.6569 Y9.4151 Z33.1713 A154.4433 -N0670 X110.3706 Y9.3226 Z33.2037 A154.2447 -N0680 X112.0787 Y10.0711 Z32.9305 A155.8589 F2895.8903 -N0690 X113.7867 Y10.8117 Z32.6363 A157.4732 -N0700 X115.4948 Y11.5436 Z32.3214 A159.0874 -N0710 X117.2028 Y12.2664 Z31.986 A160.7016 -N0720 X118.9108 Y12.9795 Z31.6303 A162.3158 -N0730 X120.5986 Y14.4527 Z30.813 A165.7291 F4859.0396 -N0740 X122.2864 Y15.8746 Z29.9093 A169.1424 -N0750 X123.9741 Y17.2402 Z28.9227 A172.5557 -N0760 X125.6619 Y18.5446 Z27.8565 A175.9689 -N0770 X127.3496 Y19.7832 Z26.7145 A179.3822 -N0780 X129.0027 Y19.6016 Z26.5 A180.0 F2085.352 -N0790 X135.615 Y17.7923 F2000.0 -N0800 X143.6364 Y14.7777 -N0810 X151.3455 Y11.0359 -N0820 X158.6764 Y6.5987 -N0830 X165.5667 Y1.504 -N0840 X171.9574 Y-4.2047 -N0850 X177.7942 Y-10.4787 -N0860 X183.0272 Y-17.2645 -N0870 X184.861 Y-18.7124 F1363.3361 -N0880 X185.0329 Y-18.2001 Z28.1507 A184.9488 F32642.4039 -N0890 X185.2049 Y-16.9983 Z29.1066 A188.0598 F21619.2742 -N0900 X185.3768 Y-15.7464 Z29.9958 A191.1708 -N0910 X185.5487 Y-14.448 Z30.8157 A194.2818 -N0920 X185.7206 Y-13.1071 Z31.564 A197.3929 -N0930 X185.8925 Y-11.7275 Z32.2384 A200.5039 -N0940 X186.0645 Y-10.3134 Z32.8369 A203.6149 -N0950 X186.2364 Y-8.8689 Z33.3578 A206.726 -N0960 X186.4083 Y-7.3982 Z33.7996 A209.837 -N0970 X186.5802 Y-5.9057 Z34.1608 A212.948 -N0980 X186.7521 Y-4.3959 Z34.4406 A216.059 -N0990 X186.9241 Y-2.873 Z34.638 A219.1701 -N1000 X187.096 Y-1.3417 Z34.7524 A222.2811 -N1010 X187.2679 Y0.1936 Z34.7836 A225.3921 -N1020 X187.4398 Y1.7283 Z34.7314 A228.5031 -N1030 X187.6117 Y3.2579 Z34.596 A231.6142 -N1040 X187.8282 Y5.6258 Z34.2191 A236.4727 F22779.6926 -N1050 X188.0447 Y7.9533 Z33.6431 A241.3313 -N1060 X188.2612 Y10.2236 Z32.8719 A246.1899 -N1070 X188.4777 Y12.4205 Z31.9112 A251.0484 -N1080 X188.6942 Y14.5281 Z30.768 A255.907 -N1090 X188.9107 Y16.5313 Z29.4503 A260.7655 -N1100 X189.1272 Y18.4157 Z27.9677 A265.6241 -N1110 X189.3437 Y19.9579 Z26.5 A270.0 F20464.0147 -N1120 X191.5087 Y15.718 F2000.0 -N1130 X194.6849 Y7.7592 -N1140 X197.1132 Y-0.4588 -N1150 X198.7729 Y-8.8657 -N1160 X199.6499 Y-17.3899 -N1170 X199.6802 Y-19.9606 F1714.3174 -N1180 X199.6807 Y-18.1665 Z28.179 A275.0378 F2000.0 -N1190 X199.6812 Y-18.1685 Z28.1773 A275.0325 F116.6015 -N1200 X199.6817 Y-17.7298 Z28.5376 A276.1825 F51114.6952 -N1210 X199.6822 Y-17.5077 Z28.7144 A276.7575 F25557.4166 -N1220 X199.6827 Y-17.2839 Z28.889 A277.3325 -N1230 X199.6832 Y-17.0583 Z29.0613 A277.9075 -N1240 X199.6837 Y-16.8311 Z29.2314 A278.4825 -N1250 X199.6842 Y-16.6021 Z29.3991 A279.0575 -N1260 X199.6847 Y-16.3715 Z29.5646 A279.6325 -N1270 X199.6853 Y-16.1392 Z29.7277 A280.2075 -N1280 X199.6858 Y-15.9053 Z29.8885 A280.7824 -N1290 X199.6863 Y-15.6698 Z30.0469 A281.3574 -N1300 X199.6868 Y-15.4327 Z30.203 A281.9324 -N1310 X199.6873 Y-15.194 Z30.3567 A282.5074 -N1320 X199.6878 Y-14.9539 Z30.508 A283.0824 -N1330 X199.6883 Y-14.7122 Z30.6568 A283.6574 -N1340 X199.6888 Y-14.469 Z30.8032 A284.2324 -N1350 X199.6893 Y-14.2244 Z30.9472 A284.8074 -N1360 X199.6898 Y-13.9783 Z31.0887 A285.3824 -N1370 X199.6903 Y-13.7309 Z31.2278 A285.9574 -N1380 X199.6908 Y-13.482 Z31.3643 A286.5324 -N1390 X199.6913 Y-13.2318 Z31.4984 A287.1073 -N1400 X199.6919 Y-12.9803 Z31.6299 A287.6823 -N1410 X199.6924 Y-12.7275 Z31.7589 A288.2573 -N1420 X199.6929 Y-12.4734 Z31.8853 A288.8323 -N1430 X199.6934 Y-12.218 Z32.0092 A289.4073 -N1440 X199.6939 Y-11.9614 Z32.1306 A289.9823 -N1450 X199.6944 Y-11.7036 Z32.2493 A290.5573 -N1460 X199.6949 Y-11.4446 Z32.3655 A291.1323 -N1470 X199.6954 Y-11.1844 Z32.479 A291.7073 -N1480 X199.6959 Y-10.9231 Z32.5899 A292.2823 -N1490 X199.6964 Y-10.6608 Z32.6982 A292.8573 -N1500 X199.6969 Y-10.3973 Z32.8039 A293.4322 -N1510 X199.6974 Y-10.1328 Z32.9069 A294.0072 -N1520 X199.6979 Y-9.8673 Z33.0073 A294.5822 -N1530 X199.6984 Y-9.6008 Z33.105 A295.1572 -N1540 X199.699 Y-9.3333 Z33.2 A295.7322 -N1550 X199.6995 Y-9.0649 Z33.2923 A296.3072 -N1560 X199.7 Y-8.7956 Z33.3819 A296.8822 -N1570 X199.7005 Y-8.5254 Z33.4688 A297.4572 -N1580 X199.701 Y-8.2543 Z33.553 A298.0322 -N1590 X199.7015 Y-7.9824 Z33.6345 A298.6072 -N1600 X199.702 Y-7.7097 Z33.7132 A299.1822 -N1610 X199.7025 Y-7.4362 Z33.7892 A299.7571 -N1620 X199.703 Y-7.162 Z33.8625 A300.3321 -N1630 X199.7035 Y-6.8871 Z33.933 A300.9071 -N1640 X199.704 Y-6.6114 Z34.0007 A301.4821 -N1650 X199.7045 Y-6.3351 Z34.0657 A302.0571 -N1660 X199.705 Y-6.0582 Z34.1279 A302.6321 -N1670 X199.7056 Y-5.7806 Z34.1873 A303.2071 -N1680 X199.7061 Y-5.5025 Z34.2439 A303.7821 -N1690 X199.7066 Y-5.2238 Z34.2977 A304.3571 -N1700 X199.7071 Y-4.9445 Z34.3487 A304.9321 -N1710 X199.7076 Y-4.6648 Z34.3969 A305.5071 -N1720 X199.7081 Y-4.3846 Z34.4424 A306.082 -N1730 X199.7086 Y-4.104 Z34.4849 A306.657 -N1740 X199.7091 Y-3.8229 Z34.5247 A307.232 -N1750 X199.7096 Y-3.5415 Z34.5617 A307.807 -N1760 X199.7101 Y-3.2597 Z34.5958 A308.382 -N1770 X199.7106 Y-2.9776 Z34.6271 A308.957 -N1780 X199.7111 Y-2.6952 Z34.6556 A309.532 -N1790 X199.7116 Y-2.4125 Z34.6812 A310.107 -N1800 X199.7122 Y-2.1296 Z34.704 A310.682 -N1810 X199.7127 Y-1.8464 Z34.7239 A311.257 -N1820 X199.7132 Y-1.5631 Z34.741 A311.832 -N1830 X199.7137 Y-1.2796 Z34.7553 A312.4069 -N1840 X199.7142 Y-0.996 Z34.7667 A312.9819 -N1850 X199.7147 Y-0.7123 Z34.7753 A313.5569 -N1860 X199.7152 Y-0.4285 Z34.781 A314.1319 -N1870 X199.7157 Y-0.1447 Z34.7839 A314.7069 -N1880 X199.7162 Y0.1392 A315.2819 -N1890 X199.7167 Y0.423 Z34.7811 A315.8569 -N1900 X199.7172 Y0.7068 Z34.7754 A316.4319 -N1910 X199.7177 Y0.9905 Z34.7669 A317.0069 -N1920 X199.7182 Y1.2741 Z34.7556 A317.5819 -N1930 X199.7187 Y1.5576 Z34.7414 A318.1569 -N1940 X199.7193 Y1.8409 Z34.7243 A318.7318 -N1950 X199.7198 Y2.1241 Z34.7044 A319.3068 -N1960 X199.7203 Y2.407 Z34.6817 A319.8818 -N1970 X199.7208 Y2.6897 Z34.6561 A320.4568 -N1980 X199.7213 Y2.9721 Z34.6277 A321.0318 -N1990 X199.7218 Y3.2543 Z34.5964 A321.6068 -N2000 X199.7223 Y3.536 Z34.5624 A322.1818 -N2010 X199.7228 Y3.8175 Z34.5255 A322.7568 -N2020 X199.7233 Y4.0985 Z34.4857 A323.3318 -N2030 X199.7238 Y4.3792 Z34.4432 A323.9068 -N2040 X199.7243 Y4.6594 Z34.3979 A324.4818 -N2050 X199.7248 Y4.9391 Z34.3497 A325.0567 -N2060 X199.7253 Y5.2183 Z34.2987 A325.6317 -N2070 X199.7259 Y5.497 Z34.245 A326.2067 -N2080 X199.7264 Y5.7752 Z34.1884 A326.7817 -N2090 X199.7269 Y6.0528 Z34.129 A327.3567 -N2100 X199.7274 Y6.3297 Z34.0669 A327.9317 -N2110 X199.7279 Y6.606 Z34.002 A328.5067 -N2120 X199.7284 Y6.8817 Z33.9343 A329.0817 -N2130 X199.7289 Y7.1567 Z33.8639 A329.6567 -N2140 X199.7294 Y7.4309 Z33.7907 A330.2317 -N2150 X199.7299 Y7.7044 Z33.7147 A330.8067 -N2160 X199.7304 Y7.9771 Z33.6361 A331.3816 -N2170 X199.7309 Y8.249 Z33.5546 A331.9566 -N2180 X199.7314 Y8.5201 Z33.4705 A332.5316 -N2190 X199.7319 Y8.7904 Z33.3836 A333.1066 -N2200 X199.7324 Y9.0597 Z33.2941 A333.6816 -N2210 X199.733 Y9.3281 Z33.2018 A334.2566 -N2220 X199.7335 Y9.5956 Z33.1068 A334.8316 -N2230 X199.734 Y9.8622 Z33.0092 A335.4066 -N2240 X199.7345 Y10.1277 Z32.9089 A335.9816 -N2250 X199.735 Y10.3922 Z32.8059 A336.5566 -N2260 X199.7355 Y10.6557 Z32.7003 A337.1316 -N2270 X199.736 Y10.9181 Z32.5921 A337.7065 -N2280 X199.7365 Y11.1793 Z32.4812 A338.2815 -N2290 X199.7013 Y13.3548 Z31.4329 A343.1747 F25471.2686 -N2300 X199.6661 Y15.4328 Z30.2029 A348.0679 -N2310 X199.6309 Y17.3984 Z28.8001 A352.9611 -N2320 X199.5956 Y19.2371 Z27.2348 A357.8542 -N2330 X199.5604 Y19.7602 Z26.5 A360.0 F10866.3366 -N2340 X199.0322 Y13.3551 F2000.0 -N2350 X197.5428 Y4.9163 -N2360 X195.2812 Y-3.3491 -N2370 X192.2667 Y-11.3705 -N2380 X188.5248 Y-19.0796 -N2390 X187.8909 Y-19.4863 Z27.0009 A361.4535 F2796.833 -N2400 X187.6374 Y-17.7023 Z28.5596 A366.2538 F21888.6904 -N2410 X187.3838 Y-15.7942 Z29.9637 A371.0542 -N2420 X187.1303 Y-13.7753 Z31.2031 A375.8545 -N2430 X186.8767 Y-11.6597 Z32.2692 A380.6549 -N2440 X186.6232 Y-9.4623 Z33.1545 A385.4552 -N2450 X186.3696 Y-7.1986 Z33.8529 A390.2556 -N2460 X186.116 Y-4.8843 Z34.3594 A395.0559 -N2470 X185.8625 Y-2.5358 Z34.6704 A399.8563 -N2480 X185.6089 Y-0.1695 Z34.7838 A404.6567 -N2490 X185.3554 Y2.198 Z34.6987 A409.457 -N2500 X185.1018 Y4.5501 Z34.4159 A414.2574 -N2510 X184.8483 Y6.8702 Z33.9372 A419.0577 -N2520 X184.5947 Y9.1422 Z33.266 A423.8581 -N2530 X184.3412 Y11.35 Z32.4071 A428.6584 -N2540 X184.0876 Y13.4782 Z31.3664 A433.4588 -N2550 X183.7692 Y15.5673 Z30.1148 A438.3936 F20584.1593 -N2560 X183.4508 Y17.541 Z28.6882 A443.3283 -N2570 X183.1324 Y19.3846 Z27.097 A448.2631 -N2580 X182.8139 Y19.7209 Z26.5 A450.0 F7073.27 -N2590 X178.9929 Y14.5533 F2000.0 -N2600 X173.2842 Y8.1625 -N2610 X167.0102 Y2.3257 -N2620 X160.2244 Y-2.9073 -N2630 X152.9848 Y-7.4918 -N2640 X145.3529 Y-11.3888 -N2650 X137.3941 Y-14.565 -N2660 X129.1762 Y-16.9933 -N2670 X120.7692 Y-18.653 -N2680 X112.245 Y-19.5299 -N2690 X103.6763 Y-19.6166 -N2700 X95.1361 Y-18.9123 -N2710 X86.6973 Y-17.4229 -N2720 X78.4319 Y-15.1613 -N2730 X70.4105 Y-12.1467 -N2740 X62.7014 Y-8.4049 -N2750 X55.3705 Y-3.9677 -N2760 X48.4802 Y1.127 -N2770 X42.0895 Y6.8357 -N2780 X36.2527 Y13.1097 -N2790 X31.0197 Y19.8955 -N2800 X30.7332 Y18.5609 Z27.8423 A446.0126 F16517.3194 -N2810 X30.4645 Y16.6856 Z29.3384 A441.1517 F21618.5261 -N2820 X30.1959 Y14.6903 Z30.6701 A436.2907 -N2830 X29.9273 Y12.5893 Z31.828 A431.4297 -N2840 X29.6587 Y10.3978 Z32.8037 A426.5687 -N2850 X29.39 Y8.1314 Z33.5902 A421.7078 -N2860 X29.1214 Y5.8066 Z34.1818 A416.8468 -N2870 X28.8528 Y3.44 Z34.5743 A411.9858 -N2880 X28.5842 Y1.0487 Z34.7648 A407.1248 -N2890 X28.3155 Y-1.3502 Z34.752 A402.2638 -N2900 X28.0469 Y-3.7394 Z34.536 A397.4029 -N2910 X27.7783 Y-6.1016 Z34.1183 A392.5419 -N2920 X27.5097 Y-8.42 Z33.5019 A387.6809 -N2930 X27.241 Y-10.6778 Z32.6913 A382.8199 -N2940 X26.9724 Y-12.8588 Z31.6923 A377.9589 -N2950 X26.7038 Y-14.9473 Z30.512 A373.098 -N2960 X26.4352 Y-16.9283 Z29.159 A368.237 -N2970 X25.6558 Y-19.1925 Z26.5 A360.0 F10480.1632 -N2980 X22.5382 Y-13.087 F2000.0 -N2990 X19.362 Y-5.1282 -N3000 X16.9337 Y3.0898 -N3010 X15.274 Y11.4967 -N3020 X14.3971 Y18.3161 F1604.7055 -N3030 X14.3927 Y18.1243 Z28.2143 A354.8508 F25555.9059 -N3040 X14.3884 Y16.1994 Z29.6857 A349.9413 -N3050 X14.3841 Y14.1557 Z30.9871 A345.0318 -N3060 X14.3797 Y12.0081 Z32.1087 A340.1222 -N3070 X14.3754 Y9.7724 Z33.0424 A335.2127 -N3080 X14.3711 Y7.465 Z33.7814 A330.3031 -N3090 X14.3667 Y5.1027 Z34.3202 A325.3936 -N3100 X14.3624 Y2.7031 Z34.6548 A320.4841 -N3110 X14.3581 Y0.2836 Z34.7828 A315.5745 -N3120 X14.3537 Y-2.138 Z34.7034 A310.665 -N3130 X14.3494 Y-4.5438 Z34.4169 A305.7555 -N3140 X14.3451 Y-6.9164 Z33.9256 A300.8459 -N3150 X14.3407 Y-9.2381 Z33.2331 A295.9364 -N3160 X14.3364 Y-11.4921 Z32.3444 A291.0268 -N3170 X14.3321 Y-13.6618 Z31.266 A286.1173 -N3180 X14.3277 Y-15.7312 Z30.0059 A281.2078 -N3190 X14.3234 Y-17.6852 Z28.5734 A276.2982 -N3200 X14.3191 Y-19.5094 Z26.9788 A271.3887 -N3210 X14.3147 Y-19.6927 Z26.5 A270.0 F6909.9605 -N3220 X14.3104 Y-19.2643 F2000.0 -N3230 X15.0147 Y-10.7241 -N3240 X16.5041 Y-2.2853 -N3250 X18.7657 Y5.98 -N3260 X18.2211 Y7.9045 -N3270 M05 $0 -N3280 G00 Z50.0 -N3290 X236.6606 Y-10.7864 Z58.2843 A450.0 -N3300 G38.2 Z15.00 F500.0 -N3310 G92 Z[25.0 - #<_hal[plasmac.float-switch-travel]>] -N3320 G00 Z28.0 -N3330 M03 $0 S1 -N3340 G01 Z26.5 F100.0 -N3350 F2000.0 -N3360 X258.0258 Y19.207 F1947.9706 -N3370 X258.053 Y18.1368 Z28.2038 A444.8838 F2000.0 -N3380 X258.079 Y18.1408 Z28.2005 A444.8943 F605.1267 -N3390 X258.1056 Y17.8014 Z28.4797 A444.0041 F42188.5039 -N3400 X258.1322 Y17.6302 Z28.6173 A443.559 F21116.9779 -N3410 X258.1588 Y17.4578 Z28.7536 A443.114 -N3420 X258.1854 Y17.2844 Z28.8886 A442.6689 -N3430 X258.212 Y17.11 Z29.0222 A442.2238 -N3440 X258.2386 Y16.9345 Z29.1544 A441.7787 -N3450 X258.2652 Y16.758 Z29.2853 A441.3337 -N3460 X258.2918 Y16.5805 Z29.4147 A440.8886 -N3470 X258.3184 Y16.402 Z29.5429 A440.4435 -N3480 X258.345 Y16.2226 Z29.6696 A439.9984 -N3490 X258.3716 Y16.0421 Z29.7949 A439.5533 -N3500 X258.3982 Y15.8606 Z29.9188 A439.1083 -N3510 X258.4248 Y15.6782 Z30.0413 A438.6632 -N3520 X258.4514 Y15.4949 Z30.1624 A438.2181 -N3530 X258.478 Y15.3106 Z30.282 A437.773 -N3540 X258.5046 Y15.1254 Z30.4002 A437.328 -N3550 X258.5312 Y14.9393 Z30.517 A436.8829 -N3560 X258.5578 Y14.7523 Z30.6323 A436.4378 -N3570 X258.5844 Y14.5644 Z30.7462 A435.9927 -N3580 X258.611 Y14.3756 Z30.8586 A435.5476 -N3590 X258.6376 Y14.186 Z30.9695 A435.1026 -N3600 X258.6642 Y13.9955 Z31.079 A434.6575 -N3610 X258.6908 Y13.8041 Z31.187 A434.2124 -N3620 X258.7174 Y13.6119 Z31.2935 A433.7673 -N3630 X258.744 Y13.4189 Z31.3985 A433.3223 -N3640 X258.7706 Y13.2251 Z31.5019 A432.8772 -N3650 X258.7972 Y13.0305 Z31.6039 A432.4321 -N3660 X258.8238 Y12.8351 Z31.7044 A431.987 -N3670 X258.8505 Y12.6389 Z31.8033 A431.5419 -N3680 X258.8771 Y12.442 Z31.9007 A431.0969 -N3690 X258.9037 Y12.2443 Z31.9966 A430.6518 -N3700 X258.9303 Y12.0459 Z32.091 A430.2067 -N3710 X258.9569 Y11.8467 Z32.1838 A429.7616 -N3720 X258.9835 Y11.6468 Z32.275 A429.3166 -N3730 X259.0101 Y11.4463 Z32.3647 A428.8715 -N3740 X259.0367 Y11.245 Z32.4528 A428.4264 -N3750 X259.0633 Y11.0431 Z32.5394 A427.9813 -N3760 X259.0899 Y10.8405 Z32.6244 A427.5362 -N3770 X259.1165 Y10.6372 Z32.7078 A427.0912 -N3780 X259.1431 Y10.4333 Z32.7897 A426.6461 -N3790 X259.1697 Y10.2288 Z32.8699 A426.201 -N3800 X259.1963 Y10.0236 Z32.9486 A425.7559 -N3810 X259.2229 Y9.8178 Z33.0256 A425.3109 -N3820 X259.2495 Y9.6115 Z33.1011 A424.8658 -N3830 X259.2761 Y9.4046 Z33.175 A424.4207 -N3840 X259.3027 Y9.1971 Z33.2472 A423.9756 -N3850 X259.3293 Y8.989 Z33.3179 A423.5305 -N3860 X259.3559 Y8.7804 Z33.3869 A423.0855 -N3870 X259.3825 Y8.5713 Z33.4543 A422.6404 -N3880 X259.4091 Y8.3617 Z33.52 A422.1953 -N3890 X259.4357 Y8.1515 Z33.5842 A421.7502 -N3900 X259.4623 Y7.9409 Z33.6467 A421.3052 -N3910 X259.4889 Y7.7298 Z33.7075 A420.8601 -N3920 X259.5155 Y7.5182 Z33.7668 A420.415 -N3930 X259.5421 Y7.3062 Z33.8243 A419.9699 -N3940 X259.5687 Y7.0937 Z33.8803 A419.5248 -N3950 X259.5953 Y6.8808 Z33.9346 A419.0798 -N3960 X259.6219 Y6.6675 Z33.9872 A418.6347 -N3970 X259.6485 Y6.4537 Z34.0381 A418.1896 -N3980 X259.6751 Y6.2396 Z34.0874 A417.7445 -N3990 X259.7017 Y6.0251 Z34.1351 A417.2995 -N4000 X259.7283 Y5.8103 Z34.181 A416.8544 -N4010 X259.755 Y5.5951 Z34.2253 A416.4093 -N4020 X259.7816 Y5.3796 Z34.268 A415.9642 -N4030 X259.8082 Y5.1637 Z34.3089 A415.5191 -N4040 X259.8348 Y4.9475 Z34.3482 A415.0741 -N4050 X259.8614 Y4.731 Z34.3858 A414.629 -N4060 X259.888 Y4.5143 Z34.4217 A414.1839 -N4070 X259.9146 Y4.2973 Z34.4559 A413.7388 -N4080 X259.9412 Y4.08 Z34.4885 A413.2938 -N4090 X259.9678 Y3.8624 Z34.5193 A412.8487 -N4100 X259.9944 Y3.6447 Z34.5485 A412.4036 -N4110 X260.021 Y3.4267 Z34.5759 A411.9585 -N4120 X260.0476 Y3.2085 Z34.6017 A411.5134 -N4130 X260.0742 Y2.9901 Z34.6258 A411.0684 -N4140 X260.1008 Y2.7715 Z34.6482 A410.6233 -N4150 X260.1274 Y2.5528 Z34.6688 A410.1782 -N4160 X260.154 Y2.3339 Z34.6878 A409.7331 -N4170 X260.1806 Y2.1148 Z34.7051 A409.2881 -N4180 X260.2072 Y1.8957 Z34.7207 A408.843 -N4190 X260.2338 Y1.6764 Z34.7345 A408.3979 -N4200 X260.2604 Y1.457 Z34.7467 A407.9528 -N4210 X260.287 Y1.2376 Z34.7572 A407.5078 -N4220 X260.3136 Y1.018 Z34.7659 A407.0627 -N4230 X260.3402 Y0.7984 Z34.773 A406.6176 -N4240 X260.3668 Y0.5788 Z34.7783 A406.1725 -N4250 X260.3934 Y0.3591 Z34.782 A405.7274 -N4260 X260.42 Y0.1394 Z34.7839 A405.2824 -N4270 X260.4466 Y-0.0803 Z34.7842 A404.8373 -N4280 X260.4732 Y-0.3 Z34.7827 A404.3922 -N4290 X260.4998 Y-0.5197 Z34.7795 A403.9471 -N4300 X260.5264 Y-0.7394 Z34.7746 A403.5021 -N4310 X260.553 Y-0.959 Z34.768 A403.057 -N4320 X260.5796 Y-1.1786 Z34.7597 A402.6119 -N4330 X260.6062 Y-1.398 Z34.7497 A402.1668 -N4340 X260.6329 Y-1.6174 Z34.738 A401.7217 -N4350 X260.6595 Y-1.8367 Z34.7246 A401.2767 -N4360 X260.6861 Y-2.0559 Z34.7095 A400.8316 -N4370 X260.7127 Y-2.275 Z34.6926 A400.3865 -N4380 X260.7393 Y-2.4939 Z34.6741 A399.9414 -N4390 X260.7659 Y-2.7127 Z34.6539 A399.4964 -N4400 X260.7925 Y-2.9313 Z34.632 A399.0513 -N4410 X260.8191 Y-3.1498 Z34.6083 A398.6062 -N4420 X260.8457 Y-3.368 Z34.583 A398.1611 -N4430 X260.8723 Y-3.5861 Z34.556 A397.716 -N4440 X260.8989 Y-3.8039 Z34.5273 A397.271 -N4450 X260.9255 Y-4.0215 Z34.4969 A396.8259 -N4460 X260.9521 Y-4.2389 Z34.4648 A396.3808 -N4470 X260.9787 Y-4.456 Z34.4311 A395.9357 -N4480 X261.0053 Y-4.6728 Z34.3956 A395.4907 -N4490 X261.0319 Y-4.8894 Z34.3585 A395.0456 -N4500 X261.0585 Y-5.1056 Z34.3196 A394.6005 -N4510 X261.0851 Y-5.3216 Z34.2791 A394.1554 -N4520 X261.1117 Y-5.5372 Z34.237 A393.7103 -N4530 X261.1383 Y-5.7525 Z34.1931 A393.2653 -N4540 X261.1649 Y-5.9674 Z34.1476 A392.8202 -N4550 X261.1915 Y-6.182 Z34.1004 A392.3751 -N4560 X261.2181 Y-6.3962 Z34.0516 A391.93 -N4570 X261.2447 Y-6.6101 Z34.001 A391.485 -N4580 X261.2713 Y-6.8235 Z33.9489 A391.0399 -N4590 X261.2979 Y-7.0365 Z33.895 A390.5948 -N4600 X261.3245 Y-7.2491 Z33.8395 A390.1497 -N4610 X261.3511 Y-7.4612 Z33.7824 A389.7046 -N4620 X261.3777 Y-7.6729 Z33.7236 A389.2596 -N4630 X261.4043 Y-7.8842 Z33.6632 A388.8145 -N4640 X261.4309 Y-8.095 Z33.6011 A388.3694 -N4650 X261.4575 Y-8.3052 Z33.5374 A387.9243 -N4660 X261.4841 Y-8.515 Z33.4721 A387.4793 -N4670 X261.5107 Y-8.7243 Z33.4051 A387.0342 -N4680 X261.5374 Y-8.933 Z33.3366 A386.5891 -N4690 X261.564 Y-9.1412 Z33.2664 A386.144 -N4700 X261.5906 Y-9.3489 Z33.1946 A385.6989 -N4710 X261.6172 Y-9.5559 Z33.1211 A385.2539 -N4720 X261.6438 Y-9.7624 Z33.0461 A384.8088 -N4730 X261.6704 Y-9.9684 Z32.9695 A384.3637 -N4740 X261.697 Y-10.1737 Z32.8912 A383.9186 -N4750 X261.7236 Y-10.3784 Z32.8114 A383.4736 -N4760 X261.7502 Y-10.5824 Z32.73 A383.0285 -N4770 X261.7768 Y-10.7859 Z32.647 A382.5834 -N4780 X261.8034 Y-10.9887 Z32.5624 A382.1383 -N4790 X261.83 Y-11.1908 Z32.4763 A381.6932 -N4800 X261.8566 Y-11.3922 Z32.3886 A381.2482 -N4810 X261.8832 Y-11.593 Z32.2993 A380.8031 -N4820 X261.9098 Y-11.793 Z32.2084 A380.358 -N4830 X261.9364 Y-11.9924 Z32.1161 A379.9129 -N4840 X261.963 Y-12.191 Z32.0221 A379.4679 -N4850 X261.9896 Y-12.3889 Z31.9267 A379.0228 -N4860 X262.0162 Y-12.586 Z31.8297 A378.5777 -N4870 X262.0428 Y-12.7824 Z31.7311 A378.1326 -N4880 X262.0694 Y-12.978 Z31.6311 A377.6875 -N4890 X262.096 Y-13.1729 Z31.5295 A377.2425 -N4900 X262.1226 Y-13.3669 Z31.4264 A376.7974 -N4910 X262.1492 Y-13.5601 Z31.3218 A376.3523 -N4920 X262.1758 Y-13.7525 Z31.2157 A375.9072 -N4930 X262.2024 Y-13.9441 Z31.1082 A375.4622 -N4940 X262.229 Y-14.1348 Z30.9991 A375.0171 -N4950 X262.2556 Y-14.3247 Z30.8886 A374.572 -N4960 X262.2822 Y-14.5137 Z30.7766 A374.1269 -N4970 X262.3088 Y-14.7019 Z30.6631 A373.6818 -N4980 X262.3354 Y-14.8891 Z30.5482 A373.2368 -N4990 X262.362 Y-15.0755 Z30.4318 A372.7917 -N5000 X262.3886 Y-15.2609 Z30.3139 A372.3466 -N5010 X262.4152 Y-15.4455 Z30.1947 A371.9015 -N5020 X262.4419 Y-15.6291 Z30.074 A371.4565 -N5030 X262.4685 Y-15.8117 Z29.9519 A371.0114 -N5040 X262.4951 Y-15.9934 Z29.8283 A370.5663 -N5050 X262.5217 Y-16.1741 Z29.7034 A370.1212 -N5060 X262.5483 Y-16.3539 Z29.5771 A369.6762 -N5070 X262.5749 Y-16.5327 Z29.4493 A369.2311 -N5080 X262.6015 Y-16.7104 Z29.3202 A368.786 -N5090 X262.6281 Y-16.8872 Z29.1897 A368.3409 -N5100 X262.6547 Y-17.0629 Z29.0578 A367.8958 -N5110 X262.6813 Y-17.2377 Z28.9246 A367.4508 -N5120 X262.7079 Y-17.4113 Z28.79 A367.0057 -N5130 X262.7345 Y-17.5839 Z28.6541 A366.5606 -N5140 X262.7611 Y-17.7555 Z28.5169 A366.1155 -N5150 X262.7877 Y-17.926 Z28.3783 A365.6705 -N5160 X262.8143 Y-18.0954 Z28.2384 A365.2254 -N5170 X262.8409 Y-18.2637 Z28.0971 A364.7803 -N5180 X262.8675 Y-18.4309 Z27.9546 A364.3352 -N5190 X262.8941 Y-18.597 Z27.8108 A363.8901 -N5200 X262.9207 Y-18.762 Z27.6657 A363.4451 -N5210 X262.9473 Y-18.9259 Z27.5193 A363.0 -N5220 X262.9739 Y-19.0886 Z27.3717 A362.5549 -N5230 X263.0005 Y-19.2501 Z27.2227 A362.1098 -N5240 X263.0271 Y-19.4105 Z27.0726 A361.6648 -N5250 X263.0537 Y-19.5698 Z26.9212 A361.2197 -N5260 X263.0803 Y-19.7278 Z26.7685 A360.7746 -N5270 X263.1069 Y-19.8846 Z26.6147 A360.3295 -N5280 X263.1335 Y-19.9899 Z26.5 A360.0 F15523.9042 -N5290 X290.5346 Y19.9768 F1998.6785 -N5300 X290.5612 Y19.7809 Z26.7168 A359.3756 F29308.2188 -N5310 X290.5878 Y19.6232 Z26.8698 A358.9305 F21116.9779 -N5320 X290.6144 Y19.4644 Z27.0216 A358.4855 -N5330 X290.641 Y19.3044 Z27.1722 A358.0404 -N5340 X290.6676 Y19.1432 Z27.3215 A357.5953 -N5350 X290.6942 Y18.9809 Z27.4696 A357.1502 -N5360 X290.7208 Y18.8175 Z27.6164 A356.7052 -N5370 X290.7474 Y18.6529 Z27.762 A356.2601 -N5380 X290.774 Y18.4871 Z27.9062 A355.815 -N5390 X290.8006 Y18.3203 Z28.0492 A355.3699 -N5400 X290.8272 Y18.1523 Z28.1908 A354.9248 -N5410 X290.8538 Y17.9833 Z28.3312 A354.4798 -N5420 X290.8804 Y17.8132 Z28.4702 A354.0347 -N5430 X290.907 Y17.642 Z28.6079 A353.5896 -N5440 X290.9336 Y17.4697 Z28.7443 A353.1445 -N5450 X290.9602 Y17.2964 Z28.8793 A352.6995 -N5460 X290.9869 Y17.122 Z29.013 A352.2544 -N5470 X291.0135 Y16.9466 Z29.1454 A351.8093 -N5480 X291.0401 Y16.7702 Z29.2763 A351.3642 -N5490 X291.0667 Y16.5928 Z29.4059 A350.9191 -N5500 X291.0933 Y16.4143 Z29.5341 A350.4741 -N5510 X291.1199 Y16.2349 Z29.6609 A350.029 -N5520 X291.1465 Y16.0545 Z29.7863 A349.5839 -N5530 X291.1731 Y15.8731 Z29.9103 A349.1388 -N5540 X291.1997 Y15.6908 Z30.0329 A348.6938 -N5550 X291.2263 Y15.5075 Z30.1541 A348.2487 -N5560 X291.2529 Y15.3233 Z30.2739 A347.8036 -N5570 X291.2795 Y15.1382 Z30.3922 A347.3585 -N5580 X291.3061 Y14.9521 Z30.509 A346.9134 -N5590 X291.3327 Y14.7652 Z30.6245 A346.4684 -N5600 X291.3593 Y14.5773 Z30.7384 A346.0233 -N5610 X291.3859 Y14.3886 Z30.8509 A345.5782 -N5620 X291.4125 Y14.199 Z30.962 A345.1331 -N5630 X291.4391 Y14.0086 Z31.0715 A344.6881 -N5640 X291.4657 Y13.8173 Z31.1796 A344.243 -N5650 X291.4923 Y13.6251 Z31.2862 A343.7979 -N5660 X291.5189 Y13.4322 Z31.3913 A343.3528 -N5670 X291.5455 Y13.2384 Z31.4949 A342.9077 -N5680 X291.5721 Y13.0439 Z31.597 A342.4627 -N5690 X291.5987 Y12.8485 Z31.6975 A342.0176 -N5700 X291.6253 Y12.6524 Z31.7966 A341.5725 -N5710 X291.6519 Y12.4555 Z31.8941 A341.1274 -N5720 X291.6785 Y12.2579 Z31.9901 A340.6824 -N5730 X291.7051 Y12.0595 Z32.0845 A340.2373 -N5740 X291.7317 Y11.8604 Z32.1774 A339.7922 -N5750 X291.7583 Y11.6606 Z32.2688 A339.3471 -N5760 X291.7849 Y11.4601 Z32.3586 A338.902 -N5770 X291.8115 Y11.2588 Z32.4468 A338.457 -N5780 X291.8381 Y11.0569 Z32.5335 A338.0119 -N5790 X291.8647 Y10.8544 Z32.6186 A337.5668 -N5800 X291.8914 Y10.6512 Z32.7021 A337.1217 -N5810 X291.918 Y10.4473 Z32.7841 A336.6767 -N5820 X291.9446 Y10.2428 Z32.8645 A336.2316 -N5830 X291.9712 Y10.0377 Z32.9432 A335.7865 -N5840 X291.9978 Y9.832 Z33.0204 A335.3414 -N5850 X292.0244 Y9.6257 Z33.096 A334.8964 -N5860 X292.051 Y9.4188 Z33.1699 A334.4513 -N5870 X292.0776 Y9.2113 Z33.2423 A334.0062 -N5880 X292.1042 Y9.0033 Z33.3131 A333.5611 -N5890 X292.1308 Y8.7948 Z33.3822 A333.116 -N5900 X292.1574 Y8.5857 Z33.4497 A332.671 -N5910 X292.184 Y8.3761 Z33.5156 A332.2259 -N5920 X292.2106 Y8.166 Z33.5798 A331.7808 -N5930 X292.2372 Y7.9554 Z33.6424 A331.3357 -N5940 X292.2638 Y7.7443 Z33.7034 A330.8907 -N5950 X292.2904 Y7.5327 Z33.7628 A330.4456 -N5960 X292.317 Y7.3207 Z33.8204 A330.0005 -N5970 X292.3436 Y7.1083 Z33.8765 A329.5554 -N5980 X292.3702 Y6.8954 Z33.9309 A329.1103 -N5990 X292.3968 Y6.6821 Z33.9836 A328.6653 -N6000 X292.4234 Y6.4684 Z34.0347 A328.2202 -N6010 X292.45 Y6.2544 Z34.0841 A327.7751 -N6020 X292.4766 Y6.0399 Z34.1319 A327.33 -N6030 X292.5032 Y5.8251 Z34.1779 A326.885 -N6040 X292.5298 Y5.6099 Z34.2224 A326.4399 -N6050 X292.5564 Y5.3944 Z34.2651 A325.9948 -N6060 X292.583 Y5.1785 Z34.3062 A325.5497 -N6070 X292.6096 Y4.9624 Z34.3456 A325.1046 -N6080 X292.6362 Y4.7459 Z34.3833 A324.6596 -N6090 X292.6628 Y4.5292 Z34.4193 A324.2145 -N6100 X292.6894 Y4.3122 Z34.4536 A323.7694 -N6110 X292.716 Y4.0949 Z34.4863 A323.3243 -N6120 X292.7426 Y3.8774 Z34.5172 A322.8793 -N6130 X292.7693 Y3.6596 Z34.5465 A322.4342 -N6140 X292.7959 Y3.4416 Z34.5741 A321.9891 -N6150 X292.8225 Y3.2235 Z34.6 A321.544 -N6160 X292.8491 Y3.0051 Z34.6242 A321.0989 -N6170 X292.8757 Y2.7865 Z34.6467 A320.6539 -N6180 X292.9023 Y2.5678 Z34.6675 A320.2088 -N6190 X292.9289 Y2.3489 Z34.6866 A319.7637 -N6200 X292.9555 Y2.1299 Z34.704 A319.3186 -N6210 X292.9821 Y1.9107 Z34.7197 A318.8736 -N6220 X293.0087 Y1.6915 Z34.7336 A318.4285 -N6230 X293.0353 Y1.4721 Z34.7459 A317.9834 -N6240 X293.0619 Y1.2526 Z34.7565 A317.5383 -N6250 X293.0885 Y1.0331 Z34.7654 A317.0932 -N6260 X293.1151 Y0.8135 Z34.7726 A316.6482 -N6270 X293.1417 Y0.5939 Z34.778 A316.2031 -N6280 X293.1683 Y0.3742 Z34.7818 A315.758 -N6290 X293.1949 Y0.1545 Z34.7838 A315.3129 -N6300 X293.2215 Y-0.0652 Z34.7842 A314.8679 -N6310 X293.2481 Y-0.2849 Z34.7828 A314.4228 -N6320 X293.2747 Y-0.5046 Z34.7798 A313.9777 -N6330 X293.3013 Y-0.7243 Z34.775 A313.5326 -N6340 X293.3279 Y-0.9439 Z34.7685 A313.0875 -N6350 X293.3545 Y-1.1635 Z34.7603 A312.6425 -N6360 X293.3811 Y-1.383 Z34.7504 A312.1974 -N6370 X293.4077 Y-1.6024 Z34.7388 A311.7523 -N6380 X293.4343 Y-1.8217 Z34.7255 A311.3072 -N6390 X293.4609 Y-2.0409 Z34.7105 A310.8622 -N6400 X293.4875 Y-2.26 Z34.6938 A310.4171 -N6410 X293.5141 Y-2.4789 Z34.6754 A309.972 -N6420 X293.5407 Y-2.6977 Z34.6553 A309.5269 -N6430 X293.5673 Y-2.9163 Z34.6335 A309.0818 -N6440 X293.5939 Y-3.1348 Z34.61 A308.6368 -N6450 X293.6205 Y-3.353 Z34.5848 A308.1917 -N6460 X293.6471 Y-3.5711 Z34.5579 A307.7466 -N6470 X293.6738 Y-3.789 Z34.5293 A307.3015 -N6480 X293.7004 Y-4.0066 Z34.4991 A306.8565 -N6490 X293.727 Y-4.2239 Z34.4671 A306.4114 -N6500 X293.7536 Y-4.4411 Z34.4334 A305.9663 -N6510 X293.7802 Y-4.6579 Z34.3981 A305.5212 -N6520 X293.8068 Y-4.8745 Z34.3611 A305.0761 -N6530 X293.8334 Y-5.0908 Z34.3224 A304.6311 -N6540 X293.86 Y-5.3067 Z34.282 A304.186 -N6550 X293.8866 Y-5.5224 Z34.2399 A303.7409 -N6560 X293.9132 Y-5.7377 Z34.1962 A303.2958 -N6570 X293.9398 Y-5.9527 Z34.1508 A302.8508 -N6580 X293.9664 Y-6.1673 Z34.1037 A302.4057 -N6590 X293.993 Y-6.3815 Z34.055 A301.9606 -N6600 X294.0196 Y-6.5954 Z34.0046 A301.5155 -N6610 X294.0462 Y-6.8088 Z33.9525 A301.0704 -N6620 X294.0728 Y-7.0219 Z33.8988 A300.6254 -N6630 X294.0994 Y-7.2345 Z33.8434 A300.1803 -N6640 X294.126 Y-7.4467 Z33.7864 A299.7352 -N6650 X294.1526 Y-7.6584 Z33.7277 A299.2901 -N6660 X294.1792 Y-7.8697 Z33.6674 A298.8451 -N6670 X294.2058 Y-8.0805 Z33.6055 A298.4 -N6680 X294.2324 Y-8.2908 Z33.5419 A297.9549 -N6690 X294.259 Y-8.5006 Z33.4766 A297.5098 -N6700 X294.2856 Y-8.7099 Z33.4098 A297.0647 -N6710 X294.3122 Y-8.9187 Z33.3413 A296.6197 -N6720 X294.3388 Y-9.1269 Z33.2712 A296.1746 -N6730 X294.3654 Y-9.3346 Z33.1995 A295.7295 -N6740 X294.392 Y-9.5417 Z33.1262 A295.2844 -N6750 X294.4186 Y-9.7483 Z33.0513 A294.8394 -N6760 X294.4452 Y-9.9542 Z32.9748 A294.3943 -N6770 X294.4718 Y-10.1596 Z32.8966 A293.9492 -N6780 X294.4984 Y-10.3643 Z32.8169 A293.5041 -N6790 X294.525 Y-10.5684 Z32.7356 A293.0591 -N6800 X294.5517 Y-10.7719 Z32.6527 A292.614 -N6810 X294.5783 Y-10.9747 Z32.5683 A292.1689 -N6820 X294.6049 Y-11.1769 Z32.4822 A291.7238 -N6830 X294.6315 Y-11.3784 Z32.3946 A291.2787 -N6840 X294.6581 Y-11.5792 Z32.3055 A290.8337 -N6850 X294.6847 Y-11.7793 Z32.2147 A290.3886 -N6860 X294.7113 Y-11.9787 Z32.1225 A289.9435 -N6870 X294.7379 Y-12.1774 Z32.0286 A289.4984 -N6880 X294.7645 Y-12.3753 Z31.9333 A289.0534 -N6890 X294.7911 Y-12.5725 Z31.8364 A288.6083 -N6900 X294.8177 Y-12.769 Z31.7379 A288.1632 -N6910 X294.8443 Y-12.9646 Z31.638 A287.7181 -N6920 X294.8709 Y-13.1595 Z31.5365 A287.273 -N6930 X294.8975 Y-13.3536 Z31.4335 A286.828 -N6940 X294.9241 Y-13.5469 Z31.3291 A286.3829 -N6950 X294.9507 Y-13.7393 Z31.2231 A285.9378 -N6960 X294.9773 Y-13.931 Z31.1156 A285.4927 -N6970 X295.0039 Y-14.1218 Z31.0067 A285.0477 -N6980 X295.0305 Y-14.3117 Z30.8962 A284.6026 -N6990 X295.0571 Y-14.5008 Z30.7843 A284.1575 -N7000 X295.0837 Y-14.689 Z30.6709 A283.7124 -N7010 X295.1103 Y-14.8763 Z30.5561 A283.2673 -N7020 X295.1369 Y-15.0627 Z30.4398 A282.8223 -N7030 X295.1635 Y-15.2482 Z30.3221 A282.3772 -N7040 X295.1901 Y-15.4328 Z30.2029 A281.9321 -N7050 X295.2167 Y-15.6165 Z30.0823 A281.487 -N7060 X295.2433 Y-15.7992 Z29.9603 A281.042 -N7070 X295.2699 Y-15.981 Z29.8369 A280.5969 -N7080 X295.2965 Y-16.1618 Z29.712 A280.1518 -N7090 X295.3231 Y-16.3416 Z29.5858 A279.7067 -N7100 X295.3497 Y-16.5204 Z29.4581 A279.2616 -N7110 X295.3763 Y-16.6983 Z29.3291 A278.8166 -N7120 X295.4029 Y-16.8751 Z29.1987 A278.3715 -N7130 X295.4295 Y-17.0509 Z29.0669 A277.9264 -N7140 X295.4562 Y-17.2257 Z28.9338 A277.4813 -N7150 X295.4828 Y-17.3994 Z28.7993 A277.0363 -N7160 X295.5094 Y-17.5721 Z28.6635 A276.5912 -N7170 X295.536 Y-17.7438 Z28.5263 A276.1461 -N7180 X295.5626 Y-17.9143 Z28.3878 A275.701 -N7190 X295.5892 Y-18.0838 Z28.248 A275.2559 -N7200 X295.6158 Y-18.2522 Z28.1069 A274.8109 -N7210 X295.6424 Y-18.4195 Z27.9644 A274.3658 -N7220 X295.669 Y-18.5857 Z27.8207 A273.9207 -N7230 X295.6956 Y-18.7507 Z27.6757 A273.4756 -N7240 X295.7222 Y-18.9147 Z27.5294 A273.0306 -N7250 X295.7488 Y-19.0774 Z27.3818 A272.5855 -N7260 X295.7754 Y-19.2391 Z27.233 A272.1404 -N7270 X295.802 Y-19.3996 Z27.0829 A271.6953 -N7280 X295.8286 Y-19.5589 Z26.9316 A271.2502 -N7290 X295.8552 Y-19.717 Z26.7791 A270.8052 -N7300 X295.8818 Y-19.8739 Z26.6253 A270.3601 -N7310 X295.9084 Y-19.9926 Z26.5 A270.0 F17001.5664 -N7320 X323.3095 Y19.9741 F1998.6785 -N7330 X323.3361 Y19.7917 Z26.7062 A269.4062 F27830.0223 -N7340 X323.3627 Y19.6341 Z26.8593 A268.9611 F21116.9779 -N7350 X323.3893 Y19.4753 Z27.0112 A268.516 -N7360 X323.4159 Y19.3154 Z27.1619 A268.071 -N7370 X323.4425 Y19.1543 Z27.3113 A267.6259 -N7380 X323.4691 Y18.9921 Z27.4595 A267.1808 -N7390 X323.4957 Y18.8287 Z27.6064 A266.7357 -N7400 X323.5223 Y18.6642 Z27.752 A266.2906 -N7410 X323.5489 Y18.4985 Z27.8963 A265.8456 -N7420 X323.5755 Y18.3318 Z28.0394 A265.4005 -N7430 X323.6021 Y18.1639 Z28.1811 A264.9554 -N7440 X323.6287 Y17.9949 Z28.3216 A264.5103 -N7450 X323.6553 Y17.8249 Z28.4607 A264.0653 -N7460 X323.6819 Y17.6538 Z28.5985 A263.6202 -N7470 X323.7085 Y17.4816 Z28.735 A263.1751 -N7480 X323.7351 Y17.3083 Z28.8701 A262.73 -N7490 X323.7617 Y17.134 Z29.0039 A262.285 -N7500 X323.7883 Y16.9587 Z29.1363 A261.8399 -N7510 X323.8149 Y16.7824 Z29.2674 A261.3948 -N7520 X323.8415 Y16.605 Z29.397 A260.9497 -N7530 X323.8681 Y16.4266 Z29.5253 A260.5046 -N7540 X323.8947 Y16.2473 Z29.6522 A260.0596 -N7550 X323.9213 Y16.0669 Z29.7778 A259.6145 -N7560 X323.9479 Y15.8856 Z29.9019 A259.1694 -N7570 X323.9745 Y15.7034 Z30.0246 A258.7243 -N7580 X324.0012 Y15.5201 Z30.1458 A258.2793 -N7590 X324.0278 Y15.336 Z30.2657 A257.8342 -N7600 X324.0544 Y15.1509 Z30.3841 A257.3891 -N7610 X324.081 Y14.9649 Z30.5011 A256.944 -N7620 X324.1076 Y14.778 Z30.6166 A256.4989 -N7630 X324.1342 Y14.5903 Z30.7306 A256.0539 -N7640 X324.1608 Y14.4016 Z30.8433 A255.6088 -N7650 X324.1874 Y14.2121 Z30.9544 A255.1637 -N7660 X324.214 Y14.0217 Z31.0641 A254.7186 -N7670 X324.2406 Y13.8304 Z31.1722 A254.2736 -N7680 X324.2672 Y13.6384 Z31.2789 A253.8285 -N7690 X324.2938 Y13.4455 Z31.3841 A253.3834 -N7700 X324.3204 Y13.2518 Z31.4878 A252.9383 -N7710 X324.347 Y13.0573 Z31.59 A252.4932 -N7720 X324.3736 Y12.862 Z31.6907 A252.0482 -N7730 X324.4002 Y12.6659 Z31.7898 A251.6031 -N7740 X324.4268 Y12.4691 Z31.8874 A251.158 -N7750 X324.4534 Y12.2715 Z31.9835 A250.7129 -N7760 X324.48 Y12.0732 Z32.0781 A250.2679 -N7770 X324.5066 Y11.8741 Z32.1711 A249.8228 -N7780 X324.5332 Y11.6743 Z32.2626 A249.3777 -N7790 X324.5598 Y11.4739 Z32.3525 A248.9326 -N7800 X324.5864 Y11.2727 Z32.4408 A248.4875 -N7810 X324.613 Y11.0708 Z32.5276 A248.0425 -N7820 X324.6396 Y10.8683 Z32.6128 A247.5974 -N7830 X324.6662 Y10.6652 Z32.6965 A247.1523 -N7840 X324.6928 Y10.4613 Z32.7785 A246.7072 -N7850 X324.7194 Y10.2569 Z32.859 A246.2622 -N7860 X324.746 Y10.0518 Z32.9379 A245.8171 -N7870 X324.7726 Y9.8461 Z33.0152 A245.372 -N7880 X324.7992 Y9.6399 Z33.0908 A244.9269 -N7890 X324.8258 Y9.433 Z33.1649 A244.4818 -N7900 X324.8524 Y9.2256 Z33.2374 A244.0368 -N7910 X324.879 Y9.0176 Z33.3082 A243.5917 -N7920 X324.9057 Y8.8091 Z33.3775 A243.1466 -N7930 X324.9323 Y8.6001 Z33.4451 A242.7015 -N7940 X324.9589 Y8.3905 Z33.5111 A242.2565 -N7950 X324.9855 Y8.1804 Z33.5755 A241.8114 -N7960 X325.0121 Y7.9699 Z33.6382 A241.3663 -N7970 X325.0387 Y7.7588 Z33.6993 A240.9212 -N7980 X325.0653 Y7.5473 Z33.7587 A240.4761 -N7990 X325.0919 Y7.3353 Z33.8165 A240.0311 -N8000 X325.1185 Y7.1229 Z33.8727 A239.586 -N8010 X325.1451 Y6.9101 Z33.9272 A239.1409 -N8020 X325.1717 Y6.6968 Z33.98 A238.6958 -N8030 X325.1983 Y6.4831 Z34.0312 A238.2508 -N8040 X325.2249 Y6.2691 Z34.0808 A237.8057 -N8050 X325.2515 Y6.0546 Z34.1286 A237.3606 -N8060 X325.2781 Y5.8398 Z34.1748 A236.9155 -N8070 X325.3047 Y5.6247 Z34.2194 A236.4704 -N8080 X325.3313 Y5.4092 Z34.2622 A236.0254 -N8090 X325.3579 Y5.1934 Z34.3034 A235.5803 -N8100 X325.3845 Y4.9772 Z34.3429 A235.1352 -N8110 X325.4111 Y4.7608 Z34.3807 A234.6901 -N8120 X325.4377 Y4.5441 Z34.4169 A234.2451 -N8130 X325.4643 Y4.3271 Z34.4513 A233.8 -N8140 X325.4909 Y4.1098 Z34.4841 A233.3549 -N8150 X325.5175 Y3.8923 Z34.5152 A232.9098 -N8160 X325.5441 Y3.6746 Z34.5446 A232.4647 -N8170 X325.5707 Y3.4566 Z34.5723 A232.0197 -N8180 X325.5973 Y3.2385 Z34.5983 A231.5746 -N8190 X325.6239 Y3.0201 Z34.6226 A231.1295 -N8200 X325.6505 Y2.8015 Z34.6452 A230.6844 -N8210 X325.6771 Y2.5828 Z34.6661 A230.2394 -N8220 X325.7037 Y2.364 Z34.6853 A229.7943 -N8230 X325.7303 Y2.1449 Z34.7028 A229.3492 -N8240 X325.7569 Y1.9258 Z34.7186 A228.9041 -N8250 X325.7836 Y1.7065 Z34.7327 A228.459 -N8260 X325.8102 Y1.4872 Z34.7451 A228.014 -N8270 X325.8368 Y1.2677 Z34.7558 A227.5689 -N8280 X325.8634 Y1.0482 Z34.7648 A227.1238 -N8290 X325.89 Y0.8286 Z34.7721 A226.6787 -N8300 X325.9166 Y0.609 Z34.7777 A226.2337 -N8310 X325.9432 Y0.3893 Z34.7816 A225.7886 -N8320 X325.9698 Y0.1696 Z34.7838 A225.3435 -N8330 X325.9964 Y-0.0501 Z34.7842 A224.8984 -N8340 X326.023 Y-0.2699 Z34.783 A224.4533 -N8350 X326.0496 Y-0.4895 Z34.78 A224.0083 -N8360 X326.0762 Y-0.7092 Z34.7754 A223.5632 -N8370 X326.1028 Y-0.9288 Z34.769 A223.1181 -N8380 X326.1294 Y-1.1484 Z34.7609 A222.673 -N8390 X326.156 Y-1.3679 Z34.7512 A222.228 -N8400 X326.1826 Y-1.5873 Z34.7397 A221.7829 -N8410 X326.2092 Y-1.8066 Z34.7265 A221.3378 -N8420 X326.2358 Y-2.0258 Z34.7116 A220.8927 -N8430 X326.2624 Y-2.2449 Z34.695 A220.4477 -N8440 X326.289 Y-2.4639 Z34.6768 A220.0026 -N8450 X326.3156 Y-2.6827 Z34.6568 A219.5575 -N8460 X326.3422 Y-2.9013 Z34.6351 A219.1124 -N8470 X326.3688 Y-3.1198 Z34.6117 A218.6673 -N8480 X326.3954 Y-3.3381 Z34.5866 A218.2223 -N8490 X326.422 Y-3.5561 Z34.5598 A217.7772 -N8500 X326.4486 Y-3.774 Z34.5314 A217.3321 -N8510 X326.4752 Y-3.9916 Z34.5012 A216.887 -N8520 X326.5018 Y-4.209 Z34.4693 A216.442 -N8530 X326.5284 Y-4.4262 Z34.4358 A215.9969 -N8540 X326.555 Y-4.643 Z34.4006 A215.5518 -N8550 X326.5816 Y-4.8596 Z34.3637 A215.1067 -N8560 X326.6082 Y-5.0759 Z34.3251 A214.6616 -N8570 X326.6348 Y-5.2919 Z34.2848 A214.2166 -N8580 X326.6614 Y-5.5076 Z34.2429 A213.7715 -N8590 X326.6881 Y-5.7229 Z34.1992 A213.3264 -N8600 X326.7147 Y-5.9379 Z34.154 A212.8813 -N8610 X326.7413 Y-6.1526 Z34.107 A212.4363 -N8620 X326.7679 Y-6.3668 Z34.0584 A211.9912 -N8630 X326.7945 Y-6.5807 Z34.0081 A211.5461 -N8640 X326.8211 Y-6.7942 Z33.9561 A211.101 -N8650 X326.8477 Y-7.0073 Z33.9025 A210.6559 -N8660 X326.8743 Y-7.2199 Z33.8473 A210.2109 -N8670 X326.9009 Y-7.4321 Z33.7904 A209.7658 -N8680 X326.9275 Y-7.6439 Z33.7318 A209.3207 -N8690 X326.9541 Y-7.8552 Z33.6716 A208.8756 -N8700 X326.9807 Y-8.066 Z33.6098 A208.4306 -N8710 X327.0073 Y-8.2764 Z33.5463 A207.9855 -N8720 X327.0339 Y-8.4862 Z33.4812 A207.5404 -N8730 X327.0605 Y-8.6956 Z33.4144 A207.0953 -N8740 X327.0871 Y-8.9044 Z33.3461 A206.6502 -N8750 X327.1137 Y-9.1126 Z33.2761 A206.2052 -N8760 X327.1403 Y-9.3204 Z33.2045 A205.7601 -N8770 X327.1669 Y-9.5275 Z33.1313 A205.315 -N8780 X327.1935 Y-9.7341 Z33.0565 A204.8699 -N8790 X327.2201 Y-9.9401 Z32.9801 A204.4249 -N8800 X327.2467 Y-10.1455 Z32.9021 A203.9798 -N8810 X327.2733 Y-10.3503 Z32.8225 A203.5347 -N8820 X327.2999 Y-10.5544 Z32.7413 A203.0896 -N8830 X327.3265 Y-10.758 Z32.6585 A202.6445 -N8840 X327.3531 Y-10.9608 Z32.5741 A202.1995 -N8850 X327.3797 Y-11.1631 Z32.4882 A201.7544 -N8860 X327.4063 Y-11.3646 Z32.4007 A201.3093 -N8870 X327.4329 Y-11.5654 Z32.3116 A200.8642 -N8880 X327.4595 Y-11.7656 Z32.221 A200.4192 -N8890 X327.4861 Y-11.965 Z32.1288 A199.9741 -N8900 X327.5127 Y-12.1638 Z32.0351 A199.529 -N8910 X327.5393 Y-12.3618 Z31.9399 A199.0839 -N8920 X327.5659 Y-12.559 Z31.8431 A198.6388 -N8930 X327.5926 Y-12.7555 Z31.7448 A198.1938 -N8940 X327.6192 Y-12.9512 Z31.6449 A197.7487 -N8950 X327.6458 Y-13.1461 Z31.5435 A197.3036 -N8960 X327.6724 Y-13.3403 Z31.4407 A196.8585 -N8970 X327.699 Y-13.5336 Z31.3363 A196.4135 -N8980 X327.7256 Y-13.7261 Z31.2304 A195.9684 -N8990 X327.7522 Y-13.9178 Z31.123 A195.5233 -N9000 X327.7788 Y-14.1087 Z31.0142 A195.0782 -N9010 X327.8054 Y-14.2987 Z30.9038 A194.6331 -N9020 X327.832 Y-14.4878 Z30.792 A194.1881 -N9030 X327.8586 Y-14.6761 Z30.6788 A193.743 -N9040 X327.8852 Y-14.8635 Z30.564 A193.2979 -N9050 X327.9118 Y-15.0499 Z30.4478 A192.8528 -N9060 X327.9384 Y-15.2355 Z30.3302 A192.4078 -N9070 X327.965 Y-15.4202 Z30.2111 A191.9627 -N9080 X327.9916 Y-15.6039 Z30.0906 A191.5176 -N9090 X328.0182 Y-15.7867 Z29.9687 A191.0725 -N9100 X328.0448 Y-15.9685 Z29.8454 A190.6274 -N9110 X328.0714 Y-16.1494 Z29.7206 A190.1824 -N9120 X328.098 Y-16.3293 Z29.5945 A189.7373 -N9130 X328.1246 Y-16.5082 Z29.4669 A189.2922 -N9140 X328.1512 Y-16.6861 Z29.338 A188.8471 -N9150 X328.1778 Y-16.863 Z29.2077 A188.4021 -N9160 X328.2044 Y-17.0389 Z29.076 A187.957 -N9170 X328.231 Y-17.2137 Z28.943 A187.5119 -N9180 X328.2576 Y-17.3875 Z28.8086 A187.0668 -N9190 X328.2842 Y-17.5603 Z28.6729 A186.6217 -N9200 X328.3108 Y-17.732 Z28.5358 A186.1767 -N9210 X328.3374 Y-17.9026 Z28.3974 A185.7316 -N9220 X328.364 Y-18.0722 Z28.2577 A185.2865 -N9230 X328.3906 Y-18.2407 Z28.1166 A184.8414 -N9240 X328.4172 Y-18.408 Z27.9743 A184.3964 -N9250 X328.4438 Y-18.5743 Z27.8306 A183.9513 -N9260 X328.4705 Y-18.7394 Z27.6857 A183.5062 -N9270 X328.4971 Y-18.9034 Z27.5395 A183.0611 -N9280 X328.5237 Y-19.0663 Z27.392 A182.6161 -N9290 X328.5503 Y-19.228 Z27.2433 A182.171 -N9300 X328.5769 Y-19.3886 Z27.0933 A181.7259 -N9310 X328.6035 Y-19.548 Z26.9421 A181.2808 -N9320 X328.6301 Y-19.7062 Z26.7896 A180.8357 -N9330 X328.6567 Y-19.8632 Z26.6359 A180.3907 -N9340 X328.6833 Y-19.9953 Z26.5 A180.0 F18480.8829 -N9350 X331.982 Y-15.179 F2000.0 -N9360 M05 $0 -N9370 G00 Z50.0 -N9380 Z58.2843 -N9390 X0.0 Y0.0 A135.0 -N9400 M05 M30 diff --git a/nc_files/plasmac/metric_ramp_pierce.ngc b/nc_files/plasmac/metric_ramp_pierce.ngc deleted file mode 100644 index 4acab021e39..00000000000 --- a/nc_files/plasmac/metric_ramp_pierce.ngc +++ /dev/null @@ -1,52 +0,0 @@ -; file name: ramp.ngc -; date and time: Wed Nov 08 2023 21:15:23 -; postprocessor: LinuxCNC PlasmaC.scpost rev: 0.5 -; -;begin pre-amble - G21 (units: metric) - G40 (cutter compensation: off) - G90 (distance mode: absolute) - M52 P1 (enable adaptive feed) - M65 P2 (enable THC) - M65 P3 (enable torch) - M68 E3 Q0 (velocity 100%) - G64 P0.254 Q0.025 (tracking tolerances: 0.254mm) -;end pre-amble - m159 p601 q2 (pierce type - ramp) - m159 p602 q50 (pierce motino delay as a percentage of total pierce time - 50%) - m159 p603 q2.5 (pierce end height) - m159 p604 q1 (cut height delay in seconds) - m159 p605 q980 (gouge speed in units per min) - m159 p606 q5 (Gouge distance in machine units) - m159 p607 q245 (Creep speed in unit per min) - m159 p608 q3 (Creep distance in machine units) - M67 E3 Q100 -; -;begin material setup - T0 M6 (select plasma tool) - G43 H0 (apply tool offsets) - (o=0,kw=2, ph=4, pd=1, ch=1.5, fr=490, th=1, cv=99, pe=0.3, jh=0, jd=0) - F#<_hal[plasmac.cut-feed-rate]> -;end material setup - G0 X0 Y0 - M3 $0 S1 (plasma start) - M67 E3 Q100 - G1 X0 Y60 - m159 p609 (reset to default pierce behaviour) - M5 $0 (plasma end) - ; - ;begin post-amble - G40 (cutter compensation: off) - G90 (distance mode: absolute) - M65 P2 (enable THC) - M65 P3 (enable torch) - M68 E3 Q0 (velocity 100%) - M5 $-1 (backup stop) - ;end post-amble - ; - ;begin statistics - ;Pierces = 1 - ; Cuts = 1, Length = 60.00mm - ;end statistics - ; - M30 (end program) diff --git a/nc_files/plasmac/metric_squares.ngc b/nc_files/plasmac/metric_squares.ngc deleted file mode 100644 index 81b8faae0bb..00000000000 --- a/nc_files/plasmac/metric_squares.ngc +++ /dev/null @@ -1,27 +0,0 @@ -(metric squares) - -#1 = 50 (Scale) -#2 = 3 (Iterations) -#3 = 762 (Feed Rate) -#4 = 0.5 -#5 = [#1*#2*#4] - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -o100 repeat [#2] - G0 X[#5-#4*#1] Y[#5-#4*#1] - M3 $0 S1 (start plasma torch) - G1 Y[#5+#4*#1] - G1 X[#5+#4*#1] - G1 Y[#5-#4*#1] - G1 X[#5-#4*#1] - M5 $0 (stop plasma torch) - #4 = [#4+0.5] -o100 endrepeat - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmac/metric_temporary_materials.ngc b/nc_files/plasmac/metric_temporary_materials.ngc deleted file mode 100644 index 6e0a15718a7..00000000000 --- a/nc_files/plasmac/metric_temporary_materials.ngc +++ /dev/null @@ -1,37 +0,0 @@ -(metric temporary materials) - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -(o=0, na=Steel 3mm, ph=3.0, pd=0.0, ch=1.0, fr=3000, kw=1.0) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X25 Y25 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -(o=0, na=Steel 3.1mm, ph=3.1, pd=0.1, ch=1.1, fr=3001, kw=1.1) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y50 -M3 $0 S1 (start plasma torch) -G1 X25 -M5 $0 (stop plasma torch) - -(o=0, na=Steel 3.2mm, ph=3.2, pd=0.2, ch=1.2, fr=3002, kw=1.2) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 X25 Y75 -M3 $0 S1 (start plasma torch) -G1 X125 -M5 $0 (stop plasma torch) - -(o=0, na=Steel 3.3mm, ph=3.3, pd=0.3, ch=1.3, fr=3003, kw=1.3) -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) -G0 Y100 -M3 $0 S1 (start plasma torch) -G1 X25 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M190 P-1 (default material) -M2 (end program) \ No newline at end of file diff --git a/nc_files/plasmac/metric_wrench.ngc b/nc_files/plasmac/metric_wrench.ngc deleted file mode 100644 index edf525af17c..00000000000 --- a/nc_files/plasmac/metric_wrench.ngc +++ /dev/null @@ -1,37 +0,0 @@ -(metric wrench) - -# = 4 (holes and arcs with overburn) - -G21 (metric units) -G64 P0.125 (path tolerance) -M52 P1 (enable adaptive feed) - -F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) - -(the hole) -G0 X149.739 Y27.45 -M3 $0 S1 (start plasma torch) -G3 X149.739 Y27.45 I-2 J0 -M5 $0 (stop plasma torch) - -(the wrench) -G0 X4.920 Y38.710 -M3 $0 S1 (start plasma torch) -G1 X4.920 Y43.710 -G2 X5.900 Y45.928 I3 J-0 -G2 X43.068 Y42 I16.833 J-18.538 -G3 X57.871 Y35.45 I14.721 J13.267 -G1 X147.739 Y33.45 -G2 X147.739 Y21.45 I0 J-6 -G1 X57.871 Y19.45 -G3 X43.068 Y12.9 I0 J-20 -G2 X5.9 Y8.972 I-20.32 J14.46 -G2 X4.92 Y11.189 I1.653 J2.055 -G1 X4.92 Y13.7 -G1 X21.92 Y13.70 -G3 X21.92 Y41.2 I-8.182 J13.75 -G1 X4.92 Y41.2 -M5 $0 (stop plasma torch) - -G0 X0 Y0 -M2 (end program) diff --git a/nc_files/plasmatest.ngc b/nc_files/plasmatest.ngc deleted file mode 100644 index acdb28c1c4a..00000000000 --- a/nc_files/plasmatest.ngc +++ /dev/null @@ -1,404 +0,0 @@ -N0000 (Filename: PlasmaTest.tap) -N0010 (Post processor: EMC-Plasma.post) -N0020 (Date: 1.7.2008) -N0030 G21 (Units: Metric) -N0040 G90 G40 -N0050 F1 -N0060 S500 -N0070 (Part: PlasmaTest) -N0080 (Process: Plasma, DEFAULT, Plasma 80A 3mm) -N0090 M06 T1 F5840 (Plasma 80A 3mm) -N0100 G00 -N0110 X164.0817 Y167.1007 -N0120 M03 -N0130 G03 X163.1598 Y168.0227 I-0.9220 J0.0000 F5840.0 -N0140 G01 Y149.6432 -N0150 X164.3104 -N0160 Y155.7606 -N0170 G02 X164.5351 Y156.2960 I0.7500 J0.0000 -N0180 G01 X167.7335 Y159.4342 -N0190 G02 X168.8713 Y159.3317 I0.5253 J-0.5353 -N0200 G01 X175.7179 Y149.6432 -N0210 X177.3114 -N0220 X169.4923 Y160.2594 -N0230 G02 X169.5707 Y161.2393 I0.6039 J0.4448 -N0240 G01 X176.4791 Y168.0227 -N0250 X174.8909 -N0260 X165.5906 Y158.7261 -N0270 G02 X164.3104 Y159.2565 I-0.5302 J0.5304 -N0280 G01 Y168.0227 -N0290 X163.1598 -N0300 M05 -N0310 G00 X152.9049 Y164.0884 -N0320 M03 -N0330 G03 X149.5772 Y168.3800 I-3.8096 J0.4820 -N0340 G01 X147.7354 Y168.2182 -N0350 X146.0809 Y167.7357 -N0360 X144.6123 Y166.9367 -N0370 X143.3157 Y165.8152 -N0380 X142.2560 Y164.4074 -N0390 X141.4941 Y162.7420 -N0400 X141.0297 Y160.7979 -N0410 X140.8735 Y158.5826 -N0420 X141.1399 Y156.1827 -N0430 X141.9302 Y153.9351 -N0440 X143.2171 Y152.0029 -N0450 X144.9829 Y150.5353 -N0460 X147.1345 Y149.6016 -N0470 X149.5803 Y149.2877 -N0480 X151.8800 Y149.5716 -N0490 X154.0070 Y150.4191 -N0500 X155.8060 Y151.8044 -N0510 X157.1496 Y153.7273 -N0520 X157.9963 Y156.0978 -N0530 X158.2822 Y158.8005 -N0540 X158.0104 Y161.4665 -N0550 X157.2053 Y163.8050 -N0560 X155.9075 Y165.7275 -N0570 X154.1388 Y167.1674 -N0580 X151.9986 Y168.0736 -N0590 X149.5772 Y168.3800 -N0600 M05 -N0610 G00 X133.8400 Y125.4100 -N0620 M03 -N0630 G03 X130.0000 Y129.2500 I-3.8400 J0.0000 -N0640 G02 X129.2500 Y130.0000 I0.0000 J0.7500 -N0650 G01 Y190.0000 -N0660 G02 X130.0000 Y190.7500 I0.7500 J0.0000 -N0670 G01 X190.0000 -N0680 G02 X190.7500 Y190.0000 I0.0000 J-0.7500 -N0690 G01 Y130.0000 -N0700 G02 X190.0000 Y129.2500 I-0.7500 J0.0000 -N0710 G01 X130.0000 -N0720 M05 -N0730 G00 X152.2556 Y227.2129 -N0740 M03 -N0750 G03 X156.0956 Y223.3729 I3.8400 J0.0000 -N0760 G02 X156.8456 Y222.6229 I0.0000 J-0.7500 -N0770 G01 Y202.7434 -N0780 G02 X156.0956 Y201.9934 I-0.7500 J0.0000 -N0790 G01 X153.2774 -N0800 G02 X152.6494 Y202.3334 I0.0000 J0.7500 -N0810 G01 X144.0745 Y215.4691 -N0820 Y202.7434 -N0830 G02 X143.3245 Y201.9934 I-0.7500 J0.0000 -N0840 G01 X140.6739 -N0850 G02 X139.9239 Y202.7434 I0.0000 J0.7500 -N0860 G01 Y222.6229 -N0870 G02 X140.6739 Y223.3729 I0.7500 J0.0000 -N0880 G01 X143.4921 -N0890 G02 X144.1201 Y223.0329 I0.0000 J-0.7500 -N0900 G01 X152.6950 Y209.8973 -N0910 Y222.6229 -N0920 G02 X153.4450 Y223.3729 I0.7500 J0.0000 -N0930 G01 X156.0956 -N0940 M05 -N0950 G00 X165.9475 Y228.0201 -N0960 M03 -N0970 G03 X169.2752 Y223.7285 I3.8096 J-0.4820 -N0980 G01 X171.8792 Y223.3990 -N0990 G02 X172.0775 Y223.3456 I-0.0941 J-0.7441 -N1000 G01 X174.4114 Y222.3572 -N1010 G02 X174.5924 Y222.2483 I-0.2925 J-0.6906 -N1020 G01 X176.5300 Y220.6709 -N1030 G02 X176.6782 Y220.5089 I-0.4735 J-0.5816 -N1040 G01 X178.0933 Y218.4125 -N1050 G02 X178.1809 Y218.2370 I-0.6216 J-0.4196 -N1060 G01 X179.0464 Y215.7231 -N1070 G02 X179.0833 Y215.5550 I-0.7091 J-0.2441 -N1080 G01 X179.3718 Y212.7254 -N1090 G02 X179.3715 Y212.5704 I-0.7461 J-0.0761 -N1100 G01 X179.0680 Y209.7012 -N1110 G02 X179.0285 Y209.5278 I-0.7458 J0.0789 -N1120 G01 X178.1178 Y206.9782 -N1130 G02 X178.0263 Y206.8008 I-0.7063 J0.2523 -N1140 G01 X176.5591 Y204.7011 -N1150 G02 X176.4019 Y204.5365 I-0.6148 J0.4296 -N1160 G01 X174.4288 Y203.0170 -N1170 G02 X174.2488 Y202.9145 I-0.4576 J0.5942 -N1180 G01 X171.9349 Y201.9926 -N1190 G02 X171.7492 Y201.9449 I-0.2776 J0.6967 -N1200 G01 X169.2598 Y201.6376 -N1210 G02 X169.0724 Y201.6381 I-0.0919 J0.7443 -N1220 G01 X166.4274 Y201.9776 -N1230 G02 X166.2244 Y202.0335 I0.0955 J0.7439 -N1240 G01 X163.8769 Y203.0522 -N1250 G02 X163.6960 Y203.1634 I0.2986 J0.6880 -N1260 G01 X161.7636 Y204.7695 -N1270 G02 X161.6188 Y204.9305 I0.4794 J0.5768 -N1280 G01 X160.2191 Y207.0321 -N1290 G02 X160.1358 Y207.1991 I0.6242 J0.4157 -N1300 G01 X159.2858 Y209.6162 -N1310 G02 X159.2479 Y209.7823 I0.7075 J0.2488 -N1320 G01 X158.9646 Y212.3350 -N1330 G02 X158.9619 Y212.4705 I0.7454 J0.0827 -N1340 G01 X159.1272 Y214.8151 -N1350 G02 X159.1458 Y214.9366 I0.7481 J-0.0527 -N1360 G01 X159.6416 Y217.0119 -N1370 G02 X159.6890 Y217.1497 I0.7295 J-0.1743 -N1380 G01 X160.5153 Y218.9557 -N1390 G02 X160.5981 Y219.0947 I0.6820 J-0.3120 -N1400 G01 X161.7549 Y220.6314 -N1410 G02 X161.8634 Y220.7476 I0.5992 J-0.4511 -N1420 G01 X163.2816 Y221.9743 -N1430 G02 X163.4138 Y222.0659 I0.4907 J-0.5672 -N1440 G01 X165.0244 Y222.9422 -N1450 G02 X165.1729 Y223.0034 I0.3584 J-0.6588 -N1460 G01 X166.9758 Y223.5291 -N1470 G02 X167.1201 Y223.5563 I0.2100 J-0.7200 -N1480 G01 X169.1154 Y223.7315 -N1490 G02 X169.2752 Y223.7285 I0.0656 J-0.7471 -N1500 M05 -N1510 G00 X447.2051 Y175.3525 -N1520 M03 -N1530 G03 X446.0887 Y170.0379 I2.0991 J-3.2155 -N1540 G01 X454.6636 Y156.9022 -N1550 Y169.6279 -N1560 G02 X455.4136 Y170.3779 I0.7500 J0.0000 -N1570 G01 X458.0642 -N1580 G02 X458.8142 Y169.6279 I0.0000 J-0.7500 -N1590 G01 Y149.7484 -N1600 G02 X458.0642 Y148.9984 I-0.7500 J0.0000 -N1610 G01 X455.2461 -N1620 G02 X454.6180 Y149.3384 I0.0000 J0.7500 -N1630 G01 X446.0431 Y162.4741 -N1640 Y149.7484 -N1650 G02 X445.2931 Y148.9984 I-0.7500 J0.0000 -N1660 G01 X442.6425 -N1670 G02 X441.8925 Y149.7484 I0.0000 J0.7500 -N1680 G01 Y169.6279 -N1690 G02 X442.6425 Y170.3779 I0.7500 J0.0000 -N1700 G01 X445.4607 -N1710 G02 X446.0887 Y170.0379 I0.0000 J-0.7500 -N1720 M05 -N1730 G00 X467.9162 Y175.0250 -N1740 M03 -N1750 G03 X471.2438 Y170.7334 I3.8096 J-0.4820 -N1760 G01 X473.8478 Y170.4040 -N1770 G02 X474.0462 Y170.3505 I-0.0941 J-0.7441 -N1780 G01 X476.3800 Y169.3622 -N1790 G02 X476.5611 Y169.2532 I-0.2925 J-0.6906 -N1800 G01 X478.4986 Y167.6759 -N1810 G02 X478.6468 Y167.5139 I-0.4735 J-0.5816 -N1820 G01 X480.0620 Y165.4175 -N1830 G02 X480.1495 Y165.2420 I-0.6216 J-0.4196 -N1840 G01 X481.0150 Y162.7281 -N1850 G02 X481.0520 Y162.5600 I-0.7091 J-0.2441 -N1860 G01 X481.3405 Y159.7303 -N1870 G02 X481.3402 Y159.5754 I-0.7461 J-0.0761 -N1880 G01 X481.0366 Y156.7062 -N1890 G02 X480.9971 Y156.5328 I-0.7458 J0.0789 -N1900 G01 X480.0864 Y153.9831 -N1910 G02 X479.9949 Y153.8058 I-0.7063 J0.2523 -N1920 G01 X478.5277 Y151.7061 -N1930 G02 X478.3705 Y151.5415 I-0.6148 J0.4296 -N1940 G01 X476.3974 Y150.0220 -N1950 G02 X476.2174 Y149.9195 I-0.4576 J0.5942 -N1960 G01 X473.9035 Y148.9975 -N1970 G02 X473.7178 Y148.9499 I-0.2776 J0.6967 -N1980 G01 X471.2284 Y148.6426 -N1990 G02 X471.0410 Y148.6431 I-0.0919 J0.7443 -N2000 G01 X468.3960 Y148.9826 -N2010 G02 X468.1930 Y149.0385 I0.0955 J0.7439 -N2020 G01 X465.8455 Y150.0572 -N2030 G02 X465.6647 Y150.1684 I0.2986 J0.6880 -N2040 G01 X463.7322 Y151.7744 -N2050 G02 X463.5874 Y151.9355 I0.4794 J0.5768 -N2060 G01 X462.1877 Y154.0371 -N2070 G02 X462.1044 Y154.2040 I0.6242 J0.4157 -N2080 G01 X461.2545 Y156.6212 -N2090 G02 X461.2166 Y156.7873 I0.7075 J0.2488 -N2100 G01 X460.9333 Y159.3400 -N2110 G02 X460.9305 Y159.4755 I0.7454 J0.0827 -N2120 G01 X461.0958 Y161.8201 -N2130 G02 X461.1144 Y161.9416 I0.7481 J-0.0527 -N2140 G01 X461.6102 Y164.0169 -N2150 G02 X461.6577 Y164.1547 I0.7295 J-0.1743 -N2160 G01 X462.4839 Y165.9607 -N2170 G02 X462.5667 Y166.0997 I0.6820 J-0.3120 -N2180 G01 X463.7235 Y167.6364 -N2190 G02 X463.8320 Y167.7526 I0.5992 J-0.4511 -N2200 G01 X465.2502 Y168.9793 -N2210 G02 X465.3824 Y169.0709 I0.4907 J-0.5672 -N2220 G01 X466.9930 Y169.9472 -N2230 G02 X467.1415 Y170.0084 I0.3584 J-0.6588 -N2240 G01 X468.9444 Y170.5341 -N2250 G02 X469.0888 Y170.5612 I0.2100 J-0.7200 -N2260 G01 X471.0841 Y170.7365 -N2270 G02 X471.2438 Y170.7334 I0.0656 J-0.7471 -N2280 M05 -N2290 G00 X434.5900 Y134.5900 -N2300 M03 -N2310 G03 X430.7500 Y130.7500 I0.0000 J-3.8400 -N2320 G01 X489.2500 -N2330 Y189.2500 -N2340 X430.7500 -N2350 Y130.7500 -N2360 M05 -N2370 G00 X463.6377 Y219.5319 -N2380 M03 -N2390 G03 X462.7158 Y220.4539 I-0.9220 J0.0000 -N2400 G01 Y202.0743 -N2410 X463.8664 -N2420 Y208.1918 -N2430 G02 X464.0911 Y208.7272 I0.7500 J0.0000 -N2440 G01 X467.2895 Y211.8653 -N2450 G02 X468.4273 Y211.7628 I0.5253 J-0.5353 -N2460 G01 X475.2739 Y202.0743 -N2470 X476.8674 -N2480 X469.0483 Y212.6906 -N2490 G02 X469.1267 Y213.6705 I0.6039 J0.4448 -N2500 G01 X476.0351 Y220.4539 -N2510 X474.4469 -N2520 X465.1466 Y211.1572 -N2530 G02 X463.8664 Y211.6877 I-0.5302 J0.5304 -N2540 G01 Y220.4539 -N2550 X462.7158 -N2560 M05 -N2570 G00 X452.4609 Y216.5195 -N2580 M03 -N2590 G03 X449.1332 Y220.8112 I-3.8096 J0.4820 -N2600 G01 X447.2914 Y220.6494 -N2610 X445.6369 Y220.1669 -N2620 X444.1683 Y219.3679 -N2630 X442.8717 Y218.2463 -N2640 X441.8120 Y216.8386 -N2650 X441.0501 Y215.1732 -N2660 X440.5857 Y213.2290 -N2670 X440.4295 Y211.0138 -N2680 X440.6959 Y208.6139 -N2690 X441.4862 Y206.3663 -N2700 X442.7731 Y204.4340 -N2710 X444.5389 Y202.9665 -N2720 X446.6905 Y202.0328 -N2730 X449.1363 Y201.7188 -N2740 X451.4360 Y202.0027 -N2750 X453.5630 Y202.8502 -N2760 X455.3620 Y204.2356 -N2770 X456.7056 Y206.1584 -N2780 X457.5523 Y208.5290 -N2790 X457.8382 Y211.2316 -N2800 X457.5664 Y213.8976 -N2810 X456.7613 Y216.2361 -N2820 X455.4635 Y218.1586 -N2830 X453.6948 Y219.5985 -N2840 X451.5546 Y220.5048 -N2850 X449.1332 Y220.8112 -N2860 M05 -N2870 G00 X198.1468 Y205.9716 -N2880 M03 -N2890 G03 X197.2973 Y211.3353 I-3.1066 J2.2571 -N2900 G02 X189.9858 Y255.1134 I18.6044 J25.6068 -N2910 G01 X160.0000 Y298.6772 -N2920 X130.0142 Y255.1134 -N2930 G02 X78.8079 Y217.9099 I-25.9159 J-18.1714 -N2940 G01 X28.1101 Y202.8536 -N2950 X60.2756 Y160.8734 -N2960 G02 X79.8347 Y100.6768 I9.2735 J-30.2627 -N2970 G01 X78.4876 Y47.8078 -N2980 X128.3528 Y65.4264 -N2990 G02 X191.6472 Y65.4264 I31.6472 J-0.5320 -N3000 G01 X241.5124 Y47.8078 -N3010 X240.1653 Y100.6768 -N3020 G02 X259.7244 Y160.8734 I10.2855 J29.9339 -N3030 G01 X291.8899 Y202.8536 -N3040 X241.1921 Y217.9099 -N3050 G02 X197.2973 Y211.3353 I-25.2904 J19.0322 -N3060 M05 -N3070 G00 X63.8489 Y258.6908 -N3080 M03 -N3090 G03 X64.7709 Y257.7689 I0.9220 J0.0000 -N3100 G01 Y263.8863 -N3110 G02 X64.9956 Y264.4217 I0.7500 J0.0000 -N3120 G01 X68.1941 Y267.5599 -N3130 G02 X69.3318 Y267.4574 I0.5253 J-0.5353 -N3140 G01 X76.1785 Y257.7689 -N3150 X77.7720 -N3160 X69.9528 Y268.3851 -N3170 G02 X70.0312 Y269.3650 I0.6039 J0.4448 -N3180 G01 X76.9396 Y276.1484 -N3190 X75.3514 -N3200 X66.0511 Y266.8518 -N3210 G02 X64.7709 Y267.3822 I-0.5302 J0.5304 -N3220 G01 Y276.1484 -N3230 X63.6203 -N3240 Y257.7689 -N3250 X64.7709 -N3260 M05 -N3270 G00 X53.3654 Y272.2141 -N3280 M03 -N3290 G03 X50.0377 Y276.5057 I-3.8096 J0.4820 -N3300 G01 X48.1960 Y276.3439 -N3310 X46.5414 Y275.8614 -N3320 X45.0728 Y275.0624 -N3330 X43.7763 Y273.9409 -N3340 X42.7166 Y272.5331 -N3350 X41.9546 Y270.8677 -N3360 X41.4902 Y268.9236 -N3370 X41.3341 Y266.7083 -N3380 X41.6004 Y264.3084 -N3390 X42.3908 Y262.0608 -N3400 X43.6777 Y260.1285 -N3410 X45.4434 Y258.6610 -N3420 X47.5950 Y257.7273 -N3430 X50.0408 Y257.4133 -N3440 X52.3406 Y257.6972 -N3450 X54.4675 Y258.5447 -N3460 X56.2666 Y259.9301 -N3470 X57.6101 Y261.8529 -N3480 X58.4568 Y264.2235 -N3490 X58.7428 Y266.9262 -N3500 X58.4710 Y269.5922 -N3510 X57.6659 Y271.9306 -N3520 X56.3681 Y273.8531 -N3530 X54.5993 Y275.2930 -N3540 X52.4592 Y276.1993 -N3550 X50.0377 Y276.5057 -N3560 M05 -N3570 G00 X5.4100 Y306.1600 -N3580 M03 -N3590 G03 X9.2500 Y310.0000 I0.0000 J3.8400 -N3600 G02 X10.0000 Y310.7500 I0.7500 J0.0000 -N3610 G01 X310.0000 -N3620 G02 X310.7500 Y310.0000 I0.0000 J-0.7500 -N3630 G01 Y10.0000 -N3640 G02 X310.0000 Y9.2500 I-0.7500 J0.0000 -N3650 G01 X10.0000 -N3660 G02 X9.2500 Y10.0000 I0.0000 J0.7500 -N3670 G01 Y310.0000 -N3680 M05 -N3690 G00 X565.9790 Y160.2565 -N3700 M03 -N3710 G03 X560.5953 Y159.5438 I-2.3355 J-3.0481 -N3720 G02 X559.7682 Y159.2867 I-0.5953 J0.4562 -N3730 G03 X541.1335 Y101.9348 I-9.3174 J-28.6760 -N3740 G02 X541.6515 Y101.2406 I-0.2318 J-0.7133 -N3750 G01 X543.0397 Y46.7567 -N3760 G02 X542.0401 Y46.0305 I-0.7498 J-0.0191 -N3770 G01 X490.6518 Y64.1872 -N3780 G02 X490.1517 Y64.8943 I0.2499 J0.7072 -N3790 G03 X429.8483 Y64.8943 I-30.1517 J0.0000 -N3800 G02 X429.3482 Y64.1872 I-0.7500 J0.0000 -N3810 G01 X377.9599 Y46.0305 -N3820 G02 X376.9603 Y46.7567 I-0.2499 J0.7072 -N3830 G01 X378.3485 Y101.2406 -N3840 G02 X378.8665 Y101.9348 I0.7498 J-0.0191 -N3850 G03 X360.2318 Y159.2867 I-9.3174 J28.6760 -N3860 G02 X359.4047 Y159.5438 I-0.2318 J0.7133 -N3870 G01 X326.2568 Y202.8062 -N3880 G02 X326.6386 Y203.9813 I0.5953 J0.4562 -N3890 G01 X378.8848 Y219.4975 -N3900 G02 X379.7051 Y219.2194 I0.2135 J-0.7190 -N3910 G03 X428.4915 Y254.6648 I24.3932 J17.7227 -N3920 G02 X428.4805 Y255.5309 I0.6068 J0.4408 -N3930 G01 X459.3822 Y300.4252 -N3940 G02 X460.6178 Y300.4252 I0.6178 J-0.4252 -N3950 G01 X491.5195 Y255.5309 -N3960 G02 X491.5085 Y254.6648 I-0.6178 J-0.4252 -N3970 G03 X540.2949 Y219.2194 I24.3932 J-17.7227 -N3980 G02 X541.1152 Y219.4975 I0.6068 J-0.4408 -N3990 G01 X593.3614 Y203.9813 -N4000 G02 X593.7432 Y202.8062 I-0.2135 J-0.7190 -N4010 G01 X560.5953 Y159.5438 -N4020 M05 -N4030 M05 M30 diff --git a/nc_files/polar.ngc b/nc_files/polar.ngc deleted file mode 100644 index 8040eb19af5..00000000000 --- a/nc_files/polar.ngc +++ /dev/null @@ -1,21 +0,0 @@ -; how to use polar coordinates: -; use the format @radius^angle in place of specifying X,Y words - -G20 G90 -G0 X0 Y0 Z0 - -; drill three bolt holes on a 5" diameter -G0 X2.5 Y0 -G81 R.1 Z-0.5 F60 -^120 -^240 - -G90 @1 ^33 -; drill a row of holes 1" apart along a 33 degree feature -G91 G81 @1 R.1 Z-0.5 L5 - -G90 G0 X2 Y0 -; drill 17 evenly-spaced bolt holes on a 4" diameter -G91 G81 ^[360/17] R.1 Z-0.5 L17 - -M2 diff --git a/nc_files/probe-hole.ngc b/nc_files/probe-hole.ngc deleted file mode 100644 index 818e71ca357..00000000000 --- a/nc_files/probe-hole.ngc +++ /dev/null @@ -1,73 +0,0 @@ -O sub -G20 F25 - -#1000=#1 ;max radius - -G91 G38.3 Z.00001 -#1001=#5061 -#1002=#5062 - -G91 G38.2 X#1000 -#1003=#5061 -G90 G0 X#1001 -G91 G38.2 X[0-#1000] -#1004=#5061 -#1001=[[#1003+#1004]/2] -G90 G0 X#1001 - -G91 G38.2 Y#1000 -#1005=#5062 -G90 G0 Y#1002 -G91 G38.2 Y[0-#1000] -#1006=#5062 -#1002=[[#1005+#1006]/2] -G90 G0 Y#1002 - - -G91 G38.2 X#1000 -#1003=#5061 -G90 G0 X#1001 -G91 G38.2 X[0-#1000] -#1004=#5061 -#1001=[[#1003+#1004]/2] -G90 G0 X#1001 - -G91 G38.2 Y#1000 -#1005=#5062 -G90 G0 Y#1002 -G91 G38.2 Y[0-#1000] -#1006=#5062 -#1002=[[#1005+#1006]/2] -G90 G0 Y#1002 - - -F0.1 - -G90 G0 X[#1003-0.005] -G91 G38.2 X0.010 -#1003=#5061 -G90 G0 X[#1004+0.005] -G91 G38.2 X-0.010 -#1004=#5061 -#1001=[[#1003+#1004]/2] -G90 G0 X#1001 - -G90 G0 Y[#1005-0.005] -G91 G38.2 Y0.010 -#1005=#5062 -G90 G0 Y[#1006+0.005] -G91 G38.2 Y-0.010 -#1006=#5062 -#1002=[[#1005+#1006]/2] -G90 G0 Y#1002 -G91 G1 F1 X[0-#5071] Y[0-#5072] -G90 - -#1007=[#1003-#1004+[6.0/25.4]] -#1008=[#1005-#1006+[6.0/25.4]] -#1009=[[#1007+#1008]/2] -#1010=[atan[#1002]/[#1001]] -#1011=[sqrt[[#1001*#1001]+[#1002*#1002]]] - -(debug,Dia #1009 Ang #1010 Dist #1011) -O endsub diff --git a/nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc deleted file mode 100644 index a74b278a56a..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc +++ /dev/null @@ -1,116 +0,0 @@ -(author: Chris P) -(version: 0.3) -(date: 04/25/19) - -(Probe back top edge angle for y,z 0,0 position and edge angle) -(Start probe position is over back edge of stock, set edge width,) -(step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5420 - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y[#] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<120> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 X-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<140> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[#] Y[# + #] - o return - o<140> endif - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[#] Y[# + #] R[#] - o return - o<150> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc b/nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc deleted file mode 100644 index f5c3cc90418..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc +++ /dev/null @@ -1,110 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe back left inside corner for x,y,z 0,0,0 position) -(Start probe position is over back left inside corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) - G91 - G0 X[#] Y-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - G90 - (Current X Position including offsets in current program units) - # = #5420 - - (Call sub "probe_x_minus_sub" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (move to X start Position) - G90 - G0 X[#] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (move to Y start Position) - G90 - G0 Y[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc b/nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc deleted file mode 100644 index 58739b6c4ae..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc +++ /dev/null @@ -1,106 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe back left top corner for x,y,z 0,0,0 position) -(Start probe position is over back left corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - - (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) - G0 X[#] Y[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_back_outside.ngc b/nc_files/probe/basic_probe/macros/probe_back_outside.ngc deleted file mode 100644 index 62d1cdf2397..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_back_outside.ngc +++ /dev/null @@ -1,82 +0,0 @@ -(author: Chris P) -(version: 0.3) -(date: 04/25/19) - -(Probe back top side for y,z 0,0 position) -(Start probe position is over back edge of stock) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y[#] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<130> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 Y[# + #] - o return - o<130> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc b/nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc deleted file mode 100644 index 28bc32888c8..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc +++ /dev/null @@ -1,110 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe back right inside corner for x,y,z 0,0,0 position) -(Start probe position is over back right inside corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Step Off Width X and Y) - G91 - G0 X-[#] Y-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - G90 - (Current X Position including offsets in current program units) - # = #5420 - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (move to X start Position) - G90 - G0 X[#] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (move to Y start Position) - G90 - G0 Y[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc b/nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc deleted file mode 100644 index f7aa1d35036..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc +++ /dev/null @@ -1,105 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/23/19) - -(Probe back right top corner for x,y,z 0,0,0 position) -(Start probe position is over back right corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - (Probe Y Positioning Move) - G0 X-[#] Y[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc b/nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc deleted file mode 100644 index 71fe4f29acb..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc +++ /dev/null @@ -1,296 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/8/19) - -(Probe calibration offset using defined diam round boss) -(Start probe position is over center of stock in X and Y axis) -(within max z distance, ensure all settings have been) -(set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=1.0000) - # = #17 (=0.0000) - # = #18 (=0.0000) - # = #19 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Call sub "probe_z_minus_sub" to Probe top of Workpiece) - o call [#1][#2][#5][#8][#9][#15] - - (Probe X Positioning Move, X hint/2 + Step Off Width) - G91 - G0 X-[#/2 + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in X, X Hint + Step Off Width at Rapid Speed) - G91 - G0 X[# + # + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E10 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] - - (Probe Y Positioning Move, Y hint/2 + Step Off Width) - G91 - G0 Y-[#/2 + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) - G91 - G0 Y[# + # + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G0 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E11 Q[#] - - (Move to z clearance plane) - G91 - G0 Z[#] - - (Move to Y Center) - G90 - G0 Y[#] - - (Probe X Positioning Move, X hint/2 + Step Off Width) - G91 - G0 X-[#/2 + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in X, X Hint + Step Off Width at Rapid Speed) - G0 X[# + # + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - o<120> if [# GT #] - # = [# - #] - o<120> else - # = [# - #] - o<120> endif - - (Completed probed width calculations) - # = [# - #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] - - (Probe Y Positioning Move, Y hint/2 + Step Off Width) - G91 - G0 Y-[#/2 + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) - G0 Y[# + # + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G0 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - o<130> if [# GT #] - # = [# - #] - o<130> else - # = [# - #] - o return - o<130> endif - - (Completed probed width calculations) - # = [# - #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - # = [[# + #] / 2] - - M68 E2 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - o<140> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# - #] - o<140> else - # = [[# - #] / 2] - # = [# + #] - o<140> endif - - o<150> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# - #] - o<150> else - # = [[# - #] / 2] - # = [# + #] - o<150> endif - - # = [[# + #] / 2] - - o<160> if [# EQ 0] - M68 E12 Q[ABS[#]] - o<160> else if [# EQ 1] - M68 E12 Q[ABS[#]] - o<160> else - M68 E12 Q[ABS[#]] - o<160> endif - - # = [# + #] - - # = [# + #] - - (probe mode rules for WCO or probe position measuring only) - o<170> if [# EQ 0] - (Record XY Zero in selected WCO) - G10 L2 P#5220 X[#] Y[#] - o return - o<170> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc deleted file mode 100644 index f8fbe1ec3dc..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc +++ /dev/null @@ -1,204 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/8/19) - -(Probe calibration offset using defined diam round pocket) -(Start probe position is over left side edge of pocket wall) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=1.0000) - # = #17 (=0.0000) - # = #18 (=0.0000) - # = #19 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Call sub "probe_z_minus_sub" to Probe top of Workpiece) - o call [#1][#2][#5][#8][#9][#15] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x-) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (Call sub "probe_x_plus" to Probe x+) - o call [#1][#3 + #13][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E10 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero) - G90 - G0 X[#] - - (Call sub "probe_y_plus" to Probe Y+) - o call [#1][#3 + #13 / 2][#4][#8][#9][#10] - - # = #5062 - - (Call sub "probe_y_minus" to Probe Y-) - o call [#1][#3 + #13][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E11 Q[#] - - (Probe Completion Move to Z Clearance Plane, Y Zero) - G90 - G0 Y[#] - - (Call sub "probe_x_minus" to Probe x-) - o call [#1][#3 + #13 / 2][#4][#8][#9][#10] - - # = #5061 - - (Call sub "probe_x_plus" to Probe x+) - o call [#1][#3 + #13][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - G90 - G0 X[#] - - (Call sub "probe_y_plus" to Probe Y+) - o call [#1][#3 + #13 / 2][#4][#8][#9][#10] - - # = #5062 - - (Call sub "probe_y_minus" to Probe Y-) - o call [#1][#3 + #13][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed diameter calculations) - # = [# + #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - # = [[# + #] / 2] - - M68 E2 Q[#] - - G90 - G0 Y[#] - G91 - G0 Z[#] - - o<120> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# + #] - o<120> else - # = [[# - #] / 2] - # = [# - #] - o<120> endif - - o<130> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# + #] - o<130> else - # = [[# - #] / 2] - # = [# - #] - o<130> endif - - # = [[# + #] / 2] - - o<140> if [# EQ 0] - M68 E12 Q[ABS[#]] - o<140> else if [# EQ 1] - M68 E12 Q[ABS[#]] - o<140> else - M68 E12 Q[ABS[#]] - o<140> endif - - # = [# + #] - - # = [# + #] - - (probe mode rules for WCO or probe position measuring only) - o<150> if [# EQ 0] - (Record Y Zero in selected WCO) - G10 L2 P#5220 X[#] Y[#] - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - o return - o<150> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc b/nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc deleted file mode 100644 index 9ff557624ca..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc +++ /dev/null @@ -1,204 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/8/19) - -(Probe calibration offset using defined width square boss) -(Start probe position is over center of stock in X and Y axis) -(within max z distance, ensure all settings have been) -(set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0.0000) - # = #17 (=1.0000) - # = #18 (=1.0000) - # = #19 (=1) - - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Call sub "probe_z_minus_sub" to Probe top of Workpiece) - o call [#1][#2][#5][#8][#9][#15] - - (Probe X Positioning Move, X hint/2 + Step Off Width) - G91 - G0 X-[#/2 + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in X, X Hint + Step Off Width at Rapid Speed) - G91 - G0 X[# + # + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# - #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] - - (Probe Y Positioning Move, Y hint/2 + Step Off Width) - G91 - G0 Y-[#/2 + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) - G91 - G0 Y[# + # + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G0 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# - #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - o<120> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# - #] - o<120> else - # = [[# - #] / 2] - # = [# + #] - o<120> endif - - o<130> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# - #] - o<130> else - # = [[# - #] / 2] - # = [# + #] - o<130> endif - - # = [[# + #] / 2] - - o<140> if [# EQ 0] - M68 E12 Q[ABS[#]] - o<140> else if [# EQ 1] - M68 E12 Q[ABS[#]] - o<140> else - M68 E12 Q[ABS[#]] - o<140> endif - - # = [# + #] - - # = [# + #] - - (probe mode rules for WCO or probe position measuring only) - o<150> if [# EQ 0] - (Record XY Zero in selected WCO) - G10 L2 P#5220 X[#] Y[#] - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - o return - o<150> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc deleted file mode 100644 index dfe9e8922e1..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc +++ /dev/null @@ -1,162 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/8/19) - -(Probe calibration offset using defined width square pocket) -(Start probe position is over left side edge of pocket wall) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0.0000) - # = #17 (=1.0000) - # = #18 (=1.0000) - # = #19 (=1) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Call sub "probe_z_minus_sub" to Probe top of Workpiece) - o call [#1][#2][#5][#8][#9][#15] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3 + #11][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - G90 - G0 X[#] - - (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) - o call [#1][#3 + #12 / 2][#4][#8][#9][#10] - - # = #5062 - - (Call sub "probe_y_minus" to Probe Y- side of Workpiece) - o call [#1][#3 + #12][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - G90 - G0 Y[#] - G91 - G0 Z[#] - - o<120> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# + #] - o<120> else - # = [[# - #] / 2] - # = [# - #] - o<120> endif - - o<130> if [# GT #] - (calculate calibration error and adjust calibration offset) - # = [[# - #] / 2] - # = [# + #] - o<130> else - # = [[# - #] / 2] - # = [# - #] - o<130> endif - - # = [[# + #] / 2] - - o<140> if [# EQ 0] - M68 E12 Q[ABS[#]] - o<140> else if [# EQ 1] - M68 E12 Q[ABS[#]] - o<140> else - M68 E12 Q[ABS[#]] - o<140> endif - - # = [# + #] - - # = [# + #] - - (probe mode rules for WCO or probe position measuring only) - o<150> if [# EQ 0] - (Record X Zero in selected WCO) - G10 L2 P#5220 X[#] Y[#] - o return - o<150> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc deleted file mode 100644 index 3929551bd26..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc +++ /dev/null @@ -1,155 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/7/19) - -(Probe Corner X minus Edge Angle for x,y,z 0,0,0 position) -(Start probe position is over front right corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5420 - - # = #5421 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 y-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - # = #5420 - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - - (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) - G0 X[#] Y[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - # = #5421 - - (Call sub "probe_x_minus" to Probe X- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<130> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 Y[#] - - # = #5421 - - (Call sub "probe_x_minus" to Probe X- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<140> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<140> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] - - # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] - - # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] - - # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] - o return - o<150> endif - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<160> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] R[#] - o return - o<160> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc deleted file mode 100644 index b2edeb09834..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc +++ /dev/null @@ -1,155 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/7/19) - -(Probe Corner X plus Edge Angle for x,y,z 0,0,0 position) -(Start probe position is over back left corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5420 - - # = #5421 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 y[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - # = #5420 - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - - (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) - G0 X-[#] Y-[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - # = #5421 - - (Call sub "probe_x_plus" to Probe X+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<130> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 Y-[#] - - # = #5421 - - (Call sub "probe_x_plus" to Probe X+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<140> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<140> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] - - # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] - - # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] - - # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] - o return - o<150> endif - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<160> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] R[#] - o return - o<160> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc deleted file mode 100644 index 1d8f5104c24..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc +++ /dev/null @@ -1,155 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/7/19) - -(Probe Corner Y minus Edge Angle for x,y,z 0,0,0 position) -(Start probe position is over back right corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5420 - - # = #5421 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - # = #5421 - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - - (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) - G0 X-[#] Y[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - # = #5420 - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 X-[#] - - # = #5420 - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<140> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<140> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] - - # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] - - # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] - - # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] - o return - o<150> endif - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<160> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] R[#] - o return - o<160> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc deleted file mode 100644 index 1954b49cf63..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc +++ /dev/null @@ -1,155 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 05/7/19) - -(Probe Corner Y Plus Edge Angle for x,y,z 0,0,0 position) -(Start probe position is over front left corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5420 - - # = #5421 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - # = #5421 - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - - (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) - G0 X[#] Y-[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - # = #5420 - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 X[#] - - # = #5420 - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<140> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<140> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] - - # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] - - # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] - - # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] - o return - o<150> endif - - (probe mode rules for WCO,Rotation and probe position measuring only) - o<160> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[# + #] R[#] - o return - o<160> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc deleted file mode 100644 index de7ab7691bc..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc +++ /dev/null @@ -1,116 +0,0 @@ -(author: Chris P) -(version: 0.4) -(date: 04/25/19) - -(Probe top front edge angle for y,z 0,0 position and edge angle) -(Start probe position is over front edge of stock, set edge width,) -(step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5420 - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y-[#] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<120> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 X[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<140> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[#] Y[# + #] - o return - o<140> endif - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[#] Y[# + #] R[#] - o return - o<150> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc b/nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc deleted file mode 100644 index 930d627c02c..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc +++ /dev/null @@ -1,110 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe front left inside corner for x,y,z 0,0,0 position) -(Start probe position is over front left inside corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) - G91 - G0 X[#] Y[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - G90 - (Current X Position including offsets in current program units) - # = #5420 - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (move to X start Position) - G90 - G0 X[#] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (move to Y start Position) - G90 - G0 Y[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc b/nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc deleted file mode 100644 index 8e53c8dfe3a..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc +++ /dev/null @@ -1,106 +0,0 @@ -(author: Chris P) -(version: 0.4) -(date: 04/25/19) - -(Probe front left top corner for x,y,z 0,0,0 position) -(Start probe position is over front left corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - - (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) - G0 X[#] Y-[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_front_outside.ngc b/nc_files/probe/basic_probe/macros/probe_front_outside.ngc deleted file mode 100644 index fec1a9f62e1..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_front_outside.ngc +++ /dev/null @@ -1,82 +0,0 @@ -(author: Chris P) -(version: 0.4) -(date: 04/25/19) - -(Probe front top side for y,z 0,0 position) -(Start probe position is over front edge of stock) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y-[#] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<130> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 Y[# + #] - o return - o<130> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc b/nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc deleted file mode 100644 index 27eee288306..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc +++ /dev/null @@ -1,113 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/23/19) - -(Probe front right inside corner for x,y,z 0,0,0 position) -(Start probe position is over front right inside corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Call sub "probe_z_minus_sub" to Probe top of Workpiece) - o call [#1][#2][#5][#8][#9][#15] - - (Probe X Positioning Move, Step Off Width X and Y) - G91 - G0 X-[#] Y[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - G90 - (Current X Position including offsets in current program units) - # = #5420 - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (move to X start Position) - G90 - G0 X[#] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (move to Y start Position) - G90 - G0 Y[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc b/nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc deleted file mode 100644 index 8c88e2ec7fe..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc +++ /dev/null @@ -1,106 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/23/19) - -(Probe front right top corner for x,y,z 0,0,0 position) -(Start probe position is over front right corner of stock) -(inside the step off width square and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Y Positioning Move, up to Z clearance plane) - G91 - G0 Z[#] - - (Probe Y Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) - G0 X-[#] Y-[#] - - (Probe Y Positioning Move,to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing Y Sub returned edge parameter, aborting) - o return - o<130> endif - - (Probe Completion Move to Z Clearance Plane, and XY Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc deleted file mode 100644 index 8422dd00b93..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc +++ /dev/null @@ -1,116 +0,0 @@ -(author: Chris P) -(version: 0.3) -(date: 04/25/19) - -(Probe top left edge angle for y,z 0,0 position and edge angle) -(Start probe position is over left edge of stock, set edge width,) -(step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5421 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 Y-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<130> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<140> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[#] - o return - o<140> endif - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[#] R[#] - o return - o<150> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_left_outside.ngc b/nc_files/probe/basic_probe/macros/probe_left_outside.ngc deleted file mode 100644 index 27015f809ed..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_left_outside.ngc +++ /dev/null @@ -1,82 +0,0 @@ -(author: Chris P) -(version: 0.3) -(date: 04/25/19) - -(Probe left top side for x,z 0,0 position) -(Start probe position is over left side edge of stock) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X-[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] - - (probe mode rules for WCO or probe position measuring only) - o<130> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - o return - o<130> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_rect_boss.ngc b/nc_files/probe/basic_probe/macros/probe_rect_boss.ngc deleted file mode 100644 index 404a780d8fe..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_rect_boss.ngc +++ /dev/null @@ -1,164 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/27/19) - -(Probe Boss in X and Y Axes, find center and z 0 position) -(Start probe position is over center of stock in X and Y axis) -(within max z distance, ensure all settings have been) -(set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Probe X Positioning Move, X hint/2 + Step Off Width) - G91 - G0 X-[#/2 + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in X, X Hint + Step Off Width at Rapid Speed) - G91 - G0 X[# + #*2] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# - #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] - - (Probe Y Positioning Move, Y hint/2 + Step Off Width) - G91 - G0 Y-[#/2 + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) - G91 - G0 Y[# + #*2] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G0 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# - #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<120> if [# EQ 0] - (Record XY Zero in selected WCO) - G10 L2 P#5220 X[# + #] Y[# + #] - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - o return - o<120> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc deleted file mode 100644 index 005dfc716ce..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc +++ /dev/null @@ -1,135 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/26/19) - -(Probe rect pocket center measure x and widths, find xy center position) -(Start probe position is over left side edge of pocket wall) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Probe Z Positioning Move, to Probing Depth) - G91 - F[#] - G1 Z-[#] - - (Probe X Positioning Move, Step Off Width) - G0 X-[#/2 - #] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[# - # - #] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero) - G90 - G0 X[#] - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y[#/2 - #] - - (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y-[# - # - #] - - (Call sub "probe_y_minus" to Probe Y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - G90 - G0 Y[#] - G91 - G0 Z[#] - - (probe mode rules for WCO or probe position measuring only) - o<120> if [# EQ 0] - (Record X Zero in selected WCO) - G10 L2 P#5220 X[# + #] Y[# + #] - o return - o<120> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_ridge_x.ngc b/nc_files/probe/basic_probe/macros/probe_ridge_x.ngc deleted file mode 100644 index 197c0cd494c..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_ridge_x.ngc +++ /dev/null @@ -1,114 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Ridge in X Axis to find center and z 0 position) -(Start probe position is over center of stock in the X axis) -(within max z distance, ensure all settings have been) -(set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Probe X Positioning Move, X hint/2 + Step Off Width) - G91 - G0 X-[#/2 + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in X, X Hint + Step Off Width at Rapid Speed) - G0 X[# + # + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# - #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero) - G91 - G0 Z[#] - G90 - G0 X[#] - - (probe mode rules for WCO or probe position measuring only) - o<120> if [# EQ 0] - (Record X Zero in selected WCO) - G10 L2 P#5220 X[# + #] - o return - o<120> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_ridge_y.ngc b/nc_files/probe/basic_probe/macros/probe_ridge_y.ngc deleted file mode 100644 index 6f92d20cf89..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_ridge_y.ngc +++ /dev/null @@ -1,115 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/24/19) - -(Probe Ridge in Y Axis to find center and z 0 position) -(Start probe position is over center of stock in the Y axis) -(within max z distance, ensure all settings have been) -(set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Probe Y Positioning Move, Y hint/2 + Step Off Width) - G91 - G0 Y-[#/2 + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) - G0 Y[# + # + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# - #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero) - G91 - G0 Z[#] - G90 - G0 Y[#] - - (probe mode rules for WCO or probe position measuring only) - o<120> if [# EQ 0] - (Record Y Zero in selected WCO) - G10 L2 P#5220 Y[# + #] - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - o return - o<120> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc deleted file mode 100644 index 8b5d4085b4e..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc +++ /dev/null @@ -1,116 +0,0 @@ -(author: Chris P) -(version: 0.3) -(date: 04/25/19) - -(Probe top right edge angle for y,z 0,0 position and edge angle) -(Start probe position is over right edge of stock, set edge width,) -(step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - # = #16 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - # = #5421 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (edge width move to edge second probing point) - G91 - F[#] - G1 Y[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<130> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<130> endif - - # = [# - #] - - # = [ATAN [#] / [#]] - - M68 E4 Q[#] - - M68 E3 Q[#] - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] Y[#] - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<140> if [# EQ 0 AND # EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[#] - o return - o<140> endif - - (probe mode rules for WCO, Rotation and probe position measuring only) - o<150> if [# EQ 0 AND # EQ 1] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] Y[#] R[#] - o return - o<150> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_right_outside.ngc b/nc_files/probe/basic_probe/macros/probe_right_outside.ngc deleted file mode 100644 index 94c267075b1..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_right_outside.ngc +++ /dev/null @@ -1,82 +0,0 @@ -(author: Chris P) -(version: 0.3) -(date: 04/25/19) - -(Probe right top side for x,z 0,0 position) -(Start probe position is over right side edge of stock) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probing depth from the z probed clearance height, used for z moves) - # = [# + # + #] - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[#] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #<_value> - - (value returned safety check, aborts if no value returned) - o<120> if [# EQ 1 AND #<_value_returned> NE 1] - (MSG, Missing X Sub returned edge parameter, aborting) - o return - o<120> endif - - (Probe Completion Move to Z Clearance Plane, and Y Zero) - G91 - G0 Z[#] - G90 - G0 X[#] - - (probe mode rules for WCO or probe position measuring only) - o<130> if [# EQ 0] - (Record Zero in selected axes and WCO) - G10 L2 P#5220 X[# + #] - o return - o<130> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_round_boss.ngc b/nc_files/probe/basic_probe/macros/probe_round_boss.ngc deleted file mode 100644 index 39629dff442..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_round_boss.ngc +++ /dev/null @@ -1,188 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/27/19) - -(Probe Boss in X and Y Axes, find center, Diam and z 0 position) -(Start probe position is over center of stock in X and Y axis) -(within max z distance, ensure all settings have been) -(set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Probe X Positioning Move, X hint/2 + Step Off Width) - G91 - G0 X-[#/2 + #] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in X, X Hint + Step Off Width at Rapid Speed) - G91 - G0 X[# + #*2 ] - - (Probe X Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E10 Q[#] - - G91 - G0 Z[#] - G90 - G0 X[#] - - (Probe Y Positioning Move, Y hint/2 + Step Off Width) - G91 - G0 Y-[#/2 + #] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G1 Z-[#] - - (Call sub "probe_y_plus" to Probe y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (first side Probe Completion Move to Z Clearance Plane) - G91 - G0 Z[#] - - (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) - G91 - G0 Y[# + #*2] - - (Probe Y Positioning Move, to Probing Depth) - F[#] - G0 Z-[#] - - (Call sub "probe_y_minus" to Probe y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E11 Q[#] - - (Move to z clearance plane) - G91 - G0 Z[#] - - (Move to Y Center) - G90 - G0 Y[#] - - (calculate X Width Probed) - o<120> if [# GT #] - # = [# - #] - o<120> else - # = [# - #] - o<120> endif - - (Completed probed width calculations) - # = [# - #] - - M68 E0 Q[#] - - G90 - G0 X[#] - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - o<130> if [# GT #] - # = [# - #] - o<130> else - # = [# - #] - o<130> endif - - (Completed probed width calculations) - # = [# - #] - - M68 E1 Q[#] - - # = [[# + #] / 2] - - M68 E2 Q[#] - - # = [# + #] - - # = [# + #] - - (probe mode rules for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record XY Zero in selected WCO) - G10 L2 P#5220 X[#] Y[#] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_round_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_round_pocket.ngc deleted file mode 100644 index cdae5364083..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_round_pocket.ngc +++ /dev/null @@ -1,147 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/26/19) - -(Probe round pocket center measure x and y Diam, find xy center position) -(Start probe position is over left side edge of pocket wall) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Probe Z Positioning Move, to Probing Depth) - G91 - F[#] - G1 Z-[#] - - (Probe X Positioning Move, Step Off Width) - G0 X-[#/2 - #] - - (Call sub "probe_x_minus" to Probe x-) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[# - # - #] - - (Call sub "probe_x_plus" to Probe x+) - o call [#1][#3 + #13][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E10 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero) - G90 - G0 X[#] - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y[#/2 - #] - - (Call sub "probe_y_plus" to Probe Y+) - o call [#1][#3 + #13 / 2][#4][#8][#9][#10] - - # = #5062 - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y-[# - # - #] - - (Call sub "probe_y_minus" to Probe Y-) - o call [#1][#3 + #13][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - M68 E11 Q[#] - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed diameter calculations) - # = [# + #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - # = [[# + #] / 2] - - M68 E2 Q[#] - - G90 - G0 Y[#] - G91 - G0 Z[#] - - (probe mode rules for WCO or probe position measuring only) - o<120> if [# EQ 0] - (Record Y Zero in selected WCO) - G10 L2 P#5220 X[# + #] - G10 L2 P#5220 Y[# + #] - (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) - o return - o<120> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_valley_x.ngc b/nc_files/probe/basic_probe/macros/probe_valley_x.ngc deleted file mode 100644 index fd0009038c4..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_valley_x.ngc +++ /dev/null @@ -1,101 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe valley in x, find Z0, X0 valley center position) -(Start probe position is over left side edge of valley wall) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - (Probe Z Positioning Move, to Probing Depth) - G91 - F[#] - G1 Z-[#] - - (Probe X Positioning Move, Step Off Width) - G0 X-[#/2 - #] - - (Call sub "probe_x_minus" to Probe x- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (Probe X Positioning Move, Step Off Width) - G91 - G0 X[# - #*2] - - (Call sub "probe_x_plus" to Probe x+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5061 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate X Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E0 Q[#] - - M68 E10 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero) - G90 - G0 X[#] - G91 - G0 Z[#] - - (probe mode rules for WCO or probe position measuring only) - o<120> if [# EQ 0] - (Record X Zero in selected WCO) - G10 L2 P#5220 X[# + #] - o return - o<120> endif - - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_valley_y.ngc b/nc_files/probe/basic_probe/macros/probe_valley_y.ngc deleted file mode 100644 index 956e1e4be1f..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_valley_y.ngc +++ /dev/null @@ -1,99 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe valley in Y, find Z0, Y0 valley center position) -(Start probe position is over back side edge of valley wall) -(inside the step off width distance and within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (remove probe tip diam and cal offset from probed width calculations) - # = [# - [# * 2]] - - # = [# + # + #] - - G91 - F[#] - G1 Z-[#] - - (Probe Y Positioning Move, Step Off Width) - G0 Y[#/2 - #] - - (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (Probe Y Positioning Move, Step Off Width) - G91 - G0 Y-[# - #*2] - - (Call sub "probe_y_minus_sub" to Probe Y- side of Workpiece) - o call [#1][#3][#4][#8][#9][#10] - - # = #5062 - - (probed center calculation) - # = [[# + #] / 2] - - (calculate Y Width Probed) - # = [# - #] - - (Completed probed width calculations) - # = [# + #] - - M68 E1 Q[#] - - M68 E11 Q[#] - - (Probe Completion Move to Z Clearance Plane, and X Zero) - G90 - G0 Y[#] - G91 - G0 Z[#] - - (probe mode rules for WCO or probe position measuring only) - o<120> if [# EQ 0] - (Record X Zero in selected WCO) - G10 L2 P#5220 Y[# + #] - o return - o<120> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_x_minus.ngc b/nc_files/probe/basic_probe/macros/probe_x_minus.ngc deleted file mode 100644 index e9771cf146e..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_x_minus.ngc +++ /dev/null @@ -1,85 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe X Minus direction and set X 0 in current WCO) -(Start probe position to the right side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 - # = #2 - # = #3 - # = #4 - # = #5 - # = #6 - - (Cancel G92 offsets) - G92.1 - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current X Position including offsets in current program units) - # = #5420 - - (Initiate Fast X- Probe) - G91 - F[#] - G38.2 X-[#] - # = #5061 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 X# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 X[# + #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow X- Probe) - G91 - F[#] - G38.2 X-[# * 2] - # = #5061 -; (debug, Probed Pos: #5061 X Pos: #<_x>) - G90 - G0 X[# + #] - o<130> endif - - # = [# - #] - - (defines the edge as x_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "X PROBED POSITION") - M68 E5 Q[#] - -o endsub [#] - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc deleted file mode 100644 index e6d2fe5f2d8..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc +++ /dev/null @@ -1,103 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe X Minus direction and set X 0 in current WCO) -(Start probe position to the right side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current X Position including offsets in current program units) - # = #5420 - - (Initiate Fast X- Probe) - G91 - F[#] - G38.2 X-[#] - # = #5061 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 X# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 X[# + #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow X- Probe) - G91 - F[#] - G38.2 X-[# * 2] - # = #5061 -; (debug, Probed Pos: #5061 X Pos: #<_x>) - G90 - G0 X[# + #] - o<130> endif - - # = [# - #] - - (defines the edge as x_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "X PROBED POSITION") - M68 E5 Q[#] - - (probe mode rule for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record X Zero in selected WCO) - G10 L2 P#5220 X[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_x_plus.ngc b/nc_files/probe/basic_probe/macros/probe_x_plus.ngc deleted file mode 100644 index fbd0b88eb33..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_x_plus.ngc +++ /dev/null @@ -1,85 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe X plus direction and set X 0 in current WCO) -(Start probe position to the left side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 - # = #2 - # = #3 - # = #4 - # = #5 - # = #6 - - (Cancel G92 offsets) - G92.1 - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current X Position including offsets in current program units) - # = #5420 - - (Initiate Fast X+ Probe) - G91 - F[#] - G38.2 X[#] - # = #5061 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 X# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 X[# - #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow X+ Probe) - G91 - F[#] - G38.2 X[# * 2] - # = #5061 -; (debug, Probed Pos: #5061 X Pos: #<_x>) - G90 - G0 X[# - #] - o<130> endif - - # = [# + #] - - (defines the edge as x_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "X PROBED POSITION") - M68 E8 Q[#] - -o endsub [#] - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc deleted file mode 100644 index fc5ad90dfba..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc +++ /dev/null @@ -1,103 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe X plus direction and set X 0 in current WCO) -(Start probe position to the left side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5201 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current X Position including offsets in current program units) - # = #5420 - - (Initiate Fast X+ Probe) - G91 - F[#] - G38.2 X[#] - # = #5061 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 X# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 X[# - #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow X+ Probe) - G91 - F[#] - G38.2 X[# * 2] - # = #5061 -; (debug, Probed Pos: #5061 X Pos: #<_x>) - G90 - G0 X[# - #] - o<130> endif - - # = [# + #] - - (defines the edge as x_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "X PROBED POSITION") - M68 E8 Q[#] - - (probe mode rule for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record X Zero in selected WCO) - G10 L2 P#5220 X[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_y_minus.ngc b/nc_files/probe/basic_probe/macros/probe_y_minus.ngc deleted file mode 100644 index 58cfe553135..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_y_minus.ngc +++ /dev/null @@ -1,85 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Y Minus direction to locate edge, end at clearance distance) -(Start probe position to the back side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 - # = #2 - # = #3 - # = #4 - # = #5 - # = #6 - - (Cancel G92 offsets) - G92.1 - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Initiate Fast Y- Probe) - G91 - F[#] - G38.2 y-[#] - # = #5062 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 Y# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 Y[# + #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow Y- Probe) - G91 - F[#] - G38.2 Y-[# * 2] - # = #5062 -; (debug, Probed Pos: #5062 Y Pos: #<_y>) - G90 - G0 Y[# + #] - o<130> endif - - # = [#5062 - #] - - (defines the edge as y_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "Y PROBED POSITION") - M68 E6 Q[#] - -o endsub [#] - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc deleted file mode 100644 index 51463ea0743..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc +++ /dev/null @@ -1,103 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Y Minus direction and set Y 0 in current WCO) -(Start probe position to the back side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Initiate Fast Y- Probe) - G91 - F[#] - G38.2 y-[#] - # = #5062 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 Y# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 Y[# + #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow Y- Probe) - G91 - F[#] - G38.2 Y-[# * 2] - # = #5062 -; (debug, Probed Pos: #5062 Y Pos: #<_y>) - G90 - G0 Y[# + #] - o<130> endif - - # = [#5062 - #] - - (defines the edge as y_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "Y PROBED POSITION") - M68 E6 Q[#] - - (probe mode rule for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Y Zero in selected WCO) - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_y_plus.ngc b/nc_files/probe/basic_probe/macros/probe_y_plus.ngc deleted file mode 100644 index 2d99f578e91..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_y_plus.ngc +++ /dev/null @@ -1,85 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Y plus direction to locate edge, end at clearance distance) -(Start probe position to the front side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 - # = #2 - # = #3 - # = #4 - # = #5 - # = #6 - - (Cancel G92 offsets) - G92.1 - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Initiate Fast y+ Probe) - G91 - F[#] - G38.2 Y[#] - # = #5062 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 Y# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 Y[# - #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow Y+ Probe) - G91 - F[#] - G38.2 Y[# * 2] - # = #5062 -; (debug, Probed Pos: #5062 Y Pos: #<_y>) - G90 - G0 Y[# - #] - o<130> endif - - # = [#5062 + #] - - (defines the edge as y_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "Y PROBED POSITION") - M68 E9 Q[#] - -o endsub [#] - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc deleted file mode 100644 index 38931ae1865..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc +++ /dev/null @@ -1,103 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Y plus direction and set Y 0 in current WCO) -(Start probe position to the front side edge of stock) -(inside the max xy distance with the probe tip below the stock top edge) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5202 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Probe Diameter) - # = #5410 - - (Probe Radius) - # = [# / 2] - - (Probe Centerline Offset) - # = [# - #] - - (Current Y Position including offsets in current program units) - # = #5421 - - (Initiate Fast y+ Probe) - G91 - F[#] - G38.2 Y[#] - # = #5062 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 Y# - F[#] - (return from sub) - o return - o<120> endif - - (Move to xy_clearance distance for slow probe) - G90 - G0 Y[# - #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow Y+ Probe) - G91 - F[#] - G38.2 Y[# * 2] - # = #5062 -; (debug, Probed Pos: #5062 Y Pos: #<_y>) - G90 - G0 Y[# - #] - o<130> endif - - # = [#5062 + #] - - (defines the edge as y_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "Y PROBED POSITION") - M68 E9 Q[#] - - (probe mode rule for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Y Zero in selected WCO) - G10 L2 P#5220 Y[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_z_minus.ngc b/nc_files/probe/basic_probe/macros/probe_z_minus.ngc deleted file mode 100644 index 97b72ac0006..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_z_minus.ngc +++ /dev/null @@ -1,65 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Z Minus direction to locate top, end at clearance distance) -(Start probe position is over stock within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 - # = #2 - # = #3 - # = #4 - # = #5 - - (Current Z Position including offsets in current program units) - # = #5422 - - (Initial Fast Z- Probe) - G91 - F[#] - G38.2 Z-[#] - # = #5063 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 Z# - F[#] - (return from sub) - o return - o<120> endif - - (Move to z_clearance height for slow probe) - G90 - G0 Z[# + #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow Z- Probe) - G91 - F[#] - G38.2 Z-[# * 2] - # = #5063 -; (debug, Probed Pos: #5063 Z Pos: #<_z>) - G90 - G0 Z[# + #] - o<130> endif - - (defines the edge as z_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "Z PROBED POSITION") - M68 E7 Q[#] - - # = [# + #] - -o endsub [#] - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc b/nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc deleted file mode 100644 index 0e37da7f99d..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc +++ /dev/null @@ -1,84 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Z Minus direction and set Z 0 in current WCO) -(Start probe position is over stock within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 - # = #2 - # = #3 - # = #4 - # = #5 - # = #6 - - (Cancel G92 offsets) - G92.1 - - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Current Z Position including offsets in current program units) - # = #5422 - - (Initial Fast Z- Probe) - G91 - F[#] - G38.2 Z-[#] - # = #5063 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 Z# - F[#] - (return from sub) - o return - o<120> endif - - (Move to z_clearance height for slow probe) - G90 - G0 Z[# + #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow Z- Probe) - G91 - F[#] - G38.2 Z-[# * 2] - # = #5063 -; (debug, Probed Pos: #5063 Z Pos: #<_z>) - G90 - G0 Z[# + #] - o<130> endif - - (defines the edge as z_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "Z PROBED POSITION") - M68 E7 Q[#] - - # = [# + #] - - (probe mode rule for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Z zero in selected WCO) - G10 L2 P#5220 Z[# + #] - o return - o<140> endif - -o endsub [#] - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc deleted file mode 100644 index 71e45a49b4c..00000000000 --- a/nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc +++ /dev/null @@ -1,93 +0,0 @@ -(author: Chris P) -(version: 0.1) -(date: 04/25/19) - -(Probe Z Minus direction and set Z 0 in current WCO) -(Start probe position is over stock within max z distance) -(ensure all settings have been set properly according to help diagrams) - -o sub - - (uses NGCGUI style arg spec) - (number after "=" in comment is default value) - # = #1 (=99) - # = #2 (=0.5000) - # = #3 (=0.5000) - # = #4 (=0.1000) - # = #5 (=0.1000) - # = #6 (=0.5000) - # = #7 (=0.0000) - # = #8 (=0.0) - # = #9 (=10.0) - # = #10 (=0.0000) - # = #11 (=1.0000) - # = #12 (=1.0000) - # = #13 (=1.0000) - # = #14 (=0.5000) - # = #15 (=0) - - (Cancel G92 offsets) - G92.1 - - # = #[5203 + [20 * #5220]] - - (Probe Tool Safety Check) - o<110> if [#5400 NE #] - (MSG, Specified probe tool # not in spindle, aborting) - o return - o<110> endif - - (Current Z Position including offsets in current program units) - # = #5422 - - (Initial Fast Z- Probe) - G91 - F[#] - G38.2 Z-[#] - # = #5063 - - (Probe Error check, #5070 will be 0 if failed) - o<120> if [#5070 EQ 0] - (back to start point and feed) - G90 - G0 Z# - F[#] - (return from sub) - o return - o<120> endif - - (Move to z_clearance height for slow probe) - G90 - G0 Z[# + #] - - (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) - o<130> if [# GT 0] - (Initiate Slow Z- Probe) - G91 - F[#] - G38.2 Z-[# * 2] - # = #5063 -; (debug, Probed Pos: #5063 Z Pos: #<_z>) - G90 - G0 Z[# + #] - o<130> endif - - (defines the edge as z_probed_position for DRO reporting) - # = # - - (analog aio output to gui DRO "Z PROBED POSITION") - M68 E7 Q[#] - - # = [# + #] - - (probe mode rule for WCO or probe position measuring only) - o<140> if [# EQ 0] - (Record Z zero in selected WCO) - G10 L2 P#5220 Z[# + #] - o return - o<140> endif - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/reset_all_data.ngc b/nc_files/probe/basic_probe/macros/reset_all_data.ngc deleted file mode 100644 index 47ddfd3d2eb..00000000000 --- a/nc_files/probe/basic_probe/macros/reset_all_data.ngc +++ /dev/null @@ -1,20 +0,0 @@ -o sub - - M68 E0 Q0 - M68 E1 Q0 - M68 E2 Q0 - M68 E3 Q0 - M68 E4 Q0 - M68 E5 Q0 - M68 E6 Q0 - M68 E7 Q0 - M68 E8 Q0 - M68 E9 Q0 - M68 E10 Q0 - M68 E11 Q0 - M68 E12 Q0 - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/basic_probe/macros/tool_sensor.ngc b/nc_files/probe/basic_probe/macros/tool_sensor.ngc deleted file mode 100644 index 4f9b4c8bafe..00000000000 --- a/nc_files/probe/basic_probe/macros/tool_sensor.ngc +++ /dev/null @@ -1,35 +0,0 @@ -o sub - -# = #<_ini[TOOLSENSOR]maxprobe> -# = #<_ini[TOOLSENSOR]search_vel> -# = #<_ini[TOOLSENSOR]probe_vel> -# = #<_ini[TOOLSENSOR]height> -# = #1 - -(print, max_probe is #) -(print, search vel is #) -(print, probe vel is #) -(print, sensor height is #) -(print, zero height is #) - -G21 (use metric units) -G53 G0 Z0 (raise spindle to Z0) -G53 G0 X#<_ini[TOOLSENSOR]x> Y#<_ini[TOOLSENSOR]y> -G49 (cancel tool offset) -G10 L20 P0 Z0 (clear current offsets) -G91 (switch to incremental mode) - -; this section commented out for sim -;G38.2 Z[-#] F# (probe down) -;G1 Z4.0 (move up 4 mm) -;G4 P0.5 (pause for 0.5 sec.) -;G38.2 Z-6.0 F# (probe down slower) - -; this section used for sim, comment out otherwise -G1 Z-10 F# - -G10 L20 P0 Z[# - #] -G90 (absolute distance mode) -G53 G0 Z0 (move Z up to 0) -o endsub -M2 diff --git a/nc_files/probe/basic_probe/macros/touch_plate.ngc b/nc_files/probe/basic_probe/macros/touch_plate.ngc deleted file mode 100644 index 1760bdc7cad..00000000000 --- a/nc_files/probe/basic_probe/macros/touch_plate.ngc +++ /dev/null @@ -1,31 +0,0 @@ -o sub - -# = #<_ini[TOOLSENSOR]maxprobe> -# = #<_ini[TOOLSENSOR]search_vel> -# = #<_ini[TOOLSENSOR]probe_vel> -# = #<_ini[TOOLSENSOR]touch> - -(print, max_probe is #) -(print, search vel is #) -(print, probe vel is #) -(print, touch height is #) - -G21 (use metric units) -G49 (cancel tool offset) -G10 L20 P0 Z0 (clear current offsets) -G91 (switch to incremental mode) - -; this section commented out for sim -;G38.2 Z[-#] F# (probe down) -;G1 Z1.0 (go up 1 mm) -;G4 P0.5 (pause 0.5 sec.) -;G38.2 Z-2 F# (probe down slower) - -; this section used for sim, comment out otherwise -G1 Z-10 F# - -G10 L20 P0 Z# (store offset in offset table) -G90 (absolute distance mode) -G53 G0 Z0 (move Z up to 0) -o endsub -M2 diff --git a/nc_files/probe/basic_probe/macros/x_data_reset.ngc b/nc_files/probe/basic_probe/macros/x_data_reset.ngc deleted file mode 100644 index cb62ad492b2..00000000000 --- a/nc_files/probe/basic_probe/macros/x_data_reset.ngc +++ /dev/null @@ -1,14 +0,0 @@ -o sub - - M68 E0 Q0 -; M68 E2 Q0 -; M68 E3 Q0 -; M68 E4 Q0 - M68 E5 Q0 -; M68 E7 Q0 - M68 E8 Q0 - M68 E10 Q0 - -o endsub - -M2 (end program) diff --git a/nc_files/probe/basic_probe/macros/y_data_reset.ngc b/nc_files/probe/basic_probe/macros/y_data_reset.ngc deleted file mode 100644 index 086f74dfebb..00000000000 --- a/nc_files/probe/basic_probe/macros/y_data_reset.ngc +++ /dev/null @@ -1,15 +0,0 @@ -o sub - - M68 E1 Q0 -; M68 E2 Q0 -; M68 E3 Q0 -; M68 E4 Q0 - M68 E6 Q0 -; M68 E7 Q0 - M68 E9 Q0 - M68 E11 Q0 - -o endsub - -M2 (end program) - diff --git a/nc_files/probe/down.ngc b/nc_files/probe/down.ngc deleted file mode 100644 index d217ee57a0a..00000000000 --- a/nc_files/probe/down.ngc +++ /dev/null @@ -1,31 +0,0 @@ -o sub - -; #1 = [ps_searchvel] -; #2 = [probe.ps_probe_max] -; #3 = [ps_probe_latch] -; #4 = [probe.ps_probevel] -; #5 = [TOOLSENSOR]RAPID_SPEED] -; #6 = [probe.set_zero] -; #7 = [axis.2.joint-pos-cmd] - -O IF [#6 EQ 5] - (cancel Z offsets) - G92.1 - G49 - G10 L20 P0 Z[#7] -O ENDIF - -#=#<_z> (save current Z position) -G91 -F #1 -G38.2 Z[-#2] -G1 Z[#3] F#5 -F #4 -G4 P0.5 -G38.2 Z[-#3*2] -G90 -(back to start point) -G1 Z# F#5 - -o endsub -M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_down.ngc b/nc_files/probe/gtk_probe/gtk_probe_down.ngc deleted file mode 100644 index 069148a26ef..00000000000 --- a/nc_files/probe/gtk_probe/gtk_probe_down.ngc +++ /dev/null @@ -1,23 +0,0 @@ -o sub - -O IF [#<_hal[probe.set_zero]> EQ 5] - (cancel Z offsets) - G92.1 - G49 - G10 L20 P0 Z[#<_hal[axis.z.pos-cmd]>] -O ENDIF - -#=#<_z> (save current Z position) -G91 -F #<_hal[probe.ps_searchvel]> -G38.2 Z[-#<_hal[probe.ps_probe_max]>] -G1 Z[#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> -F #<_hal[probe.ps_probevel]> -G4 P0.5 -G38.2 Z[-#<_hal[probe.ps_probe_latch]>*2] -G90 -(back to start point) -G1 Z# F#<_ini[TOOLSENSOR]RAPID_SPEED> - -o endsub -M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_xminus.ngc b/nc_files/probe/gtk_probe/gtk_probe_xminus.ngc deleted file mode 100644 index 19a7a8d775b..00000000000 --- a/nc_files/probe/gtk_probe/gtk_probe_xminus.ngc +++ /dev/null @@ -1,18 +0,0 @@ -o sub - -#=#<_x> (save start X position) -(PRINT, position #<_x> ) -G91 -F #<_hal[probe.ps_searchvel]> -G38.2 X[-#<_hal[probe.ps_probe_max]>] -G1 X[#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> -F #<_hal[probe.ps_probevel]> -G4 P0.5 -G38.2 X[-#<_hal[probe.ps_probe_latch]>*2] -(print, probe X=#5061 ) -G90 -(PRINT, back to start point #) -G1 X# F#<_ini[TOOLSENSOR]RAPID_SPEED> - -o endsub -M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_xplus.ngc b/nc_files/probe/gtk_probe/gtk_probe_xplus.ngc deleted file mode 100644 index 40f2b28c412..00000000000 --- a/nc_files/probe/gtk_probe/gtk_probe_xplus.ngc +++ /dev/null @@ -1,18 +0,0 @@ -o sub - -#=#<_x> (save start X position) -(PRINT, position X #<_x> ) -G91 -F #<_hal[probe.ps_searchvel]> -G38.2 X[#<_hal[probe.ps_probe_max]>] -G1 X[-#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> -F #<_hal[probe.ps_probevel]> -G4 P0.5 -G38.2 X[#<_hal[probe.ps_probe_latch]>*2] -(print, probe X=#5061 ) -G90 -(back to start point) -G1 X# F#<_ini[TOOLSENSOR]RAPID_SPEED> - -o endsub -M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_yminus.ngc b/nc_files/probe/gtk_probe/gtk_probe_yminus.ngc deleted file mode 100644 index c60f27faaa1..00000000000 --- a/nc_files/probe/gtk_probe/gtk_probe_yminus.ngc +++ /dev/null @@ -1,17 +0,0 @@ -o sub - -#=#<_y> (save start Y position) -G91 -F #<_hal[probe.ps_searchvel]> -G38.2 Y[-#<_hal[probe.ps_probe_max]>] -G1 Y[#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> -F #<_hal[probe.ps_probevel]> -G4 P0.5 -G38.2 Y[-#<_hal[probe.ps_probe_latch]>*2] -(print, probe Y=#5062 ) -G90 -(back to start point) -G1 Y# F#<_ini[TOOLSENSOR]RAPID_SPEED> - -o endsub -M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_yplus.ngc b/nc_files/probe/gtk_probe/gtk_probe_yplus.ngc deleted file mode 100644 index 210a8abd032..00000000000 --- a/nc_files/probe/gtk_probe/gtk_probe_yplus.ngc +++ /dev/null @@ -1,17 +0,0 @@ -o sub - -#=#<_y> (save start Y position) -G91 -F #<_hal[probe.ps_searchvel]> -G38.2 Y[#<_hal[probe.ps_probe_max]>] -G1 Y[-#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> -F #<_hal[probe.ps_probevel]> -G4 P0.5 -G38.2 Y[#<_hal[probe.ps_probe_latch]>*2] -(print, probe Y=#5062 ) -G90 -(back to start point) -G1 Y# F#<_ini[TOOLSENSOR]RAPID_SPEED> - -o endsub -M2 diff --git a/nc_files/probe/xminus.ngc b/nc_files/probe/xminus.ngc deleted file mode 100644 index 30c4c0dffdf..00000000000 --- a/nc_files/probe/xminus.ngc +++ /dev/null @@ -1,23 +0,0 @@ -o sub - -; #1 = [ps_searchvel] -; #2 = [probe.ps_probe_max] -; #3 = [ps_probe_latch] -; #4 = [probe.ps_probevel] -; #5 = [TOOLSENSOR]RAPID_SPEED] - -#=#<_x> (save start X position) -G91 -F #1 -G38.2 X[-#2] -G1 X[#3] F#5 -F #4 -G4 P0.5 -G38.2 X[-#3*2] -(print, probe X=#5061 ) -G90 -(back to start point) -G1 X# F#5 - -o endsub -M2 diff --git a/nc_files/probe/xplus.ngc b/nc_files/probe/xplus.ngc deleted file mode 100644 index ed0c20d9fc6..00000000000 --- a/nc_files/probe/xplus.ngc +++ /dev/null @@ -1,23 +0,0 @@ -o sub - -; #1 = [ps_searchvel] -; #2 = [probe.ps_probe_max] -; #3 = [ps_probe_latch] -; #4 = [probe.ps_probevel] -; #5 = [TOOLSENSOR]RAPID_SPEED] - -#=#<_x> (save start X position) -G91 -F #1 -G38.2 X[#2] -G1 X[-#3] F#5 -F #4 -G4 P0.5 -G38.2 X[#3*2] -(print, probe X=#5061 ) -G90 -(back to start point) -G1 X# F#5 - -o endsub -M2 diff --git a/nc_files/probe/yminus.ngc b/nc_files/probe/yminus.ngc deleted file mode 100644 index d6ec27361a7..00000000000 --- a/nc_files/probe/yminus.ngc +++ /dev/null @@ -1,23 +0,0 @@ -o sub - -; #1 = [ps_searchvel] -; #2 = [probe.ps_probe_max] -; #3 = [ps_probe_latch] -; #4 = [probe.ps_probevel] -; #5 = [TOOLSENSOR]RAPID_SPEED] - -#=#<_y> (save start Y position) -G91 -F #1 -G38.2 Y[-#2] -G1 Y[#3] F#5 -F #4 -G4 P0.5 -G38.2 Y[-#3*2] -(print, probe Y=#5062 ) -G90 -(back to start point) -G1 Y# F#5 - -o endsub -M2 diff --git a/nc_files/probe/yplus.ngc b/nc_files/probe/yplus.ngc deleted file mode 100644 index acf910c85c1..00000000000 --- a/nc_files/probe/yplus.ngc +++ /dev/null @@ -1,23 +0,0 @@ -o sub - -; #1 = [ps_searchvel] -; #2 = [probe.ps_probe_max] -; #3 = [ps_probe_latch] -; #4 = [probe.ps_probevel] -; #5 = [TOOLSENSOR]RAPID_SPEED] - -#=#<_y> (save start Y position) -G91 -F #1 -G38.2 Y[#2] -G1 Y[-#3] F#5 -F #4 -G4 P0.5 -G38.2 Y[#3*2] -(print, probe Y=#5062 ) -G90 -(back to start point) -G1 Y# F#5 - -o endsub -M2 diff --git a/nc_files/remap-subroutines/change.ngc b/nc_files/remap-subroutines/change.ngc deleted file mode 100644 index 6180b5830d8..00000000000 --- a/nc_files/remap-subroutines/change.ngc +++ /dev/null @@ -1,11 +0,0 @@ -o sub -(debug, change call_level= #<_call_level> remap_level=#<_remap_level>) -(debug, change tool_in_spindle=# pocket=#) - -; demonstrate aborting a change on pocket 3 by returning a negative value - o if [# EQ 3] - o return [-1] - o endif - -o endsub [1] -m2 diff --git a/nc_files/remap-subroutines/on_abort.ngc b/nc_files/remap-subroutines/on_abort.ngc deleted file mode 100644 index 0fd5f3c1dbb..00000000000 --- a/nc_files/remap-subroutines/on_abort.ngc +++ /dev/null @@ -1,19 +0,0 @@ -o sub - -G90 -G40 -G49 - -o100 if [#1 eq 5] - (machine on) -o100 elseif [#1 eq 6] - (machine off) -o100 elseif [#1 eq 7] - (estopped) -o100 elseif [#1 eq 8] - (msg, abort pressed) -o100 else - (DEBUG, error parameter is [#1]) -o100 endif -o endsub -m2 diff --git a/nc_files/remap-subroutines/prepare.ngc b/nc_files/remap-subroutines/prepare.ngc deleted file mode 100644 index 9a59e27b70a..00000000000 --- a/nc_files/remap-subroutines/prepare.ngc +++ /dev/null @@ -1,10 +0,0 @@ -o sub -(debug, prepare call_level= #<_call_level> remap_level=#<_remap_level> tool=# pocket=#) - - ; show aborting a prepare on tool 2 by returning a negative value - o if [# EQ 2] - o return [-1] - o endif - -o endsub [#] -m2 diff --git a/nc_files/remap-subroutines/qt_auto_probe_tool.ngc b/nc_files/remap-subroutines/qt_auto_probe_tool.ngc deleted file mode 100644 index be95048840b..00000000000 --- a/nc_files/remap-subroutines/qt_auto_probe_tool.ngc +++ /dev/null @@ -1,238 +0,0 @@ -o sub - -; IMPORTANT: this remap enables using a gcode/ngc program on machines without -; automatic tool changers, and without repeatable tool holders, but which -; do have a tool setter (and ideally, an xyz probe). -; With this remap, a program or user can issue TxM6 commands at any -; point and the machine will automatically do the following: -; 1. Move to a tool change position defined in .ini parameters, Z first, then XY -; 2. Perform the normal M6 tool change (IE stop spindle, prompt for tool) -; 3. Move to the location of the toolsetter, Z first, then XY, probe the new tool's offset -; 4. Change the offset of the current coordinate system to match the new tool -; 5. Return the tip of the new tool to the same spot as the tip of the old tool -; based on newly measured z-offset -; 6. Return control back to whatever state it was in prior, continuing the program -; if one had been running. -; The following settings should be enabled in the QtDragon interface: -; A - Under Probe Tool screens: insure that "Tool Measure" is enabled -; B - Under Settings: insure that "Use Tool Sensor" is enabled -; The following workflow assumes using both a XYZ probe and a Z Toolsetter: -; 1 - Initial Setup: Before beginning the program, setup the Probe Tool as -; having a zero z-offset in the tool table. (Non-zero tool lengths -; for the probe tool can be made to work, but have multiple extra -; steps required, and it is easy to have the tool offset interfere with -; the remap coding and cause incorrect adjustments to your offsets. -; This procedure assumes a zero length.) -; 2 - Initial Tool: Load the probe tool with M61 Qx, where x is the Probe tool's number -; in the tool table. (Do not use TxM6) -; 3 - Toolsetter measure: Use button under the Probe Screens for "Probe Tool Setter -; Z Height:" this will set and display on the Probe Settings screen the -; "Probe HT" = #<_hal[qtversaprobe.probeheight> value in ABS coordinates. -; 4 - Workpiece Measure: Use the button under the Probe Screens for "Probe Z height -; of material:" this will set and display on the Probe Settings screen the -; "Block Ht" = #<_hal[qtversaprobe.blockheight]> value in ABS coordinates. -; 5 - Set Coord System (G54): Use the Probe Tool and whichever probe screen is -; appropriate to set the coordinate system XYZ offsets needed for your job. -; NOTE: Return_Option 3 uses the current local coordinate system, not just ABS coord. -; 6 - Prepare to Run: You may then issue a manual TnM6 command to change the tool -; before starting the job, or if the job begins with a TnM6 command before -; spinning the spindle, you may leave the Probe Tool installed. -; !! Take care not to leave the XYZ tool probe in the spindle when a program may start -; the spindle. !! -;(debug, in change tool_in_spindle=# current_pocket=#) -;(debug, selected_tool=# selected_pocket=#) - -; ------------------------------------- -; --- Begin Initial data gathering ---- -; ------------------------------------- - -# = # -# = # -# = #<_x> -# = #<_y> -# = #<_z> - -; ------------------------------------- -; --- End Initial Data Gathering ---- -; ------------------------------------- - -; ------------------------------------- -; --- Begin Initial Safety Checks ---- -; ------------------------------------- - -; we must execute this only in the milltask interpreter -; or preview will break, so test for '#<_task>' which is 1 for -; the milltask interpreter and 0 in the UI's -o100 if [#<_task> EQ 0] - (debug, Task is Null) -o100 return [999] -o100 endif - -; check we are in right mode -o110 if [#<_metric_machine>] - o115 if [#<_imperial>] - (MSG, Auto Tool probe error: not in G21 mode ) - o115 return [-3] ; indicate probe contact failure to epilog - o115 endif -o110 else - o115 if [#<_imperial> EQ 0] - (MSG, Auto Tool probe error: not in G20 mode ) - o115 return [-3] ; indicate probe contact failure to epilog - o115 endif -o110 endif - -;check we have a usable search velocity configured, otherwise error -o150 if [#<_hal[qtversaprobe.searchvel]> LE 0] - (MSG, No usable search velocity in hal.qtversaprobe.searchvel) - o150 return [-1] ; indicate searchvel <= 0 -o150 endif - -;check we do not have an invalid Return Option -o175 if [EXISTS[#<_ini[VERSA_TOOLSETTER]RETURN_OPTION>]] - # = #<_ini[VERSA_TOOLSETTER]RETURN_OPTION> - o176 if [[# EQ 1] OR [# EQ 2] OR [# EQ 3]] - ;Continue: Return_Option is both defined and valid - o176 else - (MSG, Invalid RETURN_OPTION in .ini file under VERSA_TOOLSETTER) - o176 return [-1] ; signal error to post processing - o176 endif -o175 else - ;Continue: it is valid to not define Return_Option, defaults to 1 -o175 endif - -; ------------------------------------- -; --- End Initial Safety Checks ---- -; ------------------------------------- - -; ------------------------------------- -; --- Begin Physical Tool Change ---- -; ------------------------------------- - -;first go up -F #<_hal[qtversaprobe.searchvel]> -G53 G0 Z[#<_ini[CHANGE_POSITION]Z>] - -o200 if [#<_current_tool> NE #] - ; then move to change position - G53 G0 X[#<_ini[CHANGE_POSITION]X>] Y[#<_ini[CHANGE_POSITION]Y>] -o200 endif - -;cancel tool offset mode -G49 - -; using the code being remapped here means 'use builtin behaviour' -; ie, this is not a recursive call to this program, but calls the -; un-remapped M6 processing -; That processing includes actually sending the window to the user -; to press OK when they have completed the tool change. -M6 - -; ------------------------------------- -; ------ End Physical Tool Change ---- -; ------------------------------------- - -; ------------------------------------- -; ------ Begin Safety Checks for Tool Offset Measurement ---- -; ------------------------------------- - -o300 if [#<_hal[qtversaprobe.enable]> EQ 0] - (MSG, Auto Tool probe disabled ) - G43 ;turn back on tool offset mode before returning -o300 return [3] ; indicate no tool measurement -o300 endif - -;check we have a usable probe velocity configured, otherwise error -o400 if [#<_hal[qtversaprobe.probevel]> LE 0] -o400 return [-2] ; indicate probevel <= 0 -o400 endif - -; ------------------------------------- -; ------ End Safety Checks for Tool Offset Measurement ---- -; ------------------------------------- - -; ------------------------------------- -; ------ Begin Tool Offset Measurement ---- -; ------------------------------------- - -;rapid-move to safe height -G53 G0 Z[#<_ini[VERSA_TOOLSETTER]Z_MAX_CLEAR>] -;Then rapid-move to probe XY location -G53 G0 X[#<_ini[VERSA_TOOLSETTER]X>] Y[#<_ini[VERSA_TOOLSETTER]Y>] -;then feed down to the probe start location -F #<_hal[qtversaprobe.searchvel]> -G53 G1 Z[#<_ini[VERSA_TOOLSETTER]Z>] - -;switch to relative distance mode for probe moves -G91 - -;begin initial probe move -F #<_hal[qtversaprobe.searchvel]> -G38.2 Z- #<_ini[VERSA_TOOLSETTER]MAXPROBE> -G0 Z #<_hal[qtversaprobe.backoffdist]> - -o510 if [#5070 EQ 0] -G90 -o510 return [-3] ; indicate probe contact failure to epilog -o510 endif - -;reprobe at probe speed: G38.2 means probe toward workpiece, stop on contact -; when G38.n axis completes, it puts the Z value detected (in the coordinates system -; in which this program started) into parameter #5063 (because we're probing Z) -; -F #<_hal[qtversaprobe.probevel]> -G38.2 Z- [#<_hal[qtversaprobe.backoffdist]> *1.2] - -o511 if [#5070 EQ 0] -G90 -o511 return [-3] ; indicate probe contact failure to epilog -o511 endif - -;switch back to absolute distance mode once probing is done -G90 - -;set the current offset -# = #5063 - -; -; G10 L1 is the Set Tool Table Offset: it changes the tool table offset, -; it DOES NOT change the offsets in the current coordinate system. (that would be G10 L2) - -# = [# - #<_hal[qtversaprobe.probeheight]> + #<_hal[qtversaprobe.blockheight]>] - -G10 L1 P# Z[#] - -;G43 enables tool length offset: this affects all subsequent moves by applying -; the offset just calculated to the coordinate system currently in -; effect. ie. it has subtracted Calculated Offset from the Z offset - -G43 - - -(DEBUG, %fProbe Height: #<_hal[qtversaprobe.probeheight]>) -(DEBUG, %fBlock Height: #<_hal[qtversaprobe.blockheight]>) -(DEBUG, %fProbe Result: #) -(DEBUG, %fCalculated Offset: #) - -; ------------------------------------- -; ------ End Tool Offset Measurement ---- -; ------------------------------------- - -; ------------------------------------- -; ------ Begin Return Movement ---- -; ------------------------------------- - -; return to original tool-tip position, but using new z-offset -;(DEBUG, Return to original tool-tip position using new z-offset: # , # , #) -G53 G0 Z[#<_ini[VERSA_TOOLSETTER]Z_MAX_CLEAR>] -; now use original (modal)coord system to go over to xy -G0 X[#] Y[#] -; and finally down to the (already offset) z coord -G0 Z[#] - -; ------------------------------------- -; ------ End Return Movement ---- -; ------------------------------------- - -; signal success be returning a value > 0: -o endsub [1] -m2 diff --git a/nc_files/remap_lib/common_nc_subs/on_abort.ngc b/nc_files/remap_lib/common_nc_subs/on_abort.ngc deleted file mode 100644 index 605f7212475..00000000000 --- a/nc_files/remap_lib/common_nc_subs/on_abort.ngc +++ /dev/null @@ -1,13 +0,0 @@ - -o sub - -(print, on_abort executing) - -; add any resetting specific to your config here, -; like setting HAL pin values - - -o call - -o endsub -m2 diff --git a/nc_files/remap_lib/common_nc_subs/reset_state.ngc b/nc_files/remap_lib/common_nc_subs/reset_state.ngc deleted file mode 100644 index af0a8b4452b..00000000000 --- a/nc_files/remap_lib/common_nc_subs/reset_state.ngc +++ /dev/null @@ -1,25 +0,0 @@ - -o sub - -; if say a G38 probe was interrupted during a remap, this leaves the G38 modal state active -; clear it out here, and any other state you what to have established after an error -; -; executing an M2 here is NOT recommended here, so we replicate the steps taken by an M2 -; but keep executing - -G54 (origin offsets are set to the default) -G17 (select XY plane) -G90 (absolute) -G94 (feed mode: units/minute) -M48 (set feed and speed overrides) -G40 (cutter compensation off) -M5 (spindle off) - -; M2 sets G1, but this fails with feed zero -; a G80 is the next best safe thing -G80 (cancel modal motion) - -M9 (mist and coolant off) - -o endsub -m2 diff --git a/nc_files/remap_lib/python-stdglue/python/remap.py b/nc_files/remap_lib/python-stdglue/python/remap.py deleted file mode 100644 index 45b8c4bf71e..00000000000 --- a/nc_files/remap_lib/python-stdglue/python/remap.py +++ /dev/null @@ -1,17 +0,0 @@ -# This is a component of LinuxCNC -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -from stdglue import * diff --git a/nc_files/remap_lib/python-stdglue/python/stdglue.py b/nc_files/remap_lib/python-stdglue/python/stdglue.py deleted file mode 120000 index d10ba80d697..00000000000 --- a/nc_files/remap_lib/python-stdglue/python/stdglue.py +++ /dev/null @@ -1 +0,0 @@ -../stdglue.py \ No newline at end of file diff --git a/nc_files/remap_lib/python-stdglue/python/toplevel.py b/nc_files/remap_lib/python-stdglue/python/toplevel.py deleted file mode 100644 index 52dbff6acec..00000000000 --- a/nc_files/remap_lib/python-stdglue/python/toplevel.py +++ /dev/null @@ -1,18 +0,0 @@ -# This is a component of LinuxCNC -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -import remap - diff --git a/nc_files/remap_lib/python-stdglue/stdglue.py b/nc_files/remap_lib/python-stdglue/stdglue.py deleted file mode 100644 index a3b93019afa..00000000000 --- a/nc_files/remap_lib/python-stdglue/stdglue.py +++ /dev/null @@ -1,659 +0,0 @@ -#NOTE: -# The legacy names *selected_pocket* and *current_pocket* actually reference -# a sequential tooldata index for tool items loaded from a tool -# table ([EMCIO]TOOL_TABLE) or via a tooldata database ([EMCIO]DB_PROGRAM) - -# stdglue - canned prolog and epilog functions for the remappable builtin codes (T,M6,M61,S,F) -# -# we dont use argspec to avoid the generic error message of the argspec prolog and give more -# concise ones here - -# cycle_prolog,cycle_epilog: generic code-independent support glue for oword sub cycles -# -# these are provided as starting point - for more concise error message you would better -# write a prolog specific for the code -# -# Usage: -#REMAP=G84.3 modalgroup=1 argspec=xyzqp prolog=cycle_prolog ngc=g843 epilog=cycle_epilog - -import emccanon -from interpreter import * -from emccanon import MESSAGE -throw_exceptions = 1 - -# used so screens can get info. -# add this to toplevel to call it: - -# import remap -# def __init__(self): -# if self.task: -# remap.build_hal(self) - -def build_hal(self): - import hal - try: - h=hal.component('remapStat') - h.newpin("tool", hal.HAL_S32, hal.HAL_OUT) - h.newpin("wear", hal.HAL_S32, hal.HAL_OUT) - h.ready() - self.hal_tool_comp = h - except Exception as e: - print(e) - -# REMAP=S prolog=setspeed_prolog ngc=setspeed epilog=setspeed_epilog -# exposed parameter: # - -def setspeed_prolog(self,**words): - try: - c = self.blocks[self.remap_level] - if not c.s_flag: - self.set_errormsg("S requires a value") - return INTERP_ERROR - self.params["speed"] = c.s_number - except Exception as e: - self.set_errormsg("S/setspeed_prolog: %s)" % (e)) - return INTERP_ERROR - return INTERP_OK - -def setspeed_epilog(self,**words): - try: - if not self.value_returned: - r = self.blocks[self.remap_level].executing_remap - self.set_errormsg("the %s remap procedure %s did not return a value" - % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) - return INTERP_ERROR - if self.return_value < -TOLERANCE_EQUAL: # 'less than 0 within interp's precision' - self.set_errormsg("S: remap procedure returned %f" % (self.return_value)) - return INTERP_ERROR - if self.blocks[self.remap_level].builtin_used: - pass - #print "---------- S builtin recursion, nothing to do" - else: - self.speed[0] = self.params["speed"] - emccanon.enqueue_SET_SPINDLE_SPEED(self.speed[0]) - return INTERP_OK - except Exception as e: - self.set_errormsg("S/setspeed_epilog: %s)" % (e)) - return INTERP_ERROR - return INTERP_OK - -# REMAP=F prolog=setfeed_prolog ngc=setfeed epilog=setfeed_epilog -# exposed parameter: # - -def setfeed_prolog(self,**words): - try: - c = self.blocks[self.remap_level] - if not c.f_flag: - self.set_errormsg("F requires a value") - return INTERP_ERROR - self.params["feed"] = c.f_number - except Exception as e: - self.set_errormsg("F/setfeed_prolog: %s)" % (e)) - return INTERP_ERROR - return INTERP_OK - -def setfeed_epilog(self,**words): - try: - if not self.value_returned: - r = self.blocks[self.remap_level].executing_remap - self.set_errormsg("the %s remap procedure %s did not return a value" - % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) - return INTERP_ERROR - if self.blocks[self.remap_level].builtin_used: - pass - #print "---------- F builtin recursion, nothing to do" - else: - self.feed_rate = self.params["feed"] - emccanon.enqueue_SET_FEED_RATE(self.feed_rate) - return INTERP_OK - except Exception as e: - self.set_errormsg("F/setfeed_epilog: %s)" % (e)) - return INTERP_ERROR - return INTERP_OK - -# REMAP=T prolog=prepare_prolog ngc=prepare epilog=prepare_epilog -# exposed parameters: # # - -def prepare_prolog(self,**words): - try: - cblock = self.blocks[self.remap_level] - if not cblock.t_flag: - self.set_errormsg("T requires a tool number") - return INTERP_ERROR - tool = cblock.t_number - if tool: - (status, pocket) = self.find_tool_pocket(tool) - if status != INTERP_OK: - self.set_errormsg("T%d: pocket not found" % (tool)) - return status - else: - pocket = -1 # this is a T0 - tool unload - self.params["tool"] = tool - self.params["pocket"] = pocket - return INTERP_OK - except Exception as e: - self.set_errormsg("T%d/prepare_prolog: %s" % (int(words['t']), e)) - return INTERP_ERROR - -def prepare_epilog(self, **words): - try: - if not self.value_returned: - r = self.blocks[self.remap_level].executing_remap - self.set_errormsg("the %s remap procedure %s did not return a value" - % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) - return INTERP_ERROR - if self.blocks[self.remap_level].builtin_used: - #print "---------- T builtin recursion, nothing to do" - return INTERP_OK - else: - if self.return_value > 0: - self.selected_tool = int(self.params["tool"]) - self.selected_pocket = int(self.params["pocket"]) - emccanon.SELECT_TOOL(self.selected_tool) - return INTERP_OK - else: - self.set_errormsg("T%d: aborted (return code %.1f)" % (int(self.params["tool"]),self.return_value)) - return INTERP_ERROR - except Exception as e: - self.set_errormsg("T%d/prepare_epilog: %s" % (tool,e)) - return INTERP_ERROR - -# REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog -# exposed parameters: -# # -# # -# # -# # - -def change_prolog(self, **words): - try: - if self.selected_pocket < 0: - self.set_errormsg("M6: no tool prepared") - return INTERP_ERROR - if self.cutter_comp_side: - self.set_errormsg("Cannot change tools with cutter radius compensation on") - return INTERP_ERROR - self.params["tool_in_spindle"] = self.current_tool - self.params["selected_tool"] = self.selected_tool - self.params["current_pocket"] = self.current_pocket - self.params["selected_pocket"] = self.selected_pocket - return INTERP_OK - except Exception as e: - self.set_errormsg("M6/change_prolog: %s" % (e)) - return INTERP_ERROR - -def change_epilog(self, **words): - try: - if not self.value_returned: - r = self.blocks[self.remap_level].executing_remap - self.set_errormsg("the %s remap procedure %s did not return a value" - % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) - yield INTERP_ERROR - - if self.blocks[self.remap_level].builtin_used: - #print "---------- M6 builtin recursion, nothing to do" - yield INTERP_OK - else: - if self.return_value > 0.0: - # commit change - self.selected_pocket = int(self.params["selected_pocket"]) - emccanon.CHANGE_TOOL() - self.current_pocket = self.selected_pocket - self.selected_pocket = -1 - self.selected_tool = -1 - # cause a sync() - self.set_tool_parameters() - self.toolchange_flag = True - yield INTERP_EXECUTE_FINISH - else: - # yield to print any messages from the NGC program - yield INTERP_EXECUTE_FINISH - self.set_errormsg("M6 aborted (return code %.1f)" % (self.return_value)) - yield INTERP_ERROR - except Exception as e: - self.set_errormsg("M6/change_epilog: %s" % (e)) - yield INTERP_ERROR - -# REMAP=M61 modalgroup=6 prolog=settool_prolog ngc=settool epilog=settool_epilog -# exposed parameters: # # - -def settool_prolog(self,**words): - try: - c = self.blocks[self.remap_level] - if not c.q_flag: - self.set_errormsg("M61 requires a Q parameter") - return INTERP_ERROR - tool = int(c.q_number) - if tool < -TOLERANCE_EQUAL: # 'less than 0 within interp's precision' - self.set_errormsg("M61: Q value < 0") - return INTERP_ERROR - (status,pocket) = self.find_tool_pocket(tool) - if status != INTERP_OK: - self.set_errormsg("M61 failed: requested tool %d not in table" % (tool)) - return status - self.params["tool"] = tool - self.params["pocket"] = pocket - return INTERP_OK - except Exception as e: - self.set_errormsg("M61/settool_prolog: %s)" % (e)) - return INTERP_ERROR - -def settool_epilog(self,**words): - try: - if not self.value_returned: - r = self.blocks[self.remap_level].executing_remap - self.set_errormsg("the %s remap procedure %s did not return a value" - % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) - return INTERP_ERROR - - if self.blocks[self.remap_level].builtin_used: - #print "---------- M61 builtin recursion, nothing to do" - return INTERP_OK - else: - if self.return_value > 0.0: - self.current_tool = int(self.params["tool"]) - self.current_pocket = int(self.params["pocket"]) - emccanon.CHANGE_TOOL_NUMBER(self.current_pocket) - # cause a sync() - self.tool_change_flag = True - self.set_tool_parameters() - else: - self.set_errormsg("M61 aborted (return code %.1f)" % (self.return_value)) - return INTERP_ERROR - except Exception as e: - self.set_errormsg("M61/settool_epilog: %s)" % (e)) - return INTERP_ERROR - -# educational alternative: M61 remapped to an all-Python handler -# demo - this really does the same thing as the builtin (non-remapped) M61 -# -# REMAP=M61 modalgroup=6 python=set_tool_number - -def set_tool_number(self, **words): - try: - c = self.blocks[self.remap_level] - if c.q_flag: - toolno = int(c.q_number) - else: - self.set_errormsg("M61 requires a Q parameter") - return status - (status,pocket) = self.find_tool_pocket(toolno) - if status != INTERP_OK: - self.set_errormsg("M61 failed: requested tool %d not in table" % (toolno)) - return status - if words['q'] > -TOLERANCE_EQUAL: # 'greater equal 0 within interp's precision' - self.current_pocket = pocket - self.current_tool = toolno - emccanon.CHANGE_TOOL_NUMBER(pocket) - # cause a sync() - self.tool_change_flag = True - self.set_tool_parameters() - return INTERP_OK - else: - self.set_errormsg("M61 failed: Q=%4" % (toolno)) - return INTERP_ERROR - except Exception as e: - self.set_errormsg("M61/set_tool_number: %s" % (e)) - return INTERP_ERROR - -_uvw = ("u","v","w","a","b","c") -_xyz = ("x","y","z","a","b","c") -# given a plane, return sticky words, incompatible axis words and plane name -# sticky[0] is also the movement axis -_compat = { - emccanon.CANON_PLANE_XY : (("z","r"),_uvw,"XY"), - emccanon.CANON_PLANE_YZ : (("x","r"),_uvw,"YZ"), - emccanon.CANON_PLANE_XZ : (("y","r"),_uvw,"XZ"), - emccanon.CANON_PLANE_UV : (("w","r"),_xyz,"UV"), - emccanon.CANON_PLANE_VW : (("u","r"),_xyz,"VW"), - emccanon.CANON_PLANE_UW : (("v","r"),_xyz,"UW")} - -# extract and pass parameters from current block, merged with extra parameters on a continuation line -# keep tjose parameters across invocations -# export the parameters into the oword procedure -def cycle_prolog(self,**words): - # self.sticky_params is assumed to have been initialized by the - # init_stgdlue() method below - global _compat - try: - # determine whether this is the first or a subsequent call - c = self.blocks[self.remap_level] - r = c.executing_remap - if c.g_modes[1] == r.motion_code: - # first call - clear the sticky dict - self.sticky_params[r.name] = dict() - - self.params["motion_code"] = c.g_modes[1] - - (sw,incompat,plane_name) =_compat[self.plane] - for (word,value) in list(words.items()): - # inject current parameters - self.params[word] = value - # record sticky words - if word in sw: - if self.debugmask & 0x00080000: print("%s: record sticky %s = %.4f" % (r.name,word,value)) - self.sticky_params[r.name][word] = value - if word in incompat: - return "%s: Cannot put a %s in a canned cycle in the %s plane" % (r.name, word.upper(), plane_name) - - # inject sticky parameters which were not in words: - for (key,value) in list(self.sticky_params[r.name].items()): - if not key in words: - if self.debugmask & 0x00080000: print("%s: inject sticky %s = %.4f" % (r.name,key,value)) - self.params[key] = value - - if not "r" in self.sticky_params[r.name]: - return "%s: cycle requires R word" % (r.name) - else: - if self.sticky_params[r.name]['r'] <= 0.0: - return "%s: R word must be > 0 if used (%.4f)" % (r.name, words["r"]) - - if "l" in words: - # checked in interpreter during block parsing - # if l <= 0 or l not near an int - self.params["l"] = words["l"] - - if "p" in words: - p = words["p"] - if p < 0.0: - return "%s: P word must be >= 0 if used (%.4f)" % (r.name, p) - self.params["p"] = p - - if self.feed_rate == 0.0: - return "%s: feed rate must be > 0" % (r.name) - if self.feed_mode == INVERSE_TIME: - return "%s: Cannot use inverse time feed with canned cycles" % (r.name) - if self.cutter_comp_side: - return "%s: Cannot use canned cycles with cutter compensation on" % (r.name) - return INTERP_OK - - except Exception as e: - raise - return "cycle_prolog failed: %s" % (e) - -# make sure the next line has the same motion code, unless overridden by a -# new G-code -def cycle_epilog(self,**words): - try: - c = self.blocks[self.remap_level] - self.motion_mode = c.executing_remap.motion_code # retain the current motion mode - return INTERP_OK - except Exception as e: - return "cycle_epilog failed: %s" % (e) - -# this should be called from TOPLEVEL __init__() -def init_stdglue(self): - self.sticky_params = dict() - -##################################### -# pure python remaps -##################################### - -# REMAP=M6 python=ignore_m6 -# -# m5 silently ignored -# -def ignore_m6(self,**words): - try: - return INTERP_OK - except Exception as e: - return "Ignore M6 failed: %s" % (e) - -# REMAP=T python=index_lathe_tool_with_wear -# -# uses T101 for tool 1, wear 1 no M6 needed -# tool offsets for tool 1 and tool 10001 are added together. -# -def index_lathe_tool_with_wear(self,**words): - # only run this if we are really moving the machine - # skip this if running task for the screen - if not self.task: - yield INTERP_OK - try: - # check there is a tool number from the Gcode - cblock = self.blocks[self.remap_level] - if not cblock.t_flag: - self.set_errormsg("T requires a tool number") - yield INTERP_ERROR - tool_raw = int(cblock.t_number) - - # interpret the raw tool number into tool and wear number - # If it's less then 100 someone forgot to add the wear #, so we added it automatically - # separate out tool number (tool) and wear number (wear), add 10000 to wear number - if tool_raw <100: - tool_raw=tool_raw*100 - tool = int(tool_raw/100) - wear = 10000 + tool_raw % 100 - - # uncomment for debugging - #print'***tool#',cblock.t_number,'toolraw:',tool_raw,'tool split:',tool,'wear split',wear - if tool: - # check for tool number entry in tool file - (status, pocket) = self.find_tool_pocket(tool) - if status != INTERP_OK: - self.set_errormsg("T%d: tool entry not found" % (tool)) - yield status - else: - tool = -1 - pocket = -1 - wear = -1 - self.params["tool"] = tool - self.params["pocket"] = pocket - self.params["wear"] = wear - try: - self.hal_tool_comp['tool']= tool_raw - self.hal_tool_comp['wear']= wear - except: - pass - # index tool immediately to tool number - self.selected_tool = int(self.params["tool"]) - self.selected_pocket = int(self.params["pocket"]) - emccanon.SELECT_TOOL(self.selected_tool) - if self.selected_pocket < 0: - self.set_errormsg("T0 not valid") - yield INTERP_ERROR - if self.cutter_comp_side: - self.set_errormsg("Cannot change tools with cutter radius compensation on") - yield INTERP_ERROR - self.params["tool_in_spindle"] = self.current_tool - self.params["selected_tool"] = self.selected_tool - self.params["current_pocket"] = self.current_pocket - self.params["selected_pocket"] = self.selected_pocket - - # change tool - try: - self.selected_pocket = int(self.params["selected_pocket"]) - emccanon.CHANGE_TOOL() - self.current_pocket = self.selected_pocket - self.selected_pocket = -1 - self.selected_tool = -1 - # cause a sync() - self.set_tool_parameters() - self.toolchange_flag = True - except: - self.set_errormsg("T change aborted (return code %.1f)" % (self.return_value)) - yield INTERP_ERROR - - # add tool offset - self.execute("g43 h%d"% tool) - # if the wear offset is specified, add it's offset - try: - if wear>10000: - self.execute("g43.2 h%d"% wear) - yield INTERP_OK - except: - self.set_errormsg("Tool change aborted - No wear %d entry found in tool table" %wear) - yield INTERP_ERROR - except: - self.set_errormsg("Tool change aborted (return code %.1f)" % (self.return_value)) - yield INTERP_ERROR - - -# REMAP=M6 modalgroup=10 python=tool_probe_m6 -# -# auto tool probe on m6 -# move to tool change position for toolchange -# wait for acknowledge of tool change -# move to tool setter probe position -# probe tool on tool setter -# move back to tool change position -# set offsets -# based on Versaprobe remap -# -# param 5000 holds the work piece height -# param 4999 should be set to 1 if the -# machine is based in imperial -# -# required INI settings -# (Abs coordinates/ machine based units) -# -#[CHANGE_POSITION] -#X = 5 -#Y = 0 -#Z = 0 - -#[TOOLSENSOR] -#X = 5.00 -#Y = -1 -#Z = -1 -#PROBEHEIGHT = 2.3 -#MAXPROBE = -3 -#SEARCH_VEL = 20 -#PROBE_VEL = 5 - -def tool_probe_m6(self, **words): - - # only run this if we are really moving the machine - # skip this if running task for the screen - if not self.task: - yield INTERP_OK - - IMPERIAL_BASED = not(bool(self.params['_metric_machine'])) - - try: - # we need to be in machine based units - # if we aren't - switch - # remember so we can switch back later - switchUnitsFlag = False - if bool(self.params["_imperial"]) != IMPERIAL_BASED: - print ("not right Units: {}".format(bool(self.params["_imperial"]))) - if IMPERIAL_BASED: - print ("switched Units to imperial") - self.execute("G20") - else: - print ("switched Units to metric") - self.execute("G21") - switchUnitsFlag = True - - self.params["tool_in_spindle"] = self.current_tool - self.params["selected_tool"] = self.selected_tool - self.params["current_pocket"] = self.current_pocket - self.params["selected_pocket"] = self.selected_pocket - - # cancel tool offset - self.execute("G49") - - # change tool where ever we are - # user sets toolchange position prior to toolchange - # we will return here after - - try: - self.selected_pocket = int(self.params["selected_pocket"]) - emccanon.CHANGE_TOOL() - self.current_pocket = self.selected_pocket - self.selected_pocket = -1 - self.selected_tool = -1 - # cause a sync() - self.set_tool_parameters() - self.toolchange_flag = True - except InterpreterException as e: - self.set_errormsg("tool_probe_m6 remap error: %s" % (e)) - yield INTERP_ERROR - - yield INTERP_EXECUTE_FINISH - - # record current position; probably should record every axis - self.params[4999] = emccanon.GET_EXTERNAL_POSITION_X() - self.params[4998] = emccanon.GET_EXTERNAL_POSITION_Y() - self.params[4997] = emccanon.GET_EXTERNAL_POSITION_Z() - - try: - # move to tool probe position (from INI) - self.execute("G90") - self.execute("G53 G0 X[#<_ini[TOOLSENSOR]X>] Y[#<_ini[TOOLSENSOR]Y>]") - self.execute("G53 G0 Z[#<_ini[TOOLSENSOR]Z>]") - - # set incremental mode - self.execute("G91") - - # course probe - self.execute("F [#<_ini[TOOLSENSOR]SEARCH_VEL>]") - self.execute("G38.2 Z [#<_ini[TOOLSENSOR]MAXPROBE>]") - - # Wait for results - yield INTERP_EXECUTE_FINISH - - # FIXME if there is an error it never comes back - # which leaves linuxcnc in g91 state - if self.params[5070] == 0 or self.return_value > 0.0: - self.execute("G90") - self.set_errormsg("tool_probe_m6 remap error:") - yield INTERP_ERROR - - # rapid up off trigger point to do it again - if bool(self.params["_imperial"]): - f = 0.25 - else: - f = 4.0 - self.execute("G0 Z{}".format(f)) - - self.execute("F [#<_ini[TOOLSENSOR]PROBE_VEL>]") - self.execute("G38.2 Z-0.5") - yield INTERP_EXECUTE_FINISH - - # FIXME if there is an error it never comes back - # which leaves linuxcnc in g91 state - if self.params[5070] == 0 or self.return_value > 0.0: - self.execute("G90") - self.set_errormsg("tool_probe_m6 remap error:") - yield INTERP_ERROR - - # set back absolute state - self.execute("G90") - - # return to recorded tool change position - self.execute("G53 G0 Z[#4997]") - yield INTERP_EXECUTE_FINISH - self.execute("G53 G0 X[#4999] Y[#4998]") - - # adjust tool offset from calculations - proberesult = self.params[5063] - probeheight = self.params["_ini[TOOLSENSOR]PROBEHEIGHT"] - workheight = self.params[5000] - - adj = proberesult - probeheight + workheight - self.execute("G10 L1 P# Z{}".format(adj)) - - # apply tool offset - self.execute("G43") - - # if we switched units for tool change - switch back - if switchUnitsFlag: - if IMPERIAL_BASED: - self.execute("G21") - print ("switched Units back to metric") - else: - self.execute("G20") - print ("switched Units back to imperial") - - except InterpreterException as e: - msg = "%d: '%s' - %s" % (e.line_number,e.line_text, e.error_message) - print (msg) - yield INTERP_ERROR - - except: - self.set_errormsg("tool_probe_m6 remap error." ) - yield INTERP_ERROR - - - diff --git a/nc_files/retval.ngc b/nc_files/retval.ngc deleted file mode 100644 index 7d6c8c23f06..00000000000 --- a/nc_files/retval.ngc +++ /dev/null @@ -1,29 +0,0 @@ -; demonstrate optional return values from endsub and return - -o1000 sub -o1010 if [#1 GT 0] -o1010 return [123*[#1]] -o1010 endif - -o1020 if [#1 LT 0] -o1020 return -o1020 endif - -o1000 endsub [4712] - -o1000 call [0] -(debug,call with arg1=0 return #<_value>) - -; #<_value> is 4712.0 - -o1000 call [2] -(debug,call with arg1=2 return #<_value>) - -; #<_value> is 246.0 - -o1000 call [-1] -(debug,call with arg1=-1 return #<_value>) - -; #<_value> is 0.0 - -m2 diff --git a/nc_files/roparams.ngc b/nc_files/roparams.ngc deleted file mode 100644 index 56dc18caa15..00000000000 --- a/nc_files/roparams.ngc +++ /dev/null @@ -1,43 +0,0 @@ -(DEBUG, _vmajor: = #<_vmajor>) -(DEBUG, _vminor: = #<_vminor>) -(DEBUG, _line: = #<_line>) -(DEBUG, _motion_mode: = #<_motion_mode>) -(DEBUG, _plane: = #<_plane>) -(DEBUG, _ccomp: = #<_ccomp>) -(DEBUG, _metric: = #<_metric>) -(DEBUG, _imperial: = #<_imperial>) -(DEBUG, _absolute: = #<_absolute>) -(DEBUG, _incremental: = #<_incremental>) -(DEBUG, _inverse_time: = #<_inverse_time>) -(DEBUG, _units_per_minute: = #<_units_per_minute>) -(DEBUG, _units_per_rev: = #<_units_per_rev>) -(DEBUG, _coord_system: = #<_coord_system>) -(DEBUG, _tool_offset: = #<_tool_offset>) -(DEBUG, _retract_r_plane: = #<_retract_r_plane>) -(DEBUG, _retract_old_z: = #<_retract_old_z>) -(DEBUG, _spindle_rpm_mode: = #<_spindle_rpm_mode>) -(DEBUG, _spindle_css_mode: = #<_spindle_css_mode>) -(DEBUG, _ijk_absolute_mode: = #<_ijk_absolute_mode>) -(DEBUG, _lathe_diameter_mode: = #<_lathe_diameter_mode>) -(DEBUG, _lathe_radius_mode: = #<_lathe_radius_mode>) -(DEBUG, _spindle_on: = #<_spindle_on>) -(DEBUG, _spindle_cw: = #<_spindle_cw>) -(DEBUG, _mist: = #<_mist>) -(DEBUG, _flood: = #<_flood>) -(DEBUG, _speed_override: = #<_speed_override>) -(DEBUG, _feed_override: = #<_feed_override>) -(DEBUG, _adaptive_feed: = #<_adaptive_feed>) -(DEBUG, _feed_hold: = #<_feed_hold>) -(DEBUG, _feed: = #<_feed>) -(DEBUG, _rpm: = #<_rpm>) -(DEBUG, _x: = #<_x>) -(DEBUG, _y: = #<_y>) -(DEBUG, _z: = #<_z>) -(DEBUG, _a: = #<_a>) -(DEBUG, _b: = #<_b>) -(DEBUG, _c: = #<_c>) -(DEBUG, _u: = #<_u>) -(DEBUG, _v: = #<_v>) -(DEBUG, _w: = #<_w>) - -m2 diff --git a/nc_files/skeleton.ngc b/nc_files/skeleton.ngc deleted file mode 100644 index 1c29ef22983..00000000000 --- a/nc_files/skeleton.ngc +++ /dev/null @@ -1,22 +0,0 @@ -(program skeleton for use as basis for NC programs) -N0010 G17 G20 G40 G49 (XY plane select, inch mode, cancel diameter comp, cancel length offset) -N0020 G54 G80 G90 G94 (coordinate system 1, cancel motion, non-incremental motion, feed/minute mode) -N0030 G53 G0 Z0 (temporarily cancel offsets, retract quill) -N0040 X0 Y0 (move X and Y to the tool change position, change as required) -N0050 M05 M09 (spindle and coolant off) -(display a message for the operator) -N0060 (MSG,Load tool #1) -N0070 M00 (don't move until the operator presses the S key) -N0080 T1 M06 G43 H1 (change to tool 1 and get its length from the tool table) -(start G0 lines with a .001 second pause to avoid motion blending problems) -N0090 G04 P.001 G0 X1.0 Y1.0 S1000 M3 M8 (rapid to the starting XY, spindle CW, coolant ON, change as required) -N0100 G04 P.001 G0 Z0.25 (rapid to .25" above the part, change as required) -N0110 G0 Z0.25 (rapid to .25" above the part, change as required) -N0120 M05 M09 (spindle and coolant off) -N0130 G53 G0 Z0 (temporarily cancel offsets, retract quill) -N0140 X0. Y0. (move X and Y to the tool change position, change as required) -N0150 T0 M6 (remove tool) -N0160 (MSG,Remove tool) -N0170 M00 (don't do anything until operator presses the S key) -N0180 G49 (cancel length offset) -N0150 M2 (end program) diff --git a/nc_files/smartprobe.ngc b/nc_files/smartprobe.ngc deleted file mode 100644 index 94bc2e1ab65..00000000000 --- a/nc_files/smartprobe.ngc +++ /dev/null @@ -1,54 +0,0 @@ -( Rectangular Probing ) -( ) -( This program repeatedly probes in a regular XY grid and writes the ) -( probed location to the file 'probe-results.ngc' in the same directory ) -( as the .ini file ) -( increment x count = probe area ) - -(Configuration section) -G20 (Inches) -F20 (probe speed) - -#1=-1 (X start) -#2=.04 (X increment) -#3=51 (X count) - -#4=-1 (Y start) -#5=.04 (Y increment) -#6=51 (Y count) - -#7=1.1 (Z safety) -#8=-.1 (Z probe) -(End configuration section) - -(LOGOPEN,probe-results.ngc) -#9=0 #10=0 -G0Z#7 -O1 while [#9 lt #6] - #10=0 - G0 Y[#4+#5*#9] - O2 while [#10 lt #3] - O3 if [[#9/2] - fix[#9/2] eq 0] - #11=[#1+#2*#10] - O3 else - #11=[#1+#2*[#3-#10-1]] - O3 endif - (#11 is X target) - #5070=1 - O4 while [#5070 NE 0] - G38.5 z#7 - G38.3 x#11 - O4 endwhile - - G38.2Z#8 - (LOG,G1 X#5061 Y#5062 Z#5063) - #10=[#10+1] - O2 endwhile - G0Z#7 - #9=[#9+1] -O1 endwhile - -(LOGCLOSE) -G0Z#7 -G0X#1Y#4 -M2 diff --git a/nc_files/spiral.ngc b/nc_files/spiral.ngc deleted file mode 100644 index 7a3a4a31f25..00000000000 --- a/nc_files/spiral.ngc +++ /dev/null @@ -1,13 +0,0 @@ -g20 g64 g90 -s3400 m3 - -g0 z1 -g0 x2 y0 -g1 z-.1 f24 - -o100 repeat [800] -g91 g1 @-.0025 ^4.5 -o100 endrepeat - -g90 g0 z1 -m2 diff --git a/nc_files/systems.ngc b/nc_files/systems.ngc deleted file mode 100644 index 84f2a34c3dc..00000000000 --- a/nc_files/systems.ngc +++ /dev/null @@ -1,1003 +0,0 @@ -G54 G92.1 -(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) -(text: G54) -#1=0.1 (SafeHeight) -#2=0.01 (Depth of Cut) -#3=0.000120 (XY Scale) -#4=100.0 (Feed) -#5=0.0 (X offset) -#6=0.0 (Y offset) -(start of symbol G) -(starting X offset: 0) -G00 Z #1 -G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) -G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 1716 to 2892, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 5) -(starting X offset: 2957) -G00 Z #1 -G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 3625 to 4952, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(start of symbol 4) -(starting X offset: 5005) -G00 Z #1 -G00 X [6860*#3+#5] Y [1016*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G01 X [6750*#3+#5] Y [614*#3+#6] (lineto) -G01 X [6471*#3+#5] Y [614*#3+#6] (lineto) -G01 X [6299*#3+#5] Y [0*#3+#6] (lineto) -G01 X [5775*#3+#5] Y [0*#3+#6] (lineto) -G01 X [5943*#3+#5] Y [614*#3+#6] (lineto) -G01 X [4944*#3+#5] Y [614*#3+#6] (lineto) -G01 X [5058*#3+#5] Y [1044*#3+#6] (lineto) -G01 X [6807*#3+#5] Y [2798*#3+#6] (lineto) -G01 X [7065*#3+#5] Y [2798*#3+#6] (lineto) -G01 X [6578*#3+#5] Y [1016*#3+#6] (lineto) -G01 X [6860*#3+#5] Y [1016*#3+#6] (lineto) -G00 Z #1 -G00 X [5222*#3+#5] Y [1016*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G01 X [6054*#3+#5] Y [1016*#3+#6] (lineto) -G01 X [6377*#3+#5] Y [2163*#3+#6] (lineto) -G01 X [5222*#3+#5] Y [1016*#3+#6] (lineto) -(symbol extents: X = 4944 to 7065, Y = 0 to 2798) -(symbol advance: X = 2048, Y = 0) -(final X offset: 7053) -(overall extents: X = 1716 to 7065, Y = 0 to 2806) -G00 Z #1 -G55 -(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) -(text: G55) -#1=0.1 (SafeHeight) -#2=0.01 (Depth of Cut) -#3=0.000120 (XY Scale) -#4=100.0 (Feed) -#5=0.0 (X offset) -#6=0.0 (Y offset) -(start of symbol G) -(starting X offset: 0) -G00 Z #1 -G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) -G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 1716 to 2892, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 5) -(starting X offset: 2957) -G00 Z #1 -G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 3625 to 4952, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(start of symbol 5) -(starting X offset: 5005) -G00 Z #1 -G00 X [6262*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[6221*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[6082*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[5785*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[5304*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [5841*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [7000*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [6852*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [5812*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [5673*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[6074*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[6299*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[6693*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[6346*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[5497*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[5107*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[4960*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[5027*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[5202*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[5371*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[5480*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[5576*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[5714*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[6096*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[6262*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 5673 to 7000, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(final X offset: 7053) -(overall extents: X = 1716 to 7000, Y = 115 to 2806) -G00 Z #1 -G56 -(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) -(text: G56) -#1=0.1 (SafeHeight) -#2=0.01 (Depth of Cut) -#3=0.000120 (XY Scale) -#4=100.0 (Feed) -#5=0.0 (X offset) -#6=0.0 (Y offset) -(start of symbol G) -(starting X offset: 0) -G00 Z #1 -G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) -G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 1716 to 2892, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 5) -(starting X offset: 2957) -G00 Z #1 -G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 3625 to 4952, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(start of symbol 6) -(starting X offset: 5005) -G00 Z #1 -G00 X [7065*#3+#5] Y [2781*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G01 X [7090*#3+#5] Y [2683*#3+#6] (lineto) -G5.1 X[6408*#3+#5] Y[2287*#3+#6] I[-414*#3] J[-156*#3] -G5.1 X[5951*#3+#5] Y[1675*#3+#6] I[-268*#3] J[-239*#3] -G5.1 X[6205*#3+#5] Y[1729*#3+#6] I[160*#3] J[54*#3] -G5.1 X[6656*#3+#5] Y[1542*#3+#6] I[287*#3] J[0*#3] -G5.1 X[6820*#3+#5] Y[1028*#3+#6] I[164*#3] J[-186*#3] -G5.1 X[6527*#3+#5] Y[256*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[5812*#3+#5] Y[-61*#3+#6] I[-293*#3] J[-317*#3] -G5.1 X[5287*#3+#5] Y[168*#3+#6] I[-336*#3] J[0*#3] -G5.1 X[5099*#3+#5] Y[799*#3+#6] I[-188*#3] J[229*#3] -G5.1 X[5316*#3+#5] Y[1636*#3+#6] I[0*#3] J[434*#3] -G5.1 X[5923*#3+#5] Y[2331*#3+#6] I[217*#3] J[404*#3] -G5.1 X[6412*#3+#5] Y[2605*#3+#6] I[249*#3] J[180*#3] -G5.1 X[7065*#3+#5] Y[2781*#3+#6] I[240*#3] J[94*#3] -G00 Z #1 -G00 X [6033*#3+#5] Y [1565*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[5890*#3+#5] Y[1520*#3+#6] I[-98*#3] J[0*#3] -G5.1 X[5779*#3+#5] Y[1311*#3+#6] I[-45*#3] J[-45*#3] -G5.1 X[5558*#3+#5] Y[389*#3+#6] I[-221*#3] J[-549*#3] -G5.1 X[5783*#3+#5] Y[70*#3+#6] I[0*#3] J[-319*#3] -G5.1 X[6033*#3+#5] Y[229*#3+#6] I[164*#3] J[0*#3] -G5.1 X[6223*#3+#5] Y[760*#3+#6] I[102*#3] J[193*#3] -G5.1 X[6312*#3+#5] Y[1290*#3+#6] I[89*#3] J[338*#3] -G5.1 X[6033*#3+#5] Y[1565*#3+#6] I[0*#3] J[275*#3] -(symbol extents: X = 6033 to 7090, Y = 1565 to 2781) -(symbol advance: X = 2048, Y = 0) -(final X offset: 7053) -(overall extents: X = 1716 to 7090, Y = 115 to 2806) -G00 Z #1 -G54 -G0 X1 Y0 -G92 X0 -(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) -(text: G54G92) -#1=0.1 (SafeHeight) -#2=0.01 (Depth of Cut) -#3=0.000120 (XY Scale) -#4=100.0 (Feed) -#5=0.0 (X offset) -#6=0.0 (Y offset) -(start of symbol G) -(starting X offset: 0) -G00 Z #1 -G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) -G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 1716 to 2892, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 5) -(starting X offset: 2957) -G00 Z #1 -G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 3625 to 4952, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(start of symbol 4) -(starting X offset: 5005) -G00 Z #1 -G00 X [6860*#3+#5] Y [1016*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G01 X [6750*#3+#5] Y [614*#3+#6] (lineto) -G01 X [6471*#3+#5] Y [614*#3+#6] (lineto) -G01 X [6299*#3+#5] Y [0*#3+#6] (lineto) -G01 X [5775*#3+#5] Y [0*#3+#6] (lineto) -G01 X [5943*#3+#5] Y [614*#3+#6] (lineto) -G01 X [4944*#3+#5] Y [614*#3+#6] (lineto) -G01 X [5058*#3+#5] Y [1044*#3+#6] (lineto) -G01 X [6807*#3+#5] Y [2798*#3+#6] (lineto) -G01 X [7065*#3+#5] Y [2798*#3+#6] (lineto) -G01 X [6578*#3+#5] Y [1016*#3+#6] (lineto) -G01 X [6860*#3+#5] Y [1016*#3+#6] (lineto) -G00 Z #1 -G00 X [5222*#3+#5] Y [1016*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G01 X [6054*#3+#5] Y [1016*#3+#6] (lineto) -G01 X [6377*#3+#5] Y [2163*#3+#6] (lineto) -G01 X [5222*#3+#5] Y [1016*#3+#6] (lineto) -(symbol extents: X = 4944 to 7065, Y = 0 to 2798) -(symbol advance: X = 2048, Y = 0) -(start of symbol G) -(starting X offset: 7053) -G00 Z #1 -G00 X [9072*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[9053*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[8980*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[8892*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[8769*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [8769*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [9945*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [9945*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[9730*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[9621*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [9425*#3+#5] Y [168*#3+#6] (lineto) -G01 X [9310*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[8859*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[8351*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[7477*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[7139*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[7385*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[8036*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[8888*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[9316*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[9543*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[9715*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [9842*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [9633*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [9515*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[9377*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[8945*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[8449*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[8079*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[7858*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[7778*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[7950*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[8450*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[8681*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[8835*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[8965*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[9072*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 8769 to 9945, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 9) -(starting X offset: 10010) -G00 Z #1 -G00 X [11235*#3+#5] Y [2798*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[11530*#3+#5] Y[2740*#3+#6] I[164*#3] J[0*#3] -G5.1 X[11738*#3+#5] Y[2597*#3+#6] I[131*#3] J[-57*#3] -G5.1 X[11867*#3+#5] Y[2394*#3+#6] I[78*#3] J[-86*#3] -G5.1 X[11937*#3+#5] Y[2168*#3+#6] I[52*#3] J[-117*#3] -G5.1 X[11956*#3+#5] Y[1950*#3+#6] I[19*#3] J[-108*#3] -G5.1 X[11734*#3+#5] Y[1102*#3+#6] I[0*#3] J[-434*#3] -G5.1 X[11128*#3+#5] Y[406*#3+#6] I[-221*#3] J[-414*#3] -G5.1 X[10640*#3+#5] Y[131*#3+#6] I[-246*#3] J[-181*#3] -G5.1 X[9985*#3+#5] Y[-41*#3+#6] I[-241*#3] J[-94*#3] -G01 X [9961*#3+#5] Y [61*#3+#6] (lineto) -G5.1 X[11095*#3+#5] Y[1061*#3+#6] I[754*#3] J[230*#3] -G5.1 X[10846*#3+#5] Y[1004*#3+#6] I[-127*#3] J[-57*#3] -G5.1 X[10397*#3+#5] Y[1192*#3+#6] I[-279*#3] J[0*#3] -G5.1 X[10227*#3+#5] Y[1688*#3+#6] I[-170*#3] J[188*#3] -G5.1 X[10520*#3+#5] Y[2476*#3+#6] I[0*#3] J[466*#3] -G5.1 X[11235*#3+#5] Y[2798*#3+#6] I[293*#3] J[322*#3] -G00 Z #1 -G00 X [11296*#3+#5] Y [2666*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[10997*#3+#5] Y[2443*#3+#6] I[-164*#3] J[0*#3] -G5.1 X[10798*#3+#5] Y[1945*#3+#6] I[-135*#3] J[-223*#3] -G5.1 X[10735*#3+#5] Y[1442*#3+#6] I[-63*#3] J[-274*#3] -G5.1 X[11005*#3+#5] Y[1180*#3+#6] I[0*#3] J[-262*#3] -G5.1 X[11185*#3+#5] Y[1239*#3+#6] I[127*#3] J[0*#3] -G5.1 X[11321*#3+#5] Y[1544*#3+#6] I[54*#3] J[59*#3] -G5.1 X[11497*#3+#5] Y[2384*#3+#6] I[176*#3] J[529*#3] -G5.1 X[11296*#3+#5] Y[2666*#3+#6] I[0*#3] J[282*#3] -(symbol extents: X = 9961 to 11296, Y = 61 to 2798) -(symbol advance: X = 2048, Y = 0) -(start of symbol 2) -(starting X offset: 12058) -G00 Z #1 -G00 X [12320*#3+#5] Y [2126*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[13209*#3+#5] Y[2798*#3+#6] I[348*#3] J[672*#3] -G5.1 X[13690*#3+#5] Y[2599*#3+#6] I[287*#3] J[0*#3] -G5.1 X[13885*#3+#5] Y[2109*#3+#6] I[195*#3] J[-199*#3] -G5.1 X[13295*#3+#5] Y[1139*#3+#6] I[0*#3] J[-467*#3] -G01 X [12492*#3+#5] Y [455*#3+#6] (lineto) -G01 X [13102*#3+#5] Y [455*#3+#6] (lineto) -G5.1 X[13446*#3+#5] Y[516*#3+#6] I[238*#3] J[0*#3] -G5.1 X[13672*#3+#5] Y[782*#3+#6] I[107*#3] J[62*#3] -G01 X [13774*#3+#5] Y [782*#3+#6] (lineto) -G01 X [13451*#3+#5] Y [0*#3+#6] (lineto) -G01 X [11947*#3+#5] Y [0*#3+#6] (lineto) -G01 X [11947*#3+#5] Y [98*#3+#6] (lineto) -G01 X [12316*#3+#5] Y [467*#3+#6] (lineto) -G5.1 X[13115*#3+#5] Y[1370*#3+#6] I[578*#3] J[573*#3] -G5.1 X[13336*#3+#5] Y[1978*#3+#6] I[221*#3] J[330*#3] -G5.1 X[13235*#3+#5] Y[2310*#3+#6] I[0*#3] J[213*#3] -G5.1 X[12955*#3+#5] Y[2429*#3+#6] I[-100*#3] J[119*#3] -G5.1 X[12410*#3+#5] Y[2077*#3+#6] I[-307*#3] J[0*#3] -G01 X [12320*#3+#5] Y [2126*#3+#6] (lineto) -(symbol extents: X = 11947 to 13774, Y = 0 to 2126) -(symbol advance: X = 2048, Y = 0) -(final X offset: 14106) -(overall extents: X = 1716 to 13774, Y = 0 to 2806) -G00 Z #1 -G55 -(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) -(text: G55G92) -#1=0.1 (SafeHeight) -#2=0.01 (Depth of Cut) -#3=0.000120 (XY Scale) -#4=100.0 (Feed) -#5=0.0 (X offset) -#6=0.0 (Y offset) -(start of symbol G) -(starting X offset: 0) -G00 Z #1 -G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) -G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 1716 to 2892, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 5) -(starting X offset: 2957) -G00 Z #1 -G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 3625 to 4952, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(start of symbol 5) -(starting X offset: 5005) -G00 Z #1 -G00 X [6262*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[6221*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[6082*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[5785*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[5304*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [5841*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [7000*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [6852*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [5812*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [5673*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[6074*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[6299*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[6693*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[6346*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[5497*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[5107*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[4960*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[5027*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[5202*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[5371*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[5480*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[5576*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[5714*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[6096*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[6262*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 5673 to 7000, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(start of symbol G) -(starting X offset: 7053) -G00 Z #1 -G00 X [9072*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[9053*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[8980*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[8892*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[8769*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [8769*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [9945*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [9945*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[9730*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[9621*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [9425*#3+#5] Y [168*#3+#6] (lineto) -G01 X [9310*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[8859*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[8351*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[7477*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[7139*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[7385*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[8036*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[8888*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[9316*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[9543*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[9715*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [9842*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [9633*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [9515*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[9377*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[8945*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[8449*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[8079*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[7858*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[7778*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[7950*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[8450*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[8681*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[8835*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[8965*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[9072*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 8769 to 9945, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 9) -(starting X offset: 10010) -G00 Z #1 -G00 X [11235*#3+#5] Y [2798*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[11530*#3+#5] Y[2740*#3+#6] I[164*#3] J[0*#3] -G5.1 X[11738*#3+#5] Y[2597*#3+#6] I[131*#3] J[-57*#3] -G5.1 X[11867*#3+#5] Y[2394*#3+#6] I[78*#3] J[-86*#3] -G5.1 X[11937*#3+#5] Y[2168*#3+#6] I[52*#3] J[-117*#3] -G5.1 X[11956*#3+#5] Y[1950*#3+#6] I[19*#3] J[-108*#3] -G5.1 X[11734*#3+#5] Y[1102*#3+#6] I[0*#3] J[-434*#3] -G5.1 X[11128*#3+#5] Y[406*#3+#6] I[-221*#3] J[-414*#3] -G5.1 X[10640*#3+#5] Y[131*#3+#6] I[-246*#3] J[-181*#3] -G5.1 X[9985*#3+#5] Y[-41*#3+#6] I[-241*#3] J[-94*#3] -G01 X [9961*#3+#5] Y [61*#3+#6] (lineto) -G5.1 X[11095*#3+#5] Y[1061*#3+#6] I[754*#3] J[230*#3] -G5.1 X[10846*#3+#5] Y[1004*#3+#6] I[-127*#3] J[-57*#3] -G5.1 X[10397*#3+#5] Y[1192*#3+#6] I[-279*#3] J[0*#3] -G5.1 X[10227*#3+#5] Y[1688*#3+#6] I[-170*#3] J[188*#3] -G5.1 X[10520*#3+#5] Y[2476*#3+#6] I[0*#3] J[466*#3] -G5.1 X[11235*#3+#5] Y[2798*#3+#6] I[293*#3] J[322*#3] -G00 Z #1 -G00 X [11296*#3+#5] Y [2666*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[10997*#3+#5] Y[2443*#3+#6] I[-164*#3] J[0*#3] -G5.1 X[10798*#3+#5] Y[1945*#3+#6] I[-135*#3] J[-223*#3] -G5.1 X[10735*#3+#5] Y[1442*#3+#6] I[-63*#3] J[-274*#3] -G5.1 X[11005*#3+#5] Y[1180*#3+#6] I[0*#3] J[-262*#3] -G5.1 X[11185*#3+#5] Y[1239*#3+#6] I[127*#3] J[0*#3] -G5.1 X[11321*#3+#5] Y[1544*#3+#6] I[54*#3] J[59*#3] -G5.1 X[11497*#3+#5] Y[2384*#3+#6] I[176*#3] J[529*#3] -G5.1 X[11296*#3+#5] Y[2666*#3+#6] I[0*#3] J[282*#3] -(symbol extents: X = 9961 to 11296, Y = 61 to 2798) -(symbol advance: X = 2048, Y = 0) -(start of symbol 2) -(starting X offset: 12058) -G00 Z #1 -G00 X [12320*#3+#5] Y [2126*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[13209*#3+#5] Y[2798*#3+#6] I[348*#3] J[672*#3] -G5.1 X[13690*#3+#5] Y[2599*#3+#6] I[287*#3] J[0*#3] -G5.1 X[13885*#3+#5] Y[2109*#3+#6] I[195*#3] J[-199*#3] -G5.1 X[13295*#3+#5] Y[1139*#3+#6] I[0*#3] J[-467*#3] -G01 X [12492*#3+#5] Y [455*#3+#6] (lineto) -G01 X [13102*#3+#5] Y [455*#3+#6] (lineto) -G5.1 X[13446*#3+#5] Y[516*#3+#6] I[238*#3] J[0*#3] -G5.1 X[13672*#3+#5] Y[782*#3+#6] I[107*#3] J[62*#3] -G01 X [13774*#3+#5] Y [782*#3+#6] (lineto) -G01 X [13451*#3+#5] Y [0*#3+#6] (lineto) -G01 X [11947*#3+#5] Y [0*#3+#6] (lineto) -G01 X [11947*#3+#5] Y [98*#3+#6] (lineto) -G01 X [12316*#3+#5] Y [467*#3+#6] (lineto) -G5.1 X[13115*#3+#5] Y[1370*#3+#6] I[578*#3] J[573*#3] -G5.1 X[13336*#3+#5] Y[1978*#3+#6] I[221*#3] J[330*#3] -G5.1 X[13235*#3+#5] Y[2310*#3+#6] I[0*#3] J[213*#3] -G5.1 X[12955*#3+#5] Y[2429*#3+#6] I[-100*#3] J[119*#3] -G5.1 X[12410*#3+#5] Y[2077*#3+#6] I[-307*#3] J[0*#3] -G01 X [12320*#3+#5] Y [2126*#3+#6] (lineto) -(symbol extents: X = 11947 to 13774, Y = 0 to 2126) -(symbol advance: X = 2048, Y = 0) -(final X offset: 14106) -(overall extents: X = 1716 to 13774, Y = 0 to 2806) -G00 Z #1 -G56 -(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) -(text: G56G92) -#1=0.1 (SafeHeight) -#2=0.01 (Depth of Cut) -#3=0.000120 (XY Scale) -#4=100.0 (Feed) -#5=0.0 (X offset) -#6=0.0 (Y offset) -(start of symbol G) -(starting X offset: 0) -G00 Z #1 -G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) -G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 1716 to 2892, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 5) -(starting X offset: 2957) -G00 Z #1 -G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] -G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] -G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] -G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] -G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) -G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) -G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) -G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] -G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] -G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] -G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] -G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] -G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] -G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] -G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] -G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] -G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] -G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] -G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] -G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] -G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] -(symbol extents: X = 3625 to 4952, Y = 774 to 2740) -(symbol advance: X = 2048, Y = 0) -(start of symbol 6) -(starting X offset: 5005) -G00 Z #1 -G00 X [7065*#3+#5] Y [2781*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G01 X [7090*#3+#5] Y [2683*#3+#6] (lineto) -G5.1 X[6408*#3+#5] Y[2287*#3+#6] I[-414*#3] J[-156*#3] -G5.1 X[5951*#3+#5] Y[1675*#3+#6] I[-268*#3] J[-239*#3] -G5.1 X[6205*#3+#5] Y[1729*#3+#6] I[160*#3] J[54*#3] -G5.1 X[6656*#3+#5] Y[1542*#3+#6] I[287*#3] J[0*#3] -G5.1 X[6820*#3+#5] Y[1028*#3+#6] I[164*#3] J[-186*#3] -G5.1 X[6527*#3+#5] Y[256*#3+#6] I[0*#3] J[-455*#3] -G5.1 X[5812*#3+#5] Y[-61*#3+#6] I[-293*#3] J[-317*#3] -G5.1 X[5287*#3+#5] Y[168*#3+#6] I[-336*#3] J[0*#3] -G5.1 X[5099*#3+#5] Y[799*#3+#6] I[-188*#3] J[229*#3] -G5.1 X[5316*#3+#5] Y[1636*#3+#6] I[0*#3] J[434*#3] -G5.1 X[5923*#3+#5] Y[2331*#3+#6] I[217*#3] J[404*#3] -G5.1 X[6412*#3+#5] Y[2605*#3+#6] I[249*#3] J[180*#3] -G5.1 X[7065*#3+#5] Y[2781*#3+#6] I[240*#3] J[94*#3] -G00 Z #1 -G00 X [6033*#3+#5] Y [1565*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[5890*#3+#5] Y[1520*#3+#6] I[-98*#3] J[0*#3] -G5.1 X[5779*#3+#5] Y[1311*#3+#6] I[-45*#3] J[-45*#3] -G5.1 X[5558*#3+#5] Y[389*#3+#6] I[-221*#3] J[-549*#3] -G5.1 X[5783*#3+#5] Y[70*#3+#6] I[0*#3] J[-319*#3] -G5.1 X[6033*#3+#5] Y[229*#3+#6] I[164*#3] J[0*#3] -G5.1 X[6223*#3+#5] Y[760*#3+#6] I[102*#3] J[193*#3] -G5.1 X[6312*#3+#5] Y[1290*#3+#6] I[89*#3] J[338*#3] -G5.1 X[6033*#3+#5] Y[1565*#3+#6] I[0*#3] J[275*#3] -(symbol extents: X = 6033 to 7090, Y = 1565 to 2781) -(symbol advance: X = 2048, Y = 0) -(start of symbol G) -(starting X offset: 7053) -G00 Z #1 -G00 X [9072*#3+#5] Y [1098*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[9053*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] -G5.1 X[8980*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] -G5.1 X[8892*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] -G5.1 X[8769*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] -G01 X [8769*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [9945*#3+#5] Y [1352*#3+#6] (lineto) -G01 X [9945*#3+#5] Y [1245*#3+#6] (lineto) -G5.1 X[9730*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] -G5.1 X[9621*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] -G01 X [9425*#3+#5] Y [168*#3+#6] (lineto) -G01 X [9310*#3+#5] Y [115*#3+#6] (lineto) -G5.1 X[8859*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] -G5.1 X[8351*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] -G5.1 X[7477*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] -G5.1 X[7139*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] -G5.1 X[7385*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] -G5.1 X[8036*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] -G5.1 X[8888*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] -G5.1 X[9316*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] -G5.1 X[9543*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] -G5.1 X[9715*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] -G01 X [9842*#3+#5] Y [2806*#3+#6] (lineto) -G01 X [9633*#3+#5] Y [1901*#3+#6] (lineto) -G01 X [9515*#3+#5] Y [1917*#3+#6] (lineto) -G5.1 X[9377*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] -G5.1 X[8945*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] -G5.1 X[8449*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] -G5.1 X[8079*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] -G5.1 X[7858*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] -G5.1 X[7778*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] -G5.1 X[7950*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] -G5.1 X[8450*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] -G5.1 X[8681*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] -G5.1 X[8835*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] -G5.1 X[8965*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] -G5.1 X[9072*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] -(symbol extents: X = 8769 to 9945, Y = 115 to 2806) -(symbol advance: X = 2957, Y = 0) -(start of symbol 9) -(starting X offset: 10010) -G00 Z #1 -G00 X [11235*#3+#5] Y [2798*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[11530*#3+#5] Y[2740*#3+#6] I[164*#3] J[0*#3] -G5.1 X[11738*#3+#5] Y[2597*#3+#6] I[131*#3] J[-57*#3] -G5.1 X[11867*#3+#5] Y[2394*#3+#6] I[78*#3] J[-86*#3] -G5.1 X[11937*#3+#5] Y[2168*#3+#6] I[52*#3] J[-117*#3] -G5.1 X[11956*#3+#5] Y[1950*#3+#6] I[19*#3] J[-108*#3] -G5.1 X[11734*#3+#5] Y[1102*#3+#6] I[0*#3] J[-434*#3] -G5.1 X[11128*#3+#5] Y[406*#3+#6] I[-221*#3] J[-414*#3] -G5.1 X[10640*#3+#5] Y[131*#3+#6] I[-246*#3] J[-181*#3] -G5.1 X[9985*#3+#5] Y[-41*#3+#6] I[-241*#3] J[-94*#3] -G01 X [9961*#3+#5] Y [61*#3+#6] (lineto) -G5.1 X[11095*#3+#5] Y[1061*#3+#6] I[754*#3] J[230*#3] -G5.1 X[10846*#3+#5] Y[1004*#3+#6] I[-127*#3] J[-57*#3] -G5.1 X[10397*#3+#5] Y[1192*#3+#6] I[-279*#3] J[0*#3] -G5.1 X[10227*#3+#5] Y[1688*#3+#6] I[-170*#3] J[188*#3] -G5.1 X[10520*#3+#5] Y[2476*#3+#6] I[0*#3] J[466*#3] -G5.1 X[11235*#3+#5] Y[2798*#3+#6] I[293*#3] J[322*#3] -G00 Z #1 -G00 X [11296*#3+#5] Y [2666*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[10997*#3+#5] Y[2443*#3+#6] I[-164*#3] J[0*#3] -G5.1 X[10798*#3+#5] Y[1945*#3+#6] I[-135*#3] J[-223*#3] -G5.1 X[10735*#3+#5] Y[1442*#3+#6] I[-63*#3] J[-274*#3] -G5.1 X[11005*#3+#5] Y[1180*#3+#6] I[0*#3] J[-262*#3] -G5.1 X[11185*#3+#5] Y[1239*#3+#6] I[127*#3] J[0*#3] -G5.1 X[11321*#3+#5] Y[1544*#3+#6] I[54*#3] J[59*#3] -G5.1 X[11497*#3+#5] Y[2384*#3+#6] I[176*#3] J[529*#3] -G5.1 X[11296*#3+#5] Y[2666*#3+#6] I[0*#3] J[282*#3] -(symbol extents: X = 9961 to 11296, Y = 61 to 2798) -(symbol advance: X = 2048, Y = 0) -(start of symbol 2) -(starting X offset: 12058) -G00 Z #1 -G00 X [12320*#3+#5] Y [2126*#3+#6] (moveto) -G01 Z [0-#2] F#4 -G5.1 X[13209*#3+#5] Y[2798*#3+#6] I[348*#3] J[672*#3] -G5.1 X[13690*#3+#5] Y[2599*#3+#6] I[287*#3] J[0*#3] -G5.1 X[13885*#3+#5] Y[2109*#3+#6] I[195*#3] J[-199*#3] -G5.1 X[13295*#3+#5] Y[1139*#3+#6] I[0*#3] J[-467*#3] -G01 X [12492*#3+#5] Y [455*#3+#6] (lineto) -G01 X [13102*#3+#5] Y [455*#3+#6] (lineto) -G5.1 X[13446*#3+#5] Y[516*#3+#6] I[238*#3] J[0*#3] -G5.1 X[13672*#3+#5] Y[782*#3+#6] I[107*#3] J[62*#3] -G01 X [13774*#3+#5] Y [782*#3+#6] (lineto) -G01 X [13451*#3+#5] Y [0*#3+#6] (lineto) -G01 X [11947*#3+#5] Y [0*#3+#6] (lineto) -G01 X [11947*#3+#5] Y [98*#3+#6] (lineto) -G01 X [12316*#3+#5] Y [467*#3+#6] (lineto) -G5.1 X[13115*#3+#5] Y[1370*#3+#6] I[578*#3] J[573*#3] -G5.1 X[13336*#3+#5] Y[1978*#3+#6] I[221*#3] J[330*#3] -G5.1 X[13235*#3+#5] Y[2310*#3+#6] I[0*#3] J[213*#3] -G5.1 X[12955*#3+#5] Y[2429*#3+#6] I[-100*#3] J[119*#3] -G5.1 X[12410*#3+#5] Y[2077*#3+#6] I[-307*#3] J[0*#3] -G01 X [12320*#3+#5] Y [2126*#3+#6] (lineto) -(symbol extents: X = 11947 to 13774, Y = 0 to 2126) -(symbol advance: X = 2048, Y = 0) -(final X offset: 14106) -(overall extents: X = 1716 to 13774, Y = 0 to 2806) -G00 Z #1 -G92.1 -M02 diff --git a/nc_files/testg2.ngc b/nc_files/testg2.ngc deleted file mode 100644 index 928e2ffe567..00000000000 --- a/nc_files/testg2.ngc +++ /dev/null @@ -1,13 +0,0 @@ -(Test G-code for Tangential Arcs) -G17 G21 G90 G54 (XY Plane, mm, Absolute, Coord System 1) -F1000 (Set a visible feedrate) - -(Step 1: Straight move to establish initial heading) -G0 X0 Y0 -g1 x100 y0 -g1 x100 y100 -g1 x0 y100 -g1 x0 y0 -g1 x100 y 100 - -M2 diff --git a/nc_files/threading.ngc b/nc_files/threading.ngc deleted file mode 100644 index c08a7625dfd..00000000000 --- a/nc_files/threading.ngc +++ /dev/null @@ -1,76 +0,0 @@ -g20 -g64 - -s1200 m3 -g4p2 -g0x.5 -z.7 -f3 - -#1=.05 -o101 while [#1 GE .04] -g0z.7 -g1x.020 -g1z[#1 + .65] -z[#1 + .54]x.13 -#1=[#1-.008] -o101 endwhile - -s400 m3 (=20ipm cutting at .05tpi) -g4p2 -f20 - -#1=0.118 (full radius) -#2=0.0005 (X increment) -#3=0.0375 (depth of cut) -#4=0.05 (thread pitch) -#5=0.7 (Z length) -(end of arguments) - -#6=0.0 -o100 while [#6 LE #3] -#7=[[#3 - #6] * TAN [29]] -g0x[#1 + .2]z[#5 + #7] -g0x[.1 + #1 - #6] -g1x[#1 - #6] -g33z[.1 + #7]k#4 -(stay synchronized and exit at 45 degrees) -g33x[.1 + #1 - #6]z#7k[sqrt[2]*[#4]] -g0x[#1 + .2] -#6=[#6 + #2] -o100 endwhile - -(two spring passes) -g0x[#1 + .2]z[#5 + #7] -g0x[.1 + #1 - #6] -g1x[#1 - #6] -g33z[.1 + #7]k#4 -g33x[.1 + #1 - #6]z#7k[sqrt[2]*[#4]] -g0x[#1 + .2] - -g0x[#1 + .2]z[#5 + #7] -g0x[.1 + #1 - #6] -g1x[#1 - #6] -g33z[.1 + #7]k#4 -g33x[.1 + #1 - #6]z#7k[sqrt[2]*[#4]] -g0x[#1 + .2] - -s1000 m3 -g4p2 -g0x.5 -z.7 -x.117 -f1.5 -g1z0 -g0x.13 -z.7 -g0x.13 - -s300m3 -g4p2 -g0x.68 -g0z0 -g1x.82f.15 -g0x.68 - -m2 diff --git a/nc_files/tool-length-probe.ngc b/nc_files/tool-length-probe.ngc deleted file mode 100644 index 8b41233d2af..00000000000 --- a/nc_files/tool-length-probe.ngc +++ /dev/null @@ -1,51 +0,0 @@ -(this program demonstrates how to measure tool lengths automatically using) -(a switch hooked to the probe input. this is useful for machines without) -(tool holders, where the length of a tool is different every time it is) -(inserted.) - -(g30 should already be set to a position safely above the switch) - -(start with the first tool loaded, and g54 work offsets set with it) -(when you touch off the work with this reference tool, be sure length) -(comp is off {use g49}) - -g20 g90 -g49 -g0 x0 y0 z1 - -(measure reference tool) -g30 (above switch) -g38.2 z0 f15 (measure) -g91 g0z.2 (off the switch) -#1000=#5063 (save reference tool length) -(print,reference length is #1000) -g90 (done) - -(cut with first tool...) -g0 x0 y0 z1 -g1 z0 f20 -g2 x0 y0 i0 j.05 - -g0 z2 -(msg,insert another tool) -(use TxM6 here if you want to be able to use radius comp too) -m0 - -(measure next tool) -g30 (above switch) -g49 (measure without the last tool's offset) -g38.2 z0 f15 (measure) -g91 g0 z.2 (off the switch) -g43.1 z[#5063-#1000] (set new tool offset) -(print,new length is #5063) -g90 (done) - -(cut in the same place with this next tool...) -g0 x0 y0 z1 -g1 z0 f20 -g2 x0 y0 i0 j.05 - -g0 z1 - -(exit with tool length offset still in effect, in case we want to use MDI) -m2 diff --git a/nc_files/toplevel.ngc b/nc_files/toplevel.ngc deleted file mode 100644 index 2bb9421cc42..00000000000 --- a/nc_files/toplevel.ngc +++ /dev/null @@ -1,25 +0,0 @@ -; using M70/M71/M72 at the top level -; note that the 'Active G-codes' window in Axis isn't properly -; updated when single stepping - -F200 -S1200 -G90 (absolute mode) - -M70 (save state) - -f50 -s120 -g91 (relative motion) -g1 x5 - -M72 (restore without invalidating - multiple use possible) -(DEBUG, feed and speed back at f200 s1200 plus G90 restored) -f100 - -M71 (restore and invalidate) -(DEBUG, another M71 or M72 here should fail with an error message) - -; M71 - -M2 diff --git a/nc_files/tort.ngc b/nc_files/tort.ngc deleted file mode 100644 index 9775cf057c9..00000000000 --- a/nc_files/tort.ngc +++ /dev/null @@ -1,282 +0,0 @@ -g21 -G0 X0 Y0 Z20 -(msg,note axis positions... will return here at end of pgm. press 's') -m0 -F100 -G1 X2.000000 Y-4.000000 Z16.000000 -G0 X2.000000 Y-1.000000 Z16.000000 -G17 G2 (270 360) I0.000000 J7.000000 X9.000000 Y6.000000 Z13.000000 -G1 X10.500000 Y10.500000 Z15.500000 -G0 X15.000000 Y7.000000 Z13.000000 -G1 F480 X19.500000 Y4.500000 Z8.000000 -G0 X22.500000 Y6.000000 Z5.000000 -G17 G2 (210 270) I8.660254 J5.000000 X31.160254 Y1.000000 Z1.500000 -G17 G2 F170 (75 345) I-2.070552 J-7.727407 X36.817108 Y-8.797959 Z-3.500000 -G17 G2 F890 (300 75) I-1.000000 J1.732051 X36.334746 Y-5.134057 Z-6.000000 -G17 G3 (195 195) I1.931852 J0.517638 X36.334746 Y-5.134057 Z-3.500000 -G1 F290 X40.834746 Y-2.634057 Z-7.000000 -G17 G2 (75 210) I-2.588190 J-9.659258 X29.586302 Y-17.293315 Z-5.000000 -G1 F690 X28.586302 Y-18.293315 Z-8.000000 -G19 G3 F310 (270 345) J0.000000 K10.000000 X28.086302 Y-8.634057 Z-0.588190 -G1 F450 X31.086302 Y-6.134057 Z-1.588190 -G18 G2 (164 135) I9.659258 K-2.588190 X47.816628 Y-7.634057 Z-11.247449 -G0 X0 Y0 Z20 -F100 -G1 X-2.500000 Y-4.500000 Z19.000000 -G17 G2 F490 (90 195) I-0.000000 J-3.000000 X-5.397777 Y-8.276457 Z21.000000 -G1 X-3.397777 Y-5.276457 Z24.000000 -G17 G3 (0 329) I-8.000000 J-0.000000 X-4.469574 Y-9.276457 Z25.000000 -G17 G3 F870 (225 135) I4.949747 J4.949747 X-4.469574 Y0.623038 Z24.500000 -G18 G2 (45 29) I-2.121320 K-2.121320 X-5.090895 Y0.123038 Z24.976756 -G1 F650 X-6.090895 Y-0.876962 Z23.976756 -G0 X-8.590895 Y-0.876962 Z26.476756 -G19 G3 (135 164) J2.828427 K-2.828427 X-10.590895 Y-1.912238 Z24.683605 -G1 X-11.090895 Y-3.412238 Z25.683605 -G17 G3 F460 (329 225) I-3.464102 J2.000000 X-17.383423 Y-4.240666 Z24.683605 -G18 G2 F810 (150 150) I4.330127 K-2.500000 X-10.553296 Y-8.240666 Z17.853478 -G17 G3 F510 (345 59) I-6.761481 J1.811733 X-13.814777 Y-0.366754 Z20.853478 -G19 G3 (270 180) J0.000000 K10.000000 X-8.814777 Y-10.366754 Z30.853478 -G0 X0 Y0 Z20 -F100 -G1 X3.500000 Y1.000000 Z22.500000 -G1 X8.000000 Y0.500000 Z23.000000 -G19 G2 F910 (90 0) J-0.000000 K-7.000000 X12.500000 Y7.500000 Z16.000000 -G19 G2 F390 (90 135) J-0.000000 K-6.000000 X16.000000 Y3.257359 Z14.242641 -G19 G2 F200 (29 270) J-6.928203 K-4.000000 X13.000000 Y-3.670844 Z2.242641 -G17 G2 F840 (315 180) I-3.535534 J3.535534 X4.464466 Y-0.135310 Z7.242641 -G1 F280 X2.964466 Y-5.135310 Z9.242641 -G1 F550 X3.964466 Y-8.135310 Z9.742641 -G18 G3 F790 (135 59) I0.707107 K-0.707107 X5.537598 Y-4.635310 Z9.535534 -G1 F400 X1.537598 Y-3.635310 Z12.535534 -G18 G3 F870 (210 225) I7.794229 K4.500000 X2.967866 Y-3.135310 Z10.671573 -G19 G3 (180 14) J8.000000 K-0.000000 X3.967866 Y12.592097 Z12.742125 -G17 G3 F760 (180 45) I6.000000 J-0.000000 X14.210507 Y16.834737 Z7.742125 -G18 G2 (315 345) I-5.656854 K5.656854 X6.483100 Y13.834737 Z21.126386 -G1 F810 X1.983100 Y18.334737 Z19.626386 -G0 X1.983100 Y13.834737 Z16.626386 -G0 X3.983100 Y9.834737 Z19.126386 -G17 G3 F900 (75 255) I-1.294095 J-4.829629 X1.394910 Y0.175479 Z20.626386 -G19 G3 F300 (270 329) J0.000000 K10.000000 X1.894910 Y8.835733 Z25.626386 -G1 X3.394910 Y8.335733 Z23.126386 -G19 G2 F490 (164 329) J4.829629 K-1.294095 X0.394910 Y17.495489 Z19.332291 -G0 X5.394910 Y13.495489 Z20.332291 -G19 G2 F690 (225 29) J5.656854 K5.656854 X10.394910 Y26.080547 Z29.989145 -G19 G2 (75 14) J-0.258819 K-0.965926 X6.894910 Y26.787653 Z29.282038 -G17 G2 (329 285) I-4.330127 J2.500000 X3.858878 Y24.458024 Z31.282038 -G0 X0 Y0 Z20 -F100 -G0 X1.000000 Y4.500000 Z15.500000 -G19 G2 F700 (150 180) J8.660254 K-5.000000 X3.500000 Y3.160254 Z10.500000 -G0 X1.500000 Y3.160254 Z6.500000 -G18 G2 F430 (345 345) I-8.693332 K2.329371 X-9.522704 Y3.660254 Z17.522704 -G0 X-9.522704 Y1.660254 Z20.022704 -G0 X-9.022704 Y-0.339746 Z19.022704 -G19 G2 F900 (225 300) J0.707107 K0.707107 X-10.522704 Y0.867361 Z18.863785 -G18 G2 F630 (14 105) I-8.693332 K-2.329371 X-10.522704 Y1.867361 Z14.205042 -G17 G2 F100 (0 135) I-5.000000 J-0.000000 X-19.058238 Y5.402895 Z15.205042 -G19 G2 F470 (210 345) J5.196152 K3.000000 X-17.558238 Y16.394602 Z16.652128 -G18 G2 F330 (75 45) I-2.329371 K-8.693332 X-13.523648 Y12.394602 Z14.322757 -G1 X-15.023648 Y8.394602 Z18.322757 -G0 X-13.523648 Y4.894602 Z16.322757 -G17 G3 F630 (315 119) I-5.656854 J5.656854 X-23.180502 Y17.479660 Z14.322757 -G1 X-18.680502 Y21.979660 Z17.822757 -G1 X-20.180502 Y26.979660 Z18.822757 -G17 G2 (59 135) I-3.000000 J-5.196152 X-27.423143 Y26.026148 Z21.822757 -G17 G2 F930 (225 270) I4.242641 J4.242641 X-23.180502 Y24.268789 Z25.322757 -G1 F290 X-19.680502 Y25.768789 Z20.322757 -G17 G3 F620 (195 270) I3.863703 J1.035276 X-15.816799 Y22.804065 Z16.322757 -G17 G3 (135 255) I5.656854 J-5.656854 X-12.230497 Y9.419804 Z17.822757 -G1 F160 X-10.230497 Y10.919804 Z14.822757 -G0 X-11.230497 Y13.919804 Z17.822757 -G18 G2 (164 300) I1.931852 K-0.517638 X-11.030696 Y17.919804 Z18.305119 -G17 G2 F480 (105 255) I0.517638 J-1.931852 X-11.030696 Y14.056101 Z20.305119 -G17 G2 (14 150) I-7.727407 J-2.070552 X-25.686306 Y15.985548 Z16.805119 -G17 G2 F300 (225 315) I5.656854 J5.656854 X-14.372598 Y15.985548 Z21.805119 -G1 X-15.372598 Y18.485548 Z18.305119 -G17 G2 F730 (90 90) I-0.000000 J-8.000000 X-15.372598 Y18.485548 Z15.805119 -G0 X-12.372598 Y14.485548 Z12.305119 -G0 X-8.872598 Y11.985548 Z8.305119 -G0 X-5.872598 Y11.985548 Z10.305119 -G17 G2 F500 (105 105) I2.329371 J-8.693332 X-5.872598 Y11.985548 Z7.805119 -G19 G3 (195 315) J2.897777 K0.776457 X-3.872598 Y17.004646 Z6.460255 -G19 G2 (270 195) J0.000000 K10.000000 X-0.372598 Y7.345388 Z13.872065 -G18 G2 F870 (225 255) I2.121320 K2.121320 X-1.149055 Y2.845388 Z15.216928 -G19 G3 F440 (14 180) J-5.795555 K-1.552914 X-1.149055 Y-8.950167 Z13.664014 -G0 X1.350945 Y-10.950167 Z18.664014 -G17 G2 F480 (270 150) I0.000000 J1.000000 X0.484920 Y-9.450167 Z20.664014 -G0 X-2.015080 Y-11.450167 Z21.664014 -G18 G3 F890 (0 210) I-4.000000 K-0.000000 X-8.015080 Y-13.950167 Z18.199912 -G0 X-6.515080 Y-18.950167 Z19.199912 -G0 X-11.515080 Y-22.450167 Z16.199912 -G19 G3 (164 90) J9.659258 K-2.588190 X-14.515080 Y-12.790909 Z23.611722 -G0 X-12.515080 Y-9.790909 Z26.611722 -G0 X-12.015080 Y-13.290909 Z22.611722 -G17 G2 (300 29) I-4.500000 J7.794229 X-8.720852 Y-0.996680 Z19.611722 -G1 X-12.220852 Y-2.996680 Z18.611722 -G1 F460 X-11.720852 Y-0.996680 Z13.611722 -G0 X-7.720852 Y-1.496680 Z11.111722 -G18 G3 F980 (75 45) I-1.811733 K-6.761481 X-4.582837 Y-3.996680 Z9.299989 -G0 X-5.082837 Y-3.996680 Z14.299989 -G1 X-0.582837 Y0.003320 Z12.299989 -G18 G2 F800 (90 119) I-0.000000 K-4.000000 X2.881264 Y-1.996680 Z6.299989 -G0 X6.881264 Y-2.996680 Z6.299989 -G18 G3 (29 300) I-5.196152 K-3.000000 X-3.511041 Y-4.496680 Z6.299989 -G19 G3 (14 45) J-8.693332 K-2.329371 X1.488959 Y-6.826052 Z10.334578 -G18 G3 F220 (164 90) I5.795555 K-1.552914 X13.284514 Y-5.826052 Z8.781664 -G19 G2 (45 270) J-7.071068 K-7.071068 X14.284514 Y-12.897120 Z-8.289404 -G17 G3 F970 (0 150) I-7.000000 J-0.000000 X1.222336 Y-9.397120 Z-3.789404 -G18 G2 F690 (45 45) I-2.828427 K-2.828427 X1.222336 Y-11.397120 Z-3.789404 -G0 X4.722336 Y-15.897120 Z-3.789404 -G17 G3 (180 59) I6.000000 J-0.000000 X13.722336 Y-10.700967 Z1.210596 -G1 F760 X12.722336 Y-14.700967 Z1.210596 -G17 G2 F990 (29 164) I-8.660254 J-5.000000 X-5.597176 Y-17.112777 Z5.710596 -G18 G2 F580 (59 210) I-5.000000 K-8.660254 X-15.597176 Y-21.612777 Z-11.609912 -G0 X0 Y0 Z20 -F100 -G18 G2 (210 164) I5.196152 K3.000000 X6.749067 Y3.500000 Z17.204445 -G0 X6.749067 Y5.500000 Z15.704445 -G17 G2 (345 345) I-6.761481 J1.811733 X6.749067 Y5.500000 Z13.204445 -G17 G3 (0 195) I-8.000000 J-0.000000 X-8.978340 Y3.429448 Z15.704445 -G1 X-7.478340 Y3.429448 Z10.704445 -G1 F620 X-5.478340 Y3.429448 Z15.204445 -G17 G2 (135 164) I4.949747 J-4.949747 X-7.290073 Y0.291433 Z14.204445 -G17 G3 F870 (135 329) I2.828427 J-2.828427 X-0.997544 Y-4.536994 Z17.204445 -G17 G2 F580 (14 29) I-8.693332 J-2.329371 X-1.896648 Y-2.366365 Z21.704445 -G0 X-6.896648 Y-1.366365 Z17.704445 -G1 F170 X-5.396648 Y-0.866365 Z16.204445 -G0 X-4.396648 Y-2.366365 Z12.704445 -G1 F890 X-0.896648 Y-7.366365 Z10.704445 -G17 G2 F240 (239 360) I4.500000 J7.794229 X12.603352 Y0.427864 Z6.204445 -G0 X8.603352 Y-3.072136 Z7.704445 -G18 G3 (210 45) I8.660254 K5.000000 X24.334674 Y-4.572136 Z19.775513 -G18 G2 F800 (239 14) I4.500000 K7.794229 X31.164045 Y-4.572136 Z36.263074 -G0 X0 Y0 Z20 -F100 -G1 X4.500000 Y4.500000 Z22.000000 -G0 X5.000000 Y0.000000 Z25.000000 -G0 X0.000000 Y1.500000 Z21.500000 -G17 G2 F270 (59 59) I-1.500000 J-2.598076 X0.000000 Y1.500000 Z21.500000 -G18 G2 (105 239) I1.035276 K-3.863703 X-2.428825 Y-1.000000 Z15.636297 -G1 X-1.928825 Y0.500000 Z13.636297 -G0 X0.571175 Y2.500000 Z10.136297 -G19 G3 F150 (119 0) J1.000000 K-1.732051 X2.571175 Y5.500000 Z8.404246 -G18 G3 (90 75) I-0.000000 K-10.000000 X12.230433 Y8.000000 Z0.992436 -G17 G2 F130 (239 360) I2.500000 J4.330127 X19.730433 Y12.330127 Z-1.007564 -G18 G2 (59 180) I-4.500000 K-7.794229 X15.230433 Y15.330127 Z-17.801792 -G0 X0 Y0 Z20 -F100 -G1 X1.000000 Y-2.500000 Z24.500000 -G1 X1.000000 Y-4.500000 Z21.000000 -G17 G3 (239 135) I2.000000 J3.464102 X0.171573 Y1.792529 Z18.000000 -G19 G2 F750 (270 45) J0.000000 K8.000000 X-1.828427 Y7.449383 Z31.656854 -G0 X0 Y0 Z20 -F100 -G0 X0.000000 Y3.500000 Z24.000000 -G18 G2 (195 105) I2.897777 K0.776457 X5.795555 Y0.000000 Z24.000000 -G19 G3 F170 (195 360) J0.965926 K0.258819 X6.295555 Y1.965926 Z24.258819 -G1 F610 X3.295555 Y-2.534074 Z21.758819 -G17 G2 (29 300) I-4.330127 J-2.500000 X1.465428 Y-9.364201 Z24.258819 -G1 X3.465428 Y-5.864201 Z24.258819 -G0 X2.465428 Y-7.364201 Z19.758819 -G19 G2 (225 270) J3.535534 K3.535534 X1.965428 Y-3.828667 Z18.294353 -G1 X4.465428 Y-2.328667 Z15.294353 -G1 F710 X7.465428 Y-1.828667 Z10.794353 -G1 X3.965428 Y-5.328667 Z6.294353 -G18 G2 (180 300) I9.000000 K-0.000000 X5.171199 Y-6.828667 Z10.794353 -G19 G2 F810 (345 45) J-9.659258 K2.588190 X8.171199 Y-9.416858 Z20.453611 -G18 G2 F930 (239 300) I1.500000 K2.598076 X7.073123 Y-14.416858 Z24.551687 -G19 G3 F820 (239 135) J1.000000 K1.732051 X9.573123 Y-14.831071 Z27.697952 -G1 F790 X6.073123 Y-14.831071 Z24.197952 -G18 G3 (45 255) I-4.242641 K-4.242641 X-3.965073 Y-12.331071 Z18.402397 -G1 F830 X1.034927 Y-16.831071 Z13.402397 -G19 G2 (135 105) J7.071068 K-7.071068 X0.534927 Y-12.348194 Z15.990587 -G1 F400 X-1.465073 Y-8.848194 Z15.990587 -G19 G3 (90 180) J-0.000000 K-5.000000 X2.534927 Y-13.848194 Z10.990587 -G17 G2 F830 (270 0) I0.000000 J6.000000 X8.534927 Y-7.848194 Z10.490587 -G0 X3.534927 Y-4.848194 Z7.990587 -G17 G2 F630 (239 329) I3.500000 J6.062178 X13.097105 Y-2.286016 Z8.990587 -G0 X16.097105 Y-4.786016 Z4.490587 -G0 X18.097105 Y-5.786016 Z9.490587 -G0 X20.097105 Y-1.786016 Z13.490587 -G0 X16.097105 Y-1.286016 Z12.490587 -G0 X18.597105 Y-0.786016 Z10.990587 -G0 X19.597105 Y2.213984 Z8.990587 -G1 F240 X21.597105 Y-0.786016 Z12.990587 -G19 G2 (14 345) J-4.829629 K-1.294095 X26.597105 Y-0.786016 Z10.402397 -G1 X22.597105 Y-3.786016 Z5.402397 -G19 G3 (45 14) J-2.121320 K-2.121320 X20.597105 Y-3.009559 Z4.057534 -G0 X20.597105 Y-4.009559 Z9.057534 -G17 G2 F640 (270 360) I0.000000 J3.000000 X23.597105 Y-1.009559 Z11.557534 -G0 X23.597105 Y-5.009559 Z7.557534 -G0 X24.597105 Y-2.009559 Z6.557534 -G19 G3 (90 300) J-0.000000 K-10.000000 X26.597105 Y2.990441 Z-12.102720 -G0 X0 Y0 Z20 -F100 -G1 X2.500000 Y-5.000000 Z25.000000 -G1 F970 X4.000000 Y-5.000000 Z29.000000 -G1 X7.500000 Y-6.000000 Z30.500000 -G0 X0 Y0 Z20 -F100 -G17 G2 F580 (90 315) I-0.000000 J-1.000000 X0.707107 Y-1.707107 Z22.000000 -G17 G2 F650 (329 360) I-6.928203 J4.000000 X1.778904 Y2.292893 Z23.000000 -G1 F640 X2.278904 Y3.792893 Z21.000000 -G0 X-2.221096 Y8.292893 Z23.500000 -G19 G3 (210 270) J4.330127 K2.500000 X1.778904 Y12.623020 Z21.000000 -G1 X-2.721096 Y15.623020 Z23.000000 -G0 X-0.221096 Y11.623020 Z21.000000 -G19 G3 F980 (210 315) J3.464102 K2.000000 X-3.721096 Y17.915549 Z20.171573 -G1 X-6.221096 Y21.415549 Z15.171573 -G17 G2 (239 105) I1.000000 J1.732051 X-5.738735 Y25.079451 Z11.171573 -G19 G3 F950 (135 360) J6.363961 K-6.363961 X-4.238735 Y40.443412 Z4.807612 -G0 X-9.238735 Y39.943412 Z4.807612 -G17 G2 (90 45) I-0.000000 J-6.000000 X-4.996094 Y38.186053 Z9.307612 -G0 X-2.496094 Y37.186053 Z6.807612 -G17 G3 (59 59) I-1.000000 J-1.732051 X-2.496094 Y37.186053 Z10.807612 -G18 G2 (239 180) I4.000000 K6.928203 X1.503906 Y35.186053 Z9.735815 -G0 X4.003906 Y39.186053 Z13.235815 -G1 F390 X6.503906 Y38.186053 Z8.235815 -G19 G3 F640 (119 210) J3.000000 K-5.196152 X1.503906 Y35.989901 Z0.039663 -G0 X2.503906 Y32.489901 Z4.539663 -G18 G3 F420 (180 14) I7.000000 K-0.000000 X11.315639 Y33.989901 Z11.301143 -G18 G2 (164 150) I3.863703 K-1.035276 X17.179343 Y30.489901 Z6.801766 -G19 G3 (135 360) J5.656854 K-5.656854 X17.179343 Y44.146755 Z1.144911 -G1 X18.679343 Y42.146755 Z0.144911 -G19 G2 (119 345) J2.500000 K-4.330127 X18.179343 Y49.476384 Z-5.479311 -G18 G2 (255 270) I1.811733 K6.761481 X12.991076 Y45.976384 Z1.282170 -G0 X8.491076 Y43.976384 Z0.282170 -G1 F720 X12.991076 Y48.976384 Z-4.717830 -G0 X8.991076 Y49.476384 Z-9.217830 -G17 G3 (225 345) I0.707107 J0.707107 X10.664109 Y49.924672 Z-5.217830 -G18 G3 F280 (285 45) I-2.329371 K8.693332 X14.698698 Y47.424672 Z9.839463 -G19 G2 (0 270) J-10.000000 K-0.000000 X11.198698 Y37.424672 Z-0.160537 -G0 X9.198698 Y33.424672 Z-2.160537 -G0 X13.198698 Y35.424672 Z2.339463 -G17 G3 (45 285) I-5.656854 J-5.656854 X9.612396 Y22.040411 Z2.339463 -G18 G3 (135 180) I0.707107 K-0.707107 X10.319503 Y21.540411 Z0.632357 -G0 X5.819503 Y19.040411 Z-1.867643 -G19 G2 F260 (180 150) J3.000000 K-0.000000 X5.819503 Y19.442335 Z-0.367643 -G18 G3 (315 239) I-3.535534 K3.535534 X-2.046158 Y16.942335 Z0.667891 -G19 G2 F740 (0 0) J-8.000000 K-0.000000 X-0.546158 Y16.942335 Z0.667891 -G18 G2 F120 (225 270) I3.535534 K3.535534 X-2.010624 Y12.942335 Z4.203424 -G17 G3 (135 270) I1.414214 J-1.414214 X-0.596410 Y9.528121 Z6.703424 -G17 G2 (14 329) I-3.863703 J-1.035276 X-0.996012 Y6.492845 Z4.203424 -G0 X-2.496012 Y10.992845 Z-0.796576 -G0 X-4.996012 Y15.492845 Z0.703424 -G17 G2 F750 (329 270) I-6.928203 J4.000000 X-11.924215 Y11.492845 Z-0.296576 -G17 G2 (164 59) I5.795555 J-1.552914 X-3.128660 Y15.136083 Z0.703424 -G0 X-8.128660 Y17.636083 Z-0.296576 -G0 X-12.128660 Y21.636083 Z3.703424 -G17 G2 (14 90) I-6.761481 J-1.811733 X-18.890141 Y26.824350 Z4.703424 -G0 X-16.890141 Y22.324350 Z4.203424 -G0 X-19.890141 Y21.824350 Z0.203424 -G1 F330 X-23.390141 Y18.824350 Z3.703424 -G0 X-19.390141 Y15.824350 Z6.703424 -G19 G2 (119 90) J2.500000 K-4.330127 X-21.890141 Y18.324350 Z7.373297 -G18 G3 F330 (14 105) I-4.829629 K-1.294095 X-21.890141 Y13.824350 Z4.785107 -G18 G2 F510 (105 239) I1.811733 K-6.761481 X-26.140586 Y16.324350 Z-5.476374 -G18 G2 (75 14) I-1.035276 K-3.863703 X-26.140586 Y11.324350 Z-5.476374 -G1 F230 X-22.640586 Y15.324350 Z-7.476374 -G17 G2 (255 59) I2.329371 J8.693332 X-15.811214 Y31.811911 Z-8.976374 -G17 G2 F900 (45 135) I-1.414214 J-1.414214 X-18.639641 Y31.811911 Z-11.476374 -G0 X0 Y0 Z20 -m2 diff --git a/nc_files/torus.png b/nc_files/torus.png deleted file mode 100644 index 5560cfd318fc14f29023969fc4e9ef6c0936b276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20811 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 diff --git a/nc_files/touchoff.ngc b/nc_files/touchoff.ngc deleted file mode 100644 index dddad59abd1..00000000000 --- a/nc_files/touchoff.ngc +++ /dev/null @@ -1,18 +0,0 @@ -o sub -; This is the touchoff subroutine for the plasma-5i20 configuration -(#1 pierce height, #2 pierce delay, #3 cut height) -F10 -G38.2 Z-1.75 (Probe to find the surface) -G91 -; set this height based on your machine -G1 Z0.070 (Raise up to Z0) -G90 -G92 Z0 (Set Z0) -G1 Z#1 -M3 S1 -M66 P0 L1 Q5 (Wait for Arc OK from Torch) -G4 P#2 (Pause for pierce delay) -F25 -Z#3 (goto cut height) -o endsub -M2 diff --git a/nc_files/useful-subroutines.ngc b/nc_files/useful-subroutines.ngc deleted file mode 100644 index 7aa1903704f..00000000000 --- a/nc_files/useful-subroutines.ngc +++ /dev/null @@ -1,93 +0,0 @@ -(This file is Copyright 2006 Chris Radek and released under the GPL v2.) - -(This is meant as a place to collect useful subroutines. Please add any) -(other general-purpose routines that you think are useful. Put instructions) -(for calling the subroutine at its beginning, and add it to the table of) -(contents. Use a different O number for each subroutine. If you like, add) -(a usage example at the end of this file.) - -(Table of contents:) -(O100: "hole drilling" with an end mill) -(O200: slot cutting) - - -o100 sub - (helical hole milling, load tool and set feed first, then use like so:) - (o100 call [x pos] [y pos] [safety height] [hole depth] [hole dia] [tool dia]) - (tool dia doesn't have to be specified exactly.) -#4=[0 - #4] -#7=[#6 / 2] (#7 is depth per circle = half of tool diameter) -#8=[#3 - #7] (#8 is current depth step) -g0 z#3 -(start above and right so we make a convex corner for entry to the ccw arcs) -g0 x[#1 + #6] y[#2 + [#5 / 2]] -g41 g0 x#1 y[#2 + [#5 / 2]] -o101 while [#8 GT #4] -(down toward the specified depth a bit at a time) -g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] z#8 -#8=[#8 - #7] -o101 endwhile -(down to the actual depth) -g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] z#4 -(full circle at the actual depth) -g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] -g0 z#3 -g40 -o100 endsub - - -o200 sub - (slot cutting, load tool and set feed first, then use like so:) - (o200 call [x1] [y1] [x2] [y2] [width] [depth] [safety height] [tool dia]) -#10=[#5/2] (radius) -#11=[[atan [#4-#2]/[#3-#1]] + 180] ("backward" direction) -#12=[#11 + 90] ("right" side direction) -#13=[#10 * [cos [#11]]] -#14=[#10 * [sin [#11]]] -#15=[#10 * [cos [#12]]] -#16=[#10 * [sin [#12]]] -g0 z#7 -g0 x[#1+#13+#15] y[#2+#14+#16] -g41 g0x[#1+#15] y[#2+#16] -#17=[#8/2] (depth per cut is half tool dia) -#18=[#7-#17] (z) -(down toward the specified depth a bit at a time) -o201 while [#18 GT [0-#6]] -g1 x[#3+#15] y[#4+#16] z#18 -g3 x[#3-#15] y[#4-#16] r#10 -g1 x[#1-#15] y[#2-#16] -g3 x[#1+#15] y[#2+#16] r#10 -#18=[#18-#17] -o201 endwhile -(down to the actual depth and one more cut) -g1 x[#3+#15] y[#4+#16] z[0-#6] -g3 x[#3-#15] y[#4-#16] r#10 -g1 x[#1-#15] y[#2-#16] -g3 x[#1+#15] y[#2+#16] r#10 -g1 x[#3+#15] y[#4+#16] -g0 z#7 -g40 -o200 endsub - - -g20 g64 g17 g90 - -(here is the actual usage of o100: T1 is a 1/16th end mill) -t1 m6 -s1000 m3 -f60 -o100 call [0] [0] [.01] [.125] [.125] [.0625] -o100 call [.25] [0] [.01] [.0625] [.25] [.0625] -m5 -t0 m6 - -(here is the actual usage of o200: T1 is a 1/16th end mill) -t1 m6 -s1000 m3 -f60 -o200 call [0] [.5] [1] [1] [.190] [.1] [.02] [.0625] -o200 call [1] [0] [.5] [.5] [.190] [.1] [.02] [.0625] -m5 -t0 m6 - -m2 diff --git a/nc_files/x-trim.ngc b/nc_files/x-trim.ngc deleted file mode 100644 index fddc760df63..00000000000 --- a/nc_files/x-trim.ngc +++ /dev/null @@ -1,16 +0,0 @@ -; This is an example file for the plasma-5i20 configuration -; it requires the touchoff.ngc subroutine -G20 (Units: Inches) -G40 (Cancel Cutter Comp) -G90 (Absolute Mode) -G64 P0.005 (Continuous mode + path tolerance) -G92 X0 Y0 -o call [0.100] [0] [0.08] (Touchoff and start cutting) -F135 -G1 X48.125 -M5 (Torch Off) -G0 Z0.500 -X0.000 -G92.1 (Cancel offsets and set to zero) -G0 Z0 -M2 From 5b2d61f3b4ff03e45c2a2fa030e53010825e5de3 Mon Sep 17 00:00:00 2001 From: rod Date: Mon, 4 May 2026 07:47:36 +1000 Subject: [PATCH 13/23] Revert interp_convert to master branch version in preparation to fix format errors caused by editor auto format options Aditional commit to follow --- src/emc/rs274ngc/interp_convert.cc | 8175 +++++++++++++--------------- 1 file changed, 3680 insertions(+), 4495 deletions(-) diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index a1968be8aeb..59171b7306e 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -5,17 +5,17 @@ */ /******************************************************************** - * Description: interp_convert.cc - * - * Derived from a work by Thomas Kramer - * - * Author: - * License: GPL Version 2 - * System: Linux - * - * Copyright (c) 2004 All rights reserved. - * - ********************************************************************/ +* Description: interp_convert.cc +* +* Derived from a work by Thomas Kramer +* +* Author: +* License: GPL Version 2 +* System: Linux +* +* Copyright (c) 2004 All rights reserved. +* +********************************************************************/ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif @@ -38,7 +38,7 @@ #include #include "units.h" -#define TOOL_INSIDE_ARC(side, turn) (((side) == CUTTER_COMP::LEFT && (turn) > 0) || ((side) == CUTTER_COMP::RIGHT && (turn) < 0)) +#define TOOL_INSIDE_ARC(side, turn) (((side)==CUTTER_COMP::LEFT&&(turn)>0)||((side)==CUTTER_COMP::RIGHT&&(turn)<0)) #define DEBUG_EMC using namespace interp_param_global; @@ -52,10 +52,8 @@ using namespace interp_param_global; // plane-agnostic, the opposite plane conversion happens in // enqueue_STRAIGHT_[FEED|TRAVERSE] when adding to the interp queue. -int Interp::comp_get_current(setup_pointer settings, double *x, double *y, double *z) -{ - switch (settings->plane) - { +int Interp::comp_get_current(setup_pointer settings, double *x, double *y, double *z) { + switch(settings->plane) { case CANON_PLANE::XY: *x = settings->current_x; *y = settings->current_y; @@ -72,10 +70,8 @@ int Interp::comp_get_current(setup_pointer settings, double *x, double *y, doubl return INTERP_OK; } -int Interp::comp_set_current(setup_pointer settings, double x, double y, double z) -{ - switch (settings->plane) - { +int Interp::comp_set_current(setup_pointer settings, double x, double y, double z) { + switch(settings->plane) { case CANON_PLANE::XY: settings->current_x = x; settings->current_y = y; @@ -92,10 +88,8 @@ int Interp::comp_set_current(setup_pointer settings, double x, double y, double return INTERP_OK; } -int Interp::comp_get_programmed(setup_pointer settings, double *x, double *y, double *z) -{ - switch (settings->plane) - { +int Interp::comp_get_programmed(setup_pointer settings, double *x, double *y, double *z) { + switch(settings->plane) { case CANON_PLANE::XY: *x = settings->program_x; *y = settings->program_y; @@ -112,10 +106,8 @@ int Interp::comp_get_programmed(setup_pointer settings, double *x, double *y, do return INTERP_OK; } -int Interp::comp_set_programmed(setup_pointer settings, double x, double y, double z) -{ - switch (settings->plane) - { +int Interp::comp_set_programmed(setup_pointer settings, double x, double y, double z) { + switch(settings->plane) { case CANON_PLANE::XY: settings->program_x = x; settings->program_y = y; @@ -135,8 +127,7 @@ int Interp::comp_set_programmed(setup_pointer settings, double x, double y, doub /* Set *result to the integer nearest to value; return TRUE if value is * within .0001 of an integer */ -static int is_near_int(int *result, double value) -{ +static int is_near_int(int *result, double value) { *result = (int)(value + .5); return fabs(*result - value) < .0001; } @@ -149,1055 +140,951 @@ static int is_near_int(int *result, double value) * Returns a rs274ngc error code, or INTERP_OK if everything is OK. * * Side effects: Generates a nurbs move and updates the position of the tool - + Reference for this code is: Lo Valvo, E., Drago, S. (2014). -An Efficient NURBS Path Generator for an Open Source CNC. +An Efficient NURBS Path Generator for an Open Source CNC. Recent Advances in Mechanical Engineering (pp.173-180). WSEAS Press. -Q=3 NICL NURBS interpolation with linear motion +Q=3 NICL NURBS interpolation with linear motion Q=2 NICC NURBS interpolation with circular motion Q=1 NICU NURBS interpolation with biarch, du=const */ -static unsigned int Q_G6_option = 0; // (NICU, NICL, NICC see publication from Lo Valvo and Drago) +static unsigned int Q_G6_option = 0; // (NICU, NICL, NICC see publication from Lo Valvo and Drago) static unsigned int nurbs_order; -static std::vector nurbs_g5_control_points; -static std::vector nurbs_g6_control_points; -int ff_G6_line_counter = 0; // inizializzo il contatore +static std::vector < NURBS_CONTROL_POINT > nurbs_g5_control_points; +static std::vector < NURBS_G6_CONTROL_POINT > nurbs_g6_control_points; +int ff_G6_line_counter = 0; //inizializzo il contatore void Interp::nurbs_reset_global_variables(void) -{ // called from open gcode file and Interp::convert_stop - Q_G6_option = 0; - ff_G6_line_counter = 0; - if (!nurbs_g5_control_points.empty()) - { - nurbs_g5_control_points.clear(); - } - if (!nurbs_g6_control_points.empty()) - { - nurbs_g6_control_points.clear(); - } +{ // called from open gcode file and Interp::convert_stop + Q_G6_option = 0; + ff_G6_line_counter = 0; + if (!nurbs_g5_control_points.empty()) { + nurbs_g5_control_points.clear(); + } + if (!nurbs_g6_control_points.empty()) { + nurbs_g6_control_points.clear(); + } } int Interp::convert_nurbs(int mode, - block_pointer block, setup_pointer settings) + block_pointer block, setup_pointer settings) { - double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, - w_end; - NURBS_CONTROL_POINT CP_G5; - NURBS_G6_CONTROL_POINT CP_G6; - - if (mode == G_5_2) - { - - if (settings->plane == CANON_PLANE::XY) - { - CHKS((((block->x_flag) && !(block->y_flag)) || (!(block->x_flag) && (block->y_flag))), - (_("You must specify both X and Y coordinates for Control Points"))); - CHKS((!(block->x_flag) && !(block->y_flag) && (block->p_number > 0) && (!nurbs_g5_control_points.empty())), - (_("Can specify P without X and Y only for the first control point"))); - } - if (settings->plane == CANON_PLANE::YZ) - { - CHKS((((block->y_flag) && !(block->z_flag)) || (!(block->y_flag) && (block->z_flag))), - (_("You must specify both Y and Z coordinates for Control Points"))); - CHKS((!(block->y_flag) && !(block->z_flag) && (block->p_number > 0) && (!nurbs_g5_control_points.empty())), - (_("Can specify P without Y and Z only for the first control point"))); - } - if (settings->plane == CANON_PLANE::XZ) - { - CHKS((((block->x_flag) && !(block->z_flag)) || (!(block->x_flag) && (block->z_flag))), - (_("You must specify both X and Z coordinates for Control Points"))); - CHKS((!(block->x_flag) && !(block->z_flag) && (block->p_number > 0) && (!nurbs_g5_control_points.empty())), - (_("Can specify P without X and Z only for the first control point"))); - } - - CHKS(((block->p_number <= 0) && (!nurbs_g5_control_points.empty())), - (_("Must specify positive weight P for every Control Point"))); - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) - { - CHKS((settings->feed_rate == 0.0), - (_("Cannot make a NURBS with 0 feedrate"))); - } - if (settings->motion_mode != mode) - nurbs_g5_control_points.clear(); - - if (nurbs_g5_control_points.empty()) - { - if (settings->plane == CANON_PLANE::XY) - { - CP_G5.NURBS_X = settings->current_x; - CP_G5.NURBS_Y = settings->current_y; - if (!(block->x_flag) && !(block->y_flag) && (block->p_number > 0)) - { - CP_G5.NURBS_W = block->p_number; - } - else - { - CP_G5.NURBS_W = 1; - } - } - if (settings->plane == CANON_PLANE::YZ) - { - CP_G5.NURBS_X = settings->current_y; - CP_G5.NURBS_Y = settings->current_z; - if (!(block->y_flag) && !(block->z_flag) && (block->p_number > 0)) - { - CP_G5.NURBS_W = block->p_number; - } - else - { - CP_G5.NURBS_W = 1; - } - } - if (settings->plane == CANON_PLANE::XZ) - { - CP_G5.NURBS_X = settings->current_z; - CP_G5.NURBS_Y = settings->current_x; - if (!(block->x_flag) && !(block->z_flag) && (block->p_number > 0)) - { - CP_G5.NURBS_W = block->p_number; - } - else - { - CP_G5.NURBS_W = 1; - } - } - nurbs_order = 3; - nurbs_g5_control_points.push_back(CP_G5); - } - if (block->l_number != -1 && block->l_number > 3) - { - nurbs_order = block->l_number; - } - - if (settings->plane == CANON_PLANE::XY) - { - if ((block->x_flag) && (block->y_flag)) - { - CHP(find_ends(block, settings, &CP_G5.NURBS_X, - &CP_G5.NURBS_Y, &end_z, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G5.NURBS_W = block->p_number; - nurbs_g5_control_points.push_back(CP_G5); - } - } - if (settings->plane == CANON_PLANE::YZ) - { - if ((block->y_flag) && (block->z_flag)) - { - CHP(find_ends(block, settings, &end_x, - &CP_G5.NURBS_X, &CP_G5.NURBS_Y, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - CP_G5.NURBS_W = block->p_number; - nurbs_g5_control_points.push_back(CP_G5); - } - } - if (settings->plane == CANON_PLANE::XZ) - { - if ((block->x_flag) && (block->z_flag)) - { - CHP(find_ends(block, settings, &CP_G5.NURBS_Y, - &end_y, &CP_G5.NURBS_X, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G5.NURBS_W = block->p_number; - nurbs_g5_control_points.push_back(CP_G5); - } - } - - /* - for (long unsigned int i=0;imotion_mode = mode; - } - - else if (mode == G_5_3) - { - CHKS((settings->motion_mode != G_5_2), - (_("Cannot use G5.3 without G5.2 first"))); - CHKS((nurbs_g5_control_points.size() < nurbs_order), - _("You must specify a number of control points at least equal to the order L = %d"), - nurbs_order); - - if (settings->plane == CANON_PLANE::XY) - { - settings->current_x = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1] - .NURBS_X; - settings->current_y = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1] - .NURBS_Y; - } - if (settings->plane == CANON_PLANE::YZ) - { - settings->current_y = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1] - .NURBS_X; - settings->current_z = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1] - .NURBS_Y; - } - if (settings->plane == CANON_PLANE::XZ) - { - settings->current_z = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1] - .NURBS_X; - settings->current_x = - nurbs_g5_control_points - [nurbs_g5_control_points.size() - 1] - .NURBS_Y; - } - /* - for (long unsigned int i=0;iline_number, nurbs_g5_control_points, - nurbs_order, settings->plane); - nurbs_g5_control_points.clear(); - settings->motion_mode = -1; - } - // - if (mode == G_6_2) - { - // jjf additional for Q (as replacement for #1 in the original code from Lo Valvo) - // Q=3 NICL NURBS interpolation with linear motion - // Q=2 NICC NURBS interpolation with circular motion - // Q=1 NICU NURBS interpolation with biarch, du=const - - CHKS(((settings->plane != CANON_PLANE::XY) && (settings->plane != CANON_PLANE::YZ) && (settings->plane != CANON_PLANE::XZ)), - (_("one plane must be selected for nurbs: XY, YZ, ZX"))); - - if (settings->plane == CANON_PLANE::XY) - { - CHKS((((block->x_flag) && !(block->y_flag)) || (!(block->x_flag) && (block->y_flag))), - (_("You must specify both X and Y coordinates for Control Points"))); - } - if (settings->plane == CANON_PLANE::YZ) - { - CHKS((((block->y_flag) && !(block->z_flag)) || (!(block->y_flag) && (block->z_flag))), - (_("You must specify both Y and Z coordinates for Control Points"))); - } - if (settings->plane == CANON_PLANE::XZ) - { - CHKS((((block->x_flag) && !(block->z_flag)) || (!(block->x_flag) && (block->z_flag))), - (_("You must specify both X and Z coordinates for Control Points"))); - } - - CHKS(((!block->p_flag) && (nurbs_g6_control_points.empty())), - (_("Program the nurbs order P in the first block of instruction"))); - int p; - if (block->p_flag) - { - CHKS((!is_near_int(&p, block->p_number)), - _("nurbs order P number is not an integer")); - } - - CHKS(((block->q_number <= 0) && (nurbs_g6_control_points.empty())), - (_("Program the nurbs Q value (1,2,3) in the first block of nurbs instruction"))); - int q; - if (block->q_flag) - { - CHKS((block->q_number < 1.0) || (block->q_number > 3.0), - (_("nurbs Q value not in range 1 to 3"))); - CHKS((!is_near_int(&q, block->q_number)), - _("nurbs Q number is not an integer")); - } - - CHKS(((block->r_number <= 0) && (!nurbs_g6_control_points.empty())), - (_("Must specify positive nurbs weight R for every Control Point"))); - - CHKS(((block->k_number < 0) && (!nurbs_g6_control_points.empty())), - (_("Must specify nurbs K number for every Control Point"))); - int k; - if (block->k_flag) - { - CHKS((!is_near_int(&k, block->k_number)), - _("nurbs K number is not an integer")); - } - - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) - { - CHKS((settings->feed_rate == 0.0), - (_("Cannot make a nurbs with 0 feedrate"))); - } - - if (block->p_number != -1) - { - nurbs_order = block->p_number; - } - - if (block->k_flag) - { - CP_G6.NURBS_K = block->k_number; - } - // PER DEFINIRE UNO FRA I TRE MODI DI INTERPOLARE (NURBS) - // EINE DER DREI WEGE VON INTERPOLATION (NURBS) AUSWAEHLERN - // TO DEFINE ONE OF THE THREE WAYS OF INTERPOLAR (NURBS) - if (ff_G6_line_counter == 0) - { - Q_G6_option = block->q_number; // Q_G6_option=1...3 (NICU, NICL, NICC see publication from Lo Valvo and Drago) - } - - if (settings->plane == CANON_PLANE::XY) - { - if (((block->x_flag) && (block->y_flag)) || block->k_flag) - { - CHP(find_ends(block, settings, &CP_G6.NURBS_X, - &CP_G6.NURBS_Y, &end_z, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G6.NURBS_R = block->r_number; - nurbs_g6_control_points.push_back(CP_G6); - } - } - if (settings->plane == CANON_PLANE::YZ) - { - if (((block->y_flag) && (block->z_flag)) || block->k_flag) - { - CHP(find_ends(block, settings, &end_x, - &CP_G6.NURBS_X, &CP_G6.NURBS_Y, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - CP_G6.NURBS_R = block->r_number; - nurbs_g6_control_points.push_back(CP_G6); - } - } - if (settings->plane == CANON_PLANE::XZ) - { - if (((block->x_flag) && (block->z_flag)) || block->k_flag) - { - CHP(find_ends(block, settings, &CP_G6.NURBS_Y, - &end_z, &CP_G6.NURBS_X, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, - &w_end)); - CP_G6.NURBS_R = block->r_number; - nurbs_g6_control_points.push_back(CP_G6); - } - } - - settings->motion_mode = mode; - - ff_G6_line_counter++; - if (nurbs_g6_control_points.size() > nurbs_order) - { - if (nurbs_g6_control_points - [ff_G6_line_counter - 1] - .NURBS_K == - nurbs_g6_control_points[ff_G6_line_counter - - nurbs_order + 1 - - 1] - .NURBS_K) - { - CHKS((nurbs_g6_control_points.size() < - nurbs_order), - _("You must specify a number of control points at least equal to the order P = %d"), - nurbs_order); - settings->current_x = - nurbs_g6_control_points - [nurbs_g6_control_points.size() - - 1] - .NURBS_X; - settings->current_y = - nurbs_g6_control_points - [nurbs_g6_control_points.size() - - 1] - .NURBS_Y; - /* - for (long unsigned int i=0;iline_number, - nurbs_g6_control_points, - nurbs_order, - settings->feed_rate, - Q_G6_option, - settings->plane); - nurbs_g6_control_points.clear(); - ff_G6_line_counter = 0; - settings->motion_mode = -1; - } - } - } - // - if (mode == G_6_3) // jjf this is missing from Lo Valvo code! not used there and here! - { - printf("mode == G_6_3 not used (%s %d)\n", __FILE__, - __LINE__); - } - return INTERP_OK; -} - -/****************************************************************************/ -/*! convert_spline - * - * Returned value: int - * Returns a rs274ngc error code, or INTERP_OK if everything is OK. - * - * Side effects: Generates a spline move and updates the position of the tool - */ -int Interp::convert_spline(int mode, block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) -{ //!< pointer to machine settings - double x1, y1, z1, x2, y2, z2, x3, y3, z3; - double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, - w_end; - NURBS_CONTROL_POINT cp; - - x1 = 0; - y1 = 0; - z1 = 0; // to avoid compiler warning "may be used uninitialized" - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), _("Cannot convert spline with cutter radius compensation")); // XXX - - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) - { - CHKS((settings->feed_rate == 0.0), - NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); - } - else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) - { - CHKS((!block->f_flag), - NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); - } + double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, + w_end; + NURBS_CONTROL_POINT CP_G5; + NURBS_G6_CONTROL_POINT CP_G6; + + if (mode == G_5_2) { + + if (settings->plane == CANON_PLANE::XY) { + CHKS((((block->x_flag) && !(block->y_flag)) + || (!(block->x_flag) + && (block->y_flag))), + (_ + ("You must specify both X and Y coordinates for Control Points"))); + CHKS((!(block->x_flag) && !(block->y_flag) + && (block->p_number > 0) + && (!nurbs_g5_control_points.empty())), + (_ + ("Can specify P without X and Y only for the first control point"))); + } + if (settings->plane == CANON_PLANE::YZ) { + CHKS((((block->y_flag) && !(block->z_flag)) + || (!(block->y_flag) + && (block->z_flag))), + (_ + ("You must specify both Y and Z coordinates for Control Points"))); + CHKS((!(block->y_flag) && !(block->z_flag) + && (block->p_number > 0) + && (!nurbs_g5_control_points.empty())), + (_ + ("Can specify P without Y and Z only for the first control point"))); + } + if (settings->plane == CANON_PLANE::XZ) { + CHKS((((block->x_flag) && !(block->z_flag)) + || (!(block->x_flag) + && (block->z_flag))), + (_ + ("You must specify both X and Z coordinates for Control Points"))); + CHKS((!(block->x_flag) && !(block->z_flag) + && (block->p_number > 0) + && (!nurbs_g5_control_points.empty())), + (_ + ("Can specify P without X and Z only for the first control point"))); + } - CHKS((block->a_flag || block->b_flag || block->c_flag), - _("Splines may not have motion in A, B, or C")); + CHKS(((block->p_number <= 0) + && (!nurbs_g5_control_points.empty())), + (_ + ("Must specify positive weight P for every Control Point"))); + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { + CHKS((settings->feed_rate == 0.0), + (_("Cannot make a NURBS with 0 feedrate"))); + } + if (settings->motion_mode != mode) + nurbs_g5_control_points.clear(); + + if (nurbs_g5_control_points.empty()) { + if (settings->plane == CANON_PLANE::XY) { + CP_G5.NURBS_X = settings->current_x; + CP_G5.NURBS_Y = settings->current_y; + if (!(block->x_flag) && !(block->y_flag) + && (block->p_number > 0)) { + CP_G5.NURBS_W = block->p_number; + } else { + CP_G5.NURBS_W = 1; + } + } + if (settings->plane == CANON_PLANE::YZ) { + CP_G5.NURBS_X = settings->current_y; + CP_G5.NURBS_Y = settings->current_z; + if (!(block->y_flag) && !(block->z_flag) + && (block->p_number > 0)) { + CP_G5.NURBS_W = block->p_number; + } else { + CP_G5.NURBS_W = 1; + } + } + if (settings->plane == CANON_PLANE::XZ) { + CP_G5.NURBS_X = settings->current_z; + CP_G5.NURBS_Y = settings->current_x; + if (!(block->x_flag) && !(block->z_flag) + && (block->p_number > 0)) { + CP_G5.NURBS_W = block->p_number; + } else { + CP_G5.NURBS_W = 1; + } + } + nurbs_order = 3; + nurbs_g5_control_points.push_back(CP_G5); + } + if (block->l_number != -1 && block->l_number > 3) { + nurbs_order = block->l_number; + } - if ((mode == G_5_1) || (mode == G_6_1)) - { - printf("mode == G_5_1 or G_6_1 (%s %d)\n", __FILE__, - __LINE__); - CHKS(!block->i_flag || !block->j_flag, - _("Must specify both I and J with G5.1 or G6.1")); + if (settings->plane == CANON_PLANE::XY) { + if ((block->x_flag) && (block->y_flag)) { + CHP(find_ends + (block, settings, &CP_G5.NURBS_X, + &CP_G5.NURBS_Y, &end_z, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G5.NURBS_W = block->p_number; + nurbs_g5_control_points.push_back(CP_G5); + } + } + if (settings->plane == CANON_PLANE::YZ) { + if ((block->y_flag) && (block->z_flag)) { + CHP(find_ends + (block, settings, &end_x, + &CP_G5.NURBS_X, &CP_G5.NURBS_Y, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + CP_G5.NURBS_W = block->p_number; + nurbs_g5_control_points.push_back(CP_G5); + } + } + if (settings->plane == CANON_PLANE::XZ) { + if ((block->x_flag) && (block->z_flag)) { + CHP(find_ends + (block, settings, &CP_G5.NURBS_Y, + &end_y, &CP_G5.NURBS_X, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G5.NURBS_W = block->p_number; + nurbs_g5_control_points.push_back(CP_G5); + } + } - if (settings->plane == CANON_PLANE::XY) - { - x1 = settings->current_x + block->i_number; - y1 = settings->current_y + block->j_number; - CHP(find_ends(block, settings, &x2, &y2, &end_z, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, &w_end)); - printf("find_ends x2: %8.4f y2: %8.4f (%s %d)\n", - x2, y2, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::YZ) - { - y1 = settings->current_y + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends(block, settings, &end_x, &y2, &z2, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, &w_end)); - printf("find_ends y2: %8.4f z2: %8.4f (%s %d)\n", - y2, z2, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::XZ) - { - x1 = settings->current_x + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends(block, settings, &x2, &end_y, &z2, &AA_end, - &BB_end, &CC_end, &u_end, &v_end, &w_end)); - printf("find_ends x2: %8.4f z2: %8.4f (%s %d)\n", - x2, z2, __FILE__, __LINE__); - } +/* + for (long unsigned int i=0;imotion_mode = mode; + } - cp.NURBS_W = 1; + else if (mode == G_5_3) { + CHKS((settings->motion_mode != G_5_2), + (_("Cannot use G5.3 without G5.2 first"))); + CHKS((nurbs_g5_control_points.size() < nurbs_order), + _ + ("You must specify a number of control points at least equal to the order L = %d"), + nurbs_order); + + if (settings->plane == CANON_PLANE::XY) { + settings->current_x = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1].NURBS_X; + settings->current_y = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1].NURBS_Y; + } + if (settings->plane == CANON_PLANE::YZ) { + settings->current_y = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1].NURBS_X; + settings->current_z = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1].NURBS_Y; + } + if (settings->plane == CANON_PLANE::XZ) { + settings->current_z = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1].NURBS_X; + settings->current_x = + nurbs_g5_control_points + [nurbs_g5_control_points.size() - 1].NURBS_Y; + } +/* + for (long unsigned int i=0;iline_number, nurbs_g5_control_points, + nurbs_order, settings->plane); + nurbs_g5_control_points.clear(); + settings->motion_mode = -1; + } +// + if (mode == G_6_2) { + // jjf additional for Q (as replacement for #1 in the original code from Lo Valvo) + // Q=3 NICL NURBS interpolation with linear motion + // Q=2 NICC NURBS interpolation with circular motion + // Q=1 NICU NURBS interpolation with biarch, du=const + + CHKS(((settings->plane != CANON_PLANE::XY) + && (settings->plane != CANON_PLANE::YZ) + && (settings->plane != CANON_PLANE::XZ)), + (_ + ("one plane must be selected for nurbs: XY, YZ, ZX"))); + + if (settings->plane == CANON_PLANE::XY) { + CHKS((((block->x_flag) && !(block->y_flag)) + || (!(block->x_flag) + && (block->y_flag))), + (_ + ("You must specify both X and Y coordinates for Control Points"))); + } + if (settings->plane == CANON_PLANE::YZ) { + CHKS((((block->y_flag) && !(block->z_flag)) + || (!(block->y_flag) + && (block->z_flag))), + (_ + ("You must specify both Y and Z coordinates for Control Points"))); + } + if (settings->plane == CANON_PLANE::XZ) { + CHKS((((block->x_flag) && !(block->z_flag)) + || (!(block->x_flag) + && (block->z_flag))), + (_ + ("You must specify both X and Z coordinates for Control Points"))); + } - if (settings->plane == CANON_PLANE::XY) - { - cp.NURBS_X = settings->current_x; - cp.NURBS_Y = settings->current_y; - } - if (settings->plane == CANON_PLANE::YZ) - { - cp.NURBS_X = settings->current_y; - cp.NURBS_Y = settings->current_z; - } - if (settings->plane == CANON_PLANE::XZ) - { - cp.NURBS_X = settings->current_z; - cp.NURBS_Y = settings->current_x; - } - nurbs_g5_control_points.push_back(cp); + CHKS(((!block->p_flag) + && (nurbs_g6_control_points.empty())), + (_ + ("Program the nurbs order P in the first block of instruction"))); + int p; + if (block->p_flag) { + CHKS((!is_near_int(&p, block->p_number)), + _("nurbs order P number is not an integer")); + } - if (settings->plane == CANON_PLANE::XY) - { - cp.NURBS_X = x1; - cp.NURBS_Y = y1; - } - if (settings->plane == CANON_PLANE::YZ) - { - cp.NURBS_X = y1; - cp.NURBS_Y = z1; - } - if (settings->plane == CANON_PLANE::XZ) - { - cp.NURBS_X = z1; - cp.NURBS_Y = x1; - } - nurbs_g5_control_points.push_back(cp); + CHKS(((block->q_number <= 0) + && (nurbs_g6_control_points.empty())), + (_ + ("Program the nurbs Q value (1,2,3) in the first block of nurbs instruction"))); + int q; + if (block->q_flag) { + CHKS((block->q_number < 1.0) + || (block->q_number > 3.0), + (_("nurbs Q value not in range 1 to 3"))); + CHKS((!is_near_int(&q, block->q_number)), + _("nurbs Q number is not an integer")); + } - if (settings->plane == CANON_PLANE::XY) - { - cp.NURBS_X = x2; - cp.NURBS_Y = y2; - } - if (settings->plane == CANON_PLANE::YZ) - { - cp.NURBS_X = y2; - cp.NURBS_Y = z2; - } - if (settings->plane == CANON_PLANE::XZ) - { - cp.NURBS_X = z2; - cp.NURBS_Y = x2; - } - nurbs_g5_control_points.push_back(cp); + CHKS(((block->r_number <= 0) + && (!nurbs_g6_control_points.empty())), + (_ + ("Must specify positive nurbs weight R for every Control Point"))); + + CHKS(((block->k_number < 0) + && (!nurbs_g6_control_points.empty())), + (_ + ("Must specify nurbs K number for every Control Point"))); + int k; + if (block->k_flag) { + CHKS((!is_near_int(&k, block->k_number)), + _("nurbs K number is not an integer")); + } - for (long unsigned int i = 0; - i < nurbs_g5_control_points.size(); i++) - { - printf("X %8.4f, Y %8.4f W %8.4f\n", - nurbs_g5_control_points[i].NURBS_X, - nurbs_g5_control_points[i].NURBS_Y, - nurbs_g5_control_points[i].NURBS_W); - } - printf("*----------------------------------------- (%s %d)\n", - __FILE__, __LINE__); + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { + CHKS((settings->feed_rate == 0.0), + (_("Cannot make a nurbs with 0 feedrate"))); + } - NURBS_G5_FEED(block->line_number, nurbs_g5_control_points, - 3, settings->plane); - nurbs_g5_control_points.clear(); + if (block->p_number != -1) { + nurbs_order = block->p_number; + } - if (settings->plane == CANON_PLANE::XY) - { - settings->current_x = x2; - settings->current_y = y2; - } - if (settings->plane == CANON_PLANE::YZ) - { - settings->current_y = y2; - settings->current_z = z2; - } - if (settings->plane == CANON_PLANE::XZ) - { - settings->current_x = x2; - settings->current_z = z2; - } - } - else - { // !(mode == G_5_1) - if (!block->i_flag || !block->j_flag) - { - CHKS(block->i_flag || block->j_flag, - _("Must specify both I and J, or neither")); - if (settings->plane == CANON_PLANE::XY) - { - x1 = settings->current_x + - settings->cycle_i; - y1 = settings->current_y + - settings->cycle_j; - } - if (settings->plane == CANON_PLANE::YZ) - { - y1 = settings->current_y + - settings->cycle_i; - z1 = settings->current_z + - settings->cycle_j; - } - if (settings->plane == CANON_PLANE::XZ) - { - x1 = settings->current_x + - settings->cycle_i; - z1 = settings->current_z + - settings->cycle_j; - } - } - else - { - if (settings->plane == CANON_PLANE::XY) - { - x1 = settings->current_x + block->i_number; - y1 = settings->current_y + block->j_number; - CHP(find_ends(block, settings, &x3, &y3, &end_z, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - printf("x3: %8.4f y3: %8.4f (%s %d)\n", x3, - y3, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::YZ) - { - y1 = settings->current_y + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends(block, settings, &end_x, &y3, &z3, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - printf("y3: %8.4f z3: %8.4f (%s %d)\n", y3, - z3, __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::XZ) - { - x1 = settings->current_x + block->i_number; - z1 = settings->current_z + block->j_number; - CHP(find_ends(block, settings, &x3, &end_y, &z3, - &AA_end, &BB_end, &CC_end, &u_end, - &v_end, &w_end)); - printf("x3: %8.4f z3: %8.4f (%s %d)\n", x3, - z3, __FILE__, __LINE__); - } - } + if (block->k_flag) { + CP_G6.NURBS_K = block->k_number; + } + // PER DEFINIRE UNO FRA I TRE MODI DI INTERPOLARE (NURBS) + // EINE DER DREI WEGE VON INTERPOLATION (NURBS) AUSWAEHLERN + // TO DEFINE ONE OF THE THREE WAYS OF INTERPOLAR (NURBS) + if (ff_G6_line_counter == 0) { + Q_G6_option = block->q_number; // Q_G6_option=1...3 (NICU, NICL, NICC see publication from Lo Valvo and Drago) + } - CHKS(!block->p_flag || !block->q_flag, - _("Must specify both P and Q with G5")); - if (settings->plane == CANON_PLANE::XY) - { - x2 = x3 + block->p_number; - y2 = y3 + block->q_number; - printf("x2: %8.4f y2: %8.4f (%s %d)\n", x2, y2, - __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::YZ) - { - y2 = y3 + block->p_number; - z2 = z3 + block->q_number; - printf("y2: %8.4f z2: %8.4f (%s %d)\n", y2, z2, - __FILE__, __LINE__); - } - if (settings->plane == CANON_PLANE::XZ) - { - z2 = z3 + block->p_number; - x2 = x3 + block->q_number; - printf("x2: %8.4f z2: %8.4f (%s %d)\n", x2, z2, - __FILE__, __LINE__); - } + if (settings->plane == CANON_PLANE::XY) { + if (((block->x_flag) && (block->y_flag)) + || block->k_flag) { + CHP(find_ends + (block, settings, &CP_G6.NURBS_X, + &CP_G6.NURBS_Y, &end_z, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G6.NURBS_R = block->r_number; + nurbs_g6_control_points.push_back(CP_G6); + } + } + if (settings->plane == CANON_PLANE::YZ) { + if (((block->y_flag) && (block->z_flag)) + || block->k_flag) { + CHP(find_ends + (block, settings, &end_x, + &CP_G6.NURBS_X, &CP_G6.NURBS_Y, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + CP_G6.NURBS_R = block->r_number; + nurbs_g6_control_points.push_back(CP_G6); + } + } + if (settings->plane == CANON_PLANE::XZ) { + if (((block->x_flag) && (block->z_flag)) + || block->k_flag) { + CHP(find_ends + (block, settings, &CP_G6.NURBS_Y, + &end_z, &CP_G6.NURBS_X, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, + &w_end)); + CP_G6.NURBS_R = block->r_number; + nurbs_g6_control_points.push_back(CP_G6); + } + } - cp.NURBS_W = 1; - if (settings->plane == CANON_PLANE::XY) - { - cp.NURBS_X = settings->current_x; - cp.NURBS_Y = settings->current_y; - } - if (settings->plane == CANON_PLANE::YZ) - { - cp.NURBS_X = settings->current_y; - cp.NURBS_Y = settings->current_z; - } - if (settings->plane == CANON_PLANE::XZ) - { - cp.NURBS_X = settings->current_z; - cp.NURBS_Y = settings->current_x; - } - nurbs_g5_control_points.push_back(cp); - if (settings->plane == CANON_PLANE::XY) - { - cp.NURBS_X = x1; - cp.NURBS_Y = y1; - } - if (settings->plane == CANON_PLANE::YZ) - { - cp.NURBS_X = y1; - cp.NURBS_Y = z1; - } - if (settings->plane == CANON_PLANE::XZ) - { - cp.NURBS_X = z1; - cp.NURBS_Y = x1; - } - nurbs_g5_control_points.push_back(cp); - if (settings->plane == CANON_PLANE::XY) - { - cp.NURBS_X = x2; - cp.NURBS_Y = y2; - } - if (settings->plane == CANON_PLANE::YZ) - { - cp.NURBS_X = y2; - cp.NURBS_Y = z2; - } - if (settings->plane == CANON_PLANE::XZ) - { - cp.NURBS_X = z2; - cp.NURBS_Y = x2; - } - nurbs_g5_control_points.push_back(cp); - if (settings->plane == CANON_PLANE::XY) - { - cp.NURBS_X = x3; - cp.NURBS_Y = y3; - } - if (settings->plane == CANON_PLANE::YZ) - { - cp.NURBS_X = y3; - cp.NURBS_Y = z3; - } - if (settings->plane == CANON_PLANE::XZ) - { - cp.NURBS_X = z3; - cp.NURBS_Y = x3; - } - nurbs_g5_control_points.push_back(cp); - - /* - for (long unsigned int i=0;iline_number, nurbs_g5_control_points, - 4, settings->plane); - nurbs_g5_control_points.clear(); - - settings->cycle_i = -block->p_number; - settings->cycle_j = -block->q_number; - if (settings->plane == CANON_PLANE::XY) - { - settings->current_x = x3; - settings->current_y = y3; - } - if (settings->plane == CANON_PLANE::YZ) - { - settings->current_y = y3; - settings->current_z = z3; - } - if (settings->plane == CANON_PLANE::XZ) - { - settings->current_x = x3; - settings->current_z = z3; - } - } - return INTERP_OK; + settings->motion_mode = mode; + + ff_G6_line_counter++; + if (nurbs_g6_control_points.size() > nurbs_order) { + if (nurbs_g6_control_points + [ff_G6_line_counter - 1].NURBS_K == + nurbs_g6_control_points[ff_G6_line_counter - + nurbs_order + 1 - + 1].NURBS_K) { + CHKS((nurbs_g6_control_points.size() < + nurbs_order), + _ + ("You must specify a number of control points at least equal to the order P = %d"), + nurbs_order); + settings->current_x = + nurbs_g6_control_points + [nurbs_g6_control_points.size() - + 1].NURBS_X; + settings->current_y = + nurbs_g6_control_points + [nurbs_g6_control_points.size() - + 1].NURBS_Y; +/* + for (long unsigned int i=0;iline_number, + nurbs_g6_control_points, + nurbs_order, + settings->feed_rate, + Q_G6_option, + settings->plane); + nurbs_g6_control_points.clear(); + ff_G6_line_counter = 0; + settings->motion_mode = -1; + } + } + } +// + if (mode == G_6_3) // jjf this is missing from Lo Valvo code! not used there and here! + { + printf("mode == G_6_3 not used (%s %d)\n", __FILE__, + __LINE__); + } + return INTERP_OK; } -/****************************************************************************/ - -/*! convert_arc - -Returned Value: int - If one of the following functions returns an error code, - this returns that error code. - convert_arc_comp1 - convert_arc_comp2 - convert_arc2 - If any of the following errors occur, this returns the error code shown. - Otherwise, this returns INTERP_OK. - 1. The block has neither an r value nor any i,j,k values: - NCE_R_I_J_K_WORDS_ALL_MISSING_FOR_ARC - 2. The block has both an r value and one or more i,j,k values: - NCE_MIXED_RADIUS_IJK_FORMAT_FOR_ARC - 3. In the ijk format the XY-plane is selected and - the block has a k value: NCE_K_WORD_GIVEN_FOR_ARC_IN_XY_PLANE - 4. In the ijk format the YZ-plane is selected and - the block has an i value: NCE_I_WORD_GIVEN_FOR_ARC_IN_YZ_PLANE - 5. In the ijk format the XZ-plane is selected and - the block has a j value: NCE_J_WORD_GIVEN_FOR_ARC_IN_XZ_PLANE - 6. In either format any of the following occurs. - a. The XY-plane is selected and the block has no x or y value: - NCE_X_AND_Y_WORDS_MISSING_FOR_ARC_IN_XY_PLANE - b. The YZ-plane is selected and the block has no y or z value: - NCE_Y_AND_Z_WORDS_MISSING_FOR_ARC_IN_YZ_PLANE - c. The ZX-plane is selected and the block has no z or x value: - NCE_X_AND_Z_WORDS_MISSING_FOR_ARC_IN_XZ_PLANE - 7. The selected plane is an unknown plane: - NCE_BUG_PLANE_NOT_XY_YZ__OR_XZ - 8. The feed rate mode is UNITS_PER_MINUTE and feed rate is zero: - NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE - 9. The feed rate mode is INVERSE_TIME and the block has no f word: - NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE - -Side effects: - This generates and executes an arc command at feed rate - (and, possibly a second arc command). It also updates the setting - of the position of the tool point to the end point of the move. - -Called by: convert_motion. + /****************************************************************************/ + /*! convert_spline + * + * Returned value: int + * Returns a rs274ngc error code, or INTERP_OK if everything is OK. + * + * Side effects: Generates a spline move and updates the position of the tool + */ +int Interp::convert_spline(int mode, block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) +{ //!< pointer to machine settings + double x1, y1, z1, x2, y2, z2, x3, y3, z3; + double end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, + w_end; + NURBS_CONTROL_POINT cp; + + x1 = 0; + y1 = 0; + z1 = 0; //to avoid compiler warning "may be used uninitialized" + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), _("Cannot convert spline with cutter radius compensation")); // XXX + + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { + CHKS((settings->feed_rate == 0.0), + NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); + } else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) { + CHKS((!block->f_flag), + NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); + } -This converts a helical or circular arc. The function calls: -convert_arc2 (when cutter radius compensation is off) or -convert_arc_comp1 (when cutter comp is on and this is the first move) or -convert_arc_comp2 (when cutter comp is on and this is not the first move). + CHKS((block->a_flag || block->b_flag + || block->c_flag), + _("Splines may not have motion in A, B, or C")); + + if ((mode == G_5_1) || (mode == G_6_1)) { + printf("mode == G_5_1 or G_6_1 (%s %d)\n", __FILE__, + __LINE__); + CHKS(!block->i_flag + || !block->j_flag, + _("Must specify both I and J with G5.1 or G6.1")); + + if (settings->plane == CANON_PLANE::XY) { + x1 = settings->current_x + block->i_number; + y1 = settings->current_y + block->j_number; + CHP(find_ends + (block, settings, &x2, &y2, &end_z, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, &w_end)); + printf("find_ends x2: %8.4f y2: %8.4f (%s %d)\n", + x2, y2, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::YZ) { + y1 = settings->current_y + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends + (block, settings, &end_x, &y2, &z2, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, &w_end)); + printf("find_ends y2: %8.4f z2: %8.4f (%s %d)\n", + y2, z2, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::XZ) { + x1 = settings->current_x + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends + (block, settings, &x2, &end_y, &z2, &AA_end, + &BB_end, &CC_end, &u_end, &v_end, &w_end)); + printf("find_ends x2: %8.4f z2: %8.4f (%s %d)\n", + x2, z2, __FILE__, __LINE__); + } -If the ijk format is used, at least one of the offsets in the current -plane must be given in the block; it is common but not required to -give both offsets. The offsets are always incremental [NCMS, page 21]. + cp.NURBS_W = 1; -If cutter compensation is in use, the path's length may increase or -decrease. Also an arc may be added, to go around a corner, before the -original arc move. For the purpose of calculating the feed rate when in -inverse time mode, this length increase or decrease is ignored. The -feed is still set to the original programmed arc length divided by the F -number (with the above lower bound). The new arc (if needed) and the -new longer or shorter original arc are taken at this feed. + if (settings->plane == CANON_PLANE::XY) { + cp.NURBS_X = settings->current_x; + cp.NURBS_Y = settings->current_y; + } + if (settings->plane == CANON_PLANE::YZ) { + cp.NURBS_X = settings->current_y; + cp.NURBS_Y = settings->current_z; + } + if (settings->plane == CANON_PLANE::XZ) { + cp.NURBS_X = settings->current_z; + cp.NURBS_Y = settings->current_x; + } + nurbs_g5_control_points.push_back(cp); -*/ + if (settings->plane == CANON_PLANE::XY) { + cp.NURBS_X = x1; + cp.NURBS_Y = y1; + } + if (settings->plane == CANON_PLANE::YZ) { + cp.NURBS_X = y1; + cp.NURBS_Y = z1; + } + if (settings->plane == CANON_PLANE::XZ) { + cp.NURBS_X = z1; + cp.NURBS_Y = x1; + } + nurbs_g5_control_points.push_back(cp); -int Interp::convert_arc(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings -{ - int status; - int first; /* flag set true if this is first move after comp true */ - int ijk_flag; /* flag set true if any of i,j,k present in NC code */ - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end, v_end, w_end; + if (settings->plane == CANON_PLANE::XY) { + cp.NURBS_X = x2; + cp.NURBS_Y = y2; + } + if (settings->plane == CANON_PLANE::YZ) { + cp.NURBS_X = y2; + cp.NURBS_Y = z2; + } + if (settings->plane == CANON_PLANE::XZ) { + cp.NURBS_X = z2; + cp.NURBS_Y = x2; + } + nurbs_g5_control_points.push_back(cp); + + for (long unsigned int i = 0; + i < nurbs_g5_control_points.size(); i++) { + printf("X %8.4f, Y %8.4f W %8.4f\n", + nurbs_g5_control_points[i].NURBS_X, + nurbs_g5_control_points[i].NURBS_Y, + nurbs_g5_control_points[i].NURBS_W); + } + printf + ("*----------------------------------------- (%s %d)\n", + __FILE__, __LINE__); - CHKS((settings->arc_not_allowed), (_("The move just after exiting cutter compensation mode must be straight, not an arc"))); + NURBS_G5_FEED(block->line_number, nurbs_g5_control_points, + 3, settings->plane); + nurbs_g5_control_points.clear(); - ijk_flag = block->i_flag || block->j_flag || block->k_flag; - first = settings->cutter_comp_firstmove; + if (settings->plane == CANON_PLANE::XY) { + settings->current_x = x2; + settings->current_y = y2; + } + if (settings->plane == CANON_PLANE::YZ) { + settings->current_y = y2; + settings->current_z = z2; + } + if (settings->plane == CANON_PLANE::XZ) { + settings->current_x = x2; + settings->current_z = z2; + } + } else { // !(mode == G_5_1) + if (!block->i_flag || !block->j_flag) { + CHKS(block->i_flag + || block->j_flag, + _("Must specify both I and J, or neither")); + if (settings->plane == CANON_PLANE::XY) { + x1 = settings->current_x + + settings->cycle_i; + y1 = settings->current_y + + settings->cycle_j; + } + if (settings->plane == CANON_PLANE::YZ) { + y1 = settings->current_y + + settings->cycle_i; + z1 = settings->current_z + + settings->cycle_j; + } + if (settings->plane == CANON_PLANE::XZ) { + x1 = settings->current_x + + settings->cycle_i; + z1 = settings->current_z + + settings->cycle_j; + } + } else { + if (settings->plane == CANON_PLANE::XY) { + x1 = settings->current_x + block->i_number; + y1 = settings->current_y + block->j_number; + CHP(find_ends + (block, settings, &x3, &y3, &end_z, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + printf("x3: %8.4f y3: %8.4f (%s %d)\n", x3, + y3, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::YZ) { + y1 = settings->current_y + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends + (block, settings, &end_x, &y3, &z3, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + printf("y3: %8.4f z3: %8.4f (%s %d)\n", y3, + z3, __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::XZ) { + x1 = settings->current_x + block->i_number; + z1 = settings->current_z + block->j_number; + CHP(find_ends + (block, settings, &x3, &end_y, &z3, + &AA_end, &BB_end, &CC_end, &u_end, + &v_end, &w_end)); + printf("x3: %8.4f z3: %8.4f (%s %d)\n", x3, + z3, __FILE__, __LINE__); + } + } - CHKS((settings->plane == CANON_PLANE::UV || settings->plane == CANON_PLANE::VW || settings->plane == CANON_PLANE::UW), - _("Cannot do an arc in planes G17.1, G18.1, or G19.1")); - CHKS(((!block->r_flag) && (!ijk_flag)), - NCE_R_I_J_K_WORDS_ALL_MISSING_FOR_ARC); - CHKS(((block->r_flag) && (ijk_flag)), - NCE_MIXED_RADIUS_IJK_FORMAT_FOR_ARC); - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) - { - CHKS((settings->feed_rate == 0.0), - NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); - } - else if (settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) - { - CHKS((settings->feed_rate == 0.0), - NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); - CHKS((settings->speed[settings->active_spindle] == 0.0), - _("Cannot feed with zero spindle speed in feed per rev mode")); - } - else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) - { - CHKS((!block->f_flag), - NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); - } + CHKS(!block->p_flag + || !block->q_flag, + _("Must specify both P and Q with G5")); + if (settings->plane == CANON_PLANE::XY) { + x2 = x3 + block->p_number; + y2 = y3 + block->q_number; + printf("x2: %8.4f y2: %8.4f (%s %d)\n", x2, y2, + __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::YZ) { + y2 = y3 + block->p_number; + z2 = z3 + block->q_number; + printf("y2: %8.4f z2: %8.4f (%s %d)\n", y2, z2, + __FILE__, __LINE__); + } + if (settings->plane == CANON_PLANE::XZ) { + z2 = z3 + block->p_number; + x2 = x3 + block->q_number; + printf("x2: %8.4f z2: %8.4f (%s %d)\n", x2, z2, + __FILE__, __LINE__); + } - if (ijk_flag) - { - if (settings->plane == CANON_PLANE::XY) - { - CHKS((block->k_flag), NCE_K_WORD_GIVEN_FOR_ARC_IN_XY_PLANE); - if (!block->i_flag) - { /* i or j flag on to get here */ - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) - { - ERS(_("%c word missing in absolute center arc"), 'I'); - } - else - { - block->i_number = 0.0; - } - } - else if (!block->j_flag) - { - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) - { - ERS(_("%c word missing in absolute center arc"), 'J'); - } - else - { - block->j_number = 0.0; - } - } - } - else if (settings->plane == CANON_PLANE::YZ) - { - CHKS((block->i_flag), NCE_I_WORD_GIVEN_FOR_ARC_IN_YZ_PLANE); - if (!block->j_flag) - { /* j or k flag on to get here */ - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) - { - ERS(_("%c word missing in absolute center arc"), 'J'); - } - else - { - block->j_number = 0.0; - } - } - else if (!block->k_flag) - { - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) - { - ERS(_("%c word missing in absolute center arc"), 'K'); - } - else - { - block->k_number = 0.0; - } - } - } - else if (settings->plane == CANON_PLANE::XZ) - { - CHKS((block->j_flag), NCE_J_WORD_GIVEN_FOR_ARC_IN_XZ_PLANE); - if (!block->i_flag) - { /* i or k flag on to get here */ - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) - { - ERS(_("%c word missing in absolute center arc"), 'I'); - } - else - { - block->i_number = 0.0; - } - } - else if (!block->k_flag) - { - if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) - - { - ERS(_("%c word missing in absolute center arc"), 'K'); - } - else - { - block->k_number = 0.0; - } - } - } - else - { - ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); - } - } - else - { - // in R format, we need some XYZ words specified because a full circle is not allowed. - if (settings->plane == CANON_PLANE::XY) - { - CHKS(((!block->x_flag) && (!block->y_flag) && (!block->radius_flag) && (!block->theta_flag)), - NCE_X_AND_Y_WORDS_MISSING_FOR_ARC_IN_XY_PLANE); - } - else if (settings->plane == CANON_PLANE::YZ) - { - CHKS(((!block->y_flag) && (!block->z_flag)), - NCE_Y_AND_Z_WORDS_MISSING_FOR_ARC_IN_YZ_PLANE); - } - else if (settings->plane == CANON_PLANE::XZ) - { - CHKS(((!block->x_flag) && (!block->z_flag)), - NCE_X_AND_Z_WORDS_MISSING_FOR_ARC_IN_XZ_PLANE); + cp.NURBS_W = 1; + if (settings->plane == CANON_PLANE::XY) { + cp.NURBS_X = settings->current_x; + cp.NURBS_Y = settings->current_y; + } + if (settings->plane == CANON_PLANE::YZ) { + cp.NURBS_X = settings->current_y; + cp.NURBS_Y = settings->current_z; + } + if (settings->plane == CANON_PLANE::XZ) { + cp.NURBS_X = settings->current_z; + cp.NURBS_Y = settings->current_x; + } + nurbs_g5_control_points.push_back(cp); + if (settings->plane == CANON_PLANE::XY) { + cp.NURBS_X = x1; + cp.NURBS_Y = y1; + } + if (settings->plane == CANON_PLANE::YZ) { + cp.NURBS_X = y1; + cp.NURBS_Y = z1; + } + if (settings->plane == CANON_PLANE::XZ) { + cp.NURBS_X = z1; + cp.NURBS_Y = x1; + } + nurbs_g5_control_points.push_back(cp); + if (settings->plane == CANON_PLANE::XY) { + cp.NURBS_X = x2; + cp.NURBS_Y = y2; + } + if (settings->plane == CANON_PLANE::YZ) { + cp.NURBS_X = y2; + cp.NURBS_Y = z2; + } + if (settings->plane == CANON_PLANE::XZ) { + cp.NURBS_X = z2; + cp.NURBS_Y = x2; + } + nurbs_g5_control_points.push_back(cp); + if (settings->plane == CANON_PLANE::XY) { + cp.NURBS_X = x3; + cp.NURBS_Y = y3; + } + if (settings->plane == CANON_PLANE::YZ) { + cp.NURBS_X = y3; + cp.NURBS_Y = z3; + } + if (settings->plane == CANON_PLANE::XZ) { + cp.NURBS_X = z3; + cp.NURBS_Y = x3; + } + nurbs_g5_control_points.push_back(cp); + +/* + for (long unsigned int i=0;iline_number, nurbs_g5_control_points, + 4, settings->plane); + nurbs_g5_control_points.clear(); + + settings->cycle_i = -block->p_number; + settings->cycle_j = -block->q_number; + if (settings->plane == CANON_PLANE::XY) { + settings->current_x = x3; + settings->current_y = y3; + } + if (settings->plane == CANON_PLANE::YZ) { + settings->current_y = y3; + settings->current_z = z3; + } + if (settings->plane == CANON_PLANE::XZ) { + settings->current_x = x3; + settings->current_z = z3; + } + } + return INTERP_OK; +} - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end)); +/****************************************************************************/ - settings->motion_mode = move; +/*! convert_arc - // Should be done with changes to settings here, so we can pack the state - write_canon_state_tag(block, settings); +Returned Value: int + If one of the following functions returns an error code, + this returns that error code. + convert_arc_comp1 + convert_arc_comp2 + convert_arc2 + If any of the following errors occur, this returns the error code shown. + Otherwise, this returns INTERP_OK. + 1. The block has neither an r value nor any i,j,k values: + NCE_R_I_J_K_WORDS_ALL_MISSING_FOR_ARC + 2. The block has both an r value and one or more i,j,k values: + NCE_MIXED_RADIUS_IJK_FORMAT_FOR_ARC + 3. In the ijk format the XY-plane is selected and + the block has a k value: NCE_K_WORD_GIVEN_FOR_ARC_IN_XY_PLANE + 4. In the ijk format the YZ-plane is selected and + the block has an i value: NCE_I_WORD_GIVEN_FOR_ARC_IN_YZ_PLANE + 5. In the ijk format the XZ-plane is selected and + the block has a j value: NCE_J_WORD_GIVEN_FOR_ARC_IN_XZ_PLANE + 6. In either format any of the following occurs. + a. The XY-plane is selected and the block has no x or y value: + NCE_X_AND_Y_WORDS_MISSING_FOR_ARC_IN_XY_PLANE + b. The YZ-plane is selected and the block has no y or z value: + NCE_Y_AND_Z_WORDS_MISSING_FOR_ARC_IN_YZ_PLANE + c. The ZX-plane is selected and the block has no z or x value: + NCE_X_AND_Z_WORDS_MISSING_FOR_ARC_IN_XZ_PLANE + 7. The selected plane is an unknown plane: + NCE_BUG_PLANE_NOT_XY_YZ__OR_XZ + 8. The feed rate mode is UNITS_PER_MINUTE and feed rate is zero: + NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE + 9. The feed rate mode is INVERSE_TIME and the block has no f word: + NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE - if (settings->plane == CANON_PLANE::XY) - { - if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || - (settings->cutter_comp_radius == 0.0)) - { - status = - convert_arc2(move, block, settings, - &(settings->current_x), &(settings->current_y), - &(settings->current_z), end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block->i_number, block->j_number); - CHP(status); - } - else if (first) - { - status = convert_arc_comp1(move, block, settings, end_x, end_y, end_z, - block->i_number, block->j_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - CHP(status); - } - else - { - status = convert_arc_comp2(move, block, settings, end_x, end_y, end_z, - block->i_number, block->j_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - CHP(status); - } - } - else if (settings->plane == CANON_PLANE::XZ) - { - if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || - (settings->cutter_comp_radius == 0.0)) - { - status = - convert_arc2(move, block, settings, - &(settings->current_z), &(settings->current_x), - &(settings->current_y), end_z, end_x, end_y, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block->k_number, block->i_number); - CHP(status); - } - else if (first) - { - status = convert_arc_comp1(move, block, settings, end_z, end_x, end_y, - block->k_number, block->i_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - CHP(status); - } - else - { - status = convert_arc_comp2(move, block, settings, end_z, end_x, end_y, - block->k_number, block->i_number, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); +Side effects: + This generates and executes an arc command at feed rate + (and, possibly a second arc command). It also updates the setting + of the position of the tool point to the end point of the move. - CHP(status); - } - } - else if (settings->plane == CANON_PLANE::YZ) - { - status = - convert_arc2(move, block, settings, - &(settings->current_y), &(settings->current_z), - &(settings->current_x), end_y, end_z, end_x, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block->j_number, block->k_number); - CHP(status); - } - else - ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); - return INTERP_OK; +Called by: convert_motion. + +This converts a helical or circular arc. The function calls: +convert_arc2 (when cutter radius compensation is off) or +convert_arc_comp1 (when cutter comp is on and this is the first move) or +convert_arc_comp2 (when cutter comp is on and this is not the first move). + +If the ijk format is used, at least one of the offsets in the current +plane must be given in the block; it is common but not required to +give both offsets. The offsets are always incremental [NCMS, page 21]. + +If cutter compensation is in use, the path's length may increase or +decrease. Also an arc may be added, to go around a corner, before the +original arc move. For the purpose of calculating the feed rate when in +inverse time mode, this length increase or decrease is ignored. The +feed is still set to the original programmed arc length divided by the F +number (with the above lower bound). The new arc (if needed) and the +new longer or shorter original arc are taken at this feed. + +*/ + +int Interp::convert_arc(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings +{ + int status; + int first; /* flag set true if this is first move after comp true */ + int ijk_flag; /* flag set true if any of i,j,k present in NC code */ + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end, v_end, w_end; + + CHKS((settings->arc_not_allowed), (_("The move just after exiting cutter compensation mode must be straight, not an arc"))); + + ijk_flag = block->i_flag || block->j_flag || block->k_flag; + first = settings->cutter_comp_firstmove; + + CHKS((settings->plane == CANON_PLANE::UV + || settings->plane == CANON_PLANE::VW + || settings->plane == CANON_PLANE::UW), + _("Cannot do an arc in planes G17.1, G18.1, or G19.1")); + CHKS(((!block->r_flag) && (!ijk_flag)), + NCE_R_I_J_K_WORDS_ALL_MISSING_FOR_ARC); + CHKS(((block->r_flag) && (ijk_flag)), + NCE_MIXED_RADIUS_IJK_FORMAT_FOR_ARC); + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { + CHKS((settings->feed_rate == 0.0), + NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); + } else if(settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) { + CHKS((settings->feed_rate == 0.0), + NCE_CANNOT_MAKE_ARC_WITH_ZERO_FEED_RATE); + CHKS((settings->speed[settings->active_spindle] == 0.0), + _("Cannot feed with zero spindle speed in feed per rev mode")); + } else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) { + CHKS((!block->f_flag), + NCE_F_WORD_MISSING_WITH_INVERSE_TIME_ARC_MOVE); + } + + if (ijk_flag) { + if (settings->plane == CANON_PLANE::XY) { + CHKS((block->k_flag), NCE_K_WORD_GIVEN_FOR_ARC_IN_XY_PLANE); + if (!block->i_flag) { /* i or j flag on to get here */ + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { + ERS(_("%c word missing in absolute center arc"), 'I'); + } else { + block->i_number = 0.0; + } + } else if (!block->j_flag) { + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { + ERS(_("%c word missing in absolute center arc"), 'J'); + } else { + block->j_number = 0.0; + } + } + } else if (settings->plane == CANON_PLANE::YZ) { + CHKS((block->i_flag), NCE_I_WORD_GIVEN_FOR_ARC_IN_YZ_PLANE); + if (!block->j_flag) { /* j or k flag on to get here */ + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { + ERS(_("%c word missing in absolute center arc"), 'J'); + } else { + block->j_number = 0.0; + } + } else if (!block->k_flag) { + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { + ERS(_("%c word missing in absolute center arc"), 'K'); + } else { + block->k_number = 0.0; + } + } + } else if (settings->plane == CANON_PLANE::XZ) { + CHKS((block->j_flag), NCE_J_WORD_GIVEN_FOR_ARC_IN_XZ_PLANE); + if (!block->i_flag) { /* i or k flag on to get here */ + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { + ERS(_("%c word missing in absolute center arc"), 'I'); + } else { + block->i_number = 0.0; + } + } else if (!block->k_flag) { + if (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE) { + ERS(_("%c word missing in absolute center arc"), 'K'); + } else { + block->k_number = 0.0; + } + } + } else { + ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); + } + } else { + // in R format, we need some XYZ words specified because a full circle is not allowed. + if (settings->plane == CANON_PLANE::XY) { + CHKS(((!block->x_flag) && (!block->y_flag) && (!block->radius_flag) && (!block->theta_flag)), + NCE_X_AND_Y_WORDS_MISSING_FOR_ARC_IN_XY_PLANE); + } else if (settings->plane == CANON_PLANE::YZ) { + CHKS(((!block->y_flag) && (!block->z_flag)), + NCE_Y_AND_Z_WORDS_MISSING_FOR_ARC_IN_YZ_PLANE); + } else if (settings->plane == CANON_PLANE::XZ) { + CHKS(((!block->x_flag) && (!block->z_flag)), + NCE_X_AND_Z_WORDS_MISSING_FOR_ARC_IN_XZ_PLANE); + } + } + + + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end)); + + settings->motion_mode = move; + + // Should be done with changes to settings here, so we can pack the state + write_canon_state_tag(block, settings); + + if (settings->plane == CANON_PLANE::XY) { + if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || + (settings->cutter_comp_radius == 0.0)) { + status = + convert_arc2(move, block, settings, + &(settings->current_x), &(settings->current_y), + &(settings->current_z), end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block->i_number, block->j_number); + CHP(status); + } else if (first) { + status = convert_arc_comp1(move, block, settings, end_x, end_y, end_z, + block->i_number, block->j_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + CHP(status); + } else { + status = convert_arc_comp2(move, block, settings, end_x, end_y, end_z, + block->i_number, block->j_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + CHP(status); + } + } else if (settings->plane == CANON_PLANE::XZ) { + if ((settings->cutter_comp_side == CUTTER_COMP::OFF) || + (settings->cutter_comp_radius == 0.0)) { + status = + convert_arc2(move, block, settings, + &(settings->current_z), &(settings->current_x), + &(settings->current_y), end_z, end_x, end_y, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block->k_number, block->i_number); + CHP(status); + } else if (first) { + status = convert_arc_comp1(move, block, settings, end_z, end_x, end_y, + block->k_number, block->i_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + CHP(status); + } else { + status = convert_arc_comp2(move, block, settings, end_z, end_x, end_y, + block->k_number, block->i_number, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + + CHP(status); + } + } else if (settings->plane == CANON_PLANE::YZ) { + status = + convert_arc2(move, block, settings, + &(settings->current_y), &(settings->current_z), + &(settings->current_x), end_y, end_z, end_x, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block->j_number, block->k_number); + CHP(status); + } else + ERS(NCE_BUG_PLANE_NOT_XY_YZ_OR_XZ); + return INTERP_OK; } /****************************************************************************/ @@ -1219,86 +1106,61 @@ This converts a helical or circular arc. */ -int Interp::convert_arc2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings, //!< pointer to machine settings - double *current1, //!< pointer to current value of coordinate 1 - double *current2, //!< pointer to current value of coordinate 2 - double *current3, //!< pointer to current value of coordinate 3 - double end1, //!< coordinate 1 value at end of arc - double end2, //!< coordinate 2 value at end of arc - double end3, //!< coordinate 3 value at end of arc - double AA_end, //!< a-value at end of arc - double BB_end, //!< b-value at end of arc - double CC_end, //!< c-value at end of arc +int Interp::convert_arc2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings, //!< pointer to machine settings + double *current1, //!< pointer to current value of coordinate 1 + double *current2, //!< pointer to current value of coordinate 2 + double *current3, //!< pointer to current value of coordinate 3 + double end1, //!< coordinate 1 value at end of arc + double end2, //!< coordinate 2 value at end of arc + double end3, //!< coordinate 3 value at end of arc + double AA_end, //!< a-value at end of arc + double BB_end, //!< b-value at end of arc + double CC_end, //!< c-value at end of arc double u, double v, double w, //!< values at end of arc - double offset1, //!< center, either abs or offset from current - double offset2) + double offset1, //!< center, either abs or offset from current + double offset2) { - double center1; - double center2; - int turn; /* number of full or partial turns CCW in arc */ - CANON_PLANE plane = settings->plane; - - // Spiral tolerance is the amount of "spiral" allowed in a given arc segment, or (r2-r1)/theta - double spiral_abs_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? settings->center_arc_radius_tolerance_inch : settings->center_arc_radius_tolerance_mm; - - // Radius tolerance allows a bit of leeway on the minimum radius for a radius defined arc. - double radius_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? RADIUS_TOLERANCE_INCH : RADIUS_TOLERANCE_MM; - - if (block->r_flag) - { - CHP(arc_data_r(move, plane, *current1, *current2, end1, end2, - block->r_number, block->p_flag ? round_to_int(block->p_number) : 1, - ¢er1, ¢er2, &turn, radius_tolerance)); - } - else - { - CHP(arc_data_ijk(move, plane, *current1, *current2, end1, end2, - (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), - offset1, offset2, block->p_flag ? round_to_int(block->p_number) : 1, - ¢er1, ¢er2, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); - } - inverse_time_rate_arc(*current1, *current2, *current3, center1, center2, - turn, end1, end2, end3, block, settings); - - // We need to determine which 'center' is X and which is Y -double abs_x = 0, abs_y = 0; -double abs_cx = 0, abs_cy = 0; - - if (settings->plane == CANON_PLANE::XY) { - abs_x = end1; - abs_y = end2; - abs_cx = center1; - abs_cy = center2; - } else if (settings->plane == CANON_PLANE::XZ) { - abs_x = end1; - abs_y = 0; // Or whatever your system expects for non-active axes - abs_cx = center1; - abs_cy = 0; - } else { // YZ plane - abs_x = 0; - abs_y = end1; - abs_cx = 0; - abs_cy = center1; - } - - // Call our tagger with the resolved X, Y, CX, and CY - tag_arc(block, abs_x, abs_y, abs_cx, abs_cy, move); - - ARC_FEED(block->line_number, end1, end2, center1, center2, turn, end3, - AA_end, BB_end, CC_end, u, v, w); - *current1 = end1; - *current2 = end2; - *current3 = end3; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u; - settings->v_current = v; - settings->w_current = w; - - return INTERP_OK; + double center1; + double center2; + int turn; /* number of full or partial turns CCW in arc */ + CANON_PLANE plane = settings->plane; + + // Spiral tolerance is the amount of "spiral" allowed in a given arc segment, or (r2-r1)/theta + double spiral_abs_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? + settings->center_arc_radius_tolerance_inch : settings->center_arc_radius_tolerance_mm; + + // Radius tolerance allows a bit of leeway on the minimum radius for a radius defined arc. + double radius_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? + RADIUS_TOLERANCE_INCH : RADIUS_TOLERANCE_MM; + + if (block->r_flag) { + CHP(arc_data_r(move, plane, *current1, *current2, end1, end2, + block->r_number, block->p_flag? round_to_int(block->p_number) : 1, + ¢er1, ¢er2, &turn, radius_tolerance)); + } else { + CHP(arc_data_ijk(move, plane, *current1, *current2, end1, end2, + (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), + offset1, offset2, block->p_flag? round_to_int(block->p_number) : 1, + ¢er1, ¢er2, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); + } + inverse_time_rate_arc(*current1, *current2, *current3, center1, center2, + turn, end1, end2, end3, block, settings); + + ARC_FEED(block->line_number, end1, end2, center1, center2, turn, end3, + AA_end, BB_end, CC_end, u, v, w); + *current1 = end1; + *current2 = end2; + *current3 = end3; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u; + settings->v_current = v; + settings->w_current = w; + + return INTERP_OK; } /****************************************************************************/ @@ -1328,28 +1190,28 @@ tangent to the second arc throughout the move. */ -int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings, //!< pointer to machine settings - double end_x, //!< x-value at end of programmed (then actual) arc - double end_y, //!< y-value at end of programmed (then actual) arc - double end_z, //!< z-value at end of arc +int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings, //!< pointer to machine settings + double end_x, //!< x-value at end of programmed (then actual) arc + double end_y, //!< y-value at end of programmed (then actual) arc + double end_z, //!< z-value at end of arc double offset_x, double offset_y, - double AA_end, //!< a-value at end of arc - double BB_end, //!< b-value at end of arc - double CC_end, //!< c-value at end of arc + double AA_end, //!< a-value at end of arc + double BB_end, //!< b-value at end of arc + double CC_end, //!< c-value at end of arc double u_end, double v_end, double w_end) //!< uvw at end of arc { double center_x, center_y; - double gamma; /* direction of perpendicular to arc at end */ - CUTTER_COMP side; /* offset side - right or left */ + double gamma; /* direction of perpendicular to arc at end */ + CUTTER_COMP side; /* offset side - right or left */ double tool_radius; - int turn; /* 1 for counterclockwise, -1 for clockwise */ + int turn; /* 1 for counterclockwise, -1 for clockwise */ double cx, cy, cz; // current CANON_PLANE plane = settings->plane; side = settings->cutter_comp_side; - tool_radius = settings->cutter_comp_radius; /* always is positive */ + tool_radius = settings->cutter_comp_radius; /* always is positive */ double spiral_abs_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? settings->center_arc_radius_tolerance_inch : settings->center_arc_radius_tolerance_mm; double radius_tolerance = (settings->length_units == CANON_UNITS_INCHES) ? RADIUS_TOLERANCE_INCH : RADIUS_TOLERANCE_MM; @@ -1359,31 +1221,26 @@ int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) o CHKS((hypot((end_x - cx), (end_y - cy)) <= tool_radius), _("Radius of cutter compensation entry arc is not greater than the tool radius")); - if (block->r_flag) - { + if (block->r_flag) { CHP(arc_data_comp_r(move, plane, side, tool_radius, cx, cy, end_x, end_y, - block->r_number, block->p_flag ? round_to_int(block->p_number) : 1, + block->r_number, block->p_flag? round_to_int(block->p_number): 1, ¢er_x, ¢er_y, &turn, radius_tolerance)); - } - else - { + } else { CHP(arc_data_comp_ijk(move, plane, side, tool_radius, cx, cy, end_x, end_y, (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), - offset_x, offset_y, block->p_flag ? round_to_int(block->p_number) : 1, + offset_x, offset_y, block->p_flag? round_to_int(block->p_number): 1, ¢er_x, ¢er_y, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); } inverse_time_rate_arc(cx, cy, cz, center_x, center_y, turn, end_x, end_y, end_z, block, settings); + // the tool will end up in gamma direction from the programmed arc endpoint - if TOOL_INSIDE_ARC (side, turn) - { + if TOOL_INSIDE_ARC(side, turn) { // tool inside the arc: ends up toward the center gamma = atan2((center_y - end_y), (center_x - end_x)); - } - else - { + } else { // outside: away from the center gamma = atan2((end_y - center_y), (end_x - center_x)); } @@ -1410,22 +1267,19 @@ int Interp::convert_arc_comp1(int move, //!< either G_2 (cw arc) o CHKS((fabs(cos(A_ang)) < TOLERANCE_EQUAL), NCE_TOOL_RADIUS_NOT_LESS_THAN_ARC_RADIUS_WITH_COMP); - double c_len = b_len / cos(A_ang); + double c_len = b_len/cos(A_ang); // center of the arc is c_len from end in direction AB center_x = end_x + c_len * cos(AB_ang); center_y = end_y + c_len * sin(AB_ang); - - /* center to endpoint distances matched before - they still should. */ - CHKS((fabs(hypot(center_x - end_x, center_y - end_y) - - hypot(center_x - cx, center_y - cy)) > spiral_abs_tolerance), - NCE_BUG_IN_TOOL_RADIUS_COMP); + CHKS((fabs(hypot(center_x-end_x,center_y-end_y) - + hypot(center_x-cx,center_y-cy)) > spiral_abs_tolerance), + NCE_BUG_IN_TOOL_RADIUS_COMP); // need this move for lathes to move the tool origin first. otherwise, the arc isn't an arc. - if (settings->cutter_comp_orientation != 0 && settings->cutter_comp_orientation != 9) - { + if (settings->cutter_comp_orientation != 0 && settings->cutter_comp_orientation != 9) { enqueue_STRAIGHT_FEED(settings, block->line_number, 0, 0, 0, cx, cy, cz, @@ -1486,31 +1340,31 @@ their lengths. */ -int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings, //!< pointer to machine settings - double end_x, //!< x-value at end of programmed (then actual) arc - double end_y, //!< y-value at end of programmed (then actual) arc - double end_z, //!< z-value at end of arc +int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) or G_3 (ccw arc) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings, //!< pointer to machine settings + double end_x, //!< x-value at end of programmed (then actual) arc + double end_y, //!< y-value at end of programmed (then actual) arc + double end_z, //!< z-value at end of arc double offset_x, double offset_y, - double AA_end, //!< a-value at end of arc - double BB_end, //!< b-value at end of arc - double CC_end, //!< c-value at end of arc + double AA_end, //!< a-value at end of arc + double BB_end, //!< b-value at end of arc + double CC_end, //!< c-value at end of arc double u, double v, double w) //!< uvw at end of arc { - double alpha; /* direction of tangent to start of arc */ + double alpha; /* direction of tangent to start of arc */ double arc_radius; - double beta; /* angle between two tangents above */ - double centerx, centery; /* center of arc */ - double delta; /* direction of radius from start of arc to center of arc */ - double gamma; /* direction of perpendicular to arc at end */ + double beta; /* angle between two tangents above */ + double centerx, centery; /* center of arc */ + double delta; /* direction of radius from start of arc to center of arc */ + double gamma; /* direction of perpendicular to arc at end */ double midx, midy; CUTTER_COMP side; - double small = TOLERANCE_CONCAVE_CORNER; /* angle for testing corners */ + double small = TOLERANCE_CONCAVE_CORNER; /* angle for testing corners */ double opx = 0, opy = 0, opz = 0; - double theta; /* direction of tangent to last cut */ + double theta; /* direction of tangent to last cut */ double tool_radius; - int turn; /* number of full or partial circles CCW */ + int turn; /* number of full or partial circles CCW */ CANON_PLANE plane = settings->plane; double cx, cy, cz; double new_end_x, new_end_y; @@ -1523,18 +1377,16 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o comp_get_programmed(settings, &opx, &opy, &opz); comp_get_current(settings, &cx, &cy, &cz); - if (block->r_flag) - { + + if (block->r_flag) { CHP(arc_data_r(move, plane, opx, opy, end_x, end_y, - block->r_number, block->p_flag ? round_to_int(block->p_number) : 1, + block->r_number, block->p_flag? round_to_int(block->p_number): 1, ¢erx, ¢ery, &turn, radius_tolerance)); - } - else - { + } else { CHP(arc_data_ijk(move, plane, opx, opy, end_x, end_y, (settings->ijk_distance_mode == DISTANCE_MODE::ABSOLUTE), - offset_x, offset_y, block->p_flag ? round_to_int(block->p_number) : 1, + offset_x, offset_y, block->p_flag? round_to_int(block->p_number): 1, ¢erx, ¢ery, &turn, radius_tolerance, spiral_abs_tolerance, SPIRAL_RELATIVE_TOLERANCE)); } @@ -1542,7 +1394,7 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o turn, end_x, end_y, end_z, block, settings); side = settings->cutter_comp_side; - tool_radius = settings->cutter_comp_radius; /* always is positive */ + tool_radius = settings->cutter_comp_radius; /* always is positive */ arc_radius = hypot((centerx - end_x), (centery - end_y)); theta = atan2(cy - opy, cx - opx); theta = (side == CUTTER_COMP::LEFT) ? (theta - M_PI_2l) : (theta + M_PI_2l); @@ -1551,18 +1403,14 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o beta = (side == CUTTER_COMP::LEFT) ? (theta - alpha) : (alpha - theta); // normalize beta -90 to +270? - beta = (beta > (1.5 * M_PIl)) ? (beta - (2 * M_PIl)) : (beta < -M_PI_2l) ? (beta + (2 * M_PIl)) - : beta; + beta = (beta > (1.5 * M_PIl)) ? (beta - (2 * M_PIl)) : (beta < -M_PI_2l) ? (beta + (2 * M_PIl)) : beta; - if (((side == CUTTER_COMP::LEFT) && (move == G_3)) || ((side == CUTTER_COMP::RIGHT) && (move == G_2))) - { + if (((side == CUTTER_COMP::LEFT) && (move == G_3)) || ((side == CUTTER_COMP::RIGHT) && (move == G_2))) { // we are cutting inside the arc gamma = atan2((centery - end_y), (centerx - end_x)); CHKS((arc_radius <= tool_radius), - NCE_TOOL_RADIUS_NOT_LESS_THAN_ARC_RADIUS_WITH_COMP); - } - else - { + NCE_TOOL_RADIUS_NOT_LESS_THAN_ARC_RADIUS_WITH_COMP); + } else { gamma = atan2((end_y - centery), (end_x - centerx)); delta = (delta + M_PIl); } @@ -1575,45 +1423,35 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o beta > M_PIl + small || // special detection for convex corner on tangent arc->arc (like atop the middle of "m" shape) // or tangent line->arc (atop "h" shape) - (fabs(beta - M_PIl) < small && !TOOL_INSIDE_ARC(side, turn))) - { + (fabs(beta - M_PIl) < small && !TOOL_INSIDE_ARC(side, turn)) + ) { // concave - if (qc().front().type != QARC_FEED) - { + if (qc().front().type != QARC_FEED) { // line->arc double cy = arc_radius * sin(beta - M_PI_2l); double toward_nominal; double dist_from_center; double angle_from_center; - if TOOL_INSIDE_ARC (side, turn) - { + if TOOL_INSIDE_ARC(side, turn) { // tool is inside the arc dist_from_center = arc_radius - tool_radius; toward_nominal = cy + tool_radius; double l = toward_nominal / dist_from_center; CHKS((l > 1.0 || l < -1.0), _("Arc move in concave corner cannot be reached by the tool without gouging")); - if (turn > 0) - { + if(turn > 0) { angle_from_center = theta + asin(l); - } - else - { + } else { angle_from_center = theta - asin(l); } - } - else - { + } else { dist_from_center = arc_radius + tool_radius; toward_nominal = cy - tool_radius; double l = toward_nominal / dist_from_center; CHKS((l > 1.0 || l < -1.0), _("Arc move in concave corner cannot be reached by the tool without gouging")); - if (turn > 0) - { + if(turn > 0) { angle_from_center = theta + M_PIl - asin(l); - } - else - { + } else { angle_from_center = theta + M_PIl + asin(l); } } @@ -1622,19 +1460,14 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o midy = centery + dist_from_center * sin(angle_from_center); CHP(move_endpoint_and_flush(settings, midx, midy)); - } - else - { + } else { // arc->arc struct arc_feed &prev = qc().front().data.arc_feed; double oldrad = hypot(prev.center2 - prev.end2, prev.center1 - prev.end1); double newrad; - if TOOL_INSIDE_ARC (side, turn) - { + if TOOL_INSIDE_ARC(side, turn) { newrad = arc_radius - tool_radius; - } - else - { + } else { newrad = arc_radius + tool_radius; } @@ -1649,16 +1482,13 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o cc_dir = atan2(centery - prev.center2, centerx - prev.center1); double dir; - if TOOL_INSIDE_ARC (side, prev.turn) - { - if (turn > 0) + if TOOL_INSIDE_ARC(side, prev.turn) { + if(turn > 0) dir = cc_dir + pullback; else dir = cc_dir - pullback; - } - else - { - if (turn > 0) + } else { + if(turn > 0) dir = cc_dir - pullback; else dir = cc_dir + pullback; @@ -1673,9 +1503,7 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o find_turn(opx, opy, centerx, centery, turn, end_x, end_y), new_end_x, new_end_y, centerx, centery, turn, end_z, AA_end, BB_end, CC_end, u, v, w); - } - else if (beta > small) - { /* convex, two arcs needed */ + } else if (beta > small) { /* convex, two arcs needed */ midx = opx + tool_radius * cos(delta); midy = opy + tool_radius * sin(delta); dequeue_canons(settings); @@ -1690,9 +1518,7 @@ int Interp::convert_arc_comp2(int move, //!< either G_2 (cw arc) o find_turn(opx, opy, centerx, centery, turn, end_x, end_y), new_end_x, new_end_y, centerx, centery, turn, end_z, AA_end, BB_end, CC_end, u, v, w); - } - else - { /* convex, one arc needed */ + } else { /* convex, one arc needed */ dequeue_canons(settings); set_endpoint(cx, cy); enqueue_ARC_FEED(settings, block->line_number, @@ -1776,244 +1602,218 @@ given in the parameters. */ -int Interp::convert_axis_offsets(int g_code, //!< g_code being executed (must be in G_92 series) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_axis_offsets(int g_code, //!< g_code being executed (must be in G_92 series) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - double *pars; /* short name for settings->parameters */ - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), /* not "== true" */ - NCE_CANNOT_CHANGE_AXIS_OFFSETS_WITH_CUTTER_RADIUS_COMP); - CHKS((block->a_flag && settings->a_axis_wrapped && - (block->a_number <= -360.0 || block->a_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), - block->a_number, 'A'); - CHKS((block->b_flag && settings->b_axis_wrapped && - (block->b_number <= -360.0 || block->b_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), - block->b_number, 'B'); - CHKS((block->c_flag && settings->c_axis_wrapped && - (block->c_number <= -360.0 || block->c_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), - block->c_number, 'C'); - pars = settings->parameters; - if ((g_code == G_52) || (g_code == G_92)) - { - pars[G92_APPLIED] = 1.0; - - if (g_code == G_52) - { - if (block->x_flag) - { - settings->current_x += settings->axis_offset_x - block->x_number; - settings->axis_offset_x = block->x_number; - } - - if (block->y_flag) - { - settings->current_y += settings->axis_offset_y - block->y_number; - settings->axis_offset_y = block->y_number; - } - - if (block->z_flag) - { - settings->current_z += settings->axis_offset_z - block->z_number; - settings->axis_offset_z = block->z_number; - } - if (block->a_flag) - { - settings->AA_current += settings->AA_axis_offset - block->a_number; - settings->AA_axis_offset = block->a_number; - } - if (block->b_flag) - { - settings->BB_current += settings->BB_axis_offset - block->b_number; - settings->BB_axis_offset = block->b_number; - } - if (block->c_flag) - { - settings->CC_current += settings->CC_axis_offset - block->c_number; - settings->CC_axis_offset = block->c_number; - } - if (block->u_flag) - { - settings->u_current += settings->u_axis_offset - block->u_number; - settings->u_axis_offset = block->u_number; - } - if (block->v_flag) - { - settings->v_current += settings->v_axis_offset - block->v_number; - settings->v_axis_offset = block->v_number; - } - if (block->w_flag) - { - settings->w_current += settings->w_axis_offset - block->w_number; - settings->w_axis_offset = block->w_number; - } - } - else - { - if (block->x_flag) - { - settings->axis_offset_x = - (settings->current_x + settings->axis_offset_x - block->x_number); - settings->current_x = block->x_number; - } + double *pars; /* short name for settings->parameters */ + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), /* not "== true" */ + NCE_CANNOT_CHANGE_AXIS_OFFSETS_WITH_CUTTER_RADIUS_COMP); + CHKS((block->a_flag && settings->a_axis_wrapped && + (block->a_number <= -360.0 || block->a_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), + block->a_number, 'A'); + CHKS((block->b_flag && settings->b_axis_wrapped && + (block->b_number <= -360.0 || block->b_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), + block->b_number, 'B'); + CHKS((block->c_flag && settings->c_axis_wrapped && + (block->c_number <= -360.0 || block->c_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), + block->c_number, 'C'); + pars = settings->parameters; + if ((g_code == G_52) || (g_code == G_92)) { + pars[G92_APPLIED] = 1.0; + + if (g_code == G_52) { + if (block->x_flag) { + settings->current_x += settings->axis_offset_x - block->x_number; + settings->axis_offset_x = block->x_number; + } + + if (block->y_flag) { + settings->current_y += settings->axis_offset_y - block->y_number; + settings->axis_offset_y = block->y_number; + } + + if (block->z_flag) { + settings->current_z += settings->axis_offset_z - block->z_number; + settings->axis_offset_z = block->z_number; + } + if (block->a_flag) { + settings->AA_current += settings->AA_axis_offset - block->a_number; + settings->AA_axis_offset = block->a_number; + } + if (block->b_flag) { + settings->BB_current += settings->BB_axis_offset - block->b_number; + settings->BB_axis_offset = block->b_number; + } + if (block->c_flag) { + settings->CC_current += settings->CC_axis_offset - block->c_number; + settings->CC_axis_offset = block->c_number; + } + if (block->u_flag) { + settings->u_current += settings->u_axis_offset - block->u_number; + settings->u_axis_offset = block->u_number; + } + if (block->v_flag) { + settings->v_current += settings->v_axis_offset - block->v_number; + settings->v_axis_offset = block->v_number; + } + if (block->w_flag) { + settings->w_current += settings->w_axis_offset - block->w_number; + settings->w_axis_offset = block->w_number; + } + + } else { + if (block->x_flag) { + settings->axis_offset_x = + (settings->current_x + settings->axis_offset_x - block->x_number); + settings->current_x = block->x_number; + } + + if (block->y_flag) { + settings->axis_offset_y = + (settings->current_y + settings->axis_offset_y - block->y_number); + settings->current_y = block->y_number; + } + + if (block->z_flag) { + settings->axis_offset_z = + (settings->current_z + settings->axis_offset_z - block->z_number); + settings->current_z = block->z_number; + } + if (block->a_flag) { + settings->AA_axis_offset = (settings->AA_current + + settings->AA_axis_offset - block->a_number); + settings->AA_current = block->a_number; + } + if (block->b_flag) { + settings->BB_axis_offset = (settings->BB_current + + settings->BB_axis_offset - block->b_number); + settings->BB_current = block->b_number; + } + if (block->c_flag) { + settings->CC_axis_offset = (settings->CC_current + + settings->CC_axis_offset - block->c_number); + settings->CC_current = block->c_number; + } + if (block->u_flag) { + settings->u_axis_offset = (settings->u_current + + settings->u_axis_offset - block->u_number); + settings->u_current = block->u_number; + } + if (block->v_flag) { + settings->v_axis_offset = (settings->v_current + + settings->v_axis_offset - block->v_number); + settings->v_current = block->v_number; + } + if (block->w_flag) { + settings->w_axis_offset = (settings->w_current + + settings->w_axis_offset - block->w_number); + settings->w_current = block->w_number; + } + } - if (block->y_flag) - { - settings->axis_offset_y = - (settings->current_y + settings->axis_offset_y - block->y_number); - settings->current_y = block->y_number; - } + SET_G92_OFFSET(settings->axis_offset_x, + settings->axis_offset_y, + settings->axis_offset_z, + settings->AA_axis_offset, + settings->BB_axis_offset, + settings->CC_axis_offset, + settings->u_axis_offset, + settings->v_axis_offset, + settings->w_axis_offset); - if (block->z_flag) - { - settings->axis_offset_z = - (settings->current_z + settings->axis_offset_z - block->z_number); - settings->current_z = block->z_number; - } - if (block->a_flag) - { - settings->AA_axis_offset = (settings->AA_current + - settings->AA_axis_offset - block->a_number); - settings->AA_current = block->a_number; - } - if (block->b_flag) - { - settings->BB_axis_offset = (settings->BB_current + - settings->BB_axis_offset - block->b_number); - settings->BB_current = block->b_number; - } - if (block->c_flag) - { - settings->CC_axis_offset = (settings->CC_current + - settings->CC_axis_offset - block->c_number); - settings->CC_current = block->c_number; - } - if (block->u_flag) - { - settings->u_axis_offset = (settings->u_current + - settings->u_axis_offset - block->u_number); - settings->u_current = block->u_number; - } - if (block->v_flag) - { - settings->v_axis_offset = (settings->v_current + - settings->v_axis_offset - block->v_number); - settings->v_current = block->v_number; - } - if (block->w_flag) - { - settings->w_axis_offset = (settings->w_current + - settings->w_axis_offset - block->w_number); - settings->w_current = block->w_number; - } - } + pars[5211] = PROGRAM_TO_USER_LEN(settings->axis_offset_x); + pars[5212] = PROGRAM_TO_USER_LEN(settings->axis_offset_y); + pars[5213] = PROGRAM_TO_USER_LEN(settings->axis_offset_z); + pars[5214] = PROGRAM_TO_USER_ANG(settings->AA_axis_offset); + pars[5215] = PROGRAM_TO_USER_ANG(settings->BB_axis_offset); + pars[5216] = PROGRAM_TO_USER_ANG(settings->CC_axis_offset); + pars[5217] = PROGRAM_TO_USER_LEN(settings->u_axis_offset); + pars[5218] = PROGRAM_TO_USER_LEN(settings->v_axis_offset); + pars[5219] = PROGRAM_TO_USER_LEN(settings->w_axis_offset); + + } else if ((g_code == G_92_1) || (g_code == G_92_2)) { + pars[5210] = 0.0; + settings->current_x = settings->current_x + settings->axis_offset_x; + settings->current_y = settings->current_y + settings->axis_offset_y; + settings->current_z = settings->current_z + settings->axis_offset_z; + settings->AA_current = (settings->AA_current + settings->AA_axis_offset); + settings->BB_current = (settings->BB_current + settings->BB_axis_offset); + settings->CC_current = (settings->CC_current + settings->CC_axis_offset); + settings->u_current = (settings->u_current + settings->u_axis_offset); + settings->v_current = (settings->v_current + settings->v_axis_offset); + settings->w_current = (settings->w_current + settings->w_axis_offset); + + SET_G92_OFFSET(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + + settings->axis_offset_x = 0.0; + settings->axis_offset_y = 0.0; + settings->axis_offset_z = 0.0; + settings->AA_axis_offset = 0.0; + settings->BB_axis_offset = 0.0; + settings->CC_axis_offset = 0.0; + settings->u_axis_offset = 0.0; + settings->v_axis_offset = 0.0; + settings->w_axis_offset = 0.0; + if (g_code == G_92_1) { + pars[G92_X] = 0.0; + pars[G92_Y] = 0.0; + pars[G92_Z] = 0.0; + pars[G92_A] = 0.0; + pars[G92_B] = 0.0; + pars[G92_C] = 0.0; + pars[G92_U] = 0.0; + pars[G92_V] = 0.0; + pars[G92_W] = 0.0; + } + } else if (g_code == G_92_3) { + pars[5210] = 1.0; + settings->current_x = + settings->current_x + settings->axis_offset_x - USER_TO_PROGRAM_LEN(pars[5211]); + settings->current_y = + settings->current_y + settings->axis_offset_y - USER_TO_PROGRAM_LEN(pars[5212]); + settings->current_z = + settings->current_z + settings->axis_offset_z - USER_TO_PROGRAM_LEN(pars[5213]); + settings->AA_current = + settings->AA_current + settings->AA_axis_offset - USER_TO_PROGRAM_ANG(pars[5214]); + settings->BB_current = + settings->BB_current + settings->BB_axis_offset - USER_TO_PROGRAM_ANG(pars[5215]); + settings->CC_current = + settings->CC_current + settings->CC_axis_offset - USER_TO_PROGRAM_ANG(pars[5216]); + settings->u_current = + settings->u_current + settings->u_axis_offset - USER_TO_PROGRAM_LEN(pars[5217]); + settings->v_current = + settings->v_current + settings->v_axis_offset - USER_TO_PROGRAM_LEN(pars[5218]); + settings->w_current = + settings->w_current + settings->w_axis_offset - USER_TO_PROGRAM_LEN(pars[5219]); + + settings->axis_offset_x = USER_TO_PROGRAM_LEN(pars[5211]); + settings->axis_offset_y = USER_TO_PROGRAM_LEN(pars[5212]); + settings->axis_offset_z = USER_TO_PROGRAM_LEN(pars[5213]); + settings->AA_axis_offset = USER_TO_PROGRAM_ANG(pars[5214]); + settings->BB_axis_offset = USER_TO_PROGRAM_ANG(pars[5215]); + settings->CC_axis_offset = USER_TO_PROGRAM_ANG(pars[5216]); + settings->u_axis_offset = USER_TO_PROGRAM_LEN(pars[5217]); + settings->v_axis_offset = USER_TO_PROGRAM_LEN(pars[5218]); + settings->w_axis_offset = USER_TO_PROGRAM_LEN(pars[5219]); - SET_G92_OFFSET(settings->axis_offset_x, - settings->axis_offset_y, - settings->axis_offset_z, - settings->AA_axis_offset, - settings->BB_axis_offset, - settings->CC_axis_offset, - settings->u_axis_offset, - settings->v_axis_offset, - settings->w_axis_offset); - - pars[5211] = PROGRAM_TO_USER_LEN(settings->axis_offset_x); - pars[5212] = PROGRAM_TO_USER_LEN(settings->axis_offset_y); - pars[5213] = PROGRAM_TO_USER_LEN(settings->axis_offset_z); - pars[5214] = PROGRAM_TO_USER_ANG(settings->AA_axis_offset); - pars[5215] = PROGRAM_TO_USER_ANG(settings->BB_axis_offset); - pars[5216] = PROGRAM_TO_USER_ANG(settings->CC_axis_offset); - pars[5217] = PROGRAM_TO_USER_LEN(settings->u_axis_offset); - pars[5218] = PROGRAM_TO_USER_LEN(settings->v_axis_offset); - pars[5219] = PROGRAM_TO_USER_LEN(settings->w_axis_offset); - } - else if ((g_code == G_92_1) || (g_code == G_92_2)) - { - pars[5210] = 0.0; - settings->current_x = settings->current_x + settings->axis_offset_x; - settings->current_y = settings->current_y + settings->axis_offset_y; - settings->current_z = settings->current_z + settings->axis_offset_z; - settings->AA_current = (settings->AA_current + settings->AA_axis_offset); - settings->BB_current = (settings->BB_current + settings->BB_axis_offset); - settings->CC_current = (settings->CC_current + settings->CC_axis_offset); - settings->u_current = (settings->u_current + settings->u_axis_offset); - settings->v_current = (settings->v_current + settings->v_axis_offset); - settings->w_current = (settings->w_current + settings->w_axis_offset); - - SET_G92_OFFSET(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); - - settings->axis_offset_x = 0.0; - settings->axis_offset_y = 0.0; - settings->axis_offset_z = 0.0; - settings->AA_axis_offset = 0.0; - settings->BB_axis_offset = 0.0; - settings->CC_axis_offset = 0.0; - settings->u_axis_offset = 0.0; - settings->v_axis_offset = 0.0; - settings->w_axis_offset = 0.0; - if (g_code == G_92_1) - { - pars[G92_X] = 0.0; - pars[G92_Y] = 0.0; - pars[G92_Z] = 0.0; - pars[G92_A] = 0.0; - pars[G92_B] = 0.0; - pars[G92_C] = 0.0; - pars[G92_U] = 0.0; - pars[G92_V] = 0.0; - pars[G92_W] = 0.0; - } - } - else if (g_code == G_92_3) - { - pars[5210] = 1.0; - settings->current_x = - settings->current_x + settings->axis_offset_x - USER_TO_PROGRAM_LEN(pars[5211]); - settings->current_y = - settings->current_y + settings->axis_offset_y - USER_TO_PROGRAM_LEN(pars[5212]); - settings->current_z = - settings->current_z + settings->axis_offset_z - USER_TO_PROGRAM_LEN(pars[5213]); - settings->AA_current = - settings->AA_current + settings->AA_axis_offset - USER_TO_PROGRAM_ANG(pars[5214]); - settings->BB_current = - settings->BB_current + settings->BB_axis_offset - USER_TO_PROGRAM_ANG(pars[5215]); - settings->CC_current = - settings->CC_current + settings->CC_axis_offset - USER_TO_PROGRAM_ANG(pars[5216]); - settings->u_current = - settings->u_current + settings->u_axis_offset - USER_TO_PROGRAM_LEN(pars[5217]); - settings->v_current = - settings->v_current + settings->v_axis_offset - USER_TO_PROGRAM_LEN(pars[5218]); - settings->w_current = - settings->w_current + settings->w_axis_offset - USER_TO_PROGRAM_LEN(pars[5219]); - - settings->axis_offset_x = USER_TO_PROGRAM_LEN(pars[5211]); - settings->axis_offset_y = USER_TO_PROGRAM_LEN(pars[5212]); - settings->axis_offset_z = USER_TO_PROGRAM_LEN(pars[5213]); - settings->AA_axis_offset = USER_TO_PROGRAM_ANG(pars[5214]); - settings->BB_axis_offset = USER_TO_PROGRAM_ANG(pars[5215]); - settings->CC_axis_offset = USER_TO_PROGRAM_ANG(pars[5216]); - settings->u_axis_offset = USER_TO_PROGRAM_LEN(pars[5217]); - settings->v_axis_offset = USER_TO_PROGRAM_LEN(pars[5218]); - settings->w_axis_offset = USER_TO_PROGRAM_LEN(pars[5219]); - - SET_G92_OFFSET(settings->axis_offset_x, - settings->axis_offset_y, - settings->axis_offset_z, - settings->AA_axis_offset, - settings->BB_axis_offset, - settings->CC_axis_offset, - settings->u_axis_offset, - settings->v_axis_offset, - settings->w_axis_offset); - } - else - ERS(NCE_BUG_CODE_NOT_IN_G52_G92_SERIES); + SET_G92_OFFSET(settings->axis_offset_x, + settings->axis_offset_y, + settings->axis_offset_z, + settings->AA_axis_offset, + settings->BB_axis_offset, + settings->CC_axis_offset, + settings->u_axis_offset, + settings->v_axis_offset, + settings->w_axis_offset); + } else + ERS(NCE_BUG_CODE_NOT_IN_G52_G92_SERIES); - return INTERP_OK; + return INTERP_OK; } #define VAL_LEN 30 @@ -2022,7 +1822,7 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) { FORCE_LC_NUMERIC_C; int i; - char param[LINELEN + 1]; + char param[LINELEN+1]; char format[5] = "%lf"; int paramNumber; int stat; @@ -2031,35 +1831,35 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) char *v; int found; - while (*comment) + while(*comment) { - if (*comment == '%') + if(*comment == '%') { // skip over the '%' comment++; // convenient integer looking - if (*comment == 'd') + if(*comment == 'd') { comment++; strcpy(format, "%.0f"); } // convenient 4 position float - else if (*comment == 'f') + else if(*comment == 'f') { comment++; strcpy(format, "%.4f"); } // arbitrary 0-9 position float - else if (*comment == '.') + else if(*comment == '.') { comment++; - if (isdigit(*comment)) + if(isdigit(*comment)) { // forward to the (hopefully) letter f comment++; - if (*comment == 'f') + if(*comment == 'f') { // back up to get the digit into format comment--; @@ -2077,19 +1877,21 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) // back up to the digit to continue processing comment--; *expanded++ = '.'; + } } else { *expanded++ = '.'; } + } else { *expanded++ = '%'; } } - else if (*comment == '#') + else if(*comment == '#') { found = 0; logDebug("a parameter"); @@ -2098,23 +1900,23 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) comment++; CHKS((0 == *comment), NCE_NAMED_PARAMETER_NOT_TERMINATED); - if (isdigit(*comment)) // is this numeric param? + if(isdigit(*comment)) // is this numeric param? { logDebug("numeric parameter"); - for (i = 0; isdigit(*comment) && (i < LINELEN); i++) + for(i=0; isdigit(*comment)&& (i= 0) && - (paramNumber < RS274NGC_MAX_PARAMETERS)) + if((paramNumber >= 0) && + (paramNumber < RS274NGC_MAX_PARAMETERS)) { value = _setup.parameters[paramNumber]; found = 1; } } - else if (*comment == '<') + else if(*comment == '<') { logDebug("name parameter"); // this is a name parameter @@ -2122,30 +1924,30 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) comment++; CHKS((0 == *comment), NCE_NAMED_PARAMETER_NOT_TERMINATED); - for (i = 0; (')' != *comment) && - (i < LINELEN) && (0 != *comment);) + for(i=0; (')' != *comment) && + (i' == *comment) + if('>' == *comment) { - break; // done + break; // done } - if (isspace(*comment)) // skip space inside the param + if(isspace(*comment)) // skip space inside the param { comment++; continue; } else { - // if tolower is a macro, may need this int - int c = *comment++; - if (FEATURE(NO_DOWNCASE_OWORD)) - param[i] = c; - else - param[i] = tolower(c); + // if tolower is a macro, may need this int + int c = *comment++; + if (FEATURE(NO_DOWNCASE_OWORD)) + param[i] = c; + else + param[i] = tolower(c); i++; } } - if ('>' != *comment) + if('>' != *comment) { ERS(NCE_NAMED_PARAMETER_NOT_TERMINATED); } @@ -2159,7 +1961,7 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) // now lookup the name find_named_param(param, &stat, &value); - if (stat) + if(stat) { found = 1; } @@ -2177,14 +1979,15 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) // we have a parameter -- now insert it // we have the value - if (found) + if(found) { - // avoid -0.0/0.0 issues - double pvalue = equal(value, 0.0) ? 0.0 : value; + // avoid -0.0/0.0 issues + double pvalue = equal(value, 0.0) ? 0.0 : value; int n = snprintf(valbuf, VAL_LEN, format, pvalue); bool fail = (n >= VAL_LEN || n < 0); - if (fail) + if(fail) rtapi_strxcpy(valbuf, "######"); + } else { @@ -2193,12 +1996,12 @@ int Interp::convert_param_comment(char *comment, char *expanded, int /*len*/) logDebug("found:%d value:|%s|", found, valbuf); v = valbuf; - while (*v) + while(*v) { *expanded++ = *v++; } } - else // not a '#' + else // not a '#' { *expanded++ = *comment++; } @@ -2231,124 +2034,116 @@ subtype of comment. This is an extension to the rs274NGC language. */ -static int streq(char *s1, char *s2) -{ +static int streq(char *s1, char *s2) { return !strcmp(s1, s2); } -static int startswith(char *haystack, char *needle) -{ +static int startswith(char *haystack, char *needle) { return !strncmp(haystack, needle, strlen(needle)); } -int Interp::convert_comment(char *comment, bool enqueue) //!< string with comment +int Interp::convert_comment(char *comment, bool enqueue) //!< string with comment { - enum - { - LC_SIZE = 256, - EX_SIZE = 2 * LC_SIZE - }; // 256 from comment[256] in rs274ngc.hh - char lc[LC_SIZE + 1]; - char expanded[EX_SIZE + 1]; - char MSG_STR[] = "msg,"; - - //!!!KL add two -- debug => same as msg - //!!!KL -- print => goes to stdout - char DEBUG_STR[] = "debug,"; - char PRINT_STR[] = "print,"; - char LOG_STR[] = "log,"; - char LOGOPEN_STR[] = "logopen,"; - char LOGAPPEND_STR[] = "logappend,"; - char LOGCLOSE_STR[] = "logclose"; - char PY_STR[] = "py,"; - char PYRUN_STR[] = "pyrun,"; - char PYRELOAD_STR[] = "pyreload"; - char ABORT_STR[] = "abort,"; - int m, n, start; - - // step over leading white space in comment - m = 0; - while (isspace(comment[m])) - m++; - start = m; - // copy lowercase comment to lc[] - for (n = 0; n < LC_SIZE && comment[m] != 0; m++, n++) - { - lc[n] = tolower(comment[m]); - } - lc[n] = 0; // null terminate - - // compare with MSG, SYSTEM, DEBUG, PRINT - if (startswith(lc, MSG_STR)) - { - MESSAGE(comment + start + strlen(MSG_STR)); - return INTERP_OK; - } - else if (startswith(lc, DEBUG_STR)) - { - convert_param_comment(comment + start + strlen(DEBUG_STR), expanded, - EX_SIZE); - if (_setup.parameters[5599] > 0.0) - MESSAGE(expanded); - return INTERP_OK; - } - else if (startswith(lc, PRINT_STR)) - { - FILE *fd = get_stdout(); - if (fd) - { - convert_param_comment(comment + start + strlen(PRINT_STR), expanded, - EX_SIZE); - fprintf(fd, "%s\n", expanded); - fflush(fd); - } - return INTERP_OK; - } - else if (startswith(lc, LOG_STR)) - { - convert_param_comment(comment + start + strlen(LOG_STR), expanded, - EX_SIZE); - LOG(expanded); - return INTERP_OK; - } - else if (startswith(lc, LOGOPEN_STR)) - { - LOGOPEN(comment + start + strlen(LOGOPEN_STR)); - return INTERP_OK; - } - else if (startswith(lc, LOGAPPEND_STR)) - { - LOGAPPEND(comment + start + strlen(LOGAPPEND_STR)); - return INTERP_OK; - } - else if (startswith(lc, PY_STR)) - { - return py_execute(comment + start + strlen(PY_STR), false); - } - else if (startswith(lc, PYRUN_STR)) - { - return py_execute(comment + start + strlen(PYRUN_STR), true); - } - else if (startswith(lc, PYRELOAD_STR)) - { - return py_reload(); - } - else if (startswith(lc, ABORT_STR)) - { - convert_param_comment(comment + start + strlen(ABORT_STR), expanded, - EX_SIZE); - setSavedError(expanded); // avoid printf interpretation - return INTERP_ERROR; - } - else if (streq(lc, LOGCLOSE_STR)) - { - LOGCLOSE(); - return INTERP_OK; - } - // else it's a real comment - if (enqueue) - enqueue_COMMENT(comment + start); + enum + { LC_SIZE = 256, EX_SIZE = 2*LC_SIZE}; // 256 from comment[256] in rs274ngc.hh + char lc[LC_SIZE+1]; + char expanded[EX_SIZE+1]; + char MSG_STR[] = "msg,"; + + //!!!KL add two -- debug => same as msg + //!!!KL -- print => goes to stdout + char DEBUG_STR[] = "debug,"; + char PRINT_STR[] = "print,"; + char LOG_STR[] = "log,"; + char LOGOPEN_STR[] = "logopen,"; + char LOGAPPEND_STR[] = "logappend,"; + char LOGCLOSE_STR[] = "logclose"; + char PY_STR[] = "py,"; + char PYRUN_STR[] = "pyrun,"; + char PYRELOAD_STR[] = "pyreload"; + char ABORT_STR[] = "abort,"; + int m, n, start; + + // step over leading white space in comment + m = 0; + while (isspace(comment[m])) + m++; + start = m; + // copy lowercase comment to lc[] + for (n = 0; n < LC_SIZE && comment[m] != 0; m++, n++) { + lc[n] = tolower(comment[m]); + } + lc[n] = 0; // null terminate + + // compare with MSG, SYSTEM, DEBUG, PRINT + if (startswith(lc, MSG_STR)) { + MESSAGE(comment + start + strlen(MSG_STR)); return INTERP_OK; + } + else if (startswith(lc, DEBUG_STR)) + { + convert_param_comment(comment+start+strlen(DEBUG_STR), expanded, + EX_SIZE); + if (_setup.parameters[5599] > 0.0) + MESSAGE(expanded); + return INTERP_OK; + } + else if (startswith(lc, PRINT_STR)) + { + FILE *fd = get_stdout(); + if (fd) { + convert_param_comment(comment+start+strlen(PRINT_STR), expanded, + EX_SIZE); + fprintf(fd, "%s\n", expanded); + fflush(fd); + } + return INTERP_OK; + } + else if (startswith(lc, LOG_STR)) + { + convert_param_comment(comment+start+strlen(LOG_STR), expanded, + EX_SIZE); + LOG(expanded); + return INTERP_OK; + } + else if (startswith(lc, LOGOPEN_STR)) + { + LOGOPEN(comment + start + strlen(LOGOPEN_STR)); + return INTERP_OK; + } + else if (startswith(lc, LOGAPPEND_STR)) + { + LOGAPPEND(comment + start + strlen(LOGAPPEND_STR)); + return INTERP_OK; + } + else if (startswith(lc, PY_STR)) + { + return py_execute(comment + start + strlen(PY_STR), false); + } + else if (startswith(lc, PYRUN_STR)) + { + return py_execute(comment + start + strlen(PYRUN_STR), true); + } + else if (startswith(lc, PYRELOAD_STR)) + { + return py_reload(); + } + else if (startswith(lc, ABORT_STR)) + { + convert_param_comment(comment+start+strlen(ABORT_STR), expanded, + EX_SIZE); + setSavedError(expanded); // avoid printf interpretation + return INTERP_ERROR; + } + else if (streq(lc, LOGCLOSE_STR)) + { + LOGCLOSE(); + return INTERP_OK; + } + // else it's a real comment + if (enqueue) + enqueue_COMMENT(comment + start); + return INTERP_OK; } /****************************************************************************/ @@ -2391,51 +2186,41 @@ int Interp::convert_control_mode( setup_pointer settings) // pointer to machine settings { double tolerance, naivecam_tolerance; - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change control mode with cutter radius compensation on"))); - if (g_code == G_61) - { - SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH, 0); - settings->control_mode = CANON_EXACT_PATH; - } - else if (g_code == G_61_1) - { - SET_MOTION_CONTROL_MODE(CANON_EXACT_STOP, 0); - settings->control_mode = CANON_EXACT_STOP; - } - else if (g_code == G_64) - { - if (tolerance_in >= 0) - { - tolerance = tolerance_in; - } - else - { - tolerance = _setup.tolerance_default; - } - settings->control_mode = CANON_CONTINUOUS; - settings->tolerance = tolerance; - SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, tolerance); - - if (naivecam_tolerance_in >= 0) - { - naivecam_tolerance = naivecam_tolerance_in; - } - else if (tolerance_in >= 0) - { - // if no naivecam_tolerance specified use same for both - naivecam_tolerance = tolerance_in; - } - else - { - naivecam_tolerance = _setup.naivecam_tolerance_default; - } - settings->naivecam_tolerance = naivecam_tolerance; - SET_NAIVECAM_TOLERANCE(naivecam_tolerance); - } - else - ERS(NCE_BUG_CODE_NOT_G61_G61_1_OR_G64); - return INTERP_OK; + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change control mode with cutter radius compensation on"))); + if (g_code == G_61) { + SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH, 0); + settings->control_mode = CANON_EXACT_PATH; + } else if (g_code == G_61_1) { + SET_MOTION_CONTROL_MODE(CANON_EXACT_STOP, 0); + settings->control_mode = CANON_EXACT_STOP; + } else if (g_code == G_64) { + if (tolerance_in >= 0){ + tolerance = tolerance_in; + } + else{ + tolerance = _setup.tolerance_default; + } + settings->control_mode = CANON_CONTINUOUS; + settings->tolerance = tolerance; + SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, tolerance); + + if (naivecam_tolerance_in >= 0){ + naivecam_tolerance = naivecam_tolerance_in; + } + else if (tolerance_in >= 0){ + // if no naivecam_tolerance specified use same for both + naivecam_tolerance = tolerance_in; + } + else{ + naivecam_tolerance = _setup.naivecam_tolerance_default; + } + settings->naivecam_tolerance = naivecam_tolerance; + SET_NAIVECAM_TOLERANCE(naivecam_tolerance); + + } else + ERS(NCE_BUG_CODE_NOT_G61_G61_1_OR_G64); + return INTERP_OK; } /****************************************************************************/ @@ -2509,8 +2294,7 @@ nine coordinate systems. Axis offsets are initialized to zero. */ -void Interp::rotate(double *x, double *y, double theta) -{ +void Interp::rotate(double *x, double *y, double theta) { double xx, yy; double t = D2R(theta); xx = *x * cos(t) - *y * sin(t); @@ -2519,101 +2303,99 @@ void Interp::rotate(double *x, double *y, double theta) *y = yy; } -int Interp::convert_coordinate_system(int g_code, //!< g_code called (must be one listed above) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_coordinate_system(int g_code, //!< g_code called (must be one listed above) + setup_pointer settings) //!< pointer to machine settings { - int origin; - double *parameters; - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change coordinate systems with cutter radius compensation on"))); - parameters = settings->parameters; - switch (g_code) - { - case G_54: - origin = 1; - break; - case G_55: - origin = 2; - break; - case G_56: - origin = 3; - break; - case G_57: - origin = 4; - break; - case G_58: - origin = 5; - break; - case G_59: - origin = 6; - break; - case G_59_1: - origin = 7; - break; - case G_59_2: - origin = 8; - break; - case G_59_3: - origin = 9; - break; - default: - ERS(NCE_BUG_CODE_NOT_IN_RANGE_G54_TO_G593); - } - - if (origin == settings->origin_index) - { /* already using this origin */ + int origin; + double *parameters; + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change coordinate systems with cutter radius compensation on"))); + parameters = settings->parameters; + switch (g_code) { + case G_54: + origin = 1; + break; + case G_55: + origin = 2; + break; + case G_56: + origin = 3; + break; + case G_57: + origin = 4; + break; + case G_58: + origin = 5; + break; + case G_59: + origin = 6; + break; + case G_59_1: + origin = 7; + break; + case G_59_2: + origin = 8; + break; + case G_59_3: + origin = 9; + break; + default: + ERS(NCE_BUG_CODE_NOT_IN_RANGE_G54_TO_G593); + } + + if (origin == settings->origin_index) { /* already using this origin */ #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: continuing to use same coordinate system"); + enqueue_COMMENT("interpreter: continuing to use same coordinate system"); #endif - return INTERP_OK; - } - - // move the current point into the new system - find_current_in_system(settings, origin, - &settings->current_x, &settings->current_y, &settings->current_z, - &settings->AA_current, &settings->BB_current, &settings->CC_current, - &settings->u_current, &settings->v_current, &settings->w_current); - - // remember that this is new system - settings->origin_index = origin; - parameters[5220] = (double)origin; - - // load the origin of the newly-selected system - settings->origin_offset_x = USER_TO_PROGRAM_LEN(parameters[5201 + (origin * 20)]); - settings->origin_offset_y = USER_TO_PROGRAM_LEN(parameters[5202 + (origin * 20)]); - settings->origin_offset_z = USER_TO_PROGRAM_LEN(parameters[5203 + (origin * 20)]); - settings->AA_origin_offset = USER_TO_PROGRAM_ANG(parameters[5204 + (origin * 20)]); - settings->BB_origin_offset = USER_TO_PROGRAM_ANG(parameters[5205 + (origin * 20)]); - settings->CC_origin_offset = USER_TO_PROGRAM_ANG(parameters[5206 + (origin * 20)]); - settings->u_origin_offset = USER_TO_PROGRAM_LEN(parameters[5207 + (origin * 20)]); - settings->v_origin_offset = USER_TO_PROGRAM_LEN(parameters[5208 + (origin * 20)]); - settings->w_origin_offset = USER_TO_PROGRAM_LEN(parameters[5209 + (origin * 20)]); - settings->rotation_xy = parameters[5210 + (origin * 20)]; - - SET_G5X_OFFSET(origin, - settings->origin_offset_x, - settings->origin_offset_y, - settings->origin_offset_z, - settings->AA_origin_offset, - settings->BB_origin_offset, - settings->CC_origin_offset, - settings->u_origin_offset, - settings->v_origin_offset, - settings->w_origin_offset); - - SET_G92_OFFSET(settings->axis_offset_x, - settings->axis_offset_y, - settings->axis_offset_z, - settings->AA_axis_offset, - settings->BB_axis_offset, - settings->CC_axis_offset, - settings->u_axis_offset, - settings->v_axis_offset, - settings->w_axis_offset); - - SET_XY_ROTATION(settings->rotation_xy); return INTERP_OK; + } + + // move the current point into the new system + find_current_in_system(settings, origin, + &settings->current_x, &settings->current_y, &settings->current_z, + &settings->AA_current, &settings->BB_current, &settings->CC_current, + &settings->u_current, &settings->v_current, &settings->w_current); + + // remember that this is new system + settings->origin_index = origin; + parameters[5220] = (double) origin; + + // load the origin of the newly-selected system + settings->origin_offset_x = USER_TO_PROGRAM_LEN(parameters[5201 + (origin * 20)]); + settings->origin_offset_y = USER_TO_PROGRAM_LEN(parameters[5202 + (origin * 20)]); + settings->origin_offset_z = USER_TO_PROGRAM_LEN(parameters[5203 + (origin * 20)]); + settings->AA_origin_offset = USER_TO_PROGRAM_ANG(parameters[5204 + (origin * 20)]); + settings->BB_origin_offset = USER_TO_PROGRAM_ANG(parameters[5205 + (origin * 20)]); + settings->CC_origin_offset = USER_TO_PROGRAM_ANG(parameters[5206 + (origin * 20)]); + settings->u_origin_offset = USER_TO_PROGRAM_LEN(parameters[5207 + (origin * 20)]); + settings->v_origin_offset = USER_TO_PROGRAM_LEN(parameters[5208 + (origin * 20)]); + settings->w_origin_offset = USER_TO_PROGRAM_LEN(parameters[5209 + (origin * 20)]); + settings->rotation_xy = parameters[5210 + (origin * 20)]; + + SET_G5X_OFFSET(origin, + settings->origin_offset_x, + settings->origin_offset_y, + settings->origin_offset_z, + settings->AA_origin_offset, + settings->BB_origin_offset, + settings->CC_origin_offset, + settings->u_origin_offset, + settings->v_origin_offset, + settings->w_origin_offset); + + SET_G92_OFFSET(settings->axis_offset_x, + settings->axis_offset_y, + settings->axis_offset_z, + settings->AA_axis_offset, + settings->BB_axis_offset, + settings->CC_axis_offset, + settings->u_axis_offset, + settings->v_axis_offset, + settings->w_axis_offset); + + SET_XY_ROTATION(settings->rotation_xy); + return INTERP_OK; } /****************************************************************************/ @@ -2641,35 +2423,25 @@ Called by: convert_g */ -int Interp::convert_cutter_compensation(int g_code, //!< must be G_40, G_41, or G_42 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_cutter_compensation(int g_code, //!< must be G_40, G_41, or G_42 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_40) - { - CHP(convert_cutter_compensation_off(settings)); - } - else if (g_code == G_41) - { - CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); - } - else if (g_code == G_42) - { - CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); - } - else if (g_code == G_41_1) - { - CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); - } - else if (g_code == G_42_1) - { - CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); - } - else - ERS("BUG: Code not G40, G41, G41.1, G42, G42.1"); - - return INTERP_OK; + if (g_code == G_40) { + CHP(convert_cutter_compensation_off(settings)); + } else if (g_code == G_41) { + CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); + } else if (g_code == G_42) { + CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); + } else if (g_code == G_41_1) { + CHP(convert_cutter_compensation_on(CUTTER_COMP::LEFT, block, settings)); + } else if (g_code == G_42_1) { + CHP(convert_cutter_compensation_on(CUTTER_COMP::RIGHT, block, settings)); + } else + ERS("BUG: Code not G40, G41, G41.1, G42, G42.1"); + + return INTERP_OK; } /****************************************************************************/ @@ -2689,26 +2461,25 @@ Called by: convert_cutter_compensation */ -int Interp::convert_cutter_compensation_off(setup_pointer settings) //!< pointer to machine settings +int Interp::convert_cutter_compensation_off(setup_pointer settings) //!< pointer to machine settings { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: cutter radius compensation off"); + enqueue_COMMENT("interpreter: cutter radius compensation off"); #endif - if (settings->cutter_comp_side != CUTTER_COMP::OFF && settings->cutter_comp_radius > 0.0 && - !settings->cutter_comp_firstmove) - { - double cx, cy, cz; - comp_get_current(settings, &cx, &cy, &cz); - CHP(move_endpoint_and_flush(settings, cx, cy)); - dequeue_canons(settings); - settings->current_x = settings->program_x; - settings->current_y = settings->program_y; - settings->current_z = settings->program_z; - settings->arc_not_allowed = true; - } - settings->cutter_comp_side = CUTTER_COMP::OFF; - settings->cutter_comp_firstmove = true; - return INTERP_OK; + if(settings->cutter_comp_side != CUTTER_COMP::OFF && settings->cutter_comp_radius > 0.0 && + !settings->cutter_comp_firstmove) { + double cx, cy, cz; + comp_get_current(settings, &cx, &cy, &cz); + CHP(move_endpoint_and_flush(settings, cx, cy)); + dequeue_canons(settings); + settings->current_x = settings->program_x; + settings->current_y = settings->program_y; + settings->current_z = settings->program_z; + settings->arc_not_allowed = true; + } + settings->cutter_comp_side = CUTTER_COMP::OFF; + settings->cutter_comp_firstmove = true; + return INTERP_OK; } /****************************************************************************/ @@ -2763,70 +2534,60 @@ convex corners. */ -int Interp::convert_cutter_compensation_on(CUTTER_COMP side, //!< side of path cutter is on (LEFT or RIGHT) - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_cutter_compensation_on(CUTTER_COMP side, //!< side of path cutter is on (LEFT or RIGHT) + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - double radius; - int idx, orientation; - - CHKS((settings->plane != CANON_PLANE::XY && settings->plane != CANON_PLANE::XZ), - NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - NCE_CANNOT_TURN_CUTTER_RADIUS_COMP_ON_WHEN_ON); - if (block->g_modes[GM_CUTTER_COMP] == G_41_1 || block->g_modes[GM_CUTTER_COMP] == G_42_1) - { - CHKS((!block->d_flag), - _("G%d.1 with no D word"), block->g_modes[GM_CUTTER_COMP] / 10); - radius = block->d_number_float / 2; - if (block->l_number != -1) - { - CHKS((settings->plane != CANON_PLANE::XZ), _("G%d.1 with L word, but plane is not G18"), block->g_modes[GM_CUTTER_COMP] / 10); - orientation = block->l_number; - } - else - { - orientation = 0; - } - } - else - { - if (!block->d_flag) - { - idx = 0; - } - else - { - int tool; - CHKS(!is_near_int(&tool, block->d_number_float), - _("G%d requires D word to be a whole number"), - block->g_modes[GM_CUTTER_COMP] / 10); - CHKS((tool < 0), NCE_NEGATIVE_D_WORD_TOOL_RADIUS_INDEX_USED); - CHP((find_tool_index(settings, tool, &idx))); - } - radius = USER_TO_PROGRAM_LEN(settings->tool_table[idx].diameter) / 2.0; - orientation = settings->tool_table[idx].orientation; - CHKS((settings->plane != CANON_PLANE::XZ && orientation != 0 && orientation != 9), _("G%d with lathe tool, but plane is not G18"), block->g_modes[GM_CUTTER_COMP] / 10); - } - if (radius < 0.0) - { /* switch side & make radius positive if radius negative */ - radius = -radius; - if (side == CUTTER_COMP::RIGHT) - side = CUTTER_COMP::LEFT; - else - side = CUTTER_COMP::RIGHT; - } -#ifdef DEBUG_EMC + double radius; + int idx, orientation; + + CHKS((settings->plane != CANON_PLANE::XY && settings->plane != CANON_PLANE::XZ), + NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + NCE_CANNOT_TURN_CUTTER_RADIUS_COMP_ON_WHEN_ON); + if(block->g_modes[GM_CUTTER_COMP] == G_41_1 || block->g_modes[GM_CUTTER_COMP] == G_42_1) { + CHKS((!block->d_flag), + _("G%d.1 with no D word"), block->g_modes[GM_CUTTER_COMP]/10 ); + radius = block->d_number_float / 2; + if(block->l_number != -1) { + CHKS((settings->plane != CANON_PLANE::XZ), _("G%d.1 with L word, but plane is not G18"), block->g_modes[GM_CUTTER_COMP]/10); + orientation = block->l_number; + } else { + orientation = 0; + } + } else { + if(!block->d_flag) { + idx = 0; + } else { + int tool; + CHKS(!is_near_int(&tool, block->d_number_float), + _("G%d requires D word to be a whole number"), + block->g_modes[GM_CUTTER_COMP]/10); + CHKS((tool < 0), NCE_NEGATIVE_D_WORD_TOOL_RADIUS_INDEX_USED); + CHP((find_tool_index(settings, tool, &idx))); + } + radius = USER_TO_PROGRAM_LEN(settings->tool_table[idx].diameter) / 2.0; + orientation = settings->tool_table[idx].orientation; + CHKS((settings->plane != CANON_PLANE::XZ && orientation != 0 && orientation != 9), _("G%d with lathe tool, but plane is not G18"), block->g_modes[GM_CUTTER_COMP]/10); + } + if (radius < 0.0) { /* switch side & make radius positive if radius negative */ + radius = -radius; if (side == CUTTER_COMP::RIGHT) - enqueue_COMMENT("interpreter: cutter radius compensation on right"); + side = CUTTER_COMP::LEFT; else - enqueue_COMMENT("interpreter: cutter radius compensation on left"); + side = CUTTER_COMP::RIGHT; + } +#ifdef DEBUG_EMC + if (side == CUTTER_COMP::RIGHT) + enqueue_COMMENT("interpreter: cutter radius compensation on right"); + else + enqueue_COMMENT("interpreter: cutter radius compensation on left"); #endif - settings->cutter_comp_radius = radius; - settings->cutter_comp_orientation = orientation; - settings->cutter_comp_side = side; - return INTERP_OK; + settings->cutter_comp_radius = radius; + settings->cutter_comp_orientation = orientation; + settings->cutter_comp_side = side; + return INTERP_OK; } /****************************************************************************/ @@ -2854,32 +2615,26 @@ Called by: convert_g. // OK to call this in a concave corner with a deferred move, since it // doesn't issue any CANONs -int Interp::convert_distance_mode(int g_code, //!< g_code being executed (must be G_90 or G_91) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_distance_mode(int g_code, //!< g_code being executed (must be G_90 or G_91) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_90) - { - if (settings->distance_mode != DISTANCE_MODE::ABSOLUTE) - { + if (g_code == G_90) { + if (settings->distance_mode != DISTANCE_MODE::ABSOLUTE) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: distance mode changed to absolute"); + enqueue_COMMENT("interpreter: distance mode changed to absolute"); #endif - settings->distance_mode = DISTANCE_MODE::ABSOLUTE; - } + settings->distance_mode = DISTANCE_MODE::ABSOLUTE; } - else if (g_code == G_91) - { - if (settings->distance_mode != DISTANCE_MODE::INCREMENTAL) - { + } else if (g_code == G_91) { + if (settings->distance_mode != DISTANCE_MODE::INCREMENTAL) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: distance mode changed to incremental"); + enqueue_COMMENT("interpreter: distance mode changed to incremental"); #endif - settings->distance_mode = DISTANCE_MODE::INCREMENTAL; - } + settings->distance_mode = DISTANCE_MODE::INCREMENTAL; } - else - ERS(NCE_BUG_CODE_NOT_G90_OR_G91); - return INTERP_OK; + } else + ERS(NCE_BUG_CODE_NOT_G90_OR_G91); + return INTERP_OK; } /****************************************************************************/ @@ -2907,32 +2662,26 @@ Called by: convert_g. // OK to call this in a concave corner with a deferred move, since it // doesn't issue any CANONs except comments (and who cares where the comments are) -int Interp::convert_ijk_distance_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_ijk_distance_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_90_1) - { - if (settings->ijk_distance_mode != DISTANCE_MODE::ABSOLUTE) - { + if (g_code == G_90_1) { + if (settings->ijk_distance_mode != DISTANCE_MODE::ABSOLUTE) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: IJK distance mode changed to absolute"); + enqueue_COMMENT("interpreter: IJK distance mode changed to absolute"); #endif - settings->ijk_distance_mode = DISTANCE_MODE::ABSOLUTE; - } + settings->ijk_distance_mode = DISTANCE_MODE::ABSOLUTE; } - else if (g_code == G_91_1) - { - if (settings->ijk_distance_mode != DISTANCE_MODE::INCREMENTAL) - { + } else if (g_code == G_91_1) { + if (settings->ijk_distance_mode != DISTANCE_MODE::INCREMENTAL) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: IJK distance mode changed to incremental"); + enqueue_COMMENT("interpreter: IJK distance mode changed to incremental"); #endif - settings->ijk_distance_mode = DISTANCE_MODE::INCREMENTAL; - } + settings->ijk_distance_mode = DISTANCE_MODE::INCREMENTAL; } - else - ERS(NCE_BUG_CODE_NOT_G90_OR_G91); - return INTERP_OK; + } else + ERS(NCE_BUG_CODE_NOT_G90_OR_G91); + return INTERP_OK; } /****************************************************************************/ @@ -2957,55 +2706,48 @@ Called by: convert_g. */ -int Interp::convert_lathe_diameter_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) - block_pointer block, //!< pointer to current block - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_lathe_diameter_mode(int g_code, //!< g_code being executed (must be G_90_1 or G_91_1) + block_pointer block, //!< pointer to current block + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_7) - { - if (!settings->lathe_diameter_mode) - { - if (block->x_flag) - { - block->x_number /= 2; // Apply scaling now - } - if (block->motion_to_be == G_76) - { - block->i_number /= 2; - block->j_number /= 2; - block->k_number /= 2; - } + if (g_code == G_7) { + if (!settings->lathe_diameter_mode) { + if(block->x_flag) + { + block->x_number /= 2; //Apply scaling now + } + if(block->motion_to_be == G_76) { + block->i_number /= 2; + block->j_number /= 2; + block->k_number /= 2; + } #ifdef DEBUG_EMC - COMMENT("interpreter: Lathe diameter mode changed to diameter"); + COMMENT("interpreter: Lathe diameter mode changed to diameter"); #endif - settings->lathe_diameter_mode = true; - } - } - else if (g_code == G_8) - { - if (settings->lathe_diameter_mode) - { - if (block->x_flag) - { - block->x_number *= 2; // Remove any existing scaling - } - if (block->motion_to_be == G_76) - { - block->i_number *= 2; - block->j_number *= 2; - block->k_number *= 2; - } + settings->lathe_diameter_mode = true; + } + } else if (g_code == G_8) { + if (settings->lathe_diameter_mode) { + if(block->x_flag) + { + block->x_number *= 2; //Remove any existing scaling + } + if(block->motion_to_be == G_76) { + block->i_number *= 2; + block->j_number *= 2; + block->k_number *= 2; + } #ifdef DEBUG_EMC - COMMENT("interpreter: Lathe diameter mode changed to radius"); + COMMENT("interpreter: Lathe diameter mode changed to radius"); #endif - settings->lathe_diameter_mode = false; - } + settings->lathe_diameter_mode = false; } - else - ERS("BUG: Code not G7 or G8"); - return INTERP_OK; + } else + ERS("BUG: Code not G7 or G8"); + return INTERP_OK; } + /****************************************************************************/ /*! convert_dwell @@ -3019,10 +2761,10 @@ Called by: convert_g. */ -int Interp::convert_dwell(setup_pointer /*settings*/, double time) //!< time in seconds to dwell */ +int Interp::convert_dwell(setup_pointer /*settings*/, double time) //!< time in seconds to dwell */ { - enqueue_DWELL(time); - return INTERP_OK; + enqueue_DWELL(time); + return INTERP_OK; } /****************************************************************************/ @@ -3047,40 +2789,34 @@ Called by: execute_block. */ -int Interp::convert_feed_mode(int g_code, //!< g_code being executed (must be G_93, G_94 or G_95) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_feed_mode(int g_code, //!< g_code being executed (must be G_93, G_94 or G_95) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_93) - { + if (g_code == G_93) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: feed mode set to inverse time"); + enqueue_COMMENT("interpreter: feed mode set to inverse time"); #endif - settings->feed_mode = FEED_MODE::INVERSE_TIME; - enqueue_SET_FEED_MODE(0, 0); - } - else if (g_code == G_94) - { + settings->feed_mode = FEED_MODE::INVERSE_TIME; + enqueue_SET_FEED_MODE(0, 0); + } else if (g_code == G_94) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: feed mode set to units per minute"); + enqueue_COMMENT("interpreter: feed mode set to units per minute"); #endif - settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; - enqueue_SET_FEED_MODE(0, 0); - settings->feed_rate = 0.0; - enqueue_SET_FEED_RATE(0); - } - else if (g_code == G_95) - { + settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; + enqueue_SET_FEED_MODE(0, 0); + settings->feed_rate = 0.0; + enqueue_SET_FEED_RATE(0); + } else if(g_code == G_95) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: feed mode set to units per revolution"); + enqueue_COMMENT("interpreter: feed mode set to units per revolution"); #endif - settings->feed_mode = FEED_MODE::UNITS_PER_REVOLUTION; - enqueue_SET_FEED_MODE(settings->active_spindle, 1); - settings->feed_rate = 0.0; - enqueue_SET_FEED_RATE(0); - } - else - ERS("BUG: Code not G93, G94, or G95"); - return INTERP_OK; + settings->feed_mode = FEED_MODE::UNITS_PER_REVOLUTION; + enqueue_SET_FEED_MODE(settings->active_spindle , 1); + settings->feed_rate = 0.0; + enqueue_SET_FEED_RATE(0); + } else + ERS("BUG: Code not G93, G94, or G95"); + return INTERP_OK; } /****************************************************************************/ @@ -3100,12 +2836,12 @@ This is called only if the feed mode is UNITS_PER_MINUTE or UNITS_PER_REVOLUTION */ -int Interp::convert_feed_rate(block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_feed_rate(block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - settings->feed_rate = block->f_number; - enqueue_SET_FEED_RATE(block->f_number); - return INTERP_OK; + settings->feed_rate = block->f_number; + enqueue_SET_FEED_RATE(block->f_number); + return INTERP_OK; } /****************************************************************************/ @@ -3166,82 +2902,68 @@ until most of the other modes are set. */ -int Interp::convert_g(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_g(block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { int status; - if ((block->g_modes[GM_MODAL_0] == G_4) && ONCE(STEP_DWELL)) - { - status = convert_dwell(settings, block->p_number); - CHP(status); + if ((block->g_modes[GM_MODAL_0] == G_4) && ONCE(STEP_DWELL)) { + status = convert_dwell(settings, block->p_number); + CHP(status); } - if ((block->g_modes[GM_SET_PLANE] != -1) && ONCE(STEP_SET_PLANE)) - { - status = convert_set_plane(block->g_modes[GM_SET_PLANE], settings); - CHP(status); - } - if ((block->g_modes[GM_LENGTH_UNITS] != -1) && ONCE(STEP_LENGTH_UNITS)) - { - status = convert_length_units(block->g_modes[GM_LENGTH_UNITS], settings); - CHP(status); + if ((block->g_modes[GM_SET_PLANE] != -1) && ONCE(STEP_SET_PLANE)) { + status = convert_set_plane(block->g_modes[GM_SET_PLANE], settings); + CHP(status); } - if ((block->g_modes[GM_LATHE_DIAMETER_MODE] != -1) && ONCE(STEP_LATHE_DIAMETER_MODE)) - { - status = convert_lathe_diameter_mode(block->g_modes[GM_LATHE_DIAMETER_MODE], block, settings); - CHP(status); + if ((block->g_modes[GM_LENGTH_UNITS] != -1) && ONCE(STEP_LENGTH_UNITS)) { + status = convert_length_units(block->g_modes[GM_LENGTH_UNITS], settings); + CHP(status); } - if ((block->g_modes[GM_CUTTER_COMP] != -1) && ONCE(STEP_CUTTER_COMP)) - { - status = convert_cutter_compensation(block->g_modes[GM_CUTTER_COMP], block, settings); - CHP(status); + if ((block->g_modes[GM_LATHE_DIAMETER_MODE] != -1) && ONCE(STEP_LATHE_DIAMETER_MODE)) { + status = convert_lathe_diameter_mode(block->g_modes[GM_LATHE_DIAMETER_MODE], block, settings); + CHP(status); } - if ((block->g_modes[GM_TOOL_LENGTH_OFFSET] != -1) && ONCE(STEP_TOOL_LENGTH_OFFSET)) - { - status = convert_tool_length_offset(block->g_modes[GM_TOOL_LENGTH_OFFSET], block, settings); - CHP(status); + if ((block->g_modes[GM_CUTTER_COMP] != -1) && ONCE(STEP_CUTTER_COMP)) { + status = convert_cutter_compensation(block->g_modes[GM_CUTTER_COMP], block, settings); + CHP(status); } - if ((block->g_modes[GM_COORD_SYSTEM] != -1) && ONCE(STEP_COORD_SYSTEM)) - { - status = convert_coordinate_system(block->g_modes[GM_COORD_SYSTEM], settings); - CHP(status); + if ((block->g_modes[GM_TOOL_LENGTH_OFFSET] != -1) && ONCE(STEP_TOOL_LENGTH_OFFSET)){ + status = convert_tool_length_offset(block->g_modes[GM_TOOL_LENGTH_OFFSET], block, settings); + CHP(status); } - if ((block->g_modes[GM_CONTROL_MODE] != -1) && ONCE(STEP_CONTROL_MODE)) - { - status = convert_control_mode(block->g_modes[GM_CONTROL_MODE], - block->p_number, block->q_number, settings); - CHP(status); + if ((block->g_modes[GM_COORD_SYSTEM] != -1) && ONCE(STEP_COORD_SYSTEM)){ + status = convert_coordinate_system(block->g_modes[GM_COORD_SYSTEM], settings); + CHP(status); } - if ((block->g_modes[GM_DISTANCE_MODE] != -1) && ONCE(STEP_DISTANCE_MODE)) - { - status = convert_distance_mode(block->g_modes[GM_DISTANCE_MODE], settings); - CHP(status); + if ((block->g_modes[GM_CONTROL_MODE] != -1) && ONCE(STEP_CONTROL_MODE)) { + status = convert_control_mode(block->g_modes[GM_CONTROL_MODE], + block->p_number, block->q_number, settings); + CHP(status); } - if ((block->g_modes[GM_IJK_DISTANCE_MODE] != -1) && ONCE(STEP_IJK_DISTANCE_MODE)) - { - status = convert_ijk_distance_mode(block->g_modes[GM_IJK_DISTANCE_MODE], settings); - CHP(status); + if ((block->g_modes[GM_DISTANCE_MODE] != -1) && ONCE(STEP_DISTANCE_MODE)) { + status = convert_distance_mode(block->g_modes[GM_DISTANCE_MODE], settings); + CHP(status); } - if ((block->g_modes[GM_RETRACT_MODE] != -1) && ONCE(STEP_RETRACT_MODE)) - { - status = convert_retract_mode(block->g_modes[GM_RETRACT_MODE], settings); - CHP(status); + if ((block->g_modes[GM_IJK_DISTANCE_MODE] != -1) && ONCE(STEP_IJK_DISTANCE_MODE)){ + status = convert_ijk_distance_mode(block->g_modes[GM_IJK_DISTANCE_MODE], settings); + CHP(status); } - if ((block->g_modes[GM_MODAL_0] != -1) && ONCE(STEP_MODAL_0)) - { - status = convert_modal_0(block->g_modes[GM_MODAL_0], block, settings); - CHP(status); + if ((block->g_modes[GM_RETRACT_MODE] != -1) && ONCE(STEP_RETRACT_MODE)){ + status = convert_retract_mode(block->g_modes[GM_RETRACT_MODE], settings); + CHP(status); } - if ((block->g_modes[GM_G92_IS_APPLIED] != -1) && ONCE(STEP_G92_IS_APPLIED)) - { - status = convert_g92_is_applied(block->g_modes[GM_G92_IS_APPLIED], block, settings); + if ((block->g_modes[GM_MODAL_0] != -1) && ONCE(STEP_MODAL_0)) { + status = convert_modal_0(block->g_modes[GM_MODAL_0], block, settings); + CHP(status); } - if ((block->motion_to_be != -1) && ONCE(STEP_MOTION)) - { - status = convert_motion(block->motion_to_be, block, settings); - CHP(status); + if ((block->g_modes[GM_G92_IS_APPLIED] != -1) && ONCE(STEP_G92_IS_APPLIED)) { + status = convert_g92_is_applied(block->g_modes[GM_G92_IS_APPLIED], block, settings); } - return INTERP_OK; + if ((block->motion_to_be != -1) && ONCE(STEP_MOTION)){ + status = convert_motion(block->motion_to_be, block, settings); + CHP(status); + } + return INTERP_OK; } /*! convert_savehome @@ -3260,12 +2982,10 @@ Saves the absolute coordinates of the current point in parameters 5161-5169 */ -int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) -{ +int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) { double *p = s->parameters; - if (s->cutter_comp_side != CUTTER_COMP::OFF) - { + if(s->cutter_comp_side != CUTTER_COMP::OFF) { ERS(_("Cannot set reference point with cutter compensation in effect")); } @@ -3282,29 +3002,22 @@ int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) double v = PROGRAM_TO_USER_LEN(s->v_current + s->tool_offset.v + s->v_origin_offset + s->v_axis_offset); double w = PROGRAM_TO_USER_LEN(s->w_current + s->tool_offset.w + s->w_origin_offset + s->w_axis_offset); - if (s->a_axis_wrapped) - { + if(s->a_axis_wrapped) { a = fmod(a, 360.0); - if (a < 0) - a += 360.0; + if(a<0) a += 360.0; } - if (s->b_axis_wrapped) - { + if(s->b_axis_wrapped) { b = fmod(b, 360.0); - if (b < 0) - b += 360.0; + if(b<0) b += 360.0; } - if (s->c_axis_wrapped) - { + if(s->c_axis_wrapped) { c = fmod(c, 360.0); - if (c < 0) - c += 360.0; + if(c<0) c += 360.0; } - if (code == G_28_1) - { + if(code == G_28_1) { p[5161] = x; p[5162] = y; p[5163] = z; @@ -3314,9 +3027,7 @@ int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) p[5167] = u; p[5168] = v; p[5169] = w; - } - else if (code == G_30_1) - { + } else if(code == G_30_1) { p[5181] = x; p[5182] = y; p[5183] = z; @@ -3326,14 +3037,13 @@ int Interp::convert_savehome(int code, block_pointer /*block*/, setup_pointer s) p[5187] = u; p[5188] = v; p[5189] = w; - } - else - { + } else { ERS("BUG: Code not G28.1 or G38.1"); } return INTERP_OK; } + /****************************************************************************/ /*! convert_home @@ -3365,167 +3075,152 @@ Side effects: zero. Do not confuse this with homing the axis (searching for a switch or index pulse). -Called by: convert_modal_0. - -*/ - -int Interp::convert_home(int move, //!< G-code, must be G_28 or G_30 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings -{ - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end; - double v_end; - double w_end; - double end_x_home; - double end_y_home; - double end_z_home; - double AA_end_home; - double BB_end_home; - double CC_end_home; - double u_end_home; - double v_end_home; - double w_end_home; - double *parameters; - - parameters = settings->parameters; - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end)); - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - NCE_CANNOT_USE_G28_OR_G30_WITH_CUTTER_RADIUS_COMP); - - // waypoint is in currently active coordinate system - - // move indexers first, one at a time - // JOINTS_AXES settings->*_indexer_jnum == -1 means notused - if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum)) - issue_straight_index(3, settings->a_indexer_jnum, AA_end, block->line_number, settings); - if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum)) - issue_straight_index(4, settings->b_indexer_jnum, BB_end, block->line_number, settings); - if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum)) - issue_straight_index(5, settings->c_indexer_jnum, CC_end, block->line_number, settings); - - // Create a state tag and dump it to canon - write_canon_state_tag(block, settings); - - - STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - - if (move == G_28) - { - find_relative(USER_TO_PROGRAM_LEN(parameters[5161]), - USER_TO_PROGRAM_LEN(parameters[5162]), - USER_TO_PROGRAM_LEN(parameters[5163]), - USER_TO_PROGRAM_ANG(parameters[5164]), - USER_TO_PROGRAM_ANG(parameters[5165]), - USER_TO_PROGRAM_ANG(parameters[5166]), - USER_TO_PROGRAM_LEN(parameters[5167]), - USER_TO_PROGRAM_LEN(parameters[5168]), - USER_TO_PROGRAM_LEN(parameters[5169]), - &end_x_home, &end_y_home, &end_z_home, - &AA_end_home, &BB_end_home, &CC_end_home, - &u_end_home, &v_end_home, &w_end_home, settings); - } - else if (move == G_30) - { - find_relative(USER_TO_PROGRAM_LEN(parameters[5181]), - USER_TO_PROGRAM_LEN(parameters[5182]), - USER_TO_PROGRAM_LEN(parameters[5183]), - USER_TO_PROGRAM_ANG(parameters[5184]), - USER_TO_PROGRAM_ANG(parameters[5185]), - USER_TO_PROGRAM_ANG(parameters[5186]), - USER_TO_PROGRAM_LEN(parameters[5187]), - USER_TO_PROGRAM_LEN(parameters[5188]), - USER_TO_PROGRAM_LEN(parameters[5189]), - &end_x_home, &end_y_home, &end_z_home, - &AA_end_home, &BB_end_home, &CC_end_home, - &u_end_home, &v_end_home, &w_end_home, settings); - } - else - ERS(NCE_BUG_CODE_NOT_G28_OR_G30); - - // if any axes are specified, home only those axes after the waypoint - // (both fanuc & haas, contrary to emc historical operation) - - if (block->x_flag) - end_x = end_x_home; - if (block->y_flag) - end_y = end_y_home; - if (block->z_flag) - end_z = end_z_home; - if (block->a_flag) - AA_end = AA_end_home; - if (block->b_flag) - BB_end = BB_end_home; - if (block->c_flag) - CC_end = CC_end_home; - if (block->u_flag) - u_end = u_end_home; - if (block->v_flag) - v_end = v_end_home; - if (block->w_flag) - w_end = w_end_home; - - // but, if no axes are specified, home all of them - // (haas does this, emc historical did, throws an error in fanuc) - - if (!block->x_flag && !block->y_flag && !block->z_flag && - !block->a_flag && !block->b_flag && !block->c_flag && - !block->u_flag && !block->v_flag && !block->w_flag) - { - end_x = end_x_home; - end_y = end_y_home; - end_z = end_z_home; - AA_end = AA_end_home; - BB_end = BB_end_home; - CC_end = CC_end_home; - u_end = u_end_home; - v_end = v_end_home; - w_end = w_end_home; - } - - // move indexers first, one at a time - // JOINTS_AXES settings->*_indexer_jnum == -1 means notused - if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum)) - issue_straight_index(3, settings->a_indexer_jnum, AA_end, block->line_number, settings); - if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum)) - issue_straight_index(4, settings->b_indexer_jnum, BB_end, block->line_number, settings); - if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum)) - issue_straight_index(5, settings->c_indexer_jnum, CC_end, block->line_number, settings); - - STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - - return INTERP_OK; +Called by: convert_modal_0. + +*/ + +int Interp::convert_home(int move, //!< G-code, must be G_28 or G_30 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings +{ + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end; + double v_end; + double w_end; + double end_x_home; + double end_y_home; + double end_z_home; + double AA_end_home; + double BB_end_home; + double CC_end_home; + double u_end_home; + double v_end_home; + double w_end_home; + double *parameters; + + parameters = settings->parameters; + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end)); + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + NCE_CANNOT_USE_G28_OR_G30_WITH_CUTTER_RADIUS_COMP); + + // waypoint is in currently active coordinate system + + // move indexers first, one at a time + // JOINTS_AXES settings->*_indexer_jnum == -1 means notused + if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum) ) + issue_straight_index(3,settings->a_indexer_jnum, AA_end, block->line_number, settings); + if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum) ) + issue_straight_index(4,settings->b_indexer_jnum, BB_end, block->line_number, settings); + if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum) ) + issue_straight_index(5,settings->c_indexer_jnum, CC_end, block->line_number, settings); + + // Create a state tag and dump it to canon + write_canon_state_tag(block, settings); + + STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + + if (move == G_28) { + find_relative(USER_TO_PROGRAM_LEN(parameters[5161]), + USER_TO_PROGRAM_LEN(parameters[5162]), + USER_TO_PROGRAM_LEN(parameters[5163]), + USER_TO_PROGRAM_ANG(parameters[5164]), + USER_TO_PROGRAM_ANG(parameters[5165]), + USER_TO_PROGRAM_ANG(parameters[5166]), + USER_TO_PROGRAM_LEN(parameters[5167]), + USER_TO_PROGRAM_LEN(parameters[5168]), + USER_TO_PROGRAM_LEN(parameters[5169]), + &end_x_home, &end_y_home, &end_z_home, + &AA_end_home, &BB_end_home, &CC_end_home, + &u_end_home, &v_end_home, &w_end_home, settings); + } else if (move == G_30) { + find_relative(USER_TO_PROGRAM_LEN(parameters[5181]), + USER_TO_PROGRAM_LEN(parameters[5182]), + USER_TO_PROGRAM_LEN(parameters[5183]), + USER_TO_PROGRAM_ANG(parameters[5184]), + USER_TO_PROGRAM_ANG(parameters[5185]), + USER_TO_PROGRAM_ANG(parameters[5186]), + USER_TO_PROGRAM_LEN(parameters[5187]), + USER_TO_PROGRAM_LEN(parameters[5188]), + USER_TO_PROGRAM_LEN(parameters[5189]), + &end_x_home, &end_y_home, &end_z_home, + &AA_end_home, &BB_end_home, &CC_end_home, + &u_end_home, &v_end_home, &w_end_home, settings); + } else + ERS(NCE_BUG_CODE_NOT_G28_OR_G30); + + // if any axes are specified, home only those axes after the waypoint + // (both fanuc & haas, contrary to emc historical operation) + + if (block->x_flag) end_x = end_x_home; + if (block->y_flag) end_y = end_y_home; + if (block->z_flag) end_z = end_z_home; + if (block->a_flag) AA_end = AA_end_home; + if (block->b_flag) BB_end = BB_end_home; + if (block->c_flag) CC_end = CC_end_home; + if (block->u_flag) u_end = u_end_home; + if (block->v_flag) v_end = v_end_home; + if (block->w_flag) w_end = w_end_home; + + // but, if no axes are specified, home all of them + // (haas does this, emc historical did, throws an error in fanuc) + + if (!block->x_flag && !block->y_flag && !block->z_flag && + !block->a_flag && !block->b_flag && !block->c_flag && + !block->u_flag && !block->v_flag && !block->w_flag) { + end_x = end_x_home; + end_y = end_y_home; + end_z = end_z_home; + AA_end = AA_end_home; + BB_end = BB_end_home; + CC_end = CC_end_home; + u_end = u_end_home; + v_end = v_end_home; + w_end = w_end_home; + } + + // move indexers first, one at a time + // JOINTS_AXES settings->*_indexer_jnum == -1 means notused + if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum) ) + issue_straight_index(3,settings->a_indexer_jnum, AA_end, block->line_number, settings); + if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum) ) + issue_straight_index(4,settings->b_indexer_jnum, BB_end, block->line_number, settings); + if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum) ) + issue_straight_index(5,settings->c_indexer_jnum, CC_end, block->line_number, settings); + + STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + + return INTERP_OK; } /****************************************************************************/ @@ -3564,106 +3259,101 @@ for cycles) need testing. */ -int Interp::convert_length_units(int g_code, //!< g_code being executed (must be G_20 or G_21) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_length_units(int g_code, //!< g_code being executed (must be G_20 or G_21) + setup_pointer settings) //!< pointer to machine settings { - if (g_code == G_20) - { - USE_LENGTH_UNITS(CANON_UNITS_INCHES); - if (settings->length_units != CANON_UNITS_INCHES) - { - settings->length_units = CANON_UNITS_INCHES; - settings->current_x = (settings->current_x * INCH_PER_MM); - settings->current_y = (settings->current_y * INCH_PER_MM); - settings->current_z = (settings->current_z * INCH_PER_MM); - settings->program_x = (settings->program_x * INCH_PER_MM); - settings->program_y = (settings->program_y * INCH_PER_MM); - settings->program_z = (settings->program_z * INCH_PER_MM); - qc_scale(INCH_PER_MM); - settings->cutter_comp_radius *= INCH_PER_MM; - settings->axis_offset_x = (settings->axis_offset_x * INCH_PER_MM); - settings->axis_offset_y = (settings->axis_offset_y * INCH_PER_MM); - settings->axis_offset_z = (settings->axis_offset_z * INCH_PER_MM); - settings->origin_offset_x = (settings->origin_offset_x * INCH_PER_MM); - settings->origin_offset_y = (settings->origin_offset_y * INCH_PER_MM); - settings->origin_offset_z = (settings->origin_offset_z * INCH_PER_MM); - - settings->u_current = (settings->u_current * INCH_PER_MM); - settings->v_current = (settings->v_current * INCH_PER_MM); - settings->w_current = (settings->w_current * INCH_PER_MM); - settings->u_axis_offset = (settings->u_axis_offset * INCH_PER_MM); - settings->v_axis_offset = (settings->v_axis_offset * INCH_PER_MM); - settings->w_axis_offset = (settings->w_axis_offset * INCH_PER_MM); - settings->u_origin_offset = (settings->u_origin_offset * INCH_PER_MM); - settings->v_origin_offset = (settings->v_origin_offset * INCH_PER_MM); - settings->w_origin_offset = (settings->w_origin_offset * INCH_PER_MM); - - settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); - settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); - settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); - settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); - settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); - settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); - settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); - settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); - settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); - settings->feed_rate = GET_EXTERNAL_FEED_RATE(); - settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); - settings->naivecam_tolerance = - GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); - } - } - else if (g_code == G_21) - { - USE_LENGTH_UNITS(CANON_UNITS_MM); - if (settings->length_units != CANON_UNITS_MM) - { - settings->length_units = CANON_UNITS_MM; - settings->current_x = (settings->current_x * MM_PER_INCH); - settings->current_y = (settings->current_y * MM_PER_INCH); - settings->current_z = (settings->current_z * MM_PER_INCH); - settings->program_x = (settings->program_x * MM_PER_INCH); - settings->program_y = (settings->program_y * MM_PER_INCH); - settings->program_z = (settings->program_z * MM_PER_INCH); - qc_scale(MM_PER_INCH); - settings->cutter_comp_radius *= MM_PER_INCH; - settings->axis_offset_x = (settings->axis_offset_x * MM_PER_INCH); - settings->axis_offset_y = (settings->axis_offset_y * MM_PER_INCH); - settings->axis_offset_z = (settings->axis_offset_z * MM_PER_INCH); - settings->origin_offset_x = (settings->origin_offset_x * MM_PER_INCH); - settings->origin_offset_y = (settings->origin_offset_y * MM_PER_INCH); - settings->origin_offset_z = (settings->origin_offset_z * MM_PER_INCH); - - settings->u_current = (settings->u_current * MM_PER_INCH); - settings->v_current = (settings->v_current * MM_PER_INCH); - settings->w_current = (settings->w_current * MM_PER_INCH); - settings->u_axis_offset = (settings->u_axis_offset * MM_PER_INCH); - settings->v_axis_offset = (settings->v_axis_offset * MM_PER_INCH); - settings->w_axis_offset = (settings->w_axis_offset * MM_PER_INCH); - settings->u_origin_offset = (settings->u_origin_offset * MM_PER_INCH); - settings->v_origin_offset = (settings->v_origin_offset * MM_PER_INCH); - settings->w_origin_offset = (settings->w_origin_offset * MM_PER_INCH); - - settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); - settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); - settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); - settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); - settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); - settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); - settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); - settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); - settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); - settings->feed_rate = GET_EXTERNAL_FEED_RATE(); - settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); - settings->naivecam_tolerance = - GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); - } - } - else - ERS(NCE_BUG_CODE_NOT_G20_OR_G21); - return INTERP_OK; + if (g_code == G_20) { + USE_LENGTH_UNITS(CANON_UNITS_INCHES); + if (settings->length_units != CANON_UNITS_INCHES) { + settings->length_units = CANON_UNITS_INCHES; + settings->current_x = (settings->current_x * INCH_PER_MM); + settings->current_y = (settings->current_y * INCH_PER_MM); + settings->current_z = (settings->current_z * INCH_PER_MM); + settings->program_x = (settings->program_x * INCH_PER_MM); + settings->program_y = (settings->program_y * INCH_PER_MM); + settings->program_z = (settings->program_z * INCH_PER_MM); + qc_scale(INCH_PER_MM); + settings->cutter_comp_radius *= INCH_PER_MM; + settings->axis_offset_x = (settings->axis_offset_x * INCH_PER_MM); + settings->axis_offset_y = (settings->axis_offset_y * INCH_PER_MM); + settings->axis_offset_z = (settings->axis_offset_z * INCH_PER_MM); + settings->origin_offset_x = (settings->origin_offset_x * INCH_PER_MM); + settings->origin_offset_y = (settings->origin_offset_y * INCH_PER_MM); + settings->origin_offset_z = (settings->origin_offset_z * INCH_PER_MM); + + settings->u_current = (settings->u_current * INCH_PER_MM); + settings->v_current = (settings->v_current * INCH_PER_MM); + settings->w_current = (settings->w_current * INCH_PER_MM); + settings->u_axis_offset = (settings->u_axis_offset * INCH_PER_MM); + settings->v_axis_offset = (settings->v_axis_offset * INCH_PER_MM); + settings->w_axis_offset = (settings->w_axis_offset * INCH_PER_MM); + settings->u_origin_offset = (settings->u_origin_offset * INCH_PER_MM); + settings->v_origin_offset = (settings->v_origin_offset * INCH_PER_MM); + settings->w_origin_offset = (settings->w_origin_offset * INCH_PER_MM); + + settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); + settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); + settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); + settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); + settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); + settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); + settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); + settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); + settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); + settings->feed_rate = GET_EXTERNAL_FEED_RATE(); + settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); + settings->naivecam_tolerance = + GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); + } + } else if (g_code == G_21) { + USE_LENGTH_UNITS(CANON_UNITS_MM); + if (settings->length_units != CANON_UNITS_MM) { + settings->length_units = CANON_UNITS_MM; + settings->current_x = (settings->current_x * MM_PER_INCH); + settings->current_y = (settings->current_y * MM_PER_INCH); + settings->current_z = (settings->current_z * MM_PER_INCH); + settings->program_x = (settings->program_x * MM_PER_INCH); + settings->program_y = (settings->program_y * MM_PER_INCH); + settings->program_z = (settings->program_z * MM_PER_INCH); + qc_scale(MM_PER_INCH); + settings->cutter_comp_radius *= MM_PER_INCH; + settings->axis_offset_x = (settings->axis_offset_x * MM_PER_INCH); + settings->axis_offset_y = (settings->axis_offset_y * MM_PER_INCH); + settings->axis_offset_z = (settings->axis_offset_z * MM_PER_INCH); + settings->origin_offset_x = (settings->origin_offset_x * MM_PER_INCH); + settings->origin_offset_y = (settings->origin_offset_y * MM_PER_INCH); + settings->origin_offset_z = (settings->origin_offset_z * MM_PER_INCH); + + settings->u_current = (settings->u_current * MM_PER_INCH); + settings->v_current = (settings->v_current * MM_PER_INCH); + settings->w_current = (settings->w_current * MM_PER_INCH); + settings->u_axis_offset = (settings->u_axis_offset * MM_PER_INCH); + settings->v_axis_offset = (settings->v_axis_offset * MM_PER_INCH); + settings->w_axis_offset = (settings->w_axis_offset * MM_PER_INCH); + settings->u_origin_offset = (settings->u_origin_offset * MM_PER_INCH); + settings->v_origin_offset = (settings->v_origin_offset * MM_PER_INCH); + settings->w_origin_offset = (settings->w_origin_offset * MM_PER_INCH); + + settings->tool_offset.tran.x = GET_EXTERNAL_TOOL_LENGTH_XOFFSET(); + settings->tool_offset.tran.y = GET_EXTERNAL_TOOL_LENGTH_YOFFSET(); + settings->tool_offset.tran.z = GET_EXTERNAL_TOOL_LENGTH_ZOFFSET(); + settings->tool_offset.a = GET_EXTERNAL_TOOL_LENGTH_AOFFSET(); + settings->tool_offset.b = GET_EXTERNAL_TOOL_LENGTH_BOFFSET(); + settings->tool_offset.c = GET_EXTERNAL_TOOL_LENGTH_COFFSET(); + settings->tool_offset.u = GET_EXTERNAL_TOOL_LENGTH_UOFFSET(); + settings->tool_offset.v = GET_EXTERNAL_TOOL_LENGTH_VOFFSET(); + settings->tool_offset.w = GET_EXTERNAL_TOOL_LENGTH_WOFFSET(); + settings->feed_rate = GET_EXTERNAL_FEED_RATE(); + settings->tolerance = GET_EXTERNAL_MOTION_CONTROL_TOLERANCE(); + settings->naivecam_tolerance = + GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE(); + } + } else + ERS(NCE_BUG_CODE_NOT_G20_OR_G21); + return INTERP_OK; } + /* * given two int arrays and two double arrays representing interpreter * settings as stored in _setup.active_g_codes and @@ -3671,9 +3361,9 @@ int Interp::convert_length_units(int g_code, //!< g_code being execu * their state. */ int Interp::gen_settings( - int *int_current, int *int_saved, // G-codes - double * /*float_current*/, double *float_saved, // S, F, other - std::string &cmd) // command buffer + int *int_current, int *int_saved, // G-codes + double * /*float_current*/, double *float_saved, // S, F, other + std::string &cmd) // command buffer { FORCE_LC_NUMERIC_C; int i, val; @@ -3681,131 +3371,116 @@ int Interp::gen_settings( char buf[LINELEN]; // F, S - for (i = 0; i < ACTIVE_SETTINGS; i++) - { - // "if" masked to address https://github.com/LinuxCNC/linuxcnc/issues/1987 - // The setting value is correct, but seems to be mislaid downstream - // if (float_saved[i] != float_current[i]) { - switch (i) - { - case GM_FIELD_FLOAT_LINE_NUMBER: - // sequence_number - no point in restoring - break; - case GM_FIELD_FLOAT_FEED: - snprintf(buf, sizeof(buf), " F%.1f", float_saved[i]); - cmd += buf; - break; - case GM_FIELD_FLOAT_SPEED: - snprintf(buf, sizeof(buf), " S%.0f", float_saved[i]); - cmd += buf; - break; - case GM_FIELD_FLOAT_PATH_TOLERANCE: - case GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE: - // G64 special case; see below - g64_changed = 1; - break; - } - //} + for (i = 0; i < ACTIVE_SETTINGS; i++) { + // "if" masked to address https://github.com/LinuxCNC/linuxcnc/issues/1987 + // The setting value is correct, but seems to be mislaid downstream + //if (float_saved[i] != float_current[i]) { + switch (i) { + case GM_FIELD_FLOAT_LINE_NUMBER: + // sequence_number - no point in restoring + break; + case GM_FIELD_FLOAT_FEED: + snprintf(buf,sizeof(buf)," F%.1f", float_saved[i]); + cmd += buf; + break; + case GM_FIELD_FLOAT_SPEED: + snprintf(buf,sizeof(buf)," S%.0f", float_saved[i]); + cmd += buf; + break; + case GM_FIELD_FLOAT_PATH_TOLERANCE: + case GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE: + // G64 special case; see below + g64_changed = 1; + break; + } + //} } // G-codes - for (i = 0; i < ACTIVE_G_CODES; i++) - { - val = int_saved[i]; - if (val != int_current[i]) - { - - switch (i) - { - case 0: - // // sequence_number - no point in restoring - break; - case 2: // FIXME - I dont understand this: - // gez[2] = ((block == NULL) ? -1 : block->g_modes[0]); - break; - case 12: // mystery slot - break; - case 5: // - length units - // this is treated before all others - see convert_m() - break; - case 1: // - motion_mode - // restoring the motion mode is a real bad idea to start with - break; - case 3: // - plane - case 4: // - cutter compensation - case 6: // - distance mode - case 7: // - feed mode - case 8: // - coordinate system - case 9: // - tool offset (G43/G49) - case 10: // - retract mode - case 13: // - spindle mode - case 14: // - ijk distance mode - case 15: // - lathe diameter mode + for (i = 0; i < ACTIVE_G_CODES; i++) { + val = int_saved[i]; + if (val != int_current[i]) { + + switch (i) { + case 0: + // // sequence_number - no point in restoring + break; + case 2: // FIXME - I dont understand this: + // gez[2] = ((block == NULL) ? -1 : block->g_modes[0]); + break; + case 12: // mystery slot + break; + case 5: // - length units + // this is treated before all others - see convert_m() + break; + case 1: // - motion_mode + // restoring the motion mode is a real bad idea to start with + break; + case 3: // - plane + case 4: // - cutter compensation + case 6: // - distance mode + case 7: // - feed mode + case 8: // - coordinate system + case 9: // - tool offset (G43/G49) + case 10: // - retract mode + case 13: // - spindle mode + case 14: // - ijk distance mode + case 15: // - lathe diameter mode case 16: // - whether g92 is applied - if (val != -1) - { // FIXME not sure if this is correct! - // if this was set in sub, and unset in caller, it will - // not be reset - if (val % 10) - { - snprintf(buf, sizeof(buf), " G%d.%d", val / 10, val % 10); - } - else - { - snprintf(buf, sizeof(buf), " G%d", val / 10); - } - cmd += buf; - } - else - { - // so complain rather loudly - MSG("------ gen_settings BUG: index %d = -1!!\n", i); - } - break; - case 11: // - control mode - // Special case, since G64 requires P and Q flags - // FIXME what about when P or Q changes, even though still G64? - if (val == G_64) - // G64 special case; see below - g64_changed = 1; - else if (val == G_61) - { - snprintf(buf, sizeof(buf), " G61"); - cmd += buf; - } - else if (val == G_61_1) - { - snprintf(buf, sizeof(buf), " G61.1"); + if (val != -1) { // FIXME not sure if this is correct! + // if this was set in sub, and unset in caller, it will + // not be reset + if (val % 10) { + snprintf(buf,sizeof(buf)," G%d.%d", val / 10, val % 10); + } else { + snprintf(buf,sizeof(buf)," G%d", val / 10); + } cmd += buf; - } - else - MSG("------ gen_settings BUG: index %d = -1!!\n", i); - break; - } - } + } else { + // so complain rather loudly + MSG("------ gen_settings BUG: index %d = -1!!\n",i); + } + break; + case 11: // - control mode + // Special case, since G64 requires P and Q flags + // FIXME what about when P or Q changes, even though still G64? + if (val == G_64) + // G64 special case; see below + g64_changed = 1; + else if (val == G_61) { + snprintf(buf,sizeof(buf)," G61"); + cmd += buf; + } else if (val == G_61_1) { + snprintf(buf,sizeof(buf)," G61.1"); + cmd += buf; + } else + MSG("------ gen_settings BUG: index %d = -1!!\n",i); + break; + } + } } + // Special case for restoring G64: `cmd` may contain a `G64` if // current int settings is `G61` or if current float settings // contain different `G64 P* Q*` args; in these cases, only add a // single `G64` command - if ((int_saved[11] == G_64) && g64_changed) - { - if (float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE] < 0) - // No P, Q args - snprintf(buf, sizeof(buf), " G64"); - else if ( - float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE] < 0) - // Only P arg - snprintf(buf, sizeof(buf), " G64 P%f", - float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE]); - else // Both P, Q args - snprintf( - buf, sizeof(buf), " G64 P%f Q%f", - float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE], - float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE]); - cmd += buf; + if ((int_saved[11] == G_64) && g64_changed) { + if (float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE] < 0) + // No P, Q args + snprintf(buf,sizeof(buf)," G64"); + else if ( + float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE] < 0) + // Only P arg + snprintf(buf,sizeof(buf)," G64 P%f", + float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE]); + else // Both P, Q args + snprintf( + buf,sizeof(buf)," G64 P%f Q%f", + float_saved[GM_FIELD_FLOAT_PATH_TOLERANCE], + float_saved[GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE]); + cmd += buf; } return INTERP_OK; } @@ -3820,48 +3495,43 @@ int Interp::gen_settings( int Interp::gen_m_codes(int *current, int *saved, std::string &cmd) { FORCE_LC_NUMERIC_C; - int i, val; + int i,val; char buf[LINELEN]; - for (i = 0; i < ACTIVE_M_CODES; i++) - { - val = saved[i]; - if (val != current[i]) - { - switch (i) - { - case 0: /* 0 seq number */ - break; - case 1: /* 1 stopping */ - // FIXME - is the next line needed at all? - // emz[1] = (block == NULL) ? -1 : block->m_modes[4]; - break; - case 3: /* 3 tool change */ - // FIXME - dont know how to handle this. - // emz[3] = - // (block == NULL) ? -1 : block->m_modes[6]; - break; - case 2: // spindle - case 4: // mist - case 5: // flood - case 6: // speed/feed override - case 7: // adaptive feed - case 8: // feed hold - if (val != -1) - { // unsure.. - snprintf(buf, sizeof(buf), "M%d\n", val); - cmd += buf; - } - else - { - MSG("------ gen_m_codes: index %d = -1!!\n", i); - } - break; - } - } + for (i = 0; i < ACTIVE_M_CODES; i++) { + val = saved[i]; + if (val != current[i]) { + switch (i) { + case 0: /* 0 seq number */ + break; + case 1: /* 1 stopping */ + // FIXME - is the next line needed at all? + // emz[1] = (block == NULL) ? -1 : block->m_modes[4]; + break; + case 3: /* 3 tool change */ + // FIXME - dont know how to handle this. + // emz[3] = + // (block == NULL) ? -1 : block->m_modes[6]; + break; + case 2: // spindle + case 4: // mist + case 5: // flood + case 6: // speed/feed override + case 7: // adaptive feed + case 8: // feed hold + if (val != -1) { // unsure.. + snprintf(buf,sizeof(buf),"M%d\n", val); + cmd += buf; + } else { + MSG("------ gen_m_codes: index %d = -1!!\n",i); + } + break; + } + } } return INTERP_OK; } + /** * Create a G-code string to restore a modal state on program abort. * Note: This is only designed to be called on program abort. It restores the @@ -3869,10 +3539,10 @@ int Interp::gen_m_codes(int *current, int *saved, std::string &cmd) * motion line, but does not restore M codes. */ int Interp::gen_restore_cmd(int *current_g, - int * /*current_m*/, - double *current_settings, - StateTag const &saved, - std::string &cmd) + int * /*current_m*/, + double *current_settings, + StateTag const &saved, + std::string &cmd) { int res; // A local copy of the saved settings, unpacked from a state tag @@ -3880,13 +3550,12 @@ int Interp::gen_restore_cmd(int *current_g, int saved_m[ACTIVE_M_CODES]; double saved_settings[ACTIVE_SETTINGS]; - // Extract saved state to local vectors - // FIXME Use saved_settings to store state tag floats, incl. in + //Extract saved state to local vectors + // FIXME Use saved_settings to store state tag floats, incl. in int res_unpack = active_modes(saved_g, saved_m, saved_settings, saved); - if (res_unpack != INTERP_OK) - { - logStateTags("gen_restore_cmd() error %d: failed to unpack state tag", - res_unpack); + if (res_unpack != INTERP_OK) { + logStateTags("gen_restore_cmd() error %d: failed to unpack state tag", + res_unpack); return INTERP_ERROR; } @@ -3897,20 +3566,18 @@ int Interp::gen_restore_cmd(int *current_g, // Force cancellation of tool compensation saved_g[4] = G_40; - // Mimic the order of restoration commands used elsewhere - if (current_g[5] != saved_g[5]) - { + //Mimic the order of restoration commands used elsewhere + if (current_g[5] != saved_g[5]) { char buf[LINELEN]; - snprintf(buf, sizeof(buf), "G%d", saved_g[5] / 10); + snprintf(buf,sizeof(buf), "G%d",saved_g[5]/10); CHKS(execute(buf) != INTERP_OK, _("gen_restore G20/G21 failed: '%s'"), - cmd.c_str()); + cmd.c_str()); } if ((res = gen_settings( - current_g, saved_g, current_settings, saved_settings, cmd))) - { - logStateTags("gen_restore_cmd(): error restoring settings (%d)", - res); + current_g, saved_g, current_settings, saved_settings, cmd))) { + logStateTags("gen_restore_cmd(): error restoring settings (%d)", + res); return INTERP_ERROR; } // M codes should not be restored during an abort with gen_m_codes() @@ -3918,24 +3585,25 @@ int Interp::gen_restore_cmd(int *current_g, return INTERP_OK; } + int Interp::save_settings(setup_pointer settings) { - // the state is sprinkled all over _setup - // collate state in _setup.active_* arrays - write_g_codes((block_pointer)NULL, settings); - write_m_codes((block_pointer)NULL, settings); - write_settings(settings); - write_state_tag((block_pointer)NULL, settings, settings->state_tag); - - // save in the current call frame - active_g_codes((int *)settings->sub_context[settings->call_level].saved_g_codes); - active_m_codes((int *)settings->sub_context[settings->call_level].saved_m_codes); - active_settings((double *)settings->sub_context[settings->call_level].saved_settings); - - // TBD: any other state deemed important to save/restore should be added here - // context_struct might need to be extended too. - - return INTERP_OK; + // the state is sprinkled all over _setup + // collate state in _setup.active_* arrays + write_g_codes((block_pointer) NULL, settings); + write_m_codes((block_pointer) NULL, settings); + write_settings(settings); + write_state_tag((block_pointer) NULL, settings, settings->state_tag); + + // save in the current call frame + active_g_codes((int *)settings->sub_context[settings->call_level].saved_g_codes); + active_m_codes((int *)settings->sub_context[settings->call_level].saved_m_codes); + active_settings((double *)settings->sub_context[settings->call_level].saved_settings); + + // TBD: any other state deemed important to save/restore should be added here + // context_struct might need to be extended too. + + return INTERP_OK; } /* restore global settings/gcodes/mcodes to current call level from a valid context @@ -3948,17 +3616,17 @@ int Interp::save_settings(setup_pointer settings) * restore_settings(settings->call_level + 1) */ int Interp::restore_settings(setup_pointer settings, - int from_level) //!< call level of context to restore from + int from_level) //!< call level of context to restore from { CHKS((from_level < settings->call_level), - (_("BUG: cannot restore from a lower call level (%d) to a higher call level (%d)")), from_level, settings->call_level); - CHKS((from_level < 0), (_("BUG: restore from level %d !?")), from_level); - CHKS((settings->call_level < 0), (_("BUG: restore to level %d !?")), settings->call_level); + (_("BUG: cannot restore from a lower call level (%d) to a higher call level (%d)")),from_level,settings->call_level); + CHKS((from_level < 0), (_("BUG: restore from level %d !?")),from_level); + CHKS((settings->call_level < 0), (_("BUG: restore to level %d !?")),settings->call_level); // linearize state - write_g_codes((block_pointer)NULL, settings); - write_m_codes((block_pointer)NULL, settings); + write_g_codes((block_pointer) NULL, settings); + write_m_codes((block_pointer) NULL, settings); write_settings(settings); std::string cmd; @@ -3970,44 +3638,40 @@ int Interp::restore_settings(setup_pointer settings, // G20/G21 switching is special - it is executed beforehand // so restoring feed lateron is interpreted in the correct context - if (settings->active_g_codes[5] != settings->sub_context[from_level].saved_g_codes[5]) - { + if (settings->active_g_codes[5] != settings->sub_context[from_level].saved_g_codes[5]) { char buf[LINELEN]; - snprintf(buf, sizeof(buf), "G%d", settings->sub_context[from_level].saved_g_codes[5] / 10); - CHKS(execute(buf) != INTERP_OK, _("M7x: restore_settings G20/G21 failed: '%s'"), cmd.c_str()); + snprintf(buf,sizeof(buf), "G%d",settings->sub_context[from_level].saved_g_codes[5]/10); + CHKS(execute(buf) != INTERP_OK, _("M7x: restore_settings G20/G21 failed: '%s'"), cmd.c_str()); } gen_settings( - (int *)settings->active_g_codes, - (int *)settings->sub_context[from_level].saved_g_codes, - (double *)settings->active_settings, - (double *)settings->sub_context[from_level].saved_settings, - cmd); + (int *)settings->active_g_codes, + (int *)settings->sub_context[from_level].saved_g_codes, + (double *)settings->active_settings, + (double *)settings->sub_context[from_level].saved_settings, + cmd); gen_m_codes( - (int *)settings->active_m_codes, - (int *)settings->sub_context[from_level].saved_m_codes, - cmd); - - if (!cmd.empty()) - { - // the sequence can be multiline, separated by nl - // so split and execute each line - std::string cpy = cmd; - char *stateptr = NULL; - char *s = strtok_r(cpy.data(), "\n", &stateptr); - while (s != NULL) - { - int status = execute(s); - if (status != INTERP_OK) - { - char currentError[LINELEN + 1]; - rtapi_strxcpy(currentError, getSavedError()); - CHKS(status, _("M7x: restore_settings failed executing: '%s': %s"), s, currentError); - } - s = strtok_r(NULL, "\n", &stateptr); - } - write_g_codes((block_pointer)NULL, settings); - write_m_codes((block_pointer)NULL, settings); - write_settings(settings); + (int *) settings->active_m_codes, + (int *)settings->sub_context[from_level].saved_m_codes, + cmd); + + if (!cmd.empty()) { + // the sequence can be multiline, separated by nl + // so split and execute each line + std::string cpy = cmd; + char *stateptr = NULL; + char *s = strtok_r(cpy.data(), "\n", &stateptr); + while (s != NULL) { + int status = execute(s); + if (status != INTERP_OK) { + char currentError[LINELEN+1]; + rtapi_strxcpy(currentError,getSavedError()); + CHKS(status, _("M7x: restore_settings failed executing: '%s': %s"), s, currentError); + } + s = strtok_r(NULL, "\n", &stateptr); + } + write_g_codes((block_pointer) NULL, settings); + write_m_codes((block_pointer) NULL, settings); + write_settings(settings); } // TBD: any state deemed important to restore should be restored here @@ -4017,17 +3681,17 @@ int Interp::restore_settings(setup_pointer settings, return INTERP_OK; } + /** * Variation of restore_settings to pull state from a StateTag. */ int Interp::restore_from_tag(StateTag const &tag) { - if (!tag.is_valid() || !tag.flags[GM_FLAG_RESTORABLE]) - { - // Invalid line implies a bad tag, don't restore - logStateTags("restore_from_tag() error: Invalid tag"); - print_state_tag(tag); + if (!tag.is_valid() || !tag.flags[GM_FLAG_RESTORABLE]) { + //Invalid line implies a bad tag, don't restore + logStateTags("restore_from_tag() error: Invalid tag"); + print_state_tag(tag); return INTERP_ERROR; } @@ -4038,8 +3702,8 @@ int Interp::restore_from_tag(StateTag const &tag) _setup.probe_flag = false; // linearize state - write_g_codes((block_pointer)NULL, &_setup); - write_m_codes((block_pointer)NULL, &_setup); + write_g_codes((block_pointer) NULL, &_setup); + write_m_codes((block_pointer) NULL, &_setup); write_settings(&_setup); std::string cmd; @@ -4048,53 +3712,48 @@ int Interp::restore_from_tag(StateTag const &tag) // this assures appropriate canon commands are generated if needed - // just restoring interp variables is not enough - int res_unpack = gen_restore_cmd((int *)_setup.active_g_codes, - (int *)_setup.active_m_codes, - (double *)_setup.active_settings, - tag, - cmd); - if (res_unpack != INTERP_OK) - { - logStateTags("restore_from_tag() failed to generate restore command"); - print_state_tag(tag); + int res_unpack = gen_restore_cmd((int *) _setup.active_g_codes, + (int *) _setup.active_m_codes, + (double *) _setup.active_settings, + tag, + cmd); + if (res_unpack != INTERP_OK) { + logStateTags("restore_from_tag() failed to generate restore command"); + print_state_tag(tag); return res_unpack; } - if (!cmd.empty()) - { + if (!cmd.empty()) { // the sequence can be multiline, separated by nl // so split and execute each line std::string cpy = cmd; char *stateptr = NULL; char *s = strtok_r(cpy.data(), "\n", &stateptr); - while (s != NULL) - { + while (s != NULL) { int status = execute(s); - if (status != INTERP_OK) - { - char currentError[LINELEN + 1]; - strcpy(currentError, getSavedError()); + if (status != INTERP_OK) { + char currentError[LINELEN+1]; + strcpy(currentError,getSavedError()); CHKS(status, _("Failed to restore interp state on abort " - "'%s': %s"), - s, currentError); + "'%s': %s"), s, currentError); } s = strtok_r(NULL, "\n", &stateptr); } - write_g_codes((block_pointer)NULL, &_setup); - write_m_codes((block_pointer)NULL, &_setup); + write_g_codes((block_pointer) NULL, &_setup); + write_m_codes((block_pointer) NULL, &_setup); write_settings(&_setup); - logStateTags("Restored program pre-abort state from tag: |%s|", - cmd.c_str()); - } - else - { - logStateTags("Program pre-abort state unchanged; not restoring:"); - print_state_tag(tag); + logStateTags("Restored program pre-abort state from tag: |%s|", + cmd.c_str()); + } else { + logStateTags("Program pre-abort state unchanged; not restoring:"); + print_state_tag(tag); } return INTERP_OK; } + + /****************************************************************************/ /*! convert_m @@ -4125,553 +3784,433 @@ convert_stop). */ -int Interp::convert_m(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_m(block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - int type; - double timeout; // timeout for M66 - - /* The M62-65 commands are used for DIO */ - /* M62 sets a DIO synched with motion - M63 clears a DIO synched with motion - M64 sets a DIO immediately - M65 clears a DIO immediately - M66 waits for an input - M67 reads a digital input - M68 reads an analog input*/ - - if (is_user_defined_m_code(block, settings, 5) && - STEP_REMAPPED_IN_BLOCK(block, STEP_M_5) && - ONCE_M(5)) - { - return convert_remapped_code(block, settings, STEP_M_5, 'm', - block->m_modes[5]); - } - else if ((block->m_modes[5] == 62) && ONCE_M(5)) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set motion output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M62")); - SET_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); - } - else if ((block->m_modes[5] == 63) && ONCE_M(5)) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set motion digital output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M63")); - CLEAR_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); - } - else if ((block->m_modes[5] == 64) && ONCE_M(5)) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M64")); - SET_AUX_OUTPUT_BIT(round_to_int(block->p_number)); - } - else if ((block->m_modes[5] == 65) && ONCE_M(5)) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX - CHKS((!block->p_flag), _("No valid P word with M65")); - CLEAR_AUX_OUTPUT_BIT(round_to_int(block->p_number)); - } - else if ((block->m_modes[5] == 66) && ONCE_M(5)) - { - - // P-word = digital channel - // E-word = analog channel - // L-word = wait type (immediate, rise, fall, high, low) - // Q-word = timeout - // it is an error if: - - // P and E word are specified together - CHKS(((block->p_flag) && (block->e_flag)), - NCE_BOTH_DIGITAL_AND_ANALOG_INPUT_SELECTED); - - // L-word not 0, and timeout <= 0 - CHKS(((block->q_number <= 0) && (block->l_flag) && (round_to_int(block->l_number) > 0)), - NCE_ZERO_TIMEOUT_WITH_WAIT_NOT_IMMEDIATE); - - // E-word specified (analog input) and wait type not immediate - CHKS(((block->e_flag) && (block->l_flag) && (round_to_int(block->l_number) != 0)), - NCE_ANALOG_INPUT_WITH_WAIT_NOT_IMMEDIATE); - - // missing P or E (or invalid = negative) - CHKS(((block->p_flag) && (round_to_int(block->p_number) < 0)) || - ((block->e_flag) && (round_to_int(block->e_number) < 0)) || - ((!block->p_flag) && (!block->e_flag)), - NCE_INVALID_OR_MISSING_P_AND_E_WORDS_FOR_WAIT_INPUT); - - write_canon_state_tag(block, settings); - if (block->p_flag) - { // got a digital input - if (round_to_int(block->p_number) < 0) // safety check for negative words - ERS(_("invalid P-word with M66")); - - if (block->l_flag) - { - type = round_to_int(block->l_number); - } - else - { - type = WAIT_MODE_IMMEDIATE; - } - - if (block->q_number > 0) - { - timeout = block->q_number; - } - else - { - timeout = 0; - } + int type; + double timeout; // timeout for M66 + + /* The M62-65 commands are used for DIO */ + /* M62 sets a DIO synched with motion + M63 clears a DIO synched with motion + M64 sets a DIO immediately + M65 clears a DIO immediately + M66 waits for an input + M67 reads a digital input + M68 reads an analog input*/ + + if (is_user_defined_m_code(block, settings, 5) && + STEP_REMAPPED_IN_BLOCK(block, STEP_M_5) && + ONCE_M(5)) { + return convert_remapped_code(block, settings, STEP_M_5, 'm', + block->m_modes[5]); + } else if ((block->m_modes[5] == 62) && ONCE_M(5)) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set motion output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M62")); + SET_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); + } else if ((block->m_modes[5] == 63) && ONCE_M(5)) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set motion digital output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M63")); + CLEAR_MOTION_OUTPUT_BIT(round_to_int(block->p_number)); + } else if ((block->m_modes[5] == 64) && ONCE_M(5)){ + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M64")); + SET_AUX_OUTPUT_BIT(round_to_int(block->p_number)); + } else if ((block->m_modes[5] == 65) && ONCE_M(5)) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set auxiliary digital output with cutter radius compensation on"))); // XXX + CHKS((!block->p_flag), _("No valid P word with M65")); + CLEAR_AUX_OUTPUT_BIT(round_to_int(block->p_number)); + } else if ((block->m_modes[5] == 66) && ONCE_M(5)){ + + //P-word = digital channel + //E-word = analog channel + //L-word = wait type (immediate, rise, fall, high, low) + //Q-word = timeout + // it is an error if: + + // P and E word are specified together + CHKS(((block->p_flag) && (block->e_flag)), + NCE_BOTH_DIGITAL_AND_ANALOG_INPUT_SELECTED); + + // L-word not 0, and timeout <= 0 + CHKS(((block->q_number <= 0) && (block->l_flag) && (round_to_int(block->l_number) > 0)), + NCE_ZERO_TIMEOUT_WITH_WAIT_NOT_IMMEDIATE); + + // E-word specified (analog input) and wait type not immediate + CHKS(((block->e_flag) && (block->l_flag) && (round_to_int(block->l_number) != 0)), + NCE_ANALOG_INPUT_WITH_WAIT_NOT_IMMEDIATE); + + // missing P or E (or invalid = negative) + CHKS( ((block->p_flag) && (round_to_int(block->p_number) < 0)) || + ((block->e_flag) && (round_to_int(block->e_number) < 0)) || + ((!block->p_flag) && (!block->e_flag)) , + NCE_INVALID_OR_MISSING_P_AND_E_WORDS_FOR_WAIT_INPUT); - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot wait for digital input with cutter radius compensation on"))); + write_canon_state_tag(block, settings); + if (block->p_flag) { // got a digital input + if (round_to_int(block->p_number) < 0) // safety check for negative words + ERS(_("invalid P-word with M66")); - int ret = WAIT(round_to_int(block->p_number), DIGITAL_INPUT, type, timeout); - // WAIT returns 0 on success, -1 for out of bounds - CHKS((ret == -1), NCE_DIGITAL_INPUT_INVALID_ON_M66); - if (ret == 0) - { - settings->input_flag = true; - settings->input_index = round_to_int(block->p_number); - settings->input_digital = true; - } + if (block->l_flag) { + type = round_to_int(block->l_number); + } else { + type = WAIT_MODE_IMMEDIATE; } - else if (round_to_int(block->e_number) >= 0) - { // got an analog input - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot wait for analog input with cutter radius compensation on"))); - - int ret = WAIT(round_to_int(block->e_number), ANALOG_INPUT, 0, 0); // WAIT returns 0 on success, -1 for out of bounds - CHKS((ret == -1), NCE_ANALOG_INPUT_INVALID_ON_M66); - if (ret == 0) - { - settings->input_flag = true; - settings->input_index = round_to_int(block->e_number); - settings->input_digital = false; - } + + if (block->q_number > 0) { + timeout = block->q_number; + } else { + timeout = 0; } - } - else if ((block->m_modes[5] == 67) && ONCE_M(5)) - { - // E-word = analog channel - // Q-word = analog value CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set motion analog output with cutter radius compensation on"))); // XXX - CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M67"))); - SET_MOTION_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); - } - else if ((block->m_modes[5] == 68) && ONCE_M(5)) - { - // E-word = analog channel - // Q-word = analog value + (_("Cannot wait for digital input with cutter radius compensation on"))); + + int ret = WAIT(round_to_int(block->p_number), DIGITAL_INPUT, type, timeout); + //WAIT returns 0 on success, -1 for out of bounds + CHKS((ret == -1), NCE_DIGITAL_INPUT_INVALID_ON_M66); + if (ret == 0) { + settings->input_flag = true; + settings->input_index = round_to_int(block->p_number); + settings->input_digital = true; + } + } else if (round_to_int(block->e_number) >= 0) { // got an analog input CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot set auxiliary analog output with cutter radius compensation on"))); // XXX - CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M68"))); - SET_AUX_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); - } - - if ((block->m_modes[6] != -1) && ONCE_M(6)) - { - int toolno; - bool remapped_in_block = STEP_REMAPPED_IN_BLOCK(block, STEP_M_6); - - switch (block->m_modes[6]) - { - case 6: - if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) - { - return convert_remapped_code(block, settings, - STEP_M_6, - 'm', - block->m_modes[6]); - } - else - { - // the code was used in its very remap procedure - - // the 'recursion case'; record the fact - CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; - CHP(convert_tool_change(settings)); - } - break; - - case 61: - if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) - { - return convert_remapped_code(block, settings, STEP_M_6, 'm', - block->m_modes[6]); - } - else - { - CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; - toolno = round_to_int(block->q_number); - // now also accept M61 Q0 - unload tool - CHKS((toolno < 0), (_("Need non-negative Q-word to specify tool number with M61"))); - - int idx; - - // make sure selected tool exists - CHP((find_tool_index(settings, toolno, &idx))); - settings->current_pocket = idx; - settings->toolchange_flag = true; - CHANGE_TOOL_NUMBER(settings->current_pocket); - set_tool_parameters(); - } - break; - - default: - if (is_user_defined_m_code(block, settings, 6)) - { - return convert_remapped_code(block, settings, STEP_M_6, 'm', - block->m_modes[6]); - } - } - } - - if (FEATURE(RETAIN_G43)) - { - - if ((settings->active_g_codes[9] == G_43) && ONCE(STEP_RETAIN_G43)) - { - if (settings->selected_pocket > 0) - { - struct block_struct g43; - init_block(&g43); - block->g_modes[gees[G_43]] = G_43; - CHP(convert_tool_length_offset(G_43, &g43, settings)); - } - else - { - struct block_struct g49; - init_block(&g49); - block->g_modes[gees[G_49]] = G_49; - CHP(convert_tool_length_offset(G_49, &g49, settings)); - } - } - } - - if (is_user_defined_m_code(block, settings, 7) && ONCE_M(7)) - { - return convert_remapped_code(block, settings, STEP_M_7, 'm', - block->m_modes[7]); - } - else if ((block->m_modes[7] == 3) && ONCE_M(7)) - { - if (block->dollar_flag) - { - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), - (_("Spindle ($) number out of range in M3 Command\nnum_spindles =%i. $=%d\n")), settings->num_spindles, (int)block->dollar_number); - if (block->dollar_number == -1) - { // all spindles - for (int i = 0; i < settings->num_spindles; i++) - { - enqueue_START_SPINDLE_CLOCKWISE(i); - settings->spindle_turning[i] = CANON_CLOCKWISE; - } - } - else - { // a specific spindle - enqueue_START_SPINDLE_CLOCKWISE(block->dollar_number); - settings->spindle_turning[(int)block->dollar_number] = CANON_CLOCKWISE; - } - } - else - { // the default spindle - enqueue_START_SPINDLE_CLOCKWISE(0); - settings->spindle_turning[0] = CANON_CLOCKWISE; - } - } - else if ((block->m_modes[7] == 4) && ONCE_M(7)) - { - if (block->dollar_flag) - { - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), - (_("Spindle ($) number out of range in M4 Command\nnum_spindles =%i. $=%d\n")), settings->num_spindles, (int)block->dollar_number); - if (block->dollar_number == -1) - { // all spindles - for (int i = 0; i < settings->num_spindles; i++) - { - enqueue_START_SPINDLE_COUNTERCLOCKWISE(i); - settings->spindle_turning[i] = CANON_COUNTERCLOCKWISE; - } - } - else - { // a specific spindle - enqueue_START_SPINDLE_COUNTERCLOCKWISE(block->dollar_number); - settings->spindle_turning[(int)block->dollar_number] = CANON_COUNTERCLOCKWISE; - } - } - else - { // default spindle - enqueue_START_SPINDLE_COUNTERCLOCKWISE(0); - settings->spindle_turning[0] = CANON_COUNTERCLOCKWISE; - } + (_("Cannot wait for analog input with cutter radius compensation on"))); + + int ret = WAIT(round_to_int(block->e_number), ANALOG_INPUT, 0, 0); //WAIT returns 0 on success, -1 for out of bounds + CHKS((ret == -1), NCE_ANALOG_INPUT_INVALID_ON_M66); + if (ret == 0) { + settings->input_flag = true; + settings->input_index = round_to_int(block->e_number); + settings->input_digital = false; + } } - else if ((block->m_modes[7] == 5) && ONCE_M(7)) - { - if (block->dollar_flag) - { - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), - (_("Spindle ($) number out of range in M5 Command\nnum_spindles =%i. $=%d\n")), settings->num_spindles, (int)block->dollar_number); - if (block->dollar_number == -1) - { // all spindles - for (int i = 0; i < settings->num_spindles; i++) - { - settings->spindle_turning[i] = CANON_STOPPED; - enqueue_STOP_SPINDLE_TURNING(i); - } - } - else - { // a specific spindle - settings->spindle_turning[block->dollar_number] = CANON_STOPPED; - enqueue_STOP_SPINDLE_TURNING(block->dollar_number); + } else if ((block->m_modes[5] == 67) && ONCE_M(5)) { + + //E-word = analog channel + //Q-word = analog value + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set motion analog output with cutter radius compensation on"))); // XXX + CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M67"))); + SET_MOTION_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); + } else if ((block->m_modes[5] == 68) && ONCE_M(5)) { + //E-word = analog channel + //Q-word = analog value + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot set auxiliary analog output with cutter radius compensation on"))); // XXX + CHKS((!block->e_flag) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M68"))); + SET_AUX_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number); + } + + if ((block->m_modes[6] != -1) && ONCE_M(6)){ + int toolno; + bool remapped_in_block = STEP_REMAPPED_IN_BLOCK(block, STEP_M_6); + + switch (block->m_modes[6]) { + case 6: + if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) { + return convert_remapped_code(block,settings, + STEP_M_6, + 'm', + block->m_modes[6]); + } else { + // the code was used in its very remap procedure - + // the 'recursion case'; record the fact + CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; + CHP(convert_tool_change(settings)); + } + break; + + case 61: + if (is_user_defined_m_code(block, settings, 6) && remapped_in_block) { + return convert_remapped_code(block, settings, STEP_M_6,'m', + block->m_modes[6]); + } else { + CONTROLLING_BLOCK(*settings).builtin_used = !remapped_in_block; + toolno = round_to_int(block->q_number); + // now also accept M61 Q0 - unload tool + CHKS((toolno < 0), (_("Need non-negative Q-word to specify tool number with M61"))); + + int idx; + + // make sure selected tool exists + CHP((find_tool_index(settings, toolno, &idx))); + settings->current_pocket = idx; + settings->toolchange_flag = true; + CHANGE_TOOL_NUMBER(settings->current_pocket); + set_tool_parameters(); + } + break; + + default: + if (is_user_defined_m_code(block, settings, 6)) { + return convert_remapped_code(block, settings, STEP_M_6,'m', + block->m_modes[6]); + } + } + } + + if (FEATURE(RETAIN_G43)) { + + if ((settings->active_g_codes[9] == G_43) && ONCE(STEP_RETAIN_G43)) { + if(settings->selected_pocket > 0) { + struct block_struct g43; + init_block(&g43); + block->g_modes[gees[G_43]] = G_43; + CHP(convert_tool_length_offset(G_43, &g43, settings)); + } else { + struct block_struct g49; + init_block(&g49); + block->g_modes[gees[G_49]] = G_49; + CHP(convert_tool_length_offset(G_49, &g49, settings)); + } + } + } + + if (is_user_defined_m_code(block, settings, 7) && ONCE_M(7)) { + return convert_remapped_code(block, settings, STEP_M_7, 'm', + block->m_modes[7]); + } else if ((block->m_modes[7] == 3) && ONCE_M(7)) { + if (block->dollar_flag){ + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), + (_("Spindle ($) number out of range in M3 Command\nnum_spindles =%i. $=%d\n")),settings->num_spindles,(int)block->dollar_number); + if (block->dollar_number == -1){ // all spindles + for (int i = 0; i < settings->num_spindles; i++){ + enqueue_START_SPINDLE_CLOCKWISE(i); + settings->spindle_turning[i] = CANON_CLOCKWISE; } - } - else - { // the default spindle - for (int i = 0; i < settings->num_spindles; i++) - { + } else { // a specific spindle + enqueue_START_SPINDLE_CLOCKWISE(block->dollar_number); + settings->spindle_turning[(int)block->dollar_number] = CANON_CLOCKWISE; + } + } else { // the default spindle + enqueue_START_SPINDLE_CLOCKWISE(0); + settings->spindle_turning[0] = CANON_CLOCKWISE; + } + } else if ((block->m_modes[7] == 4) && ONCE_M(7)) { + if (block->dollar_flag){ + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), + (_("Spindle ($) number out of range in M4 Command\nnum_spindles =%i. $=%d\n")),settings->num_spindles,(int)block->dollar_number); + if (block->dollar_number == -1){ // all spindles + for (int i = 0; i < settings->num_spindles; i++){ + enqueue_START_SPINDLE_COUNTERCLOCKWISE(i); + settings->spindle_turning[i] = CANON_COUNTERCLOCKWISE; + } + } else { // a specific spindle + enqueue_START_SPINDLE_COUNTERCLOCKWISE(block->dollar_number); + settings->spindle_turning[(int)block->dollar_number] = CANON_COUNTERCLOCKWISE; + } + } else { // default spindle + enqueue_START_SPINDLE_COUNTERCLOCKWISE(0); + settings->spindle_turning[0] = CANON_COUNTERCLOCKWISE; + } + } else if ((block->m_modes[7] == 5) && ONCE_M(7)){ + if (block->dollar_flag){ + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < -1), + (_("Spindle ($) number out of range in M5 Command\nnum_spindles =%i. $=%d\n")),settings->num_spindles,(int)block->dollar_number); + if (block->dollar_number == -1){ // all spindles + for (int i = 0; i < settings->num_spindles; i++){ settings->spindle_turning[i] = CANON_STOPPED; enqueue_STOP_SPINDLE_TURNING(i); } - } - } - else if ((block->m_modes[7] == 19) && ONCE_M(7)) - { - for (int i = 0; i < settings->num_spindles; i++) - settings->spindle_turning[i] = CANON_STOPPED; - if (block->dollar_flag) - { - CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < 0), - (_("Spindle ($) number out of range in M19 Command"))); - } - if (block->r_flag || block->p_flag) - enqueue_ORIENT_SPINDLE(block->dollar_flag ? block->dollar_number : 0, - block->r_flag ? (block->r_number + settings->orient_offset) : settings->orient_offset, - block->p_flag ? block->p_number : 0); - if (block->q_flag) - { - CHKS((block->q_number <= 0.0), (_("Q word with M19 requires a value > 0"))); - enqueue_WAIT_ORIENT_SPINDLE_COMPLETE(block->dollar_flag ? block->dollar_number : 0, - block->q_number); - } - } - else if ((block->m_modes[7] == 70) || (block->m_modes[7] == 73)) - { - - // save state in current stack frame. We borrow the o-word call stack - // and extend it to hold modes & settings. - save_settings(&_setup); - - // flag this frame as containing a valid context - _setup.sub_context[_setup.call_level].context_status |= CONTEXT_VALID; - - // mark as auto-restore context - if (block->m_modes[7] == 73) - { - if (_setup.call_level == 0) - { - MSG("Warning - M73 at top level: nothing to return to; storing context anyway\n"); - } - else - { - _setup.sub_context[_setup.call_level].context_status |= CONTEXT_RESTORE_ON_RETURN; - } - } - } - else if ((block->m_modes[7] == 71) && ONCE_M(7)) - { - // M72 - invalidate context at current level - _setup.sub_context[_setup.call_level].context_status &= ~CONTEXT_VALID; - } - else if ((block->m_modes[7] == 72) && ONCE_M(7)) - { - - // restore state from current stack frame. - CHKS((!(_setup.sub_context[_setup.call_level].context_status & CONTEXT_VALID)), - (_("Cannot restore context from invalid stack frame - missing M70/M73?"))); - CHP(restore_settings(&_setup, _setup.call_level)); - } - - if (is_user_defined_m_code(block, settings, 8) && - STEP_REMAPPED_IN_BLOCK(block, STEP_M_8) && ONCE_M(8)) + } else { // a specific spindle + settings->spindle_turning[block->dollar_number] = CANON_STOPPED; + enqueue_STOP_SPINDLE_TURNING(block->dollar_number); + } + } else { // the default spindle + for (int i = 0; i < settings->num_spindles; i++){ + settings->spindle_turning[i] = CANON_STOPPED; + enqueue_STOP_SPINDLE_TURNING(i); + } + } + } else if ((block->m_modes[7] == 19) && ONCE_M(7)) { + for (int i = 0; i < settings->num_spindles; i++) + settings->spindle_turning[i] = CANON_STOPPED; + if (block->dollar_flag){ + CHKS((block->dollar_number >= settings->num_spindles || block->dollar_number < 0), + (_("Spindle ($) number out of range in M19 Command"))); + } + if (block->r_flag || block->p_flag) + enqueue_ORIENT_SPINDLE(block->dollar_flag ? block->dollar_number : 0, + block->r_flag ? (block->r_number + settings->orient_offset) : settings->orient_offset, + block->p_flag ? block->p_number : 0); + if (block->q_flag) { + CHKS((block->q_number <= 0.0),(_("Q word with M19 requires a value > 0"))); + enqueue_WAIT_ORIENT_SPINDLE_COMPLETE(block->dollar_flag ? block->dollar_number : 0, + block->q_number); + } + } else if ((block->m_modes[7] == 70) || (block->m_modes[7] == 73)) { + + // save state in current stack frame. We borrow the o-word call stack + // and extend it to hold modes & settings. + save_settings(&_setup); + + // flag this frame as containing a valid context + _setup.sub_context[_setup.call_level].context_status |= CONTEXT_VALID; + + // mark as auto-restore context + if (block->m_modes[7] == 73) { + if (_setup.call_level == 0) { + MSG("Warning - M73 at top level: nothing to return to; storing context anyway\n"); + } else { + _setup.sub_context[_setup.call_level].context_status |= CONTEXT_RESTORE_ON_RETURN; + } + } + } else if ((block->m_modes[7] == 71) && ONCE_M(7)) { + // M72 - invalidate context at current level + _setup.sub_context[_setup.call_level].context_status &= ~CONTEXT_VALID; + + } else if ((block->m_modes[7] == 72) && ONCE_M(7)) { + + // restore state from current stack frame. + CHKS((!(_setup.sub_context[_setup.call_level].context_status & CONTEXT_VALID)), + (_("Cannot restore context from invalid stack frame - missing M70/M73?"))); + CHP(restore_settings(&_setup, _setup.call_level)); + } + + if (is_user_defined_m_code(block, settings, 8) && + STEP_REMAPPED_IN_BLOCK(block, STEP_M_8) && ONCE_M(8)) { + return convert_remapped_code(block, settings, STEP_M_8, 'm', block->m_modes[8]); + } else if ((block->m_modes[8] == 7) && ONCE_M(8)){ + enqueue_MIST_ON(); + settings->mist = true; + } else if ((block->m_modes[8] == 8) && ONCE_M(8)) { + enqueue_FLOOD_ON(); + settings->flood = true; + } else if ((block->m_modes[8] == 9) && ONCE_M(8)) { + enqueue_MIST_OFF(); + settings->mist = false; + enqueue_FLOOD_OFF(); + settings->flood = false; + } + +/* No axis clamps in this version + if (block->m_modes[2] == 26) { - return convert_remapped_code(block, settings, STEP_M_8, 'm', block->m_modes[8]); +#ifdef DEBUG_EMC + COMMENT("interpreter: automatic A-axis clamping turned on"); +#endif + settings->a_axis_clamping = true; } - else if ((block->m_modes[8] == 7) && ONCE_M(8)) + else if (block->m_modes[2] == 27) { - enqueue_MIST_ON(); - settings->mist = true; +#ifdef DEBUG_EMC + COMMENT("interpreter: automatic A-axis clamping turned off"); +#endif + settings->a_axis_clamping = false; } - else if ((block->m_modes[8] == 8) && ONCE_M(8)) - { - enqueue_FLOOD_ON(); - settings->flood = true; +*/ +if (is_user_defined_m_code(block, settings, 9) && ONCE_M(9)) { + return convert_remapped_code(block, settings, STEP_M_9, 'm', + block->m_modes[9]); + } else if ((block->m_modes[9] == 48) && ONCE_M(9)){ + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_FEED_OVERRIDE(); + settings->feed_override = true; + for (int s = 0; s < settings->num_spindles; s++){ + settings->speed_override[s] = true; + ENABLE_SPEED_OVERRIDE(s); } - else if ((block->m_modes[8] == 9) && ONCE_M(8)) - { - enqueue_MIST_OFF(); - settings->mist = false; - enqueue_FLOOD_OFF(); - settings->flood = false; + } else if ((block->m_modes[9] == 49) && ONCE_M(9)){ + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + DISABLE_FEED_OVERRIDE(); + settings->feed_override = false; + for (int s = 0; s < settings->num_spindles; s++){ + settings->speed_override[s] = false; + DISABLE_SPEED_OVERRIDE(s); } + } - /* 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 = true; - } - else if (block->m_modes[2] == 27) - { - #ifdef DEBUG_EMC - COMMENT("interpreter: automatic A-axis clamping turned off"); - #endif - settings->a_axis_clamping = false; - } - */ - if (is_user_defined_m_code(block, settings, 9) && ONCE_M(9)) - { - return convert_remapped_code(block, settings, STEP_M_9, 'm', - block->m_modes[9]); - } - else if ((block->m_modes[9] == 48) && ONCE_M(9)) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_FEED_OVERRIDE(); - settings->feed_override = true; - for (int s = 0; s < settings->num_spindles; s++) - { - settings->speed_override[s] = true; - ENABLE_SPEED_OVERRIDE(s); - } - } - else if ((block->m_modes[9] == 49) && ONCE_M(9)) - { +if ((block->m_modes[9] == 50) && ONCE_M(9)){ + if (block->p_number != 0) { CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_FEED_OVERRIDE(); + settings->feed_override = true; + } else { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX DISABLE_FEED_OVERRIDE(); - settings->feed_override = false; - for (int s = 0; s < settings->num_spindles; s++) - { - settings->speed_override[s] = false; - DISABLE_SPEED_OVERRIDE(s); - } + settings->feed_override = false; } + } - if ((block->m_modes[9] == 50) && ONCE_M(9)) - { - if (block->p_number != 0) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_FEED_OVERRIDE(); - settings->feed_override = true; - } - else - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - DISABLE_FEED_OVERRIDE(); - settings->feed_override = false; - } +if ((block->m_modes[9] == 51) && ONCE_M(9)){ + int e = -1; + if (block->dollar_flag){ + CHKS((block->dollar_number <= 0 || block->dollar_number >= settings-> num_spindles), + (_("Invalid spindle ($) number in M51 command"))); + e = block->dollar_number; + } + if (block->p_number != 0) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + for (int s = 0; s < settings->num_spindles; s++){ + if (e == -1 or s == e){ + ENABLE_SPEED_OVERRIDE(s); + settings->speed_override[s] = true; + } + } + } else { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + for (int s = 0; s < settings->num_spindles; s++){ + if (e == -1 or s == e){ + DISABLE_SPEED_OVERRIDE(s); + settings->speed_override[s] = false; + } + } } + } - if ((block->m_modes[9] == 51) && ONCE_M(9)) - { - int e = -1; - if (block->dollar_flag) - { - CHKS((block->dollar_number <= 0 || block->dollar_number >= settings->num_spindles), - (_("Invalid spindle ($) number in M51 command"))); - e = block->dollar_number; - } - if (block->p_number != 0) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - for (int s = 0; s < settings->num_spindles; s++) - { - if (e == -1 or s == e) - { - ENABLE_SPEED_OVERRIDE(s); - settings->speed_override[s] = true; - } - } - } - else - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - for (int s = 0; s < settings->num_spindles; s++) - { - if (e == -1 or s == e) - { - DISABLE_SPEED_OVERRIDE(s); - settings->speed_override[s] = false; - } - } - } +if ((block->m_modes[9] == 52) && ONCE_M(9)){ + if (block->p_number != 0) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_ADAPTIVE_FEED(); + settings->adaptive_feed = true; + } else { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + DISABLE_ADAPTIVE_FEED(); + settings->adaptive_feed = false; } + } - if ((block->m_modes[9] == 52) && ONCE_M(9)) - { - if (block->p_number != 0) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_ADAPTIVE_FEED(); - settings->adaptive_feed = true; - } - else - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - DISABLE_ADAPTIVE_FEED(); - settings->adaptive_feed = false; - } +if ((block->m_modes[9] == 53) && ONCE_M(9)){ + if (block->p_number != 0) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot enable overrides with cutter radius compensation on"))); // XXX + ENABLE_FEED_HOLD(); + settings->feed_hold = true; + } else { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot disable overrides with cutter radius compensation on"))); // XXX + DISABLE_FEED_HOLD(); + settings->feed_hold = false; } + } - if ((block->m_modes[9] == 53) && ONCE_M(9)) - { - if (block->p_number != 0) - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot enable overrides with cutter radius compensation on"))); // XXX - ENABLE_FEED_HOLD(); - settings->feed_hold = true; - } - else - { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot disable overrides with cutter radius compensation on"))); // XXX - DISABLE_FEED_HOLD(); - settings->feed_hold = false; - } - } +if (is_user_defined_m_code(block, settings, 10) && ONCE_M(10)) { + return convert_remapped_code(block,settings,STEP_M_10,'m', + block->m_modes[10]); - if (is_user_defined_m_code(block, settings, 10) && ONCE_M(10)) - { - return convert_remapped_code(block, settings, STEP_M_10, 'm', - block->m_modes[10]); + } else if ((block->m_modes[10] != -1) && ONCE_M(10)){ + /* user-defined M codes */ + int index = block->m_modes[10]; + if (USER_DEFINED_FUNCTION[index - 100] == 0) { + CHKS(1, NCE_UNKNOWN_M_CODE_USED,index); } - else if ((block->m_modes[10] != -1) && ONCE_M(10)) - { - /* user-defined M codes */ - int index = block->m_modes[10]; - if (USER_DEFINED_FUNCTION[index - 100] == 0) - { - CHKS(1, NCE_UNKNOWN_M_CODE_USED, index); - } - enqueue_M_USER_COMMAND(index, block->p_number, block->q_number); - } - return INTERP_OK; + enqueue_M_USER_COMMAND(index,block->p_number,block->q_number); + } + return INTERP_OK; } /****************************************************************************/ @@ -4699,49 +4238,34 @@ G53) are executed elsewhere. */ -int Interp::convert_modal_0(int code, //!< G-code, must be from group 0 - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_modal_0(int code, //!< G-code, must be from group 0 + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - if (code == G_10) - { - if (block->l_number == 1 || block->l_number == 10 || block->l_number == 11) - CHP(convert_setup_tool(block, settings)); - else if (block->l_number == 0) - { - int tno = settings->tool_table[0].toolno; - if (tno > 0) - { - ERS("G10 L0 not allowed with loaded tool <%d>\n", tno); - } - settings->toolchange_flag = true; // refresh actual pos, sync,etc - RELOAD_TOOLDATA(); // msg to io - } - else - CHP(convert_setup(block, settings)); - } - else if ((code == G_28) || (code == G_30)) - { - CHP(convert_home(code, block, settings)); - } - else if ((code == G_28_1) || (code == G_30_1)) - { - CHP(convert_savehome(code, block, settings)); - } - else if ((code == G_52) || (code == G_92)) - { - CHP(convert_axis_offsets(code, block, settings)); - } - else if ((code == G_5_3) || (code == G_6_3)) - { // jjf - CHP(convert_nurbs(code, block, settings)); - } - else if ((code == G_4) || (code == G_53)) - ; // handled elsewhere - else - ERS(NCE_BUG_CODE_NOT_G4_G10_G28_G30_G52_G53_OR_G92_SERIES); - return INTERP_OK; + if (code == G_10) { + if(block->l_number == 1 || block->l_number == 10 || block->l_number == 11) + CHP(convert_setup_tool(block, settings)); + else if (block->l_number == 0) { + int tno = settings->tool_table[0].toolno; + if (tno > 0) { ERS("G10 L0 not allowed with loaded tool <%d>\n",tno); } + settings->toolchange_flag = true; // refresh actual pos, sync,etc + RELOAD_TOOLDATA(); // msg to io + } + else + CHP(convert_setup(block, settings)); + } else if ((code == G_28) || (code == G_30)) { + CHP(convert_home(code, block, settings)); + } else if ((code == G_28_1) || (code == G_30_1)) { + CHP(convert_savehome(code, block, settings)); + } else if ((code == G_52) || (code == G_92)) { + CHP(convert_axis_offsets(code, block, settings)); + } else if ((code == G_5_3)||(code == G_6_3)) { // jjf + CHP(convert_nurbs(code, block, settings)); + } else if ((code == G_4) || (code == G_53)); // handled elsewhere + else + ERS(NCE_BUG_CODE_NOT_G4_G10_G28_G30_G52_G53_OR_G92_SERIES); + return INTERP_OK; } int Interp::convert_g92_is_applied(int code, block_pointer block, @@ -4751,6 +4275,7 @@ int Interp::convert_g92_is_applied(int code, block_pointer block, return INTERP_OK; } + /****************************************************************************/ /*! convert_motion @@ -4774,106 +4299,74 @@ Called by: convert_g. */ -int Interp::convert_motion(int motion, //!< g_code for a line, arc, canned cycle - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_motion(int motion, //!< g_code for a line, arc, canned cycle + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - int ai = block->a_flag && (-1 != settings->a_indexer_jnum); - int bi = block->b_flag && (-1 != settings->b_indexer_jnum); - int ci = block->c_flag && (-1 != settings->c_indexer_jnum); - - if (motion != G_0) - { - CHKS((ai), (_("Indexing axis %c can only be moved with G0")), 'A'); - CHKS((bi), (_("Indexing axis %c can only be moved with G0")), 'B'); - CHKS((ci), (_("Indexing axis %c can only be moved with G0")), 'C'); - } - - int xyzuvw_flag = (block->x_flag || block->y_flag || block->z_flag || - block->u_flag || block->v_flag || block->w_flag); - - CHKS((ai && (xyzuvw_flag || block->b_flag || block->c_flag)), - (_("Indexing axis %c can only be moved alone")), 'A'); - CHKS((bi && (xyzuvw_flag || block->a_flag || block->c_flag)), - (_("Indexing axis %c can only be moved alone")), 'B'); - CHKS((ci && (xyzuvw_flag || block->a_flag || block->b_flag)), - (_("Indexing axis %c can only be moved alone")), 'C'); - - if (!is_a_cycle(motion)) - settings->cycle_il_flag = false; - - if (ai || bi || ci) - { - int anum = -1, jnum = -1; - if (ai) - { - anum = 3; - jnum = settings->a_indexer_jnum; - } - else if (bi) - { - anum = 4; - jnum = settings->b_indexer_jnum; - } - else if (ci) - { - anum = 5; - jnum = settings->c_indexer_jnum; - } - CHP(convert_straight_indexer(anum, jnum, block, settings)); - } - else if ((motion == G_0) || (motion == G_1) || (motion == G_33) || (motion == G_33_1) || (motion == G_76)) - { - CHP(convert_straight(motion, block, settings)); - } - else if ((motion == G_3) || (motion == G_2)) - { - CHP(convert_arc(motion, block, settings)); - } - else if (motion == G_38_2 || motion == G_38_3 || - motion == G_38_4 || motion == G_38_5) - { - CHP(convert_probe(block, motion, settings)); - } - else if (motion == G_80) - { + int ai = block->a_flag && (-1 != settings->a_indexer_jnum); + int bi = block->b_flag && (-1 != settings->b_indexer_jnum); + int ci = block->c_flag && (-1 != settings->c_indexer_jnum); + + + if (motion != G_0) { + CHKS((ai), (_("Indexing axis %c can only be moved with G0")), 'A'); + CHKS((bi), (_("Indexing axis %c can only be moved with G0")), 'B'); + CHKS((ci), (_("Indexing axis %c can only be moved with G0")), 'C'); + } + + int xyzuvw_flag = (block->x_flag || block->y_flag || block->z_flag || + block->u_flag || block->v_flag || block->w_flag); + + CHKS((ai && (xyzuvw_flag || block->b_flag || block->c_flag)), + (_("Indexing axis %c can only be moved alone")), 'A'); + CHKS((bi && (xyzuvw_flag || block->a_flag || block->c_flag)), + (_("Indexing axis %c can only be moved alone")), 'B'); + CHKS((ci && (xyzuvw_flag || block->a_flag || block->b_flag)), + (_("Indexing axis %c can only be moved alone")), 'C'); + + if (!is_a_cycle(motion)) + settings->cycle_il_flag = false; + + if (ai || bi || ci) { + int anum=-1,jnum=-1; + if ( ai) {anum = 3; jnum = settings->a_indexer_jnum;} + else if (bi) {anum = 4; jnum = settings->b_indexer_jnum;} + else if (ci) {anum = 5; jnum = settings->c_indexer_jnum;} + CHP(convert_straight_indexer(anum, jnum, block, settings)); + } else if ((motion == G_0) || (motion == G_1) || (motion == G_33) || (motion == G_33_1) || (motion == G_76)) { + CHP(convert_straight(motion, block, settings)); + } else if ((motion == G_3) || (motion == G_2)) { + CHP(convert_arc(motion, block, settings)); + } else if (motion == G_38_2 || motion == G_38_3 || + motion == G_38_4 || motion == G_38_5) { + CHP(convert_probe(block, motion, settings)); + } else if (motion == G_80) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: motion mode set to none"); + enqueue_COMMENT("interpreter: motion mode set to none"); #endif - settings->motion_mode = G_80; - } - else if (is_user_defined_g_code(motion)) - { - CHP(convert_remapped_code(block, settings, STEP_MOTION, 'g', motion)); - } - else if (is_a_cycle(motion)) - { - - CHP(convert_cycle(motion, block, settings)); - } - else if ((motion == G_5) || (motion == G_5_1) || (motion == G_6) || (motion == G_6_1)) - { // jjf - write_canon_state_tag(block, settings); - CHP(convert_spline(motion, block, settings)); - } - else if ((motion == G_5_2) || (motion == G_6_2)) - { // jjf - write_canon_state_tag(block, settings); - CHP(convert_nurbs(motion, block, settings)); - } - else if ( - motion == G_70 || - motion == G_71 || motion == G_71_1 || motion == G_71_2 || - motion == G_72 || motion == G_72_1 || motion == G_72_2) - { - CHP(convert_g7x(motion, block, settings)); - } - else - { - ERS(NCE_BUG_UNKNOWN_MOTION_CODE); - } - - return INTERP_OK; + settings->motion_mode = G_80; + } else if (is_user_defined_g_code(motion)) { + CHP(convert_remapped_code(block, settings, STEP_MOTION, 'g', motion)); + } else if (is_a_cycle(motion)) { + + CHP(convert_cycle(motion, block, settings)); + } else if ((motion == G_5) || (motion == G_5_1) || (motion == G_6) || (motion == G_6_1) ) { // jjf + write_canon_state_tag(block, settings); + CHP(convert_spline(motion, block, settings)); + } else if ((motion == G_5_2) || (motion == G_6_2)) { // jjf + write_canon_state_tag(block, settings); + CHP(convert_nurbs(motion, block, settings)); + } else if ( + motion == G_70 || + motion == G_71 || motion == G_71_1 || motion == G_71_2 || + motion == G_72 || motion == G_72_1 || motion == G_72_2 + ) { + CHP(convert_g7x(motion, block, settings)); + } else { + ERS(NCE_BUG_UNKNOWN_MOTION_CODE); + } + + return INTERP_OK; } /****************************************************************************/ @@ -4909,53 +4402,53 @@ current position by calls to get_external_position_x, etc. */ -int Interp::convert_probe(block_pointer block, //!< pointer to a block of RS274 instructions +int Interp::convert_probe(block_pointer block, //!< pointer to a block of RS274 instructions int g_code, - setup_pointer settings) //!< pointer to machine settings + setup_pointer settings) //!< pointer to machine settings { - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end; - double v_end; - double w_end; - - /* probe_type: - ~1 = error if probe operation is unsuccessful (ngc default) - |1 = suppress error, report in # instead - ~2 = move until probe trips (ngc default) - |2 = move until probe clears */ - - unsigned char probe_type = g_code - G_38_2; - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - NCE_CANNOT_PROBE_WITH_CUTTER_RADIUS_COMP_ON); - CHKS((settings->feed_rate == 0.0), NCE_CANNOT_PROBE_WITH_ZERO_FEED_RATE); - CHKS(settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION, - _("Cannot probe with feed per rev mode")); - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end)); - CHKS(((!(probe_type & 1)) && - settings->current_x == end_x && settings->current_y == end_y && - settings->current_z == end_z && settings->AA_current == AA_end && - settings->BB_current == BB_end && settings->CC_current == CC_end && - settings->u_current == u_end && settings->v_current == v_end && - settings->w_current == w_end), - NCE_START_POINT_TOO_CLOSE_TO_PROBE_POINT); - - TURN_PROBE_ON(); - STRAIGHT_PROBE(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, probe_type); - - TURN_PROBE_OFF(); - settings->motion_mode = g_code; - settings->probe_flag = true; - return INTERP_OK; + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end; + double v_end; + double w_end; + + /* probe_type: + ~1 = error if probe operation is unsuccessful (ngc default) + |1 = suppress error, report in # instead + ~2 = move until probe trips (ngc default) + |2 = move until probe clears */ + + unsigned char probe_type = g_code - G_38_2; + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + NCE_CANNOT_PROBE_WITH_CUTTER_RADIUS_COMP_ON); + CHKS((settings->feed_rate == 0.0), NCE_CANNOT_PROBE_WITH_ZERO_FEED_RATE); + CHKS(settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION, + _("Cannot probe with feed per rev mode")); + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end)); + CHKS(((!(probe_type & 1)) && + settings->current_x == end_x && settings->current_y == end_y && + settings->current_z == end_z && settings->AA_current == AA_end && + settings->BB_current == BB_end && settings->CC_current == CC_end && + settings->u_current == u_end && settings->v_current == v_end && + settings->w_current == w_end), + NCE_START_POINT_TOO_CLOSE_TO_PROBE_POINT); + + TURN_PROBE_ON(); + STRAIGHT_PROBE(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, probe_type); + + TURN_PROBE_OFF(); + settings->motion_mode = g_code; + settings->probe_flag = true; + return INTERP_OK; } /****************************************************************************/ @@ -4979,35 +4472,30 @@ this function. */ -int Interp::convert_retract_mode(int g_code, //!< g_code being executed (must be G_98 or G_99) - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_retract_mode(int g_code, //!< g_code being executed (must be G_98 or G_99) + setup_pointer settings) //!< pointer to machine settings { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change retract mode with cutter radius compensation on"))); - if (g_code == G_98) - { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change retract mode with cutter radius compensation on"))); + if (g_code == G_98) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: retract mode set to old_z"); + enqueue_COMMENT("interpreter: retract mode set to old_z"); #endif - settings->retract_mode = RETRACT_MODE::OLD_Z; - } - else if (g_code == G_99) - { + settings->retract_mode = RETRACT_MODE::OLD_Z; + } else if (g_code == G_99) { #ifdef DEBUG_EMC - enqueue_COMMENT("interpreter: retract mode set to r_plane"); + enqueue_COMMENT("interpreter: retract mode set to r_plane"); #endif - settings->retract_mode = RETRACT_MODE::R_PLANE; - } - else - ERS(NCE_BUG_CODE_NOT_G98_OR_G99); - return INTERP_OK; + settings->retract_mode = RETRACT_MODE::R_PLANE; + } else + ERS(NCE_BUG_CODE_NOT_G98_OR_G99); + return INTERP_OK; } // G10 L1 P[tool number] R[radius] X[x offset] Z[z offset] Q[orientation] // G10 L10 P[tool number] R[radius] X[x offset] Z[z offset] Q[orientation] -int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) -{ +int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) { int idx = -1, toolno; int q; double tx, ty, tz, ta, tb, tc, tu, tv, tw; @@ -5024,39 +4512,35 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) block->j_flag), _("G10 L1 without offsets has no effect")); - if (direct) - { - if (block->x_flag) + if(direct) { + if(block->x_flag) settings->tool_table[idx].offset.tran.x = PROGRAM_TO_USER_LEN(block->x_number); - if (block->y_flag) + if(block->y_flag) settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(block->y_number); - if (block->z_flag) + if(block->z_flag) settings->tool_table[idx].offset.tran.z = PROGRAM_TO_USER_LEN(block->z_number); - if (block->a_flag) + if(block->a_flag) settings->tool_table[idx].offset.a = PROGRAM_TO_USER_ANG(block->a_number); - if (block->b_flag) + if(block->b_flag) settings->tool_table[idx].offset.b = PROGRAM_TO_USER_ANG(block->b_number); - if (block->c_flag) + if(block->c_flag) settings->tool_table[idx].offset.c = PROGRAM_TO_USER_ANG(block->c_number); - if (block->u_flag) + if(block->u_flag) settings->tool_table[idx].offset.u = PROGRAM_TO_USER_LEN(block->u_number); - if (block->v_flag) + if(block->v_flag) settings->tool_table[idx].offset.v = PROGRAM_TO_USER_LEN(block->v_number); - if (block->w_flag) + if(block->w_flag) settings->tool_table[idx].offset.w = PROGRAM_TO_USER_LEN(block->w_number); - } - else - { + } else { int to_fixture = block->l_number == 11; - int destination_system = to_fixture ? 9 : settings->origin_index; // maybe 9 (g59.3) should be user configurable? + int destination_system = to_fixture? 9 : settings->origin_index; // maybe 9 (g59.3) should be user configurable? find_current_in_system_without_tlo(settings, destination_system, &tx, &ty, &tz, &ta, &tb, &tc, &tu, &tv, &tw); - if (to_fixture && settings->parameters[5210]) - { + if ( to_fixture && settings->parameters[5210]) { // For G10L11, we don't want to move the origin of the // fixture according to G92. Since find_current_in_system // did this for us already, undo it. @@ -5071,16 +4555,14 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) tw += USER_TO_PROGRAM_LEN(settings->parameters[5219]); } - if (block->x_flag && block->y_flag) - { + + if(block->x_flag && block->y_flag) { tx -= block->x_number; ty -= block->y_number; rotate(&tx, &ty, settings->parameters[5210 + destination_system * 20]); settings->tool_table[idx].offset.tran.x = PROGRAM_TO_USER_LEN(tx); settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(ty); - } - else if (block->x_flag) - { + } else if(block->x_flag) { // keep the component of the tool table's current setting that points // along our possibly-rotated Y axis double ox, oy; @@ -5090,15 +4572,14 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) ox = 0; rotate(&ox, &oy, settings->parameters[5210 + destination_system * 20]); + tx -= block->x_number; ty = 0; rotate(&tx, &ty, settings->parameters[5210 + destination_system * 20]); settings->tool_table[idx].offset.tran.x = PROGRAM_TO_USER_LEN(tx + ox); settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(ty + oy); - } - else if (block->y_flag) - { + } else if(block->y_flag) { double ox, oy; ox = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); oy = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); @@ -5114,30 +4595,27 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) settings->tool_table[idx].offset.tran.y = PROGRAM_TO_USER_LEN(ty + oy); } - if (block->z_flag) + + if(block->z_flag) settings->tool_table[idx].offset.tran.z = PROGRAM_TO_USER_LEN(tz - block->z_number); - if (block->a_flag) + if(block->a_flag) settings->tool_table[idx].offset.a = PROGRAM_TO_USER_ANG(ta - block->a_number); - if (block->b_flag) + if(block->b_flag) settings->tool_table[idx].offset.b = PROGRAM_TO_USER_ANG(tb - block->b_number); - if (block->c_flag) + if(block->c_flag) settings->tool_table[idx].offset.c = PROGRAM_TO_USER_ANG(tc - block->c_number); - if (block->u_flag) + if(block->u_flag) settings->tool_table[idx].offset.u = PROGRAM_TO_USER_LEN(tu - block->u_number); - if (block->v_flag) + if(block->v_flag) settings->tool_table[idx].offset.v = PROGRAM_TO_USER_LEN(tv - block->v_number); - if (block->w_flag) + if(block->w_flag) settings->tool_table[idx].offset.w = PROGRAM_TO_USER_LEN(tw - block->w_number); } - if (block->r_flag) - settings->tool_table[idx].diameter = PROGRAM_TO_USER_LEN(block->r_number) * 2.; - if (block->i_flag) - settings->tool_table[idx].frontangle = block->i_number; - if (block->j_flag) - settings->tool_table[idx].backangle = block->j_number; - if (block->q_number != -1.0) - { + if(block->r_flag) settings->tool_table[idx].diameter = PROGRAM_TO_USER_LEN(block->r_number) * 2.; + if(block->i_flag) settings->tool_table[idx].frontangle = block->i_number; + if(block->j_flag) settings->tool_table[idx].backangle = block->j_number; + if(block->q_number != -1.0) { CHKS((!is_near_int(&q, block->q_number)), _("Q number in G10 is not an integer")); CHKS((q > 9), _("Invalid tool orientation")); settings->tool_table[idx].orientation = q; @@ -5159,8 +4637,7 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) // there tools don't have a home index, and instead we updated index // 0 (the spindle) directly when modifying the loaded tool. // - if ((!settings->random_toolchanger) && (settings->current_pocket == idx)) - { + if ((!settings->random_toolchanger) && (settings->current_pocket == idx)) { settings->tool_table[0] = settings->tool_table[idx]; } @@ -5170,25 +4647,16 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) // Unfortunately, random and nonrandom toolchangers use a different // number for "invalid tool number": nonrandom uses 0, random uses -1. // - if (settings->random_toolchanger) - { - if (settings->tool_table[0].toolno >= 0) - { + if (settings->random_toolchanger) { + if (settings->tool_table[0].toolno >= 0) { settings->parameters[5400] = settings->tool_table[0].toolno; - } - else - { + } else { settings->parameters[5400] = -1; } - } - else - { - if (settings->tool_table[0].toolno > 0) - { + } else { + if (settings->tool_table[0].toolno > 0) { settings->parameters[5400] = settings->tool_table[0].toolno; - } - else - { + } else { settings->parameters[5400] = 0; } } @@ -5210,8 +4678,8 @@ int Interp::convert_setup_tool(block_pointer block, setup_pointer settings) // if the modified tool is currently in the spindle, then copy its // information to index 0 of the tool table (which signifies the // spindle) - if (!_setup.random_toolchanger && idx == settings->current_pocket) - { + if ( !_setup.random_toolchanger + && idx == settings->current_pocket) { SET_TOOL_TABLE_ENTRY(0, settings->tool_table[idx].toolno, settings->tool_table[idx].offset, @@ -5257,236 +4725,200 @@ See documentation of convert_coordinate_system for more information. */ -int Interp::convert_setup(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_setup(block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - double x; - double y; - double z; - double a; - double b; - double c; - double u, v, w; - double r; - double *parameters; - int p_int; - - double cx, cy, cz, ca, cb, cc, cu, cv, cw; - - CHKS((block->i_flag || block->j_flag), _("I J words not allowed with G10 L2")); - - parameters = settings->parameters; - p_int = (int)(block->p_number + 0.0001); - - // if P = 0 then use whatever coordinate system that is currently active - if (p_int == 0) - { - p_int = settings->origin_index; - } - - CHKS((block->l_number == 20 && block->a_flag && settings->a_axis_wrapped && - (block->a_number <= -360.0 || block->a_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->a_number, 'A'); - CHKS((block->l_number == 20 && block->b_flag && settings->b_axis_wrapped && - (block->b_number <= -360.0 || block->b_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->b_number, 'B'); - CHKS((block->l_number == 20 && block->c_flag && settings->c_axis_wrapped && - (block->c_number <= -360.0 || block->c_number >= 360.0)), - (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->c_number, 'C'); - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && p_int == settings->origin_index), - (_("Cannot change the active coordinate system with cutter radius compensation on"))); - - find_current_in_system(settings, p_int, - &cx, &cy, &cz, - &ca, &cb, &cc, - &cu, &cv, &cw); - - if (block->r_flag) - { - CHKS((block->l_number == 20), _("R not allowed in G10 L20")); - r = block->r_number; - parameters[5210 + (p_int * 20)] = r; - } - else - r = parameters[5210 + (p_int * 20)]; - - if (block->l_number == 20) - { - // old position in rotated system - double oldx = cx, oldy = cy; - - // find new desired position in rotated system - x = cx; - y = cy; - - if (block->x_flag) - { - x = block->x_number; - } - if (block->y_flag) - { - y = block->y_number; - } - - // move old current position into the unrotated system - rotate(&oldx, &oldy, r); - // move desired position into the unrotated system - rotate(&x, &y, r); - - // find new offset - x = oldx + USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]) - x; - y = oldy + USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]) - y; - - // parameters are not rotated - parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); - parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); - - if (p_int == settings->origin_index) - { - // let the code below fix up the current coordinates correctly - rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); - settings->rotation_xy = 0; - } - } - else - { - if (block->x_flag) - { - x = block->x_number; - parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); - } - else - { - x = USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]); - } - if (block->y_flag) - { - y = block->y_number; - parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); - } - else - { - y = USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]); - } - } - - if (block->z_flag) - { - z = block->z_number; - if (block->l_number == 20) - z = cz + USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]) - z; - parameters[5203 + (p_int * 20)] = PROGRAM_TO_USER_LEN(z); - } - else - z = USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]); - - if (block->a_flag) - { - a = block->a_number; - if (block->l_number == 20) - a = ca + USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]) - a; - parameters[5204 + (p_int * 20)] = PROGRAM_TO_USER_ANG(a); - } - else - a = USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]); - - if (block->b_flag) - { - b = block->b_number; - if (block->l_number == 20) - b = cb + USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]) - b; - parameters[5205 + (p_int * 20)] = PROGRAM_TO_USER_ANG(b); - } - else - b = USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]); - - if (block->c_flag) - { - c = block->c_number; - if (block->l_number == 20) - c = cc + USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]) - c; - parameters[5206 + (p_int * 20)] = PROGRAM_TO_USER_ANG(c); - } - else - c = USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]); - - if (block->u_flag) - { - u = block->u_number; - if (block->l_number == 20) - u = cu + USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]) - u; - parameters[5207 + (p_int * 20)] = PROGRAM_TO_USER_LEN(u); - } - else - u = USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]); - - if (block->v_flag) - { - v = block->v_number; - if (block->l_number == 20) - v = cv + USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]) - v; - parameters[5208 + (p_int * 20)] = PROGRAM_TO_USER_LEN(v); - } - else - v = USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]); + double x; + double y; + double z; + double a; + double b; + double c; + double u, v, w; + double r; + double *parameters; + int p_int; + + double cx, cy, cz, ca, cb, cc, cu, cv, cw; + + CHKS((block->i_flag || block->j_flag), _("I J words not allowed with G10 L2")); + + parameters = settings->parameters; + p_int = (int) (block->p_number + 0.0001); + + // if P = 0 then use whatever coordinate system that is currently active + if (p_int == 0) { + p_int = settings->origin_index; + } + + CHKS((block->l_number == 20 && block->a_flag && settings->a_axis_wrapped && + (block->a_number <= -360.0 || block->a_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->a_number, 'A'); + CHKS((block->l_number == 20 && block->b_flag && settings->b_axis_wrapped && + (block->b_number <= -360.0 || block->b_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->b_number, 'B'); + CHKS((block->l_number == 20 && block->c_flag && settings->c_axis_wrapped && + (block->c_number <= -360.0 || block->c_number >= 360.0)), + (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->c_number, 'C'); + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && p_int == settings->origin_index), + (_("Cannot change the active coordinate system with cutter radius compensation on"))); + + find_current_in_system(settings, p_int, + &cx, &cy, &cz, + &ca, &cb, &cc, + &cu, &cv, &cw); + + if (block->r_flag) { + CHKS((block->l_number == 20), _("R not allowed in G10 L20")); + r = block->r_number; + parameters[5210 + (p_int * 20)] = r; + } else + r = parameters[5210 + (p_int * 20)]; + + if (block->l_number == 20) { + // old position in rotated system + double oldx = cx, oldy = cy; + + // find new desired position in rotated system + x = cx; + y = cy; + + if (block->x_flag) { + x = block->x_number; + } + if (block->y_flag) { + y = block->y_number; + } + + // move old current position into the unrotated system + rotate(&oldx, &oldy, r); + // move desired position into the unrotated system + rotate(&x, &y, r); + + // find new offset + x = oldx + USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]) - x; + y = oldy + USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]) - y; + + // parameters are not rotated + parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); + parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); + + if (p_int == settings->origin_index) { + // let the code below fix up the current coordinates correctly + rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); + settings->rotation_xy = 0; + } + } else { + if (block->x_flag) { + x = block->x_number; + parameters[5201 + (p_int * 20)] = PROGRAM_TO_USER_LEN(x); + } else { + x = USER_TO_PROGRAM_LEN(parameters[5201 + (p_int * 20)]); + } + if (block->y_flag) { + y = block->y_number; + parameters[5202 + (p_int * 20)] = PROGRAM_TO_USER_LEN(y); + } else { + y = USER_TO_PROGRAM_LEN(parameters[5202 + (p_int * 20)]); + } + } + + if (block->z_flag) { + z = block->z_number; + if (block->l_number == 20) z = cz + USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]) - z; + parameters[5203 + (p_int * 20)] = PROGRAM_TO_USER_LEN(z); + } else + z = USER_TO_PROGRAM_LEN(parameters[5203 + (p_int * 20)]); + + if (block->a_flag) { + a = block->a_number; + if (block->l_number == 20) a = ca + USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]) - a; + parameters[5204 + (p_int * 20)] = PROGRAM_TO_USER_ANG(a); + } else + a = USER_TO_PROGRAM_ANG(parameters[5204 + (p_int * 20)]); + + if (block->b_flag) { + b = block->b_number; + if (block->l_number == 20) b = cb + USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]) - b; + parameters[5205 + (p_int * 20)] = PROGRAM_TO_USER_ANG(b); + } else + b = USER_TO_PROGRAM_ANG(parameters[5205 + (p_int * 20)]); + + if (block->c_flag) { + c = block->c_number; + if (block->l_number == 20) c = cc + USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]) - c; + parameters[5206 + (p_int * 20)] = PROGRAM_TO_USER_ANG(c); + } else + c = USER_TO_PROGRAM_ANG(parameters[5206 + (p_int * 20)]); + + if (block->u_flag) { + u = block->u_number; + if (block->l_number == 20) u = cu + USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]) - u; + parameters[5207 + (p_int * 20)] = PROGRAM_TO_USER_LEN(u); + } else + u = USER_TO_PROGRAM_LEN(parameters[5207 + (p_int * 20)]); + + if (block->v_flag) { + v = block->v_number; + if (block->l_number == 20) v = cv + USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]) - v; + parameters[5208 + (p_int * 20)] = PROGRAM_TO_USER_LEN(v); + } else + v = USER_TO_PROGRAM_LEN(parameters[5208 + (p_int * 20)]); + + if (block->w_flag) { + w = block->w_number; + if (block->l_number == 20) w = cw + USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]) - w; + parameters[5209 + (p_int * 20)] = PROGRAM_TO_USER_LEN(w); + } else + w = USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]); + + if (p_int == settings->origin_index) { /* system is currently used */ + + rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); + + settings->current_x += settings->origin_offset_x; + settings->current_y += settings->origin_offset_y; + settings->current_z += settings->origin_offset_z; + settings->AA_current += settings->AA_origin_offset; + settings->BB_current += settings->BB_origin_offset; + settings->CC_current += settings->CC_origin_offset; + settings->u_current += settings->u_origin_offset; + settings->v_current += settings->v_origin_offset; + settings->w_current += settings->w_origin_offset; + + settings->origin_offset_x = x; + settings->origin_offset_y = y; + settings->origin_offset_z = z; + settings->AA_origin_offset = a; + settings->BB_origin_offset = b; + settings->CC_origin_offset = c; + settings->u_origin_offset = u; + settings->v_origin_offset = v; + settings->w_origin_offset = w; + + settings->current_x -= x; + settings->current_y -= y; + settings->current_z -= z; + settings->AA_current -= a; + settings->BB_current -= b; + settings->CC_current -= c; + settings->u_current -= u; + settings->v_current -= v; + settings->w_current -= w; + + SET_G5X_OFFSET(p_int, x, y, z, a, b, c, u, v, w); + + rotate(&settings->current_x, &settings->current_y, - r); + settings->rotation_xy = r; + SET_XY_ROTATION(settings->rotation_xy); - if (block->w_flag) - { - w = block->w_number; - if (block->l_number == 20) - w = cw + USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]) - w; - parameters[5209 + (p_int * 20)] = PROGRAM_TO_USER_LEN(w); - } - else - w = USER_TO_PROGRAM_LEN(parameters[5209 + (p_int * 20)]); - - if (p_int == settings->origin_index) - { /* system is currently used */ - - rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); - - settings->current_x += settings->origin_offset_x; - settings->current_y += settings->origin_offset_y; - settings->current_z += settings->origin_offset_z; - settings->AA_current += settings->AA_origin_offset; - settings->BB_current += settings->BB_origin_offset; - settings->CC_current += settings->CC_origin_offset; - settings->u_current += settings->u_origin_offset; - settings->v_current += settings->v_origin_offset; - settings->w_current += settings->w_origin_offset; - - settings->origin_offset_x = x; - settings->origin_offset_y = y; - settings->origin_offset_z = z; - settings->AA_origin_offset = a; - settings->BB_origin_offset = b; - settings->CC_origin_offset = c; - settings->u_origin_offset = u; - settings->v_origin_offset = v; - settings->w_origin_offset = w; - - settings->current_x -= x; - settings->current_y -= y; - settings->current_z -= z; - settings->AA_current -= a; - settings->BB_current -= b; - settings->CC_current -= c; - settings->u_current -= u; - settings->v_current -= v; - settings->w_current -= w; - - SET_G5X_OFFSET(p_int, x, y, z, a, b, c, u, v, w); - - rotate(&settings->current_x, &settings->current_y, -r); - settings->rotation_xy = r; - SET_XY_ROTATION(settings->rotation_xy); - } + } #ifdef DEBUG_EMC - else - enqueue_COMMENT("interpreter: setting coordinate system origin"); + else + enqueue_COMMENT("interpreter: setting coordinate system origin"); #endif - return INTERP_OK; + return INTERP_OK; } /****************************************************************************/ @@ -5508,52 +4940,40 @@ Called by: convert_g. */ -int Interp::convert_set_plane(int g_code, //!< must be G_17, G_18, or G_19 - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_set_plane(int g_code, //!< must be G_17, G_18, or G_19 + setup_pointer settings) //!< pointer to machine settings { - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_17 && settings->plane != CANON_PLANE::XY), - NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_18 && settings->plane != CANON_PLANE::XZ), - NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19 && settings->plane != CANON_PLANE::YZ), - NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19), - NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); - - if (g_code == G_17) - { - SELECT_PLANE(CANON_PLANE::XY); - settings->plane = CANON_PLANE::XY; - } - else if (g_code == G_18) - { - SELECT_PLANE(CANON_PLANE::XZ); - settings->plane = CANON_PLANE::XZ; - } - else if (g_code == G_19) - { - SELECT_PLANE(CANON_PLANE::YZ); - settings->plane = CANON_PLANE::YZ; - } - else if (g_code == G_17_1) - { - SELECT_PLANE(CANON_PLANE::UV); - settings->plane = CANON_PLANE::UV; - } - else if (g_code == G_18_1) - { - SELECT_PLANE(CANON_PLANE::UW); - settings->plane = CANON_PLANE::UW; - } - else if (g_code == G_19_1) - { - SELECT_PLANE(CANON_PLANE::VW); - settings->plane = CANON_PLANE::VW; - } - else - ERS(NCE_BUG_CODE_NOT_G17_G18_OR_G19); - return INTERP_OK; + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_17 && settings->plane != CANON_PLANE::XY), + NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_18 && settings->plane != CANON_PLANE::XZ), + NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19 && settings->plane != CANON_PLANE::YZ), + NCE_CANNOT_CHANGE_PLANES_WITH_CUTTER_RADIUS_COMP_ON); + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF && g_code == G_19), + NCE_RADIUS_COMP_ONLY_IN_XY_OR_XZ); + + if (g_code == G_17) { + SELECT_PLANE(CANON_PLANE::XY); + settings->plane = CANON_PLANE::XY; + } else if (g_code == G_18) { + SELECT_PLANE(CANON_PLANE::XZ); + settings->plane = CANON_PLANE::XZ; + } else if (g_code == G_19) { + SELECT_PLANE(CANON_PLANE::YZ); + settings->plane = CANON_PLANE::YZ; + } else if (g_code == G_17_1) { + SELECT_PLANE(CANON_PLANE::UV); + settings->plane = CANON_PLANE::UV; + } else if (g_code == G_18_1) { + SELECT_PLANE(CANON_PLANE::UW); + settings->plane = CANON_PLANE::UW; + } else if (g_code == G_19_1) { + SELECT_PLANE(CANON_PLANE::VW); + settings->plane = CANON_PLANE::VW; + } else + ERS(NCE_BUG_CODE_NOT_G17_G18_OR_G19); + return INTERP_OK; } /****************************************************************************/ @@ -5571,40 +4991,34 @@ Called by: execute_block. */ -int Interp::convert_speed(int spindle, // The spindle ($) or -1 if none - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_speed(int spindle, //The spindle ($) or -1 if none + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings)//!< pointer to machine settings { - if (spindle >= 0 && spindle < settings->num_spindles) - { + if (spindle >= 0 && spindle < settings->num_spindles){ enqueue_SET_SPINDLE_SPEED(spindle, block->s_number); settings->speed[spindle] = block->s_number; - } +} - return INTERP_OK; + return INTERP_OK; } int Interp::convert_spindle_mode(int dollar_number, block_pointer block, setup_pointer settings) { - for (int s = 0; s < settings->num_spindles; s++) - { - if (dollar_number == -1 || s == dollar_number) - { - if (block->g_modes[GM_SPINDLE_MODE] == G_97) - { - settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_RPM; - enqueue_SET_SPINDLE_MODE(s, 0); - } - else - { /* G_96 */ - settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_SURFACE; - if (block->d_flag) - enqueue_SET_SPINDLE_MODE(s, fabs(block->d_number_float)); - else - enqueue_SET_SPINDLE_MODE(s, 1e30); - } - } - } + for (int s = 0; s < settings->num_spindles; s++){ + if (dollar_number == -1 || s == dollar_number){ + if(block->g_modes[GM_SPINDLE_MODE] == G_97) { + settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_RPM; + enqueue_SET_SPINDLE_MODE(s, 0); + } else { /* G_96 */ + settings->spindle_mode[s] = SPINDLE_MODE::CONSTANT_SURFACE; + if(block->d_flag) + enqueue_SET_SPINDLE_MODE(s, fabs(block->d_number_float)); + else + enqueue_SET_SPINDLE_MODE(s, 1e30); + } + } + } return INTERP_OK; } /****************************************************************************/ @@ -5686,190 +5100,169 @@ settings. They occur on M2 or M30. */ int Interp::convert_stop(block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings + setup_pointer settings) //!< pointer to machine settings { - int index; - char *line; - int length; - - double cx = 0, cy = 0, cz = 0; - comp_get_current(settings, &cx, &cy, &cz); - CHP(move_endpoint_and_flush(settings, cx, cy)); - dequeue_canons(settings); - - nurbs_reset_global_variables(); // jjf + int index; + char *line; + int length; + + double cx = 0, cy = 0, cz = 0; + comp_get_current(settings, &cx, &cy, &cz); + CHP(move_endpoint_and_flush(settings, cx, cy)); + dequeue_canons(settings); + + nurbs_reset_global_variables(); // jjf + + // M99 as subroutine return is handled in interp_o_word.cc + // convert_control_functions() + CHKS((block->m_modes[4] == 99 && settings->call_level > 0), + (_("Bug: Reached convert_stop() from M99 as subprogram return"))); + if (block->m_modes[4] == 0) { + PROGRAM_STOP(); + } else if (block->m_modes[4] == 60) { + PALLET_SHUTTLE(); + PROGRAM_STOP(); + } else if (block->m_modes[4] == 1) { + OPTIONAL_PROGRAM_STOP(); + } else if (block->m_modes[4] == 99 && _setup.loop_on_main_m99) { + + // Fanuc-style M99 main program endless loop + logDebug("M99 main program endless loop"); + + loop_to_beginning(settings); // return control to beginning of file + FINISH(); // Output any final linked segments + return INTERP_EXECUTE_FINISH; // tell task to issue any queued commands + } else if ((block->m_modes[4] == 2) || (block->m_modes[4] == 30) || + (block->m_modes[4] == 99 && !_setup.loop_on_main_m99) + ) { /* reset stuff here */ + +/*1*/ + rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); + settings->current_x += settings->origin_offset_x; + settings->current_y += settings->origin_offset_y; + settings->current_z += settings->origin_offset_z; + settings->AA_current += settings->AA_origin_offset; + settings->BB_current += settings->BB_origin_offset; + settings->CC_current += settings->CC_origin_offset; + settings->u_current += settings->u_origin_offset; + settings->v_current += settings->v_origin_offset; + settings->w_current += settings->w_origin_offset; + + settings->origin_index = 1; + settings->parameters[5220] = 1.0; + settings->origin_offset_x = USER_TO_PROGRAM_LEN(settings->parameters[5221]); + settings->origin_offset_y = USER_TO_PROGRAM_LEN(settings->parameters[5222]); + settings->origin_offset_z = USER_TO_PROGRAM_LEN(settings->parameters[5223]); + settings->AA_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5224]); + settings->BB_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5225]); + settings->CC_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5226]); + settings->u_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5227]); + settings->v_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5228]); + settings->w_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5229]); + settings->rotation_xy = settings->parameters[5230]; + + settings->current_x -= settings->origin_offset_x; + settings->current_y -= settings->origin_offset_y; + settings->current_z -= settings->origin_offset_z; + settings->AA_current -= settings->AA_origin_offset; + settings->BB_current -= settings->BB_origin_offset; + settings->CC_current -= settings->CC_origin_offset; + settings->u_current -= settings->u_origin_offset; + settings->v_current -= settings->v_origin_offset; + settings->w_current -= settings->w_origin_offset; + rotate(&settings->current_x, &settings->current_y, -settings->rotation_xy); + + SET_G5X_OFFSET(settings->origin_index, + settings->origin_offset_x, + settings->origin_offset_y, + settings->origin_offset_z, + settings->AA_origin_offset, + settings->BB_origin_offset, + settings->CC_origin_offset, + settings->u_origin_offset, + settings->v_origin_offset, + settings->w_origin_offset); + SET_XY_ROTATION(settings->rotation_xy); - // M99 as subroutine return is handled in interp_o_word.cc - // convert_control_functions() - CHKS((block->m_modes[4] == 99 && settings->call_level > 0), - (_("Bug: Reached convert_stop() from M99 as subprogram return"))); - if (block->m_modes[4] == 0) - { - PROGRAM_STOP(); - } - else if (block->m_modes[4] == 60) - { - PALLET_SHUTTLE(); - PROGRAM_STOP(); +/*2*/ if (settings->plane != CANON_PLANE::XY) { + SELECT_PLANE(CANON_PLANE::XY); + settings->plane = CANON_PLANE::XY; } - else if (block->m_modes[4] == 1) - { - OPTIONAL_PROGRAM_STOP(); - } - else if (block->m_modes[4] == 99 && _setup.loop_on_main_m99) - { - // Fanuc-style M99 main program endless loop - logDebug("M99 main program endless loop"); +/*3*/ + settings->distance_mode = DISTANCE_MODE::ABSOLUTE; - loop_to_beginning(settings); // return control to beginning of file - FINISH(); // Output any final linked segments - return INTERP_EXECUTE_FINISH; // tell task to issue any queued commands - } - else if ((block->m_modes[4] == 2) || (block->m_modes[4] == 30) || - (block->m_modes[4] == 99 && !_setup.loop_on_main_m99)) - { /* reset stuff here */ - - /*1*/ - rotate(&settings->current_x, &settings->current_y, settings->rotation_xy); - settings->current_x += settings->origin_offset_x; - settings->current_y += settings->origin_offset_y; - settings->current_z += settings->origin_offset_z; - settings->AA_current += settings->AA_origin_offset; - settings->BB_current += settings->BB_origin_offset; - settings->CC_current += settings->CC_origin_offset; - settings->u_current += settings->u_origin_offset; - settings->v_current += settings->v_origin_offset; - settings->w_current += settings->w_origin_offset; - - settings->origin_index = 1; - settings->parameters[5220] = 1.0; - settings->origin_offset_x = USER_TO_PROGRAM_LEN(settings->parameters[5221]); - settings->origin_offset_y = USER_TO_PROGRAM_LEN(settings->parameters[5222]); - settings->origin_offset_z = USER_TO_PROGRAM_LEN(settings->parameters[5223]); - settings->AA_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5224]); - settings->BB_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5225]); - settings->CC_origin_offset = USER_TO_PROGRAM_ANG(settings->parameters[5226]); - settings->u_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5227]); - settings->v_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5228]); - settings->w_origin_offset = USER_TO_PROGRAM_LEN(settings->parameters[5229]); - settings->rotation_xy = settings->parameters[5230]; - - settings->current_x -= settings->origin_offset_x; - settings->current_y -= settings->origin_offset_y; - settings->current_z -= settings->origin_offset_z; - settings->AA_current -= settings->AA_origin_offset; - settings->BB_current -= settings->BB_origin_offset; - settings->CC_current -= settings->CC_origin_offset; - settings->u_current -= settings->u_origin_offset; - settings->v_current -= settings->v_origin_offset; - settings->w_current -= settings->w_origin_offset; - rotate(&settings->current_x, &settings->current_y, -settings->rotation_xy); - - SET_G5X_OFFSET(settings->origin_index, - settings->origin_offset_x, - settings->origin_offset_y, - settings->origin_offset_z, - settings->AA_origin_offset, - settings->BB_origin_offset, - settings->CC_origin_offset, - settings->u_origin_offset, - settings->v_origin_offset, - settings->w_origin_offset); - SET_XY_ROTATION(settings->rotation_xy); - - /*2*/ if (settings->plane != CANON_PLANE::XY) - { - SELECT_PLANE(CANON_PLANE::XY); - settings->plane = CANON_PLANE::XY; - } +/*4*/ settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; + SET_FEED_MODE(0, 0); + settings->feed_rate = block->f_number; + SET_FEED_RATE(0); - /*3*/ - settings->distance_mode = DISTANCE_MODE::ABSOLUTE; +/*5*/ if (!settings->feed_override) { + ENABLE_FEED_OVERRIDE(); + settings->feed_override = true; + } - /*4*/ settings->feed_mode = FEED_MODE::UNITS_PER_MINUTE; - SET_FEED_MODE(0, 0); - settings->feed_rate = block->f_number; - SET_FEED_RATE(0); +/*6*/ + settings->cutter_comp_side = CUTTER_COMP::OFF; + settings->cutter_comp_firstmove = true; - /*5*/ if (!settings->feed_override) - { - ENABLE_FEED_OVERRIDE(); - settings->feed_override = true; - } +/*7*/ + for (int s = 0; s < settings->num_spindles; s++){ + STOP_SPINDLE_TURNING(s); + settings->spindle_turning[s] = CANON_STOPPED; - /*6*/ - settings->cutter_comp_side = CUTTER_COMP::OFF; - settings->cutter_comp_firstmove = true; + settings->speed_override[s] = true; + /* turn off FPR */ + SET_SPINDLE_MODE(s, 0); + } - /*7*/ - for (int s = 0; s < settings->num_spindles; s++) - { - STOP_SPINDLE_TURNING(s); - settings->spindle_turning[s] = CANON_STOPPED; +/*8*/ settings->motion_mode = G_1; - settings->speed_override[s] = true; - /* turn off FPR */ - SET_SPINDLE_MODE(s, 0); - } +/*9*/ if (settings->mist) { + MIST_OFF(); + settings->mist = false; + } + if (settings->flood) { + FLOOD_OFF(); + settings->flood = false; + } - /*8*/ settings->motion_mode = G_1; +/*10*/ + if (settings->disable_g92_persistence) + // Clear G92/G52 offset + for (index=5210; index<=5219; index++) + settings->parameters[index] = 0; - /*9*/ if (settings->mist) - { - MIST_OFF(); - settings->mist = false; + if (block->m_modes[4] == 30) + PALLET_SHUTTLE(); + PROGRAM_END(); + if (_setup.percent_flag && _setup.file_pointer) { + line = _setup.linetext; + for (;;) { /* check for ending percent sign and comment if missing */ + if (fgets(line, LINELEN, _setup.file_pointer) == NULL) { + enqueue_COMMENT("interpreter: percent sign missing from end of file"); + break; } - if (settings->flood) - { - FLOOD_OFF(); - settings->flood = false; + length = strlen(line); + if (length == (LINELEN - 1)) { // line is too long. need to finish reading the line + for (; fgetc(_setup.file_pointer) != '\n' && !feof(_setup.file_pointer);); + continue; } - - /*10*/ - if (settings->disable_g92_persistence) - // Clear G92/G52 offset - for (index = 5210; index <= 5219; index++) - settings->parameters[index] = 0; - - if (block->m_modes[4] == 30) - PALLET_SHUTTLE(); - PROGRAM_END(); - if (_setup.percent_flag && _setup.file_pointer) + for (index = (length - 1); // index set on last char + (index >= 0) && (isspace(line[index])); index--); + if (line[index] == '%') // found line with % at end { - line = _setup.linetext; - for (;;) - { /* check for ending percent sign and comment if missing */ - if (fgets(line, LINELEN, _setup.file_pointer) == NULL) - { - enqueue_COMMENT("interpreter: percent sign missing from end of file"); - break; - } - length = strlen(line); - if (length == (LINELEN - 1)) - { // line is too long. need to finish reading the line - for (; fgetc(_setup.file_pointer) != '\n' && !feof(_setup.file_pointer);) - ; - continue; - } - for (index = (length - 1); // index set on last char - (index >= 0) && (isspace(line[index])); index--) - ; - if (line[index] == '%') // found line with % at end - { - for (index--; (index >= 0) && (isspace(line[index])); index--) - ; - if (index == -1) // found line with only percent sign - break; - } - } + for (index--; (index >= 0) && (isspace(line[index])); index--); + if (index == -1) // found line with only percent sign + break; } - unwind_call(INTERP_EXIT, __FILE__, __LINE__, __FUNCTION__); - return INTERP_EXIT; + } } - else - ERS(NCE_BUG_CODE_NOT_M0_M1_M2_M30_M60_M99); - return INTERP_OK; + unwind_call(INTERP_EXIT, __FILE__,__LINE__,__FUNCTION__); + return INTERP_EXIT; + } else + ERS(NCE_BUG_CODE_NOT_M0_M1_M2_M30_M60_M99); + return INTERP_OK; } /*************************************************************************** */ @@ -5910,7 +5303,7 @@ block to generate a move. If the destination point is the same as the current point, the feed rate will be calculated as zero, so a default of 0.1 is applied in this case (It doesn't matter how wrong the feed rate is on a zero-length move) - + If cutter compensation is in use, the path's length may increase or decrease. Also an arc may be added, to go around a corner, before the straight move. For the purpose of calculating the feed rate when in @@ -5921,185 +5314,149 @@ the new longer or shorter straight move are taken at this feed. */ -int Interp::convert_straight(int move, //!< either G_0 or G_1 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_straight(int move, //!< either G_0 or G_1 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end, v_end, w_end; - int status; - - settings->arc_not_allowed = false; - - if (move == G_1) - { - if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) - { - CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); - } - else if (settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) - { - CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); - CHKS((settings->speed[settings->active_spindle] == 0.0), - (_("Cannot feed with zero spindle speed in feed per rev mode"))); - } - else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) - { - CHKS((!block->f_flag), - NCE_F_WORD_MISSING_WITH_INVERSE_TIME_G1_MOVE); - } - } - - settings->motion_mode = move; - CHP(find_ends(block, settings, &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, &u_end, &v_end, &w_end)); - - if (move == G_1) - { - inverse_time_rate_straight(end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end, - block, settings); - } - - // Create a state tag and dump it to canon - write_canon_state_tag(block, settings); - - // Check if the move is a Straight Line (G0 or G1) - - if ((settings->cutter_comp_side != CUTTER_COMP::OFF) && /* ! "== true" */ - (settings->cutter_comp_radius > 0.0)) - { /* radius always is >= 0 */ - - CHKS((block->g_modes[GM_MODAL_0] == G_53), - NCE_CANNOT_USE_G53_WITH_CUTTER_RADIUS_COMP); - - if (settings->plane == CANON_PLANE::XZ) - { - if (settings->cutter_comp_firstmove) - status = convert_straight_comp1(move, block, settings, end_z, end_x, end_y, - AA_end, BB_end, CC_end, u_end, v_end, w_end); - else - status = convert_straight_comp2(move, block, settings, end_z, end_x, end_y, - AA_end, BB_end, CC_end, u_end, v_end, w_end); - } - else if (settings->plane == CANON_PLANE::XY) - { - if (settings->cutter_comp_firstmove) - status = convert_straight_comp1(move, block, settings, end_x, end_y, end_z, - AA_end, BB_end, CC_end, u_end, v_end, w_end); - else - status = convert_straight_comp2(move, block, settings, end_x, end_y, end_z, - AA_end, BB_end, CC_end, u_end, v_end, w_end); - } + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end, v_end, w_end; + int status; + + settings->arc_not_allowed = false; + + if (move == G_1) { + if (settings->feed_mode == FEED_MODE::UNITS_PER_MINUTE) { + CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); + } else if (settings->feed_mode == FEED_MODE::UNITS_PER_REVOLUTION) { + CHKS((settings->feed_rate == 0.0), NCE_CANNOT_DO_G1_WITH_ZERO_FEED_RATE); + CHKS((settings->speed[settings->active_spindle] == 0.0), + (_("Cannot feed with zero spindle speed in feed per rev mode"))); + } else if (settings->feed_mode == FEED_MODE::INVERSE_TIME) { + CHKS((!block->f_flag), + NCE_F_WORD_MISSING_WITH_INVERSE_TIME_G1_MOVE); + } + } + + settings->motion_mode = move; + CHP(find_ends(block, settings, &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, &u_end, &v_end, &w_end)); + + if (move == G_1) { + inverse_time_rate_straight(end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end, + block, settings); + } + + // Create a state tag and dump it to canon + write_canon_state_tag(block, settings); + + if ((settings->cutter_comp_side != CUTTER_COMP::OFF) && /* ! "== true" */ + (settings->cutter_comp_radius > 0.0)) { /* radius always is >= 0 */ + + CHKS((block->g_modes[GM_MODAL_0] == G_53), + NCE_CANNOT_USE_G53_WITH_CUTTER_RADIUS_COMP); + + if(settings->plane == CANON_PLANE::XZ) { + if (settings->cutter_comp_firstmove) + status = convert_straight_comp1(move, block, settings, end_z, end_x, end_y, + AA_end, BB_end, CC_end, u_end, v_end, w_end); else - ERS("BUG: Invalid plane for cutter compensation"); - CHP(status); - } - else if (move == G_0) - { - tag_straight(block,end_x, end_y); // Update the heading and clear arc data for ANY straight move - STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - } - else if (move == G_1) - { - tag_straight(block,end_x, end_y); // Update the heading and clear arc data for ANY straight move - STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, + status = convert_straight_comp2(move, block, settings, end_z, end_x, end_y, + AA_end, BB_end, CC_end, u_end, v_end, w_end); + } else if(settings->plane == CANON_PLANE::XY) { + if (settings->cutter_comp_firstmove) + status = convert_straight_comp1(move, block, settings, end_x, end_y, end_z, + AA_end, BB_end, CC_end, u_end, v_end, w_end); + else + status = convert_straight_comp2(move, block, settings, end_x, end_y, end_z, + AA_end, BB_end, CC_end, u_end, v_end, w_end); + } else ERS("BUG: Invalid plane for cutter compensation"); + CHP(status); + } else if (move == G_0) { + STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - } - else if (move == G_33) - { - if (block->dollar_flag) - { - CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), - (_("Invalid spindle ($) number in G33 move"))); - settings->active_spindle = (int)block->dollar_number; - } - CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && - (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), - _("Spindle not turning in G33")); - START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); - STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); - STOP_SPEED_FEED_SYNCH(); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - } - else if (move == G_33_1) - { - if (block->dollar_flag) - { - CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), - (_("Invalid spindle ($) number in G33.1 move"))); - settings->active_spindle = (int)block->dollar_number; - } - CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && - (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), - _("Spindle not turning in G33.1")); - START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); - double scale = 1; - if (block->i_flag) - { - scale = block->i_number; - if (scale < 1) - { - scale = 1; - } - } - RIGID_TAP(block->line_number, end_x, end_y, end_z, scale); - STOP_SPEED_FEED_SYNCH(); - // after the RIGID_TAP cycle we'll be in the same spot - } - else if (move == G_76) - { - if (block->dollar_flag) - { - CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), - (_("Invalid D-number in G76 cycle"))); - settings->active_spindle = (int)block->dollar_number; - } - CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && - (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), - _("Chosen spindle (%i) not turning in G76"), settings->active_spindle); - CHKS((settings->AA_current != AA_end || - settings->BB_current != BB_end || - settings->CC_current != CC_end || - settings->u_current != u_end || - settings->v_current != v_end || - settings->w_current != w_end), - NCE_CANNOT_MOVE_ROTARY_AXES_WITH_G76); - int result = convert_threading_cycle(block, settings, end_x, end_y, end_z); - if (result != INTERP_OK) - return result; - } - else - ERS(NCE_BUG_CODE_NOT_G0_OR_G1); - - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - return INTERP_OK; + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + } else if (move == G_1) { + STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + } else if (move == G_33) { + if (block->dollar_flag){ + CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), + (_("Invalid spindle ($) number in G33 move"))); + settings->active_spindle = (int)block->dollar_number; + } + CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && + (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), + _("Spindle not turning in G33")); + START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); + STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); + STOP_SPEED_FEED_SYNCH(); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + } else if (move == G_33_1) { + if (block->dollar_flag){ + CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), + (_("Invalid spindle ($) number in G33.1 move"))); + settings->active_spindle = (int)block->dollar_number; + } + CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && + (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), + _("Spindle not turning in G33.1")); + START_SPEED_FEED_SYNCH(settings->active_spindle, block->k_number, 0); + double scale = 1; + if(block->i_flag){ + scale = block->i_number; + if(scale < 1){ + scale = 1; + } + } + RIGID_TAP(block->line_number, end_x, end_y, end_z, scale); + STOP_SPEED_FEED_SYNCH(); + // after the RIGID_TAP cycle we'll be in the same spot + } else if (move == G_76) { + if (block->dollar_flag){ + CHKS((block->dollar_number < 0 || block->dollar_number >= settings->num_spindles), + (_("Invalid D-number in G76 cycle"))); + settings->active_spindle = (int)block->dollar_number; + } + CHKS(((settings->spindle_turning[settings->active_spindle] != CANON_CLOCKWISE) && + (settings->spindle_turning[settings->active_spindle] != CANON_COUNTERCLOCKWISE)), + _("Chosen spindle (%i) not turning in G76"), settings->active_spindle); + CHKS((settings->AA_current != AA_end || + settings->BB_current != BB_end || + settings->CC_current != CC_end || + settings->u_current != u_end || + settings->v_current != v_end || + settings->w_current != w_end), NCE_CANNOT_MOVE_ROTARY_AXES_WITH_G76); + int result = convert_threading_cycle(block, settings, end_x, end_y, end_z); + if(result != INTERP_OK) return result; + } else + ERS(NCE_BUG_CODE_NOT_G0_OR_G1); + + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + return INTERP_OK; } -int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, setup_pointer settings) -{ +int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, setup_pointer settings) { double end_x, end_y, end_z; double AA_end, BB_end, CC_end; double u_end, v_end, w_end; @@ -6118,8 +5475,7 @@ int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, se (axis != 5 && CC_end != settings->CC_current)), _("BUG: An axis incorrectly moved along with an indexer")); - switch (axis) - { + switch(axis) { case 3: issue_straight_index(axis, jnum, AA_end, block->line_number, settings); break; @@ -6135,8 +5491,7 @@ int Interp::convert_straight_indexer(int axis, int jnum, block_pointer block, se return INTERP_OK; } -int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, setup_pointer settings) -{ +int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, setup_pointer settings) { CANON_MOTION_MODE save_mode; double save_tolerance, save_cam_tolerance; // temporarily switch to exact stop mode for indexing move @@ -6146,9 +5501,9 @@ int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, if (save_mode != CANON_EXACT_PATH) SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH, 0); - double AA_end = axis == 3 ? target : settings->AA_current; - double BB_end = axis == 4 ? target : settings->BB_current; - double CC_end = axis == 5 ? target : settings->CC_current; + double AA_end = axis == 3? target: settings->AA_current; + double BB_end = axis == 4? target: settings->BB_current; + double CC_end = axis == 5? target: settings->CC_current; // tell canon that this is a special indexing move UNLOCK_ROTARY(lineno, jnum); @@ -6158,10 +5513,9 @@ int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, LOCK_ROTARY(lineno, jnum); // restore path mode - if (save_mode != CANON_EXACT_PATH) - { + if(save_mode != CANON_EXACT_PATH) { SET_MOTION_CONTROL_MODE(save_mode, save_tolerance); - SET_NAIVECAM_TOLERANCE(save_cam_tolerance); + SET_NAIVECAM_TOLERANCE(save_cam_tolerance); } settings->AA_current = AA_end; @@ -6170,69 +5524,71 @@ int Interp::issue_straight_index(int axis, int jnum, double target, int lineno, return INTERP_OK; } + #define AABBCC settings->AA_current, settings->BB_current, settings->CC_current, settings->u_current, settings->v_current, settings->w_current // make one threading pass. only called from convert_threading_cycle. static void threading_pass(setup_pointer settings, block_pointer block, - int boring, double safe_x, double depth, double end_depth, - double start_y, double start_z, double zoff, double taper_dist, - int entry_taper, int exit_taper, double taper_pitch, - double pitch, double full_threadheight, double target_z) -{ - STRAIGHT_TRAVERSE(block->line_number, boring ? safe_x + depth - end_depth : safe_x - depth + end_depth, - start_y, start_z - zoff, AABBCC); // back - if (taper_dist && entry_taper) - { - DISABLE_FEED_OVERRIDE(); - START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); - STRAIGHT_FEED(block->line_number, boring ? safe_x + depth - full_threadheight : safe_x - depth + full_threadheight, - start_y, start_z - zoff, AABBCC); // in - STRAIGHT_FEED(block->line_number, boring ? safe_x + depth : safe_x - depth, // angled in - start_y, start_z - zoff - taper_dist, AABBCC); - START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); - } - else - { - STRAIGHT_TRAVERSE(block->line_number, boring ? safe_x + depth : safe_x - depth, - start_y, start_z - zoff, AABBCC); // in - DISABLE_FEED_OVERRIDE(); - START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); - } - - if (taper_dist && exit_taper) - { - STRAIGHT_FEED(block->line_number, boring ? safe_x + depth : safe_x - depth, // over - start_y, target_z - zoff + taper_dist, AABBCC); - START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); - STRAIGHT_FEED(block->line_number, boring ? safe_x + depth - full_threadheight : safe_x - depth + full_threadheight, - start_y, target_z - zoff, AABBCC); // angled out - } - else - { - STRAIGHT_FEED(block->line_number, boring ? safe_x + depth : safe_x - depth, - start_y, target_z - zoff, AABBCC); // over + int boring, double safe_x, double depth, double end_depth, + double start_y, double start_z, double zoff, double taper_dist, + int entry_taper, int exit_taper, double taper_pitch, + double pitch, double full_threadheight, double target_z) { + STRAIGHT_TRAVERSE(block->line_number, boring? + safe_x + depth - end_depth: + safe_x - depth + end_depth, + start_y, start_z - zoff, AABBCC); //back + if(taper_dist && entry_taper) { + DISABLE_FEED_OVERRIDE(); + START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); + STRAIGHT_FEED(block->line_number, boring? + safe_x + depth - full_threadheight: + safe_x - depth + full_threadheight, + start_y, start_z - zoff, AABBCC); //in + STRAIGHT_FEED(block->line_number, boring? safe_x + depth: safe_x - depth, //angled in + start_y, start_z - zoff - taper_dist, AABBCC); + START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); + } else { + STRAIGHT_TRAVERSE(block->line_number, boring? safe_x + depth: safe_x - depth, + start_y, start_z - zoff, AABBCC); //in + DISABLE_FEED_OVERRIDE(); + START_SPEED_FEED_SYNCH(settings->active_spindle, pitch, 0); + } + + if(taper_dist && exit_taper) { + STRAIGHT_FEED(block->line_number, boring? safe_x + depth: safe_x - depth, //over + start_y, target_z - zoff + taper_dist, AABBCC); + START_SPEED_FEED_SYNCH(settings->active_spindle, taper_pitch, 0); + STRAIGHT_FEED(block->line_number, boring? + safe_x + depth - full_threadheight: + safe_x - depth + full_threadheight, + start_y, target_z - zoff, AABBCC); //angled out + } else { + STRAIGHT_FEED(block->line_number, boring? safe_x + depth: safe_x - depth, + start_y, target_z - zoff, AABBCC); //over } STOP_SPEED_FEED_SYNCH(); - STRAIGHT_TRAVERSE(block->line_number, boring ? safe_x + depth - end_depth : safe_x - depth + end_depth, - start_y, target_z - zoff, AABBCC); // out + STRAIGHT_TRAVERSE(block->line_number, boring? + safe_x + depth - end_depth: + safe_x - depth + end_depth, + start_y, target_z - zoff, AABBCC); //out ENABLE_FEED_OVERRIDE(); } int Interp::convert_threading_cycle(block_pointer block, - setup_pointer settings, - double end_x, double end_y, double end_z) -{ + setup_pointer settings, + double end_x, double end_y, double end_z) { + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), (_("Cannot use G76 threading cycle with cutter radius compensation on"))); CHKS((block->i_number == 0), - (_("In G76, I must not be 0"))); + (_("In G76, I must not be 0"))); CHKS((block->j_number <= 0), - (_("In G76, J must be greater than 0"))); + (_("In G76, J must be greater than 0"))); CHKS((block->k_number <= block->j_number), - (_("In G76, K must be greater than J"))); + (_("In G76, K must be greater than J"))); double start_x = settings->current_x; double start_y = settings->current_y; @@ -6242,17 +5598,17 @@ int Interp::convert_threading_cycle(block_pointer block, double j_number = block->j_number; double k_number = block->k_number; - if (_setup.lathe_diameter_mode) - { - i_number /= 2; - j_number /= 2; - k_number /= 2; + if(_setup.lathe_diameter_mode){ + i_number /= 2; + j_number /= 2; + k_number /= 2; } + int boring = 0; if (i_number > 0.0) - boring = 1; + boring = 1; double safe_x = start_x; double full_dia_depth = fabs(i_number); @@ -6263,29 +5619,24 @@ int Interp::convert_threading_cycle(block_pointer block, double pitch = block->p_number; double compound_angle = block->q_number; - if (compound_angle == -1) - compound_angle = 0; - compound_angle *= M_PIl / 180.0; - if (end_z > start_z) - compound_angle = -compound_angle; + if(compound_angle == -1) compound_angle = 0; + compound_angle *= M_PIl/180.0; + if(end_z > start_z) compound_angle = -compound_angle; - int spring_cuts = block->h_flag ? block->h_number : 0; + int spring_cuts = block->h_flag ? block->h_number: 0; double degression = block->r_number; - if (degression < 1.0 || !block->r_flag) - degression = 1.0; + if(degression < 1.0 || !block->r_flag) degression = 1.0; - double taper_dist = block->e_flag ? block->e_number : 0.0; - if (taper_dist < 0.0) - taper_dist = 0.0; - double taper_pitch = taper_dist > 0.0 ? pitch * hypot(taper_dist, full_threadheight) / taper_dist : pitch; + double taper_dist = block->e_flag? block->e_number: 0.0; + if(taper_dist < 0.0) taper_dist = 0.0; + double taper_pitch = taper_dist > 0.0? + pitch * hypot(taper_dist, full_threadheight)/taper_dist: pitch; - if (end_z > start_z) - taper_dist = -taper_dist; + if(end_z > start_z) taper_dist = -taper_dist; int taper_flags = block->l_number; - if (taper_flags < 0) - taper_flags = 0; + if(taper_flags < 0) taper_flags = 0; int entry_taper = taper_flags & 1; int exit_taper = taper_flags & 2; @@ -6297,23 +5648,21 @@ int Interp::convert_threading_cycle(block_pointer block, depth = start_depth; zoff = (depth - full_dia_depth) * tan(compound_angle); - while (depth < end_depth) - { - threading_pass(settings, block, boring, safe_x, depth, end_depth, start_y, - start_z, zoff, taper_dist, entry_taper, exit_taper, - taper_pitch, pitch, full_threadheight, target_z); - depth = full_dia_depth + cut_increment * pow(++pass, 1.0 / degression); + while (depth < end_depth) { + threading_pass(settings, block, boring, safe_x, depth, end_depth, start_y, + start_z, zoff, taper_dist, entry_taper, exit_taper, + taper_pitch, pitch, full_threadheight, target_z); + depth = full_dia_depth + cut_increment * pow(++pass, 1.0/degression); zoff = (depth - full_dia_depth) * tan(compound_angle); } // full specified depth now depth = end_depth; zoff = (depth - full_dia_depth) * tan(compound_angle); // cut at least once -- more if spring cuts. - for (int i = 0; i < spring_cuts + 1; i++) - { - threading_pass(settings, block, boring, safe_x, depth, end_depth, start_y, - start_z, zoff, taper_dist, entry_taper, exit_taper, - taper_pitch, pitch, full_threadheight, target_z); + for(int i = 0; iline_number, end_x, end_y, end_z, AABBCC); settings->current_x = end_x; @@ -6323,6 +5672,7 @@ int Interp::convert_threading_cycle(block_pointer block, return INTERP_OK; } + /****************************************************************************/ /*! convert_straight_comp1 @@ -6358,15 +5708,15 @@ the destination point. */ -int Interp::convert_straight_comp1(int move, //!< either G_0 or G_1 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings, //!< pointer to machine settings - double px, //!< X coordinate of end point - double py, //!< Y coordinate of end point - double pz, //!< Z coordinate of end point - double AA_end, //!< A coordinate of end point - double BB_end, //!< B coordinate of end point - double CC_end, //!< C coordinate of end point +int Interp::convert_straight_comp1(int move, //!< either G_0 or G_1 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings, //!< pointer to machine settings + double px, //!< X coordinate of end point + double py, //!< Y coordinate of end point + double pz, //!< Z coordinate of end point + double AA_end, //!< A coordinate of end point + double BB_end, //!< B coordinate of end point + double CC_end, //!< C coordinate of end point double u_end, double v_end, double w_end) { double alpha; @@ -6383,7 +5733,7 @@ int Interp::convert_straight_comp1(int move, //!< either G_0 or G_ CHKS(((side != CUTTER_COMP::LEFT) && (side != CUTTER_COMP::RIGHT)), NCE_BUG_SIDE_NOT_RIGHT_OR_LEFT); CHKS((distance <= radius), _("Length of cutter compensation entry move is not greater than the tool radius")); - alpha = atan2(py - cy, px - cx) + (side == CUTTER_COMP::LEFT ? M_PIl / 2. : -M_PIl / 2.); + alpha = atan2(py - cy, px - cx) + (side == CUTTER_COMP::LEFT ? M_PIl/2. : -M_PIl/2.); end_x = (px + (radius * cos(alpha))); end_y = (py + (radius * sin(alpha))); @@ -6394,21 +5744,18 @@ int Interp::convert_straight_comp1(int move, //!< either G_0 or G_ set_endpoint(cx, cy); - if (move == G_0) - { + if (move == G_0) { enqueue_STRAIGHT_TRAVERSE(settings, block->line_number, cos(alpha), sin(alpha), 0, end_x, end_y, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); } - else if (move == G_1) - { + else if (move == G_1) { enqueue_STRAIGHT_FEED(settings, block->line_number, cos(alpha), sin(alpha), 0, end_x, end_y, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); - } - else + } else ERS(NCE_BUG_CODE_NOT_G0_OR_G1); settings->cutter_comp_firstmove = false; @@ -6490,21 +5837,21 @@ move is the same as the end point for a G1 move, however. */ -int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 - block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings, //!< pointer to machine settings - double px, //!< X coordinate of programmed end point - double py, //!< Y coordinate of programmed end point - double pz, //!< Z coordinate of end point - double AA_end, //!< A coordinate of end point - double BB_end, //!< B coordinate of end point - double CC_end, //!< C coordinate of end point +int Interp::convert_straight_comp2(int move, //!< either G_0 or G_1 + block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings, //!< pointer to machine settings + double px, //!< X coordinate of programmed end point + double py, //!< Y coordinate of programmed end point + double pz, //!< Z coordinate of end point + double AA_end, //!< A coordinate of end point + double BB_end, //!< B coordinate of end point + double CC_end, //!< C coordinate of end point double u_end, double v_end, double w_end) { - double end_x, end_y, end_z; /* x-coordinate of actual end point */ - double mid_x, mid_y; /* x-coordinate of end of added arc, if needed */ - double small = TOLERANCE_CONCAVE_CORNER; /* radians, testing corners */ - double opx = 0, opy = 0, opz = 0; /* old programmed beginning point */ + double end_x, end_y, end_z; /* x-coordinate of actual end point */ + double mid_x, mid_y; /* x-coordinate of end of added arc, if needed */ + double small = TOLERANCE_CONCAVE_CORNER; /* radians, testing corners */ + double opx = 0, opy = 0, opz = 0; /* old programmed beginning point */ double cx, cy, cz; int concave; @@ -6512,51 +5859,39 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_ comp_get_current(settings, &end_x, &end_y, &end_z); comp_get_programmed(settings, &opx, &opy, &opz); - if ((py == opy) && (px == opx)) - { /* no XY motion */ - if (move == G_0) - { + if ((py == opy) && (px == opx)) { /* no XY motion */ + if (move == G_0) { enqueue_STRAIGHT_TRAVERSE(settings, block->line_number, px - opx, py - opy, pz - opz, cx, cy, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); - } - else if (move == G_1) - { + } else if (move == G_1) { enqueue_STRAIGHT_FEED(settings, block->line_number, px - opx, py - opy, pz - opz, cx, cy, pz, AA_end, BB_end, CC_end, u_end, v_end, w_end); - } - else + } else ERS(NCE_BUG_CODE_NOT_G0_OR_G1); // end already filled out, above - } - else - { + } else { // some XY motion double beta = 0.0; // initializing to avoid confusion over else branch below double gamma = 0.0; // that does not define value but returns form function. CUTTER_COMP side = settings->cutter_comp_side; - double radius = settings->cutter_comp_radius; /* will always be positive */ + double radius = settings->cutter_comp_radius; /* will always be positive */ double theta = atan2(cy - opy, cx - opx); double alpha = atan2(py - opy, px - opx); - if (side == CUTTER_COMP::LEFT) - { + if (side == CUTTER_COMP::LEFT) { if (theta < alpha) theta = (theta + (2 * M_PIl)); beta = ((theta - alpha) - M_PI_2l); gamma = M_PI_2l; - } - else if (side == CUTTER_COMP::RIGHT) - { + } else if (side == CUTTER_COMP::RIGHT) { if (alpha < theta) alpha = (alpha + (2 * M_PIl)); beta = ((alpha - theta) - M_PI_2l); gamma = -M_PI_2l; - } - else - { + } else { ERS(NCE_BUG_SIDE_NOT_RIGHT_OR_LEFT); // the ERS macro will return from this function } @@ -6565,34 +5900,27 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_ mid_x = (opx + (radius * cos(alpha + gamma))); mid_y = (opy + (radius * sin(alpha + gamma))); - if ((beta < -small) || (beta > (M_PIl + small))) - { + if ((beta < -small) || (beta > (M_PIl + small))) { concave = 1; - } - else if (beta > (M_PIl - small) && - (!qc().empty() && qc().front().type == QARC_FEED && - ((side == CUTTER_COMP::RIGHT && qc().front().data.arc_feed.turn > 0) || - (side == CUTTER_COMP::LEFT && qc().front().data.arc_feed.turn < 0)))) - { + } else if (beta > (M_PIl - small) && + (!qc().empty() && qc().front().type == QARC_FEED && + ((side == CUTTER_COMP::RIGHT && qc().front().data.arc_feed.turn > 0) || + (side == CUTTER_COMP::LEFT && qc().front().data.arc_feed.turn < 0)))) { // this is an "h" shape, tool on right, going right to left // over the hemispherical round part, then up next to the // vertical part (or, the mirror case). there are two ways // to stay to the "right", either loop down and around, or // stay above and right. we're forcing above and right. concave = 1; - } - else - { + } else { concave = 0; mid_x = (opx + (radius * cos(alpha + gamma))); mid_y = (opy + (radius * sin(alpha + gamma))); } - if (!concave && (beta > small)) - { /* ARC NEEDED */ + if (!concave && (beta > small)) { /* ARC NEEDED */ CHP(move_endpoint_and_flush(settings, cx, cy)); - if (move == G_1) - { + if(move == G_1) { enqueue_ARC_FEED(settings, block->line_number, 0.0, // doesn't matter, since we will not move this arc's endpoint mid_x, mid_y, opx, opy, @@ -6600,9 +5928,7 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_ AA_end, BB_end, CC_end, u_end, v_end, w_end); dequeue_canons(settings); set_endpoint(mid_x, mid_y); - } - else if (move == G_0) - { + } else if(move == G_0) { // we can't go around the corner because there is no // arc traverse. but, if we do this anyway, at least // most of our rapid will be parallel to the original @@ -6615,14 +5941,9 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_ u_end, v_end, w_end); dequeue_canons(settings); set_endpoint(mid_x, mid_y); - } - else - ERS(NCE_BUG_CODE_NOT_G0_OR_G1); - } - else if (concave) - { - if (qc().front().type != QARC_FEED) - { + } else ERS(NCE_BUG_CODE_NOT_G0_OR_G1); + } else if (concave) { + if (qc().front().type != QARC_FEED) { // line->line double retreat; // half the angle of the inside corner @@ -6636,9 +5957,7 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_ // we actually want to move the previous line's endpoint here. That's the same as // discarding that line and doing this one instead. CHP(move_endpoint_and_flush(settings, mid_x, mid_y)); - } - else - { + } else { // arc->line // beware: the arc we saved is the compensated one. arc_feed prev = qc().front().data.arc_feed; @@ -6652,12 +5971,9 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_ theta = (prev.turn > 0) ? base_dir + M_PI_2l : base_dir - M_PI_2l; phi = atan2(prev.center2 - opy, prev.center1 - opx); - if TOOL_INSIDE_ARC (side, prev.turn) - { + if TOOL_INSIDE_ARC(side, prev.turn) { oldrad_uncomp = oldrad + radius; - } - else - { + } else { oldrad_uncomp = oldrad - radius; } @@ -6667,42 +5983,38 @@ int Interp::convert_straight_comp2(int move, //!< either G_0 or G_ double d2; double angle_from_center; - if TOOL_INSIDE_ARC (side, prev.turn) - { + if TOOL_INSIDE_ARC(side, prev.turn) { d2 = d - radius; - double l = d2 / oldrad; + double l = d2/oldrad; CHKS((l > 1.0 || l < -1.0), _("Arc to straight motion makes a corner the compensated tool can't fit in without gouging")); - if (prev.turn > 0) - angle_from_center = -acos(l) + theta + M_PIl; + if(prev.turn > 0) + angle_from_center = - acos(l) + theta + M_PIl; else angle_from_center = acos(l) + theta + M_PIl; - } - else - { + } else { d2 = d + radius; - double l = d2 / oldrad; + double l = d2/oldrad; CHKS((l > 1.0 || l < -1.0), _("Arc to straight motion makes a corner the compensated tool can't fit in without gouging")); - if (prev.turn > 0) + if(prev.turn > 0) angle_from_center = acos(l) + theta + M_PIl; else - angle_from_center = -acos(l) + theta + M_PIl; + angle_from_center = - acos(l) + theta + M_PIl; } mid_x = prev.center1 + oldrad * cos(angle_from_center); mid_y = prev.center2 + oldrad * sin(angle_from_center); CHP(move_endpoint_and_flush(settings, mid_x, mid_y)); } - } - else - { + } else { // no arc needed, also not concave (colinear lines or tangent arc->line) dequeue_canons(settings); set_endpoint(cx, cy); } - (move == G_0 ? enqueue_STRAIGHT_TRAVERSE : enqueue_STRAIGHT_FEED)(settings, block->line_number, - px - opx, py - opy, pz - opz, - end_x, end_y, pz, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); + (move == G_0? enqueue_STRAIGHT_TRAVERSE: enqueue_STRAIGHT_FEED) + (settings, block->line_number, + px - opx, py - opy, pz - opz, + end_x, end_y, pz, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); } comp_set_current(settings, end_x, end_y, pz); @@ -6758,100 +6070,95 @@ spindle and make new entry moves if necessary. */ -int Interp::convert_tool_change(setup_pointer settings) //!< pointer to machine settings +int Interp::convert_tool_change(setup_pointer settings) //!< pointer to machine settings { - if (settings->selected_pocket < 0) - { - ERS(NCE_TXX_MISSING_FOR_M6); - } - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change tools with cutter radius compensation on"))); - - if (!settings->tool_change_with_spindle_on) - { - for (int s = 0; s < settings->num_spindles; s++) - { - STOP_SPINDLE_TURNING(s); - settings->spindle_turning[s] = CANON_STOPPED; - } - } - - if (settings->tool_change_quill_up) - { - double up_z; - double discard; - find_relative(0., 0., 0., 0., 0., 0., 0., 0., 0., - &discard, &discard, &up_z, - &discard, &discard, &discard, - &discard, &discard, &discard, - settings); - COMMENT("AXIS,hide"); - STRAIGHT_TRAVERSE(-1, settings->current_x, settings->current_y, up_z, - settings->AA_current, settings->BB_current, settings->CC_current, - settings->u_current, settings->v_current, settings->w_current); - COMMENT("AXIS,show"); - settings->current_z = up_z; - } - - if (settings->tool_change_at_g30) - { - double end_x; - double end_y; - double end_z; - double AA_end; - double BB_end; - double CC_end; - double u_end; - double v_end; - double w_end; - - find_relative(USER_TO_PROGRAM_LEN(settings->parameters[5181]), - USER_TO_PROGRAM_LEN(settings->parameters[5182]), - USER_TO_PROGRAM_LEN(settings->parameters[5183]), - USER_TO_PROGRAM_ANG(settings->parameters[5184]), - USER_TO_PROGRAM_ANG(settings->parameters[5185]), - USER_TO_PROGRAM_ANG(settings->parameters[5186]), - USER_TO_PROGRAM_LEN(settings->parameters[5187]), - USER_TO_PROGRAM_LEN(settings->parameters[5188]), - USER_TO_PROGRAM_LEN(settings->parameters[5189]), - &end_x, &end_y, &end_z, - &AA_end, &BB_end, &CC_end, - &u_end, &v_end, &w_end, settings); - COMMENT("AXIS,hide"); - - // move indexers first, one at a time - // JOINTS_AXES settings->*_indexer_jnum == -1 means notused - if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum)) - issue_straight_index(3, settings->a_indexer_jnum, AA_end, -1, settings); - if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum)) - issue_straight_index(4, settings->b_indexer_jnum, BB_end, -1, settings); - if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum)) - issue_straight_index(5, settings->c_indexer_jnum, CC_end, -1, settings); - - STRAIGHT_TRAVERSE(-1, end_x, end_y, end_z, - AA_end, BB_end, CC_end, - u_end, v_end, w_end); - COMMENT("AXIS,show"); - settings->current_x = end_x; - settings->current_y = end_y; - settings->current_z = end_z; - settings->AA_current = AA_end; - settings->BB_current = BB_end; - settings->CC_current = CC_end; - settings->u_current = u_end; - settings->v_current = v_end; - settings->w_current = w_end; - } - - CHANGE_TOOL(); - - settings->current_pocket = settings->selected_pocket; - // tool change can move the controlled point. reread it: - settings->toolchange_flag = true; - set_tool_parameters(); - return INTERP_OK; + if (settings->selected_pocket < 0) { + ERS(NCE_TXX_MISSING_FOR_M6); + } + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change tools with cutter radius compensation on"))); + + if (!settings->tool_change_with_spindle_on) { + for (int s = 0; s < settings->num_spindles; s++){ + STOP_SPINDLE_TURNING(s); + settings->spindle_turning[s] = CANON_STOPPED; + } + } + + if (settings->tool_change_quill_up) { + double up_z; + double discard; + find_relative(0., 0., 0., 0., 0., 0., 0., 0., 0., + &discard, &discard, &up_z, + &discard, &discard, &discard, + &discard, &discard, &discard, + settings); + COMMENT("AXIS,hide"); + STRAIGHT_TRAVERSE(-1, settings->current_x, settings->current_y, up_z, + settings->AA_current, settings->BB_current, settings->CC_current, + settings->u_current, settings->v_current, settings->w_current); + COMMENT("AXIS,show"); + settings->current_z = up_z; + } + + if (settings->tool_change_at_g30) { + double end_x; + double end_y; + double end_z; + double AA_end; + double BB_end; + double CC_end; + double u_end; + double v_end; + double w_end; + + find_relative(USER_TO_PROGRAM_LEN(settings->parameters[5181]), + USER_TO_PROGRAM_LEN(settings->parameters[5182]), + USER_TO_PROGRAM_LEN(settings->parameters[5183]), + USER_TO_PROGRAM_ANG(settings->parameters[5184]), + USER_TO_PROGRAM_ANG(settings->parameters[5185]), + USER_TO_PROGRAM_ANG(settings->parameters[5186]), + USER_TO_PROGRAM_LEN(settings->parameters[5187]), + USER_TO_PROGRAM_LEN(settings->parameters[5188]), + USER_TO_PROGRAM_LEN(settings->parameters[5189]), + &end_x, &end_y, &end_z, + &AA_end, &BB_end, &CC_end, + &u_end, &v_end, &w_end, settings); + COMMENT("AXIS,hide"); + + // move indexers first, one at a time + // JOINTS_AXES settings->*_indexer_jnum == -1 means notused + if (AA_end != settings->AA_current && (-1 != settings->a_indexer_jnum) ) + issue_straight_index(3,settings->a_indexer_jnum, AA_end, -1, settings); + if (BB_end != settings->BB_current && (-1 != settings->b_indexer_jnum) ) + issue_straight_index(4,settings->b_indexer_jnum, BB_end, -1, settings); + if (CC_end != settings->CC_current && (-1 != settings->c_indexer_jnum) ) + issue_straight_index(5,settings->c_indexer_jnum, CC_end, -1, settings); + + STRAIGHT_TRAVERSE(-1, end_x, end_y, end_z, + AA_end, BB_end, CC_end, + u_end, v_end, w_end); + COMMENT("AXIS,show"); + settings->current_x = end_x; + settings->current_y = end_y; + settings->current_z = end_z; + settings->AA_current = AA_end; + settings->BB_current = BB_end; + settings->CC_current = CC_end; + settings->u_current = u_end; + settings->v_current = v_end; + settings->w_current = w_end; + } + + CHANGE_TOOL(); + + settings->current_pocket = settings->selected_pocket; + // tool change can move the controlled point. reread it: + settings->toolchange_flag = true; + set_tool_parameters(); + return INTERP_OK; } /****************************************************************************/ @@ -6885,154 +6192,122 @@ integer when it was read, so that check does not need to be repeated. */ -int Interp::convert_tool_length_offset(int g_code, //!< g_code being executed (must be G_43 or G_49) - block_pointer block, //!< pointer to a block of RS274/NGC instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_tool_length_offset(int g_code, //!< g_code being executed (must be G_43 or G_49) + block_pointer block, //!< pointer to a block of RS274/NGC instructions + setup_pointer settings) //!< pointer to machine settings { - int idx; - EmcPose tool_offset; - ZERO_EMC_POSE(tool_offset); - settings->g43_with_zero_offset = 0; - - CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), - (_("Cannot change tool offset with cutter radius compensation on"))); - if (g_code == G_49) - { + int idx; + EmcPose tool_offset; + ZERO_EMC_POSE(tool_offset); + settings->g43_with_zero_offset = 0; + + CHKS((settings->cutter_comp_side != CUTTER_COMP::OFF), + (_("Cannot change tool offset with cutter radius compensation on"))); + if (g_code == G_49) { + idx = 0; + } else if (g_code == G_43) { + logDebug("convert_tool_length_offset h_flag=%d h_number=%d toolchange_flag=%d current_pocket=%d\n", + block->h_flag,block->h_number,settings->toolchange_flag,settings->current_pocket); + if(block->h_flag) { + CHP((find_tool_index(settings, block->h_number, &idx))); + //sequence: + // t12m6 + // g43 should use t12 offset + // g43h12 should also use t12 offset + if (idx==0 && settings->random_toolchanger) { + idx=settings->current_pocket; + } + } else if (settings->toolchange_flag) { + // Tool change is in progress, so the "current tool" is in its + // original index still. + idx = settings->current_pocket; + } else { + // Tool change is done so the current tool is in index 0 (aka the + // spindle). idx = 0; } - else if (g_code == G_43) - { - logDebug("convert_tool_length_offset h_flag=%d h_number=%d toolchange_flag=%d current_pocket=%d\n", - block->h_flag, block->h_number, settings->toolchange_flag, settings->current_pocket); - if (block->h_flag) - { - CHP((find_tool_index(settings, block->h_number, &idx))); - // sequence: - // t12m6 - // g43 should use t12 offset - // g43h12 should also use t12 offset - if (idx == 0 && settings->random_toolchanger) - { - idx = settings->current_pocket; - } - } - else if (settings->toolchange_flag) - { - // Tool change is in progress, so the "current tool" is in its - // original index still. - idx = settings->current_pocket; - } - else - { - // Tool change is done so the current tool is in index 0 (aka the - // spindle). - idx = 0; - } - logDebug("convert_tool_length_offset: using index=%d spindle_toolno=%d pocket_toolno=%d", - idx, settings->tool_table[0].toolno, settings->tool_table[settings->current_pocket].toolno); - - tool_offset.tran.x = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); - tool_offset.tran.y = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); - tool_offset.tran.z = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); - tool_offset.a = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); - tool_offset.b = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); - tool_offset.c = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); - tool_offset.u = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); - tool_offset.v = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); - tool_offset.w = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); - settings->g43_with_zero_offset = - !(tool_offset.tran.x || tool_offset.tran.y || tool_offset.tran.z || - tool_offset.a || tool_offset.b || tool_offset.c || - tool_offset.u || tool_offset.v || tool_offset.w); - } - else if (g_code == G_43_1) - { - tool_offset = settings->tool_offset; - idx = -1; - if (block->x_flag) - tool_offset.tran.x = block->x_number; - if (block->y_flag) - tool_offset.tran.y = block->y_number; - if (block->z_flag) - tool_offset.tran.z = block->z_number; - if (block->a_flag) - tool_offset.a = block->a_number; - if (block->b_flag) - tool_offset.b = block->b_number; - if (block->c_flag) - tool_offset.c = block->c_number; - if (block->u_flag) - tool_offset.u = block->u_number; - if (block->v_flag) - tool_offset.v = block->v_number; - if (block->w_flag) - tool_offset.w = block->w_number; - } - else if (g_code == G_43_2) - { - CHKS((block->h_flag && (block->x_flag || block->y_flag || block->z_flag || block->a_flag || block->b_flag || block->c_flag || block->u_flag || block->v_flag || block->w_flag)), (_("G43.2: Can not have both H and axis words"))); - CHKS((!block->h_flag && !block->x_flag && !block->y_flag && !block->z_flag && !block->a_flag && !block->b_flag && !block->c_flag && !block->u_flag && !block->v_flag && !block->w_flag), (_("G43.2: No axes specified and H word missing"))); - tool_offset = settings->tool_offset; - if (block->h_flag) - { - CHP((find_tool_index(settings, block->h_number, &idx))); - tool_offset.tran.x += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); - tool_offset.tran.y += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); - tool_offset.tran.z += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); - tool_offset.a += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); - tool_offset.b += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); - tool_offset.c += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); - tool_offset.u += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); - tool_offset.v += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); - tool_offset.w += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); - } - else - { - if (block->x_flag) - tool_offset.tran.x += block->x_number; - if (block->y_flag) - tool_offset.tran.y += block->y_number; - if (block->z_flag) - tool_offset.tran.z += block->z_number; - if (block->a_flag) - tool_offset.a += block->a_number; - if (block->b_flag) - tool_offset.b += block->b_number; - if (block->c_flag) - tool_offset.c += block->c_number; - if (block->u_flag) - tool_offset.u += block->u_number; - if (block->v_flag) - tool_offset.v += block->v_number; - if (block->w_flag) - tool_offset.w += block->w_number; - } - } - else - { - ERS("BUG: Code not G43, G43.1, G43.2, or G49"); - } - USE_TOOL_LENGTH_OFFSET(tool_offset); - - double dx, dy; - - dx = settings->tool_offset.tran.x - tool_offset.tran.x; - dy = settings->tool_offset.tran.y - tool_offset.tran.y; - - rotate(&dx, &dy, -settings->rotation_xy); - - settings->current_x += dx; - settings->current_y += dy; - settings->current_z += settings->tool_offset.tran.z - tool_offset.tran.z; - settings->AA_current += settings->tool_offset.a - tool_offset.a; - settings->BB_current += settings->tool_offset.b - tool_offset.b; - settings->CC_current += settings->tool_offset.c - tool_offset.c; - settings->u_current += settings->tool_offset.u - tool_offset.u; - settings->v_current += settings->tool_offset.v - tool_offset.v; - settings->w_current += settings->tool_offset.w - tool_offset.w; - - settings->tool_offset = tool_offset; - return INTERP_OK; + logDebug("convert_tool_length_offset: using index=%d spindle_toolno=%d pocket_toolno=%d", + idx, settings->tool_table[0].toolno,settings->tool_table[settings->current_pocket].toolno); + + tool_offset.tran.x = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); + tool_offset.tran.y = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); + tool_offset.tran.z = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); + tool_offset.a = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); + tool_offset.b = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); + tool_offset.c = USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); + tool_offset.u = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); + tool_offset.v = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); + tool_offset.w = USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); + settings->g43_with_zero_offset = + !(tool_offset.tran.x || tool_offset.tran.y || tool_offset.tran.z || + tool_offset.a || tool_offset.b || tool_offset.c || + tool_offset.u || tool_offset.v || tool_offset.w); + } else if (g_code == G_43_1) { + tool_offset = settings->tool_offset; + idx = -1; + if(block->x_flag) tool_offset.tran.x = block->x_number; + if(block->y_flag) tool_offset.tran.y = block->y_number; + if(block->z_flag) tool_offset.tran.z = block->z_number; + if(block->a_flag) tool_offset.a = block->a_number; + if(block->b_flag) tool_offset.b = block->b_number; + if(block->c_flag) tool_offset.c = block->c_number; + if(block->u_flag) tool_offset.u = block->u_number; + if(block->v_flag) tool_offset.v = block->v_number; + if(block->w_flag) tool_offset.w = block->w_number; + } else if (g_code == G_43_2) { + CHKS((block->h_flag && (block->x_flag || block->y_flag || block->z_flag + || block->a_flag || block->b_flag || block->c_flag || block->u_flag + || block->v_flag || block->w_flag)), (_("G43.2: Can not have both H and axis words"))); + CHKS((!block->h_flag && !block->x_flag && !block->y_flag && !block->z_flag + && !block->a_flag &&!block->b_flag && !block->c_flag && !block->u_flag + && !block->v_flag && !block->w_flag), (_("G43.2: No axes specified and H word missing"))); + tool_offset = settings->tool_offset; + if (block->h_flag){ + CHP((find_tool_index(settings, block->h_number, &idx))); + tool_offset.tran.x += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.x); + tool_offset.tran.y += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.y); + tool_offset.tran.z += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.tran.z); + tool_offset.a += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.a); + tool_offset.b += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.b); + tool_offset.c += USER_TO_PROGRAM_ANG(settings->tool_table[idx].offset.c); + tool_offset.u += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.u); + tool_offset.v += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.v); + tool_offset.w += USER_TO_PROGRAM_LEN(settings->tool_table[idx].offset.w); + } else { + if(block->x_flag) tool_offset.tran.x += block->x_number; + if(block->y_flag) tool_offset.tran.y += block->y_number; + if(block->z_flag) tool_offset.tran.z += block->z_number; + if(block->a_flag) tool_offset.a += block->a_number; + if(block->b_flag) tool_offset.b += block->b_number; + if(block->c_flag) tool_offset.c += block->c_number; + if(block->u_flag) tool_offset.u += block->u_number; + if(block->v_flag) tool_offset.v += block->v_number; + if(block->w_flag) tool_offset.w += block->w_number; + } + } else { + ERS("BUG: Code not G43, G43.1, G43.2, or G49"); + } + USE_TOOL_LENGTH_OFFSET(tool_offset); + + double dx, dy; + + dx = settings->tool_offset.tran.x - tool_offset.tran.x; + dy = settings->tool_offset.tran.y - tool_offset.tran.y; + + rotate(&dx, &dy, -settings->rotation_xy); + + settings->current_x += dx; + settings->current_y += dy; + settings->current_z += settings->tool_offset.tran.z - tool_offset.tran.z; + settings->AA_current += settings->tool_offset.a - tool_offset.a; + settings->BB_current += settings->tool_offset.b - tool_offset.b; + settings->CC_current += settings->tool_offset.c - tool_offset.c; + settings->u_current += settings->tool_offset.u - tool_offset.u; + settings->v_current += settings->tool_offset.v - tool_offset.v; + settings->w_current += settings->tool_offset.w - tool_offset.w; + + settings->tool_offset = tool_offset; + return INTERP_OK; } /****************************************************************************/ @@ -7060,110 +6335,20 @@ A zero t_number is allowed and means no tool should be selected. // OK to select tool in a concave corner, I think? -int Interp::convert_tool_select(block_pointer block, //!< pointer to a block of RS274 instructions - setup_pointer settings) //!< pointer to machine settings +int Interp::convert_tool_select(block_pointer block, //!< pointer to a block of RS274 instructions + setup_pointer settings) //!< pointer to machine settings { - int idx; - CHP((find_tool_index(settings, block->t_number, &idx))); - SELECT_TOOL(block->t_number); - settings->selected_pocket = idx; - settings->selected_tool = block->t_number; - return INTERP_OK; + int idx; + CHP((find_tool_index(settings, block->t_number, &idx))); + SELECT_TOOL(block->t_number); + settings->selected_pocket = idx; + settings->selected_tool = block->t_number; + return INTERP_OK; } + int Interp::update_tag(StateTag &tag) { UPDATE_TAG(tag); return INTERP_OK; } - -int Interp::tag_straight(block_pointer block, double x, double y) -{ - // Use a static variable to remember the heading between function calls - // Initialize to 0.0 or your preferred default start angle - static double last_valid_heading = 0.0; - - double start_x = _setup.current_x; - double start_y = _setup.current_y; - - double dx = x - start_x; - double dy = y - start_y; - - // Only update the heading if there is actual XY motion - if (hypot(dx, dy) > 0.0001) - { - double heading = atan2(dy, dx) * (180.0 / M_PI); - - // Normalization - heading = fmod(heading, 360.0); - if (heading < 0.0) heading += 360.0; - - // Store it for this block AND for the next Z-only move - block->arc_heading = heading; - last_valid_heading = heading; - } - else - { - // For Z-only moves, reuse the last calculated XY heading - block->arc_heading = last_valid_heading; - } - - // Reset Arc data for safety - block->radius = 0.0; - block->arc_center_x = 0.0; - block->arc_center_y = 0.0; - block->normal_heading = 0.0; - block->iscircle = false; - - // Ship the data to the status registers - write_canon_state_tag(block, &_setup); - - return INTERP_OK; -} - -int Interp::tag_arc(block_pointer block, double x, double y, double center_x, double center_y, int move) - { - // Silence unused parameter warnings - (void)x; - (void)y; - double dx = center_x - _setup.current_x; - double dy = center_y - _setup.current_y; - double radial_angle = atan2(dy, dx); // radial angle (centre to tool) - double tangent_angle; - - // The Tangent is 90 degrees offset - if (move == G_3) { // Counter-Clockwise - tangent_angle = radial_angle + (M_PI / 2.0); - } else { // Clockwise (G_2) - tangent_angle = radial_angle - (M_PI / 2.0); - } - // Convert to degrees for HAL pins - double heading = tangent_angle * (180.0 / M_PI); - - // Normalise 0-360 - while (heading < 0) heading += 360.0; - while (heading >= 360.0) heading -= 360.0; - - double normal_heading = radial_angle * (180.0 / M_PI) + 180.0; - // Normalise 0-360 - while (normal_heading < 0) - normal_heading += 360.0; - while (normal_heading >= 360.0) - normal_heading -= 360.0; - // Check if this is a full circle allowing for tolerance - double start_dx = _setup.current_x - x; - double start_dy = _setup.current_y - y; - double distance_to_end = hypot(start_dx, start_dy); - block->iscircle = (distance_to_end < TOLERANCE_EQUAL) ? 1 : 0; - - // Save for tags - block->arc_center_x = center_x; - block->arc_center_y = center_y; - block->arc_radius = hypot(dx, dy); - block->arc_heading = heading; - block->normal_heading = normal_heading; - write_canon_state_tag(block,&_setup); - - //rtapi_print("DEBUG WRITE: CX= %f, CY= %f, Radius = %f, Heading = %f\n", block->arc_center_x, block->arc_center_y, block->arc_radius, block->arc_heading ); - return INTERP_OK; - } From 5461c2d1f7a712f364dde7a595d77d7ed64b07b8 Mon Sep 17 00:00:00 2001 From: rod Date: Mon, 4 May 2026 09:00:04 +1000 Subject: [PATCH 14/23] Reformatted interp_conv.cc by reverting to master branch version, then reapplying chnagfes in this PR to it --- src/emc/rs274ngc/interp_convert.cc | 126 +++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/src/emc/rs274ngc/interp_convert.cc b/src/emc/rs274ngc/interp_convert.cc index 59171b7306e..2786745714e 100644 --- a/src/emc/rs274ngc/interp_convert.cc +++ b/src/emc/rs274ngc/interp_convert.cc @@ -1148,6 +1148,29 @@ int Interp::convert_arc2(int move, //!< either G_2 (cw arc) or G_3 (ccw ar inverse_time_rate_arc(*current1, *current2, *current3, center1, center2, turn, end1, end2, end3, block, settings); + // We need to determine which 'center' is X and which is Y + double abs_x = 0, abs_y = 0; + double abs_cx = 0, abs_cy = 0; + + if (settings->plane == CANON_PLANE::XY) { + abs_x = end1; + abs_y = end2; + abs_cx = center1; + abs_cy = center2; + } else if (settings->plane == CANON_PLANE::XZ) { + abs_x = end1; + abs_y = 0; // Or whatever your system expects for non-active axes + abs_cx = center1; + abs_cy = 0; + } else { // YZ plane + abs_x = 0; + abs_y = end1; + abs_cx = 0; + abs_cy = center1; + } + // Call tagger with the resolved X, Y, CX, and CY + tag_arc(block, abs_x, abs_y, abs_cx, abs_cy, move); + ARC_FEED(block->line_number, end1, end2, center1, center2, turn, end3, AA_end, BB_end, CC_end, u, v, w); *current1 = end1; @@ -5379,6 +5402,7 @@ int Interp::convert_straight(int move, //!< either G_0 or G_1 } else ERS("BUG: Invalid plane for cutter compensation"); CHP(status); } else if (move == G_0) { + tag_straight(block,end_x, end_y); // Update the heading and clear arc data for ANY straight move STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); @@ -5386,6 +5410,7 @@ int Interp::convert_straight(int move, //!< either G_0 or G_1 settings->current_y = end_y; settings->current_z = end_z; } else if (move == G_1) { + tag_straight(block,end_x, end_y); // Update the heading and clear arc data for ANY straight move STRAIGHT_FEED(block->line_number, end_x, end_y, end_z, AA_end, BB_end, CC_end, u_end, v_end, w_end); @@ -6352,3 +6377,104 @@ int Interp::update_tag(StateTag &tag) UPDATE_TAG(tag); return INTERP_OK; } + +/****************************************************************************/ + +/*! tag_straight + +Returned Value: int + Applies new geometric tags for straight moves (G0 and G1 segments) + Called from convert_arc2 +*/ + +int Interp::tag_straight(block_pointer block, double x, double y) +{ + // Use a static variable to remember the heading between function calls + // Initialize to 0.0 or your preferred default start angle + static double last_valid_heading = 0.0; + + double start_x = _setup.current_x; + double start_y = _setup.current_y; + + double dx = x - start_x; + double dy = y - start_y; + + // Only update the heading if there is actual XY motion + if (hypot(dx, dy) > 0.0001) + { + double heading = atan2(dy, dx) * (180.0 / M_PI); + + // Normalization + heading = fmod(heading, 360.0); + if (heading < 0.0) heading += 360.0; + + // Store it for this block AND for the next Z-only move + block->arc_heading = heading; + last_valid_heading = heading; + } + else + { + // For Z-only moves, reuse the last calculated XY heading + block->arc_heading = last_valid_heading; + } + + // Reset Arc data for safety + block->radius = 0.0; + block->arc_center_x = 0.0; + block->arc_center_y = 0.0; + block->iscircle = false; + + // Ship the data to the status registers + write_canon_state_tag(block, &_setup); + + return INTERP_OK; +} + +/****************************************************************************/ + +/*! tag_arcs + +Returned Value: int + Applies new tags for Arcs (G2 and G3 segments) + Called from convert_arc2 +*/ + +int Interp::tag_arc(block_pointer block, double x, double y, double center_x, double center_y, int move) + { + // Silence unused parameter warnings + (void)x; + (void)y; + double dx = center_x - _setup.current_x; + double dy = center_y - _setup.current_y; + double radial_angle = atan2(dy, dx); // radial angle (centre to tool) + double tangent_angle; + + // The Tangent is 90 degrees offset + if (move == G_3) { // Counter-Clockwise + tangent_angle = radial_angle + (M_PI / 2.0); + } else { // Clockwise (G_2) + tangent_angle = radial_angle - (M_PI / 2.0); + } + // Convert to degrees for HAL pins + double heading = tangent_angle * (180.0 / M_PI); + + // Normalise 0-360 + while (heading < 0) heading += 360.0; + while (heading >= 360.0) heading -= 360.0; + + // Check if this is a full circle allowing for tolerance + double start_dx = _setup.current_x - x; + double start_dy = _setup.current_y - y; + double distance_to_end = hypot(start_dx, start_dy); + block->iscircle = (distance_to_end < TOLERANCE_EQUAL) ? 1 : 0; + + // Save for tags + block->arc_center_x = center_x; + block->arc_center_y = center_y; + block->arc_radius = hypot(dx, dy); + block->arc_heading = heading; + write_canon_state_tag(block,&_setup); + + //rtapi_print("DEBUG WRITE: CX= %f, CY= %f, Radius = %f, Heading = %f\n", block->arc_center_x, block->arc_center_y, block->arc_radius, block->arc_heading ); + return INTERP_OK; + } From bafea8519765466cd63665d2cd8e909a48818aad Mon Sep 17 00:00:00 2001 From: rod Date: Mon, 4 May 2026 21:16:42 +1000 Subject: [PATCH 15/23] Restore -nc-files folder that I thought had been added by bug introduced in #3924 --- nc_files/3D_Chips.html | 48 + nc_files/3D_Chips.ngc | 4711 ++++++++++++ nc_files/3dtest.ngc | 54 + nc_files/M101 | 22 + nc_files/M102.c | 29 + nc_files/arcspiral.ngc | 1008 +++ nc_files/b-index.ngc | 14 + nc_files/cds.ngc | 284 + nc_files/comp-g1.ngc | 39 + nc_files/comp.ngc | 61 + nc_files/comp311.ngc | 37 + nc_files/comp311_2.ngc | 36 + nc_files/cone.ngc | 42 + nc_files/daisy.ngc | 159 + nc_files/factorial.ngc | 11 + nc_files/filtertest-gui.py | 64 + nc_files/filtertest.py | 19 + nc_files/flowsnake.ngc | 45 + nc_files/flowsnake.py | 29 + nc_files/g20sub.ngc | 14 + nc_files/g76.ngc | 115 + nc_files/g881.ngc | 37 + nc_files/g881min.ngc | 5 + nc_files/g882.ngc | 6 + nc_files/gcmc_lib/cpocket.gcmc | 196 + nc_files/gcmc_lib/cpocket.png | Bin 0 -> 5836 bytes nc_files/gcmc_lib/drill.gcmc | 58 + nc_files/gcmc_lib/drill.png | Bin 0 -> 2578 bytes nc_files/gcmc_lib/ensure_units.gcmc | 35 + nc_files/gcmc_lib/involute-gear.gcmc | 240 + nc_files/gcmc_lib/involute-gear.png | Bin 0 -> 4661 bytes nc_files/gcmc_lib/rectangle.gcmc | 70 + nc_files/gcmc_lib/star.gcmc | 123 + nc_files/gcmc_lib/star.png | Bin 0 -> 2705 bytes nc_files/gcmc_lib/trochoid-path.gcmc | 198 + nc_files/gcmc_lib/trochoid-path.png | Bin 0 -> 14921 bytes nc_files/gcmc_lib/wheels.gcmc | 167 + nc_files/gladevcp_lib/oword.ngc | 14 + ..._tools_with_cutter_radius_compensation.ngc | 93 + nc_files/gridprobe.ngc | 45 + nc_files/hole-circle.ngc | 12 + nc_files/holecircle.py | 245 + nc_files/increment.ngc | 4 + nc_files/involute.py | 13 + nc_files/lathe-g76.ngc | 115 + nc_files/lathe_g70_71_demo.ngc | 35 + nc_files/lathe_g7x_face_boring.ngc | 19 + nc_files/lathe_g7x_quadrants.ngc | 64 + nc_files/lathe_pawn.ngc | 151 + nc_files/lathecomp.ngc | 49 + nc_files/m250.ngc | 29 + nc_files/m61demo.ngc | 34 + nc_files/m6demo.ngc | 88 + nc_files/m6remap.ngc | 6 + nc_files/m70m72-demo.ngc | 41 + nc_files/m73-demo.ngc | 53 + nc_files/m75.ngc | 33 + nc_files/m76.ngc | 29 + nc_files/macros/lathe/LatheMacro.svg | 6619 +++++++++++++++++ nc_files/macros/lathe/boring.ngc | 103 + nc_files/macros/lathe/chamfer.ngc | 102 + nc_files/macros/lathe/drill.ngc | 86 + nc_files/macros/lathe/facing.ngc | 74 + nc_files/macros/lathe/go_to_position.ngc | 30 + nc_files/macros/lathe/go_to_position.png | Bin 0 -> 3725 bytes nc_files/macros/lathe/go_to_position_data.txt | 2 + nc_files/macros/lathe/probe-hole.ngc | 85 + nc_files/macros/lathe/radius.ngc | 85 + nc_files/macros/lathe/threading.ngc | 93 + nc_files/macros/lathe/turning.ngc | 109 + nc_files/macros/mill/go_to_home.ngc | 13 + nc_files/macros/mill/go_to_home.svg | 82 + nc_files/macros/mill/go_to_position.ngc | 27 + nc_files/macros/mill/go_to_position.png | Bin 0 -> 3725 bytes nc_files/macros/mill/go_to_zero.ngc | 18 + nc_files/macros/mill/go_to_zero.png | Bin 0 -> 3742 bytes nc_files/mmount.ngc | 335 + nc_files/nestedcall.ngc | 14 + nc_files/ngcgui_lib/arc1.ngc | 301 + nc_files/ngcgui_lib/arc1.png | Bin 0 -> 6732 bytes nc_files/ngcgui_lib/arc2.ngc | 54 + nc_files/ngcgui_lib/arc2.png | Bin 0 -> 5848 bytes nc_files/ngcgui_lib/backlash.ngc | 89 + nc_files/ngcgui_lib/db25.ngc | 54 + nc_files/ngcgui_lib/gosper.ngc | 67 + nc_files/ngcgui_lib/gosper.png | Bin 0 -> 7972 bytes nc_files/ngcgui_lib/helix.ngc | 154 + nc_files/ngcgui_lib/helix_rtheta.ngc | 29 + nc_files/ngcgui_lib/hole_circle.ngc | 45 + nc_files/ngcgui_lib/ihex.ngc | 218 + nc_files/ngcgui_lib/iquad.ngc | 179 + nc_files/ngcgui_lib/iquad.png | Bin 0 -> 7475 bytes nc_files/ngcgui_lib/lathe/g76base.ngc | 119 + nc_files/ngcgui_lib/lathe/g76base.png | Bin 0 -> 5870 bytes nc_files/ngcgui_lib/lathe/g76diam.ngc | 69 + nc_files/ngcgui_lib/lathe/g76diam.png | Bin 0 -> 7364 bytes nc_files/ngcgui_lib/lathe/id.ngc | 56 + nc_files/ngcgui_lib/lathe/lathe_std.ngc | 12 + nc_files/ngcgui_lib/lathe/od.ngc | 48 + nc_files/ngcgui_lib/lathe/taper-od.ngc | 32 + nc_files/ngcgui_lib/mfiles/M110 | 19 + nc_files/ngcgui_lib/ohex.ngc | 175 + nc_files/ngcgui_lib/oquad.ngc | 136 + nc_files/ngcgui_lib/qpex.ngc | 139 + nc_files/ngcgui_lib/qpex_mm.ngc | 136 + nc_files/ngcgui_lib/qpocket.ngc | 485 ++ nc_files/ngcgui_lib/qpocket.png | Bin 0 -> 12102 bytes nc_files/ngcgui_lib/rectangle_probe.ngc | 87 + nc_files/ngcgui_lib/simp.ngc | 11 + nc_files/ngcgui_lib/simp.png | Bin 0 -> 3548 bytes nc_files/ngcgui_lib/slot.ngc | 93 + nc_files/ngcgui_lib/slot.png | Bin 0 -> 5560 bytes nc_files/ngcgui_lib/utilitysubs/bye.ngc | 3 + nc_files/ngcgui_lib/utilitysubs/cross.ngc | 40 + nc_files/ngcgui_lib/utilitysubs/dir.ngc | 129 + nc_files/ngcgui_lib/utilitysubs/dot.ngc | 45 + nc_files/ngcgui_lib/utilitysubs/entry.ngc | 84 + .../ngcgui_lib/utilitysubs/g59preview.ngc | 14 + .../ngcgui_lib/utilitysubs/gosper_sub.ngc | 29 + nc_files/ngcgui_lib/utilitysubs/in_std.ngc | 12 + nc_files/ngcgui_lib/utilitysubs/line.ngc | 31 + nc_files/ngcgui_lib/utilitysubs/loadtool.ngc | 51 + nc_files/ngcgui_lib/utilitysubs/mm_std.ngc | 11 + nc_files/ngcgui_lib/utilitysubs/move.ngc | 34 + .../ngcgui_lib/utilitysubs/pointsdata.ngc | 53 + nc_files/ngcgui_lib/utilitysubs/spin.ngc | 20 + nc_files/ngcgui_lib/xyz.ngc | 85 + nc_files/ngcgui_lib/xyz.png | Bin 0 -> 10991 bytes nc_files/nurbs/G5/Curva_Chitarra #1=3_G5.ngc | 46 + nc_files/nurbs/G5/Curva_Delfino #1=1_G5.ngc | 90 + nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.jpg | Bin 0 -> 144217 bytes nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc | 42 + nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc | 55 + nc_files/nurbs/G5/butterfly-xy.ngc | 105 + nc_files/nurbs/G5/butterfly-yz.ngc | 106 + nc_files/nurbs/G5/butterfly-zx.ngc | 106 + nc_files/nurbs/G5/leto-xy.ngc | 33 + nc_files/nurbs/G5/nurbs-xy.ngc | 28 + nc_files/nurbs/G5/nurbs-yz.ngc | 28 + nc_files/nurbs/G5/nurbs-zx.ngc | 28 + nc_files/nurbs/G5/trident-xy-yz-zx.ngc | 77 + nc_files/nurbs/G5/trident-xy.ngc | 33 + nc_files/nurbs/G5/trident-yz.ngc | 33 + nc_files/nurbs/G5/trident-zx.ngc | 33 + nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg | Bin 0 -> 135001 bytes nc_files/nurbs/G6/Curva_Chitarra #1=1.jpg | Bin 0 -> 140216 bytes nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc | 47 + nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc | 48 + nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc | 48 + nc_files/nurbs/G6/Curva_Delfino #1=1.jpg | Bin 0 -> 135488 bytes nc_files/nurbs/G6/Curva_Delfino #1=1.ngc | 54 + nc_files/nurbs/G6/Curva_Delfino #1=2.ngc | 54 + nc_files/nurbs/G6/Curva_Delfino #1=3.ngc | 54 + nc_files/nurbs/G6/Curva_Farfalla #1=1.jpg | Bin 0 -> 149021 bytes nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc | 72 + nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc | 72 + nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc | 71 + .../nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg | Bin 0 -> 166760 bytes .../nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc | 107 + nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc | 42 + nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc | 43 + nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc | 43 + nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg | Bin 0 -> 127950 bytes .../nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc | 110 + nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc | 33 + .../nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc | 110 + nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc | 32 + nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg | Bin 0 -> 150025 bytes nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc | 689 ++ nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc | 688 ++ nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc | 687 ++ nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg | Bin 0 -> 149211 bytes nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc | 240 + nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc | 240 + nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc | 240 + nc_files/nurbs/G6/Curva_Stella #1=1.jpg | Bin 0 -> 134904 bytes nc_files/nurbs/G6/Curva_Stella #1=1.ngc | 34 + nc_files/nurbs/G6/Curva_Stella #1=2-xy.ngc | 40 + nc_files/nurbs/G6/Curva_Stella #1=2-yz.ngc | 44 + nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc | 46 + nc_files/nurbs/G6/Curva_Stella #1=3.ngc | 34 + nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb | 325 + nc_files/nurbs/G6/Ruota_dentata #1=1.jpg | Bin 0 -> 145440 bytes nc_files/nurbs/G6/Ruota_dentata #1=1.ngc | 610 ++ nc_files/nurbs/G6/Ruota_dentata #1=2.ngc | 610 ++ nc_files/nurbs/G6/Ruota_dentata #1=3.ngc | 610 ++ nc_files/nurbs/G6/UNIPA #1=1.jpg | Bin 0 -> 139618 bytes nc_files/nurbs/G6/UNIPA #1=1.ngc | 114 + nc_files/nurbs/G6/UNIPA #1=2.ngc | 113 + nc_files/nurbs/G6/UNIPA #1=3.ngc | 121 + nc_files/nurbs/G6/homer #1=1.jpg | Bin 0 -> 161131 bytes nc_files/nurbs/G6/homer #1=1.ngc | 381 + nc_files/nurbs/G6/homer #1=2.ngc | 361 + nc_files/nurbs/G6/homer #1=3.ngc | 362 + nc_files/nurbs/G6/homer-16 #1=1-xy.ngc | 33 + nc_files/nurbs/G6/homer-16 #1=1-yz.ngc | 38 + nc_files/nurbs/G6/homer-16 #1=1-zx.ngc | 35 + nc_files/nurbs/G6/read.me | 39 + nc_files/offsets.ngc | 13 + nc_files/orphans/README | 3 + nc_files/plasmac/imperial_air_scribe.ngc | 94 + nc_files/plasmac/imperial_circles.ngc | 25 + .../plasmac/imperial_ihs_skip_thc_off.ngc | 30 + nc_files/plasmac/imperial_ihs_skip_thc_on.ngc | 30 + nc_files/plasmac/imperial_line.ngc | 15 + nc_files/plasmac/imperial_material_change.ngc | 41 + nc_files/plasmac/imperial_ramp_pierce.ngc | 54 + nc_files/plasmac/imperial_squares.ngc | 27 + .../plasmac/imperial_temporary_materials.ngc | 37 + nc_files/plasmac/imperial_wrench.ngc | 37 + nc_files/plasmac/m_files/M159 | 112 + nc_files/plasmac/m_files/M190 | 68 + nc_files/plasmac/metric_air_scribe.ngc | 94 + nc_files/plasmac/metric_circles.ngc | 24 + nc_files/plasmac/metric_ihs_skip_thc_off.ngc | 30 + nc_files/plasmac/metric_ihs_skip_thc_on.ngc | 30 + nc_files/plasmac/metric_line.ngc | 15 + nc_files/plasmac/metric_material_change.ngc | 41 + nc_files/plasmac/metric_pipe.ngc | 940 +++ nc_files/plasmac/metric_ramp_pierce.ngc | 52 + nc_files/plasmac/metric_squares.ngc | 27 + .../plasmac/metric_temporary_materials.ngc | 37 + nc_files/plasmac/metric_wrench.ngc | 37 + nc_files/plasmatest.ngc | 404 + nc_files/polar.ngc | 21 + nc_files/probe-hole.ngc | 73 + .../macros/probe_back_edge_angle.ngc | 116 + .../macros/probe_back_left_inside.ngc | 110 + .../macros/probe_back_left_outside.ngc | 106 + .../basic_probe/macros/probe_back_outside.ngc | 82 + .../macros/probe_back_right_inside.ngc | 110 + .../macros/probe_back_right_outside.ngc | 105 + .../macros/probe_cal_round_boss.ngc | 296 + .../macros/probe_cal_round_pocket.ngc | 204 + .../macros/probe_cal_square_boss.ngc | 204 + .../macros/probe_cal_square_pocket.ngc | 162 + .../probe_corner_x_minus_edge_angle.ngc | 155 + .../macros/probe_corner_x_plus_edge_angle.ngc | 155 + .../probe_corner_y_minus_edge_angle.ngc | 155 + .../macros/probe_corner_y_plus_edge_angle.ngc | 155 + .../macros/probe_front_edge_angle.ngc | 116 + .../macros/probe_front_left_inside.ngc | 110 + .../macros/probe_front_left_outside.ngc | 106 + .../macros/probe_front_outside.ngc | 82 + .../macros/probe_front_right_inside.ngc | 113 + .../macros/probe_front_right_outside.ngc | 106 + .../macros/probe_left_edge_angle.ngc | 116 + .../basic_probe/macros/probe_left_outside.ngc | 82 + .../basic_probe/macros/probe_rect_boss.ngc | 164 + .../basic_probe/macros/probe_rect_pocket.ngc | 135 + .../basic_probe/macros/probe_ridge_x.ngc | 114 + .../basic_probe/macros/probe_ridge_y.ngc | 115 + .../macros/probe_right_edge_angle.ngc | 116 + .../macros/probe_right_outside.ngc | 82 + .../basic_probe/macros/probe_round_boss.ngc | 188 + .../basic_probe/macros/probe_round_pocket.ngc | 147 + .../basic_probe/macros/probe_valley_x.ngc | 101 + .../basic_probe/macros/probe_valley_y.ngc | 99 + .../basic_probe/macros/probe_x_minus.ngc | 85 + .../basic_probe/macros/probe_x_minus_wco.ngc | 103 + .../probe/basic_probe/macros/probe_x_plus.ngc | 85 + .../basic_probe/macros/probe_x_plus_wco.ngc | 103 + .../basic_probe/macros/probe_y_minus.ngc | 85 + .../basic_probe/macros/probe_y_minus_wco.ngc | 103 + .../probe/basic_probe/macros/probe_y_plus.ngc | 85 + .../basic_probe/macros/probe_y_plus_wco.ngc | 103 + .../basic_probe/macros/probe_z_minus.ngc | 65 + .../basic_probe/macros/probe_z_minus_sub.ngc | 84 + .../basic_probe/macros/probe_z_minus_wco.ngc | 93 + .../basic_probe/macros/reset_all_data.ngc | 20 + .../probe/basic_probe/macros/tool_sensor.ngc | 35 + .../probe/basic_probe/macros/touch_plate.ngc | 31 + .../probe/basic_probe/macros/x_data_reset.ngc | 14 + .../probe/basic_probe/macros/y_data_reset.ngc | 15 + nc_files/probe/down.ngc | 31 + nc_files/probe/gtk_probe/gtk_probe_down.ngc | 23 + nc_files/probe/gtk_probe/gtk_probe_xminus.ngc | 18 + nc_files/probe/gtk_probe/gtk_probe_xplus.ngc | 18 + nc_files/probe/gtk_probe/gtk_probe_yminus.ngc | 17 + nc_files/probe/gtk_probe/gtk_probe_yplus.ngc | 17 + nc_files/probe/xminus.ngc | 23 + nc_files/probe/xplus.ngc | 23 + nc_files/probe/yminus.ngc | 23 + nc_files/probe/yplus.ngc | 23 + nc_files/remap-subroutines/change.ngc | 11 + nc_files/remap-subroutines/on_abort.ngc | 19 + nc_files/remap-subroutines/prepare.ngc | 10 + .../remap-subroutines/qt_auto_probe_tool.ngc | 238 + .../remap_lib/common_nc_subs/on_abort.ngc | 13 + .../remap_lib/common_nc_subs/reset_state.ngc | 25 + .../remap_lib/python-stdglue/python/remap.py | 17 + .../python-stdglue/python/stdglue.py | 1 + .../python-stdglue/python/toplevel.py | 18 + nc_files/remap_lib/python-stdglue/stdglue.py | 659 ++ nc_files/retval.ngc | 29 + nc_files/roparams.ngc | 43 + nc_files/skeleton.ngc | 22 + nc_files/smartprobe.ngc | 54 + nc_files/spiral.ngc | 13 + nc_files/systems.ngc | 1003 +++ nc_files/threading.ngc | 76 + nc_files/tool-length-probe.ngc | 51 + nc_files/toplevel.ngc | 25 + nc_files/tort.ngc | 282 + nc_files/torus.png | Bin 0 -> 20811 bytes nc_files/touchoff.ngc | 18 + nc_files/useful-subroutines.ngc | 93 + nc_files/x-trim.ngc | 16 + 308 files changed, 39769 insertions(+) create mode 100644 nc_files/3D_Chips.html create mode 100644 nc_files/3D_Chips.ngc create mode 100644 nc_files/3dtest.ngc create mode 100755 nc_files/M101 create mode 100644 nc_files/M102.c create mode 100644 nc_files/arcspiral.ngc create mode 100644 nc_files/b-index.ngc create mode 100644 nc_files/cds.ngc create mode 100644 nc_files/comp-g1.ngc create mode 100644 nc_files/comp.ngc create mode 100644 nc_files/comp311.ngc create mode 100644 nc_files/comp311_2.ngc create mode 100644 nc_files/cone.ngc create mode 100644 nc_files/daisy.ngc create mode 100644 nc_files/factorial.ngc create mode 100644 nc_files/filtertest-gui.py create mode 100644 nc_files/filtertest.py create mode 100644 nc_files/flowsnake.ngc create mode 100644 nc_files/flowsnake.py create mode 100644 nc_files/g20sub.ngc create mode 100644 nc_files/g76.ngc create mode 100644 nc_files/g881.ngc create mode 100644 nc_files/g881min.ngc create mode 100644 nc_files/g882.ngc create mode 100644 nc_files/gcmc_lib/cpocket.gcmc create mode 100644 nc_files/gcmc_lib/cpocket.png create mode 100644 nc_files/gcmc_lib/drill.gcmc create mode 100644 nc_files/gcmc_lib/drill.png create mode 100644 nc_files/gcmc_lib/ensure_units.gcmc create mode 100644 nc_files/gcmc_lib/involute-gear.gcmc create mode 100644 nc_files/gcmc_lib/involute-gear.png create mode 100644 nc_files/gcmc_lib/rectangle.gcmc create mode 100644 nc_files/gcmc_lib/star.gcmc create mode 100644 nc_files/gcmc_lib/star.png create mode 100644 nc_files/gcmc_lib/trochoid-path.gcmc create mode 100644 nc_files/gcmc_lib/trochoid-path.png create mode 100644 nc_files/gcmc_lib/wheels.gcmc create mode 100644 nc_files/gladevcp_lib/oword.ngc create mode 100644 nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc create mode 100644 nc_files/gridprobe.ngc create mode 100644 nc_files/hole-circle.ngc create mode 100644 nc_files/holecircle.py create mode 100644 nc_files/increment.ngc create mode 100644 nc_files/involute.py create mode 100644 nc_files/lathe-g76.ngc create mode 100644 nc_files/lathe_g70_71_demo.ngc create mode 100644 nc_files/lathe_g7x_face_boring.ngc create mode 100644 nc_files/lathe_g7x_quadrants.ngc create mode 100644 nc_files/lathe_pawn.ngc create mode 100644 nc_files/lathecomp.ngc create mode 100644 nc_files/m250.ngc create mode 100644 nc_files/m61demo.ngc create mode 100644 nc_files/m6demo.ngc create mode 100644 nc_files/m6remap.ngc create mode 100644 nc_files/m70m72-demo.ngc create mode 100644 nc_files/m73-demo.ngc create mode 100644 nc_files/m75.ngc create mode 100644 nc_files/m76.ngc create mode 100644 nc_files/macros/lathe/LatheMacro.svg create mode 100644 nc_files/macros/lathe/boring.ngc create mode 100644 nc_files/macros/lathe/chamfer.ngc create mode 100644 nc_files/macros/lathe/drill.ngc create mode 100644 nc_files/macros/lathe/facing.ngc create mode 100644 nc_files/macros/lathe/go_to_position.ngc create mode 100644 nc_files/macros/lathe/go_to_position.png create mode 100644 nc_files/macros/lathe/go_to_position_data.txt create mode 100644 nc_files/macros/lathe/probe-hole.ngc create mode 100644 nc_files/macros/lathe/radius.ngc create mode 100644 nc_files/macros/lathe/threading.ngc create mode 100644 nc_files/macros/lathe/turning.ngc create mode 100644 nc_files/macros/mill/go_to_home.ngc create mode 100644 nc_files/macros/mill/go_to_home.svg create mode 100644 nc_files/macros/mill/go_to_position.ngc create mode 100644 nc_files/macros/mill/go_to_position.png create mode 100644 nc_files/macros/mill/go_to_zero.ngc create mode 100644 nc_files/macros/mill/go_to_zero.png create mode 100644 nc_files/mmount.ngc create mode 100644 nc_files/nestedcall.ngc create mode 100644 nc_files/ngcgui_lib/arc1.ngc create mode 100644 nc_files/ngcgui_lib/arc1.png create mode 100644 nc_files/ngcgui_lib/arc2.ngc create mode 100644 nc_files/ngcgui_lib/arc2.png create mode 100644 nc_files/ngcgui_lib/backlash.ngc create mode 100644 nc_files/ngcgui_lib/db25.ngc create mode 100644 nc_files/ngcgui_lib/gosper.ngc create mode 100644 nc_files/ngcgui_lib/gosper.png create mode 100644 nc_files/ngcgui_lib/helix.ngc create mode 100644 nc_files/ngcgui_lib/helix_rtheta.ngc create mode 100644 nc_files/ngcgui_lib/hole_circle.ngc create mode 100644 nc_files/ngcgui_lib/ihex.ngc create mode 100644 nc_files/ngcgui_lib/iquad.ngc create mode 100644 nc_files/ngcgui_lib/iquad.png create mode 100644 nc_files/ngcgui_lib/lathe/g76base.ngc create mode 100644 nc_files/ngcgui_lib/lathe/g76base.png create mode 100644 nc_files/ngcgui_lib/lathe/g76diam.ngc create mode 100644 nc_files/ngcgui_lib/lathe/g76diam.png create mode 100644 nc_files/ngcgui_lib/lathe/id.ngc create mode 100644 nc_files/ngcgui_lib/lathe/lathe_std.ngc create mode 100644 nc_files/ngcgui_lib/lathe/od.ngc create mode 100644 nc_files/ngcgui_lib/lathe/taper-od.ngc create mode 100755 nc_files/ngcgui_lib/mfiles/M110 create mode 100644 nc_files/ngcgui_lib/ohex.ngc create mode 100644 nc_files/ngcgui_lib/oquad.ngc create mode 100644 nc_files/ngcgui_lib/qpex.ngc create mode 100644 nc_files/ngcgui_lib/qpex_mm.ngc create mode 100644 nc_files/ngcgui_lib/qpocket.ngc create mode 100644 nc_files/ngcgui_lib/qpocket.png create mode 100644 nc_files/ngcgui_lib/rectangle_probe.ngc create mode 100644 nc_files/ngcgui_lib/simp.ngc create mode 100644 nc_files/ngcgui_lib/simp.png create mode 100644 nc_files/ngcgui_lib/slot.ngc create mode 100644 nc_files/ngcgui_lib/slot.png create mode 100644 nc_files/ngcgui_lib/utilitysubs/bye.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/cross.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/dir.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/dot.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/entry.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/g59preview.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/in_std.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/line.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/loadtool.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/mm_std.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/move.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc create mode 100644 nc_files/ngcgui_lib/utilitysubs/spin.ngc create mode 100644 nc_files/ngcgui_lib/xyz.ngc create mode 100644 nc_files/ngcgui_lib/xyz.png create mode 100644 nc_files/nurbs/G5/Curva_Chitarra #1=3_G5.ngc create mode 100644 nc_files/nurbs/G5/Curva_Delfino #1=1_G5.ngc create mode 100644 nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.jpg create mode 100644 nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc create mode 100644 nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc create mode 100644 nc_files/nurbs/G5/butterfly-xy.ngc create mode 100644 nc_files/nurbs/G5/butterfly-yz.ngc create mode 100644 nc_files/nurbs/G5/butterfly-zx.ngc create mode 100644 nc_files/nurbs/G5/leto-xy.ngc create mode 100644 nc_files/nurbs/G5/nurbs-xy.ngc create mode 100644 nc_files/nurbs/G5/nurbs-yz.ngc create mode 100644 nc_files/nurbs/G5/nurbs-zx.ngc create mode 100644 nc_files/nurbs/G5/trident-xy-yz-zx.ngc create mode 100644 nc_files/nurbs/G5/trident-xy.ngc create mode 100644 nc_files/nurbs/G5/trident-yz.ngc create mode 100644 nc_files/nurbs/G5/trident-zx.ngc create mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg create mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=1.jpg create mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc create mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc create mode 100644 nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc create mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=1.jpg create mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=1.ngc create mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=2.ngc create mode 100644 nc_files/nurbs/G6/Curva_Delfino #1=3.ngc create mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=1.jpg create mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc create mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc create mode 100644 nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc create mode 100644 nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc create mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg create mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc create mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc create mode 100644 nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc create mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg create mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc create mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc create mode 100644 nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc create mode 100644 nc_files/nurbs/G6/Curva_Stella #1=1.jpg create mode 100644 nc_files/nurbs/G6/Curva_Stella #1=1.ngc create mode 100644 nc_files/nurbs/G6/Curva_Stella #1=2-xy.ngc create mode 100644 nc_files/nurbs/G6/Curva_Stella #1=2-yz.ngc create mode 100644 nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc create mode 100644 nc_files/nurbs/G6/Curva_Stella #1=3.ngc create mode 100644 nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb create mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=1.jpg create mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=1.ngc create mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=2.ngc create mode 100644 nc_files/nurbs/G6/Ruota_dentata #1=3.ngc create mode 100644 nc_files/nurbs/G6/UNIPA #1=1.jpg create mode 100644 nc_files/nurbs/G6/UNIPA #1=1.ngc create mode 100644 nc_files/nurbs/G6/UNIPA #1=2.ngc create mode 100644 nc_files/nurbs/G6/UNIPA #1=3.ngc create mode 100644 nc_files/nurbs/G6/homer #1=1.jpg create mode 100644 nc_files/nurbs/G6/homer #1=1.ngc create mode 100644 nc_files/nurbs/G6/homer #1=2.ngc create mode 100644 nc_files/nurbs/G6/homer #1=3.ngc create mode 100644 nc_files/nurbs/G6/homer-16 #1=1-xy.ngc create mode 100644 nc_files/nurbs/G6/homer-16 #1=1-yz.ngc create mode 100644 nc_files/nurbs/G6/homer-16 #1=1-zx.ngc create mode 100644 nc_files/nurbs/G6/read.me create mode 100644 nc_files/offsets.ngc create mode 100644 nc_files/orphans/README create mode 100644 nc_files/plasmac/imperial_air_scribe.ngc create mode 100644 nc_files/plasmac/imperial_circles.ngc create mode 100644 nc_files/plasmac/imperial_ihs_skip_thc_off.ngc create mode 100644 nc_files/plasmac/imperial_ihs_skip_thc_on.ngc create mode 100644 nc_files/plasmac/imperial_line.ngc create mode 100644 nc_files/plasmac/imperial_material_change.ngc create mode 100644 nc_files/plasmac/imperial_ramp_pierce.ngc create mode 100644 nc_files/plasmac/imperial_squares.ngc create mode 100644 nc_files/plasmac/imperial_temporary_materials.ngc create mode 100644 nc_files/plasmac/imperial_wrench.ngc create mode 100755 nc_files/plasmac/m_files/M159 create mode 100755 nc_files/plasmac/m_files/M190 create mode 100644 nc_files/plasmac/metric_air_scribe.ngc create mode 100644 nc_files/plasmac/metric_circles.ngc create mode 100644 nc_files/plasmac/metric_ihs_skip_thc_off.ngc create mode 100644 nc_files/plasmac/metric_ihs_skip_thc_on.ngc create mode 100644 nc_files/plasmac/metric_line.ngc create mode 100644 nc_files/plasmac/metric_material_change.ngc create mode 100644 nc_files/plasmac/metric_pipe.ngc create mode 100644 nc_files/plasmac/metric_ramp_pierce.ngc create mode 100644 nc_files/plasmac/metric_squares.ngc create mode 100644 nc_files/plasmac/metric_temporary_materials.ngc create mode 100644 nc_files/plasmac/metric_wrench.ngc create mode 100644 nc_files/plasmatest.ngc create mode 100644 nc_files/polar.ngc create mode 100644 nc_files/probe-hole.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_back_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_front_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_left_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_rect_boss.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_ridge_x.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_ridge_y.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_right_outside.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_round_boss.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_round_pocket.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_valley_x.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_valley_y.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_x_minus.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_x_plus.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_y_minus.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_y_plus.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_z_minus.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc create mode 100644 nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc create mode 100644 nc_files/probe/basic_probe/macros/reset_all_data.ngc create mode 100644 nc_files/probe/basic_probe/macros/tool_sensor.ngc create mode 100644 nc_files/probe/basic_probe/macros/touch_plate.ngc create mode 100644 nc_files/probe/basic_probe/macros/x_data_reset.ngc create mode 100644 nc_files/probe/basic_probe/macros/y_data_reset.ngc create mode 100644 nc_files/probe/down.ngc create mode 100644 nc_files/probe/gtk_probe/gtk_probe_down.ngc create mode 100644 nc_files/probe/gtk_probe/gtk_probe_xminus.ngc create mode 100644 nc_files/probe/gtk_probe/gtk_probe_xplus.ngc create mode 100644 nc_files/probe/gtk_probe/gtk_probe_yminus.ngc create mode 100644 nc_files/probe/gtk_probe/gtk_probe_yplus.ngc create mode 100644 nc_files/probe/xminus.ngc create mode 100644 nc_files/probe/xplus.ngc create mode 100644 nc_files/probe/yminus.ngc create mode 100644 nc_files/probe/yplus.ngc create mode 100644 nc_files/remap-subroutines/change.ngc create mode 100644 nc_files/remap-subroutines/on_abort.ngc create mode 100644 nc_files/remap-subroutines/prepare.ngc create mode 100644 nc_files/remap-subroutines/qt_auto_probe_tool.ngc create mode 100644 nc_files/remap_lib/common_nc_subs/on_abort.ngc create mode 100644 nc_files/remap_lib/common_nc_subs/reset_state.ngc create mode 100644 nc_files/remap_lib/python-stdglue/python/remap.py create mode 120000 nc_files/remap_lib/python-stdglue/python/stdglue.py create mode 100644 nc_files/remap_lib/python-stdglue/python/toplevel.py create mode 100644 nc_files/remap_lib/python-stdglue/stdglue.py create mode 100644 nc_files/retval.ngc create mode 100644 nc_files/roparams.ngc create mode 100644 nc_files/skeleton.ngc create mode 100644 nc_files/smartprobe.ngc create mode 100644 nc_files/spiral.ngc create mode 100644 nc_files/systems.ngc create mode 100644 nc_files/threading.ngc create mode 100644 nc_files/tool-length-probe.ngc create mode 100644 nc_files/toplevel.ngc create mode 100644 nc_files/tort.ngc create mode 100644 nc_files/torus.png create mode 100644 nc_files/touchoff.ngc create mode 100644 nc_files/useful-subroutines.ngc create mode 100644 nc_files/x-trim.ngc diff --git a/nc_files/3D_Chips.html b/nc_files/3D_Chips.html new file mode 100644 index 00000000000..9cd48e881e5 --- /dev/null +++ b/nc_files/3D_Chips.html @@ -0,0 +1,48 @@ + + +

    3D_Chips.ngc

    +


    +

    This program is copyright of Rab Gordon, Gary Drew, and Paul Corner.

    +

    It is released here under a GPL without warranty to do with as you may.

    +

    With scales factors set at 1.0, the part is cut from a 100x100x50mm

    +

    block with the zero point at the center top of the block

    +

    and Cutter is assumed to be a 10mm ball nose

    +

    and feedrate is 450 mm/min

    +


    +

    It uses the tool currently in the machine.

    +

    Last run we used tool 1:

    +


    + + + + + + + + + + + + + + + + +
    +

    Tool

    +

    Pocket

    +

    X

    +

    Y

    +

    Z

    +

    Diameter

    +

    Comment

    +

    1

    +

    1

    +

    0

    +

    0

    +

    .511"

    +

    .394"

    +

    10mm ball endmill

    +

    diff --git a/nc_files/3D_Chips.ngc b/nc_files/3D_Chips.ngc new file mode 100644 index 00000000000..5e373f0fd7b --- /dev/null +++ b/nc_files/3D_Chips.ngc @@ -0,0 +1,4711 @@ +( This program is copyright of Rab Gordon, Gary Drew, and Paul Corner.) +( It is released here under a GPL without warranty to do with as you may.) +( With scales factors set at 1.0, the part is cut from a 100x100x50mm ) +( block with the zero point at the center top of the block ) +( and Cutter is assumed to be a 10mm ball nose ) +( and feedrate is 450 mm/min ) + +# = 1.0 +# = 1.0 +# = 1.0 +# = 10000.0 +# = 1 +# = 1600 + +N30 G21 +N40G90 +G64P.1 +N50T#M6 +N60M8 +N70S#M3 +N90G0Z[#*10.] +N80G0X[#*53.]Y[#*-56.128] +N100G1Z[#*-25.372]F[#*100] +N110G1Z[#*-27.372]F[#*225] +N120Y[#*-56.12]Z[#*-27.725] +N130Y[#*-56.105]Z[#*-27.894] +N140Y[#*-56.06]Z[#*-28.152] +N150Y[#*-56.051]Z[#*-28.184] +N160Y[#*-55.992]Z[#*-28.405] +N170Y[#*-55.902]Z[#*-28.651] +N180Y[#*-55.792]Z[#*-28.888] +N190Y[#*-55.661]Z[#*-29.115] +N200Y[#*-55.511]Z[#*-29.329] +N210Y[#*-55.343]Z[#*-29.53] +N220Y[#*-55.158]Z[#*-29.715] +N230Y[#*-54.957]Z[#*-29.883] +N240Y[#*-54.743]Z[#*-30.033] +N250Y[#*-54.516]Z[#*-30.164] +N260Y[#*-54.279]Z[#*-30.274] +N270Y[#*-54.033]Z[#*-30.364] +N280Y[#*-53.78]Z[#*-30.432] +N290Y[#*-53.522]Z[#*-30.477] +N300Y[#*-53.31]Z[#*-30.496] +N310Y[#*-53.262]Z[#*-30.5] +N320Y[#*-53.] +N330Y[#*-47.891]F[#*450] +N340Y[#*-19.891] +N350Y[#*-13.891] +N360Y[#*0.109] +N370Y[#*16.109] +N380Y[#*18.109] +N390Y[#*25.109] +N400Y[#*32.109] +N410Y[#*44.109] +N420Y[#*53.] +N430X[#*52.972]Y[#*53.293] +N440X[#*52.893]Y[#*53.547] +N450X[#*52.769]Y[#*53.762] +N460X[#*52.609]Y[#*53.937] +N470X[#*52.42]Y[#*54.074] +N480X[#*52.209]Y[#*54.172] +N490X[#*51.983]Y[#*54.23] +N500X[#*51.75]Y[#*54.25] +N510X[#*51.517]Y[#*54.23] +N520X[#*51.291]Y[#*54.172] +N530X[#*51.08]Y[#*54.074] +N540X[#*50.891]Y[#*53.937] +N550X[#*50.731]Y[#*53.762] +N560X[#*50.607]Y[#*53.547] +N570X[#*50.528]Y[#*53.293] +N580X[#*50.5]Y[#*53.] +N590Y[#*34.738] +N600Y[#*18.738] +N610Y[#*14.738] +N620Y[#*2.738] +N630Y[#*-1.262] +N640Y[#*-19.262] +N650Y[#*-29.262] +N660Y[#*-52.262] +N670Y[#*-53.] +N680X[#*50.472]Y[#*-53.293] +N690X[#*50.393]Y[#*-53.547] +N700X[#*50.269]Y[#*-53.762] +N710X[#*50.109]Y[#*-53.938] +N720X[#*49.92]Y[#*-54.074] +N730X[#*49.709]Y[#*-54.172] +N740X[#*49.483]Y[#*-54.23] +N750X[#*49.251]Y[#*-54.25] +N760X[#*49.017]Y[#*-54.23] +N770X[#*48.791]Y[#*-54.172] +N780X[#*48.58]Y[#*-54.074] +N790X[#*48.391]Y[#*-53.938] +N800X[#*48.231]Y[#*-53.762] +N810X[#*48.107]Y[#*-53.547] +N820X[#*48.028]Y[#*-53.293] +N830X[#*48.]Y[#*-53.] +N840Y[#*-47.225] +N850Y[#*-38.225] +N860Y[#*-36.225] +N870Y[#*-32.725] +N880Y[#*-32.288] +N890Y[#*-32.241] +N900Y[#*-32.225] +N910Y[#*-31.733] +N920Y[#*-31.725] +N930Y[#*-31.538] +N940Y[#*-31.452] +N950Y[#*-31.444]Z[#*-7.922] +N960Y[#*-31.436]Z[#*-7.835] +N970Y[#*-31.397]Z[#*-7.589] +N980Y[#*-31.35]Z[#*-7.4] +N990Y[#*-31.225]Z[#*-7.001] +N1000Y[#*-31.038]Z[#*-6.311] +N1010Y[#*-30.975]Z[#*-6.142] +N1020Y[#*-30.725]Z[#*-5.69] +N1030Y[#*-29.975]Z[#*-4.625] +N1040Y[#*-29.85]Z[#*-4.472] +N1050Y[#*-29.725]Z[#*-4.34] +N1060Y[#*-29.225]Z[#*-3.955] +N1070Y[#*-28.225]Z[#*-3.273] +N1080Y[#*-27.975]Z[#*-3.144] +N1090Y[#*-27.725]Z[#*-3.051] +N1100Y[#*-27.225]Z[#*-2.944] +N1110Y[#*-26.475]Z[#*-2.817] +N1120Y[#*-26.256]Z[#*-2.781] +N1130Y[#*-25.975]Z[#*-2.75] +N1140Y[#*-25.725]Z[#*-2.753] +N1150Y[#*-25.225]Z[#*-2.846] +N1160Y[#*-24.475]Z[#*-3.096] +N1170Y[#*-24.225]Z[#*-3.182] +N1180Y[#*-23.975]Z[#*-3.283] +N1190Y[#*-23.788]Z[#*-3.385] +N1200Y[#*-23.725]Z[#*-3.424] +N1210Y[#*-23.475]Z[#*-3.618] +N1220Y[#*-23.288]Z[#*-3.808] +N1230Y[#*-23.256]Z[#*-3.845] +N1240Y[#*-23.241]Z[#*-3.864] +N1250Y[#*-23.038]Z[#*-4.112] +N1260Y[#*-22.92]Z[#*-4.255] +N1270Y[#*-22.913]Z[#*-4.264] +N1280Y[#*-22.881]Z[#*-4.296] +N1290Y[#*-22.725]Z[#*-4.014] +N1300Y[#*-21.975]Z[#*-2.927] +N1310Y[#*-21.85]Z[#*-2.776] +N1320Y[#*-21.725]Z[#*-2.649] +N1330Y[#*-21.225]Z[#*-2.266] +N1340Y[#*-20.475]Z[#*-1.721] +N1350Y[#*-20.225]Z[#*-1.569] +N1360Y[#*-19.725]Z[#*-1.374] +N1370Y[#*-18.288]Z[#*-1.016] +N1380Y[#*-17.975]Z[#*-0.979] +N1390Y[#*-17.725] +N1400Y[#*-17.225]Z[#*-1.054] +N1410Y[#*-16.725]Z[#*-1.149] +N1420Y[#*-16.288]Z[#*-1.233] +N1430Y[#*-16.241]Z[#*-1.242] +N1440Y[#*-15.975]Z[#*-1.298] +N1450Y[#*-15.85]Z[#*-1.334] +N1460Y[#*-15.725]Z[#*-1.379] +N1470Y[#*-15.225]Z[#*-1.649] +N1480Y[#*-14.725]Z[#*-1.977] +N1490Y[#*-14.288]Z[#*-2.264] +N1500Y[#*-14.233]Z[#*-2.3] +N1510Y[#*-14.225]Z[#*-2.305] +N1520Y[#*-13.975]Z[#*-2.503] +N1530Y[#*-13.725]Z[#*-2.774] +N1540Y[#*-13.475]Z[#*-3.128] +N1550Y[#*-13.256]Z[#*-3.442] +N1560Y[#*-13.225]Z[#*-3.486] +N1570Y[#*-13.163]Z[#*-3.568] +N1580Y[#*-13.155]Z[#*-3.577] +N1590Y[#*-12.975]Z[#*-3.332] +N1600Y[#*-12.788]Z[#*-3.128] +N1610Y[#*-12.725]Z[#*-3.071] +N1620Y[#*-12.475]Z[#*-2.88] +N1630Y[#*-12.225]Z[#*-2.738] +N1640Y[#*-11.725]Z[#*-2.556] +N1650Y[#*-10.975]Z[#*-2.33] +N1660Y[#*-10.725]Z[#*-2.269] +N1670Y[#*-10.475]Z[#*-2.235] +N1680Y[#*-10.225]Z[#*-2.229] +N1690Y[#*-9.725]Z[#*-2.293] +N1700Y[#*-8.475]Z[#*-2.552] +N1710Y[#*-8.35]Z[#*-2.588] +N1720Y[#*-8.225]Z[#*-2.632] +N1730Y[#*-7.725]Z[#*-2.889] +N1740Y[#*-6.725]Z[#*-3.511] +N1750Y[#*-6.225]Z[#*-3.879] +N1760Y[#*-5.725]Z[#*-4.396] +N1770Y[#*-5.225]Z[#*-4.918] +N1780Y[#*-4.725]Z[#*-5.605] +N1790Y[#*-4.225]Z[#*-6.476] +N1800Y[#*-4.1]Z[#*-6.718] +N1810Y[#*-3.975]Z[#*-7.038] +N1820Y[#*-3.85]Z[#*-7.576] +N1830Y[#*-3.756]Z[#*-8.041] +N1840Y[#*-3.694]Z[#*-8.353] +N1850Y[#*-3.655]Z[#*-8.548] +N1860Y[#*-3.616]Z[#*-8.812] +N1870Y[#*-3.608]Z[#*-8.942] +N1880Y[#*-3.6]Z[#*-30.5] +N1890Y[#*2.525] +N1900Y[#*2.65] +N1910Y[#*3.025] +N1920Y[#*3.267] +N1930Y[#*3.275] +N1940Y[#*3.603] +N1950Y[#*3.611]Z[#*-8.879] +N1960Y[#*3.619]Z[#*-8.782] +N1970Y[#*3.658]Z[#*-8.534] +N1980Y[#*3.712]Z[#*-8.26] +N1990Y[#*3.744]Z[#*-8.104] +N2000Y[#*3.9]Z[#*-7.331] +N2010Y[#*3.962]Z[#*-7.079] +N2020Y[#*4.025]Z[#*-6.896] +N2030Y[#*4.275]Z[#*-6.392] +N2040Y[#*4.525]Z[#*-5.961] +N2050Y[#*4.775]Z[#*-5.516] +N2060Y[#*5.275]Z[#*-4.866] +N2070Y[#*6.025]Z[#*-4.083] +N2080Y[#*6.275]Z[#*-3.833] +N2090Y[#*6.775]Z[#*-3.48] +N2100Y[#*7.525]Z[#*-3.013] +N2110Y[#*7.767]Z[#*-2.863] +N2120Y[#*8.025]Z[#*-2.718] +N2130Y[#*8.275]Z[#*-2.614] +N2140Y[#*8.775]Z[#*-2.486] +N2150Y[#*9.744]Z[#*-2.289] +N2160Y[#*9.767]Z[#*-2.285] +N2170Y[#*10.025]Z[#*-2.242] +N2180Y[#*10.275]Z[#*-2.228] +N2190Y[#*10.525]Z[#*-2.24] +N2200Y[#*10.775]Z[#*-2.279] +N2210Y[#*11.525]Z[#*-2.494] +N2220Y[#*11.759]Z[#*-2.567] +N2230Y[#*12.025]Z[#*-2.654] +N2240Y[#*12.275]Z[#*-2.763] +N2250Y[#*12.525]Z[#*-2.913] +N2260Y[#*12.65]Z[#*-3.007] +N2270Y[#*12.712]Z[#*-3.059] +N2280Y[#*12.744]Z[#*-3.087] +N2290Y[#*12.962]Z[#*-3.316] +N2300Y[#*13.134]Z[#*-3.548] +N2310Y[#*13.15]Z[#*-3.57] +N2320Y[#*13.158]Z[#*-3.574] +N2330Y[#*13.212]Z[#*-3.503] +N2340Y[#*13.275]Z[#*-3.415] +N2350Y[#*13.744]Z[#*-2.751] +N2360Y[#*13.775]Z[#*-2.713] +N2370Y[#*14.275]Z[#*-2.272] +N2380Y[#*15.275]Z[#*-1.615] +N2390Y[#*15.525]Z[#*-1.469] +N2400Y[#*15.775]Z[#*-1.36] +N2410Y[#*16.275]Z[#*-1.235] +N2420Y[#*17.525]Z[#*-1.] +N2430Y[#*17.775]Z[#*-0.977] +N2440Y[#*18.275]Z[#*-1.014] +N2450Y[#*18.775]Z[#*-1.134] +N2460Y[#*19.775]Z[#*-1.387] +N2470Y[#*20.025]Z[#*-1.474] +N2480Y[#*20.275]Z[#*-1.596] +N2490Y[#*20.775]Z[#*-1.942] +N2500Y[#*21.525]Z[#*-2.482] +N2510Y[#*21.744]Z[#*-2.667] +N2520Y[#*21.775]Z[#*-2.697] +N2530Y[#*22.275]Z[#*-3.373] +N2540Y[#*22.744]Z[#*-4.044] +N2550Y[#*22.876]Z[#*-4.293] +N2560Y[#*22.884] +N2570Y[#*22.9]Z[#*-4.277] +N2580Y[#*23.025]Z[#*-4.128] +N2590Y[#*23.275]Z[#*-3.823] +N2600Y[#*23.525]Z[#*-3.574] +N2610Y[#*23.759]Z[#*-3.402] +N2620Y[#*24.275]Z[#*-3.165] +N2630Y[#*25.275]Z[#*-2.831] +N2640Y[#*25.525]Z[#*-2.776] +N2650Y[#*25.775]Z[#*-2.75] +N2660Y[#*26.275]Z[#*-2.784] +N2670Y[#*27.525]Z[#*-2.998] +N2680Y[#*27.775]Z[#*-3.067] +N2690Y[#*28.275]Z[#*-3.304] +N2700Y[#*29.525]Z[#*-4.166] +N2710Y[#*29.65]Z[#*-4.27] +N2720Y[#*29.775]Z[#*-4.391] +N2730Y[#*30.275]Z[#*-5.054] +N2740Y[#*30.775]Z[#*-5.763] +N2750Y[#*30.9]Z[#*-5.978] +N2760Y[#*31.025]Z[#*-6.272] +N2770Y[#*31.244]Z[#*-7.059] +N2780Y[#*31.275]Z[#*-7.158] +N2790Y[#*31.384]Z[#*-7.531] +N2800Y[#*31.431]Z[#*-7.793] +N2810Y[#*31.447]Z[#*-7.969] +N2820Y[#*31.455]Z[#*-30.5] +N2830Y[#*31.775] +N2840Y[#*34.775] +N2850Y[#*53.] +N2860X[#*47.972]Y[#*53.293] +N2870X[#*47.893]Y[#*53.547] +N2880X[#*47.769]Y[#*53.762] +N2890X[#*47.609]Y[#*53.937] +N2900X[#*47.42]Y[#*54.074] +N2910X[#*47.209]Y[#*54.172] +N2920X[#*46.983]Y[#*54.23] +N2930X[#*46.75]Y[#*54.25] +N2940X[#*46.517]Y[#*54.23] +N2950X[#*46.291]Y[#*54.172] +N2960X[#*46.08]Y[#*54.074] +N2970X[#*45.884]Y[#*53.93] +N2980X[#*45.731]Y[#*53.762] +N2990X[#*45.607]Y[#*53.547] +N3000X[#*45.528]Y[#*53.293] +N3010X[#*45.5]Y[#*53.] +N3020Y[#*32.517] +N3030Y[#*32.509] +N3040Y[#*32.501]Z[#*-7.93] +N3050Y[#*32.485]Z[#*-7.766] +N3060Y[#*32.431]Z[#*-7.458] +N3070Y[#*32.001]Z[#*-5.987] +N3080Y[#*31.751]Z[#*-5.391] +N3090Y[#*31.689]Z[#*-5.283] +N3100Y[#*31.501]Z[#*-5.011] +N3110Y[#*31.251]Z[#*-4.706] +N3120Y[#*31.235]Z[#*-4.687] +N3130Y[#*31.189]Z[#*-4.631] +N3140Y[#*30.751]Z[#*-4.103] +N3150Y[#*30.251]Z[#*-3.547] +N3160Y[#*30.001]Z[#*-3.343] +N3170Y[#*28.751]Z[#*-2.538] +N3180Y[#*28.251]Z[#*-2.264] +N3190Y[#*28.001]Z[#*-2.168] +N3200Y[#*27.751]Z[#*-2.096] +N3210Y[#*26.751]Z[#*-1.837] +N3220Y[#*26.251]Z[#*-1.725] +N3230Y[#*25.751]Z[#*-1.693] +N3240Y[#*25.251]Z[#*-1.746] +N3250Y[#*24.251]Z[#*-1.931] +N3260Y[#*23.751]Z[#*-2.057] +N3270Y[#*23.501]Z[#*-2.156] +N3280Y[#*23.189]Z[#*-2.319] +N3290Y[#*23.025]Z[#*-2.425] +N3300Y[#*23.009]Z[#*-2.427] +N3310Y[#*22.993]Z[#*-2.404] +N3320Y[#*22.97]Z[#*-2.37] +N3330Y[#*22.743]Z[#*-2.063] +N3340Y[#*22.735]Z[#*-2.054] +N3350Y[#*22.501]Z[#*-1.805] +N3360Y[#*22.251]Z[#*-1.594] +N3370Y[#*22.001]Z[#*-1.424] +N3380Y[#*21.751]Z[#*-1.275] +N3390Y[#*20.751]Z[#*-0.682] +N3400Y[#*20.251]Z[#*-0.451] +N3410Y[#*20.001]Z[#*-0.375] +N3420Y[#*19.751]Z[#*-0.322] +N3430Y[#*18.251]Z[#*-0.051] +N3440Y[#*17.751]Z[#*-0.026] +N3450Y[#*17.251]Z[#*-0.081] +N3460Y[#*16.251]Z[#*-0.227] +N3470Y[#*15.751]Z[#*-0.313] +N3480Y[#*15.22]Z[#*-0.497] +N3490Y[#*15.126]Z[#*-0.542] +N3500Y[#*13.751]Z[#*-1.298] +N3510Y[#*13.251]Z[#*-1.665] +N3520Y[#*13.009]Z[#*-1.911] +N3530Y[#*12.751]Z[#*-1.767] +N3540Y[#*12.501]Z[#*-1.658] +N3550Y[#*12.251]Z[#*-1.574] +N3560Y[#*11.751]Z[#*-1.474] +N3570Y[#*10.751]Z[#*-1.333] +N3580Y[#*10.251]Z[#*-1.311] +N3590Y[#*10.001]Z[#*-1.331] +N3600Y[#*9.751]Z[#*-1.373] +N3610Y[#*9.251]Z[#*-1.514] +N3620Y[#*8.251]Z[#*-1.821] +N3630Y[#*7.751]Z[#*-2.021] +N3640Y[#*7.251]Z[#*-2.319] +N3650Y[#*6.251]Z[#*-2.942] +N3660Y[#*5.751]Z[#*-3.33] +N3670Y[#*4.751]Z[#*-4.296] +N3680Y[#*4.251]Z[#*-4.867] +N3690Y[#*3.751]Z[#*-5.681] +N3700Y[#*3.501]Z[#*-6.095] +N3710Y[#*3.251]Z[#*-6.562] +N3720Y[#*3.189]Z[#*-6.718] +N3730Y[#*3.126]Z[#*-6.907] +N3740Y[#*3.001]Z[#*-7.366] +N3750Y[#*2.72]Z[#*-8.443] +N3760Y[#*2.673]Z[#*-8.731] +N3770Y[#*2.657]Z[#*-8.932] +N3780Y[#*2.65]Z[#*-30.5] +N3790Y[#*2.626] +N3800Y[#*2.485] +N3810Y[#*2.251] +N3820Y[#*-2.64] +N3830Y[#*-2.647] +N3840Y[#*-2.655]Z[#*-9.] +N3850Y[#*-2.663]Z[#*-8.838] +N3860Y[#*-2.686]Z[#*-8.628] +N3870Y[#*-2.757]Z[#*-8.289] +N3880Y[#*-2.999]Z[#*-7.374] +N3890Y[#*-3.249]Z[#*-6.567] +N3900Y[#*-3.374]Z[#*-6.311] +N3910Y[#*-3.78]Z[#*-5.634] +N3920Y[#*-4.249]Z[#*-4.87] +N3930Y[#*-4.765]Z[#*-4.283] +N3940Y[#*-4.874]Z[#*-4.178] +N3950Y[#*-5.749]Z[#*-3.332] +N3960Y[#*-6.249]Z[#*-2.943] +N3970Y[#*-7.249]Z[#*-2.32] +N3980Y[#*-7.749]Z[#*-2.022] +N3990Y[#*-8.249]Z[#*-1.822] +N4000Y[#*-9.249]Z[#*-1.515] +N4010Y[#*-9.749]Z[#*-1.374] +N4020Y[#*-10.249]Z[#*-1.311] +N4030Y[#*-10.749]Z[#*-1.333] +N4040Y[#*-11.749]Z[#*-1.473] +N4050Y[#*-12.249]Z[#*-1.573] +N4060Y[#*-12.757]Z[#*-1.77] +N4070Y[#*-12.999]Z[#*-1.905] +N4080Y[#*-13.007]Z[#*-1.91] +N4090Y[#*-13.046]Z[#*-1.871] +N4100Y[#*-13.249]Z[#*-1.667] +N4110Y[#*-13.499]Z[#*-1.463] +N4120Y[#*-13.749]Z[#*-1.3] +N4130Y[#*-14.749]Z[#*-0.747] +N4140Y[#*-15.249]Z[#*-0.484] +N4150Y[#*-15.749]Z[#*-0.314] +N4160Y[#*-15.811]Z[#*-0.299] +N4170Y[#*-15.874]Z[#*-0.286] +N4180Y[#*-16.749]Z[#*-0.155] +N4190Y[#*-17.249]Z[#*-0.082] +N4200Y[#*-17.749]Z[#*-0.027] +N4210Y[#*-17.999]Z[#*-0.028] +N4220Y[#*-18.249]Z[#*-0.05] +N4230Y[#*-19.749]Z[#*-0.321] +N4240Y[#*-20.249]Z[#*-0.451] +N4250Y[#*-20.499]Z[#*-0.552] +N4260Y[#*-20.749]Z[#*-0.681] +N4270Y[#*-21.749]Z[#*-1.274] +N4280Y[#*-22.249]Z[#*-1.592] +N4290Y[#*-22.499]Z[#*-1.803] +N4300Y[#*-22.749]Z[#*-2.07] +N4310Y[#*-23.015]Z[#*-2.432] +N4320Y[#*-23.069]Z[#*-2.395] +N4330Y[#*-23.265]Z[#*-2.275] +N4340Y[#*-23.499]Z[#*-2.157] +N4350Y[#*-23.78]Z[#*-2.047] +N4360Y[#*-23.999]Z[#*-1.984] +N4370Y[#*-24.749]Z[#*-1.838] +N4380Y[#*-25.249]Z[#*-1.746] +N4390Y[#*-25.749]Z[#*-1.693] +N4400Y[#*-25.999]Z[#*-1.698] +N4410Y[#*-26.249]Z[#*-1.724] +N4420Y[#*-26.749]Z[#*-1.836] +N4430Y[#*-27.749]Z[#*-2.096] +N4440Y[#*-28.249]Z[#*-2.263] +N4450Y[#*-28.499]Z[#*-2.385] +N4460Y[#*-28.749]Z[#*-2.537] +N4470Y[#*-29.749]Z[#*-3.176] +N4480Y[#*-30.249]Z[#*-3.545] +N4490Y[#*-30.499]Z[#*-3.8] +N4500Y[#*-31.249]Z[#*-4.704] +N4510Y[#*-31.749]Z[#*-5.387] +N4520Y[#*-31.874]Z[#*-5.639] +N4530Y[#*-31.999]Z[#*-5.979] +N4540Y[#*-32.249]Z[#*-6.819] +N4550Y[#*-32.436]Z[#*-7.482] +N4560Y[#*-32.491]Z[#*-7.814] +N4570Y[#*-32.507]Z[#*-8.05] +N4580Y[#*-32.515]Z[#*-30.5] +N4590Y[#*-32.538] +N4600Y[#*-32.811] +N4610Y[#*-32.999] +N4620Y[#*-37.749] +N4630Y[#*-49.749] +N4640Y[#*-52.992] +N4650Y[#*-53.] +N4660X[#*45.472]Y[#*-53.293] +N4670X[#*45.393]Y[#*-53.547] +N4680X[#*45.269]Y[#*-53.762] +N4690X[#*45.109]Y[#*-53.938] +N4700X[#*44.92]Y[#*-54.074] +N4710X[#*44.709]Y[#*-54.172] +N4720X[#*44.483]Y[#*-54.23] +N4730X[#*44.25]Y[#*-54.25] +N4740X[#*44.017]Y[#*-54.23] +N4750X[#*43.791]Y[#*-54.172] +N4760X[#*43.58]Y[#*-54.074] +N4770X[#*43.391]Y[#*-53.938] +N4780X[#*43.231]Y[#*-53.762] +N4790X[#*43.107]Y[#*-53.547] +N4800X[#*43.028]Y[#*-53.293] +N4810X[#*43.]Y[#*-53.] +N4820Y[#*-50.009] +N4830Y[#*-39.009] +N4840Y[#*-32.524] +N4850Y[#*-32.384] +N4860Y[#*-32.267] +N4870Y[#*-32.235] +N4880Y[#*-32.228]Z[#*-9.305] +N4890Y[#*-32.196]Z[#*-8.689] +N4900Y[#*-32.134]Z[#*-7.801] +N4910Y[#*-32.118]Z[#*-7.679] +N4920Y[#*-32.103]Z[#*-7.586] +N4930Y[#*-32.071]Z[#*-7.439] +N4940Y[#*-32.009]Z[#*-7.22] +N4950Y[#*-31.759]Z[#*-6.589] +N4960Y[#*-31.509]Z[#*-5.992] +N4970Y[#*-31.259]Z[#*-5.478] +N4980Y[#*-31.009]Z[#*-5.132] +N4990Y[#*-30.071]Z[#*-4.022] +N5000Y[#*-30.009]Z[#*-3.958] +N5010Y[#*-29.509]Z[#*-3.562] +N5020Y[#*-28.509]Z[#*-2.877] +N5030Y[#*-28.259]Z[#*-2.733] +N5040Y[#*-28.009]Z[#*-2.62] +N5050Y[#*-27.509]Z[#*-2.469] +N5060Y[#*-26.509]Z[#*-2.197] +N5070Y[#*-26.259]Z[#*-2.149] +N5080Y[#*-26.009]Z[#*-2.124] +N5090Y[#*-25.509]Z[#*-2.143] +N5100Y[#*-24.509]Z[#*-2.283] +N5110Y[#*-24.259]Z[#*-2.325] +N5120Y[#*-24.009]Z[#*-2.391] +N5130Y[#*-23.759]Z[#*-2.483] +N5140Y[#*-23.509]Z[#*-2.603] +N5150Y[#*-23.259]Z[#*-2.757] +N5160Y[#*-23.009]Z[#*-2.951] +N5170Y[#*-22.509]Z[#*-2.342] +N5180Y[#*-22.259]Z[#*-2.066] +N5190Y[#*-22.009]Z[#*-1.851] +N5200Y[#*-21.509]Z[#*-1.538] +N5210Y[#*-20.509]Z[#*-0.968] +N5220Y[#*-20.259]Z[#*-0.848] +N5230Y[#*-20.009]Z[#*-0.756] +N5240Y[#*-19.509]Z[#*-0.642] +N5250Y[#*-18.259]Z[#*-0.407] +N5260Y[#*-18.009]Z[#*-0.382] +N5270Y[#*-17.509]Z[#*-0.4] +N5280Y[#*-16.04]Z[#*-0.642] +N5290Y[#*-15.759]Z[#*-0.709] +N5300Y[#*-15.509]Z[#*-0.796] +N5310Y[#*-15.009]Z[#*-1.047] +N5320Y[#*-14.509]Z[#*-1.321] +N5330Y[#*-14.134]Z[#*-1.526] +N5340Y[#*-14.009]Z[#*-1.596] +N5350Y[#*-13.759]Z[#*-1.76] +N5360Y[#*-13.509]Z[#*-1.969] +N5370Y[#*-13.259]Z[#*-2.236] +N5380Y[#*-13.024]Z[#*-2.514] +N5390Y[#*-13.009]Z[#*-2.533] +N5400Y[#*-12.993]Z[#*-2.545] +N5410Y[#*-12.946]Z[#*-2.507] +N5420Y[#*-12.759]Z[#*-2.372] +N5430Y[#*-12.509]Z[#*-2.226] +N5440Y[#*-12.259]Z[#*-2.113] +N5450Y[#*-12.134]Z[#*-2.067] +N5460Y[#*-12.009]Z[#*-2.028] +N5470Y[#*-11.509]Z[#*-1.935] +N5480Y[#*-10.509]Z[#*-1.852] +N5490Y[#*-10.259]Z[#*-1.842] +N5500Y[#*-10.009]Z[#*-1.855] +N5510Y[#*-9.509]Z[#*-1.955] +N5520Y[#*-8.259]Z[#*-2.361] +N5530Y[#*-8.009]Z[#*-2.46] +N5540Y[#*-7.509]Z[#*-2.749] +N5550Y[#*-6.509]Z[#*-3.423] +N5560Y[#*-6.009]Z[#*-3.813] +N5570Y[#*-5.009]Z[#*-4.81] +N5580Y[#*-4.509]Z[#*-5.47] +N5590Y[#*-4.009]Z[#*-6.157] +N5600Y[#*-3.759]Z[#*-6.593] +N5610Y[#*-3.384]Z[#*-7.528] +N5620Y[#*-3.321]Z[#*-7.693] +N5630Y[#*-3.259]Z[#*-7.859] +N5640Y[#*-3.196]Z[#*-8.029] +N5650Y[#*-3.103]Z[#*-8.351] +N5660Y[#*-3.048]Z[#*-8.681] +N5670Y[#*-3.032]Z[#*-8.89] +N5680Y[#*-2.993]Z[#*-9.595] +N5690Y[#*-2.97]Z[#*-10.132] +N5700Y[#*-2.962]Z[#*-30.5] +N5710Y[#*-2.946] +N5720Y[#*-1.009] +N5730Y[#*-0.009] +N5740Y[#*2.866] +N5750Y[#*2.96] +N5760Y[#*2.968]Z[#*-10.186] +N5770Y[#*3.038]Z[#*-8.8] +N5780Y[#*3.061]Z[#*-8.573] +N5790Y[#*3.077]Z[#*-8.476] +N5800Y[#*3.116]Z[#*-8.294] +N5810Y[#*3.241]Z[#*-7.907] +N5820Y[#*3.491]Z[#*-7.251] +N5830Y[#*3.741]Z[#*-6.632] +N5840Y[#*3.991]Z[#*-6.184] +N5850Y[#*4.491]Z[#*-5.495] +N5860Y[#*4.991]Z[#*-4.83] +N5870Y[#*5.991]Z[#*-3.83] +N5880Y[#*6.491]Z[#*-3.435] +N5890Y[#*6.991]Z[#*-3.1] +N5900Y[#*7.741]Z[#*-2.599] +N5910Y[#*7.991]Z[#*-2.468] +N5920Y[#*8.491]Z[#*-2.285] +N5930Y[#*9.491]Z[#*-1.96] +N5940Y[#*9.741]Z[#*-1.896] +N5950Y[#*9.866]Z[#*-1.874] +N5960Y[#*9.991]Z[#*-1.857] +N5970Y[#*10.491]Z[#*-1.851] +N5980Y[#*11.491]Z[#*-1.934] +N5990Y[#*11.741]Z[#*-1.966] +N6000Y[#*11.929]Z[#*-2.007] +N6010Y[#*12.241]Z[#*-2.106] +N6020Y[#*12.491]Z[#*-2.217] +N6030Y[#*12.741]Z[#*-2.36] +N6040Y[#*12.999]Z[#*-2.545] +N6050Y[#*13.366]Z[#*-2.113] +N6060Y[#*13.491]Z[#*-1.986] +N6070Y[#*13.991]Z[#*-1.606] +N6080Y[#*15.241]Z[#*-0.92] +N6090Y[#*15.491]Z[#*-0.803] +N6100Y[#*15.991]Z[#*-0.652] +N6110Y[#*17.491]Z[#*-0.402] +N6120Y[#*17.741]Z[#*-0.38] +N6130Y[#*17.991] +N6140Y[#*18.491]Z[#*-0.448] +N6150Y[#*19.866]Z[#*-0.715] +N6160Y[#*19.991]Z[#*-0.75] +N6170Y[#*20.491]Z[#*-0.959] +N6180Y[#*21.741]Z[#*-1.67] +N6190Y[#*21.929]Z[#*-1.792] +N6200Y[#*21.991]Z[#*-1.837] +N6210Y[#*22.491]Z[#*-2.319] +N6220Y[#*22.976]Z[#*-2.912] +N6230Y[#*22.991]Z[#*-2.931] +N6240Y[#*23.007]Z[#*-2.95] +N6250Y[#*23.241]Z[#*-2.769] +N6260Y[#*23.491]Z[#*-2.613] +N6270Y[#*23.741]Z[#*-2.49] +N6280Y[#*23.991]Z[#*-2.397] +N6290Y[#*24.491]Z[#*-2.286] +N6300Y[#*24.991]Z[#*-2.215] +N6310Y[#*25.491]Z[#*-2.145] +N6320Y[#*25.741]Z[#*-2.123] +N6330Y[#*25.991] +N6340Y[#*26.491]Z[#*-2.193] +N6350Y[#*27.866]Z[#*-2.569] +N6360Y[#*27.976]Z[#*-2.608] +N6370Y[#*28.491]Z[#*-2.866] +N6380Y[#*29.491]Z[#*-3.55] +N6390Y[#*29.741]Z[#*-3.725] +N6400Y[#*29.991]Z[#*-3.94] +N6410Y[#*30.741]Z[#*-4.813] +N6420Y[#*30.866]Z[#*-4.962] +N6430Y[#*30.991]Z[#*-5.111] +N6440Y[#*31.491]Z[#*-5.95] +N6450Y[#*31.991]Z[#*-7.168] +N6460Y[#*32.085]Z[#*-7.498] +N6470Y[#*32.132]Z[#*-7.782] +N6480Y[#*32.147]Z[#*-7.96] +N6490Y[#*32.218]Z[#*-9.089] +N6500Y[#*32.226]Z[#*-9.257] +N6510Y[#*32.233]Z[#*-30.5] +N6520Y[#*52.999] +N6530X[#*42.972]Y[#*53.292] +N6540X[#*42.893]Y[#*53.546] +N6550X[#*42.769]Y[#*53.761] +N6560X[#*42.609]Y[#*53.937] +N6570X[#*42.42]Y[#*54.074] +N6580X[#*42.209]Y[#*54.171] +N6590X[#*41.983]Y[#*54.23] +N6600X[#*41.75]Y[#*54.25] +N6610X[#*41.517]Y[#*54.23] +N6620X[#*41.291]Y[#*54.172] +N6630X[#*41.08]Y[#*54.074] +N6640X[#*40.891]Y[#*53.937] +N6650X[#*40.731]Y[#*53.762] +N6660X[#*40.607]Y[#*53.547] +N6670X[#*40.528]Y[#*53.293] +N6680X[#*40.5]Y[#*53.] +N6690Y[#*52.961] +N6700Y[#*34.961] +N6710Y[#*30.54] +N6720Y[#*30.532]Z[#*-9.059] +N6730Y[#*30.524]Z[#*-8.985] +N6740Y[#*30.485]Z[#*-8.772] +N6750Y[#*30.399]Z[#*-8.503] +N6760Y[#*30.211]Z[#*-8.05] +N6770Y[#*29.711]Z[#*-6.883] +N6780Y[#*29.461]Z[#*-6.379] +N6790Y[#*29.336]Z[#*-6.201] +N6800Y[#*29.211]Z[#*-6.058] +N6810Y[#*29.086]Z[#*-5.94] +N6820Y[#*28.93]Z[#*-5.809] +N6830Y[#*28.899]Z[#*-5.784] +N6840Y[#*27.961]Z[#*-5.023] +N6850Y[#*27.461]Z[#*-4.725] +N6860Y[#*27.336]Z[#*-4.68] +N6870Y[#*26.711]Z[#*-4.523] +N6880Y[#*25.961]Z[#*-4.353] +N6890Y[#*25.711]Z[#*-4.334] +N6900Y[#*25.461]Z[#*-4.351] +N6910Y[#*25.336]Z[#*-4.372] +N6920Y[#*24.461]Z[#*-4.589] +N6930Y[#*23.961]Z[#*-4.787] +N6940Y[#*23.711]Z[#*-4.913] +N6950Y[#*23.461]Z[#*-5.061] +N6960Y[#*22.961]Z[#*-5.414] +N6970Y[#*22.782]Z[#*-5.553] +N6980Y[#*22.704]Z[#*-5.427] +N6990Y[#*22.68]Z[#*-5.389] +N7000Y[#*22.649]Z[#*-5.339] +N7010Y[#*22.446]Z[#*-5.064] +N7020Y[#*22.336]Z[#*-4.929] +N7030Y[#*21.961]Z[#*-4.5] +N7040Y[#*21.461]Z[#*-4.013] +N7050Y[#*20.961]Z[#*-3.61] +N7060Y[#*20.461]Z[#*-3.273] +N7070Y[#*19.961]Z[#*-2.95] +N7080Y[#*19.711]Z[#*-2.846] +N7090Y[#*18.461]Z[#*-2.512] +N7100Y[#*17.961]Z[#*-2.415] +N7110Y[#*17.836]Z[#*-2.412] +N7120Y[#*17.711]Z[#*-2.419] +N7130Y[#*17.461]Z[#*-2.463] +N7140Y[#*16.961]Z[#*-2.59] +N7150Y[#*15.961]Z[#*-2.87] +N7160Y[#*15.711]Z[#*-2.981] +N7170Y[#*15.461]Z[#*-3.13] +N7180Y[#*14.961]Z[#*-3.478] +N7190Y[#*14.461]Z[#*-3.875] +N7200Y[#*13.961]Z[#*-4.334] +N7210Y[#*13.461]Z[#*-4.858] +N7220Y[#*13.211]Z[#*-5.161] +N7230Y[#*13.047]Z[#*-5.394] +N7240Y[#*12.993]Z[#*-5.342] +N7250Y[#*12.711]Z[#*-5.115] +N7260Y[#*12.461]Z[#*-4.943] +N7270Y[#*11.961]Z[#*-4.68] +N7280Y[#*11.954]Z[#*-4.676] +N7290Y[#*11.899]Z[#*-4.655] +N7300Y[#*11.461]Z[#*-4.484] +N7310Y[#*10.961]Z[#*-4.323] +N7320Y[#*10.461]Z[#*-4.223] +N7330Y[#*10.211]Z[#*-4.211] +N7340Y[#*9.93]Z[#*-4.24] +N7350Y[#*8.961]Z[#*-4.501] +N7360Y[#*8.461]Z[#*-4.641] +N7370Y[#*8.211]Z[#*-4.743] +N7380Y[#*7.954]Z[#*-4.896] +N7390Y[#*7.461]Z[#*-5.277] +N7400Y[#*6.961]Z[#*-5.688] +N7410Y[#*6.461]Z[#*-6.205] +N7420Y[#*6.211]Z[#*-6.573] +N7430Y[#*5.461]Z[#*-7.753] +N7440Y[#*5.211]Z[#*-8.345] +N7450Y[#*4.961]Z[#*-9.178] +N7460Y[#*4.875]Z[#*-9.565] +N7470Y[#*4.844]Z[#*-9.725] +N7480Y[#*4.805]Z[#*-10.002] +N7490Y[#*4.797]Z[#*-26.444] +N7500Y[#*4.782]Z[#*-26.437] +N7510Y[#*4.696]Z[#*-26.399] +N7520Y[#*4.649]Z[#*-26.379] +N7530Y[#*4.586]Z[#*-26.352] +N7540Y[#*4.461]Z[#*-26.298] +N7550Y[#*4.399]Z[#*-26.27] +N7560Y[#*3.961]Z[#*-26.084] +N7570Y[#*3.836]Z[#*-26.031] +N7580Y[#*3.461]Z[#*-25.887] +N7590Y[#*2.961]Z[#*-25.732] +N7600Y[#*1.961]Z[#*-25.509] +N7610Y[#*1.461]Z[#*-25.455] +N7620Y[#*-0.039]Z[#*-25.355] +N7630Y[#*-1.539]Z[#*-25.46] +N7640Y[#*-2.039]Z[#*-25.526] +N7650Y[#*-2.539]Z[#*-25.635] +N7660Y[#*-3.039]Z[#*-25.756] +N7670Y[#*-3.539]Z[#*-25.911] +N7680Y[#*-4.039]Z[#*-26.117] +N7690Y[#*-4.796]Z[#*-26.443] +N7700Y[#*-4.804]Z[#*-10.] +N7710Y[#*-4.843]Z[#*-9.725] +N7720Y[#*-4.89]Z[#*-9.49] +N7730Y[#*-4.921]Z[#*-9.346] +N7740Y[#*-4.976]Z[#*-9.115] +N7750Y[#*-5.101]Z[#*-8.668] +N7760Y[#*-5.289]Z[#*-8.123] +N7770Y[#*-5.539]Z[#*-7.62] +N7780Y[#*-5.601]Z[#*-7.521] +N7790Y[#*-6.039]Z[#*-6.842] +N7800Y[#*-6.539]Z[#*-6.106] +N7810Y[#*-6.789]Z[#*-5.838] +N7820Y[#*-7.039]Z[#*-5.623] +N7830Y[#*-7.539]Z[#*-5.216] +N7840Y[#*-8.039]Z[#*-4.839] +N7850Y[#*-8.164]Z[#*-4.767] +N7860Y[#*-8.289]Z[#*-4.707] +N7870Y[#*-8.539]Z[#*-4.617] +N7880Y[#*-9.539]Z[#*-4.342] +N7890Y[#*-10.039]Z[#*-4.223] +N7900Y[#*-10.289]Z[#*-4.211] +N7910Y[#*-10.539]Z[#*-4.234] +N7920Y[#*-10.789]Z[#*-4.282] +N7930Y[#*-11.039]Z[#*-4.343] +N7940Y[#*-11.289]Z[#*-4.42] +N7950Y[#*-12.039]Z[#*-4.713] +N7960Y[#*-12.539]Z[#*-4.994] +N7970Y[#*-13.046]Z[#*-5.393] +N7980Y[#*-13.289]Z[#*-5.06] +N7990Y[#*-13.539]Z[#*-4.771] +N8000Y[#*-14.039]Z[#*-4.262] +N8010Y[#*-14.539]Z[#*-3.805] +N8020Y[#*-15.039]Z[#*-3.426] +N8030Y[#*-15.539]Z[#*-3.08] +N8040Y[#*-16.039]Z[#*-2.843] +N8050Y[#*-16.101]Z[#*-2.824] +N8060Y[#*-16.539]Z[#*-2.705] +N8070Y[#*-17.039]Z[#*-2.569] +N8080Y[#*-17.539]Z[#*-2.445] +N8090Y[#*-17.789]Z[#*-2.414] +N8100Y[#*-18.039]Z[#*-2.422] +N8110Y[#*-18.289]Z[#*-2.47] +N8120Y[#*-19.539]Z[#*-2.795] +N8130Y[#*-20.039]Z[#*-2.99] +N8140Y[#*-20.289]Z[#*-3.145] +N8150Y[#*-20.539]Z[#*-3.33] +N8160Y[#*-21.039]Z[#*-3.665] +N8170Y[#*-21.539]Z[#*-4.083] +N8180Y[#*-22.039]Z[#*-4.584] +N8190Y[#*-22.539]Z[#*-5.181] +N8200Y[#*-22.664]Z[#*-5.363] +N8210Y[#*-22.773]Z[#*-5.539] +N8220Y[#*-22.789]Z[#*-5.553] +N8230Y[#*-22.804]Z[#*-5.54] +N8240Y[#*-22.914]Z[#*-5.452] +N8250Y[#*-23.164]Z[#*-5.263] +N8260Y[#*-23.539]Z[#*-5.013] +N8270Y[#*-24.039]Z[#*-4.753] +N8280Y[#*-24.289]Z[#*-4.649] +N8290Y[#*-24.539]Z[#*-4.565] +N8300Y[#*-25.039]Z[#*-4.443] +N8310Y[#*-25.539]Z[#*-4.342] +N8320Y[#*-25.789]Z[#*-4.336] +N8330Y[#*-26.101]Z[#*-4.379] +N8340Y[#*-26.539]Z[#*-4.481] +N8350Y[#*-27.039]Z[#*-4.603] +N8360Y[#*-27.539]Z[#*-4.758] +N8370Y[#*-27.664]Z[#*-4.821] +N8380Y[#*-27.789]Z[#*-4.897] +N8390Y[#*-28.039]Z[#*-5.086] +N8400Y[#*-28.046]Z[#*-5.092] +N8410Y[#*-28.539]Z[#*-5.492] +N8420Y[#*-29.039]Z[#*-5.899] +N8430Y[#*-29.289]Z[#*-6.143] +N8440Y[#*-29.414]Z[#*-6.306] +N8450Y[#*-29.539]Z[#*-6.515] +N8460Y[#*-29.601]Z[#*-6.638] +N8470Y[#*-30.289]Z[#*-8.23] +N8480Y[#*-30.414]Z[#*-8.543] +N8490Y[#*-30.492]Z[#*-8.801] +N8500Y[#*-30.531]Z[#*-9.049] +N8510Y[#*-30.539]Z[#*-30.5] +N8520Y[#*-30.546] +N8530Y[#*-31.039] +N8540Y[#*-31.101] +N8550Y[#*-33.039] +N8560Y[#*-39.039] +N8570Y[#*-46.039] +N8580Y[#*-50.039] +N8590Y[#*-53.] +N8600X[#*40.472]Y[#*-53.293] +N8610X[#*40.393]Y[#*-53.547] +N8620X[#*40.269]Y[#*-53.762] +N8630X[#*40.109]Y[#*-53.938] +N8640X[#*39.92]Y[#*-54.074] +N8650X[#*39.709]Y[#*-54.172] +N8660X[#*39.483]Y[#*-54.23] +N8670X[#*39.25]Y[#*-54.25] +N8680X[#*39.017]Y[#*-54.23] +N8690X[#*38.791]Y[#*-54.172] +N8700X[#*38.58]Y[#*-54.074] +N8710X[#*38.391]Y[#*-53.938] +N8720X[#*38.231]Y[#*-53.762] +N8730X[#*38.107]Y[#*-53.547] +N8740X[#*38.028]Y[#*-53.293] +N8750X[#*38.]Y[#*-53.] +N8760Y[#*-51.974] +N8770Y[#*-45.974] +N8780Y[#*-31.974] +N8790Y[#*-29.974] +N8800Y[#*-23.349] +N8810Y[#*-23.099] +N8820Y[#*-23.052] +N8830Y[#*-23.037] +N8840Y[#*-23.021] +N8850Y[#*-22.982] +N8860Y[#*-22.974]Z[#*-27.943] +N8870Y[#*-22.951]Z[#*-27.17] +N8880Y[#*-22.943]Z[#*-26.419] +N8890Y[#*-22.912]Z[#*-26.088] +N8900Y[#*-22.888]Z[#*-25.919] +N8910Y[#*-22.88]Z[#*-25.863] +N8920Y[#*-22.833]Z[#*-25.591] +N8930Y[#*-22.787]Z[#*-25.383] +N8940Y[#*-22.724]Z[#*-25.157] +N8950Y[#*-22.474]Z[#*-24.512] +N8960Y[#*-22.099]Z[#*-23.723] +N8970Y[#*-21.974]Z[#*-23.481] +N8980Y[#*-21.724]Z[#*-23.112] +N8990Y[#*-21.474]Z[#*-22.836] +N9000Y[#*-20.974]Z[#*-22.446] +N9010Y[#*-19.474]Z[#*-21.501] +N9020Y[#*-19.224]Z[#*-21.374] +N9030Y[#*-18.974]Z[#*-21.276] +N9040Y[#*-18.474]Z[#*-21.155] +N9050Y[#*-17.474]Z[#*-20.992] +N9060Y[#*-16.974]Z[#*-20.902] +N9070Y[#*-16.474]Z[#*-20.833] +N9080Y[#*-15.974]Z[#*-20.845] +N9090Y[#*-14.974]Z[#*-20.989] +N9100Y[#*-14.037]Z[#*-21.108] +N9110Y[#*-13.724]Z[#*-21.185] +N9120Y[#*-13.474]Z[#*-21.275] +N9130Y[#*-12.974]Z[#*-21.535] +N9140Y[#*-11.724]Z[#*-22.283] +N9150Y[#*-11.474]Z[#*-22.457] +N9160Y[#*-11.224]Z[#*-22.676] +N9170Y[#*-11.099]Z[#*-22.808] +N9180Y[#*-10.974]Z[#*-22.959] +N9190Y[#*-10.724]Z[#*-23.343] +N9200Y[#*-10.474]Z[#*-23.888] +N9210Y[#*-10.224]Z[#*-24.457] +N9220Y[#*-10.099]Z[#*-24.782] +N9230Y[#*-9.99]Z[#*-25.161] +N9240Y[#*-9.919]Z[#*-25.513] +N9250Y[#*-9.865]Z[#*-25.981] +N9260Y[#*-9.857]Z[#*-27.866] +N9270Y[#*-9.724]Z[#*-27.561] +N9280Y[#*-9.474]Z[#*-27.143] +N9290Y[#*-8.974]Z[#*-26.388] +N9300Y[#*-8.474]Z[#*-25.75] +N9310Y[#*-7.974]Z[#*-25.201] +N9320Y[#*-7.474]Z[#*-24.713] +N9330Y[#*-6.474]Z[#*-23.889] +N9340Y[#*-5.474]Z[#*-23.25] +N9350Y[#*-4.974]Z[#*-22.983] +N9360Y[#*-3.974]Z[#*-22.519] +N9370Y[#*-3.474]Z[#*-22.358] +N9380Y[#*-2.974]Z[#*-22.195] +N9390Y[#*-2.474]Z[#*-22.063] +N9400Y[#*-1.974]Z[#*-21.968] +N9410Y[#*-0.974]Z[#*-21.835] +N9420Y[#*0.026]Z[#*-21.781] +N9430Y[#*1.026]Z[#*-21.838] +N9440Y[#*1.526]Z[#*-21.888] +N9450Y[#*2.026]Z[#*-21.978] +N9460Y[#*3.026]Z[#*-22.213] +N9470Y[#*4.026]Z[#*-22.539] +N9480Y[#*5.026]Z[#*-23.008] +N9490Y[#*5.526]Z[#*-23.283] +N9500Y[#*6.026]Z[#*-23.601] +N9510Y[#*6.526]Z[#*-23.926] +N9520Y[#*7.526]Z[#*-24.753] +N9530Y[#*8.026]Z[#*-25.256] +N9540Y[#*8.526]Z[#*-25.804] +N9550Y[#*8.776]Z[#*-26.093] +N9560Y[#*8.901]Z[#*-26.274] +N9570Y[#*9.01]Z[#*-26.437] +N9580Y[#*9.276]Z[#*-26.832] +N9590Y[#*9.401]Z[#*-27.022] +N9600Y[#*9.526]Z[#*-27.213] +N9610Y[#*9.651]Z[#*-27.411] +N9620Y[#*9.713]Z[#*-27.527] +N9630Y[#*9.768]Z[#*-27.644] +N9640Y[#*9.823]Z[#*-27.771] +N9650Y[#*9.831]Z[#*-26.079] +N9660Y[#*9.838]Z[#*-25.933] +N9670Y[#*9.87]Z[#*-25.651] +N9680Y[#*9.924]Z[#*-25.326] +N9690Y[#*9.963]Z[#*-25.153] +N9700Y[#*10.026]Z[#*-24.925] +N9710Y[#*10.276]Z[#*-24.275] +N9720Y[#*10.526]Z[#*-23.694] +N9730Y[#*10.776]Z[#*-23.195] +N9740Y[#*10.901]Z[#*-23.011] +N9750Y[#*11.026]Z[#*-22.853] +N9760Y[#*11.276]Z[#*-22.595] +N9770Y[#*11.526]Z[#*-22.393] +N9780Y[#*12.526]Z[#*-21.779] +N9790Y[#*13.026]Z[#*-21.486] +N9800Y[#*13.276]Z[#*-21.349] +N9810Y[#*13.526]Z[#*-21.242] +N9820Y[#*14.026]Z[#*-21.105] +N9830Y[#*15.026]Z[#*-20.977] +N9840Y[#*16.026]Z[#*-20.838] +N9850Y[#*16.526] +N9860Y[#*18.526]Z[#*-21.166] +N9870Y[#*18.776]Z[#*-21.221] +N9880Y[#*18.901]Z[#*-21.257] +N9890Y[#*19.026]Z[#*-21.3] +N9900Y[#*19.526]Z[#*-21.54] +N9910Y[#*20.526]Z[#*-22.172] +N9920Y[#*20.963]Z[#*-22.444] +N9930Y[#*21.276]Z[#*-22.666] +N9940Y[#*21.526]Z[#*-22.895] +N9950Y[#*21.776]Z[#*-23.19] +N9960Y[#*21.963]Z[#*-23.476] +N9970Y[#*22.026]Z[#*-23.59] +N9980Y[#*22.276]Z[#*-24.108] +N9990Y[#*22.526]Z[#*-24.634] +N1Y[#*22.651]Z[#*-24.947] +N11Y[#*22.776]Z[#*-25.357] +N21Y[#*22.862]Z[#*-25.768] +N31Y[#*22.893]Z[#*-25.982] +N41Y[#*22.932]Z[#*-26.301] +N51Y[#*22.94]Z[#*-26.443] +N61Y[#*22.948]Z[#*-27.152] +N71Y[#*22.971]Z[#*-27.867] +N81Y[#*22.979]Z[#*-28.108] +N91Y[#*22.987]Z[#*-30.5] +N101Y[#*38.026] +N111Y[#*53.] +N121X[#*37.972]Y[#*53.293] +N131X[#*37.893]Y[#*53.547] +N141X[#*37.769]Y[#*53.762] +N151X[#*37.609]Y[#*53.937] +N161X[#*37.42]Y[#*54.074] +N171X[#*37.209]Y[#*54.172] +N181X[#*36.983]Y[#*54.23] +N191X[#*36.75]Y[#*54.25] +N201X[#*36.517]Y[#*54.23] +N211X[#*36.291]Y[#*54.172] +N221X[#*36.08]Y[#*54.074] +N231X[#*35.891]Y[#*53.937] +N241X[#*35.731]Y[#*53.762] +N251X[#*35.607]Y[#*53.547] +N261X[#*35.528]Y[#*53.293] +N271X[#*35.5]Y[#*53.] +N281Y[#*48.823] +N291Y[#*45.823] +N301Y[#*40.823] +N311Y[#*35.823] +N321Y[#*23.323] +N331Y[#*23.261] +N341Y[#*23.222] +N351Y[#*23.214]Z[#*-28.173] +N361Y[#*23.191]Z[#*-27.925] +N371Y[#*23.066]Z[#*-26.499] +N381Y[#*23.058]Z[#*-26.418] +N391Y[#*23.042]Z[#*-26.298] +N401Y[#*22.98]Z[#*-25.992] +N411Y[#*22.886]Z[#*-25.695] +N421Y[#*22.761]Z[#*-25.406] +N431Y[#*22.573]Z[#*-25.021] +N441Y[#*22.073]Z[#*-23.993] +N451Y[#*21.823]Z[#*-23.584] +N461Y[#*21.761]Z[#*-23.501] +N471Y[#*21.573]Z[#*-23.283] +N481Y[#*21.323]Z[#*-23.047] +N491Y[#*21.073]Z[#*-22.856] +N501Y[#*19.823]Z[#*-22.004] +N511Y[#*19.323]Z[#*-21.724] +N521Y[#*19.073]Z[#*-21.626] +N531Y[#*18.761]Z[#*-21.538] +N541Y[#*17.823]Z[#*-21.326] +N551Y[#*17.323]Z[#*-21.199] +N561Y[#*16.823]Z[#*-21.103] +N571Y[#*16.573]Z[#*-21.087] +N581Y[#*15.823]Z[#*-21.091] +N591Y[#*14.823]Z[#*-21.159] +N601Y[#*14.323]Z[#*-21.209] +N611Y[#*13.823]Z[#*-21.34] +N621Y[#*13.573]Z[#*-21.443] +N631Y[#*13.323]Z[#*-21.57] +N641Y[#*12.823]Z[#*-21.833] +N651Y[#*12.323]Z[#*-22.043] +N661Y[#*11.823]Z[#*-22.304] +N671Y[#*11.573]Z[#*-22.486] +N681Y[#*11.323]Z[#*-22.712] +N691Y[#*11.073]Z[#*-22.999] +N701Y[#*10.823]Z[#*-23.385] +N711Y[#*10.698]Z[#*-23.639] +N721Y[#*10.433]Z[#*-24.211] +N731Y[#*10.425]Z[#*-24.214] +N741Y[#*10.308]Z[#*-24.109] +N751Y[#*10.261]Z[#*-24.067] +N761Y[#*10.073]Z[#*-23.912] +N771Y[#*9.698]Z[#*-23.614] +N781Y[#*9.323]Z[#*-23.287] +N791Y[#*8.823]Z[#*-22.866] +N801Y[#*7.823]Z[#*-21.995] +N811Y[#*7.323]Z[#*-21.605] +N821Y[#*6.323]Z[#*-20.944] +N831Y[#*5.823]Z[#*-20.661] +N841Y[#*4.823]Z[#*-20.177] +N851Y[#*4.323]Z[#*-19.991] +N861Y[#*3.823]Z[#*-19.822] +N871Y[#*2.823]Z[#*-19.534] +N881Y[#*1.823]Z[#*-19.328] +N891Y[#*1.323]Z[#*-19.266] +N901Y[#*0.823]Z[#*-19.231] +N911Y[#*0.323]Z[#*-19.196] +N921Y[#*-0.177]Z[#*-19.185] +N931Y[#*-1.177]Z[#*-19.256] +N941Y[#*-2.177]Z[#*-19.401] +N951Y[#*-3.177]Z[#*-19.609] +N961Y[#*-4.177]Z[#*-19.942] +N971Y[#*-5.177]Z[#*-20.345] +N981Y[#*-5.677]Z[#*-20.588] +N991Y[#*-6.177]Z[#*-20.847] +N1001Y[#*-6.677]Z[#*-21.182] +N1011Y[#*-7.177]Z[#*-21.504] +N1021Y[#*-7.677]Z[#*-21.879] +N1031Y[#*-8.177]Z[#*-22.282] +N1041Y[#*-9.177]Z[#*-23.153] +N1051Y[#*-10.177]Z[#*-23.971] +N1061Y[#*-10.427]Z[#*-24.188] +N1071Y[#*-10.489]Z[#*-24.244] +N1081Y[#*-10.497]Z[#*-24.234] +N1091Y[#*-10.802]Z[#*-23.597] +N1101Y[#*-10.927]Z[#*-23.351] +N1111Y[#*-11.177]Z[#*-22.976] +N1121Y[#*-11.239]Z[#*-22.898] +N1131Y[#*-11.427]Z[#*-22.694] +N1141Y[#*-11.677]Z[#*-22.472] +N1151Y[#*-11.927]Z[#*-22.293] +N1161Y[#*-12.177]Z[#*-22.15] +N1171Y[#*-12.677]Z[#*-21.93] +N1181Y[#*-13.177]Z[#*-21.69] +N1191Y[#*-13.677]Z[#*-21.431] +N1201Y[#*-14.177]Z[#*-21.257] +N1211Y[#*-14.302]Z[#*-21.228] +N1221Y[#*-14.427]Z[#*-21.205] +N1231Y[#*-14.677]Z[#*-21.175] +N1241Y[#*-15.177]Z[#*-21.139] +N1251Y[#*-16.177]Z[#*-21.087] +N1261Y[#*-16.677]Z[#*-21.088] +N1271Y[#*-17.177]Z[#*-21.149] +N1281Y[#*-17.677]Z[#*-21.282] +N1291Y[#*-18.677]Z[#*-21.511] +N1301Y[#*-19.177]Z[#*-21.65] +N1311Y[#*-19.427]Z[#*-21.755] +N1321Y[#*-19.677]Z[#*-21.887] +N1331Y[#*-20.177]Z[#*-22.223] +N1341Y[#*-21.177]Z[#*-22.918] +N1351Y[#*-21.677]Z[#*-23.378] +N1361Y[#*-21.802]Z[#*-23.531] +N1371Y[#*-21.927]Z[#*-23.708] +N1381Y[#*-22.192]Z[#*-24.204] +N1391Y[#*-22.302]Z[#*-24.432] +N1401Y[#*-22.677]Z[#*-25.214] +N1411Y[#*-22.927]Z[#*-25.789] +N1421Y[#*-22.989]Z[#*-26.001] +N1431Y[#*-23.052]Z[#*-26.313] +N1441Y[#*-23.091]Z[#*-26.711] +N1451Y[#*-23.177]Z[#*-27.735] +N1461Y[#*-23.192]Z[#*-27.921] +N1471Y[#*-23.216]Z[#*-28.18] +N1481Y[#*-23.223]Z[#*-30.5] +N1491Y[#*-23.434] +N1501Y[#*-25.177] +N1511Y[#*-53.] +N1521X[#*35.472]Y[#*-53.293] +N1531X[#*35.393]Y[#*-53.547] +N1541X[#*35.269]Y[#*-53.762] +N1551X[#*35.109]Y[#*-53.938] +N1561X[#*34.92]Y[#*-54.074] +N1571X[#*34.709]Y[#*-54.172] +N1581X[#*34.483]Y[#*-54.23] +N1591X[#*34.25]Y[#*-54.25] +N1601X[#*34.017]Y[#*-54.23] +N1611X[#*33.791]Y[#*-54.172] +N1621X[#*33.58]Y[#*-54.074] +N1631X[#*33.391]Y[#*-53.938] +N1641X[#*33.231]Y[#*-53.762] +N1651X[#*33.107]Y[#*-53.547] +N1661X[#*33.028]Y[#*-53.293] +N1671X[#*33.]Y[#*-53.] +N1681Y[#*-51.859] +N1691Y[#*-49.859] +N1701Y[#*-36.859] +N1711Y[#*-24.109] +N1721Y[#*-23.875] +N1731Y[#*-23.859] +N1741Y[#*-23.625] +N1751Y[#*-23.554] +N1761Y[#*-23.531] +N1771Y[#*-23.523]Z[#*-28.492] +N1781Y[#*-23.507]Z[#*-28.31] +N1791Y[#*-23.406]Z[#*-27.347] +N1801Y[#*-23.375]Z[#*-27.06] +N1811Y[#*-23.32]Z[#*-26.608] +N1821Y[#*-23.304]Z[#*-26.487] +N1831Y[#*-23.281]Z[#*-26.349] +N1841Y[#*-23.234]Z[#*-26.145] +N1851Y[#*-23.109]Z[#*-25.774] +N1861Y[#*-22.859]Z[#*-25.222] +N1871Y[#*-22.359]Z[#*-24.169] +N1881Y[#*-22.109]Z[#*-23.739] +N1891Y[#*-21.922]Z[#*-23.497] +N1901Y[#*-21.859]Z[#*-23.426] +N1911Y[#*-21.359]Z[#*-22.985] +N1921Y[#*-20.859]Z[#*-22.613] +N1931Y[#*-20.359]Z[#*-22.218] +N1941Y[#*-20.109]Z[#*-22.031] +N1951Y[#*-19.859]Z[#*-21.88] +N1961Y[#*-19.359]Z[#*-21.664] +N1971Y[#*-18.859]Z[#*-21.494] +N1981Y[#*-18.359]Z[#*-21.347] +N1991Y[#*-17.859]Z[#*-21.204] +N2001Y[#*-17.359]Z[#*-21.083] +N2011Y[#*-16.859]Z[#*-21.043] +N2021Y[#*-15.859]Z[#*-21.007] +N2031Y[#*-15.359]Z[#*-20.958] +N2041Y[#*-14.859]Z[#*-20.962] +N2051Y[#*-13.609]Z[#*-21.034] +N2061Y[#*-13.484]Z[#*-21.041] +N2071Y[#*-13.359]Z[#*-21.03] +N2081Y[#*-12.859]Z[#*-20.91] +N2091Y[#*-12.359]Z[#*-20.839] +N2101Y[#*-11.89]Z[#*-20.773] +N2111Y[#*-11.859]Z[#*-20.769] +N2121Y[#*-11.734]Z[#*-20.734] +N2131Y[#*-11.359]Z[#*-20.566] +N2141Y[#*-10.859]Z[#*-20.37] +N2151Y[#*-9.859]Z[#*-20.059] +N2161Y[#*-8.859]Z[#*-19.594] +N2171Y[#*-7.859]Z[#*-19.213] +N2181Y[#*-6.859]Z[#*-18.779] +N2191Y[#*-5.859]Z[#*-18.384] +N2201Y[#*-4.859]Z[#*-18.043] +N2211Y[#*-3.859]Z[#*-17.743] +N2221Y[#*-2.859]Z[#*-17.546] +N2231Y[#*-2.359]Z[#*-17.445] +N2241Y[#*-1.859]Z[#*-17.359] +N2251Y[#*-0.359]Z[#*-17.25] +N2261Y[#*0.141]Z[#*-17.235] +N2271Y[#*1.641]Z[#*-17.342] +N2281Y[#*2.141]Z[#*-17.4] +N2291Y[#*3.141]Z[#*-17.602] +N2301Y[#*4.141]Z[#*-17.827] +N2311Y[#*5.141]Z[#*-18.133] +N2321Y[#*6.141]Z[#*-18.502] +N2331Y[#*7.141]Z[#*-18.893] +N2341Y[#*8.141]Z[#*-19.34] +N2351Y[#*9.141]Z[#*-19.734] +N2361Y[#*9.641]Z[#*-19.981] +N2371Y[#*10.141]Z[#*-20.166] +N2381Y[#*10.641]Z[#*-20.324] +N2391Y[#*11.141]Z[#*-20.505] +N2401Y[#*11.391]Z[#*-20.619] +N2411Y[#*11.625]Z[#*-20.73] +N2421Y[#*11.641]Z[#*-20.734] +N2431Y[#*12.141]Z[#*-20.823] +N2441Y[#*12.641]Z[#*-20.895] +N2451Y[#*13.016]Z[#*-20.968] +N2461Y[#*13.141]Z[#*-21.001] +N2471Y[#*13.297]Z[#*-21.046] +N2481Y[#*13.641]Z[#*-21.025] +N2491Y[#*14.641]Z[#*-20.969] +N2501Y[#*15.141]Z[#*-20.952] +N2511Y[#*16.141]Z[#*-21.044] +N2521Y[#*16.641] +N2531Y[#*16.891] +N2541Y[#*17.141]Z[#*-21.063] +N2551Y[#*17.641]Z[#*-21.163] +N2561Y[#*18.641]Z[#*-21.445] +N2571Y[#*19.141]Z[#*-21.607] +N2581Y[#*19.641]Z[#*-21.794] +N2591Y[#*20.141]Z[#*-22.086] +N2601Y[#*20.641]Z[#*-22.478] +N2611Y[#*21.516]Z[#*-23.123] +N2621Y[#*21.641]Z[#*-23.231] +N2631Y[#*21.891]Z[#*-23.487] +N2641Y[#*22.016]Z[#*-23.642] +N2651Y[#*22.141]Z[#*-23.82] +N2661Y[#*22.391]Z[#*-24.282] +N2671Y[#*23.016]Z[#*-25.586] +N2681Y[#*23.133]Z[#*-25.859] +N2691Y[#*23.235]Z[#*-26.183] +N2701Y[#*23.282]Z[#*-26.403] +N2711Y[#*23.305]Z[#*-26.562] +N2721Y[#*23.328]Z[#*-26.747] +N2731Y[#*23.352]Z[#*-26.933] +N2741Y[#*23.383]Z[#*-27.192] +N2751Y[#*23.493]Z[#*-28.185] +N2761Y[#*23.508]Z[#*-28.327] +N2771Y[#*23.524]Z[#*-28.525] +N2781Y[#*23.532]Z[#*-30.5] +N2791Y[#*23.641] +N2801Y[#*32.141] +N2811Y[#*44.141] +N2821Y[#*53.] +N2831X[#*32.972]Y[#*53.293] +N2841X[#*32.893]Y[#*53.547] +N2851X[#*32.769]Y[#*53.762] +N2861X[#*32.609]Y[#*53.937] +N2871X[#*32.42]Y[#*54.074] +N2881X[#*32.209]Y[#*54.172] +N2891X[#*31.983]Y[#*54.23] +N2901X[#*31.75]Y[#*54.25] +N2911X[#*31.517]Y[#*54.23] +N2921X[#*31.291]Y[#*54.172] +N2931X[#*31.08]Y[#*54.074] +N2941X[#*30.891]Y[#*53.937] +N2951X[#*30.731]Y[#*53.762] +N2961X[#*30.607]Y[#*53.547] +N2971X[#*30.528]Y[#*53.293] +N2981X[#*30.5]Y[#*53.] +N2991Y[#*51.531] +N3001Y[#*39.531] +N3011Y[#*23.875] +N3021Y[#*23.867] +N3031Y[#*23.859]Z[#*-28.882] +N3041Y[#*23.851]Z[#*-28.772] +N3051Y[#*23.796]Z[#*-28.394] +N3061Y[#*23.664]Z[#*-27.617] +N3071Y[#*23.656]Z[#*-27.568] +N3081Y[#*23.57]Z[#*-26.865] +N3091Y[#*23.562]Z[#*-26.802] +N3101Y[#*23.5]Z[#*-26.462] +N3111Y[#*23.406]Z[#*-26.15] +N3121Y[#*23.281]Z[#*-25.85] +N3131Y[#*22.531]Z[#*-24.218] +N3141Y[#*22.281]Z[#*-23.82] +N3151Y[#*22.031]Z[#*-23.523] +N3161Y[#*21.781]Z[#*-23.287] +N3171Y[#*21.531]Z[#*-23.063] +N3181Y[#*20.531]Z[#*-22.251] +N3191Y[#*20.031]Z[#*-21.94] +N3201Y[#*19.781]Z[#*-21.83] +N3211Y[#*19.031]Z[#*-21.584] +N3221Y[#*18.531]Z[#*-21.363] +N3231Y[#*18.031]Z[#*-21.189] +N3241Y[#*17.531]Z[#*-21.086] +N3251Y[#*17.031]Z[#*-20.989] +N3261Y[#*16.531]Z[#*-20.904] +N3271Y[#*16.031]Z[#*-20.835] +N3281Y[#*15.531]Z[#*-20.717] +N3291Y[#*15.406]Z[#*-20.673] +N3301Y[#*15.281]Z[#*-20.606] +N3311Y[#*14.531]Z[#*-20.232] +N3321Y[#*13.531]Z[#*-19.688] +N3331Y[#*11.531]Z[#*-18.572] +N3341Y[#*10.531]Z[#*-18.058] +N3351Y[#*9.531]Z[#*-17.63] +N3361Y[#*8.531]Z[#*-17.232] +N3371Y[#*7.531]Z[#*-16.89] +N3381Y[#*6.531]Z[#*-16.57] +N3391Y[#*4.531]Z[#*-16.055] +N3401Y[#*2.531]Z[#*-15.719] +N3411Y[#*1.531]Z[#*-15.636] +N3421Y[#*0.531]Z[#*-15.574] +N3431Y[#*-0.469]Z[#*-15.571] +N3441Y[#*-1.969]Z[#*-15.663] +N3451Y[#*-2.469]Z[#*-15.709] +N3461Y[#*-4.469]Z[#*-16.043] +N3471Y[#*-6.469]Z[#*-16.552] +N3481Y[#*-7.469]Z[#*-16.865] +N3491Y[#*-8.469]Z[#*-17.203] +N3501Y[#*-9.469]Z[#*-17.592] +N3511Y[#*-10.469]Z[#*-18.01] +N3521Y[#*-11.469]Z[#*-18.509] +N3531Y[#*-12.469]Z[#*-19.049] +N3541Y[#*-14.469]Z[#*-20.158] +N3551Y[#*-14.969]Z[#*-20.395] +N3561Y[#*-15.469]Z[#*-20.65] +N3571Y[#*-15.719]Z[#*-20.736] +N3581Y[#*-15.969]Z[#*-20.795] +N3591Y[#*-16.469]Z[#*-20.889] +N3601Y[#*-17.469]Z[#*-21.057] +N3611Y[#*-17.969]Z[#*-21.156] +N3621Y[#*-18.469]Z[#*-21.304] +N3631Y[#*-18.969]Z[#*-21.525] +N3641Y[#*-19.969]Z[#*-21.887] +N3651Y[#*-20.469]Z[#*-22.169] +N3661Y[#*-20.532]Z[#*-22.213] +N3671Y[#*-21.469]Z[#*-22.979] +N3681Y[#*-21.969]Z[#*-23.436] +N3691Y[#*-22.469]Z[#*-24.064] +N3701Y[#*-22.594]Z[#*-24.294] +N3711Y[#*-23.219]Z[#*-25.689] +N3721Y[#*-23.469]Z[#*-26.313] +N3731Y[#*-23.547]Z[#*-26.64] +N3741Y[#*-23.563]Z[#*-26.735] +N3751Y[#*-23.571]Z[#*-26.791] +N3761Y[#*-23.579]Z[#*-26.856] +N3771Y[#*-23.664]Z[#*-27.587] +N3781Y[#*-23.68]Z[#*-27.683] +N3791Y[#*-23.704]Z[#*-27.823] +N3801Y[#*-23.813]Z[#*-28.479] +N3811Y[#*-23.821]Z[#*-28.526] +N3821Y[#*-23.86]Z[#*-28.866] +N3831Y[#*-23.868]Z[#*-30.5] +N3841Y[#*-23.891] +N3851Y[#*-23.907] +N3861Y[#*-24.094] +N3871Y[#*-24.469] +N3881Y[#*-28.469] +N3891Y[#*-42.469] +N3901Y[#*-53.] +N3911X[#*30.472]Y[#*-53.293] +N3921X[#*30.393]Y[#*-53.547] +N3931X[#*30.269]Y[#*-53.762] +N3941X[#*30.109]Y[#*-53.938] +N3951X[#*29.92]Y[#*-54.074] +N3961X[#*29.709]Y[#*-54.172] +N3971X[#*29.483]Y[#*-54.23] +N3981X[#*29.25]Y[#*-54.25] +N3991X[#*29.017]Y[#*-54.23] +N4001X[#*28.797]Y[#*-54.173] +N4011X[#*28.58]Y[#*-54.074] +N4021X[#*28.391]Y[#*-53.938] +N4031X[#*28.231]Y[#*-53.762] +N4041X[#*28.107]Y[#*-53.547] +N4051X[#*28.028]Y[#*-53.293] +N4061X[#*28.]Y[#*-53.] +N4071Y[#*-51.427] +N4081Y[#*-40.427] +N4091Y[#*-38.427] +N4101Y[#*-25.427] +N4111Y[#*-24.552] +N4121Y[#*-24.31] +N4131Y[#*-24.302]Z[#*-30.426] +N4141Y[#*-24.279]Z[#*-30.081] +N4151Y[#*-24.217]Z[#*-29.401] +N4161Y[#*-24.146]Z[#*-28.905] +N4171Y[#*-24.052]Z[#*-28.46] +N4181Y[#*-23.677]Z[#*-26.827] +N4191Y[#*-23.427]Z[#*-26.147] +N4201Y[#*-22.927]Z[#*-25.103] +N4211Y[#*-22.677]Z[#*-24.544] +N4221Y[#*-22.49]Z[#*-24.224] +N4231Y[#*-22.427]Z[#*-24.134] +N4241Y[#*-21.927]Z[#*-23.595] +N4251Y[#*-21.427]Z[#*-23.137] +N4261Y[#*-20.927]Z[#*-22.662] +N4271Y[#*-20.677]Z[#*-22.458] +N4281Y[#*-20.427]Z[#*-22.293] +N4291Y[#*-19.927]Z[#*-22.048] +N4301Y[#*-19.427]Z[#*-21.823] +N4311Y[#*-18.427]Z[#*-21.415] +N4321Y[#*-17.927]Z[#*-21.203] +N4331Y[#*-17.427]Z[#*-20.952] +N4341Y[#*-16.427]Z[#*-20.282] +N4351Y[#*-15.427]Z[#*-19.53] +N4361Y[#*-14.427]Z[#*-18.81] +N4371Y[#*-13.427]Z[#*-18.146] +N4381Y[#*-12.427]Z[#*-17.509] +N4391Y[#*-11.427]Z[#*-16.953] +N4401Y[#*-10.927]Z[#*-16.684] +N4411Y[#*-10.427]Z[#*-16.432] +N4421Y[#*-9.927]Z[#*-16.223] +N4431Y[#*-8.427]Z[#*-15.654] +N4441Y[#*-7.427]Z[#*-15.319] +N4451Y[#*-5.427]Z[#*-14.801] +N4461Y[#*-4.427]Z[#*-14.632] +N4471Y[#*-3.427]Z[#*-14.478] +N4481Y[#*-2.427]Z[#*-14.349] +N4491Y[#*-0.427]Z[#*-14.243] +N4501Y[#*0.573]Z[#*-14.251] +N4511Y[#*2.573]Z[#*-14.357] +N4521Y[#*3.073]Z[#*-14.423] +N4531Y[#*4.573]Z[#*-14.655] +N4541Y[#*5.573]Z[#*-14.839] +N4551Y[#*7.573]Z[#*-15.359] +N4561Y[#*8.573]Z[#*-15.715] +N4571Y[#*10.073]Z[#*-16.284] +N4581Y[#*10.573]Z[#*-16.515] +N4591Y[#*11.573]Z[#*-17.05] +N4601Y[#*12.573]Z[#*-17.611] +N4611Y[#*13.573]Z[#*-18.27] +N4621Y[#*14.573]Z[#*-18.943] +N4631Y[#*16.573]Z[#*-20.426] +N4641Y[#*17.323]Z[#*-20.93] +N4651Y[#*17.573]Z[#*-21.083] +N4661Y[#*18.073]Z[#*-21.303] +N4671Y[#*18.573]Z[#*-21.5] +N4681Y[#*19.573]Z[#*-21.913] +N4691Y[#*20.073]Z[#*-22.136] +N4701Y[#*20.323]Z[#*-22.261] +N4711Y[#*20.573]Z[#*-22.417] +N4721Y[#*21.073]Z[#*-22.842] +N4731Y[#*21.573]Z[#*-23.306] +N4741Y[#*21.948]Z[#*-23.634] +N4751Y[#*22.073]Z[#*-23.75] +N4761Y[#*22.323]Z[#*-24.027] +N4771Y[#*22.573]Z[#*-24.394] +N4781Y[#*23.323]Z[#*-25.954] +N4791Y[#*23.448]Z[#*-26.209] +N4801Y[#*23.573]Z[#*-26.508] +N4811Y[#*23.698]Z[#*-26.955] +N4821Y[#*24.01]Z[#*-28.289] +N4831Y[#*24.065]Z[#*-28.523] +N4841Y[#*24.166]Z[#*-29.026] +N4851Y[#*24.221]Z[#*-29.441] +N4861Y[#*24.276]Z[#*-30.021] +N4871Y[#*24.291]Z[#*-30.242] +N4881Y[#*24.315]Z[#*-30.5] +N4891Y[#*38.573] +N4901Y[#*39.573] +N4911Y[#*48.573] +N4921Y[#*53.] +N4931X[#*27.972]Y[#*53.293] +N4941X[#*27.893]Y[#*53.547] +N4951X[#*27.769]Y[#*53.762] +N4961X[#*27.609]Y[#*53.937] +N4971X[#*27.42]Y[#*54.074] +N4981X[#*27.209]Y[#*54.172] +N4991X[#*26.983]Y[#*54.23] +N5001X[#*26.75]Y[#*54.25] +N5011X[#*26.517]Y[#*54.23] +N5021X[#*26.291]Y[#*54.172] +N5031X[#*26.08]Y[#*54.074] +N5041X[#*25.891]Y[#*53.937] +N5051X[#*25.731]Y[#*53.762] +N5061X[#*25.607]Y[#*53.547] +N5071X[#*25.528]Y[#*53.293] +N5081X[#*25.5]Y[#*53.] +N5091Y[#*38.123] +N5101Y[#*31.123] +N5111Y[#*24.701] +N5121Y[#*24.693]Z[#*-30.476] +N5131Y[#*24.584]Z[#*-30.006] +N5141Y[#*24.576]Z[#*-29.954] +N5151Y[#*24.522]Z[#*-29.57] +N5161Y[#*24.498]Z[#*-29.419] +N5171Y[#*24.467]Z[#*-29.266] +N5181Y[#*24.373]Z[#*-28.942] +N5191Y[#*23.873]Z[#*-27.537] +N5201Y[#*23.623]Z[#*-26.916] +N5211Y[#*23.373]Z[#*-26.361] +N5221Y[#*23.123]Z[#*-25.945] +N5231Y[#*22.123]Z[#*-24.338] +N5241Y[#*21.623]Z[#*-23.733] +N5251Y[#*20.623]Z[#*-22.845] +N5261Y[#*20.123]Z[#*-22.493] +N5271Y[#*19.123]Z[#*-21.656] +N5281Y[#*18.123]Z[#*-20.694] +N5291Y[#*17.123]Z[#*-19.775] +N5301Y[#*16.123]Z[#*-18.949] +N5311Y[#*15.123]Z[#*-18.175] +N5321Y[#*14.623]Z[#*-17.767] +N5331Y[#*14.123]Z[#*-17.373] +N5341Y[#*13.123]Z[#*-16.728] +N5351Y[#*12.123]Z[#*-16.115] +N5361Y[#*11.123]Z[#*-15.591] +N5371Y[#*9.123]Z[#*-14.743] +N5381Y[#*8.623]Z[#*-14.558] +N5391Y[#*6.123]Z[#*-13.877] +N5401Y[#*5.623]Z[#*-13.777] +N5411Y[#*4.123]Z[#*-13.55] +N5421Y[#*3.123]Z[#*-13.399] +N5431Y[#*2.123]Z[#*-13.336] +N5441Y[#*0.123]Z[#*-13.242] +N5451Y[#*-0.877]Z[#*-13.277] +N5461Y[#*-2.877]Z[#*-13.372] +N5471Y[#*-3.377]Z[#*-13.437] +N5481Y[#*-5.377]Z[#*-13.739] +N5491Y[#*-5.877]Z[#*-13.818] +N5501Y[#*-6.377]Z[#*-13.946] +N5511Y[#*-7.877]Z[#*-14.353] +N5521Y[#*-8.377]Z[#*-14.489] +N5531Y[#*-8.877]Z[#*-14.639] +N5541Y[#*-11.377]Z[#*-15.694] +N5551Y[#*-11.877]Z[#*-15.958] +N5561Y[#*-12.877]Z[#*-16.568] +N5571Y[#*-13.877]Z[#*-17.201] +N5581Y[#*-14.877]Z[#*-17.959] +N5591Y[#*-15.877]Z[#*-18.74] +N5601Y[#*-16.877]Z[#*-19.544] +N5611Y[#*-17.877]Z[#*-20.434] +N5621Y[#*-18.877]Z[#*-21.387] +N5631Y[#*-19.377]Z[#*-21.879] +N5641Y[#*-19.877]Z[#*-22.306] +N5651Y[#*-20.377]Z[#*-22.636] +N5661Y[#*-20.877]Z[#*-23.039] +N5671Y[#*-21.377]Z[#*-23.489] +N5681Y[#*-21.877]Z[#*-23.981] +N5691Y[#*-22.127]Z[#*-24.311] +N5701Y[#*-23.377]Z[#*-26.354] +N5711Y[#*-23.627]Z[#*-26.908] +N5721Y[#*-23.877]Z[#*-27.533] +N5731Y[#*-24.377]Z[#*-28.95] +N5741Y[#*-24.471]Z[#*-29.278] +N5751Y[#*-24.517]Z[#*-29.535] +N5761Y[#*-24.58]Z[#*-29.98] +N5771Y[#*-24.588]Z[#*-30.025] +N5781Y[#*-24.697]Z[#*-30.5] +N5791Y[#*-24.705] +N5801Y[#*-29.877] +N5811Y[#*-42.877] +N5821Y[#*-44.877] +N5831Y[#*-48.877] +N5841Y[#*-53.] +N5851X[#*25.472]Y[#*-53.293] +N5861X[#*25.393]Y[#*-53.547] +N5871X[#*25.269]Y[#*-53.762] +N5881X[#*25.109]Y[#*-53.938] +N5891X[#*24.92]Y[#*-54.074] +N5901X[#*24.709]Y[#*-54.172] +N5911X[#*24.483]Y[#*-54.23] +N5921X[#*24.25]Y[#*-54.25] +N5931X[#*24.017]Y[#*-54.23] +N5941X[#*23.791]Y[#*-54.172] +N5951X[#*23.58]Y[#*-54.074] +N5961X[#*23.391]Y[#*-53.938] +N5971X[#*23.231]Y[#*-53.762] +N5981X[#*23.107]Y[#*-53.547] +N5991X[#*23.028]Y[#*-53.293] +N6001X[#*23.]Y[#*-53.] +N6011Y[#*-43.909] +N6021Y[#*-37.909] +N6031Y[#*-35.909] +N6041Y[#*-25.284] +N6051Y[#*-25.237] +N6061Y[#*-25.159]Z[#*-30.224] +N6071Y[#*-24.909]Z[#*-29.354] +N6081Y[#*-24.659]Z[#*-28.778] +N6091Y[#*-23.909]Z[#*-27.213] +N6101Y[#*-22.909]Z[#*-25.522] +N6111Y[#*-22.409]Z[#*-24.749] +N6121Y[#*-21.909]Z[#*-23.998] +N6131Y[#*-20.909]Z[#*-22.752] +N6141Y[#*-19.909]Z[#*-21.556] +N6151Y[#*-18.909]Z[#*-20.526] +N6161Y[#*-17.909]Z[#*-19.496] +N6171Y[#*-16.909]Z[#*-18.613] +N6181Y[#*-15.909]Z[#*-17.749] +N6191Y[#*-14.909]Z[#*-16.971] +N6201Y[#*-12.909]Z[#*-15.639] +N6211Y[#*-12.409]Z[#*-15.344] +N6221Y[#*-10.909]Z[#*-14.677] +N6231Y[#*-9.909]Z[#*-14.233] +N6241Y[#*-9.409]Z[#*-14.034] +N6251Y[#*-6.909]Z[#*-13.34] +N6261Y[#*-5.909]Z[#*-13.125] +N6271Y[#*-3.909]Z[#*-12.832] +N6281Y[#*-2.909]Z[#*-12.714] +N6291Y[#*-0.909]Z[#*-12.629] +N6301Y[#*0.091]Z[#*-12.594] +N6311Y[#*1.091]Z[#*-12.637] +N6321Y[#*3.091]Z[#*-12.722] +N6331Y[#*3.591]Z[#*-12.785] +N6341Y[#*4.091]Z[#*-12.859] +N6351Y[#*6.091]Z[#*-13.152] +N6361Y[#*6.591]Z[#*-13.252] +N6371Y[#*9.091]Z[#*-13.944] +N6381Y[#*10.091]Z[#*-14.315] +N6391Y[#*11.091]Z[#*-14.759] +N6401Y[#*12.091]Z[#*-15.203] +N6411Y[#*12.591]Z[#*-15.439] +N6421Y[#*13.091]Z[#*-15.763] +N6431Y[#*14.091]Z[#*-16.429] +N6441Y[#*15.091]Z[#*-17.095] +N6451Y[#*15.591]Z[#*-17.478] +N6461Y[#*17.091]Z[#*-18.776] +N6471Y[#*18.091]Z[#*-19.69] +N6481Y[#*20.091]Z[#*-21.76] +N6491Y[#*21.591]Z[#*-23.612] +N6501Y[#*22.091]Z[#*-24.269] +N6511Y[#*23.591]Z[#*-26.586] +N6521Y[#*23.841]Z[#*-27.078] +N6531Y[#*24.591]Z[#*-28.639] +N6541Y[#*24.841]Z[#*-29.173] +N6551Y[#*24.966]Z[#*-29.548] +N6561Y[#*25.209]Z[#*-30.398] +N6571Y[#*25.232]Z[#*-30.481] +N6581Y[#*25.24]Z[#*-30.5] +N6591Y[#*51.091] +N6601Y[#*53.] +N6611X[#*22.972]Y[#*53.293] +N6621X[#*22.893]Y[#*53.547] +N6631X[#*22.769]Y[#*53.762] +N6641X[#*22.609]Y[#*53.937] +N6651X[#*22.42]Y[#*54.074] +N6661X[#*22.209]Y[#*54.172] +N6671X[#*21.983]Y[#*54.23] +N6681X[#*21.75]Y[#*54.25] +N6691X[#*21.517]Y[#*54.23] +N6701X[#*21.291]Y[#*54.172] +N6711X[#*21.08]Y[#*54.074] +N6721X[#*20.891]Y[#*53.937] +N6731X[#*20.731]Y[#*53.762] +N6741X[#*20.607]Y[#*53.547] +N6751X[#*20.528]Y[#*53.293] +N6761X[#*20.5]Y[#*53.] +N6771Y[#*29.217] +N6781Y[#*27.217] +N6791Y[#*25.78] +N6801Y[#*25.772]Z[#*-30.487] +N6811Y[#*25.467]Z[#*-29.562] +N6821Y[#*25.217]Z[#*-28.971] +N6831Y[#*24.217]Z[#*-26.951] +N6841Y[#*23.217]Z[#*-25.36] +N6851Y[#*22.217]Z[#*-23.891] +N6861Y[#*21.217]Z[#*-22.567] +N6871Y[#*20.217]Z[#*-21.374] +N6881Y[#*19.217]Z[#*-20.271] +N6891Y[#*18.217]Z[#*-19.233] +N6901Y[#*16.217]Z[#*-17.449] +N6911Y[#*15.717]Z[#*-17.062] +N6921Y[#*13.217]Z[#*-15.375] +N6931Y[#*12.717]Z[#*-15.118] +N6941Y[#*11.217]Z[#*-14.447] +N6951Y[#*10.217]Z[#*-14.] +N6961Y[#*9.717]Z[#*-13.809] +N6971Y[#*7.217]Z[#*-13.117] +N6981Y[#*6.217]Z[#*-12.894] +N6991Y[#*4.217]Z[#*-12.605] +N7001Y[#*3.217]Z[#*-12.47] +N7011Y[#*2.217]Z[#*-12.428] +N7021Y[#*0.217]Z[#*-12.346] +N7031Y[#*-0.783]Z[#*-12.369] +N7041Y[#*-2.783]Z[#*-12.451] +N7051Y[#*-3.783]Z[#*-12.542] +N7061Y[#*-6.283]Z[#*-12.904] +N7071Y[#*-6.783]Z[#*-12.997] +N7081Y[#*-8.783]Z[#*-13.55] +N7091Y[#*-9.783]Z[#*-13.828] +N7101Y[#*-10.283]Z[#*-14.03] +N7111Y[#*-12.783]Z[#*-15.147] +N7121Y[#*-13.283]Z[#*-15.417] +N7131Y[#*-13.783]Z[#*-15.755] +N7141Y[#*-15.783]Z[#*-17.105] +N7151Y[#*-16.283]Z[#*-17.506] +N7161Y[#*-16.783]Z[#*-17.95] +N7171Y[#*-17.783]Z[#*-18.843] +N7181Y[#*-18.783]Z[#*-19.788] +N7191Y[#*-20.783]Z[#*-21.999] +N7201Y[#*-21.783]Z[#*-23.312] +N7211Y[#*-22.783]Z[#*-24.676] +N7221Y[#*-23.783]Z[#*-26.249] +N7231Y[#*-24.783]Z[#*-28.095] +N7241Y[#*-25.283]Z[#*-29.102] +N7251Y[#*-25.533]Z[#*-29.759] +N7261Y[#*-25.775]Z[#*-30.494] +N7271Y[#*-25.783]Z[#*-30.5] +N7281Y[#*-37.783] +N7291Y[#*-39.783] +N7301Y[#*-43.783] +N7311Y[#*-48.783] +N7321Y[#*-51.783] +N7331Y[#*-53.] +N7341X[#*20.472]Y[#*-53.293] +N7351X[#*20.393]Y[#*-53.547] +N7361X[#*20.269]Y[#*-53.762] +N7371X[#*20.109]Y[#*-53.938] +N7381X[#*19.92]Y[#*-54.074] +N7391X[#*19.709]Y[#*-54.172] +N7401X[#*19.483]Y[#*-54.23] +N7411X[#*19.25]Y[#*-54.25] +N7421X[#*19.017]Y[#*-54.23] +N7431X[#*18.791]Y[#*-54.172] +N7441X[#*18.58]Y[#*-54.074] +N7451X[#*18.391]Y[#*-53.938] +N7461X[#*18.231]Y[#*-53.762] +N7471X[#*18.107]Y[#*-53.547] +N7481X[#*18.028]Y[#*-53.293] +N7491X[#*18.]Y[#*-53.] +N7501Y[#*-52.685] +N7511Y[#*-32.685] +N7521Y[#*-29.685] +N7531Y[#*-27.685] +N7541Y[#*-26.123] +N7551Y[#*-26.115]Z[#*-30.484] +N7561Y[#*-25.935]Z[#*-29.937] +N7571Y[#*-25.685]Z[#*-29.23] +N7581Y[#*-25.185]Z[#*-28.234] +N7591Y[#*-24.685]Z[#*-27.237] +N7601Y[#*-24.185]Z[#*-26.401] +N7611Y[#*-23.685]Z[#*-25.627] +N7621Y[#*-22.685]Z[#*-24.168] +N7631Y[#*-21.685]Z[#*-22.863] +N7641Y[#*-20.685]Z[#*-21.652] +N7651Y[#*-19.185]Z[#*-20.017] +N7661Y[#*-18.685]Z[#*-19.515] +N7671Y[#*-16.685]Z[#*-17.758] +N7681Y[#*-15.685]Z[#*-17.001] +N7691Y[#*-14.685]Z[#*-16.334] +N7701Y[#*-13.685]Z[#*-15.667] +N7711Y[#*-13.185]Z[#*-15.363] +N7721Y[#*-10.185]Z[#*-14.032] +N7731Y[#*-9.685]Z[#*-13.875] +N7741Y[#*-7.185]Z[#*-13.187] +N7751Y[#*-6.685]Z[#*-13.06] +N7761Y[#*-3.685]Z[#*-12.624] +N7771Y[#*-2.685]Z[#*-12.55] +N7781Y[#*-0.685]Z[#*-12.467] +N7791Y[#*0.315]Z[#*-12.452] +N7801Y[#*1.315]Z[#*-12.493] +N7811Y[#*3.315]Z[#*-12.577] +N7821Y[#*4.315]Z[#*-12.715] +N7831Y[#*6.315]Z[#*-13.004] +N7841Y[#*7.315]Z[#*-13.222] +N7851Y[#*8.315]Z[#*-13.498] +N7861Y[#*9.815]Z[#*-13.91] +N7871Y[#*10.315]Z[#*-14.087] +N7881Y[#*12.815]Z[#*-15.196] +N7891Y[#*13.315]Z[#*-15.432] +N7901Y[#*13.815]Z[#*-15.754] +N7911Y[#*15.815]Z[#*-17.087] +N7921Y[#*16.315]Z[#*-17.435] +N7931Y[#*18.315]Z[#*-19.189] +N7941Y[#*19.315]Z[#*-20.158] +N7951Y[#*20.315]Z[#*-21.248] +N7961Y[#*21.315]Z[#*-22.379] +N7971Y[#*22.315]Z[#*-23.684] +N7981Y[#*23.315]Z[#*-25.053] +N7991Y[#*24.315]Z[#*-26.601] +N8001Y[#*25.315]Z[#*-28.489] +N8011Y[#*25.565]Z[#*-28.983] +N8021Y[#*25.815]Z[#*-29.57] +N8031Y[#*25.94]Z[#*-29.947] +N8041Y[#*26.119]Z[#*-30.495] +N8051Y[#*26.127]Z[#*-30.5] +N8061Y[#*53.] +N8071X[#*17.972]Y[#*53.293] +N8081X[#*17.893]Y[#*53.547] +N8091X[#*17.769]Y[#*53.762] +N8101X[#*17.609]Y[#*53.937] +N8111X[#*17.42]Y[#*54.074] +N8121X[#*17.209]Y[#*54.172] +N8131X[#*16.983]Y[#*54.23] +N8141X[#*16.75]Y[#*54.25] +N8151X[#*16.523]Y[#*54.231] +N8161X[#*16.291]Y[#*54.172] +N8171X[#*16.08]Y[#*54.074] +N8181X[#*15.891]Y[#*53.937] +N8191X[#*15.731]Y[#*53.762] +N8201X[#*15.607]Y[#*53.547] +N8211X[#*15.528]Y[#*53.293] +N8221X[#*15.5]Y[#*53.] +N8231Y[#*28.452] +N8241Y[#*26.265] +N8251Y[#*26.257] +N8261Y[#*26.234]Z[#*-30.43] +N8271Y[#*26.202]Z[#*-30.338] +N8281Y[#*25.952]Z[#*-29.585] +N8291Y[#*25.702]Z[#*-28.974] +N8301Y[#*24.952]Z[#*-27.528] +N8311Y[#*24.452]Z[#*-26.658] +N8321Y[#*23.952]Z[#*-25.93] +N8331Y[#*23.452]Z[#*-25.182] +N8341Y[#*22.452]Z[#*-23.834] +N8351Y[#*21.452]Z[#*-22.598] +N8361Y[#*20.452]Z[#*-21.524] +N8371Y[#*19.452]Z[#*-20.478] +N8381Y[#*18.452]Z[#*-19.522] +N8391Y[#*17.452]Z[#*-18.668] +N8401Y[#*16.452]Z[#*-17.845] +N8411Y[#*15.952]Z[#*-17.498] +N8421Y[#*15.452]Z[#*-17.184] +N8431Y[#*13.952]Z[#*-16.215] +N8441Y[#*13.452]Z[#*-15.894] +N8451Y[#*12.952]Z[#*-15.653] +N8461Y[#*11.452]Z[#*-14.998] +N8471Y[#*10.452]Z[#*-14.57] +N8481Y[#*9.952]Z[#*-14.382] +N8491Y[#*7.452]Z[#*-13.698] +N8501Y[#*6.452]Z[#*-13.468] +N8511Y[#*3.452]Z[#*-13.029] +N8521Y[#*2.952]Z[#*-13.] +N8531Y[#*0.452]Z[#*-12.892] +N8541Y[#*-0.548]Z[#*-12.896] +N8551Y[#*-2.548]Z[#*-12.982] +N8561Y[#*-3.548]Z[#*-13.042] +N8571Y[#*-6.548]Z[#*-13.481] +N8581Y[#*-7.048]Z[#*-13.587] +N8591Y[#*-8.548]Z[#*-13.998] +N8601Y[#*-9.548]Z[#*-14.271] +N8611Y[#*-10.548]Z[#*-14.61] +N8621Y[#*-13.048]Z[#*-15.694] +N8631Y[#*-13.548]Z[#*-15.952] +N8641Y[#*-14.048]Z[#*-16.277] +N8651Y[#*-16.048]Z[#*-17.558] +N8661Y[#*-16.548]Z[#*-17.923] +N8671Y[#*-17.548]Z[#*-18.748] +N8681Y[#*-18.548]Z[#*-19.604] +N8691Y[#*-19.548]Z[#*-20.579] +N8701Y[#*-20.548]Z[#*-21.621] +N8711Y[#*-21.548]Z[#*-22.713] +N8721Y[#*-22.548]Z[#*-23.955] +N8731Y[#*-23.548]Z[#*-25.325] +N8741Y[#*-24.548]Z[#*-26.797] +N8751Y[#*-24.798]Z[#*-27.235] +N8761Y[#*-25.048]Z[#*-27.709] +N8771Y[#*-25.798]Z[#*-29.168] +N8781Y[#*-26.048]Z[#*-29.871] +N8791Y[#*-26.258]Z[#*-30.5] +N8801Y[#*-32.548] +N8811Y[#*-37.548] +N8821Y[#*-39.548] +N8831Y[#*-42.548] +N8841Y[#*-53.] +N8851X[#*15.472]Y[#*-53.293] +N8861X[#*15.393]Y[#*-53.547] +N8871X[#*15.269]Y[#*-53.762] +N8881X[#*15.109]Y[#*-53.938] +N8891X[#*14.92]Y[#*-54.074] +N8901X[#*14.709]Y[#*-54.172] +N8911X[#*14.483]Y[#*-54.23] +N8921X[#*14.25]Y[#*-54.25] +N8931X[#*14.017]Y[#*-54.23] +N8941X[#*13.791]Y[#*-54.172] +N8951X[#*13.58]Y[#*-54.074] +N8961X[#*13.391]Y[#*-53.938] +N8971X[#*13.231]Y[#*-53.762] +N8981X[#*13.107]Y[#*-53.547] +N8991X[#*13.028]Y[#*-53.293] +N9001X[#*13.]Y[#*-53.] +N9011Y[#*-45.009] +N9021Y[#*-26.228] +N9031Y[#*-26.22]Z[#*-30.482] +N9041Y[#*-26.009]Z[#*-29.867] +N9051Y[#*-25.759]Z[#*-29.159] +N9061Y[#*-25.509]Z[#*-28.666] +N9071Y[#*-25.009]Z[#*-27.74] +N9081Y[#*-24.009]Z[#*-26.102] +N9091Y[#*-23.009]Z[#*-24.701] +N9101Y[#*-22.009]Z[#*-23.524] +N9111Y[#*-21.009]Z[#*-22.35] +N9121Y[#*-20.009]Z[#*-21.355] +N9131Y[#*-19.009]Z[#*-20.386] +N9141Y[#*-18.009]Z[#*-19.567] +N9151Y[#*-17.009]Z[#*-18.78] +N9161Y[#*-16.509]Z[#*-18.37] +N9171Y[#*-16.009]Z[#*-18.009] +N9181Y[#*-15.009]Z[#*-17.386] +N9191Y[#*-13.509]Z[#*-16.483] +N9201Y[#*-13.009]Z[#*-16.232] +N9211Y[#*-10.509]Z[#*-15.182] +N9221Y[#*-10.009]Z[#*-14.987] +N9231Y[#*-8.009]Z[#*-14.443] +N9241Y[#*-7.009]Z[#*-14.172] +N9251Y[#*-6.509]Z[#*-14.071] +N9261Y[#*-4.009]Z[#*-13.697] +N9271Y[#*-3.009]Z[#*-13.59] +N9281Y[#*-0.009]Z[#*-13.454] +N9291Y[#*2.991]Z[#*-13.589] +N9301Y[#*3.991]Z[#*-13.694] +N9311Y[#*4.991]Z[#*-13.843] +N9321Y[#*6.491]Z[#*-14.068] +N9331Y[#*6.991]Z[#*-14.167] +N9341Y[#*9.991]Z[#*-14.981] +N9351Y[#*10.491]Z[#*-15.175] +N9361Y[#*10.991]Z[#*-15.388] +N9371Y[#*11.991]Z[#*-15.808] +N9381Y[#*12.991]Z[#*-16.225] +N9391Y[#*13.491]Z[#*-16.472] +N9401Y[#*15.491]Z[#*-17.684] +N9411Y[#*15.991]Z[#*-17.998] +N9421Y[#*16.491]Z[#*-18.355] +N9431Y[#*16.991]Z[#*-18.765] +N9441Y[#*17.991]Z[#*-19.553] +N9451Y[#*18.991]Z[#*-20.369] +N9461Y[#*19.991]Z[#*-21.338] +N9471Y[#*20.991]Z[#*-22.332] +N9481Y[#*22.991]Z[#*-24.678] +N9491Y[#*23.991]Z[#*-26.078] +N9501Y[#*24.491]Z[#*-26.799] +N9511Y[#*24.741]Z[#*-27.238] +N9521Y[#*24.991]Z[#*-27.707] +N9531Y[#*25.491]Z[#*-28.633] +N9541Y[#*25.741]Z[#*-29.118] +N9551Y[#*25.866]Z[#*-29.45] +N9561Y[#*26.226]Z[#*-30.499] +N9571Y[#*26.233]Z[#*-30.5] +N9581Y[#*29.991] +N9591Y[#*52.999] +N9601X[#*12.972]Y[#*53.292] +N9611X[#*12.893]Y[#*53.546] +N9621X[#*12.769]Y[#*53.761] +N9631X[#*12.609]Y[#*53.937] +N9641X[#*12.42]Y[#*54.074] +N9651X[#*12.209]Y[#*54.171] +N9661X[#*11.983]Y[#*54.23] +N9671X[#*11.75]Y[#*54.25] +N9681X[#*11.517]Y[#*54.23] +N9691X[#*11.291]Y[#*54.172] +N9701X[#*11.08]Y[#*54.074] +N9711X[#*10.891]Y[#*53.937] +N9721X[#*10.731]Y[#*53.762] +N9731X[#*10.607]Y[#*53.547] +N9741X[#*10.528]Y[#*53.293] +N9751X[#*10.5]Y[#*53.] +N9761Y[#*42.958] +N9771Y[#*29.958] +N9781Y[#*26.208] +N9791Y[#*26.083] +N9801Y[#*26.029] +N9811Y[#*26.021]Z[#*-30.489] +N9821Y[#*26.005]Z[#*-30.444] +N9831Y[#*25.99]Z[#*-30.398] +N9841Y[#*25.708]Z[#*-29.582] +N9851Y[#*25.458]Z[#*-28.93] +N9861Y[#*25.208]Z[#*-28.467] +N9871Y[#*24.458]Z[#*-27.104] +N9881Y[#*23.958]Z[#*-26.358] +N9891Y[#*22.958]Z[#*-24.993] +N9901Y[#*21.958]Z[#*-23.819] +N9911Y[#*20.958]Z[#*-22.699] +N9921Y[#*19.958]Z[#*-21.757] +N9931Y[#*18.958]Z[#*-20.832] +N9941Y[#*17.958]Z[#*-20.015] +N9951Y[#*16.458]Z[#*-18.896] +N9961Y[#*15.958]Z[#*-18.539] +N9971Y[#*13.958]Z[#*-17.384] +N9981Y[#*13.458]Z[#*-17.093] +N9991Y[#*12.958]Z[#*-16.836] +N1Y[#*10.958]Z[#*-16.022] +N11Y[#*10.458]Z[#*-15.819] +N21Y[#*9.958]Z[#*-15.628] +N31Y[#*7.958]Z[#*-15.089] +N41Y[#*6.958]Z[#*-14.82] +N51Y[#*6.458]Z[#*-14.72] +N61Y[#*3.958]Z[#*-14.339] +N71Y[#*2.958]Z[#*-14.232] +N81Y[#*-0.042]Z[#*-14.092] +N91Y[#*-0.542]Z[#*-14.114] +N101Y[#*-3.042]Z[#*-14.236] +N111Y[#*-4.042]Z[#*-14.352] +N121Y[#*-6.042]Z[#*-14.657] +N131Y[#*-7.042]Z[#*-14.842] +N141Y[#*-9.042]Z[#*-15.379] +N151Y[#*-10.042]Z[#*-15.655] +N161Y[#*-10.542]Z[#*-15.853] +N171Y[#*-12.542]Z[#*-16.663] +N181Y[#*-13.042]Z[#*-16.871] +N191Y[#*-13.542]Z[#*-17.143] +N201Y[#*-15.542]Z[#*-18.297] +N211Y[#*-16.042]Z[#*-18.591] +N221Y[#*-18.042]Z[#*-20.077] +N231Y[#*-19.042]Z[#*-20.909] +N241Y[#*-20.042]Z[#*-21.834] +N251Y[#*-21.042]Z[#*-22.792] +N261Y[#*-22.042]Z[#*-23.912] +N271Y[#*-23.042]Z[#*-25.106] +N281Y[#*-24.042]Z[#*-26.472] +N291Y[#*-24.542]Z[#*-27.257] +N301Y[#*-25.292]Z[#*-28.619] +N311Y[#*-25.542]Z[#*-29.113] +N321Y[#*-25.792]Z[#*-29.824] +N331Y[#*-26.018]Z[#*-30.483] +N341Y[#*-26.026]Z[#*-30.5] +N351Y[#*-26.042] +N361Y[#*-30.042] +N371Y[#*-31.042] +N381Y[#*-53.] +N391X[#*10.472]Y[#*-53.293] +N401X[#*10.393]Y[#*-53.547] +N411X[#*10.269]Y[#*-53.762] +N421X[#*10.109]Y[#*-53.938] +N431X[#*9.92]Y[#*-54.074] +N441X[#*9.709]Y[#*-54.172] +N451X[#*9.483]Y[#*-54.23] +N461X[#*9.25]Y[#*-54.25] +N471X[#*9.017]Y[#*-54.23] +N481X[#*8.791]Y[#*-54.172] +N491X[#*8.58]Y[#*-54.074] +N501X[#*8.391]Y[#*-53.938] +N511X[#*8.231]Y[#*-53.762] +N521X[#*8.107]Y[#*-53.547] +N531X[#*8.028]Y[#*-53.293] +N541X[#*8.]Y[#*-53.] +N551Y[#*-51.721] +N561Y[#*-35.721] +N571Y[#*-34.721] +N581Y[#*-28.721] +N591Y[#*-25.659] +N601Y[#*-25.651]Z[#*-30.478] +N611Y[#*-25.627]Z[#*-30.41] +N621Y[#*-25.471]Z[#*-29.955] +N631Y[#*-25.221]Z[#*-29.227] +N641Y[#*-24.971]Z[#*-28.694] +N651Y[#*-24.221]Z[#*-27.34] +N661Y[#*-23.721]Z[#*-26.547] +N671Y[#*-22.721]Z[#*-25.21] +N681Y[#*-21.721]Z[#*-24.05] +N691Y[#*-20.721]Z[#*-22.97] +N701Y[#*-19.721]Z[#*-22.059] +N711Y[#*-18.721]Z[#*-21.177] +N721Y[#*-17.721]Z[#*-20.397] +N731Y[#*-16.221]Z[#*-19.328] +N741Y[#*-15.721]Z[#*-18.992] +N751Y[#*-15.221]Z[#*-18.719] +N761Y[#*-13.221]Z[#*-17.616] +N771Y[#*-12.721]Z[#*-17.379] +N781Y[#*-10.221]Z[#*-16.391] +N791Y[#*-9.721]Z[#*-16.218] +N801Y[#*-8.721]Z[#*-15.952] +N811Y[#*-6.721]Z[#*-15.421] +N821Y[#*-6.221]Z[#*-15.337] +N831Y[#*-3.721]Z[#*-14.951] +N841Y[#*-2.721]Z[#*-14.862] +N851Y[#*-0.721]Z[#*-14.761] +N861Y[#*0.279]Z[#*-14.739] +N871Y[#*2.779]Z[#*-14.865] +N881Y[#*3.279]Z[#*-14.891] +N891Y[#*3.779]Z[#*-14.96] +N901Y[#*6.279]Z[#*-15.346] +N911Y[#*7.279]Z[#*-15.567] +N921Y[#*9.279]Z[#*-16.101] +N931Y[#*10.279]Z[#*-16.414] +N941Y[#*12.279]Z[#*-17.204] +N951Y[#*13.279]Z[#*-17.648] +N961Y[#*15.279]Z[#*-18.75] +N971Y[#*16.279]Z[#*-19.369] +N981Y[#*18.279]Z[#*-20.796] +N991Y[#*19.279]Z[#*-21.669] +N1001Y[#*20.279]Z[#*-22.55] +N1011Y[#*21.279]Z[#*-23.571] +N1021Y[#*22.279]Z[#*-24.653] +N1031Y[#*22.779]Z[#*-25.287] +N1041Y[#*23.779]Z[#*-26.624] +N1051Y[#*24.279]Z[#*-27.445] +N1061Y[#*24.779]Z[#*-28.347] +N1071Y[#*25.029]Z[#*-28.799] +N1081Y[#*25.154]Z[#*-29.056] +N1091Y[#*25.248]Z[#*-29.304] +N1101Y[#*25.654]Z[#*-30.487] +N1111Y[#*25.662]Z[#*-30.5] +N1121Y[#*25.716] +N1131Y[#*33.279] +N1141Y[#*35.279] +N1151Y[#*37.279] +N1161Y[#*49.279] +N1171Y[#*53.] +N1181X[#*7.972]Y[#*53.293] +N1191X[#*7.893]Y[#*53.547] +N1201X[#*7.769]Y[#*53.762] +N1211X[#*7.609]Y[#*53.937] +N1221X[#*7.42]Y[#*54.074] +N1231X[#*7.209]Y[#*54.172] +N1241X[#*6.983]Y[#*54.23] +N1251X[#*6.75]Y[#*54.25] +N1261X[#*6.517]Y[#*54.23] +N1271X[#*6.291]Y[#*54.172] +N1281X[#*6.08]Y[#*54.074] +N1291X[#*5.891]Y[#*53.937] +N1301X[#*5.731]Y[#*53.762] +N1311X[#*5.607]Y[#*53.547] +N1321X[#*5.528]Y[#*53.293] +N1331X[#*5.501]Y[#*53.007] +N1341Y[#*52.537] +N1351Y[#*51.24] +N1361Y[#*51.232]Z[#*-29.671] +N1371Y[#*51.216]Z[#*-29.482] +N1381Y[#*51.162]Z[#*-29.167] +N1391Y[#*51.131]Z[#*-29.044] +N1401Y[#*51.037]Z[#*-28.764] +N1411Y[#*50.912]Z[#*-28.49] +N1421Y[#*50.787]Z[#*-28.274] +N1431Y[#*50.537]Z[#*-27.938] +N1441Y[#*50.427]Z[#*-27.819] +N1451Y[#*50.412]Z[#*-27.378] +N1461Y[#*50.365]Z[#*-27.062] +N1471Y[#*50.287]Z[#*-26.765] +N1481Y[#*50.162]Z[#*-26.445] +N1491Y[#*50.037]Z[#*-26.205] +N1501Y[#*49.974]Z[#*-26.103] +N1511Y[#*49.787]Z[#*-25.843] +N1521Y[#*49.537]Z[#*-25.573] +N1531Y[#*49.412]Z[#*-25.462] +N1541Y[#*49.037]Z[#*-25.172] +N1551Y[#*48.537]Z[#*-24.874] +N1561Y[#*48.287]Z[#*-24.773] +N1571Y[#*48.037]Z[#*-24.698] +N1581Y[#*47.537]Z[#*-24.602] +N1591Y[#*47.037]Z[#*-24.522] +N1601Y[#*46.537]Z[#*-24.492] +N1611Y[#*46.037]Z[#*-24.48] +N1621Y[#*45.537]Z[#*-24.527] +N1631Y[#*45.037]Z[#*-24.589] +N1641Y[#*44.537]Z[#*-24.678] +N1651Y[#*44.037]Z[#*-24.818] +N1661Y[#*43.537]Z[#*-24.975] +N1671Y[#*43.037]Z[#*-25.176] +N1681Y[#*42.537]Z[#*-25.45] +N1691Y[#*42.037]Z[#*-25.776] +N1701Y[#*41.537]Z[#*-26.234] +N1711Y[#*41.506]Z[#*-26.273] +N1721Y[#*41.287]Z[#*-26.587] +N1731Y[#*41.037]Z[#*-27.099] +N1741Y[#*40.974]Z[#*-27.283] +N1751Y[#*40.787]Z[#*-27.878] +N1761Y[#*40.763]Z[#*-27.969] +N1771Y[#*40.724]Z[#*-28.204] +N1781Y[#*40.677]Z[#*-28.574] +N1791Y[#*40.654]Z[#*-28.836] +N1801Y[#*40.646]Z[#*-30.5] +N1811Y[#*40.623] +N1821Y[#*40.591] +N1831Y[#*40.037] +N1841Y[#*26.537] +N1851Y[#*25.162] +N1861Y[#*25.154]Z[#*-30.496] +N1871Y[#*25.021]Z[#*-30.103] +N1881Y[#*24.912]Z[#*-29.779] +N1891Y[#*24.787]Z[#*-29.405] +N1901Y[#*24.537]Z[#*-28.799] +N1911Y[#*24.287]Z[#*-28.339] +N1921Y[#*23.787]Z[#*-27.433] +N1931Y[#*23.537]Z[#*-26.983] +N1941Y[#*23.037]Z[#*-26.291] +N1951Y[#*22.537]Z[#*-25.629] +N1961Y[#*21.537]Z[#*-24.429] +N1971Y[#*20.537]Z[#*-23.381] +N1981Y[#*19.537]Z[#*-22.448] +N1991Y[#*18.537]Z[#*-21.6] +N2001Y[#*17.537]Z[#*-20.844] +N2011Y[#*15.537]Z[#*-19.492] +N2021Y[#*15.037]Z[#*-19.217] +N2031Y[#*13.537]Z[#*-18.424] +N2041Y[#*13.037]Z[#*-18.167] +N2051Y[#*12.537]Z[#*-17.934] +N2061Y[#*10.037]Z[#*-16.975] +N2071Y[#*9.537]Z[#*-16.806] +N2081Y[#*7.537]Z[#*-16.277] +N2091Y[#*6.537]Z[#*-16.02] +N2101Y[#*3.537]Z[#*-15.549] +N2111Y[#*2.537]Z[#*-15.474] +N2121Y[#*0.537]Z[#*-15.369] +N2131Y[#*-0.463]Z[#*-15.365] +N2141Y[#*-2.963]Z[#*-15.496] +N2151Y[#*-3.463]Z[#*-15.537] +N2161Y[#*-5.463]Z[#*-15.85] +N2171Y[#*-6.463]Z[#*-16.007] +N2181Y[#*-6.963]Z[#*-16.126] +N2191Y[#*-9.463]Z[#*-16.787] +N2201Y[#*-10.463]Z[#*-17.14] +N2211Y[#*-12.463]Z[#*-17.906] +N2221Y[#*-13.463]Z[#*-18.385] +N2231Y[#*-14.963]Z[#*-19.178] +N2241Y[#*-15.463]Z[#*-19.447] +N2251Y[#*-16.463]Z[#*-20.121] +N2261Y[#*-17.463]Z[#*-20.796] +N2271Y[#*-18.463]Z[#*-21.54] +N2281Y[#*-19.463]Z[#*-22.385] +N2291Y[#*-20.463]Z[#*-23.304] +N2301Y[#*-21.463]Z[#*-24.353] +N2311Y[#*-22.463]Z[#*-25.532] +N2321Y[#*-23.463]Z[#*-26.866] +N2331Y[#*-23.713]Z[#*-27.299] +N2341Y[#*-24.463]Z[#*-28.663] +N2351Y[#*-24.713]Z[#*-29.187] +N2361Y[#*-24.963]Z[#*-29.931] +N2371Y[#*-25.143]Z[#*-30.463] +N2381Y[#*-25.159]Z[#*-30.5] +N2391Y[#*-25.213] +N2401Y[#*-40.635] +N2411Y[#*-40.643] +N2421Y[#*-40.651]Z[#*-28.876] +N2431Y[#*-40.674]Z[#*-28.6] +N2441Y[#*-40.729]Z[#*-28.168] +N2451Y[#*-40.744]Z[#*-28.062] +N2461Y[#*-40.807]Z[#*-27.811] +N2471Y[#*-40.963]Z[#*-27.316] +N2481Y[#*-41.026]Z[#*-27.131] +N2491Y[#*-41.088]Z[#*-26.967] +N2501Y[#*-41.213]Z[#*-26.712] +N2511Y[#*-41.338]Z[#*-26.506] +N2521Y[#*-41.494]Z[#*-26.288] +N2531Y[#*-41.526]Z[#*-26.248] +N2541Y[#*-41.713]Z[#*-26.038] +N2551Y[#*-41.963]Z[#*-25.829] +N2561Y[#*-42.213]Z[#*-25.654] +N2571Y[#*-42.463]Z[#*-25.495] +N2581Y[#*-42.963]Z[#*-25.214] +N2591Y[#*-43.463]Z[#*-25.] +N2601Y[#*-43.963]Z[#*-24.84] +N2611Y[#*-44.463]Z[#*-24.697] +N2621Y[#*-44.963]Z[#*-24.598] +N2631Y[#*-45.463]Z[#*-24.536] +N2641Y[#*-45.963]Z[#*-24.483] +N2651Y[#*-46.463]Z[#*-24.489] +N2661Y[#*-46.963]Z[#*-24.514] +N2671Y[#*-47.463]Z[#*-24.589] +N2681Y[#*-47.963]Z[#*-24.681] +N2691Y[#*-48.463]Z[#*-24.841] +N2701Y[#*-48.713]Z[#*-24.964] +N2711Y[#*-48.963]Z[#*-25.119] +N2721Y[#*-49.463]Z[#*-25.506] +N2731Y[#*-49.588]Z[#*-25.623] +N2741Y[#*-49.713]Z[#*-25.756] +N2751Y[#*-49.963]Z[#*-26.085] +N2761Y[#*-50.088]Z[#*-26.297] +N2771Y[#*-50.213]Z[#*-26.563] +N2781Y[#*-50.354]Z[#*-27.011] +N2791Y[#*-50.362]Z[#*-27.046] +N2801Y[#*-50.409]Z[#*-27.344] +N2811Y[#*-50.424]Z[#*-27.815] +N2821Y[#*-50.494]Z[#*-27.89] +N2831Y[#*-50.526]Z[#*-27.925] +N2841Y[#*-50.713]Z[#*-28.164] +N2851Y[#*-50.963]Z[#*-28.594] +N2861Y[#*-51.088]Z[#*-28.906] +N2871Y[#*-51.151]Z[#*-29.121] +N2881Y[#*-51.198]Z[#*-29.348] +N2891Y[#*-51.221]Z[#*-29.524] +N2901Y[#*-51.229]Z[#*-29.616] +N2911Y[#*-51.237]Z[#*-30.5] +N2921Y[#*-51.346] +N2931Y[#*-53.] +N2941X[#*5.472]Y[#*-53.293] +N2951X[#*5.393]Y[#*-53.547] +N2961X[#*5.269]Y[#*-53.762] +N2971X[#*5.109]Y[#*-53.938] +N2981X[#*4.92]Y[#*-54.074] +N2991X[#*4.709]Y[#*-54.172] +N3001X[#*4.483]Y[#*-54.23] +N3011X[#*4.25]Y[#*-54.25] +N3021X[#*4.017]Y[#*-54.23] +N3031X[#*3.791]Y[#*-54.172] +N3041X[#*3.58]Y[#*-54.074] +N3051X[#*3.391]Y[#*-53.938] +N3061X[#*3.231]Y[#*-53.762] +N3071X[#*3.107]Y[#*-53.547] +N3081X[#*3.028]Y[#*-53.293] +N3091X[#*3.]Y[#*-53.] +N3101Y[#*-51.218] +N3111Y[#*-51.203]Z[#*-29.635] +N3121Y[#*-51.187]Z[#*-29.466] +N3131Y[#*-51.14]Z[#*-29.195] +N3141Y[#*-51.062]Z[#*-28.914] +N3151Y[#*-51.038]Z[#*-28.847] +N3161Y[#*-50.781]Z[#*-28.316] +N3171Y[#*-50.593]Z[#*-28.049] +N3181Y[#*-50.515]Z[#*-27.954] +N3191Y[#*-50.499]Z[#*-27.935] +N3201Y[#*-50.492]Z[#*-27.516] +N3211Y[#*-50.46]Z[#*-27.201] +N3221Y[#*-50.406]Z[#*-26.935] +N3231Y[#*-50.281]Z[#*-26.558] +N3241Y[#*-50.156]Z[#*-26.293] +N3251Y[#*-50.031]Z[#*-26.081] +N3261Y[#*-49.781]Z[#*-25.75] +N3271Y[#*-49.656]Z[#*-25.612] +N3281Y[#*-49.562]Z[#*-25.508] +N3291Y[#*-49.531]Z[#*-25.473] +N3301Y[#*-49.281]Z[#*-25.23] +N3311Y[#*-49.031]Z[#*-25.036] +N3321Y[#*-48.531]Z[#*-24.753] +N3331Y[#*-48.031]Z[#*-24.551] +N3341Y[#*-47.531]Z[#*-24.384] +N3351Y[#*-46.531]Z[#*-24.203] +N3361Y[#*-45.531]Z[#*-24.118] +N3371Y[#*-44.531]Z[#*-24.109] +N3381Y[#*-43.531]Z[#*-24.151] +N3391Y[#*-43.031]Z[#*-24.195] +N3401Y[#*-42.531]Z[#*-24.25] +N3411Y[#*-42.031]Z[#*-24.334] +N3421Y[#*-41.531]Z[#*-24.441] +N3431Y[#*-41.031]Z[#*-24.576] +N3441Y[#*-40.531]Z[#*-24.743] +N3451Y[#*-40.031]Z[#*-24.951] +N3461Y[#*-39.531]Z[#*-25.181] +N3471Y[#*-38.531]Z[#*-25.692] +N3481Y[#*-38.031]Z[#*-25.924] +N3491Y[#*-37.656]Z[#*-26.134] +N3501Y[#*-37.531]Z[#*-26.214] +N3511Y[#*-37.281]Z[#*-26.393] +N3521Y[#*-37.031]Z[#*-26.609] +N3531Y[#*-36.781]Z[#*-26.884] +N3541Y[#*-36.656]Z[#*-27.059] +N3551Y[#*-36.546]Z[#*-27.218] +N3561Y[#*-36.093]Z[#*-27.839] +N3571Y[#*-36.031]Z[#*-27.923] +N3581Y[#*-35.906]Z[#*-28.095] +N3591Y[#*-35.796]Z[#*-28.281] +N3601Y[#*-35.788]Z[#*-28.297] +N3611Y[#*-35.718]Z[#*-28.46] +N3621Y[#*-35.656]Z[#*-28.684] +N3631Y[#*-35.593]Z[#*-29.236] +N3641Y[#*-35.531]Z[#*-29.777] +N3651Y[#*-35.523]Z[#*-29.863] +N3661Y[#*-35.499]Z[#*-30.214] +N3671Y[#*-35.492]Z[#*-30.5] +N3681Y[#*-30.531] +N3691Y[#*-24.562] +N3701Y[#*-24.554]Z[#*-30.493] +N3711Y[#*-24.281]Z[#*-29.659] +N3721Y[#*-24.031]Z[#*-28.965] +N3731Y[#*-23.031]Z[#*-27.091] +N3741Y[#*-22.531]Z[#*-26.377] +N3751Y[#*-21.531]Z[#*-25.051] +N3761Y[#*-21.031]Z[#*-24.513] +N3771Y[#*-20.031]Z[#*-23.493] +N3781Y[#*-19.531]Z[#*-23.007] +N3791Y[#*-18.531]Z[#*-22.211] +N3801Y[#*-17.531]Z[#*-21.398] +N3811Y[#*-16.531]Z[#*-20.74] +N3821Y[#*-15.531]Z[#*-20.104] +N3831Y[#*-14.531]Z[#*-19.552] +N3841Y[#*-12.531]Z[#*-18.547] +N3851Y[#*-12.031]Z[#*-18.346] +N3861Y[#*-11.531]Z[#*-18.158] +N3871Y[#*-9.531]Z[#*-17.418] +N3881Y[#*-6.531]Z[#*-16.628] +N3891Y[#*-6.031]Z[#*-16.54] +N3901Y[#*-3.531]Z[#*-16.146] +N3911Y[#*-2.531]Z[#*-16.063] +N3921Y[#*-0.531]Z[#*-15.955] +N3931Y[#*0.469]Z[#*-15.952] +N3941Y[#*2.469]Z[#*-16.06] +N3951Y[#*3.469]Z[#*-16.136] +N3961Y[#*4.469]Z[#*-16.294] +N3971Y[#*5.969]Z[#*-16.531] +N3981Y[#*6.469]Z[#*-16.614] +N3991Y[#*9.469]Z[#*-17.399] +N4001Y[#*10.469]Z[#*-17.76] +N4011Y[#*11.969]Z[#*-18.323] +N4021Y[#*12.469]Z[#*-18.518] +N4031Y[#*14.469]Z[#*-19.522] +N4041Y[#*15.469]Z[#*-20.066] +N4051Y[#*16.969]Z[#*-21.026] +N4061Y[#*17.469]Z[#*-21.354] +N4071Y[#*19.469]Z[#*-22.957] +N4081Y[#*19.969]Z[#*-23.431] +N4091Y[#*20.969]Z[#*-24.45] +N4101Y[#*21.469]Z[#*-24.975] +N4111Y[#*22.469]Z[#*-26.296] +N4121Y[#*22.969]Z[#*-26.986] +N4131Y[#*23.969]Z[#*-28.842] +N4141Y[#*24.219]Z[#*-29.472] +N4151Y[#*24.407]Z[#*-30.042] +N4161Y[#*24.516]Z[#*-30.375] +N4171Y[#*24.54]Z[#*-30.447] +N4181Y[#*24.555]Z[#*-30.496] +N4191Y[#*24.563]Z[#*-30.5] +N4201Y[#*24.594] +N4211Y[#*25.469] +N4221Y[#*32.469] +N4231Y[#*35.407] +N4241Y[#*35.485] +N4251Y[#*35.493] +N4261Y[#*35.508]Z[#*-30.079] +N4271Y[#*35.524]Z[#*-29.846] +N4281Y[#*35.532]Z[#*-29.767] +N4291Y[#*35.594]Z[#*-29.225] +N4301Y[#*35.665]Z[#*-28.641] +N4311Y[#*35.688]Z[#*-28.551] +N4321Y[#*35.719]Z[#*-28.457] +N4331Y[#*35.969]Z[#*-28.005] +N4341Y[#*36.469]Z[#*-27.325] +N4351Y[#*36.719]Z[#*-26.967] +N4361Y[#*36.844]Z[#*-26.806] +N4371Y[#*36.969]Z[#*-26.67] +N4381Y[#*37.219]Z[#*-26.442] +N4391Y[#*37.469]Z[#*-26.255] +N4401Y[#*37.969]Z[#*-25.955] +N4411Y[#*38.469]Z[#*-25.719] +N4421Y[#*39.469]Z[#*-25.213] +N4431Y[#*39.969]Z[#*-24.977] +N4441Y[#*40.469]Z[#*-24.766] +N4451Y[#*40.969]Z[#*-24.594] +N4461Y[#*41.469]Z[#*-24.456] +N4471Y[#*41.969]Z[#*-24.345] +N4481Y[#*42.469]Z[#*-24.259] +N4491Y[#*43.469]Z[#*-24.154] +N4501Y[#*44.469]Z[#*-24.111] +N4511Y[#*45.469]Z[#*-24.115] +N4521Y[#*45.969]Z[#*-24.147] +N4531Y[#*46.469]Z[#*-24.194] +N4541Y[#*47.469]Z[#*-24.37] +N4551Y[#*47.969]Z[#*-24.526] +N4561Y[#*48.219]Z[#*-24.626] +N4571Y[#*48.462]Z[#*-24.723] +N4581Y[#*48.719]Z[#*-24.845] +N4591Y[#*48.969]Z[#*-24.994] +N4601Y[#*49.219]Z[#*-25.178] +N4611Y[#*49.469]Z[#*-25.408] +N4621Y[#*49.844]Z[#*-25.826] +N4631Y[#*49.969]Z[#*-25.991] +N4641Y[#*50.094]Z[#*-26.184] +N4651Y[#*50.188]Z[#*-26.355] +N4661Y[#*50.344]Z[#*-26.728] +N4671Y[#*50.376]Z[#*-26.826] +N4681Y[#*50.391]Z[#*-26.881] +N4691Y[#*50.454]Z[#*-27.161] +N4701Y[#*50.485]Z[#*-27.409] +N4711Y[#*50.501]Z[#*-27.937] +N4721Y[#*50.594]Z[#*-28.05] +N4731Y[#*50.719]Z[#*-28.221] +N4741Y[#*50.844]Z[#*-28.424] +N4751Y[#*50.907]Z[#*-28.542] +N4761Y[#*51.032]Z[#*-28.829] +N4771Y[#*51.079]Z[#*-28.966] +N4781Y[#*51.157]Z[#*-29.276] +N4791Y[#*51.196]Z[#*-29.549] +N4801Y[#*51.204]Z[#*-29.655] +N4811Y[#*51.219]Z[#*-30.5] +N4821Y[#*53.] +N4831X[#*2.972]Y[#*53.293] +N4841X[#*2.893]Y[#*53.547] +N4851X[#*2.769]Y[#*53.762] +N4861X[#*2.609]Y[#*53.937] +N4871X[#*2.42]Y[#*54.074] +N4881X[#*2.209]Y[#*54.172] +N4891X[#*1.983]Y[#*54.23] +N4901X[#*1.75]Y[#*54.25] +N4911X[#*1.517]Y[#*54.23] +N4921X[#*1.291]Y[#*54.172] +N4931X[#*1.08]Y[#*54.074] +N4941X[#*0.891]Y[#*53.937] +N4951X[#*0.731]Y[#*53.762] +N4961X[#*0.607]Y[#*53.547] +N4971X[#*0.528]Y[#*53.293] +N4981X[#*0.5]Y[#*53.] +N4991Y[#*49.765] +N5001Y[#*49.758] +N5011Y[#*49.75]Z[#*-29.781] +N5021Y[#*49.742]Z[#*-29.696] +N5031Y[#*49.695]Z[#*-29.43] +N5041Y[#*49.601]Z[#*-29.137] +N5051Y[#*49.484]Z[#*-28.891] +N5061Y[#*49.359]Z[#*-28.693] +N5071Y[#*49.234]Z[#*-28.534] +N5081Y[#*49.094]Z[#*-28.383] +N5091Y[#*49.07]Z[#*-28.36] +N5101Y[#*49.062]Z[#*-27.618] +N5111Y[#*49.055]Z[#*-27.522] +N5121Y[#*49.023]Z[#*-27.318] +N5131Y[#*48.969]Z[#*-27.104] +N5141Y[#*48.922]Z[#*-26.969] +N5151Y[#*48.859]Z[#*-26.824] +N5161Y[#*48.734]Z[#*-26.596] +N5171Y[#*48.609]Z[#*-26.418] +N5181Y[#*48.484]Z[#*-26.271] +N5191Y[#*48.109]Z[#*-25.877] +N5201Y[#*47.609]Z[#*-25.495] +N5211Y[#*47.547]Z[#*-25.456] +N5221Y[#*47.484]Z[#*-25.418] +N5231Y[#*47.109]Z[#*-25.222] +N5241Y[#*46.609]Z[#*-25.008] +N5251Y[#*46.109]Z[#*-24.83] +N5261Y[#*45.609]Z[#*-24.69] +N5271Y[#*45.109]Z[#*-24.596] +N5281Y[#*43.609]Z[#*-24.349] +N5291Y[#*42.609]Z[#*-24.268] +N5301Y[#*41.609]Z[#*-24.153] +N5311Y[#*40.609]Z[#*-24.12] +N5321Y[#*40.109]Z[#*-24.137] +N5331Y[#*39.609]Z[#*-24.182] +N5341Y[#*38.609]Z[#*-24.292] +N5351Y[#*37.609]Z[#*-24.403] +N5361Y[#*36.609]Z[#*-24.601] +N5371Y[#*36.109]Z[#*-24.737] +N5381Y[#*35.609]Z[#*-24.905] +N5391Y[#*34.609]Z[#*-25.272] +N5401Y[#*33.609]Z[#*-25.607] +N5411Y[#*33.109]Z[#*-25.805] +N5421Y[#*32.609]Z[#*-26.046] +N5431Y[#*32.109]Z[#*-26.352] +N5441Y[#*31.609]Z[#*-26.752] +N5451Y[#*31.109]Z[#*-27.251] +N5461Y[#*30.609]Z[#*-27.702] +N5471Y[#*30.109]Z[#*-28.206] +N5481Y[#*30.078]Z[#*-28.251] +N5491Y[#*29.984]Z[#*-28.409] +N5501Y[#*29.922]Z[#*-28.552] +N5511Y[#*29.609]Z[#*-29.644] +N5521Y[#*29.484]Z[#*-30.023] +N5531Y[#*29.453]Z[#*-30.154] +N5541Y[#*29.445]Z[#*-30.211] +N5551Y[#*29.437]Z[#*-30.5] +N5561Y[#*29.414] +N5571Y[#*24.109] +N5581Y[#*23.851]Z[#*-30.496] +N5591Y[#*23.828]Z[#*-30.421] +N5601Y[#*23.734]Z[#*-30.112] +N5611Y[#*23.547]Z[#*-29.478] +N5621Y[#*23.484]Z[#*-29.273] +N5631Y[#*23.359]Z[#*-28.962] +N5641Y[#*22.609]Z[#*-27.486] +N5651Y[#*22.109]Z[#*-26.663] +N5661Y[#*21.109]Z[#*-25.309] +N5671Y[#*20.609]Z[#*-24.731] +N5681Y[#*19.609]Z[#*-23.732] +N5691Y[#*18.609]Z[#*-22.831] +N5701Y[#*17.609]Z[#*-22.058] +N5711Y[#*16.609]Z[#*-21.354] +N5721Y[#*15.609]Z[#*-20.753] +N5731Y[#*14.609]Z[#*-20.14] +N5741Y[#*13.609]Z[#*-19.651] +N5751Y[#*12.609]Z[#*-19.181] +N5761Y[#*11.609]Z[#*-18.76] +N5771Y[#*9.609]Z[#*-18.034] +N5781Y[#*8.609]Z[#*-17.737] +N5791Y[#*6.609]Z[#*-17.221] +N5801Y[#*5.609]Z[#*-17.03] +N5811Y[#*3.609]Z[#*-16.714] +N5821Y[#*2.609]Z[#*-16.614] +N5831Y[#*0.609]Z[#*-16.504] +N5841Y[#*-0.391]Z[#*-16.492] +N5851Y[#*-2.391]Z[#*-16.602] +N5861Y[#*-3.391]Z[#*-16.679] +N5871Y[#*-5.391]Z[#*-16.995] +N5881Y[#*-6.391]Z[#*-17.165] +N5891Y[#*-8.391]Z[#*-17.681] +N5901Y[#*-9.391]Z[#*-17.954] +N5911Y[#*-11.391]Z[#*-18.681] +N5921Y[#*-12.391]Z[#*-19.078] +N5931Y[#*-13.391]Z[#*-19.548] +N5941Y[#*-14.391]Z[#*-20.032] +N5951Y[#*-15.391]Z[#*-20.618] +N5961Y[#*-16.391]Z[#*-21.223] +N5971Y[#*-17.391]Z[#*-21.891] +N5981Y[#*-18.391]Z[#*-22.659] +N5991Y[#*-19.391]Z[#*-23.511] +N6001Y[#*-20.391]Z[#*-24.513] +N6011Y[#*-21.391]Z[#*-25.692] +N6021Y[#*-21.891]Z[#*-26.371] +N6031Y[#*-22.391]Z[#*-27.075] +N6041Y[#*-22.891]Z[#*-28.03] +N6051Y[#*-23.391]Z[#*-29.032] +N6061Y[#*-23.641]Z[#*-29.796] +N6071Y[#*-23.766]Z[#*-30.218] +N6081Y[#*-23.852]Z[#*-30.497] +N6091Y[#*-23.86]Z[#*-30.5] +N6101Y[#*-27.391] +N6111Y[#*-29.391] +N6121Y[#*-29.438] +N6131Y[#*-29.445]Z[#*-30.208] +N6141Y[#*-29.461]Z[#*-30.112] +N6151Y[#*-29.641]Z[#*-29.548] +N6161Y[#*-29.891]Z[#*-28.648] +N6171Y[#*-30.016]Z[#*-28.351] +N6181Y[#*-30.078]Z[#*-28.25] +N6191Y[#*-30.203]Z[#*-28.086] +N6201Y[#*-30.391]Z[#*-27.89] +N6211Y[#*-30.891]Z[#*-27.468] +N6221Y[#*-31.391]Z[#*-26.97] +N6231Y[#*-31.891]Z[#*-26.514] +N6241Y[#*-32.391]Z[#*-26.169] +N6251Y[#*-32.641]Z[#*-26.029] +N6261Y[#*-32.891]Z[#*-25.904] +N6271Y[#*-33.391]Z[#*-25.689] +N6281Y[#*-33.891]Z[#*-25.51] +N6291Y[#*-34.391]Z[#*-25.345] +N6301Y[#*-35.391]Z[#*-24.987] +N6311Y[#*-36.391]Z[#*-24.657] +N6321Y[#*-36.891]Z[#*-24.535] +N6331Y[#*-37.391]Z[#*-24.437] +N6341Y[#*-37.891]Z[#*-24.364] +N6351Y[#*-39.391]Z[#*-24.211] +N6361Y[#*-40.391]Z[#*-24.124] +N6371Y[#*-40.891]Z[#*-24.12] +N6381Y[#*-41.391]Z[#*-24.137] +N6391Y[#*-41.891]Z[#*-24.182] +N6401Y[#*-42.391]Z[#*-24.247] +N6411Y[#*-43.391]Z[#*-24.324] +N6421Y[#*-44.391]Z[#*-24.474] +N6431Y[#*-45.391]Z[#*-24.644] +N6441Y[#*-45.891]Z[#*-24.764] +N6451Y[#*-46.391]Z[#*-24.925] +N6461Y[#*-46.891]Z[#*-25.122] +N6471Y[#*-47.391]Z[#*-25.365] +N6481Y[#*-47.891]Z[#*-25.692] +N6491Y[#*-48.141]Z[#*-25.907] +N6501Y[#*-48.516]Z[#*-26.306] +N6511Y[#*-48.641]Z[#*-26.46] +N6521Y[#*-48.766]Z[#*-26.648] +N6531Y[#*-48.899]Z[#*-26.912] +N6541Y[#*-48.953]Z[#*-27.057] +N6551Y[#*-49.031]Z[#*-27.36] +N6561Y[#*-49.063]Z[#*-27.623] +N6571Y[#*-49.07]Z[#*-28.36] +N6581Y[#*-49.203]Z[#*-28.499] +N6591Y[#*-49.391]Z[#*-28.739] +N6601Y[#*-49.516]Z[#*-28.95] +N6611Y[#*-49.641]Z[#*-29.243] +N6621Y[#*-49.711]Z[#*-29.501] +N6631Y[#*-49.719]Z[#*-29.541] +N6641Y[#*-49.75]Z[#*-29.785] +N6651Y[#*-49.758]Z[#*-30.5] +N6661Y[#*-49.797] +N6671Y[#*-50.016] +N6681Y[#*-50.391] +N6691Y[#*-52.992] +N6701Y[#*-53.] +N6711X[#*0.472]Y[#*-53.293] +N6721X[#*0.393]Y[#*-53.547] +N6731X[#*0.269]Y[#*-53.762] +N6741X[#*0.109]Y[#*-53.938] +N6751X[#*-0.08]Y[#*-54.074] +N6761X[#*-0.291]Y[#*-54.172] +N6771X[#*-0.517]Y[#*-54.23] +N6781X[#*-0.75]Y[#*-54.25] +N6791X[#*-0.983]Y[#*-54.23] +N6801X[#*-1.209]Y[#*-54.172] +N6811X[#*-1.42]Y[#*-54.074] +N6821X[#*-1.609]Y[#*-53.938] +N6831X[#*-1.769]Y[#*-53.762] +N6841X[#*-1.893]Y[#*-53.547] +N6851X[#*-1.972]Y[#*-53.293] +N6861X[#*-2.]Y[#*-53.] +N6871Y[#*-52.992] +N6881Y[#*-46.367] +N6891Y[#*-46.305] +N6901Y[#*-46.274]Z[#*-30.111] +N6911Y[#*-46.242]Z[#*-29.955] +N6921Y[#*-46.18]Z[#*-29.758] +N6931Y[#*-46.149]Z[#*-29.683] +N6941Y[#*-46.024]Z[#*-29.448] +N6951Y[#*-45.93]Z[#*-29.311] +N6961Y[#*-45.907]Z[#*-29.28] +N6971Y[#*-45.774]Z[#*-29.107] +N6981Y[#*-45.742]Z[#*-29.058] +N6991Y[#*-45.711]Z[#*-29.006] +N7001Y[#*-45.664]Z[#*-28.93] +N7011Y[#*-45.657]Z[#*-28.217] +N7021Y[#*-45.649]Z[#*-28.146] +N7031Y[#*-45.617]Z[#*-27.973] +N7041Y[#*-45.586]Z[#*-27.858] +N7051Y[#*-45.524]Z[#*-27.69] +N7061Y[#*-45.399]Z[#*-27.458] +N7071Y[#*-45.149]Z[#*-27.123] +N7081Y[#*-44.961]Z[#*-26.859] +N7091Y[#*-44.899]Z[#*-26.787] +N7101Y[#*-44.399]Z[#*-26.379] +N7111Y[#*-43.899]Z[#*-26.071] +N7121Y[#*-43.399]Z[#*-25.725] +N7131Y[#*-41.399]Z[#*-24.8] +N7141Y[#*-40.899]Z[#*-24.623] +N7151Y[#*-40.399]Z[#*-24.49] +N7161Y[#*-38.899]Z[#*-24.199] +N7171Y[#*-37.899]Z[#*-24.071] +N7181Y[#*-37.399]Z[#*-24.037] +N7191Y[#*-36.899]Z[#*-24.025] +N7201Y[#*-35.899]Z[#*-24.069] +N7211Y[#*-32.899]Z[#*-24.344] +N7221Y[#*-31.899]Z[#*-24.5] +N7231Y[#*-30.899]Z[#*-24.715] +N7241Y[#*-29.899]Z[#*-24.973] +N7251Y[#*-28.899]Z[#*-25.206] +N7261Y[#*-27.899]Z[#*-25.41] +N7271Y[#*-26.899]Z[#*-25.644] +N7281Y[#*-25.899]Z[#*-25.938] +N7291Y[#*-24.899]Z[#*-26.304] +N7301Y[#*-24.399]Z[#*-26.535] +N7311Y[#*-23.899]Z[#*-26.741] +N7321Y[#*-23.399]Z[#*-26.875] +N7331Y[#*-22.899]Z[#*-27.001] +N7341Y[#*-22.649]Z[#*-27.037] +N7351Y[#*-21.961]Z[#*-27.016] +N7361Y[#*-21.899]Z[#*-27.014] +N7371Y[#*-21.875] +N7381Y[#*-21.649]Z[#*-26.687] +N7391Y[#*-20.899]Z[#*-25.672] +N7401Y[#*-20.399]Z[#*-25.035] +N7411Y[#*-18.899]Z[#*-23.623] +N7421Y[#*-17.899]Z[#*-22.818] +N7431Y[#*-16.899]Z[#*-22.1] +N7441Y[#*-15.899]Z[#*-21.453] +N7451Y[#*-14.899]Z[#*-20.879] +N7461Y[#*-13.899]Z[#*-20.336] +N7471Y[#*-11.899]Z[#*-19.424] +N7481Y[#*-10.899]Z[#*-19.041] +N7491Y[#*-8.899]Z[#*-18.343] +N7501Y[#*-6.899]Z[#*-17.832] +N7511Y[#*-5.899]Z[#*-17.592] +N7521Y[#*-3.899]Z[#*-17.276] +N7531Y[#*-2.899]Z[#*-17.136] +N7541Y[#*-0.399]Z[#*-16.996] +N7551Y[#*0.101]Z[#*-16.98] +N7561Y[#*1.101]Z[#*-17.035] +N7571Y[#*3.101]Z[#*-17.153] +N7581Y[#*3.601]Z[#*-17.229] +N7591Y[#*6.101]Z[#*-17.629] +N7601Y[#*8.101]Z[#*-18.138] +N7611Y[#*9.101]Z[#*-18.409] +N7621Y[#*11.101]Z[#*-19.113] +N7631Y[#*12.101]Z[#*-19.519] +N7641Y[#*14.101]Z[#*-20.429] +N7651Y[#*14.601]Z[#*-20.708] +N7661Y[#*16.101]Z[#*-21.569] +N7671Y[#*17.101]Z[#*-22.245] +N7681Y[#*18.101]Z[#*-22.963] +N7691Y[#*19.101]Z[#*-23.816] +N7701Y[#*19.601]Z[#*-24.291] +N7711Y[#*20.101]Z[#*-24.734] +N7721Y[#*20.601]Z[#*-25.289] +N7731Y[#*21.351]Z[#*-26.285] +N7741Y[#*21.601]Z[#*-26.623] +N7751Y[#*21.836]Z[#*-26.958] +N7761Y[#*21.843]Z[#*-26.97] +N7771Y[#*21.875]Z[#*-27.014] +N7781Y[#*22.476]Z[#*-27.032] +N7791Y[#*22.586]Z[#*-27.035] +N7801Y[#*22.601] +N7811Y[#*22.851]Z[#*-27.013] +N7821Y[#*23.601]Z[#*-26.822] +N7831Y[#*24.101]Z[#*-26.675] +N7841Y[#*24.601]Z[#*-26.439] +N7851Y[#*25.101]Z[#*-26.222] +N7861Y[#*26.101]Z[#*-25.872] +N7871Y[#*27.101]Z[#*-25.593] +N7881Y[#*28.101]Z[#*-25.367] +N7891Y[#*29.101]Z[#*-25.162] +N7901Y[#*30.101]Z[#*-24.926] +N7911Y[#*31.101]Z[#*-24.666] +N7921Y[#*32.101]Z[#*-24.463] +N7931Y[#*33.101]Z[#*-24.321] +N7941Y[#*35.101]Z[#*-24.144] +N7951Y[#*36.101]Z[#*-24.054] +N7961Y[#*36.601]Z[#*-24.03] +N7971Y[#*37.101]Z[#*-24.027] +N7981Y[#*38.101]Z[#*-24.091] +N7991Y[#*39.101]Z[#*-24.237] +N8001Y[#*40.101]Z[#*-24.428] +N8011Y[#*40.601]Z[#*-24.539] +N8021Y[#*41.101]Z[#*-24.689] +N8031Y[#*41.601]Z[#*-24.886] +N8041Y[#*42.601]Z[#*-25.385] +N8051Y[#*42.851]Z[#*-25.474] +N8061Y[#*43.101]Z[#*-25.576] +N8071Y[#*43.601]Z[#*-25.848] +N8081Y[#*44.101]Z[#*-26.196] +N8091Y[#*44.351]Z[#*-26.35] +N8101Y[#*44.601]Z[#*-26.518] +N8111Y[#*44.726]Z[#*-26.619] +N8121Y[#*44.851]Z[#*-26.737] +N8131Y[#*44.976]Z[#*-26.878] +N8141Y[#*45.086]Z[#*-27.028] +N8151Y[#*45.226]Z[#*-27.224] +N8161Y[#*45.414]Z[#*-27.482] +N8171Y[#*45.476]Z[#*-27.591] +N8181Y[#*45.57]Z[#*-27.809] +N8191Y[#*45.633]Z[#*-28.045] +N8201Y[#*45.656]Z[#*-28.212] +N8211Y[#*45.672]Z[#*-28.942] +N8221Y[#*45.851]Z[#*-29.208] +N8231Y[#*45.976]Z[#*-29.376] +N8241Y[#*46.101]Z[#*-29.584] +N8251Y[#*46.195]Z[#*-29.799] +N8261Y[#*46.258]Z[#*-30.02] +N8271Y[#*46.289]Z[#*-30.261] +N8281Y[#*46.304]Z[#*-30.5] +N8291Y[#*53.] +N8301X[#*-2.028]Y[#*53.293] +N8311X[#*-2.107]Y[#*53.547] +N8321X[#*-2.231]Y[#*53.762] +N8331X[#*-2.391]Y[#*53.937] +N8341X[#*-2.58]Y[#*54.074] +N8351X[#*-2.791]Y[#*54.172] +N8361X[#*-3.017]Y[#*54.23] +N8371X[#*-3.25]Y[#*54.25] +N8381X[#*-3.483]Y[#*54.23] +N8391X[#*-3.709]Y[#*54.172] +N8401X[#*-3.92]Y[#*54.074] +N8411X[#*-4.109]Y[#*53.937] +N8421X[#*-4.269]Y[#*53.762] +N8431X[#*-4.393]Y[#*53.547] +N8441X[#*-4.472]Y[#*53.293] +N8451X[#*-4.5]Y[#*53.] +N8461Y[#*43.102] +N8471Y[#*43.024] +N8481Y[#*43.016]Z[#*-30.487] +N8491Y[#*42.946]Z[#*-30.175] +N8501Y[#*42.915]Z[#*-30.038] +N8511Y[#*42.852]Z[#*-29.833] +N8521Y[#*42.727]Z[#*-29.514] +N8531Y[#*42.227]Z[#*-28.275] +N8541Y[#*41.977]Z[#*-27.831] +N8551Y[#*41.477]Z[#*-27.133] +N8561Y[#*40.977]Z[#*-26.484] +N8571Y[#*40.727]Z[#*-26.238] +N8581Y[#*40.477]Z[#*-26.033] +N8591Y[#*40.352]Z[#*-25.942] +N8601Y[#*39.977]Z[#*-25.702] +N8611Y[#*39.477]Z[#*-25.422] +N8621Y[#*38.477]Z[#*-24.96] +N8631Y[#*37.977]Z[#*-24.75] +N8641Y[#*37.477]Z[#*-24.584] +N8651Y[#*36.977]Z[#*-24.462] +N8661Y[#*36.477]Z[#*-24.369] +N8671Y[#*35.477]Z[#*-24.242] +N8681Y[#*34.477]Z[#*-24.144] +N8691Y[#*33.477]Z[#*-24.059] +N8701Y[#*32.477]Z[#*-24.011] +N8711Y[#*31.477]Z[#*-24.024] +N8721Y[#*28.477]Z[#*-24.208] +N8731Y[#*27.477]Z[#*-24.259] +N8741Y[#*26.477]Z[#*-24.322] +N8751Y[#*25.477]Z[#*-24.416] +N8761Y[#*24.477]Z[#*-24.536] +N8771Y[#*23.477]Z[#*-24.672] +N8781Y[#*22.477]Z[#*-24.739] +N8791Y[#*21.477]Z[#*-24.719] +N8801Y[#*20.977]Z[#*-24.675] +N8811Y[#*20.727]Z[#*-24.61] +N8821Y[#*19.977]Z[#*-24.375] +N8831Y[#*19.469]Z[#*-24.132] +N8841Y[#*18.977]Z[#*-23.816] +N8851Y[#*17.477]Z[#*-22.95] +N8861Y[#*16.477]Z[#*-22.344] +N8871Y[#*15.477]Z[#*-21.741] +N8881Y[#*14.477]Z[#*-21.206] +N8891Y[#*13.477]Z[#*-20.693] +N8901Y[#*11.477]Z[#*-19.818] +N8911Y[#*10.477]Z[#*-19.447] +N8921Y[#*8.477]Z[#*-18.766] +N8931Y[#*7.477]Z[#*-18.513] +N8941Y[#*6.477]Z[#*-18.259] +N8951Y[#*5.477]Z[#*-18.039] +N8961Y[#*3.477]Z[#*-17.72] +N8971Y[#*2.477]Z[#*-17.609] +N8981Y[#*0.477]Z[#*-17.495] +N8991Y[#*-0.523]Z[#*-17.497] +N9001Y[#*-2.523]Z[#*-17.612] +N9011Y[#*-3.523]Z[#*-17.727] +N9021Y[#*-5.523]Z[#*-18.046] +N9031Y[#*-6.523]Z[#*-18.271] +N9041Y[#*-8.523]Z[#*-18.779] +N9051Y[#*-10.523]Z[#*-19.463] +N9061Y[#*-11.523]Z[#*-19.838] +N9071Y[#*-13.523]Z[#*-20.713] +N9081Y[#*-14.523]Z[#*-21.231] +N9091Y[#*-15.523]Z[#*-21.765] +N9101Y[#*-16.523]Z[#*-22.374] +N9111Y[#*-17.523]Z[#*-22.975] +N9121Y[#*-19.023]Z[#*-23.843] +N9131Y[#*-19.523]Z[#*-24.168] +N9141Y[#*-20.023]Z[#*-24.39] +N9151Y[#*-20.523]Z[#*-24.546] +N9161Y[#*-21.023]Z[#*-24.679] +N9171Y[#*-22.023]Z[#*-24.764] +N9181Y[#*-23.523]Z[#*-24.67] +N9191Y[#*-24.523]Z[#*-24.53] +N9201Y[#*-25.523]Z[#*-24.411] +N9211Y[#*-26.523]Z[#*-24.318] +N9221Y[#*-27.523]Z[#*-24.257] +N9231Y[#*-28.523]Z[#*-24.205] +N9241Y[#*-30.523]Z[#*-24.082] +N9251Y[#*-31.523]Z[#*-24.022] +N9261Y[#*-32.523]Z[#*-24.012] +N9271Y[#*-33.523]Z[#*-24.063] +N9281Y[#*-34.523]Z[#*-24.148] +N9291Y[#*-35.523]Z[#*-24.247] +N9301Y[#*-36.523]Z[#*-24.376] +N9311Y[#*-37.023]Z[#*-24.472] +N9321Y[#*-37.523]Z[#*-24.597] +N9331Y[#*-38.023]Z[#*-24.767] +N9341Y[#*-38.523]Z[#*-24.98] +N9351Y[#*-39.523]Z[#*-25.446] +N9361Y[#*-40.023]Z[#*-25.73] +N9371Y[#*-40.523]Z[#*-26.067] +N9381Y[#*-40.773]Z[#*-26.279] +N9391Y[#*-41.023]Z[#*-26.535] +N9401Y[#*-41.523]Z[#*-27.196] +N9411Y[#*-42.023]Z[#*-27.897] +N9421Y[#*-42.273]Z[#*-28.385] +N9431Y[#*-42.773]Z[#*-29.629] +N9441Y[#*-42.898]Z[#*-29.974] +N9451Y[#*-42.96]Z[#*-30.238] +N9461Y[#*-43.015]Z[#*-30.481] +N9471Y[#*-43.023]Z[#*-30.5] +N9481Y[#*-50.523] +N9491Y[#*-53.] +N9501X[#*-4.528]Y[#*-53.293] +N9511X[#*-4.607]Y[#*-53.547] +N9521X[#*-4.731]Y[#*-53.762] +N9531X[#*-4.891]Y[#*-53.938] +N9541X[#*-5.08]Y[#*-54.074] +N9551X[#*-5.291]Y[#*-54.172] +N9561X[#*-5.517]Y[#*-54.23] +N9571X[#*-5.75]Y[#*-54.25] +N9581X[#*-5.983]Y[#*-54.23] +N9591X[#*-6.209]Y[#*-54.172] +N9601X[#*-6.426]Y[#*-54.07] +N9611X[#*-6.609]Y[#*-53.938] +N9621X[#*-6.769]Y[#*-53.762] +N9631X[#*-6.893]Y[#*-53.547] +N9641X[#*-6.972]Y[#*-53.293] +N9651X[#*-7.]Y[#*-53.] +N9661Y[#*-47.977] +N9671Y[#*-39.946] +N9681Y[#*-39.938]Z[#*-30.498] +N9691Y[#*-39.852]Z[#*-30.14] +N9701Y[#*-39.727]Z[#*-29.698] +N9711Y[#*-38.977]Z[#*-28.078] +N9721Y[#*-38.477]Z[#*-27.411] +N9731Y[#*-37.977]Z[#*-26.9] +N9741Y[#*-37.477]Z[#*-26.43] +N9751Y[#*-37.227]Z[#*-26.212] +N9761Y[#*-36.977]Z[#*-26.028] +N9771Y[#*-36.477]Z[#*-25.729] +N9781Y[#*-35.977]Z[#*-25.495] +N9791Y[#*-35.477]Z[#*-25.315] +N9801Y[#*-33.977]Z[#*-24.83] +N9811Y[#*-32.977]Z[#*-24.564] +N9821Y[#*-31.977]Z[#*-24.374] +N9831Y[#*-30.977]Z[#*-24.269] +N9841Y[#*-29.977]Z[#*-24.201] +N9851Y[#*-28.977]Z[#*-24.143] +N9861Y[#*-26.977]Z[#*-24.039] +N9871Y[#*-25.977]Z[#*-24.012] +N9881Y[#*-24.977]Z[#*-24.016] +N9891Y[#*-22.977]Z[#*-24.082] +N9901Y[#*-21.977]Z[#*-24.081] +N9911Y[#*-20.977]Z[#*-24.008] +N9921Y[#*-19.977]Z[#*-23.91] +N9931Y[#*-19.477]Z[#*-23.806] +N9941Y[#*-18.477]Z[#*-23.601] +N9951Y[#*-17.977]Z[#*-23.435] +N9961Y[#*-16.977]Z[#*-23.014] +N9971Y[#*-15.977]Z[#*-22.486] +N9981Y[#*-13.977]Z[#*-21.574] +N9991Y[#*-12.977]Z[#*-21.082] +N1Y[#*-10.977]Z[#*-20.245] +N11Y[#*-9.977]Z[#*-19.889] +N21Y[#*-8.977]Z[#*-19.548] +N31Y[#*-7.977]Z[#*-19.226] +N41Y[#*-5.977]Z[#*-18.716] +N51Y[#*-4.977]Z[#*-18.511] +N61Y[#*-2.977]Z[#*-18.186] +N71Y[#*-1.977]Z[#*-18.11] +N81Y[#*0.023]Z[#*-17.997] +N91Y[#*2.023]Z[#*-18.113] +N101Y[#*3.023]Z[#*-18.193] +N111Y[#*5.023]Z[#*-18.519] +N121Y[#*6.023]Z[#*-18.727] +N131Y[#*8.023]Z[#*-19.238] +N141Y[#*9.023]Z[#*-19.564] +N151Y[#*10.023]Z[#*-19.905] +N161Y[#*11.023]Z[#*-20.263] +N171Y[#*13.023]Z[#*-21.102] +N181Y[#*14.023]Z[#*-21.597] +N191Y[#*16.023]Z[#*-22.508] +N201Y[#*17.023]Z[#*-23.039] +N211Y[#*17.523]Z[#*-23.279] +N221Y[#*18.023]Z[#*-23.451] +N231Y[#*19.023]Z[#*-23.712] +N241Y[#*20.023]Z[#*-23.92] +N251Y[#*21.023]Z[#*-24.012] +N261Y[#*22.023]Z[#*-24.082] +N271Y[#*23.023] +N281Y[#*25.023]Z[#*-24.015] +N291Y[#*26.023]Z[#*-24.012] +N301Y[#*27.023]Z[#*-24.041] +N311Y[#*29.023]Z[#*-24.146] +N321Y[#*30.023]Z[#*-24.203] +N331Y[#*31.023]Z[#*-24.272] +N341Y[#*32.023]Z[#*-24.381] +N351Y[#*33.023]Z[#*-24.575] +N361Y[#*34.023]Z[#*-24.845] +N371Y[#*35.523]Z[#*-25.33] +N381Y[#*36.023]Z[#*-25.515] +N391Y[#*36.523]Z[#*-25.753] +N401Y[#*37.023]Z[#*-26.059] +N411Y[#*37.523]Z[#*-26.473] +N421Y[#*38.023]Z[#*-26.943] +N431Y[#*38.523]Z[#*-27.465] +N441Y[#*38.773]Z[#*-27.764] +N451Y[#*39.023]Z[#*-28.167] +N461Y[#*39.523]Z[#*-29.254] +N471Y[#*39.773]Z[#*-29.829] +N481Y[#*39.882]Z[#*-30.266] +N491Y[#*39.937]Z[#*-30.494] +N501Y[#*39.945]Z[#*-30.5] +N511Y[#*49.023] +N521Y[#*53.] +N531X[#*-7.028]Y[#*53.293] +N541X[#*-7.107]Y[#*53.547] +N551X[#*-7.231]Y[#*53.762] +N561X[#*-7.391]Y[#*53.937] +N571X[#*-7.58]Y[#*54.074] +N581X[#*-7.791]Y[#*54.172] +N591X[#*-8.017]Y[#*54.23] +N601X[#*-8.25]Y[#*54.25] +N611X[#*-8.483]Y[#*54.23] +N621X[#*-8.709]Y[#*54.172] +N631X[#*-8.92]Y[#*54.074] +N641X[#*-9.109]Y[#*53.937] +N651X[#*-9.269]Y[#*53.762] +N661X[#*-9.393]Y[#*53.547] +N671X[#*-9.472]Y[#*53.293] +N681X[#*-9.5]Y[#*53.] +N691Y[#*51.733] +N701Y[#*43.733] +N711Y[#*42.733] +N721Y[#*36.421] +N731Y[#*36.382] +N741Y[#*36.374]Z[#*-30.477] +N751Y[#*36.296]Z[#*-30.202] +N761Y[#*36.202]Z[#*-29.885] +N771Y[#*36.171]Z[#*-29.786] +N781Y[#*36.108]Z[#*-29.625] +N791Y[#*35.983]Z[#*-29.386] +N801Y[#*35.233]Z[#*-28.184] +N811Y[#*34.733]Z[#*-27.53] +N821Y[#*34.608]Z[#*-27.415] +N831Y[#*34.233]Z[#*-27.114] +N841Y[#*32.733]Z[#*-26.105] +N851Y[#*32.233]Z[#*-25.821] +N861Y[#*31.733]Z[#*-25.613] +N871Y[#*31.233]Z[#*-25.442] +N881Y[#*30.733]Z[#*-25.299] +N891Y[#*29.733]Z[#*-25.072] +N901Y[#*28.733]Z[#*-24.872] +N911Y[#*26.733]Z[#*-24.529] +N921Y[#*25.733]Z[#*-24.397] +N931Y[#*24.733]Z[#*-24.307] +N941Y[#*22.733]Z[#*-24.202] +N951Y[#*21.733]Z[#*-24.131] +N961Y[#*20.733]Z[#*-24.026] +N971Y[#*19.733]Z[#*-23.905] +N981Y[#*17.733]Z[#*-23.524] +N991Y[#*16.733]Z[#*-23.215] +N1001Y[#*15.733]Z[#*-22.882] +N1011Y[#*14.733]Z[#*-22.48] +N1021Y[#*13.733]Z[#*-22.038] +N1031Y[#*12.733]Z[#*-21.623] +N1041Y[#*10.733]Z[#*-20.846] +N1051Y[#*9.733]Z[#*-20.474] +N1061Y[#*7.733]Z[#*-19.81] +N1071Y[#*5.733]Z[#*-19.286] +N1081Y[#*4.733]Z[#*-19.075] +N1091Y[#*2.733]Z[#*-18.733] +N1101Y[#*2.233]Z[#*-18.693] +N1111Y[#*0.233]Z[#*-18.565] +N1121Y[#*-0.267]Z[#*-18.567] +N1131Y[#*-1.267]Z[#*-18.63] +N1141Y[#*-2.267]Z[#*-18.695] +N1151Y[#*-3.267]Z[#*-18.825] +N1161Y[#*-5.267]Z[#*-19.168] +N1171Y[#*-7.267]Z[#*-19.685] +N1181Y[#*-8.267]Z[#*-19.984] +N1191Y[#*-10.267]Z[#*-20.66] +N1201Y[#*-11.267]Z[#*-21.058] +N1211Y[#*-12.267]Z[#*-21.438] +N1221Y[#*-13.267]Z[#*-21.836] +N1231Y[#*-15.267]Z[#*-22.706] +N1241Y[#*-16.267]Z[#*-23.071] +N1251Y[#*-17.267]Z[#*-23.38] +N1261Y[#*-18.267]Z[#*-23.628] +N1271Y[#*-19.267]Z[#*-23.824] +N1281Y[#*-20.267]Z[#*-23.969] +N1291Y[#*-21.267]Z[#*-24.092] +N1301Y[#*-22.267]Z[#*-24.169] +N1311Y[#*-23.267]Z[#*-24.236] +N1321Y[#*-24.267]Z[#*-24.28] +N1331Y[#*-25.267]Z[#*-24.35] +N1341Y[#*-26.267]Z[#*-24.462] +N1351Y[#*-27.267]Z[#*-24.618] +N1361Y[#*-28.267]Z[#*-24.789] +N1371Y[#*-29.267]Z[#*-24.975] +N1381Y[#*-30.267]Z[#*-25.186] +N1391Y[#*-31.267]Z[#*-25.453] +N1401Y[#*-31.767]Z[#*-25.626] +N1411Y[#*-32.267]Z[#*-25.838] +N1421Y[#*-32.767]Z[#*-26.126] +N1431Y[#*-33.267]Z[#*-26.462] +N1441Y[#*-33.767]Z[#*-26.798] +N1451Y[#*-34.267]Z[#*-27.139] +N1461Y[#*-34.767]Z[#*-27.564] +N1471Y[#*-35.017]Z[#*-27.851] +N1481Y[#*-35.275]Z[#*-28.251] +N1491Y[#*-35.517]Z[#*-28.646] +N1501Y[#*-36.017]Z[#*-29.443] +N1511Y[#*-36.142]Z[#*-29.706] +N1521Y[#*-36.267]Z[#*-30.1] +N1531Y[#*-36.282]Z[#*-30.155] +N1541Y[#*-36.376]Z[#*-30.485] +N1551Y[#*-36.384]Z[#*-30.5] +N1561Y[#*-36.517] +N1571Y[#*-53.] +N1581X[#*-9.528]Y[#*-53.293] +N1591X[#*-9.607]Y[#*-53.547] +N1601X[#*-9.731]Y[#*-53.762] +N1611X[#*-9.891]Y[#*-53.938] +N1621X[#*-10.08]Y[#*-54.074] +N1631X[#*-10.291]Y[#*-54.172] +N1641X[#*-10.517]Y[#*-54.23] +N1651X[#*-10.75]Y[#*-54.25] +N1661X[#*-10.983]Y[#*-54.23] +N1671X[#*-11.209]Y[#*-54.172] +N1681X[#*-11.42]Y[#*-54.074] +N1691X[#*-11.609]Y[#*-53.938] +N1701X[#*-11.769]Y[#*-53.762] +N1711X[#*-11.893]Y[#*-53.547] +N1721X[#*-11.972]Y[#*-53.293] +N1731X[#*-12.]Y[#*-53.] +N1741Y[#*-50.29] +N1751Y[#*-48.29] +N1761Y[#*-45.29] +N1771Y[#*-34.29] +N1781Y[#*-32.266] +N1791Y[#*-32.258]Z[#*-30.497] +N1801Y[#*-32.227]Z[#*-30.416] +N1811Y[#*-32.165]Z[#*-30.253] +N1821Y[#*-31.852]Z[#*-29.568] +N1831Y[#*-31.79]Z[#*-29.458] +N1841Y[#*-31.29]Z[#*-28.844] +N1851Y[#*-30.79]Z[#*-28.287] +N1861Y[#*-30.29]Z[#*-27.796] +N1871Y[#*-29.79]Z[#*-27.391] +N1881Y[#*-29.29]Z[#*-27.086] +N1891Y[#*-28.79]Z[#*-26.843] +N1901Y[#*-28.29]Z[#*-26.625] +N1911Y[#*-27.29]Z[#*-26.221] +N1921Y[#*-26.29]Z[#*-25.856] +N1931Y[#*-25.29]Z[#*-25.537] +N1941Y[#*-24.29]Z[#*-25.305] +N1951Y[#*-21.29]Z[#*-24.785] +N1961Y[#*-19.29]Z[#*-24.341] +N1971Y[#*-18.29]Z[#*-24.088] +N1981Y[#*-17.29]Z[#*-23.865] +N1991Y[#*-16.29]Z[#*-23.55] +N2001Y[#*-15.29]Z[#*-23.216] +N2011Y[#*-11.29]Z[#*-21.665] +N2021Y[#*-10.29]Z[#*-21.291] +N2031Y[#*-9.29]Z[#*-20.93] +N2041Y[#*-8.29]Z[#*-20.592] +N2051Y[#*-7.29]Z[#*-20.265] +N2061Y[#*-5.29]Z[#*-19.724] +N2071Y[#*-4.29]Z[#*-19.517] +N2081Y[#*-3.29]Z[#*-19.336] +N2091Y[#*-2.29]Z[#*-19.187] +N2101Y[#*-0.29]Z[#*-19.05] +N2111Y[#*0.21]Z[#*-19.045] +N2121Y[#*2.21]Z[#*-19.182] +N2131Y[#*2.71]Z[#*-19.233] +N2141Y[#*4.71]Z[#*-19.594] +N2151Y[#*5.71]Z[#*-19.838] +N2161Y[#*6.71]Z[#*-20.111] +N2171Y[#*7.71]Z[#*-20.399] +N2181Y[#*9.71]Z[#*-21.076] +N2191Y[#*11.71]Z[#*-21.824] +N2201Y[#*14.71]Z[#*-22.992] +N2211Y[#*15.71]Z[#*-23.362] +N2221Y[#*16.71]Z[#*-23.687] +N2231Y[#*17.71]Z[#*-23.955] +N2241Y[#*19.71]Z[#*-24.434] +N2251Y[#*20.71]Z[#*-24.659] +N2261Y[#*21.71]Z[#*-24.856] +N2271Y[#*22.71]Z[#*-25.036] +N2281Y[#*23.71]Z[#*-25.202] +N2291Y[#*24.71]Z[#*-25.394] +N2301Y[#*25.71]Z[#*-25.659] +N2311Y[#*26.71]Z[#*-26.008] +N2321Y[#*27.71]Z[#*-26.382] +N2331Y[#*28.71]Z[#*-26.808] +N2341Y[#*29.21]Z[#*-27.045] +N2351Y[#*29.46]Z[#*-27.182] +N2361Y[#*29.71]Z[#*-27.337] +N2371Y[#*30.21]Z[#*-27.727] +N2381Y[#*30.71]Z[#*-28.205] +N2391Y[#*31.585]Z[#*-29.178] +N2401Y[#*31.71]Z[#*-29.338] +N2411Y[#*31.96]Z[#*-29.799] +N2421Y[#*32.179]Z[#*-30.291] +N2431Y[#*32.226]Z[#*-30.413] +N2441Y[#*32.257]Z[#*-30.494] +N2451Y[#*32.265]Z[#*-30.5] +N2461Y[#*34.71] +N2471Y[#*35.71] +N2481Y[#*41.71] +N2491Y[#*53.] +N2501Y[#*53.008] +N2511X[#*-12.028]Y[#*53.293] +N2521X[#*-12.107]Y[#*53.547] +N2531X[#*-12.231]Y[#*53.762] +N2541X[#*-12.391]Y[#*53.937] +N2551X[#*-12.58]Y[#*54.074] +N2561X[#*-12.791]Y[#*54.172] +N2571X[#*-13.017]Y[#*54.23] +N2581X[#*-13.25]Y[#*54.25] +N2591X[#*-13.483]Y[#*54.23] +N2601X[#*-13.709]Y[#*54.172] +N2611X[#*-13.92]Y[#*54.074] +N2621X[#*-14.109]Y[#*53.937] +N2631X[#*-14.269]Y[#*53.762] +N2641X[#*-14.393]Y[#*53.547] +N2651X[#*-14.472]Y[#*53.293] +N2661X[#*-14.5]Y[#*53.] +N2671Y[#*47.404] +N2681Y[#*44.404] +N2691Y[#*40.404] +N2701Y[#*34.404] +N2711Y[#*33.404] +N2721Y[#*28.404] +N2731Y[#*27.185] +N2741Y[#*27.162]Z[#*-30.498] +N2751Y[#*27.146]Z[#*-30.475] +N2761Y[#*26.654]Z[#*-29.768] +N2771Y[#*26.404]Z[#*-29.417] +N2781Y[#*26.154]Z[#*-29.151] +N2791Y[#*25.904]Z[#*-28.943] +N2801Y[#*25.404]Z[#*-28.605] +N2811Y[#*23.904]Z[#*-27.618] +N2821Y[#*23.404]Z[#*-27.307] +N2831Y[#*22.904]Z[#*-27.056] +N2841Y[#*22.404]Z[#*-26.852] +N2851Y[#*21.404]Z[#*-26.48] +N2861Y[#*20.404]Z[#*-26.055] +N2871Y[#*19.404]Z[#*-25.615] +N2881Y[#*18.404]Z[#*-25.162] +N2891Y[#*17.404]Z[#*-24.801] +N2901Y[#*16.904]Z[#*-24.636] +N2911Y[#*16.404]Z[#*-24.452] +N2921Y[#*15.404]Z[#*-23.963] +N2931Y[#*14.404]Z[#*-23.489] +N2941Y[#*13.404]Z[#*-23.028] +N2951Y[#*12.404]Z[#*-22.586] +N2961Y[#*11.404]Z[#*-22.167] +N2971Y[#*10.404]Z[#*-21.768] +N2981Y[#*8.404]Z[#*-20.994] +N2991Y[#*7.404]Z[#*-20.64] +N3001Y[#*6.404]Z[#*-20.331] +N3011Y[#*5.404]Z[#*-20.042] +N3021Y[#*4.404]Z[#*-19.797] +N3031Y[#*2.904]Z[#*-19.511] +N3041Y[#*2.404]Z[#*-19.429] +N3051Y[#*0.404]Z[#*-19.283] +N3061Y[#*-0.596]Z[#*-19.297] +N3071Y[#*-2.096]Z[#*-19.403] +N3081Y[#*-2.596]Z[#*-19.454] +N3091Y[#*-4.596]Z[#*-19.833] +N3101Y[#*-5.596]Z[#*-20.101] +N3111Y[#*-6.596]Z[#*-20.389] +N3121Y[#*-7.596]Z[#*-20.712] +N3131Y[#*-8.596]Z[#*-21.064] +N3141Y[#*-10.596]Z[#*-21.844] +N3151Y[#*-11.596]Z[#*-22.248] +N3161Y[#*-12.596]Z[#*-22.667] +N3171Y[#*-14.596]Z[#*-23.577] +N3181Y[#*-16.596]Z[#*-24.546] +N3191Y[#*-17.096]Z[#*-24.696] +N3201Y[#*-17.596]Z[#*-24.867] +N3211Y[#*-18.596]Z[#*-25.242] +N3221Y[#*-19.596]Z[#*-25.698] +N3231Y[#*-20.596]Z[#*-26.139] +N3241Y[#*-21.596]Z[#*-26.553] +N3251Y[#*-22.596]Z[#*-26.926] +N3261Y[#*-23.096]Z[#*-27.147] +N3271Y[#*-23.596]Z[#*-27.421] +N3281Y[#*-25.596]Z[#*-28.732] +N3291Y[#*-26.096]Z[#*-29.099] +N3301Y[#*-26.346]Z[#*-29.348] +N3311Y[#*-26.596]Z[#*-29.685] +N3321Y[#*-27.159]Z[#*-30.493] +N3331Y[#*-27.166]Z[#*-30.5] +N3341Y[#*-28.596] +N3351Y[#*-49.596] +N3361Y[#*-53.] +N3371X[#*-14.528]Y[#*-53.293] +N3381X[#*-14.607]Y[#*-53.547] +N3391X[#*-14.731]Y[#*-53.762] +N3401X[#*-14.891]Y[#*-53.938] +N3411X[#*-15.08]Y[#*-54.074] +N3421X[#*-15.291]Y[#*-54.172] +N3431X[#*-15.517]Y[#*-54.23] +N3441X[#*-15.75]Y[#*-54.25] +N3451X[#*-15.983]Y[#*-54.23] +N3461X[#*-16.209]Y[#*-54.172] +N3471X[#*-16.42]Y[#*-54.074] +N3481X[#*-16.609]Y[#*-53.938] +N3491X[#*-16.769]Y[#*-53.762] +N3501X[#*-16.893]Y[#*-53.547] +N3511X[#*-16.972]Y[#*-53.293] +N3521X[#*-17.]Y[#*-53.] +N3531Y[#*-52.514] +N3541Y[#*-33.514] +N3551Y[#*-24.514] +N3561Y[#*-21.092] +N3571Y[#*-21.014]Z[#*-30.403] +N3581Y[#*-20.514]Z[#*-29.729] +N3591Y[#*-20.014]Z[#*-29.158] +N3601Y[#*-19.514]Z[#*-28.749] +N3611Y[#*-18.514]Z[#*-27.893] +N3621Y[#*-18.014]Z[#*-27.432] +N3631Y[#*-17.514]Z[#*-27.066] +N3641Y[#*-16.764]Z[#*-26.575] +N3651Y[#*-16.514]Z[#*-26.366] +N3661Y[#*-16.014]Z[#*-25.809] +N3671Y[#*-15.514]Z[#*-25.378] +N3681Y[#*-14.514]Z[#*-24.555] +N3691Y[#*-14.014]Z[#*-24.133] +N3701Y[#*-13.514]Z[#*-23.725] +N3711Y[#*-13.014]Z[#*-23.379] +N3721Y[#*-11.514]Z[#*-22.459] +N3731Y[#*-10.514]Z[#*-21.8] +N3741Y[#*-10.014]Z[#*-21.52] +N3751Y[#*-9.514]Z[#*-21.257] +N3761Y[#*-9.014]Z[#*-21.039] +N3771Y[#*-8.514]Z[#*-20.843] +N3781Y[#*-7.514]Z[#*-20.425] +N3791Y[#*-7.014]Z[#*-20.229] +N3801Y[#*-6.264]Z[#*-19.982] +N3811Y[#*-6.053]Z[#*-19.913] +N3821Y[#*-6.022]Z[#*-19.903] +N3831Y[#*-6.014]Z[#*-12.363] +N3841Y[#*-5.967]Z[#*-11.562] +N3851Y[#*-5.904]Z[#*-10.677] +N3861Y[#*-5.858]Z[#*-10.325] +N3871Y[#*-5.826]Z[#*-10.152] +N3881Y[#*-5.818]Z[#*-10.112] +N3891Y[#*-5.639]Z[#*-9.286] +N3901Y[#*-5.514]Z[#*-8.765] +N3911Y[#*-5.264]Z[#*-8.079] +N3921Y[#*-5.014]Z[#*-7.332] +N3931Y[#*-4.764]Z[#*-6.818] +N3941Y[#*-4.514]Z[#*-6.361] +N3951Y[#*-4.139]Z[#*-5.75] +N3961Y[#*-4.076]Z[#*-5.656] +N3971Y[#*-4.014]Z[#*-5.569] +N3981Y[#*-3.764]Z[#*-5.292] +N3991Y[#*-3.639]Z[#*-5.182] +N4001Y[#*-3.514]Z[#*-5.088] +N4011Y[#*-3.014]Z[#*-4.783] +N4021Y[#*-2.514]Z[#*-4.54] +N4031Y[#*-2.014]Z[#*-4.327] +N4041Y[#*-1.514]Z[#*-4.162] +N4051Y[#*-0.514]Z[#*-3.947] +N4061Y[#*-0.264]Z[#*-3.913] +N4071Y[#*-0.014]Z[#*-3.906] +N4081Y[#*0.986]Z[#*-4.012] +N4091Y[#*1.236]Z[#*-4.044] +N4101Y[#*1.486]Z[#*-4.1] +N4111Y[#*1.986]Z[#*-4.294] +N4121Y[#*2.361]Z[#*-4.459] +N4131Y[#*2.471]Z[#*-4.507] +N4141Y[#*2.736]Z[#*-4.633] +N4151Y[#*2.986]Z[#*-4.79] +N4161Y[#*3.486]Z[#*-5.22] +N4171Y[#*3.986]Z[#*-5.678] +N4181Y[#*4.236]Z[#*-5.959] +N4191Y[#*4.486]Z[#*-6.321] +N4201Y[#*4.736]Z[#*-6.747] +N4211Y[#*4.986]Z[#*-7.217] +N4221Y[#*5.674]Z[#*-8.892] +N4231Y[#*5.892]Z[#*-9.623] +N4241Y[#*5.924]Z[#*-9.81] +N4251Y[#*5.955]Z[#*-10.251] +N4261Y[#*6.002]Z[#*-11.003] +N4271Y[#*6.01]Z[#*-11.14] +N4281Y[#*6.017]Z[#*-11.305] +N4291Y[#*6.033]Z[#*-12.064] +N4301Y[#*6.041]Z[#*-19.9] +N4311Y[#*6.486]Z[#*-20.047] +N4321Y[#*7.486]Z[#*-20.402] +N4331Y[#*8.486]Z[#*-20.824] +N4341Y[#*8.986]Z[#*-21.021] +N4351Y[#*9.486]Z[#*-21.238] +N4361Y[#*10.486]Z[#*-21.779] +N4371Y[#*11.486]Z[#*-22.434] +N4381Y[#*12.986]Z[#*-23.361] +N4391Y[#*13.486]Z[#*-23.703] +N4401Y[#*13.986]Z[#*-24.108] +N4411Y[#*14.486]Z[#*-24.535] +N4421Y[#*14.986]Z[#*-24.935] +N4431Y[#*15.986]Z[#*-25.782] +N4441Y[#*16.361]Z[#*-26.191] +N4451Y[#*16.424]Z[#*-26.263] +N4461Y[#*16.486]Z[#*-26.335] +N4471Y[#*16.736]Z[#*-26.557] +N4481Y[#*16.986]Z[#*-26.72] +N4491Y[#*17.486]Z[#*-27.047] +N4501Y[#*17.986]Z[#*-27.409] +N4511Y[#*18.486]Z[#*-27.867] +N4521Y[#*19.486]Z[#*-28.727] +N4531Y[#*19.986]Z[#*-29.134] +N4541Y[#*20.486]Z[#*-29.692] +N4551Y[#*20.986]Z[#*-30.366] +N4561Y[#*21.017]Z[#*-30.408] +N4571Y[#*21.088]Z[#*-30.499] +N4581Y[#*21.096] +N4591Y[#*39.486] +N4601Y[#*52.992] +N4611Y[#*53.] +N4621X[#*-17.028]Y[#*53.293] +N4631X[#*-17.107]Y[#*53.547] +N4641X[#*-17.231]Y[#*53.762] +N4651X[#*-17.391]Y[#*53.937] +N4661X[#*-17.58]Y[#*54.074] +N4671X[#*-17.791]Y[#*54.172] +N4681X[#*-18.017]Y[#*54.23] +N4691X[#*-18.25]Y[#*54.25] +N4701X[#*-18.483]Y[#*54.23] +N4711X[#*-18.709]Y[#*54.172] +N4721X[#*-18.92]Y[#*54.074] +N4731X[#*-19.109]Y[#*53.937] +N4741X[#*-19.269]Y[#*53.762] +N4751X[#*-19.393]Y[#*53.547] +N4761X[#*-19.472]Y[#*53.293] +N4771X[#*-19.5]Y[#*53.] +N4781Y[#*48.079] +N4791Y[#*29.079] +N4801Y[#*16.204] +N4811Y[#*16.173] +N4821Y[#*16.165]Z[#*-30.482] +N4831Y[#*15.954]Z[#*-29.986] +N4841Y[#*15.829]Z[#*-29.693] +N4851Y[#*15.579]Z[#*-29.263] +N4861Y[#*15.079]Z[#*-28.207] +N4871Y[#*14.079]Z[#*-26.21] +N4881Y[#*13.079]Z[#*-24.403] +N4891Y[#*12.579]Z[#*-23.626] +N4901Y[#*12.079]Z[#*-22.939] +N4911Y[#*11.579]Z[#*-22.118] +N4921Y[#*11.079]Z[#*-21.487] +N4931Y[#*10.829]Z[#*-21.258] +N4941Y[#*10.579]Z[#*-21.07] +N4951Y[#*9.954]Z[#*-20.63] +N4961Y[#*9.931]Z[#*-20.614] +N4971Y[#*9.876]Z[#*-20.303] +N4981Y[#*9.845]Z[#*-20.136] +N4991Y[#*9.837]Z[#*-20.092] +N5001Y[#*9.767]Z[#*-19.616] +N5011Y[#*9.759]Z[#*-19.465] +N5021Y[#*9.744]Z[#*-19.07] +N5031Y[#*9.736]Z[#*-18.921] +N5041Y[#*9.728]Z[#*-18.793] +N5051Y[#*9.712]Z[#*-18.576] +N5061Y[#*9.634]Z[#*-17.798] +N5071Y[#*9.611]Z[#*-17.602] +N5081Y[#*9.501]Z[#*-16.796] +N5091Y[#*9.47]Z[#*-16.588] +N5101Y[#*9.439]Z[#*-16.387] +N5111Y[#*9.361]Z[#*-15.937] +N5121Y[#*9.064]Z[#*-14.52] +N5131Y[#*8.954]Z[#*-14.036] +N5141Y[#*8.829]Z[#*-13.551] +N5151Y[#*8.579]Z[#*-12.716] +N5161Y[#*8.079]Z[#*-11.138] +N5171Y[#*7.329]Z[#*-9.06] +N5181Y[#*7.079]Z[#*-8.442] +N5191Y[#*6.579]Z[#*-7.47] +N5201Y[#*6.079]Z[#*-6.587] +N5211Y[#*5.579]Z[#*-5.847] +N5221Y[#*5.079]Z[#*-5.253] +N5231Y[#*4.579]Z[#*-4.748] +N5241Y[#*4.079]Z[#*-4.326] +N5251Y[#*3.579]Z[#*-4.012] +N5261Y[#*3.079]Z[#*-3.708] +N5271Y[#*2.579]Z[#*-3.496] +N5281Y[#*1.579]Z[#*-3.177] +N5291Y[#*1.079]Z[#*-3.089] +N5301Y[#*0.079]Z[#*-3.018] +N5311Y[#*-0.421]Z[#*-3.029] +N5321Y[#*-1.421]Z[#*-3.198] +N5331Y[#*-1.921]Z[#*-3.305] +N5341Y[#*-2.921]Z[#*-3.64] +N5351Y[#*-3.421]Z[#*-3.833] +N5361Y[#*-3.671]Z[#*-3.969] +N5371Y[#*-3.921]Z[#*-4.137] +N5381Y[#*-4.171]Z[#*-4.347] +N5391Y[#*-4.921]Z[#*-5.065] +N5401Y[#*-5.421]Z[#*-5.654] +N5411Y[#*-5.921]Z[#*-6.345] +N5421Y[#*-6.421]Z[#*-7.199] +N5431Y[#*-6.921]Z[#*-8.144] +N5441Y[#*-7.421]Z[#*-9.27] +N5451Y[#*-7.921]Z[#*-10.587] +N5461Y[#*-8.921]Z[#*-13.774] +N5471Y[#*-9.046]Z[#*-14.287] +N5481Y[#*-9.139]Z[#*-14.737] +N5491Y[#*-9.413]Z[#*-16.16] +N5501Y[#*-9.514]Z[#*-16.841] +N5511Y[#*-9.585]Z[#*-17.381] +N5521Y[#*-9.631]Z[#*-17.785] +N5531Y[#*-9.647]Z[#*-17.931] +N5541Y[#*-9.725]Z[#*-18.833] +N5551Y[#*-9.756]Z[#*-19.586] +N5561Y[#*-9.772]Z[#*-19.761] +N5571Y[#*-9.819]Z[#*-20.098] +N5581Y[#*-9.827]Z[#*-20.144] +N5591Y[#*-9.866]Z[#*-20.356] +N5601Y[#*-9.881]Z[#*-20.442] +N5611Y[#*-9.905]Z[#*-20.582] +N5621Y[#*-9.921]Z[#*-20.615] +N5631Y[#*-9.983]Z[#*-20.658] +N5641Y[#*-10.421]Z[#*-20.962] +N5651Y[#*-10.921]Z[#*-21.339] +N5661Y[#*-11.171]Z[#*-21.586] +N5671Y[#*-11.421]Z[#*-21.891] +N5681Y[#*-11.671]Z[#*-22.279] +N5691Y[#*-11.921]Z[#*-22.741] +N5701Y[#*-12.421]Z[#*-23.388] +N5711Y[#*-12.921]Z[#*-24.142] +N5721Y[#*-13.921]Z[#*-25.882] +N5731Y[#*-14.921]Z[#*-27.857] +N5741Y[#*-15.921]Z[#*-29.906] +N5751Y[#*-16.108]Z[#*-30.347] +N5761Y[#*-16.171]Z[#*-30.494] +N5771Y[#*-16.178]Z[#*-30.5] +N5781Y[#*-19.921] +N5791Y[#*-22.921] +N5801Y[#*-25.921] +N5811Y[#*-29.921] +N5821Y[#*-40.921] +N5831Y[#*-43.921] +N5841Y[#*-46.921] +N5851Y[#*-53.] +N5861X[#*-19.528]Y[#*-53.293] +N5871X[#*-19.607]Y[#*-53.547] +N5881X[#*-19.731]Y[#*-53.762] +N5891X[#*-19.891]Y[#*-53.938] +N5901X[#*-20.08]Y[#*-54.074] +N5911X[#*-20.291]Y[#*-54.172] +N5921X[#*-20.517]Y[#*-54.23] +N5931X[#*-20.75]Y[#*-54.25] +N5941X[#*-20.983]Y[#*-54.23] +N5951X[#*-21.209]Y[#*-54.172] +N5961X[#*-21.42]Y[#*-54.074] +N5971X[#*-21.609]Y[#*-53.938] +N5981X[#*-21.769]Y[#*-53.762] +N5991X[#*-21.893]Y[#*-53.547] +N6001X[#*-21.972]Y[#*-53.293] +N6011X[#*-22.]Y[#*-53.] +N6021Y[#*-50.555] +N6031Y[#*-38.555] +N6041Y[#*-26.555] +N6051Y[#*-20.555] +N6061Y[#*-18.555] +N6071Y[#*-14.688] +N6081Y[#*-14.68]Z[#*-30.482] +N6091Y[#*-14.665]Z[#*-30.389] +N6101Y[#*-14.626]Z[#*-30.156] +N6111Y[#*-14.618]Z[#*-30.11] +N6121Y[#*-14.595]Z[#*-29.97] +N6131Y[#*-14.571]Z[#*-29.832] +N6141Y[#*-14.563]Z[#*-29.792] +N6151Y[#*-14.555]Z[#*-29.755] +N6161Y[#*-14.055]Z[#*-27.768] +N6171Y[#*-13.555]Z[#*-26.211] +N6181Y[#*-12.555]Z[#*-23.683] +N6191Y[#*-12.055]Z[#*-22.389] +N6201Y[#*-11.805]Z[#*-21.791] +N6211Y[#*-11.555]Z[#*-21.113] +N6221Y[#*-11.055]Z[#*-19.281] +N6231Y[#*-10.555]Z[#*-17.354] +N6241Y[#*-9.555]Z[#*-14.264] +N6251Y[#*-8.555]Z[#*-11.895] +N6261Y[#*-8.055]Z[#*-10.826] +N6271Y[#*-7.805]Z[#*-10.325] +N6281Y[#*-7.555]Z[#*-9.651] +N6291Y[#*-7.055]Z[#*-7.998] +N6301Y[#*-6.805]Z[#*-7.28] +N6311Y[#*-6.305]Z[#*-6.083] +N6321Y[#*-6.055]Z[#*-5.574] +N6331Y[#*-5.555]Z[#*-4.716] +N6341Y[#*-5.055]Z[#*-4.009] +N6351Y[#*-4.555]Z[#*-3.427] +N6361Y[#*-4.055]Z[#*-2.89] +N6371Y[#*-3.805]Z[#*-2.67] +N6381Y[#*-3.555]Z[#*-2.495] +N6391Y[#*-3.055]Z[#*-2.246] +N6401Y[#*-2.055]Z[#*-1.895] +N6411Y[#*-1.555]Z[#*-1.747] +N6421Y[#*-0.555]Z[#*-1.593] +N6431Y[#*-0.055]Z[#*-1.546] +N6441Y[#*0.445]Z[#*-1.586] +N6451Y[#*1.32]Z[#*-1.711] +N6461Y[#*1.445]Z[#*-1.733] +N6471Y[#*1.945]Z[#*-1.885] +N6481Y[#*2.945]Z[#*-2.298] +N6491Y[#*3.195]Z[#*-2.418] +N6501Y[#*3.445]Z[#*-2.571] +N6511Y[#*3.945]Z[#*-2.945] +N6521Y[#*4.445]Z[#*-3.373] +N6531Y[#*4.945]Z[#*-3.921] +N6541Y[#*5.445]Z[#*-4.537] +N6551Y[#*5.945]Z[#*-5.382] +N6561Y[#*6.195]Z[#*-5.833] +N6571Y[#*6.445]Z[#*-6.365] +N6581Y[#*7.445]Z[#*-9.] +N6591Y[#*8.445]Z[#*-11.764] +N6601Y[#*9.445]Z[#*-14.079] +N6611Y[#*10.445]Z[#*-16.989] +N6621Y[#*10.945]Z[#*-18.808] +N6631Y[#*11.195]Z[#*-19.847] +N6641Y[#*11.445]Z[#*-20.762] +N6651Y[#*11.945]Z[#*-22.143] +N6661Y[#*12.945]Z[#*-24.635] +N6671Y[#*13.445]Z[#*-25.923] +N6681Y[#*13.945]Z[#*-27.421] +N6691Y[#*14.195]Z[#*-28.263] +N6701Y[#*14.32]Z[#*-28.777] +N6711Y[#*14.538]Z[#*-29.68] +N6721Y[#*14.601]Z[#*-30.008] +N6731Y[#*14.679]Z[#*-30.473] +N6741Y[#*14.687]Z[#*-30.5] +N6751Y[#*17.445] +N6761Y[#*18.445] +N6771Y[#*21.445] +N6781Y[#*25.445] +N6791Y[#*40.445] +N6801Y[#*47.445] +N6811Y[#*53.] +N6821Y[#*53.008] +N6831X[#*-22.028]Y[#*53.293] +N6841X[#*-22.107]Y[#*53.547] +N6851X[#*-22.231]Y[#*53.762] +N6861X[#*-22.391]Y[#*53.937] +N6871X[#*-22.58]Y[#*54.074] +N6881X[#*-22.791]Y[#*54.172] +N6891X[#*-23.017]Y[#*54.23] +N6901X[#*-23.25]Y[#*54.25] +N6911X[#*-23.483]Y[#*54.23] +N6921X[#*-23.709]Y[#*54.172] +N6931X[#*-23.92]Y[#*54.074] +N6941X[#*-24.109]Y[#*53.937] +N6951X[#*-24.269]Y[#*53.762] +N6961X[#*-24.393]Y[#*53.547] +N6971X[#*-24.472]Y[#*53.293] +N6981X[#*-24.5]Y[#*53.] +N6991Y[#*41.543] +N7001Y[#*34.543] +N7011Y[#*15.035] +N7021Y[#*15.027]Z[#*-30.463] +N7031Y[#*14.926]Z[#*-29.828] +N7041Y[#*14.871]Z[#*-29.55] +N7051Y[#*14.73]Z[#*-28.975] +N7061Y[#*14.543]Z[#*-28.203] +N7071Y[#*14.043]Z[#*-26.578] +N7081Y[#*13.543]Z[#*-25.286] +N7091Y[#*12.543]Z[#*-23.003] +N7101Y[#*11.543]Z[#*-20.762] +N7111Y[#*11.043]Z[#*-19.508] +N7121Y[#*10.793]Z[#*-18.723] +N7131Y[#*10.543]Z[#*-17.817] +N7141Y[#*9.543]Z[#*-13.949] +N7151Y[#*8.543]Z[#*-11.072] +N7161Y[#*7.543]Z[#*-8.642] +N7171Y[#*6.543]Z[#*-6.614] +N7181Y[#*6.043]Z[#*-5.712] +N7191Y[#*5.543]Z[#*-4.924] +N7201Y[#*5.043]Z[#*-4.236] +N7211Y[#*4.543]Z[#*-3.625] +N7221Y[#*4.043]Z[#*-3.172] +N7231Y[#*3.543]Z[#*-2.759] +N7241Y[#*3.043]Z[#*-2.441] +N7251Y[#*2.543]Z[#*-2.207] +N7261Y[#*2.043]Z[#*-1.99] +N7271Y[#*1.543]Z[#*-1.816] +N7281Y[#*1.418]Z[#*-1.788] +N7291Y[#*0.543]Z[#*-1.663] +N7301Y[#*0.043]Z[#*-1.611] +N7311Y[#*-0.473]Z[#*-1.645] +N7321Y[#*-0.582]Z[#*-1.665] +N7331Y[#*-0.957]Z[#*-1.749] +N7341Y[#*-1.457]Z[#*-1.866] +N7351Y[#*-1.957]Z[#*-2.011] +N7361Y[#*-2.457]Z[#*-2.246] +N7371Y[#*-2.957]Z[#*-2.507] +N7381Y[#*-3.457]Z[#*-2.801] +N7391Y[#*-3.957]Z[#*-3.19] +N7401Y[#*-4.457]Z[#*-3.599] +N7411Y[#*-4.707]Z[#*-3.853] +N7421Y[#*-4.957]Z[#*-4.167] +N7431Y[#*-5.457]Z[#*-4.825] +N7441Y[#*-5.957]Z[#*-5.58] +N7451Y[#*-6.457]Z[#*-6.454] +N7461Y[#*-7.457]Z[#*-8.436] +N7471Y[#*-8.457]Z[#*-10.792] +N7481Y[#*-9.457]Z[#*-13.623] +N7491Y[#*-9.957]Z[#*-15.471] +N7501Y[#*-10.457]Z[#*-17.549] +N7511Y[#*-10.957]Z[#*-19.34] +N7521Y[#*-11.207]Z[#*-20.02] +N7531Y[#*-11.957]Z[#*-21.767] +N7541Y[#*-12.457]Z[#*-22.834] +N7551Y[#*-13.457]Z[#*-25.078] +N7561Y[#*-13.957]Z[#*-26.321] +N7571Y[#*-14.457]Z[#*-27.859] +N7581Y[#*-14.895]Z[#*-29.655] +N7591Y[#*-14.926]Z[#*-29.831] +N7601Y[#*-15.028]Z[#*-30.466] +N7611Y[#*-15.035]Z[#*-30.5] +N7621Y[#*-15.207] +N7631Y[#*-24.457] +N7641Y[#*-25.457] +N7651Y[#*-34.457] +N7661Y[#*-40.457] +N7671Y[#*-53.] +N7681X[#*-24.528]Y[#*-53.293] +N7691X[#*-24.607]Y[#*-53.547] +N7701X[#*-24.731]Y[#*-53.762] +N7711X[#*-24.891]Y[#*-53.938] +N7721X[#*-25.08]Y[#*-54.074] +N7731X[#*-25.291]Y[#*-54.172] +N7741X[#*-25.517]Y[#*-54.23] +N7751X[#*-25.75]Y[#*-54.25] +N7761X[#*-25.983]Y[#*-54.23] +N7771X[#*-26.209]Y[#*-54.172] +N7781X[#*-26.426]Y[#*-54.07] +N7791X[#*-26.609]Y[#*-53.938] +N7801X[#*-26.769]Y[#*-53.762] +N7811X[#*-26.893]Y[#*-53.547] +N7821X[#*-26.972]Y[#*-53.293] +N7831X[#*-27.]Y[#*-53.] +N7841Y[#*-52.007] +N7851Y[#*-25.007] +N7861Y[#*-24.007] +N7871Y[#*-23.007] +N7881Y[#*-15.569] +N7891Y[#*-15.523] +N7901Y[#*-15.444]Z[#*-30.011] +N7911Y[#*-15.382]Z[#*-29.619] +N7921Y[#*-15.319]Z[#*-29.309] +N7931Y[#*-15.007]Z[#*-27.998] +N7941Y[#*-14.507]Z[#*-26.4] +N7951Y[#*-14.257]Z[#*-25.713] +N7961Y[#*-14.007]Z[#*-25.153] +N7971Y[#*-13.507]Z[#*-24.083] +N7981Y[#*-13.007]Z[#*-23.198] +N7991Y[#*-12.507]Z[#*-22.344] +N8001Y[#*-12.007]Z[#*-21.611] +N8011Y[#*-11.757]Z[#*-21.247] +N8021Y[#*-11.569]Z[#*-21.003] +N8031Y[#*-11.538]Z[#*-20.967] +N8041Y[#*-11.507]Z[#*-20.931] +N8051Y[#*-11.444]Z[#*-20.829] +N8061Y[#*-11.257]Z[#*-20.4] +N8071Y[#*-11.007]Z[#*-19.661] +N8081Y[#*-10.007]Z[#*-16.535] +N8091Y[#*-9.007]Z[#*-13.894] +N8101Y[#*-8.007]Z[#*-11.672] +N8111Y[#*-7.007]Z[#*-9.848] +N8121Y[#*-6.007]Z[#*-8.284] +N8131Y[#*-5.507]Z[#*-7.578] +N8141Y[#*-5.007]Z[#*-6.904] +N8151Y[#*-4.507]Z[#*-6.317] +N8161Y[#*-4.007]Z[#*-5.75] +N8171Y[#*-3.507]Z[#*-5.235] +N8181Y[#*-3.007]Z[#*-4.815] +N8191Y[#*-2.507]Z[#*-4.433] +N8201Y[#*-1.757]Z[#*-3.966] +N8211Y[#*-1.507]Z[#*-3.849] +N8221Y[#*-1.007]Z[#*-3.7] +N8231Y[#*-0.507]Z[#*-3.562] +N8241Y[#*-0.257]Z[#*-3.514] +N8251Y[#*-0.007]Z[#*-3.499] +N8261Y[#*0.493]Z[#*-3.556] +N8271Y[#*0.962]Z[#*-3.64] +N8281Y[#*0.993]Z[#*-3.646] +N8291Y[#*1.243]Z[#*-3.693] +N8301Y[#*1.493]Z[#*-3.769] +N8311Y[#*1.993]Z[#*-4.021] +N8321Y[#*2.493]Z[#*-4.298] +N8331Y[#*2.993]Z[#*-4.684] +N8341Y[#*3.493]Z[#*-5.107] +N8351Y[#*3.993]Z[#*-5.637] +N8361Y[#*4.993]Z[#*-6.815] +N8371Y[#*5.993]Z[#*-8.216] +N8381Y[#*6.993]Z[#*-9.825] +N8391Y[#*7.993]Z[#*-11.704] +N8401Y[#*8.993]Z[#*-13.896] +N8411Y[#*9.993]Z[#*-16.505] +N8421Y[#*10.493]Z[#*-18.03] +N8431Y[#*10.743]Z[#*-18.843] +N8441Y[#*11.243]Z[#*-20.346] +N8451Y[#*11.431]Z[#*-20.789] +N8461Y[#*11.493]Z[#*-20.91] +N8471Y[#*11.993]Z[#*-21.586] +N8481Y[#*12.493]Z[#*-22.32] +N8491Y[#*12.993]Z[#*-23.172] +N8501Y[#*13.493]Z[#*-24.058] +N8511Y[#*13.743]Z[#*-24.565] +N8521Y[#*13.993]Z[#*-25.123] +N8531Y[#*14.493]Z[#*-26.358] +N8541Y[#*14.743]Z[#*-27.108] +N8551Y[#*14.993]Z[#*-27.939] +N8561Y[#*15.212]Z[#*-28.866] +N8571Y[#*15.227]Z[#*-28.932] +N8581Y[#*15.306]Z[#*-29.252] +N8591Y[#*15.376]Z[#*-29.582] +N8601Y[#*15.431]Z[#*-29.925] +N8611Y[#*15.462]Z[#*-30.12] +N8621Y[#*15.517]Z[#*-30.462] +N8631Y[#*15.524]Z[#*-30.5] +N8641Y[#*15.743] +N8651Y[#*29.993] +N8661Y[#*40.993] +N8671Y[#*48.993] +N8681Y[#*52.993] +N8691X[#*-27.028]Y[#*53.286] +N8701X[#*-27.107]Y[#*53.54] +N8711X[#*-27.231]Y[#*53.755] +N8721X[#*-27.391]Y[#*53.932] +N8731X[#*-27.58]Y[#*54.069] +N8741X[#*-27.791]Y[#*54.167] +N8751X[#*-28.017]Y[#*54.226] +N8761X[#*-28.25]Y[#*54.247] +N8771X[#*-28.483]Y[#*54.228] +N8781X[#*-28.709]Y[#*54.17] +N8791X[#*-28.92]Y[#*54.073] +N8801X[#*-29.109]Y[#*53.936] +N8811X[#*-29.269]Y[#*53.761] +N8821X[#*-29.393]Y[#*53.547] +N8831X[#*-29.472]Y[#*53.293] +N8841X[#*-29.492]Y[#*53.083] +N8851X[#*-29.5]Y[#*53.] +N8861Y[#*49.237] +N8871Y[#*35.237] +N8881Y[#*30.237] +N8891Y[#*28.237] +N8901Y[#*17.237] +N8911Y[#*15.878] +N8921Y[#*15.87]Z[#*-30.457] +N8931Y[#*15.683]Z[#*-29.281] +N8941Y[#*15.636]Z[#*-29.036] +N8951Y[#*15.487]Z[#*-28.384] +N8961Y[#*15.237]Z[#*-27.322] +N8971Y[#*14.737]Z[#*-25.837] +N8981Y[#*14.487]Z[#*-25.252] +N8991Y[#*13.987]Z[#*-24.173] +N9001Y[#*13.737]Z[#*-23.73] +N9011Y[#*13.237]Z[#*-22.869] +N9021Y[#*12.737]Z[#*-22.13] +N9031Y[#*12.237]Z[#*-21.425] +N9041Y[#*11.737]Z[#*-20.826] +N9051Y[#*11.237]Z[#*-20.279] +N9061Y[#*10.987]Z[#*-20.071] +N9071Y[#*10.237]Z[#*-19.503] +N9081Y[#*9.737]Z[#*-19.228] +N9091Y[#*9.237]Z[#*-19.051] +N9101Y[#*9.175]Z[#*-19.036] +N9111Y[#*9.112]Z[#*-19.021] +N9121Y[#*9.05]Z[#*-18.948] +N9131Y[#*8.925]Z[#*-18.784] +N9141Y[#*8.737]Z[#*-18.528] +N9151Y[#*8.487]Z[#*-18.006] +N9161Y[#*7.737]Z[#*-16.575] +N9171Y[#*7.237]Z[#*-15.482] +N9181Y[#*6.237]Z[#*-13.677] +N9191Y[#*4.737]Z[#*-11.229] +N9201Y[#*4.237]Z[#*-10.475] +N9211Y[#*3.237]Z[#*-9.204] +N9221Y[#*2.737]Z[#*-8.696] +N9231Y[#*2.237]Z[#*-8.264] +N9241Y[#*1.737]Z[#*-7.875] +N9251Y[#*1.612]Z[#*-7.808] +N9261Y[#*1.487]Z[#*-7.751] +N9271Y[#*1.237]Z[#*-7.667] +N9281Y[#*0.987]Z[#*-7.589] +N9291Y[#*0.737]Z[#*-7.512] +N9301Y[#*0.237]Z[#*-7.381] +N9311Y[#*0.112]Z[#*-7.367] +N9321Y[#*-0.013]Z[#*-7.363] +N9331Y[#*-0.263]Z[#*-7.387] +N9341Y[#*-0.388]Z[#*-7.415] +N9351Y[#*-0.763]Z[#*-7.538] +N9361Y[#*-1.263]Z[#*-7.712] +N9371Y[#*-1.763]Z[#*-7.933] +N9381Y[#*-1.825]Z[#*-7.972] +N9391Y[#*-2.013]Z[#*-8.116] +N9401Y[#*-2.763]Z[#*-8.786] +N9411Y[#*-3.263]Z[#*-9.309] +N9421Y[#*-4.263]Z[#*-10.601] +N9431Y[#*-4.763]Z[#*-11.369] +N9441Y[#*-5.763]Z[#*-12.979] +N9451Y[#*-6.763]Z[#*-14.71] +N9461Y[#*-7.763]Z[#*-16.661] +N9471Y[#*-8.263]Z[#*-17.601] +N9481Y[#*-8.513]Z[#*-18.098] +N9491Y[#*-8.7]Z[#*-18.497] +N9501Y[#*-8.763]Z[#*-18.602] +N9511Y[#*-9.083]Z[#*-19.015] +N9521Y[#*-9.122]Z[#*-19.024] +N9531Y[#*-9.2]Z[#*-19.042] +N9541Y[#*-9.271]Z[#*-19.061] +N9551Y[#*-9.513]Z[#*-19.138] +N9561Y[#*-9.763]Z[#*-19.242] +N9571Y[#*-10.263]Z[#*-19.521] +N9581Y[#*-10.763]Z[#*-19.902] +N9591Y[#*-11.263]Z[#*-20.305] +N9601Y[#*-11.763]Z[#*-20.858] +N9611Y[#*-12.263]Z[#*-21.458] +N9621Y[#*-12.763]Z[#*-22.168] +N9631Y[#*-13.263]Z[#*-22.913] +N9641Y[#*-13.763]Z[#*-23.774] +N9651Y[#*-14.013]Z[#*-24.226] +N9661Y[#*-14.263]Z[#*-24.767] +N9671Y[#*-14.763]Z[#*-25.912] +N9681Y[#*-15.263]Z[#*-27.413] +N9691Y[#*-15.638]Z[#*-29.046] +N9701Y[#*-15.685]Z[#*-29.295] +N9711Y[#*-15.872]Z[#*-30.471] +N9721Y[#*-15.88]Z[#*-30.5] +N9731Y[#*-21.763] +N9741Y[#*-41.763] +N9751Y[#*-53.] +N9761X[#*-29.528]Y[#*-53.293] +N9771X[#*-29.607]Y[#*-53.547] +N9781X[#*-29.731]Y[#*-53.762] +N9791X[#*-29.891]Y[#*-53.938] +N9801X[#*-30.08]Y[#*-54.074] +N9811X[#*-30.291]Y[#*-54.172] +N9821X[#*-30.517]Y[#*-54.23] +N9831X[#*-30.75]Y[#*-54.25] +N9841X[#*-30.983]Y[#*-54.23] +N9851X[#*-31.209]Y[#*-54.172] +N9861X[#*-31.42]Y[#*-54.074] +N9871X[#*-31.609]Y[#*-53.938] +N9881X[#*-31.769]Y[#*-53.762] +N9891X[#*-31.893]Y[#*-53.547] +N9901X[#*-31.972]Y[#*-53.293] +N9911X[#*-32.]Y[#*-53.] +N9921Y[#*-44.682] +N9931Y[#*-33.682] +N9941Y[#*-30.682] +N9951Y[#*-25.682] +N9961Y[#*-16.12] +N9971Y[#*-16.034] +N9981Y[#*-15.839]Z[#*-29.25] +N9991Y[#*-15.823]Z[#*-29.15] +N1Y[#*-15.745]Z[#*-28.651] +N11Y[#*-15.682]Z[#*-28.324] +N21Y[#*-15.182]Z[#*-26.454] +N31Y[#*-14.932]Z[#*-25.761] +N41Y[#*-14.682]Z[#*-25.154] +N51Y[#*-14.182]Z[#*-24.098] +N61Y[#*-13.682]Z[#*-23.237] +N71Y[#*-13.182]Z[#*-22.464] +N81Y[#*-12.682]Z[#*-21.75] +N91Y[#*-12.182]Z[#*-21.121] +N101Y[#*-11.682]Z[#*-20.532] +N111Y[#*-10.932]Z[#*-19.866] +N121Y[#*-10.682]Z[#*-19.686] +N131Y[#*-10.182]Z[#*-19.423] +N141Y[#*-9.714]Z[#*-19.213] +N151Y[#*-9.682]Z[#*-19.201] +N161Y[#*-9.182]Z[#*-19.063] +N171Y[#*-8.807]Z[#*-19.016] +N181Y[#*-8.714]Z[#*-19.009] +N191Y[#*-8.526]Z[#*-18.996] +N201Y[#*-8.511]Z[#*-18.993] +N211Y[#*-8.182]Z[#*-18.721] +N221Y[#*-7.682]Z[#*-18.349] +N231Y[#*-7.182]Z[#*-18.031] +N241Y[#*-6.682]Z[#*-17.791] +N251Y[#*-6.182]Z[#*-17.604] +N261Y[#*-5.682]Z[#*-17.499] +N271Y[#*-5.182]Z[#*-17.43] +N281Y[#*-4.807] +N291Y[#*-4.714]Z[#*-17.435] +N301Y[#*-4.682]Z[#*-17.436] +N311Y[#*-4.284]Z[#*-17.462] +N321Y[#*-4.261]Z[#*-17.463] +N331Y[#*-4.245]Z[#*-17.417] +N341Y[#*-4.182]Z[#*-17.252] +N351Y[#*-3.932]Z[#*-16.662] +N361Y[#*-3.682]Z[#*-16.124] +N371Y[#*-3.182]Z[#*-15.243] +N381Y[#*-2.432]Z[#*-14.118] +N391Y[#*-2.182]Z[#*-13.772] +N401Y[#*-1.932]Z[#*-13.499] +N411Y[#*-1.682]Z[#*-13.297] +N421Y[#*-1.182]Z[#*-12.985] +N431Y[#*-0.932]Z[#*-12.85] +N441Y[#*-0.682]Z[#*-12.723] +N451Y[#*-0.432]Z[#*-12.608] +N461Y[#*-0.214]Z[#*-12.547] +N471Y[#*-0.057]Z[#*-12.529] +N481Y[#*0.068] +N491Y[#*0.286]Z[#*-12.56] +N501Y[#*0.818]Z[#*-12.779] +N511Y[#*1.255]Z[#*-13.004] +N521Y[#*1.693]Z[#*-13.273] +N531Y[#*1.818]Z[#*-13.366] +N541Y[#*2.318]Z[#*-13.912] +N551Y[#*2.818]Z[#*-14.641] +N561Y[#*3.318]Z[#*-15.418] +N571Y[#*3.818]Z[#*-16.348] +N581Y[#*4.068]Z[#*-16.906] +N591Y[#*4.271]Z[#*-17.415] +N601Y[#*4.286]Z[#*-17.462] +N611Y[#*4.318]Z[#*-17.459] +N621Y[#*4.818]Z[#*-17.432] +N631Y[#*5.068]Z[#*-17.427] +N641Y[#*5.318]Z[#*-17.441] +N651Y[#*5.818]Z[#*-17.523] +N661Y[#*6.068]Z[#*-17.573] +N671Y[#*6.318]Z[#*-17.641] +N681Y[#*6.818]Z[#*-17.849] +N691Y[#*7.318]Z[#*-18.101] +N701Y[#*7.818]Z[#*-18.434] +N711Y[#*8.193]Z[#*-18.722] +N721Y[#*8.255]Z[#*-18.773] +N731Y[#*8.31]Z[#*-18.818] +N741Y[#*8.474]Z[#*-18.954] +N751Y[#*8.489]Z[#*-18.968] +N761Y[#*8.513]Z[#*-18.989] +N771Y[#*8.521]Z[#*-18.995] +N781Y[#*8.818]Z[#*-19.017] +N791Y[#*9.193]Z[#*-19.065] +N801Y[#*9.318]Z[#*-19.091] +N811Y[#*9.818]Z[#*-19.255] +N821Y[#*10.068]Z[#*-19.37] +N831Y[#*10.302]Z[#*-19.477] +N841Y[#*10.818]Z[#*-19.778] +N851Y[#*11.318]Z[#*-20.202] +N861Y[#*11.818]Z[#*-20.676] +N871Y[#*12.318]Z[#*-21.287] +N881Y[#*12.818]Z[#*-21.943] +N891Y[#*13.318]Z[#*-22.658] +N901Y[#*13.818]Z[#*-23.458] +N911Y[#*14.068]Z[#*-23.874] +N921Y[#*14.318]Z[#*-24.365] +N931Y[#*14.568]Z[#*-24.879] +N941Y[#*15.068]Z[#*-26.1] +N951Y[#*15.318]Z[#*-26.956] +N961Y[#*15.7]Z[#*-28.402] +N971Y[#*15.755]Z[#*-28.716] +N981Y[#*15.818]Z[#*-29.115] +N991Y[#*15.997]Z[#*-30.272] +N1001Y[#*16.029]Z[#*-30.475] +N1011Y[#*16.036]Z[#*-30.5] +N1021Y[#*19.318] +N1031Y[#*32.318] +N1041Y[#*53.] +N1051X[#*-32.028]Y[#*53.293] +N1061X[#*-32.107]Y[#*53.547] +N1071X[#*-32.231]Y[#*53.762] +N1081X[#*-32.391]Y[#*53.937] +N1091X[#*-32.58]Y[#*54.074] +N1101X[#*-32.791]Y[#*54.172] +N1111X[#*-33.017]Y[#*54.23] +N1121X[#*-33.25]Y[#*54.25] +N1131X[#*-33.483]Y[#*54.23] +N1141X[#*-33.709]Y[#*54.172] +N1151X[#*-33.92]Y[#*54.074] +N1161X[#*-34.109]Y[#*53.937] +N1171X[#*-34.269]Y[#*53.762] +N1181X[#*-34.393]Y[#*53.547] +N1191X[#*-34.472]Y[#*53.293] +N1201X[#*-34.5]Y[#*53.] +N1211Y[#*52.86] +N1221Y[#*49.86] +N1231Y[#*45.86] +N1241Y[#*29.86] +N1251Y[#*19.86] +N1261Y[#*15.962] +N1271Y[#*15.938]Z[#*-30.388] +N1281Y[#*15.923]Z[#*-30.302] +N1291Y[#*15.915]Z[#*-30.256] +N1301Y[#*15.798]Z[#*-29.561] +N1311Y[#*15.735]Z[#*-29.199] +N1321Y[#*15.673]Z[#*-28.939] +N1331Y[#*15.36]Z[#*-27.758] +N1341Y[#*15.11]Z[#*-26.932] +N1351Y[#*14.86]Z[#*-26.22] +N1361Y[#*14.61]Z[#*-25.586] +N1371Y[#*14.36]Z[#*-25.029] +N1381Y[#*13.86]Z[#*-24.073] +N1391Y[#*13.36]Z[#*-23.222] +N1401Y[#*12.86]Z[#*-22.502] +N1411Y[#*11.86]Z[#*-21.168] +N1421Y[#*11.36]Z[#*-20.581] +N1431Y[#*10.86]Z[#*-20.124] +N1441Y[#*10.36]Z[#*-19.72] +N1451Y[#*9.86]Z[#*-19.434] +N1461Y[#*9.735]Z[#*-19.374] +N1471Y[#*9.61]Z[#*-19.32] +N1481Y[#*9.36]Z[#*-19.229] +N1491Y[#*8.86]Z[#*-19.091] +N1501Y[#*8.36]Z[#*-18.979] +N1511Y[#*7.86]Z[#*-18.878] +N1521Y[#*7.36]Z[#*-18.69] +N1531Y[#*6.86]Z[#*-18.426] +N1541Y[#*6.36]Z[#*-18.206] +N1551Y[#*5.86]Z[#*-18.057] +N1561Y[#*5.36]Z[#*-17.952] +N1571Y[#*4.86]Z[#*-17.898] +N1581Y[#*4.36] +N1591Y[#*4.11]Z[#*-17.918] +N1601Y[#*4.048]Z[#*-17.912] +N1611Y[#*3.86]Z[#*-17.863] +N1621Y[#*3.829]Z[#*-17.854] +N1631Y[#*3.61]Z[#*-17.789] +N1641Y[#*2.86]Z[#*-17.481] +N1651Y[#*2.36]Z[#*-17.324] +N1661Y[#*1.86]Z[#*-17.2] +N1671Y[#*1.36]Z[#*-17.113] +N1681Y[#*0.86]Z[#*-17.052] +N1691Y[#*0.36]Z[#*-17.005] +N1701Y[#*-0.14]Z[#*-16.995] +N1711Y[#*-0.64]Z[#*-17.026] +N1721Y[#*-1.14]Z[#*-17.086] +N1731Y[#*-1.64]Z[#*-17.161] +N1741Y[#*-2.14]Z[#*-17.272] +N1751Y[#*-2.64]Z[#*-17.402] +N1761Y[#*-3.14]Z[#*-17.585] +N1771Y[#*-3.64]Z[#*-17.781] +N1781Y[#*-4.015]Z[#*-17.873] +N1791Y[#*-4.054]Z[#*-17.883] +N1801Y[#*-4.093]Z[#*-17.879] +N1811Y[#*-4.109]Z[#*-17.877] +N1821Y[#*-4.171]Z[#*-17.87] +N1831Y[#*-4.64]Z[#*-17.849] +N1841Y[#*-5.14]Z[#*-17.876] +N1851Y[#*-5.64]Z[#*-17.946] +N1861Y[#*-6.14]Z[#*-18.08] +N1871Y[#*-6.64]Z[#*-18.269] +N1881Y[#*-7.14]Z[#*-18.512] +N1891Y[#*-7.577]Z[#*-18.772] +N1901Y[#*-7.609]Z[#*-18.787] +N1911Y[#*-7.655]Z[#*-18.802] +N1921Y[#*-8.14]Z[#*-18.94] +N1931Y[#*-8.265]Z[#*-18.961] +N1941Y[#*-8.64]Z[#*-19.034] +N1951Y[#*-9.14]Z[#*-19.163] +N1961Y[#*-9.64]Z[#*-19.331] +N1971Y[#*-10.14]Z[#*-19.58] +N1981Y[#*-10.39]Z[#*-19.74] +N1991Y[#*-10.64]Z[#*-19.929] +N2001Y[#*-11.14]Z[#*-20.375] +N2011Y[#*-11.64]Z[#*-20.893] +N2021Y[#*-12.14]Z[#*-21.514] +N2031Y[#*-12.64]Z[#*-22.185] +N2041Y[#*-13.14]Z[#*-22.904] +N2051Y[#*-13.64]Z[#*-23.691] +N2061Y[#*-14.14]Z[#*-24.564] +N2071Y[#*-14.64]Z[#*-25.647] +N2081Y[#*-15.14]Z[#*-27.019] +N2091Y[#*-15.39]Z[#*-27.87] +N2101Y[#*-15.734]Z[#*-29.191] +N2111Y[#*-15.741]Z[#*-29.231] +N2121Y[#*-15.757]Z[#*-29.32] +N2131Y[#*-15.913]Z[#*-30.246] +N2141Y[#*-15.921]Z[#*-30.293] +N2151Y[#*-15.952]Z[#*-30.466] +N2161Y[#*-15.96]Z[#*-30.5] +N2171Y[#*-31.14] +N2181Y[#*-32.14] +N2191Y[#*-37.14] +N2201Y[#*-50.14] +N2211Y[#*-53.] +N2221X[#*-34.528]Y[#*-53.293] +N2231X[#*-34.607]Y[#*-53.547] +N2241X[#*-34.731]Y[#*-53.762] +N2251X[#*-34.891]Y[#*-53.938] +N2261X[#*-35.08]Y[#*-54.074] +N2271X[#*-35.291]Y[#*-54.172] +N2281X[#*-35.517]Y[#*-54.23] +N2291X[#*-35.75]Y[#*-54.25] +N2301X[#*-35.983]Y[#*-54.23] +N2311X[#*-36.209]Y[#*-54.172] +N2321X[#*-36.42]Y[#*-54.074] +N2331X[#*-36.609]Y[#*-53.938] +N2341X[#*-36.769]Y[#*-53.762] +N2351X[#*-36.893]Y[#*-53.547] +N2361X[#*-36.972]Y[#*-53.293] +N2371X[#*-37.]Y[#*-53.] +N2381Y[#*-34.048] +N2391Y[#*-16.048] +N2401Y[#*-15.719] +N2411Y[#*-15.712]Z[#*-30.482] +N2421Y[#*-15.516]Z[#*-29.463] +N2431Y[#*-15.423]Z[#*-29.143] +N2441Y[#*-15.048]Z[#*-27.91] +N2451Y[#*-14.548]Z[#*-26.651] +N2461Y[#*-14.298]Z[#*-26.068] +N2471Y[#*-14.048]Z[#*-25.565] +N2481Y[#*-13.548]Z[#*-24.686] +N2491Y[#*-13.048]Z[#*-23.848] +N2501Y[#*-12.048]Z[#*-22.46] +N2511Y[#*-11.048]Z[#*-21.237] +N2521Y[#*-10.048]Z[#*-20.187] +N2531Y[#*-9.548]Z[#*-19.755] +N2541Y[#*-9.048]Z[#*-19.426] +N2551Y[#*-8.548]Z[#*-19.136] +N2561Y[#*-8.048]Z[#*-18.897] +N2571Y[#*-7.548]Z[#*-18.685] +N2581Y[#*-7.048]Z[#*-18.491] +N2591Y[#*-6.048]Z[#*-18.19] +N2601Y[#*-5.048]Z[#*-17.934] +N2611Y[#*-4.048]Z[#*-17.724] +N2621Y[#*-3.048]Z[#*-17.569] +N2631Y[#*-1.048]Z[#*-17.338] +N2641Y[#*-0.048]Z[#*-17.28] +N2651Y[#*0.452]Z[#*-17.295] +N2661Y[#*0.952]Z[#*-17.316] +N2671Y[#*1.952]Z[#*-17.414] +N2681Y[#*2.952]Z[#*-17.548] +N2691Y[#*3.952]Z[#*-17.725] +N2701Y[#*4.952]Z[#*-17.954] +N2711Y[#*5.952]Z[#*-18.215] +N2721Y[#*6.952]Z[#*-18.504] +N2731Y[#*7.452]Z[#*-18.686] +N2741Y[#*7.952]Z[#*-18.89] +N2751Y[#*8.452]Z[#*-19.115] +N2761Y[#*8.952]Z[#*-19.384] +N2771Y[#*9.452]Z[#*-19.696] +N2781Y[#*9.952]Z[#*-20.1] +N2791Y[#*10.452]Z[#*-20.612] +N2801Y[#*10.952]Z[#*-21.142] +N2811Y[#*11.952]Z[#*-22.35] +N2821Y[#*12.452]Z[#*-22.987] +N2831Y[#*12.952]Z[#*-23.706] +N2841Y[#*13.452]Z[#*-24.506] +N2851Y[#*13.952]Z[#*-25.398] +N2861Y[#*14.452]Z[#*-26.429] +N2871Y[#*14.952]Z[#*-27.611] +N2881Y[#*15.515]Z[#*-29.458] +N2891Y[#*15.577]Z[#*-29.76] +N2901Y[#*15.71]Z[#*-30.475] +N2911Y[#*15.718]Z[#*-30.5] +N2921Y[#*20.952] +N2931Y[#*30.952] +N2941Y[#*34.952] +N2951Y[#*53.] +N2961X[#*-37.028]Y[#*53.293] +N2971X[#*-37.107]Y[#*53.547] +N2981X[#*-37.231]Y[#*53.762] +N2991X[#*-37.391]Y[#*53.937] +N3001X[#*-37.58]Y[#*54.074] +N3011X[#*-37.791]Y[#*54.172] +N3021X[#*-38.017]Y[#*54.23] +N3031X[#*-38.25]Y[#*54.25] +N3041X[#*-38.483]Y[#*54.23] +N3051X[#*-38.709]Y[#*54.172] +N3061X[#*-38.92]Y[#*54.074] +N3071X[#*-39.109]Y[#*53.937] +N3081X[#*-39.269]Y[#*53.762] +N3091X[#*-39.393]Y[#*53.547] +N3101X[#*-39.472]Y[#*53.293] +N3111X[#*-39.5]Y[#*53.] +N3121Y[#*51.215] +N3131Y[#*22.215] +N3141Y[#*15.231] +N3151Y[#*15.223]Z[#*-30.491] +N3161Y[#*15.184]Z[#*-30.292] +N3171Y[#*15.09]Z[#*-29.815] +N3181Y[#*15.028]Z[#*-29.558] +N3191Y[#*14.465]Z[#*-27.841] +N3201Y[#*14.215]Z[#*-27.28] +N3211Y[#*13.715]Z[#*-26.208] +N3221Y[#*13.215]Z[#*-25.34] +N3231Y[#*12.715]Z[#*-24.539] +N3241Y[#*12.215]Z[#*-23.849] +N3251Y[#*11.215]Z[#*-22.606] +N3261Y[#*10.215]Z[#*-21.54] +N3271Y[#*9.715]Z[#*-21.077] +N3281Y[#*9.215]Z[#*-20.629] +N3291Y[#*8.215]Z[#*-19.881] +N3301Y[#*7.715]Z[#*-19.58] +N3311Y[#*7.215]Z[#*-19.294] +N3321Y[#*6.715]Z[#*-19.073] +N3331Y[#*5.715]Z[#*-18.754] +N3341Y[#*5.215]Z[#*-18.625] +N3351Y[#*4.215]Z[#*-18.39] +N3361Y[#*3.215]Z[#*-18.201] +N3371Y[#*2.215]Z[#*-18.054] +N3381Y[#*1.215]Z[#*-17.947] +N3391Y[#*0.215]Z[#*-17.896] +N3401Y[#*-0.785]Z[#*-17.926] +N3411Y[#*-1.785]Z[#*-17.998] +N3421Y[#*-2.785]Z[#*-18.128] +N3431Y[#*-3.785]Z[#*-18.318] +N3441Y[#*-4.785]Z[#*-18.525] +N3451Y[#*-5.785]Z[#*-18.766] +N3461Y[#*-6.285]Z[#*-18.913] +N3471Y[#*-6.785]Z[#*-19.109] +N3481Y[#*-7.285]Z[#*-19.331] +N3491Y[#*-7.785]Z[#*-19.611] +N3501Y[#*-8.285]Z[#*-19.915] +N3511Y[#*-9.285]Z[#*-20.678] +N3521Y[#*-9.785]Z[#*-21.131] +N3531Y[#*-10.285]Z[#*-21.6] +N3541Y[#*-10.785]Z[#*-22.141] +N3551Y[#*-11.785]Z[#*-23.292] +N3561Y[#*-12.785]Z[#*-24.65] +N3571Y[#*-13.285]Z[#*-25.451] +N3581Y[#*-13.785]Z[#*-26.357] +N3591Y[#*-14.285]Z[#*-27.426] +N3601Y[#*-14.535]Z[#*-28.047] +N3611Y[#*-14.785]Z[#*-28.81] +N3621Y[#*-15.035]Z[#*-29.582] +N3631Y[#*-15.097]Z[#*-29.849] +N3641Y[#*-15.222]Z[#*-30.485] +N3651Y[#*-15.23]Z[#*-30.5] +N3661Y[#*-15.285] +N3671Y[#*-21.785] +N3681Y[#*-30.785] +N3691Y[#*-42.785] +N3701Y[#*-44.785] +N3711Y[#*-46.785] +N3721Y[#*-49.785] +N3731Y[#*-53.] +N3741X[#*-39.53]Y[#*-53.299] +N3751X[#*-39.607]Y[#*-53.547] +N3761X[#*-39.731]Y[#*-53.762] +N3771X[#*-39.891]Y[#*-53.938] +N3781X[#*-40.08]Y[#*-54.074] +N3791X[#*-40.291]Y[#*-54.172] +N3801X[#*-40.517]Y[#*-54.23] +N3811X[#*-40.75]Y[#*-54.25] +N3821X[#*-40.983]Y[#*-54.23] +N3831X[#*-41.209]Y[#*-54.172] +N3841X[#*-41.42]Y[#*-54.074] +N3851X[#*-41.609]Y[#*-53.938] +N3861X[#*-41.769]Y[#*-53.762] +N3871X[#*-41.893]Y[#*-53.547] +N3881X[#*-41.972]Y[#*-53.293] +N3891X[#*-42.]Y[#*-53.] +N3901Y[#*-52.727] +N3911Y[#*-43.727] +N3921Y[#*-38.727] +N3931Y[#*-33.727] +N3941Y[#*-29.727] +N3951Y[#*-28.727] +N3961Y[#*-21.727] +N3971Y[#*-14.352] +N3981Y[#*-14.344]Z[#*-30.487] +N3991Y[#*-14.258]Z[#*-30.057] +N4001Y[#*-14.227]Z[#*-29.909] +N4011Y[#*-13.977]Z[#*-29.128] +N4021Y[#*-13.727]Z[#*-28.388] +N4031Y[#*-13.477]Z[#*-27.762] +N4041Y[#*-12.977]Z[#*-26.738] +N4051Y[#*-12.727]Z[#*-26.247] +N4061Y[#*-11.727]Z[#*-24.741] +N4071Y[#*-10.727]Z[#*-23.557] +N4081Y[#*-10.227]Z[#*-23.03] +N4091Y[#*-9.727]Z[#*-22.554] +N4101Y[#*-8.727]Z[#*-21.73] +N4111Y[#*-8.227]Z[#*-21.356] +N4121Y[#*-7.727]Z[#*-20.997] +N4131Y[#*-7.227]Z[#*-20.709] +N4141Y[#*-6.727]Z[#*-20.438] +N4151Y[#*-5.727]Z[#*-19.999] +N4161Y[#*-4.727]Z[#*-19.612] +N4171Y[#*-4.227]Z[#*-19.451] +N4181Y[#*-3.727]Z[#*-19.359] +N4191Y[#*-2.727]Z[#*-19.195] +N4201Y[#*-1.727]Z[#*-19.053] +N4211Y[#*-0.227]Z[#*-18.959] +N4221Y[#*0.273] +N4231Y[#*1.273]Z[#*-19.03] +N4241Y[#*2.273]Z[#*-19.124] +N4251Y[#*4.273]Z[#*-19.463] +N4261Y[#*4.773]Z[#*-19.608] +N4271Y[#*5.273]Z[#*-19.794] +N4281Y[#*5.773]Z[#*-20.007] +N4291Y[#*6.273]Z[#*-20.2] +N4301Y[#*6.773]Z[#*-20.448] +N4311Y[#*7.273]Z[#*-20.724] +N4321Y[#*8.273]Z[#*-21.381] +N4331Y[#*9.273]Z[#*-22.136] +N4341Y[#*9.773]Z[#*-22.593] +N4351Y[#*10.273]Z[#*-23.072] +N4361Y[#*10.773]Z[#*-23.61] +N4371Y[#*11.273]Z[#*-24.2] +N4381Y[#*11.773]Z[#*-24.806] +N4391Y[#*12.273]Z[#*-25.555] +N4401Y[#*12.773]Z[#*-26.327] +N4411Y[#*13.523]Z[#*-27.855] +N4421Y[#*13.773]Z[#*-28.524] +N4431Y[#*14.148]Z[#*-29.637] +N4441Y[#*14.21]Z[#*-29.843] +N4451Y[#*14.257]Z[#*-30.051] +N4461Y[#*14.343]Z[#*-30.482] +N4471Y[#*14.351]Z[#*-30.5] +N4481Y[#*15.273] +N4491Y[#*18.273] +N4501Y[#*24.273] +N4511Y[#*27.273] +N4521Y[#*31.273] +N4531Y[#*41.273] +N4541Y[#*46.273] +N4551Y[#*52.273] +N4561Y[#*53.] +N4571X[#*-42.028]Y[#*53.293] +N4581X[#*-42.107]Y[#*53.547] +N4591X[#*-42.231]Y[#*53.762] +N4601X[#*-42.391]Y[#*53.937] +N4611X[#*-42.58]Y[#*54.074] +N4621X[#*-42.791]Y[#*54.172] +N4631X[#*-43.017]Y[#*54.23] +N4641X[#*-43.25]Y[#*54.25] +N4651X[#*-43.483]Y[#*54.23] +N4661X[#*-43.709]Y[#*54.172] +N4671X[#*-43.92]Y[#*54.074] +N4681X[#*-44.109]Y[#*53.937] +N4691X[#*-44.269]Y[#*53.762] +N4701X[#*-44.393]Y[#*53.547] +N4711X[#*-44.472]Y[#*53.293] +N4721X[#*-44.5]Y[#*53.] +N4731Y[#*36.429] +N4741Y[#*35.429] +N4751Y[#*12.897] +N4761Y[#*12.89]Z[#*-30.468] +N4771Y[#*12.866]Z[#*-30.35] +N4781Y[#*12.835]Z[#*-30.214] +N4791Y[#*12.679]Z[#*-29.734] +N4801Y[#*12.366]Z[#*-28.81] +N4811Y[#*12.304]Z[#*-28.629] +N4821Y[#*12.179]Z[#*-28.348] +N4831Y[#*11.679]Z[#*-27.331] +N4841Y[#*11.429]Z[#*-26.867] +N4851Y[#*10.929]Z[#*-26.121] +N4861Y[#*10.429]Z[#*-25.416] +N4871Y[#*9.429]Z[#*-24.28] +N4881Y[#*8.429]Z[#*-23.386] +N4891Y[#*7.929]Z[#*-22.983] +N4901Y[#*6.929]Z[#*-22.31] +N4911Y[#*6.429]Z[#*-22.021] +N4921Y[#*5.429]Z[#*-21.531] +N4931Y[#*4.929]Z[#*-21.322] +N4941Y[#*3.929]Z[#*-20.991] +N4951Y[#*3.429]Z[#*-20.838] +N4961Y[#*2.429]Z[#*-20.639] +N4971Y[#*1.429]Z[#*-20.489] +N4981Y[#*0.429]Z[#*-20.418] +N4991Y[#*-0.571]Z[#*-20.428] +N5001Y[#*-1.571]Z[#*-20.497] +N5011Y[#*-2.071]Z[#*-20.568] +N5021Y[#*-2.571]Z[#*-20.667] +N5031Y[#*-3.571]Z[#*-20.875] +N5041Y[#*-4.571]Z[#*-21.206] +N5051Y[#*-5.571]Z[#*-21.605] +N5061Y[#*-6.571]Z[#*-22.092] +N5071Y[#*-7.071]Z[#*-22.409] +N5081Y[#*-7.571]Z[#*-22.745] +N5091Y[#*-8.571]Z[#*-23.514] +N5101Y[#*-9.071]Z[#*-23.954] +N5111Y[#*-9.571]Z[#*-24.439] +N5121Y[#*-10.571]Z[#*-25.592] +N5131Y[#*-11.071]Z[#*-26.334] +N5141Y[#*-11.571]Z[#*-27.113] +N5151Y[#*-12.071]Z[#*-28.13] +N5161Y[#*-12.571]Z[#*-29.416] +N5171Y[#*-12.821]Z[#*-30.164] +N5181Y[#*-12.899]Z[#*-30.5] +N5191Y[#*-14.571] +N5201Y[#*-23.571] +N5211Y[#*-38.571] +N5221Y[#*-45.571] +N5231Y[#*-48.571] +N5241Y[#*-53.] +N5251X[#*-44.528]Y[#*-53.293] +N5261X[#*-44.607]Y[#*-53.547] +N5271X[#*-44.731]Y[#*-53.762] +N5281X[#*-44.891]Y[#*-53.938] +N5291X[#*-45.08]Y[#*-54.074] +N5301X[#*-45.291]Y[#*-54.172] +N5311X[#*-45.517]Y[#*-54.23] +N5321X[#*-45.75]Y[#*-54.25] +N5331X[#*-45.983]Y[#*-54.23] +N5341X[#*-46.209]Y[#*-54.172] +N5351X[#*-46.42]Y[#*-54.074] +N5361X[#*-46.609]Y[#*-53.938] +N5371X[#*-46.769]Y[#*-53.762] +N5381X[#*-46.893]Y[#*-53.547] +N5391X[#*-46.972]Y[#*-53.293] +N5401X[#*-47.]Y[#*-53.] +N5411Y[#*-49.856] +N5421Y[#*-23.856] +N5431Y[#*-10.504] +N5441Y[#*-10.497]Z[#*-30.485] +N5451Y[#*-10.106]Z[#*-29.364] +N5461Y[#*-9.606]Z[#*-28.345] +N5471Y[#*-9.356]Z[#*-27.919] +N5481Y[#*-8.856]Z[#*-27.173] +N5491Y[#*-8.356]Z[#*-26.552] +N5501Y[#*-7.856]Z[#*-25.982] +N5511Y[#*-7.356]Z[#*-25.518] +N5521Y[#*-6.856]Z[#*-25.079] +N5531Y[#*-6.356]Z[#*-24.708] +N5541Y[#*-5.856]Z[#*-24.372] +N5551Y[#*-5.356]Z[#*-24.061] +N5561Y[#*-4.356]Z[#*-23.57] +N5571Y[#*-3.856]Z[#*-23.376] +N5581Y[#*-2.856]Z[#*-23.04] +N5591Y[#*-1.856]Z[#*-22.835] +N5601Y[#*-0.856]Z[#*-22.712] +N5611Y[#*-0.356]Z[#*-22.679] +N5621Y[#*0.144]Z[#*-22.664] +N5631Y[#*1.144]Z[#*-22.732] +N5641Y[#*1.644]Z[#*-22.793] +N5651Y[#*2.644]Z[#*-22.993] +N5661Y[#*3.144]Z[#*-23.135] +N5671Y[#*4.144]Z[#*-23.475] +N5681Y[#*5.144]Z[#*-23.957] +N5691Y[#*5.644]Z[#*-24.23] +N5701Y[#*6.644]Z[#*-24.903] +N5711Y[#*7.644]Z[#*-25.771] +N5721Y[#*8.144]Z[#*-26.31] +N5731Y[#*8.644]Z[#*-26.879] +N5741Y[#*9.144]Z[#*-27.602] +N5751Y[#*9.644]Z[#*-28.422] +N5761Y[#*10.144]Z[#*-29.452] +N5771Y[#*10.331]Z[#*-29.997] +N5781Y[#*10.496]Z[#*-30.482] +N5791Y[#*10.503]Z[#*-30.5] +N5801Y[#*33.144] +N5811Y[#*53.] +N5821X[#*-47.028]Y[#*53.293] +N5831X[#*-47.107]Y[#*53.547] +N5841X[#*-47.231]Y[#*53.762] +N5851X[#*-47.391]Y[#*53.937] +N5861X[#*-47.58]Y[#*54.074] +N5871X[#*-47.791]Y[#*54.172] +N5881X[#*-48.017]Y[#*54.23] +N5891X[#*-48.25]Y[#*54.25] +N5901X[#*-48.483]Y[#*54.23] +N5911X[#*-48.709]Y[#*54.172] +N5921X[#*-48.92]Y[#*54.074] +N5931X[#*-49.109]Y[#*53.937] +N5941X[#*-49.269]Y[#*53.762] +N5951X[#*-49.393]Y[#*53.547] +N5961X[#*-49.472]Y[#*53.293] +N5971X[#*-49.5]Y[#*53.] +N5981Y[#*51.241] +N5991Y[#*29.241] +N6001Y[#*27.241] +N6011Y[#*23.241] +N6021Y[#*19.241] +N6031Y[#*17.241] +N6041Y[#*5.733] +N6051Y[#*5.718]Z[#*-30.469] +N6061Y[#*5.616]Z[#*-30.289] +N6071Y[#*5.226]Z[#*-29.706] +N6081Y[#*5.116]Z[#*-29.569] +N6091Y[#*4.741]Z[#*-29.141] +N6101Y[#*4.241]Z[#*-28.672] +N6111Y[#*3.741]Z[#*-28.283] +N6121Y[#*3.241]Z[#*-27.953] +N6131Y[#*2.741]Z[#*-27.707] +N6141Y[#*2.241]Z[#*-27.502] +N6151Y[#*1.741]Z[#*-27.333] +N6161Y[#*1.241]Z[#*-27.226] +N6171Y[#*0.741]Z[#*-27.141] +N6181Y[#*0.241]Z[#*-27.107] +N6191Y[#*-0.259]Z[#*-27.108] +N6201Y[#*-0.759]Z[#*-27.142] +N6211Y[#*-1.259]Z[#*-27.229] +N6221Y[#*-1.759]Z[#*-27.339] +N6231Y[#*-2.259]Z[#*-27.508] +N6241Y[#*-2.759]Z[#*-27.716] +N6251Y[#*-3.259]Z[#*-27.963] +N6261Y[#*-3.759]Z[#*-28.294] +N6271Y[#*-4.259]Z[#*-28.687] +N6281Y[#*-4.759]Z[#*-29.162] +N6291Y[#*-5.259]Z[#*-29.756] +N6301Y[#*-5.634]Z[#*-30.316] +N6311Y[#*-5.735]Z[#*-30.5] +N6321Y[#*-8.759] +N6331Y[#*-37.759] +N6341Y[#*-48.759] +N6351Y[#*-53.] +N6361X[#*-49.528]Y[#*-53.293] +N6371X[#*-49.607]Y[#*-53.547] +N6381X[#*-49.731]Y[#*-53.762] +N6391X[#*-49.797]Y[#*-53.835] +N6401X[#*-49.891]Y[#*-53.938] +N6411X[#*-50.08]Y[#*-54.074] +N6421X[#*-50.291]Y[#*-54.172] +N6431X[#*-50.517]Y[#*-54.23] +N6441X[#*-50.75]Y[#*-54.25] +N6451X[#*-50.983]Y[#*-54.23] +N6461X[#*-51.209]Y[#*-54.172] +N6471X[#*-51.42]Y[#*-54.074] +N6481X[#*-51.605]Y[#*-53.941] +N6491X[#*-51.769]Y[#*-53.762] +N6501X[#*-51.893]Y[#*-53.547] +N6511X[#*-51.972]Y[#*-53.293] +N6521X[#*-52.]Y[#*-53.] +N6531Y[#*-45.473] +N6541Y[#*-39.473] +N6551Y[#*-18.473] +N6561Y[#*-15.473] +N6571Y[#*-9.473] +N6581Y[#*-3.473] +N6591Y[#*6.527] +N6601Y[#*17.527] +N6611Y[#*20.527] +N6621Y[#*21.527] +N6631Y[#*26.527] +N6641Y[#*30.527] +N6651Y[#*47.527] +N6661Y[#*50.527] +N6671Y[#*53.] +N6681Y[#*53.26]F[#*225] +N6691Y[#*53.264] +N6701Y[#*53.277]Z[#*-30.499] +N6711Y[#*53.555]Z[#*-30.471] +N6721Y[#*53.686]Z[#*-30.448] +N6731Y[#*53.947]Z[#*-30.387] +N6741Y[#*54.209]Z[#*-30.3] +N6751Y[#*54.471]Z[#*-30.185] +N6761Y[#*54.732]Z[#*-30.039] +N6771Y[#*54.994]Z[#*-29.852] +N6781Y[#*55.125]Z[#*-29.742] +N6791Y[#*55.387]Z[#*-29.477] +N6801Y[#*55.518]Z[#*-29.32] +N6811Y[#*55.648]Z[#*-29.133] +N6821Y[#*55.779]Z[#*-28.91] +N6831Y[#*55.91]Z[#*-28.63] +N6841Y[#*56.008]Z[#*-28.344] +N6851Y[#*56.025]Z[#*-28.283] +N6861Y[#*56.056]Z[#*-28.167] +N6871Y[#*56.061]Z[#*-28.146] +N6881Y[#*56.105]Z[#*-27.894] +N6891Y[#*56.11]Z[#*-27.838] +N6901Y[#*56.128]Z[#*-27.634] +N6911G0Z[#*10.] +N6931M9 +N6941M2 + + + + + diff --git a/nc_files/3dtest.ngc b/nc_files/3dtest.ngc new file mode 100644 index 00000000000..2f96b92eac5 --- /dev/null +++ b/nc_files/3dtest.ngc @@ -0,0 +1,54 @@ +n099 (This is a test plot nc program to be run on backplot) +n100 (Author Ray Henry 10-Feb-2000) +n101 g20 +n102 g0 x0 y0 z0 f30 +n103 x1 y1(start xy circle) +n104 g17 g02 i.5 j.5 +n106 g0 z.1 (add xy lettering) +n107 y1.75 +n108 z0 +n109 g1 y1.25 x1.4 +n110 y1.5 x1.2 +n111 y1.25 x1 +n112 y1.75 x1.4 +n113 g0 z.1 +n114 y1.75 x1.6 +n115 z0 +n116 g1 y1.5 x1.8 +n117 y1.75 x2 +n118 y1.5 x1.8 +n119 y1.25 +n120 g0 x0 y0 z0 +n121 x1 z1(start xz circle) +n122 g18 g02 i.5 k.5 +n124 g0 y.1 (add xz lettering) +n125 z1.75 +n126 y0 +n127 g1 z1.25 x1.4 +n128 z1.5 x1.2 +n129 z1.25 x1 +n130 z1.75 x1.4 +n131 g0 y.1 +n132 z1.75 x1.6 +n133 y0 +n134 g1 x2 +n135 z1.25 x1.6 +n136 x2 +n137 g0 x0 y0 z0 +n138 y1 z1 (start yz circle) +n139 g19 g02 j.5 k.5 +n141 g0 x.1 (add yz lettering) +n142 z1.75 +n143 x0 +n144 g1 z1.5 y1.2 +n145 z1.75 y1.4 +n146 z1.5 y1.2 +n147 z1.25 +n148 g0 x.1 +n149 z1.75 y1.6 +n150 x0 +n151 g1 y2 +n152 z1.25 y1.6 +n153 y2 +n154 g0 x0 y0 z0 +n155 m2 diff --git a/nc_files/M101 b/nc_files/M101 new file mode 100755 index 00000000000..9d2eb115f18 --- /dev/null +++ b/nc_files/M101 @@ -0,0 +1,22 @@ +#!/bin/sh + +# M101 in your G-code program will run the Linux commands in this +# shell script "batch" file, passing the P and Q variables as command +# line arguments. + +# give the command line arguments descriptive names +P=$1 +Q=$2 + +MCMD=$(readlink -nf "$0") +MNAME=$(basename "$MCMD") + +echo +echo "Example for User M-code invocation:" +echo "M-code File: $MCMD" +echo "$MNAME P$P Q$Q" + + +# if a M1nn command exits with nonzero status, +# the G-code program exits. So always exit 0. +exit 0 diff --git a/nc_files/M102.c b/nc_files/M102.c new file mode 100644 index 00000000000..191436f49ed --- /dev/null +++ b/nc_files/M102.c @@ -0,0 +1,29 @@ +#include + +/* + Compile this with "gcc M102.c -o M102" to build an M102 executable + program in the emc/programs/ directory. M102 in your G-code program + will execute this code, passing the P and Q variables as command + line arguments. + */ + +int main(int argc, char *argv[]) +{ + double p = 0.0, q = 0.0; + + /* process the P and Q command line args we will be given */ + if (argc > 1) { + sscanf(argv[1], "%lf", &p); + } + if (argc > 2) { + sscanf(argv[2], "%lf", &q); + } + + /* put your code here */ + + printf("M102 P%f Q%f: put your code here\n", p, q); + + return 0; +} + + diff --git a/nc_files/arcspiral.ngc b/nc_files/arcspiral.ngc new file mode 100644 index 00000000000..e2e5aab5339 --- /dev/null +++ b/nc_files/arcspiral.ngc @@ -0,0 +1,1008 @@ +g20 g64 +s3400 m3 +g0z1 +g0x0y0z1 +g0 x1.724638 y-1.012731 +g1z-.1f24 +g1 x1.724638 y-1.012731 +g2 r1.997999 x1.613302 y-1.178668 +r1.996000 x1.486083 y-1.332506 +r1.994000 x1.344282 y-1.472733 +r1.992000 x1.189344 y-1.597975 +r1.990000 x1.022843 y-1.707013 +r1.988000 x0.846464 y-1.798789 +r1.986000 x0.661990 y-1.872422 +r1.984000 x0.471277 y-1.927214 +r1.982000 x0.276244 y-1.962655 +r1.980000 x0.078845 y-1.978430 +r1.978000 x-0.118942 y-1.974421 +r1.976000 x-0.315142 y-1.950708 +r1.974000 x-0.507799 y-1.907568 +r1.972000 x-0.694996 y-1.845471 +r1.970000 x-0.874875 y-1.765076 +r1.968000 x-1.045656 y-1.667222 +r1.966000 x-1.205650 y-1.552921 +r1.964000 x-1.353282 y-1.423350 +r1.962000 x-1.487103 y-1.279832 +r1.960000 x-1.605805 y-1.123828 +r1.958000 x-1.708233 y-0.956924 +r1.956001 x-1.793399 y-0.780806 +r1.954000 x-1.860485 y-0.597253 +r1.952000 x-1.908861 y-0.408112 +r1.950000 x-1.938080 y-0.215284 +r1.948000 x-1.947890 y-0.020702 +r1.946000 x-1.938233 y0.173687 +r1.944000 x-1.909246 y0.365943 +r1.942000 x-1.861258 y0.554151 +r1.940000 x-1.794786 y0.736439 +r1.938000 x-1.710533 y0.910999 +r1.936000 x-1.609377 y1.076105 +r1.934000 x-1.492362 y1.230126 +r1.932000 x-1.360690 y1.371549 +r1.930000 x-1.215706 y1.498986 +r1.928000 x-1.058886 y1.611194 +r1.926000 x-0.891819 y1.707084 +r1.924000 x-0.716195 y1.785733 +r1.922000 x-0.533785 y1.846390 +r1.919999 x-0.346426 y1.888488 +r1.918000 x-0.155999 y1.911645 +r1.916000 x0.035589 y1.915669 +r1.914000 x0.226423 y1.900560 +r1.912000 x0.414597 y1.866508 +r1.910000 x0.598240 y1.813893 +r1.908000 x0.775525 y1.743280 +r1.906000 x0.944697 y1.655410 +r1.904000 x1.104083 y1.551198 +r1.902000 x1.252112 y1.431719 +r1.900000 x1.387330 y1.298197 +r1.898000 x1.508413 y1.151996 +r1.896000 x1.614182 y0.994602 +r1.893999 x1.703613 y0.827609 +r1.892000 x1.775848 y0.652707 +r1.890000 x1.830202 y0.471658 +r1.888000 x1.866169 y0.286284 +r1.886000 x1.883429 y0.098443 +r1.884000 x1.881850 y-0.089983 +r1.882000 x1.861487 y-0.277110 +r1.880000 x1.822584 y-0.461074 +r1.877999 x1.765567 y-0.640043 +r1.876000 x1.691046 y-0.812243 +r1.874000 x1.599802 y-0.975966 +r1.872000 x1.492781 y-1.129597 +r1.870000 x1.371085 y-1.271623 +r1.868000 x1.235962 y-1.400651 +r1.866000 x1.088788 y-1.515420 +r1.864000 x0.931060 y-1.614814 +r1.861999 x0.764375 y-1.697873 +r1.860000 x0.590417 y-1.763805 +r1.858000 x0.410939 y-1.811986 +r1.856000 x0.227744 y-1.841974 +r1.854000 x0.042669 y-1.853509 +r1.852000 x-0.142432 y-1.846515 +r1.850000 x-0.325712 y-1.821102 +r1.848000 x-0.505345 y-1.777563 +r1.846000 x-0.679544 y-1.716373 +r1.844000 x-0.846583 y-1.638180 +r1.841999 x-1.004807 y-1.543802 +r1.840000 x-1.152658 y-1.434218 +r1.838000 x-1.288680 y-1.310553 +r1.836000 x-1.411541 y-1.174073 +r1.834000 x-1.520043 y-1.026170 +r1.832000 x-1.613134 y-0.868344 +r1.830000 x-1.689918 y-0.702194 +r1.828000 x-1.749664 y-0.529396 +r1.826000 x-1.791812 y-0.351691 +r1.824000 x-1.815979 y-0.170864 +r1.822000 x-1.821965 y0.011273 +r1.820000 x-1.809749 y0.192897 +r1.818000 x-1.779492 y0.372198 +r1.816000 x-1.731538 y0.547388 +r1.814000 x-1.666402 y0.716728 +r1.812000 x-1.584774 y0.878541 +r1.810000 x-1.487506 y1.031226 +r1.808000 x-1.375602 y1.173279 +r1.806000 x-1.250213 y1.303305 +r1.804000 x-1.112620 y1.420033 +r1.802000 x-0.964225 y1.522325 +r1.800000 x-0.806533 y1.609194 +r1.798000 x-0.641139 y1.679805 +r1.796000 x-0.469712 y1.733490 +r1.794000 x-0.293977 y1.769750 +r1.792000 x-0.115699 y1.788261 +r1.790000 x0.063336 y1.788879 +r1.788000 x0.241340 y1.771637 +r1.786000 x0.416536 y1.736748 +r1.784000 x0.587182 y1.684599 +r1.782000 x0.751585 y1.615749 +r1.780000 x0.908115 y1.530924 +r1.778000 x1.055229 y1.431005 +r1.776000 x1.191477 y1.317026 +r1.774000 x1.315525 y1.190155 +r1.771999 x1.426160 y1.051689 +r1.770000 x1.522309 y0.903036 +r1.768000 x1.603044 y0.745704 +r1.766000 x1.667593 y0.581283 +r1.764000 x1.715349 y0.411431 +r1.762000 x1.745872 y0.237856 +r1.760000 x1.758897 y0.062301 +r1.758000 x1.754334 y-0.113478 +r1.756000 x1.732268 y-0.287724 +r1.754000 x1.692958 y-0.458702 +r1.752000 x1.636838 y-0.624711 +r1.750000 x1.564506 y-0.784105 +r1.748000 x1.476720 y-0.935308 +r1.746000 x1.374394 y-1.076828 +r1.744000 x1.258581 y-1.207274 +r1.742000 x1.130469 y-1.325369 +r1.740000 x0.991366 y-1.429963 +r1.738000 x0.842685 y-1.520041 +r1.736000 x0.685934 y-1.594738 +r1.734000 x0.522696 y-1.653344 +r1.732000 x0.354616 y-1.695309 +r1.730000 x0.183384 y-1.720253 +r1.728000 x0.010717 y-1.727967 +r1.726000 x-0.161658 y-1.718413 +r1.724000 x-0.332020 y-1.691727 +r1.722000 x-0.498673 y-1.648214 +r1.720000 x-0.659961 y-1.588349 +r1.718000 x-0.814287 y-1.512766 +r1.716000 x-0.960124 y-1.422258 +r1.713999 x-1.096037 y-1.317762 +r1.712001 x-1.220693 y-1.200356 +r1.710000 x-1.332871 y-1.071240 +r1.708000 x-1.431481 y-0.931732 +r1.706000 x-1.515571 y-0.783250 +r1.704000 x-1.584335 y-0.627296 +r1.702000 x-1.637121 y-0.465445 +r1.700000 x-1.673440 y-0.299329 +r1.698000 x-1.692969 y-0.130614 +r1.696000 x-1.695551 y0.039007 +r1.694000 x-1.681202 y0.207840 +r1.692000 x-1.650103 y0.374199 +r1.690000 x-1.602605 y0.536430 +r1.688000 x-1.539221 y0.692923 +r1.686000 x-1.460622 y0.842128 +r1.684000 x-1.367628 y0.982573 +r1.682000 x-1.261202 y1.112876 +r1.680000 x-1.142439 y1.231760 +r1.678000 x-1.012554 y1.338065 +r1.676001 x-0.872871 y1.430760 +r1.674000 x-0.724806 y1.508951 +r1.672000 x-0.569860 y1.571892 +r1.670000 x-0.409595 y1.618991 +r1.668000 x-0.245625 y1.649816 +r1.666001 x-0.079596 y1.664098 +r1.664000 x0.086830 y1.661733 +r1.662000 x0.251990 y1.642786 +r1.660000 x0.414237 y1.607485 +r1.658000 x0.571958 y1.556222 +r1.656000 x0.723590 y1.489548 +r1.654000 x0.867632 y1.408166 +r1.652000 x1.002666 y1.312922 +r1.650000 x1.127364 y1.204803 +r1.648000 x1.240506 y1.084919 +r1.646000 x1.340990 y0.954495 +r1.644000 x1.427844 y0.814860 +r1.642000 x1.500234 y0.667430 +r1.640000 x1.557471 y0.513695 +r1.638000 x1.599022 y0.355207 +r1.636000 x1.624509 y0.193560 +r1.634000 x1.633718 y0.030376 +r1.632000 x1.626595 y-0.132713 +r1.629999 x1.603252 y-0.294077 +r1.628000 x1.563963 y-0.452111 +r1.626000 x1.509157 y-0.605244 +r1.624000 x1.439422 y-0.751958 +r1.622001 x1.355489 y-0.890806 +r1.620000 x1.258231 y-1.020419 +r1.618000 x1.148654 y-1.139526 +r1.616000 x1.027880 y-1.246964 +r1.614000 x0.897145 y-1.341688 +r1.612000 x0.757777 y-1.422785 +r1.610000 x0.611191 y-1.489478 +r1.608000 x0.458867 y-1.541138 +r1.606000 x0.302341 y-1.577284 +r1.604000 x0.143186 y-1.597596 +r1.602000 x-0.017001 y-1.601910 +r1.600000 x-0.176620 y-1.590222 +r1.598000 x-0.334076 y-1.562689 +r1.596000 x-0.487805 y-1.519626 +r1.594000 x-0.636279 y-1.461501 +r1.592000 x-0.778029 y-1.388933 +r1.590000 x-0.911658 y-1.302682 +r1.588000 x-1.035850 y-1.203644 +r1.586000 x-1.149389 y-1.092841 +r1.584000 x-1.251169 y-0.971407 +r1.582000 x-1.340203 y-0.840583 +r1.580000 x-1.415634 y-0.701698 +r1.578000 x-1.476743 y-0.556160 +r1.576000 x-1.522956 y-0.405439 +r1.574000 x-1.553850 y-0.251052 +r1.572000 x-1.569154 y-0.094552 +r1.570000 x-1.568756 y0.062495 +r1.568000 x-1.552699 y0.218518 +r1.566000 x-1.521184 y0.371963 +r1.564000 x-1.474564 y0.521303 +r1.562000 x-1.413344 y0.665058 +r1.560000 x-1.338173 y0.801806 +r1.558000 x-1.249836 y0.930201 +r1.556000 x-1.149250 y1.048981 +r1.554000 x-1.037450 y1.156985 +r1.552000 x-0.915581 y1.253162 +r1.550000 x-0.784887 y1.336582 +r1.548000 x-0.646695 y1.406446 +r1.546000 x-0.502404 y1.462090 +r1.544000 x-0.353470 y1.502995 +r1.542000 x-0.201394 y1.528792 +r1.540000 x-0.047702 y1.539261 +r1.538000 x0.106069 y1.534338 +r1.536000 x0.258380 y1.514112 +r1.534000 x0.407717 y1.478825 +r1.532000 x0.552595 y1.428868 +r1.530000 x0.691579 y1.364778 +r1.528000 x0.823297 y1.287232 +r1.526000 x0.946452 y1.197040 +r1.524000 x1.059837 y1.095135 +r1.522000 x1.162346 y0.982566 +r1.520001 x1.252984 y0.860484 +r1.517999 x1.330875 y0.730133 +r1.516001 x1.395278 y0.592838 +r1.514000 x1.445582 y0.449986 +r1.512000 x1.481325 y0.303020 +r1.510000 x1.502186 y0.153417 +r1.508000 x1.507998 y0.002679 +r1.506000 x1.498741 y-0.147687 +r1.504000 x1.474549 y-0.296180 +r1.502000 x1.435702 y-0.441322 +r1.500000 x1.382627 y-0.581672 +r1.498000 x1.315892 y-0.715843 +r1.496001 x1.236201 y-0.842511 +r1.494000 x1.144382 y-0.960430 +r1.492000 x1.041386 y-1.068447 +r1.490000 x0.928271 y-1.165510 +r1.488000 x0.806193 y-1.250679 +r1.486000 x0.676395 y-1.323135 +r1.484000 x0.540195 y-1.382189 +r1.482000 x0.398969 y-1.427287 +r1.480000 x0.254142 y-1.458016 +r1.478000 x0.107168 y-1.474110 +r1.476000 x-0.040478 y-1.475445 +r1.474000 x-0.187320 y-1.462049 +r1.472001 x-0.331895 y-1.434096 +r1.470000 x-0.472764 y-1.391903 +r1.468000 x-0.608531 y-1.335932 +r1.466000 x-0.737855 y-1.266778 +r1.464000 x-0.859462 y-1.185167 +r1.462000 x-0.972157 y-1.091950 +r1.460000 x-1.074841 y-0.988087 +r1.458000 x-1.166516 y-0.874646 +r1.456000 x-1.246295 y-0.752785 +r1.454000 x-1.313415 y-0.623744 +r1.452000 x-1.367241 y-0.488832 +r1.450000 x-1.407271 y-0.349412 +r1.448000 x-1.433144 y-0.206888 +r1.446000 x-1.444640 y-0.062692 +r1.444000 x-1.441685 y0.081732 +r1.442000 x-1.424348 y0.224940 +r1.440000 x-1.392841 y0.365506 +r1.438000 x-1.347519 y0.502033 +r1.436000 x-1.288872 y0.633171 +r1.434000 x-1.217523 y0.757624 +r1.432000 x-1.134220 y0.874167 +r1.430000 x-1.039829 y0.981660 +r1.428000 x-0.935321 y1.079054 +r1.426000 x-0.821770 y1.165405 +r1.424000 x-0.700335 y1.239882 +r1.422001 x-0.572250 y1.301774 +r1.420000 x-0.438812 y1.350498 +r1.418000 x-0.301370 y1.385605 +r1.416000 x-0.161307 y1.406782 +r1.414000 x-0.020029 y1.413858 +r1.412000 x0.121050 y1.406802 +r1.410000 x0.260521 y1.385723 +r1.408000 x0.396997 y1.350873 +r1.406000 x0.529124 y1.302637 +r1.404000 x0.655593 y1.241537 +r1.402000 x0.775159 y1.168218 +r1.400000 x0.886647 y1.083447 +r1.398000 x0.988967 y0.988104 +r1.396000 x1.081123 y0.883170 +r1.394000 x1.162224 y0.769721 +r1.392000 x1.231492 y0.648915 +r1.390000 x1.288270 y0.521978 +r1.388000 x1.332025 y0.390195 +r1.386000 x1.362359 y0.254898 +r1.384000 x1.379008 y0.117445 +r1.382000 x1.381844 y-0.020782 +r1.380000 x1.370879 y-0.158403 +r1.378000 x1.346262 y-0.294044 +r1.376000 x1.308279 y-0.426358 +r1.374000 x1.257349 y-0.554031 +r1.372000 x1.194016 y-0.675804 +r1.370000 x1.118949 y-0.790476 +r1.368000 x1.032933 y-0.896924 +r1.366000 x0.936858 y-0.994109 +r1.364000 x0.831713 y-1.081087 +r1.362000 x0.718574 y-1.157020 +r1.360001 x0.598595 y-1.221182 +r1.358000 x0.472993 y-1.272966 +r1.356000 x0.343039 y-1.311892 +r1.354000 x0.210045 y-1.337609 +r1.352000 x0.075346 y-1.349899 +r1.350000 x-0.059707 y-1.348679 +r1.348000 x-0.193765 y-1.334001 +r1.346000 x-0.325491 y-1.306052 +r1.344001 x-0.453578 y-1.265150 +r1.342000 x-0.576756 y-1.211741 +r1.340000 x-0.693812 y-1.146397 +r1.338000 x-0.803593 y-1.069805 +r1.336000 x-0.905026 y-0.982764 +r1.334000 x-0.997122 y-0.886174 +r1.332000 x-1.078990 y-0.781028 +r1.330000 x-1.149843 y-0.668401 +r1.328000 x-1.209007 y-0.549442 +r1.326000 x-1.255925 y-0.425356 +r1.324000 x-1.290167 y-0.297398 +r1.322001 x-1.311428 y-0.166859 +r1.320000 x-1.319535 y-0.035048 +r1.318000 x-1.314447 y0.096714 +r1.316000 x-1.296255 y0.227112 +r1.314000 x-1.265180 y0.354847 +r1.311999 x-1.221571 y0.478651 +r1.310000 x-1.165903 y0.597302 +r1.308000 x-1.098768 y0.709629 +r1.306000 x-1.020871 y0.814530 +r1.304000 x-0.933022 y0.910981 +r1.302000 x-0.836130 y0.998043 +r1.300000 x-0.731190 y1.074877 +r1.298000 x-0.619274 y1.140747 +r1.296000 x-0.501522 y1.195028 +r1.294000 x-0.379127 y1.237214 +r1.292000 x-0.253325 y1.266922 +r1.290000 x-0.125384 y1.283892 +r1.288000 x0.003412 y1.287995 +r1.286000 x0.131775 y1.279231 +r1.284000 x0.258425 y1.257725 +r1.282000 x0.382100 y1.223733 +r1.280000 x0.501577 y1.177633 +r1.278000 x0.615675 y1.119923 +r1.276000 x0.723271 y1.051216 +r1.274000 x0.823312 y0.972231 +r1.272000 x0.914822 y0.883790 +r1.270000 x0.996913 y0.786806 +r1.268000 x1.068797 y0.682274 +r1.266000 x1.129786 y0.571261 +r1.264000 x1.179307 y0.454897 +r1.262001 x1.216901 y0.334361 +r1.260000 x1.242230 y0.210868 +r1.258000 x1.255080 y0.085662 +r1.256000 x1.255363 y-0.040001 +r1.254000 x1.243115 y-0.164865 +r1.252000 x1.218499 y-0.287686 +r1.250000 x1.181800 y-0.407244 +r1.248000 x1.133423 y-0.522356 +r1.246001 x1.073889 y-0.631886 +r1.244000 x1.003826 y-0.734758 +r1.242000 x0.923970 y-0.829966 +r1.240000 x0.835149 y-0.916584 +r1.238000 x0.738278 y-0.993775 +r1.236000 x0.634351 y-1.060799 +r1.234000 x0.524429 y-1.117018 +r1.232000 x0.409628 y-1.161907 +r1.230000 x0.291112 y-1.195054 +r1.228000 x0.170074 y-1.216166 +r1.226000 x0.047732 y-1.225070 +r1.224000 x-0.074687 y-1.221719 +r1.222000 x-0.195962 y-1.206185 +r1.220000 x-0.314884 y-1.178664 +r1.218000 x-0.430274 y-1.139468 +r1.216000 x-0.540992 y-1.089029 +r1.214000 x-0.645947 y-1.027886 +r1.212000 x-0.744109 y-0.956685 +r1.210000 x-0.834521 y-0.876170 +r1.208000 x-0.916306 y-0.787177 +r1.206000 x-0.988675 y-0.690621 +r1.204000 x-1.050937 y-0.587492 +r1.202000 x-1.102504 y-0.478841 +r1.200000 x-1.142896 y-0.365773 +r1.198000 x-1.171746 y-0.249430 +r1.196000 x-1.188806 y-0.130985 +r1.194000 x-1.193943 y-0.011629 +r1.192000 x-1.187148 y0.107444 +r1.189999 x-1.168526 y0.225046 +r1.188000 x-1.138305 y0.340008 +r1.186000 x-1.096825 y0.451189 +r1.184000 x-1.044537 y0.557493 +r1.182000 x-0.982001 y0.657874 +r1.180000 x-0.909875 y0.751351 +r1.178000 x-0.828912 y0.837012 +r1.176000 x-0.739951 y0.914029 +r1.174000 x-0.643906 y0.981662 +r1.172000 x-0.541762 y1.039268 +r1.170000 x-0.434559 y1.086305 +r1.168000 x-0.323385 y1.122340 +r1.166000 x-0.209363 y1.147050 +r1.164000 x-0.093642 y1.160227 +r1.162000 x0.022616 y1.161780 +r1.160000 x0.138249 y1.151732 +r1.158000 x0.252104 y1.130225 +r1.156000 x0.363051 y1.097511 +r1.154000 x0.469991 y1.053957 +r1.152000 x0.571870 y1.000034 +r1.150000 x0.667689 y0.936318 +r1.148000 x0.756511 y0.863479 +r1.146000 x0.837474 y0.782274 +r1.144000 x0.909797 y0.693546 +r1.142000 x0.972787 y0.598205 +r1.140000 x1.025848 y0.497228 +r1.138000 x1.068485 y0.391642 +r1.136000 x1.100309 y0.282517 +r1.134000 x1.121040 y0.170956 +r1.132000 x1.130509 y0.058083 +r1.130000 x1.128662 y-0.054973 +r1.128000 x1.115557 y-0.167080 +r1.126000 x1.091366 y-0.277123 +r1.124000 x1.056367 y-0.384010 +r1.122000 x1.010951 y-0.486685 +r1.120000 x0.955607 y-0.584137 +r1.118000 x0.890922 y-0.675412 +r1.115999 x0.817577 y-0.759620 +r1.114000 x0.736336 y-0.835946 +r1.112000 x0.648036 y-0.903656 +r1.110000 x0.553586 y-0.962103 +r1.108000 x0.453951 y-1.010739 +r1.106000 x0.350145 y-1.049111 +r1.104000 x0.243218 y-1.076876 +r1.102000 x0.134251 y-1.093792 +r1.100000 x0.024339 y-1.099731 +r1.098000 x-0.085416 y-1.094673 +r1.096000 x-0.193921 y-1.078708 +r1.094000 x-0.300094 y-1.052036 +r1.092000 x-0.402886 y-1.014962 +r1.090000 x-0.501280 y-0.967894 +r1.088000 x-0.594312 y-0.911338 +r1.086000 x-0.681070 y-0.845896 +r1.084000 x-0.760713 y-0.772251 +r1.082000 x-0.832470 y-0.691171 +r1.080000 x-0.895655 y-0.603492 +r1.078000 x-0.949667 y-0.510115 +r1.076000 x-0.994001 y-0.411992 +r1.074000 x-1.028251 y-0.310122 +r1.072000 x-1.052112 y-0.205535 +r1.070000 x-1.065384 y-0.099287 +r1.068000 x-1.067973 y0.007556 +r1.066000 x-1.059895 y0.113924 +r1.064000 x-1.041269 y0.218757 +r1.062001 x-1.012322 y0.321013 +r1.060000 x-0.973380 y0.419681 +r1.058000 x-0.924870 y0.513789 +r1.056000 x-0.867314 y0.602414 +r1.054000 x-0.801319 y0.684692 +r1.052000 x-0.727578 y0.759825 +r1.050000 x-0.646855 y0.827090 +r1.048000 x-0.559983 y0.885846 +r1.046000 x-0.467854 y0.935536 +r1.044000 x-0.371408 y0.975701 +r1.042000 x-0.271623 y1.005975 +r1.040000 x-0.169510 y1.026093 +r1.038000 x-0.066098 y1.035893 +r1.036000 x0.037577 y1.035318 +r1.034000 x0.140476 y1.024413 +r1.032000 x0.241577 y1.003327 +r1.030000 x0.339876 y0.972309 +r1.028000 x0.434402 y0.931708 +r1.026000 x0.524225 y0.881966 +r1.024000 x0.608467 y0.823616 +r1.022000 x0.686309 y0.757274 +r1.020000 x0.756997 y0.683634 +r1.018000 x0.819854 y0.603459 +r1.016000 x0.874283 y0.517577 +r1.014000 x0.919772 y0.426866 +r1.012000 x0.955904 y0.332253 +r1.010000 x0.982353 y0.234697 +r1.008000 x0.998894 y0.135185 +r1.006000 x1.005401 y0.034718 +r1.004000 x1.001848 y-0.065697 +r1.002000 x0.988312 y-0.165058 +r1.000000 x0.964966 y-0.262375 +r0.998000 x0.932084 y-0.356685 +r0.996000 x0.890031 y-0.447059 +r0.994000 x0.839264 y-0.532608 +r0.992000 x0.780326 y-0.612499 +r0.990000 x0.713838 y-0.685956 +r0.988000 x0.640494 y-0.752271 +r0.986000 x0.561054 y-0.810811 +r0.984000 x0.476337 y-0.861022 +r0.982000 x0.387210 y-0.902437 +r0.980000 x0.294581 y-0.934678 +r0.978000 x0.199389 y-0.957459 +r0.976000 x0.102596 y-0.970593 +r0.974000 x0.005176 y-0.973986 +r0.972000 x-0.091897 y-0.967646 +r0.970000 x-0.187655 y-0.951675 +r0.968000 x-0.281145 y-0.926273 +r0.966000 x-0.371445 y-0.891731 +r0.964000 x-0.457664 y-0.848434 +r0.962000 x-0.538959 y-0.796848 +r0.960000 x-0.614539 y-0.737524 +r0.958000 x-0.683671 y-0.671087 +r0.956000 x-0.745692 y-0.598230 +r0.954000 x-0.800013 y-0.519707 +r0.952000 x-0.846123 y-0.436326 +r0.950000 x-0.883595 y-0.348940 +r0.948000 x-0.912093 y-0.258439 +r0.946000 x-0.931368 y-0.165740 +r0.944000 x-0.941267 y-0.071779 +r0.942000 x-0.941731 y0.022502 +r0.940000 x-0.932795 y0.116159 +r0.938000 x-0.914589 y0.208259 +r0.936000 x-0.887332 y0.297888 +r0.934000 x-0.851337 y0.384163 +r0.932000 x-0.807000 y0.466235 +r0.930000 x-0.754799 y0.543303 +r0.928000 x-0.695290 y0.614618 +r0.926000 x-0.629099 y0.679493 +r0.924000 x-0.556914 y0.737308 +r0.922000 x-0.479484 y0.787515 +r0.920000 x-0.397604 y0.829645 +r0.918000 x-0.312111 y0.863314 +r0.916000 x-0.223875 y0.888221 +r0.914000 x-0.133790 y0.904155 +r0.912000 x-0.042763 y0.910997 +r0.910000 x0.048292 y0.908718 +r0.908000 x0.138467 y0.897380 +r0.906000 x0.226862 y0.877137 +r0.904000 x0.312605 y0.848230 +r0.902000 x0.394850 y0.810986 +r0.900000 x0.472790 y0.765813 +r0.898000 x0.545666 y0.713199 +r0.896000 x0.612773 y0.653701 +r0.894000 x0.673467 y0.587944 +r0.892000 x0.727168 y0.516614 +r0.890000 x0.773373 y0.440448 +r0.888000 x0.811653 y0.360228 +r0.886000 x0.841661 y0.276773 +r0.884000 x0.863134 y0.190933 +r0.882000 x0.875897 y0.103574 +r0.880000 x0.879862 y0.015578 +r0.878000 x0.875028 y-0.072175 +r0.876000 x0.861485 y-0.158809 +r0.874000 x0.839405 y-0.243464 +r0.872000 x0.809050 y-0.325302 +r0.870000 x0.770761 y-0.403519 +r0.868000 x0.724955 y-0.477351 +r0.866000 x0.672125 y-0.546080 +r0.864000 x0.612832 y-0.609043 +r0.862000 x0.547697 y-0.665637 +r0.860000 x0.477397 y-0.715326 +r0.858000 x0.402660 y-0.757647 +r0.856000 x0.324253 y-0.792210 +r0.854000 x0.242975 y-0.818706 +r0.852000 x0.159652 y-0.836908 +r0.850000 x0.075126 y-0.846674 +r0.848000 x-0.009752 y-0.847944 +r0.846000 x-0.094134 y-0.840747 +r0.844000 x-0.177179 y-0.825193 +r0.842000 x-0.258063 y-0.801478 +r0.840000 x-0.335988 y-0.769878 +r0.838000 x-0.410190 y-0.730745 +r0.836000 x-0.479945 y-0.684506 +r0.834000 x-0.544578 y-0.631657 +r0.832000 x-0.603467 y-0.572758 +r0.830000 x-0.656052 y-0.508425 +r0.828000 x-0.701837 y-0.439328 +r0.826001 x-0.740398 y-0.366180 +r0.824000 x-0.771383 y-0.289731 +r0.822000 x-0.794521 y-0.210761 +r0.820000 x-0.809618 y-0.130071 +r0.818000 x-0.816562 y-0.048475 +r0.816000 x-0.815324 y0.033206 +r0.814000 x-0.805956 y0.114156 +r0.812000 x-0.788590 y0.193570 +r0.810000 x-0.763441 y0.270662 +r0.808000 x-0.730797 y0.344674 +r0.806000 x-0.691021 y0.414881 +r0.804000 x-0.644547 y0.480599 +r0.802000 x-0.591871 y0.541196 +r0.800000 x-0.533550 y0.596091 +r0.798000 x-0.470197 y0.644763 +r0.796000 x-0.402468 y0.686757 +r0.794000 x-0.331062 y0.721688 +r0.792000 x-0.256711 y0.749242 +r0.790000 x-0.180173 y0.769180 +r0.788000 x-0.102223 y0.781341 +r0.786000 x-0.023649 y0.785644 +r0.784000 x0.054763 y0.782085 +r0.782000 x0.132230 y0.770739 +r0.779999 x0.207981 y0.751760 +r0.778000 x0.281270 y0.725377 +r0.776000 x0.351376 y0.691889 +r0.774000 x0.417615 y0.651670 +r0.772000 x0.479346 y0.605154 +r0.769999 x0.535973 y0.552840 +r0.768000 x0.586959 y0.495281 +r0.766000 x0.631823 y0.433077 +r0.763999 x0.670147 y0.366876 +r0.762000 x0.701585 y0.297360 +r0.760000 x0.725856 y0.225240 +r0.758000 x0.742756 y0.151251 +r0.756000 x0.752156 y0.076142 +r0.754000 x0.754000 y0.000670 +r0.752000 x0.748310 y-0.074410 +r0.750000 x0.735182 y-0.148349 +r0.748000 x0.714788 y-0.220414 +r0.746000 x0.687369 y-0.289896 +r0.744000 x0.653238 y-0.356113 +r0.742000 x0.612771 y-0.418421 +r0.740000 x0.566406 y-0.476218 +r0.738000 x0.514640 y-0.528952 +r0.736000 x0.458017 y-0.576122 +r0.734000 x0.397130 y-0.617287 +r0.732000 x0.332612 y-0.652069 +r0.730000 x0.265125 y-0.680153 +r0.728000 x0.195362 y-0.701297 +r0.726000 x0.124032 y-0.715327 +r0.724000 x0.051855 y-0.722141 +r0.722000 x-0.020441 y-0.721711 +r0.720000 x-0.092134 y-0.714081 +r0.718000 x-0.162510 y-0.699367 +r0.716000 x-0.230873 y-0.677756 +r0.714000 x-0.296552 y-0.649502 +r0.712000 x-0.358904 y-0.614924 +r0.710000 x-0.417326 y-0.574403 +r0.708000 x-0.471254 y-0.528378 +r0.706000 x-0.520176 y-0.477339 +r0.704000 x-0.563631 y-0.421825 +r0.702000 x-0.601214 y-0.362416 +r0.700000 x-0.632585 y-0.299728 +r0.698000 x-0.657463 y-0.234406 +r0.696000 x-0.675639 y-0.167118 +r0.694000 x-0.686968 y-0.098547 +r0.692000 x-0.691376 y-0.029388 +r0.690000 x-0.688859 y0.039666 +r0.688000 x-0.679482 y0.107926 +r0.686000 x-0.663379 y0.174712 +r0.684000 x-0.640749 y0.239367 +r0.682000 x-0.611857 y0.301256 +r0.680000 x-0.577028 y0.359776 +r0.678000 x-0.536644 y0.414363 +r0.676000 x-0.491143 y0.464494 +r0.674000 x-0.441009 y0.509693 +r0.672000 x-0.386770 y0.549539 +r0.670000 x-0.328993 y0.583664 +r0.668000 x-0.268277 y0.611761 +r0.666000 x-0.205246 y0.633585 +r0.664000 x-0.140545 y0.648955 +r0.662000 x-0.074829 y0.657757 +r0.660000 x-0.008763 y0.659942 +r0.658000 x0.056992 y0.655527 +r0.656000 x0.121780 y0.644597 +r0.654000 x0.184958 y0.627301 +r0.652000 x0.245905 y0.603850 +r0.650000 x0.304026 y0.574516 +r0.648000 x0.358755 y0.539628 +r0.646000 x0.409568 y0.499570 +r0.644000 x0.455980 y0.454773 +r0.642000 x0.497553 y0.405715 +r0.640000 x0.533903 y0.352913 +r0.638000 x0.564698 y0.296918 +r0.636000 x0.589665 y0.238309 +r0.634000 x0.608590 y0.177690 +r0.632000 x0.621323 y0.115679 +r0.630000 x0.627775 y0.052904 +r0.628000 x0.627920 y-0.010001 +r0.626000 x0.621798 y-0.072408 +r0.624000 x0.609510 y-0.133694 +r0.622001 x0.591217 y-0.193254 +r0.620000 x0.567140 y-0.250503 +r0.618000 x0.537559 y-0.304885 +r0.616000 x0.502803 y-0.355872 +r0.614000 x0.463254 y-0.402978 +r0.612000 x0.419339 y-0.445757 +r0.610000 x0.371524 y-0.483808 +r0.608000 x0.320314 y-0.516781 +r0.606000 x0.266243 y-0.544381 +r0.604000 x0.209871 y-0.566366 +r0.602000 x0.151776 y-0.582553 +r0.600000 x0.092551 y-0.592819 +r0.598000 x0.032796 y-0.597100 +r0.596000 x-0.026888 y-0.595393 +r0.594000 x-0.085905 y-0.587755 +r0.592000 x-0.143668 y-0.574303 +r0.590000 x-0.199608 y-0.555209 +r0.588000 x-0.253178 y-0.530702 +r0.586000 x-0.303858 y-0.501065 +r0.584001 x-0.351161 y-0.466629 +r0.582000 x-0.394635 y-0.427770 +r0.580000 x-0.433873 y-0.384908 +r0.578000 x-0.468511 y-0.338498 +r0.576000 x-0.498234 y-0.289031 +r0.573999 x-0.522778 y-0.237020 +r0.572000 x-0.541934 y-0.183006 +r0.570000 x-0.555548 y-0.127541 +r0.568000 x-0.563521 y-0.071191 +r0.566000 x-0.565814 y-0.014525 +r0.564001 x-0.562443 y0.041886 +r0.562000 x-0.553481 y0.097480 +r0.560000 x-0.539059 y0.151707 +r0.558000 x-0.519359 y0.204034 +r0.556000 x-0.494616 y0.253951 +r0.554000 x-0.465113 y0.300975 +r0.552000 x-0.431180 y0.344656 +r0.550000 x-0.393188 y0.384582 +r0.548000 x-0.351546 y0.420380 +r0.546000 x-0.306699 y0.451721 +r0.544000 x-0.259117 y0.478325 +r0.542000 x-0.209297 y0.499959 +r0.540000 x-0.157755 y0.516443 +r0.538000 x-0.105018 y0.527651 +r0.536000 x-0.051624 y0.533508 +r0.534000 x0.001889 y0.533997 +r0.532000 x0.054984 y0.529151 +r0.530001 x0.107132 y0.519060 +r0.528000 x0.157818 y0.503863 +r0.526000 x0.206547 y0.483750 +r0.524000 x0.252844 y0.458962 +r0.522000 x0.296266 y0.429780 +r0.520000 x0.336398 y0.396530 +r0.518000 x0.372865 y0.359577 +r0.516000 x0.405329 y0.319319 +r0.514000 x0.433496 y0.276184 +r0.512000 x0.457117 y0.230626 +r0.510000 x0.475991 y0.183120 +r0.508000 x0.489965 y0.134157 +r0.506000 x0.498939 y0.084239 +r0.504000 x0.502860 y0.033873 +r0.502000 x0.501731 y-0.016433 +r0.500000 x0.495601 y-0.066176 +r0.498000 x0.484573 y-0.114862 +r0.496000 x0.468795 y-0.162011 +r0.494000 x0.448463 y-0.207164 +r0.492000 x0.423818 y-0.249885 +r0.490000 x0.395141 y-0.289765 +r0.488000 x0.362752 y-0.326428 +r0.486000 x0.327005 y-0.359532 +r0.484000 x0.288287 y-0.388776 +r0.482000 x0.247009 y-0.413897 +r0.480000 x0.203606 y-0.434678 +r0.478000 x0.158530 y-0.450946 +r0.476000 x0.112247 y-0.462576 +r0.474000 x0.065230 y-0.469490 +r0.472000 x0.017958 y-0.471658 +r0.470000 x-0.029095 y-0.469099 +r0.467999 x-0.075459 y-0.461876 +r0.466000 x-0.120675 y-0.450104 +r0.464000 x-0.164300 y-0.433937 +r0.462000 x-0.205909 y-0.413577 +r0.460000 x-0.245103 y-0.389261 +r0.458000 x-0.281511 y-0.361270 +r0.456000 x-0.314790 y-0.329914 +r0.454000 x-0.344636 y-0.295537 +r0.452000 x-0.370778 y-0.258510 +r0.450000 x-0.392987 y-0.219229 +r0.448000 x-0.411075 y-0.178105 +r0.446000 x-0.424897 y-0.135568 +r0.444000 x-0.434352 y-0.092057 +r0.442000 x-0.439384 y-0.048017 +r0.440000 x-0.439983 y-0.003895 +r0.438000 x-0.436182 y0.039868 +r0.436000 x-0.428059 y0.082834 +r0.434000 x-0.415735 y0.124581 +r0.432000 x-0.399372 y0.164700 +r0.430000 x-0.379170 y0.202805 +r0.428000 x-0.355369 y0.238531 +r0.426000 x-0.328239 y0.271542 +r0.424000 x-0.298084 y0.301532 +r0.422000 x-0.265235 y0.328229 +r0.420000 x-0.230046 y0.351395 +r0.418000 x-0.192893 y0.370832 +r0.416000 x-0.154167 y0.386379 +r0.414000 x-0.114271 y0.397917 +r0.412000 x-0.073617 y0.405370 +r0.410000 x-0.032621 y0.408700 +r0.408000 x0.008303 y0.407916 +r0.406000 x0.048745 y0.403063 +r0.404000 x0.088304 y0.394231 +r0.402000 x0.126590 y0.381548 +r0.400000 x0.163233 y0.365178 +r0.398000 x0.197880 y0.345322 +r0.396000 x0.230203 y0.322215 +r0.394000 x0.259902 y0.296120 +r0.392000 x0.286703 y0.267330 +r0.390000 x0.310368 y0.236161 +r0.388000 x0.330689 y0.202950 +r0.386000 x0.347498 y0.168051 +r0.384000 x0.360661 y0.131833 +r0.382001 x0.370083 y0.094673 +r0.380000 x0.375708 y0.056953 +r0.378000 x0.377519 y0.019060 +r0.376000 x0.375538 y-0.018625 +r0.374000 x0.369825 y-0.055726 +r0.372000 x0.360476 y-0.091874 +r0.370000 x0.347624 y-0.126718 +r0.368000 x0.331436 y-0.159920 +r0.366000 x0.312109 y-0.191165 +r0.364000 x0.289872 y-0.220159 +r0.362000 x0.264981 y-0.246636 +r0.360000 x0.237714 y-0.270355 +r0.358000 x0.208372 y-0.291110 +r0.356000 x0.177272 y-0.308724 +r0.354000 x0.144748 y-0.323054 +r0.352000 x0.111142 y-0.333993 +r0.350000 x0.076804 y-0.341469 +r0.347999 x0.042088 y-0.345445 +r0.346000 x0.007349 y-0.345922 +r0.344000 x-0.027065 y-0.342934 +r0.342000 x-0.060811 y-0.336550 +r0.340000 x-0.093556 y-0.326875 +r0.338000 x-0.124982 y-0.314044 +r0.336000 x-0.154788 y-0.298223 +r0.334000 x-0.182693 y-0.279605 +r0.332000 x-0.208439 y-0.258413 +r0.330000 x-0.231791 y-0.234889 +r0.328000 x-0.252543 y-0.209299 +r0.326000 x-0.270517 y-0.181925 +r0.324000 x-0.285565 y-0.153065 +r0.322000 x-0.297571 y-0.123027 +r0.320000 x-0.306451 y-0.092129 +r0.318000 x-0.312154 y-0.060693 +r0.316000 x-0.314663 y-0.029043 +r0.314000 x-0.313990 y0.002500 +r0.312000 x-0.310183 y0.033619 +r0.310000 x-0.303321 y0.064005 +r0.307999 x-0.293509 y0.093360 +r0.306000 x-0.280887 y0.121403 +r0.304000 x-0.265616 y0.147865 +r0.302000 x-0.247886 y0.172501 +r0.299999 x-0.227906 y0.195086 +r0.298000 x-0.205910 y0.215419 +r0.296000 x-0.182144 y0.233323 +r0.294000 x-0.156874 y0.248650 +r0.292000 x-0.130374 y0.261279 +r0.290000 x-0.102928 y0.271120 +r0.287999 x-0.074827 y0.278109 +r0.286000 x-0.046365 y0.282217 +r0.284000 x-0.017833 y0.283440 +r0.282000 x0.010479 y0.281805 +r0.280000 x0.038286 y0.277370 +r0.278000 x0.065316 y0.270218 +r0.276000 x0.091305 y0.260460 +r0.274001 x0.116005 y0.248232 +r0.272000 x0.139183 y0.233692 +r0.270000 x0.160629 y0.217022 +r0.268000 x0.180148 y0.198421 +r0.266000 x0.197571 y0.178106 +r0.263999 x0.212753 y0.156307 +r0.262000 x0.225573 y0.133269 +r0.260000 x0.235936 y0.109243 +r0.258000 x0.243774 y0.084488 +r0.256000 x0.249045 y0.059267 +r0.254000 x0.251736 y0.033841 +r0.252000 x0.251858 y0.008473 +r0.250000 x0.249450 y-0.016580 +r0.248000 x0.244576 y-0.041070 +r0.246000 x0.237324 y-0.064755 +r0.244000 x0.227807 y-0.087408 +r0.242000 x0.216156 y-0.108815 +r0.240000 x0.202525 y-0.128778 +r0.238000 x0.187085 y-0.147117 +r0.236000 x0.170022 y-0.163672 +r0.234000 x0.151538 y-0.178304 +r0.232000 x0.131843 y-0.190896 +r0.230000 x0.111160 y-0.201354 +r0.228000 x0.089716 y-0.209607 +r0.226000 x0.067742 y-0.215608 +r0.224000 x0.045473 y-0.219336 +r0.222000 x0.023140 y-0.220791 +r0.220000 x0.000974 y-0.219998 +r0.218000 x-0.020803 y-0.217005 +r0.216000 x-0.041975 y-0.211882 +r0.214000 x-0.062336 y-0.204720 +r0.212000 x-0.081692 y-0.195628 +r0.210000 x-0.099863 y-0.184736 +r0.208000 x-0.116685 y-0.172188 +r0.206000 x-0.132010 y-0.158143 +r0.204000 x-0.145710 y-0.142774 +r0.202000 x-0.157675 y-0.126264 +r0.200000 x-0.167814 y-0.108804 +r0.198000 x-0.176060 y-0.090592 +r0.196000 x-0.182364 y-0.071830 +r0.194000 x-0.186699 y-0.052722 +r0.192000 x-0.189060 y-0.033471 +r0.190000 x-0.189463 y-0.014279 +r0.188000 x-0.187942 y0.004658 +r0.186000 x-0.184554 y0.023149 +r0.184000 x-0.179371 y0.041012 +r0.182000 x-0.172485 y0.058076 +r0.179999 x-0.164003 y0.074181 +r0.178000 x-0.154047 y0.089182 +r0.175999 x-0.142752 y0.102945 +r0.174001 x-0.130265 y0.115357 +r0.172000 x-0.116740 y0.126316 +r0.170000 x-0.102342 y0.135743 +r0.168000 x-0.087240 y0.143573 +r0.166001 x-0.071609 y0.149761 +r0.164000 x-0.055621 y0.154280 +r0.162000 x-0.039454 y0.157122 +r0.160000 x-0.023280 y0.158297 +r0.158000 x-0.007268 y0.157833 +r0.156000 x0.008417 y0.155773 +r0.154000 x0.023620 y0.152178 +r0.152000 x0.038191 y0.147124 +r0.150000 x0.051995 y0.140700 +r0.148000 x0.064905 y0.133009 +r0.146000 x0.076807 y0.124164 +r0.144000 x0.087603 y0.114288 +r0.142001 x0.097206 y0.103514 +r0.140000 x0.105546 y0.091978 +r0.138000 x0.112570 y0.079825 +r0.136000 x0.118238 y0.067199 +r0.134000 x0.122527 y0.054250 +r0.132000 x0.125431 y0.041123 +r0.130000 x0.126956 y0.027966 +r0.128000 x0.127128 y0.014918 +r0.126000 x0.125982 y0.002119 +r0.124000 x0.123571 y-0.010303 +r0.122000 x0.119959 y-0.022224 +r0.120000 x0.115220 y-0.033530 +r0.117999 x0.109442 y-0.044117 +r0.116000 x0.102720 y-0.053894 +r0.114000 x0.095157 y-0.062778 +r0.112000 x0.086863 y-0.070702 +r0.110000 x0.077954 y-0.077609 +r0.108000 x0.068547 y-0.083459 +r0.106000 x0.058764 y-0.088220 +r0.104000 x0.048726 y-0.091879 +r0.102000 x0.038554 y-0.094433 +r0.100000 x0.028366 y-0.095892 +r0.098000 x0.018278 y-0.096280 +r0.096000 x0.008400 y-0.095632 +r0.094000 x-0.001165 y-0.093993 +r0.092000 x-0.010318 y-0.091420 +r0.090000 x-0.018972 y-0.087978 +r0.088000 x-0.027045 y-0.083741 +r0.086000 x-0.034469 y-0.078790 +r0.084000 x-0.041182 y-0.073212 +r0.082000 x-0.047136 y-0.067099 +r0.080000 x-0.052291 y-0.060544 +r0.078000 x-0.056623 y-0.053646 +r0.076000 x-0.060114 y-0.046501 +r0.074000 x-0.062759 y-0.039208 +r0.072000 x-0.064567 y-0.031861 +r0.070000 x-0.065552 y-0.024555 +r0.068000 x-0.065742 y-0.017377 +r0.066000 x-0.065174 y-0.010411 +r0.064000 x-0.063891 y-0.003736 +r0.062000 x-0.061946 y0.002578 +r0.060000 x-0.059400 y0.008467 +r0.058000 x-0.056316 y0.013876 +r0.055999 x-0.052764 y0.018759 +r0.054000 x-0.048820 y0.023079 +r0.052000 x-0.044558 y0.026806 +r0.050000 x-0.040057 y0.029924 +r0.048000 x-0.035395 y0.032422 +r0.046000 x-0.030649 y0.034302 +r0.044000 x-0.025894 y0.035574 +r0.042000 x-0.021204 y0.036255 +r0.040000 x-0.016646 y0.036372 +r0.038000 x-0.012285 y0.035959 +r0.036000 x-0.008179 y0.035059 +r0.034000 x-0.004381 y0.033717 +r0.032000 x-0.000934 y0.031986 +r0.030000 x0.002122 y0.029925 +r0.028000 x0.004759 y0.027593 +r0.026000 x0.006955 y0.025053 +r0.024000 x0.008697 y0.022369 +r0.022000 x0.009979 y0.019607 +r0.020000 x0.010806 y0.016829 +r0.018000 x0.011189 y0.014100 +r0.016000 x0.011147 y0.011478 +r0.014000 x0.010708 y0.009019 +r0.012000 x0.009904 y0.006776 +r0.010000 x0.008776 y0.004794 +r0.007999 x0.007368 y0.003115 +r0.006000 x0.005732 y0.001773 +r0.004000 x0.003920 y0.000795 +r0.002000 x0.001990 y0.000200 +g0z1 +m2 diff --git a/nc_files/b-index.ngc b/nc_files/b-index.ngc new file mode 100644 index 00000000000..b5c9da128e4 --- /dev/null +++ b/nc_files/b-index.ngc @@ -0,0 +1,14 @@ +; this file tests the lock/unlock of an indexing rotary. +; run it with a configuration having [AXIS_4]LOCKING_INDEXER=1 +g20 g90 +g0b0 +g0x0y0z0 +g1x1f70 +g0x2 +b45 +x3 +b90 +x2 +b0 +x1 +m2 diff --git a/nc_files/cds.ngc b/nc_files/cds.ngc new file mode 100644 index 00000000000..55a042f035f --- /dev/null +++ b/nc_files/cds.ngc @@ -0,0 +1,284 @@ +(Circle Diamond Square Program) +(Tom Kramer) +(26-Sep-1994) +(Assumes 4"x4"x2" finished stock) +(Top of stock at Z=2") +(X: 0.000 to 4.0) +(Y: -0.250 to 3.915) +(Z: 1.406 to 3.0) +(Cutter does not descend more than 0.94" below top) +n0080 G90 M9 +n0090 G43 H1 g20 +n0140 F16.0 S3500 M3 +n0150 (MILLING AN ENCLOSED POCKET) +n0155 G0 Z+2.1 +n0160 G0 X+0.0 Y+3.915 +n0170 G0 Z+2.1 +n0180 G1 Z+1.6875 (start left circle zigzag) +n0190 G1 X+4.0 +n0200 G1 Y+3.725 +n0210 G1 X+0.0 +n0220 G1 Y+3.535 +n0230 G1 X+1.437 +n0240 G3 X+1.0704 Y+3.345 R+1.635 +n0250 G1 X+0.0 +n0260 G1 Y+3.155 +n0270 G1 X+0.8428 +n0280 G3 X+0.6802 Y+2.965 R+1.635 +n0290 G1 X+0.0 +n0300 G1 Y+2.775 +n0310 G1 X+0.5603 +n0320 G3 X+0.4732 Y+2.585 R+1.635 +n0330 G1 X+0.0 +n0340 G1 Y+2.395 +n0350 G1 X+0.4134 +n0360 G3 X+0.3779 Y+2.205 R+1.635 +n0370 G1 X+0.0 +n0380 G1 Y+2.015 +n0390 G1 X+0.3651 +n0400 G3 X+0.365 Y+2.0 R+1.635 +n0410 G3 X+0.3744 Y+1.825 R+1.635 +n0420 G1 X+0.0 +n0430 G1 Y+1.635 +n0440 G1 X+0.4063 +n0450 G3 X+0.4621 Y+1.445 R+1.635 +n0460 G1 X+0.0 +n0470 G1 Y+1.255 +n0480 G1 X+0.5446 +n0490 G3 X+0.6587 Y+1.065 R+1.635 +n0500 G1 X+0.0 +n0510 G1 Y+0.875 +n0520 G1 X+0.8136 +n0530 G3 X+1.0284 Y+0.685 R+1.635 +n0540 G1 X+0.0 +n0550 G1 Y+0.495 +n0560 G1 X+1.3611 +n0570 G3 X+2.0 Y+0.365 R+1.635 +n0580 G3 X+2.6389 Y+0.495 R+1.635 +n0590 G1 X+4.0 +n0600 G1 Y+0.305 +n0610 G1 X+0.0 +n0620 G1 Y+0.115 +n0630 G1 X+4.0 +n0640 G0 Z+3.0 (end left circle zigzag) +n0650 G0 X+1.437 Y+3.535 +n0660 G0 Z+2.1 +n0670 G1 Z+1.6875 (start right circle zigzag) +n0680 G2 X+2.0 Y+3.635 R+1.635 +n0690 G2 X+2.563 Y+3.535 R+1.635 +n0700 G1 X+4.0 +n0710 G1 Y+3.345 +n0720 G1 X+2.9296 +n0730 G2 X+3.1572 Y+3.155 R+1.635 +n0740 G1 X+4.0 +n0750 G1 Y+2.965 +n0760 G1 X+3.3198 +n0770 G2 X+3.4397 Y+2.775 R+1.635 +n0780 G1 X+4.0 +n0790 G1 Y+2.585 +n0800 G1 X+3.5268 +n0810 G2 X+3.5866 Y+2.395 R+1.635 +n0820 G1 X+4.0 +n0830 G1 Y+2.205 +n0840 G1 X+3.6221 +n0850 G2 X+3.6349 Y+2.015 R+1.635 +n0860 G1 X+4.0 +n0870 G1 Y+1.825 +n0880 G1 X+3.6256 +n0890 G2 X+3.5937 Y+1.635 R+1.635 +n0900 G1 X+4.0 +n0910 G1 Y+1.445 +n0920 G1 X+3.5379 +n0930 G2 X+3.4554 Y+1.255 R+1.635 +n0940 G1 X+4.0 +n0950 G1 Y+1.065 +n0960 G1 X+3.3413 +n0970 G2 X+3.1864 Y+0.875 R+1.635 +n0980 G1 X+4.0 +n0990 G1 Y+0.685 +n1000 G1 X+2.9716 (end right circle zigzag) +n1010 G0 Z+3.0 (boundary cut deleted) +n1140 G0 X+2.0 Y+0.375 (start cut around circle) +n1150 G0 Z+2.1 +n1160 G1 Z+1.6875 +n1170 G2 X+0.375 Y+2.0 R+1.625 +n1180 G2 X+2.0 Y+3.625 R+1.625 +n1190 G2 X+3.625 Y+2.0 R+1.625 +n1200 G2 X+2.0 Y+0.375 R+1.625 +n1210 G1 Z+2.1 (end cut around circle) +n1220 G0 Z+3.0 +n1230 (MILLING AN ENCLOSED POCKET) +n1240 G0 X+1.4732 Y+3.59 +n1250 G0 Z+2.1 (start left diamond zigzag) +n1260 G1 Z+1.8437 +n1270 G1 X+1.8991 +n1280 G1 X+1.7091 Y+3.4 +n1290 G1 X+1.0804 +n1300 G3 X+0.8418 Y+3.21 R+1.675 +n1310 G1 X+1.5191 +n1320 G1 X+1.3291 Y+3.02 +n1330 G1 X+0.6714 +n1340 G3 X+0.5451 Y+2.83 R+1.675 +n1350 G1 X+1.1391 +n1360 G1 X+0.9491 Y+2.64 +n1370 G1 X+0.4521 +n1380 G3 X+0.3866 Y+2.45 R+1.675 +n1390 G1 X+0.7591 +n1400 G1 X+0.5691 Y+2.26 +n1410 G1 X+0.3453 +n1420 G3 X+0.3265 Y+2.07 R+1.675 +n1430 G1 X+0.3846 +n1440 G3 X+0.4045 Y+1.9045 R+0.135 +n1450 G1 X+0.4291 Y+1.88 +n1460 G1 X+0.3293 +n1470 G3 X+0.3539 Y+1.69 R+1.675 +n1480 G1 X+0.6191 +n1490 G1 X+0.8091 Y+1.5 +n1500 G1 X+0.4014 +n1510 G3 X+0.4737 Y+1.31 R+1.675 +n1520 G1 X+0.9991 +n1530 G1 X+1.1891 Y+1.12 +n1540 G1 X+0.5748 +n1550 G3 X+0.7113 Y+0.93 R+1.675 +n1560 G1 X+1.3791 +n1570 G1 X+1.5691 Y+0.74 +n1580 G1 X+0.8964 +n1590 G3 X+1.1615 Y+0.55 R+1.675 +n1600 G1 X+1.7591 +n1610 G1 X+1.9045 Y+0.4045 +n1620 G3 X+2.0955 Y+0.4045 R+0.135 +n1630 G1 X+2.2409 Y+0.55 +n1640 G1 X+2.8385 +n1650 G2 X+2.3406 Y+0.36 R+1.675 +n1660 G1 X+1.6594 +n1670 G0 Z+3.0 (end left diamond zigzag) +n1680 G0 X+1.8991 Y+3.59 +n1690 G0 Z+2.1 (start right diamond zigzag) +n1700 G1 Z+1.8437 +n1710 G1 X+1.9045 Y+3.5955 +n1720 G2 X+2.0955 Y+3.5955 R+0.135 +n1730 G1 X+2.1009 Y+3.59 +n1740 G1 X+2.5268 +n1750 G2 X+2.9196 Y+3.4 R+1.675 +n1760 G1 X+2.2909 +n1770 G1 X+2.4809 Y+3.21 +n1780 G1 X+3.1582 +n1790 G2 X+3.3286 Y+3.02 R+1.675 +n1800 G1 X+2.6709 +n1810 G1 X+2.8609 Y+2.83 +n1820 G1 X+3.4549 +n1830 G2 X+3.5479 Y+2.64 R+1.675 +n1840 G1 X+3.0509 +n1850 G1 X+3.2409 Y+2.45 +n1860 G1 X+3.6134 +n1870 G2 X+3.6547 Y+2.26 R+1.675 +n1880 G1 X+3.4309 +n1890 G1 X+3.5955 Y+2.0955 +n1900 G2 X+3.6154 Y+2.07 R+0.135 +n1910 G1 X+3.6735 +n1920 G2 X+3.675 Y+2.0 R+1.675 +n1930 G2 X+3.6707 Y+1.88 R+1.675 +n1940 G1 X+3.5709 +n1950 G1 X+3.3809 Y+1.69 +n1960 G1 X+3.6461 +n1970 G2 X+3.5986 Y+1.5 R+1.675 +n1980 G1 X+3.1909 +n1990 G1 X+3.0009 Y+1.31 +n2000 G1 X+3.5263 +n2010 G2 X+3.4252 Y+1.12 R+1.675 +n2020 G1 X+2.8109 +n2030 G1 X+2.6209 Y+0.93 +n2040 G1 X+3.2887 +n2050 G2 X+3.1036 Y+0.74 R+1.675 +n2060 G1 X+2.4309 (end right diamond zigzag) +n2070 G0 Z+3.0 (boundary cut deleted) +n2160 G0 X+2.0884 Y+0.4116 +n2170 G0 Z+2.1 (start diamond boundary) +n2180 G1 Z+1.8437 +n2190 G2 X+1.9116 Y+0.4116 R+0.125 +n2200 G1 X+0.4116 Y+1.9116 +n2210 G2 X+0.4116 Y+2.0884 R+0.125 +n2220 G1 X+1.9116 Y+3.5884 +n2230 G2 X+2.0884 Y+3.5884 R+0.125 +n2240 G1 X+3.5884 Y+2.0884 +n2250 G2 X+3.5884 Y+1.9116 R+0.125 +n2260 G1 X+2.0884 Y+0.4116 +n2270 G1 Z+2.1 +n2280 g0 z+3.0 +n2290 g0 x+2.0 y+3.8 +n2300 g0 z+2.1 (start diamond top) +n2310 g1 z+2.0 +n2320 g1 y+3.5 +n2330 g1 x+2.1 y+3.4 +n2340 g1 x+1.9 +n2350 g1 x+1.7 y+3.2 +n2360 g1 x+2.3 +n2370 g1 x+2.5 y+3.0 +n2380 g1 x+1.5 +n2390 g1 x+1.3 y+2.8 +n2400 g1 x+2.7 +n2410 g1 x+2.9 y+2.6 +n2420 g1 x+1.1 +n2430 g1 x+0.9 y+2.4 +n2440 g1 x+3.1 +n2450 g1 x+3.3 y+2.2 +n2460 g1 x+0.7 +n2470 g1 x+0.5 y+2.0 +n2480 g1 x+3.5 +n2490 g1 x+3.3 y+1.8 +n2500 g1 x+0.7 +n2510 g1 x+0.9 y+1.6 +n2520 g1 x+3.1 +n2530 g1 x+2.9 y+1.4 +n2540 g1 x+1.1 +n2550 g1 x+1.3 y+1.2 +n2560 g1 x+2.7 +n2570 g1 x+2.5 y+1.0 +n2580 g1 x+1.5 +n2590 g1 x+1.7 y+0.8 +n2600 g1 x+2.3 +n2610 g1 x+2.1 y+0.6 +n2620 g1 x+1.1 +n2630 g0 z+3.0 (end diamond top) +n3020 g0 x+0.0 y-0.25 +n3030 g0 z+2.1 (start left and back ramps) +n3040 g1 z+1.37 +n3050 g1 y+0.0 +n3060 g1 y+2.0 z+1.375 +n3070 g1 y+4.0 z+1.37 +n3080 g1 x+2.0 z+1.375 +n3090 g1 x+4.0 z+1.37 +n3100 g1 y+3.8125 +n3110 g1 x+2.0 y+3.8175 z+1.375 +n3120 g1 x+0.0 y+3.8125 z+1.37 +n3130 g1 x+0.1875 y+4.0 +n3140 g1 x+0.1825 y+2.0 z+1.375 +n3150 g1 x+0.1875 y+0.0 z+1.37 (end left and back ramps) +n3160 g1 x+0.375 z+1.53125 (start left and back ledges) +n3170 g1 y+3.625 +n3180 g1 x+4.0 (end left and back ledges) +n3190 g1 y+4.0 z+1.37 (start right and front ramps) +n3300 g1 y+0.5 z+1.06379 +n3310 g1 y+0.0 +n3320 g1 x+3.5 +n3330 g1 x+0.0 z+1.37 +n3340 g1 y+0.125 +n3350 g1 x+3.5 z+1.06379 +n3360 g1 x+3.875 +n3370 g1 y+0.5 +n3380 g1 y+4.0 z+1.37 +n3390 g1 x+3.75 +n3400 g1 y+0.5 z+1.06379 +n3410 g1 y+0.25 +n3420 g1 x+3.5 +n3430 g1 x+0.0 z+1.37 +n3440 g1 y+0.375 +n3450 g1 x+3.5 z+1.06379 +n3460 g1 x+3.625 +n3470 g1 y+0.5 +n3480 g1 y+4.0 z+1.37 +n3490 g0 z+3.0 (end right and front ramps) +n3500 M5 +n3510 M2 + + diff --git a/nc_files/comp-g1.ngc b/nc_files/comp-g1.ngc new file mode 100644 index 00000000000..ed74f96298a --- /dev/null +++ b/nc_files/comp-g1.ngc @@ -0,0 +1,39 @@ +(comp-g1.ngc) +(This is the program shows a G1 straight feed entry and exit move) +(with cutter radius compensation from the tool table) +(tool 4 is 1" in diameter and must be defined in the tool table) +(this file needs X-4 to X5 travel and Y-3 to Y5 travel) + +G20 (set units to inches) +F60 (set feed to 60 IPM) + +(first, no compensation so we can see the part outline) +G0 Z1 +G0 X2 Y3 +G1 Z0 +G2 X3 Y2 J-1 (part outline) +G1 Y-1 +G2 X2 Y-2 I-1 +G1 X-3 +G1 X1.4 Y2.8 +G2 X2 Y3 I.6 J-.8 + +(with compensation) +T4 M6 (change tool) +G0 Z1 +(straight line entries must not form a concave path or it is an error) +G0 X0 Y3.5 (change Y3.5 to Y4 to see the concave entry error) +G1 Z0 +G41 (turn cutter comp left on) +G1 X2 Y3 (entry move) +G2 X3 Y2 J-1 (same path as above) +G1 Y-1 +G2 X2 Y-2 I-1 +G1 X-3 +G1 X1.4 Y2.8 +G2 X2 Y3 i.6 J-.8 +G40 (turn cutter comp off) +G1 X3 Y3.5 (exit move can be any angle) +T0 M6 (remove tool) + +M2 diff --git a/nc_files/comp.ngc b/nc_files/comp.ngc new file mode 100644 index 00000000000..89061bf173c --- /dev/null +++ b/nc_files/comp.ngc @@ -0,0 +1,61 @@ +g20 g64 g17 +g0x-.2y-.2z0 +f30 +g40 +g1x0y0 +g1y1 +g3r.25x-.25y1.25 +g1x-.5 +g2r.25x-.75y1.5 +g1y1.75 +g0x-.2y-.2z0 +g42 d1 +g1x0y0 +g1y1 +g3r.25x-.25y1.25 +g1x-.5 +g2r.25x-.75y1.5 +g1y1.75 +g40 +g0x.2y-.2z0 +g41 d1 +g1x0y0 +g1y1 +g3r.25x-.25y1.25 +g1x-.5 +g2r.25x-.75y1.5 +g1y1.75 +g40 + +g20 g64 g18 +g0x-.2z-.2y0 +g40 +g1x0z0 +g1z1 +g2r.25x-.25z1.25 +g1x-.5 +g3r.25x-.75z1.5 +g1z1.75 +g0x-.2z-.2y0 +g42 d1 +g1x0z0 +g1z1 +g2r.25x-.25z1.25 +g1x-.5 +g3r.25x-.75z1.5 +g1z1.75 +g40 +g0x.2z-.2y0 +g41 d1 +g1x0z0 +g1z1 +g2r.25x-.25z1.25 +g1x-.5 +g3r.25x-.75z1.5 +g1z1.75 +g40 +g0x.2z-.2y0 + +m2 + + diff --git a/nc_files/comp311.ngc b/nc_files/comp311.ngc new file mode 100644 index 00000000000..e151c9f4b96 --- /dev/null +++ b/nc_files/comp311.ngc @@ -0,0 +1,37 @@ +(this is the program describing entry moves for) +(radius compensation in Figure 3 of the Handbook) +(http://linuxcnc.org/docs/2.9/html/gcode/tool-compensation.html) + +g20 f60 + +(first, no compensation so we can see the part outline) +g0 z1 +g0 x1 y5 +g1 z0 +g1 y4 +g3 x2 y3 i1 +g2 x3 y2 j-1 +g1 y-1 +g2 x2 y-2 i-1 +g1 x-2 +g2 x-2.6 y-0.2 j1 +g1 x1.4 y2.8 +g2 x2 y3 i.6 j-.8 + +(with compensation) +t4 m6 +g0 z1 +g0 x1 y5 +g1 z0 +g41 g1 y4 +g3 x2 y3 i1 +g2 x3 y2 j-1 +g1 y-1 +g2 x2 y-2 i-1 +g1 x-2 +g2 x-2.6 y-0.2 j1 +g1 x1.4 y2.8 +g2 x2 y3 i.6 j-.8 +g40 + +m2 diff --git a/nc_files/comp311_2.ngc b/nc_files/comp311_2.ngc new file mode 100644 index 00000000000..18d70cc2ea9 --- /dev/null +++ b/nc_files/comp311_2.ngc @@ -0,0 +1,36 @@ +(this is the program describing entry moves for) +(radius compensation in Figure 3 of the Handbook) +(http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_38a.html#999268) + +g20 f60 + +(first, no compensation so we can see the part outline) +g0 z1 +g0 x1 y4 +g1 z0 +g3 x2 y3 i1 +g2 x3 y2 j-1 +g1 y-1 +g2 x2 y-2 i-1 +g1 x-2 +g2 x-2.6 y-0.2 j1 +g1 x1.4 y2.8 +g2 x2 y3 i.6 j-.8 + +(with compensation) +t4 m6 +g0 z1 +g0 x1 y4 +g1 z0 +g41 +g3 x2 y3 i1 +g2 x3 y2 j-1 +g1 y-1 +g2 x2 y-2 i-1 +g1 x-2 +g2 x-2.6 y-0.2 j1 +g1 x1.4 y2.8 +g2 x2 y3 i.6 j-.8 +g40 + +m2 diff --git a/nc_files/cone.ngc b/nc_files/cone.ngc new file mode 100644 index 00000000000..a5af85c04af --- /dev/null +++ b/nc_files/cone.ngc @@ -0,0 +1,42 @@ +(for the simulated 5 axis machine) +g21 g90 g94 g28 + +o200 sub + +g0 b0 c0 (tool length change must happen with b,c=0) +g91 g28 z0 (could also be done with tool change position) +g90 +g43.1 z#1 (change tool length) +g0z0 (move Z to apply new length) + +x-100 b-45 c-180 +g1 z-100 f2000 + +#100=-180 +o100 while [ #100 le 180 ] + g1 x[100*cos[#100]] y[100*sin[#100]] c#100 + #100=[#100+10] +o100 endwhile +g0 z0 +x0 y0 b0 c0 +o200 endsub + +(cut around the "cone" with different tool lengths) +o200 call [50] +o200 call [80] + +g61 + +g0 x-100 b-45 c-180 +#100=-180 +o101 while [ #100 lt 180 ] + g0 x[150*cos[#100]] y[150*sin[#100]] z-100 c#100 + g1 w100 f2000 (drill) + g0 w0 + #100=[#100+45] +o101 endwhile + +g28 +g49 + +m2 diff --git a/nc_files/daisy.ngc b/nc_files/daisy.ngc new file mode 100644 index 00000000000..6be373f3787 --- /dev/null +++ b/nc_files/daisy.ngc @@ -0,0 +1,159 @@ +G20 + +O100 sub ([f0] [f1] [f2] [f3]) +#61=#1 + +O110 if [#2 gt 0] +#62=#2 +O110 else +#62=#1 +O110 endif + +O111 if [#3 gt 0] +#63=#3 +O111 else +#63=#1 +O111 endif + +O112 if [#4 gt 0] +#64=#4 +O112 else +#64=#1 +O112 endif + +#41=0 #42=0 #43=0 #44=0 +G0 X0Y0Z0A0 +G93 +O100 endsub + +O200 sub ([t] [p1] [p2] [p3] [p4]) + +(Find new X) +#2=[#2*#1/#61] +O210 if [#41 gt 0] + #41=[#41-#2] +O210 else + #41=[#41+#2] +O210 endif + +(Find new Y) +#3=[#3*#1/#62] +O220 if [#42 gt 0] + #42=[#42-#3] +O220 else + #42=[#42+#3] +O220 endif + +(Find new Z) +#4=[#4*#1/#63] +O230 if [#43 gt 0] + #43=[#43-#4] +O230 else + #43=[#43+#4] +O230 endif + +(Find new A) +#5=[#5*#1/#64] +O240 if [#44 gt 0] + #44=[#44-#5] +O240 else + #44=[#44+#5] +O240 endif + +G1 X#41 Y#42 Z#43 A#44 F[60/#1] + +O200 endsub + +#100 = [440*1.781797] (Key of G) + +(equal temperament chromatic scale) +#101 = [#100*1.059463] (g#) +#102 = [#100*1.122462] (a) +#103 = [#100*1.189207] (a#) +#104 = [#100*1.259921] (b) +#105 = [#100*1.334840] (c) +#106 = [#100*1.414214] (c#) +#107 = [#100*1.498307] (d) +#108 = [#100*1.587401] (d#) +#109 = [#100*1.681793] (e) +#110 = [#100*1.781797] (f) +#111 = [#100*1.887749] (f#) + +(set XYZA axis scales) +O100 call [6400] [6400] [8000] [80] + +G4P2 + +O200 call [1] [#107] [#100/2.0] [#104/2.0] [0] (Dai-) (G) +O200 call [1] [#104] [#100/2.0] [#104/2.0] [0] (-sy) + +O200 call [1] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (Dai-) +O200 call [1] [#107/2.0] [#100/2.0] [#104/2.0] [#110/2.0] (-sy) (G7) + +O200 call [0.333] [#109/2.0] [#100/2.0] [#105/2.0] [#109/2.0] (Give) (C) +O200 call [0.333] [#111/2.0] [#100/2.0] [#105/2.0] [#109/2.0] (me) +O200 call [0.333] [#100] [#100/2.0] [#105/2.0] [#109/2.0] (your) +O200 call [0.667] [#109/2.0] [#102/2.0] [#105/2.0] [#100] (ans-) (Am7) +O200 call [0.333] [#100] [#102/2.0] [#105/2.0] [#100] (-wer) + +O200 call [2] [#107/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (do.) (G) + +O200 call [1] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (I'm) (D7) +O200 call [1] [#107] [#111/4.0] [#105/2.0] [#107/2.0] (half) + +O200 call [1] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (cra-) (G) +O200 call [1] [#100] [#100/2.0] [#104/2.0] [#109/2.0] (-zy) (Em) + +O200 call [0.333] [#109/2.0] [#102/2.0] [#106/2.0] [#100] (All) (A7) +O200 call [0.333] [#111/2.0] [#102/2.0] [#106/2.0] [#100] (for) +O200 call [0.333] [#100] [#102/2.0] [#106/2.0] [#100] (the) +O200 call [0.667] [#102] [#102/2.0] [#106/2.0] [#100] (love) +O200 call [0.333] [#104] [#102/2.0] [#106/2.0] [#100] (of) + +O200 call [1.667] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (you..) (D7) +O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (it) + +O200 call [0.333] [#105] [#111/4.0] [#105/2.0] [#107/2.0] (won't) (D7) +O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (be) +O200 call [0.333] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (a) + +O200 call [0.667] [#107] [#111/4.0] [#105/2.0] [#107/2.0] (sty-) +O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (-lish) + +O200 call [0.333] [#102] [#100/2.0] [#104/2.0] [#107/2.0] (marr-) (G) +O200 call [1.333] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (iage...) +O200 call [0.333] [#102] [#100/2.0] [#104/2.0] [#107/2.0] (I) + +O200 call [0.667] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (can't) +O200 call [0.333] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (a-) + +O200 call [0.667] [#109/2.0] [#100/2.0] [#105/2.0] [#109/2.0] (-fford) (C) +O200 call [0.333] [#100] [#100/2.0] [#105/2.0] [#109/2.0] (a) + +O200 call [0.333] [#109/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (carr-) (G) +O200 call [1.333] [#107/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (iage...) +O200 call [0.333] [#107/2.0] [#100/2.0] [#104/2.0] [#107/2.0] (but) + +O200 call [0.667] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (you'll) (G) +O200 call [0.333] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (look) +O200 call [0.667] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (sweet) (D7) +O200 call [0.333] [#107/2.0] [#111/4.0] [#105/2.0] [#107/2.0] (up-) + +O200 call [0.667] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (-on) (G) +O200 call [0.333] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (the) +O200 call [0.333] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (seat) (D7) +O200 call [0.333] [#104] [#111/4.0] [#105/2.0] [#107/2.0] (of) +O200 call [0.333] [#105] [#111/4.0] [#105/2.0] [#107/2.0] (a) + +O200 call [0.333] [#107] [#100/2.0] [#104/2.0] [#107/2.0] (bi-) (G) +O200 call [0.333] [#104] [#100/2.0] [#104/2.0] [#107/2.0] (-cy-) +O200 call [0.333] [#100] [#100/2.0] [#104/2.0] [#107/2.0] (-cle) +O200 call [0.667] [#102] [#111/4.0] [#105/2.0] [#107/2.0] (built) (D7) +O200 call [0.333] [#107/2.0] [#111/4.0] [#105/2.0] [#107/2.0] (for) + +O200 call [2] [#100] [#100/4.0] [#104/2.0] [#107/2.0] (two.) (G) + +G4P2 +G0 X0Y0Z0A0 + +M2 diff --git a/nc_files/factorial.ngc b/nc_files/factorial.ngc new file mode 100644 index 00000000000..255f57527ab --- /dev/null +++ b/nc_files/factorial.ngc @@ -0,0 +1,11 @@ +; recursive function example +; factorial +o sub +o if [[#1] EQ 0] +o return [1] +o else +o call [[#1] - 1] +o return [#<_value> * #1] +o endif +o endsub +m2 diff --git a/nc_files/filtertest-gui.py b/nc_files/filtertest-gui.py new file mode 100644 index 00000000000..863960bbb65 --- /dev/null +++ b/nc_files/filtertest-gui.py @@ -0,0 +1,64 @@ +import sys +from qtpy.QtWidgets import (QApplication, QDialog, QDialogButtonBox, + QVBoxLayout,QDialogButtonBox) +from qtpy.QtCore import QTimer, Qt + +class CustomDialog(QDialog): + + def __init__(self, *args, **kwargs): + super(CustomDialog, self).__init__(*args, **kwargs) + + self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint) + self.setWindowTitle("Filter-with-GUI Test") + + QBtn = QDialogButtonBox.Cancel + + self.buttonBox = QDialogButtonBox(QBtn) + self.buttonBox.rejected.connect(self.reject) + + self.layout = QVBoxLayout() + self.layout.addWidget(self.buttonBox) + self.setLayout(self.layout) + + self._percentDone = 0 + + self._timer = QTimer() + self._timer.timeout.connect(self.process) + self._timer.start(100) + + def reject(self): + # This provides an error message + print('You asked to cancel before finished.', file=sys.stderr) + raise SystemExit(1) + + def process(self): + try: + # output a line of gcode + print('(MSG, made line of code : {})'.format(self._percentDone), file=sys.stdout) + + # keep track of progress + self._percentDone +=1 + + # update progress + print('FILTER_PROGRESS={}'.format(self._percentDone), file=sys.stderr) + + # if done end with no error/error message + if self._percentDone == 100: + print("m2") + raise SystemExit(0) + + except Exception as e: + # This provides an error message + print(('Something bad happened:',e), file=sys.stderr) + # this signals the error message should be shown + raise SystemExit(1) + + + +if __name__ == "__main__": + + app = QApplication(sys.argv) + w = CustomDialog() + w.show() + sys.exit( app.exec_() ) + diff --git a/nc_files/filtertest.py b/nc_files/filtertest.py new file mode 100644 index 00000000000..9f08327920f --- /dev/null +++ b/nc_files/filtertest.py @@ -0,0 +1,19 @@ +import time +import sys + +for i in range(0,100): + try: + # simulate calculation time + time.sleep(.1) + + # output a line of gcode + print('G0 X1', file=sys.stdout) + + # update progress + print('FILTER_PROGRESS={}'.format(i), file=sys.stderr) + except: + # This causes an error message + print('Error; But this was only a test', file=sys.stderr) + raise SystemExit(1) + +print('M2', file=sys.stdout) diff --git a/nc_files/flowsnake.ngc b/nc_files/flowsnake.ngc new file mode 100644 index 00000000000..cdeecefe83e --- /dev/null +++ b/nc_files/flowsnake.ngc @@ -0,0 +1,45 @@ +% +(Program to mill a flowsnake) +(K. Lerman) + +o1000 sub +# = #1 +# = #2 +# = #3 +# = #4 +# = #5 + + o1001 if [# EQ 0] + g1 f10 x# y# + o1001 else + # = [[# * 2 + #]/3] + # = [[# * 2 + #]/3] + + # = [[# + #]/2 + [# - #]/[SQRT[12.0]]] + # = [[# + #]/2 - [# - #]/[SQRT[12.0]]] + + # = [[# + 2 * #]/3] + # = [[# + 2 * #]/3] + + o1000 call [#-1] [#] [#] [#] [#] + o1000 call [#-1] [#] [#] [#] [#] + o1000 call [#-1] [#] [#] [#] [#] + o1000 call [#-1] [#] [#] [#] [#] + o1001 endif +o1000 endsub + +S1M3 +g0 z1 +g0 x.25 y1.0 +g1 f10 z0 +# = 5 +#<_foobar> = 729 +(debug, param 2:#2) +(debug, level:#) +(debug, _foobar:#<_foo bar>) +o1000 call [#] [.25] [1.0] [3.75] [1.0] +o1000 call [#] [3.75] [1.0] [2.0] [3.95] +o1000 call [#] [2.0] [3.95] [.25] [1.0] +g0 z1 +M5 +% diff --git a/nc_files/flowsnake.py b/nc_files/flowsnake.py new file mode 100644 index 00000000000..6aa7e0c6a27 --- /dev/null +++ b/nc_files/flowsnake.py @@ -0,0 +1,29 @@ +from math import sqrt + +def flowsnake(level, startX, startY, endX, endY): + if level == 0: + print("g1 f10 x", endX, "y", endY) + else: + p1X = (startX * 2 + endX)/3 + p1Y = (startY * 2 + endY)/3 + + p2X = (startX + endX)/2 + (endY - startY)/sqrt(12.0) + p2Y = (startY + endY)/2 - (endX - startX)/sqrt(12.0) + + p3X = (startX + 2 * endX)/3 + p3Y = (startY + 2 * endY)/3 + + flowsnake(level-1, startX, startY, p1X, p1Y) + flowsnake(level-1, p1X, p1Y, p2X, p2Y) + flowsnake(level-1, p2X, p2Y, p3X, p3Y) + flowsnake(level-1, p3X, p3Y, endX, endY) + +print("S1M3") +print("g0 z1") +print("g0 x.25 y1.0") +print("g1 f10 z0") +flowsnake(5, .25, 1.0, 3.75, 1.0) +flowsnake(5, 3.75, 1.0, 2.0, 3.95) +flowsnake(5, 2.0, 3.95, .25, 1.0) +print("g0 z1") +print("M2") diff --git a/nc_files/g20sub.ngc b/nc_files/g20sub.ngc new file mode 100644 index 00000000000..819df2cb1e6 --- /dev/null +++ b/nc_files/g20sub.ngc @@ -0,0 +1,14 @@ +; + +O sub +M70 (save in current call context) + +g20 (imperial) +g90 (absolute mode) +f4 (much faster feed) +G0 X1.0 Y1.0 (move absolute to 1in/1in) + +M71 (restore to caller context) +O endsub + +m2 \ No newline at end of file diff --git a/nc_files/g76.ngc b/nc_files/g76.ngc new file mode 100644 index 00000000000..fd41030c3be --- /dev/null +++ b/nc_files/g76.ngc @@ -0,0 +1,115 @@ +(cut a small 1/4-20 thread and part it) +(t1 is for facing and left turning, t4 is threading tool, t9 parting) +(proper tool offsets should be set in the tool table!) + +g20 g64 g18 + +(face and turn outside diameter) +t1 m6 +s1200 m3 +g4p1 +g43 +g0z0x.2 +f4 +g1x-.0625 +g0z.1 +x.120 +f5 +g1z-.55 +g0x.2 + + +(round the end) +o100 sub +g0z1x-1 +g41 +g0z1 +g2 x0 z0 r1 +g3 x3.05 z-3.05 i0 k-3.05 +g91 +g2 z-1.5 x1 r1.5 +g90 +g40 +g0 x4.5 +o100 endsub + +g21 +f50 + +g0z1.3 +g92z0 +o100 call + +f50 + +g92.1 +g0z.9 +g92z0 +o100 call + +g92.1 +g0z.5 +g92z0 +o100 call + +g92.1 +g0z.3 +g92z0 +o100 call + +g92.1 +g0z.1 +g92z0 +o100 call + +g92.1 +g0z0 +g92z0 +o100 call +g0z0 +o100 call + +g92.1 +g0z-.025 +g92z0 +o100 call + +g92.1 +m5 +g20 +f5 + +(thread) +t4 m6 +g43 +s800 m3 +g4p1 +g0z.2x.2 + +(p = thread pitch, distance per revolution) +(z = end of drive line) +(i = offset from drive line to thread peaks) +( negative i means the threads are at a smaller radius than the drive line,) +( so i is negative for outside threads, positive for inside threads) +(j = initial cut depth; subsequent depths follow degression formula) +(r = depth degression: 1.0 = constant depth, 2.0 = constant area) +( any number >= 1.0 allowed) +(k = full thread depth) +(q = "compound slide" angle) +(h = number of spring passes) +(e = distance along drive line used for tapered start/end) +(l = which ends get the taper: 0 = neither, 1 = begin, 2 = end, 3 = both) +g76 p.05 z-.5 i-.075 j.008 k.045 h3 r2.0 q29.5 e.05 l2 +g0x.5 +g0z0 +m5 + +(part) +t9 m6 +g43 +s400 m3 +g4p1 +g0z-.6x.135 +g1x0f.2 +g0x.2 +m2 diff --git a/nc_files/g881.ngc b/nc_files/g881.ngc new file mode 100644 index 00000000000..d77df776a37 --- /dev/null +++ b/nc_files/g881.ngc @@ -0,0 +1,37 @@ +o sub +(debug, in g881); x=[#1] y=[#2] z=[#3] r=[#4]) + +(debug, g881 call_level= #<_call_level> remap_level=#<_remap_level>) + +o if [EXISTS[#]] +(debug, X param set: #) +o endif + +o if [EXISTS[#]] +(debug, Y param set: #) +o endif + +o if [EXISTS[#]] +(debug, Z param set: #) +o endif + +o if [EXISTS[#

    ]] +(debug, P param set: #

    ) +o endif + +o if [EXISTS[#]] +(debug, Q param set: #) +o endif + +o if [EXISTS[#]] +(debug, R param set: #) +o endif + +;m250 + +(debug, end g881) + + +o endsub [1] +m2 + diff --git a/nc_files/g881min.ngc b/nc_files/g881min.ngc new file mode 100644 index 00000000000..d03cc8c3dcd --- /dev/null +++ b/nc_files/g881min.ngc @@ -0,0 +1,5 @@ +o sub +(debug, in g881min, nargs=#) +; # = 31 +o endsub [1] +m2 diff --git a/nc_files/g882.ngc b/nc_files/g882.ngc new file mode 100644 index 00000000000..6715a7a8c8e --- /dev/null +++ b/nc_files/g882.ngc @@ -0,0 +1,6 @@ +o sub +(debug, in g882 x=[#1] y=[#2] z=[#3] r=[#4], next is M75) +m75p1q47 +o endsub [1] +m2 + diff --git a/nc_files/gcmc_lib/cpocket.gcmc b/nc_files/gcmc_lib/cpocket.gcmc new file mode 100644 index 00000000000..938fe1a3b80 --- /dev/null +++ b/nc_files/gcmc_lib/cpocket.gcmc @@ -0,0 +1,196 @@ +/* renamed from cc_hole.gcmc for clarity + * + * G-code meta compiler + * + * Copyright (C) 2014 B. Stultiens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Hole milling example + * -------------------- + * Mill a hole in continuous curvature movements. Not a single straight line is + * required to mill an arbitrary large hole from any size milling bit. + * Continuous curvature milling reduces the stress on the mill, bit and object + * by preventing any jerking. + * + * A hole is milled at a given center and depth with a target radius. The + * milling-bit radius and the cutting step define how many turning cycles are + * required to finish the hole. The mill is retracted with a helical move back + * to the center and starting Z-position. + * + * @@@--svg-toolwidth 6.0 --svg-opacity 0.2@@@ + */ + +feedrate(600mm); + +function cc_hole(center, targetradius, toolradius, cutstep, cutz) +{ + local mkunitsum = ismodemm() ? 0.0mm : 0.0in; + local oldz = position()[2]; + if(!isvector(center) || count(center) < 1) { + error("Center argument must be a vector and must have at least one X or Y coordinate"); + return; + } + if(count(center) > 3) { + error("Center argument has more than 3 axes defined, may cause unforeseen problems"); + return; + } + if(count(center) > 2 && !isundef(center[2])) { + warning("Center argument has a Z-coordinate, ignoring to prevent plowing into object"); + center = head(center, 2); + } + if((count(center) == 1 && isundef(center[0])) || (count(center) > 1 && isundef(center[0]) && isundef(center[1]))) { + warning("Center argument has neither X nor Y coordinate, using current position"); + center = head(position(), 2); + } + if(!isscalar(targetradius)) { + error("Target radius argument must be scalar"); + return; + } + if(!isnone(targetradius) && !isdistance(targetradius)) { + error("Target radius argument must be a distance"); + return; + } + targetradius += mkunitsum; // Make sure we have units + if(targetradius <= 0.0mm) { + error("Target radius argument must be larger than zero"); + return; + } + if(!isscalar(toolradius)) { + error("Tool radius argument must be scalar"); + return; + } + if(!isnone(toolradius) && !isdistance(toolradius)) { + error("Tool radius argument must be a distance"); + return; + } + toolradius += mkunitsum; // Make sure we have units + if(toolradius <= 0.0mm) { + error("Tool radius argument must be larger than zero"); + return; + } + if(targetradius <= toolradius) { + error("Hole target radius (", targetradius, ") must be larger than tool radius (", toolradius, ")"); + return; + } + if(!isscalar(cutstep)) { + error("Cutting step argument must be scalar"); + return; + } + if(!isnone(cutstep) && !isdistance(cutstep)) { + error("Cutting step must be a distance"); + return; + } + cutstep += mkunitsum; // Make sure we have units + if(cutstep <= 0.0mm) { + error("Cutting step argument must be larger than zero"); + return; + } + if(!isscalar(cutz)) { + error("Cutting depth argument must be scalar"); + return; + } + if(!isnone(cutz) && !isdistance(cutz)) { + error("Cutting depth must be a distance"); + return; + } + cutz += mkunitsum; // Make sure we have units + if(cutstep > 2.0*toolradius) { + warning("Cutting step is larger than twice the tool radius, not all material will be removed"); + } elif(cutstep == 2.0*toolradius) { + warning("Cutting step is exactly twice the tool radius, material may be left at the inner edge"); + } + + comment("-- cc_hole center=", center, " targetradius=", targetradius, " toolradius=", toolradius, " cutstep=", cutstep, " cutz=", cutz, " --"); + + goto(center); // Center of the hole + move([-, -, cutz]); // Start the initial cut at the center; r = toolradius + + local r = toolradius; // Keep track how big the hole is + local n = 1; + local dir = -1.0; // Alternating end-point tracking (=> (-1)^n sign shift) + local p; // endpoint for new arc into next hole circle + + // We have to circle 1..n times to make the hole + while(r < targetradius) { + if(targetradius - r >= cutstep) { + // Take a full cutting step because space allows + p = (2*n-1) * cutstep; + r += cutstep; + } else { + // Last cut is under cutstep in size + p = (2*n-2) * cutstep + targetradius - r; + r += targetradius - r; + } + arc_cw_r([0.0mm, dir * p], p/2.0); // Arc into the next circle + circle_cw(center); // Widen the hole + n++; + dir = -dir; // Arc endpoint alternate + } + + // Curve _out_ of the hole by helical arc move back to center and oldz + arc_cw_r([0.0mm, dir * (targetradius - toolradius), oldz-cutz], (targetradius - toolradius)/2.0); + + comment("-- end cc_hole --"); + return; +} + +/* -------------------- Main Program -------------------- */ + +//ngcgui: info: Circular pocket with continuous curvature movements + +//ngcgui: umode = 1; //, units: 1:mm, 0:inch +//ngcgui: xctr = 0; //, x center +//ngcgui: yctr = 0; //, y center +//ngcgui: diameter = 10; //, diameter +//ngcgui: tool_diameter = 2; //, tool_diameter +//ngcgui: step = 1; //, step +//ngcgui: cutdepth = -1; //, cutdepth +//ngcgui: xfinal = 0; // +//ngcgui: yfinal = 0; // +//ngcgui: zfinal = 1; // +//ngcgui: verbose = 0; // precede ensure_units +include("ensure_units.gcmc"); // avoid preamble conflict + +if (umode == 1) { + zero = 0.0mm; +} else { + zero = 0.0in; +} +// ngcgui entries are unitless so these additions are used +// to ensure 1) floatingpoint and 2) units per umode setting + + xctr = zero + xctr; + yctr = zero + yctr; + diameter = zero + diameter; +tool_diameter = zero + tool_diameter; + step = zero + step; + cutdepth = zero + cutdepth; + xfinal = zero + xfinal; + yfinal = zero + xfinal; + zfinal = zero + xfinal; + + +location = [xctr,yctr]; +FINALPOS = [xfinal,yfinal,zfinal]; +goto(FINALPOS); +if(!issvg()) { + move(FINALPOS); // To visualize subsequent rapids in LinuxCNC +} + +// Center R_hole R_tool Step Cutting-Z +cc_hole(location, diameter/2, tool_diameter/2, step, cutdepth); + +goto(FINALPOS); diff --git a/nc_files/gcmc_lib/cpocket.png b/nc_files/gcmc_lib/cpocket.png new file mode 100644 index 0000000000000000000000000000000000000000..7854338985d04a726fef266d1c580349aee37af8 GIT binary patch literal 5836 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 literal 0 HcmV?d00001 diff --git a/nc_files/gcmc_lib/drill.gcmc b/nc_files/gcmc_lib/drill.gcmc new file mode 100644 index 00000000000..8ef00394ae6 --- /dev/null +++ b/nc_files/gcmc_lib/drill.gcmc @@ -0,0 +1,58 @@ +/******************************************************* +The following //comment lines identify ngcgui inputs: + +example option: +//ngcgui: --precision 6 + +info message (appears on ngcgui tab page): +//ngcgui: info: gcmc drill example + +variables with defaults: +//ngcgui: umode = 1; //, units: 1:mm, 0:inch +//ngcgui: nx=4; // +//ngcgui: ny=3; // +//ngcgui: xstart=1; // +//ngcgui: ystart=1; // +//ngcgui: xspacing=0.5; // +//ngcgui: yspacing=1.0; // +//ngcgui: retract=0.1; // +//ngcgui: increment=0.5; // +//ngcgui: repeatct=1; // +//ngcgui: fr=10,feedrate; // + +variable with comment text: +//ngcgui: zdepth=0 , z(neg typ) +//ngcgui: verbose = 0; //precede ensure_units +*******************************************************/ +include("ensure_units.gcmc"); //avoid preamble conflict + +if (umode == 1) { + zero = 0.0mm; +} else { + zero = 0.0in; +} +// ngcgui entries are unitless so these additions are used +// to ensure 1) floatingpoint and 2) units per umode setting + xstart = zero + xstart; + ystart = zero + ystart; + xspacing = zero + xspacing; + yspacing = zero + yspacing; + retract = zero + retract; +increment = zero + increment; + fr = zero + fr; + +feedrate(fr); + +x=xstart; +y=ystart; +sign = 1; + +for (i = 0; i < nx ; i++) { + for (j = 0; j < ny; j++) { + drill([x, y, zdepth], retract, increment, repeatct); + y = y + sign * yspacing; + } + y = y - sign * yspacing; + sign = -1 *sign; + x = x + xspacing; +} diff --git a/nc_files/gcmc_lib/drill.png b/nc_files/gcmc_lib/drill.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef98ce8844b7c654ae69b873b6ed3db2c95bb22 GIT binary patch literal 2578 zcmZ`*X;_n27QSB~By1Y01jAwxw}J$su@EpoWKnP-47(5{vSUj?f`BX`vWQk4ZABDQ zmMI9B7_d{v=K`0_np%Bm(kO)Kq#y}zyJ5K97GxOuS-#zC&=RN1S_j&GlFS)rM z)>P9~0|02cI6Jxn0Fe~?MWl*i&ERV8RQyz9oKMgJ*zoZE2i@GWK~LdC#JL=ILX2x{ z(!#0{@IT#BxYXmEeB&IVqoP7-aUkSu#OT?FLPho+7srF1iKFx5Jlf`NG-9%9ud)5H zNsX)5V~~5L7bd`K*xzseNVO2?koL7h(8kHfU!&TM+oqAuNQ*=EiKlNE3?|Ny$z(~K z*NVgio5xA6OzOhh71A5o$>y0TheL;6ydLUbPmyf_cSa>>0K;t>VpsZU!pZ@pY{&%4 zC?yM|#lCdz|hZfK_*h^n!X= z!UiJ{`E0O^j2K&*j;WZw?njM^=};5(CqY+y4v%m{%wh>XJ+aD$SZ`*)g`&JbyULFI z*e4+>x3BwDp3EvPE{>5bjN^2#wzsuCSIxpu{qX!n~pJza(~^Pd%}0>m}ecF0z8BwgC^Tlg)`*g4R?$yR>)BULbxY%Xw$wg{@2> zV`fCDs^9Jo%nc0Nx{}E+SeDVx%gBYg2MQPLLl?GL>OHed-9cOQg1Nvn^s-mQ!C2avT2Rtt5;GoqTP~Ns;*{%i zyp#F^cYqea*6iJ%Ts#P>aDbk_a#NJGpR<|y z>X(pxQVhc~I&3{DWt$e$=FvIJM_*c~^K2OULC^7gcYo&@8=?~}wr`~rS^S!?m0Wga z|JL12-L_Agk9$0t4MUE7n^4Fr3!TXy3oolIuJ?a#&X&bCeEu$ixZ#?sYx`PtwMf$G zL?99=s{(`7?K&Pw8lh&_UM@eA+Fk2BW_n*xn4iTv$*YYt=mptY3`I`GJNZm?xQ|bI zn(Xb@De&PDStJYoY-ev@uiTT_nJG|Ea=dN2wwRfl-xybQw<(kMC)+SEtXjI2`M~!R zm7V=$oYJv5nc|i@<61u;}($o0(PskH`>d;U`Ycf5eb9hhr3cgS+h=ne9Lp9cm`*T~s9$LT2i185v4}tve|;WfegQ>6FT@#tF?Qhko~2nd-w-L8NItE%cX()WQog&_GFmwy)&X&p=KIm-#u7}l^M!ZbeREPW;ZdE2EXm- z?~RtUS#IRb^$)MD$dZkv5#lN5Aq4uY{K4IdPfrj2wvBYpCZcRrH#QM@9kKb`XYRFh zet>{Fq!E+4;>W!cOZl$YX}%B~!^xDX=b-K2F{sw)ugGm!-n)nwD``(2T5nQV`?XNIJT1SrxjW1STN!GEFwynidswUVOpl)r>-ktds^OOd9p5^=l1A?Fw|DR6m<$gkXj8xOqMn`bX)l@b90NU@fOKKAnwjvNWl32zaA zcZ57>gHXm6-!HA^&NbX5h=tG3=B+m%jld=%?>KDWmM>5vLB7jUu9{=u^W_9KK{2Ra z8KSbQa*ChkPMpH@PFBF0zIn;E>QNm0X8>c`Lsd+5hp?7HklA*jut9*!gYH1+gn}Yi zrY1}uLUyVMh%&YvYi%3A?4aA( ne 1]\n\ + (debug, !!!ensure_units.gcmc: set g21)\n\ + g21\n\ + o1 endif\n\ + "); + } else { + literal("\ + o1 if [#<_metric> ne 1]\n\ + g21\n\ + o1 endif\n\ + "); + } +} else { + if (isdefined("verbose") && verbose == 1) { + literal("\ + o1 if [#<_imperial> ne 1]\n\ + (debug, !!!ensure_units.gcmc: set g20)\n\ + g20\n\ + o1 endif\n\ + "); + } else { + literal("\ + o1 if [#<_imperial> ne 1]\n\ + g20\n\ + o1 endif\n\ + "); + } +} diff --git a/nc_files/gcmc_lib/involute-gear.gcmc b/nc_files/gcmc_lib/involute-gear.gcmc new file mode 100644 index 00000000000..fd62bd10f0f --- /dev/null +++ b/nc_files/gcmc_lib/involute-gear.gcmc @@ -0,0 +1,240 @@ +/* + * G-code meta compiler + * + * Copyright (C) 2014 B. Stultiens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Gear example + * ------------ + * This example is by no means a complete or correct implementation of gears in + * any generic form. It is primarily for inspiration and to show what gcmc can + * do with relatively little coding. You may use this script as inspiration to + * create a better implementation if you like. + * + * Please note: The below parameters will shift the examples with an XY offset + * as indicated by the options. These are passed on the command-line when the + * examples are generated. + * + * @@@--svg-toolwidth 0.1 --svg-opacity 1 --svg-no-movelayer -x 110 -y 70@@@ + */ + + +/* + * Gear terms: + * N - Number of Teeth + * Pa - Pressure Angle + * D - Pitch Diameter - D = N/P = Do - 2/P (Gear radius at center of the teeth) + * P - Diametral Pitch - P = N/D + * p - Circular Pitch - p = pi() / P + * Db - Base Diameter - Db = D * cos(Pa) (Bottom of teeth insertion) + * Dr - Root Diameter - Dr = D - 2b (Bottom of tooth cutout) + * Do - Outside Diameter - Do = D + 2a + * a - Addendum - a = 1/P + * b - Dedendum - b = ht - a + * ht - Whole Depth (Pa<20) - 2.157/P + * ht - Whole Depth (Pa>=20) - 2.2/P + 0.05mm (Total depth from outer dia to bottom) + * t - Tooth Thickness - t = pi()/(2*P) (Thinckness at Pitch Diameter) + */ + +__ang_step = 2.0deg; /* Trace interval for curves */ + +/* + * Point on involute curve at specified angle, see https://en.wikipedia.org/wiki/Involute + * Cartesian: + * x = a * ( cos(t) + t * sin(t)) + * y = a * ( sin(t) - t * cos(t)) + * Polar: + * r = a * sqrt(1 + t^2) = sqrt(a^2 + (a*t)^2) + * phi = t - atan(t) + * where: + * - a = circle radius + * - t = angle (radians) + * + * For angle from circle radius: t^2 = (r/a)^2 - 1 + */ +function involute_point(angle, radius) +{ + angle = to_rad(angle); /* Multiplication must be in radians */ + return radius * [cos(angle) + to_none(angle) * sin(angle), sin(angle) - to_none(angle) * cos(angle)]; +} + +function involute_angle(radius, outrad) +{ + return to_rad(sqrt(pow(outrad/radius, 2.0) - 1)); +} + +/* + * Make a gear with: + * - nteeth Number of teeth + * - pressure_angle Teeth contact pressure angle + * - diametral_pitch Diametral pitch (teets/length) + * + * Return a vectorlist with outer points of the gear centered at [0,0] + */ +function gear_P(nteeth, pressure_angle, diametral_pitch) +{ + /* The routine gets is serious trouble if you make the pressure angle + * too large or too small. Warn the user if such case occurs. + */ + if(pressure_angle > 24.6deg) { + warning("Pressure angle (", pressure_angle, ") too large, cannot fit teeth inside the set outside diameter"); + } + if(pressure_angle < 12.0deg) { + warning("Pressure angle (", pressure_angle, ") too small, teeth may get stuck at pitch radius"); + } + local i; + local pitch_diameter = nteeth / diametral_pitch; + local base_diameter = pitch_diameter * cos(pressure_angle); + local addendum = 1.0/diametral_pitch; + local ht = 2.157 / diametral_pitch; + local dedendum = ht - addendum; + local outside_diameter = pitch_diameter + 2.0*addendum; + local root_diameter = base_diameter - 2.0*dedendum; + local work_diameter = outside_diameter - 4.0*addendum; + + local tooth = {}; // The curve for one tooth + + /* + * message("nteeth=", nteeth, " pressure_angle=", pressure_angle, " diametral_pitch=", diametral_pitch); + * message("addendum=", addendum, " dedendum=", dedendum, " ht=", ht); + * message("pitch_diameter=", pitch_diameter); + * message("base_diameter=", base_diameter); + * message("outside_diameter=", outside_diameter); + * message("root_diameter=", root_diameter); + * message("work_diameter=", work_diameter); + */ + + /* + * Show the different diameters: + * hole([0, 0], pitch_diameter/2.0); + * hole([0, 0], base_diameter/2.0); + * hole([0, 0], outside_diameter/2.0); + * hole([0, 0], root_diameter/2.0); + * hole([0, 0], work_diameter/2.0); + */ + + // Fillet radius is approx. Will not reach root exactly, but close enough + // Otherwise need to calculate intersection with root-circle + local filletrad = (base_diameter - root_diameter)/8.0; + + // Center of the fillet arc, involute makes a ~240deg angle with fillet arc + // The fillet arc runs from the root to the working depth of the gear + local center = rotate_xy([-filletrad, 0.0mm], 60.0deg) + [work_diameter/2.0, 0]; + + // Trace the fillet arc from ~root-circle to working depth at involute arc starting Y-level + for(i = 180.0deg; i > 60.0deg; i -= __ang_step*2.5) { + tooth += { [cos(i), sin(i)] * filletrad + center }; + } + if(i != 60.0deg) { + // Add the last point if we did not reach the working depth + tooth += { [cos(60.0deg), sin(60.0deg)] * filletrad + center }; + } + + // Calculate the maximum involute angle to intersect at the outside radius + local max_a = involute_angle(base_diameter/2.0, outside_diameter/2.0); + + // Trace the involute arc from the base up to outside radius + for(i = 0.0deg; i < max_a; i += __ang_step) { + tooth += { involute_point(i, base_diameter/2.0)}; + } + if(i != max_a) { + // Add the last point if we did not reach the outside radius + tooth += { involute_point(max_a, base_diameter/2.0)}; + } + + // We now have one side of the tooth. Rotate to be at tooth-symmetry on X-axis + tooth = rotate_xy(tooth, -90.0deg / nteeth); + + // Add the same curve mirrored to make the other side of the tooth + // Coordinates reverse to have them all in one direction only + tooth += reverse(scale(tooth, [1, -1])); + + // Create all teeth of the gear by adding each tooth at correct angle + local gear = {}; + repeat(nteeth; i) { + gear += rotate_xy(tooth, 360.0deg * i / nteeth); + } + + return gear; +} + +/* -------------------- Helper Functions -------------------- */ + +/* + * Trace a path at given offset + */ +function trace(path, offset) +{ + goto(path[-1] + offset); + foreach(path; v) { + move(v + offset); + } +} + +/* + * Make a hole at center point with given radius + */ +function hole(point, radius) +{ + goto(point - [radius]); + circle_cw_r([radius, 0]); +} + +/* -------------------- Main Program -------------------- */ + +//ngcgui: info: Involute-gear example + +//ngcgui: umode = 1; //, units: 1:mm, 0:inch +//ngcgui: D = 100.0; //, Pitch Dia +//ngcgui: HD = 6.0; //, Hole Dia +//ngcgui: N = 9; //, Number of teeth +//ngcgui: PA = 20.0; //, Pressure Angle (deg) +//ngcgui: frate = 600; //, Feedrate +//ngcgui: xoffset = 0; +//ngcgui: yoffset = 0; +//ngcgui: howmany = 1; //, howmany (1 | 2) +//ngcgui: verbose = 0; +include("ensure_units.gcmc"); //avoid preamble conflict + +if (umode == 1) { + zero = 0.0mm; +} else { + zero = 0.0in; +} +// ngcgui entries are unitless so these additions are used +// to ensure 1) floatingpoint and 2) units per umode setting +frate = frate + zero; + HD = HD + zero; + D = D + zero; + PA = PA + 0.0deg; + +P = N/D; // Diametral pitch + +feedrate(frate); +location = [xoffset,yoffset]; + +if (howmany == 1) { + hole(location, HD/2.0); + trace(gear_P(N, PA, P), location); +} elif (howmany == 2) { + hole(location + [D/2.0, 0.0mm], HD/2.0); + trace(gear_P(N, PA, P), location + [D/2.0, 0.0mm]); + hole(location + [-D/2.0, 0.0mm], HD/2.0); + trace(gear_P(N, PA, P), location + [-D/2, 0.0mm]); +} else { + error("howmany must be 1 or 2"); +} + diff --git a/nc_files/gcmc_lib/involute-gear.png b/nc_files/gcmc_lib/involute-gear.png new file mode 100644 index 0000000000000000000000000000000000000000..4dde1e97cf2f8fcd8e10eed9202f0afe12d6d0bb GIT binary patch literal 4661 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 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + + +/* Return new path from 'srcpath' traced internally offset by 'width' */ +function erode(srcpath, width) +{ + local n, i, pp, pc, pn, v1, v2, bisect, newpoint, crossp, res; + n = count(srcpath); + res = {}; + for(i = 0; i < n; i++) { + pp = srcpath[(i-1+n)%n]; /* Previous point */ + pc = srcpath[i]; /* Current point */ + pn = srcpath[(i+1+n)%n]; /* Next point */ + v1 = normalize(pp - pc); + v2 = normalize(pn - pc); + bisect = width * normalize(v1 + v2); + newpoint = bisect + pc; + if(i > 0) { + /* Check convex polygon interior angle */ + crossp = v1[0] * v2[1] - v1[1] * v2[0]; + if(crossp < 0.0) { + newpoint = -bisect + pc; + } + } + res += { newpoint }; + } + return res; +} + +/* Trace the path at offset */ +function tracepath(path, offset) +{ + move(path[count(path)-1] + offset); + dwell(0); + foreach(path; p) { + move(p + offset); + dwell(0); + } +} + +/* A nice star */ +starpath = { + [ 1, 1], [ 0, 3], + [-1, 1], [-3, 0], + [-1, -1], [ 0, -3], + [ 1, -1], [ 3, 0] +}; + +if (umode == 1) { + fix = 0.0mm; +} else { + fix = 0.0in; +} + x1 = fix + x1; + y1 = fix + y1; + frate = fix + feedr; + zsafe = fix + zsafe; + zcut = fix + zcut; +erode_width = fix + erode_width; + +theoffset = [x1,y1]; +/******************** Program start ********************/ +feedrate(feedr); + +goto([-,-,zsafe]); /* Safe Z */ +starpath *= myscale*10.0; /* Scale the star */ +goto(starpath[count(starpath)-1]); /* First coordinate */ +move([-,-,zcut]); /* Goto cutting depth */ + +/* Cut the stars smaller and smaller */ +for(i = 0; i < n_erodes; i++) { + tracepath(erode(starpath, erode_width * -i), theoffset); +} + +move([-,-,zsafe]); /* Back to safe Z */ diff --git a/nc_files/gcmc_lib/star.png b/nc_files/gcmc_lib/star.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4d04844580eff47e060d3831d7db3b9289e4a4 GIT binary patch literal 2705 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 Ki?tT0-~R=`I!6Qm literal 0 HcmV?d00001 diff --git a/nc_files/gcmc_lib/trochoid-path.gcmc b/nc_files/gcmc_lib/trochoid-path.gcmc new file mode 100644 index 00000000000..d5d0ee2f8e8 --- /dev/null +++ b/nc_files/gcmc_lib/trochoid-path.gcmc @@ -0,0 +1,198 @@ +/* + * G-code meta compiler + * + * Copyright (C) 2014 B. Stultiens + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Trochoidal example + * ------------------ + * Trochoidal movement for high-speed milling. A path is followed in a circular + * pattern with given radius and increment. Afterwards, a clean cut is + * performed to remove the residuals. + * + * NOTE: To take full advantage of trochoidal milling, you need to have a CNC + * program that can look ahead to keep the speed high. For LinuxCNC that means + * you will need the git version on branch circular-blend-arc-rc3 (or any later + * branch thereof, until it is merges into the master branch). + * + * @@@--svg-toolwidth 0.5 --svg-opacity 0.25@@@ + */ + +/* + * Trochoidal point calculation. + * See: https://en.wikipedia.org/wiki/Trochoid + */ +function trochoid_point(ang, a, b) +{ + ang = to_rad(ang); // Trochoids are defined in radians + // The first part is the trochoid, the second part moves the first 180 + // degree point at a relative "0, 0" location so we can scale in any + // way without having to do hard math + return [ a * to_none(ang) - b * sin(ang), b - b * cos(ang) ] - [a*pi(), 2.0*b]; +} + +/* + * Perform a move from startpoint to endpoint using a trochoidal path. + * - Cutting at depth cutz (returns to old Z) + * - Trochoid radius as specified + * - Increment for each turn as specified + */ +function trochoid_move(startpoint, endpoint, cutz, radius, increment) +{ + local min_ainc = .1deg; // avoid too long compute times (and log( value<=1)) + local min_rotations = 5; // avoid confusing appearance if too small + local i; + local a = increment/(2.0*pi()); // Trochoid step parameter + local ainc = log10(to_mm(radius)) * 5.0deg; // Steps are logarithmic based on the radius to reduce small steps + local oldz = position()[2]; + local vec = endpoint - startpoint; // Vector denoting path to move + + if (ainc < min_ainc) { + error("ainc too small: ",ainc," (try: increase trochoid radius)"); + return; + } + + // If we are not moving, it is an error + if(length(vec) <= zero) { + error("trochoid move is not going anywhere"); + return; + } + + comment("-- trochoid_move at ", cutz, " from ", startpoint, " to ", endpoint, " radius=", radius, " increment=", increment, " --"); + // Calculate the number of *whole* rotations, rounded up, we need to make + local n = 2.0rad * pi() * to_none(ceil(length(vec) / increment)); + local nrotations = n/(2.0rad * pi()); + if (nrotations < min_rotations) { + error("too few rotations= ",nrotations," (try: decrease trochoid increment)"); + return; + } + if (verbose) { + comment("debug, rotations= ",nrotations); + comment("debug, ainc= ",ainc); + } + + // The path may be arbitrary angled, get the angle for rotating the trochoid + local rot = atan(vec[1], vec[0]); + + // Go to the trochoid entry-point and move to cutting deph + goto(startpoint + rotate_xy(trochoid_point(0.0rad, a, radius), rot)); + move([-, -, cutz]); + + // Calculate each next point of the trochoid until we traversed the whole path to the endpoint + for(i = 0.0deg; i < n; i += ainc) { + move(startpoint + rotate_xy(trochoid_point(i, a, radius), rot)); + } + + // Return to old Z so we will not bump into stuff + goto([-, -, oldz]); + comment("-- trochoid_move end --"); +} + +/* -------------------- Main Program -------------------- */ +//ngcgui: info: troichoid-path example (mm or inch per parm#1 (units) setting, !! DEFAULTS are in mm !!) +//ngcgui: umode = 1; //, units: 1:mm, 0:inch +//ngcgui: trochoid_r = 5; //, trochoidal radius +//ngcgui: trochoid_incr = 2; //, trochoidal increment +//ngcgui: path_scale = 25; //, path scale (all xi,yi) +//ngcgui: xoffset = 0; //, path x offset +//ngcgui: yoffset = 0; //, path y offset +//ngcgui: x0 = 0; //, path x0 +//ngcgui: y0 = 1; //, path y0 +//ngcgui: x1 = 2; //, path x1 +//ngcgui: y1 = 2; //, path y1 +//ngcgui: x2 = 0; //, path x2 +//ngcgui: y2 = 4; //, path y2 +//ngcgui: x3 = -1; //, path x3 +//ngcgui: y3 = 2; //, path y3 +//ngcgui: cutdepth = -1; // +//ngcgui: safez = 5; // z safe +//ngcgui: x_return = 0; // x return +//ngcgui: y_return = 0; // y return +//ngcgui: fnormal = 300; //, feed normal +//ngcgui: fslow = 150; //, feed slow +//ngcgui: ffast = 3000; //, feed fast +//ngcgui: verbose = 1; + +include("ensure_units.gcmc"); //avoid preamble conflict +if (umode == 1) { + zero = 0.0mm; +} else { + zero = 0.0in; +} +// ngcgui entries are unitless so these additions are used +// to ensure 1) floatingpoint and 2) units per umode setting + trochoid_r = zero + trochoid_r; +trochoid_incr = zero + trochoid_incr; + xoffset = zero + xoffset; + yoffset = zero + yoffset; + x0 = zero + x0; + y0 = zero + y0; + x1 = zero + x1; + y1 = zero + y1; + x2 = zero + x2; + y2 = zero + y2; + x3 = zero + x3; + y3 = zero + y3; + cutdepth = zero + cutdepth; + safez = zero + safez; + x_return = zero + x_return; + y_return = zero + y_return; + fnormal = zero + fnormal; + fslow = zero + fslow; + ffast = zero + ffast; + +CUTZ = cutdepth; +SAFEZ = safez; +HOME = [x_return, y_return, safez]; + +path = { [xoffset + x0, yoffset + y0], + [xoffset + x1, yoffset + y1], + [xoffset + x2, yoffset + y2], + [xoffset + x3, yoffset + y3] }; +path *= path_scale; //path_scale is dimensionless + +feedrate(fnormal); +if (verbose) { + comment("debug, feed normal= ",fnormal); +} +goto([-, -, SAFEZ]); +move([-, -, SAFEZ]); +goto(HOME); + +/* Trochoidal high-speed milling of the outline */ +if (verbose) { + comment("debug, feed fast= ",ffast); +} +feedrate(ffast); // *Really* high-speed milling +repeat(count(path); i) { + trochoid_move(path[i-2], path[i-1], CUTZ, trochoid_r, trochoid_incr); + +} + +/* Clean-cutting the object */ +if (verbose) { + comment("debug, feed slow= ",fslow); +} +feedrate(fslow); // "Finishing the edge" speed +pathmode(1); // Exact path mode so we hit the corners exactly +move([-, -, CUTZ]); // We are at the "outside" of the path, reenter cutting depth +move(path[-1]); // The first corner +foreach(path; v) { + move(v); // Trace the object +} + +goto([-, -, SAFEZ]); +goto(HOME); diff --git a/nc_files/gcmc_lib/trochoid-path.png b/nc_files/gcmc_lib/trochoid-path.png new file mode 100644 index 0000000000000000000000000000000000000000..9fdc0a36470da06aab933fdaf02732311c86cd50 GIT binary patch literal 14921 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 S$Q^R$C7`9Q2QO8#4*DM`D1;{f literal 0 HcmV?d00001 diff --git a/nc_files/gcmc_lib/wheels.gcmc b/nc_files/gcmc_lib/wheels.gcmc new file mode 100644 index 00000000000..86e4d9e11b5 --- /dev/null +++ b/nc_files/gcmc_lib/wheels.gcmc @@ -0,0 +1,167 @@ +/* demo for using gcmc file with [py]ngcgui + +//ngcgui: info: WHEELS (gcmc G-Code Meta Compiler) + +//ngcgui: umode = 1; //, units: 1:mm, 0:inch +//ngcgui: r1=10; //,Radius 1 (10mm = .39370 in) +//ngcgui: r2= 5; //,Radius 2 ( 5mm = .19685 in) +//ngcgui: r3= 3.333; //,Radius 3 ( 3.333mm = .13122 in) + +//ngcgui: s1= 1 ,Speed 1 (ratio, nounits) +//ngcgui: s2= 7 ,Speed 2 (ratio, nounits) +//ngcgui: s3= -17 ,Speed 3 (ratio, nounits) + +//ngcgui: p1= 0 ,Phase 1 (angle, degrees) +//ngcgui: p2= 0 ,Phase 2 (angle, degrees) +//ngcgui: p3= 90 ,Phase 3 (angle, degrees) + +//ngcgui: zsafe = 1; //, zsafe +//ngcgui: zcut = -1; //, zcut (neg) + +//ngcgui: xoffset = 0; +//ngcgui: yoffset = 0; + +//ngcgui: scalex = 5; +//ngcgui: scaley = 5; +//ngcgui: scalez = 1; +//ngcgui: frate = 60; //, feedrate +//ngcgui: verbose = 0; // precede ensure_units +*/ +include("ensure_units.gcmc"); //avoid preamble conflict + +/* + Copyright: 2013 + Author: Alan Battersby + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +/********************************************************/ +/* Code to produce wheels paths */ +/* Using GCMC Compiler */ +/* Author: Alan Battersby */ +/* Version: 1.0 */ +/********************************************************/ + +/********************************************************/ +/* Each wheel is a vector of three components */ +/* Radius - The radius of the wheel */ +/* Speed - The speed of the wheel */ +/* Phase - The phase of the wheel */ + +function Radius(wheel) +{ + return wheel[0]; +} + +function Speed(wheel) +{ + return wheel[1]; +} + +function Phase(wheel) +{ + return wheel[2]; +} + +function CreateWheel(r, s, p) +{ + return [r,s,p]; +} + +/* Wheels are held in global vector list called wheels */ + +function CalcPoint(wheels, angle) +{ + local at, posn, r, s, p, w; + + posn = [0, 0]; + + foreach (wheels; w) + { + r = Radius(w); + s = Speed(w); + p = Phase(w); + at = s * angle + p; + posn += [r * cos(at), r * sin(at) ]; + } + + return posn; +} + +function CutPath(wheels, start, inc, end, cdepth, scale) +{ + local angle, point; + /* move to first point at safe height */ + for(angle = start; angle <= end; angle += inc) + { + if (angle == start) + { + /* we should be at safe height */ + /* so move to cutting depth */ + point = scale(CalcPoint(wheels, angle), scale); + goto(point + theoffset); + goto([-,-,cdepth * scale[2]]); + } + else + { + point = scale(CalcPoint(wheels, angle), scale); + move(point + theoffset); + } + } +} +/******************* Library ****************************/ +function GoAtSafeHeight(x,y) +{ + goto([-,-,safeheight]); + goto([x,y,safeheight]); +} + +/******************* main program ***********************/ +if (umode == 1) { + zero = 0.0mm; +} else { + zero = 0.0in; +} +// ngcgui entries are unitless so these additions are used +// to ensure 1) floatingpoint and 2) units per umode setting + +xoffset = zero + xoffset; +yoffset = zero + yoffset; + zsafe = zero + zsafe; + zcut = zero + zcut; + r1 = zero + r1; + r2 = zero + r2; + r3 = zero + r3; + + s1 = 0.0 + s1; //angular speed ratio (unitless) + s2 = 0.0 + s2; //angular speed ratio (unitless) + s3 = 0.0 + s3; //angular speed ratio (unitless) + + theoffset = [xoffset, yoffset]; + safeheight = zsafe; + cuttingdepth = zcut; + +svec = [scalex, scaley ,scalez ]; +wheels = { + CreateWheel(r1, s1, p1 * 1deg), + CreateWheel(r2, s2, p2 * 1deg), + CreateWheel(r3, s3, p3 * 1deg) +}; +feedrate(frate); +GoAtSafeHeight(0, 0); +CutPath(wheels, 0deg, 0.01deg, 360deg, cuttingdepth, svec); +GoAtSafeHeight(0, 0); + diff --git a/nc_files/gladevcp_lib/oword.ngc b/nc_files/gladevcp_lib/oword.ngc new file mode 100644 index 00000000000..b581af924da --- /dev/null +++ b/nc_files/gladevcp_lib/oword.ngc @@ -0,0 +1,14 @@ + +; this is called from gladevcp MDI action with the following +; MDI command: +; O call [${spin-f}] [${check}] [${toggle}] [${scale-f}] [${spin-f}] + +O sub + +(DEBUG, oword.ngc: spin-f=#1 check=#2) +(DEBUG, toggle=#3 scale=#4) +(DEBUG, spin-f=#5 combo-s=#6) + +O endsub + +m2 diff --git a/nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc b/nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc new file mode 100644 index 00000000000..c286c43cbed --- /dev/null +++ b/nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc @@ -0,0 +1,93 @@ +; Gmoccapy_2_tools_with_compensation.ngc +; testprogram to mill two circles with cutter radius compensation +; and two different tools + +; set the basic settings, this should be +; on every program the beginning +G17 +G21 +G54 +G61 +G40 +G49 +G80 +G90 + +; get the first tool +T3 M6 +G43 + +; go to center of the workpiece +G0 X50 Y50 +G0 Z30 + +; turn on spindle clockwise +S3000 +M3 + +; coolant on +M8 + +G0 Z10 +F250 +G1 Z0 + +; tool radius compensation +; go in circle with lower feed rate +G41 +G3 X70 Y50 Z-1 I10 J0 + +; make first circle with normal feed +F2000 +G3 I -20 + +; out of the workpiece +G3 X50 Y50 Z1 I-10 J0 +G0 Z30 + +; coolant off +M9 + +; turn off cutter radius compensation, otherwise no tool change is possible +G40 +T1 M6 +G43 + +; optional stop for testing +(MSG, optional stop, i.e. for cleaning the workpiece, or other thinks) +M1 + +; go again to the center of the workpiece +G0 X50 Y50 +G0 Z10 + +; turn on spindle clockwise +S6000 +M3 + +; mist on +M7 + +G0 Z10 +F400 +G1 Z1 + +; Werkzeugradienkompensation ein +; Anfahrradius mit Eintauchgeschwindigkeit +G41 +G3 X65 Y50 Z-1 I7.5 J0 + +; 2. Kreis mit Vorschubgeschwindigkeit fräsen +F1000 +G3 I-15 + +; Aus dem Werkstück +G3 X50 Y50 Z1 I-7.5 J0 +G0 Z30 + +G0 Z30 +G0 X50 Y50 + +M9 ; coolant off +M5 ; spindle off +M2 ; program end diff --git a/nc_files/gridprobe.ngc b/nc_files/gridprobe.ngc new file mode 100644 index 00000000000..f5713d89ce0 --- /dev/null +++ b/nc_files/gridprobe.ngc @@ -0,0 +1,45 @@ +( Rectangular Probing ) +( ) +( This program repeatedly probes in a regular XY grid and writes the ) +( probed location to the file 'probe-results.txt' in the same directory ) +( as the INI file ) + +(Configuration section) +G20 (Inches) +F4 (probe speed) + +#1=0 (X start) +#2=.25 (X increment) +#3=13 (X count) + +#4=0 +#5=.25 +#6=5 (Y count) + +#7=.1 (Z safety) +#8=-.5 (Z probe) +(End configuration section) + +(PROBEOPEN probe-results.txt) +#9=0 #10=0 +G0Z#7 +O1 while [#9 lt #6] + #10=0 + G0 Y[#4+#5*#9] + O2 while [#10 lt #3] + O3 if [[#9/2] - fix[#9/2] eq 0] + G0X[#1+#2*#10] + O3 else + G0X[#1+#2*[#3-#10-1]] + O3 endif + G38.2Z#8 + G0Z#7 + #10=[#10+1] + O2 endwhile + #9=[#9+1] +O1 endwhile + +(PROBECLOSE) +G0Z#7 +G0X#1Y#4 +M2 diff --git a/nc_files/hole-circle.ngc b/nc_files/hole-circle.ngc new file mode 100644 index 00000000000..f2820d5d959 --- /dev/null +++ b/nc_files/hole-circle.ngc @@ -0,0 +1,12 @@ +; drill a bolt hole circle for 6 bolts at diameter 3 inches + +G20 G17 G90 + +; position over first hole, establishing our radius of 1.5 +; an equivalent command would be G0 @1.5 ^0 Z0 +G0 X1.5 Y0 Z0 + +; drill six holes, incrementing 60 degrees each time +G91 G81 R.1 Z-.5 ^60 L6 F10 + +M2 diff --git a/nc_files/holecircle.py b/nc_files/holecircle.py new file mode 100644 index 00000000000..2dabca89509 --- /dev/null +++ b/nc_files/holecircle.py @@ -0,0 +1,245 @@ +import sys, os +BASE = os.environ['LINUXCNC_HOME'] +sys.path.insert(0, os.path.join(BASE, "lib", "python")) + +import math + +def _(s): return s + +def ui(): + import tkinter + import pickle + import nf + import rs274.options + import os + + app = tkinter.Tk() + rs274.options.install(app) + app.tk.call("source", os.path.join(BASE, "share", "axis", "tcl", "combobox.tcl")) + + app.wm_title(_("Circular Holes")) + app.wm_iconname(_("Circular Holes")) + + prev = tkinter.Canvas(app, width=200, height=200) + f = tkinter.Frame(app) + b = tkinter.Frame(app) + prev.grid(row=0, column=0, sticky="nw") + f.grid(row=0, column=1, sticky="nw") + b.grid(row=1, column=0, columnspan=2, sticky="ne") + + validate_float = "expr {[regexp {^-?([0-9]+(\.[0-9]*)?|\.[0-9]+|)$} %P]}" + validate_int = "expr {[regexp {^-?([0-9]+|)$} %P]}" + validate_posfloat = "expr {[regexp {^?([0-9]+(\.[0-9]*)?|\.[0-9]+|)$} %P]}" + validate_posint = "expr {[regexp {^([0-9]+|)$} %P]}" + def posfloatentry(f, v): + var = tkinter.DoubleVar(f) + var.set(v) + w = tkinter.Entry(f, textvariable=var, validatecommand=validate_posfloat, validate="all", width=10) + return w, var + + def floatentry(f, v): + var = tkinter.DoubleVar(f) + var.set(v) + w = tkinter.Entry(f, textvariable=var, validatecommand=validate_float, validate="all", width=10) + return w, var + + def posintentry(f, v): + var = tkinter.IntVar(f) + var.set(v) + w = tkinter.Entry(f, textvariable=var, validatecommand=validate_posint, validate="all", width=10) + return w, var + + + def intentry(f, v): + var = tkinter.IntVar(f) + var.set(v) + w = tkinter.Entry(f, textvariable=var, validatecommand=validate_int, validate="all", width=10) + return w, var + + def checkbutton(k, v): + var = tkinter.BooleanVar(f) + var.set(v) + g = tkinter.Frame(f) + w = tkinter.Checkbutton(g, variable=var, text="Yes") + w.pack(side="left") + return g, var + + def intscale(k, v, min=1, max = 100): + var = tkinter.IntVar(f) + var.set(v) + g = tkinter.Frame(f, borderwidth=0) + w = tkinter.Scale(g, orient="h", variable=var, from_=min, to=max, showvalue=False) + l = tkinter.Label(g, textvariable=var, width=3) + l.pack(side="left") + w.pack(side="left", fill="x", expand=1) + return g, var + + def optionmenu(k, v, *options): + options = list(options) + def trace(*args): + try: + var.set(options.index(svar.get())) + except ValueError: + pass + + try: + opt = options[v] + except (TypeError, IndexError): + v = 0 + opt = options[0] + + var = tkinter.IntVar(f) + var.set(v) + svar = tkinter.StringVar(f) + svar.set(options[v]) + svar.trace("w", trace) + wp = f._w.rstrip(".") + ".c" + svar._name + f.tk.call("combobox::combobox", wp, "-editable", 0, "-width", + max(len(opt) for opt in options)+3, "-textvariable", svar._name, + "-background", "white") + f.tk.call(wp, "list", "insert", "end", *options) + w = nf.makewidget(f, tkinter.Widget, wp) + return w, var + + rc = os.path.expanduser("~/.holecirclerc") + constructors = [ + ("units", lambda f, v: optionmenu(f, v, _("G20 (in)"), _("G21 (mm)"))), + ("cx", floatentry), + ("cy", floatentry), + ("th0", floatentry), + ("inc", floatentry), + ("rad", posfloatentry), + ("count", posintentry), + ("feedrate", posfloatentry), + ("depth", floatentry), + ("dwell", posfloatentry), + ("retract", floatentry), + ] + + defaults = dict( + cx = 0, + cy = 0, + th0 = 0, + inc = 15, + count = 6, + feedrate = 8, + depth=-.1, + retract=.1, + units=0, + dwell=0, + rad=1 + ) + + texts = dict( + units=_("Units"), + rad=_("Radius"), + cx=_("Center X"), + cy=_("Center Y"), + th0=_("Start Angle"), + inc=_("Increment Angle"), + count=_("Hole Count"), + feedrate=_("Feed Rate"), + depth=_("Hole Depth"), + retract=_("Retract Height"), + dwell=("Dwell (0=no dwell)"), + ) + + try: + defaults.update(pickle.load(open(rc, "rb"))) + except (IOError, pickle.PickleError): pass + + vars = {} + widgets = {} + for j, (k, con) in enumerate(constructors): + v = defaults[k] + text = texts.get(k, k.replace("_", " ")) + lab = tkinter.Label(f, text=text) + widgets[k], vars[k] = con(f, v) + lab.grid(row=j, column=0, sticky="w") + widgets[k].grid(row=j, column=1, sticky="ew") + + def update_preview(*args): + prev.delete("all") + try: + count = vars['count'].get() + th0 = vars['th0'].get() + inc = vars['inc'].get() + except ValueError: return + for i in range(count): + th = (th0 + i * inc) * math.pi / 180 + x = 100 + 75 * math.cos(th) + y = 100 - 75 * math.sin(th) + prev.create_oval((x-4,y-4,x+4,y+4), fill='black') + + def update_ok(*args): + result = True + for i in vars.values(): + try: + i.get() + except ValueError: + result = False + break + if result: bb.configure(state="normal") + else: bb.configure(state="disabled") + # This line creates an error when you load holecircle twice + # from inside linuxcnc eg. gladevcp filechooser or AXIS GUI + #print(("update_ok", args), file=sys.stderr) + + vars['count'].trace('w', update_preview) + vars['inc'].trace('w', update_preview) + vars['th0'].trace('w', update_preview) + + for i in vars.values(): i.trace('w', update_ok) + + update_preview() + + status = tkinter.IntVar() + bb = tkinter.Button(b, text=_("OK"), command=lambda:status.set(1), width=8, default="active") + bb.pack(side="left", padx=4, pady=4) + bc = tkinter.Button(b, text=_("Cancel"), command=lambda:status.set(-1), width=8, default="normal") + bc.pack(side="left", padx=4, pady=4) + + app.bind("", lambda evt: bc.invoke()) + app.bind("", lambda evt: bb.invoke()) + app.wm_protocol("WM_DELETE_WINDOW", lambda: bc.invoke()) + app.wm_resizable(0,0) + + app.wait_visibility() + app.tk.call("after", "idle", ("after", "idle", "focus [tk_focusNext .]")) + #app.tk_focusNext().focus() + app.wait_variable(status) + + if status.get() == -1: + raise SystemExit(1) + + for k, v in vars.items(): + defaults[k] = v.get() + + app.destroy() + + pickle.dump(defaults, open(rc, "wb")) + + return defaults + +unitcodes = ['G20', 'G21'] +u = ui() +print(unitcodes[u['units']]) +print("F%.1f" % u['feedrate']) + +count = u['count'] +th0 = u['th0'] +inc = u['inc'] +depth = u['depth'] +retract = u['retract'] +cx = u['cx'] +cy = u['cy'] +rad = u['rad'] + +if u['dwell']: cycle = "G82 P% 8.4f" % u['dwell'] +else: cycle = "G81" +for i in range(count): + th = (th0 + i * inc) * math.pi / 180 + x = cx + rad * math.cos(th) + y = cy + rad * math.sin(th) + print("%s X% 8.4f Y% 8.4f Z% 8.4f R% 8.4f" % (cycle, x, y, depth, retract)) +print("M2") diff --git a/nc_files/increment.ngc b/nc_files/increment.ngc new file mode 100644 index 00000000000..4791827bde9 --- /dev/null +++ b/nc_files/increment.ngc @@ -0,0 +1,4 @@ +O sub +g91 g0 x#1 y#2 +g90 +O endsub diff --git a/nc_files/involute.py b/nc_files/involute.py new file mode 100644 index 00000000000..025f0da3db5 --- /dev/null +++ b/nc_files/involute.py @@ -0,0 +1,13 @@ +from math import * + +print("G20 F60") +print("G64 P0.001") +print("G0 X0 Y0 Z0") +a=.1 +for i in range(100): + t = i/10. + x = a * (cos(t) + t * sin(t)) + y = a * (sin(t) - t * cos(t)) + print("G1 X%f Y%f" % (x,y)) +print("M2") + diff --git a/nc_files/lathe-g76.ngc b/nc_files/lathe-g76.ngc new file mode 100644 index 00000000000..fd41030c3be --- /dev/null +++ b/nc_files/lathe-g76.ngc @@ -0,0 +1,115 @@ +(cut a small 1/4-20 thread and part it) +(t1 is for facing and left turning, t4 is threading tool, t9 parting) +(proper tool offsets should be set in the tool table!) + +g20 g64 g18 + +(face and turn outside diameter) +t1 m6 +s1200 m3 +g4p1 +g43 +g0z0x.2 +f4 +g1x-.0625 +g0z.1 +x.120 +f5 +g1z-.55 +g0x.2 + + +(round the end) +o100 sub +g0z1x-1 +g41 +g0z1 +g2 x0 z0 r1 +g3 x3.05 z-3.05 i0 k-3.05 +g91 +g2 z-1.5 x1 r1.5 +g90 +g40 +g0 x4.5 +o100 endsub + +g21 +f50 + +g0z1.3 +g92z0 +o100 call + +f50 + +g92.1 +g0z.9 +g92z0 +o100 call + +g92.1 +g0z.5 +g92z0 +o100 call + +g92.1 +g0z.3 +g92z0 +o100 call + +g92.1 +g0z.1 +g92z0 +o100 call + +g92.1 +g0z0 +g92z0 +o100 call +g0z0 +o100 call + +g92.1 +g0z-.025 +g92z0 +o100 call + +g92.1 +m5 +g20 +f5 + +(thread) +t4 m6 +g43 +s800 m3 +g4p1 +g0z.2x.2 + +(p = thread pitch, distance per revolution) +(z = end of drive line) +(i = offset from drive line to thread peaks) +( negative i means the threads are at a smaller radius than the drive line,) +( so i is negative for outside threads, positive for inside threads) +(j = initial cut depth; subsequent depths follow degression formula) +(r = depth degression: 1.0 = constant depth, 2.0 = constant area) +( any number >= 1.0 allowed) +(k = full thread depth) +(q = "compound slide" angle) +(h = number of spring passes) +(e = distance along drive line used for tapered start/end) +(l = which ends get the taper: 0 = neither, 1 = begin, 2 = end, 3 = both) +g76 p.05 z-.5 i-.075 j.008 k.045 h3 r2.0 q29.5 e.05 l2 +g0x.5 +g0z0 +m5 + +(part) +t9 m6 +g43 +s400 m3 +g4p1 +g0z-.6x.135 +g1x0f.2 +g0x.2 +m2 diff --git a/nc_files/lathe_g70_71_demo.ngc b/nc_files/lathe_g70_71_demo.ngc new file mode 100644 index 00000000000..9c61bb6db38 --- /dev/null +++ b/nc_files/lathe_g70_71_demo.ngc @@ -0,0 +1,35 @@ +G54 G18 G21 +F400 + +O100 SUB + G0 X0.202 Z3.041 + G2 X1.081 Z0.919 I3.0 K0.0 + G1 X3.0 Z-1.0 + G1 Z-4.0 + X2.268 Z-5.268 + G2 X2.0 z-6.268 I1.73205 K-1.0 + G1 Z-6.732 + G2 X4.0 Z-8.732 I2.0 K0.0 + G1 X4.5 + G3 X6.285 Z-12.982 I-0.0 K-2.5 + G2 Z-19.982 I3.57071 K-3.5 + ; Let's make the pawn safe to play with + G1 X10 A0.2 + G1 X8.5 Z-22.58 + G1 X10.0 Z-25.178 + G1 Z-27.178 + G2 X11.014 Z-35.1 I5.70735 K-3.29514 + G1 X12.0 Z-36.1 + G1 Z-38.1 + G0 X15.0 +O100 ENDSUB + +G40 T2M6G43 +G71.1 Q100 X15 Z3.041 D1 I1 R0.3 +G40 T10M6G43 +G71.2 Q100 X15 Z3.041 D0.51 I0.5 R0.3 +G42.1 D0.3 L2 +G70 Q100 X15 Z3.041 E0 D0.5 P2 + + +M2 diff --git a/nc_files/lathe_g7x_face_boring.ngc b/nc_files/lathe_g7x_face_boring.ngc new file mode 100644 index 00000000000..31c5cf04612 --- /dev/null +++ b/nc_files/lathe_g7x_face_boring.ngc @@ -0,0 +1,19 @@ +G21 G54 G18 +F400 + +O100 SUB + G0 X0 Z-10 + O101 REPEAT [3] + G1 X[#<_x>+5] Z[#<_Z>+3] + G1 X[#<_x>+5] + O101 ENDREPEAT +O100 ENDSUB + +O101 SUB + G72 Q100 X1 Z1 D0.5 I1 R0.3 + G70 Q100 X1 Z1 D0.5 P2 +O101 ENDSUB + +O101 CALL + +M2 diff --git a/nc_files/lathe_g7x_quadrants.ngc b/nc_files/lathe_g7x_quadrants.ngc new file mode 100644 index 00000000000..7c5045d6d1e --- /dev/null +++ b/nc_files/lathe_g7x_quadrants.ngc @@ -0,0 +1,64 @@ +G54 G18 G21 +F400 + + +O100 SUB + G0Z-12X14 + G1Z-10X14 + G1 X10 Z-10 + G3 K5 I0 X5 Z-5 + G1 X5 Z0 + X-1 + Z2 +O100 ENDSUB + +G70 Q100 X15 Z4 D1 P1 +G71 Q100 X-5 Z-14 D0.5 I1 R0.3 +G72 Q100 X15 Z4 D0.5 I1 R0.3 + +#<_distance>=20 +O101 SUB + G0 X-1 Z[2+#<_distance>] + G1 X-1 Z[0+#<_distance>] + G1 X5 Z[0+#<_distance>] + G1 X5 Z[-5+#<_distance>] + G2 I5 K0 X10 Z[-10+#<_distance>] + G1 X14 Z[-10+#<_distance>] + G0 X14 Z[-12+#<_distance>] +O101 ENDSUB + +G72 Q101 X-5 Z[-14+#<_distance>] D0.5 I1 R0.3 +G71 Q101 X15 Z[4+#<_distance>] D0.5 I1 R0.3 +G70 Q101 X15 Z[4+#<_distance>] D1 P1 + +#<_distance>=[#<_distance>+12] +O102 SUB + G0Z[12+#<_distance>]X14 + G1Z[10+#<_distance>]X14 + G1 X10 Z[10+#<_distance>] + G2 K-5 I0 X5 Z[5+#<_distance>] + G1 X5 Z[0+#<_distance>] + X-1 + Z[-2+#<_distance>] +O102 ENDSUB + +G71 Q102 X-5 Z[14+#<_distance>] D0.5 I1 R0.3 +G72 Q102 X15 Z[-4+#<_distance>] D0.5 I1 R0.3 +G70 Q102 X15 Z[-4+#<_distance>] D1 P1 + +#<_distance>=[#<_distance>+20] +O103 SUB + G0 X-1 Z[-2+#<_distance>] + G1 X-1 Z[-0+#<_distance>] + G1 X5 Z[-0+#<_distance>] + G1 X5 Z[5+#<_distance>] + G3 I5 K0 X10 Z[10+#<_distance>] + G1 X14 Z[10+#<_distance>] + G0 X14 Z[12+#<_distance>] +O103 ENDSUB + +G72 Q103 X-5 Z[14+#<_distance>] D0.5 I1 R0.3 +G71 Q103 X15 Z[-4+#<_distance>] D0.5 I1 R0.3 +G70 Q103 X15 Z[-4+#<_distance>] D1 P1 + +M2 diff --git a/nc_files/lathe_pawn.ngc b/nc_files/lathe_pawn.ngc new file mode 100644 index 00000000000..a6fadf14770 --- /dev/null +++ b/nc_files/lathe_pawn.ngc @@ -0,0 +1,151 @@ +G21 +G64 +G18 G8 +G00 X13.5 Z1.0 S1000 M3 +Z0.488 +G94 G01 X-1.0 F50.0 +Z0.975 +G00 X0.383 Z1.269 +X13.5 +Z0.0 +G01 X-1.0 +Z0.488 +G00 X0.383 Z0.782 +X13.5 +Z1.0 +Z2.0 +X11.237 +G01 Z-34.973 F50.0 +X12.2 Z-35.95 +Z-37.95 +X12.625 +G00 X13.625 Z-36.95 +Z2.0 +X9.849 +G01 Z-19.832 +G00 X10.849 Z-18.832 +Z2.0 +X8.461 +G01 Z-19.832 +X9.849 +G00 X10.849 Z-18.832 +Z2.0 +X7.073 +G01 Z-10.296 +G00 X8.073 Z-9.296 +Z2.0 +X5.685 +G01 Z-8.784 +G03 X7.073 Z-10.296 I-0.98513 K-2.29772 +G00 X8.073 Z-9.296 +Z2.0 +X4.297 +G01 Z-8.582 +X4.7 +G03 X5.685 Z-8.784 I-0.0 K-2.5 +G00 X6.685 Z-7.784 +Z2.0 +X2.909 +G01 Z-0.559 +G00 X3.909 Z0.441 +Z2.0 +X1.521 +G01 Z0.829 +X2.909 Z-0.559 +G00 X4.909 Z1.441 +Z0.441 +X2.909 +G01 Z-0.559 +X3.2 Z-0.85 +Z-4.15 +X2.909 Z-4.654 +Z-8.11 +G02 X4.2 Z-8.582 I1.29082 K1.52767 +G01 X4.297 +G00 X5.297 Z-7.582 +Z-4.654 +X3.909 +G01 X2.909 +X2.468 Z-5.418 +G02 X2.2 Z-6.418 I1.73205 K-1.0 +G01 Z-6.582 +G02 X2.909 Z-8.11 I2.0 K0.0 +G00 X3.909 Z-7.11 +X7.073 +Z-9.296 +G01 Z-10.296 +G03 X7.2 Z-11.082 I-2.3731 K-0.78638 +G01 Z-11.382 +G03 X7.073 Z-12.168 I-2.5 K0.0 +G01 Z-19.832 +X8.461 +G00 X9.461 Z-18.832 +Z-12.168 +X8.073 +G01 X7.073 +G03 X6.485 Z-13.132 I-2.3731 K0.78638 +G02 X5.685 Z-14.204 I3.57071 K-3.5 +G01 Z-18.76 +G02 X6.485 Z-19.832 I4.37094 K2.42793 +G01 X7.073 +G00 X8.073 Z-18.832 +Z-14.204 +X6.685 +G01 X5.685 +G02 X5.058 Z-16.482 I4.37075 K-2.42793 +G02 X5.685 Z-18.76 I4.99775 K0.15 +G00 X6.685 Z-17.76 +X9.849 +Z-18.832 +G01 Z-19.832 +X10.2 +Z-20.132 +X9.849 Z-20.74 +Z-24.42 +G00 X10.849 Z-23.42 +Z-20.74 +G01 X9.849 +X8.787 Z-22.58 +X9.849 Z-24.42 +G00 X10.849 Z-23.42 +X9.849 +G01 Z-24.42 +X10.2 Z-25.028 +Z-27.328 +G02 X9.849 Z-28.029 I5.70735 K-3.29514 +G01 Z-32.917 +G02 X11.214 Z-34.95 I6.0583 K2.594 +G01 X11.237 Z-34.973 +G00 X12.237 Z-33.973 +Z-28.029 +X10.849 +G01 X9.849 +G02 X9.319 Z-30.473 I6.05858 K-2.594 +G02 X9.849 Z-32.917 I6.58858 K0.15 +G00 X10.849 Z-31.917 +Z-29.029 +X11.237 +Z2.0 +X0.534 Z3.241 +G01 X0.202 Z3.041 F75.0 +G02 X1.081 Z0.919 I3.0 K0.0 +G01 X3.0 Z-1.0 +Z-4.0 +X2.268 Z-5.268 +G02 X2.0 Z-6.268 I1.73205 K-1.0 +G01 Z-6.732 +G02 X4.0 Z-8.732 I2.0 K0.0 +G01 X4.5 +G03 X6.285 Z-12.982 I-0.0 K-2.5 +G02 Z-19.982 I3.57071 K-3.5 +G01 X10.0 +X8.5 Z-22.58 +X10.0 Z-25.178 +Z-27.178 +G02 X11.014 Z-35.1 I5.70735 K-3.29514 +G01 X12.0 Z-36.1 +Z-38.1 +G00 X15.0 +Z10.0 +M2 +% diff --git a/nc_files/lathecomp.ngc b/nc_files/lathecomp.ngc new file mode 100644 index 00000000000..dd137799339 --- /dev/null +++ b/nc_files/lathecomp.ngc @@ -0,0 +1,49 @@ +g20 g64 g18 f30 + +g49 +t0 m6 + +g0x.3z0 +g40 +g1x.1 +g3x0z.1r.1 +g1z1 +g2r.25x-.25z1.25 +g3r.25x-.5z1.5 +g1z1.75 +g0x.3 + +t2 m6 +g43 h2 + +g0z0 +g42 +g1x.1 +g3x0z.1r.1 +g1z1 +g2r.25x-.25z1.25 +g3r.25x-.5z1.5 +g1z1.75 +g40 +g0x.3 + +t7 m6 +g43 h9 + +g0z1.85 +g0x-.3 +g41 +g1x-.4 +g2x-.5z1.75r.1 +g1z1.5 +g2r.25x-.25z1.25 +g3r.25x0z1 +g1z.1 +g2r.1x.1z0 +g40 +g0x.3 + +g49 +t0 m6 + +m2 diff --git a/nc_files/m250.ngc b/nc_files/m250.ngc new file mode 100644 index 00000000000..361578d5a81 --- /dev/null +++ b/nc_files/m250.ngc @@ -0,0 +1,29 @@ +o sub +(debug, in M250.ngc) + +o if [EXISTS[#]] +(debug, X param set: #) +o endif + +o if [EXISTS[#]] +(debug, Y param set: #) +o endif + +o if [EXISTS[#]] +(debug, Z param set: #) +o endif + +o if [EXISTS[#

    ]] +(debug, P param set: #

    ) +o endif + +o if [EXISTS[#]] +(debug, Q param set: #) +o endif + +o if [EXISTS[#]] +(debug, R param set: #) +o endif + +o endsub +m2 diff --git a/nc_files/m61demo.ngc b/nc_files/m61demo.ngc new file mode 100644 index 00000000000..493fd6c1906 --- /dev/null +++ b/nc_files/m61demo.ngc @@ -0,0 +1,34 @@ +; This demonstrates doing an M61 remapped to a named oword sub +; +; to activate, incantate as follows in the INI file: +; +; [RS274NGC] + +; # remap M61 to a named oword subroutine. +; # parameter #1: the Q value +; M61_COMMAND=ocall +; +; +O sub +; +; O if ;; trigger error report +; +(DEBUG,m61demo.ngc: M61 Q=#1) + +; test fail-change line from gladevcp +M66 P2 L0 + +O if [#5399 EQ 1] + (DEBUG, digital-input-02=#5399 - returning -1 to fail M61) + ; a return value < 0 fails the M61 + O return [-1] +O endif + + +; return the tool number to commit the change. +; return a negative return to abort the interpreter with a message like +; "M61 failed ()" - the tool number will be unchanged +; +O endsub [#1] + +m2 diff --git a/nc_files/m6demo.ngc b/nc_files/m6demo.ngc new file mode 100644 index 00000000000..4553ed53d01 --- /dev/null +++ b/nc_files/m6demo.ngc @@ -0,0 +1,88 @@ +; This demonstrates doing an M6 remapped to a named oword sub +; +; to activate, incantate as follows in the INI file: +; +; [RS274NGC] + +; # remap M6 to a named oword subroutine. +; M6_COMMAND=ocall +; +; parameter #1: the current tool-in-spindle +; parameter #2: the tool number requested in the last T (prepare) command +; parameter #3: pocket of new tool +; +; +; +O sub +; +(DEBUG, executing M6 O-word sub, tool-in-spindle=#1 prepared=#2 pocket=#3) +; +M66 P2 L0 +;(debug, digital-input-02=#5399) + +# = 0 +# = 0 +# = 0 + +; number of seconds to wait for 'tool-changed' equivalent +# = 9999 +; +O if [# EQ 0] + M5 +O endif + +O if [# NE 0] + G0 G53 Z0 +O endif + +O if [# NE 0] + G30 +O endif + +; set analog output pin #2 to signal the pocket number +; iocontrol.tool-number becomes motion.analog-out-02 +M68 E2 Q[#2] +;(DEBUG, set current tool number on motion.analog-out-02: #2) +; +; assert the equivalent of the iocontrol.tool-change pin +; which is now motion.digital-out-01 +M64 P1 +;(DEBUG, motion.digital-out-01 set high, waiting for motion.digital-in-01) + + +; wait for the equivalent of the iocontrol.tool-changed pin to go high +; we use motion.digital-in-01 +; +M66 P1 L3 Q# +; +; if we waited too long, fail change and abort. +; +O if [#5399 EQ -1] + (DEBUG, timeout waiting for digital-in-01 to become true - failing change ) + O return [-1] +O endif + +; retract iocontrol.tool-change equivalent +;(DEBUG, deasserting motion.digital-out-01) +M65 P1 +; + +; test fail-change line from gladevcp +M66 P2 L0 +; (debug, digital-input-02=#5399) +O if [#5399 EQ 1] + (DEBUG, returning -1 to fail change) + O return [-1] +O else + (debug, change ok, returning +1 to commit change) + ; a positive return value commits the tool change + O return [1] +O endif +; +; return a positive value commit the change. +; a negative return value will fail the change and +; abort the interpreter with a message like +; "M6 failed ()" +; +O endsub +m2 diff --git a/nc_files/m6remap.ngc b/nc_files/m6remap.ngc new file mode 100644 index 00000000000..8172956219a --- /dev/null +++ b/nc_files/m6remap.ngc @@ -0,0 +1,6 @@ +O sub +(DEBUG, executing in M69 in m6remap O-word sub) +M69 +(DEBUG, done) +O endsub +m2 \ No newline at end of file diff --git a/nc_files/m70m72-demo.ngc b/nc_files/m70m72-demo.ngc new file mode 100644 index 00000000000..1f779a7e86d --- /dev/null +++ b/nc_files/m70m72-demo.ngc @@ -0,0 +1,41 @@ +; Demonstrate saving and explicitly restoring the global state around +; a subroutine call using M70 - save state and M72 - restore state +; +; note that the subroutine itself is not aware of the M7x features + +O sub +(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) +O endsub + +O sub +; +g20 (imperial) +g91 (relative mode) +F5 (low feed) +S300 (low rpm) +; +(debug, in subroutine, state now:) +o call +; +O endsub + + +; main program +g21 (metric) +g90 (absolute) +f200 (fast speed) +S2500 (high rpm) +; +(debug, in main, state now:) +o call +;; +M70 (save caller state in at global level) +; +O call +; +M72 (explicitly restore state) +; +(debug, back in main, state now:) +o call +; +m2 diff --git a/nc_files/m73-demo.ngc b/nc_files/m73-demo.ngc new file mode 100644 index 00000000000..b420cd51a37 --- /dev/null +++ b/nc_files/m73-demo.ngc @@ -0,0 +1,53 @@ +; Demonstrate saving the global state within a subroutine +; using the M73 autorestore feature +; + +O sub +(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) +O endsub + + +O sub +M73 (save caller state in current call context, restore on return or endsub) +; +g20 (imperial) +g91 (relative mode) +F5 (low feed) +S300 (low rpm) +; +(debug, in subroutine, state now:) +o call +(debug, arg=#1) +o if [[#1] GT 0] +; if called with param #1 > 0, demonstrate restore-on-return +(debug, executing return) +o return +o endif + +; note - no exit M7x code needed - the following endsub or an +; explicit 'return' will restore caller state +(debug, executing endsub) +O endsub + + +; main program +g21 (metric) +g90 (absolute) +f200 (fast speed) +S2500 (high rpm) +; +(debug, in main after endsub, state now:) +o call +; +; show restore-on-endsub: +o call [0] +; +(debug, back in main after return, state now:) +o call +; now show restore-on-return: +o call [1] +; +(debug, back in main, state now:) +o call +; +m2 diff --git a/nc_files/m75.ngc b/nc_files/m75.ngc new file mode 100644 index 00000000000..79cdbc9b4f8 --- /dev/null +++ b/nc_files/m75.ngc @@ -0,0 +1,33 @@ +o sub +(debug, in M75.ngc) + +(debug, in M75: call_level=#<_call_level> remap_level=#<_remap_level>) + +o if [EXISTS[#]] +(debug, X param set: #) +o endif + +o if [EXISTS[#]] +(debug, Y param set: #) +o endif + +o if [EXISTS[#]] +(debug, Z param set: #) +o endif + +o if [EXISTS[#

    ]] +(debug, P param set: #

    ) +o endif + +o if [EXISTS[#]] +(debug, Q param set: #) +o endif + +o if [EXISTS[#]] +(debug, R param set: #) +o endif + +;m76P#

    Q[#*5] + +o endsub +m2 diff --git a/nc_files/m76.ngc b/nc_files/m76.ngc new file mode 100644 index 00000000000..605be2ccff1 --- /dev/null +++ b/nc_files/m76.ngc @@ -0,0 +1,29 @@ +o sub +(debug, in M76.ngc) + +o if [EXISTS[#]] +(debug, X param set: #) +o endif + +o if [EXISTS[#]] +(debug, Y param set: #) +o endif + +o if [EXISTS[#]] +(debug, Z param set: #) +o endif + +o if [EXISTS[#

    ]] +(debug, P param set: #

    ) +o endif + +o if [EXISTS[#]] +(debug, Q param set: #) +o endif + +o if [EXISTS[#]] +(debug, R param set: #) +o endif + +o endsub +m2 diff --git a/nc_files/macros/lathe/LatheMacro.svg b/nc_files/macros/lathe/LatheMacro.svg new file mode 100644 index 00000000000..be242455a4a --- /dev/null +++ b/nc_files/macros/lathe/LatheMacro.svg @@ -0,0 +1,6619 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Finish + Infeed Peck + Retract Peck + Diameter + + + + + Depth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Probe + + + + + Center + + + + + + + + + + + + + + + + + + + + + r1 + + + + + d1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nc_files/macros/lathe/boring.ngc b/nc_files/macros/lathe/boring.ngc new file mode 100644 index 00000000000..30be296bc1c --- /dev/null +++ b/nc_files/macros/lathe/boring.ngc @@ -0,0 +1,103 @@ +; MACROCOMMAND=Finish Diameter,Surface Speed,DOC,FPR,Finish Length,Radius,Angle,Tool Number, Max RPM +; MACRODEFAULTS=1,500,.02,.007,-2,0,0,1,1500 +; MACROSVG=LatheMacro.svg,1 + +; MACROOPTIONS=load:yes,save:yes,default:default.txt,path:~/macros +; O call [${bore.x-f}] [${bore.sf-f}] [${bore.cut-f}] [${bore.feed-f}] [${bore.z-f}] [${bore.rad-f}] [${bore.angle-f}] [${bore.tool-s}] + +; #1 finish diameter +; #2 surface speed +; #3 depth of cut +; #4 feed/rpm +; #5 finish length +; #6 radius +; #7 angle +; #8 tool number +; #9 max RPM + +;boring + +O sub + +O110 IF [#<_imperial>] + (MSG, IMPERIAL sizes) +O110 ELSE + (MSG, METRIC sizes) +O110 ENDIF + + +(debug, Start Diameter %.3f#<_x>) +(debug, Finish Diameter %.3f#1) +(debug, Z Start %.3f#<_z>) +(debug, Z Finish %.3f#5) + +O107 IF [#<_imperial>] + (MSG, IMPERIAL ON) + #1 = [#1 * 25.4]; X + #2 = [#2 * 3.28]; surface speed + #3 = [#3 * 25.4]; doc + #4 = [#4 * 25.4]; feed + #5 = [#5 * 25.4]; length + #6 = [#6 * 25.4]; radius +O107 ENDIF + +M73 ;save/restore codes + +G8 ; Radius mode (easier maths) +G18 ; XZ Plane +G21 ; Metric Units +G90 ; Absolute Distance +G91.1 ; but not for arcs + +#1 = [#1 / 2] ; because of radius mode + +#14 = [#<_x>] (starting X) +#13 = #<_z> (starting Z) + +#20 = [#6 * SIN[#7]] +#21 = [-#6 * COS[#7]] +#22 = [#6 / COS[#7]] +#23 = [#5 + #6 - #20] +#24 = [[#23 - #13] * TAN[#7]] + +(MSG, Unpause To Start Boring Macro) +m0 + +M6 T#8 G43 + +G96 D#9 S#2 ; Constant Surface Speed Mode +m3 ;Start Spindle +g95 F#4 ; Feed-Per-Rev Mode + +g4p1 ; Wait to reach speed + + (debug, Turning finish dia #1 start dia #14 start length #13 finish length #5) + O100 WHILE [#14 LT [#1 - #3]] + g0 X #14 + #14=[#14 + #3] + G1 X #14 + G1 Z #23 X[#14 + #24] + O101 IF [#6 GT 0] + G3 Z#5 X[#14 + #24 + #21] I#21 K#20 + G1 X[#14 + #24 + #21 - #3] + O101 ELSE + G1 X[#14 + #24 - [#3 * 1.5]] + O101 ENDIF + G0 Z[#13] + O100 ENDWHILE + + G0 x#1 + G1 Z #23 X[#1 + #24] + O102 IF [#6 GT 0] + G3 Z#5 X[#1 + #24 + #21] I#21 K#20 + G1 X[#1 + #24 + #21 - #3] + O102 ELSE + G1 X[#1 + #24 - #3] + O102 ENDIF + G0 Z #13 + G0 X #1 ; For touch-off + M5 + G7 +O endsub + +M2 diff --git a/nc_files/macros/lathe/chamfer.ngc b/nc_files/macros/lathe/chamfer.ngc new file mode 100644 index 00000000000..dd1abf371cd --- /dev/null +++ b/nc_files/macros/lathe/chamfer.ngc @@ -0,0 +1,102 @@ +; MACROCOMMAND=X,SFM,DOC,Z,Tool Number,Chamfer size,Front Outside,Front Inside,Back Outside,Max RPM +; MACRODEFAULTS=1,300,.5,1,1,.015,true,false,false,1500 +; MACROSVG=LatheMacro.svg,4 + +; Ocall [${chamfer.x-f}] [${chamfer.sf-f}] [0.5] [${chamfer.z-f}] [${chamfer.tool-s}] [${chamfer.size-f}] [${chamfer.fo}] [${chamfer.fi}] [${chamfer.bo}] + +; #1 chamfer x +; #2 surface speed * +; #3 doc +; #4 chamfer z +; #5 tool number +; #6 chanfer size +; #7 front outside switch * +; #8 front inside switch * +; #9 back outside switch * +; #10 Max RPM + +;chamfer + +O sub + +O107 IF [#<_imperial>] + (MSG, IMPERIAL ON) + #1 = [#1 * 25.4]; X + #2 = [#2 * .3048] ; sf/m to m/m + #3 = [#3 * 25.4]; doc? + #4 = [#4 * 25.4]; Z + #6 = [#6 * 25.4]; chanfer size +O107 ENDIF + +M73 ; save/restore codes + +G8 ; Lathe radius Mode +G18 ; XZ Plane +G21 ; Metric Units +G90 ; Absolute Distance + + +#1 = [#1 / 2] ; because of radius mode + +#14 = [#<_x>] (starting X) +#13 = [#<_z>] (starting Z) + +(MSG, Unpause To start Chamfer Macro) +m0 + +M6 T#5 G43 + +G96 D#10 S#2 ; Constant Surface Speed Mode +M3 +g95 F0.1 ; Feed-Per-Rev Mode + +#20 = 0 +O101 if [#7 GT 0.5] ; front outside + o100 while [[#20 + #3] lt #6] + #20 = [#20 + #3] + g0 x[#1 - #20] z#13 + g1 z#4 + g1 x#1 z[#4 - #20] + g1 x #14 + g0 z#13 + o100 endwhile + g0 x#14 z#13 + g0 x[#1 - #6] + g1 z#4 + g1 x#1 z[#4 - #6] + g1 x #14 + g0 z#13 +O101 elseif [#8 GT 0.5] ; front inside + o102 while [[#20 + #3] lt #6] + #20 = [#20 + #3] + g0 x[#1 + #20] z#13 + g1 z#4 + g1 x#1 z[#4 - #20] + g1 x #14 + g0 z#13 + o102 endwhile + g0 x#14 z#13 + g0 x[#1 + #6] + g1 z#4 + g1 x#1 z[#4 - #6] + g1 x #14 + g0 z#13 +O101 elseif [#9 GT 0.5] ; back outside + o103 while [[#20 + #3] lt #6] + #20 = [#20 + #3] + g0 x[#1 - #20] z#13 + g1 z#4 + g1 x#1 z[#4 + #20] + g1 x #14 + g0 z#13 + o103 endwhile + g0 x#14 z#13 + g0 x[#1 - #6] + g1 z#4 + g1 x#1 z[#4 + #6] + g1 x #14 + g0 z#13 +O101 endif +G7 +O endsub +m2 diff --git a/nc_files/macros/lathe/drill.ngc b/nc_files/macros/lathe/drill.ngc new file mode 100644 index 00000000000..ded026573c4 --- /dev/null +++ b/nc_files/macros/lathe/drill.ngc @@ -0,0 +1,86 @@ +; MACROCOMMAND= Drill Diameter,Finish Depth,SFM,FPR,Tool Number,Peck Depth,Retract Depth +; MACRODEFAULTS=1.0,-1.0,300.0,.007,1,0.2,.1 +; MACROSVG=LatheMacro.svg,6 +; O call [${drill.diameter-f}] [${drill.zdepth-f}] [${drill.sf-f}] [${drill.feed-f}] [${drill.tool-s}] [${drill.peck-f}] [${drill.retract-f}] + +; #1 drill diameter +; #2 zdepth +; #3 surface speed +; #4 feed/rpm +; #5 tool number +; #6 peck amount +; #7 peck retract amount - not used right now + +O sub + +O100 IF [#<_imperial>] + (MSG, IMPERIAL sizes) + (MSG, ) + # = [#1 * 25.4] + # = [#2 * 25.4] + # = [#3 * .3048] ; sf/m to m/m + # = [#4 * 25.4] + # = [#6 * 25.4] + # = [#7 * 25.4] + #10 = [[#3 *12] / [3.1415 * #1]] ; RPM from sfm request + + (debug, Drill Diameter: %d#1 in) + (debug, Peck Increment: %.3f#6 in) + (debug, Start Z: %.3f#<_z> in) + (debug, Finish Z: %.3f#2 in) + (debug, Feed: %.3f#4 in/rev) + (debug, Tool: %d#5) + (debug, Speed: %d#3 sfm @ %d#10 rpm) +O100 ELSE + (MSG, METRIC sizes) + # = #1 + # = #2 + # = #3 ;m/m + # = #4 + # = #6 + # = #7 + #10 = [# / [3.1415 * #]] ; rpm from m/m request + + (debug, Drilling Diameter: %d# mm) + (debug, Peck Distance: %.2f# mm) + (debug, Start Z: %.2f#<_z> mm) + (debug, Finish depth: %.2f# mm) + (debug, Feed: %.2f# mm/rev) + (debug, Tool: %d#5) + (debug, Speed %d# m/min @ #10 rpm) +O100 ENDIF + +M73 ; save state, restore on exit + +G7 ; diameter mode +G17 ; XY Plane +G21 ; Metric Units don't change units! +G90 ; Absolute Distance + +# = #<_z> (starting Z) + +(MSG, Unpause To start Drilling Macro) +m0 + +M6 T#5 G43 + +G97 S#10 ; Constant RPM mode +M3 ;Start Spindle +G95 F# ; Feed-Per-Rev Mode + +g4p1 ; Wait to reach speed + +G0 X0 ; must drill from the centerline. Tool should be zeroed here +G00 Z # +G98 +G83 Z# R# Q# +G80 + +G0 Z # +M5 +G7 + +(MSG,Done Drilling Macro) +O endsub + +M2 diff --git a/nc_files/macros/lathe/facing.ngc b/nc_files/macros/lathe/facing.ngc new file mode 100644 index 00000000000..02581c15b46 --- /dev/null +++ b/nc_files/macros/lathe/facing.ngc @@ -0,0 +1,74 @@ +; MACROCOMMAND=Face Diameter,SFM,DOC,FPR,Z Length,Angle,Tool Number, Max RPM +; MACRODEFAULTS=1,500,.02,.007,-2,0,1,1500 +; MACROSVG=LatheMacro.svg,2,10 + +; Ocall [${face.x-f}] [${face.sf-f}] [${face.cut-f}] [${face.feed-f}] [${face.z-f}] [${face.angle-s}] [${face.tool-s}] + +; #1 face diameter +; #2 surface speed +; #3 DOC +; #4 feed/rpm +; #5 Face Z length +; #6 face angle +; #7 tool number +; #8 max RPM +;Facing + +O sub + +O10 IF [#6 NE 0] + (MSG, Angled facing isn't supported yet) + M2 +O10 ENDIF + +O107 IF [#<_imperial>] + (MSG, IMPERIAL ON) + #1 = [#1 * 25.4] + #2 = [#2 * .3048] ; sf/m to m/m + #3 = [#3 * 25.4] + #4 = [#4 * 25.4] + #5 = [#5 * 25.4] +O107 ENDIF + +M73 + +G7 ; Lathe Diameter Mode +G18 ; XZ Plane +G21 ; Metric Units +G90 ; Absolute Distance + + +#14 = [#<_x> * 2] (starting X) +#13 = #<_z> (starting Z) + +(debug, Facing start X #14 mm, Start Z #13 mm) +(debug, Finish Z #5 mm) +(MSG, Unpause To start Facing Macro) +m0 + +M6 T#7 G43 + +G96 D#8 S#2 ; Constant Surface Speed Mode +M3 +g95 F#4 ; Feed-Per-Rev Mode + +g4p1 ; Wait to reach speed + + O200 WHILE [#13 GT #5 + #3] + + #13=[#13-#3] + G1 Z#13 + G1 X#1 + G0 Z[#13+#3] + G0 X#14 + G0 Z#13 + O200 ENDWHILE + + G1 Z#5 + G1 X#1 + G0 Z[#13+#3] + G0 X[#14+#3] + G0 Z#5 ; For touch-off + M5 +O endsub +M2 diff --git a/nc_files/macros/lathe/go_to_position.ngc b/nc_files/macros/lathe/go_to_position.ngc new file mode 100644 index 00000000000..534fcba67c5 --- /dev/null +++ b/nc_files/macros/lathe/go_to_position.ngc @@ -0,0 +1,30 @@ +; MACROCOMMAND=xinc,zinc +; MACRODEFAULTS=0.0,0.0 +; MACROIMAGE=go_to_position.png +; MACROOPTIONS =load:yes,save:yes +; Testfile go to position +; will jog the machine to a given position + +O sub + +G17 +G20 +G54 +G61 +G40 +G49 +G80 +G90 + +;#1 = +;#2 = + +(DEBUG, %fWill now move machine to X = #1 , Z = #2) +(MSG, Unpause To Start Go-To-Position Macro) +m0 + +G0 X #1 Z #2 + +O endsub + +M2 diff --git a/nc_files/macros/lathe/go_to_position.png b/nc_files/macros/lathe/go_to_position.png new file mode 100644 index 0000000000000000000000000000000000000000..39e345ca2ac689a1258f7ed49b6a0ab44cbfbbcf GIT binary patch literal 3725 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 literal 0 HcmV?d00001 diff --git a/nc_files/macros/lathe/go_to_position_data.txt b/nc_files/macros/lathe/go_to_position_data.txt new file mode 100644 index 00000000000..6cf0bd4ded5 --- /dev/null +++ b/nc_files/macros/lathe/go_to_position_data.txt @@ -0,0 +1,2 @@ +go_to_position0,1.0, xinc +go_to_position1,3.5, zinc diff --git a/nc_files/macros/lathe/probe-hole.ngc b/nc_files/macros/lathe/probe-hole.ngc new file mode 100644 index 00000000000..592647a8fa2 --- /dev/null +++ b/nc_files/macros/lathe/probe-hole.ngc @@ -0,0 +1,85 @@ +; MACROCOMMAND=r1 Max,Fast Feed,Slow Feed,d1 (mm) +; MACRODEFAULTS=1,25,.1,6 +; MACROSVG=LatheMacro.svg,8,9 +; O call [Max Radius] [slow_feed] [fast_feed] [diameter] + +; #1 Max radius +; #2 fast probe speed +; #3 slow probe feed +; #5 probe diameter (in mm) + +O sub + +; Fast feed for roughing in measurements +G20 F#2 + +#1000=#1 ;max radius + +G91 G38.3 Z.00001 +#1001=#5061 +#1002=#5062 + +G91 G38.2 X#1000 +#1003=#5061 +G90 G0 X#1001 +G91 G38.2 X[0-#1000] +#1004=#5061 +#1001=[[#1003+#1004]/2] +G90 G0 X#1001 + +G91 G38.2 Y#1000 +#1005=#5062 +G90 G0 Y#1002 +G91 G38.2 Y[0-#1000] +#1006=#5062 +#1002=[[#1005+#1006]/2] +G90 G0 Y#1002 + + +G91 G38.2 X#1000 +#1003=#5061 +G90 G0 X#1001 +G91 G38.2 X[0-#1000] +#1004=#5061 +#1001=[[#1003+#1004]/2] +G90 G0 X#1001 + +G91 G38.2 Y#1000 +#1005=#5062 +G90 G0 Y#1002 +G91 G38.2 Y[0-#1000] +#1006=#5062 +#1002=[[#1005+#1006]/2] +G90 G0 Y#1002 + +; Slow probe for accuracy +F#3 + +G90 G0 X[#1003-0.005] +G91 G38.2 X0.010 +#1003=#5061 +G90 G0 X[#1004+0.005] +G91 G38.2 X-0.010 +#1004=#5061 +#1001=[[#1003+#1004]/2] +G90 G0 X#1001 + +G90 G0 Y[#1005-0.005] +G91 G38.2 Y0.010 +#1005=#5062 +G90 G0 Y[#1006+0.005] +G91 G38.2 Y-0.010 +#1006=#5062 +#1002=[[#1005+#1006]/2] +G90 G0 Y#1002 +G91 G1 F1 X[0-#5071] Y[0-#5072] +G90 + +#1007=[#1003-#1004+[#5/25.4]] +#1008=[#1005-#1006+[#5/25.4]] +#1009=[[#1007+#1008]/2] +#1010=[atan[#1002]/[#1001]] +#1011=[sqrt[[#1001*#1001]+[#1002*#1002]]] + +(debug,Dia #1009 Ang #1010 Dist #1011) +O endsub diff --git a/nc_files/macros/lathe/radius.ngc b/nc_files/macros/lathe/radius.ngc new file mode 100644 index 00000000000..6d1a9b7ea17 --- /dev/null +++ b/nc_files/macros/lathe/radius.ngc @@ -0,0 +1,85 @@ +; MACROCOMMAND=X,SFM,DOC,Z,Tool Number,Radius,Front Outside,Front Inside,Back Outside +; MACRODEFAULTS=1,300,.5,1,.1,.015,true,false,false +; MACROSVG=LatheMacro.svg,3 + +; O call [${radius.x-f}] [${radius.sf-f}] [0.5] [0][${radius.z-f}] [${radius.tool-s}] [0] [${radius.rad-f}] [${radius.fo}] [${radius.fi}] [${radius.bo}] + +O sub + +O107 IF [#<_imperial>] + (MSG, IMPERIAL ON) + #1 = [#1 * 25.4]; X + #2 = [#2 * 3.28]; surface speed + #3 = [#3 * 25.4]; doc + #4 = [#4 * 25.4]; Z + #6 = [#6 * 25.4]; radius +O107 ENDIF + +M73 ; save/restore codes + +G8 ; Lathe radius Mode +G18 ; XZ Plane +G21 ; Metric Units +G90 ; Absolute Distance + + +M6 T#6 G43 + +#1 = [#1 / 2] ; because of radius mode +#14 = [#<_x>] (starting X) +#13 = [#<_z>] (starting Z) + +G96 D1500 S#2 ; Constant Surface Speed Mode +M3 +g95 F0.1 ; Feed-Per-Rev Mode + +#20 = 0 +O101 if [#9 GT 0.5] ; Front outside + o100 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + g0 x[#1 - #20] z#13 + g1 z#5 + g3 x#1 z[#5 - #20] K[-#20] + g1 x #14 + g0 z#13 + o100 endwhile + g0 x#14 z#13 + g0 x[#1 - #8] + g1 z#5 + g3 x#1 z[#5 - #8] K[-#8] + g1 x #14 + g0 z#13 +O101 elseif [#10 GT 0.5] ; front inside + o102 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + g0 x[#1 + #20] z#13 + g1 z#5 + g2 x#1 z[#5 - #20] K[-#20] + g1 x #14 + g0 z#13 + o102 endwhile + g0 x#14 z#13 + g0 x[#1 + #8] + g1 z#5 + g2 x#1 z[#5 - #8] K[-#8] + g1 x #14 + g0 z#13 +O101 elseif [#11 GT 0.5] ; back outside + o103 while [[#20 + #3] lt #8] + #20 = [#20 + #3] + g0 x[#1 - #20] z#13 + g1 z#5 + g2 x#1 z[#5 + #20] K#20 + g1 x #14 + g0 z#13 + o103 endwhile + g0 x#14 z#13 + g0 x[#1 - #8] + g1 z#5 + g2 x#1 z[#5 + #8] K#8 + g1 x #14 + g0 z#13 +O101 endif +G7 +O endsub +m2 diff --git a/nc_files/macros/lathe/threading.ngc b/nc_files/macros/lathe/threading.ngc new file mode 100644 index 00000000000..3afafa490ed --- /dev/null +++ b/nc_files/macros/lathe/threading.ngc @@ -0,0 +1,93 @@ +; MACROCOMMAND=Thread X, SFM, Tool Number, Pitch, Z, Internal, External +; MACRODEFAULTS=1,300,1,.015,1,False,true +; MACROSVG=LatheMacro.svg,5 + +; Ocall [${thread.x-f}] [${thread.sf-f}] [${thread.tool-s}] [${thread.pitch-f}] [${thread.z-f}] [${thread.internal}] [${thread.external}] +; #1=thread.x +; #2=thread.sf +; #3=thread.tool-s +; #4=thread.pitch-f +; #5=thread.z-f +; #6=thread.internal +; #7=thread.external + +;threading + +O sub + +O107 IF [#<_imperial>] + (MSG, IMPERIAL ON) + #1 = [#1 * 25.4] ; start X + #2 = [#2 * .3048] ; sf/m to m/m + #4 = [#4 * 25.4] ; pitch + #5 = [#5 * 25.4] ; z finish +O107 ENDIF + +G7 ; Lathe Diameter Mode +G18 ; XZ Plane +G21 ; Metric Units +G90 ; Absolute Distance + +#14 = [#<_x> * 2] (starting X) +#13 = #<_z> (starting Z) + +O50 IF [#6 GT 0.5] + (debug, INTERNAL Threading thread dia-#1) + (debug, start-#13) + (debug, finish-#5) + (debug, Pitch-#4) + (debug, Depth-#3) +O50 ELSE + # = [#1 - 0.108 * #4] + # = [#1 - 1.0825 * #4] + (debug, EXTERNAL Threading OD = # ID = #) +O50 ENDIF + +(MSG, Unpause To start Threading Macro) +m0 + +M6 T#3 G43 + +G96 D200 S#2 ; Constant Surface Speed Mode +M3 +g95 F0.1 ; Feed-Per-Rev Mode + +g4p1 ; Wait to reach speed + +;Threading + ; Internal + O51 IF [#6 GT 0.5] + # = [#1] + # = [#1 - 1.3 * #4] + ;g1X [# - 1] ;thread truncation + ;g0 Z #13 + ;g1 X # + ;g1 Z #5 + G0 X[# - 1] + g0 Z #13 + #3 = [#4 * 1.3] + + g1X [# - 1] + g76 p#4 z#5 i1 j0.2 k#3 h3 r1.5 q29.5 e0 l0 + + ; External + O51 ELSE + # = [#1 - 0.108 * #4] + # = [#1 - 1.0825 * #4] + ; EXTERNAL Threading OD = # ID = #) + #3 = [#4 * 1.0825] + g1X [# + 1] ;final thread truncation + g0 z#13 + g1 X # + g1 Z #5 + G0 X[# +1] + G0 Z #13 + g76 p#4 z#5 i-1 j0.2 k#3 h3 r1.5 q29.5 e0 l0 + + O51 ENDIF + + G0 Z #13 + m5 +O endsub + +M2 diff --git a/nc_files/macros/lathe/turning.ngc b/nc_files/macros/lathe/turning.ngc new file mode 100644 index 00000000000..0f268a0171a --- /dev/null +++ b/nc_files/macros/lathe/turning.ngc @@ -0,0 +1,109 @@ +; MACROCOMMAND=Finish Diameter,SFM,DOC,FPR,Finish Length,Radius,Angle,Tool Number, Max RPM +; MACRODEFAULTS=1.0,500.0,.02,.007,-2.0,0.0,0.0,1,1500 +; MACROSVG=LatheMacro.svg,0,11 + +; O call [${turn.x-f}] [${turn.sf-f}] [${turn.cut-f}] [${turn.feed-f}] [${turn.z-f}] [${turn.rad-f}] [${turn.angle-f}] [${turn.tool-s}] + +; #1 finish diameter +; #2 speed +; #3 depth of cut +; #4 feed/rpm +; #5 finish length +; #6 radius +; #7 angle +; #8 tool number +; #9 max RPM + +;Turning + +O sub + +O110 IF [#<_imperial>] + (MSG, IMPERIAL sizes) +O110 ELSE + (MSG, METRIC sizes) +O110 ENDIF + +(debug, Start Diameter %.3f#<_x>) +(debug, Finish Diameter %.3f#1) +(debug, Z Start %.3f#<_z>) +(debug, Z Finish %.3f#5) + +O107 IF [#<_imperial>] + (MSG, IMPERIAL ON) + #1 = [#1 * 25.4] + #2 = [#2 * .3048] ; sf/m to m/m + #3 = [#3 * 25.4] + #4 = [#4 * 25.4] + #5 = [#5 * 25.4] + #6 = [#6 * 25.4] +O107 ENDIF + +M73 ;save/restore codes + +G8 ; Radius mode (easier maths) +G18 ; XZ Plane +G21 ; Metric Units +G90 ; Absolute Distance +G91.1 ; but not for arcs + +# = #1 +#1 = [#1 / 2] ; because of radius mode +#14 = [#<_x>] (starting X) +# = [#14 *2] +#13 = [#<_z>] (starting Z) + +#20 = [#6 * SIN[#7]] +#21 = [#6 * COS[#7]] +#22 = [#6 / COS[#7]] +#23 = [#5 + #6 - #20] +#24 = [[#13 - #23] * TAN[#7]] + + +(MSG, Unpause To Start Turning Macro) +m0 + +M6 T#8 G43 + +G96 D#9 S#2 ; Constant Surface Speed Mode +m3 ;Start Spindle +g95 F#4 ; Feed-Per-Rev Mode + + +g4p1 ; Wait to reach speed + + + O100 WHILE [#14 GT [#1 + #3 / 2]] + g0 X #14 + #14=[#14-#3 / 2] + G1 X #14 + G1 Z #23 X[#14 + #24] + O101 IF [#6 GT 0] + G2 Z#5 X[#14 + #24 + #21] I#21 K#20 + G1 X[#14 + #24 + #21 + #3/2] + O101 ELSE + G1 X[#14 + #24 + [#3 * .6]] + O101 ENDIF + O104 IF [#7 LT 0] + G0 X#14 + O104 ENDIF + G0 Z[#13] + O100 ENDWHILE + + G0 x#1 + G1 Z #23 X[#1 + #24] + O102 IF [#6 GT 0] + G2 Z#5 X[#1 + #24 + #21] I#21 K#20 + G1 X[#1 + #24 + #21 + #3] + O102 ELSE + G1 X[#1 + #24 + #3] + O102 ENDIF + O106 IF [#7 LT 0] + G0 X#14 + O106 ENDIF + G0 Z #13 + G0 X #1 ; For touch-off + M5 + G7 +O endsub +M2 diff --git a/nc_files/macros/mill/go_to_home.ngc b/nc_files/macros/mill/go_to_home.ngc new file mode 100644 index 00000000000..91ba54620f4 --- /dev/null +++ b/nc_files/macros/mill/go_to_home.ngc @@ -0,0 +1,13 @@ +; MACROCOMMAND= +; MACRODEFAULTS= +; MACROIMAGE=go_to_home.svg,1,1 + +O sub + + G0 G53 + G28 Z0 + G28 X0 Y0 + +O endsub + +M2 diff --git a/nc_files/macros/mill/go_to_home.svg b/nc_files/macros/mill/go_to_home.svg new file mode 100644 index 00000000000..f9202272fde --- /dev/null +++ b/nc_files/macros/mill/go_to_home.svg @@ -0,0 +1,82 @@ + + + + + + + + image/svg+xml + + + + + + + + + + Go To Home + + diff --git a/nc_files/macros/mill/go_to_position.ngc b/nc_files/macros/mill/go_to_position.ngc new file mode 100644 index 00000000000..d0bf095fb9a --- /dev/null +++ b/nc_files/macros/mill/go_to_position.ngc @@ -0,0 +1,27 @@ +; MACROCOMMAND=xinc,yinc,zinc +; MACRODEFAULTS=0,0,0 +; MACROIMAGE= go_to_position.png +; Testfile go to position +; will jog the machine to a given position + +O sub + +G17 +G20 +G54 +G61 +G40 +G49 +G80 +G90 + +;#1 = +;#2 = +;#3 = + +(DEBUG, Will now move machine to X = #1 , Y = #2 , Z = #3) +G0 X #1 Y #2 Z #3 + +O endsub + +M2 diff --git a/nc_files/macros/mill/go_to_position.png b/nc_files/macros/mill/go_to_position.png new file mode 100644 index 0000000000000000000000000000000000000000..39e345ca2ac689a1258f7ed49b6a0ab44cbfbbcf GIT binary patch literal 3725 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 literal 0 HcmV?d00001 diff --git a/nc_files/macros/mill/go_to_zero.ngc b/nc_files/macros/mill/go_to_zero.ngc new file mode 100644 index 00000000000..85bcaaa6269 --- /dev/null +++ b/nc_files/macros/mill/go_to_zero.ngc @@ -0,0 +1,18 @@ +; MACROCOMMAND= +; MACRODEFAULTS= +; MACROIMAGE=go_to_zero.png +; will jog the machine to zero + +o sub + + o<100> if [#5422 LT 0] + G0 Z0 + G0 X0 Y0 + o<100> else if [#5422 GE 0] + G0 X0 Y0 + G0 Z0 + o<100> endif + +o endsub + +M2 diff --git a/nc_files/macros/mill/go_to_zero.png b/nc_files/macros/mill/go_to_zero.png new file mode 100644 index 0000000000000000000000000000000000000000..f15b97f8abba01e4e7100565e97f1c3475cab272 GIT binary patch literal 3742 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 callsub + +G1 X10 (this move still relative and in metric units, note slow feed restored) +m2 diff --git a/nc_files/ngcgui_lib/arc1.ngc b/nc_files/ngcgui_lib/arc1.ngc new file mode 100644 index 00000000000..6a6aa0a8e81 --- /dev/null +++ b/nc_files/ngcgui_lib/arc1.ngc @@ -0,0 +1,301 @@ +(info: arc1: inside/outside, cw/ccw, cutter radius compensation) + +; Arc making subroutine formatted for ngcgui + +; Specify: +; dir == 2 for cw, 3 for ccw +; inside == 1 for inside, 0 for outside +; xoff,yoff == arc center +; arc radius == distance to center of rotation +; angle == anglular spread of arc +; rotate == rotation of arc +; width == width of arc + +; see also arc2.ngc to specify using center of rotation + +;---------------------------------------------------------------------- +; Copyright: 2012 +; Author: Dewey Garrett +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 2 of the License, or +; (at your option) any later version. +; +; This program is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with this program; if not, write to the Free Software +; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +;---------------------------------------------------------------------- + +o sub + +# = #1 (=1) +#

    = #2 (=2 2:cw 3:ccw) +# = #3 (=1 1:inside 0:outside) +# = #4 (=2000) +# = #5 (=100) +# = #6 +# = #7 +# = #8 (=0.25) +# = #9 (=0) +# = #10 (=.3) +# = #11 (=45 Angle) +# = #12 (=2 Arc Radius) +# = #13 (=-90) +# = #14 (=2) +# = #15 (=0) +# = #16 (=1) +# = #17 (=0) +# = #18 (=1) +# = #19 (=0) +# = #20 (=0) + +# = 1 ;minimum angle +g40; cutter comp off to begin + +o if [# LE 0] + (print, arc1: bad scale: # - EXITING) + (debug, arc1: bad scale: # - EXITING) + (AXIS,notify, arc1: bad scale - EXITING) + m2 +o endif + +o if [[# NE 2] AND [# NE 3]] + (print, arc1: bad dir=# - EXITING) + (debug, arc1: bad dir=# - EXITING) + (AXIS,notify, arc1: bad dir - EXITING) + m2 +o endif + +o if [[# NE 1] AND [# NE 0]] + (print, arc1: bad inside specifier: # - EXITING) + (debug, arc1: bad inside specifier: # - EXITING) + (AXIS,notify, arc1: bad inside specifier - EXITING) + m2 +o endif + +o if [# LT #] + (print, arc1: angle too small: # - EXITING) + (debug, arc1: angle too small: # - EXITING) + (AXIS,notify, arc1: angle too small - EXITING) + m2 +o endif + +o call [#][#][#][#] +# = [#5410 + .001] + +o if [[# GT #] AND [# EQ 1]] + (print, arc1: tooldiam too big: # - EXITING) + (debug, arc1: tooldiam too big: # - EXITING) + (AXIS,notify, arc1: tooldiam too big - EXITING) + m2 +o endif + + +; construct arc parallel to x axis (for transformation later) + + # = [#/2] + # = [90 - #/2] + # = [2 * # * COS[#]] ; between endpoints + +; (xa,ya), (xb,yb), ... are points on arc +; (vxas,vyas), (vxbs,vybs), ... are vectors to subarc centers (short ones) +; (vxal,vyal), (vxbl,vybl), ... are vectors to subarc centers (long ones) + +; start point is at center of outside arc: + # = 0 + # = [# + # * [1 - sin[#]]] + # = 0 + # = [0 - # - #] + + # = [0 + #/2 + # * cos[#]] + # = [0 + # * sin[#]] + # = [0 - # * cos[#]] + # = [0 - # * sin[#]] + # = [0 - [# + #] * cos[#]] + # = [0 - [# + #] * sin[#]] + + # = [0 + #/2 - # * cos[#]] + # = [0 - # * sin[#]] + # = [0 + # * cos[#]] + # = [0 + # * sin[#]] + # = [0 - [# - #] * cos[#]] + # = [0 - [# - #] * sin[#]] + + # = [0 - #/2 + # * cos[#]] + # = [0 - # * sin[#]] + # = [0 - # * cos[#]] + # = [0 + # * sin[#]] + # = [0 + [# - #] * cos[#]] + # = [0 - [# - #] * sin[#]] + + # = [0 - #/2 - # * cos[#]] + # = [0 + # * sin[#]] + # = [0 + # * cos[#]] + # = [0 - # * sin[#]] + # = [0 + [# + # ] * cos[#]] + # = [0 - [# + # ] * sin[#]] + +;# this offset makes center at x,y = 0,0 for convenience: + # = [0 - # * [1 - sin[#]]] + # = [# + #] + # = [# + #] + # = [# + #] + # = [# + #] + # = [# + #] + +; choose points according to dir: +o if [# EQ 2] ; cw 0->a->b->c->d->0 + # = 2 ; pre entry + # = 2 ; most + # = 3 ; inside of arc + + ; 1/4 circle arc entry move + # = [# - #/2] + # = [# - #/2] + # = [#/2] + # = 0 + + # = # + # = # + # = # + # = # + + # = # + # = # + # = # + # = # + + # = # + # = # + # = # + # = # + + # = # + # = # + # = # + # = # +o else ; ccw 0->d->c->b->a->0 + # = 3 ; pre entry + # = 3 ; most + # = 2 ; inside of arc + + ; 1/4 circle arc entry move + # = [# + #/2] + # = [# - #/2] + # = [0 - #/2] + # = 0 + + # = # + # = # + # = # + # = # + + # = # + # = # + # = # + # = # + + # = # + # = # + # = # + # = # + + # = # + # = # + # = # + # = # +o endif + +; apply rotation, scaling, offsets +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +; vectors to arc centers: just rotate and scale, no offset +o call [#][#][#][#][0][0] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][0][0] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][0][0] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][0][0] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][0][0] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][0][0] +# = #<_move:x> +# = #<_move:y> + + s # m3 +o if [# GT 0] + o call [#] +o endif + f# + + g0 z# + g0 x# y# ; pre-entry point + +o if [# EQ 1] +o if [# EQ 2] + /g42 ;# cutter compensation right of path +o else + /g41 ;# cutter compensation left of path +o endif +o else +o if [# EQ 2] + /g41 ;# cutter compensation left of path +o else + /g42 ;# cutter compensation right of path +o endif +o endif + + ; entry with cutter radius compensation + g# x# y# i # j # + g1 z# + + # = [# - #] +o while [# GT [0 - #]] + g# x# y# i# j# z # + g# x# y# i# j# + g# x# y# i# j# + g# x# y# i# j# + g# x# y# i# j# + #=[#-#] +o endwhile + g# x# y# i# j# z [0 - #] + g# x# y# i# j# + g# x# y# i# j# + g# x# y# i# j# + g# x# y# i# j# + g# x# y# i# j# + + g0 z# + g40 ;# cancel cutter radius compensation + +o endsub diff --git a/nc_files/ngcgui_lib/arc1.png b/nc_files/ngcgui_lib/arc1.png new file mode 100644 index 0000000000000000000000000000000000000000..864ccabba5c54ffdc491dd7b027e6d046677c86e GIT binary patch literal 6732 zcma)B2UHZxwyioNpg~`0+IxYf&?Y! zjDX}I8Hq!XAempI_rCZ3|Ld>y*P5B`sdcKWyQY0Vb6H8lQ_`+oPMg0;0XPOkGB{Up{aq$-B>T^R)c~T$m&|JEv zfW|1?0t!W%8VVk4%qi&Gk8pGWd^c2E+vqtw6dp?@t8PE)*_7|>-K6km>PqDieqx}Z zNN_RL%Rkug0m(IQw(x=ipRizp9KN$n*NSN`-8t&?ZFQT9c`V|O8*DmGv{khF>Z<&; z&GpztcdpVk+YjkYEvXhJR8HtkO%_Hi$u2I5Oai1Ay$M)aq!4?KD5O8Nj38OI!ov6a z0gjK5j|ek#7aYlEPm5VwThEkK9p-3V`716qmKt1)N#A?UdIF=6tA;%aW9`f9^ksBI z0uu`h3N8DEZ>&IEUA?Dp`><^Mkn+e|XGNc$o*saKJbgJG9i8gE!a}}>Rc_}%S63Hx z$@J~XSA!(;p>>nkA@jy!i;?8wRq3Hl+Xey0a}0&=Qd0>nOBldf{HjY+S$S?QCEykm z^dlnwOX=yjW>#OBzRca)YrnW;Q&6t1t^j+2gpx2@%wg>Un9x7oI~^qZcr+xCK#2yS zY&7>Zo`bpC>MkSE`~yAr!xx~s(&{hRb&Z z_p)ua_FI}_MO$EC;H32zZXO=bONlN#D@`&8wvRycxU;RT&Uv+h1kA6j7!k^oX3FaP zS{)|=<$H@+J9Ugl0GK>|N}iE5u=ISs>!Pi_ech~e&8&4&Ss4Qf)p>8_bn<-L;&)<;|vN^H#avI(%WRboYt;-R7YG` zR8(X130`ipHR`ffm78llYH>zb#BNz!PL9N!pJCKeU~hka{l}YUwT3(mN}f8eCT&Gl z+PJDt0y+kU6JXGsAB{%u^j@bsxznb9lepq{R=w7I>_BqHLhL-RKCWQ4X0??Soz z;gWvENPmAnakiN4JT<5`E1F7+(evy!@$NRMhbzs^$43YR9o8^fXH@2PtZi(b|60)< z#M!~mXod4>At9kpZV%CzSE<#(!NJ!}+nGEY8)dKPSDtmMIPc@*Bj~!v2PQTbdQbud z!^1kDy1E)T8Wh71UxLW>$sE_XO;qUA1N%?N-Jdk zz4R1Y1ZhC>1rd=4Mb|&zns`&(hYFrtkEiGT-u?J$fQs}-ixK`+U)|@=^93@06^06o zIWSLr$!{=_c=6%}4=-bKOA;}C@un@a(;|9Qr*sov)a&_4`IcrD1*gWEHuKlfqWjfM6|=~oHqGjns(HC`kDd$|8=Kim07oN;;R_1m{^muol7gd4aIkBlS@ zETvz4E&ug~R=gJDX+;`xRq3@+n@-0$J4a%v_roUi3=Cd&t-Qux39pE`AC)iWXW-Qp8&hDV}>fw-2<#64L9{2$KS;4i1j>A^tbb zSLJDx7DF20oqxL?rpJ;Y<3cna<6OWub?8fL!PFck$%1~@$n+|%RTekLyL!1njlJZ= zk#ZsPU0GiiRBW3f^+Y5~1coir(cGPDOHvzp{!CNQw4G zom2BhUucM_=g{SB3u9tIV+aDd6285;S;5+CIB)fW=HA5mYdtBH*@>?wf+R>t2ZW|r zNsp&v{Rdyoj$T?78!XXGesT7#qC7&)?GxHnX^yV9a`*ZOO6N+RA`4H@OC*N`8F$+3 z>Fg8ryr)hMAZTUWCPPHe^8`g9Nr_^u+u!dn1q*w&aA__)KNOM69_Qv!N3cXJ8>}O^Y0oInt~wN778jFg zMr-YVuuOJ8?Q7Y6-DH#t~e)W0v}2C{2>=Y|9rp z;Vn}(oCkBGl1Bs+(@eUJS<7mr+Lha}rQKm@xu7@#+EI(M{(^`);Y?lCAKE?CeN?f70DqE_aUU>FHajskcHlh8?eO zAW)c(XuI{PhHu}#F;V(Tne)GSEBIUzikGg<0e7*QZCS4>SzsMC8m{tA>?Tv{@| zu}G*mlLijQYHen|C_g#QKX@SUY>W`#*^$ZfUX~^Tl$MrWVESx_qX!fDP3OJ*-eqT> z1YIK|OP?625{~D7{Fqw#UbZ#|F%$8kZ%yBQdwB>e?EGsbK5D-c8D`4uzp+uHRe0{0 zZ;%#OR8kV?Cod-_*R>UqQiUns9)7B(rNv(IY&<$3fD9^#0<%6&$0`3y1dGZcQS4J93Vd|j zF!DoI?tfn;01#_0GMSi~B7nxddp!(n89^X^!Q){@xsf3(OegaGYcZSUyI?Z(o*5;^ugcy`dIDCbfu-w-*RD3 zbouE&GdtU|jT?D#bg=ugVnfPN&F? z_4jL{P(pUgv5_$`fy(I-a9M=h4nCW)aQ@u7pjaRuc7oyTl?jbRLXqMHb7MaG>-_x0 zcpd1~ZL+DI7!@_EyJ}Y!o{*3$ta`C0mYA8z#N7O(2nE~dI9l23qW4gP#&f~5*0|vt zDAbqd(=VZbN!+4hycNkHVCm=QH)OtjrdRc`m6d9Lwl;H4PR^9AaD!Pjot;g_{WuNBci_pUn;*k^Tn2u(y*TF(V z>hf39s$I5DJtCx&+ePs_0P+DbVQSb&#%|1}F*jYkLB3y~S(M|(k9A^ItpE3m27Mem z-zR!!8cyp+j*dQz6LYULA1d%U?MC^;*brB;QC9evK$ ztI)Z1wDb6j(^jU2reEP|ZKLv>h#gFJUsxeLFZ=#&e4Oi9Y)hSr zW|PL(r(G%KLe3(<@>m4}6k>z`$_YLbT`DLwDRxL(Dx7~gEkUt8xzQ;`mC-XiOuw1V zau~xA;HjRjED=05rU!E`eXn!m=Pzdt8Zs+3R#DM&Qc_Y@!tu>tzc!XTZea4YFrS9P z!o!m|#Xk)NO-&iVyqx%MKTZT-4f*}SYEH=*0T?ZPK@NxMTH0dg;*xWBcb6u}&dDJH zCr_SymzhZhwW@GDz6YB@$%LXeS{mkv0@0;ClQf_|-6{cODquyAfx3+%@nNr0-l zdJ1QCK>^Qd!NGwGz}8K!UE7}%J0=B#A0K&jZo?fPB#$-vbOx;Ts;dy`rFaqmaeaM8 zqF6GTR3-Lmty7^U{kghJx|(Wgo)GV$D!hkypO)r>9&Bz#f(xRe-_s$c$VwB~3dbXx z=I2drlXJ5YO9;+O7|58Ke$dd+@bi;*b}qBGO3uquLCb{0T;{lXm7)~4v*Vx?+TkwF zN+%p2l2Yw$wQ27p&GY?9sk*_@M&hxbUo))IEfQysj_*%19`E@2`Q2Qvr%h%LFq>rO zCRe{5oLaqp(=MeO*1I9=>(9}rP7!5uLEXHwBe-lQ0%iF<^?OCL&#DfKe+hkuRVA#B zKU&Y;#@9HJ1OvUj0IZCD@zO1`OUlSV+RT0RslimIgx(5(!1wTrwNEF|W=E4*EvDhi zbgRi)qCVl%TzZ6{x4&Om8@s!^yE7HYMUXHOFXnz8aP#y3W$lbw54q;+Nnn_yD(ECS z`)z256lCP)YUZfx>QaFD<>j{pK-7!F!omXXh>s&ULC2pg(O0wyz|N}sF@v2ms%CF% zse5qH5AxO{TU+$C81jmW3PHPNy4JQf_0nfQgS+Tm`J*_SGJU2KIAOV9{c}cPVSYaB z#ZrI1&2wsRY70E)Mny##z#KH>!Q=Go+GHIQ)3?#lc5*%`Is}how=_#y-@FQLzf!<* zG_1At_L+0%o-`Q{%KPyT6`DpoEVWfwwkrz?32DWRl+42Y_{uoZHTvgc!e(SxcVscM zcr8+ucTMI)B;((13*LS)<$koM_-_ZskX|YFh~{rshVBrB55OBU_)zXcR&N3r@Q+!e zM9e{`4i_#J=`jl<2`6f<$jy2Bg!^qN@x=HE9&{k{sGaYX*FYbcNd1hw6n zB;YR#H30;gddLAViH+__CqR@*y+@XMJE&X&cFv#v@4&`-F@%GcS3SDzrVtzX%#iLe z?LbuydjNYt?aS~?ZG@tAB*CV0o6`0M+~5@FkD#dQZ2jV}cHn-7*ow>!h}+xSj~-o9 zG&?Peb+4WtwqWt{Y<3;Yn zHNONaeLM`#S}Q=@GaoB=)M>iGLi@9dhnc(imN2t6xA00t|Z1?*NvNr9l#rb)BO0@P!%LCWcMFn{GTuJ_5e+bD-V0svDo zB4x=N*WGiV5-^Nv^_~d zQL|tRZ5f7*A01u|1|A(oQc%s98CTiNQ6{)b@QV@bU3E#8hm2 z6#>}Suj%`~9@Ua_?Oa)1Ss@1IU4=7FL$H` zAD>UlCeC(>9lP`rIm~@M2gDydU~pRx)W<+c9m{J>Il@WQ{K|xY?@b557CjwsiiwJh z#26S57=6+%`m`_S3&8?l_~=tO#eM5M?!4hA%1MllehD4KcUf8F%IQ7EA|)d@b$dfY zLJ*dau=439Gc)rdfy<=NX-tuhYseg|-r28Sed3%3v}t5K)6&wAzV7MwBEk@$6Yb@SiS>$ozF#W}3e*w;384y*%|! zPJ{mq1q8|FmX>u&KBX7bhCdzW|HF|X3>MD%ZzhaHXg4p?da3^^6rED(JxR&Q2DiN~ zz+3`YX1Nf^bmtlx8ph<15lecXtq=_S=Hf<1Y(cWji;If@K!40U3%?oUyLvdd9)5nO zGdI-`2(ZJ$!ygHH7i@QW5|7YPrrbw!zkQflVMp#6Xs;mL=U~wwacso*zGnG*nE+-# zIyxF#YW7z6MF1`m&LJVfDLHO&(X3Cnudi?H?x1|-4aj3w6V(VP)A2qTrSAzG4mSvK zDTt7r$;8Zz0Kh`5vFr*L7Zu#0kZI`X>1+2_tEeJcQk{YVPjfYXv6-8&62v>tzs8)Y zw6(QS$rSjv4G$6fHzVKyKj`RhnEwO#3eq3U3VmAfkj}y})0FWF z9$9-Zvc`BQUf@as3Y@YY|4-z9wAc1Os9}K%qWr(90WuOKgnv^5WTbyFOE=>`eDa%F z{)FO5q6hPbdVXIE{{%{2ke*2Y&2BvyJW>6N-D>$_|KYSh>_)+c?}X`GOZ%Up*yaDGHo939JPQbifR4bPwdM+0foF+yb8HbN^YYX-jQ0SYq8(z%it&;J7W+Fd&U literal 0 HcmV?d00001 diff --git a/nc_files/ngcgui_lib/arc2.ngc b/nc_files/ngcgui_lib/arc2.ngc new file mode 100644 index 00000000000..d003f11ebed --- /dev/null +++ b/nc_files/ngcgui_lib/arc2.ngc @@ -0,0 +1,54 @@ +(info: arc2: specify arc center, offset, angle) + +; dir: 2 for cw, 3 for ccw +; inside: 1 for inside, else outside + +; Specify: +; (xoff,yoff) == arc center +; (xctr,yctr) == center of rotation +; angle == anglular spread of arc +; width == width of arc + +; calls arc1.ngc + +o sub + +# = #1 (=1) +# = #2 (=2 2:cw 3:ccw) +# = #3 (=1 1:inside 0:outside) +# = #4 (=2000) +# = #5 (=100) +# = #6 +# = #7 +# = #8 (=0.25) +# = #9 (=0) +# = #10 (=.25) +# = #11 (=15) +# = #12 (=2) +# = #13 (=1) +# = #14 (=0) +# = #15 (=0) +# = #16 (=1) +# = #17 (=0) +# = #18 (=1) +# = #19 (=0) +# = #20 (=0) + +# = .1 + + # = [# - #] + # = [# - #] + # = [SQRT[#*# + #*#]] +# = [-90 + ATAN[#]/[#]] + +o if [# LT #] + (print, arc2: separation too small: # - EXITING) + (debug, arc2: separation too small: # - EXITING) + (AXIS,notify, arc2: separation too small - EXITING) + m2 +o endif + + +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + +o endsub diff --git a/nc_files/ngcgui_lib/arc2.png b/nc_files/ngcgui_lib/arc2.png new file mode 100644 index 0000000000000000000000000000000000000000..4aa6f6a63c942517727ce611d2ebadef61692423 GIT binary patch literal 5848 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 literal 0 HcmV?d00001 diff --git a/nc_files/ngcgui_lib/backlash.ngc b/nc_files/ngcgui_lib/backlash.ngc new file mode 100644 index 00000000000..3674b0777b5 --- /dev/null +++ b/nc_files/ngcgui_lib/backlash.ngc @@ -0,0 +1,89 @@ +(info: backlash measurement utility, use with dial indicator) +o sub +# = #1 (= 0 0=x 1=y 2=z) +# = #2 (= 1.1) +# = #3 (= 2) +# = #4 (= 0.1) +# = #5 (= 10) +# = #6 (= 10) + +o if [# GT #] + # = # + # = # +o else + # = # + # = # +o endif + + # = [# - #] +o if [ABS[#] GT 0.9] (protect indicator) + (debug, backlash: move too big for indicator # - EXITING) + (print, backlash: move too big for indicator # - EXITING) + (AXIS,notify, backlash: move too big for indicator - EXITING) + m2 +o endif +o if [[# GT .99] OR [# LT .01]] + (debug, backlash: bad fraction: # - EXITING) + (print, backlash: bad fraction: # - EXITING) + (AXIS,notify, bad fraction - EXITING) + m2 +o endif + + # = [# + [# - #] * #] + # = 0 + f # g1 + +o while [# GT 0] +o if [# EQ 0] + # = 1 + x # + x # + (debug, set indicator ZERO, S to continue) + m0 (mandatory stop) + M110 + x # + x # +o endif +o if [# EQ 1] + # = 1 + y # + y # + (debug, set indicator ZERO, S to continue) + m0 (mandatory stop) + M110 + y # + y # +o endif +o if [# EQ 2] + # = 1 + z # + z # + (debug, set indicator ZERO, S to continue) + m0 (mandatory stop) + M110 + z # + z # +o endif +o if [# EQ 5] + # = 1 + c # + c # + (debug, set indicator ZERO, S to continue) + m0 (mandatory stop) + M110 + c # + c # +o endif + + # = [# - 1] + (debug, READ indicator, S to continue) + m0 (mandatory stop) + M110 +o endwhile + +o if [# EQ 0] + (debug, bad axis specifier: #) + (print, bad axis specifier: #) +o endif + +o endsub diff --git a/nc_files/ngcgui_lib/db25.ngc b/nc_files/ngcgui_lib/db25.ngc new file mode 100644 index 00000000000..b3600f24477 --- /dev/null +++ b/nc_files/ngcgui_lib/db25.ngc @@ -0,0 +1,54 @@ +(info: db25 connector -- uses iquad.ngc) +; centered at origin, use offsets to relocate +o sub +# = #1 (=1) +# = #2 (=2000) +# = #3 (=2 2conv|3climb) +# = #4 (=10) +# = #5 (=.1) +# = #6 (=.02) +# = #7 (=0.2) +# = #8 (=0) +# = #9 (=0) +# = #10 (=0) +# = #11 (=0) +# = #12 (=1) +#= #13 (=0) +# = #14 (=0) + +; reject tools that are too big +o call [#][#][#][#] +# = #5410 +o if [# Gt 0.12501] + (debug, db25: tooldiam too big: # - EXITING) + (print, db25: tooldiam too big: # - EXITING) + (AXIS,notify, db25: tooldiam too big - EXITING) + m2 +o endif + +; http://www.interfacebus.com/Connector_D-Sub_Mechanical_Dimensions.html +; mounting hole spacing is 1.857 + + # = 1.635 + # = 1.675 ; adjust to allow use of 0.125 cutter diameter + # = 0.432 +# = [# - 2 * # * tan[10]] + +; center at origin +# = [0.5 * #] +# = [0.5 * #] + +# = [ 0.5 * #] +# = [-0.5 * #] + +# = [-0.5 * #] +# = [-0.5 * #] + +# = [-0.5 * #] +# = [ 0.5 * #] + +# = 1.0 + +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + +o endsub diff --git a/nc_files/ngcgui_lib/gosper.ngc b/nc_files/ngcgui_lib/gosper.ngc new file mode 100644 index 00000000000..184c96bd765 --- /dev/null +++ b/nc_files/ngcgui_lib/gosper.ngc @@ -0,0 +1,67 @@ +(Adapted from Program to mill a flowsnake.ngc by K. Lerman) +(info: gosper -- recursion demo -- line is x1,y1 to x2,y2) +o sub + +# = #1 (=2000) +# = #2 (=.010 depth of cut) +# = #3 (=10) +# = #4 (=0.5 safety height) +# = #5 (=-0.866 line x1) +# = #6 (=-0.5 line y1) +# = #7 (= 0.866 line x2) +# = #8 (=-0.5 line y2) +# = #9 (=3 recursion lvl) +# = #10 (=1) +# = #11 (=0) +# = #12 (=-3) +# = #13 (=-3) + + (debug, feature: #<_feature:>) + (debug, remaining: #<_remaining_features:>) + +o if [# EQ 0] + # = 1.0 + (debug, scale was 0, setting #) +o endif + +o if [# LT 0] + # = 0 + (debug, level set to #) +o endif +o if [# GT 4] + # = 4 + (debug, level reduced to #) +o endif + +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +# = #<_move:len> +# = #<_move:phi> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +# = #<_move:len> +# = #<_move:phi> +# = # + + s# M3 (spindle on) +o call [#] + + g0 z # + g0 x # y # + f # + g1 z [0 - #] + # = [# - #] + # = [# - #] + # = [SQRT[#*# + #*#]] + # = ATAN [#]/[#] (degrees) + (compute p3 for equilateral triangle) + # = [# + # * COS[# + 60]] + # = [# + # * SIN[# + 60]] + (three sides of equilateral triangle) + o call [#][#] [#] [#] [#] [#] + o call [#][#] [#] [#][#][#] + o call [#][#][#][#] [#] [#] + g0 z # +o endsub diff --git a/nc_files/ngcgui_lib/gosper.png b/nc_files/ngcgui_lib/gosper.png new file mode 100644 index 0000000000000000000000000000000000000000..70d287a8a2acd5c926f16190b10489f2e745f44e GIT binary patch literal 7972 zcmZWu2T)U8w~a_3QX^IAh=@P{1?dow-g^lhk=`NnUZts^KZ&s zEGFEOu|IdJW+B>r&lkX2T##Gb^(ONNfb~t$FHfOs7G_Di4Lf!XA-fRwnYx4*QC~9Ce}L&2 zR8@uhg`cxUnp@y!r0l>DmdYrIgLk0`(#yu?qPMSn#9rTUXQ8R;Jm@C1)^B%yaqhBp zanWTriy0T2i!x9Zp@4L}$W002XN(CL=z6Z*Cl<$eSv;qpV+;a>@S-3cFZ7yw8JL1o6y z^^YPXa{;)7000xr`~+gwTBbm$*^d(&N`tTzHjjKfLB_9x0?<)`6`JfzDPOV@N>*cY z3 z=G_dJ5+XvlaLr|Z^#2`MyYPhliQ}5+cgE7x6n8>9dTLLWDbA22jfF0abBcbX0Zft< z3rxTO5P+*}kyyBCQ_vzp1Sp6Q!>^s;%&yL*`TB~TLSr#0hjw-r^bZ0ZII63&13UB5 zCj_nx+MrPRyGE@_RAu^rutG>Iv5R949vE^4iRJ;61C9z(I&|Gs?~W7viwCRPF4qpF zwDCh+oOdh{AsrzppFc)!QigmxG>FzU7z5PffFS@th#X^pbsuKja(EU#LmVm@3$x+El#%-1!?1(2%XGil~hcLh40u9bwlG@1mpGyE$@}4A~dGp#7or_2f*KK#*`w3Axk(Q#ET)> z2uk%`s)2g@Ij)L4S*<}hu~?40l{dFCJi>jA>Q#3lj_6@m{9}fM5h5cmE?mqyl;FCy z&90Hcz%lL*()!{2qD`5xcg=EAPHWS|EQ@D8G`&AEh80$?%`9~h` zVtJ=(+{gyhyF+>))x;r?55Q_ zA<@bn@2PA#XpSxDi5Pacn%vWpZ7JFiv>w`(IOx=6!N0ALLe5dRv#GZpH)uUy33#~E z*oNHNi6#7LKl$R7_=hfXfuVY_OuvoQ0P7WAJvT3(!?P5$Sx<|L?&2%t&!%c`e0x$# z%#G|aoLEoU`Z(=yOQH89=sv_MAhbXPc#A`mpX!ginz7w5oLE%S^Kc1DsQwaLu<%F@ zp>MJxGU+(w@#mLoK>3m1_Im5?Tp5)E9(198C1}kP8hF-4ID0-E5ZWgd&uf_M3HvTY z-FWx5Q73ZP)BddHaLaOU*YBq5+F@5>P2s6me`id?>bUwn+6;kdW7)%a3RKLiqcua; z(Qp2aEz4g>dOyD*pGDkWyIS~9f0%AaW0+>?EOw=yL0T9FcI5H*l*GlAO>lN;fCrmu zwx_STPmgbsw98g-{ z;t^(SehcMxp)-tg3ddiHHyPb6cM5}dxa-!&swyk@`jhX9h^r5J?z9~Oe^18fAT6!r zPLsI{H0972u(j{?LACWq*7;VgN6k7aR&qHj3ug+K{0{igCWT=6>?H_nrMO#DOwU86 zIWXOsaN3{KRDIoOv$iD1;knVero$G!nI06rTIz@Dv|Q|r=Pk}bA;rw<2_i)NytXHf zm!uGWyXV_o@#mrto32rDEe~!=IL|!Qp}W_kxyeku$Ltrj@k9KJ0gHh(JPWOSU=rn8J4QMW2?UsI1Az?U=dqoP8(w=}&ya$@yiPp~5kIZ)#NUIicPJP4VSJ zws-WU-lC_(zn(G#dg_)3R089fyS)e=MRIcYk=dV5G%HJtE!;AD8~U#%i}K|!+AW#+ zqDBKZ{A`~`)olOP+PW7AA*V91m_eproEVyLEcC(zr=`6kl{sm6E__lAGG{L^bI;aa+f>g%t`olXgNc}@D-5E)_` zXv?PdLDe=`U)J)(P(!6r^Jj@h1*GZu(fALRcj{uP{u2t{!A^KDD}6esKPxI8FZ}X@ zh9kCHr6U5KHLt!C7j3Jr)*93-U!4gzB?(C?P?xYuwqApOUGE;@cX2oE{n;k`U?*qT zQK@!gY;kq;i|f@un_z&t+0>e24%9>cXtQ6T+7(}+dFfu@Za zwfLY(UcT*Fs<#+3k9l~gIqE8FME{nT|5%m4msUAT$|;hdUT=bB29nQZtk-y8;>VPS z|0ss|^TBugcL>kx$?N$03mP{=XI0R^o8`M6H%*hswaYo0dYj9_$+EeTo}Rf6qzq;UWr};f5nXz|`N7{T6=~-v@|2)}{b6BjGAgVVt#Nz$uG)EM}YJbZ} zuURwA07a``=O!^M{23yk=4z)gXrv~leIY*O|K0mhKRuz-gNxO(5%nJwGDSJ~^^`72 z4yEO?(IuA#&)pWonHzSCrkX$NUEj|*Xgw&CpF>X<_qKVj{=jD!6~c%_3Nt?aW7Cv4 ze8r1J>D4FTfCK1oLw}W59@bE>6?;i8zQ+}uCVD&CH|$dEeDGj?j6NA+S}V?Bpp%4V zsh>ePP=^0rhawUEn@TzhrQ-Zu7rXin0`q@vcxT+^S3j?9o`3r@Y-Z5j@W@*O-VjxO zLb~yR&1u$n&S>y>gDv^0nhuvR84^2C|D{~E@xi45cPiY*rY8p;Y-4>T40o35KkB^D zgYWu3HkUyv71Kl;y$%L)JkfbP4)ugN?gHOWGgKn<>NIbT>c52zTS&~Z%p?xh>UU zt8a7E6Q3whhnjO`?QBq?HPxt)f|$kq0LLB13U{KJ2wO_|*@kEn!>g>1Rz+NV4zopa zFEXYk;=O8g2K!jwgCV*2q$X}1l+w9=e^x}}(&ae2OCMR9(rr=5qp@-F`N%K%Y_hpm z@e0-NY4Vf=Q)tqOO^q1Xv`Td=VGW7|%7n`83dEbd+$2p&KU8F_EqyF-I`pGE6 zU>>mj4GMwx5I75d& z*XU#_5sM3)&rGf(K9_UYDbHHx7b=e#t+pE|(;=mv2lvF~iQ*E5Mb^7B!)2kz(NLlA z)MB$*qm>N4Zn5K^r48y<`Wc{l{jr^Zt#Z^OA5o5S;>)?{ZhCE&o_1!|PFW^Ih$wKV znqreTexz;c+jVmkTczzWX$j1~?q4`%^Y@O*yOtTVS4_6D=C#RIBbHeGmfj5Ghcv~u z+>}b!-WH&QoDE6FKa^o^Nb$bWawl1oUCnAe=jT7$Tf=9R!LUV`pF7C`>sPttfkGEb z*0}lC^w*5ed$+DkQ@dsAy2)i#IgD3$1+lf}{kpAEs!`K(8V6Fb0#(0r6XYBoH?d5& zv>-2kNYmOW|B+w%OP*Qx3aGr96%J#^quHOIXc*U_r9q?((}|q6@Z=S7 z$C~TTCBKwgi`QL(de12bp7KID!74q1Hybmmr+BZcjI6Vot*iqZ3*|gIK29288B^~( ztO~@|P}OqG*P-Bo4F0{w#qVAa@zJkb#71X{v$xeEkdJPW>h1A(LfQEElAwlmiez4u8UVjc(O z*xs=)TAe!^FU4opO)4g+TGJ|R5#6O_^?z)D>5+Vf?F*r!ZmpG{m-(V<*G!)dy4e0ES2; zt7$w%zHlg&SjKF-ad<)U{0bkW7lenRSL}_SR4x9|QTQ^mN4QkId14TB_RQbsq?&KKoB_9S@Nb%UnMo6KvmmUkFgb2`jNY|NiF_2+$EWcIV?pJ{=`Jm{ZewdEkJku=us#M^5@j3w;=3UnVUe53 zu37hzA=spQ@9cX^enY$Rc?pqxT zQJQG)oF-GCQ3K2poE5=fERMQKIEic}Y>YDW#9^!m_vc<- zpA>gL`<37ZPNMwNwt z;F2Hr-|wll+T=-;Fu}4h5(pDqhbl|zz+^ubrl-wv1yPN1r zQkt!Ib??Cz6Iz`FoZMATawi1+C%id0?`hd{8-6`yj#cq_v?Odg7D z*niwR{MHFd)|T?s<}iLJllRW_mwZ&=*EZi{Wp#fbogkQ#HL2M>R0POWVtt`hT_D;~ zqWvtJ=y5vb5;A}pma6;`DKqOEs)#cl-_cmC^g>m56{$ZwF2h2?49F(7+NMm0W2YW?bcEB`SHgbp$EiK`G3rYZ51ld{&g_ zGD@M>Gu=8VwzM?yR={mL4k7%lMlt9p8%u^g+Vd~F>Jztd%eT!QT!J>POwMQ0ybntE z_2$%NgxbDqa!M&Mr5f|ORv8EhdTuhCrgt+zQ6QPuxKi}FQ<6^wz_BJ|vBY(Crr0a4 zltcP$p9(#qatrp3T_>Q6-AB}(|JINc+f3syN90?_P%$<&ZpX8=(y)NIm(-x}DToSW zGbOa|0^QyigqFZg;L)T@f2uinnT!K|kulyW=Q}^ng|}b!4xypNv^9rXw5p`_W*#Xc zsG#jW@$NaM+McBWyQ8F7?Z~v(k=qAS7#OpEfb%N$`ZjilcPd_52PM=aU$;3Cd6Shc zb}-!3PwnruP27z)=WAg!srJq`Uw+p*-@u|rUL@$~8;Pfu6ma+VR|quwy~@b;j^pN1 z-|(VIUpA~_$ZA!UZw>P+ZZfWX+e^GC?=OrZ1?!)pHcDU~zo9)&2lL-rz{^}j5 zN^EV}IwwD^YPzKhi}btmX`>eF&5Fru;-Z)xul-{*&R?Dx7#EyUdA!ds%Pm~>?Ev|! zt6?QrB6G^r%d)|#NFF0ut--S|AnoWrlrlct9H3V!ReMo+{nByA$kMIe{ENgPhLE{Wa4|J7g1nHvW-8qxOju#fuMqmV->GA_@wl}EO3D1dviM@=*i_mHP7@V zbl#To$Aq7fwTD@0YTKvzt=CzClNaBA4rRPUoD6MgJx_iZNENn{GHoi7Q>aqM1^3$= z56-+kv8mAV(mds#Y5p9Tf1O7K?Bhso+>#SmKIaCT$e~!2H>#S!sWfulE86J_=zICdG zQ%ZWwmxj)Vl3a-^H@t%97R=scVH16+FHZ=5j8%9K7m<*qq-)GQ;gV%VXRWjP?YWBE z=_q3sa$(Ru5muR#*zcKpj1r<5B0^V(PH8oPaSeO_6!YH1?Zg#^{(x=rc%yg#Jtj30 zm+!E!{N+6|5N?1%jyhf(e`bb-)T-%HK50KUXqzo)dYzWGQ4^><_BDc&F_YoC(#o0% zb^@fB;B01doYs}PG2ZC0&Zw(Su8=kO)#JSpitWcA3(OUnLf4zjbN#wUZO(;f7Mv2P z+CL`$Q+yc`8**Qem-JYII*z5M^#9UR+;a969Ew1yyd8{zsbeCQ@r6^%{}Iw@ZRX$D z^;l*Ef|)Jo?jxYy?Eo8jYdg*xmEVBE>gh^MpJ%>ylJRew^leaW&U`=s>mRTQN>gWS zPWXm5;GNN5Y?g+m)7-eCSs-SPQK^5Mw0F5{89X$ih!@DKiYOg20PHZOJFE71;57(UrPSmqr2&xe_OmOTK9P+egQ@8Xl1AUPl@-euqcZdo+B8 zpxy2eGm6{WBqA-whIA+N9_Uwfz5O-nG^z%}k*o8*)W5kgE0XWYuul%rCmLf>pJ`~C zdXc&@rp_TiJ3?JiMrrn$&~{rve1+Y+admdpP86svyCE0vOjPci$eq5t!T8~l;fc)? z8oP{YSyF8I4W7Yw_Xgie*bJ$bAYeXOL|Vh)w&ytUnbA(O5I$6_?NOk2vxveLF1@hz zynnj@ubN|q?aY-X%W{ukg8G7@fR_@yGE|>EcPxH`fqlr1k|6=RQ>BlZb6OG&vX%Xq zH;i)fM~7fm)DspeyZI2R*|!gy_FlRB8Kd}i;ma`OpEk*{tGTTkmpZw#QJSbjlinSz z)@aM4+p+o1{N9}`@9Re&8)I!nm<5<=m<4Kf2B+F;SWYS6;Xkn3#Gk%>BkVYI1`t9c zHK=V3ZEWla!$)qgGrIdPyV031j?+IKFDS)SXC~Qm*@z2Y+_Z8g4Y>2THa|ah))hxS zKp3qbIgNrL?17=hEjyOJtFbPx`_Ak}0bvtobLbxGvo+NHj0Xb2l_~aA=wijYw**w# zKh_w<#3y~y>$>QrdtzFz@`C0MN`ACm`6u^g^Ug;eL;}@^>z(Vc3!47g>hMx%ms;yY~&H1){3&sI{0}W~GbO zMG0}oA&-azraPx*J|AySIn-5nPu4n?3-R5AkFa=4*CvpS4&KMDATQPFCu{ec2p~Lo zVFyC=s#fJ|A12>B;V=l;qcT%xEl;CD1*E^&&oXCUA`G!Lo!G(-AEbBEq+iE&+~3lo z5n?0WV1-bjctu-xvNKUyi9#y~5O%yo%B7F9QQR%Jmn#Zi$@ zv~H?=G@Q+|dbz0*e|rDfo&b(d8bpL>3NY{NSd9nuJW8k#e1r>`S2Dn{yl-$ThQ#lbir8BF2F5EJavs!yd)u6gl4x?#vT4ly9^<_-8q-p{+x z42e-P;AuE*x`b2%R-w}q52LC<#24$;Jszta?6*0JwaKd9|==HZln+YTl4*2O9;-D#0yqC@(}W$puaXn MSv8qTDf6)Z0gE sub + +# = #1 (=1) +# = #2 (=2000) +# = #3 (=10) +# = #4 (=3 2:cw, 3:ccw) +# = #5 (=1 1:in, 0:out) +# = #6 (z cutdepth) +# = #7 (z increment) +# = #8 (=0.5) +# = #9 (x center) +# = #10 (y center) +# = #11 (diameter) +# = #12 (=0 face angle) +# = #13 (=0 d angle) +# = #14 (=0) +#= #15 (=0) +# = #16 (=1) +# = #17 (=0) +# = #18 (=0) + +o call [#][#][#][#] +# = [#5410 + .001] + + #
    = [#/2] + # = [-1 * #] +o if [# GT 0.0] + (debug, helix: bad cutdepth # - EXITING) + (print, helix: bad cutdepth # - EXITING) + (AXIS,notify, helix: bad cutdepth - EXITING) + m2 +o endif + + # = [-1 * #] +o if [# GT 0.0] + (debug, helix: bad zincr # - EXITING) + (print, helix: bad zincr # - EXITING) + (AXIS,notify, helix: bad zincr - EXITING) + m2 +o endif +o if [[# NE 0] AND [# NE 1]] + (debug, helix: bad inside specifier # - EXITING) + (print, helix: bad inside specifier # - EXITING) + (AXIS,notify, helix: bad inside specifier - EXITING) + m2 +o endif +o if [[#
    NE 2] AND [# NE 3]] + (debug, helix: bad dir specifier # - EXITING) + (print, helix: bad dir specifier # - EXITING) + (AXIS,notify, helix: bad dir specifier - EXITING) + m2 +o endif + + # = [# / 2.0] + G40 (cutter radius compensation off) + s# m3 (spindle cw) +o if [# GT 0] +o call [#] +o endif + f # + + # = # + # = [#/2] + + (to avoid gouging, start point is arc opposite flat) + (start point x0,y0 and vector to center vx0,vy0) + # = [# + #
    * cos[# + 180]] + # = [# + #
    * sin[# + 180]] + # = [#
    * cos[#]] + # = [#
    * sin[#]] + +o call [#][#
    ][#][#][#][#][#] + # = #<_entry:prex> (pre entry point) + # = #<_entry:prey> + # = #<_entry:vx> (vector to arc center) + # = #<_entry:vy> + + (points at the ends of the arc) + (x1,y1 start point of flat, vx1,vy1 vector to center) + (x2,y2 start point of flat, vx2,vy2 vector to center) +o if [# eq 2] (cw) + # = [# + #
    * cos[# + #]] + # = [# + #
    * sin[# + #]] + # = [#
    * cos[# + # + 180]] + # = [#
    * sin[# + # + 180]] + + # = [# + #
    * cos[# - #]] + # = [# + #
    * sin[# - #]] + # = [#
    * cos[# - # + 180]] + # = [#
    * sin[# - # + 180]] +o else + # = [# + #
    * cos[# + #]] + # = [# + #
    * sin[# + #]] + # = [#
    * cos[# + # + 180]] + # = [#
    * sin[# + # + 180]] + + # = [# + #
    * cos[# - #]] + # = [# + #
    * sin[# - #]] + # = [#
    * cos[# - # + 180]] + # = [#
    * sin[# - # + 180]] +o endif + + g0 z # + +o if [# NE 0] (inside) +o if [# eq 2] (cw) + (debug conventional CW,INSIDE) + g0 x# y# z # +/ g42 (cutter radius comp right of path) + g2 x# y# i# j# +o else (ccw) + (debug climb CCW,INSIDE) + g0 x# y# z # +/ g41 (cutter radius comp left of path) + g3 x# y# i# j# +o endif + +o else (outside) +o if [# eq 2] (2 ==> cw) + (debug,climb CW,OUTSIDE) + g0 x# y# z # +/ g41 (cutter radius comp left of path) + g3 x# y# i# j# +o else (3 ==> ccw) + (debug conventional CCW,OUTSIDE) + g0 x# y# z # +/ g42 (cutter radius comp right of path) + g2 x# y# i# j# +o endif +o endif + (entry complete: #,#,#) + + g0 z [# + 0.05] (hardcoded delta) + g1 z # (plunge) + # = # + #<_:pass> = 1 (colon makes hidden global var) +o while [# GT #] + # = [# + #] +o if [# LT #] + # = # +o endif + g# x# y# i# j# z# + g1 x# y# + g# x# y# i# j# z# + #<_:pass> = [#<_:pass> + 1] +o endwhile + (final traverse at full depth) + g# x# y# i# j# z# + g1 x# y# + g# x# y# i# j# z# + g0 z# + g40 +o endsub diff --git a/nc_files/ngcgui_lib/helix_rtheta.ngc b/nc_files/ngcgui_lib/helix_rtheta.ngc new file mode 100644 index 00000000000..24c6d5483ca --- /dev/null +++ b/nc_files/ngcgui_lib/helix_rtheta.ngc @@ -0,0 +1,29 @@ +(info: helix_rtheta: specify center with r,theta, uses helix.ngc) +o sub + +# = #1 (=1) +# = #2 (=2000) +# = #3 (=10) +# = #4 (=3 2:cw, 3:ccw) +# = #5 (=1 1:in, 0:out) +# = #6 (z cutdepth) +# = #7 (z increment) +# = #8 (=0.5) +# = #9 (hole diameter) +# = #10 (=0 face angle) +# = #11 (=0 d angle) +# = #12 (r center) +# = #13 (theta center) +# = #14 (=0) +#= #15 (=0) +# = #16 (=1) +# = #17 (=0) +# = #18 (=0) + +o call [#][#][#][#] +# = [#5410 + 0.001] + +# = [# * COS[#]] +# = [# * SIN[#]] +ocall [#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] +o endsub diff --git a/nc_files/ngcgui_lib/hole_circle.ngc b/nc_files/ngcgui_lib/hole_circle.ngc new file mode 100644 index 00000000000..6a40a4f5553 --- /dev/null +++ b/nc_files/ngcgui_lib/hole_circle.ngc @@ -0,0 +1,45 @@ +(info: hole_circle: equally spaced, uses helix.ngc) +o sub + +# = #1 +# = #2 (=2000) +# = #3 (=10) +# = #4 (=3 2:cw, 3:ccw) +# = #5 (=1 1:in, 0:out) +# = #6 +# = #7 +# = #8 (=0.5) +# = #9 (Circle diameter) +# = #10 (=0 start theta) +# = #11 (hole diameter) +# = #12 (=4 N holes) +# = #13 (=0) +# = #14 (= 0) +# = #15 (= 0) +#= #16 (= 0) +# = #17 (=1) +# = #18 (=0) +# = #19 (=0) + +o call [#][#][#][#] +# = [#5410 + .001] + +# = 0 +# = [360/#] +# = 0 (notused helix item) +# = 0 (notused helix item) +# = [# / 2] + +o while [# LT #] + # = [# + # * COS[#]] + # = [# + # * SIN[#]] + + ocall [#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + # = [# + 1] + # = [# + #] + #<_feature:> = # (using _feature: here disables stop) + (that would occur in helix at spin sub call) +o endwhile + + +o endsub diff --git a/nc_files/ngcgui_lib/ihex.ngc b/nc_files/ngcgui_lib/ihex.ngc new file mode 100644 index 00000000000..cddee2cb847 --- /dev/null +++ b/nc_files/ngcgui_lib/ihex.ngc @@ -0,0 +1,218 @@ +(require: angle at intersection of p1-2 and p1-4 must be obtuse) +(cw traverse: p1,p2,p3,p4) +(ccw traverse: p1,p4,p3,p2) + +(info: ihex: internal hexagon, cw/ccw dir, radius compensation) +o sub + +# = #1 (=1) +# = #2 (=2000) +# = #3 (=10) +# = #4 (=2 2conv | 3climb) +# = #5 (distance across flats) +# = #6 +# = #7 +# = #8 (=0.2) +# = #9 (=0) +# = #10 (=1) +# = #11 (=0) +# = #12 (=0) +# = #13 (=0) +# = #14 (=0) +# = #15 (=1) +# = #16 (=0) +# = #17 (=0) + +o if [# EQ 0] + # = 1.0 + (debug, scale was 0, setting #) +o endif + +o call [#][#][#][#] +# = [#5410 + .001] + +o if [[# NE 2] AND [# NE 3]] + (debug, ihex: direction must be 2 or 3 - EXITING) + (print, ihex: direction must be 2 or 3 - EXITING) + (AXIS,notify, ihex: direction must be 2 or 3 - EXITING) + m2 +o endif + +# = [#/2] +#

    = [#/cos[30]] + +# = [#

    * cos[60]] +# = [#

    * sin[60]] + +(p1 -> p2 -> is cw) +(apply scale,rotate, then offset to all input points) +# = #

    +# = 0 +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = # +# = [0 - #] +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [0 - #] +# = [0 - #] +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [0 - #

    ] +# = 0 +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [0 -# ] +# = # +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = # +# = # +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [#/2] +# = [0 - #] +# = [0 - #] + +(get lengths and angles for connecting lines) +o call [#][#][#][#] +# = #<_line:phi> +o call [#][#][#][#] +# = #<_line:len> +# = #<_line:phi> +# = #<_line:cos> +# = #<_line:sin> +o call [#][#][#][#] +# = #<_line:phi> + +o call [#][#][#][#] +# = #<_line:len> +# = #<_line:phi> +# = #<_line:cos> +# = #<_line:sin> + + g40 (cutter radius compensation off) + f # + s # m3 (spindle cw) +o if [# GT 0] +o call [#] +o endif + g0 z# + # = # + # = 1 + +o while [# GT #] + # = [# + #] +o if [# LT #] + # = # +o endif +o if [# GT 100] + (debug, ihex: too many passes - EXITING) + (print, ihex: too many passes - EXITING) + (AXIS,notify, ihex: too many passes - EXITING) + m2 +o endif + +o if [#

    EQ 2] +o if [# EQ 1] + (arc entry along line1-2 where corner 1 is obtuse) + # = [# + 1 * # * cos[#]] (entry) + # = [# + 1 * # * sin[#]] + # = [# + 2 * # * sin[#]] (preentry 1) + # = [# - 2 * # * cos[#]] + # = [# + # * cos[#]] (preentry 2) + # = [# + # * sin[#]] + # = [0 - # * sin[#]] (r vector) + # = [0 + # * cos[#]] + g0 x # y # (preentry 1) + g0 x # y # (preentry 2) +/ g42 (cutter radius comp right of path) + g2 x # y # i # j # (arc entry) + # = [#] + # = [#] + (go along the 2-->3 line to exit) + (angle between 1-->2 and 2-->3) + (only necessary for acute angles) + # = [180 + # - #] + # = [# / ABS[TAN[#/2]]] + # = [#/#] + (print angle=# elen=# k=#) +o if [# GE 1] + (debug, ihex: can't get in final corner k=# - EXITING) + (print, ihex: can't get in final corner k=# - EXITING) + (AXIS,notify, ihex: can't get in final corner - EXITING) + m2 +o endif + # = [# + # * # * #] + # = [# + # * # * #] + g1 z # (plunge) +o endif + x # y # z# + x # y # + x # y # + x # y # + x # y # + x # y # + # = [# + 1] +o else (dir EQ 3 CCW) +o if [# EQ 1] + (arc entry along line4-1 where corner 1 is obtuse) + # = [# + 1 * # * cos[#]] (entry) + # = [# + 1 * # * sin[#]] + # = [# - 2 * # * sin[#]] (preentry 1) + # = [# + 2 * # * cos[#]] + # = [# + # * cos[#]] (preentry 2) + # = [# + # * sin[#]] + # = [0 + # * sin[#]] (r vector) + # = [0 - # * cos[#]] + g0 x # y # (preentry 1) + g0 x # y # (preentry 2) +/ g41 (cutter radius comp left of path) + g3 x # y # i # j # (arc entry) + # = [#] + # = [#] + (go along the 4-->3 line to exit) + (angle between 4-->3 and 1-->4) + (only necessary for acute angles) + # = [180 - # + #] + # = [# / ABS[TAN[#/2]]] + # = [#/#] +o if [# GE 1] + (debug, ihex: can't get in corner k=# - EXITING) + (print, ihex: can't get in corner k=# - EXITING) + (AXIS,notify, ihex: can't get in corner - EXITING) + m2 +o endif + # = [# + 1.01* # * # * #] + # = [# + 1.01* # * # * #] + g1 z # (plunge) +o endif + x # y # z# + x # y # + x # y # + x # y # + x # y # + x # y # + # = [# + 1] +o endif + +o endwhile + + g1 x # y # + g1 x # y # + + g0 z # + g40 +o endsub diff --git a/nc_files/ngcgui_lib/iquad.ngc b/nc_files/ngcgui_lib/iquad.ngc new file mode 100644 index 00000000000..1baa496f62d --- /dev/null +++ b/nc_files/ngcgui_lib/iquad.ngc @@ -0,0 +1,179 @@ +(inside quadrangle, vertex 1 should be largest) +(computes direction for polygon cw or ccw and swaps indices if required) +(ok for non-pathological 4 sided polygons including convex) + +(info: iquad: internal quadrilateral, four x,y points, cw/ccw dir, radius comp) +o sub + +# = #1 (=1) +# = #2 (=1) +# = #3 (=2 2conv|3climb) +# = #4 (=10) +# = #5 (=.1) +# = #6 (=.02) +# = #7 (=0.2) +# = #8 (=0) +# = #9 +# = #10 +# = #11 +# = #12 +# = #13 +# = #14 +# = #15 +# = #16 +# = #17 (=1) +# = #18 (=0) +# = #19 (=0) +# = #20 (=0) +# = #21 (=0) +# = #22 (=1) +# = #23 (=0) +# = #24 (=0) + +o if [# EQ 0] + # = 1.0 + (debug, scale was 0, setting #) +o endif + +o call [#][#][#][#] +# = [#5410 + .001] + +o if [[# NE 2] AND [# NE 3]] + (debug, iquad: bad direction # - EXITING) + (print, iquad: bad direction # - EXITING) + (AXIS,notify, iquad: bad direction - EXITING) + m2 +o endif + + (compute direction eg cw,ccw for points as specified:) +o call [4][#][#][#][#][#][#][#][#] + # = #<_dir:> + +o if [# NE #] + (print swap for pointsdir=# user:#) + (swap 1234 --> 1432) + # = # + # = # + # = # + # = # + # = # + # = # +o endif + +(apply scale, rotate, then offset to all input points) +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [#/2] +# = [0 - #] +# = [0 - #] + + (get lengths and angles for connecting lines) +o call [#][#][#][#] + # = #<_line:cos> + # = #<_line:sin> +o call [#][#][#][#] + # = #<_line:cos> + # = #<_line:sin> + + (compute angles at line intersections:) +o call [#][#][#][#][#][#] + # = #<_dot:ang> +o call [#][#][#][#][#][#] + # = #<_dot:ang> + + g40 (cutter radius compensation off) + f # + s # m3 (spindle cw) +o if [# GT 0] +o call [#] +o endif + g0 z# + # = # + # = 1 + +o while [# GT #] + # = [# + #] +o if [# LT #] + # = # +o endif +o if [# GT 100] + (debug, iquad: too many passes - EXITING) + (print, iquad: too many passes - EXITING) + (AXIS,notify, iquad: too many passes - EXITING) + m2 +o endif + +o if [# EQ 1] + (entry point:) + (for acute angle: go along the 1-->2 line to enter) + (at a point where tool will fit) + + # = [ # / [TAN[#/2]]] + # = [# / #] + (print entry 12 k=# elen12=# angle=#) + # = [# + # * #] + # = [# + # * #] + (compute pre-entry points:) +o if [# EQ 2] + # = [# + # * # - # * #] + # = [# - # * # - # * #] + # = [# + # * #] + # = [# + # * #] + # = [ # * #] + # = [ # * #] +o else (dir EQ 3 CCW) + # = [# - # * # - # * #] + # = [# + # * # - # * #] + # = [# + # * #] + # = [# + # * #] + # = [ # * #] + # = [ # * #] +o endif + g0 x # y # (preentry 1) + g0 x # y # (preentry 2) +o if [# EQ 2] +/ g42 (cutter radius comp right of path) + g2 x # y # i # j # (arc entry) +o else (dir EQ 3 CCW) +/ g41 (cutter radius comp left of path) + g3 x # y # i # j # (arc entry) +o endif + # = # + # = # + (rampdown finishes at point 2, to exit: need to turn corner at 2) + (and go along the 2-->3 line enough to exit) + # = [ # / [TAN[#/2]]] + # = [# / #] + (print exit 23 k=# elen23=# angle=#) + + (need a test here: if you go along 23 too far you gouge vertex 3) + # = [# + # * #] + # = [# + # * #] + g1 z # (plunge to start height todo:g0) +o endif + x # y # z# (ramp down to zcurrent) + x # y # + x # y # + x # y # + # = [# + 1] +o endwhile + (print a= # # k=#) + (print b= # #) + + g1 x # y # + g1 x # y # + + g0 z # + g40 +o endsub diff --git a/nc_files/ngcgui_lib/iquad.png b/nc_files/ngcgui_lib/iquad.png new file mode 100644 index 0000000000000000000000000000000000000000..940346d71ff9a9d428845fe572ad926ba912f5ad GIT binary patch literal 7475 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 literal 0 HcmV?d00001 diff --git a/nc_files/ngcgui_lib/lathe/g76base.ngc b/nc_files/ngcgui_lib/lathe/g76base.ngc new file mode 100644 index 00000000000..f07045f171e --- /dev/null +++ b/nc_files/ngcgui_lib/lathe/g76base.ngc @@ -0,0 +1,119 @@ +(info: G76 Threading, Specify driveline and offset, use NEGATIVE offset I for External Thread) + +; default values: +; external thread example: xi=0.5,k=0.05,i=-0.03 +; for majordiam=0.94,minordiam=0.84,i=-0.03 + +; internal thread example: xi=0.39,k=0.05,i=+0.03 +; for majordiam=0.94,minordiam=0.84,i=+0.03 + +o sub + # = #1 (= 10) + # = #2 (= 200 Spindle RPM) + + # = #3 (= 0.5 X: Xi driveline) + # = #4 (= -0.5 Z: Zi driveline) + +; G76 required items: + #

    = #5 (= 0.125 P: Pitch, NEG for tpi) + # = #6 (= -1.0 Z: Zf final) + # = #7 (= -0.03 I: Thread peak offset) + # = #8 (= 0.05 K: Full thread depth) + # = #9 (= 0.015 J: Initial cut depth) + +; G76 optional items: + # = #10 (= 1.0 R: Depth degression) + # = #11 (= 29.5 Q: Compound slide angle) + # = #12 (= 0 H: No. of spring passes) + # = #13 (= 0.050 E: Taper dist =K typ) + # = #14 (= 2 L: End Taper 0,1,2,3) + +; other: + # = #15 (=3 Dir: Right=3 Left=4) + # = #16 (=8 G7/G8 Radius=8 Diam=7) + # = #17 (=0 0:silent, 1:verbose) + +o if [#

    LT 0] + #

    = ABS[1 / #

    ] + (debug, g76base: Computed pitch = #

    from tpi) +o endif + +o if [ [# NE 0] AND [# NE 1] AND [# NE 2] AND [# NE 3] ] + (print, q76base: Require: L = 0 or 1 or 2 or 3 - EXITING) + (debug, q76base: Require: L = 0 or 1 or 2 or 3 - EXITING) + (AXIS,notify, q76base: Require: L = 0 or 1 or 2 or 3 - EXITING) + m2 +o endif + +o if [ [# NE 3] AND [# NE 4]] + (print, q76base: Dir: 3 for RH 4 for LH - EXITING) + (debug, q76base: Dir: 3 for RH 4 for LH - EXITING) + (AXIS,notify, q76base: Dir: 3 for RH 4 for LH - EXITING) + m2 +o endif + +o if [ [# NE 7] AND [# NE 8] ] + (print, q76base: Mode: 7 for D 8 for R - EXITING) + (debug, q76base: Mode: 7 for D 8 for R - EXITING) + (AXIS,notify, q76base: Mode: 7 for D 8 for R - EXITING) + m2 +o endif + +o if [#<_vmajor> lT 2.6] + ; no introspection on lathe radius/diameter mode + ; so allow only G8 (radius mode) +o if [# NE 8] + (print, g76base: v2.5 requires G8 - EXITING) + (debug, g76base: v2.5 requires G8 - EXITING) + (AXIS,notify, g76base: v2.5 requires G8 - EXITING) + m2 +o endif +o else + ; >= 2.6 + ; use introspection on lathe radius/diameter mode + ; to restore mode +o if [#<_lathe_diameter_mode> EQ 1] + # = 7 ; diam +o endif +o if [#<_lathe_radius_mode> EQ 1] + # = 8 ; radius +o endif +o if [ [#<_lathe_diameter_mode> EQ 0] AND [ #<_lathe_radius_mode> EQ 0] ] + ; not supposed to happen: + (print, g76base: unexpected lathe mode - EXITING) + (debug, g76base: unexpected lathe mode - EXITING) + (AXIS,notify, g76base: unexpected lathe mode - EXITING) + m2 +o endif +o if [ [#<_lathe_diameter_mode> EQ 1] AND [ #<_lathe_radius_mode> EQ 1] ] + ; not supposed to happen: + (print, g76base: unexpected lathe mode - EXITING) + (debug, g76base: unexpected lathe mode - EXITING) + (AXIS,notify, g76base: unexpected lathe mode - EXITING) + m2 +o endif +o endif + +G# + +o if [# GT 0] +o if [# EQ 7] + (debug, g76base: set G7 DIAMETER mode) +o else + (debug, g76base: set G8 RADIUS mode) +o endif +o endif + +o call [#] + +M# S# + +G0 X# Z# + +G76 P#

    Z# I# J# R# K# Q# H# E# L# + +o if [[#<_vmajor> GE 2.6] AND [# GT 0]] + (debug, g76base restoring mode to G #) +o endif + +o endsub diff --git a/nc_files/ngcgui_lib/lathe/g76base.png b/nc_files/ngcgui_lib/lathe/g76base.png new file mode 100644 index 0000000000000000000000000000000000000000..a2c6751ca6caafe31726bf5513c0b9e20a04a4ae GIT binary patch literal 5870 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 literal 0 HcmV?d00001 diff --git a/nc_files/ngcgui_lib/lathe/g76diam.ngc b/nc_files/ngcgui_lib/lathe/g76diam.ngc new file mode 100644 index 00000000000..5e20dc7c2e4 --- /dev/null +++ b/nc_files/ngcgui_lib/lathe/g76diam.ngc @@ -0,0 +1,69 @@ +(info: G76 Threading, Specify Major, Minor diameters, use NEGATIVE offset I for External Thread) + +; convenience routine that allows specifying major and +; minor diameters for using G76 + +; Note: To make the number of passes equal for G7 (diam) and G8 (radius) modes, +; jeq = j_for_G7 = 2 * j_for_G8 + +o sub + # = #1 (= 10) + # = #2 (= 200 Spindle RPM) + + # = #3 (= -0.03 I: offset NEG:external) + # = #4 (= -0.5 Z: Zi driveline) + +; required items: + #

    = #5 (= -8 P: Pitch, NEG for tpi) + # = #6 (= -1.0 Z: Zf final) +# = #7 (= 0.94) +# = #8 (= 0.84) + # = #9 (= 0.015 Initial RADIAL cut depth) + +; G76 optional items: + # = #10 (= 1.0 R: Depth degression) + # = #11 (= 29.5 Q: Compound slide angle) + # = #12 (= 0 H: No. of spring passes) + # = #13 (= 0.05 E: Taper dist =K typ) + # = #14 (= 2 L: End Taper 0,1,2,3) + +; other: + # = #15 (=3 Dir: Right=3 Left=4) + # = #16 (=8 G7/G8 Radius=8 Diam=7) + # = #17 (=0 0:quiet,1:verbose) + +o if [# LE #] + (print, g76diam: major <= minor ? - EXITING) + (debug, g76diam: major <= minor ? - EXITING) + (AXIS,notify, g76diam: major <= minor ? - EXITING) + m2 +o endif + + + # = # ; as-is for radius mode +o if [# EQ 8] ; RADIUS + # = [ABS[# - #]/2] +o if [# LE 0] ; EXTERNAL + # = [#/2 - #] +o else ; INTERNAL + # = [#/2 - #] +o endif + +o else ; DIAMETER + # = [ABS[# - #]] + # = [2 * #] ;workaround g76 behavior in diam mode +o if [# LE 0] ; EXTERNAL + # = [# - #] +o else ; INTERNAL + # = [# - #] +o endif +o endif + +o if [# GT 0] + (debug, g76diam: driveline xi=# i=#) + (debug, g76diam: k=# j=#) +o endif + +o call [#][#][#][#][#

    ][#][#][#][#][#][#][#][#][#][#][#][#] + +o endsub diff --git a/nc_files/ngcgui_lib/lathe/g76diam.png b/nc_files/ngcgui_lib/lathe/g76diam.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5bba577f586147844f80a517b15248058a8ccc GIT binary patch literal 7364 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 Iin5OQFQ=%Xwg3PC literal 0 HcmV?d00001 diff --git a/nc_files/ngcgui_lib/lathe/id.ngc b/nc_files/ngcgui_lib/lathe/id.ngc new file mode 100644 index 00000000000..0abeca63142 --- /dev/null +++ b/nc_files/ngcgui_lib/lathe/id.ngc @@ -0,0 +1,56 @@ +; Author: jthornton +(info: inside diameter -- lathe boring) +osub + # = #1 (=0.500 Starting Hole Diameter) + # = #2 (=0.625 Final Hole Diameter) + # = #3 (=0.010 Depth of Cut) + # = #4 (=0 Spring Cuts) + # = #5 (=0.100 Z Start of Cut) + # = #6 (=-0.600 Z End of Cut) + # = #7 (=80 Surface Speed) + # = #8 (=2 Feed IPM) +# = #9 (=1500 MAX RPM) + # = #10 (=8 Tool Number) + # = #11 (=8 Coolant 8=On 9=Off) + +T# M6 +; G43: toollength offset +; G7: diameter mode +; G96: constant surface speed +G43 G7 G96 D# S# + +; Turn the OD +M3 M# ; spindle cw, coolant on/off:w + +G0 X# Z# +# = # + +o100 while [# lt #] + +O101 if [# + # lt #] + # = [# + #] +O101 else + # = # +O101 endif + + X# + G1 Z# F# + G0 X[#-0.010] + Z# +o100 endwhile + +o102 while [# gt 0] + G1 X# + Z# + X[#-0.010] + G0 Z# + # = [# -1] +o102 endwhile + +G0 X[#-0.010] +M5 M9 ; stop spindle, all coolant off +Z# +G49 ; cancel tool length offset +G53 G0 X0 Z0 ; move in machine coordinates + +oendsub diff --git a/nc_files/ngcgui_lib/lathe/lathe_std.ngc b/nc_files/ngcgui_lib/lathe/lathe_std.ngc new file mode 100644 index 00000000000..ecb3e645fc0 --- /dev/null +++ b/nc_files/ngcgui_lib/lathe/lathe_std.ngc @@ -0,0 +1,12 @@ +(not_a_subfile) + +g18 (xz plane) +g20 (inches) +g40 (cancel cutter radius compensation) +g49 (cancel tool lengthoffset) +g90 (absolute distance mode) +g94 (units/min feedrate) +g54 (Coordinate system 1 default) + +# = 0.001 +g64 p# (path control stop) diff --git a/nc_files/ngcgui_lib/lathe/od.ngc b/nc_files/ngcgui_lib/lathe/od.ngc new file mode 100644 index 00000000000..cfa6559d420 --- /dev/null +++ b/nc_files/ngcgui_lib/lathe/od.ngc @@ -0,0 +1,48 @@ +; Author: jthornton + +(info: outside diameter - lathe turning) +o sub +# = #1 (=0.260 Material Diameter) + # = #2 (=0.180 Final Diameter) + # = #3 (=0.010 Depth of Cut) + # = #4 (=0.000 Final Cut) +# = #5 (=100 Surface Speed) + # = #6 (=2 Feed Rate) + # = #7 (=1500 Max Spindle RPM) + # = #8 (=-0.5 End of Cut) +# = #9 (=0.100 Start of Cut) + # = #10 (=6 Roughing Tool) + # = #11 (=6 Finishing Tool) + # = #12 (=8 Flood=8, Off=9) + +T# M6 +; G43: toolength offset +; G7: diameter mode +; G96: constant surface speed +G43 G7 G96 D# S# + +; Turn the OD +M3 M# ; spindle cw, coolant on/off +G0 X# Z# +#=# + +o100 while [# gt #] + +O101 if [#-# gt #] + #=[#-#] +O101 else + #=# +O101 endif + + X# + G1 Z# F# + G0 X[#+0.025] + Z# +o100 endwhile + +G0 X[#+0.025] +M5 M9 ; stop spindle, all coolant off +Z# +G49 ; cancel tool length offset compensation +G53 G0 X0 Z0 ; move in machine coordinates +o endsub diff --git a/nc_files/ngcgui_lib/lathe/taper-od.ngc b/nc_files/ngcgui_lib/lathe/taper-od.ngc new file mode 100644 index 00000000000..8cec564d62c --- /dev/null +++ b/nc_files/ngcgui_lib/lathe/taper-od.ngc @@ -0,0 +1,32 @@ +; Author: jthornton + +(info: outside taper) +o sub +# = #1 (= 3000 Max RPM) +# = #2 (= 100 Surface Units/Min) +# = #3 (= 2 Feed Rate) +# = #4 (= 0.000 Z Start) +# = #5 (= -2 Z End) +# = #6 (= 1 Start Diameter) +# = #7 (= 10 Angle) +# = #8 (= 6 Tool Number) +# = #9 (= 8 Flood=8, Off=9) + +# = [# + [[# - #] * TAN[#]]] + +G7 G18 G40 G54 +G96 D# S# (Constance Surface Speed) +T# M6 +#=#5410 +G43 (load tool offset) +G42 (start cutter comp) +M3 M# +G0 X# Z[# + .1000] +G1 X# Z# F# +X# Z# +X[# + [# * 2] + 0.005] +M5 M9 +G0 Z# +G40 +G53 G0 X0.000 Z0.000 +o endsub diff --git a/nc_files/ngcgui_lib/mfiles/M110 b/nc_files/ngcgui_lib/mfiles/M110 new file mode 100755 index 00000000000..41cbb28abd0 --- /dev/null +++ b/nc_files/ngcgui_lib/mfiles/M110 @@ -0,0 +1,19 @@ +#!/bin/sh +# Clear axis info notifications +# use in gcode subroutines and/or connect to pushbutton + +# M1nn files must exist _before_ starting emc +# in the [DISPLAY]PROGRAM_PREFIX +# or in a dir specified by [RS274NGC]USER_M_PATH + +# the pin for axisui.notifications-clear-info is in emc-2.4pre +# using an earlier version will print error to stdout + +halcmd setp axisui.notifications-clear-info 1 +sleep .100 ;# requires a sleep that does <1 +halcmd setp axisui.notifications-clear-info 0 + +# if a M1nn command fails and its script exits with nonzero status, +# the gcode program exits. So always exit 0, and make sure +# the M1nn command prints a message in order to keep on going. +exit 0 diff --git a/nc_files/ngcgui_lib/ohex.ngc b/nc_files/ngcgui_lib/ohex.ngc new file mode 100644 index 00000000000..1dd11db27fb --- /dev/null +++ b/nc_files/ngcgui_lib/ohex.ngc @@ -0,0 +1,175 @@ +(cw traverse: p1,p2,p3,p4) +(ccw traverse: p1,p4,p3,p2) + +(info: ohex: outside hexagon, cw/ccw dir, radius compensation) +o sub + +# = #1 (=1) +# = #2 (=2000) +# = #3 (=10) +#

    = #4 (=2 2conv | 3climb) +# = #5 (distance across flats) +# = #6 +# = #7 +# = #8 (=0.2) +# = #9 (=0) +# = #10 (=1) +# = #11 (=0) +# = #12 (=0) +# = #13 (=0) +# = #14 (=0) +# = #15 (=1) +# = #16 (=0) +# = #17 (=0) + +o if [# EQ 0] + # = 1.0 + (debug, scale was 0, setting #) +o endif + +o call [#][#][#][#] +# = [#5410 +.001] + +o if [[# NE 2] AND [# NE 3]] + (debug, ohex: direction must be 2 or 3 - EXITING) + (print, ohex: direction must be 2 or 3 - EXITING) + (AXIS,notify, ohex: direction must be 2 or 3 - EXITING) + m2 +o endif + +# = [#/2] +#

    = [#/cos[30]] + +# = [#

    * cos[60]] +# = [#

    * sin[60]] + +(p1 -> p2 -> is cw) +(apply scale,rotate, then offset to all input points) +# = #

    +# = 0 +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = # +# = [0 - #] +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [0 - #] +# = [0 - #] +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [0 - #

    ] +# = 0 +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [0 -# ] +# = # +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = # +# = # +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [#/2] +# = [0 - #] +# = [0 - #] + +(get lengths and angles for connecting lines) +o call [#][#][#][#] +# = #<_line:phi> +o call [#][#][#][#] +# = #<_line:len> +# = #<_line:phi> +# = #<_line:cos> +# = #<_line:sin> +o call [#][#][#][#] +# = #<_line:phi> + +o call [#][#][#][#] +# = #<_line:len> +# = #<_line:phi> +# = #<_line:cos> +# = #<_line:sin> + +# = # (starting line for cw) +# = # (starting line for ccw) + + g40 (cutter radius compensation off) + f # + s # m3 (spindle cw) +o if [# GT 0] +o call [#] +o endif + g0 z# + # = # + # = 1 + +o while [# GT #] + # = [# + #] +o if [# LT #] + # = # +o endif +o if [# GT 100] + (debug, ohex: too many passes - EXITING) + (print, ohex: too many passes - EXITING) + (AXIS,notify, ohex: too many passes - EXITING) + m2 +o endif + +o if [#

    EQ 3] +o if [# EQ 1] + # = [# + # * sin[#] - # * cos[#]] + # = [# - # * cos[#] - # * sin[#]] + # = [0 + # * cos[#]] (r vector) + # = [0 + # * sin[#]] + g0 x # y # (preentry 1) +/ g42 (cutter radius comp right of path) + g2 x # y # i # j # (arc entry) + # = # + # = # + g1 z # (plunge) +o endif + x # y # z# + x # y # + x # y # + x # y # + x # y # + x # y # + # = [# + 1] +o else (dir EQ 2 CW) +o if [# EQ 1] + # = [# - # * sin[#] - # * cos[#]] + # = [# + # * cos[#] - # * sin[#]] + # = [0 + # * cos[#]] (r vector) + # = [0 + # * sin[#]] + g0 x # y # +/ g41 (cutter radius comp left of path) + g3 x # y # i # j # (arc entry) + # = # + # = # + g1 z # (plunge) +o endif + x # y # z# + x # y # + x # y # + x # y # + x # y # + x # y # + # = [# + 1] +o endif +o endwhile + g1 x # y # + g0 z # + g40 +o endsub diff --git a/nc_files/ngcgui_lib/oquad.ngc b/nc_files/ngcgui_lib/oquad.ngc new file mode 100644 index 00000000000..5db00f27888 --- /dev/null +++ b/nc_files/ngcgui_lib/oquad.ngc @@ -0,0 +1,136 @@ +(outside traverse arbitrary quadrangle) +(computes direction for polygon cw or ccw and swaps if required) + +(info: oquad: outside quadrilateral, specify four x,y points) +o sub + +# = #1 (=1) +# = #2 (=1) +# = #3 (=2 2conv|3climb) +# = #4 (=10) +# = #5 +# = #6 +# = #7 (=0.2) +# = #8 (=0) +# = #9 +# = #10 +# = #11 +# = #12 +# = #13 +# = #14 +# = #15 +# = #16 +# = #17 (=1) +# = #18 (=0) +# = #19 (=0) +# = #20 (=0) +# = #21 (=0) +# = #22 (=1) +# = #23 (=0) +# = #24 (=0) + +o if [# EQ 0] + # = 1.0 + (debug, scale was 0, setting #) +o endif + +o call [#][#][#][#] +# = [#5410 + .001] + +o if [[# NE 2] AND [# NE 3]] + (debug, oquad: bogus direction # - EXITING) + (print, oquad: bogus direction # - EXITING) + (AXIS,notify, oquad: bogus direction - EXITING) + m2 +o endif + + (determine direction eg cw or ccw of points) +o call [4][#][#][#][#][#][#][#][#] + # = #<_dir:> + +o if [# NE #] + (swap 1234 --> 1432) + # = # + # = # + # = # + # = # + # = # + # = # +o endif + +(apply scale, rotate, then offset to all input points) +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> + +# = [#/2] +# = [0 - #] +# = [0 - #] + +(get lengths and angles for connecting lines) +o call [#][#][#][#] +# = #<_line:phi> + + g40 (cutter radius compensation off) + f # + s # m3 (spindle cw) +o if [# GT 0] +o call [#] +o endif + g0 z# + # = # + # = 1 + +o while [# GT #] + # = [# + #] +o if [# LT #] + # = # +o endif +o if [# GT 100] + (debug, oquad: too many passes - EXITING) + (print, oquad: too many passes - EXITING) + (AXIS,notify, oquad: too many passes - EXITING) + m2 +o endif + +o if [# EQ 1] +o if [# EQ 2] + # = [# - # * sin[#] - # * cos[#]] + # = [# + # * cos[#] - # * sin[#]] + # = [ # * cos[#]] (b to arc center) + # = [ # * sin[#]] + g0 x # y # +/ g41 (cutter radius comp left of path) + g3 x # y # i # j # (arc entry) +o else (dir EQ 3 CCW) + # = [# + # * sin[#] - # * cos[#]] + # = [# - # * cos[#] - # * sin[#]] + # = [ # * cos[#]] (b to arc center) + # = [ # * sin[#]] + g0 x # y # +/ g42 (cutter radius comp right of path) + g2 x # y # i # j # (arc entry) +o endif + # = # + # = # + g1 z # (plunge to start height todo:g0) +o endif + x # y # z# (ramp down to zcurrent) + x # y # + x # y # + x # y # + # = [# + 1] +o endwhile + g1 x # y # + g0 z # + g40 +o endsub diff --git a/nc_files/ngcgui_lib/qpex.ngc b/nc_files/ngcgui_lib/qpex.ngc new file mode 100644 index 00000000000..12a9978f033 --- /dev/null +++ b/nc_files/ngcgui_lib/qpex.ngc @@ -0,0 +1,139 @@ +(info: qpex: qpocket examples) + +o sub + + # = #1 (=1) + # = #2 (=1000) + # = #3 (=2 2conv|3climb) ; conventional=cw, climb=ccw + # = #4 (=10) + # = #5 (=1) + # = #6 (=.4) + # = #7 (=0.2) + # = #8 (=0) + # = #9 (=0.9) + # = #10 (=0.002) +# = #11 (=0) + # = #12 (=1) + # = #13 (=0) + # = #14 (=0) + +;shorthand required for call linelength: +# = # +#= # +# = # +# = # + +o call [#][#][#][#] + + # = -0.5 + # = -0.5 + # = +0.5 + # = -0.5 + # = +0.5 + # = +0.5 + # = -0.5 + # = +0.5 + # = 2 + # = 0 + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, square at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + + # = -0.5 + # = -1.0 + # = +0.5 + # = -1.0 + # = +0.5 + # = +1.0 + # = -0.5 + # = +1.0 + # = 2 + # = 2 + # = 30 + # = 1 +M110 ; clear axis notifications +(debug, rectangle at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + + # = -1.0 + # = -0.5 + # = +0.5 + # = -0.5 + # = +1.0 + # = +0.5 + # = -0.5 + # = +0.5 + # = 0 + # = 2 + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, parallelogram at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + + # = -1 + # = -1 + # = 0 + # = -.75 + # = 1 + # = -1 + # = 0 + # = 0 + # = -2 + # = 2 + # = 0 + # = 1 +(debug, kite at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + + # = 1 + # = -1 + # = 0 + # = 1 + # = -1 + # = -1 + # = 0 + # = -0.999 ;disallow colinear pts in 3-sided figure + # = -2 + # = 0 + # = 45 + # = 1 +M110 ; clear axis notifications +(debug, triangle at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + + # = -1 + # = -1 + # = 0 + # = -1.5 + # = 1 + # = -1 + # = 0 + # = 0 + # = -2 + # = 2 + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, kite at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + + # = -1 + # = -1 + # = 0 + # = -.75 + # = 1 + # = -1 + # = 0 + # = 0 + # = 0 + # = -1 + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, dart at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + +o endsub diff --git a/nc_files/ngcgui_lib/qpex_mm.ngc b/nc_files/ngcgui_lib/qpex_mm.ngc new file mode 100644 index 00000000000..b9adf2746d1 --- /dev/null +++ b/nc_files/ngcgui_lib/qpex_mm.ngc @@ -0,0 +1,136 @@ +(info: qpex_mm: qpocket mm examples, use a 5mm tool) +; for testing qpocket with mm system +; adapted from qpex.ngc and scaled for mm +; too small tools and/or small sos may exceed outlinepasslimit + +o sub + + # = #1 (use a 5mm diam) + # = #2 (=1000) + # = #3 (=2 2conv|3climb) ; conventional=cw, climb=ccw + # = #4 (=250) + # = #5 (=10) + # = #6 (=5) + # = #7 (=1) + # = #8 (=0) + # = #9 (=0.9) + # = #10 (=0.002) +# = #11 (=0) + # = #12 (=1) + #= #13 (=0) + # = #14 (=0) + +;shorthand required for call linelength: +# = # +#= # +# = # +# = # + +o call [#][#][#][#] +# = #5410 +(debug, duh #) +o if [# GT 10] + (print, qpex_mm: tooldiam is too big # - EXITING) + (debug, qpex_mm: tooldiam is too big # - EXITING) + (AXIS,notify, qpex:_mm tooldiam is too big - EXITING) + m2 +o endif +o if [# LT .5] + (print, qpex_mm: tooldiam is too small # - EXITING) + (debug, qpex_mm: tooldiam is too small # - EXITING) + (AXIS,notify, qpex_mm: tooldiam is too small - EXITING) + m2 +o endif + + # = [-0.5 * 25.4] + # = [-0.5 * 25.4] + # = [+0.5 * 25.4] + # = [-0.5 * 25.4] + # = [+0.5 * 25.4] + # = [+0.5 * 25.4] + # = [-0.5 * 25.4] + # = [+0.5 * 25.4] + # = [2 * 25.4] + # = 0 + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, square at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + # = [-0.5 * 25.4] + # = [-1.0 * 25.4] + # = [+0.5 * 25.4] + # = [-1.0 * 25.4] + # = [+0.5 * 25.4] + # = [+1.0 * 25.4] + # = [-0.5 * 25.4] + # = [+1.0 * 25.4] + # = [2 * 25.4] + # = [2 * 25.4] + # = 30 + # = 1 +M110 ; clear axis notifications +(debug, rectangle at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + # = [-1.0 * 25.4] + # = [-0.5 * 25.4] + # = [+0.5 * 25.4] + # = [-0.5 * 25.4] + # = [+1.0 * 25.4] + # = [+0.5 * 25.4] + # = [-0.5 * 25.4] + # = [+0.5 * 25.4] + # = [0 * 25.4] + # = [2 * 25.4] + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, parallelogram at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + # = [1 * 25.4] + # = [-1 * 25.4] + # = [0 * 25.4] + # = [1 * 25.4] + # = [-1 * 25.4] + # = [-1 * 25.4] + # = [0 * 25.4] + # = [-0.999 * 25.4] ;disallow colinear pts in 3-sided figure + # = [-2 * 25.4] + # = 0 + # = 45 + # = 1 +M110 ; clear axis notifications +(debug, triangle at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + # = [1 * 25.4] + # = [-1 * 25.4] + # = [0 * 25.4] + # = [0 * 25.4] + # = [-1 * 25.4] + # = [-1 * 25.4] + # = [0 * 25.4] + # = [-1.5 * 25.4] + # = [-2 * 25.4] + # = [2 * 25.4] + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, kite at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + # = [1 * 25.4] + # = [-1 * 25.4] + # = [0 * 25.4] + # = [0 * 25.4] + # = [-1 * 25.4] + # = [-1 * 25.4] + # = [0 * 25.4] + # = [-.75 * 25.4] + # = [0 * 25.4] + # = [-1 * 25.4] + # = 0 + # = 1 +M110 ; clear axis notifications +(debug, dart at #,# rotate=# scale=#) +ocall[#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#][#] + +o endsub diff --git a/nc_files/ngcgui_lib/qpocket.ngc b/nc_files/ngcgui_lib/qpocket.ngc new file mode 100644 index 00000000000..01f9f1f66e3 --- /dev/null +++ b/nc_files/ngcgui_lib/qpocket.ngc @@ -0,0 +1,485 @@ +(info: Quadrilateral pocketing using cutter radius compensation) + +; Use with care, test in simulator first. + +; Notes: +; Defaults herein are inch based +; Uses tool diameter from tool table for cutter radius compensation +; Supports conventional or climb milling +; Ramps to depth for each z increment +; Mirror about x axis for negative scale + +; too small diameter tools and/or small stepovers may exceed outlinepasslimit +; too large diameter tools may case gouging errors + +; Works for most rectangles and parallelograms but may require some care +; for specifying: +; point ordering (see entry move notes below) +; tool diameter (in tool table) +; stepover + +; Entry moves: +; Input point ordering Requested Direction Entry line +; -------------------- ------------------------ ------------------ +; 1234 == CW 2 == CW == Conventional point1 --> point2 +; 1234 == CW 3 == CCW == Climb point1 --> point4 + +; 1234 == CCW 2 == CW == Conventional point1 --> point4 +; 1234 == CCW 3 == CCW == Climb point1 --> point2 + +; To accommodate the widest range of tool diameters, order the point sequence +; (1234) so that the entry move is not directed towards an acute angle. + +; Scaling, rotations, and offsets are supported. +; Scaling is applied first. +; Rotation is then applied (with respect to origin). It is often simplest +; to specify the feature so that it is centered at the origin. +; Offsets are applied last. + +;---------------------------------------------------------------------- +; Copyright: 2012,2014 +; Author: Dewey Garrett +; +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 2 of the License, or +; (at your option) any later version. +; +; This program is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with this program; if not, write to the Free Software +; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +;---------------------------------------------------------------------- + +o sub + + # = #1 (=1) + # = #2 (=1000) + # = #3 (=2 2conv|3climb) ; conventional=cw, climb=ccw + # = #4 (=10) + # = #5 (=0.1) + # = #6 (=0.02) + # = #7 (=0.2) + # = #8 (=0) + + # = #9 + # = #10 + # = #11 + # = #12 + # = #13 + # = #14 + # = #15 + # = #16 + + # = #17 (=1) ; use neg value for mirroring + # = #18 (=0) ; angle in degrees + # = #19 (=0) + # = #20 (=0) + # = #21 (=0.5) ; tooldiameter fraction + # = #22 (=0.002) +# = #23 (=1) ; 1 == prompt user + # = #24 (=1) + # = #25 (=0) + # = #26 (=0) + + # = 100 ; outer loop +# = 100 ; inner loop + # = 0.01 ; small increment to tool diameter + # = [0 - #] + # = [0 - #] + +g40 ; make sure cutter radius compensation off at start +g64 p # ; path tolerance + +o if [# EQ 0] + (print, qpocket: zero scale # - EXITING) + (debug, qpocket: zero scale # - EXITING) + (AXIS,notify, qpocket: zero scale - EXITING) + m2 +o endif + +o if [# LT 0] + (print, qpocket: MIRROR about x axis for negative scale #) + (debug, qpocket: MIRROR about x axis for negative scale #) + (AXIS,notify, qpocket: MIRROR about x axis for negative scale) +o endif + # = [# * #] + # = [# * #] + # = [# * #] + # = [# * #] + + # = [ABS[#]] + # = [# * #] + # = [# * #] + # = [# * #] + # = [# * #] + + # = 1 + +o if [[# GT 1] OR [# LE 0]] + (print, qpocket: invalid stepover=# - EXITING) + (debug, qpocket: invalid stepover=# - EXITING) + (AXIS,notify, qpocket: invalid stepover - EXITING) + m2 +o endif + +o if [[# NE 2] AND [# NE 3]] + (print, qpocket:bad dir=# - EXITING) + (debug, qpocket:bad dir=# - EXITING) + (AXIS,notify, qpocket:bad dir - EXITING) + m2 +o endif + + ;compute direction eg 2==cw,3==ccw for points as ordered: +o call [4][#][#][#][#][#][#][#][#] + # = #<_dir:> ; direction of input points 2==cw + # = #<_dir:cx> ; centroid + # = #<_dir:cy> ; centroid + +o if [# LE 0] + ; failed to get direction -- pathological case + (print, failed to compute direction - EXITING) + (debug, failed to compute direction - EXITING) + (AXIS,notify, failed to compute direction - EXITING) + m2 +o endif + +; Get data for x,y points +# = 4 +o call [#] [#][#][#][#] + # = #<_pointsdata:ctr> +# = [#<_pointsdata:min> - #] +# = [#<_pointsdata:max> - #] +o call [#] [#][#][#][#] + # = #<_pointsdata:ctr> +# = [#<_pointsdata:min> - #] +# = [#<_pointsdata:max> - #] + +; Respecify input points about the x,y centroid +o if [# GT 0] + (debug, centroid: # #) +o endif + + # = [# - #] + # = [# - #] + # = [# - #] + # = [# - #] + + # = [# - #] + # = [# - #] + # = [# - #] + # = [# - #] + +; make order of points agree with input direction request +o if [# NE #] +o if [# GT 0] + (debug, reversing input point sequence: 1-4-3-2) +o endif + ; swap points ordering: 1234 --> 1432 + # = # + # = # + # = # + # = # + # = # + # = # +o endif + +; determine min size for first outline pass +o if [[#-#] GT [#-#]] + # = [ABS[#-#]/2] +o else + # = [ABS[#-#]/2] +o endif + +; load tool and establish scaling for first outline pass +o call [#][#][#][#] + # = #5410 + # = [#5410 + #] + # = [# / 2] + # = [# / #] + # = [# * #] + +o if [# GE #] + (print, qpocket: tooldiam is too big # - EXITING) + (debug, qpocket: tooldiam is too big # - EXITING) + (AXIS,notify, qpocket: tooldiam is too big - EXITING) + m2 +o endif + +; scale the centered feature and translate to original position +o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> +o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> +o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> +o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> +; xni,yni are the initial points at the smallest scaling + +; apply input rotation and offset +o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> +o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> +o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> +o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> + + ;get angles for connecting lines +o call [#][#][#][#] + # = #<_line:cos> + # = #<_line:sin> +o call [#][#][#][#] + # = #<_line:cos> + # = #<_line:sin> +o call [#][#][#][#] + # = #<_line:cos> + # = #<_line:sin> +o call [#][#][#][#] + # = #<_line:cos> + # = #<_line:sin> + + ;compute angles at line intersections: +o call [#][#][#][#][#][#] + # = #<_dot:ang> +o call [#][#][#][#][#][#] + # = #<_dot:ang> +o call [#][#][#][#][#][#] + # = #<_dot:ang> +o call [#][#][#][#][#][#] + # = #<_dot:ang> + + f # + s # m3 ;spindle cw +o if [# GT 0] +o call [#] ; optionally prompt user +o endif + g0 z# + + ; depth loop (outer) + # = # + # = 1 +o while [# GT #] + # = # + # = [# + #] +o if [# LT #] + # = # +o endif +o if [# GT #] + (print, qpocket: depthpasslimit exceeded # - EXITING) + (debug, qpocket: depthpasslimit exceeded # - EXITING) + (AXIS,notify, qpocket: depthpasslimit exceeded - EXITING) + m2 +o endif + +o if [# EQ 1] + ;entry point: + ;go along the 1-->2 line to enter at a point where tool will fit + + # = [ # / [TAN[#/2]]] + # = [# / #] + ;(print, entry 12 k=# elen12=# angle=#) + # = [# + # * #] + # = [# + # * #] + ;compute pre-entry points: +o if [# EQ 2] ; dir EQ 2 CW (conventional) + # = [# + # * # - # * #] + # = [# - # * # - # * #] + # = [# + # * #] + # = [# + # * #] + # = [ # * #] + # = [ # * #] +o else ;dir EQ 3 CCW (climb) + # = [# - # * # - # * #] + # = [# + # * # - # * #] + # = [# + # * #] + # = [# + # * #] + # = [ # * #] + # = [ # * #] +o endif + g0 x # y # ;preentry 1 + g0 x # y # ;preentry 2 +o if [# EQ 2] ; CW +/ g42 ;cutter radius comp right of path + g2 x # y # i # j # ;arc entry +o else ;dir EQ 3 CCW +/ g41 ;cutter radius comp left of path + g3 x # y # i # j # ;arc entry +o endif + g1 z # ;plunge to start height from zsafe +o else + ; depthpass GT 1: return to interior entry point + g1 x # y # z# ; use zlast +o endif + + ; outline loop (inner) + # = 1 + # = # + # = # +o do +o if [# GT #] + (print, qpocket: outlinepasslimit exceeded # - EXITING) + (debug, qpocket: outlinepasslimit exceeded # - EXITING) + (AXIS,notify,qpocket: outlinepasslimit exceeded - EXITING) + m2 +o endif + + # = [# mod 4] +o if [# EQ 1] + ; move through smallest interior outline + +o if [# EQ 1] + g1 x # y # z# ;ramp down to zcurrent + g1 x # y # + g1 x # y # + g1 x # y # + g1 x # y # +o endif +o if [# EQ 2] + g1 x # y # z# ;ramp down to zcurrent + g1 x # y # + g1 x # y # + g1 x # y # + g1 x # y # +o endif +o if [# EQ 3] + g1 x # y # z# ;ramp down to zcurrent + g1 x # y # + g1 x # y # + g1 x # y # + g1 x # y # +o endif +o if [# EQ 0] + g1 x # y # z# ;ramp down to zcurrent + g1 x # y # + g1 x # y # + g1 x # y # + g1 x # y # +o endif + + # = [# + 1] +o else + ; increasingly larger outlines + # = [# + # * #] + # = [# * #] + # = [# + 1] +o if [# GE #] + # = # + # = 0 ;terminate after this pass +o endif + ; scale the centered feature and translate to original position + o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> + o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> + o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> + o call [#][#][0][#][#][#] + # = #<_move:x> + # = #<_move:y> + + ; apply input rotation and offset + o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> + o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> + o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> + o call [#][#][#][1][#][#] + # = #<_move:x> + # = #<_move:y> + + ; move through scaled interior outline +o if [# EQ 0] + g1 x # y # z # + x # y # + x # y # + x # y # + x # y # +o endif +o if [# EQ 1] + g1 x # y # z # + x # y # + x # y # + x # y # + x # y # +o endif +o if [# EQ 2] + g1 x # y # z # + x # y # + x # y # + x # y # + x # y # +o endif +o if [# EQ 3] + g1 x # y # z # + x # y # + x # y # + x # y # + x # y # +o endif + +o endif + +o while [# GT 0] + # = [# + 1] +o endwhile + + ; after finishing at input scale, need to turn corner + ; and go along the next line enough to turn off compensation +o if [# EQ 0] ;end at pt 1 + # = # + # = # + # = [# / [TAN[#/2]]] + # = [# + # * #] + # = [# + # * #] +o endif +o if [# EQ 1] ;end at pt 2 + # = # + # = # + # = [# / [TAN[#/2]]] + # = [# + # * #] + # = [# + # * #] +o endif +o if [# EQ 2] ;end at pt 3 + # = # + # = # + # = [# / [TAN[#/2]]] + # = [# + # * #] + # = [# + # * #] +o endif +o if [# EQ 3] ;end at pt 4 + # = # + # = # + # = [# / [TAN[#/2]]] + # = [# + # * #] + # = [# + # * #] +o endif + + g1 x # y # + g1 x # y # + + g0 z # + g40 ;cutter radius compensation off + +o endsub diff --git a/nc_files/ngcgui_lib/qpocket.png b/nc_files/ngcgui_lib/qpocket.png new file mode 100644 index 0000000000000000000000000000000000000000..b450c13ce635e363702bcbaaa41f362a06088091 GIT binary patch literal 12102 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 literal 0 HcmV?d00001 diff --git a/nc_files/ngcgui_lib/rectangle_probe.ngc b/nc_files/ngcgui_lib/rectangle_probe.ngc new file mode 100644 index 00000000000..6e2acc52126 --- /dev/null +++ b/nc_files/ngcgui_lib/rectangle_probe.ngc @@ -0,0 +1,87 @@ +( Rectangular area probe ) +( adapted for ngcgui-compatibility from smartprobe.ngc written by Chris Radek ) +( This program repeatedly probes a regular XY grid and writes the ) +( probed locations to the file 'rectangle_probe_result.txt' in the same directory ) +( as the INI file ) + +( Requires a probe connected to motion.probe-input ) +( or use scripts/simulate_probe ) + +(info: Probe a rectangular area) +o sub + # = #1 (= -1.0) + # = #2 (= 1.0) + # = #3 (= 0.1) + # = #4 (= -1.0) + # = #5 (= 1.0) + # = #6 (= 0.1) + # = #7 (= 1.1) + # = #8 (= -0.1) +# = #9 (= 20) + # = #10 (= 20 in|mm 20|21) + # = #11 (= 1 Wait for Start) + +O1 if [ [# ne 20] and [# ne 21]] + (debug, in_or_mm invalid: # - EXITING) + (print, in_or_mm invalid: # - EXITING) + (AXIS,notify, rectangle_probe: in_or_mm invalid - EXITING) + m2 +O1 endif + +# = [fix [abs[# - #]/# + 1]] +# = [fix [abs[# - #]/# + 1]] + +G# +# = [# * #] + +(debug, Probing # * # = # points) +(LOGOPEN,rectangle_probe_result.txt) +(LOG,# xmin = # xmax = # xinterval = # xsteps = #) +(LOG,# ymin = # ymax = # yinterval = # ysteps = #) + +# = 0 +# = 0 +G0Z# +F# + +O2 while [# lt #] + # = 0 + G0 Y[#+#*#] +O3 while [# lt #] + # = 0 +O4 if [[#/2] - fix[#/2] eq 0] + # = [# + # * #] +O4 else + # = [# + # * [# - # - 1]] +O4 endif + # = 1 +O5 while [# NE 0] + G38.5 z# (probe until no contact away from work, no error) + # = #5070 + G38.3 x# (probe until contact, toward work, no error) + # = #5070 +O5 endwhile +O6 if [[# eq 1] and [[# eq 0] and [# eq 0]]] + (debug, S to Begin Rectangle Probe) + m0 (mandatory stop) + M110 (axisui.notifications-clear) +O6 endif + G38.2Z# (probe until contact, toward work, with error) + G0z# + # = #5061 + # = #5062 + # = #5063 + (LOG,X# Y# Z#) + # = [# + 1] +O3 endwhile + G0Z# + # = [# + 1] +O2 endwhile + +(LOG,# Finished: total points = #) +(LOGCLOSE) +(debug, Finished: see rectangle_probe_result.txt) + +G0Z# +G0X#Y# +o endsub diff --git a/nc_files/ngcgui_lib/simp.ngc b/nc_files/ngcgui_lib/simp.ngc new file mode 100644 index 00000000000..c1d276c6b1b --- /dev/null +++ b/nc_files/ngcgui_lib/simp.ngc @@ -0,0 +1,11 @@ +(info: simp -- simple subroutine example -- Ctrl-U to edit) +o sub + # = #1 (=.6 Radius A) ;Example parm with comment + # = #2 (=0.4) ;Example parm with no comment + # = #3 (=100) + (debug, feature: #<_feature:>) + (debug, remaining: #<_remaining_features:>) + g0x0y0z1 + g3 i# f# + g3 i[0-#] +o endsub diff --git a/nc_files/ngcgui_lib/simp.png b/nc_files/ngcgui_lib/simp.png new file mode 100644 index 0000000000000000000000000000000000000000..a820ff39512b824a37d05576e06fbc6c437c7a5d GIT binary patch literal 3548 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 A#Q*>R literal 0 HcmV?d00001 diff --git a/nc_files/ngcgui_lib/slot.ngc b/nc_files/ngcgui_lib/slot.ngc new file mode 100644 index 00000000000..9b0611b5df1 --- /dev/null +++ b/nc_files/ngcgui_lib/slot.ngc @@ -0,0 +1,93 @@ +(adapted from useful-subroutines.ngc) +(Original file is Copyright 2006 Chris Radek and released under the GPL v2.) + +(info: slot: specify x1,y1 and x2,y2, applies radius compensation) +o sub + +# = #1 (=1) +# = #2 (=2000) +# = #3 (=10) +# = #4 +# = #5 +# = #6 (=0.5) +# = #7 (=0.005) +# = #8 (x1 center) +# = #9 (y1 center) +# = #10 (x2 center) +# = #11 (y2 center) +# = #12 +# = #13 (=1) +# = #14 (=0) +# = #15 (=0) +# = #16 (=0) +# = #17 (=0) +# = #18 (=1) +# = #19 (=0) +# = #20 (=0) + +o if [# EQ 0] + # = 1.0 + (debug, scale was 0, setting #) +o endif + +# = [# * #] + +o call [#][#][#][#] +# = [#5410 + .001] + +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +# = #<_move:len> +# = #<_move:phi> +o call [#][#][#][#][#][#] +# = #<_move:x> +# = #<_move:y> +# = #<_move:len> +# = #<_move:phi> + + +#=[#/2] (radius) +#=[[atan [#-#]/[#-#]] + 180] ("backward" direction) +#=[# + 90] ("right" side direction) +#=[# * [cos [#]]] +#=[# * [sin [#]]] +#=[# * [cos [#]]] +#=[# * [sin [#]]] + + + s # m3 +o if [# GT 0] +o call [#] +o endif + f# + + g0 z# + g0 x[#+#+#] y[#+#+#] + + g41 g1 x[#+#] y[#+#] + g1 z# + + (#=[#/2] rule-of-thumb) + #=# + + #=[#-#] (z) + (down toward the specified depth a bit at a time) + +o201 while [# GT [0-#]] + g1 x[#+#] y[#+#] z# + g3 x[#-#] y[#-#] r# + g1 x[#-#] y[#-#] + g3 x[#+#] y[#+#] r# + #=[#-#] +o201 endwhile + (down to the actual depth and one more cut) + g1 x[#+#] y[#+#] z[0-#] + g3 x[#-#] y[#-#] r# + g1 x[#-#] y[#-#] + g3 x[#+#] y[#+#] r# + g1 x[#+#] y[#+#] + + g0 z# + g40 +o endsub diff --git a/nc_files/ngcgui_lib/slot.png b/nc_files/ngcgui_lib/slot.png new file mode 100644 index 0000000000000000000000000000000000000000..8ab6f736b75d8e42c0cee90c17902a1af1fdc5ba GIT binary patch literal 5560 zcmZu#XEa<<*B&hqEh0p8qC}18oe;(_I#EXSUV~95N`j~veK2YgM3f;ICVGn&Ee0b* zNpwb!-ttb?_pSHWyVgB-@3Zf|=dQiixzB#ijyKTLq^4k|0002gS|D{Jf;=FMA#!5E zy%*;8h#-idMw)7Xsu9)=!sM0@$N~xg(0u(jh!8?FECl0Ce=S{&n=_P*09GCj7QcV1 zQ2J|_`#*i*<>ln<4{!`{oeB7g2LKo(wA58if@ik#!+cnrU>${4+nXLD7MY&Y2U7!q z!j`b=&seE`B_6haGrU*&5`)VbD*{ogmXW-y!JEoXg%1(=og$! zpO64lX-WUbRnB@tRFwuMm6J;yQxCf`tB0`k#b+e((%p>eTyt?w(tLoJXLYwKF;J^z z*Ec$sNl(|;)i?8pf)IX9%@@dzA1&d%-t~~tTE%WzsT@X6X>D>|$D&Syv0<)$#q0Mq zsdVDD7@=CZV(l7VR^G3>{(`k~WF4kIIa-<7GGI@uIAiaXnVX3 zJ<$_{CR9^FL4Ye)_hV&scym<}-GQ%*OHIzxaufVTU*GLmwQa?A3<~bjwk7t5>JPr5 zA+SJ&m10gsx!^(K1l(w3X2Q0bq{t@C%2UmOH4W~>I^OtK3!M*;S5J&9oHlZr&f)`4Y0ZdM@Mky*I) zBQw|f^mz516AM!)=-GJb_?tXE?fzD03Bat2w6U6+o=c$~W_efHqs~xm#6Ji>-4fZQ zA}wX87G9A0qh)$V`_@_NBxH6qrF?Z{2BHlbT7i9OQ(pBmRNJXUSsh^5%c@JGhvf6k zR(wf7vJ>v9DHf&U*{db+CHqHavn%eu&laU)O%(JcrL}qOwENTHaB#uju*5fXbb*cD z^wCaI=mqc6Xb=+pm8JqgcVKF1DL_bDj>i#fU?Y2QGDpJwBTr(}^9Up3y4e_S31$JV zLKFnCS&(#cXrNX#g$IwZ8nsT8n>?MH%Sb`aTWj}sCeb8W`15z(-oy)V`DWoWBiWC9 zsh}gj-$hq4Mw?tiKU7qx4|7cp{`B(7Na4=UM=7ezj6b~#zIQ`k#|Nq4{( zz3SxV=NTzO>!+?yNqBjF`^}|l#){t@W@QX&TzoVIjCxJy_a0-Gg{n0)hbCL1jCj{7 zyZ75GOk01>Uz-@Gdy0%|&VnR`cOEYk_c(}bJ36tcnMeV&_KF{&D>91!+Jc0BAfs!MTf_K=USR>qmccQ092g(O|W< z0RO|==oumO45Mem?vRW!M=`~rYfPoU{Oue1nng;?!);GGT2I}`Bnm*FNE*^8IpKCy zT4`n~A_Fd*VzI6h`F04 zHh)c_mUmdVL$LlFj>9SE@9fmn*aWxwUF?B-4{FpGO(b(7I7LlU9&IVBqQDE!wDIKZ z)UoZ-ig_tvR?_2sSwM%SFN))c2RGa%AUMcH+Q7odh<9Ojwy=%wHl4`mLxBj_HNEw9 z^Y-wt0;a_LHB7e7RV1gA=F8AFUWM_qY&eA52@gA_>~f%{zH%dJyb;;SW^7C%cftNi zs#YzNL)Hfn6I&R**Lf*2^?1m^6mP{e{@eQKEKo;pHEx>V^T5J1$K|ZgFUign?|*Ny zOCV<__;P<>KuLL_#1&4ayqp$oZLrhd{`Ql@beH_dnaR0{>+`6guw0>kGYYys+Qi-AanC)Hhd?! zF8SdTCtQ!4f(pAX8L9fu3&To~FXTw!1l=|T`2G$Rmi)$sd&`QCXRy}iKcVgqj0G}l zNBZu|-M;KAyTvdNnAo%H&qp3oUqTjj_-#!?_D>7XL~Z43r)PkLO4PPZ=dfC$lt@c4 zW|ksUaiWRmGBD8en-ZGpk2ZLaBD>YT*W{~6EF>$M`}ZDh%y7U{VN_-EhdI`2`7x*n zC-n8n<1YdJ{-*Rq@AOMA2GP``Vgxh7>$r~b5lBVFwT51a;a_Z7vHvR4n{EK-XU{w7 zo>bUR0dh?GJlE%!XN!E(_lpfZEFMlHn{@~w3C6c$AOc(&1ne|E2yX5nU?V?QUvtxe zByc3+T_rmS;!oA4L4^!?7j@)kRa#~_ntKZ(Ep)k-ui#7bUN3gXHvk=M$$u*r{=S+X z5~BhHFYX_AcJjW-j7Z5GT@zTtrV-$g!uyd&+Lbn#u*0?$2@uSCgtZKhAY(GVgLy6o z#is^`CXZqQ{L$PlmF3@8Yx$-XM4!{HaZn{Jj*pLLYY9Ds{4_HaeTnqctC_PW6on?v zluH->i~vhLDlDQrpnl){=~LZankRqn!tMD)@H~z|PzhegufIP#XE>u+Wfpx5)B z7%Li!{sHPR)5SCG(El%$rL#_jHcA~i=q+?xMChdt|HR0jmp^At(d~II**2K^`ahSy z4c4#s_wA)lK1@*p7Ah(RukD7M0m0tRK;^zzxU=G8~}Ts#^c>bM+&()fL}W`Vs2mceM5YmV~A%hEIoAa z3DdGW(nVsb8{XAs*Ln_oR!k6*4i-jHWjUo`i6MO!mXMebci1^Rkr6!h-B$QG{4xLM ztxR;%5}|mHKHeoIE?UWENmPZ@5MEPw{p#>(9yY&Z3$vYrOf||kIXM*F+ywk;Y}1S3x`ns{GNt zCSHw2JdnS}P-rY9Op>*2YY17RZjZA5>rhdz9`Pg+n^mG+I86mOu@naEwd8HW?iVB8 z9T9T04P5GRJg{6F$xrOt-3zA6xPI4meJ|?0dPMi2^@~WXB~=XkMmNWXzr?^YzC>$9 z3}jY@%kronm6Rgt2q|<&s7IGgqSkKgV4iCc+F$oq;W$&k z>6NPW zrxM9;`9Z!x9l2L9M+129Wa^hK?x-_!@_Ef$BGx&>jj{9YB$`BR2Kt_DCjEX)QW8zC zJ%K!l{_rGgfl`i=JV}b2yXgG2;YtrUCL{I^nK*h35{e~i&i}_58Be@qa&q=6$g>5EhIB7WX;yMY{3H>PfNy_&QB8t_({K;c=~ue4m&7?`3`C>(we*7*^lj1Su|s8HG1Dvl0yNgWHlUtGZh$|@er z9%jf!> zkN5X?%<{-o#`b6F0+-$=CB+vM80Dg}bNt&mK?r5-{@3=SZ-EKD3=l7^Vbl4j?r_x< z^v7u1j!ZMUv_*BEgO1ZvTj9VWPWm}d4LwQ@@*83dW!P-g))-rMf=SWzC9BtT4&^NIHr{?>M*TkVpiB~J4jxPL7;6~!&ly^0gcurqI~!4C#@n&pVm|Y zo%r0(ifm+&pICDo1iXOr%Q~)@@x@+6reuRPW@&D^TS(R=;t#W~u3Cnx4t%jYjcrSn z;}-RTwHh+Ha)FgRzWiQe-)4JF&WORcb#@No&}!N(2FTRK9n%hlvt>fB{T80T z)&dDy&V}wgclQmJQ#46;;S1xxPx`8Un!VIUCCEp&fvF8o%5{YAX;jt-Fmr>HawE5~ zuHmyk%;$ME9dorfDBb{Uy<)yNBNALC?F^~n>|-Hwd4>{*@D&3xy=#;rN}~JsDs=7m zG?dG5)?OUZG$)56#*17{UNwUz(e5IlRJu% zVqCg53-;p3XXO$#+5VTdkIgsdG*@ie71-bf`aF=}HZV%h3YoFa5v}H{{i3|gqG+le z(O`BdSl@(P8hJ>ERjxw3QA5WxN&y>?!#@eNY%lQvfQmGV!1`WeJ#pr$c&!LpiaGCp z1Z>Ssgg{kg>C>D)i-M|4o?k|xsT^yr8ogLgf~cuksAKLWQN}Osa;I8JNW8qdCbI~@ z6-q2@J4gK{N_46>t#FwpV7CqDX9st8!PHMiD5767;eVy;rYnuK;<*8{PU6!c^K6L> zO3r4ur;Kwe zrYcOZDjv_uk0L)?(+1u{&kyP|vv8DE>tFp5Qfwdgyk5%5sfdXQ9VoVk;%CLZ#E_4fJ%D}L-Afo$vT>XzT~o)p^9mstECOM+~oB#PmTWS(6Opg%Wm8uYUISl?)Z< zL8?0pO2w}=4I7ITzRE=z6DdsEWL$>?x8d-s#f;FlZ4{6jaOvYNC_JJd#-E^)mm~NK zdL0adb*3(mMFGAey=?Z}<8g@r)S|6}pI(iz*(`HK0sv*9OM9UxLVk)hgr-JBw?$&W zMHXA=uBtOzNV2J#cG;0|g(He7W?X>J1>k%OGt z%*HTbx?2e!jEl<5%G&y$tXjU5rQbBIsGh>dF6~>x`S=t1{P=JHTG}3YM7dtcH{lM8 zRd;SDRYM4vz1gAWwH%5voVBP$iRNxbI6ch*Ke-2)ovM947FIEU2GSM_9UIE#nF|IM zyai6JAK?$r$)34qv*<@c7$uyWMY-?><|)=Gv9tW-gh%+*hd3KoHY(zd0Qvlf?6H?X z*{j}No1!U|neU%PY2%9LNaQoa(C@kaTz=-?G?#9bw|*d4J(#V~TD9t@Sk{Uq5DZ#gT{7U;E<04;i}J*2PvT(+LG6vc5Z7(S9!sSHq~if|{*F>} z7;YmkK>p2rzq$edtP?G;#vI0M&HASHyvusopjkC1ASsW;w&yM z0?8D5YLAqhm(V^F5I2I@TMQ-pRIf8cAQD3+2APH0w*v4P)8L%)mRR99`+7ZOj{Xl| zsUbcgLm@~UZX*}S#E?P!Vf>SnJp3JwaN>d#jgz|*&R_ow{3ag$%=N(1I}^BVHnpZsmOOY@<<3b!I6_N`LFU{D?u^3L+_HG!mXJUx^JvIoH}g*_;S8kvA_6W zB~l>gI{@&x>Er79mgi<6zl>3cRzGnmr7V%^a!EkJw-3{C;>~Ys#ha6lMM6jk{V#^Q zQ5UWYVypLIuOMd9ec29WdvEoMa9{^abwPR1H=-b0f5 zN5plSE_Ez{Qu5Iz?{MBHV+r6|F + result but note:) +(if traversing 1->2->3, a cw cross product ==> a ccw traverse) + +(return:) +( _cross:z magnitude) +( _cross:dir 1 for ccw per convention) + +o sub +(not_a_subfile) +# = #1 +# = #2 +# = #3 +# = #4 +# = #5 +# = #6 + +#<_cross:z> = [[#-#]*[#-#]-[#-#]*[#-#]] + + #<_cross:dir> = 0 (default: 0) +o if [#<_cross:z> GT 0] + #<_cross:dir> = 1 (ccw) +o endif +o if [#<_cross:z> LT 0] + #<_cross:dir> = -1 (cw) +o endif + +o call [#][#][#][#] + # = #<_line:len> +o call [#][#][#][#] + # = #<_line:len> + +(print cross: # # # # # # # #) +(print cross: # # #) +(print cross: # # #) +(print cross: z=#<_cross:z> dir=#<_cross:dir>) +(print ) +(debug cross: z=#<_cross:z> dir=#<_cross:dir>) + +o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/dir.ngc b/nc_files/ngcgui_lib/utilitysubs/dir.ngc new file mode 100644 index 00000000000..5b9366aa8b2 --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/dir.ngc @@ -0,0 +1,129 @@ +(info:dir determine direction for polygon described by ordered points) +(minimum 3 points, up to 6 points) + +(return: #<_dir:> == 2 for CW, 3 for CCW, -1 for undetermined) +(return: #<_dir:area>) +(return: #<_dir:cx>, #<_dir:cy> centroid) + +o sub +# = #1 (=4 N neg:verbose) +# = #2 +# = #3 +# = #4 +# = #5 +# = #6 +# = #7 +# = #8 (=0) +# = #9 (=0) +# = #10 (=0) +# = #11 (=0) +# = #12 (=0) +# = #13 (=0) + + # = 0 +o if [# LT 0] + # = [ABS[#]] + # = 1 +o endif + +o if [[# GE 7] or [# LE 2]] + (print, dir: problem bad n=#) + (debug, dir: problem bad n=#) + #<_dir:> = -1 ;undetermined with message, caller must handle +o endif + + # = 0 + # = 0 + # = 0 + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + +o if [# eq 3] + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] +o endif +o if [# eq 4] + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] +o endif +o if [# eq 5] + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] +o endif +o if [# eq 6] + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] + + # = [# * # - # * #] + # = [# + #] + # = [# + [# + #] * #] + # = [# + [# + #] * #] +o endif + + #<_dir:cx> = [# / # / 3] ; signed area reqd here + #<_dir:cy> = [# / # / 3] ; signed area reqd here + #<_dir:area> = [ABS[#]/2] ; return unsigned area + +o if [# GT 0] + #<_dir:> = 3 (ccw) +o else +o if [# LT 0] + #<_dir:> = 2 (cw) +o else + #<_dir:> = -1 ;undetermined +o endif +o endif + +o if [# GT 0] +o if [#<_dir:> eq 2] + (debug, dir: CW #<_dir:> area=#<_dir:area> cx=#<_dir:cx> cy=#<_dir:cy>) +o else + (debug, dir: CCW #<_dir:> area=#<_dir:area> cx=#<_dir:cx> cy=#<_dir:cy>) +o endif +o endif + +o endsub +; ref: many sources for polygons on the web, for example: +; http://paulbourke.net/geometry/polyarea/ + diff --git a/nc_files/ngcgui_lib/utilitysubs/dot.ngc b/nc_files/ngcgui_lib/utilitysubs/dot.ngc new file mode 100644 index 00000000000..b7eda133e86 --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/dot.ngc @@ -0,0 +1,45 @@ +(dot product for two vectors 1-2 and 3-2 having a common vertex 2) +(note u=[Ucos[a],Usin[a]], v=[V[cos[b],Vsin[b] then:) +( u dot v = U*Vcos[a-b] phi := a-b ) +( u dot v > 0 ==> acute phi = [-90, 90] ) +( u dot v < 0 ==> obtuse phi = [ 90,270] ) +( u dot v = 0 ==> right phi = 90 ) + +(return:) +( _dot:dot scalar product) +(_dot:ang [ 0,180] angle between vectors -- for cw,ccw determination) +(_dot:phi [-180,180] actual angle between vectors) +(_dot:acu [ 0, 90] acute angle between the extended vectors) + +o sub +(not_a_subfile) +# = #1 +# = #2 +# = #3 +# = #4 +# = #5 +# = #6 + +# = [#-#] +# = [#-#] +# = [#-#] +# = [#-#] + +#<_dot:dot> = [#*# + #*#] +# = SQRT[[#*#+#*#]*[#*#+#*#]] +#<_dot:ang> = ACOS[#<_dot:dot>/#] + + #<_dot:phi> = #<_dot:ang> +o if [#<_dot:dot> LT 0] + #<_dot:phi> = [ 0 - #<_dot:ang>] +o endif + + #<_dot:acu> = #<_dot:phi> +o if [#<_dot:ang> GT 90] + #<_dot:acu> = [180 - #<_dot:ang>] +o endif + +(print dot: # # # # # # magp=# ) +(print dot: dot=#<_dot:dot> ang=#<_dot:ang> phi=#<_dot:phi> acu=#<_dot:acu>) + +o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/entry.ngc b/nc_files/ngcgui_lib/utilitysubs/entry.ngc new file mode 100644 index 00000000000..36d17199fa6 --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/entry.ngc @@ -0,0 +1,84 @@ +(compute a quarter-arc preentry and radius vector to a point x,y) +(return: _entry:prex,prey == preentry point) +( _entry:vx,vy == vector from start x,y to center xctr,yctr) + +(Usage: for entry to a point on an arc of a circle:) +( o call [inside][dir][tooldiam][x][y][xctr][yctr]) +( then preentry point is: prex = #<_entry:prex>) +( prey = #<_entry:prey>) +( and the entry arc is: g2|3 x # y # i #<_entry:vx> j #<_entry:vy>) + + +o sub +(not_a_subfile) +# = #1 (1:in, 0:out) +# = #2 (2:cw, 3:ccw) +# = #3 +# = #4 +# = #5 +# = #6 +# = #7 + +# = [# - #] +# = [# - #] + +o if [[# NE 0] AND [# NE 1]] + (debug, entry: bad inside specifier # -- EXITING) + (print, entry: bad inside specifier # -- EXITING) + (AXIS,notify, entry: bad inside specifier -- EXITING) + m2 +o endif +o if [[# NE 2] AND [# NE 3]] + (debug, entry: bad dir specifier # -- EXITING) + (print, entry: bad dir specifier # -- EXITING) + (AXIS,notify, entry: bad dir specifier # -- EXITING) + m2 +o endif + + # = [# / 2.0] + # = 0.000001 + +o if [ABS[#] GT #] + # = ATAN[#]/[#] +o else +o if [# GE 0] + # = 90 +o else + # = -90 +o endif +o endif + + (compute pre-entry px,py for 1/4 circle with radius rt) + (and vector from start x,y to center of circle) +o if [# EQ 1] +o if [# EQ 2] (cw) + # = [# - #*sin[#] - #*cos[#]] + # = [# + #*cos[#] - #*sin[#]] + # = [0 + #*sin[#]] + # = [0 - #*cos[#]] +o else (ccw) + # = [# + #*sin[#] - #*cos[#]] + # = [# - #*cos[#] - #*sin[#]] + # = [0 - #*sin[#]] + # = [0 + #*cos[#]] +o endif +o else +o if [# EQ 2] (cw) + # = [# - #*sin[#] + #*cos[#]] + # = [# + #*cos[#] + #*sin[#]] + # = [0 + #*sin[#]] + # = [0 - #*cos[#]] +o else (ccw) + # = [# + #*sin[#] + #*cos[#]] + # = [# - #*cos[#] + #*sin[#]] + # = [0 - #*sin[#]] + # = [0 + #*cos[#]] +o endif +o endif + +#<_entry:prex> = [# + #] +#<_entry:prey> = [# + #] +#<_entry:vx> = # +#<_entry:vy> = # + +o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/g59preview.ngc b/nc_files/ngcgui_lib/utilitysubs/g59preview.ngc new file mode 100644 index 00000000000..b9ff836e936 --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/g59preview.ngc @@ -0,0 +1,14 @@ +(not_a_subfile) +g17 (xy plane) +g20 (inches) +g40 (cancel cutter radius compensation) +g49 (cancel tool lengthoffset) +g90 (absolute distance mode) +g94 (units/min feedrate) +g61 (exact stop) + +#<_tol> = 0.001 + +g64 p#<_tol> (path control) + +g59 diff --git a/nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc b/nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc new file mode 100644 index 00000000000..622ccdd1019 --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/gosper_sub.ngc @@ -0,0 +1,29 @@ +(Adapted from Program to mill a flowsnake.ngc by K. Lerman) +o sub +(not_a_subfile) + (one level of gosper recursive algorithm) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + + # = # + +o if [# EQ 0] + g1 f # x # y # +o else + # = [[# * 2 + #]/3] + # = [[# * 2 + #]/3] + # = [[# + #]/2 + [# - #]/[SQRT[12.0]]] + # = [[# + #]/2 - [# - #]/[SQRT[12.0]]] + # = [[# + 2 * #]/3] + # = [[# + 2 * #]/3] + o call [#-1][#][#][#] [#] [#] + o call [#-1][#] [#] [#] [#] [#] + o call [#-1][#] [#] [#] [#] [#] + o call [#-1][#] [#] [#][#][#] +o endif + +o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/in_std.ngc b/nc_files/ngcgui_lib/utilitysubs/in_std.ngc new file mode 100644 index 00000000000..87555aff91e --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/in_std.ngc @@ -0,0 +1,12 @@ +(not_a_subfile) + +g17 (xy plane) +g20 (inches) +g40 (cancel cutter radius compensation) +g49 (cancel tool lengthoffset) +g90 (absolute distance mode) +g94 (units/min feedrate) +g54 (Coordinate system 1 default) + +# = 0.001 +g64 p# (path control stop) diff --git a/nc_files/ngcgui_lib/utilitysubs/line.ngc b/nc_files/ngcgui_lib/utilitysubs/line.ngc new file mode 100644 index 00000000000..b7dcbf5fb90 --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/line.ngc @@ -0,0 +1,31 @@ +(return: _line:len,phi,cos,sin) + +o sub +(not_a_subfile) +# = #1 +# = #2 +# = #3 +# = #4 +(print line: # # # #) + +# = 0.000001 +# = [# - #] +# = [# - #] +#<_line:len> = SQRT[#*# + #*#] + +o if [ABS[#] GT #] + #<_line:phi> = ATAN[#]/[#] +o else +o if [# GE 0] + #<_line:phi> = 90 +o else + #<_line:phi> = -90 +o endif +o endif + +#<_line:cos> = COS[#<_line:phi>] +#<_line:sin> = SIN[#<_line:phi>] + +(print line: #<_line:len> #<_line:phi> #<_line:cos> #<_line:sin>) + +o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/loadtool.ngc b/nc_files/ngcgui_lib/utilitysubs/loadtool.ngc new file mode 100644 index 00000000000..445339ba98e --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/loadtool.ngc @@ -0,0 +1,51 @@ +; loadtool: with options for G43 and H + +o sub +(not_a_subfile) + # = #1 + # = #2 +# = #3 + # = #4 + +o if [# EQ 0] + ;Uncomment next 4 lines to require a nonzero toolno + ;(print, loadtool: EXIT: toolno required not 0) + ;(debug, loadtool: EXIT: toolno required not 0) + ;(AXIS,notify, loadtool: EXIT: toolno required not 0) + ;m2 (quit) + (print, loadtool: Warning: toolno is 0) + (debug, loadtool: Warning: toolno is 0) +o endif + +o if [# NE 0] +o if [# EQ 0] +o if [# NE 0] + (debug, loadtool:G43 noH) +o endif + T# M6 G43 +o else +o if [# NE 0] + (debug, loadtool:G43 H#) +o endif + T# M6 G43 H# +o endif +o else +o if [# NE 0] + (debug, loadtool:no G43) +o endif + T# M6 +o endif + +o endsub +;G43 without an H word uses the currently loaded tool from the last Tn M6. +;G43 Hn uses the offset for tool n. +;Note +; G43 H0 is a little special. Its behavior is different on random tool +; changer machines and nonrandom tool changer machines +; +; On nonrandom tool changer machines, G43 H0 applies the TLO of the +; tool currently in the spindle, or a TLO of 0 if no tool is in the spindle. +; +; On random tool changer machines, G43 H0 applies the TLO of the tool T0 +; defined in the tool table file (or causes an error if T0 is not defined +; in the tool table). diff --git a/nc_files/ngcgui_lib/utilitysubs/mm_std.ngc b/nc_files/ngcgui_lib/utilitysubs/mm_std.ngc new file mode 100644 index 00000000000..f15d7937a1d --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/mm_std.ngc @@ -0,0 +1,11 @@ +(not_a_subfile) +g17 (xy plane) +g21 (mm) +g40 (cancel cutter radius compensation) +g49 (cancel tool lengthoffset) +g90 (absolute distance mode) +g94 (units/min feedrate) +g54 (Coordinate system 1 default) + +# = 0.001 +g64 p# (path control stop) diff --git a/nc_files/ngcgui_lib/utilitysubs/move.ngc b/nc_files/ngcgui_lib/utilitysubs/move.ngc new file mode 100644 index 00000000000..3e09d51ba9a --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/move.ngc @@ -0,0 +1,34 @@ +(return: _move:x,y,len,phi,cos,sin) +o sub +(not_a_subfile) +# = #1 +# = #2 +# = #3 (=0 degrees) +# = #4 (=1) +# = #5 (=0 after rotation) +# = #6 (=0 after rotation) + +o if [0] + (for offsetting before rotation) + # = [# + #] + # = [# + #] +o endif + + o call [0][0][#][#] + # = #<_line:len> + # = #<_line:phi> + # = #<_line:cos> + # = #<_line:sin> + + # = [# + # * # * COS[# + #]] + # = [# + # * # * SIN[# + #]] + +o call [0][0][#][#] + #<_move:len> = #<_line:len> + #<_move:phi> = #<_line:phi> + #<_move:cos> = #<_line:cos> + #<_move:sin> = #<_line:sin> + #<_move:x> = # + #<_move:y> = # + +o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc b/nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc new file mode 100644 index 00000000000..7d016ef6f1b --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/pointsdata.ngc @@ -0,0 +1,53 @@ +(info: compute ctr, min, max, avg) +o sub +# = #1 (=4) + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 (=0) + # = #7 (=0) + # = #8 (=0) + # = #9 (=0) + +# = 8 +o if [# GT #] + (debug, pointsdata: howmany too big: # - EXITING) + (debug, pointsdata: howmany too big: # - EXITING) + (AXIS,notify, pointsdata: howmany too big - EXITING) + m2 +o endif +o if [# LT 2] + (debug, pointsdata: howmany too small: # - EXITING) + (debug, pointsdata: howmany too small: # - EXITING) + (AXIS,notify, pointsdata: howmany too small - EXITING) + m2 +o endif + + # = 2 + # = 0 +#<_pointsdata:min> = +99999999 +#<_pointsdata:max> = -99999999 + +o while [# LE [1 + #]] + # = ## + ;(debug, val=#) +o if [# GT #<_pointsdata:max>] + #<_pointsdata:max> = # +o endif +o if [# LT #<_pointsdata:min>] + #<_pointsdata:min> = # +o endif + # = [# + #] + # = [# +1] +o endwhile + +#<_pointsdata:ctr> = [[#<_pointsdata:max>+#<_pointsdata:min>]/2] +#<_pointsdata:avg> = [#/#] + +;(debug, min=#<_pointsdata:min>) +;(debug, ctr=#<_pointsdata:ctr>) +;(debug, max=#<_pointsdata:max>) +;(debug, avg=#<_pointsdata:avg>) + +o endsub diff --git a/nc_files/ngcgui_lib/utilitysubs/spin.ngc b/nc_files/ngcgui_lib/utilitysubs/spin.ngc new file mode 100644 index 00000000000..55d4f86ab8d --- /dev/null +++ b/nc_files/ngcgui_lib/utilitysubs/spin.ngc @@ -0,0 +1,20 @@ +;dng-- designed with the axis gui in mind +; but not very intuitive with touchy +; so changed message and remove mandatory stop +; for touchy testing + +;helper routine to prompt setting of spindle speed +;use after giving operator message for example +; 1) prompt user to continue +; 2) M110 clears axis notifications (requires emc2.4) + +o sub +(not_a_subfile) + # = #1 +o if [#<_feature:> LT 1] + ;(debug, S to continue: Spindle rpm=#) + ;m0 (mandatory stop) + (debug, Spindle rpm = #) + M110 (axisui.notifications-clear) +o endif +o endsub diff --git a/nc_files/ngcgui_lib/xyz.ngc b/nc_files/ngcgui_lib/xyz.ngc new file mode 100644 index 00000000000..41e5231c904 --- /dev/null +++ b/nc_files/ngcgui_lib/xyz.ngc @@ -0,0 +1,85 @@ +(info: xyz -- x,y,z axis exerciser, type 0: line, type 1: box) +o sub +(for testing, tuning servo, etc) +(for single axis, set axes for zero travel) +(type 0: simple motion between two points) +(type 1: series of moves one,two,or three axes at a time) + + # = #1 (=60 feedrate) + # = #2 (=1 type: 0|1) + # = #3 (=-0.5 x distance) + # = #4 (=+0.5 x distance) + # = #5 (=+2.0 y distance) + # = #6 (=+3.5 y distance) + # = #7 (=+1.0 z distance) + # = #8 (=+2.0 z distance) + # = #9 (=5 iterations) + + # = 0 + # = # + # = # + # = # + # = # + # = # + # = # + + (debug, feature: #<_feature:>) + (debug, remaining: #<_remaining_features:>) + + f # + g1 x # y # z # + +o while [# LT #] + +o if [# EQ 0] + x # y # z # + x # y # z # +o endif + +o if [# EQ 1] + (gray) + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + + (gray) + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + + (gray) + x # y # z # + x # y # z # + x # y # z # + x # y # z # + + x # y # z # + x # y # z # + x # y # z # + x # y # z # + + (binary) + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # + x # y # z # +o endif + + # = [# + 1] +o endwhile + +o endsub diff --git a/nc_files/ngcgui_lib/xyz.png b/nc_files/ngcgui_lib/xyz.png new file mode 100644 index 0000000000000000000000000000000000000000..fe3e297313accc39c86cb1c0b7bd6128ed5f2925 GIT binary patch literal 10991 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

    Kp-E&V)0wV3S}|VCr;r;5?Ks;Rbtx z*_@nCm)z&12_0_?S4u9$h<_N>ttc=e-Z!DnV`->$ETmTAx8JRuQYU!BqJ`p*2RS8u?y&Mv;PTA@1*44+39p2M?YKQJ>W$nF_0D2%q6IOc;;LnR^%KJ6E=1UIek!GLyhK8J zm6t4V*BDR;2&8;C7Am3QDsyp%KeQw{>tk9L@a+zoh*)$lSBCw= z2;OH7pff`9Z=o}>9*HW%)<8igy$n5`rKZ3XW%CvO5QEtnkEw5m-K zUt1w*)@>}g>J66qNRyj-#NJ*dL6Ir~YcCtnwy6por=H|EeHpG@oFXHr5&FQCdVr zYzo^S>|f*z5U3RydHb)4{6s0DDX&8as5(B3t8fPhWW6!`YWZzNX7PzK7I&TeGB0hc zZBd#G`9GNJJnjBGR=}W)ze!di)V2SPiGOXkcZEkx3CHwczgIg`O*{>SeSCO!EN|ho1khSwfS(LR^Z#oWA1^R0BPvSoT`42n{ z?j0t8Wp$@m8S>1}L5V~o6pD4S#nLy2y36Y0f@`R_B<;~+mc7b?jUBq}?_;Rmk2Umo zittu2XB79(a#MG@zssnhRx`^sknhT_S*ZfnMCOhe=OA&l67y_TZrO|%(rZ?P_60)rK6sSlFB-b=OuRfaA`jmY>wG2C+4VBmq?p=7j3WApno< zZ%G|}!y+oa$&rzrYN1Z5>a7Y?6zy;lH5CRlHt4K}bKF)|^#UlG)J~B*$xHX3Bo(Bbdc)86{*CYB>9GrZ15 zPPsH4|Iwo$-9laG6BiqZn606HL1-3O-JQpyV-!L0Dp;1Sd#Vj~v63yuW z6IIu5G!5lfPgosUlF#s%8}(5K!NEuz&BTHL0}GdOEKGR~#gZO>u0|*3CrjxD5{4R- zB3avu$yHksBb}_9S@*^1?%z8d&_4qzeX)Q{Xl~QTy!^?hnI*{!6=Z8B4$qqXHtD zH$dgBag*Ei?kyE(@{ZTrd!1l>cMUgPZ#LF`l#u6IG)muP7ra}sgd2PCFm?DBVLZOY z4FcHdk2i!b>w`!eo2?TEumg3)Ay3`1Xf-rkQjpt76C3rhjEh%-oczB&GWId9qz);Q zXp|H4sZ;neOB7F$I@Yo)EeMJTEz|{DKhpLsx|g*D73^*_?AAqy0FIv7zdLQqtguwS z1mM+xOS~gLI?u(NC6Z&Pj*MZl&>fBNP;nHJ37#ypn<)qWsHgE6lp^bRvNC8a>U_44 z7?m(>`OO#~3N|r1@?Gjmg?NkC9I?t{0A0ZA;Mtd={DUPWh3{Dha#no2zn=BJ%!s!S z{yK(uSq%xs%RBf=C|EMr45)mq#a>LaB2tW|S+m-UT$!#-!Zi;XvZ&=Ru73_Z^x!Tl&*c{jb zD1IXOM(gofX*Z>C851_)AM-eHvp7v?k5nCFr;4z{Uj0PkP;GpV;y1pmYr@0Q4j7S# z`jlTPuR2$LpPIEm_@HCWAfhCBtLqbq1 z?U?sm9$Nj^diGyf$p7D{0@rP+uT~~xfB8LQXB8R`5|3O1%qIVU^Y0j_|t=@XYJG+XQPV0W_cpT*)Nr5;v43s-5Vu$vJqoC4JCHp#qXP-v09yRECG!Fnp2J2>cA8}v+HARlAO3RRG@8Nul2VMN-_)Xjcr%H#31qXYc5?J?E5m5iiMGciit z^=<-^eTR;kYR;!!m6m+@!^VpN0t7||4Ln@V^IU4AXmsnM;(8lt(Z9knJU5-g@a>1G zOQI14#xx(?*Hi~ZdX%ckI19Q_R(PsL)X{Z$G1((T`|G)zDn5yZAV)Yl*xH=f4A8T7 zJZBvT=1xG_Iay&{=y|edJ8_)GCbp4xL8i;ST1rlNS|y;ixl8kXBz*hB^^I+DFy8 z+B8VPC_eBoQeNQ|d1zG&{Nzh_63ztu4Dz0R?;u}GM6y7fK(Xr5z^k}7 zBv(6yzh*8Ks7V64%$YwSb}X?8zZ@RN*U0C_IMAp0{u3!VOZL+)qyhje;ht-4Moa+r zUm(tVA)bi8dm<@&F1`Qn6Og%*NpH{V)cnuEI}Pw840f9GH_xGeKj32`U}z~Nj~Hk# zZn_=UVPS5zOjwtUUH)1v%d~tb?U~bv^9Pw9MQ>_3FHV}@Hmz`CpY|qmaep02;#6Sg zEG4mI`QUxkec2QWbq8d7^pTZUWj?W~rHc+m7rttbCvTyl`je_pA>gKL9PO2kHKNyZ zhk~=R`hr!VQ&4#>#^LXSSc8$?RQL913(J4pl=7@pCoS^^mg+?o!HI1|_GFOXd2TAb zA6Qn{=OCKs5iL^v`BN;i@E0S^hW-hGhQg)Wl`lI~2p<@_}lPKq)* z_g4IK_xIm;Pn&tairl>qs{aZj=)Y8q!nxmp;X&EYVTFiP6D6i%F>3--wz! zj`>`eGBc-3B9D=IKEg)U0N)=JD;oRt% zac0i>&6)Sy``*vzzV~zfc*65MBzy1mU2E@E_TFn-C=eQ?;*!H#oM%mv1T3rM z6=sM@pNrvKl?G6*M!zKw(otb;4M1PEikI8KgB1E&OZ+w~+f+w7GJaK-Gb6q~HY-!; zWjB$o?mgL#37s*$QlxBNJ_<73+N#Y&xuJ zw_MGDly$aX{{@cMm#Uv7u4ZWUriPTZ< zJ>Pj$J6+dj?_0$yi_QF~0yfQCpB^LW=Di>lbV8s8E;`RJwH%3=ip9NLcmyHy>BMhVDX>zMMuv{O|SOyB#n>lw)59X!lS@%!ZhJ zPoCL`QWr#HGdy$6_7Yru<+Rucyf@dLyGpyCKkrKNggZ916MkM5qBOzCxvj`|YU;|6 zx>7!ehgmR(0NruN=*_(oeLu~5r`WgOz2I>CWD@BaK|5~><-V6joVSS!bliiR2(p|F z=A7aV&uGc+Vnhcc3;n2!D(*x>$~*Sj*Y%2~J74I(Y2q_oK+W1bjFV%_5GZ{xRF+X% zZLs4kqW-9UmS%0Ceinb+s#G5)ZB0;*8f%aCY4^LK|E&cd7ZL4XDs8c*e2Nn$%KnT2pTU`N(3sz!?pciyPug? z>2bgPZnX#Q0fjF(SgCm&;I)OP+^Vu!jJ{h>1fCVp#3$K*9e-I)H{Y%A z6LmCR%g6x6K2&V_AQU4Qe_@rO(JE|kj|SlvgO_0yVIj7Md#-zXTM)l?zn-C%GyGzd zuNVwnvl{2o&q4$Tp78~W)~HUhwhh%3m`>Rm(&^;R%bp)FUl}^bE*IaLyM;TjnXqGb zN0(mIZfzN(m%rwb=q-RWMnC@2aWyhUw zZrKkKjr6C-m#Gm0G<<`}BO<$W?Pk<}1{}X>tZ8^KATml30IcOZR1<`DAMB2@ZRuy< zE5)o_qP|MQ(d>2Gy)Dac6XU1}aKACi!uWCg!P50>t%~s#Oh;DRK3_jn)RW@00*Cm0 z6n33b!%Aof@OBe_mb;V|HE%gx>7ED%2C13gB+`hPx6MW1jpktv9?VRJQgCmNjFL%x zok9j)BFA7%e{S%fhZ8S@iNxgp=WZb4=E;8R?Dp!xALHm$$e+y775~6;vYXM(~ot@rVC9RmpwaNq^SW2)i8{|$=xNQix zhWh3|;k=}z*Q%AQ6yLu1VCkUwZ&u0HrhC+hk6zy<*f68noj z?U%fq|9|Tb4^y6YWL`Y~uMwyJ=8r^t{wEb;&40V=jEJXFoX}yka!!W$Nd176PL{jp zhNaJ>cVc$8dQ})@JD~<$m9#_rA74CXez0#;;x9-lPUj77_cp~mw$$iRH`lR~5CE@H z23_7`({hw+%dkNHW_SBK!$u(pM{$nUkKNddhm!`{CS&FAqzb(m@W|iYHY$Szu3Kge zh##D=qIw^Xjmv+ydO;oEBZaD2nTri+J9!z^DU z)ck=dhO4IRTIR*t<2Mf5GKQ$PkuCL2*CbKOEL9dYZ>oHr?}=A}7+Huc9U!;zj=K!M zcfv2;le%VFGJ!G0GcA+P>2L0VYAa%c_Vy>H@28EO=*n0*@I@^Kp&+a^yZu^fOumv+`oTT2T{Muu+ur3;zItCuv3ib@-FQ zI7B!KXF4E1T&;r?Xh`<_+X-BlNIc0Rqpz1*9@BRm;J zGwP-lhpvieSo7K^7A#CYsJ^CPxSIHYwr=eyL=kDqL2JB^Lypu-b;JEQOX=}Gpb`Ok zwt~%U;3(090CO5Xb_mu#Rrxl zDz@2Z^|Ybkzz6pGDra}gG8|y3pBw%(3^=O^1&aUb?!^Fl#kQX-x%uTEZ7}X)qz9KE zOMM@34mADM5X>W`MO_K9G8RAnSOAHAx=_1Mt3Te0c#d4B!N;j=m~9xK~?VZRxCRQs0rs?hCb|M#Nf)w0v2zDcSlGaoJ_0 z+Fi*lLCMjQ&XTIQ?#WJ|#i`MPHTqxrwh3gTH5dv_)q|ZD`5{>tA2=J4JrOnP?OkDk zvhoYzmo_(wVO!^K_5Eoqx_8?W4LaUp_2E#Lv(xJ`d6g39bEm%^F0B^&O{Cu{OLJdU zbcsUX%T*6%6V0@X(i3gWpOuF3f7a5j@28i!bgth>sqlt0u-;T75)wZd`OI|H>Y>W% zckAz!j_a%$m*QdxyxVkJcVzQzJIX5AmIA~=Q?Avi>UbM!V?s)NyWusFKfUeW&EKlR z>)lB#$Uh6jIKcw(-t6q@J)c!Ckz{z6GFDz(xr)=cQBkHOC;Ws-f_!cYWwBlO+c*O&h^@X43zKfidwgyeC+gtHp@Q=QEZ ziM9AgZS>!2D<>`8NwURUPAN1Ey|!$9`HjM+gxHFW7Fp9z=Q3wLW;Om#fvZccEs3Rt zt{VwHCj+8pgzT9C1>bHto{3r+R2kEG8TTV<@+#<(%w6o$+eU&nYa=E@9~XD!cjf-V z^jjDBwV=#j3u+Ub#Up%=j6(ap3@2jN(I%`kM=T#KiAXG< zhn4JVJUt=yXN~+rKZL9LMQSeBZa|Fo4<8%r`OtE$Y5j(V&?8`m!?PV{{2ca06yi5c z{}f88Bm6URll*)H+sESYD5UmQu-o+HKZ#oT*pHA%|H233lbv^UuH95^rMlrUV@o~G z4{9ePe}(??Iq~V!5g6HTlSJx|PL(qHe+Xl3gW%K37v0Yb<128sSwoCZ8yRc9p{yIf zw)^XgKePK^pvry}qSZ9!z$>k;dUqq;7lrt9n|$LRf8*2F`M;w##rPILg*7^l ztagyt%TqA4r7{}Dm=PJf0Y*mg3x=MA3q}TazTas0xz_Se1NNBrZ>s*2!xZn?k)VZ< z--Z7RZaVwqRc+@PbUW<%bK5n-{70|fI578jE%LChHtA36uAkVt`1)<}2w99uc|2y$ zw>K1085O!c@=Mc?7VY_)7L66e6ZfC5$}B(m^*qk?e!AjL#(}H~M!N4c)uaB8T0}uM zy$4-!9rnkS8Z;!sT_Rk6aQdGt(|_p)!8?hoZ9{QL4=@@Va?EZ`prQa?8_s}sMb{4 z`t3R0(LqlCO`&HAhPtJ8^L3Pu-mxhh`?S@_&(>YCJNr(rV>udlb7Szkmk{v5mbXV;+74aP_ z37li;wWLL|PPP**##hHqEcSzyIlI;0zKV#1d!E|WeRLV;Q5CU*xgYlG@JDg=fe&57 znGne9r=p9Qt}Rwj;Jjr=iV;4f#({JOSi`@920cTymy}kI68{Qs8IVY^c0JM{pzKhF z{c(|mL)Z3Y?#{UFs`0F4G8Y=1W*YJG_$e*ecNs{Nc4gmx{)EByc>KA3|4}eYQkh4S z>5!Oq)2nu5`LM~bgRrL8YB)4#sLsaDL0bWr4e|9-%+QaXxq|;<|9bSgPuUWKk2ntE zW{#N4drhUvhwsFpUb$2n1$3tkWd^QZ>VKzIcMI?!*#$2(1+SFzyImcrmR5hi%1`VO zd#{4W(8v&WRB7j|mIL1AN)dOqf{F{ggbqC9`NdHPDa@A za;;L(!4ITfvwgRp0LhpFRJCcI!_H4TSF24PLX+QduK)~Nq+VH*#!bUkM^}vhN;M>n zgmm*j_IjoxFniav$_^Y1u&N29dXiekR23Gj`*V&imn_K%jG+JB#e z9_AdSPgHSj^8EC+7yC7=OAUjR^V##|fmgMtIv#O#*U1M1Cn{MgqF*It43C8Fzyz8O zDwmVg)v;osTyW&Yx!XqY@#RVyeq2>%sWb@~J4$}HX4c4Wb)+{7Cm6CSrD|Kp*K?5Y zK%n9mu8){LX$2kG8rVFVX)loE5QwvSUQH82j&6!<(<-;Ao7kC4`AfxoVUa{!7|BAia$eJxYM#5N z4apAqRA#qE`9(T9hrInRUit>VDe2C<0AqW%+3MPF-S+D_8cR{h+&HmRyG5G%^TLOQ z9pg9E+m9O5g;Jxo(h;{;HVwDa|8lrC_EjFKf~Rk#4`9mI^CM@o5UzG5M=|BoV{0bO z1H390x{tVyVI0c|xuc-=I zbL(*_A%*2R*g}y9@b}2LEwavzZR6$!w0)3Z*0Y-~W*>I8c{3G{#LJcM0 zI9~m&zpigPA+ESp9l=?uen?wo_)+CO2VJTI-WQy0ngMalXBdjiPz+#h-^aF5EuAt$ z(P635iBC#FeDWyscQM}SFzMFNdxpmq2q);3v(TX&{ntN zCKZ7GE%5z&S_(nUWM)fOQ?GT(D8y)6%?tP^Bs@Fp*Gf%(RC?rb6vt@5g!6HX2JZ%q zxGfi1PZUmkNZKBxpd;zvMvHRDDyefU_)BcR8@9P*;|neO9RpYorV3m}*2=804)O$8 zf9^6S>k!{+)-^MB->;PP{v{>fU4)(inFnsX%$YOHS`qtnTgz z-Gk)Jd_?U4jT+V>$rla&y}s19`XNC^8JQJ{7I+>4`gY5f$H5tp{`zrwKMCrjJ^Gae z8m2TDj9#y{0l%`a-^%;v#v+OnKf~lKs}^ zf1UiEp&uN7D$_PZ88@V-lX|b$iK7_3#4(dGDpW{;i{TrC@{>Xd`=(Vlj_&*`Mfwky zZglWRqh5vbymZK^PA5oeq}>6?-F&IGNSnnK5c-MC&wnF5CoSvnqR<@3(Z^Q@8g&V?_h|2emyeUnMk`)&JuH@_*|f-P3y|RF;4KPYd`R z?`~I0`USzxAg;^e!3w)t11|ah2k;baAeL5ezsdiX9!Vdk>h>iB!)pWjlezhchpue< zHnzzaS;g=D)xUA0GfyuR4Uf+KfH~&8^wck0j{^^)>Ip~~3(iSVQvrPK~?Wr|&U%{cNu(mFt|TdvjlB&)G4- z{}hq9ABf}#G)ug1`ClIfQWd`pe){b3W6(Of-M=lo;y>l?$Pe*ATLrdhBI;v&(8RK= ze&EP?_QE7aEc8+1-;NpXE3tOa0m*#$Jr;Pn=pbUi3YfWAnQdQi=L6u{+k&#*9iVx@rVje0OGm!lH?W=PFN%`Q>Jw^<>U4w627 zV8yP!6Nw_J@Qc8aAl@h$J*8@UVD$9+i-i*#<+{np0wS~VX{e1@YqmLk=cZThZ#tVA znH=9TlIicZWUt3D8h-EHvUc0>z5~2sNnY-j+4D#LKYqz}yiRRLPhUEPJ^1G8!L-nh z9U(ST3j0S+UCR60SAwH0i+2OGE7SEvzb{pKnNp^jzn7IJiLGxXP9ZE;Eb`v5eC@{8 z=Eq{T8+C#T6N>`)#Zq){#Ku-s=0gZo@A*pz0dniZIB8G93!so>KudnBP1qju~8+p(Sor3!`G*en<|8r6C zon_8+i>7F+P`Nf}>1qCwY?FBbMEf1@@}*(f;{WJF^@P0IfIDcYk1Ke4Y<>;tdeSw8 zQzEKf?DHpyS#&=~g01-)X?Qh@fO?z*&IvGu>XY6l3oHqm2DdG4y7L`95L>13ymg4d zdHlm@WKuS;%f*{1mWA%$=|58@l=1Tjw4=n+g@k4Y?b5gTW;nodmfr9;VX<@lZ=ZPSy+jPbCj$9<2glDB?m13PS8I6? zBer|6wMdMwiWRtOCU#ES3sNu{(mu4ZS-4w8s3XfY$3Bi{)K>gH1TyxMP2|GB%__N3 z2Z(X2%tOJ0?bXEOC}J!Yrq-j<%Dtkz$5u{`a7W?XQ9;Hi1iqfCNboEes*u;4eIPtf z{mG|3YkPc<#D%M-G%t#6h<7x{GbcQ=N9eXBA(h@;?q~wsu`CR-t#|8Res07?C5s@! z>H-Cc$wR}+u~!O0%|#Ysjf7Rl?x|%)0X@C6g!UTn9mr0wV9JA}Eh=ASGG-Y@hFTQk zOD;w0BJ57yD!e9!9J=9V{({s}Pajb*T4&rq@zo=M^p+lQgWfoYpU9CsqM|}vjd=S#;I6iO zS({@uq$8kGxj5%)n)-E0a>7|D63DLJEj8eYLPRyVz)tg~8^5IZb74$f@WrdzovhFT z_qBZb~%&i?ZLAD~1c9-VNp#!K*Bp z;wV6lz02~nyvV81>Xe=@Fc1o`U~AffZ3V{i&yXyk0_iy8#9Iu6&Dq#faoPTFTL$YY zSE3yZ+VUuUaHxUkXZGs$H%SxOx-rNJe8y75y;OjTG2wB=l@%M=yTzAY5-L#Qx+efK zk;|Gp7t7EawRqsW{Rr9v2nH&aYLuE5G4s1koCb}8WBYm6OvY26f;=qa`Rzo&$|KN= zP15Y3(fkX!f!zw)p50|7I+MOqNrQEMl~Pb;#bceb+{`yOT;ZCx)AJ)c%jzf9R1}{C zaza>9aOZ|FF(r2$J5PB@&vREylg!Wgb>9m#RmR+o{Lr`M zGp+Fy&?m{qQ;@TkBUDQ5%G)Of^k%S-a@KWE3T4MwP&X4yS@+E`wYS}oOsftM)%TB$ ze!+dXWyaA4$B4q)gtu+f360)72i^#LmEljzHusm8A^Ym&*06nlPIM}=khh2SraGNZ zGArAOF&`u7#5JT@=WBmecvRWCWCZIBuDBb>IetdXqvU{Et@#0S@e#LYMn)n@D$*P0 z$wvS$0#=br%Ohi~wLE&X=NQpQEJJ`o7$h6qD$|h>R(=YIt+xWOXK?8WO#TVx<2}-c zb*Shu$=m771bS{^b%c|y38}KoZR~zj8D=f_nK9w#ctfxI??|Jna#^YMWz4mfc4NFP z;~3-~d;k68Gvd#r*Z27BJs%C;^^>vG_B%3(SDy;Dv^&&w0H5$#c%(}1SUb8~FD|gu zzvOnRe`WI4QG?t$SFTRh-cNh<(4)P|SZm6&?{oTZ=Q*nJ@HSP%VlMf@hiN6FYrXkM zDlqS639)*IjBE)!kxOun%`eH_Y>u|R%Q*mYqkM<8qFeWa`{0M195&hE7I=zA);!_f zrM0hr5VG{(7eWK(uA-Q3E|wUj$nKIXv0``Iegv#Ij07szG^nsl7yY<9z>X@G$m9Ar zt&-TA7bO(6yIZmPi}9Qa9|lQ3DE>X*79iz3s^)+?!h(Tzul^d z23o}PmAN~I?P0zjN9{Ob4?B~klsg_HNKDB~g{BYSYo)l4pN{n5oj0Np0sN6l(3u?PQV{&pYy>p;c{@z&xBdvI|KH1Q|f?@NJBTR>z! z8iecuGrd9{oSD1goR&$Lpfjb9R49vj*Pfd@UH|2BurTN&;qsCx*#QgjFcpj7nKD?Baw_f< zN_!Pvq5t)zR+O8M+Y6D;HvkX$N>Ws1#nvxiUx{VWNz9)}tdWM2`Xxqr`4Hq6E*q=P z49fw?UT^~LRYiDQZ%cD`w;ZEZ9!0xj-w7{ULS~Wd)_hw^$d0OdYWTHhI~j@lJ(8JB zVPU>3GXUHQ^lJVmGN`)~23Ou>x^KU(@%i?9X;pVeIhAu}L$GJ5W~G+}XE&-_S*G-; zB~ud%NEfVroaK-OyZ;J0u3*b&j&_LL^cGN<7JAM;UF2-!41rVE>RtwR%IJ2Zj+si+ z+bDp8)A_(n&G_~*N9VN3SW$Y(DaS+)Bb)ue zLX^z3QrqcrgyIp$8dOH>e)Y|m%9F0Q8cz5(*1OrSDZOD223`AF@!j;WpRhGG9>V1NUEG+U!uLwDh zr>*dgSTr`vdv_01kn2o{$QV3uCEu(BD#<0ziJVt1QM)l?J8pgfVlBa*LJApBp8TmO z-Ih}2nzDKDvmLDzfF1VCFw z6-9@7e@SnRVptu{;?1MM)H-PV<}~r;p@3?|^K3bEf2mhuSJ6vvO?ZN3+T1a)sFf~( z+@Z$E>N3jSAzvdS>*iS0NSs5-wOs zq)*5CN%bnFmJe-R_k?GqH0n<${P`8HleSsMRr0L_MQ1uc4sWP>;&r<85hMbGcJSR_ z*LX1HOlr~8?y&ZhPo3uLReW1KS!a0tgKfPt?(^p|^EzrKm!MNs880C2kvGdVxuY#cyN)LG0rj_Q*DyYQeZUx&G-! zVHe#!1C|-wP!YI*HseOSE%fk(j^!xO4IAEjqd%W%6o)Ax2oy(Hesx;vg@@#e3&4t- zYSicoJUN|93VsdeH&MN>=5QsE$DvIw?<(EP^+o5rK$WGZdbJ#-R#o=?HUxueub10# zl@-hs_>i57@YSJqt4CGacGDKpr2Q9D)(Z(4Fv?)AOGm!V`Bh^Gf{0ucnZds|1%kxIPK*y406}^BVaJ=ou-*?M^U3K^}0dQ!)jPKs87{ zRz9H2mDNkY>Z}`Y-_?O5*R)Y(eBG9dya-bnadL;#z4Xq4wODmrc<4QyRTBoF>Xi7t zveb&}S^AW(3YW`uxn!>>-zquk5t@Fc0emV9b#eCJ+)6@o&XJ0@52Mzu<=8VhQzib5 zm%up))*G{w#!9Qzw?0-MjkaFf8RKEZ0Aku3_PZ*#Sy*$Yb!Uz} zL58fGf;z<=ThpKXwV)8CNf^PcmoFjTwTTmPr;#OLEOMv!HhHoA#)vOEp>9DE@|t>s z?9?Io-3EAWC{jhBi`gbBP;G&8^|@BIB<8!}EpFJ-?zWzw7M-*dTTkvU#2ox^`%-77 zDS*)*owl+nQtLCBlc^x<*|zUC_T5bC*F`@`mP}2m13~G+c~-UwJeKFI>ef*nOC43`!4*X^JxUJrIwxK0Qw4Bi zdFOH+xVq0^gu$Zh*P*UYgm}3b$MRQJNAd7y5rUdkaY*IkI%@T9NQI%=Gl`>fbuWFi zRpjQ_hY0;}I=`Lm&$fwAw(`2-?mX@UkSh`(2;7cj`&Y1l_C2~?4dp-^W!*GoVEm4( zsp@jIE>bgZE&?_=!WE^Y!k&su>J8tNIuQWk(pZ;`U*%Fz3?EznUFkhP#^AN7DKi#x zA|OG)xC47Ig%JE>!D)iG?O-h&|E}fR%Kq|RbJld_n4b((|H@&~9zvPZL;^*SD8b7Z z0Asue#DSDUZYYh83<8$d#+At*y;5+jOpc#ohd7RwmH-eAgl;tU4LSC7P- zZX!RNm?Bx}jnKz#shI2M-T6a6JoT&52^-fIKudT!|E;_omYvmVNx1FB{L-(5l7y1| zx8q;!mAi5VQ%b{(u9~^Lxg6=aPyWM?8^inEtnf_uWlOKpH^zO5q7je_YP>|-qkiy1 z33kXzAzHH{CtHxz_6UpL|L`blr76UB*j9yxB!AaLL7-0x=mGeWXnT-XjJ>G^s?=j% zL5H*s2h5A*MQZh>Vc75ZA2Ci(z}c-+38vQ$Qh7kEv`)t-cfzx11&ibKU2ITik4#Ir z_gVG4%lyUZht#GdVr%bKPAcjzIu5QA?ri%09=+7alr?FSVcBVEvFQ5rGRvJNt7W=$ z${Ai=*di(khYz;u8%;Qvh^)G|IB2T?P03+n>)R+*s?-YIOgEMk56H9>S?1~zBk74{ zVw>&~_{Emae#pyjZ?o_wLWh!?uIOzf+1IR1iK}7Lu%pd~q;J4a;*kOob11KPl?695{4mQ`0B`%n- z2A_B@!AMu*;mf6d3i&a10t^u<3Ebuw6f&58*sQ^eRB8!$?4LE?o#)Lg?vV597)Bt_IH{0xUtB~)DNbr7D&vzk(Hu)9V_D;oj0$QMHPjrReC6%)j_A<5z z9aAym#9^FS^3WhGU8VKvW&eG8zC*1pCtacGf5F*n8Vda}=K8 zllw9a=c8^;*-dTbR^IP9i--t$YZ*Shd@EJUFn_4+Le2DQO=&L0`MKrU(wjn@Rlbrb zRufxi8eY8H{}1cxR1tQ5;#0S>GWEo$TvJ+0vnJXUDJi#q(t5{cLo!OCxOew+@ZelC zEFspIv~93uu{{BnEne?k1?w=nVzbRCjxxSWG61Hlp|~^BDA=U=-bj0b9qMG#v?+g* zlDki0rT*Q8sXqkeq0Gd9tjffTW^saFi^D!L4?@he*}KiT2H{uWpQm%qjkmOW_r9?p zA2*QA5cr_UV`YDg;+8H#-+z`Z%t&k841pF0K?4zS61Ul@JPQM^7DK^g64PV}25JxQc2cmLRxBDBB z$8)m63O%p3%G-Nf12Y*jSYOf0H5r4QQfR*y!)E)!08O>PPA_UtaR=>7y{B+_kiC}Y zn}k^>{Pc@}n~aT{6EE!(x-IXIj<->x2bDz$E9k9RejmLhk1mO% z83;Xn&5_?Od^j#8t*=QjWTIJd>|?css_TN3ZNWM?xH<5(n^RR4CO;kxG=#CF3&Gjh z_BP6q-7xLgfYTUg3UnxXJ$8cbif(uux7wSjjd3t;BzNBWWT znE-oVk~8hw1~`?`KvpSgUSh~+-As@G4eVN^9XC=Pikz5fnK^6+#J+x|FiKXwrDf96 ziXyyE>0m0ToJ$Z}sWn!Rt4!z~&vdgHEg7uB5u~0E9E;yaRU8_XK<;Ai&$@f?T)FyloRTB>qvuqP0o|=u;GIyC7t3N zh7!L1`>%D+81Q@N?EN+F@i8nOylw>u!9#nSszG~}P(!rDFiPJMWKoTaB`mMPMN(tF z!@qy}tV$}g8k+E+dT(qkNh45i`4M4P4O!CgTz9uha{3Tu_l<*Wxq&~q7oG>=v5fuR zNO`tU59@7iTMox)v^tRDa6;YIlZ@T`x|_!4Rdq&}i)_H@mzXua#6=|`R! z=l?_bvkhHuyp}*aA2Y>kN{Qm+RkYiD zv@@XO*4OR*k%<^KDs_v+RC>=Ww8Xcw`xDSq<2c?nK_b+brZM_G6g9d_9b5rUj1LfP~us6I1xP57@hftxfhwk?PrH>7d|1C6)rOs@M(%~ z@3>-r3W&^=Bs$?RJqol+YK(T?s5xCh_l;z89OTUMU|PgLRn}?tS0apbddcsi5tL^^c+1_jvy^opfzV%MJH6Ds3QKQbd%On{}MITD` zW!y3HPdd5+s5|-0FjiUyiW^r<6#Wc_BD#`=tMa#_3iQMXY0{f_porz(NZ(@7QO6n9bD$0S#cv+iOCfM0FfJ)lDSVkWnU- z{kNAi_MQM+&$MzAibYauF^6=+M@1NKJIk3iFmKf3#*D_pujZc(cj?-Pp&qn6v#SiP zE_i8@uBbdIexLZLM*aXM^q6`~4xtWc{v2Bza?nkbHeP?bseH<{prr)z`4#*D=|e^2 z{5qEf#bz)0UWphX9yu`-Km9_CpmLs9A$OoWL73Vr^|<4hnio?@x89 zZ*mgFZYEfS&qrWbH~pQ5{t=Wv!N?ZN2{2TYA~hv-6=!n|NPc3Q`d!J^D&KM!8{@`! zMn5E&(!MtE(8@_;|%wl(o3dtX?#h_l(fntx;kq3fjMay3%;r+)2c#KFA%<3?9T z%e`uRLw=uuHo5y||Ki6bzVP;-_oL*nM^TYfUzOHb>40XGiu3csr>qGw;54*1!^$~n zX4oe^YY7Ivl5q2U^Mr)-dJIeB`0T!O9zkt~UOst|aH22ysrbdhqj%IcjnLcE&CC5a zjnX{Nf?&Sq_q`Hj3#W^AywpdICjvt=J{XPf4sWH3ffiRBF{|Gj-&%*5c~M~V>O6>F@HIF?GOwwxtB^R+y?jajY}(89{}{upzZF4QEX5`Uac6(M2Z zhqA&(Vy;^Z3AhW5E7H_UFejspk(*uOPo| zgx?x+qNs`~(c0pa8b^O$^)D1yYz>tr_@TTXaU3+LSV#&#dM#d)% z-#nZ|Xu%!Gw5E(%$bRxI@>L6}+7^jJs#L|;l;6(Hz#-1t<3R?cEb+CG4Tux4lh4j8c_h8Ic2bR!#*cdBZ<5EDO!i2oMWp&?uKuv|EE6g)If;ctxnkaJqOEb)h!h^ z)Kag2Y!9O>rDerG4veW2sExg)=CDeh)#q~ zNVvwH9(~%Q5sln<8BDp-FeiXB?DYDeM$U;9O_0z$5sADWiAeCZw0M`t554lODQfHk zXL%lgmJ)T&>UAWkr%%x@4km~*J=fdsi~s_VdoYFpbs+L4@XP&wl<_~3qolw|bi1;H zH9GXh!rV-5Pro9|x1qi-k_-fPbwaR3_B?b-Ye8N4=R#%0v$Ce{J1u*rd7`E{prmj> z$v3x#eWyn(5+-h z`za-k=ev(O{@a42IJ_21jkHPdg=uX0aHr&{45;W>LL0$fnh8BoVw@=s3w=6&Pq9?3 zmuu1iOYtvNrP#Wo&REE{j#Zz<|w@E8@d|%%RBc#BZeXZ(lm6RHjm)pd+kp>`W4{+nN3L?Hg#4p z{=udn1&Kr9Za!U{q{qSc?V&yxCDs~CiL+qGdk=ldg^~7*ekOS89QNNZFV-wK zTa`NQTkHzk!I;RoO&)M=yEtL@Pg|dla$ir~|4G(#=Vb{Q*~;1wb<8?Vk*l0}MYLA@ zgz9PcdA0ChecMt{x8g8}*(*$!g^w@j!J$KB_X9?86BkOuw;l0_lTMbs{&PZ7vYkVn zIPLsU+Lbf*5BbMqUSE4L62MF$4n83s;p~ppTe{p@E4-l;B)L3r6;)-S$Q^t7-c5x- zlT?d4ZO=af($!Tl!vfwA9#lP7VYSf4n>UqjJ`e{JFcRD)a`@5*#*c-FFVy=}(A7%f zED`h)+x{irb~)?0SP_XY9tm+B^UqZ9ZFCYhYmy5+r}Fr9ys#@V}bQU-- z^W{kGdk4ZCxmp8o1B}4+u%_01P4_~Q4ez!=AZ6u_3Fvw})If>$oX6J~5mZ&+p^g{q zm#FZ_F7eaWs>1!6O!L9q@eksoli8qvm$Odk<<9#dM?@% zU)+TNO^D|ZfK=tO+bA8iK;c9TW5Yg%*@a!Qz*(s<42FdiO4h8`TfbM&Jo-=2@3C~1 zc-yn+Uj`R!Q$`s@mTcHR2srlhF{NY2VhQH0j3<&arlO9Ehjcmh!&EOyU7sT&TWawR z+Tw^L0ue?fkJ%Wf$XTCV zPZ3g5%5bSJm+VjCUpl|dJ{cGTTz{isin-$~Y6RjB?x4Nhk#G(0VtyVwzpg^nWsGch zfE0XVsL1jEQSt<=ta@UTk9pl6{T+Sz1@waUND+6bClSsgbk|w>KWO@8Ue)jnsW3%? zWvrV(+Gtfd^NW45)>5kOkaSg?XRA8$z!cN=fBe!P2y_>{_k+Oe{d4b6B6bZUwBstv z`f~$0-9X>C^jjpUG5pz&Npcq~=sBSMq#X38&;1(9R&q5h`SM5+f;4m8j1SpEZgDjz z7$Bg>kYd$s%yFH2vF6986`p572es9#RYoY7`2+KHR7Lrp0Mf$dm}m+=Pn}k$L%|oO zaSw%X$&c(A+Ip(fo=EH46=(l!_KF;E`%=v78GIX#2)i#{r4MmAg#^l0OWO$4o zJbCy;x$0(k$XTvkcJ_UqTNRgF(k&Mq%tZKAz-&UbA>IKW-hAOh*kFIZAW~^OVb2IQ zX=ABMmrJi>GG1pT{y7vJiR00jNm(1hB$2M2dc8!Qj14(MO;2od2V|A&!Fw#RTg%s# ze_HhR<^_qan(g$dd=mCd2q9x(0e-_uFsh9WdsLy zq&zC6kLBgy23*ad5c19t%!+YPPbUNlNLO@+%R9Zfp;*$rvroU)wLRg;VCu~il_v+5 zK+uR1c*@n#%MrkeXSo)%7F$|<){^6gKzCkkx!GGjx9FcbQtpw_E|=;2v`mjIu!9q|WrNogu4R=^)2&u*!$|%8y>Jd=#nQ;6hK@{4 zRsIAQW9;#Z>i|vFrB~@0t^~JXt(jtTm;zsS4JR9rct%3;*Gnzx@fnT^Po3TF+$qB6!2m3`^YbFBj;h{FZE2PxAL6f>i z)p{b+pi}G093c44cjCPHXU2VNhO5a6%#eQbiAD1sD;?RMqUtjMn&<;$vayYSLtWSo z2w+x)N>YjsV9h!Wr4>w!nahX13RLOntkbB_#C1YIS_RCb6^I6_#&aQ{(Dvcgo2^zK z^|tz+QK#gcS^A>-b4#12+=?#cM!Z}`uBG0aI2f1vCirvVe}D2{#Qu*Jm<(T>;|Ml0 zBON;^lI7O-j{}x=KCmBiK{VV}RdMAL?fivnmO)obEjjEX2k*q^C2IJk{rCF+9|ndK;+XTaG+6%lZb@u`+B3y;j}T6W+baQ*%@~BUi$s{$(fNg_+$kJ&pFTKB7fW zLZ#C=Y|2LAfB*Sk5dQZ`f^p;`g0rFnGa5&QKP$liM75>*zKi9qH~T8yaMrO0aE^bn z!O@N(_0n~)6&6b6=Ty$ok}+mH+1VlC9}|Gt=1uIQB0}x6ZL}j_SW{jKa^AZ($!HilB1&@cel=W_dzlY7VjH@}GB7<}|J zuWV_ls;M<;P{>jg1Knkq7Is(fc2x2}Ctvkk$h{MBmXE^DTl;*jIIpBNZo+?5%I0eC zdecr{mzwcKpixCgnJ8W<1i9t-H%-$2=}XVAO|mgW#f!40>EOa0K-cre$i@Vd*ICtZ z{Jik$^twe(Nko5FV5hK9&&<5ghXOB>ZArw4*e&qzmfY*$w*DfJGR+taBwxSU1&5_? z$56f{%r)csYWV&noT6>q0WVhsdt0e|2=2s#U(tZmYVj4Exb@a1Yz+-7KWdC{yzp0m|Qg9)2(A7J_qe8WER-?qW zl>w1mDrNYVX`VPAOiAnIPAj%4Lw@#Qz8*czIgEJ)3;cY6Fh6fxStC-vY zBh*Z$jhEJ8YnhUHGS`dfN#lDo<k@^ObZ`R5Yu6l8_VZmH;lzD=BSb!Sx11d3E8%W^U}72Utq?;oe0*iLb# zUHLVr_CH1^ADGQ&H*E+jtEs2Dwq@m&<5Uf_$5umKDgLD!PdGum`vc2#Nyn4zkaF16 zrz_#lLa*M%{mw)i_=4a{Au0zYQoiNNR_uhJlnXK|{^0-q(ZN^r4LYa@z{4xz^G$sp zpg61GG=de%X%KRkUUw1N0w0L#SNk{E5OZxj(>w27zxTCa5mCNm^& zv}N9}ZZAC*#k4REd|>iKk=UoHj4Dm{cn0~zhBi_mah8>Tx%AT^t!SXKr*?ejI1~oYT)WN>1$17z!BK=#SzK-uevDY5E~hkrZS^w z@PUSuZnR>bfrgw8>84v>TRBLkr9M{W?CW&cr$G#%pzh|=iZNmiCbsjxcWNQ>!F0nn<>Q-1Uk-J@qgmHbu8T+ zc+4KppIuSY%rS^}<>&84O`-Dxu)#Pr8(~*kthW z3i0kN^!55Ls1r0R_wilXHM2kM!==jx6SeF|?jjuNmPAa=nM>*9IvsQ z3Z*?>49=;o1>H{xtvYDywev9MfJd*(NI7Jh)o@00;Uk=Kx#5U_iN;Xucmj%pg#u)5 z)E`c~2{Lgvh)qsPORR@|nhn6;u#ZM53x7Wfij4us2jr8+1E>c&rsN&Ag&P=#BlYI3 zCoqqnB{EoUZ(B{dUP)v~22c?<_m+j!j(*%%5D3)m0#AA$sdMrNqoygxDe~7JLAFvY z{CW6TML24M8(5~Q-vHSQ9Te1wYi;h;X+Or_M7cS=D;U4vpbXa=aL_NG@VA&9StJA2 zBuVrX4BOh9j!D_h+^_mskn{z9KkeZk>nkIC4?KL8vq)kib*(IT?xs}3N%o*vS<1Fj zZV0hhsvlJg7U6`sV(wRBQSHi-wjyg$t_1v)07V#ls&4&7!G@GU^Zb}`BFP1G7H%`` zt`3yxi%uvvkgUr(UOA_>Bi^vrFqW;;TKX|QSjkGOo znszJGfK@4bQO@W*-)jDKeI`Yv&|7Q4gWHk+Ds^^1XNKNf4Hm!ek#CgroOIJkuiQS^ z2O=wj7k{8zNMxFN&R0_LNqx3Tg|U}!%TCMaLmY@BE2k+oFAE+3D?j}`(Isz-0@SmR zW1s|SUu}P+P@|3IuqC;H%6rt#oOM4I%q&%InywsfH!xe$k|CcMOPs_o2er|0&HBQ5 zd+=

    tvbxS4$=@Rk2i~A^$V1Nx;$JnOrJ{o2|26ZD5RmgJhR-0)b1^NbDu{hVZByxswjq_vF<@YSl@~^_1+lOkydNy)es%OmbHW`(Q*M==G2_f^H)=UnX zD>_B!F=mLWj|EsDJH^(G+9ACh0y}92Mygj}oobT&&M#OXqzo1~vaC+b+T54 zNa_7JAH`vV;cfBf8fBNa)TvVB?Beqs$s_H(&!50cxGo^i!BP(wG1a=J=145ui(sZL>1HGwg)`4Q%Mto3>PV}E$|11H^er~rb)&G6|7irj4+{#Kzmo! zzjz2IQ_t2>VWsxLU^e$tAIesyag@yLHAmtbEo)* z@Ayz?LM`)l%tOS8At9u18%tPbK=H?2Zpu+V0BW1meM<|jrK1JPWii32aVfFn-_;e! z^}RQWN;L~KS|05s-M?hL2X{5n9s60v9y+Afu{`Kt&hZm{y*e|3GREPOIQ zK~J#;qYHQ5#UtKlWuT|h!a4AbnPyYHKVHtaiH|y$aJK36k?8)7@ISzo(a#5GtQMeo zWyp2M$t=IBt+DN+(^XE=vb|8RN0sXaR|qEVJo3Sf{7QcjB2)bQ zrN9gMk8A#`RuHbO36DqYY>QQ4vqTm%`mNIr{&B^A(vf1;`p>o1?5fg>n%$ zL^$WfY<*g%46Q;f(&$q4vu*`cQh@pH;k`zVRw({D3aI1bVNJ`=U+qO$m3rZFZ2Ta7)_9rQYmIaK75xRM;8nOq8 z@knpmfnAG;isAKb7cDol|I}94W*4_(n6l~;@+$7fyE<)Mt@~LeK4{=2*f(bbd`2Lk z54Q9U8+C44k#$Oz!Z$wOtL~B{ceL;4KbY^(@jlGf^RTudmxO+8%1^xi9?2T72neFm zTsrA_i)(NU@)V#dNwA(7veU0?QFHLfMQRQfgc&lxfp{v#+wA<9{#6QecEEiT54A!9 z)}X2&;NFaAenF=iKS87?eI{b?99MY_FPjUJn~{NE}gj>SYGHAkA? zGVoQFmL2H{K*T0@4Tq*TOJ0&=o*2cmavb5%VS}l?9O%J$`E!~r^o!*zjzK(v2k+Xr zBQ=~F_#6`a?5b`RaK;3?+02X$#Ch}b`{P^agS8U`WGU5LP0EXhkSlC@S71)eEbYx^ ze=T>g2i+}*(On?ia^YmSOi)%|&WKlMhua<(L3?0UpF;l}P)ay&~CA*pVoonQ_rbf@;h0pf`$ znZcBao6U=t;LjnDqc#KG9$v)K7UQq`W~s4B4*QFJz$_A@#V;ciRV)LkViy~|?*$Xy zTGZ#S*z^jnOG#GDpa{JEP7x$u89G>Nq-es@QWx~T4<{aax#dz%n1Fi=bQ~Vy>Mk8K za0p89P-6JZWuJ>zNEcZdU*xfeXg|zT;+OThqe12HAK86?7{`u8sy^oxKQPc=8PI0O zkjdBAicz@th9ypDLk&ETGFLr0BNc-UXpi>NLErr{<>Pp2KLELN|I}0|X2P`3AJ+7w ze!k?r`?t1zn+C}G9oirnNuUJfOnOASW3T<2<4fPdoo@a|85P226dF9*@pbx-y0T~{ z&-rr!Dhv@kL<#+3@ZywG1^sfobu|J%Cc@qn*wAKXpXSI+KD&14X%YH;>u)r~UQERB zMIX4pvK(YvD;6v+q2LEm?xAkf3>?Oa>*%ZAbkOdrZg=4$2qEGamnpV5dJ-CI^s6J%I+85LB2OwYPpD@bWpvnnR z97S_>kb0BPYY<=SVKWU;wwB@Gh4IG@DA14UR?Ahn(Ts9)LN}k4$tk-oP!JjIrldNw zaE>hWl@uD8t4XAq8h7`#>qe(;SA!W_#x0YRD$m}{(la*M!(kPd6a@^2qIOp>j0yuf zTD!LC`x!QKKP>dIG}*+GJXtiJQ5ebvucL8HXz`EyQ&LnL*h@UhTT@B9#DRg-6X}sD zhlSUcV|-e|2ebj$Q-q%%@_p+Gnq!ZN;ad&ly`MQE@^uxEZ`j;i*(2*81wQ$vgG>wzKf$DZ1vdFn*=u|H-ijU zF!H-DR^cpt#mPQpQXE08>uT~WuC>bpV*3niO$tS~x;_QV9PBs;b+viFn#oz`87?!J z3-ykwuGFrJqs?~mjUK{9I8eQ-+JuC}^j>xI)YJpk54g}ri#%@x*QyJWA}S%Q5-A4d z)a~EG?Ta)4`EPbZ*$+z<67Rp&{iEY}Ih>zvNFgX^VD*NSE=tK7d&;{S)kf8YK~;QtSX1y3>G zwO3iMRzYRH>|dD8{~GC0r?-j}s#71t{Ok;|)5jMJGG@VZxL&25G!_RbRk{T0G*6!E zc-TMOQXXj%0e1x+^G@nI=kXKTZ!HOEUw85x+`F8wDItp2tN7oHQ?b=2x3J!(f)g`1IQb;=Gf7o;K_i1nbc(*Ry=Tm zD)2NqpIfv#2X(htw0}GI1l{E`>A(idbPFAb%uB5BL2+?D2?}LiyrI3a&0RanVtYMT-X)Z9FG0 zO`3Qz*Og&D30)C9P<_5kmf!#oD^o4s9v+n+hFT?9`9h zi4CUL9&AWzQ;P1I4l1r;KJ4mS(Xd?Kl+MdrO9c5OG-*o^(~iz%ZVcaCg=zt}udY8{pa+sNe?%(*NoUk@a)I*eLFirgzi z&VnD9DDHdFGYqjaP6hPlfLB(6XG+=h6r#7w_P1MXlVnMZC`Qh5;IqDUD;aQ= z!d94z!NYNhde&{LkZR_TOcbSBnq{P{iP4^PcCR6@9egU&nr%H$KVAy!NQ+x_@n zuZz^at)-~XElWLi7!D)1}x<1 zG=*_iFQgZ}H}q2GK=CCotYHU{kOvlD7mDL6Mvp-PYP0+3U4UZWlQ@gvb36MLR3n{w zb(1e3Y?B%GjbYY46n)ac_jN6f1;|5>ydkEe0h`EnagDa<{@idEM^h<2y>fBBckb6_ z_?zYI1!vlmGTNCN&Dh0h$tm$52o@gdu3cgt{X#F&uiU}{^NCZb-G z#+2a<$!g1mD=9dOyTgw5gf*}i$NKS!k!i8dXWIejh#s{IVr}`-CkAj&YKqTic#XX2 z!DAOB8y)Xr^v--IhCIv01T3?5Ih;IofZqK`aZ(8*X^QX$m40wM7QapGO@pbPQh5(3 z-t<6yj;OKp9b7ymxi=fy=cKA9u(Q(MpzHl^1T^=Mi2O!!QJcsz=V-u+ijSMC;4L1C zpp2aYWIdJ|okg%;bFZ%X^`CYI%21$o^DjP|E!NEYLMMHhi9Yd|sf$-t{xp(k^3}g_ zfg~aZqc*2z4ji}oZ|3|jF#GQ;|E_xek4FsHPehBj+@{cHvGc#tem=vJd(7H5t8C+2 z*gbN8^Z?lK5da8Ch{!0&NC*gkpBn-J0LU$&4xKnX!*|KXWQ0pcZ6ul|n&FezQB4tdp>#W>?q=Hl_x}GX0v24l3(gg>pZ^DY zc2|+4dl(0ANEf@JmlHCRZmJP!_{-25WHMv7T%2LIt*Y%S{68!W3zbg9b&jQf>&9vg zP{U7zdTBQTtyBp~f*=pM$}pV2F7b6RY$nTxMHcCx>VqD2L!yw7J6*TTHZ_UxN4j=wt%H*k&2FaB`cQHC-_PLmzsvS74g^c=sed&fmBh1y@Zh( zn*gqf^oJ;6G8z1CR0yg6=C8-A+{V0`^SCEdc0lFU~6SZ3ad zuCo42%u4+3rMv4jojo$?e4@c~omkFI-mK#3p7+D)<~(0==zBE)*|qw9Bky!183<5e z8Ft>z$lFa(mTy~ewA9yz3Y2DJW9b6E*#bJ>nYkN|eVShqWOQ>PCmJZ6Ec*OC-{xs% zg3wE?06u5edc0#AG`QmGfPJO>>|{ z0*2wh>oL{kQI104z{;^&JQ7w`)*d6gI&Oq9kbFCnI!V~;X|^OGych}ZMS4rc41zD; z{Qj^E09L-{f^#y*{nJ5LY}rx42ON(@Z8vo&8>cZL$`p6c|Emc`$a5adAqL&&wtf ziDjOXZf)deKX^bDPQ$xuyfi;+T zBl}D#vV#q*xw`OdN;gZP)pm=UPJXr;y)OXujTH{{)xfZ3zcsHhNE(nID_7^zO=5wW z8ic4jEEj;qH|!@*I@oF>T@&K49>;%PIGZ#-K>FRt69SJQPfo}b(TE|Hq>qpFiwqb2 zK1beciBPDI9aAC2Ld|zWT8adI@x}hN7G{)QGOF$;-b|8r&jS<@K9!?9LP$vmDqS<}-?ZI<>^zPpq$WWVTgShRhi(T#O=O zTgVvPITQ{J6Xu&(t6X(Vw<>xE|NHX)ZJ1<_lM^xJyH~fBy|ZIo9QyqGNvU(7H6{!i z$BFc~g)?A`!NO;cq#C0*W`W=Kg-N41F?**cy^RS_Nce>O;xrDkUZ&}l0K07(VdIRH ziIAwH_z2cGPl~=;k~Nk53P(m<)Y{7vz{Y&tc#b_kAN*o-5Zu>Oqr(6uCA^>8X@84G}*MizyeE=k0OE zVDM9m@qQ0j+hg3YU8_tC@b}`d^%D&V$hp%*_1~KB3B{pioN>X&UIw?!8c1%Fc51Sp z$VM!k*y7YMby1pR5E3DIw#lX-nZO+}gpIQ<`6e2xyImVFk;!vh`g=cFMN(!(;{{I4)6z0CCP(+K5uHQwi?m-vxAQhq(aJ$SP^u$C=`5?|I7FngeMJ=0339e_|i;LV1;(SX5DNxqj+ea5MPiy{16ajZ*b6+du6m zAKN~?p(WGEq| zEtKuc;QvJFp9ud~|E0BJBWAEUU7!6t?NB8=kGLse(-CeZm%q$g*H{?I%%g%!?*Mdd z_VXlc%H<>6`%d66=q7GKtgp$ADUssv`F{D9Xg@C^@T9qexHBAr%^76NTcMaE-;QcC zb+$%GA)sUm1)_g-SJJf>T2%gkOKk*CrmTCeOFj-p#w4_ospJb0>AUFYj`#C?OoA^n z{%*w*hR6&>UX?l*9hsiMqtUE>xAJvQ^s94vfS=7k8$`@_{sLgLE znYHBvC;K?%z3NN7#+6}fhO$m}wcJkKxZ+0R#;;~3FqE?54huha>E2NhC=j8WkL+R8 z2F1dcJ4;?Awx8~%6%{fzlCu>%8yY|eMbAhj#2b^dQ{bpI6m%l?*JeA7!vSQp!SChh zr6u_)+0tLMlItm~E3N|!%jeUZ^0Z~b(P^c@l<8>3^lug-LZUFks6z$waa!<5tJcB? zsw9x*LZmeOG_-h9uXtf|+};^nj8C9Ts%V?NbFy1m(3J1Ah#Vwq50T2M(EJ%&N;|nW zHX>~p-f(GX&Ibpvd;o9HQ^4CiBo|z^u*ks5jBGCys95mR-iVoJVvqPd7`^t>?`NA? z#ynSvBEo3@h6`)y#%-t%hrJ}qvv2uYvV5o(8o!T&ZfCA9YAyba_Y_oD=;W1&+LbT` zH)Ab2fjf_vh4|MEvzn)S;1O0HCMPjI-4IKi6-zD(g~IF}1CHcRHT5o6P4#{Hq%8w{K+;0+^2ejJ6K?z75=A~H!yN~rzpwN0*< z{^9giGquP(uBz08UQFY0H(YbPtXCaOS4vTzo>AjjBxV)fWY#^~C@(0)2^1H7u5{DU zrvJhwNdlddz-3f5Qizq0RGxaiMjKy9EdbjEbCeLDjlr&zNFX2r%{dbMR7ieVKUEr{ zWRBPkCl%F>3qy+S6deMW5#{)mrYb0<3MuDJIH;S7AIdD4$isazchg$A4qn>i^G6dp zU_&a({cYdMx1t3|M+|lcbD9+HCcyW&+2Yn9+=PS?zzbvt0>A8aeR+zF$WPo6J=!?j zv2u%JqelVsQIs_m!AhTV48iG(rnR#0Jh0$;I-Z)R5}q{bm>}7k&KO2p@}TSp6Z%BL z3!kS^4wIfamh0c?da}F7d*lfp7(nf#pPp(^?kn$E#!Cp(h7HinBLO^ltDAYlrL52( zh^*S!=JDuC`EME021?yBXb{K&K7RS2S6Tj*1!v?`L1nV9pXp!NkL4$fvBpOejoqyW z17(2he6yctju^zv>N!9WXTT8bta;;41T^HP@=9SyM#bWc2;C}|a&}F;JbQLTGAaWn zIp}cMdaZG49*`@VS-CJ!lrajUr-v^J%qYF2HZ_zbgcz2Htmq@Zbn;!8aX(|v*d`IB zBJGqGbD9tsf$te#4kxq08Qhbm!iK3OxE_y)1lo$5$Yll4XwYT%4A1YNH%7k)ZJ|oX z;Lq2r@v@Uq4h)hXt!tH_0lYSB@9b)|K*C)~U5HIsapc@mk`pdv@R&ENB>Gs{uzBXN z`bVdjP{nlw!{9+UdEpGD9Uw{o;ia4Pa^+0h2$Dbe&^Rh)bN=v&u37gR5^pBRQ$O_W zsS|xK$rFwoy${C}50H9oz6Nm-ZwW-<266>GV*<}7*D?*QQ%c~NdWM`J+M~38xV(>f zcz_RVsF<&@e*o}4w(D&mvibHLEj2ig9isjb%Y7y=(b1={@0}IsVrlBJG{k={>o0^Rtz7U(U9BZDE*2(!K3MHldGsPa@tO zI%IAz69h!fR&zYS+bDOKD67U_2>H%Bcb;hxdL*vNjBPKQ=Hk*zDU(8iiUJ!&ZY}X= z@Fjk#CL4+FT+jnr@2P$0MAJe%sMkZDx9j2LJ z^CfowdqWvFY%swCk9}QP#T&a_pk>m zR8oFHf6#P)r8c|!+8Xt=g$zIKwiMfg@cT}d&B3-s@+QfF70}s1E^;d`IJASk-ugP4 zy)TUioqk${W2W=c+tRo&w=ZwwU^<6PlRq)?jr>F>v(Oqq5o7@IeQouv49s{WnzM#E z=J#FMzj|amHSj5Ogv5I?;~CE6p-J;h`gnA2hdFc`0e{O&urTgMbci_jD-vQ#<>jnw z()@IgfJZ!GwH|;S7gKKq#}*4CLZ)PkS=}twQjrZ5+gZTuydgQ7oNA+6?U!sTSRTT% zlU6;Ej?bvLLz?@(B(DwAju3OI`BgbK7X2VjR;nq*rW!Vu(o+%5#%=*hHXW`wYf+wO zG=kO59WwQ`W{f-I583@M=Jtz}cPn5moux7PyyIQ+C{o96thg%U!*Ou{vXrBF9 zcA_2pG4$rOj1-0Pd^3f?6a2mtJ!!jsi+tK`K*zfLOLZP0ox0ehj8h2mErx0vo?`dw}!9CWq$zHo}G4+qpmoTg=qpoG%L6b zugp+1wUew!*}FmqaGFb!J7T9K;SdzTj-o#Fuv*Q+HbrX#Ok-q=JT_XkbmqE%4!W!f zJcUTm7&F%D)_*QZ-; zRP(%c+h%a4@t~%SinF)`b1S5#*tAiSxshHJ4Zw^w`9(6-`TiwU>3@IIbDK~g+;hSf zemE3`1dR2AUX;pBXd{oBm~C)?65)0^ zyZMUe-9r_gq)*+!VT6sB!A!RqIyl~sZsLvaBku$1s#fA8fOxH^=JjxnjKYp0k=+C{ zlL{m1ct+W}ZKD^X|1(zkUH@!O*RjJPK*Tev(_2|y15rE5xO0yto|ktAqfZw!L~;y_ zo=kndBaCJ@Az+;SKt9VtQt5)cQtzOv<^vMgT4VFYP)Lu4^-l8&9`MBjy0DwQWR&r7 z=63EML+DEpyn0vXa~RI>kk^%l zOi!XSU>WnuU9gcX3qjz~`|R(&P}0-(_dBH4G=UFkv&oeejEz=QgG_Lu)`4y#x!v$E z(nei>v_Fx$q@kU|cPZs#nM_E0FE1V>Bh2X|7CYBjAU&X`HpI45UuzEfwx%P3w?q^vd2bd3QrT8Rj(6? z_r?2)bLCV}WkbHv0kT$$;`0h+V8q~Z%pJLoWS!U^prLVlH2~U*Pa#*F9 z8+AD;aXlVtLEHaOp{4Y!u}Y(5-%k~O(GmMoh0=KgxePc1HTf^TUQKR^6mPLud49vC2uY9lg7t7H!g3;)b4%vO9VV3 zum}oP4iKfus?x880bB%9YSljLD^0|3Gx1kLP-!G7km<;2cHr1b5!}1Ukz$j1DS za6`7Wm$X63fxmEh{e|P70Ew;rD_M(kfg>#S#sj{2Na4_$D=$<@>0DRM?g?skYC@ z?2-5K0$pp`SOY{>^pR02$=>qnhC}r%7P_CFd?^pkE43USqYE~eiXHTZRo0p@^qpN7 zhy=d@i6yekC@5YjnC?76d%*Yigp%9!cI;87{u#(HEL{(yM^;9;1QCJ78tr^M&!V|8O6q=+5fS1y!;t%P7+I zM)XuYnl>2h7}8-ha)^sq308>l9YjiqC?uDdG(#;7=l-?GA?JwCT8vAYV@62=`w)66~xOU#J-Pz8mgptKs0Np6yNyQIjK)Zco{FA zxc%2oU%bVccDDIo5BC>p`^Z9PybTm%CX6 zI_2mQxe6ayI%}NO-Oau}I@$>)F)SpPEx=S$vC0>74x0@5YACDJg`9%*Kwc+2B+kDK zac>HT;F`dU)|I6xr2v81)Howg_v4?IkyYiT?hTQidU^-^TT=i4h&es|Gmb6)3_?!= zX9OyW+YFvx9e7XM`>8IgE#2a+A> zcUdHX`02R4aT>kQxeMiS>`16hpFWwvGlmjk_}aX@1EkEb zB>aF3g=t9ILi~GwJAY!S_smxRhgc&lis~B`P(LNZd`UF~*bbIKH%)`OD85I@EDtBNH4bKuVs9A00;j;0}v|`{l#k@42yT=2|%} z-ql<{B{~-*5jpjtt>{qWm71YyuC|Y&yBV()(tz7(2 zN05Y@vw}uljf0iDAq|ENYX0|dkk;`vrI}|79&=6y73<{OjV2naOv)mNV#BsLBPT?M ztBam#sUw6YxpJwaN}o$pOC0~y+@2(muoDCFk{%R7y3S;|1&+CV`1dkbCuxz~O4}0n zxD{hNM{(t`cA_p6o66V0IH3Se>#P9zuZl!B-16%v!qY7TNMT!#rC>m;boT5zL_Z`f z^+3U*gYbLbWRTqP;PtWaYM0=vhxvYpv$g2&o}R41HrBZK19_<#4JEM|+J&biQ5b5) z__JxxVL4?ZK`Od%5Yb(?Bw%QeVoIhHhh!~3PG zTRf0I5)m!q)%f+C)TZt^TlEhBto>A8QZ75zxk#QEtnv_(w$3aZSKOcGMn`HBg2r*6 z(eS61t{0eDfNc{2WA3Nls~_-GaeJPzqLXB|3hUiBWB$-R`BvORV-Sv70!MJe+V|@` za$VIVluGB@Te_0D6r8YD zf1}>l4v~7>Q4AK|5)cAmzvn)Nb32!bI$?B{^fDACIMsQTx+*4i>yOumUT}q6O{`9D zsoA4y!F?aHiugb&dtLOF4$x;=!^b}A%2pY=PjmDm&r#Q5Rdw>E>JT7JL7((_5+ouii{<`+3-hApKeH9K^-^ z=r9-^hgJ!0aGsomI5Lj=chM7m$8(!IrTeD5)#dAtduRKC-!V1A7@I4^^8Topk}pm_ z8jP`hjj-%ddBx}TB#+%l)5r{5JLl9rc42wKnE7Y%{)a7##m<=IK4Y;z%6J#DxBk8% zUGIW)G%S5KM@6~M&Y5Qvo3Z8fLyt58FWw&j#-EzqU-{X^n4lIFn7xR2V!BX86gQ$J z1xD@?o_L9%+liAbniN3yJ^5#xE&W4Incw7e2*@UQWRLTLg6u2zPq(7|6Wlxa9{P4L zB1r^zAi>c5AK7F)39*QLt0=lShjZ1s@gce1Ui#DbuwTSwUworT8suvQzo&EpIrqXgP*nU z8&AP7mN}ijTcg#mhM_JQ08vpmh%aYLUUnZ}>LvNZ%!%Kz#Qz;j@J=@ashn!BZGQtk zE<^CTO$3>()Y@o0mg#<_Qtf-w5{h74f~nv6uK%oL|G`(PfP4_ED&^ex^DSF!C2b79 zA&-d`Y3RNEaAkK1`#$|m$6UX3tneb41svc*_20B2G-*a3aEYs?C&?E|#CMEM#|Igwk1v`=rxh=mUk97vo&TyuKLCSl z=E2D$UhnK)hcNgfb_zw3PA1j6Tu%Hl{;WOv4#o#w^LfiNE9FYx`xkem*cy3KUror% zGOA&qa3$dttbjy zrWH5XhWl&8_BY*MKwgQgZsnRv@Wz@xH)H+*$dun<$xcCpQrmG|_flB8!d)VNTr z%R}0rPlrLUD}-qs*^z?#e`9}>qcO>H0N8L0pf8kCe7hwVoSf>sjT}YzIsFf_iZl{`Zk&X2iZdbA`m54l6#N~A~kGOF=Eue`1xmxNyS;>!-Fnp zitR(`>>%_F1_=zRtu9XRprFjORSzP81PkZ%OPe^1amo$*UWU;C1$+EQQTuLr(%c9T zLi-?v7|fg-57PX2LQJu|pPjfrE8cytIpK>mb!=mgp|n1zUsGoQ8x+V$9B-_eW%IkW zGK05KI4#aq5;*J$HB9`z`#PKfZn?s`I|+~hi5~#rscW3c9V1UC(SHL37q%Rq!et&0 ztO_OJe|rY2pmW{h(1!CNC(kRT^;kX$n(EH->R_|dd0A<2r?`Re4N4FiK#Pt*_sBHD z=M-H99~Cdx@0X2U3K&G6aH5*DYA2H>n?m2~yP~_R54GIlsp9&70#s!f9d|l?Ma2wa z6{jGkmvi6cGbaXx)d5hVyB1!D|0WjB7ZEi8gH|PS$vlRg*@_&MRa=$xRSba~U&nB$ zxew9r^v?J!ixF@Xv6(f5U~%$MBhNS|P=3QNI}UUOLX=R`G9|S8u$5r=h%Cn&#B@*AJUp) z8g{%MP>e)mg*&B&(g*!lfH+loON}&!U?$wM67cbK_`)O*Copk=KyGf^SE7nd$@JA@ z@0MB{k>9gq2^-6GNQ&^D%OYyce(AJ|uRN?L-M``gQlR*YV}q;_ zw%hzK6cZw(Lp)ewUOoYQXyc8)5bB(I=Jch|QtM!5C0BlFSMpcLLztTWJT*vxq2sZe zE{v9r*yrZag3{i8I=Xd~?QDrZIrmP-J(9^O`4o=C{6^pH2cQC8mX1cj zNbj=#pP2jrguXc4edvruF|&F|dN=jA*2^7(6aWceW87x6$eZy#=$9>BhyG?PNAof* z0&X#fY>|Ie^pC(%LYmiczbyVnuy7w`Z-F{lndCnSa{IHix2&P!7k;{96<rMs=IKlPRf zDu}L*3N7%Yzfr~iM9p9^1teq@tQvbDf`z#1;dI@a5b`n1o8=t%rWrc z_}}CI?3{V>$xBvpIs1Rf#8ax+t=KL7jO%TuBJg$Y*-M>&y=y8yWf)gTyGCFwvez^w zP7L`h8B#HT*x!Cu{zISE+IT-e07-h%*hdGN6!1eq8r&0+bT75C`e$uWp%ZzyAuNc{X_<5?ePzH}NEu0Ld1kZmNRm zFFTcfDD13~d@juKjXIA7?NVFtWC~A_QTG_0*`F)K%h4$cG^Jk5^zFqxz~RxBMFs^q z(pcGG&ZN^d!%1Uz_V7z%*&^t3oO{xV?#PeWQ=cLx>V{isgU)Aw3=uW4VbV~s&j#A7 z+xtgBU9Go4*k!i^!8F&Ve5eaxborKVZ29>5w~Kq>qw&s0ec&K7AifsX)w^xohAt)9sXNkHKV!oEwT&TRqi7{eU8NFevIVo0aw$B&V5$Cm zNBR0=ZxtJYspi?2_WExbMF7H*c|(bP)^&MYE=bT#UPWcFJU}RUN&p{+{}IX;at_ zHr!R>*%kd?w$nJ4cd$R@lfUdT@>jYDcUdEY`vovTU-4dfP`xA#-O`%Izo=6#l;Nks zBEw1w=)pF0MJ7}o(#>25CsG=VPGv*i(DqAaQ3|G|!gqoF00f<&i8PBKuc&f$eZ<#3 zt!!zw7LkUBj1VD~xVV+tcy~sSRJVkiERJYQ${kzTGOp3X-sL_n{l~pXjPVN*f5qh| zg&lOuf!d+(I^NH7`U|>TPYaBJ^vcGeKLF3)wqj=;DG=gM>WF7$+GHC()#znfWY*Cd z&xYn{KHk)Fqa8H6kto)9GcX=6+*^P@&ZCXS^sZ@^AwlOmS1b9d%o4bsWyT&6ojxtG zkd?k?&1+%mS|RK!3IcmXyKPi{A+M#%dOO%V-I*JkbC%)Jr>*W?mnxuI?Gc-YFgtM<2%xxzLb=m$d)vb*=*Ya z+DsG*oS3X7aoe7tlm7s4aAMG7AT;!4NSK^Ep=wC@gE&Ruz4E;#qmrsE5yCQJ^VW5(t>>R`)|K0t&^ z;=hqFk>$`^$u->c(;x+zR(I{EkJRu*HwSejMo6oDpGbf%qztju6;FsiMN5r%a>WHQ z`iNoqUfrTxdd-T1c878e$0l~ZFa^j(9@57w+5rZuOYyXn6NP}nkPXEjAURzRDWD@e za@Gm(Za=mCfOReN8macx#yZKvzU5cGjS7Bbv*RQTpI++Ur9Bq2a8v#P2>AHN&?urn zjQdDrDv*Vya)A-63rF(GkF+zK+uBfbjZMB_|tRFs!ReqOyx+?mAO? zN~)98#4PGHZ(e@PI>xzi>EP7OYA z)qhKYTA4|kF_ghLh`8C8bH~PGiX1KrnWjoUVmr||)kbS+rpN(EwOI7f)+hb|z+dL@ zyuq(~U3^q8@wp)Fl>1oT)>TwAXCO_p!6?pK_f@gRrit9U=js)6@9gI44i>MDyg#?S zG;WqUkHenay|ReQ=HuuHDqC_eCZeUv>ZQxJzx(+Fc)8*MR+kKbwlBX@?tQ%F3d0py zL_v&qpayz$UMCr#_A6i1RDnMxz7V&D0UwNp00@g){bziR(Sl6d- z)na^7WW2OC(L-bDq+A-0b4o#171k3dpuVv32TW7jdY!%rKzVAvr?dc!0n#Dy*Vnm@ zOBePCGelzi07SYzDlnB!OI0@!$F*^V1Yx-lljO)Mn##pVkT+ij;ev_v1F-#^zUC&# zmf(!uBD%-yB0n(fI4dfkO%68&h5bB0rI^52@(csY4mRr{k5j&!F6$*5%l4^teKTeK z0~>m|7+Pr<;s5L*6!A2+xq~K7mT}afO>WSdrpBj~hOA@G4{>tLUOn59y*tgiRfE2j z&4_#<7I}su56J9%^O!$^d@_QI+qppBcvEThMtP&7erMT1!iYMA-d%_YTwV%3l{%L~ z;E+$({FZe>oVX6<2(PM@b(E-+LgV9XWkIIvZt*JujMSyUe=L)M7VAwWV6p(AJrMLMA)qJ~hUOP4NPK#(FLqDZJxr58al^j-xN0i}b8N)xF{ zS3ndCilX=p2p&D>JkL3v=X#&_`~T}BbCErJ*1Ffd)?PESv#0D=iefE52BYtu-d*<1 zMx@5F{(UzVl*EjgQKN3G7by?01gbaPDtc`)l$mrC5|C@+AnJ%FU*9jzpE#Qz$s9xk zdIyhFnZ7Sf`}|xL){&a&?MI?17K}`e@6wpSa*-qPZrmxV7GHq_Rg;C7DEWh6$1c1o znGX}85dRSAKN$&uU!Bwu^^qk5U+#~u=RJB}Dml*LgXMa;-{ad$UcN)LNUH~y+^A?K zS_hO*hA$QvoNACxeFqM!d|P{FX)5wGNW?9M_yalCT=*Bg7QY&~ znCTc_C)sBKuS3~k?ag~pGtmvXhQchf65*gL*uPeu+za3Jb5$84a+m{|$#km{&3 zmKYMGqp2Qa{>ud09Ece1u+hvkX9ul-Cx5;wwwPbmJD-&-1@7j>5V5aWXP@(WbOr-O z&m$Rn6RuOHqKxE9R3n7zV*KZOr}W*d(sv<8QWzNynL)WjNzUWnj3#Ng${B~!6EG^5 zrc}nW)WrBhqLjH9_R&b2$5WM0eR0yb5^N%TpAIPZ4jpB;-fP!dfK(Z6Z(E~!(%yBCDI!{Gnrd3bge&}ebJZKX$#QsxM3G$2F)Q`U_6=kYM{|z& zxInw`y0JvjlQs|=<#C_Ba10BD?VcLglQbCMJx2D{_j10nH%*mfrAoC0b`{rBa|J1J zByLqpT2if|DK7$zl4Kr;OMc}26*x_&crHNP)>PSyRJ=~OZb8jKX`G7r*0g}Wrlp-& zU1zi@0lwQL8>XgNs8e2FLB_VnQCMq=jS=!O$XlYdBaQQ@=?4AU|-0i zn{||1xu5R7@XcOWEdk|jT=~VRG66p;xT~9AdjL_Bc+2bsf97?_SsS>6kkXj?U5*yU zpxhh^!dtYRhM{4;p1P{pffto*dgF4&{kDgnMw1w1;YVDpFAt@YhB%&W4RmW1<`Phq zLyf#IcnY#(rs+Vb~fioxR}--FZE0DCzviHN=6% zgs`<*7m{hd)ce^jU{B)1>rAwmoK5+=Uah_Z=HSs3n_(=oDF?|Reuw(n4JH*?K@YfxW1RNIAVf1AS6eN8 zGq<+cK{%cS>wa3=H-qK8RpdUBx;$H(9Mh@u)p=dGki^in`er!JfrcjUp8vIp!bAM z&LR}bC#43_QzBM-?BSwi3y{Ey34T=6BhJ6Z ztW7VfQKmRD-Jf9_Y&=zTo?v}`l$ai>2IR5MLb`XC9(?CNPNuDe>}nN8N=_CNB(f*i z9&1UiR*(4x)=tEE#2kv}Qnwm_HdNxIGHEe6K8lPhE_K&Y)dzh%tOBL1^WPs!Dt(Bc zo}8(X5tLQCG8u5$%HI0GFtcASQC{pwRl(7@3bC^L&o3Q$wYxbNcK71N4~H^Z9`TE( zF>{?0H z*)_^bB*AWuU-3SC>B<$hvOzwZcdZZ$5rPm1@I%iSM5g$UU7O;<4FeUeH{NNbOS_C* zH(cSiiOXsJh|_4Q4Q2wc@rl~*H_F;d2|cn3l{K3T;wQ5)D!Zi`PgcFgyK<+ds>#C- zA?QdENm$xPNA)9EZgTI1y9JxMz!XI8RocF6(g%+mA~b|=KDz*+MsF@1@)4RIZBu50?owdFwUdznm93lvXQ>&D6Zwid7Q-A z>PJ^-b-7vHG4N}-zI#5}T{Yw+>(%pFYTcvA9LVsN-lS61RjZ}Flz4o_ zfUD4nQNf-BvzsBf?0suw6vLI=N>zoVL@7>~DfqmpxQ2|Ck*t)x!14Dwxw!+Z)djct z`5fI<2YWjE8)-jRMLSO3Bkt$Fp3bRK?djUf(LT}M>j$%BiM6x2^~LPlEeXHfobZPd z3B`ocI=Exa#hy6KI{}%XzA}N9$_^4Cyr6k0lma$E+}RQrqnXvj$jianC0K*86!#E9 zWk95Ot**T@uEuKDwAOv^GDRtgrVv7_z940SA7KZE=xQgUXn$Vk{Y*V87_Vh-Vf zh@@v0AN|>m9!r-|if|p((0!)*ZqzhA6R(JU^}`;IO6|Z}W2zpEc}24d=^1?*eQ?7G zM}oLyV0*Da9ZTW0)ES%jz!$0T9?WU$z|3UxUO_Wui3CO@nM$m2jdKbY5Kdb;>F$E^PRtP>O4xvto@aov*6!FT*Ps zCnF114K|smDR^tbwt}Jy*g26#8Wnnq>A88s9fNc14x+XTQa?9A=@C+OV=AIePie-U z`jO3h3p^v6!qjb~&U6uF^Z+K=M%$cy2-3OIliY(H(=Rj<`$LbWks*v!F5?}w1_`8> zMD?y0EaKv)=en^+;ij~qFWLu+p0n_numz|brw^W_WY^F+#^$akgcd8ylVP?o&r1|< z=*6m6Nk)(>O{fCK)2k<%ItrRe37jx9DM7hQIS3IE^K4QQSTUDorX=qo4%*3_Z{h-F zJrJHvSz8$0KAggzOI0pOg(`^_5AIDb1Sr`pOS8;s)$Phch6$H;^*j9m|e{|9S`oh&a7Qbv`VsbO5_dR3c|ZlbZY1k8^@OABBRqBswi{wIu#04 zSw_Osv=8m-53&oP8j&e{&6{2g+*XEcdey!-F9tKe?*Oqcmbgv`0B2eo$7eE5#g4qA0nJ$=))N5oz75R=ynyhaZ&(qb z%Zz&*zG6DrhX`<*zo3#TI1j~ron8*VrdQORq^i+Xg`U@Sk zHFmd#*M>#&OLkL)hbmlHFsQC2?cq^g2&BAQ)!+VJ)09Z{5_>hCIh?shIN%gQ*H^b^ z16f_^m%xE8g{yen?>K;avgwtEgiXDHC@UdX}vp=S@jYQ73jHoXAx{*t;uY@QzXoX4lTb2 z&!P_Zw@#-2lV43uy4|p*_G_J?bV+nG1~gv#UHQylHx1jrc$SGSC3*Op7e{`YGe7oN zV0xqODD!If%{yiPw{O%cPb37g6*_Rq{CBPf{CBTC{MW73zG1P8U6=}1i0DOot@qAd zVs+rP*~|9WbFOUep2fZ7`V`?aBBn3RYsTwN)Or5D>i-|cB+Qe8$QaYk5%cs6@lGhm zakn=$^@WId>E^XkX(_XNW2(i^)0rxChX%xVX`mEE@~fY{FAV{i(Y`DRM>v-vKw}YIq#~OO*Qd) z@agq6>mhJ(hbb84ro$JCr?y!Wl%H-qbe&F{v^+6Ro3U7{NG-H;^QtIM z72{bns!zP7XA<0v8Z=F_NrSfTb{~>v@gd_S<1SnVd!&d`D$zY3$qk;iRe&*%Y8Hx0 z)3@=BdeoxX^1wAsu=oj;+)~x*`HPb3#2k%a<}y*H^W7PjhTx$N5wS}v!75_A)+M+_ zs_Pit`_g4Jc-cT_IrRNeoAENT&TZ{+yrzDQWH!rYQMcIv$-zeTEcm3WA|558$6ykd zBRAmCsS+B@nFt%r;Z%wBsA?>ggiMJ_@@ZOfPPSF^kmYgqAxc_DT9i;?J_03<7B73R zsN-VwoI66EEF;=-5Ttv*0&I)vYss6fe7&5Z(Ed%g^Zoe8PVcRY3(}e5jV|@D4vxfK z<1yKI@w`UrW9nSv?iyG)IFpPz8=qYSs-#3uy;PPd$DXn#BJ~5CUrjVkw?%#++w!Mr zb14d1Qmu(F>1-aWk9bd-3bXk&oFLTW26Gd**#;32|xqGIDp-$Xn z-6#Ikm4G-UX-VCJiir{}5eZ&-QXvu|BVG7s(JkX8lGc2Prhk}$) zt;{C(r$y)eDQURlBA&`HJ^hr1PG-6Fz>UsdqB#p;9a%E}n)&Ua$nTOqnO%9-6pYdB zoZr4X-#7*u+br#CQ2zXoEQ}{qp#{&)#wbH+7IH41 zvz)ws(0QOasa+%em_&xd>l`bdufX$K8#?jPC!{^8r`JhHUOY-GTwHt2DN7U-;C=sj zb=@>Qu77g<(9II1i^EYOdy7gZX7+vY52r5ldT+bR5(!U3MELAR#5~5e$wul1qy#-SV>kF@4 z-%J&dQl4WBXV!TY zu)q2+baC+L39rQq5uaCVI_Xo@t#Y6tjS(%=zJ-Y@D)LsTxR;YsfQe~=2)AgXvtZ4w z(}$GZgL`>z1#_v^h-CC!$fmQVR}eF08qV?urB z^+~yL-h|j-o{So}iC)&DIlqsuQbD<>3D}w40Zd{HgAjXXBKWNSYC+l1!r&K%J=c{L zKR)a^^k`M6V)?hp70la?Um)C z;H^u;?jxrwjjrdrNF%`fE+Tl6MRi1;3E`rLRsZ+~-|TX7ti2zL(QG?xd$s6;yOT=D z8u#n3Kq%g$*=`B)Ww!5d>b`V3{=+NA2wM@@?IypNRln`ygd*W$P|TWdgmtD6)aB8= zq762Py2mk>+Y9BV9Nm`gw1!Y$8#~GVxs}Rb7ncKzG4pAaIJM+aOXkauKBXO~a4?`5 zksss{qCZ?q)g3UlH!V0v%B)q4Pg%Cbp=7p!I=#X@An>Hl$d}rwhdtPKvL?Y0b7Hg2 zP+_KzbR{o}G|qLLe{P?n|L4Ig%)N zDd$my$Z-n?F_m)gr8s-$R5s9a9=4{*#-pW&#NPQ&ecATM%!Qx*aP;BZGePVcLC9aXk!%N_`o(h<@YaH4Neje_;SUZ3ZU z+us(}q}g^HO>GbVc-2np7Z2gq&x(}@`U6pUdFUw zMk3ObUZJ=k5)gS)HO@NY_rnG#mIn4`R-Qh1fKa+@|G8K9jEU7DE8r{8 z`YCUN=c38jXAhmogmBnl4f+%|qqD?^M_zOiU~25qyjlA~n=}L_ZwsKj{5~3R-d$IA z%G7^fd3JEKcwtCXE_mM|$IQKlpC;kiuT|?jW#A{f&yvS)pzN33@E}p|s4s1Ag1W z7D?&naKa;%eyUt9=%i38dNi7P@5z=nrm#R)hVS~{rA)IKYblz^2LHH4C9CDBN!qvr z_(<93US2&efUrtf_4>U!FMtzkoBbqqb~%P9_WvbPD1hum2Pj9PJHUjdA!Hnq-u zEYWE%-Ia&b)hnClNE~G|ulewvrU>Rb9#96v5nT{_|NTlvVxvi^N?s~ zuZcLD*-%6Jkce9yGRi5+I-h%=W?1zYcDLR#2x84exnsJz%s#GaEgmBiV?CQEro)N{ z_VR?BE|rH6gM-6n+*L#F7tGJ;A=4lZ=-C>3(~5M*t~kcMyf?x+c&;z!jjons%Wl>N zgwok_9V$R{^t7w-C7Nnh0+^D?aT`mQa8ioSk-aSaj^kd$$a7_+&&A7m@oni;*X8sA z=ST9zZC|=5gZD5buH6WUlCkkn5MyI~Kt_7L^k{X6=d2vMWHg7if%K&-jR?EW(48Dx zag!Y36R%wO$sBb#>B6~}jgH$Ju@d*hJ&-Cr==vy>qs2$x5u+3v3DNG99U{7Xcm@x@ zhhS&Uk;Wg1=?$l;H#(gw)P<%!kXvfR)*d)2Q2)wFsEC@gc3XQknr4 zqN;VEvPttzk>{S*7;jnznaSY~RLrY$_EF2$P%B8-G~wUu>u~!#2|iFZ6&RW^EoA#v zRhgJYm+9H5(O=U~K!W#en->CCt=PiT4JxZJ!|k>82fZfwnx^LVx$JwBCB$y$6KaEj z*r_Diz8NLKA~j?;{PcZ$#sF>3T2cKuDE2|%ak3sYG0AMw39fW{p24)edM!dz%dYe9 z{KW>6I~VhY2QUVgO{7~D%2cG)AYn$r+%&KhVpxn2$tE}0SY9;CTKPRjNG8pr8ts-!18wLG8Ro8j+Gp&BXl zw5z}hLfM3S%h1wXB56XA8KT$g7Za$)RmvlJO4LY&ps zIri@fN_vk88@L}CIR?JqnTiAgK*3w90RS26T08cS7d7s9HC`0>?{^Chz^THZ3IIWg zNKk;rLx6Y%7}OC)Q2K);r}U^2*3|9~^#~x24;HV$9RR_i6kvfc7y!Yh!ol}>{6UgC zwwnhUuuudHtBLR;Y6@euBK0FC;+Gk+6`tQXV;5g@Sme@KR`{~wzE&X7z`;d_~z zu!R=;YnZ$fYkJ62JiQ7S2c+5?70kF6cPxMg;OKZ9S{70A$LRl|h76pAFd>A)lW$%d zT@tH?_QVUdfw2W?sG^^!rT#(wH^Muc$j0HQI8mB-Ms95eZ7UfFuj(v_1BC!c2>ONU z^&PQ4Dt@ma!+{O4={T6-Ft88{zUBkBSwjFT{?;E^(`Ew00DwCd%--!7qM@p2C}I=v zZ!Ek`ssNY?u{aLE520mODPY=NMEg!-#8 z88}%>ECS^Jqt<2_rS>=ToJnuFT5`yi7Y;cp1AzmGsr z;6~xl;34Hl1TaI8JK#I@-vxdwkm-S9s+%<+&W_|a4#3~%fcj?ZCj@S=68W27-@*S_ z*x~@^CV-Iyvk1by|8m*nfZ7rJc7y?~ z$EyM;HE{V$bx>f-iyg^r1ch&2{2lc_Ab`8}X1n|c2ykvd0ft2U2MF8l{Bwkz$p10| zc;eg4gq?W)Y8>$3kwF!WqWR|tI%?<)H5dx8`^OygHZuy1+HAz{%XS=MHU3UO$UuZ2 zbib9i6+NPh)55s{)to;F{HU^t@WX!n6GGsSK>Xbwh5xj?#o;FxK(TEOo2Eg8-}d@{ ziLiN4{mGYKM)+C%4;+5a@OMnMy!eU0{{+J9A4vX4af5+P_=1;A z$L0L%Q2advwSeyk2_JtX0G9tI!f(NR^YqsclJ9QI$C7?4$f7A{zw_BD{Cf^u{W}Qp znt(UhA}Unzxbwe)z+3hmL5({V07xT2CX~N|!2RY21W++!bCt&vB=g(y@4evd{u$w$ zV%cx%Ak@D{;Cb+82uVLx{sltqPr}>eV}DACe~<7}B)|I}d+hJWVe8!elh<3iKc&RK z=kPBO5C-4*{8c3X1;S6P{*nW4|4;H;Ui{Q2`AY=s%-30bS zqW&cU=hlD#Px4PVKOyx0v}to>4*<~HCUzC2hH+|uW_f1b|0MPkf*t~f!U5YVsz4w( zfbjjdKhrWe$g?#P!Xxk#0totjA?t^u0~OHF?V8O3;inM{*j604F8!wRUH4motQY)k zi1=O!iwB+fPH9sM*a818^Sc5W4hKX2(C>wAda>iwzqI=!2wA@xI3fpvY*nhlP~Z>{ z{6~a8JJPBN{TK&5RRH+zxGEY6a`@gBo3K28c4@)oM}!tt7(opNY;!=PKm=9v4+7th zlRQob>~`uUcM6~hGW?eAR=~F$0f5+l5eKD!A5CuwZ|aiiC;;)Q-vSOpBDkRd3;@Ro zzfs!!&x6`2`yTh&sfXxNtHGdJ^H2TcUjzXW zzj0#4zZuF#)?<-0|RPPK{Sb4F)0rYG~xIk%1u*U=x74 z-@9tR=*4g5(BMSnSUPa(aVU(0oD`gc9K1^f04FNv6a&DC%Ht|mtlT{UGMoF5Xq?Uz z_BDZ6(X=&LIXI>HA>>zJh;)g7N@i<3%4oU>oTaLK7Kv?!A676PxxVnu(Rsp!jqGeh zt3il1O6={I>Q~M>9Z%_d4o4}a#U_1tN!E`_tHpQesDe{;MtQ*KfUo8Zvgc{Gg#3cU>Vo-ml!+UKS_>&1EO9(p z%~NSm-A}7$#;4osbaRo;RsJJvgCCn)Ff5-E1WJxJ`&H0!$GJZ1JaUhHu`<|wRcf6B zd^lWf6l*_y9;(=K6m|FHLczg^W1T3=lqNa6TS9H<(v(-n8kq9n=wfEAZ(Yx8 zY|YZgygnAl5z&iK`2#}M${CH4qgmm-f6Igqoq_SPZ_1{m_$vDMbY)E{BLm?~TPEL@vM!w!b~xF4z4pdrayj!t~Vlzk2l6{sQp|L@nG$Hq<9V_IxH$ z!4$mVJU3NiF*eTyMTq(&nocojN zmSnnOe~w1?%G|HO3j=-o0=*=GECa~7NYz6m}+x)AnKV{I7O(1Pi0P} zw|^H3Z_;wt@}rJyp#tuyhRmnq6j?S2KIxkFtCvsvDA_)|6%SLj>)Efj8$LCgbfJq0 zATm%ew8X$T)mu6o`NB^S(ili7y`?=z}& zt7ysMnZe(FVll*G+JEKFm15%?gWs!CcdB}Ksvhr1)lvyyEF}e(=O)gEl=9#E*j*FJ zVxZLEcy#PuJqf8n3z)k5@I7X?-jXrWiLx=if73FQIQMzZw7tFzYpsiVoq5bnG;61- z^m|p&PF2bGs>&1Uo*SN}HWQChu?68iz2!GjMz`6YT#VW=`f`WrY2F=XA4;9Hk3BFf zF}oGCLjrsW$2QqB+E&{>9h=@kTZqCdfXrSm9Gd-JrHOvJ+ul3>^URD3eC)GPb-w5` zfg#}uvEUm1YnB#fbdp2V@0K>c0uejJ^TpUA=EqtxGAap)_8XL@`YCUdPB6W^(uDUA z6^}c3%ku&FDzon_bZjhL{Wi|Ly<(tWcI#T>j;n(#aBbtO%AUeA$BwBsMc#ztR1rPRsbaufWZ`N97?0z8n~qG!k4cSv^*>4e~TFKE!kBUa>9qq3DGR zNg@yz^iyc!o6|$}-XDZ-$-lDL%ikd8a0uO|k#+s?rQtZw6UpfhtCuQJQMZe?S$_rW z5(QI0H(5i^o_qVQ(4EpROr|MU{_5$niCZ?zQn1Os6{o;y&34(;P@f_-wJSj=-wP&T za7`P^>kn=p*7UKVoF9uZe0`fU^@;H7PJ++^UtJdh_Ag zg5D(4daql6`dPUpi~3WhQK$raQmTF()<7n`HSe7J_R~}2nZgCJ&RsTkmHKac)XcI^ zNMCzt+FmV{-gwrG{;s8e(!H$IpyLO`2i6~~)fk{{kcuT8>%}_)jc)IYhcal9jw8KsmaxzE;b-4wZsQ8 z@P8uNY034Jx;q&+fg7KQJJFo@7?$c4wAY4GB_v(UGwAqUkE)aW;YHNXyTKWqf{B7Y z{&?%#`ED_nU{7BocYJh}hVX<3NlQeF?K5fMm&Z=cIhQ_u=df$hdu?qJd>tPh*&0KB zLRrmNZ9e{Jt{GrxN@{95SaUdYI=#OYinoiW%wnYHxAHoq`bTUhA(V+Q26rV#@1$l@ z`$%-;Jb7SVG{loC5Kb0}Hsobc3a9&|PrbVT{CRiYuRvJPc?$izk4=}yM?ybcy?s!Y z-oH)ZHYxw?QmOY#msUURr+e5Dcc#%#5qQoY)>(8J`12;}ut~9DvEd%#nms&r0Qf>{ zs>fXKw059Ft(A20(!FQfkC@&f8m`=puMTK8c$ZxSJH{T4P&?K)unj)74JP)udP z^`>qse+6u}wJG;`nJOW8T=N&rc9aLVl$Y;bYRq5#&iVN^=T6IkPvDD0x8m^@o5iQE zRqttA?)1fWoAbxtIB(Q!x9?|7z6gealjEsNqyFYk^>1``LftmV7?dfTZk*ISy?m&A zo7H;HZ*o@Kavy%cYv0CO{=sg-w%y_1_^nHC^D7LY!>759B~W}u%VBsH{6}R5mtVhb zO8-K&ZD;k_p(c;1L^npY>UNvweE6uNYVmSvJ}#{)ymW@hFZAEAZ+{aX8Z)P|WDxW6 z(ol(yle%0NU*yG!a|HGWQZJ>ScUGvdYjs!1YNiXO6Q?NR$B){e?k0vcOHs95QG}W= zwdFxg?Dx{s&{7l;W&JW5o<(0|cafdmm#z-=D!x?oq0{i(Oi|yZyy)9S# zl*91Vw+)lma|2TLQ;j`u?9bw9hnvTdWr^u>H`DNhjpo^f3+SaG-K8c0Nhsye)1Bn_ z79cZMFEJmwR-9^=gbex-AEvgcnC9aEyfM?M7~-lbLlt&1TuPM!o7pA6T>!N)OTf>4 zq{$$8@D30t#_k2)aPJ~{*mYg=W`9TVTH@m4p`Bl!m5?pRE+5u zs5$PYeGHnm8VwS=7#`NGm1{inks{?0Yll}$#6eVy3OE4psa9b6Xb zF$)ht=VEhEbiLa0L8u(5{FAi&IC)bRdv-llu~ZGg7G*>>=XC~r5h6@8nNB$}W?8pI zkUR6LdT=C;TP=K&F&3v1g3~G>vs!MQgYOO3r!y77kq0JA#%lTK)ZChF?04xjN#aq~sk}>E_X+u@n>5XZW%(6&-{)_ql+ zyCkGwQ~)eR=JO5HYQ-YEOm(0S=f???T9Z=<{H~NK_87RELNyhTe=5;fI>zNd3<>E$ zu-CU-yC&;z?tA-yRsn1<#&@Q6Y#dVmWNrBd0~^Hu*}Ch?@i3!dzZ)lIo=mcw^Z&pu zT2(}y;PifA{56)v|J=EYbdK3iKZdrI>0F|Fe?Qg2vwLwQRktd0Bi;r+YCLre10{Pn zkZ9`Abn;e;XXveCkKobvNiC>oinj(!-7Xt9+fGZ$+?qIhXDK$W<4~OaOe&H()h?q+ zc(2uQJBGdX4?+iAzn~QgIhm|1!50S#llPTi1i1qrB4PP~cYXGUDmJgbnsdRz4Gbf` z0_oTa6O&xaYago?jl~z*H{_+m7w-%!CSXgttTJ_&ZOxYK(D>bV`L1Sy6ARjB)rA5_ z8rN~;`cHUXbEc#sp|$6h=i1^m$70(W#$N7Sy~!{AVLg1L5*fr&9ssd;Rm%>S3W9&S z>171V@&pE5KIAq-lEhiKuc|i)A7%4bY;fMFjs*pfUd4`B_W)R)?d9j$!V?2DlFV#z9Sa}@Q#Nqmgxv(R79&v zA(goHG{c}PXNsnbb)sXge@X2BuzSC2DCLcJI^7yI@?}dO&jZNOPCam{Z9W1m>-AGe zB$55Cu?5Ta2adUD(2)~P-MOL=VW%HMei*C50Txzhi^Wp4U(KFvNecN{lNOZ*I`$UrgPlF?wQHjApUxTj>6q>FAwf=6yK?y zt_|EN&eTA@sqJCCWu{Q1xQVcbwVtP%ElW!EU5v-;^r|t1B9iTD@lom{Y&oF4wfiHr zz0U5BxcU!tcANyQ>#J-Tk?{7bW=q}HyiMsSCA7t3M&`V9ud~iKacA;&SF)UFy#rk1 z=MxVxRu;YjHyG4gTEF`#gsZ+GM;4MP~bOTN;- zgA;5F+}M%QR>kNe7zkQINFN-7xtMb91}><|dh1t9=cLa))lqJehcRtw%|D1R}0lAU^(%@SZJdog-ao^&{E907_f4DN_5 zUL^tmk_|QLClKDdl^U!yoY=z$s9g_6D?R7jvd`*zFl48^%k`k|j$rLG;D{Ez>p|z8 zibnm~h}vty+pKnqAvd$4!_8nhTR6W{R}Q|_#xh0TeYFGA1y^BPo~1w9 z@3`c&@&mDIzv?xC9sgFfNAaV_f7}{f{on^(Cqbw5ACUXK2gG;mI+g^GtD9-o&=W&9 z6IjCaV1SQu@*{&6&PDwY459F-so*E!(#4h%bff|s&8Xcbs!)&!>RqVEoohwUt?K=i zsdDP|yIqIo}wFB3aDLMJFpmft-x_s`%x@`#)WnKrtrEF~59TaY2dvGXT+3BSLd}jkxJ} z%XN(rRl&i-1-4!A3;Kl6|+E<3G>yw+pw&O)6^Spo;xqGYUOtfY?R z9jLyex!;kq=!@7g6EoMmkjUX4WAm8Qin={w)}9A#T4v9;hje|6q>Ov}|Gmu*QoVZ> z4SS&dw8QohY~n`r<84~Uo#=MquMJ(?@1v-NIDh2Cp=4#_+`aGp-gha&99``))}6jg zy{E$Wk_EC&axrJjz@e^pqF)o2lGp&W%w)J6_5N--0_=07-!Wo2=;2Cq+jM4*zFg&Nv-?Md$zN zs0P;u#GNm+rQc*i^>L7m@-D|-8n+uu{W-!&(Tn7E&pB_7QjSuclne%lXV;$lw9sLi zp3M+vh@mq$90|#_OWDB?6nysuxePY=PG|2IzuR}_efc)~%m2oI2C%0tj0Ah=PzVVW zMh^DXH+$>bJ@pmqW~4{l6dJ2zey&R=KsG-r>q$U8sJ;F;2u?w!Kh{3-0)?-#!!S>V|-G7jgP zK{ZaKNW>6RVgEC3SjnY1-@vlW2CnQg^a+7+y{ zzgl;Q4bJV8?DTqTLV!9!;a**aq0*UVQq2LMfH%QS=jd!2NiVrsYWyX93SRG;N;7JQn zGQktc-l?-sNS$n@b>7WMxK5<3U;y)I(`36vF~$!Up$`RiGiXd66K*5Q=qovd+wS{0;I{j#`>$=uk4ppcBZ9aY+TPtWkF zlEwY{RM_nE159t}$#S0TvV~+%8RO*BpON#zk-U7!eL~}@31T|D`gG;+&4a~w8#HgiM0=zDw(=A$pEg$E~M>{T3J<(GMECA~7 zI3@1GzkjZP;*iIvILm3iBFLLP=IkDGjant^7(Kx~>=8_PPgl#B&smeals3Q-o;i^8nS>y=ud4GV;tH_!7qqv}`lZ}Ys@V#fCdcyL%8oXxZ zT8q$xfSe8!@}Rm#15uq}SvOOCUIM_U9qB$hh_Gz;tTA4%5vCq}QID0D8XPI0h%CP0 z9WHU8yKu=#GB;YdthSkS6oXtJhWy-qfW{`i0 zJTE3btmG4+nbta!-#6y+gFVYOPO(67%-}cEhsf^~E{h|5sZlHDO5tX4UW~=6&l{ti ztvv@i?xyh_1M7B6edWKZ5Bl4;L$iLw)WUnzhomRZxLT9n09 zD@5;>d3esg7gRdg2!JXv!*IZmK}pv=nvodvOdi}#PA|dhCb=t&IK&7N8ISLYeRfyz<`Uj`rBwl`b`M5;2I^WH|hV|cB3*ur}* zao+hj5J)ak2BeN%J_wCu;nD>{U&gVkut{XwUzNC&hr_=dmW()ng(haJWjUT^9LQNn zaHO(PQY?rh6=bg*4uq1dFw?X*XT&-V^%F2q~$mCvl@|UlAw+eOZuLDWKzCdL9lEx(>K%!^m&h*|8W(+``TwGZN1`a5G)Zc%z zmi7!|s8D>P*#il`mQ?i6evf<4(H~zJF5G(CPCh++;1O$qs8NZO{wU17Y1di$v~^Z7 zHwS764Gz28N11O`h(tGUyeKZ?&Fry4xhN_TYn}dCFX0tPJcbw!Ki3>ATjnKhw$Uk0 zQQgjxFRk|0=_btajg4F|TsGjb@Flx0wjA=As&rkwOF{cO++8_i-LO;cn!9-HXf5x) z3q_Pw()sQ3(>r5Vx*$r3B(eEaT$#rTP!m*LM&l#GE~jcE5$1=*&EY13RY#|^c57{b zz3k0DTt=2XL;{Oa8fmdSrJcYHA=Q~YdU|blR?-E-MVgar!DSqs1@$*-&Ql-7m-HpY z1@`y^PoKvC6~!IGfOrmtjX>O2VDtop{@(pQ{9xbsXoUzpa8$JH6yI^V%I790$?F2` z7VVmk$f)>#I$uwt^?)#2bm!2ddjJ#$2k%n&uYS>Q#QwRx2BGygjBzhwhAtTIFp3{) ztrTdvO3PYgyVp<#SQ?w!Z?hm{LBOW7s^sBNh*22su&N!$h37Mxg(XrC9tIZKpuK}5 zijce?*AD8u|HKe5$dNv9<@#shm0-o=TIUsO2NZgjE3`0fc}f#`L3{07B*SlC3k;?C z(8owpOX7t4%&1RCQq66s6Cm?|x0->R5hcS|Sk`-bJv&-Fuj29kgH(~Xk{(D1y9P*4 zt`|OL6f1-aT$Ks87@_jvO@w-zXGB4DZK=ul`iegb)tzllDNd1=4hdaJNB1W7kv_kx zeh_L{r;8D=iHG#fX^%a&Oce+aHTi&8rFo{YGHZPyJ6K-|>&s7P-ORxutz^U4yk04M z`Bf=h;EmuWdjWoGxteHJZa%g+@6}Mrsf4h2iqJ>W4L7O2oXHnCQPCpmuqQuq)hF_V@r zUjwopsq=t)}*TTLmydX$!pj2l^y@P5vPv`2Rv(0xN8s~t*f3K)3PUORS&P^#hc z)uG+|B+vP~BBWCAK+^`3dBaPQ_ZuWy28P}_X#bZnxcOR9C*D_6;Ji1t4v?e`H|C_@ ziEDrIw8^O`qHHjj#(RE4ja&idCG5OG`?>EqyHV6D;lcS=ZnF#qI)`ogV^(g>y{sxC zf#nnX$}Qt!qR!j4Vd~}XyOOfn+`|Y>KVz1yYkwf(aVqkP`M+M-Ani`#hu~rNm}Il` z4YUu76klvBru34(fY8guz6#{pO{62G!068i=xHQsR~Wtk485Qg;y;24PsGIIDbCQW zkrHN=>7?n)R1S*GleQdlnJ{1s=Iu}ZQTDIc{A-^7i(8h2-+aPWCFV0vH@a)K!CZpT zNOj)NpSnLk*<05{s^!@w-_wM~VQTarew=(u{gE$0Jy(d7L=c@RJ&JSuqGW}!a1-o@ zLUU-~Er%}amH%Wx$?F0d=p5Qa5d#31+xyC`l_P3DN4p1D;; zZb;QT_)K0)+ns?&jODH*ILQ+-o`LEDoQkzzF?iK*DLq}MvNf09{egx8>ENX-ic(bl zwXoZh^JxPqK2Q76?7Yo=6U~=3u6pqq5qwzSIM|U8w>;j8*^?hwieqU*{KnKe>B4%a zA5R41j0Z{<#?%oqS@?P}yOP9iP9iNqdMWi^Dayr2nN{JhJZRAO-ft|mE2Nfuw5UMMd_cVk*)U#Y~U zhJO04cBE2#DpVgno=SUA4kkr5qd~c%(1OaAjUs-U?dJG^@175!+eeRe{ZR>{uVGq8HAo zBeorwqfxp1bodspNz|Zavr@pW^0wQOc9TE@HXJwAQr^WP|H4~&0-JOV7&N2+Bq?Iq`NprX=@ffNxjp$Mgx@;xJbNb2VDLukRcn64y+UC z46w?Sv)adY6)u?riXmiv1IJ=0PJ*RlH9670X?~7T76IY`a)jB0T8hW(Je4{TG z`pSi+UOV(`4duHedBcWQDMo_l0Ks}GwTq~4CfE`Ya%J>3Om{}+!2IW+v6_F9Mq8V!Y}wBVDT~@Q|l~{9< zH@&AUd_gA};h$H8$F9-8V&7P2N(ifhS&ls1XJdKLHY=u7Lh}Ip zb#Ca(u0dnelwUD>9Uns%5wcCer@^-CJH8eMNCsaqC|!*ai3Lm0sQ?Yzy`%ve%?Z_S z6}HmSBJU<9&qMH7ec3PFF(5Ri0XK=P9LxLdr);Yq?yA zit-Xay4rJqNEq2d2%y0_Q#-k?3q6g(3Q-m>x}X@UDyzws3~=gV!x|0*4B zO3I#8^OuCq61U(Y0T4!>3<+0Dv2-6}q8<#3B-x?fXl&+ zrCp@@w?wAH2gc{yeasP3BZ^S{d{aPXjawzCYB?Q$^5b>tC*_FUK7QoJl14UJ_23nw zUVe8+7iFaXs6*yP7zIc8H#`8j+@0*Jf5*`8fsXUTL_!8hu64R|1wV>ga!25-#R0hl%I^{O4U2mA4s4WC* zfk5KGhginwmtY!Y*x<^DM6aq=enjX%(6HTPH**PXG2TvS>-e~*5@C#~-jeRrZ@{p|G*!5>XwTo@3KmtuN5n^2+M_%x;}|%?W2e6b_>PUhmV@FG zD-7!yoqM^$DjBi@V!c+bkIe!cPR1U*AQ}0Lwrx@9HPw9~ViiW@6+RuHwmW-eXGl44 zZ;qex*kWW>(QH+P3Wuu)mp8VAi=tuGbq6IUKCw%?phBeqW{`A`LSA%t_^xzxRd}}M zFM;%W+~3t8dmE`ewy+T~l0GYa@uZA@eMys=(y}a^k~LKa#KZMvti-)!w@bU z6uJw&X1Ez}_@Ztx3WhM07MH4*MSqrKN<$;m7D~~D#lsZXHX=^L_d5=u*KOApsM^C+ zaI(j|%+`2~fisWZh~s#S1o-sr@L%)_ysPbkB7&~}B86@Czv!#Dy0NfU^?uU6wO@IY z4t||EH=)SA_Nd5gi5Ujw5}+S>q{Q~j_F0iS%VP$kVu_S9W|ZuXw7W{Y0O~RJ zUkUHw7*iQR?;hIIq#%@N+J3wkZ|-=~d2=dNKJQufF!mOSsKIBFiUdcx1lRqwLM*fd zlurH8mv3GsxuO1uOut`JCiDR=j%x`|ei3pe4)lyRBuJTjCRLHg0J+$yu^}A)14J#((=I%Q6~T9#_M@0KcU^I)PJC%0!e| zD{K^eJj?Qlb5Xk+9avlVu6r%9SCi2gH?Sm92TI%Pp~zFGg?lm^Frh}-l=}_ONN{1U zlgV77oH|xB3Z4JKjc@vkjU34>7G9|;dJThdN{I}bq;_;a$QaE|&Hi}X`krd+{k)%m zv;!g7iE0|RI|ip*oRonp<-UgcP>XvG1o8sWr}jjk9vnm?K#F3d z>%x2gHFK1OUl7ekNycE$^~9%13H}MKbmmfrqS()nQ-=t5EW6_%bX5|JzMH=gWG=|; zp05S`d?oH2=1N<#d$HGF>y*a}VKcm70~0EJzSmIod=o0B^Ay>#{yxeHGmoEP+E~C) z`Y`n*0_ zGm1x-xS#f~!iaOfebst1bd*?BymRiTXjncemG;!jKTPk;EMnJbbq|^q*Ztny#L)zV z5k1kOq;%w!l}n$2ndmb{=BY$!uu?>W%ry;L*dD8xqOR+i43G<=bFzem{ZOyfB~322PgFt0eGx{Aq|(FyEY8P^xmp+X}ZMBcn07&>s!A zcgL_%bWRHU*cUS6St|{3({&rX@9J}>(1x+0fZ&Ct)$5kpXTbC7Q5m|fqFfb-zn4^R zU@AJdf-#}#gABENYKl?I^_nO>KyrLi)xOS%{bcdZMzTGhQ2n!(Zg%&K-MPZZ5|PZ3 z(plG+90b!KLLcBm3A%{a!j^=JwVej*=iKCKI>eNh8SfQEJpT1J`11AFi@dEL*WP|} zDc*gnF!vvp3)^hp_U2U~7_q&7r|;W6Znup-Z8i$svUAlg zuXb&tzZNd5qGb~Iu2cr#BD&d15slA>5 z<=d6pg}XOSWCpb`sg*Xa8hS2>d9FdbYdQ#J* z_=2H$x0v?=H4dMhuM~4-4;7VBY$WXR@H7G2Zs8s$614Z<(UTKl0=vsp<;q0?!K%YFf&t0Cm2oU0Fk(E{qxAgL5NI)3dR0ZX8SdaHtwvl&2!>;#E_`CcA&! z9Ela)%VaQXRr6@DXaaM)#|}M$W1L=eSJXKvNe}vld-}C)IVjH&68LoqJI%j6nYpu8 zc#bP%rtTv8$-@TtXdqW}81QvlI8?*o=&!MK!bDYS8rSX&=1xKzWrPqb+jv@ zJcA7gZp6KbIZ6m46iRvj2)OZ@9DBSdu)e#^Oi79*F4ynijd`{clJOD#wyF%b2j3@A zagb8kJ%(mW5mMlgQvv=E=l&h~dRaMnxT#W1>+{%*Vxl>pvF zrf2JBD4rqmH3MD69iG~+P|#FDU+J-BbPu_HPV3dQy{5)hrWbpj@cg7r_k$cdhLA|# zPt%AR_iNu_!+kDeCE!LysKxUT+91h^ zqxb4wC7mX;jD7ndv8v{<$h41Kq-6x%N|lRfKeC=3Dk?iAJcaUH>EtUQ!h+kf6hX#! zKs*G1{^K#KA%3;$FOvl4J!oA~{?;T^ZwfQH0Y!%NWt>s7MvGl?B&|N{x=5DwTR>HS z?|Rh%{W6bVZ0$nN3~oplI;JrZis^u>a9<}So=y!}OMZc7PHo&byCk4~AN16NGNj1V z`1_6bT{M@BV=ls!a03Un+w2F#*L0@}q;T}FD_ObTRVHRHF!OkgIP}?1sQZe&%?|zv zyv5p`t)hspZxv3riqF5ky$r@W(z5?2z&mCj{-@0G+s-n8i!U%kMdd?&J2c6%>@0Fw z{1R5}8%Hpwo~~=Zd4|wl8UM}Movt>jM+Uey_uvkw!DwGu;r}+Z{bEvd^um!#H{p2P4ZAr(!MUuYG5B$yS*4Mnj0h;vSOJavqO5@0I)Tt%xL-vb)&J)xg`fef15c@Ev(!bYEqPXDBbd{ z{FXsgm#gVfef5ES^TYq+l2LWE3fw<`H8!@V%u6n_35;$dJ*%ZuwTm2XOX4j~B& z*=w_Rh+K@cOuN0;ZNH#vpuD)Z@E&`5r$WZ{fg`I926GRWW~Vlec*x z&3MOLeRTWl2K>B~;thuv#F|0r-Hi)l5oA(~RNW4WZq(D~Fmqndo+et+ZB!4qIFj3B zGs$>ha0QOM*%=cGdcqVUQdBm?j@wSn(j|WNLW+NY5&5u@uoLnVs5H!~;L-g3ab4y@ zvB*o8`GR@&teLz7h@l9@Zx1*Aqe`3Jz;%bTZ|+$UD?D?GA->JxQ3z21`_j>XAQDJS zjGu4|jdr$NL8C{gFp+4!aSI7~jzt9YC8y``MsseOn=f(0q~`SGcA1tBopz#;5Ys&j zZdxo3mu16KP9r0V32ombN2h55E{Xg+6 zB}eP*w+YNp5M$7dl?kk)@e@ei#VYTfKOwtj^=0J6nmZwTpG$;Rsq-j-T(FhZ;EH*k zK4qWxXxAz3VUOc$czKZisigF4OCw=%4aULNouC0i5`A*G%JXMJ@5^>)@dK`38UPvy z>4yz6V;Ry*pT4~`6(tLRV4|zWx*J5C@x32HXc~6SE7hkB)UCPjm3M%A?lPIeuC@93Xc=yb zdqt;P=goRWCG!)XRVnR#npkFtOPLrLk$U)kT~1<@u=L`UW^9K~15wYBirWbS1~C<$^14!OPH z57)Tg7!#VEp#K=GyviyG09#I$rl-zb=PQj%rD8+?-(!qU&A|fK(iBsWj7qz_1~xCkA1^{zd$<*60}nGPyc|t5J3CB-mApMbx50 zp7SXo8wPAiG{C&n8Hhc$V29yny7K7N+T)QAi;IYEaoOsaM}6+ym#A(MK)egJ7`UUd$SRypue>^xp0RkY zvPsGl+*A_z@Ywc`X$5AMDntB%GIUe}8gA;C;nYhcG6OZ@rR zUQx>WJwJs}(z)#q*Cnp~E_koHDc#?E^!B?!aB36(GZB6de;^yjfaTr~zhBmHO0xd` z5ko{>q?M)uQh~s~M*mxxNW#q#dxzNPOAVApO`{eD+=Zz@6fq+Vdp938z79r~EWVy{ z5c9d6>uAq3cOnpur2>*~j&EZKTl zkV(&Q5w1Z&N*#9+CF_C=Ssx+8S!#;V>J^uW&ww~qo*!?3S@&>meY01UN&A$qz+22s zR5^Pdu~_+G{boJ6QNri4*utMcTlegX{mp18G$t_#PLaWaw$BeNpBo~N(j;F{UZst= z=zO|!MNsDQHP2#%_4ujrDbhy#<;rE3Nr-^WoIVjvXDW5jPk;v06tVFyWY$?8ijDLF zk#KM~rN>wxEEtHPy%hX4_h0^I-*5b5qJw2#k|H>Q20KA?*D^RX(dj{qaC(;2i=>|b zmSEY&E}5+~SY&%h^_;1nje3*tx_%AhSO}+s`(qES9g?2}Dr* z7T!;QD)8!gmG5hMb{cA!G=cTL`p&3NBPtQB5<&A10;4}^8uY$7$JM)WmP`8aRRE$m z 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 literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc b/nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc new file mode 100644 index 00000000000..1a162571446 --- /dev/null +++ b/nc_files/nurbs/G5/Curva_Mazatrol #1=1_G5.ngc @@ -0,0 +1,42 @@ +G21 G40 G54 G90 G94 +G0 Z5 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z5 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X0.000 Y100.000 + Z1 + G1 Z0 F100 +#1=1 +G5.2 X0.000 Y100.000 P1 F100 + X10.000 Y100.000 P1 + X10.000 Y70.665 P1 + X27.928 Y59.258 P1 + X34.093 Y56.935 P1 + X41.136 Y54.281 P1 + X63.112 Y51.556 P1 + X79.999 Y60.000 P1 + X99.998 Y40.002 P1 + X100.000 Y0.012 P1 +G5.3 + + +G0 X0.000 Y100.000 +G0 X10.000 Y100.000 +G0 X10.000 Y70.665 +G0 X27.928 Y59.258 +G0 X34.093 Y56.935 +G0 X41.136 Y54.281 +G0 X63.112 Y51.556 +G0 X79.999 Y60.000 +G0 X99.998 Y40.002 +G0 X100.000 Y0.012 + + +G1 X100.000 Y0.012 Z1 +G0 X100.000 Y0.012 Z5 + +M5 +M2 + diff --git a/nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc b/nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc new file mode 100644 index 00000000000..efe8d5c4ca3 --- /dev/null +++ b/nc_files/nurbs/G5/Curva_Stella #1=1_G5.ngc @@ -0,0 +1,55 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X63.562 Y106.120 + Z1 + G1 Z-1 F100 +#1=1 +G2.2 X63.562 Y106.120 P1 + X64.124 Y106.120 P1 + X65.998 Y103.621 P1 + X80.988 Y83.634 P1 + X110.968 Y83.634 P1 + X86.984 Y59.650 P1 + X92.980 Y35.666 P1 + X63.000 Y53.654 P1 + X33.020 Y35.666 P1 + X39.016 Y59.650 P1 + X15.032 Y83.634 P1 + X45.012 Y83.634 P1 + X60.002 Y103.621 P1 + X61.876 Y106.120 P1 + X63.000 Y106.120 P1 + X63.562 Y106.120 P1 +;K14 +;K14 +;K14 +G5.3 + +G0 X63.562 Y106.120 +G0 X64.124 Y106.120 +G0 X65.998 Y103.621 +G0 X80.988 Y83.634 +G0 X110.968 Y83.634 +G0 X86.984 Y59.650 +G0 X92.980 Y35.666 +G0 X63.000 Y53.654 +G0 X33.020 Y35.666 +G0 X39.016 Y59.650 +G0 X15.032 Y83.634 +G0 X45.012 Y83.634 +G0 X60.002 Y103.621 +G0 X61.876 Y106.120 +G0 X63.000 Y106.120 +G0 X63.562 Y106.120 + + +G1 X63.562 Y106.120 Z1 +G0 X63.562 Y106.120 Z50 +M5 +M2 + diff --git a/nc_files/nurbs/G5/butterfly-xy.ngc b/nc_files/nurbs/G5/butterfly-xy.ngc new file mode 100644 index 00000000000..261a608b05d --- /dev/null +++ b/nc_files/nurbs/G5/butterfly-xy.ngc @@ -0,0 +1,105 @@ + +G17 (Plane XY) + +G21 +G0 Z10 +G0 X0 Y0 +;M3 S10000 +G0 Z1 +G1 Z0 F100 +F300 + +G5.2 X3.53 Y-1.50 P2 + X5.33 Y-11.01 P1 + X3.52 Y-24.00 P1 + X0.0 Y-29.56 P1 +G5.3 + +G5.2 X-3.52 Y-24.00 P1 + X-5.33 Y-11.01 P1 + X-3.53 Y-1.50 P2 + X0.0 Y0.0 P1 +G5.3 + +G0 Z10 +G0 X-4.30 Y-5.00 +G0 Z1 +G1 Z0 F100 +F300 + +G5.2 X-10.78 Y2.56 P1 + X-24.12 Y7.57 P1 + X-35.39 Y-1.18 P1 + X-33.00 Y-9.76 P1 + X-25.07 Y-10.98 P1 + X-19.41 Y-18.53 P1 + X-22.02 Y-25.27 P1 + X-18.77 Y-30.08 P1 + X-12.70 Y-28.16 P2 + X-8.25 Y-23.28 P1 + X-5.65 Y-22.06 P2 + X-2.94 Y-23.50 P1 +G5.3 + +G0 Z10 +G0 X2.94 Y-23.50 +G0 Z1 +G1 Z0 F100 +F300 + +G5.2 X5.65 Y-22.06 P2 + X8.25 Y-23.28 P1 + X12.70 Y-28.16 P2 + X18.77 Y-30.08 P1 + X22.02 Y-25.27 P1 + X19.41 Y-18.53 P1 + X25.07 Y-10.98 P1 + X33.00 Y-9.76 P1 + X35.39 Y-1.18 P1 + X24.12 Y7.57 P1 + X10.78 Y2.56 P1 + X4.30 Y-5.00 P1 +G5.3 + +G0 Z10 +G0 X2 Y-1 +G0 Z1 +G1 Z0 F100 +F300 + +G5.2 X3.00 Y3.00 P1 L3 + X4.33 Y8.35 P1 + X5.00 Y10.50 P2 + X8.44 Y17.58 P1 + X15.32 Y16.03 P1 + X14.05 Y9.75 P1 + X10.03 Y9.40 P1 + X7.87 Y12.30 P1 + X10.56 Y15.00 P1 + X12.45 Y14.00 P1 + X12.03 Y13.00 P1 +G5.3 + +G0 Z10 +G0 X-12.03 Y13.00 +G0 Z1 +G1 Z0 F100 +F300 + +G5.2 X-12.45 Y14.00 P1 + X-10.56 Y15.00 P1 + X-7.87 Y12.30 P1 + X-10.03 Y9.40 P1 + X-14.05 Y9.75 P1 + X-15.32 Y16.03 P1 + X-8.44 Y17.58 P1 + X-5.00 Y10.50 P2 + X-4.33 Y8.35 P1 + X-3.00 Y3.00 P1 + X-2.00 Y-1.00 P1 +G5.3 + +G0 X0 Y0 Z10 +M5 +M2 +; diff --git a/nc_files/nurbs/G5/butterfly-yz.ngc b/nc_files/nurbs/G5/butterfly-yz.ngc new file mode 100644 index 00000000000..bb5d6060d88 --- /dev/null +++ b/nc_files/nurbs/G5/butterfly-yz.ngc @@ -0,0 +1,106 @@ + +G19 (Plane YZ) + +G21 +G0 X10 +G0 Y0 Z0 +;M3 S10000 +G0 X2 +G1 X0 F100 +F300 + +G5.2 Y3.53 Z-1.50 P2 + Y5.33 Z-11.01 P1 + Y3.52 Z-24.00 P1 + Y0.0 Z-29.56 P1 +G5.3 + +G5.2 Y-3.52 Z-24.00 P1 + Y-5.33 Z-11.01 P1 + Y-3.53 Z-1.50 P2 + Y0.0 Z0.0 P1 +G5.3 + +G0 X10 +G0 Y-4.30 Z-5.00 +G0 X2 +G1 X0 F100 +F600 + +G5.2 Y-10.78 Z2.56 P1 + Y-24.12 Z7.57 P1 + Y-35.39 Z-1.18 P1 + Y-33.00 Z-9.76 P1 + Y-25.07 Z-10.98 P1 + Y-19.41 Z-18.53 P1 + Y-22.02 Z-25.27 P1 + Y-18.77 Z-30.08 P1 + Y-12.70 Z-28.16 P2 + Y-8.25 Z-23.28 P1 + Y-5.65 Z-22.06 P2 + Y-2.94 Z-23.50 P1 +G5.3 + +G0 X10 +G0 Y2.94 Z-23.50 +G0 X2 +G1 X0 F100 +F600 + +G5.2 Y5.65 Z-22.06 P2 + Y8.25 Z-23.28 P1 + Y12.70 Z-28.16 P2 + Y18.77 Z-30.08 P1 + Y22.02 Z-25.27 P1 + Y19.41 Z-18.53 P1 + Y25.07 Z-10.98 P1 + Y33.00 Z-9.76 P1 + Y35.39 Z-1.18 P1 + Y24.12 Z7.57 P1 + Y10.78 Z2.56 P1 + Y4.30 Z-5.00 P1 +G5.3 + +G0 Z10 +G0 Y2 Z-1 +G0 X2 +G1 X0 F100 +F600 + +G5.2 Y3.00 Z3.00 P1 L3 + Y4.33 Z8.35 P1 + Y5.00 Z10.50 P2 + Y8.44 Z17.58 P1 + Y15.32 Z16.03 P1 + Y14.05 Z9.75 P1 + Y10.03 Z9.40 P1 + Y7.87 Z12.30 P1 + Y10.56 Z15.00 P1 + Y12.45 Z14.00 P1 + Y12.03 Z13.00 P1 +G5.3 + +G0 X10 +G0 Y-12.03 Z13.00 +G0 X2 +G1 X0 F100 +F600 + +G5.2 Y-12.45 Z14.00 P1 + Y-10.56 Z15.00 P1 + Y-7.87 Z12.30 P1 + Y-10.03 Z9.40 P1 + Y-14.05 Z9.75 P1 + Y-15.32 Z16.03 P1 + Y-8.44 Z17.58 P1 + Y-5.00 Z10.50 P2 + Y-4.33 Z8.35 P1 + Y-3.00 Z3.00 P1 + Y-2.00 Z-1.00 P1 +G5.3 + +G0 X10 Y0 Z0 +M5 +M2 + + diff --git a/nc_files/nurbs/G5/butterfly-zx.ngc b/nc_files/nurbs/G5/butterfly-zx.ngc new file mode 100644 index 00000000000..d1c0bbb4f9d --- /dev/null +++ b/nc_files/nurbs/G5/butterfly-zx.ngc @@ -0,0 +1,106 @@ + +G18 (PlZne XZ) + +G21 +G0 Y10 +G0 Z0 X0 +M3 S10000 +G0 Y2 +G1 Y0 F100 +F300 + +G5.2 Z3.53 X-1.50 P2 + Z5.33 X-11.01 P1 + Z3.52 X-24.00 P1 + Z0.0 X-29.56 P1 +G5.3 + +G5.2 Z-3.52 X-24.00 P1 + Z-5.33 X-11.01 P1 + Z-3.53 X-1.50 P2 + Z0.0 X0.0 P1 +G5.3 + +G0 Y10 +G0 Z-4.30 X-5.00 +G0 Y2 +G1 Y0 F100 +F600 + +G5.2 Z-10.78 X2.56 P1 + Z-24.12 X7.57 P1 + Z-35.39 X-1.18 P1 + Z-33.00 X-9.76 P1 + Z-25.07 X-10.98 P1 + Z-19.41 X-18.53 P1 + Z-22.02 X-25.27 P1 + Z-18.77 X-30.08 P1 + Z-12.70 X-28.16 P2 + Z-8.25 X-23.28 P1 + Z-5.65 X-22.06 P2 + Z-2.94 X-23.50 P1 +G5.3 + +G0 Y10 +G0 Z2.94 X-23.50 +G0 Y2 +G1 Y0 F100 +F600 + +G5.2 Z5.65 X-22.06 P2 + Z8.25 X-23.28 P1 + Z12.70 X-28.16 P2 + Z18.77 X-30.08 P1 + Z22.02 X-25.27 P1 + Z19.41 X-18.53 P1 + Z25.07 X-10.98 P1 + Z33.00 X-9.76 P1 + Z35.39 X-1.18 P1 + Z24.12 X7.57 P1 + Z10.78 X2.56 P1 + Z4.30 X-5.00 P1 +G5.3 + +G0 Y10 +G0 Z2 X-1 +G0 Y2 +G1 Y0 F100 +F600 + +G5.2 Z3.00 X3.00 P1 L3 + Z4.33 X8.35 P1 + Z5.00 X10.50 P2 + Z8.44 X17.58 P1 + Z15.32 X16.03 P1 + Z14.05 X9.75 P1 + Z10.03 X9.40 P1 + Z7.87 X12.30 P1 + Z10.56 X15.00 P1 + Z12.45 X14.00 P1 + Z12.03 X13.00 P1 +G5.3 + +G0 Y10 +G0 Z-12.03 X13.00 +G0 Y2 +G1 Y0 F100 +F600 + +G5.2 Z-12.45 X14.00 P1 + Z-10.56 X15.00 P1 + Z-7.87 X12.30 P1 + Z-10.03 X9.40 P1 + Z-14.05 X9.75 P1 + Z-15.32 X16.03 P1 + Z-8.44 X17.58 P1 + Z-5.00 X10.50 P2 + Z-4.33 X8.35 P1 + Z-3.00 X3.00 P1 + Z-2.00 X-1.00 P1 +G5.3 + +G0 Z0 Y10 X0 +M5 +M2 + + diff --git a/nc_files/nurbs/G5/leto-xy.ngc b/nc_files/nurbs/G5/leto-xy.ngc new file mode 100644 index 00000000000..de76c46be88 --- /dev/null +++ b/nc_files/nurbs/G5/leto-xy.ngc @@ -0,0 +1,33 @@ + +; M. Piacentini, E. L. Valvo, M. Leto +; CAD/CAM Integration for NURBS Path Interpolation on PC Based Real-Time Numerical Control +; Figure 2 +; changed by Joachim Franek to use G5.2 + +G17 ; Plane XY + +G21 G40 G54 G90 G94 +G0 Z1 +G0 X2 Y-1 +G1 Z-1 F100 + +G5.2 P1 L3 + X3.00 Y3.00 P1 + X4.33 Y8.35 P1 + X5.00 Y10.50 P2 + X8.44 Y17.58 P1 + X15.32 Y16.03 P1 + X14.05 Y9.75 P1 + X10.03 Y9.40 P1 + X7.87 Y12.30 P1 + X10.56 Y15.00 P1 + X12.45 Y14.00 P1 + X12.03 Y13.00 P1 +G5.3 + +G1 Z1 +G0 X-12 Y13.00 +M2 + + + diff --git a/nc_files/nurbs/G5/nurbs-xy.ngc b/nc_files/nurbs/G5/nurbs-xy.ngc new file mode 100644 index 00000000000..0c253ddfa4c --- /dev/null +++ b/nc_files/nurbs/G5/nurbs-xy.ngc @@ -0,0 +1,28 @@ + +; from +; linuxcnc.org/docs/html/gcode/g-code.html#gcode::g5.2-g5.3 +; + +G17 ; Plane XY + +G0 X0 Y0 (rapid move) +F100 (set feed rate) + +G5.2 P1 L3 + X0 Y1 P1 + X2 Y2 P1 + X2 Y0 P1 + X0 Y0 P2 +G5.3 + +; The rapid moves show the same path without the NURBS Block +G0 X0 Y1 + X2 Y2 + X2 Y0 + X0 Y0 + +G0 X0 Y0 (rapid move) +M2 + + + diff --git a/nc_files/nurbs/G5/nurbs-yz.ngc b/nc_files/nurbs/G5/nurbs-yz.ngc new file mode 100644 index 00000000000..3323fe26331 --- /dev/null +++ b/nc_files/nurbs/G5/nurbs-yz.ngc @@ -0,0 +1,28 @@ + +; from +; linuxcnc.org/docs/html/gcode/g-code.html#gcode::g5.2-g5.3 +; + +G19 ; Plane YZ + +G0 Y0 Z0 (rapid move) +F100 (set feed rate) + +G5.2 P1 L3 + Y0 Z1 P1 + Y2 Z2 P1 + Y2 Z0 P1 + Y0 Z0 P2 +G5.3 + +; The rapid moves show the same path without the NURBS Block +G0 Y0 Z1 + Y2 Z2 + Y2 Z0 + Y0 Z0 + +G0 Y0 Z0 (rapid move) +M2 + + + diff --git a/nc_files/nurbs/G5/nurbs-zx.ngc b/nc_files/nurbs/G5/nurbs-zx.ngc new file mode 100644 index 00000000000..cc6b8d28903 --- /dev/null +++ b/nc_files/nurbs/G5/nurbs-zx.ngc @@ -0,0 +1,28 @@ + +; from +; linuxcnc.org/docs/html/gcode/g-code.html#gcode::g5.2-g5.3 +; + +G18 ; Plane ZX + +G0 Z0 X0 (rapid move) +F100 (set feed rate) + +G5.2 P1 L3 + Z0 X1 P1 + Z2 X2 P1 + Z2 X0 P1 + Z0 x0 P2 +G5.3 + +; The rapid moves show the same path without the NURBS Block +G0 Z0 X1 + Z2 X2 + Z2 X0 + Z0 X0 + +G0 Z0 X0 (rapid move) +M2 + + + diff --git a/nc_files/nurbs/G5/trident-xy-yz-zx.ngc b/nc_files/nurbs/G5/trident-xy-yz-zx.ngc new file mode 100644 index 00000000000..3609f6f668f --- /dev/null +++ b/nc_files/nurbs/G5/trident-xy-yz-zx.ngc @@ -0,0 +1,77 @@ + +; Lo Valvo, page 178 +; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 + +G0 X0 Y0 Z0 +G21 G40 G54 G90 G94 +;G96 S200 M3 + +;----------------------------------------------- +G17 ; Plane XY + +G0 X10 Y0 +G0 Z1 + +G1 Z0 F300 + +G5.2 P1 L4 + X10 Y0 P1 + X20 Y20 P1 + X12 Y8 P1 + X10 Y20 P1 + X8 Y8 P1 + X0 Y20 P1 + X10 Y0 P1 +G5.3 + +G0 Z1 +G0 X10 Y0 +G0 X0 Y0 Z0 + +;----------------------------------------------- +G19 (Plane YZ) + +G0 Y10 Z0 +G0 X1 + +G1 X0 + +G5.2 P1 L4 + Y10 Z0 P1 + Y20 Z20 P1 + Y12 Z8 P1 + Y10 Z20 P1 + Y8 Z8 P1 + Y0 Z20 P1 + Y10 Z0 P1 +G5.3 + +G0 X1 +G0 Y0 Z0 + +;----------------------------------------------- +G18 ; Plane ZX + +G0 Z10 X0 +G0 Y1 + +G1 Y0 + +G5.2 P1 L4 + Z10 X0 P1 + Z20 X20 P1 + Z12 X8 P1 + Z10 X20 P1 + Z8 X8 P1 + Z0 X20 P1 + Z10 X0 P1 +G5.3 + +G0 Y1 +G0 Z0 X0 + + +M2 + + + diff --git a/nc_files/nurbs/G5/trident-xy.ngc b/nc_files/nurbs/G5/trident-xy.ngc new file mode 100644 index 00000000000..557b32cc7f1 --- /dev/null +++ b/nc_files/nurbs/G5/trident-xy.ngc @@ -0,0 +1,33 @@ + +; Lo Valvo, page 178 +; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 + +G17 ; Plane XY + +G21 G40 G54 G90 G94 +G0 X0 Y0 Z1 + +;G96 S200 M3 + +G0 X10 Y0 +;G0 Z1 + +G1 Z0 F100 + +G5.2 P1 L4 + X10 Y0 P1 + X20 Y20 P1 + X12 Y8 P1 + X10 Y20 P1 + X8 Y8 P1 + X0 Y20 P1 + X10 Y0 P1 +G5.3 + +G0 Z1 +G0 X0 Y0 + +M2 + + + diff --git a/nc_files/nurbs/G5/trident-yz.ngc b/nc_files/nurbs/G5/trident-yz.ngc new file mode 100644 index 00000000000..aed71d47bdc --- /dev/null +++ b/nc_files/nurbs/G5/trident-yz.ngc @@ -0,0 +1,33 @@ + +; Lo Valvo, page 178 +; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 + +G19 (Plane YZ) + +G21 G40 G54 G90 G94 +G0 Y0 Z0 X1 + +;G96 S200 M3 + +G0 Y10 Z0 +;G0 X1 + +G1 X0 F100 + +G5.2 P1 L4 + Y10 Z0 P1 + Y20 Z20 P1 + Y12 Z8 P1 + Y10 Z20 P1 + Y8 Z8 P1 + Y0 Z20 P1 + Y10 Z0 P1 +G5.3 + +G0 X1 +G0 Y0 Z0 + +M2 + + + diff --git a/nc_files/nurbs/G5/trident-zx.ngc b/nc_files/nurbs/G5/trident-zx.ngc new file mode 100644 index 00000000000..d5dbeabcbb6 --- /dev/null +++ b/nc_files/nurbs/G5/trident-zx.ngc @@ -0,0 +1,33 @@ + +; Lo Valvo, page 178 +; Sai Ashish Kanna, OPTIMIZED NURBS CURVE BASED G-CODE PART PROGRAM FOR CNC SYSTEMS, 2018, page 54 + +G18 ; Plane ZX + +G21 G40 G54 G90 G94 +G0 Z0 X0 Y1 + +;G96 S200 M3 + +G0 Z10 X0 +;G0 Y1 + +G1 Y0 F100 + +G5.2 P1 L4 + Z10 X0 P1 + Z20 X20 P1 + Z12 X8 P1 + Z10 X20 P1 + Z8 X8 P1 + Z0 X20 P1 + Z10 X0 P1 +G5.3 + +G0 Y1 +G0 Z0 X0 + +M2 + + + diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg b/nc_files/nurbs/G6/Curva_Chitarra #1=1-02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30110518a540da117264b9c2cb6cc3026b7b0789 GIT binary patch literal 135001 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�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 OAxEQD{kG2U$NvGidJvTW literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc b/nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc new file mode 100644 index 00000000000..ed65f781103 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Chitarra #1=1.ngc @@ -0,0 +1,47 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X59.171 Y23.693 + Z1 + G1 Z-1 F500 +F290 +G6.2 X59.171 Y23.693 R46.5833333333333 K0 P5 Q1 + X59.144 Y23.725 R59.1666666666667 K0 + X59.120 Y23.838 R76.5 K0 + X59.514 Y33.682 R6 K0 + X51.214 Y35.690 R1 K0 + X47.800 Y34.150 R1 K1 + X43.985 Y22.570 R0.75 K2 + X34.346 Y33.012 R1 K3 + X48.470 Y50.884 R1.2 K4 + X38.898 Y62.999 R1 K5 + X26.247 Y81.942 R0.75 K6 + X40.705 Y108.180 R0.75 K7 + X67.207 Y106.884 R1 K8 + X67.338 Y106.742 R1 K9 + X100.679 Y99.077 R0.9 K10 + X87.225 Y56.038 R1 K11 + X75.511 Y56.506 R0.75 K12 + X86.154 Y29.264 R1 K13 + X89.032 Y17.416 R0.2 K14 + X80.732 Y19.425 R1 K15 + X77.854 Y31.272 R1 K16 + X71.027 Y28.193 R10 K17 + X69.152 Y23.240 R100 K18 + X67.483 Y23.307 R1.00247499999999 K19 + X64.969 Y23.407 R1.0000000825 K20 + X59.219 Y23.637 R33.9950502475 K21 + X59.171 Y23.693 R46.5782997650487 K22 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G1 X59.171 Y23.693 Z1 +G0 X59.171 Y23.693 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc b/nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc new file mode 100644 index 00000000000..675b18e3072 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Chitarra #1=2.ngc @@ -0,0 +1,48 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X59.171 Y23.693 + Z1 + G1 Z-1 F500 + +F290 +G6.2 X59.171 Y23.693 R46.5833333333333 K0 P5 Q2 + X59.144 Y23.725 R59.1666666666667 K0 + X59.120 Y23.838 R76.5 K0 + X59.514 Y33.682 R6 K0 + X51.214 Y35.690 R1 K0 + X47.800 Y34.150 R1 K1 + X43.985 Y22.570 R0.75 K2 + X34.346 Y33.012 R1 K3 + X48.470 Y50.884 R1.2 K4 + X38.898 Y62.999 R1 K5 + X26.247 Y81.942 R0.75 K6 + X40.705 Y108.180 R0.75 K7 + X67.207 Y106.884 R1 K8 + X67.338 Y106.742 R1 K9 + X100.679 Y99.077 R0.9 K10 + X87.225 Y56.038 R1 K11 + X75.511 Y56.506 R0.75 K12 + X86.154 Y29.264 R1 K13 + X89.032 Y17.416 R0.2 K14 + X80.732 Y19.425 R1 K15 + X77.854 Y31.272 R1 K16 + X71.027 Y28.193 R10 K17 + X69.152 Y23.240 R100 K18 + X67.483 Y23.307 R1.00247499999999 K19 + X64.969 Y23.407 R1.0000000825 K20 + X59.219 Y23.637 R33.9950502475 K21 + X59.171 Y23.693 R46.5782997650487 K22 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G1 X59.171 Y23.693 Z1 +G0 X59.171 Y23.693 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc b/nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc new file mode 100644 index 00000000000..23381d22513 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Chitarra #1=3.ngc @@ -0,0 +1,48 @@ +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 +;M6 T0 +G96 M3 S200 +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) +G0 X59.171 Y23.693 +G0 Z1 +G1 Z-1 F500 + +F290 +G6.2 X59.171 Y23.693 R46.5833333333333 K0 P5 Q3 + X59.144 Y23.725 R59.1666666666667 K0 + X59.120 Y23.838 R76.5 K0 + X59.514 Y33.682 R6 K0 + X51.214 Y35.690 R1 K0 + X47.800 Y34.150 R1 K1 + X43.985 Y22.570 R0.75 K2 + X34.346 Y33.012 R1 K3 + X48.470 Y50.884 R1.2 K4 + X38.898 Y62.999 R1 K5 + X26.247 Y81.942 R0.75 K6 + X40.705 Y108.180 R0.75 K7 + X67.207 Y106.884 R1 K8 + X67.338 Y106.742 R1 K9 + X100.679 Y99.077 R0.9 K10 + X87.225 Y56.038 R1 K11 + X75.511 Y56.506 R0.75 K12 + X86.154 Y29.264 R1 K13 + X89.032 Y17.416 R0.2 K14 + X80.732 Y19.425 R1 K15 + X77.854 Y31.272 R1 K16 + X71.027 Y28.193 R10 K17 + X69.152 Y23.240 R100 K18 + X67.483 Y23.307 R1.00247499999999 K19 + X64.969 Y23.407 R1.0000000825 K20 + X59.219 Y23.637 R33.9950502475 K21 + X59.171 Y23.693 R46.5782997650487 K22 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G6.2 K23 +G1 X59.171 Y23.693 Z1 +G0 X59.171 Y23.693 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Delfino #1=1.jpg b/nc_files/nurbs/G6/Curva_Delfino #1=1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5dc638a9ee87cca707ac9d5707908af4879feee GIT binary patch literal 135488 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

    H%(K`oL_Os z(j5UmVw^O7Q537yKiU9K)#wm_7f1B)c$IGY%B-AjsCjC8mZxQTP(Yt&T&<9{&W1&= z8d^4mbGZk9jnFYjRn@paK@!;J~sqElw; zhpe2lmN6@=AT!Q zSy^GNv`$MII0GzyCa-oKsmzV}^@;;sqEfK5no1Cq` zI?L!WKU)3@LRzd75wUBN7tc9GE6RhwcY*o&N4w;rQs+wqBGKat9LB_(hi3Gz#xDyYmAm7yxLjOEcU zflX(kB+YY#K=;hT@`{<-;QYW=osDN^KVbyrI^RtauCRlF|=$XVu^2;!dy0(l6Qx!)SiJ>$<*PO5V$!l9tDgrIZ zZQQKnC3DR1k^qnw&Gs;Dqj;L=3@^I+ZVVDYY9MfNc)tH3ElogzrGI2LP{Z4^TNC4lTba9`VpE?&*)u$U8h5rg%YDQoGLY&Lt%`kB%yPq`-5Ej<8U1fE z^~1O#9)m7YneSmsvQ0PwsSDj$7Wy15UE#cUI$BUAU8JZodR5Jl*Bs`v8+!4Xj@xk6 z1f?1nBgJ0dSO;ea)U~cuqrVW=sEs~ANNYeeE6qx^xen_2%FFkw_ZyxFAX7XvN9CjZ z?D5lJg~hYUwz4}JQu3*&(~Vm+;$r8W9Z3Qj@Y!2-l}Ks9FqDb)iATm9!=6X-^Vmj> z46k__@tD+Pq;c}b_I%|Fm>bp+vuW~0jg;T&`eSWg<;3RX5+zfy%c)pLSEtnX24aia z5=cD+<=2tWvCh(FHn;scec2o{08pU+p!uO@$1BTv;%n{Cic zF(#Fm&*DM0r@0iG5#J`R;CsW>3p-+#r!;3C1h$k;6ub7J>=;uNHIo!XH)qjKh{|a^Np?kr}EgyV>cwXcp|F_bXVr1>}0}tXQ z7G^x3T&dss0esYW06YSGLPBB!JizY(j|RXltfXx@b$CSW5!553Wsy*@&Zb!J{@XHu z1n&x3f&G!)00B9nvK1Fstm@O{RI5~LYH%~l3|%i#pKIoaJg5J@|G$L+P213?x5K>B zn*ZmwLg~1pJM~Hy?*dzD!;N!R!kiQ2Bxz-Z3+Yep* zE)*?uO28yc0Dm){)#<|eAaTP9kI1M{*rM^Xe(06K+K6b@T?8faBXTD1_IjVGP8O74 z06j8t#Hccz9{8TFcr~d!x?jPGK|MQSD8I`UBnq8~{F*OU@Ab_i#z@+*WSX_hVb&r6 zXJ$W4SExqQ@*pJqYj9?0+v51aECMMZjh7i$S9fvyb~9xq#?^YZaGW`X^+QVN)2iua z+$_v^ola`D#-lm(F~{<3oFon58+Bc36B#QGYT{2S)1?|nY~w@u`~JsqM}!W zwG_i~W*Ze$LUDuNn2k^E=Ob<5635jMws<>EA2f=I-U6=gYcia^P~CB{)Pi+nufEF< znq;zKvgb!nPp71UCX&aq?C6~%>*bpiBJaQv_eGe*Hs-!XuKTylM^zMb#pOLfh@Tn$ zPH1d%9CACwV53RF*7b5)+J=6xR@|eaNrx#5n*LGw$kfgzk+WH9j#P3sv?V~?^}7aM zf3Uz|8XBJk#!JIh>zxntMTCZwYS*yC37ZW!!*kgwH&mGGb^hg`{jou)hoN-F+)TT) zx~D{KEQ(2QxMAlOOtw2p_|1p$#^`X3Wv?)={#9Dl8!@;=CaVL1MnY_~lpIO$>zdt$ zj~cw)L!wkZDK9)1T{*3|%0%Ywfje$?Of=?YGhIGlTGua8r7uJJCpS3rqG&j}{iY6q zZ@vckF+_5TQHoU1dL>Pl>51r8FYXT(_h9RhLzk`wmwWn-K+HQduq*6w*Q=8vgpz6< zM@}r?c}pD*Y!8eYn!Pt}hxCKQ3 zA=xC+&$*>QbtTI#<|wry)kE5#vT7?NohHjn`uHjK^GEq9^LBoA?Q~TyF#Y_#a)5~T z;My>l^R;g+2L%q-({@&rvMBWozD<<_SolDvcKzA-HE5kGwNmM(9FOIRW&TaS0DZ=) z16;VQaSAtS`yKGXyMzG4SqrVSs!X?Gk}P+yDgMfA8K0cH>2nc{!%{G))^-i+`mG$S z6U8N9B22T795zt{d?@(Jz!5$~02QvXj9}eW%!oVDaFw66Z=F*S3J0H*vy!8LT!#}6 z3QIvF>(Zq{X>sLx^zZ1A(3sM8>?j_tvF!L}vmgzTFts_~t|JUp(4PR&M{&J6Qfo4} zPmQhkmqWEURl+ACn100UP2{wwBHb-&t4=VgbwJ_l-C$TO6#*h{ zdOmWLnlUll0`-vt$m4DlVln5w#>6t?pvTZGv|V~+m43=k=ecJF(8$!lYO8i&*eoWo zgAwW@fIcuyS#0C2_x$h2|F_^I{~mSR>jBZlOuT5HhOX*o&b-Sb-~O7YtQd$SHeu#o z?Yq?>7(4;BeY8v80IWz@l5p~}Xtkl^@9~8=TChvYd z9M&pGDd#MM|4z@+jUgi*n58-^4aa9f-V3ely+(#)XCvRIqB>PjSy|5}1E|i_OP3FP z2!v!8L@8;Px`g3lMsi0p5ely$`cuUgWU@GIyum}eI5{pYCpg;!Rpfj=B-2WYFtHnk z?79nZ_e$~*cQ;g5QtV6`#9!&97WiM=vl?! z@-?F+!$D}pd6c0TKMf5Xtp?KS5cnOAo#mB5-t{-7NPxiY<6yx;BYtpo5O=I@;w=GI zW-+pwn}==@&->(%%GA%xa?R$O47@}BYsZLl{;&j@r*CdwB9MS+ol@*!)^cg;b-O|5rK^8|;h7Zr-NOPZ_-^dlqAD5C!XbKzI!&^h|#LlXh z9Uz`V=kSuX9krU^#J10iYcpp<35GIKlQ^9SLalI?0i4<;o@OA-sisWR zOMY`~97FwuNS)`$iwpSX-2FP$yOJ~YVwGBp(Hi+Geq3v%KXVE>gd*Rlsk%YrNphAq z!iNQdhV~O3Twbx*dd03~IWxN@4bU=By}3ceS4)t%W!P?I78bO5%lor--uE$`*6YM{ z5)`gE9`ZnPbR@??+MHc2NY5g~eP}wwj)5g8_@eT|H61J-`pG0FPcwjfiI^Y zQMr0|HR-A^=5X4sj_bd-3Y9Ci8?88Cmo+Ei%&>4a|ae*Swb(^o0ZZnJy$VydnjFhyQBpPO}`wkg{vZn6dv z2U6QLDN+>2mEEYk13W@lN)y*dh-A&qUW3dI41muoIMFTZZS%+eZeToElS$;;m~oG} zCXS&Ve1?LbvLwJ9W5s$~RSe#2T!5dC5Lpi=VRHp24dhbrmq}VzY{3`s#{D z{wC>_YA)&o@*AL(c_-{~>y=Zc{Ls7PS$1+?6eD;g_S%qfyG$*^ zi#qs-k#+WTCb3c5CgE+2xFtaf3EL~`>M3^oUj6oZQD0cy1CklY{p6g1iedz0P?1ln z$9lj~Do~n_cC3h}M+QdPR$M$>l)Q{#m}7uY_M4>=roWmt`@cfEAT+ddReN*AD;Jj0 z`grIF<{mB#QjK6(G=b2Z(+##K`5To`Yep7|kVpW!Z&2{n#&O`5dS(No=R%mE__T2Q zD7!B_Z|#u)HNcHPZ1M{&#YG+8Sc+bKP6ff8&K1!L+xyYm5W?e^t(Hh_q&mjCtN9^H z3;Z!A+Ugu>83L1FZ0ko7gA;W)01Hl9z(DtzE)er44EYb^{wbXX*$=^-9KNoMr4=L^ z5K>ylwb#I+UJqdk>#?W=iCM8P<&=tr&>+w%*5~Wxby{!DlV@V1_zRd*8X_kk^+2Q? zT7QtNDSYc(o4Aid7i!wkNV&F*1A|~}k#s{JJVd@p2Ma(1qy6v_AgU64rxav}!3GgE zSzkS;pza&KnJ@i6(xWx&N)7{SmA3}TwI-WPojD=a&%^YCKUn#Ya_~p|#81bbDjKkR zS`)*+s%3U_j(3~CHJ0QPzjq(7rqRJzwB`FvmTHCE*Q58D>K^hCkG0)@K3A(_v^@3x zWglmtZ;gUbIDU5c(fXtvbLWY`h2oDZ&)wd3`1~!R6E#@lreu|JU+p zZ}9(bMg2dRaV$gHR;gjamYVZ^9Gq=~IU?hbeVbD>yYj zS8Etjv12)W_Ig`>l&S&I*og;&dE|`H^4D_XvFy*KAbtPso_TDV&vIx+m zUuW=v4%D97D(a1Z>6_wQi)~9(6b)w>e`|O$Qh)n(oAJX}{r&wzoc{R240=Ic!xYBg zqA0==NiDe%=NtaIYv*RpRFl3*vaB$zhvvhc#C4Tho(-i!54EkrBX1#5XYd-R5aZP* z8siij>U2KJ?AeG59beYuxFAt7{5fANKfX_E9e?i(+SHlUTB`j-xKNyz(founr`w@i zugODZy5;n`wyA@X@RhhR#n=o~@m*9*7X^dxvLTUu>Rh)X87V`P8k!Ra<~kfzA`T`g z)_nxnB~Pk_->84i3@Uq;l4>1murr~&ww%B+j3T27G;x_aVl#=8u%kwmXPZ@pd^oo= zFDn`>-q@clWYm>Njf+Q3^}wXp0P1iP?2}c|-63gOpImKsB74QhT-{4{4j84PWJLZd z*)ylKFwuHam8ig66B>UdhYe%UIz+*ZFndFlA68#pM2jK_NYaqmPHx8(2W#N@YbX zkY5Zoz@`&R8fy_5gFru=Z3(L@SyMAs?&TQnjWOiIm!Y6ODWA?>3k=rwEoVBBu?CNu zq1=odVn!2uX$iVqkZP;*9RD8p+CP*4y_(qzw7;2N(g$V01($1M%Z`_L;@}e`Bv8g^ zeQ!Pk5(Fb*MBo|`p1=7A9nG554Rtk%VpaOzKkHFhI;Ih z-udKhDt@X^xy&VVV?;{U+7~VW2y!^AI7(BEP8mz(S}4@g%+{bNkTvR^bN_BttEn90xVoc0^9Rm)RyPt;REy6|#zn)1rQqjRjhuOslleg8@LuVp~K zO{AQ5vrnxtvgxX#268i{nXkXK*D{~q>_%!GBzQ`}L70jtrHUn**53eJ30mC4vGRE6 z_Y>6&Un?Ao%HM|2rzMp#)n#T@rgtU0nm*C+x|K(8@nlo2(qb`F6e1h()9m(jI_c+6 z2I#)3l|-D;Po0#-Q}~v&sDIKurRThHWTjq{Q+_>Hej;3Vd~8?8ze#knQHt8N26;WP z6k|&=N`~@@PY3aa${EKoyU>>e06S{;$?@BOvTu#Q^Jd_1iL{Nj z7?r}Dk$L|&4C%=3*GnS-0h#P`XGB1sryCzvmwnqM;#3ObPu?j^$k|_b@en-R%l`c82Q4fKb*NfUOm`r$GcL|zcNG-~fffFrr*T9c! zoNmzqTY|U6soF+HQzF-AmgZhylN=+gEd3tuHgnOQs$t>-3%TH^#sbKlk7foGkEzz! z4m6b&DNw{evDXu0wW5lie{mG&3CQSC)eqNpuQL~8{Ule}_ry3gQzkBh*2qt0J&UQL zvLfcK>4l)`E0v`~C>MeW=7z}OEqh&?CtnKy4fPsj*$#M}eVutfyAy4Zh)Qj@`p>S; zu++;1y}r94rxaV8<{9yrMoUK&H(A^S#6&Z12xx(K#9)ZjUF7T~C8MuG;;zy9Wg)0+ zi^rL0LHC`ZY*vKqIA!5rN{8S_aCzhB0Im@q2j#?9!?RAyLhdc|?I@V1$-p}5?SUllD1ZEbvV1qXbS@3QP% z%KQ5TW5KN%avyk$1CztDrpp27-awSls}z%$UVa7|1{zwIzS>t={JL}unI}o8!u}8+ z#Dzu^-TDB2i+s48vM`isvg+ng%}d*a_fhy;O>JB?OoA?@TiC-4WMMaXC?IQqVlJ52 zB|)-leb&L8Nu>^y1mY;*WW8~)Mpg15{li1~Yd@}>rF9SAz^%lIeauP7K#;WXTC@4B znUyM^vXtMZsh-Y^%(h&?hTIEw?SGfZ)?+trGE43*0Uoasn|+_X2%JF?Z`=DD5I$&c zA|bO7lyj)3>unfq41fCldreqzmEGh7XPC)M;;?^IU6VC*@aS8qY*;*8!G~uKt$to2 ze4i>Lo_W4^TCdT;o~F0Jb45J$^yi#pprDU+ku>npy2O#`VA06CwAA-4_`4D#~Yy{K6$ZU@N+@sdu_yLGpcv( zH@mzP{69SY`d@l{l1nk`?)cgzHc0w^^7_1;9?jwJGV+URoz@+pQahq%5H~S@;Byk% z3V$yxlB)So#8k<>6pN)+ScmZW({IPh(X~3UoH|4>ZqeyHt;p%{GgCE zcv4U`{_YF~%_)sFhbK>4MkyZ5$~>poaCO)JYT$g0tM}9P$EwcU{-ON0xc~r<^W<=^ z)%oy=Uehm;%f6Sjp!=?-?b3fWGY$v*N_zp@QaNx%rtJ)}HKkZ2kkZKd&G$v6yR9|6 zYw0J+suTBCGPE-!g{6?lPU5J|r?p>yRJjRCq61J2Ey{#@0MI*?% zQJ1es7L`!7ArQG0p!pxlO{r_v+=Pmeu=)30rm%;2r)jh30F+-5)79->M^;CLZ)gS= zbI<@sL?6=S#+E20p2Xkd$T8kWz6`}DN`Io@?-pp|Or|L^*}i;JZ9$Q8+I+!7kWx7IkuLT~Tz6thg*V+2 zL_5A~t-;+7G zD&_-vXDudpWHw$dT#C2F;=TImG5?LGZ|y4|fT1}b;V=J!Bv*idz(G`L+P0sq*W`1J z7#r3^<+Bq=5SGa^Hl(^8c*sZf8Fjl41VJSwc6ydjThx;6x@@_EJR za9{s@p7=WOOFFf%2**7$s`>VtHP%B7qZg&W0eYZ7j&M|O0Yqz9$`=+r7Y~!hCk&as zf90FL%rh2%dcudjnHUmhLpNu87GMsoe*PjC^~u!<+& zu9^I!s}a&2kg5h6TM_tU>};vCu@g>vI`W@z<6k-R|7KgprDfUW*<%b&SBW!vo=@xYFPu*h)|*&TBGph z4g}m}RYfH;OdNlu__OC7dHo~_B#yy1oO1@Vye2FleC^o!LX+$1(+9w|?(pxCKL7z= zEoir}1J_~+t-a50y$UGcT~EK)?ElD*y>K(#gAW-HtTna6EoCxwK@e{eh=L~w&Y7Iyg`#^ zPZ{*{neq7bY+LX8n2G+90LsC>VoR+J0>|brMRA-tHtBW!eczl(@=k0RP(Yeq1A3AN z>791{+d;poxIAG`;(6AtdmyiCB3dULeLh!?eH#@FAh(h_nbI-@;P+feP4Gh#Y&66K zu8B>Tg?QITnq=Okroa67ClW^)LFCe4NS(mqUG(c2QQ`qtEjywZ@$~VSvILp840c-n zh(>?r+aRl%cB-YYuIxe3!O`_h{+gjO0{YN9KSapLA<>r3hVP9y+=PW5J>4In_!#G2Pq~&%&`B)9K7+YLk{8{!eBM2i)Ue_Jsaf|og+o*3XDUeOF zZ(|gR7~NUdZaCAjQCr(nQ1~{uZ+mQ0{zmRY1Gkl(sNHUNd>TgYr?#~*on4*|G!<5`zVTwG8foq1*9eyT zEG>vhMw598svPz8uwjflp5)R@5Fr7hJI1}<_WbW$j1tu#!GV@T!;loup{seP+b>bL z^Y)imT$iZT;AUSPpCPadN*n6X%rcUsp;j%Av=v^ncy1WV*7`JX9g>vUZK;Su8Y|lb z$n1z(UE%#XA|v_cizG98Qmh&xOx~)}C`CYTVdp!MM(B1^Y{G*OiXdkHERr-xXBD*V zBJ-s%9jx;wahVBu$Fp64`)Ofoon)|WW;{qj4DQ_IQ@Z|gmEZn&E8rma6 zM~GA&f>qF{sy#0`U?k-fC0E8A(`${v+~e~We<`|W&wp1s)NgiO{LKte_Ge-aQ)L1sY!_e?v;J-3 zRodOci8qx(^=mUUSuL6nue#cP(kB94{$KYOs7!H^lv5l~VA};9GJ!+YFS^1Gz+`}4 zPgupj13`MJZnO#&^nrfH)*HSYZGW9lw9VIGXJb?fpD5Rz!b{=*yg zEpdec>nGx5M0159V@WSDzL_0Er;=-(MVH&rN!`A)_h;8R zR~=$ox(&GZrHly4$4f>|RGmQ>%o~2&h2&N;+oVb~|EMeoABDsXi&G5*lRu|q@lqnY z;5YnElaI4IOp+K55AS}{#()F^QLWNtj?TeS~GG+vjv^5Wd#S znKW578%d67hINz0<6BLxG#=!!ROD{dTa}A6Hq~TnYq3q{M6;cMasZv<=WM2V=1Cv{ zX%y9o!=H#}zLXLjV*m+MPr2hJk$f1tL%y3z**B~znQ&Y*^Ib&9J3oqpHQA2;BR_1R2q{YBer$9Z2!W8IFfw4>9v%^!6fp2-;`5v*5mwhUb9MW)KVH#Gb zMGHdN)B(>=E<<~=M17a6v|)ddy&r&o%HEUAjVTNngVz`UR>)O4^nP)=2I#>3+@(CTZMQS z9R03W|G{*rrji}P?p4fUQXDUbzRK(^KVWaI<9I*#r^xtWK|{!KPn1ai#9L3YqS~aE41XiJM&DB^tG(*-ZK8HGs#U03 zJqpRu4VHLeN>hnGBH#_)>sRgNl2NImcg)kiq~ddjiZnekj9JHCrdfs~ZG zGTjXitmddMvUyi=<(+Ek<_RX)5#`9yZct+Ed zaKQfML!u&bKfE_EJs?E5NoeevSF{KrcRps4Z7V7Q;q{XkOA<)iH4hj`BzcD+2^Q`^ zjbW%OKM~;|4ME_xwxrMB^@+|?<|_so`rV|9%f;B*)xQ$`+0K8^_NcGlt#;9P1w58%nHh7B06YHVtM0#~rG_bv&m4Xl}v39$P4Hcy-`OV%a6Pr?U6 zR@3gI@=}iUXe)T+RW$g;cz30zgZ_L!XXYuzu*A+V7uj=tP$-W@@6pvN!<=a_MW_hZ zZvd6hAy_J3cSpldg&R@fx5)g6GZK%AU6LLp%ex}jtdNwgHuWap#c!Gr&U2ofCx+vw zaJyS{Mbx?OVk;a++Nzd;-SHcQcDtF9lcVX>d;{6)b_?a~x9P%YvOt7gGh+7&(uCNI zVx&^XpCM?HZi+grvK2CGOSN)*c$fG^ot{UxrS6L)K5}d$>h%*JVgkvex%`Fo{P7r-{8(qjS6Asnq_0*IB!Ibr8)8AoYNW_>^mk?&& z>HuLGRVZY|DL@-_qdCeRDdtMq)Y)vzsB#G9{VdtNXEi52;TU1LW^A=-ND3)Q{6ZM> zf+$I=)|afRtZUDj%|jVkoBO@CDyHwr)tW@>jOr`Zr3-~&dg;luAA1KGW{2~}hzD;U ze(L&e{`1+Rg%^9xa41Ma;o*s#4wkQ>BbZ~6C*_u2{U~b2J-fL%rOvvnV#T96?set^M7h(EN5k8iUzrg zye17!79b!6Jb#Jn(nM^O8*$Ed(wV=evhRb8zt+&v+YyvVzo&vY)?&9Vmm@w_Dz%R| z`S^l}s86fp1CCxpNSc7$e4ESli1QlTOSO^UDJ@dX27Bt~ODZi3o?}9bEHMO!E+-es zUI1A#|67Il4_;n|?3#VXLJCRvR@c8h>p7qE5dMMFZ%#Np{02rgCWww{wb+Ov_hIS=`gQo#% z8frhee^|IXB1M}bYnGdzy}Is)2aPN&|8_|rfAF?TnD(eQh{4SxGx*0aZQN9IgNo1h zLMB*7T*hPK@hl0KrFu0@>uVFK+dKrc6=G6M9_Z}hXMt)@3TYqQ&Rf1xmUNZzj(7~$ zpWrGFOM9G_39ItO);ahE=)y{T`HGC!w(i3d-UjAUD&{0Q+xnVgZ*TZw{B2zeLf60C z>`g?uLE;%7%ip2}*PU!9*G+L-rdx1Ru$R-&c!pO*<#Be``ht=Ry_;DhsWa>9Vp9lT z92g(@k39R)AWOj5w&`^M&Zd%;dE(#^8=}MkLNi7`nL^qrmUHuJ39b1H@tM0+j4L{z zNUAJd3&a)>k-^tknd7&40ilDKtn+Kn%&#W!pPJ4iQ+aIQ6t-&G#7Ol6b4ns{ZbI@H z1A9u|!zU8Hb)WKT(fCGOhnbOTTrfI_b;I~Bsca0;5{R!BGknaw$Hmn|EY{c6^ffgmSc|5|GWG%0i#fwPm4vKT0xmjnJfk2bilzYfaspA%Nv}}wgw6k8?=8Th z>ej#EJ;MMqR}7-D=yM33pq3>FYJA>(Nw_dxH%ukQl)Khj}_r=pZ?snKFeMzAC@c` z>uZgg{8)%=hi#;Z+eekyP$>6cGD2OQo7Mx7mixmhr7Ohvw2?YzTTmV zTEQ|^M-AH3f~$vln;){x>BA*EquBT|RKaIkk0^--p=)(>t@qR2IyimE@a$~U3vf8n zF#uov3K4z?eSa#x@6GJ+0socR*Ox+H-m6wiX5M*afp3W$V@=&uxkr!ll^=obKFh%- z3UHm|aH4DqRoi`9F(Xs(u2#a%T^v#IQMK7p^5&d4&7ze5rN)lQOTWsIb}lfbv3h3s(E6nNPk>^HWXDoG|r-GLjy%5*(PnbpuW zfF7qKnDP7I$buz2WSPrxoNX`E5~i zKC)!Eyt#6hIiH7ia@aUK#jAiA>$9QC;s(|J#bvDUMyE6jn#U?y31jXIf~~uE(W%di zqp-Z6O08E{U}3B>_)ct&dzp|Czb>PUuSm31>H?88Cq!P*FB#iF>hjZ|OTrov3%bg3L}@+_0l%b@H@M`+hc%pCg3{FC#vD8WFB){Z3-^Fp8g`THmnH> z-onle?UA$HkwneJDSga-fk~U=^Mm7d8X`KHqpt?redE}&M+ry;q1F>>1rvEv&|bz} z`Bi=S?%5voEl%U7r=e&S=`e>@3#!NbC?q}9+&Nmrte6L$Omjr^G2UuIMwiV-IvMw| zYyM!;sL6PxEQgw-usi)sp)tL%PqWlokzmz9o{XuvoY`Yf6?d(pfPQNqy5^7I1@!I;l9a0 z{nKj_VOQjpmZjdYx{SK<&-1`9C%(e~51K)wn`<`ZZ|&r(LSw9U!8-|3_!+6o{7^j_zUP$S5MqZ;<=5y>n#8$CL~ z7td8I=-iR}eC0`}414}i$zixoTu^X(;VH65w=V2IwV|DO^pOR{NUFqFe1PvJVD!O)^~eOBejOdL+XgcF(L#4INv20I%B38T*O)cmSI%q1%x* zsNWa87{yYZli}cR@bWQslBF9^R!fLeZTEo6b7YTA`ge^=517AtE|T7r*G?@fan^Ex zOfB+5yB8ul;o(!gkm-Z@1?OQWP4*o)k`o=Jx|H@S)w$ z*bx`^%JfaV>gb-q`yLhZ2OO5z#!p$T)c0CzE_&sWP^p&bHHe;KzDM_+G3x)Aq6U2@5r`Pslg8d#1)+OIg z?fL?YpynJ9CmG#FOYo$@XUo@FQcenm9kV23dpZ;Q^z+EWtYLX@VHd8W^vG_Etm#@_ zUpTDII_X|Dvw>Ps zO#hSYF97-VGxYC0YfYl4PqQT`jY3ChwB-lXY?TFGP-kCP5u_5i%`6?(n9OFw4W3;m zzAw^*i1|>lmvSFD=}yb$45LHxpkc~*xr>d9c=c(W7<1ZzQC37_ZJG$Xk4cwh3>48` zs^w_OhD;WzJMCi3fVrK)n9iu_HMXqh-6QDkydQ9y5j7~nj6ISYJYqFWC$m>gS{!v0 z-{*m^(ru45d^1wMH(X_!(M3SiqsA* zW+@1AST|MN3}dJBay&kC8VvpJcf4G}NKfL%9dipwa~By0HjirOmXstbNk*?@Db$P3 zN7>iB&db1k1xDGgbGpXOaT9p5=?Yfm?szobar~^w+BU*)il7|OpYEHXypmm+3SMQS zduwA#0lXq=MXJRJEk*LgpHCQm*oS<;hl+bOp%4r31wV&d^kTSuFfmreN@ydrBxhli0Z1KWg1d1 zAx)bpSx*<5)O8Lb<~~igOx0Ew=-tUyByrfuRE)cukuSjt`3*35r zZ8cv1L+iDLwy3pSkc17UH(H% z#cf0}^OrNLxegG27Zepkx)?2WHp#HWre9Hc?Swg_`kyou%GKk8Uv33T!VQ9c`NAh`8m`tOBwa`hQV|*QMD%9O%XzGhN7H;iK37lJYTFHmq z7ct6N`gF){VH2+2C2Mgl9_Qg-{1g&ZCqN;j5sT_24XG`6HjNbG1=OvYWyCxQx(oYY z-r@|I4muoXYfsdw3Kk*fXttm-*fI4b!&oj~c5Sqz;Ugk8cNl(39w%|@2t>f`Hr143 z;7(S}ps#&GCaozg2Ij?vi3X(tIaIAzd^y zfoGfQwp!4h$3HHs?sawTL~aopGk~=lP@$$Wc)Chu72WJSlwFie>n6R{GbE=~U0^6- zP>PTmBldm_cL@tC@h;2fn8XIxAX7P1yFT_(HXUQb7>!NgcXbuFZg9#>i*>|lw`=BN2Glro zh#jf#+}(?MFNViXx0p*z)E(e*A9ZM@l9eVG3Q88$s49i#O+KGw(MvNaG!PIm6uf(6 z(^tXv+Br)JgM8IYw}ZA9jEZk4SXmHj8+ej%cA2^hiWlO+8|u2vVbT)DnvBWH<`zl# z+#2l?pUkn+D2bvom2s(=8w*a^d{g>m8G=TzOqU@c9&N$H7wsK&i&P0=!mr)kw_H^x zslYQs`H+|a-46qIXtLs>=vq+yW6^5l(T;m!m%xw|_Z?$$b)qtc@LQbIj7+97eKIv| zsH)XPWzyKaB(NC~9WWweTM=ncN@d_@x-?!>Tgb2RP+D6=bWa$a=<_JAA-AO;l+8dF zpJ`;V7-K4gWjfDG$(FGgq#p_T(VVZC_G|Ks6>+iHLPm0L2C6TO$#C;5I_uszRrV2t;s~pD7N}4|hIRvT_t6zXEtB~^bb9hnv~qBY|59ilDU3&9o`-&-62IlN$x@Ln+@#Fi) z$Ilx7Pu+~J$ut-*PgF;CexCFgZG3#k?^(;SdwV?3HR;|d`9FwISexG_kZbN(1hZi;*gnMXdd$Y4V0;>YkGHB8%4uQ(^Q0*1YyC52EXC3Xguyh-S^pyQ~@Jz1)tpVp
  • 8FYc$DKAP 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 z zzhSGNVJB8q7-?WqC61A4cVN%IuzK!I`8&s56B*A~-pe4~BPM&Ym1-)R-L(�eN#K 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 literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc b/nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc new file mode 100644 index 00000000000..fe4738dde43 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Farfalla #1=1.ngc @@ -0,0 +1,72 @@ +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 +;M6 T0 +;G96 M3 S200 +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X54.493 Y52.139 + Z1 + G1 Z-1 F100 + +F290 +G6.2 X54.493 Y52.139 R1 K0 P5 Q1 + X55.507 Y52.139 R1 K0 + X56.082 Y49.615 R1 K0 + X56.780 Y44.971 R1.2 K0 + X69.575 Y51.358 R1 K0 + X77.786 Y58.573 R1 K1 + X90.526 Y67.081 R1 K2 + X105.973 Y63.801 R1 K3 + X100.400 Y47.326 R1 K4 + X94.567 Y39.913 R1 K5 + X92.369 Y30.485 R1 K6 + X83.440 Y33.757 R2 K7 + X91.892 Y28.509 R1 K8 + X89.444 Y20.393 R1 K9 + X83.218 Y15.446 R5 K10 + X87.621 Y4.830 R3 K11 + X80.945 Y9.267 R1 K12 + X79.834 Y14.535 R1 K13 + X76.074 Y8.522 R1 K14 + X70.183 Y12.550 R1 K15 + X64.171 Y16.865 R1 K16 + X59.993 Y22.122 R1 K17 + X55.680 Y36.359 R1 K18 + X56.925 Y24.995 R1 K19 + X59.765 Y19.828 R1 K20 + X54.493 Y14.940 R1 K21 + X49.220 Y19.828 R1 K22 + X52.060 Y24.994 R1 K23 + X53.305 Y36.359 R1 K24 + X48.992 Y22.122 R1 K25 + X44.814 Y16.865 R1 K26 + X38.802 Y12.551 R1 K27 + X32.911 Y8.521 R1 K28 + X29.152 Y14.535 R1 K29 + X28.040 Y9.267 R1 K30 + X21.364 Y4.830 R3 K31 + X25.768 Y15.447 R5 K32 + X19.539 Y20.391 R1 K33 + X17.097 Y28.512 R1 K34 + X25.537 Y33.750 R2 K35 + X16.602 Y30.496 R1 K36 + X14.199 Y39.803 R1 K37 + X8.668 Y47.408 R1 K38 + X3.000 Y63.794 R1 K39 + X18.465 Y67.084 R1 K40 + X31.197 Y58.572 R1 K41 + X39.411 Y51.358 R1 K42 + X52.204 Y44.971 R1 K43 + X52.904 Y49.614 R1 K44 + X53.478 Y52.139 R1 K45 + X54.492 Y52.139 R1 K46 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G1 X54.492 Y52.139 Z1 +G0 X54.492 Y52.139 Z10 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc b/nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc new file mode 100644 index 00000000000..ebbc1186527 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Farfalla #1=2.ngc @@ -0,0 +1,72 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X54.493 Y52.139 + Z1 + G1 Z-1 F100 + +F100 +G6.2 X54.493 Y52.139 R1 K0 P5 Q2 + X55.507 Y52.139 R1 K0 + X56.082 Y49.615 R1 K0 + X56.780 Y44.971 R1.2 K0 + X69.575 Y51.358 R1 K0 + X77.786 Y58.573 R1 K1 + X90.526 Y67.081 R1 K2 + X105.973 Y63.801 R1 K3 + X100.400 Y47.326 R1 K4 + X94.567 Y39.913 R1 K5 + X92.369 Y30.485 R1 K6 + X83.440 Y33.757 R2 K7 + X91.892 Y28.509 R1 K8 + X89.444 Y20.393 R1 K9 + X83.218 Y15.446 R5 K10 + X87.621 Y4.830 R3 K11 + X80.945 Y9.267 R1 K12 + X79.834 Y14.535 R1 K13 + X76.074 Y8.522 R1 K14 + X70.183 Y12.550 R1 K15 + X64.171 Y16.865 R1 K16 + X59.993 Y22.122 R1 K17 + X55.680 Y36.359 R1 K18 + X56.925 Y24.995 R1 K19 + X59.765 Y19.828 R1 K20 + X54.493 Y14.940 R1 K21 + X49.220 Y19.828 R1 K22 + X52.060 Y24.994 R1 K23 + X53.305 Y36.359 R1 K24 + X48.992 Y22.122 R1 K25 + X44.814 Y16.865 R1 K26 + X38.802 Y12.551 R1 K27 + X32.911 Y8.521 R1 K28 + X29.152 Y14.535 R1 K29 + X28.040 Y9.267 R1 K30 + X21.364 Y4.830 R3 K31 + X25.768 Y15.447 R5 K32 + X19.539 Y20.391 R1 K33 + X17.097 Y28.512 R1 K34 + X25.537 Y33.750 R2 K35 + X16.602 Y30.496 R1 K36 + X14.199 Y39.803 R1 K37 + X8.668 Y47.408 R1 K38 + X3.000 Y63.794 R1 K39 + X18.465 Y67.084 R1 K40 + X31.197 Y58.572 R1 K41 + X39.411 Y51.358 R1 K42 + X52.204 Y44.971 R1 K43 + X52.904 Y49.614 R1 K44 + X53.478 Y52.139 R1 K45 + X54.492 Y52.139 R1 K46 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G1 X54.492 Y52.139 Z1 +G0 X54.492 Y52.139 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc b/nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc new file mode 100644 index 00000000000..3250f3eafe7 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Farfalla #1=3.ngc @@ -0,0 +1,71 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X54.493 Y52.139 + Z1 + G1 Z-1 F100 +F100 +G6.2 X54.493 Y52.139 R1 K0 P5 Q3 + X55.507 Y52.139 R1 K0 + X56.082 Y49.615 R1 K0 + X56.780 Y44.971 R1.2 K0 + X69.575 Y51.358 R1 K0 + X77.786 Y58.573 R1 K1 + X90.526 Y67.081 R1 K2 + X105.973 Y63.801 R1 K3 + X100.400 Y47.326 R1 K4 + X94.567 Y39.913 R1 K5 + X92.369 Y30.485 R1 K6 + X83.440 Y33.757 R2 K7 + X91.892 Y28.509 R1 K8 + X89.444 Y20.393 R1 K9 + X83.218 Y15.446 R5 K10 + X87.621 Y4.830 R3 K11 + X80.945 Y9.267 R1 K12 + X79.834 Y14.535 R1 K13 + X76.074 Y8.522 R1 K14 + X70.183 Y12.550 R1 K15 + X64.171 Y16.865 R1 K16 + X59.993 Y22.122 R1 K17 + X55.680 Y36.359 R1 K18 + X56.925 Y24.995 R1 K19 + X59.765 Y19.828 R1 K20 + X54.493 Y14.940 R1 K21 + X49.220 Y19.828 R1 K22 + X52.060 Y24.994 R1 K23 + X53.305 Y36.359 R1 K24 + X48.992 Y22.122 R1 K25 + X44.814 Y16.865 R1 K26 + X38.802 Y12.551 R1 K27 + X32.911 Y8.521 R1 K28 + X29.152 Y14.535 R1 K29 + X28.040 Y9.267 R1 K30 + X21.364 Y4.830 R3 K31 + X25.768 Y15.447 R5 K32 + X19.539 Y20.391 R1 K33 + X17.097 Y28.512 R1 K34 + X25.537 Y33.750 R2 K35 + X16.602 Y30.496 R1 K36 + X14.199 Y39.803 R1 K37 + X8.668 Y47.408 R1 K38 + X3.000 Y63.794 R1 K39 + X18.465 Y67.084 R1 K40 + X31.197 Y58.572 R1 K41 + X39.411 Y51.358 R1 K42 + X52.204 Y44.971 R1 K43 + X52.904 Y49.614 R1 K44 + X53.478 Y52.139 R1 K45 + X54.492 Y52.139 R1 K46 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G6.2 K47 +G1 X54.492 Y52.139 Z1 +G0 X54.492 Y52.139 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b89b60303871553e88d23df01e5a0bbce2a02200 GIT binary patch literal 166760 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 nO(6wE{zCHfjCdEx_#`K5 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≷+)=~pC;3qKuh;4{xCUu=|3qLf@ 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 DS8vkb literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc new file mode 100644 index 00000000000..b8756b41fa1 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy-yz-zx.ngc @@ -0,0 +1,107 @@ + + +(Curva acquisita Nr=1) + +#10=290 + +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 + +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +X0.000 Y100.000 +Z1 +G1 Z0 F#10 + +; G6.2 parameter +; R1 +; K0 +; P4 nurbs order=4 + +G17 (Plane XY) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 X0.000 Y100.000 R1 K0 P4 Q1 + X10.000 Y100.000 R1 K0 + X10.000 Y70.665 R1 K0 + X27.928 Y59.258 R1 K0 + X34.093 Y56.935 R1 K1 + X41.136 Y54.281 R1 K2 + X63.112 Y51.556 R1 K3 + X79.999 Y60.000 R1 K4 + X99.998 Y40.002 R1 K5 + X100.000 Y0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 X100.000 Y0.012 Z1 +G0 X100.000 Y0.012 Z10 + +G0 X50 +Y0Z0 +;G96 M3 S200 +G0 X50 (movimento per avvicinarsi alla posizione di taglio) +Y0.000 Z100.000 +X1 +G1 X0 F#10 + +G19 (Plane YZ) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 Y0.000 Z100.000 R1 K0 P4 Q1 + Y10.000 Z100.000 R1 K0 + Y10.000 Z70.665 R1 K0 + Y27.928 Z59.258 R1 K0 + Y34.093 Z56.935 R1 K1 + Y41.136 Z54.281 R1 K2 + Y63.112 Z51.556 R1 K3 + Y79.999 Z60.000 R1 K4 + Y99.998 Z40.002 R1 K5 + Y100.000 Z0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Y100.000 Z0.012 X1 +G0 Y100.000 Z0.012 X10 + +G0 Y50 +Z0X0 +;G96 M3 S200 +G0 Y50 (movimento per avvicinarsi alla posizione di taglio) +Z0.000 X100.000 +Y1 +G1 Y0 F#10 + + +G18 (Plane ZX) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 Z0.000 X100.000 R1 K0 P4 Q1 + Z10.000 X100.000 R1 K0 + Z10.000 X70.665 R1 K0 + Z27.928 X59.258 R1 K0 + Z34.093 X56.935 R1 K1 + Z41.136 X54.281 R1 K2 + Z63.112 X51.556 R1 K3 + Z79.999 X60.000 R1 K4 + Z99.998 X40.002 R1 K5 + Z100.000 X0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Z100.000 X0.012 Y1 +G0 Z100.000 X0.012 Y10 + + +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc new file mode 100644 index 00000000000..86055edb26b --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-xy.ngc @@ -0,0 +1,42 @@ + +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 + +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X0.000 Y100.000 + Z2 +G1 Z1 F100 +G1 Z0 F100 + +G17 (Plane XY) + +; G6.2 parameter +; R1 +; K0 +; P4 nurbs order=4 +; Q selects the used method 1=NICU, 2=NICC, 3=NICL + +F290 + +G6.2 X0.000 Y100.000 R1 K0 P4 Q1 + X10.000 Y100.000 R1 K0 + X10.000 Y70.665 R1 K0 + X27.928 Y59.258 R1 K0 + X34.093 Y56.935 R1 K1 + X41.136 Y54.281 R1 K2 + X63.112 Y51.556 R1 K3 + X79.999 Y60.000 R1 K4 + X99.998 Y40.002 R1 K5 + X100.000 Y0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 X100.000 Y0.012 Z1 +G0 X100.000 Y0.012 Z10 +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc new file mode 100644 index 00000000000..493c8421a89 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-yz.ngc @@ -0,0 +1,43 @@ + + +G21 G40 G54 G90 G94 +G0 X10 +Y0Z0 + +G0 X10 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + Y0.000 Z100.000 + X1 + G1 X0 F100 + +; G6.2 parameter +; R1 +; K0 +; P4 nurbs order=4 + +G19 (Plane YZ) + +F290 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL + +G6.2 Y0.000 Z100.000 R1 K0 P4 Q1 + Y10.000 Z100.000 R1 K0 + Y10.000 Z70.665 R1 K0 + Y27.928 Z59.258 R1 K0 + Y34.093 Z56.935 R1 K1 + Y41.136 Z54.281 R1 K2 + Y63.112 Z51.556 R1 K3 + Y79.999 Z60.000 R1 K4 + Y99.998 Z40.002 R1 K5 + Y100.000 Z0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Y100.000 Z0.012 X1 +G0 Y100.000 Z0.012 X10 +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc new file mode 100644 index 00000000000..61b2aca9f31 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=1-zx.ngc @@ -0,0 +1,43 @@ + + +G21 G40 G54 G90 G94 +G0 Y50 +Z0X0 +M6 T0 +G96 M3 S200 +G0 Y50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + Z0.000 X100.000 + Y1 + G1 Y0 F100 + +; G6.2 parameter +; R1 +; K0 +; P4 nurbs order=4 + +G18 (Plane ZX) + +F290 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 Z0.000 X100.000 R1 K0 P4 Q1 + Z10.000 X100.000 R1 K0 + Z10.000 X70.665 R1 K0 + Z27.928 X59.258 R1 K0 + Z34.093 X56.935 R1 K1 + Z41.136 X54.281 R1 K2 + Z63.112 X51.556 R1 K3 + Z79.999 X60.000 R1 K4 + Z99.998 X40.002 R1 K5 + Z100.000 X0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Z100.000 X0.012 Y1 +G0 Z100.000 X0.012 Y50 +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg b/nc_files/nurbs/G6/Curva_Mazatrol #1=1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cdc3c55af62a877f3fd0664aee665159dc2d9573 GIT binary patch literal 127950 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

    U}qF?A=6!z-M^pIp^wzigL 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

    Dv;2cG!} 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 literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc b/nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc new file mode 100644 index 00000000000..3b7717c1337 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Scrool_M #1=1.ngc @@ -0,0 +1,240 @@ +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 +;M6 T0 +;G96 M3 S200 +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X-77.0061 Y61.1565 + Z1 + G1 Z-1 F500 + F290 +G6.2 X-77.0061 Y61.1565 R1 K0 P4 Q1 + X-76.8871 Y61.1867 R0.988856343009953 K0 + X-76.7757 Y61.2381 R0.988856343009953 K0 + X-76.6754 Y61.3089 R1 K0 + X-76.5065 Y61.4282 R1 K1 + X-75.8309 Y62.0966 R1 K2 + X-75.9397 Y63.8298 R1 K3 + X-73.8533 Y63.8628 R1 K4 + X-73.9476 Y62.3576 R1 K5 + X-74.1208 Y61.6599 R1 K6 + X-74.1262 Y61.6383 R0.999627216068866 K7 + X-74.1323 Y61.6168 R0.999627216068866 K8 + X-74.1391 Y61.5956 R1 K9 + X-74.1715 Y61.4944 R1 K10 + X-74.2545 Y61.2779 R1 K11 + X-74.4250 Y60.9549 R1 K12 + X-74.6505 Y60.6316 R1 K13 + X-74.9242 Y60.3267 R1 K14 + X-75.2447 Y60.0465 R1 K15 + X-75.6096 Y59.7976 R1 K16 + X-76.0157 Y59.5863 R1 K17 + X-76.4590 Y59.4183 R1 K18 + X-76.9347 Y59.2992 R1 K19 + X-77.4371 Y59.2339 R1 K20 + X-77.9602 Y59.2265 R1 K21 + X-78.4971 Y59.2807 R1 K22 + X-79.0404 Y59.3992 R1 K23 + X-79.5826 Y59.5837 R1 K24 + X-80.1156 Y59.8353 R1 K25 + X-80.6311 Y60.1538 R1 K26 + X-81.1209 Y60.5384 R1 K27 + X-81.5768 Y60.9868 R1 K28 + X-81.9906 Y61.4961 R1 K29 + X-82.3546 Y62.0622 R1 K30 + X-82.6614 Y62.6802 R1 K31 + X-82.9041 Y63.3439 R1 K32 + X-83.0764 Y64.0467 R1 K33 + X-83.1730 Y64.7809 R1 K34 + X-83.1890 Y65.5382 R1 K35 + X-83.1208 Y66.3096 R1 K36 + X-82.9658 Y67.0856 R1 K37 + X-82.7222 Y67.8564 R1 K38 + X-82.3895 Y68.6117 R1 K39 + X-81.9685 Y69.3413 R1 K40 + X-81.4611 Y70.0348 R1 K41 + X-80.8701 Y70.6820 R1 K42 + X-80.2001 Y71.2730 R1 K43 + X-79.4563 Y71.7982 R1 K44 + X-78.6455 Y72.2487 R1 K45 + X-77.7752 Y72.6160 R1 K46 + X-76.8541 Y72.8927 R1 K47 + X-75.8918 Y73.0722 R1 K48 + X-74.8988 Y73.1488 R1 K49 + X-73.8862 Y73.1182 R1 K50 + X-72.8657 Y72.9772 R1 K51 + X-71.8495 Y72.7238 R1 K52 + X-70.8500 Y72.3574 R1 K53 + X-69.8800 Y71.8789 R1 K54 + X-68.9520 Y71.2906 R1 K55 + X-68.0785 Y70.5961 R1 K56 + X-67.2717 Y69.8004 R1 K57 + X-66.5432 Y68.9102 R1 K58 + X-65.9042 Y67.9332 R1 K59 + X-65.3647 Y66.8784 R1 K60 + X-64.9341 Y65.7564 R1 K61 + X-64.6207 Y64.5783 R1 K62 + X-64.4314 Y63.3567 R1 K63 + X-64.3718 Y62.1046 R1 K64 + X-64.4463 Y60.8362 R1 K65 + X-64.6576 Y59.5657 R1 K66 + X-65.0069 Y58.3083 R1 K67 + X-65.4936 Y57.0788 R1 K68 + X-66.1157 Y55.8925 R1 K69 + X-66.8693 Y54.7643 R1 K70 + X-67.7490 Y53.7088 R1 K71 + X-68.7477 Y52.7403 R1 K72 + X-69.8567 Y51.8720 R1 K73 + X-71.0658 Y51.1166 R1 K74 + X-72.3634 Y50.4856 R1 K75 + X-73.7366 Y49.9891 R1 K76 + X-75.1713 Y49.6362 R1 K77 + X-76.6522 Y49.4343 R1 K78 + X-78.1635 Y49.3892 R1 K79 + X-79.6883 Y49.5049 R1 K80 + X-81.2094 Y49.7838 R1 K81 + X-82.7092 Y50.2264 R1 K82 + X-84.1699 Y50.8310 R1 K83 + X-85.5740 Y51.5944 R1 K84 + X-86.9042 Y52.5112 R1 K85 + X-88.1436 Y53.5742 R1 K86 + X-89.2760 Y54.7742 R1 K87 + X-90.2864 Y56.1006 R1 K88 + X-91.1606 Y57.5406 R1 K89 + X-91.8858 Y59.0802 R1 K90 + X-92.4508 Y60.7038 R1 K91 + X-92.8458 Y62.3947 R1 K92 + X-93.0631 Y64.1349 R1 K93 + X-93.0965 Y65.9055 R1 K94 + X-92.9423 Y67.6871 R1 K95 + X-92.5984 Y69.4596 R1 K96 + X-92.0651 Y71.2027 R1 K97 + X-91.3449 Y72.8960 R1 K98 + X-90.4425 Y74.5195 R1 K99 + X-89.3646 Y76.0533 R1 K100 + X-88.1203 Y77.4786 R1 K101 + X-86.7206 Y78.7771 R1 K102 + X-85.1784 Y79.9318 R1 K103 + X-83.5088 Y80.9272 R1 K104 + X-81.7282 Y81.7492 R1 K105 + X-79.8548 Y82.3854 R1 K106 + X-77.9081 Y82.8253 R1 K107 + X-75.9088 Y83.0606 R1 K108 + X-73.8786 Y83.0852 R1 K109 + X-71.8398 Y82.8950 R1 K110 + X-69.8152 Y82.4888 R1 K111 + X-67.8278 Y81.8673 R1 K112 + X-66.2464 Y81.1836 R1 K113 + X-65.3369 Y80.7042 R1 K114 + X-65.0529 Y80.5456 R1 K115 + X-64.5655 Y80.2207 R0.804737854124364 K116 + X-64.4506 Y79.6463 R0.804737854124364 K117 + X-64.7756 Y79.1589 R1 K118 + X-65.1005 Y78.6715 R0.804737854124364 K119 + X-65.6749 Y78.5566 R0.804737854124364 K120 + X-66.1623 Y78.8815 R1 K121 + X-66.4086 Y79.0163 R1 K122 + X-67.2207 Y79.4365 R1 K123 + X-68.6384 Y80.0382 R1 K124 + X-70.4315 Y80.5853 R1 K125 + X-72.2551 Y80.9379 R1 K126 + X-74.0884 Y81.0954 R1 K127 + X-75.9109 Y81.0598 R1 K128 + X-77.7024 Y80.8351 R1 K129 + X-79.4435 Y80.4272 R1 K130 + X-81.1157 Y79.8444 R1 K131 + X-82.7018 Y79.0963 R1 K132 + X-84.1857 Y78.1946 R1 K133 + X-85.5527 Y77.1523 R1 K134 + X-86.7900 Y75.9839 R1 K135 + X-87.8862 Y74.7049 R1 K136 + X-88.8320 Y73.3319 R1 K137 + X-89.6198 Y71.8821 R1 K138 + X-90.2439 Y70.3735 R1 K139 + X-90.7009 Y68.8240 R1 K140 + X-90.9890 Y67.2521 R1 K141 + X-91.1087 Y65.6758 R1 K142 + X-91.0620 Y64.1129 R1 K143 + X-90.8533 Y62.5808 R1 K144 + X-90.4884 Y61.0959 R1 K145 + X-89.9747 Y59.6740 R1 K146 + X-89.3215 Y58.3298 R1 K147 + X-88.5393 Y57.0766 R1 K148 + X-87.6398 Y55.9266 R1 K149 + X-86.6359 Y54.8904 R1 K150 + X-85.5415 Y53.9770 R1 K151 + X-84.3710 Y53.1939 R1 K152 + X-83.1396 Y52.5469 R1 K153 + X-81.8627 Y52.0400 R1 K154 + X-80.5560 Y51.6757 R1 K155 + X-79.2351 Y51.4544 R1 K156 + X-77.9154 Y51.3753 R1 K157 + X-76.6119 Y51.4355 R1 K158 + X-75.3392 Y51.6308 R1 K159 + X-74.1110 Y51.9554 R1 K160 + X-72.9401 Y52.4023 R1 K161 + X-71.8387 Y52.9631 R1 K162 + X-70.8173 Y53.6281 R1 K163 + X-69.8857 Y54.3870 R1 K164 + X-69.0521 Y55.2283 R1 K165 + X-68.3233 Y56.1401 R1 K166 + X-67.7049 Y57.1097 R1 K167 + X-67.2008 Y58.1242 R1 K168 + X-66.8135 Y59.1705 R1 K169 + X-66.5442 Y60.2354 R1 K170 + X-66.3923 Y61.3060 R1 K171 + X-66.3562 Y62.3696 R1 K172 + X-66.4325 Y63.4138 R1 K173 + X-66.6170 Y64.4271 R1 K174 + X-66.9039 Y65.3983 R1 K175 + X-67.2866 Y66.3175 R1 K176 + X-67.7573 Y67.1753 R1 K177 + X-68.3075 Y67.9637 R1 K178 + X-68.9280 Y68.6756 R1 K179 + X-69.6088 Y69.3050 R1 K180 + X-70.3397 Y69.8473 R1 K181 + X-71.1101 Y70.2991 R1 K182 + X-71.9091 Y70.6582 R1 K183 + X-72.7261 Y70.9236 R1 K184 + X-73.5503 Y71.0955 R1 K185 + X-74.3713 Y71.1755 R1 K186 + X-75.1792 Y71.1661 R1 K187 + X-75.9644 Y71.0710 R1 K188 + X-76.7181 Y70.8949 R1 K189 + X-77.4320 Y70.6431 R1 K190 + X-78.0989 Y70.3222 R1 K191 + X-78.7122 Y69.9390 R1 K192 + X-79.2666 Y69.5013 R1 K193 + X-79.7573 Y69.0171 R1 K194 + X-80.1810 Y68.4947 R1 K195 + X-80.5351 Y67.9427 R1 K196 + X-80.8183 Y67.3699 R1 K197 + X-81.0302 Y66.7848 R1 K198 + X-81.1714 Y66.1960 R1 K199 + X-81.2436 Y65.6115 R1 K200 + X-81.2493 Y65.0393 R1 K201 + X-81.1918 Y64.4867 R1 K202 + X-81.0754 Y63.9603 R1 K203 + X-80.9049 Y63.4662 R1 K204 + X-80.6858 Y63.0099 R1 K205 + X-80.4240 Y62.5959 R1 K206 + X-80.1261 Y62.2279 R1 K207 + X-79.7985 Y61.9087 R1 K208 + X-79.4482 Y61.6404 R1 K209 + X-79.0822 Y61.4241 R1 K210 + X-78.7073 Y61.2599 R1 K211 + X-78.3304 Y61.1472 R1 K212 + X-77.9578 Y61.0846 R1 K213 + X-77.5958 Y61.0698 R1 K214 + X-77.2786 Y61.0973 R1 K215 + X-77.0877 Y61.1358 R1 K216 + X-77.0080 Y61.1560 R1 K217 +G6.2 K218 +G6.2 K218 +G6.2 K218 +G6.2 K218 +G1 X-77.0080 Y61.1560 Z1 +G0 X-77.0080 Y61.1560 Z10 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc b/nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc new file mode 100644 index 00000000000..3b6bf5a7073 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Scrool_M #1=2.ngc @@ -0,0 +1,240 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X-77.0061 Y61.1565 + Z1 + G1 Z-1 F100 +F100 +G6.2 X-77.0061 Y61.1565 R1 K0 P4 Q2 + X-76.8871 Y61.1867 R0.988856343009953 K0 + X-76.7757 Y61.2381 R0.988856343009953 K0 + X-76.6754 Y61.3089 R1 K0 + X-76.5065 Y61.4282 R1 K1 + X-75.8309 Y62.0966 R1 K2 + X-75.9397 Y63.8298 R1 K3 + X-73.8533 Y63.8628 R1 K4 + X-73.9476 Y62.3576 R1 K5 + X-74.1208 Y61.6599 R1 K6 + X-74.1262 Y61.6383 R0.999627216068866 K7 + X-74.1323 Y61.6168 R0.999627216068866 K8 + X-74.1391 Y61.5956 R1 K9 + X-74.1715 Y61.4944 R1 K10 + X-74.2545 Y61.2779 R1 K11 + X-74.4250 Y60.9549 R1 K12 + X-74.6505 Y60.6316 R1 K13 + X-74.9242 Y60.3267 R1 K14 + X-75.2447 Y60.0465 R1 K15 + X-75.6096 Y59.7976 R1 K16 + X-76.0157 Y59.5863 R1 K17 + X-76.4590 Y59.4183 R1 K18 + X-76.9347 Y59.2992 R1 K19 + X-77.4371 Y59.2339 R1 K20 + X-77.9602 Y59.2265 R1 K21 + X-78.4971 Y59.2807 R1 K22 + X-79.0404 Y59.3992 R1 K23 + X-79.5826 Y59.5837 R1 K24 + X-80.1156 Y59.8353 R1 K25 + X-80.6311 Y60.1538 R1 K26 + X-81.1209 Y60.5384 R1 K27 + X-81.5768 Y60.9868 R1 K28 + X-81.9906 Y61.4961 R1 K29 + X-82.3546 Y62.0622 R1 K30 + X-82.6614 Y62.6802 R1 K31 + X-82.9041 Y63.3439 R1 K32 + X-83.0764 Y64.0467 R1 K33 + X-83.1730 Y64.7809 R1 K34 + X-83.1890 Y65.5382 R1 K35 + X-83.1208 Y66.3096 R1 K36 + X-82.9658 Y67.0856 R1 K37 + X-82.7222 Y67.8564 R1 K38 + X-82.3895 Y68.6117 R1 K39 + X-81.9685 Y69.3413 R1 K40 + X-81.4611 Y70.0348 R1 K41 + X-80.8701 Y70.6820 R1 K42 + X-80.2001 Y71.2730 R1 K43 + X-79.4563 Y71.7982 R1 K44 + X-78.6455 Y72.2487 R1 K45 + X-77.7752 Y72.6160 R1 K46 + X-76.8541 Y72.8927 R1 K47 + X-75.8918 Y73.0722 R1 K48 + X-74.8988 Y73.1488 R1 K49 + X-73.8862 Y73.1182 R1 K50 + X-72.8657 Y72.9772 R1 K51 + X-71.8495 Y72.7238 R1 K52 + X-70.8500 Y72.3574 R1 K53 + X-69.8800 Y71.8789 R1 K54 + X-68.9520 Y71.2906 R1 K55 + X-68.0785 Y70.5961 R1 K56 + X-67.2717 Y69.8004 R1 K57 + X-66.5432 Y68.9102 R1 K58 + X-65.9042 Y67.9332 R1 K59 + X-65.3647 Y66.8784 R1 K60 + X-64.9341 Y65.7564 R1 K61 + X-64.6207 Y64.5783 R1 K62 + X-64.4314 Y63.3567 R1 K63 + X-64.3718 Y62.1046 R1 K64 + X-64.4463 Y60.8362 R1 K65 + X-64.6576 Y59.5657 R1 K66 + X-65.0069 Y58.3083 R1 K67 + X-65.4936 Y57.0788 R1 K68 + X-66.1157 Y55.8925 R1 K69 + X-66.8693 Y54.7643 R1 K70 + X-67.7490 Y53.7088 R1 K71 + X-68.7477 Y52.7403 R1 K72 + X-69.8567 Y51.8720 R1 K73 + X-71.0658 Y51.1166 R1 K74 + X-72.3634 Y50.4856 R1 K75 + X-73.7366 Y49.9891 R1 K76 + X-75.1713 Y49.6362 R1 K77 + X-76.6522 Y49.4343 R1 K78 + X-78.1635 Y49.3892 R1 K79 + X-79.6883 Y49.5049 R1 K80 + X-81.2094 Y49.7838 R1 K81 + X-82.7092 Y50.2264 R1 K82 + X-84.1699 Y50.8310 R1 K83 + X-85.5740 Y51.5944 R1 K84 + X-86.9042 Y52.5112 R1 K85 + X-88.1436 Y53.5742 R1 K86 + X-89.2760 Y54.7742 R1 K87 + X-90.2864 Y56.1006 R1 K88 + X-91.1606 Y57.5406 R1 K89 + X-91.8858 Y59.0802 R1 K90 + X-92.4508 Y60.7038 R1 K91 + X-92.8458 Y62.3947 R1 K92 + X-93.0631 Y64.1349 R1 K93 + X-93.0965 Y65.9055 R1 K94 + X-92.9423 Y67.6871 R1 K95 + X-92.5984 Y69.4596 R1 K96 + X-92.0651 Y71.2027 R1 K97 + X-91.3449 Y72.8960 R1 K98 + X-90.4425 Y74.5195 R1 K99 + X-89.3646 Y76.0533 R1 K100 + X-88.1203 Y77.4786 R1 K101 + X-86.7206 Y78.7771 R1 K102 + X-85.1784 Y79.9318 R1 K103 + X-83.5088 Y80.9272 R1 K104 + X-81.7282 Y81.7492 R1 K105 + X-79.8548 Y82.3854 R1 K106 + X-77.9081 Y82.8253 R1 K107 + X-75.9088 Y83.0606 R1 K108 + X-73.8786 Y83.0852 R1 K109 + X-71.8398 Y82.8950 R1 K110 + X-69.8152 Y82.4888 R1 K111 + X-67.8278 Y81.8673 R1 K112 + X-66.2464 Y81.1836 R1 K113 + X-65.3369 Y80.7042 R1 K114 + X-65.0529 Y80.5456 R1 K115 + X-64.5655 Y80.2207 R0.804737854124364 K116 + X-64.4506 Y79.6463 R0.804737854124364 K117 + X-64.7756 Y79.1589 R1 K118 + X-65.1005 Y78.6715 R0.804737854124364 K119 + X-65.6749 Y78.5566 R0.804737854124364 K120 + X-66.1623 Y78.8815 R1 K121 + X-66.4086 Y79.0163 R1 K122 + X-67.2207 Y79.4365 R1 K123 + X-68.6384 Y80.0382 R1 K124 + X-70.4315 Y80.5853 R1 K125 + X-72.2551 Y80.9379 R1 K126 + X-74.0884 Y81.0954 R1 K127 + X-75.9109 Y81.0598 R1 K128 + X-77.7024 Y80.8351 R1 K129 + X-79.4435 Y80.4272 R1 K130 + X-81.1157 Y79.8444 R1 K131 + X-82.7018 Y79.0963 R1 K132 + X-84.1857 Y78.1946 R1 K133 + X-85.5527 Y77.1523 R1 K134 + X-86.7900 Y75.9839 R1 K135 + X-87.8862 Y74.7049 R1 K136 + X-88.8320 Y73.3319 R1 K137 + X-89.6198 Y71.8821 R1 K138 + X-90.2439 Y70.3735 R1 K139 + X-90.7009 Y68.8240 R1 K140 + X-90.9890 Y67.2521 R1 K141 + X-91.1087 Y65.6758 R1 K142 + X-91.0620 Y64.1129 R1 K143 + X-90.8533 Y62.5808 R1 K144 + X-90.4884 Y61.0959 R1 K145 + X-89.9747 Y59.6740 R1 K146 + X-89.3215 Y58.3298 R1 K147 + X-88.5393 Y57.0766 R1 K148 + X-87.6398 Y55.9266 R1 K149 + X-86.6359 Y54.8904 R1 K150 + X-85.5415 Y53.9770 R1 K151 + X-84.3710 Y53.1939 R1 K152 + X-83.1396 Y52.5469 R1 K153 + X-81.8627 Y52.0400 R1 K154 + X-80.5560 Y51.6757 R1 K155 + X-79.2351 Y51.4544 R1 K156 + X-77.9154 Y51.3753 R1 K157 + X-76.6119 Y51.4355 R1 K158 + X-75.3392 Y51.6308 R1 K159 + X-74.1110 Y51.9554 R1 K160 + X-72.9401 Y52.4023 R1 K161 + X-71.8387 Y52.9631 R1 K162 + X-70.8173 Y53.6281 R1 K163 + X-69.8857 Y54.3870 R1 K164 + X-69.0521 Y55.2283 R1 K165 + X-68.3233 Y56.1401 R1 K166 + X-67.7049 Y57.1097 R1 K167 + X-67.2008 Y58.1242 R1 K168 + X-66.8135 Y59.1705 R1 K169 + X-66.5442 Y60.2354 R1 K170 + X-66.3923 Y61.3060 R1 K171 + X-66.3562 Y62.3696 R1 K172 + X-66.4325 Y63.4138 R1 K173 + X-66.6170 Y64.4271 R1 K174 + X-66.9039 Y65.3983 R1 K175 + X-67.2866 Y66.3175 R1 K176 + X-67.7573 Y67.1753 R1 K177 + X-68.3075 Y67.9637 R1 K178 + X-68.9280 Y68.6756 R1 K179 + X-69.6088 Y69.3050 R1 K180 + X-70.3397 Y69.8473 R1 K181 + X-71.1101 Y70.2991 R1 K182 + X-71.9091 Y70.6582 R1 K183 + X-72.7261 Y70.9236 R1 K184 + X-73.5503 Y71.0955 R1 K185 + X-74.3713 Y71.1755 R1 K186 + X-75.1792 Y71.1661 R1 K187 + X-75.9644 Y71.0710 R1 K188 + X-76.7181 Y70.8949 R1 K189 + X-77.4320 Y70.6431 R1 K190 + X-78.0989 Y70.3222 R1 K191 + X-78.7122 Y69.9390 R1 K192 + X-79.2666 Y69.5013 R1 K193 + X-79.7573 Y69.0171 R1 K194 + X-80.1810 Y68.4947 R1 K195 + X-80.5351 Y67.9427 R1 K196 + X-80.8183 Y67.3699 R1 K197 + X-81.0302 Y66.7848 R1 K198 + X-81.1714 Y66.1960 R1 K199 + X-81.2436 Y65.6115 R1 K200 + X-81.2493 Y65.0393 R1 K201 + X-81.1918 Y64.4867 R1 K202 + X-81.0754 Y63.9603 R1 K203 + X-80.9049 Y63.4662 R1 K204 + X-80.6858 Y63.0099 R1 K205 + X-80.4240 Y62.5959 R1 K206 + X-80.1261 Y62.2279 R1 K207 + X-79.7985 Y61.9087 R1 K208 + X-79.4482 Y61.6404 R1 K209 + X-79.0822 Y61.4241 R1 K210 + X-78.7073 Y61.2599 R1 K211 + X-78.3304 Y61.1472 R1 K212 + X-77.9578 Y61.0846 R1 K213 + X-77.5958 Y61.0698 R1 K214 + X-77.2786 Y61.0973 R1 K215 + X-77.0877 Y61.1358 R1 K216 + X-77.0080 Y61.1560 R1 K217 +G6.2 K218 +G6.2 K218 +G6.2 K218 +G6.2 K218 +G1 X-77.0080 Y61.1560 Z1 +G0 X-77.0080 Y61.1560 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc b/nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc new file mode 100644 index 00000000000..d85391ff310 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Scrool_M #1=3.ngc @@ -0,0 +1,240 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X-77.0061 Y61.1565 + Z1 + G1 Z-1 F100 +F100 +G6.2 X-77.0061 Y61.1565 R1 K0 P4 Q3 + X-76.8871 Y61.1867 R0.988856343009953 K0 + X-76.7757 Y61.2381 R0.988856343009953 K0 + X-76.6754 Y61.3089 R1 K0 + X-76.5065 Y61.4282 R1 K1 + X-75.8309 Y62.0966 R1 K2 + X-75.9397 Y63.8298 R1 K3 + X-73.8533 Y63.8628 R1 K4 + X-73.9476 Y62.3576 R1 K5 + X-74.1208 Y61.6599 R1 K6 + X-74.1262 Y61.6383 R0.999627216068866 K7 + X-74.1323 Y61.6168 R0.999627216068866 K8 + X-74.1391 Y61.5956 R1 K9 + X-74.1715 Y61.4944 R1 K10 + X-74.2545 Y61.2779 R1 K11 + X-74.4250 Y60.9549 R1 K12 + X-74.6505 Y60.6316 R1 K13 + X-74.9242 Y60.3267 R1 K14 + X-75.2447 Y60.0465 R1 K15 + X-75.6096 Y59.7976 R1 K16 + X-76.0157 Y59.5863 R1 K17 + X-76.4590 Y59.4183 R1 K18 + X-76.9347 Y59.2992 R1 K19 + X-77.4371 Y59.2339 R1 K20 + X-77.9602 Y59.2265 R1 K21 + X-78.4971 Y59.2807 R1 K22 + X-79.0404 Y59.3992 R1 K23 + X-79.5826 Y59.5837 R1 K24 + X-80.1156 Y59.8353 R1 K25 + X-80.6311 Y60.1538 R1 K26 + X-81.1209 Y60.5384 R1 K27 + X-81.5768 Y60.9868 R1 K28 + X-81.9906 Y61.4961 R1 K29 + X-82.3546 Y62.0622 R1 K30 + X-82.6614 Y62.6802 R1 K31 + X-82.9041 Y63.3439 R1 K32 + X-83.0764 Y64.0467 R1 K33 + X-83.1730 Y64.7809 R1 K34 + X-83.1890 Y65.5382 R1 K35 + X-83.1208 Y66.3096 R1 K36 + X-82.9658 Y67.0856 R1 K37 + X-82.7222 Y67.8564 R1 K38 + X-82.3895 Y68.6117 R1 K39 + X-81.9685 Y69.3413 R1 K40 + X-81.4611 Y70.0348 R1 K41 + X-80.8701 Y70.6820 R1 K42 + X-80.2001 Y71.2730 R1 K43 + X-79.4563 Y71.7982 R1 K44 + X-78.6455 Y72.2487 R1 K45 + X-77.7752 Y72.6160 R1 K46 + X-76.8541 Y72.8927 R1 K47 + X-75.8918 Y73.0722 R1 K48 + X-74.8988 Y73.1488 R1 K49 + X-73.8862 Y73.1182 R1 K50 + X-72.8657 Y72.9772 R1 K51 + X-71.8495 Y72.7238 R1 K52 + X-70.8500 Y72.3574 R1 K53 + X-69.8800 Y71.8789 R1 K54 + X-68.9520 Y71.2906 R1 K55 + X-68.0785 Y70.5961 R1 K56 + X-67.2717 Y69.8004 R1 K57 + X-66.5432 Y68.9102 R1 K58 + X-65.9042 Y67.9332 R1 K59 + X-65.3647 Y66.8784 R1 K60 + X-64.9341 Y65.7564 R1 K61 + X-64.6207 Y64.5783 R1 K62 + X-64.4314 Y63.3567 R1 K63 + X-64.3718 Y62.1046 R1 K64 + X-64.4463 Y60.8362 R1 K65 + X-64.6576 Y59.5657 R1 K66 + X-65.0069 Y58.3083 R1 K67 + X-65.4936 Y57.0788 R1 K68 + X-66.1157 Y55.8925 R1 K69 + X-66.8693 Y54.7643 R1 K70 + X-67.7490 Y53.7088 R1 K71 + X-68.7477 Y52.7403 R1 K72 + X-69.8567 Y51.8720 R1 K73 + X-71.0658 Y51.1166 R1 K74 + X-72.3634 Y50.4856 R1 K75 + X-73.7366 Y49.9891 R1 K76 + X-75.1713 Y49.6362 R1 K77 + X-76.6522 Y49.4343 R1 K78 + X-78.1635 Y49.3892 R1 K79 + X-79.6883 Y49.5049 R1 K80 + X-81.2094 Y49.7838 R1 K81 + X-82.7092 Y50.2264 R1 K82 + X-84.1699 Y50.8310 R1 K83 + X-85.5740 Y51.5944 R1 K84 + X-86.9042 Y52.5112 R1 K85 + X-88.1436 Y53.5742 R1 K86 + X-89.2760 Y54.7742 R1 K87 + X-90.2864 Y56.1006 R1 K88 + X-91.1606 Y57.5406 R1 K89 + X-91.8858 Y59.0802 R1 K90 + X-92.4508 Y60.7038 R1 K91 + X-92.8458 Y62.3947 R1 K92 + X-93.0631 Y64.1349 R1 K93 + X-93.0965 Y65.9055 R1 K94 + X-92.9423 Y67.6871 R1 K95 + X-92.5984 Y69.4596 R1 K96 + X-92.0651 Y71.2027 R1 K97 + X-91.3449 Y72.8960 R1 K98 + X-90.4425 Y74.5195 R1 K99 + X-89.3646 Y76.0533 R1 K100 + X-88.1203 Y77.4786 R1 K101 + X-86.7206 Y78.7771 R1 K102 + X-85.1784 Y79.9318 R1 K103 + X-83.5088 Y80.9272 R1 K104 + X-81.7282 Y81.7492 R1 K105 + X-79.8548 Y82.3854 R1 K106 + X-77.9081 Y82.8253 R1 K107 + X-75.9088 Y83.0606 R1 K108 + X-73.8786 Y83.0852 R1 K109 + X-71.8398 Y82.8950 R1 K110 + X-69.8152 Y82.4888 R1 K111 + X-67.8278 Y81.8673 R1 K112 + X-66.2464 Y81.1836 R1 K113 + X-65.3369 Y80.7042 R1 K114 + X-65.0529 Y80.5456 R1 K115 + X-64.5655 Y80.2207 R0.804737854124364 K116 + X-64.4506 Y79.6463 R0.804737854124364 K117 + X-64.7756 Y79.1589 R1 K118 + X-65.1005 Y78.6715 R0.804737854124364 K119 + X-65.6749 Y78.5566 R0.804737854124364 K120 + X-66.1623 Y78.8815 R1 K121 + X-66.4086 Y79.0163 R1 K122 + X-67.2207 Y79.4365 R1 K123 + X-68.6384 Y80.0382 R1 K124 + X-70.4315 Y80.5853 R1 K125 + X-72.2551 Y80.9379 R1 K126 + X-74.0884 Y81.0954 R1 K127 + X-75.9109 Y81.0598 R1 K128 + X-77.7024 Y80.8351 R1 K129 + X-79.4435 Y80.4272 R1 K130 + X-81.1157 Y79.8444 R1 K131 + X-82.7018 Y79.0963 R1 K132 + X-84.1857 Y78.1946 R1 K133 + X-85.5527 Y77.1523 R1 K134 + X-86.7900 Y75.9839 R1 K135 + X-87.8862 Y74.7049 R1 K136 + X-88.8320 Y73.3319 R1 K137 + X-89.6198 Y71.8821 R1 K138 + X-90.2439 Y70.3735 R1 K139 + X-90.7009 Y68.8240 R1 K140 + X-90.9890 Y67.2521 R1 K141 + X-91.1087 Y65.6758 R1 K142 + X-91.0620 Y64.1129 R1 K143 + X-90.8533 Y62.5808 R1 K144 + X-90.4884 Y61.0959 R1 K145 + X-89.9747 Y59.6740 R1 K146 + X-89.3215 Y58.3298 R1 K147 + X-88.5393 Y57.0766 R1 K148 + X-87.6398 Y55.9266 R1 K149 + X-86.6359 Y54.8904 R1 K150 + X-85.5415 Y53.9770 R1 K151 + X-84.3710 Y53.1939 R1 K152 + X-83.1396 Y52.5469 R1 K153 + X-81.8627 Y52.0400 R1 K154 + X-80.5560 Y51.6757 R1 K155 + X-79.2351 Y51.4544 R1 K156 + X-77.9154 Y51.3753 R1 K157 + X-76.6119 Y51.4355 R1 K158 + X-75.3392 Y51.6308 R1 K159 + X-74.1110 Y51.9554 R1 K160 + X-72.9401 Y52.4023 R1 K161 + X-71.8387 Y52.9631 R1 K162 + X-70.8173 Y53.6281 R1 K163 + X-69.8857 Y54.3870 R1 K164 + X-69.0521 Y55.2283 R1 K165 + X-68.3233 Y56.1401 R1 K166 + X-67.7049 Y57.1097 R1 K167 + X-67.2008 Y58.1242 R1 K168 + X-66.8135 Y59.1705 R1 K169 + X-66.5442 Y60.2354 R1 K170 + X-66.3923 Y61.3060 R1 K171 + X-66.3562 Y62.3696 R1 K172 + X-66.4325 Y63.4138 R1 K173 + X-66.6170 Y64.4271 R1 K174 + X-66.9039 Y65.3983 R1 K175 + X-67.2866 Y66.3175 R1 K176 + X-67.7573 Y67.1753 R1 K177 + X-68.3075 Y67.9637 R1 K178 + X-68.9280 Y68.6756 R1 K179 + X-69.6088 Y69.3050 R1 K180 + X-70.3397 Y69.8473 R1 K181 + X-71.1101 Y70.2991 R1 K182 + X-71.9091 Y70.6582 R1 K183 + X-72.7261 Y70.9236 R1 K184 + X-73.5503 Y71.0955 R1 K185 + X-74.3713 Y71.1755 R1 K186 + X-75.1792 Y71.1661 R1 K187 + X-75.9644 Y71.0710 R1 K188 + X-76.7181 Y70.8949 R1 K189 + X-77.4320 Y70.6431 R1 K190 + X-78.0989 Y70.3222 R1 K191 + X-78.7122 Y69.9390 R1 K192 + X-79.2666 Y69.5013 R1 K193 + X-79.7573 Y69.0171 R1 K194 + X-80.1810 Y68.4947 R1 K195 + X-80.5351 Y67.9427 R1 K196 + X-80.8183 Y67.3699 R1 K197 + X-81.0302 Y66.7848 R1 K198 + X-81.1714 Y66.1960 R1 K199 + X-81.2436 Y65.6115 R1 K200 + X-81.2493 Y65.0393 R1 K201 + X-81.1918 Y64.4867 R1 K202 + X-81.0754 Y63.9603 R1 K203 + X-80.9049 Y63.4662 R1 K204 + X-80.6858 Y63.0099 R1 K205 + X-80.4240 Y62.5959 R1 K206 + X-80.1261 Y62.2279 R1 K207 + X-79.7985 Y61.9087 R1 K208 + X-79.4482 Y61.6404 R1 K209 + X-79.0822 Y61.4241 R1 K210 + X-78.7073 Y61.2599 R1 K211 + X-78.3304 Y61.1472 R1 K212 + X-77.9578 Y61.0846 R1 K213 + X-77.5958 Y61.0698 R1 K214 + X-77.2786 Y61.0973 R1 K215 + X-77.0877 Y61.1358 R1 K216 + X-77.0080 Y61.1560 R1 K217 +G6.2 K218 +G6.2 K218 +G6.2 K218 +G6.2 K218 +G1 X-77.0080 Y61.1560 Z1 +G0 X-77.0080 Y61.1560 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Stella #1=1.jpg b/nc_files/nurbs/G6/Curva_Stella #1=1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..284a062ef6fc7bc38faa69c953c7937ca149c679 GIT binary patch literal 134904 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 YZ + +(Curva acquisita Nr=1) + +#10=290 ; feedrate + +G21 G40 G54 G90 G94 +G0 X10 + +Y0 Z0 + +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +G0 Y63.562 Z106.120 +G0 X1 +G1 X-1 F100 + +G19 (Plane YZ) +F#10 +G6.2 Y63.562 Z106.120 R1 K0 P3 Q2 + Y64.124 Z106.120 R1 K0 + Y65.998 Z103.621 R1 K0 + Y80.988 Z83.634 R1 K1 + Y110.968 Z83.634 R1 K2 + Y86.984 Z59.650 R1 K3 + Y92.980 Z35.666 R1 K4 + Y63.000 Z53.654 R1 K5 + Y33.020 Z35.666 R1 K6 + Y39.016 Z59.650 R1 K7 + Y15.032 Z83.634 R1 K8 + Y45.012 Z83.634 R1 K9 + Y60.002 Z103.621 R1 K10 + Y61.876 Z106.120 R1 K11 + Y63.000 Z106.120 R1 K12 + Y63.562 Z106.120 R1 K13 +G6.2 K14 +G6.2 K14 +G6.2 K14 +G1 Y63.562 Z106.120 X1 +G0 Y63.562 Z106.120 X10 + +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc b/nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc new file mode 100644 index 00000000000..a54a72df11b --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Stella #1=2-zx.ngc @@ -0,0 +1,46 @@ + +; XY -> ZX + +(Curva acquisita Nr=1) + +#10=290 ; feedrate + +G21 G40 G54 G90 G94 +G0 Y10 + + + + +Z0X0 + +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +G0 Z63.562 X106.120 +G0 Y1 +G1 Y-1 F100 + +G18 (Plane ZX) + +F#10 +G6.2 Z63.562 X106.120 R1 K0 P3 Q2 + Z64.124 X106.120 R1 K0 + Z65.998 X103.621 R1 K0 + Z80.988 X83.634 R1 K1 + Z110.968 X83.634 R1 K2 + Z86.984 X59.650 R1 K3 + Z92.980 X35.666 R1 K4 + Z63.000 X53.654 R1 K5 + Z33.020 X35.666 R1 K6 + Z39.016 X59.650 R1 K7 + Z15.032 X83.634 R1 K8 + Z45.012 X83.634 R1 K9 + Z60.002 X103.621 R1 K10 + Z61.876 X106.120 R1 K11 + Z63.000 X106.120 R1 K12 + Z63.562 X106.120 R1 K13 +G6.2 K14 +G6.2 K14 +G6.2 K14 +G1 Z63.562 X106.120 Y1 +G0 Z63.562 X106.120 Y10 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Stella #1=3.ngc b/nc_files/nurbs/G6/Curva_Stella #1=3.ngc new file mode 100644 index 00000000000..4a1b5560135 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Stella #1=3.ngc @@ -0,0 +1,34 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X63.562 Y106.120 + Z1 + G1 Z-1 F100 +F100 +G6.2 X63.562 Y106.120 R1 K0 P3 Q3 + X64.124 Y106.120 R1 K0 + X65.998 Y103.621 R1 K0 + X80.988 Y83.634 R1 K1 + X110.968 Y83.634 R1 K2 + X86.984 Y59.650 R1 K3 + X92.980 Y35.666 R1 K4 + X63.000 Y53.654 R1 K5 + X33.020 Y35.666 R1 K6 + X39.016 Y59.650 R1 K7 + X15.032 Y83.634 R1 K8 + X45.012 Y83.634 R1 K9 + X60.002 Y103.621 R1 K10 + X61.876 Y106.120 R1 K11 + X63.000 Y106.120 R1 K12 + X63.562 Y106.120 R1 K13 +G6.2 K14 +G6.2 K14 +G6.2 K14 +G1 X63.562 Y106.120 Z1 +G0 X63.562 Y106.120 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb b/nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb new file mode 100644 index 00000000000..d3b78dd5bde --- /dev/null +++ b/nc_files/nurbs/G6/Rhino_Convert_NURBS.rvb @@ -0,0 +1,325 @@ +Option Explicit + + ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' + ' Description + ' Divides a curve based on the linear distance between points. + ' + Sub CREA_CODE + 'La curva chiusa spezzata; dopodich suddivisa in segmenti, per ogni segmento sono generate le istruzioni NC in formato NURBS + + 'Dim strPoint, strText, dblWeight, Gcode, dblDegree, dblknot_vector + Dim cc + 'Rhino.MessageBox ("Dalla barra di comando inserire 1 per realizzare l'interpolazione NURBS tramite movimento circolare (con incrementi du=cost), 2 per realizzare l'interpolazione NURBS tramite movimento circolare (con incrementi ds=cost), 3 per realizzare l'interpolazione NURBS tramite movimento lineare (con incrementi ds=cost) oppure non inserire nulla (premere invio) per lasciare la scelta al CN in funzione del valore assunto dall'incremento ds") + cc=Rhino.GetInteger("Selezionare la modalit di interpolazione NURBS inserendo 1,2,3 oppure premere direttamente invio") + + Dim F, S + Dim PP + 'Rhino.MessageBox ("Dalla barra di comando inserire il valore dell'avanzamento [mm/min] con il quale eseguire l'interpolazione NURBS") + F=Rhino.GetString("Inserire l'avanzamento [mm/min] con il quale eseguire l'interpolazione NURBS") + S=Rhino.GetString("Inserire la velocit di taglio in [m/min] ") + PP=Rhino.GetString("Inserire la profondit di passata [mm]") + + + Dim G + Dim III + + 'Chiede all'utente di specificare un nome di file + Dim strFilter, strFileName + strFilter = " File NGC (*.ngc)|*.ngc|All Files (*.*)|*.*||" + strFileName = Rhino.SaveFileName("Save Code NC ", strFilter) + If IsNull(strFileName) Then Exit Sub + + ' Ottieni i file system dall'oggetto + Dim objFSO, objStream + Set objFSO = CreateObject("Scripting.FileSystemObject") + + 'Aprire un file di testo da scrivere + On Error Resume Next + Set objStream = objFSO.CreateTextFile(strFileName, True) + If Err Then + MsgBox Err.Description + Exit Sub + End If + + + objStream.WriteLine("G21 G40 G54 G90 G94") + objStream.WriteLine("G0 Z50") + objStream.WriteLine("X0Y0") + objStream.WriteLine("M6 T0") + objStream.WriteLine("G96 M3 S"+ CStr (S)) + objStream.WriteLine("G0 Z50 (movimento per avvicinarsi alla posizione di taglio)") + + Dim var + var=1 + For III =1 To 100 Step 1 'Il numero massimo di curve selezionabili fissato pari a 100 + + If(var=1)Then + G=1 + var=2 + Else + G=Rhino.GetInteger("Inserire 1 per acquisire una nuova curva, altrimenti 0 per chiudere il ciclo") + End If + + If (G=1) Then + objStream.WriteLine("(Curva acquisita N="+CStr (III)+")") + If(III>1) Then + + + End If + + + Const rhCurveObject = 4 + Dim sCurve, strObject, CRV + CRV= Rhino.GetObject("Selezionare la curva NURBS", rhCurveObject) + Rhino.Print ("Curva NURBS acquisita") + If IsNull(CRV) Then Exit Sub + + Dim arrDomain + + If Rhino.IsCurve(CRV) Then + arrDomain = Rhino.CurveDomain(CRV) + End If + + + 'Dim ij,pt + 'For ij=(arrDomain(1)-0.0001) To arrDomain(1) Step 0.0001 + ' pt = Rhino.EvaluateCurve(CRV, ij) 'PUNTO APPARTENENTE ALLA CRVA + ' Rhino.AddPoint pt + 'Next + + + Dim tt0, tt1 + + tt0 = (arrDomain(1)-0.0001) + tt1 = arrDomain(1) + sCurve= Rhino.TrimCurve(CRV, Array(tt1, tt0),vbFalse ) + strObject=sCurve + 'Rhino.DeleteObject (sCurva) + 'Rhino.DeleteObject (strObject) + + Rhino.EnableRedraw True + + ',vbFalse + + 'Ottieni i punti di controllo della curva + Dim arrPoints, intCount + arrPoints = Rhino.CurvePoints(strObject) + intCount = Rhino.CurvePointCount(strObject) + If Not IsArray(arrPoints) Then Exit Sub + + + + 'Ottieni i valori dei peso dei punti di controllo della curva + Dim arrWeights + arrWeights = Rhino.CurveWeights(strObject) 'IL VALORE 2.555 LO RESTITUISCE CON LA VIRGOLA 2,555 lo modifico manualmente + If Not IsArray(arrWeights) Then Exit Sub + + 'Ottieni il grado della curva + Dim intDegree, k, n, c, U + intDegree = Rhino.CurveDegree(strObject) + 'If Not IsInt(intDegree) Then Exit Sub + k=intDegree+1 'ordine NURBS + n=intCount-1 ' i punti di controllo vanno da {P0.....Pn} se fossero 7 n=6 + Dim knot_vector()'si crea un vettore grande (l'ideale n+k) + Dim ii, intRankK + c= (n+k) + + For ii=0 To c Step 1 ' esegue finch i<=n+k la dimensione del vettore dei nodi(m+1)= n+k+1; k grado n numero complessivo dei punti di controllo;i parte da 0 + If (ii < k) Then ' se i= k And ii <= n)Then ' Se In Knot considerato va da n knot=n-k+2 + End If + Next + + intRankK = c+1 ' +1 perch c' sempre il discorso il il numero dei punti di controllo intCount=n+1 + 'Rhino.MessageBox ("il grado della curva NURBS ="&" "&intDegree) + 'Rhino.MessageBox ("il numero dei punti di controllo ="&" "&intCount) + 'Rhino.MessageBox ("la dimensione del vettorei dei nodi ="&" "&intRankK) + + Dim intBB + intBB=(intCount)/k'se l'ordine della NURBS uguale a k il numero minimo dei punti pari a 4. + 'k=4 n=4 knot=(0000, 1111) + Dim sud + sud=0 + 'Suddivisione delle curva + 'Rhino.MessageBox ("La curva suddivisa in "&" "&intBB) + If(intBB >=2000000000)Then 'la suddivisione condotta solo se bb>=2 ovvero solo se la curva pu essere suddivisa in due o pi tratti + + sud=1 + objStream.WriteLine(" X... Y...") + objStream.WriteLine(" Z1") + objStream.WriteLine(" G1 Z"+ CStr (PP)+ " F"+ CStr (F)) + Dim nSegments, aPoints + nSegments = intBB + aPoints = Rhino.DivideCurve(strObject, nSegments) 'questo comando divide la curva in segmenti e ne memorizza gli estremi + If Not IsArray(aPoints) Then Exit Sub + Rhino.EnableRedraw False + + Dim i, t0, t1, CCurva + For i = 0 To UBound(aPoints) - 1 + t0 = Rhino.CurveClosestPoint(strObject, aPoints(i)) + t1 = Rhino.CurveClosestPoint(strObject, aPoints(i+1)) + CCurva= Rhino.TrimCurve(strObject, Array(t0, t1), vbFalse) + 'strObject=CCurva + '''''''''''''''''''''''''''''''' + 'Ottieni i punti di controllo della curva + arrPoints = Rhino.CurvePoints(CCurva) + intCount = Rhino.CurvePointCount(CCurva) + + If Not IsArray(arrPoints) Then Exit Sub + + 'Ottieni i valori dei peso dei punti di controllo della curva + arrWeights = Rhino.CurveWeights(CCurva) 'IL VALORE 2.555 LO RESTITUISCE CON LA VIRGOLA 2,555 lo modifico manualmente + If Not IsArray(arrWeights) Then Exit Sub + + 'Ottieni il grado della curva + intDegree = Rhino.CurveDegree(CCurva) + 'If Not IsInt(intDegree) Then Exit Sub + k=intDegree+1 'ordine NURBS + n=intCount-1 ' i punti di controllo vanno da {P0.....Pn} se fossero 7 n=6 + c= (n+k) + + For ii=0 To c Step 1 ' esegue finchè i<=n+k la dimensione del vettore dei nodi(m+1)= n+k+1; k grado n numero complessivo dei punti di controllo;i parte da 0 + If (ii < k) Then ' se i= k And ii <= n)Then ' Se In Knot considerato va da n knot=n-k+2 + End If + Next + + intRankK = c+1 ' +1 perch c' sempre il discorso il il numero dei punti di controllo intCount=n+1 + + + 'Rhino.MessageBox ("il grado della curva NURBS ="&" "&intDegree) + 'Rhino.MessageBox ("il numero dei punti di controllo ="&" "&intCount) + 'Rhino.MessageBox ("la dimensione del vettorei dei nodi ="&" "&intRankK) + + ' Write each point as text to the file (Scrivere nel file ogni punto come testo ) + ' Write each point as text to the file + + Dim strPoint, strText, dblWeight, Gcode, dblDegree, dblknot_vector, j, jj + Gcode=Split(Rhino.Pt2Str(arrPoints(0)),",") + 'objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)) + 'objStream.WriteLine(" Z1") + 'objStream.WriteLine(" G1 Z"+ CStr (PP)+ " F"+ CStr (F)) + + ' this changes are untestet, because I do not have Rhino jjf + ' objStream.WriteLine("#1="+ CStr (cc)) jjf + ' objStream.WriteLine("G6.2 X"+Gcode(0)+" Y"+Gcode(1)+ " R" +Replace(arrWeights(0),",",".")+" K"+CStr(knot_vector(0))+" P"+ CStr(k)+ " F"+ CStr (F)) jjf + objStream.WriteLine(" F"+ CStr (F)) + objStream.WriteLine("G6.2 X"+Gcode(0)+" Y"+Gcode(1)+ " R" +Replace(arrWeights(0),",",".")+" K"+CStr(knot_vector(0))+" P"+ CStr(k)+ " Q"+ CStr (cc)) + For j =1 To intCount-1 + Gcode=Split(Rhino.Pt2Str(arrPoints(j)),",") + objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)+ " R" + Replace(arrWeights(j),",",".")+" K"+CStr(knot_vector(j))) + Next + + For jj =intCount To (n+k) Step 1 + objStream.WriteLine( "G6.2 K" & knot_vector(jj))'NB se la curva non avesse gli ultimi tre nodi con molteplicit piena si avrebbe un errore, i nodi programmati non coincidono con quelli della curva. + Next + 'objStream.WriteLine("G1 X"+Gcode(0)+" Y"+Gcode(1)+ " Z1") + 'objStream.WriteLine("G0 X"+Gcode(0)+" Y"+Gcode(1)+ " Z50") + + + Rhino.DeleteObject (CCurva)'Questo comando cancella il segmento di curva generato + 'Rhino.DeleteObject (sCurva) + 'Rhino.DeleteObject (strObject) + Next + 'objStream.WriteLine("G1 X...Y...Z...(inserire posizione per all'ontanarsi dal profilo)") + 'objStream.WriteLine("G0 Z50") + 'objStream.WriteLine("M5") + 'objStream.WriteLine("M2") + + + + + Else 'se il numero dei punti di controllo fosse <2*ordine + + 'Ottieni i valori dei peso dei punti di controllo della curva + arrWeights = Rhino.CurveWeights(strObject) 'IL VALORE 2.555 LO RESTITUISCE CON LA VIRGOLA 2,555 lo modifico manualmente + If Not IsArray(arrWeights) Then Exit Sub + + 'Ottieni il grado della curva + intDegree = Rhino.CurveDegree(strObject) + 'If Not IsInt(intDegree) Then Exit Sub + k=intDegree+1 'ordine NURBS + n=intCount-1 ' i punti di controllo vanno da {P0.....Pn} se fossero 7 n=6 + c= (n+k) + + For ii=0 To c Step 1 ' esegue finchè i<=n+k la dimensione del vettore dei nodi(m+1)= n+k+1; k grado n numero complessivo dei punti di controllo;i parte da 0 + If (ii < k) Then ' se i= k And ii <= n)Then ' Se In Knot considerato va da n knot=n-k+2 + End If + Next + + intRankK = c+1 ' +1 perch c' sempre il discorso il il numero dei punti di controllo intCount=n+1 + + + 'Rhino.MessageBox ("il grado della curva NURBS ="&" "&intDegree) + 'Rhino.MessageBox ("il numero dei punti di controllo ="&" "&intCount) + 'Rhino.MessageBox ("la dimensione del vettorei dei nodi ="&" "&intRankK) + + ' Write each point as text to the file (Scrivere nel file ogni punto come testo ) + ' Write each point as text to the file + + 'Dim strPoint, strText, dblWeight, Gcode, dblDegree, dblknot_vector, j, jj + Gcode=Split(Rhino.Pt2Str(arrPoints(0)),",") + + + objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)) + objStream.WriteLine(" Z1") + objStream.WriteLine(" G1 Z"+ CStr (PP)+ " F"+ CStr (F)) + objStream.WriteLine("#1="+ CStr (cc)) + objStream.WriteLine("G6.2 X"+Gcode(0)+" Y"+Gcode(1)+ " R" +Replace(arrWeights(0),",",".")+" K"+CStr(knot_vector(0))+" P"+ CStr(k)+ " F"+ CStr (F)) + For j =1 To intCount-1 + Gcode=Split(Rhino.Pt2Str(arrPoints(j)),",") + objStream.WriteLine(" X"+Gcode(0)+" Y"+Gcode(1)+ " R" + Replace(arrWeights(j),",",".")+" K"+CStr(knot_vector(j))) + Next + + For jj =intCount To (n+k) Step 1 + objStream.WriteLine( "K" & knot_vector(jj))'NB se la curva non avesse gli ultimi tre nodi con molteplicit piena si avrebbe un errore, i nodi programmati non coincidono con quelli della curva. + Next + objStream.WriteLine("G1 X"+Gcode(0)+" Y"+Gcode(1)+ " Z1") + objStream.WriteLine("G0 X"+Gcode(0)+" Y"+Gcode(1)+ " Z50") + End If + Rhino.DeleteObject (sCurva) + Rhino.DeleteObject (strObject) + + + Else + Rhino.DeleteObject (sCurva) + Rhino.DeleteObject (strObject) + If(sud >=1) Then + objStream.WriteLine("G1 X"+Gcode(0)+" Y"+Gcode(1)+ " Z1") + objStream.WriteLine("G0 X"+Gcode(0)+" Y"+Gcode(1)+ " Z50") + End If + objStream.WriteLine("M5") + objStream.WriteLine("M2") + + Exit Sub + End If + Rhino.EnableRedraw True + Next + + End Sub + + + + diff --git a/nc_files/nurbs/G6/Ruota_dentata #1=1.jpg b/nc_files/nurbs/G6/Ruota_dentata #1=1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfaf2eac4aa65c1a2aa77b2313be53d45c4c2c5f GIT binary patch literal 145440 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

    wUB^np%yvz4;uAjQRnqV2NLfM7r75{p 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

    bQ+smWt?G4dh1fIk@!HC4M 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 N&b?KgtsnlL`8WJ6fg=C_ literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G6/UNIPA #1=1.ngc b/nc_files/nurbs/G6/UNIPA #1=1.ngc new file mode 100644 index 00000000000..94a05adb1d4 --- /dev/null +++ b/nc_files/nurbs/G6/UNIPA #1=1.ngc @@ -0,0 +1,114 @@ +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 +;M6 T0 +;G96 M3 S200 +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X3.065 Y104.213 + Z1 + G1 Z-1 F100 + +#10=290 + +F#10 +G6.2 X3.065 Y104.213 R1 K0 P4 Q1 + X16.980 Y86.399 R1 K0 + X30.607 Y97.799 R1 K0 + X19.550 Y119.323 R1 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G1 X19.550 Y119.323 Z1 +G0 X19.550 Y119.323 Z10 +(Curva acquisita Nr=2) + X38.715 Y107.894 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X38.715 Y107.894 R1 K0 P4 Q1 + X23.247 Y146.298 R2.1019057984 K0 + X68.900 Y86.090 R1.00022038115968 K0 + X51.150 Y143.427 R1.00000003305717 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G1 X51.150 Y143.427 Z1 +G0 X51.150 Y143.427 Z10 +(Curva acquisita Nr=3) + X66.650 Y122.061 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X66.650 Y122.061 R1 K0 P2 Q1 + X68.846 Y145.629 R1 K0 +G6.2 K1 +G6.2 K1 +G1 X68.846 Y145.629 Z1 +G0 X68.846 Y145.629 Z10 +(Curva acquisita Nr=4) + X69.058 Y147.472 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X69.058 Y147.472 R1 K0 P4 Q1 + X68.249 Y147.666 R1 K0 + X67.055 Y151.734 R1 K0 + X71.905 Y150.569 R1 K0 + X69.866 Y147.278 R1 K1 + X69.058 Y147.472 R1 K2 +G6.2 K3 +G6.2 K3 +G6.2 K3 +G6.2 K3 +G1 X69.058 Y147.472 Z1 +G0 X69.058 Y147.472 Z10 +(Curva acquisita Nr=5) + X77.303 Y119.564 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X77.303 Y119.564 R1 K0 P4 Q1 + X78.649 Y138.868 R1 K0 + X90.323 Y142.861 R1 K0 + X101.109 Y136.873 R1 K0 + X96.668 Y123.685 R1 K1 + X85.882 Y129.673 R1 K2 + X79.431 Y131.556 R1 K3 +G6.2 K4 +G6.2 K4 +G6.2 K4 +G6.2 K4 +G1 X79.431 Y131.556 Z1 +G0 X79.431 Y131.556 Z10 +(Curva acquisita Nr=6) + X97.559 Y103.575 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X97.559 Y103.575 R1 K0 P4 Q1 + X124.571 Y135.020 R1 K0 + X135.431 Y124.434 R1 K0 + X124.703 Y87.512 R1 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G1 X124.703 Y87.512 Z1 +G0 X124.703 Y87.512 Z10 +(Curva acquisita Nr=7) + X103.139 Y113.276 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X103.139 Y113.276 R1 K0 P2 Q1 + X131.270 Y103.021 R1 K0 +G6.2 K1 +G6.2 K1 +G1 X131.270 Y103.021 Z1 +G0 X131.270 Y103.021 Z10 +M5 +M2 + diff --git a/nc_files/nurbs/G6/UNIPA #1=2.ngc b/nc_files/nurbs/G6/UNIPA #1=2.ngc new file mode 100644 index 00000000000..8c52305a4d4 --- /dev/null +++ b/nc_files/nurbs/G6/UNIPA #1=2.ngc @@ -0,0 +1,113 @@ + +#10=290 ; Velocity + +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X3.065 Y104.213 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X3.065 Y104.213 R1 K0 P4 Q2 + X16.980 Y86.399 R1 K0 + X30.607 Y97.799 R1 K0 + X19.550 Y119.323 R1 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G1 X19.550 Y119.323 Z1 +G0 X19.550 Y119.323 Z50 +(Curva acquisita Nr=2) + X38.715 Y107.894 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X38.715 Y107.894 R1 K0 P4 Q2 + X23.247 Y146.298 R2.1019057984 K0 + X68.900 Y86.090 R1.00022038115968 K0 + X51.150 Y143.427 R1.00000003305717 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G1 X51.150 Y143.427 Z1 +G0 X51.150 Y143.427 Z50 +(Curva acquisita Nr=3) + X66.650 Y122.061 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X66.650 Y122.061 R1 K0 P2 Q2 + X68.846 Y145.629 R1 K0 +G6.2 K1 +G6.2 K1 +G1 X68.846 Y145.629 Z1 +G0 X68.846 Y145.629 Z50 +(Curva acquisita Nr=4) + X69.058 Y147.472 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X69.058 Y147.472 R1 K0 P4 Q2 + X68.249 Y147.666 R1 K0 + X67.055 Y151.734 R1 K0 + X71.905 Y150.569 R1 K0 + X69.866 Y147.278 R1 K1 + X69.058 Y147.472 R1 K2 +G6.2 K3 +G6.2 K3 +G6.2 K3 +G6.2 K3 +G1 X69.058 Y147.472 Z1 +G0 X69.058 Y147.472 Z50 +(Curva acquisita Nr=5) + X77.303 Y119.564 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X77.303 Y119.564 R1 K0 P4 Q2 + X78.649 Y138.868 R1 K0 + X90.323 Y142.861 R1 K0 + X101.109 Y136.873 R1 K0 + X96.668 Y123.685 R1 K1 + X85.882 Y129.673 R1 K2 + X79.431 Y131.556 R1 K3 +G6.2 K4 +G6.2 K4 +G6.2 K4 +G6.2 K4 +G1 X79.431 Y131.556 Z1 +G0 X79.431 Y131.556 Z50 +(Curva acquisita Nr=6) + X97.559 Y103.575 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X97.559 Y103.575 R1 K0 P4 Q2 + X124.571 Y135.020 R1 K0 + X135.431 Y124.434 R1 K0 + X124.703 Y87.512 R1 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G1 X124.703 Y87.512 Z1 +G0 X124.703 Y87.512 Z50 +(Curva acquisita Nr=7) + X103.139 Y113.276 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X103.139 Y113.276 R1 K0 P2 Q2 + X131.270 Y103.021 R1 K0 +G6.2 K1 +G6.2 K1 +G1 X131.270 Y103.021 Z1 +G0 X131.270 Y103.021 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/UNIPA #1=3.ngc b/nc_files/nurbs/G6/UNIPA #1=3.ngc new file mode 100644 index 00000000000..8ffddc3666a --- /dev/null +++ b/nc_files/nurbs/G6/UNIPA #1=3.ngc @@ -0,0 +1,121 @@ + +#10=290 ; Velocity + +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X3.065 Y104.213 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X3.065 Y104.213 R1 K0 P4 Q3 + X16.980 Y86.399 R1 K0 + X30.607 Y97.799 R1 K0 + X19.550 Y119.323 R1 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 + +G1 X19.550 Y119.323 Z1 +G0 X19.550 Y119.323 Z50 +(Curva acquisita Nr=2) + X38.715 Y107.894 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X38.715 Y107.894 R1 K0 P4 Q3 + X23.247 Y146.298 R2.1019057984 K0 + X68.900 Y86.090 R1.00022038115968 K0 + X51.150 Y143.427 R1.00000003305717 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 + +G1 X51.150 Y143.427 Z1 +G0 X51.150 Y143.427 Z50 +(Curva acquisita Nr=3) + X66.650 Y122.061 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X66.650 Y122.061 R1 K0 P2 Q3 + X68.846 Y145.629 R1 K0 +G6.2 K1 +G6.2 K1 + +G1 X68.846 Y145.629 Z1 +G0 X68.846 Y145.629 Z50 +(Curva acquisita Nr=4) + X69.058 Y147.472 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X69.058 Y147.472 R1 K0 P4 Q3 + X68.249 Y147.666 R1 K0 + X67.055 Y151.734 R1 K0 + X71.905 Y150.569 R1 K0 + X69.866 Y147.278 R1 K1 + X69.058 Y147.472 R1 K2 +G6.2 K3 +G6.2 K3 +G6.2 K3 +G6.2 K3 + +G1 X69.058 Y147.472 Z1 +G0 X69.058 Y147.472 Z50 +(Curva acquisita Nr=5) + X77.303 Y119.564 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X77.303 Y119.564 R1 K0 P4 Q3 + X78.649 Y138.868 R1 K0 + X90.323 Y142.861 R1 K0 + X101.109 Y136.873 R1 K0 + X96.668 Y123.685 R1 K1 + X85.882 Y129.673 R1 K2 + X79.431 Y131.556 R1 K3 +G6.2 K4 +G6.2 K4 +G6.2 K4 +G6.2 K4 + +G1 X79.431 Y131.556 Z1 +G0 X79.431 Y131.556 Z50 +(Curva acquisita Nr=6) + X97.559 Y103.575 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X97.559 Y103.575 R1 K0 P4 Q3 + X124.571 Y135.020 R1 K0 + X135.431 Y124.434 R1 K0 + X124.703 Y87.512 R1 K0 +G6.2 K1 +G6.2 K1 +G6.2 K1 +G6.2 K1 + +G1 X124.703 Y87.512 Z1 +G0 X124.703 Y87.512 Z50 +(Curva acquisita Nr=7) + X103.139 Y113.276 + Z1 + G1 Z-1 F100 +F#10 +G6.2 X103.139 Y113.276 R1 K0 P2 Q3 + X131.270 Y103.021 R1 K0 +G6.2 K1 +G6.2 K1 + +G1 X131.270 Y103.021 Z1 +G0 X131.270 Y103.021 Z50 +M5 +M2 + diff --git a/nc_files/nurbs/G6/homer #1=1.jpg b/nc_files/nurbs/G6/homer #1=1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..535fd05d17437d082e1bef719b318d9382e10618 GIT binary patch literal 161131 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%0DV$yjjF@2OwB`t3kir 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 YZ + + + +G21 G40 G54 G90 G94 +G0 X10 +Y0Z0 + +G0 X10 (movimento per avvicinarsi alla posizione di taglio) + +#10=290 + +(Curva acquisita Nr=16) +G0 Y-96.6264 Z62.3541 +G0 X1 +G1 X-1 F100 + +G19 (Plane YZ) + +F#10 +G6.2 Y-96.6264 Z62.3541 R1 K0 P4 Q1 + Y-97.4527 Z67.2421 R1 K0 + Y-99.0487 Z76.6838 R1 K0 + Y-91.3490 Z58.1042 R1 K0 + Y-91.3512 Z77.9016 R1 K1 + Y-88.6822 Z69.1298 R1 K2 + Y-87.3324 Z64.6938 R1 K3 +G6.2 K4 +G6.2 K4 +G6.2 K4 +G6.2 K4 + +G1 Y-87.3324 Z64.6938 X1 +G0 Y-87.3324 Z64.6938 X10 +M5 +M2 + diff --git a/nc_files/nurbs/G6/homer-16 #1=1-zx.ngc b/nc_files/nurbs/G6/homer-16 #1=1-zx.ngc new file mode 100644 index 00000000000..caf4c88006e --- /dev/null +++ b/nc_files/nurbs/G6/homer-16 #1=1-zx.ngc @@ -0,0 +1,35 @@ + + +G21 G40 G54 G90 G94 +G0 Y10 +Z0X0 + +G0 Y10 (movimento per avvicinarsi alla posizione di taglio) + +#10=290 + +(Curva acquisita Nr=16) +G0 Z-96.6264 X62.3541 +G0 Y1 +G1 Y-1 F100 + +G18 (Plane ZX) + +F#10 +G6.2 Z-96.6264 X62.3541 R1 K0 P4 Q1 + Z-97.4527 X67.2421 R1 K0 + Z-99.0487 X76.6838 R1 K0 + Z-91.3490 X58.1042 R1 K0 + Z-91.3512 X77.9016 R1 K1 + Z-88.6822 X69.1298 R1 K2 + Z-87.3324 X64.6938 R1 K3 +G6.2 K4 +G6.2 K4 +G6.2 K4 +G6.2 K4 + +G1 Z-87.3324 X64.6938 Y1 +G0 Z-87.3324 X64.6938 Y10 +M5 +M2 + diff --git a/nc_files/nurbs/G6/read.me b/nc_files/nurbs/G6/read.me new file mode 100644 index 00000000000..72f072094d8 --- /dev/null +++ b/nc_files/nurbs/G6/read.me @@ -0,0 +1,39 @@ + +The files are from La Valvo and Drago: +An Efficient NURBS Path Generator for a Open Source CNC + +A little bit modified by Joachim Franek for inclusion to LinuxCNC 2023-01-20 + +Curva_Chitarra #1=1.ngc +Curva_Chitarra #1=2.ngc +Curva_Chitarra #1=3.ngc +Curva_Delfino #1=1.ngc +Curva_Delfino #1=2.ngc +Curva_Delfino #1=3.ngc +Curva_Farfalla #1=1.ngc +Curva_Farfalla #1=2.ngc +Curva_Farfalla #1=3.ngc +Curva_Mazatrol #1=1.ngc +Curva_Mazatrol #1=2.ngc +Curva_Mazatrol #1=3.ngc +Curva_Scrool_F #1=1.ngc +Curva_Scrool_F #1=2.ngc +Curva_Scrool_F #1=3.ngc +Curva_Scrool_M #1=1.ngc +Curva_Scrool_M #1=2.ngc +Curva_Scrool_M #1=3.ngc +Curva_Stella #1=1.ngc +Curva_Stella #1=2.ngc +Curva_Stella #1=3.ngc +homer #1=1.ngc +homer #1=2.ngc +homer #1=3.ngc +Ruota_dentata #1=1.ngc +Ruota_dentata #1=2.ngc +Ruota_dentata #1=3.ngc +UNIPA #1=1.ngc +UNIPA #1=2.ngc +UNIPA #1=3.ngc + + + diff --git a/nc_files/offsets.ngc b/nc_files/offsets.ngc new file mode 100644 index 00000000000..f0913b260fa --- /dev/null +++ b/nc_files/offsets.ngc @@ -0,0 +1,13 @@ +#5599 = 1 + + +# = 0 +o10 do +;(debug,set tool #) +M61Q#G43 +(debug, z offset=#5403) +g4p1 +G49 +# = [[#] + 1] +o10 while [[#] LT 5] +m2 diff --git a/nc_files/orphans/README b/nc_files/orphans/README new file mode 100644 index 00000000000..7daa805f24a --- /dev/null +++ b/nc_files/orphans/README @@ -0,0 +1,3 @@ +orphans/README + +abandoned or superseded .ngc files diff --git a/nc_files/plasmac/imperial_air_scribe.ngc b/nc_files/plasmac/imperial_air_scribe.ngc new file mode 100644 index 00000000000..018de5e3171 --- /dev/null +++ b/nc_files/plasmac/imperial_air_scribe.ngc @@ -0,0 +1,94 @@ +(imperial air-scribe) + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +M6 T1 (air scribe tool) +G43 (apply tool offsets) + +G0 X1.0918 Y0.7874 +M3 $1 S1 (start air-scribe) +G1 X1.0918 Y1.1811 +G1 X1.2493 Y1.1811 +G1 X1.3019 Y1.1155 +G1 X1.3019 Y1.0499 +G1 X1.2493 Y0.9827 +G1 X1.0918 Y0.9827 +M5 $1 (stop air-scribe) + +G0 X1.3753 Y1.1811 +M3 $1 S1 (start air-scribe) +G1 X1.3753 Y0.8530 +G1 X1.4278 Y0.7874 +M5 $1 (stop air-scribe) + +G0 X1.6588 Y0.8530 +M3 $1 S1 (start air-scribe) +G1 X1.6063 Y0.7874 +G1 X1.5538 Y0.7874 +G1 X1.5013 Y0.8530 +G1 X1.5013 Y0.9827 +G1 X1.5538 Y1.0499 +G1 X1.6063 Y1.0499 +G1 X1.6588 Y0.9827 +G1 X1.6588 Y0.8530 +G1 X1.7113 Y0.7874 +M5 $1 (stop air-scribe) + +G0 X1.7848 Y0.7874 +M3 $1 S1 (start air-scribe) +G1 X1.9422 Y0.7874 +G1 X1.9948 Y0.8530 +G1 X1.9422 Y0.9186 +G1 X1.8373 Y0.9186 +G1 X1.7848 Y0.9827 +G1 X1.8373 Y1.0499 +G1 X1.9948 Y1.0499 +M5 $1 (stop air-scribe) + +G0 X2.0682 Y0.7874 +M3 $1 S1 (start air-scribe) +G1 X2.0682 Y1.0499 +M5 $1 (stop air-scribe) + +G0 X2.0682 Y0.98270 +M3 $1 S1 (start air-scribe) +G1 X2.1207 Y1.0499 +G1 X2.1732 Y0.9449 +G1 X2.2257 Y1.0499 +G1 X2.2782 Y0.9827 +G1 X2.2782 Y0.7874 +M5 $1 (stop air-scribe) + +G0 X2.5092 Y0.8530 +M3 $1 S1 (start air-scribe) +G1 X2.4567 Y0.7874 +G1 X2.4042 Y0.7874 +G1 X2.3517 Y0.8530 +G1 X2.3517 Y0.9827 +G1 X2.4042 Y1.0499 +G1 X2.4567 Y1.0499 +G1 X2.5092 Y0.9827 +G1 X2.5092 Y0.8530 +G1 X2.5617 Y0.7874 +M5 $1 (stop air-scribe) + +G0 X2.8452 Y0.8530 +M3 $1 S1 (start air-scribe) +G1 X2.7926 Y0.7874 +G1 X2.6877 Y0.7874 +G1 X2.6352 Y0.8530 +G1 X2.6352 Y1.1155 +G1 X2.6877 Y1.1811 +G1 X2.7926 Y1.1811 +G1 X2.8452 Y1.1155 +M5 $1 (stop air-scribe) + +M6 T0 (torch tool) +G43 (apply tool offsets) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/imperial_circles.ngc b/nc_files/plasmac/imperial_circles.ngc new file mode 100644 index 00000000000..5ded93196c2 --- /dev/null +++ b/nc_files/plasmac/imperial_circles.ngc @@ -0,0 +1,25 @@ +(imperial circles) + +#1 = 2 (Scale) +#2 = 3 (Iterations) +#3 = 30 (Feed Rate) +#4 = 0.5 +#5 = [#1*#2*#4] + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +o100 repeat [#2] + G0 X[#5+-#4*#1] Y[#5+0] + M3 $0 S1 (start plasma torch) + G0 z0 + G2 I[#4*#1] + M5 $0 (stop plasma torch) + #4 = [#4+0.5] +o100 endrepeat + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/imperial_ihs_skip_thc_off.ngc b/nc_files/plasmac/imperial_ihs_skip_thc_off.ngc new file mode 100644 index 00000000000..2d2dcd43b0c --- /dev/null +++ b/nc_files/plasmac/imperial_ihs_skip_thc_off.ngc @@ -0,0 +1,30 @@ +(imperial skip ihs with thc disabled) + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +G0 X1 Y1 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +G0 X1 Y2 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +G0 X1 Y3 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +G0 X1 Y4 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/imperial_ihs_skip_thc_on.ngc b/nc_files/plasmac/imperial_ihs_skip_thc_on.ngc new file mode 100644 index 00000000000..40bcc94eeee --- /dev/null +++ b/nc_files/plasmac/imperial_ihs_skip_thc_on.ngc @@ -0,0 +1,30 @@ +(imperial skip ihs with thc enabled) + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +G0 X1 Y1 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +G0 Y2 +M3 $0 S1 (start plasma torch) +G1 X1 +M5 $0 (stop plasma torch) + +G0 Y3 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +G0 Y4 +M3 $0 S1 (start plasma torch) +G1 X1 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/imperial_line.ngc b/nc_files/plasmac/imperial_line.ngc new file mode 100644 index 00000000000..db7eecd84f7 --- /dev/null +++ b/nc_files/plasmac/imperial_line.ngc @@ -0,0 +1,15 @@ +(imperial line) + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +G0 X0.5 Y0.5 +M3 $0 S1 (start plasma torch) +G1 X23.5 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/imperial_material_change.ngc b/nc_files/plasmac/imperial_material_change.ngc new file mode 100644 index 00000000000..f1e950a488e --- /dev/null +++ b/nc_files/plasmac/imperial_material_change.ngc @@ -0,0 +1,41 @@ +(imperial material change) + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +M190 P1 (material #1) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X1 Y1 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +M190 P2 (material #2) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y2 +M3 $0 S1 (start plasma torch) +G1 X1 +M5 $0 (stop plasma torch) + +M190 P3 (material #3) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X1 Y3 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +M190 P4 (material #4) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y4 +M3 $0 S1 (start plasma torch) +G1 X1 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M190 P-1 (default material) +M2 (end program) diff --git a/nc_files/plasmac/imperial_ramp_pierce.ngc b/nc_files/plasmac/imperial_ramp_pierce.ngc new file mode 100644 index 00000000000..1556620cbeb --- /dev/null +++ b/nc_files/plasmac/imperial_ramp_pierce.ngc @@ -0,0 +1,54 @@ +; file name: ramp.ngc +; date and time: Wed Nov 08 2023 21:15:23 +; postprocessor: LinuxCNC PlasmaC.scpost rev: 0.5 +; +# = 25.4 + +;begin pre-amble + G20 (imperial units) + G64 P0.005 (path tolerance) + G40 (cutter compensation: off) + G90 (distance mode: absolute) + M52 P1 (enable adaptive feed) + M65 P2 (enable THC) + M65 P3 (enable torch) + M68 E3 Q0 (velocity 100%) +;end pre-amble + m159 p601 q2 (pierce type - ramp) + m159 p602 q50 (pierce motino delay as a percentage of total pierce time - 50%) + m159 p603 q[2.5 / #] (pierce end height) + m159 p604 q1 (cut height delay in seconds) + m159 p605 q[980 / #] (gouge speed in units per min) + m159 p606 q[5 / #] (Gouge distance in machine units) + m159 p607 q[245 / #] (Creep speed in unit per min) + m159 p608 q[3 / #] (Creep distance in machine units) + M67 E3 Q100 +; +;begin material setup + T0 M6 (select plasma tool) + G43 H0 (apply tool offsets) + (o=0,kw=0.07874, ph=0.15748, pd=1, ch=0.05905, fr=19.29133, th=1, cv=99, pe=0.3, jh=0, jd=0) + F#<_hal[plasmac.cut-feed-rate]> +;end material setup + G0 X0 Y0 + M3 $0 S1 (plasma start) + M67 E3 Q100 + G1 X0 Y[60 / #] + m159 p609 (reset to default pierce behaviour) + M5 $0 (plasma end) + ; + ;begin post-amble + G40 (cutter compensation: off) + G90 (distance mode: absolute) + M65 P2 (enable THC) + M65 P3 (enable torch) + M68 E3 Q0 (velocity 100%) + M5 $-1 (backup stop) + ;end post-amble + ; + ;begin statistics + ;Pierces = 1 + ; Cuts = 1, Length = 60.00mm + ;end statistics + ; + M30 (end program) diff --git a/nc_files/plasmac/imperial_squares.ngc b/nc_files/plasmac/imperial_squares.ngc new file mode 100644 index 00000000000..96e5e59a183 --- /dev/null +++ b/nc_files/plasmac/imperial_squares.ngc @@ -0,0 +1,27 @@ +(imperial squares) + +#1 = 2 (Scale) +#2 = 3 (Iterations) +#3 = 30 (Feed Rate) +#4 = 0.5 +#5 = [#1*#2*#4] + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +o100 repeat [#2] + G0 X[#5-#4*#1] Y[#5-#4*#1] + M3 $0 S1 (start plasma torch) + G1 Y[#5+#4*#1] + G1 X[#5+#4*#1] + G1 Y[#5-#4*#1] + G1 X[#5-#4*#1] + M5 $0 (stop plasma torch) + #4 = [#4+0.5] +o100 endrepeat + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/imperial_temporary_materials.ngc b/nc_files/plasmac/imperial_temporary_materials.ngc new file mode 100644 index 00000000000..effa65f10a7 --- /dev/null +++ b/nc_files/plasmac/imperial_temporary_materials.ngc @@ -0,0 +1,37 @@ +(imperial temporary materials) + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +(o=0, na=Steel 0.10", ph=0.10, pd=0.0, ch=0.01, fr=100, kw=0.040) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X1 Y1 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +(o=0, na=Steel 0.11", ph=0.11, pd=0.1, ch=0.011, fr=101, kw=0.041) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y2 +M3 $0 S1 (start plasma torch) +G1 X1 +M5 $0 (stop plasma torch) + +(o=0, na=Steel 0.12", ph=0.2, pd=0.2, ch=0.012, fr=102, kw=0.042) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X1 Y3 +M3 $0 S1 (start plasma torch) +G1 X5 +M5 $0 (stop plasma torch) + +(o=0, na=Steel 0.13", ph=0.3, pd=0.3, ch=0.013, fr=103, kw=0.043) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y4 +M3 $0 S1 (start plasma torch) +G1 X1 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M190 P-1 (default material) +M2 (end program) \ No newline at end of file diff --git a/nc_files/plasmac/imperial_wrench.ngc b/nc_files/plasmac/imperial_wrench.ngc new file mode 100644 index 00000000000..27cfe4c1da8 --- /dev/null +++ b/nc_files/plasmac/imperial_wrench.ngc @@ -0,0 +1,37 @@ +(imperial wrench) + +# = 4 (holes and arcs with overburn) + +G20 (imperial units) +G64 P0.005 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +(the hole) +G0 X5.8952 Y1.0807 +M3 $0 S1 (start plasma torch) +G3 X5.8952 Y1.0807 I-0.0787 J0 +M5 $0 (stop plasma torch) + +(the wrench) +G0 X0.1937 Y1.5240 +M3 $0 S1 (start plasma torch) +G1 X0.1937 Y1.7208 +G2 X0.2323 Y1.8082 I0.1181 J-0.0000 +G2 X1.6956 Y1.6535 I0.6627 J-0.7298 +G3 X2.2783 Y1.3956 I0.5795 J0.5223 +G1 X5.8165 Y1.3169 +G2 X5.8165 Y0.8444 I0.0000 J-0.2362 +G1 X2.2783 Y0.7657 +G3 X1.6955 Y0.5078 I0.0000 J-0.7874 +G2 X0.2322 Y0.3532 I-0.800 J0.5692 +G2 X0.1937 Y0.4405 I0.0650 J0.0809 +G1 X0.1937 Y0.5393 +G1 X0.8629 Y0.5393 +G3 X0.8629 Y1.6220 I-0.3221 J0.5413 +G1 X0.1937 Y1.6220 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/m_files/M159 b/nc_files/plasmac/m_files/M159 new file mode 100755 index 00000000000..c628729ccaa --- /dev/null +++ b/nc_files/plasmac/m_files/M159 @@ -0,0 +1,112 @@ +#!/usr/bin/python3 +''' +M159 + +Copyright (C) 2023 James Walker + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +''' + +import sys +import linuxcnc +from subprocess import run as RUN + +# P param. Code for function to be performed +# Q param, Value to be used by the function selected + + +def abort(msg): + try: + linuxcnc.command().error_msg(msg) + linuxcnc.command().abort() + exit() + except KeyboardInterrupt: + pass + + +action = int(float(sys.argv[1])) +value = float(sys.argv[2]) +if action == -1: + abort("M159 - Missing P parameter") +elif action not in [601, 602, 603, 604, 605, 606, 607, 608, 609]: + abort(f"M159 - Invalid parameter: P{action}") +elif action != 609 and value == -1: + abort(f"M159 P{action} - Missing Q parameter") + +# Example setting code snippet for sheetcam or similar. +# m159 p601 q2 +# m159 p602 q50 +# m159 p603 q2.5 +# m159 p604 q1 +# m159 p605 q980 +# m159 p606 q5 +# m159 p607 q245 +# m159 p608 q3 + +# Ensure all the params needed are there. Below params and "comment" taken from plasmac comp. +# pin in unsigned pierce_type = 0 "allows motion to progress during pierce. 0=No movement, 1=Wiggle, 2=Ramp"; +# pin in float pierce_motion_delay = 0 "delay starting motion during pierce delay period. This is a % of Pierce Delay. Only used when pierce-with-motion is True"; +# pin in float cut_height_delay = 0 "at the end of transition to end-pierce-height how long to pause before transition to cut height"; +# pin in float pierce_end_height = 0 "The height at end of piercing (in machine units). Can be different to Cut Height. Default 0 means not used. i.e. no change in height"; +# pin in float gouge_speed = 0 "Ramp starting speed for gouge. In machine units/min."; +# pin in float gouge_speed_distance = 0 "Distance gouge will run in machine units. Gouge plus creep distance should not be longer than any lead in"; +# pin in float creep_speed = 0 "Ramp creep or intermediate speed. Comes after gouge and is before cut speed. In machine units/min."; +# pin in float creep_speed_distance = 0 "Distance creep will run in machine units. Gouge plus creep distance should not be longer than any lead in"; + +# Explanation of the function codes passed to P +# 601 = Pierce Type (0=Normal, 1-Wiggle, 2=Ramp) +# 602 = Pierce Motion Delay (Delay in Z motion to Pierce End Height expressed as a % of Pierce Delay) +# 603 = Pierce End Height (Target pierce height at end of Pierce Delay. Normally lower than Pierce Height) +# 604 = Cut Height Delay (At the end of transition to Pierce End Height wait x secs before transition to Cut Height) + +# 605 = Gouge Speed (Speed in machine units/min) +# 606 = Gouge Distance (Distance of gouge to travel in machine units) +# 607 = Creep Speed (Speed in machine units. Creep takes effect after gouge has finished) +# 608 = Creep Distance (Distance of creep to travel in machine units) + +# 609 = Reset to standard behaviour. Pierce type = 0 + +# Act on P code found. Set the relevant plasmac pin to the supplied value in Q + +try: + if action == 601: + RUN(['halcmd', 'setp', 'plasmac.pierce-type', f'{int(value)}']) + elif action == 602: + RUN(['halcmd', 'setp', 'plasmac.pierce-motion-delay', f'{value}']) + elif action == 603: + RUN(['halcmd', 'setp', 'plasmac.pierce-end-height', f'{value}']) + elif action == 604: + RUN(['halcmd', 'setp', 'plasmac.cut-height-delay', f'{value}']) + elif action == 605: + RUN(['halcmd', 'setp', 'plasmac.gouge-speed', f'{value}']) + elif action == 606: + RUN(['halcmd', 'setp', 'plasmac.gouge-speed-distance', f'{value}']) + elif action == 607: + RUN(['halcmd', 'setp', 'plasmac.creep-speed', f'{value}']) + elif action == 608: + RUN(['halcmd', 'setp', 'plasmac.creep-speed-distance', f'{value}']) + elif action == 609: + RUN(['halcmd', 'setp', 'plasmac.pierce-type', '0']) + RUN(['halcmd', 'setp', 'plasmac.pierce-motion-delay', '0.0']) + RUN(['halcmd', 'setp', 'plasmac.pierce-end-height', '0.0']) + RUN(['halcmd', 'setp', 'plasmac.cut-height-delay', '0.0']) + RUN(['halcmd', 'setp', 'plasmac.gouge-speed', '0.0']) + RUN(['halcmd', 'setp', 'plasmac.gouge-speed-distance', '0.0']) + RUN(['halcmd', 'setp', 'plasmac.creep-speed', '0.0']) + RUN(['halcmd', 'setp', 'plasmac.creep-speed-distance', '0.0']) +except: + abort(f"M159 P{action} Q{value} - Error setting HAL pin") + +exit() diff --git a/nc_files/plasmac/m_files/M190 b/nc_files/plasmac/m_files/M190 new file mode 100755 index 00000000000..9569c49aeda --- /dev/null +++ b/nc_files/plasmac/m_files/M190 @@ -0,0 +1,68 @@ +#!/usr/bin/python3 + +''' +M190 + +Copyright (C) 2019 - 2024 Phillip A Carter +Copyright (C) 2020 - 2024 Gregory D Carl + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +''' + +import sys +import time +from subprocess import run as RUN + +materialNum = int(float(sys.argv[1])) +timeout = 0.5 + + +def get_material(): + response = RUN(['halcmd', 'getp', 'qtplasmac.material_change_number'], capture_output=True) + return int(response.stdout.decode()) + + +def set_material(material): + RUN(['halcmd', 'setp', 'qtplasmac.material_change_number', f'{material}']) + + +def get_change(): + response = RUN(['halcmd', 'getp', 'qtplasmac.material_change'], capture_output=True) + return int(response.stdout.decode()) + + +def set_change(value): + RUN(['halcmd', 'setp', 'qtplasmac.material_change', f'{value}']) + + +def set_timeout(): + RUN(['halcmd', 'setp', 'qtplasmac.material_change_timeout', 1]) + + +try: + if materialNum != get_material(): + set_change(1) + set_material(materialNum) + else: + set_change(3) + start = time.time() + while get_change() == 1 or get_change() == 3: + if time.time() > start + timeout: + set_timeout() + break + set_change(0) +except: + pass +exit() diff --git a/nc_files/plasmac/metric_air_scribe.ngc b/nc_files/plasmac/metric_air_scribe.ngc new file mode 100644 index 00000000000..1c05d69a62e --- /dev/null +++ b/nc_files/plasmac/metric_air_scribe.ngc @@ -0,0 +1,94 @@ +(metric air-scribe) + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +M6 T1 (air scribe tool) +G43 (apply tool offsets) + +G0 X27.733 Y20.000 +M3 $1 S1 (start air-scribe) +G1 X27.733 Y30.000 +G1 X31.733 Y30.000 +G1 X33.067 Y28.333 +G1 X33.067 Y26.667 +G1 X31.733 Y25.000 +G1 X27.733 Y25.000 +M5 $1 (stop air-scribe) + +G0 X34.933 Y30.000 +M3 $1 S1 (start air-scribe) +G1 X34.933 Y21.667 +G1 X36.267 Y20.000 +M5 $1 (stop air-scribe) + +G0 X42.133 Y21.667 +M3 $1 S1 (start air-scribe) +G1 X40.800 Y20.000 +G1 X39.467 Y20.000 +G1 X38.133 Y21.667 +G1 X38.133 Y25.000 +G1 X39.467 Y26.667 +G1 X40.800 Y26.667 +G1 X42.133 Y25.000 +G1 X42.133 Y21.667 +G1 X43.467 Y20.000 +M5 $1 (stop air-scribe) + +G0 X45.333 Y20.000 +M3 $1 S1 (start air-scribe) +G1 X49.333 Y20.000 +G1 X50.667 Y21.667 +G1 X49.333 Y23.333 +G1 X46.667 Y23.333 +G1 X45.333 Y25.000 +G1 X46.667 Y26.667 +G1 X50.667 Y26.667 +M5 $1 (stop air-scribe) + +G0 X52.533 Y20.000 +M3 $1 S1 (start air-scribe) +G1 X52.533 Y26.667 +M5 $1 (stop air-scribe) + +G0 X52.533 Y25.000 +M3 $1 S1 (start air-scribe) +G1 X53.867 Y26.667 +G1 X55.200 Y24.000 +G1 X56.533 Y26.667 +G1 X57.867 Y25.000 +G1 X57.867 Y20.000 +M5 $1 (stop air-scribe) + +G0 X63.733 Y21.667 +M3 $1 S1 (start air-scribe) +G1 X62.400 Y20.000 +G1 X61.067 Y20.000 +G1 X59.733 Y21.667 +G1 X59.733 Y25.000 +G1 X61.067 Y26.667 +G1 X62.400 Y26.667 +G1 X63.733 Y25.000 +G1 X63.733 Y21.667 +G1 X65.067 Y20.000 +M5 $1 (stop air-scribe) + +G0 X72.267 Y21.667 +M3 $1 S1 (start air-scribe) +G1 X70.933 Y20.000 +G1 X68.267 Y20.000 +G1 X66.933 Y21.667 +G1 X66.933 Y28.333 +G1 X68.267 Y30.000 +G1 X70.933 Y30.000 +G1 X72.267 Y28.333 +M5 $1 (stop air-scribe) + +M6 T0 (torch tool) +G43 (apply tool offsets) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/metric_circles.ngc b/nc_files/plasmac/metric_circles.ngc new file mode 100644 index 00000000000..f1a95f7764d --- /dev/null +++ b/nc_files/plasmac/metric_circles.ngc @@ -0,0 +1,24 @@ +(metric circles) + +#1 = 50 (Scale) +#2 = 3 (Iterations) +#3 = 762 (Feed Rate) +#4 = 0.5 +#5 = [#1*#2*#4] + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +o100 repeat [#2] + G0 X[#5+-#4*#1] Y[#5+0] + M3 $0 S1 (start plasma torch) + G2 I[#4*#1] + M5 $0 (stop plasma torch) + #4 = [#4+0.5] +o100 endrepeat + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/metric_ihs_skip_thc_off.ngc b/nc_files/plasmac/metric_ihs_skip_thc_off.ngc new file mode 100644 index 00000000000..f550bab3511 --- /dev/null +++ b/nc_files/plasmac/metric_ihs_skip_thc_off.ngc @@ -0,0 +1,30 @@ +(metric skip ihs with thc disabled) + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +G0 X25 Y25 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +G0 X25 Y50 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +G0 X25 Y75 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +G0 X25 Y100 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/metric_ihs_skip_thc_on.ngc b/nc_files/plasmac/metric_ihs_skip_thc_on.ngc new file mode 100644 index 00000000000..07331db3ce5 --- /dev/null +++ b/nc_files/plasmac/metric_ihs_skip_thc_on.ngc @@ -0,0 +1,30 @@ +(metric skip ihs with thc enabled) + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +G0 X25 Y25 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +G0 Y50 +M3 $0 S1 (start plasma torch) +G1 X25 +M5 $0 (stop plasma torch) + +G0 Y75 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +G0 Y100 +M3 $0 S1 (start plasma torch) +G1 X25 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/metric_line.ngc b/nc_files/plasmac/metric_line.ngc new file mode 100644 index 00000000000..26c7f2885e1 --- /dev/null +++ b/nc_files/plasmac/metric_line.ngc @@ -0,0 +1,15 @@ +(metric line) + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +G0 X10 Y10 +M3 $0 S1 (start plasma torch) +G1 X590 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/metric_material_change.ngc b/nc_files/plasmac/metric_material_change.ngc new file mode 100644 index 00000000000..05d8dd94e8e --- /dev/null +++ b/nc_files/plasmac/metric_material_change.ngc @@ -0,0 +1,41 @@ +(metric material change) + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +M190 P1 (material #1) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X25 Y25 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +M190 P2 (material #2) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y50 +M3 $0 S1 (start plasma torch) +G1 X25 +M5 $0 (stop plasma torch) + +M190 P3 (material #3) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X25 Y75 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +M190 P4 (material #4) +M66 P3 L3 Q1 (wait for material ready) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y100 +M3 $0 S1 (start plasma torch) +G1 X25 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M190 P-1 (default material) +M2 (end program) diff --git a/nc_files/plasmac/metric_pipe.ngc b/nc_files/plasmac/metric_pipe.ngc new file mode 100644 index 00000000000..d04b03b05b7 --- /dev/null +++ b/nc_files/plasmac/metric_pipe.ngc @@ -0,0 +1,940 @@ +N0010 (Filename: metric_pipe.ngc) +N0020 (Post processor: PlasmaRotary PlasmaC.scpost) +N0030 (Date: 26/06/2023) +N0040 G21 (Units: Metric) +N0050 #=1 +N0060 G90 G40 +N0070 G00 Z58.2843 +N0080 (Part: untitled) +N0090 (Operation: Outside Offset, 17_, T4: Plasma, 1.5 mm kerf) +N0100 (o=0, pd=0.5) +N0110 G00 X14.7352 Y3.922 Z50.0 A270.0 +N0120 G38.2 Z15.00 F500.0 +N0130 G92 Z[25.0 - #<_hal[plasmac.float-switch-travel]>] +N0140 G00 Z28.0 +N0150 M03 $0 S1 +N0160 G01 Z26.5 F100.0 +N0170 G03 X18.7657 Y5.98 I0.9862 J3.0442 F2000.0 +N0180 G01 X21.7803 Y14.0015 A270.0 +N0190 X24.7737 Y18.6269 F1607.3831 +N0200 X24.8985 Y18.2268 Z28.1283 A265.1218 F36128.0795 +N0210 X25.0232 Y17.0917 Z29.0361 A262.1772 F23009.3659 +N0220 X25.1479 Y15.9114 Z29.8843 A259.2325 +N0230 X25.2726 Y14.6891 Z30.6709 A256.2879 +N0240 X25.3974 Y13.428 Z31.3935 A253.3432 +N0250 X25.5221 Y12.1315 Z32.0505 A250.3986 +N0260 X25.7831 Y9.8855 Z33.0005 A245.457 F21888.6158 +N0270 X26.0441 Y7.566 Z33.7535 A240.5155 +N0280 X26.3051 Y5.1903 Z34.304 A235.574 +N0290 X26.5661 Y2.776 Z34.6477 A230.6324 +N0300 X26.8272 Y0.341 Z34.7822 A225.6909 +N0310 X27.0882 Y-2.0964 Z34.7065 A220.7493 +N0320 X27.3492 Y-4.5183 Z34.421 A215.8078 +N0330 X27.6102 Y-6.9066 Z33.9281 A210.8662 +N0340 X27.8712 Y-9.2436 Z33.2312 A205.9247 +N0350 X28.1322 Y-11.5118 Z32.3356 A200.9832 +N0360 X28.3932 Y-13.6945 Z31.2479 A196.0416 +N0370 X28.6542 Y-15.7754 Z29.9763 A191.1001 +N0380 X28.9153 Y-17.739 Z28.5302 A186.1585 +N0390 X29.1763 Y-19.5707 Z26.9203 A181.217 +N0400 X29.4373 Y-19.675 Z26.5 A180.0 F5228.7843 +N0410 X29.9593 Y-18.8125 F2000.0 +N0420 X35.054 Y-11.9223 +N0430 X40.7627 Y-5.5315 +N0440 X47.0367 Y0.3053 +N0450 X53.8225 Y5.5383 +N0460 X61.0622 Y10.1228 +N0470 X68.694 Y14.0198 +N0480 X76.6528 Y17.196 +N0490 X84.8707 Y19.6243 +N0500 X88.2335 Y19.9563 F1971.6651 +N0510 X88.9541 Y18.2063 Z28.1456 A175.0674 F15067.3921 +N0520 X89.6747 Y17.5831 Z28.6548 A173.4373 F5324.8879 +N0530 X90.3953 Y16.9458 Z29.146 A171.8071 +N0540 X91.1159 Y16.2947 Z29.6189 A170.1769 +N0550 X91.8365 Y15.6304 Z30.0731 A168.5468 +N0560 X92.5571 Y14.9534 Z30.5082 A166.9166 +N0570 X93.2777 Y14.2644 Z30.9239 A165.2864 +N0580 X94.9825 Y13.3991 Z31.4091 A163.2767 F3286.1612 +N0590 X96.6874 Y12.5173 Z31.8637 A161.267 +N0600 X98.3922 Y11.6201 Z32.2871 A159.2572 +N0610 X100.097 Y10.7086 Z32.6787 A157.2475 +N0620 X101.8019 Y9.784 Z33.0382 A155.2377 +N0630 X103.5156 Y9.6919 Z33.0719 A155.0391 F2016.5309 +N0640 X105.2294 Y9.5998 Z33.1053 A154.8405 +N0650 X106.9431 Y9.5075 Z33.1385 A154.6419 +N0660 X108.6569 Y9.4151 Z33.1713 A154.4433 +N0670 X110.3706 Y9.3226 Z33.2037 A154.2447 +N0680 X112.0787 Y10.0711 Z32.9305 A155.8589 F2895.8903 +N0690 X113.7867 Y10.8117 Z32.6363 A157.4732 +N0700 X115.4948 Y11.5436 Z32.3214 A159.0874 +N0710 X117.2028 Y12.2664 Z31.986 A160.7016 +N0720 X118.9108 Y12.9795 Z31.6303 A162.3158 +N0730 X120.5986 Y14.4527 Z30.813 A165.7291 F4859.0396 +N0740 X122.2864 Y15.8746 Z29.9093 A169.1424 +N0750 X123.9741 Y17.2402 Z28.9227 A172.5557 +N0760 X125.6619 Y18.5446 Z27.8565 A175.9689 +N0770 X127.3496 Y19.7832 Z26.7145 A179.3822 +N0780 X129.0027 Y19.6016 Z26.5 A180.0 F2085.352 +N0790 X135.615 Y17.7923 F2000.0 +N0800 X143.6364 Y14.7777 +N0810 X151.3455 Y11.0359 +N0820 X158.6764 Y6.5987 +N0830 X165.5667 Y1.504 +N0840 X171.9574 Y-4.2047 +N0850 X177.7942 Y-10.4787 +N0860 X183.0272 Y-17.2645 +N0870 X184.861 Y-18.7124 F1363.3361 +N0880 X185.0329 Y-18.2001 Z28.1507 A184.9488 F32642.4039 +N0890 X185.2049 Y-16.9983 Z29.1066 A188.0598 F21619.2742 +N0900 X185.3768 Y-15.7464 Z29.9958 A191.1708 +N0910 X185.5487 Y-14.448 Z30.8157 A194.2818 +N0920 X185.7206 Y-13.1071 Z31.564 A197.3929 +N0930 X185.8925 Y-11.7275 Z32.2384 A200.5039 +N0940 X186.0645 Y-10.3134 Z32.8369 A203.6149 +N0950 X186.2364 Y-8.8689 Z33.3578 A206.726 +N0960 X186.4083 Y-7.3982 Z33.7996 A209.837 +N0970 X186.5802 Y-5.9057 Z34.1608 A212.948 +N0980 X186.7521 Y-4.3959 Z34.4406 A216.059 +N0990 X186.9241 Y-2.873 Z34.638 A219.1701 +N1000 X187.096 Y-1.3417 Z34.7524 A222.2811 +N1010 X187.2679 Y0.1936 Z34.7836 A225.3921 +N1020 X187.4398 Y1.7283 Z34.7314 A228.5031 +N1030 X187.6117 Y3.2579 Z34.596 A231.6142 +N1040 X187.8282 Y5.6258 Z34.2191 A236.4727 F22779.6926 +N1050 X188.0447 Y7.9533 Z33.6431 A241.3313 +N1060 X188.2612 Y10.2236 Z32.8719 A246.1899 +N1070 X188.4777 Y12.4205 Z31.9112 A251.0484 +N1080 X188.6942 Y14.5281 Z30.768 A255.907 +N1090 X188.9107 Y16.5313 Z29.4503 A260.7655 +N1100 X189.1272 Y18.4157 Z27.9677 A265.6241 +N1110 X189.3437 Y19.9579 Z26.5 A270.0 F20464.0147 +N1120 X191.5087 Y15.718 F2000.0 +N1130 X194.6849 Y7.7592 +N1140 X197.1132 Y-0.4588 +N1150 X198.7729 Y-8.8657 +N1160 X199.6499 Y-17.3899 +N1170 X199.6802 Y-19.9606 F1714.3174 +N1180 X199.6807 Y-18.1665 Z28.179 A275.0378 F2000.0 +N1190 X199.6812 Y-18.1685 Z28.1773 A275.0325 F116.6015 +N1200 X199.6817 Y-17.7298 Z28.5376 A276.1825 F51114.6952 +N1210 X199.6822 Y-17.5077 Z28.7144 A276.7575 F25557.4166 +N1220 X199.6827 Y-17.2839 Z28.889 A277.3325 +N1230 X199.6832 Y-17.0583 Z29.0613 A277.9075 +N1240 X199.6837 Y-16.8311 Z29.2314 A278.4825 +N1250 X199.6842 Y-16.6021 Z29.3991 A279.0575 +N1260 X199.6847 Y-16.3715 Z29.5646 A279.6325 +N1270 X199.6853 Y-16.1392 Z29.7277 A280.2075 +N1280 X199.6858 Y-15.9053 Z29.8885 A280.7824 +N1290 X199.6863 Y-15.6698 Z30.0469 A281.3574 +N1300 X199.6868 Y-15.4327 Z30.203 A281.9324 +N1310 X199.6873 Y-15.194 Z30.3567 A282.5074 +N1320 X199.6878 Y-14.9539 Z30.508 A283.0824 +N1330 X199.6883 Y-14.7122 Z30.6568 A283.6574 +N1340 X199.6888 Y-14.469 Z30.8032 A284.2324 +N1350 X199.6893 Y-14.2244 Z30.9472 A284.8074 +N1360 X199.6898 Y-13.9783 Z31.0887 A285.3824 +N1370 X199.6903 Y-13.7309 Z31.2278 A285.9574 +N1380 X199.6908 Y-13.482 Z31.3643 A286.5324 +N1390 X199.6913 Y-13.2318 Z31.4984 A287.1073 +N1400 X199.6919 Y-12.9803 Z31.6299 A287.6823 +N1410 X199.6924 Y-12.7275 Z31.7589 A288.2573 +N1420 X199.6929 Y-12.4734 Z31.8853 A288.8323 +N1430 X199.6934 Y-12.218 Z32.0092 A289.4073 +N1440 X199.6939 Y-11.9614 Z32.1306 A289.9823 +N1450 X199.6944 Y-11.7036 Z32.2493 A290.5573 +N1460 X199.6949 Y-11.4446 Z32.3655 A291.1323 +N1470 X199.6954 Y-11.1844 Z32.479 A291.7073 +N1480 X199.6959 Y-10.9231 Z32.5899 A292.2823 +N1490 X199.6964 Y-10.6608 Z32.6982 A292.8573 +N1500 X199.6969 Y-10.3973 Z32.8039 A293.4322 +N1510 X199.6974 Y-10.1328 Z32.9069 A294.0072 +N1520 X199.6979 Y-9.8673 Z33.0073 A294.5822 +N1530 X199.6984 Y-9.6008 Z33.105 A295.1572 +N1540 X199.699 Y-9.3333 Z33.2 A295.7322 +N1550 X199.6995 Y-9.0649 Z33.2923 A296.3072 +N1560 X199.7 Y-8.7956 Z33.3819 A296.8822 +N1570 X199.7005 Y-8.5254 Z33.4688 A297.4572 +N1580 X199.701 Y-8.2543 Z33.553 A298.0322 +N1590 X199.7015 Y-7.9824 Z33.6345 A298.6072 +N1600 X199.702 Y-7.7097 Z33.7132 A299.1822 +N1610 X199.7025 Y-7.4362 Z33.7892 A299.7571 +N1620 X199.703 Y-7.162 Z33.8625 A300.3321 +N1630 X199.7035 Y-6.8871 Z33.933 A300.9071 +N1640 X199.704 Y-6.6114 Z34.0007 A301.4821 +N1650 X199.7045 Y-6.3351 Z34.0657 A302.0571 +N1660 X199.705 Y-6.0582 Z34.1279 A302.6321 +N1670 X199.7056 Y-5.7806 Z34.1873 A303.2071 +N1680 X199.7061 Y-5.5025 Z34.2439 A303.7821 +N1690 X199.7066 Y-5.2238 Z34.2977 A304.3571 +N1700 X199.7071 Y-4.9445 Z34.3487 A304.9321 +N1710 X199.7076 Y-4.6648 Z34.3969 A305.5071 +N1720 X199.7081 Y-4.3846 Z34.4424 A306.082 +N1730 X199.7086 Y-4.104 Z34.4849 A306.657 +N1740 X199.7091 Y-3.8229 Z34.5247 A307.232 +N1750 X199.7096 Y-3.5415 Z34.5617 A307.807 +N1760 X199.7101 Y-3.2597 Z34.5958 A308.382 +N1770 X199.7106 Y-2.9776 Z34.6271 A308.957 +N1780 X199.7111 Y-2.6952 Z34.6556 A309.532 +N1790 X199.7116 Y-2.4125 Z34.6812 A310.107 +N1800 X199.7122 Y-2.1296 Z34.704 A310.682 +N1810 X199.7127 Y-1.8464 Z34.7239 A311.257 +N1820 X199.7132 Y-1.5631 Z34.741 A311.832 +N1830 X199.7137 Y-1.2796 Z34.7553 A312.4069 +N1840 X199.7142 Y-0.996 Z34.7667 A312.9819 +N1850 X199.7147 Y-0.7123 Z34.7753 A313.5569 +N1860 X199.7152 Y-0.4285 Z34.781 A314.1319 +N1870 X199.7157 Y-0.1447 Z34.7839 A314.7069 +N1880 X199.7162 Y0.1392 A315.2819 +N1890 X199.7167 Y0.423 Z34.7811 A315.8569 +N1900 X199.7172 Y0.7068 Z34.7754 A316.4319 +N1910 X199.7177 Y0.9905 Z34.7669 A317.0069 +N1920 X199.7182 Y1.2741 Z34.7556 A317.5819 +N1930 X199.7187 Y1.5576 Z34.7414 A318.1569 +N1940 X199.7193 Y1.8409 Z34.7243 A318.7318 +N1950 X199.7198 Y2.1241 Z34.7044 A319.3068 +N1960 X199.7203 Y2.407 Z34.6817 A319.8818 +N1970 X199.7208 Y2.6897 Z34.6561 A320.4568 +N1980 X199.7213 Y2.9721 Z34.6277 A321.0318 +N1990 X199.7218 Y3.2543 Z34.5964 A321.6068 +N2000 X199.7223 Y3.536 Z34.5624 A322.1818 +N2010 X199.7228 Y3.8175 Z34.5255 A322.7568 +N2020 X199.7233 Y4.0985 Z34.4857 A323.3318 +N2030 X199.7238 Y4.3792 Z34.4432 A323.9068 +N2040 X199.7243 Y4.6594 Z34.3979 A324.4818 +N2050 X199.7248 Y4.9391 Z34.3497 A325.0567 +N2060 X199.7253 Y5.2183 Z34.2987 A325.6317 +N2070 X199.7259 Y5.497 Z34.245 A326.2067 +N2080 X199.7264 Y5.7752 Z34.1884 A326.7817 +N2090 X199.7269 Y6.0528 Z34.129 A327.3567 +N2100 X199.7274 Y6.3297 Z34.0669 A327.9317 +N2110 X199.7279 Y6.606 Z34.002 A328.5067 +N2120 X199.7284 Y6.8817 Z33.9343 A329.0817 +N2130 X199.7289 Y7.1567 Z33.8639 A329.6567 +N2140 X199.7294 Y7.4309 Z33.7907 A330.2317 +N2150 X199.7299 Y7.7044 Z33.7147 A330.8067 +N2160 X199.7304 Y7.9771 Z33.6361 A331.3816 +N2170 X199.7309 Y8.249 Z33.5546 A331.9566 +N2180 X199.7314 Y8.5201 Z33.4705 A332.5316 +N2190 X199.7319 Y8.7904 Z33.3836 A333.1066 +N2200 X199.7324 Y9.0597 Z33.2941 A333.6816 +N2210 X199.733 Y9.3281 Z33.2018 A334.2566 +N2220 X199.7335 Y9.5956 Z33.1068 A334.8316 +N2230 X199.734 Y9.8622 Z33.0092 A335.4066 +N2240 X199.7345 Y10.1277 Z32.9089 A335.9816 +N2250 X199.735 Y10.3922 Z32.8059 A336.5566 +N2260 X199.7355 Y10.6557 Z32.7003 A337.1316 +N2270 X199.736 Y10.9181 Z32.5921 A337.7065 +N2280 X199.7365 Y11.1793 Z32.4812 A338.2815 +N2290 X199.7013 Y13.3548 Z31.4329 A343.1747 F25471.2686 +N2300 X199.6661 Y15.4328 Z30.2029 A348.0679 +N2310 X199.6309 Y17.3984 Z28.8001 A352.9611 +N2320 X199.5956 Y19.2371 Z27.2348 A357.8542 +N2330 X199.5604 Y19.7602 Z26.5 A360.0 F10866.3366 +N2340 X199.0322 Y13.3551 F2000.0 +N2350 X197.5428 Y4.9163 +N2360 X195.2812 Y-3.3491 +N2370 X192.2667 Y-11.3705 +N2380 X188.5248 Y-19.0796 +N2390 X187.8909 Y-19.4863 Z27.0009 A361.4535 F2796.833 +N2400 X187.6374 Y-17.7023 Z28.5596 A366.2538 F21888.6904 +N2410 X187.3838 Y-15.7942 Z29.9637 A371.0542 +N2420 X187.1303 Y-13.7753 Z31.2031 A375.8545 +N2430 X186.8767 Y-11.6597 Z32.2692 A380.6549 +N2440 X186.6232 Y-9.4623 Z33.1545 A385.4552 +N2450 X186.3696 Y-7.1986 Z33.8529 A390.2556 +N2460 X186.116 Y-4.8843 Z34.3594 A395.0559 +N2470 X185.8625 Y-2.5358 Z34.6704 A399.8563 +N2480 X185.6089 Y-0.1695 Z34.7838 A404.6567 +N2490 X185.3554 Y2.198 Z34.6987 A409.457 +N2500 X185.1018 Y4.5501 Z34.4159 A414.2574 +N2510 X184.8483 Y6.8702 Z33.9372 A419.0577 +N2520 X184.5947 Y9.1422 Z33.266 A423.8581 +N2530 X184.3412 Y11.35 Z32.4071 A428.6584 +N2540 X184.0876 Y13.4782 Z31.3664 A433.4588 +N2550 X183.7692 Y15.5673 Z30.1148 A438.3936 F20584.1593 +N2560 X183.4508 Y17.541 Z28.6882 A443.3283 +N2570 X183.1324 Y19.3846 Z27.097 A448.2631 +N2580 X182.8139 Y19.7209 Z26.5 A450.0 F7073.27 +N2590 X178.9929 Y14.5533 F2000.0 +N2600 X173.2842 Y8.1625 +N2610 X167.0102 Y2.3257 +N2620 X160.2244 Y-2.9073 +N2630 X152.9848 Y-7.4918 +N2640 X145.3529 Y-11.3888 +N2650 X137.3941 Y-14.565 +N2660 X129.1762 Y-16.9933 +N2670 X120.7692 Y-18.653 +N2680 X112.245 Y-19.5299 +N2690 X103.6763 Y-19.6166 +N2700 X95.1361 Y-18.9123 +N2710 X86.6973 Y-17.4229 +N2720 X78.4319 Y-15.1613 +N2730 X70.4105 Y-12.1467 +N2740 X62.7014 Y-8.4049 +N2750 X55.3705 Y-3.9677 +N2760 X48.4802 Y1.127 +N2770 X42.0895 Y6.8357 +N2780 X36.2527 Y13.1097 +N2790 X31.0197 Y19.8955 +N2800 X30.7332 Y18.5609 Z27.8423 A446.0126 F16517.3194 +N2810 X30.4645 Y16.6856 Z29.3384 A441.1517 F21618.5261 +N2820 X30.1959 Y14.6903 Z30.6701 A436.2907 +N2830 X29.9273 Y12.5893 Z31.828 A431.4297 +N2840 X29.6587 Y10.3978 Z32.8037 A426.5687 +N2850 X29.39 Y8.1314 Z33.5902 A421.7078 +N2860 X29.1214 Y5.8066 Z34.1818 A416.8468 +N2870 X28.8528 Y3.44 Z34.5743 A411.9858 +N2880 X28.5842 Y1.0487 Z34.7648 A407.1248 +N2890 X28.3155 Y-1.3502 Z34.752 A402.2638 +N2900 X28.0469 Y-3.7394 Z34.536 A397.4029 +N2910 X27.7783 Y-6.1016 Z34.1183 A392.5419 +N2920 X27.5097 Y-8.42 Z33.5019 A387.6809 +N2930 X27.241 Y-10.6778 Z32.6913 A382.8199 +N2940 X26.9724 Y-12.8588 Z31.6923 A377.9589 +N2950 X26.7038 Y-14.9473 Z30.512 A373.098 +N2960 X26.4352 Y-16.9283 Z29.159 A368.237 +N2970 X25.6558 Y-19.1925 Z26.5 A360.0 F10480.1632 +N2980 X22.5382 Y-13.087 F2000.0 +N2990 X19.362 Y-5.1282 +N3000 X16.9337 Y3.0898 +N3010 X15.274 Y11.4967 +N3020 X14.3971 Y18.3161 F1604.7055 +N3030 X14.3927 Y18.1243 Z28.2143 A354.8508 F25555.9059 +N3040 X14.3884 Y16.1994 Z29.6857 A349.9413 +N3050 X14.3841 Y14.1557 Z30.9871 A345.0318 +N3060 X14.3797 Y12.0081 Z32.1087 A340.1222 +N3070 X14.3754 Y9.7724 Z33.0424 A335.2127 +N3080 X14.3711 Y7.465 Z33.7814 A330.3031 +N3090 X14.3667 Y5.1027 Z34.3202 A325.3936 +N3100 X14.3624 Y2.7031 Z34.6548 A320.4841 +N3110 X14.3581 Y0.2836 Z34.7828 A315.5745 +N3120 X14.3537 Y-2.138 Z34.7034 A310.665 +N3130 X14.3494 Y-4.5438 Z34.4169 A305.7555 +N3140 X14.3451 Y-6.9164 Z33.9256 A300.8459 +N3150 X14.3407 Y-9.2381 Z33.2331 A295.9364 +N3160 X14.3364 Y-11.4921 Z32.3444 A291.0268 +N3170 X14.3321 Y-13.6618 Z31.266 A286.1173 +N3180 X14.3277 Y-15.7312 Z30.0059 A281.2078 +N3190 X14.3234 Y-17.6852 Z28.5734 A276.2982 +N3200 X14.3191 Y-19.5094 Z26.9788 A271.3887 +N3210 X14.3147 Y-19.6927 Z26.5 A270.0 F6909.9605 +N3220 X14.3104 Y-19.2643 F2000.0 +N3230 X15.0147 Y-10.7241 +N3240 X16.5041 Y-2.2853 +N3250 X18.7657 Y5.98 +N3260 X18.2211 Y7.9045 +N3270 M05 $0 +N3280 G00 Z50.0 +N3290 X236.6606 Y-10.7864 Z58.2843 A450.0 +N3300 G38.2 Z15.00 F500.0 +N3310 G92 Z[25.0 - #<_hal[plasmac.float-switch-travel]>] +N3320 G00 Z28.0 +N3330 M03 $0 S1 +N3340 G01 Z26.5 F100.0 +N3350 F2000.0 +N3360 X258.0258 Y19.207 F1947.9706 +N3370 X258.053 Y18.1368 Z28.2038 A444.8838 F2000.0 +N3380 X258.079 Y18.1408 Z28.2005 A444.8943 F605.1267 +N3390 X258.1056 Y17.8014 Z28.4797 A444.0041 F42188.5039 +N3400 X258.1322 Y17.6302 Z28.6173 A443.559 F21116.9779 +N3410 X258.1588 Y17.4578 Z28.7536 A443.114 +N3420 X258.1854 Y17.2844 Z28.8886 A442.6689 +N3430 X258.212 Y17.11 Z29.0222 A442.2238 +N3440 X258.2386 Y16.9345 Z29.1544 A441.7787 +N3450 X258.2652 Y16.758 Z29.2853 A441.3337 +N3460 X258.2918 Y16.5805 Z29.4147 A440.8886 +N3470 X258.3184 Y16.402 Z29.5429 A440.4435 +N3480 X258.345 Y16.2226 Z29.6696 A439.9984 +N3490 X258.3716 Y16.0421 Z29.7949 A439.5533 +N3500 X258.3982 Y15.8606 Z29.9188 A439.1083 +N3510 X258.4248 Y15.6782 Z30.0413 A438.6632 +N3520 X258.4514 Y15.4949 Z30.1624 A438.2181 +N3530 X258.478 Y15.3106 Z30.282 A437.773 +N3540 X258.5046 Y15.1254 Z30.4002 A437.328 +N3550 X258.5312 Y14.9393 Z30.517 A436.8829 +N3560 X258.5578 Y14.7523 Z30.6323 A436.4378 +N3570 X258.5844 Y14.5644 Z30.7462 A435.9927 +N3580 X258.611 Y14.3756 Z30.8586 A435.5476 +N3590 X258.6376 Y14.186 Z30.9695 A435.1026 +N3600 X258.6642 Y13.9955 Z31.079 A434.6575 +N3610 X258.6908 Y13.8041 Z31.187 A434.2124 +N3620 X258.7174 Y13.6119 Z31.2935 A433.7673 +N3630 X258.744 Y13.4189 Z31.3985 A433.3223 +N3640 X258.7706 Y13.2251 Z31.5019 A432.8772 +N3650 X258.7972 Y13.0305 Z31.6039 A432.4321 +N3660 X258.8238 Y12.8351 Z31.7044 A431.987 +N3670 X258.8505 Y12.6389 Z31.8033 A431.5419 +N3680 X258.8771 Y12.442 Z31.9007 A431.0969 +N3690 X258.9037 Y12.2443 Z31.9966 A430.6518 +N3700 X258.9303 Y12.0459 Z32.091 A430.2067 +N3710 X258.9569 Y11.8467 Z32.1838 A429.7616 +N3720 X258.9835 Y11.6468 Z32.275 A429.3166 +N3730 X259.0101 Y11.4463 Z32.3647 A428.8715 +N3740 X259.0367 Y11.245 Z32.4528 A428.4264 +N3750 X259.0633 Y11.0431 Z32.5394 A427.9813 +N3760 X259.0899 Y10.8405 Z32.6244 A427.5362 +N3770 X259.1165 Y10.6372 Z32.7078 A427.0912 +N3780 X259.1431 Y10.4333 Z32.7897 A426.6461 +N3790 X259.1697 Y10.2288 Z32.8699 A426.201 +N3800 X259.1963 Y10.0236 Z32.9486 A425.7559 +N3810 X259.2229 Y9.8178 Z33.0256 A425.3109 +N3820 X259.2495 Y9.6115 Z33.1011 A424.8658 +N3830 X259.2761 Y9.4046 Z33.175 A424.4207 +N3840 X259.3027 Y9.1971 Z33.2472 A423.9756 +N3850 X259.3293 Y8.989 Z33.3179 A423.5305 +N3860 X259.3559 Y8.7804 Z33.3869 A423.0855 +N3870 X259.3825 Y8.5713 Z33.4543 A422.6404 +N3880 X259.4091 Y8.3617 Z33.52 A422.1953 +N3890 X259.4357 Y8.1515 Z33.5842 A421.7502 +N3900 X259.4623 Y7.9409 Z33.6467 A421.3052 +N3910 X259.4889 Y7.7298 Z33.7075 A420.8601 +N3920 X259.5155 Y7.5182 Z33.7668 A420.415 +N3930 X259.5421 Y7.3062 Z33.8243 A419.9699 +N3940 X259.5687 Y7.0937 Z33.8803 A419.5248 +N3950 X259.5953 Y6.8808 Z33.9346 A419.0798 +N3960 X259.6219 Y6.6675 Z33.9872 A418.6347 +N3970 X259.6485 Y6.4537 Z34.0381 A418.1896 +N3980 X259.6751 Y6.2396 Z34.0874 A417.7445 +N3990 X259.7017 Y6.0251 Z34.1351 A417.2995 +N4000 X259.7283 Y5.8103 Z34.181 A416.8544 +N4010 X259.755 Y5.5951 Z34.2253 A416.4093 +N4020 X259.7816 Y5.3796 Z34.268 A415.9642 +N4030 X259.8082 Y5.1637 Z34.3089 A415.5191 +N4040 X259.8348 Y4.9475 Z34.3482 A415.0741 +N4050 X259.8614 Y4.731 Z34.3858 A414.629 +N4060 X259.888 Y4.5143 Z34.4217 A414.1839 +N4070 X259.9146 Y4.2973 Z34.4559 A413.7388 +N4080 X259.9412 Y4.08 Z34.4885 A413.2938 +N4090 X259.9678 Y3.8624 Z34.5193 A412.8487 +N4100 X259.9944 Y3.6447 Z34.5485 A412.4036 +N4110 X260.021 Y3.4267 Z34.5759 A411.9585 +N4120 X260.0476 Y3.2085 Z34.6017 A411.5134 +N4130 X260.0742 Y2.9901 Z34.6258 A411.0684 +N4140 X260.1008 Y2.7715 Z34.6482 A410.6233 +N4150 X260.1274 Y2.5528 Z34.6688 A410.1782 +N4160 X260.154 Y2.3339 Z34.6878 A409.7331 +N4170 X260.1806 Y2.1148 Z34.7051 A409.2881 +N4180 X260.2072 Y1.8957 Z34.7207 A408.843 +N4190 X260.2338 Y1.6764 Z34.7345 A408.3979 +N4200 X260.2604 Y1.457 Z34.7467 A407.9528 +N4210 X260.287 Y1.2376 Z34.7572 A407.5078 +N4220 X260.3136 Y1.018 Z34.7659 A407.0627 +N4230 X260.3402 Y0.7984 Z34.773 A406.6176 +N4240 X260.3668 Y0.5788 Z34.7783 A406.1725 +N4250 X260.3934 Y0.3591 Z34.782 A405.7274 +N4260 X260.42 Y0.1394 Z34.7839 A405.2824 +N4270 X260.4466 Y-0.0803 Z34.7842 A404.8373 +N4280 X260.4732 Y-0.3 Z34.7827 A404.3922 +N4290 X260.4998 Y-0.5197 Z34.7795 A403.9471 +N4300 X260.5264 Y-0.7394 Z34.7746 A403.5021 +N4310 X260.553 Y-0.959 Z34.768 A403.057 +N4320 X260.5796 Y-1.1786 Z34.7597 A402.6119 +N4330 X260.6062 Y-1.398 Z34.7497 A402.1668 +N4340 X260.6329 Y-1.6174 Z34.738 A401.7217 +N4350 X260.6595 Y-1.8367 Z34.7246 A401.2767 +N4360 X260.6861 Y-2.0559 Z34.7095 A400.8316 +N4370 X260.7127 Y-2.275 Z34.6926 A400.3865 +N4380 X260.7393 Y-2.4939 Z34.6741 A399.9414 +N4390 X260.7659 Y-2.7127 Z34.6539 A399.4964 +N4400 X260.7925 Y-2.9313 Z34.632 A399.0513 +N4410 X260.8191 Y-3.1498 Z34.6083 A398.6062 +N4420 X260.8457 Y-3.368 Z34.583 A398.1611 +N4430 X260.8723 Y-3.5861 Z34.556 A397.716 +N4440 X260.8989 Y-3.8039 Z34.5273 A397.271 +N4450 X260.9255 Y-4.0215 Z34.4969 A396.8259 +N4460 X260.9521 Y-4.2389 Z34.4648 A396.3808 +N4470 X260.9787 Y-4.456 Z34.4311 A395.9357 +N4480 X261.0053 Y-4.6728 Z34.3956 A395.4907 +N4490 X261.0319 Y-4.8894 Z34.3585 A395.0456 +N4500 X261.0585 Y-5.1056 Z34.3196 A394.6005 +N4510 X261.0851 Y-5.3216 Z34.2791 A394.1554 +N4520 X261.1117 Y-5.5372 Z34.237 A393.7103 +N4530 X261.1383 Y-5.7525 Z34.1931 A393.2653 +N4540 X261.1649 Y-5.9674 Z34.1476 A392.8202 +N4550 X261.1915 Y-6.182 Z34.1004 A392.3751 +N4560 X261.2181 Y-6.3962 Z34.0516 A391.93 +N4570 X261.2447 Y-6.6101 Z34.001 A391.485 +N4580 X261.2713 Y-6.8235 Z33.9489 A391.0399 +N4590 X261.2979 Y-7.0365 Z33.895 A390.5948 +N4600 X261.3245 Y-7.2491 Z33.8395 A390.1497 +N4610 X261.3511 Y-7.4612 Z33.7824 A389.7046 +N4620 X261.3777 Y-7.6729 Z33.7236 A389.2596 +N4630 X261.4043 Y-7.8842 Z33.6632 A388.8145 +N4640 X261.4309 Y-8.095 Z33.6011 A388.3694 +N4650 X261.4575 Y-8.3052 Z33.5374 A387.9243 +N4660 X261.4841 Y-8.515 Z33.4721 A387.4793 +N4670 X261.5107 Y-8.7243 Z33.4051 A387.0342 +N4680 X261.5374 Y-8.933 Z33.3366 A386.5891 +N4690 X261.564 Y-9.1412 Z33.2664 A386.144 +N4700 X261.5906 Y-9.3489 Z33.1946 A385.6989 +N4710 X261.6172 Y-9.5559 Z33.1211 A385.2539 +N4720 X261.6438 Y-9.7624 Z33.0461 A384.8088 +N4730 X261.6704 Y-9.9684 Z32.9695 A384.3637 +N4740 X261.697 Y-10.1737 Z32.8912 A383.9186 +N4750 X261.7236 Y-10.3784 Z32.8114 A383.4736 +N4760 X261.7502 Y-10.5824 Z32.73 A383.0285 +N4770 X261.7768 Y-10.7859 Z32.647 A382.5834 +N4780 X261.8034 Y-10.9887 Z32.5624 A382.1383 +N4790 X261.83 Y-11.1908 Z32.4763 A381.6932 +N4800 X261.8566 Y-11.3922 Z32.3886 A381.2482 +N4810 X261.8832 Y-11.593 Z32.2993 A380.8031 +N4820 X261.9098 Y-11.793 Z32.2084 A380.358 +N4830 X261.9364 Y-11.9924 Z32.1161 A379.9129 +N4840 X261.963 Y-12.191 Z32.0221 A379.4679 +N4850 X261.9896 Y-12.3889 Z31.9267 A379.0228 +N4860 X262.0162 Y-12.586 Z31.8297 A378.5777 +N4870 X262.0428 Y-12.7824 Z31.7311 A378.1326 +N4880 X262.0694 Y-12.978 Z31.6311 A377.6875 +N4890 X262.096 Y-13.1729 Z31.5295 A377.2425 +N4900 X262.1226 Y-13.3669 Z31.4264 A376.7974 +N4910 X262.1492 Y-13.5601 Z31.3218 A376.3523 +N4920 X262.1758 Y-13.7525 Z31.2157 A375.9072 +N4930 X262.2024 Y-13.9441 Z31.1082 A375.4622 +N4940 X262.229 Y-14.1348 Z30.9991 A375.0171 +N4950 X262.2556 Y-14.3247 Z30.8886 A374.572 +N4960 X262.2822 Y-14.5137 Z30.7766 A374.1269 +N4970 X262.3088 Y-14.7019 Z30.6631 A373.6818 +N4980 X262.3354 Y-14.8891 Z30.5482 A373.2368 +N4990 X262.362 Y-15.0755 Z30.4318 A372.7917 +N5000 X262.3886 Y-15.2609 Z30.3139 A372.3466 +N5010 X262.4152 Y-15.4455 Z30.1947 A371.9015 +N5020 X262.4419 Y-15.6291 Z30.074 A371.4565 +N5030 X262.4685 Y-15.8117 Z29.9519 A371.0114 +N5040 X262.4951 Y-15.9934 Z29.8283 A370.5663 +N5050 X262.5217 Y-16.1741 Z29.7034 A370.1212 +N5060 X262.5483 Y-16.3539 Z29.5771 A369.6762 +N5070 X262.5749 Y-16.5327 Z29.4493 A369.2311 +N5080 X262.6015 Y-16.7104 Z29.3202 A368.786 +N5090 X262.6281 Y-16.8872 Z29.1897 A368.3409 +N5100 X262.6547 Y-17.0629 Z29.0578 A367.8958 +N5110 X262.6813 Y-17.2377 Z28.9246 A367.4508 +N5120 X262.7079 Y-17.4113 Z28.79 A367.0057 +N5130 X262.7345 Y-17.5839 Z28.6541 A366.5606 +N5140 X262.7611 Y-17.7555 Z28.5169 A366.1155 +N5150 X262.7877 Y-17.926 Z28.3783 A365.6705 +N5160 X262.8143 Y-18.0954 Z28.2384 A365.2254 +N5170 X262.8409 Y-18.2637 Z28.0971 A364.7803 +N5180 X262.8675 Y-18.4309 Z27.9546 A364.3352 +N5190 X262.8941 Y-18.597 Z27.8108 A363.8901 +N5200 X262.9207 Y-18.762 Z27.6657 A363.4451 +N5210 X262.9473 Y-18.9259 Z27.5193 A363.0 +N5220 X262.9739 Y-19.0886 Z27.3717 A362.5549 +N5230 X263.0005 Y-19.2501 Z27.2227 A362.1098 +N5240 X263.0271 Y-19.4105 Z27.0726 A361.6648 +N5250 X263.0537 Y-19.5698 Z26.9212 A361.2197 +N5260 X263.0803 Y-19.7278 Z26.7685 A360.7746 +N5270 X263.1069 Y-19.8846 Z26.6147 A360.3295 +N5280 X263.1335 Y-19.9899 Z26.5 A360.0 F15523.9042 +N5290 X290.5346 Y19.9768 F1998.6785 +N5300 X290.5612 Y19.7809 Z26.7168 A359.3756 F29308.2188 +N5310 X290.5878 Y19.6232 Z26.8698 A358.9305 F21116.9779 +N5320 X290.6144 Y19.4644 Z27.0216 A358.4855 +N5330 X290.641 Y19.3044 Z27.1722 A358.0404 +N5340 X290.6676 Y19.1432 Z27.3215 A357.5953 +N5350 X290.6942 Y18.9809 Z27.4696 A357.1502 +N5360 X290.7208 Y18.8175 Z27.6164 A356.7052 +N5370 X290.7474 Y18.6529 Z27.762 A356.2601 +N5380 X290.774 Y18.4871 Z27.9062 A355.815 +N5390 X290.8006 Y18.3203 Z28.0492 A355.3699 +N5400 X290.8272 Y18.1523 Z28.1908 A354.9248 +N5410 X290.8538 Y17.9833 Z28.3312 A354.4798 +N5420 X290.8804 Y17.8132 Z28.4702 A354.0347 +N5430 X290.907 Y17.642 Z28.6079 A353.5896 +N5440 X290.9336 Y17.4697 Z28.7443 A353.1445 +N5450 X290.9602 Y17.2964 Z28.8793 A352.6995 +N5460 X290.9869 Y17.122 Z29.013 A352.2544 +N5470 X291.0135 Y16.9466 Z29.1454 A351.8093 +N5480 X291.0401 Y16.7702 Z29.2763 A351.3642 +N5490 X291.0667 Y16.5928 Z29.4059 A350.9191 +N5500 X291.0933 Y16.4143 Z29.5341 A350.4741 +N5510 X291.1199 Y16.2349 Z29.6609 A350.029 +N5520 X291.1465 Y16.0545 Z29.7863 A349.5839 +N5530 X291.1731 Y15.8731 Z29.9103 A349.1388 +N5540 X291.1997 Y15.6908 Z30.0329 A348.6938 +N5550 X291.2263 Y15.5075 Z30.1541 A348.2487 +N5560 X291.2529 Y15.3233 Z30.2739 A347.8036 +N5570 X291.2795 Y15.1382 Z30.3922 A347.3585 +N5580 X291.3061 Y14.9521 Z30.509 A346.9134 +N5590 X291.3327 Y14.7652 Z30.6245 A346.4684 +N5600 X291.3593 Y14.5773 Z30.7384 A346.0233 +N5610 X291.3859 Y14.3886 Z30.8509 A345.5782 +N5620 X291.4125 Y14.199 Z30.962 A345.1331 +N5630 X291.4391 Y14.0086 Z31.0715 A344.6881 +N5640 X291.4657 Y13.8173 Z31.1796 A344.243 +N5650 X291.4923 Y13.6251 Z31.2862 A343.7979 +N5660 X291.5189 Y13.4322 Z31.3913 A343.3528 +N5670 X291.5455 Y13.2384 Z31.4949 A342.9077 +N5680 X291.5721 Y13.0439 Z31.597 A342.4627 +N5690 X291.5987 Y12.8485 Z31.6975 A342.0176 +N5700 X291.6253 Y12.6524 Z31.7966 A341.5725 +N5710 X291.6519 Y12.4555 Z31.8941 A341.1274 +N5720 X291.6785 Y12.2579 Z31.9901 A340.6824 +N5730 X291.7051 Y12.0595 Z32.0845 A340.2373 +N5740 X291.7317 Y11.8604 Z32.1774 A339.7922 +N5750 X291.7583 Y11.6606 Z32.2688 A339.3471 +N5760 X291.7849 Y11.4601 Z32.3586 A338.902 +N5770 X291.8115 Y11.2588 Z32.4468 A338.457 +N5780 X291.8381 Y11.0569 Z32.5335 A338.0119 +N5790 X291.8647 Y10.8544 Z32.6186 A337.5668 +N5800 X291.8914 Y10.6512 Z32.7021 A337.1217 +N5810 X291.918 Y10.4473 Z32.7841 A336.6767 +N5820 X291.9446 Y10.2428 Z32.8645 A336.2316 +N5830 X291.9712 Y10.0377 Z32.9432 A335.7865 +N5840 X291.9978 Y9.832 Z33.0204 A335.3414 +N5850 X292.0244 Y9.6257 Z33.096 A334.8964 +N5860 X292.051 Y9.4188 Z33.1699 A334.4513 +N5870 X292.0776 Y9.2113 Z33.2423 A334.0062 +N5880 X292.1042 Y9.0033 Z33.3131 A333.5611 +N5890 X292.1308 Y8.7948 Z33.3822 A333.116 +N5900 X292.1574 Y8.5857 Z33.4497 A332.671 +N5910 X292.184 Y8.3761 Z33.5156 A332.2259 +N5920 X292.2106 Y8.166 Z33.5798 A331.7808 +N5930 X292.2372 Y7.9554 Z33.6424 A331.3357 +N5940 X292.2638 Y7.7443 Z33.7034 A330.8907 +N5950 X292.2904 Y7.5327 Z33.7628 A330.4456 +N5960 X292.317 Y7.3207 Z33.8204 A330.0005 +N5970 X292.3436 Y7.1083 Z33.8765 A329.5554 +N5980 X292.3702 Y6.8954 Z33.9309 A329.1103 +N5990 X292.3968 Y6.6821 Z33.9836 A328.6653 +N6000 X292.4234 Y6.4684 Z34.0347 A328.2202 +N6010 X292.45 Y6.2544 Z34.0841 A327.7751 +N6020 X292.4766 Y6.0399 Z34.1319 A327.33 +N6030 X292.5032 Y5.8251 Z34.1779 A326.885 +N6040 X292.5298 Y5.6099 Z34.2224 A326.4399 +N6050 X292.5564 Y5.3944 Z34.2651 A325.9948 +N6060 X292.583 Y5.1785 Z34.3062 A325.5497 +N6070 X292.6096 Y4.9624 Z34.3456 A325.1046 +N6080 X292.6362 Y4.7459 Z34.3833 A324.6596 +N6090 X292.6628 Y4.5292 Z34.4193 A324.2145 +N6100 X292.6894 Y4.3122 Z34.4536 A323.7694 +N6110 X292.716 Y4.0949 Z34.4863 A323.3243 +N6120 X292.7426 Y3.8774 Z34.5172 A322.8793 +N6130 X292.7693 Y3.6596 Z34.5465 A322.4342 +N6140 X292.7959 Y3.4416 Z34.5741 A321.9891 +N6150 X292.8225 Y3.2235 Z34.6 A321.544 +N6160 X292.8491 Y3.0051 Z34.6242 A321.0989 +N6170 X292.8757 Y2.7865 Z34.6467 A320.6539 +N6180 X292.9023 Y2.5678 Z34.6675 A320.2088 +N6190 X292.9289 Y2.3489 Z34.6866 A319.7637 +N6200 X292.9555 Y2.1299 Z34.704 A319.3186 +N6210 X292.9821 Y1.9107 Z34.7197 A318.8736 +N6220 X293.0087 Y1.6915 Z34.7336 A318.4285 +N6230 X293.0353 Y1.4721 Z34.7459 A317.9834 +N6240 X293.0619 Y1.2526 Z34.7565 A317.5383 +N6250 X293.0885 Y1.0331 Z34.7654 A317.0932 +N6260 X293.1151 Y0.8135 Z34.7726 A316.6482 +N6270 X293.1417 Y0.5939 Z34.778 A316.2031 +N6280 X293.1683 Y0.3742 Z34.7818 A315.758 +N6290 X293.1949 Y0.1545 Z34.7838 A315.3129 +N6300 X293.2215 Y-0.0652 Z34.7842 A314.8679 +N6310 X293.2481 Y-0.2849 Z34.7828 A314.4228 +N6320 X293.2747 Y-0.5046 Z34.7798 A313.9777 +N6330 X293.3013 Y-0.7243 Z34.775 A313.5326 +N6340 X293.3279 Y-0.9439 Z34.7685 A313.0875 +N6350 X293.3545 Y-1.1635 Z34.7603 A312.6425 +N6360 X293.3811 Y-1.383 Z34.7504 A312.1974 +N6370 X293.4077 Y-1.6024 Z34.7388 A311.7523 +N6380 X293.4343 Y-1.8217 Z34.7255 A311.3072 +N6390 X293.4609 Y-2.0409 Z34.7105 A310.8622 +N6400 X293.4875 Y-2.26 Z34.6938 A310.4171 +N6410 X293.5141 Y-2.4789 Z34.6754 A309.972 +N6420 X293.5407 Y-2.6977 Z34.6553 A309.5269 +N6430 X293.5673 Y-2.9163 Z34.6335 A309.0818 +N6440 X293.5939 Y-3.1348 Z34.61 A308.6368 +N6450 X293.6205 Y-3.353 Z34.5848 A308.1917 +N6460 X293.6471 Y-3.5711 Z34.5579 A307.7466 +N6470 X293.6738 Y-3.789 Z34.5293 A307.3015 +N6480 X293.7004 Y-4.0066 Z34.4991 A306.8565 +N6490 X293.727 Y-4.2239 Z34.4671 A306.4114 +N6500 X293.7536 Y-4.4411 Z34.4334 A305.9663 +N6510 X293.7802 Y-4.6579 Z34.3981 A305.5212 +N6520 X293.8068 Y-4.8745 Z34.3611 A305.0761 +N6530 X293.8334 Y-5.0908 Z34.3224 A304.6311 +N6540 X293.86 Y-5.3067 Z34.282 A304.186 +N6550 X293.8866 Y-5.5224 Z34.2399 A303.7409 +N6560 X293.9132 Y-5.7377 Z34.1962 A303.2958 +N6570 X293.9398 Y-5.9527 Z34.1508 A302.8508 +N6580 X293.9664 Y-6.1673 Z34.1037 A302.4057 +N6590 X293.993 Y-6.3815 Z34.055 A301.9606 +N6600 X294.0196 Y-6.5954 Z34.0046 A301.5155 +N6610 X294.0462 Y-6.8088 Z33.9525 A301.0704 +N6620 X294.0728 Y-7.0219 Z33.8988 A300.6254 +N6630 X294.0994 Y-7.2345 Z33.8434 A300.1803 +N6640 X294.126 Y-7.4467 Z33.7864 A299.7352 +N6650 X294.1526 Y-7.6584 Z33.7277 A299.2901 +N6660 X294.1792 Y-7.8697 Z33.6674 A298.8451 +N6670 X294.2058 Y-8.0805 Z33.6055 A298.4 +N6680 X294.2324 Y-8.2908 Z33.5419 A297.9549 +N6690 X294.259 Y-8.5006 Z33.4766 A297.5098 +N6700 X294.2856 Y-8.7099 Z33.4098 A297.0647 +N6710 X294.3122 Y-8.9187 Z33.3413 A296.6197 +N6720 X294.3388 Y-9.1269 Z33.2712 A296.1746 +N6730 X294.3654 Y-9.3346 Z33.1995 A295.7295 +N6740 X294.392 Y-9.5417 Z33.1262 A295.2844 +N6750 X294.4186 Y-9.7483 Z33.0513 A294.8394 +N6760 X294.4452 Y-9.9542 Z32.9748 A294.3943 +N6770 X294.4718 Y-10.1596 Z32.8966 A293.9492 +N6780 X294.4984 Y-10.3643 Z32.8169 A293.5041 +N6790 X294.525 Y-10.5684 Z32.7356 A293.0591 +N6800 X294.5517 Y-10.7719 Z32.6527 A292.614 +N6810 X294.5783 Y-10.9747 Z32.5683 A292.1689 +N6820 X294.6049 Y-11.1769 Z32.4822 A291.7238 +N6830 X294.6315 Y-11.3784 Z32.3946 A291.2787 +N6840 X294.6581 Y-11.5792 Z32.3055 A290.8337 +N6850 X294.6847 Y-11.7793 Z32.2147 A290.3886 +N6860 X294.7113 Y-11.9787 Z32.1225 A289.9435 +N6870 X294.7379 Y-12.1774 Z32.0286 A289.4984 +N6880 X294.7645 Y-12.3753 Z31.9333 A289.0534 +N6890 X294.7911 Y-12.5725 Z31.8364 A288.6083 +N6900 X294.8177 Y-12.769 Z31.7379 A288.1632 +N6910 X294.8443 Y-12.9646 Z31.638 A287.7181 +N6920 X294.8709 Y-13.1595 Z31.5365 A287.273 +N6930 X294.8975 Y-13.3536 Z31.4335 A286.828 +N6940 X294.9241 Y-13.5469 Z31.3291 A286.3829 +N6950 X294.9507 Y-13.7393 Z31.2231 A285.9378 +N6960 X294.9773 Y-13.931 Z31.1156 A285.4927 +N6970 X295.0039 Y-14.1218 Z31.0067 A285.0477 +N6980 X295.0305 Y-14.3117 Z30.8962 A284.6026 +N6990 X295.0571 Y-14.5008 Z30.7843 A284.1575 +N7000 X295.0837 Y-14.689 Z30.6709 A283.7124 +N7010 X295.1103 Y-14.8763 Z30.5561 A283.2673 +N7020 X295.1369 Y-15.0627 Z30.4398 A282.8223 +N7030 X295.1635 Y-15.2482 Z30.3221 A282.3772 +N7040 X295.1901 Y-15.4328 Z30.2029 A281.9321 +N7050 X295.2167 Y-15.6165 Z30.0823 A281.487 +N7060 X295.2433 Y-15.7992 Z29.9603 A281.042 +N7070 X295.2699 Y-15.981 Z29.8369 A280.5969 +N7080 X295.2965 Y-16.1618 Z29.712 A280.1518 +N7090 X295.3231 Y-16.3416 Z29.5858 A279.7067 +N7100 X295.3497 Y-16.5204 Z29.4581 A279.2616 +N7110 X295.3763 Y-16.6983 Z29.3291 A278.8166 +N7120 X295.4029 Y-16.8751 Z29.1987 A278.3715 +N7130 X295.4295 Y-17.0509 Z29.0669 A277.9264 +N7140 X295.4562 Y-17.2257 Z28.9338 A277.4813 +N7150 X295.4828 Y-17.3994 Z28.7993 A277.0363 +N7160 X295.5094 Y-17.5721 Z28.6635 A276.5912 +N7170 X295.536 Y-17.7438 Z28.5263 A276.1461 +N7180 X295.5626 Y-17.9143 Z28.3878 A275.701 +N7190 X295.5892 Y-18.0838 Z28.248 A275.2559 +N7200 X295.6158 Y-18.2522 Z28.1069 A274.8109 +N7210 X295.6424 Y-18.4195 Z27.9644 A274.3658 +N7220 X295.669 Y-18.5857 Z27.8207 A273.9207 +N7230 X295.6956 Y-18.7507 Z27.6757 A273.4756 +N7240 X295.7222 Y-18.9147 Z27.5294 A273.0306 +N7250 X295.7488 Y-19.0774 Z27.3818 A272.5855 +N7260 X295.7754 Y-19.2391 Z27.233 A272.1404 +N7270 X295.802 Y-19.3996 Z27.0829 A271.6953 +N7280 X295.8286 Y-19.5589 Z26.9316 A271.2502 +N7290 X295.8552 Y-19.717 Z26.7791 A270.8052 +N7300 X295.8818 Y-19.8739 Z26.6253 A270.3601 +N7310 X295.9084 Y-19.9926 Z26.5 A270.0 F17001.5664 +N7320 X323.3095 Y19.9741 F1998.6785 +N7330 X323.3361 Y19.7917 Z26.7062 A269.4062 F27830.0223 +N7340 X323.3627 Y19.6341 Z26.8593 A268.9611 F21116.9779 +N7350 X323.3893 Y19.4753 Z27.0112 A268.516 +N7360 X323.4159 Y19.3154 Z27.1619 A268.071 +N7370 X323.4425 Y19.1543 Z27.3113 A267.6259 +N7380 X323.4691 Y18.9921 Z27.4595 A267.1808 +N7390 X323.4957 Y18.8287 Z27.6064 A266.7357 +N7400 X323.5223 Y18.6642 Z27.752 A266.2906 +N7410 X323.5489 Y18.4985 Z27.8963 A265.8456 +N7420 X323.5755 Y18.3318 Z28.0394 A265.4005 +N7430 X323.6021 Y18.1639 Z28.1811 A264.9554 +N7440 X323.6287 Y17.9949 Z28.3216 A264.5103 +N7450 X323.6553 Y17.8249 Z28.4607 A264.0653 +N7460 X323.6819 Y17.6538 Z28.5985 A263.6202 +N7470 X323.7085 Y17.4816 Z28.735 A263.1751 +N7480 X323.7351 Y17.3083 Z28.8701 A262.73 +N7490 X323.7617 Y17.134 Z29.0039 A262.285 +N7500 X323.7883 Y16.9587 Z29.1363 A261.8399 +N7510 X323.8149 Y16.7824 Z29.2674 A261.3948 +N7520 X323.8415 Y16.605 Z29.397 A260.9497 +N7530 X323.8681 Y16.4266 Z29.5253 A260.5046 +N7540 X323.8947 Y16.2473 Z29.6522 A260.0596 +N7550 X323.9213 Y16.0669 Z29.7778 A259.6145 +N7560 X323.9479 Y15.8856 Z29.9019 A259.1694 +N7570 X323.9745 Y15.7034 Z30.0246 A258.7243 +N7580 X324.0012 Y15.5201 Z30.1458 A258.2793 +N7590 X324.0278 Y15.336 Z30.2657 A257.8342 +N7600 X324.0544 Y15.1509 Z30.3841 A257.3891 +N7610 X324.081 Y14.9649 Z30.5011 A256.944 +N7620 X324.1076 Y14.778 Z30.6166 A256.4989 +N7630 X324.1342 Y14.5903 Z30.7306 A256.0539 +N7640 X324.1608 Y14.4016 Z30.8433 A255.6088 +N7650 X324.1874 Y14.2121 Z30.9544 A255.1637 +N7660 X324.214 Y14.0217 Z31.0641 A254.7186 +N7670 X324.2406 Y13.8304 Z31.1722 A254.2736 +N7680 X324.2672 Y13.6384 Z31.2789 A253.8285 +N7690 X324.2938 Y13.4455 Z31.3841 A253.3834 +N7700 X324.3204 Y13.2518 Z31.4878 A252.9383 +N7710 X324.347 Y13.0573 Z31.59 A252.4932 +N7720 X324.3736 Y12.862 Z31.6907 A252.0482 +N7730 X324.4002 Y12.6659 Z31.7898 A251.6031 +N7740 X324.4268 Y12.4691 Z31.8874 A251.158 +N7750 X324.4534 Y12.2715 Z31.9835 A250.7129 +N7760 X324.48 Y12.0732 Z32.0781 A250.2679 +N7770 X324.5066 Y11.8741 Z32.1711 A249.8228 +N7780 X324.5332 Y11.6743 Z32.2626 A249.3777 +N7790 X324.5598 Y11.4739 Z32.3525 A248.9326 +N7800 X324.5864 Y11.2727 Z32.4408 A248.4875 +N7810 X324.613 Y11.0708 Z32.5276 A248.0425 +N7820 X324.6396 Y10.8683 Z32.6128 A247.5974 +N7830 X324.6662 Y10.6652 Z32.6965 A247.1523 +N7840 X324.6928 Y10.4613 Z32.7785 A246.7072 +N7850 X324.7194 Y10.2569 Z32.859 A246.2622 +N7860 X324.746 Y10.0518 Z32.9379 A245.8171 +N7870 X324.7726 Y9.8461 Z33.0152 A245.372 +N7880 X324.7992 Y9.6399 Z33.0908 A244.9269 +N7890 X324.8258 Y9.433 Z33.1649 A244.4818 +N7900 X324.8524 Y9.2256 Z33.2374 A244.0368 +N7910 X324.879 Y9.0176 Z33.3082 A243.5917 +N7920 X324.9057 Y8.8091 Z33.3775 A243.1466 +N7930 X324.9323 Y8.6001 Z33.4451 A242.7015 +N7940 X324.9589 Y8.3905 Z33.5111 A242.2565 +N7950 X324.9855 Y8.1804 Z33.5755 A241.8114 +N7960 X325.0121 Y7.9699 Z33.6382 A241.3663 +N7970 X325.0387 Y7.7588 Z33.6993 A240.9212 +N7980 X325.0653 Y7.5473 Z33.7587 A240.4761 +N7990 X325.0919 Y7.3353 Z33.8165 A240.0311 +N8000 X325.1185 Y7.1229 Z33.8727 A239.586 +N8010 X325.1451 Y6.9101 Z33.9272 A239.1409 +N8020 X325.1717 Y6.6968 Z33.98 A238.6958 +N8030 X325.1983 Y6.4831 Z34.0312 A238.2508 +N8040 X325.2249 Y6.2691 Z34.0808 A237.8057 +N8050 X325.2515 Y6.0546 Z34.1286 A237.3606 +N8060 X325.2781 Y5.8398 Z34.1748 A236.9155 +N8070 X325.3047 Y5.6247 Z34.2194 A236.4704 +N8080 X325.3313 Y5.4092 Z34.2622 A236.0254 +N8090 X325.3579 Y5.1934 Z34.3034 A235.5803 +N8100 X325.3845 Y4.9772 Z34.3429 A235.1352 +N8110 X325.4111 Y4.7608 Z34.3807 A234.6901 +N8120 X325.4377 Y4.5441 Z34.4169 A234.2451 +N8130 X325.4643 Y4.3271 Z34.4513 A233.8 +N8140 X325.4909 Y4.1098 Z34.4841 A233.3549 +N8150 X325.5175 Y3.8923 Z34.5152 A232.9098 +N8160 X325.5441 Y3.6746 Z34.5446 A232.4647 +N8170 X325.5707 Y3.4566 Z34.5723 A232.0197 +N8180 X325.5973 Y3.2385 Z34.5983 A231.5746 +N8190 X325.6239 Y3.0201 Z34.6226 A231.1295 +N8200 X325.6505 Y2.8015 Z34.6452 A230.6844 +N8210 X325.6771 Y2.5828 Z34.6661 A230.2394 +N8220 X325.7037 Y2.364 Z34.6853 A229.7943 +N8230 X325.7303 Y2.1449 Z34.7028 A229.3492 +N8240 X325.7569 Y1.9258 Z34.7186 A228.9041 +N8250 X325.7836 Y1.7065 Z34.7327 A228.459 +N8260 X325.8102 Y1.4872 Z34.7451 A228.014 +N8270 X325.8368 Y1.2677 Z34.7558 A227.5689 +N8280 X325.8634 Y1.0482 Z34.7648 A227.1238 +N8290 X325.89 Y0.8286 Z34.7721 A226.6787 +N8300 X325.9166 Y0.609 Z34.7777 A226.2337 +N8310 X325.9432 Y0.3893 Z34.7816 A225.7886 +N8320 X325.9698 Y0.1696 Z34.7838 A225.3435 +N8330 X325.9964 Y-0.0501 Z34.7842 A224.8984 +N8340 X326.023 Y-0.2699 Z34.783 A224.4533 +N8350 X326.0496 Y-0.4895 Z34.78 A224.0083 +N8360 X326.0762 Y-0.7092 Z34.7754 A223.5632 +N8370 X326.1028 Y-0.9288 Z34.769 A223.1181 +N8380 X326.1294 Y-1.1484 Z34.7609 A222.673 +N8390 X326.156 Y-1.3679 Z34.7512 A222.228 +N8400 X326.1826 Y-1.5873 Z34.7397 A221.7829 +N8410 X326.2092 Y-1.8066 Z34.7265 A221.3378 +N8420 X326.2358 Y-2.0258 Z34.7116 A220.8927 +N8430 X326.2624 Y-2.2449 Z34.695 A220.4477 +N8440 X326.289 Y-2.4639 Z34.6768 A220.0026 +N8450 X326.3156 Y-2.6827 Z34.6568 A219.5575 +N8460 X326.3422 Y-2.9013 Z34.6351 A219.1124 +N8470 X326.3688 Y-3.1198 Z34.6117 A218.6673 +N8480 X326.3954 Y-3.3381 Z34.5866 A218.2223 +N8490 X326.422 Y-3.5561 Z34.5598 A217.7772 +N8500 X326.4486 Y-3.774 Z34.5314 A217.3321 +N8510 X326.4752 Y-3.9916 Z34.5012 A216.887 +N8520 X326.5018 Y-4.209 Z34.4693 A216.442 +N8530 X326.5284 Y-4.4262 Z34.4358 A215.9969 +N8540 X326.555 Y-4.643 Z34.4006 A215.5518 +N8550 X326.5816 Y-4.8596 Z34.3637 A215.1067 +N8560 X326.6082 Y-5.0759 Z34.3251 A214.6616 +N8570 X326.6348 Y-5.2919 Z34.2848 A214.2166 +N8580 X326.6614 Y-5.5076 Z34.2429 A213.7715 +N8590 X326.6881 Y-5.7229 Z34.1992 A213.3264 +N8600 X326.7147 Y-5.9379 Z34.154 A212.8813 +N8610 X326.7413 Y-6.1526 Z34.107 A212.4363 +N8620 X326.7679 Y-6.3668 Z34.0584 A211.9912 +N8630 X326.7945 Y-6.5807 Z34.0081 A211.5461 +N8640 X326.8211 Y-6.7942 Z33.9561 A211.101 +N8650 X326.8477 Y-7.0073 Z33.9025 A210.6559 +N8660 X326.8743 Y-7.2199 Z33.8473 A210.2109 +N8670 X326.9009 Y-7.4321 Z33.7904 A209.7658 +N8680 X326.9275 Y-7.6439 Z33.7318 A209.3207 +N8690 X326.9541 Y-7.8552 Z33.6716 A208.8756 +N8700 X326.9807 Y-8.066 Z33.6098 A208.4306 +N8710 X327.0073 Y-8.2764 Z33.5463 A207.9855 +N8720 X327.0339 Y-8.4862 Z33.4812 A207.5404 +N8730 X327.0605 Y-8.6956 Z33.4144 A207.0953 +N8740 X327.0871 Y-8.9044 Z33.3461 A206.6502 +N8750 X327.1137 Y-9.1126 Z33.2761 A206.2052 +N8760 X327.1403 Y-9.3204 Z33.2045 A205.7601 +N8770 X327.1669 Y-9.5275 Z33.1313 A205.315 +N8780 X327.1935 Y-9.7341 Z33.0565 A204.8699 +N8790 X327.2201 Y-9.9401 Z32.9801 A204.4249 +N8800 X327.2467 Y-10.1455 Z32.9021 A203.9798 +N8810 X327.2733 Y-10.3503 Z32.8225 A203.5347 +N8820 X327.2999 Y-10.5544 Z32.7413 A203.0896 +N8830 X327.3265 Y-10.758 Z32.6585 A202.6445 +N8840 X327.3531 Y-10.9608 Z32.5741 A202.1995 +N8850 X327.3797 Y-11.1631 Z32.4882 A201.7544 +N8860 X327.4063 Y-11.3646 Z32.4007 A201.3093 +N8870 X327.4329 Y-11.5654 Z32.3116 A200.8642 +N8880 X327.4595 Y-11.7656 Z32.221 A200.4192 +N8890 X327.4861 Y-11.965 Z32.1288 A199.9741 +N8900 X327.5127 Y-12.1638 Z32.0351 A199.529 +N8910 X327.5393 Y-12.3618 Z31.9399 A199.0839 +N8920 X327.5659 Y-12.559 Z31.8431 A198.6388 +N8930 X327.5926 Y-12.7555 Z31.7448 A198.1938 +N8940 X327.6192 Y-12.9512 Z31.6449 A197.7487 +N8950 X327.6458 Y-13.1461 Z31.5435 A197.3036 +N8960 X327.6724 Y-13.3403 Z31.4407 A196.8585 +N8970 X327.699 Y-13.5336 Z31.3363 A196.4135 +N8980 X327.7256 Y-13.7261 Z31.2304 A195.9684 +N8990 X327.7522 Y-13.9178 Z31.123 A195.5233 +N9000 X327.7788 Y-14.1087 Z31.0142 A195.0782 +N9010 X327.8054 Y-14.2987 Z30.9038 A194.6331 +N9020 X327.832 Y-14.4878 Z30.792 A194.1881 +N9030 X327.8586 Y-14.6761 Z30.6788 A193.743 +N9040 X327.8852 Y-14.8635 Z30.564 A193.2979 +N9050 X327.9118 Y-15.0499 Z30.4478 A192.8528 +N9060 X327.9384 Y-15.2355 Z30.3302 A192.4078 +N9070 X327.965 Y-15.4202 Z30.2111 A191.9627 +N9080 X327.9916 Y-15.6039 Z30.0906 A191.5176 +N9090 X328.0182 Y-15.7867 Z29.9687 A191.0725 +N9100 X328.0448 Y-15.9685 Z29.8454 A190.6274 +N9110 X328.0714 Y-16.1494 Z29.7206 A190.1824 +N9120 X328.098 Y-16.3293 Z29.5945 A189.7373 +N9130 X328.1246 Y-16.5082 Z29.4669 A189.2922 +N9140 X328.1512 Y-16.6861 Z29.338 A188.8471 +N9150 X328.1778 Y-16.863 Z29.2077 A188.4021 +N9160 X328.2044 Y-17.0389 Z29.076 A187.957 +N9170 X328.231 Y-17.2137 Z28.943 A187.5119 +N9180 X328.2576 Y-17.3875 Z28.8086 A187.0668 +N9190 X328.2842 Y-17.5603 Z28.6729 A186.6217 +N9200 X328.3108 Y-17.732 Z28.5358 A186.1767 +N9210 X328.3374 Y-17.9026 Z28.3974 A185.7316 +N9220 X328.364 Y-18.0722 Z28.2577 A185.2865 +N9230 X328.3906 Y-18.2407 Z28.1166 A184.8414 +N9240 X328.4172 Y-18.408 Z27.9743 A184.3964 +N9250 X328.4438 Y-18.5743 Z27.8306 A183.9513 +N9260 X328.4705 Y-18.7394 Z27.6857 A183.5062 +N9270 X328.4971 Y-18.9034 Z27.5395 A183.0611 +N9280 X328.5237 Y-19.0663 Z27.392 A182.6161 +N9290 X328.5503 Y-19.228 Z27.2433 A182.171 +N9300 X328.5769 Y-19.3886 Z27.0933 A181.7259 +N9310 X328.6035 Y-19.548 Z26.9421 A181.2808 +N9320 X328.6301 Y-19.7062 Z26.7896 A180.8357 +N9330 X328.6567 Y-19.8632 Z26.6359 A180.3907 +N9340 X328.6833 Y-19.9953 Z26.5 A180.0 F18480.8829 +N9350 X331.982 Y-15.179 F2000.0 +N9360 M05 $0 +N9370 G00 Z50.0 +N9380 Z58.2843 +N9390 X0.0 Y0.0 A135.0 +N9400 M05 M30 diff --git a/nc_files/plasmac/metric_ramp_pierce.ngc b/nc_files/plasmac/metric_ramp_pierce.ngc new file mode 100644 index 00000000000..4acab021e39 --- /dev/null +++ b/nc_files/plasmac/metric_ramp_pierce.ngc @@ -0,0 +1,52 @@ +; file name: ramp.ngc +; date and time: Wed Nov 08 2023 21:15:23 +; postprocessor: LinuxCNC PlasmaC.scpost rev: 0.5 +; +;begin pre-amble + G21 (units: metric) + G40 (cutter compensation: off) + G90 (distance mode: absolute) + M52 P1 (enable adaptive feed) + M65 P2 (enable THC) + M65 P3 (enable torch) + M68 E3 Q0 (velocity 100%) + G64 P0.254 Q0.025 (tracking tolerances: 0.254mm) +;end pre-amble + m159 p601 q2 (pierce type - ramp) + m159 p602 q50 (pierce motino delay as a percentage of total pierce time - 50%) + m159 p603 q2.5 (pierce end height) + m159 p604 q1 (cut height delay in seconds) + m159 p605 q980 (gouge speed in units per min) + m159 p606 q5 (Gouge distance in machine units) + m159 p607 q245 (Creep speed in unit per min) + m159 p608 q3 (Creep distance in machine units) + M67 E3 Q100 +; +;begin material setup + T0 M6 (select plasma tool) + G43 H0 (apply tool offsets) + (o=0,kw=2, ph=4, pd=1, ch=1.5, fr=490, th=1, cv=99, pe=0.3, jh=0, jd=0) + F#<_hal[plasmac.cut-feed-rate]> +;end material setup + G0 X0 Y0 + M3 $0 S1 (plasma start) + M67 E3 Q100 + G1 X0 Y60 + m159 p609 (reset to default pierce behaviour) + M5 $0 (plasma end) + ; + ;begin post-amble + G40 (cutter compensation: off) + G90 (distance mode: absolute) + M65 P2 (enable THC) + M65 P3 (enable torch) + M68 E3 Q0 (velocity 100%) + M5 $-1 (backup stop) + ;end post-amble + ; + ;begin statistics + ;Pierces = 1 + ; Cuts = 1, Length = 60.00mm + ;end statistics + ; + M30 (end program) diff --git a/nc_files/plasmac/metric_squares.ngc b/nc_files/plasmac/metric_squares.ngc new file mode 100644 index 00000000000..81b8faae0bb --- /dev/null +++ b/nc_files/plasmac/metric_squares.ngc @@ -0,0 +1,27 @@ +(metric squares) + +#1 = 50 (Scale) +#2 = 3 (Iterations) +#3 = 762 (Feed Rate) +#4 = 0.5 +#5 = [#1*#2*#4] + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +o100 repeat [#2] + G0 X[#5-#4*#1] Y[#5-#4*#1] + M3 $0 S1 (start plasma torch) + G1 Y[#5+#4*#1] + G1 X[#5+#4*#1] + G1 Y[#5-#4*#1] + G1 X[#5-#4*#1] + M5 $0 (stop plasma torch) + #4 = [#4+0.5] +o100 endrepeat + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmac/metric_temporary_materials.ngc b/nc_files/plasmac/metric_temporary_materials.ngc new file mode 100644 index 00000000000..6e0a15718a7 --- /dev/null +++ b/nc_files/plasmac/metric_temporary_materials.ngc @@ -0,0 +1,37 @@ +(metric temporary materials) + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +(o=0, na=Steel 3mm, ph=3.0, pd=0.0, ch=1.0, fr=3000, kw=1.0) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X25 Y25 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +(o=0, na=Steel 3.1mm, ph=3.1, pd=0.1, ch=1.1, fr=3001, kw=1.1) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y50 +M3 $0 S1 (start plasma torch) +G1 X25 +M5 $0 (stop plasma torch) + +(o=0, na=Steel 3.2mm, ph=3.2, pd=0.2, ch=1.2, fr=3002, kw=1.2) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 X25 Y75 +M3 $0 S1 (start plasma torch) +G1 X125 +M5 $0 (stop plasma torch) + +(o=0, na=Steel 3.3mm, ph=3.3, pd=0.3, ch=1.3, fr=3003, kw=1.3) +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) +G0 Y100 +M3 $0 S1 (start plasma torch) +G1 X25 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M190 P-1 (default material) +M2 (end program) \ No newline at end of file diff --git a/nc_files/plasmac/metric_wrench.ngc b/nc_files/plasmac/metric_wrench.ngc new file mode 100644 index 00000000000..edf525af17c --- /dev/null +++ b/nc_files/plasmac/metric_wrench.ngc @@ -0,0 +1,37 @@ +(metric wrench) + +# = 4 (holes and arcs with overburn) + +G21 (metric units) +G64 P0.125 (path tolerance) +M52 P1 (enable adaptive feed) + +F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters) + +(the hole) +G0 X149.739 Y27.45 +M3 $0 S1 (start plasma torch) +G3 X149.739 Y27.45 I-2 J0 +M5 $0 (stop plasma torch) + +(the wrench) +G0 X4.920 Y38.710 +M3 $0 S1 (start plasma torch) +G1 X4.920 Y43.710 +G2 X5.900 Y45.928 I3 J-0 +G2 X43.068 Y42 I16.833 J-18.538 +G3 X57.871 Y35.45 I14.721 J13.267 +G1 X147.739 Y33.45 +G2 X147.739 Y21.45 I0 J-6 +G1 X57.871 Y19.45 +G3 X43.068 Y12.9 I0 J-20 +G2 X5.9 Y8.972 I-20.32 J14.46 +G2 X4.92 Y11.189 I1.653 J2.055 +G1 X4.92 Y13.7 +G1 X21.92 Y13.70 +G3 X21.92 Y41.2 I-8.182 J13.75 +G1 X4.92 Y41.2 +M5 $0 (stop plasma torch) + +G0 X0 Y0 +M2 (end program) diff --git a/nc_files/plasmatest.ngc b/nc_files/plasmatest.ngc new file mode 100644 index 00000000000..acdb28c1c4a --- /dev/null +++ b/nc_files/plasmatest.ngc @@ -0,0 +1,404 @@ +N0000 (Filename: PlasmaTest.tap) +N0010 (Post processor: EMC-Plasma.post) +N0020 (Date: 1.7.2008) +N0030 G21 (Units: Metric) +N0040 G90 G40 +N0050 F1 +N0060 S500 +N0070 (Part: PlasmaTest) +N0080 (Process: Plasma, DEFAULT, Plasma 80A 3mm) +N0090 M06 T1 F5840 (Plasma 80A 3mm) +N0100 G00 +N0110 X164.0817 Y167.1007 +N0120 M03 +N0130 G03 X163.1598 Y168.0227 I-0.9220 J0.0000 F5840.0 +N0140 G01 Y149.6432 +N0150 X164.3104 +N0160 Y155.7606 +N0170 G02 X164.5351 Y156.2960 I0.7500 J0.0000 +N0180 G01 X167.7335 Y159.4342 +N0190 G02 X168.8713 Y159.3317 I0.5253 J-0.5353 +N0200 G01 X175.7179 Y149.6432 +N0210 X177.3114 +N0220 X169.4923 Y160.2594 +N0230 G02 X169.5707 Y161.2393 I0.6039 J0.4448 +N0240 G01 X176.4791 Y168.0227 +N0250 X174.8909 +N0260 X165.5906 Y158.7261 +N0270 G02 X164.3104 Y159.2565 I-0.5302 J0.5304 +N0280 G01 Y168.0227 +N0290 X163.1598 +N0300 M05 +N0310 G00 X152.9049 Y164.0884 +N0320 M03 +N0330 G03 X149.5772 Y168.3800 I-3.8096 J0.4820 +N0340 G01 X147.7354 Y168.2182 +N0350 X146.0809 Y167.7357 +N0360 X144.6123 Y166.9367 +N0370 X143.3157 Y165.8152 +N0380 X142.2560 Y164.4074 +N0390 X141.4941 Y162.7420 +N0400 X141.0297 Y160.7979 +N0410 X140.8735 Y158.5826 +N0420 X141.1399 Y156.1827 +N0430 X141.9302 Y153.9351 +N0440 X143.2171 Y152.0029 +N0450 X144.9829 Y150.5353 +N0460 X147.1345 Y149.6016 +N0470 X149.5803 Y149.2877 +N0480 X151.8800 Y149.5716 +N0490 X154.0070 Y150.4191 +N0500 X155.8060 Y151.8044 +N0510 X157.1496 Y153.7273 +N0520 X157.9963 Y156.0978 +N0530 X158.2822 Y158.8005 +N0540 X158.0104 Y161.4665 +N0550 X157.2053 Y163.8050 +N0560 X155.9075 Y165.7275 +N0570 X154.1388 Y167.1674 +N0580 X151.9986 Y168.0736 +N0590 X149.5772 Y168.3800 +N0600 M05 +N0610 G00 X133.8400 Y125.4100 +N0620 M03 +N0630 G03 X130.0000 Y129.2500 I-3.8400 J0.0000 +N0640 G02 X129.2500 Y130.0000 I0.0000 J0.7500 +N0650 G01 Y190.0000 +N0660 G02 X130.0000 Y190.7500 I0.7500 J0.0000 +N0670 G01 X190.0000 +N0680 G02 X190.7500 Y190.0000 I0.0000 J-0.7500 +N0690 G01 Y130.0000 +N0700 G02 X190.0000 Y129.2500 I-0.7500 J0.0000 +N0710 G01 X130.0000 +N0720 M05 +N0730 G00 X152.2556 Y227.2129 +N0740 M03 +N0750 G03 X156.0956 Y223.3729 I3.8400 J0.0000 +N0760 G02 X156.8456 Y222.6229 I0.0000 J-0.7500 +N0770 G01 Y202.7434 +N0780 G02 X156.0956 Y201.9934 I-0.7500 J0.0000 +N0790 G01 X153.2774 +N0800 G02 X152.6494 Y202.3334 I0.0000 J0.7500 +N0810 G01 X144.0745 Y215.4691 +N0820 Y202.7434 +N0830 G02 X143.3245 Y201.9934 I-0.7500 J0.0000 +N0840 G01 X140.6739 +N0850 G02 X139.9239 Y202.7434 I0.0000 J0.7500 +N0860 G01 Y222.6229 +N0870 G02 X140.6739 Y223.3729 I0.7500 J0.0000 +N0880 G01 X143.4921 +N0890 G02 X144.1201 Y223.0329 I0.0000 J-0.7500 +N0900 G01 X152.6950 Y209.8973 +N0910 Y222.6229 +N0920 G02 X153.4450 Y223.3729 I0.7500 J0.0000 +N0930 G01 X156.0956 +N0940 M05 +N0950 G00 X165.9475 Y228.0201 +N0960 M03 +N0970 G03 X169.2752 Y223.7285 I3.8096 J-0.4820 +N0980 G01 X171.8792 Y223.3990 +N0990 G02 X172.0775 Y223.3456 I-0.0941 J-0.7441 +N1000 G01 X174.4114 Y222.3572 +N1010 G02 X174.5924 Y222.2483 I-0.2925 J-0.6906 +N1020 G01 X176.5300 Y220.6709 +N1030 G02 X176.6782 Y220.5089 I-0.4735 J-0.5816 +N1040 G01 X178.0933 Y218.4125 +N1050 G02 X178.1809 Y218.2370 I-0.6216 J-0.4196 +N1060 G01 X179.0464 Y215.7231 +N1070 G02 X179.0833 Y215.5550 I-0.7091 J-0.2441 +N1080 G01 X179.3718 Y212.7254 +N1090 G02 X179.3715 Y212.5704 I-0.7461 J-0.0761 +N1100 G01 X179.0680 Y209.7012 +N1110 G02 X179.0285 Y209.5278 I-0.7458 J0.0789 +N1120 G01 X178.1178 Y206.9782 +N1130 G02 X178.0263 Y206.8008 I-0.7063 J0.2523 +N1140 G01 X176.5591 Y204.7011 +N1150 G02 X176.4019 Y204.5365 I-0.6148 J0.4296 +N1160 G01 X174.4288 Y203.0170 +N1170 G02 X174.2488 Y202.9145 I-0.4576 J0.5942 +N1180 G01 X171.9349 Y201.9926 +N1190 G02 X171.7492 Y201.9449 I-0.2776 J0.6967 +N1200 G01 X169.2598 Y201.6376 +N1210 G02 X169.0724 Y201.6381 I-0.0919 J0.7443 +N1220 G01 X166.4274 Y201.9776 +N1230 G02 X166.2244 Y202.0335 I0.0955 J0.7439 +N1240 G01 X163.8769 Y203.0522 +N1250 G02 X163.6960 Y203.1634 I0.2986 J0.6880 +N1260 G01 X161.7636 Y204.7695 +N1270 G02 X161.6188 Y204.9305 I0.4794 J0.5768 +N1280 G01 X160.2191 Y207.0321 +N1290 G02 X160.1358 Y207.1991 I0.6242 J0.4157 +N1300 G01 X159.2858 Y209.6162 +N1310 G02 X159.2479 Y209.7823 I0.7075 J0.2488 +N1320 G01 X158.9646 Y212.3350 +N1330 G02 X158.9619 Y212.4705 I0.7454 J0.0827 +N1340 G01 X159.1272 Y214.8151 +N1350 G02 X159.1458 Y214.9366 I0.7481 J-0.0527 +N1360 G01 X159.6416 Y217.0119 +N1370 G02 X159.6890 Y217.1497 I0.7295 J-0.1743 +N1380 G01 X160.5153 Y218.9557 +N1390 G02 X160.5981 Y219.0947 I0.6820 J-0.3120 +N1400 G01 X161.7549 Y220.6314 +N1410 G02 X161.8634 Y220.7476 I0.5992 J-0.4511 +N1420 G01 X163.2816 Y221.9743 +N1430 G02 X163.4138 Y222.0659 I0.4907 J-0.5672 +N1440 G01 X165.0244 Y222.9422 +N1450 G02 X165.1729 Y223.0034 I0.3584 J-0.6588 +N1460 G01 X166.9758 Y223.5291 +N1470 G02 X167.1201 Y223.5563 I0.2100 J-0.7200 +N1480 G01 X169.1154 Y223.7315 +N1490 G02 X169.2752 Y223.7285 I0.0656 J-0.7471 +N1500 M05 +N1510 G00 X447.2051 Y175.3525 +N1520 M03 +N1530 G03 X446.0887 Y170.0379 I2.0991 J-3.2155 +N1540 G01 X454.6636 Y156.9022 +N1550 Y169.6279 +N1560 G02 X455.4136 Y170.3779 I0.7500 J0.0000 +N1570 G01 X458.0642 +N1580 G02 X458.8142 Y169.6279 I0.0000 J-0.7500 +N1590 G01 Y149.7484 +N1600 G02 X458.0642 Y148.9984 I-0.7500 J0.0000 +N1610 G01 X455.2461 +N1620 G02 X454.6180 Y149.3384 I0.0000 J0.7500 +N1630 G01 X446.0431 Y162.4741 +N1640 Y149.7484 +N1650 G02 X445.2931 Y148.9984 I-0.7500 J0.0000 +N1660 G01 X442.6425 +N1670 G02 X441.8925 Y149.7484 I0.0000 J0.7500 +N1680 G01 Y169.6279 +N1690 G02 X442.6425 Y170.3779 I0.7500 J0.0000 +N1700 G01 X445.4607 +N1710 G02 X446.0887 Y170.0379 I0.0000 J-0.7500 +N1720 M05 +N1730 G00 X467.9162 Y175.0250 +N1740 M03 +N1750 G03 X471.2438 Y170.7334 I3.8096 J-0.4820 +N1760 G01 X473.8478 Y170.4040 +N1770 G02 X474.0462 Y170.3505 I-0.0941 J-0.7441 +N1780 G01 X476.3800 Y169.3622 +N1790 G02 X476.5611 Y169.2532 I-0.2925 J-0.6906 +N1800 G01 X478.4986 Y167.6759 +N1810 G02 X478.6468 Y167.5139 I-0.4735 J-0.5816 +N1820 G01 X480.0620 Y165.4175 +N1830 G02 X480.1495 Y165.2420 I-0.6216 J-0.4196 +N1840 G01 X481.0150 Y162.7281 +N1850 G02 X481.0520 Y162.5600 I-0.7091 J-0.2441 +N1860 G01 X481.3405 Y159.7303 +N1870 G02 X481.3402 Y159.5754 I-0.7461 J-0.0761 +N1880 G01 X481.0366 Y156.7062 +N1890 G02 X480.9971 Y156.5328 I-0.7458 J0.0789 +N1900 G01 X480.0864 Y153.9831 +N1910 G02 X479.9949 Y153.8058 I-0.7063 J0.2523 +N1920 G01 X478.5277 Y151.7061 +N1930 G02 X478.3705 Y151.5415 I-0.6148 J0.4296 +N1940 G01 X476.3974 Y150.0220 +N1950 G02 X476.2174 Y149.9195 I-0.4576 J0.5942 +N1960 G01 X473.9035 Y148.9975 +N1970 G02 X473.7178 Y148.9499 I-0.2776 J0.6967 +N1980 G01 X471.2284 Y148.6426 +N1990 G02 X471.0410 Y148.6431 I-0.0919 J0.7443 +N2000 G01 X468.3960 Y148.9826 +N2010 G02 X468.1930 Y149.0385 I0.0955 J0.7439 +N2020 G01 X465.8455 Y150.0572 +N2030 G02 X465.6647 Y150.1684 I0.2986 J0.6880 +N2040 G01 X463.7322 Y151.7744 +N2050 G02 X463.5874 Y151.9355 I0.4794 J0.5768 +N2060 G01 X462.1877 Y154.0371 +N2070 G02 X462.1044 Y154.2040 I0.6242 J0.4157 +N2080 G01 X461.2545 Y156.6212 +N2090 G02 X461.2166 Y156.7873 I0.7075 J0.2488 +N2100 G01 X460.9333 Y159.3400 +N2110 G02 X460.9305 Y159.4755 I0.7454 J0.0827 +N2120 G01 X461.0958 Y161.8201 +N2130 G02 X461.1144 Y161.9416 I0.7481 J-0.0527 +N2140 G01 X461.6102 Y164.0169 +N2150 G02 X461.6577 Y164.1547 I0.7295 J-0.1743 +N2160 G01 X462.4839 Y165.9607 +N2170 G02 X462.5667 Y166.0997 I0.6820 J-0.3120 +N2180 G01 X463.7235 Y167.6364 +N2190 G02 X463.8320 Y167.7526 I0.5992 J-0.4511 +N2200 G01 X465.2502 Y168.9793 +N2210 G02 X465.3824 Y169.0709 I0.4907 J-0.5672 +N2220 G01 X466.9930 Y169.9472 +N2230 G02 X467.1415 Y170.0084 I0.3584 J-0.6588 +N2240 G01 X468.9444 Y170.5341 +N2250 G02 X469.0888 Y170.5612 I0.2100 J-0.7200 +N2260 G01 X471.0841 Y170.7365 +N2270 G02 X471.2438 Y170.7334 I0.0656 J-0.7471 +N2280 M05 +N2290 G00 X434.5900 Y134.5900 +N2300 M03 +N2310 G03 X430.7500 Y130.7500 I0.0000 J-3.8400 +N2320 G01 X489.2500 +N2330 Y189.2500 +N2340 X430.7500 +N2350 Y130.7500 +N2360 M05 +N2370 G00 X463.6377 Y219.5319 +N2380 M03 +N2390 G03 X462.7158 Y220.4539 I-0.9220 J0.0000 +N2400 G01 Y202.0743 +N2410 X463.8664 +N2420 Y208.1918 +N2430 G02 X464.0911 Y208.7272 I0.7500 J0.0000 +N2440 G01 X467.2895 Y211.8653 +N2450 G02 X468.4273 Y211.7628 I0.5253 J-0.5353 +N2460 G01 X475.2739 Y202.0743 +N2470 X476.8674 +N2480 X469.0483 Y212.6906 +N2490 G02 X469.1267 Y213.6705 I0.6039 J0.4448 +N2500 G01 X476.0351 Y220.4539 +N2510 X474.4469 +N2520 X465.1466 Y211.1572 +N2530 G02 X463.8664 Y211.6877 I-0.5302 J0.5304 +N2540 G01 Y220.4539 +N2550 X462.7158 +N2560 M05 +N2570 G00 X452.4609 Y216.5195 +N2580 M03 +N2590 G03 X449.1332 Y220.8112 I-3.8096 J0.4820 +N2600 G01 X447.2914 Y220.6494 +N2610 X445.6369 Y220.1669 +N2620 X444.1683 Y219.3679 +N2630 X442.8717 Y218.2463 +N2640 X441.8120 Y216.8386 +N2650 X441.0501 Y215.1732 +N2660 X440.5857 Y213.2290 +N2670 X440.4295 Y211.0138 +N2680 X440.6959 Y208.6139 +N2690 X441.4862 Y206.3663 +N2700 X442.7731 Y204.4340 +N2710 X444.5389 Y202.9665 +N2720 X446.6905 Y202.0328 +N2730 X449.1363 Y201.7188 +N2740 X451.4360 Y202.0027 +N2750 X453.5630 Y202.8502 +N2760 X455.3620 Y204.2356 +N2770 X456.7056 Y206.1584 +N2780 X457.5523 Y208.5290 +N2790 X457.8382 Y211.2316 +N2800 X457.5664 Y213.8976 +N2810 X456.7613 Y216.2361 +N2820 X455.4635 Y218.1586 +N2830 X453.6948 Y219.5985 +N2840 X451.5546 Y220.5048 +N2850 X449.1332 Y220.8112 +N2860 M05 +N2870 G00 X198.1468 Y205.9716 +N2880 M03 +N2890 G03 X197.2973 Y211.3353 I-3.1066 J2.2571 +N2900 G02 X189.9858 Y255.1134 I18.6044 J25.6068 +N2910 G01 X160.0000 Y298.6772 +N2920 X130.0142 Y255.1134 +N2930 G02 X78.8079 Y217.9099 I-25.9159 J-18.1714 +N2940 G01 X28.1101 Y202.8536 +N2950 X60.2756 Y160.8734 +N2960 G02 X79.8347 Y100.6768 I9.2735 J-30.2627 +N2970 G01 X78.4876 Y47.8078 +N2980 X128.3528 Y65.4264 +N2990 G02 X191.6472 Y65.4264 I31.6472 J-0.5320 +N3000 G01 X241.5124 Y47.8078 +N3010 X240.1653 Y100.6768 +N3020 G02 X259.7244 Y160.8734 I10.2855 J29.9339 +N3030 G01 X291.8899 Y202.8536 +N3040 X241.1921 Y217.9099 +N3050 G02 X197.2973 Y211.3353 I-25.2904 J19.0322 +N3060 M05 +N3070 G00 X63.8489 Y258.6908 +N3080 M03 +N3090 G03 X64.7709 Y257.7689 I0.9220 J0.0000 +N3100 G01 Y263.8863 +N3110 G02 X64.9956 Y264.4217 I0.7500 J0.0000 +N3120 G01 X68.1941 Y267.5599 +N3130 G02 X69.3318 Y267.4574 I0.5253 J-0.5353 +N3140 G01 X76.1785 Y257.7689 +N3150 X77.7720 +N3160 X69.9528 Y268.3851 +N3170 G02 X70.0312 Y269.3650 I0.6039 J0.4448 +N3180 G01 X76.9396 Y276.1484 +N3190 X75.3514 +N3200 X66.0511 Y266.8518 +N3210 G02 X64.7709 Y267.3822 I-0.5302 J0.5304 +N3220 G01 Y276.1484 +N3230 X63.6203 +N3240 Y257.7689 +N3250 X64.7709 +N3260 M05 +N3270 G00 X53.3654 Y272.2141 +N3280 M03 +N3290 G03 X50.0377 Y276.5057 I-3.8096 J0.4820 +N3300 G01 X48.1960 Y276.3439 +N3310 X46.5414 Y275.8614 +N3320 X45.0728 Y275.0624 +N3330 X43.7763 Y273.9409 +N3340 X42.7166 Y272.5331 +N3350 X41.9546 Y270.8677 +N3360 X41.4902 Y268.9236 +N3370 X41.3341 Y266.7083 +N3380 X41.6004 Y264.3084 +N3390 X42.3908 Y262.0608 +N3400 X43.6777 Y260.1285 +N3410 X45.4434 Y258.6610 +N3420 X47.5950 Y257.7273 +N3430 X50.0408 Y257.4133 +N3440 X52.3406 Y257.6972 +N3450 X54.4675 Y258.5447 +N3460 X56.2666 Y259.9301 +N3470 X57.6101 Y261.8529 +N3480 X58.4568 Y264.2235 +N3490 X58.7428 Y266.9262 +N3500 X58.4710 Y269.5922 +N3510 X57.6659 Y271.9306 +N3520 X56.3681 Y273.8531 +N3530 X54.5993 Y275.2930 +N3540 X52.4592 Y276.1993 +N3550 X50.0377 Y276.5057 +N3560 M05 +N3570 G00 X5.4100 Y306.1600 +N3580 M03 +N3590 G03 X9.2500 Y310.0000 I0.0000 J3.8400 +N3600 G02 X10.0000 Y310.7500 I0.7500 J0.0000 +N3610 G01 X310.0000 +N3620 G02 X310.7500 Y310.0000 I0.0000 J-0.7500 +N3630 G01 Y10.0000 +N3640 G02 X310.0000 Y9.2500 I-0.7500 J0.0000 +N3650 G01 X10.0000 +N3660 G02 X9.2500 Y10.0000 I0.0000 J0.7500 +N3670 G01 Y310.0000 +N3680 M05 +N3690 G00 X565.9790 Y160.2565 +N3700 M03 +N3710 G03 X560.5953 Y159.5438 I-2.3355 J-3.0481 +N3720 G02 X559.7682 Y159.2867 I-0.5953 J0.4562 +N3730 G03 X541.1335 Y101.9348 I-9.3174 J-28.6760 +N3740 G02 X541.6515 Y101.2406 I-0.2318 J-0.7133 +N3750 G01 X543.0397 Y46.7567 +N3760 G02 X542.0401 Y46.0305 I-0.7498 J-0.0191 +N3770 G01 X490.6518 Y64.1872 +N3780 G02 X490.1517 Y64.8943 I0.2499 J0.7072 +N3790 G03 X429.8483 Y64.8943 I-30.1517 J0.0000 +N3800 G02 X429.3482 Y64.1872 I-0.7500 J0.0000 +N3810 G01 X377.9599 Y46.0305 +N3820 G02 X376.9603 Y46.7567 I-0.2499 J0.7072 +N3830 G01 X378.3485 Y101.2406 +N3840 G02 X378.8665 Y101.9348 I0.7498 J-0.0191 +N3850 G03 X360.2318 Y159.2867 I-9.3174 J28.6760 +N3860 G02 X359.4047 Y159.5438 I-0.2318 J0.7133 +N3870 G01 X326.2568 Y202.8062 +N3880 G02 X326.6386 Y203.9813 I0.5953 J0.4562 +N3890 G01 X378.8848 Y219.4975 +N3900 G02 X379.7051 Y219.2194 I0.2135 J-0.7190 +N3910 G03 X428.4915 Y254.6648 I24.3932 J17.7227 +N3920 G02 X428.4805 Y255.5309 I0.6068 J0.4408 +N3930 G01 X459.3822 Y300.4252 +N3940 G02 X460.6178 Y300.4252 I0.6178 J-0.4252 +N3950 G01 X491.5195 Y255.5309 +N3960 G02 X491.5085 Y254.6648 I-0.6178 J-0.4252 +N3970 G03 X540.2949 Y219.2194 I24.3932 J-17.7227 +N3980 G02 X541.1152 Y219.4975 I0.6068 J-0.4408 +N3990 G01 X593.3614 Y203.9813 +N4000 G02 X593.7432 Y202.8062 I-0.2135 J-0.7190 +N4010 G01 X560.5953 Y159.5438 +N4020 M05 +N4030 M05 M30 diff --git a/nc_files/polar.ngc b/nc_files/polar.ngc new file mode 100644 index 00000000000..8040eb19af5 --- /dev/null +++ b/nc_files/polar.ngc @@ -0,0 +1,21 @@ +; how to use polar coordinates: +; use the format @radius^angle in place of specifying X,Y words + +G20 G90 +G0 X0 Y0 Z0 + +; drill three bolt holes on a 5" diameter +G0 X2.5 Y0 +G81 R.1 Z-0.5 F60 +^120 +^240 + +G90 @1 ^33 +; drill a row of holes 1" apart along a 33 degree feature +G91 G81 @1 R.1 Z-0.5 L5 + +G90 G0 X2 Y0 +; drill 17 evenly-spaced bolt holes on a 4" diameter +G91 G81 ^[360/17] R.1 Z-0.5 L17 + +M2 diff --git a/nc_files/probe-hole.ngc b/nc_files/probe-hole.ngc new file mode 100644 index 00000000000..818e71ca357 --- /dev/null +++ b/nc_files/probe-hole.ngc @@ -0,0 +1,73 @@ +O sub +G20 F25 + +#1000=#1 ;max radius + +G91 G38.3 Z.00001 +#1001=#5061 +#1002=#5062 + +G91 G38.2 X#1000 +#1003=#5061 +G90 G0 X#1001 +G91 G38.2 X[0-#1000] +#1004=#5061 +#1001=[[#1003+#1004]/2] +G90 G0 X#1001 + +G91 G38.2 Y#1000 +#1005=#5062 +G90 G0 Y#1002 +G91 G38.2 Y[0-#1000] +#1006=#5062 +#1002=[[#1005+#1006]/2] +G90 G0 Y#1002 + + +G91 G38.2 X#1000 +#1003=#5061 +G90 G0 X#1001 +G91 G38.2 X[0-#1000] +#1004=#5061 +#1001=[[#1003+#1004]/2] +G90 G0 X#1001 + +G91 G38.2 Y#1000 +#1005=#5062 +G90 G0 Y#1002 +G91 G38.2 Y[0-#1000] +#1006=#5062 +#1002=[[#1005+#1006]/2] +G90 G0 Y#1002 + + +F0.1 + +G90 G0 X[#1003-0.005] +G91 G38.2 X0.010 +#1003=#5061 +G90 G0 X[#1004+0.005] +G91 G38.2 X-0.010 +#1004=#5061 +#1001=[[#1003+#1004]/2] +G90 G0 X#1001 + +G90 G0 Y[#1005-0.005] +G91 G38.2 Y0.010 +#1005=#5062 +G90 G0 Y[#1006+0.005] +G91 G38.2 Y-0.010 +#1006=#5062 +#1002=[[#1005+#1006]/2] +G90 G0 Y#1002 +G91 G1 F1 X[0-#5071] Y[0-#5072] +G90 + +#1007=[#1003-#1004+[6.0/25.4]] +#1008=[#1005-#1006+[6.0/25.4]] +#1009=[[#1007+#1008]/2] +#1010=[atan[#1002]/[#1001]] +#1011=[sqrt[[#1001*#1001]+[#1002*#1002]]] + +(debug,Dia #1009 Ang #1010 Dist #1011) +O endsub diff --git a/nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc new file mode 100644 index 00000000000..a74b278a56a --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_back_edge_angle.ngc @@ -0,0 +1,116 @@ +(author: Chris P) +(version: 0.3) +(date: 04/25/19) + +(Probe back top edge angle for y,z 0,0 position and edge angle) +(Start probe position is over back edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<120> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 X-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<140> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] + o return + o<140> endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] R[#] + o return + o<150> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc b/nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc new file mode 100644 index 00000000000..f5c3cc90418 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_back_left_inside.ngc @@ -0,0 +1,110 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe back left inside corner for x,y,z 0,0,0 position) +(Start probe position is over back left inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) + G91 + G0 X[#] Y-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_minus_sub" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (move to X start Position) + G90 + G0 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (move to Y start Position) + G90 + G0 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc b/nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc new file mode 100644 index 00000000000..58739b6c4ae --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_back_left_outside.ngc @@ -0,0 +1,106 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe back left top corner for x,y,z 0,0,0 position) +(Start probe position is over back left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + G0 X[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_back_outside.ngc b/nc_files/probe/basic_probe/macros/probe_back_outside.ngc new file mode 100644 index 00000000000..62d1cdf2397 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_back_outside.ngc @@ -0,0 +1,82 @@ +(author: Chris P) +(version: 0.3) +(date: 04/25/19) + +(Probe back top side for y,z 0,0 position) +(Start probe position is over back edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<130> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 Y[# + #] + o return + o<130> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc b/nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc new file mode 100644 index 00000000000..28bc32888c8 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_back_right_inside.ngc @@ -0,0 +1,110 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe back right inside corner for x,y,z 0,0,0 position) +(Start probe position is over back right inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Step Off Width X and Y) + G91 + G0 X-[#] Y-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (move to X start Position) + G90 + G0 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (move to Y start Position) + G90 + G0 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc b/nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc new file mode 100644 index 00000000000..f7aa1d35036 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_back_right_outside.ngc @@ -0,0 +1,105 @@ +(author: Chris P) +(version: 0.1) +(date: 04/23/19) + +(Probe back right top corner for x,y,z 0,0,0 position) +(Start probe position is over back right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + (Probe Y Positioning Move) + G0 X-[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc b/nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc new file mode 100644 index 00000000000..71fe4f29acb --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_cal_round_boss.ngc @@ -0,0 +1,296 @@ +(author: Chris P) +(version: 0.1) +(date: 05/8/19) + +(Probe calibration offset using defined diam round boss) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=1.0000) + # = #17 (=0.0000) + # = #18 (=0.0000) + # = #19 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#1][#2][#5][#8][#9][#15] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + G0 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G91 + G0 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E10 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + G0 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G91 + G0 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G0 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E11 Q[#] + + (Move to z clearance plane) + G91 + G0 Z[#] + + (Move to Y Center) + G90 + G0 Y[#] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + G0 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G0 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + o<120> if [# GT #] + # = [# - #] + o<120> else + # = [# - #] + o<120> endif + + (Completed probed width calculations) + # = [# - #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + G0 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G0 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G0 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + o<130> if [# GT #] + # = [# - #] + o<130> else + # = [# - #] + o return + o<130> endif + + (Completed probed width calculations) + # = [# - #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + # = [[# + #] / 2] + + M68 E2 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + o<140> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# - #] + o<140> else + # = [[# - #] / 2] + # = [# + #] + o<140> endif + + o<150> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# - #] + o<150> else + # = [[# - #] / 2] + # = [# + #] + o<150> endif + + # = [[# + #] / 2] + + o<160> if [# EQ 0] + M68 E12 Q[ABS[#]] + o<160> else if [# EQ 1] + M68 E12 Q[ABS[#]] + o<160> else + M68 E12 Q[ABS[#]] + o<160> endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o<170> if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + o return + o<170> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc new file mode 100644 index 00000000000..f8fbe1ec3dc --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_cal_round_pocket.ngc @@ -0,0 +1,204 @@ +(author: Chris P) +(version: 0.1) +(date: 05/8/19) + +(Probe calibration offset using defined diam round pocket) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=1.0000) + # = #17 (=0.0000) + # = #18 (=0.0000) + # = #19 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#1][#2][#5][#8][#9][#15] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x-) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#1][#3 + #13][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E10 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + G0 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#1][#3 + #13 / 2][#4][#8][#9][#10] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#1][#3 + #13][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E11 Q[#] + + (Probe Completion Move to Z Clearance Plane, Y Zero) + G90 + G0 Y[#] + + (Call sub "probe_x_minus" to Probe x-) + o call [#1][#3 + #13 / 2][#4][#8][#9][#10] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#1][#3 + #13][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + G90 + G0 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#1][#3 + #13 / 2][#4][#8][#9][#10] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#1][#3 + #13][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed diameter calculations) + # = [# + #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + # = [[# + #] / 2] + + M68 E2 Q[#] + + G90 + G0 Y[#] + G91 + G0 Z[#] + + o<120> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# + #] + o<120> else + # = [[# - #] / 2] + # = [# - #] + o<120> endif + + o<130> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# + #] + o<130> else + # = [[# - #] / 2] + # = [# - #] + o<130> endif + + # = [[# + #] / 2] + + o<140> if [# EQ 0] + M68 E12 Q[ABS[#]] + o<140> else if [# EQ 1] + M68 E12 Q[ABS[#]] + o<140> else + M68 E12 Q[ABS[#]] + o<140> endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o<150> if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o return + o<150> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc b/nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc new file mode 100644 index 00000000000..9ff557624ca --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_cal_square_boss.ngc @@ -0,0 +1,204 @@ +(author: Chris P) +(version: 0.1) +(date: 05/8/19) + +(Probe calibration offset using defined width square boss) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0.0000) + # = #17 (=1.0000) + # = #18 (=1.0000) + # = #19 (=1) + + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#1][#2][#5][#8][#9][#15] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + G0 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G91 + G0 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + G0 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G91 + G0 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G0 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + o<120> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# - #] + o<120> else + # = [[# - #] / 2] + # = [# + #] + o<120> endif + + o<130> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# - #] + o<130> else + # = [[# - #] / 2] + # = [# + #] + o<130> endif + + # = [[# + #] / 2] + + o<140> if [# EQ 0] + M68 E12 Q[ABS[#]] + o<140> else if [# EQ 1] + M68 E12 Q[ABS[#]] + o<140> else + M68 E12 Q[ABS[#]] + o<140> endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o<150> if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o return + o<150> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc new file mode 100644 index 00000000000..dfe9e8922e1 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_cal_square_pocket.ngc @@ -0,0 +1,162 @@ +(author: Chris P) +(version: 0.1) +(date: 05/8/19) + +(Probe calibration offset using defined width square pocket) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0.0000) + # = #17 (=1.0000) + # = #18 (=1.0000) + # = #19 (=1) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#1][#2][#5][#8][#9][#15] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3 + #11][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G90 + G0 X[#] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#1][#3 + #12 / 2][#4][#8][#9][#10] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y- side of Workpiece) + o call [#1][#3 + #12][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + G90 + G0 Y[#] + G91 + G0 Z[#] + + o<120> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# + #] + o<120> else + # = [[# - #] / 2] + # = [# - #] + o<120> endif + + o<130> if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [# + #] + o<130> else + # = [[# - #] / 2] + # = [# - #] + o<130> endif + + # = [[# + #] / 2] + + o<140> if [# EQ 0] + M68 E12 Q[ABS[#]] + o<140> else if [# EQ 1] + M68 E12 Q[ABS[#]] + o<140> else + M68 E12 Q[ABS[#]] + o<140> endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o<150> if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + o return + o<150> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc new file mode 100644 index 00000000000..3929551bd26 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_corner_x_minus_edge_angle.ngc @@ -0,0 +1,155 @@ +(author: Chris P) +(version: 0.1) +(date: 05/7/19) + +(Probe Corner X minus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over front right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 y-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + # = #5420 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + G0 X[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + # = #5421 + + (Call sub "probe_x_minus" to Probe X- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<130> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 Y[#] + + # = #5421 + + (Call sub "probe_x_minus" to Probe X- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<140> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<140> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o return + o<150> endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<160> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o return + o<160> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc new file mode 100644 index 00000000000..b2edeb09834 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_corner_x_plus_edge_angle.ngc @@ -0,0 +1,155 @@ +(author: Chris P) +(version: 0.1) +(date: 05/7/19) + +(Probe Corner X plus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over back left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 y[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + # = #5420 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + G0 X-[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + # = #5421 + + (Call sub "probe_x_plus" to Probe X+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<130> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 Y-[#] + + # = #5421 + + (Call sub "probe_x_plus" to Probe X+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<140> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<140> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o return + o<150> endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<160> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o return + o<160> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc new file mode 100644 index 00000000000..1d8f5104c24 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_corner_y_minus_edge_angle.ngc @@ -0,0 +1,155 @@ +(author: Chris P) +(version: 0.1) +(date: 05/7/19) + +(Probe Corner Y minus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over back right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + # = #5421 + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + G0 X-[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + # = #5420 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 X-[#] + + # = #5420 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<140> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<140> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o return + o<150> endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<160> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o return + o<160> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc new file mode 100644 index 00000000000..1954b49cf63 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_corner_y_plus_edge_angle.ngc @@ -0,0 +1,155 @@ +(author: Chris P) +(version: 0.1) +(date: 05/7/19) + +(Probe Corner Y Plus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over front left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + # = #5421 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + G0 X[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + # = #5420 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 X[#] + + # = #5420 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<140> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<140> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o return + o<150> endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o<160> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o return + o<160> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc new file mode 100644 index 00000000000..de7ab7691bc --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_front_edge_angle.ngc @@ -0,0 +1,116 @@ +(author: Chris P) +(version: 0.4) +(date: 04/25/19) + +(Probe top front edge angle for y,z 0,0 position and edge angle) +(Start probe position is over front edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y-[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<120> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 X[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<140> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] + o return + o<140> endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] R[#] + o return + o<150> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc b/nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc new file mode 100644 index 00000000000..930d627c02c --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_front_left_inside.ngc @@ -0,0 +1,110 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe front left inside corner for x,y,z 0,0,0 position) +(Start probe position is over front left inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) + G91 + G0 X[#] Y[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (move to X start Position) + G90 + G0 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (move to Y start Position) + G90 + G0 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc b/nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc new file mode 100644 index 00000000000..8e53c8dfe3a --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_front_left_outside.ngc @@ -0,0 +1,106 @@ +(author: Chris P) +(version: 0.4) +(date: 04/25/19) + +(Probe front left top corner for x,y,z 0,0,0 position) +(Start probe position is over front left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + G0 X[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_front_outside.ngc b/nc_files/probe/basic_probe/macros/probe_front_outside.ngc new file mode 100644 index 00000000000..fec1a9f62e1 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_front_outside.ngc @@ -0,0 +1,82 @@ +(author: Chris P) +(version: 0.4) +(date: 04/25/19) + +(Probe front top side for y,z 0,0 position) +(Start probe position is over front edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y-[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<130> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 Y[# + #] + o return + o<130> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc b/nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc new file mode 100644 index 00000000000..27eee288306 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc @@ -0,0 +1,113 @@ +(author: Chris P) +(version: 0.1) +(date: 04/23/19) + +(Probe front right inside corner for x,y,z 0,0,0 position) +(Start probe position is over front right inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#1][#2][#5][#8][#9][#15] + + (Probe X Positioning Move, Step Off Width X and Y) + G91 + G0 X-[#] Y[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (move to X start Position) + G90 + G0 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (move to Y start Position) + G90 + G0 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc b/nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc new file mode 100644 index 00000000000..8c88e2ec7fe --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_front_right_outside.ngc @@ -0,0 +1,106 @@ +(author: Chris P) +(version: 0.1) +(date: 04/23/19) + +(Probe front right top corner for x,y,z 0,0,0 position) +(Start probe position is over front right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + G0 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) + G0 X-[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing Y Sub returned edge parameter, aborting) + o return + o<130> endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc new file mode 100644 index 00000000000..8422dd00b93 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_left_edge_angle.ngc @@ -0,0 +1,116 @@ +(author: Chris P) +(version: 0.3) +(date: 04/25/19) + +(Probe top left edge angle for y,z 0,0 position and edge angle) +(Start probe position is over left edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5421 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 Y-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<130> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<140> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] + o return + o<140> endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] R[#] + o return + o<150> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_left_outside.ngc b/nc_files/probe/basic_probe/macros/probe_left_outside.ngc new file mode 100644 index 00000000000..27015f809ed --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_left_outside.ngc @@ -0,0 +1,82 @@ +(author: Chris P) +(version: 0.3) +(date: 04/25/19) + +(Probe left top side for x,z 0,0 position) +(Start probe position is over left side edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] + + (probe mode rules for WCO or probe position measuring only) + o<130> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + o return + o<130> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_rect_boss.ngc b/nc_files/probe/basic_probe/macros/probe_rect_boss.ngc new file mode 100644 index 00000000000..404a780d8fe --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_rect_boss.ngc @@ -0,0 +1,164 @@ +(author: Chris P) +(version: 0.1) +(date: 04/27/19) + +(Probe Boss in X and Y Axes, find center and z 0 position) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + G0 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G91 + G0 X[# + #*2] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + G0 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G91 + G0 Y[# + #*2] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G0 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<120> if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o return + o<120> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc new file mode 100644 index 00000000000..005dfc716ce --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_rect_pocket.ngc @@ -0,0 +1,135 @@ +(author: Chris P) +(version: 0.1) +(date: 04/26/19) + +(Probe rect pocket center measure x and widths, find xy center position) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Probe Z Positioning Move, to Probing Depth) + G91 + F[#] + G1 Z-[#] + + (Probe X Positioning Move, Step Off Width) + G0 X-[#/2 - #] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[# - # - #] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + G0 X[#] + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y[#/2 - #] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y-[# - # - #] + + (Call sub "probe_y_minus" to Probe Y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + G90 + G0 Y[#] + G91 + G0 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o<120> if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o return + o<120> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_ridge_x.ngc b/nc_files/probe/basic_probe/macros/probe_ridge_x.ngc new file mode 100644 index 00000000000..197c0cd494c --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_ridge_x.ngc @@ -0,0 +1,114 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Ridge in X Axis to find center and z 0 position) +(Start probe position is over center of stock in the X axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + G0 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G0 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G91 + G0 Z[#] + G90 + G0 X[#] + + (probe mode rules for WCO or probe position measuring only) + o<120> if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o return + o<120> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_ridge_y.ngc b/nc_files/probe/basic_probe/macros/probe_ridge_y.ngc new file mode 100644 index 00000000000..6f92d20cf89 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_ridge_y.ngc @@ -0,0 +1,115 @@ +(author: Chris P) +(version: 0.1) +(date: 04/24/19) + +(Probe Ridge in Y Axis to find center and z 0 position) +(Start probe position is over center of stock in the Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + G0 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G0 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G91 + G0 Z[#] + G90 + G0 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o<120> if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o return + o<120> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc b/nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc new file mode 100644 index 00000000000..8b5d4085b4e --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_right_edge_angle.ngc @@ -0,0 +1,116 @@ +(author: Chris P) +(version: 0.3) +(date: 04/25/19) + +(Probe top right edge angle for y,z 0,0 position and edge angle) +(Start probe position is over right edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + # = #16 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5421 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (edge width move to edge second probing point) + G91 + F[#] + G1 Y[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<130> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<130> endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + M68 E4 Q[#] + + M68 E3 Q[#] + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<140> if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] + o return + o<140> endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o<150> if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] R[#] + o return + o<150> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_right_outside.ngc b/nc_files/probe/basic_probe/macros/probe_right_outside.ngc new file mode 100644 index 00000000000..94c267075b1 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_right_outside.ngc @@ -0,0 +1,82 @@ +(author: Chris P) +(version: 0.3) +(date: 04/25/19) + +(Probe right top side for x,z 0,0 position) +(Start probe position is over right side edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o<120> if [# EQ 1 AND #<_value_returned> NE 1] + (MSG, Missing X Sub returned edge parameter, aborting) + o return + o<120> endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + G0 Z[#] + G90 + G0 X[#] + + (probe mode rules for WCO or probe position measuring only) + o<130> if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + o return + o<130> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_round_boss.ngc b/nc_files/probe/basic_probe/macros/probe_round_boss.ngc new file mode 100644 index 00000000000..39629dff442 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_round_boss.ngc @@ -0,0 +1,188 @@ +(author: Chris P) +(version: 0.1) +(date: 04/27/19) + +(Probe Boss in X and Y Axes, find center, Diam and z 0 position) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + G0 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G91 + G0 X[# + #*2 ] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E10 Q[#] + + G91 + G0 Z[#] + G90 + G0 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + G0 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G1 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + G0 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G91 + G0 Y[# + #*2] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G0 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E11 Q[#] + + (Move to z clearance plane) + G91 + G0 Z[#] + + (Move to Y Center) + G90 + G0 Y[#] + + (calculate X Width Probed) + o<120> if [# GT #] + # = [# - #] + o<120> else + # = [# - #] + o<120> endif + + (Completed probed width calculations) + # = [# - #] + + M68 E0 Q[#] + + G90 + G0 X[#] + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + o<130> if [# GT #] + # = [# - #] + o<130> else + # = [# - #] + o<130> endif + + (Completed probed width calculations) + # = [# - #] + + M68 E1 Q[#] + + # = [[# + #] / 2] + + M68 E2 Q[#] + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_round_pocket.ngc b/nc_files/probe/basic_probe/macros/probe_round_pocket.ngc new file mode 100644 index 00000000000..cdae5364083 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_round_pocket.ngc @@ -0,0 +1,147 @@ +(author: Chris P) +(version: 0.1) +(date: 04/26/19) + +(Probe round pocket center measure x and y Diam, find xy center position) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Probe Z Positioning Move, to Probing Depth) + G91 + F[#] + G1 Z-[#] + + (Probe X Positioning Move, Step Off Width) + G0 X-[#/2 - #] + + (Call sub "probe_x_minus" to Probe x-) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[# - # - #] + + (Call sub "probe_x_plus" to Probe x+) + o call [#1][#3 + #13][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E10 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + G0 X[#] + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y[#/2 - #] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#1][#3 + #13 / 2][#4][#8][#9][#10] + + # = #5062 + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y-[# - # - #] + + (Call sub "probe_y_minus" to Probe Y-) + o call [#1][#3 + #13][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + M68 E11 Q[#] + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed diameter calculations) + # = [# + #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + # = [[# + #] / 2] + + M68 E2 Q[#] + + G90 + G0 Y[#] + G91 + G0 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o<120> if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o return + o<120> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_valley_x.ngc b/nc_files/probe/basic_probe/macros/probe_valley_x.ngc new file mode 100644 index 00000000000..fd0009038c4 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_valley_x.ngc @@ -0,0 +1,101 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe valley in x, find Z0, X0 valley center position) +(Start probe position is over left side edge of valley wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Probe Z Positioning Move, to Probing Depth) + G91 + F[#] + G1 Z-[#] + + (Probe X Positioning Move, Step Off Width) + G0 X-[#/2 - #] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (Probe X Positioning Move, Step Off Width) + G91 + G0 X[# - #*2] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E0 Q[#] + + M68 E10 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + G0 X[#] + G91 + G0 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o<120> if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o return + o<120> endif + + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_valley_y.ngc b/nc_files/probe/basic_probe/macros/probe_valley_y.ngc new file mode 100644 index 00000000000..956e1e4be1f --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_valley_y.ngc @@ -0,0 +1,99 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe valley in Y, find Z0, Y0 valley center position) +(Start probe position is over back side edge of valley wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + G91 + F[#] + G1 Z-[#] + + (Probe Y Positioning Move, Step Off Width) + G0 Y[#/2 - #] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (Probe Y Positioning Move, Step Off Width) + G91 + G0 Y-[# - #*2] + + (Call sub "probe_y_minus_sub" to Probe Y- side of Workpiece) + o call [#1][#3][#4][#8][#9][#10] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + M68 E1 Q[#] + + M68 E11 Q[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + G0 Y[#] + G91 + G0 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o<120> if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + o return + o<120> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_x_minus.ngc b/nc_files/probe/basic_probe/macros/probe_x_minus.ngc new file mode 100644 index 00000000000..e9771cf146e --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_x_minus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe X Minus direction and set X 0 in current WCO) +(Start probe position to the right side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X- Probe) + G91 + F[#] + G38.2 X-[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 X# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 X[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow X- Probe) + G91 + F[#] + G38.2 X-[# * 2] + # = #5061 +; (debug, Probed Pos: #5061 X Pos: #<_x>) + G90 + G0 X[# + #] + o<130> endif + + # = [# - #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "X PROBED POSITION") + M68 E5 Q[#] + +o endsub [#] + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc new file mode 100644 index 00000000000..e6d2fe5f2d8 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_x_minus_wco.ngc @@ -0,0 +1,103 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe X Minus direction and set X 0 in current WCO) +(Start probe position to the right side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X- Probe) + G91 + F[#] + G38.2 X-[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 X# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 X[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow X- Probe) + G91 + F[#] + G38.2 X-[# * 2] + # = #5061 +; (debug, Probed Pos: #5061 X Pos: #<_x>) + G90 + G0 X[# + #] + o<130> endif + + # = [# - #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "X PROBED POSITION") + M68 E5 Q[#] + + (probe mode rule for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_x_plus.ngc b/nc_files/probe/basic_probe/macros/probe_x_plus.ngc new file mode 100644 index 00000000000..fbd0b88eb33 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_x_plus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe X plus direction and set X 0 in current WCO) +(Start probe position to the left side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X+ Probe) + G91 + F[#] + G38.2 X[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 X# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 X[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow X+ Probe) + G91 + F[#] + G38.2 X[# * 2] + # = #5061 +; (debug, Probed Pos: #5061 X Pos: #<_x>) + G90 + G0 X[# - #] + o<130> endif + + # = [# + #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "X PROBED POSITION") + M68 E8 Q[#] + +o endsub [#] + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc new file mode 100644 index 00000000000..fc5ad90dfba --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_x_plus_wco.ngc @@ -0,0 +1,103 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe X plus direction and set X 0 in current WCO) +(Start probe position to the left side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X+ Probe) + G91 + F[#] + G38.2 X[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 X# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 X[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow X+ Probe) + G91 + F[#] + G38.2 X[# * 2] + # = #5061 +; (debug, Probed Pos: #5061 X Pos: #<_x>) + G90 + G0 X[# - #] + o<130> endif + + # = [# + #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "X PROBED POSITION") + M68 E8 Q[#] + + (probe mode rule for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_y_minus.ngc b/nc_files/probe/basic_probe/macros/probe_y_minus.ngc new file mode 100644 index 00000000000..58cfe553135 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_y_minus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Y Minus direction to locate edge, end at clearance distance) +(Start probe position to the back side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast Y- Probe) + G91 + F[#] + G38.2 y-[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 Y# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 Y[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow Y- Probe) + G91 + F[#] + G38.2 Y-[# * 2] + # = #5062 +; (debug, Probed Pos: #5062 Y Pos: #<_y>) + G90 + G0 Y[# + #] + o<130> endif + + # = [#5062 - #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "Y PROBED POSITION") + M68 E6 Q[#] + +o endsub [#] + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc new file mode 100644 index 00000000000..51463ea0743 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_y_minus_wco.ngc @@ -0,0 +1,103 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Y Minus direction and set Y 0 in current WCO) +(Start probe position to the back side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast Y- Probe) + G91 + F[#] + G38.2 y-[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 Y# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 Y[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow Y- Probe) + G91 + F[#] + G38.2 Y-[# * 2] + # = #5062 +; (debug, Probed Pos: #5062 Y Pos: #<_y>) + G90 + G0 Y[# + #] + o<130> endif + + # = [#5062 - #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "Y PROBED POSITION") + M68 E6 Q[#] + + (probe mode rule for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_y_plus.ngc b/nc_files/probe/basic_probe/macros/probe_y_plus.ngc new file mode 100644 index 00000000000..2d99f578e91 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_y_plus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Y plus direction to locate edge, end at clearance distance) +(Start probe position to the front side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast y+ Probe) + G91 + F[#] + G38.2 Y[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 Y# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 Y[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow Y+ Probe) + G91 + F[#] + G38.2 Y[# * 2] + # = #5062 +; (debug, Probed Pos: #5062 Y Pos: #<_y>) + G90 + G0 Y[# - #] + o<130> endif + + # = [#5062 + #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "Y PROBED POSITION") + M68 E9 Q[#] + +o endsub [#] + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc new file mode 100644 index 00000000000..38931ae1865 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_y_plus_wco.ngc @@ -0,0 +1,103 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Y plus direction and set Y 0 in current WCO) +(Start probe position to the front side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast y+ Probe) + G91 + F[#] + G38.2 Y[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 Y# + F[#] + (return from sub) + o return + o<120> endif + + (Move to xy_clearance distance for slow probe) + G90 + G0 Y[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow Y+ Probe) + G91 + F[#] + G38.2 Y[# * 2] + # = #5062 +; (debug, Probed Pos: #5062 Y Pos: #<_y>) + G90 + G0 Y[# - #] + o<130> endif + + # = [#5062 + #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "Y PROBED POSITION") + M68 E9 Q[#] + + (probe mode rule for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_z_minus.ngc b/nc_files/probe/basic_probe/macros/probe_z_minus.ngc new file mode 100644 index 00000000000..97b72ac0006 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_z_minus.ngc @@ -0,0 +1,65 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Z Minus direction to locate top, end at clearance distance) +(Start probe position is over stock within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + + (Current Z Position including offsets in current program units) + # = #5422 + + (Initial Fast Z- Probe) + G91 + F[#] + G38.2 Z-[#] + # = #5063 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 Z# + F[#] + (return from sub) + o return + o<120> endif + + (Move to z_clearance height for slow probe) + G90 + G0 Z[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] + G38.2 Z-[# * 2] + # = #5063 +; (debug, Probed Pos: #5063 Z Pos: #<_z>) + G90 + G0 Z[# + #] + o<130> endif + + (defines the edge as z_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "Z PROBED POSITION") + M68 E7 Q[#] + + # = [# + #] + +o endsub [#] + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc b/nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc new file mode 100644 index 00000000000..0e37da7f99d --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_z_minus_sub.ngc @@ -0,0 +1,84 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Z Minus direction and set Z 0 in current WCO) +(Start probe position is over stock within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + + (Cancel G92 offsets) + G92.1 + + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Current Z Position including offsets in current program units) + # = #5422 + + (Initial Fast Z- Probe) + G91 + F[#] + G38.2 Z-[#] + # = #5063 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 Z# + F[#] + (return from sub) + o return + o<120> endif + + (Move to z_clearance height for slow probe) + G90 + G0 Z[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] + G38.2 Z-[# * 2] + # = #5063 +; (debug, Probed Pos: #5063 Z Pos: #<_z>) + G90 + G0 Z[# + #] + o<130> endif + + (defines the edge as z_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "Z PROBED POSITION") + M68 E7 Q[#] + + # = [# + #] + + (probe mode rule for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Z zero in selected WCO) + G10 L2 P#5220 Z[# + #] + o return + o<140> endif + +o endsub [#] + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc b/nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc new file mode 100644 index 00000000000..71e45a49b4c --- /dev/null +++ b/nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc @@ -0,0 +1,93 @@ +(author: Chris P) +(version: 0.1) +(date: 04/25/19) + +(Probe Z Minus direction and set Z 0 in current WCO) +(Start probe position is over stock within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 (=99) + # = #2 (=0.5000) + # = #3 (=0.5000) + # = #4 (=0.1000) + # = #5 (=0.1000) + # = #6 (=0.5000) + # = #7 (=0.0000) + # = #8 (=0.0) + # = #9 (=10.0) + # = #10 (=0.0000) + # = #11 (=1.0000) + # = #12 (=1.0000) + # = #13 (=1.0000) + # = #14 (=0.5000) + # = #15 (=0) + + (Cancel G92 offsets) + G92.1 + + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o<110> if [#5400 NE #] + (MSG, Specified probe tool # not in spindle, aborting) + o return + o<110> endif + + (Current Z Position including offsets in current program units) + # = #5422 + + (Initial Fast Z- Probe) + G91 + F[#] + G38.2 Z-[#] + # = #5063 + + (Probe Error check, #5070 will be 0 if failed) + o<120> if [#5070 EQ 0] + (back to start point and feed) + G90 + G0 Z# + F[#] + (return from sub) + o return + o<120> endif + + (Move to z_clearance height for slow probe) + G90 + G0 Z[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o<130> if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] + G38.2 Z-[# * 2] + # = #5063 +; (debug, Probed Pos: #5063 Z Pos: #<_z>) + G90 + G0 Z[# + #] + o<130> endif + + (defines the edge as z_probed_position for DRO reporting) + # = # + + (analog aio output to gui DRO "Z PROBED POSITION") + M68 E7 Q[#] + + # = [# + #] + + (probe mode rule for WCO or probe position measuring only) + o<140> if [# EQ 0] + (Record Z zero in selected WCO) + G10 L2 P#5220 Z[# + #] + o return + o<140> endif + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/reset_all_data.ngc b/nc_files/probe/basic_probe/macros/reset_all_data.ngc new file mode 100644 index 00000000000..47ddfd3d2eb --- /dev/null +++ b/nc_files/probe/basic_probe/macros/reset_all_data.ngc @@ -0,0 +1,20 @@ +o sub + + M68 E0 Q0 + M68 E1 Q0 + M68 E2 Q0 + M68 E3 Q0 + M68 E4 Q0 + M68 E5 Q0 + M68 E6 Q0 + M68 E7 Q0 + M68 E8 Q0 + M68 E9 Q0 + M68 E10 Q0 + M68 E11 Q0 + M68 E12 Q0 + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/basic_probe/macros/tool_sensor.ngc b/nc_files/probe/basic_probe/macros/tool_sensor.ngc new file mode 100644 index 00000000000..4f9b4c8bafe --- /dev/null +++ b/nc_files/probe/basic_probe/macros/tool_sensor.ngc @@ -0,0 +1,35 @@ +o sub + +# = #<_ini[TOOLSENSOR]maxprobe> +# = #<_ini[TOOLSENSOR]search_vel> +# = #<_ini[TOOLSENSOR]probe_vel> +# = #<_ini[TOOLSENSOR]height> +# = #1 + +(print, max_probe is #) +(print, search vel is #) +(print, probe vel is #) +(print, sensor height is #) +(print, zero height is #) + +G21 (use metric units) +G53 G0 Z0 (raise spindle to Z0) +G53 G0 X#<_ini[TOOLSENSOR]x> Y#<_ini[TOOLSENSOR]y> +G49 (cancel tool offset) +G10 L20 P0 Z0 (clear current offsets) +G91 (switch to incremental mode) + +; this section commented out for sim +;G38.2 Z[-#] F# (probe down) +;G1 Z4.0 (move up 4 mm) +;G4 P0.5 (pause for 0.5 sec.) +;G38.2 Z-6.0 F# (probe down slower) + +; this section used for sim, comment out otherwise +G1 Z-10 F# + +G10 L20 P0 Z[# - #] +G90 (absolute distance mode) +G53 G0 Z0 (move Z up to 0) +o endsub +M2 diff --git a/nc_files/probe/basic_probe/macros/touch_plate.ngc b/nc_files/probe/basic_probe/macros/touch_plate.ngc new file mode 100644 index 00000000000..1760bdc7cad --- /dev/null +++ b/nc_files/probe/basic_probe/macros/touch_plate.ngc @@ -0,0 +1,31 @@ +o sub + +# = #<_ini[TOOLSENSOR]maxprobe> +# = #<_ini[TOOLSENSOR]search_vel> +# = #<_ini[TOOLSENSOR]probe_vel> +# = #<_ini[TOOLSENSOR]touch> + +(print, max_probe is #) +(print, search vel is #) +(print, probe vel is #) +(print, touch height is #) + +G21 (use metric units) +G49 (cancel tool offset) +G10 L20 P0 Z0 (clear current offsets) +G91 (switch to incremental mode) + +; this section commented out for sim +;G38.2 Z[-#] F# (probe down) +;G1 Z1.0 (go up 1 mm) +;G4 P0.5 (pause 0.5 sec.) +;G38.2 Z-2 F# (probe down slower) + +; this section used for sim, comment out otherwise +G1 Z-10 F# + +G10 L20 P0 Z# (store offset in offset table) +G90 (absolute distance mode) +G53 G0 Z0 (move Z up to 0) +o endsub +M2 diff --git a/nc_files/probe/basic_probe/macros/x_data_reset.ngc b/nc_files/probe/basic_probe/macros/x_data_reset.ngc new file mode 100644 index 00000000000..cb62ad492b2 --- /dev/null +++ b/nc_files/probe/basic_probe/macros/x_data_reset.ngc @@ -0,0 +1,14 @@ +o sub + + M68 E0 Q0 +; M68 E2 Q0 +; M68 E3 Q0 +; M68 E4 Q0 + M68 E5 Q0 +; M68 E7 Q0 + M68 E8 Q0 + M68 E10 Q0 + +o endsub + +M2 (end program) diff --git a/nc_files/probe/basic_probe/macros/y_data_reset.ngc b/nc_files/probe/basic_probe/macros/y_data_reset.ngc new file mode 100644 index 00000000000..086f74dfebb --- /dev/null +++ b/nc_files/probe/basic_probe/macros/y_data_reset.ngc @@ -0,0 +1,15 @@ +o sub + + M68 E1 Q0 +; M68 E2 Q0 +; M68 E3 Q0 +; M68 E4 Q0 + M68 E6 Q0 +; M68 E7 Q0 + M68 E9 Q0 + M68 E11 Q0 + +o endsub + +M2 (end program) + diff --git a/nc_files/probe/down.ngc b/nc_files/probe/down.ngc new file mode 100644 index 00000000000..d217ee57a0a --- /dev/null +++ b/nc_files/probe/down.ngc @@ -0,0 +1,31 @@ +o sub + +; #1 = [ps_searchvel] +; #2 = [probe.ps_probe_max] +; #3 = [ps_probe_latch] +; #4 = [probe.ps_probevel] +; #5 = [TOOLSENSOR]RAPID_SPEED] +; #6 = [probe.set_zero] +; #7 = [axis.2.joint-pos-cmd] + +O IF [#6 EQ 5] + (cancel Z offsets) + G92.1 + G49 + G10 L20 P0 Z[#7] +O ENDIF + +#=#<_z> (save current Z position) +G91 +F #1 +G38.2 Z[-#2] +G1 Z[#3] F#5 +F #4 +G4 P0.5 +G38.2 Z[-#3*2] +G90 +(back to start point) +G1 Z# F#5 + +o endsub +M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_down.ngc b/nc_files/probe/gtk_probe/gtk_probe_down.ngc new file mode 100644 index 00000000000..069148a26ef --- /dev/null +++ b/nc_files/probe/gtk_probe/gtk_probe_down.ngc @@ -0,0 +1,23 @@ +o sub + +O IF [#<_hal[probe.set_zero]> EQ 5] + (cancel Z offsets) + G92.1 + G49 + G10 L20 P0 Z[#<_hal[axis.z.pos-cmd]>] +O ENDIF + +#=#<_z> (save current Z position) +G91 +F #<_hal[probe.ps_searchvel]> +G38.2 Z[-#<_hal[probe.ps_probe_max]>] +G1 Z[#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> +F #<_hal[probe.ps_probevel]> +G4 P0.5 +G38.2 Z[-#<_hal[probe.ps_probe_latch]>*2] +G90 +(back to start point) +G1 Z# F#<_ini[TOOLSENSOR]RAPID_SPEED> + +o endsub +M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_xminus.ngc b/nc_files/probe/gtk_probe/gtk_probe_xminus.ngc new file mode 100644 index 00000000000..19a7a8d775b --- /dev/null +++ b/nc_files/probe/gtk_probe/gtk_probe_xminus.ngc @@ -0,0 +1,18 @@ +o sub + +#=#<_x> (save start X position) +(PRINT, position #<_x> ) +G91 +F #<_hal[probe.ps_searchvel]> +G38.2 X[-#<_hal[probe.ps_probe_max]>] +G1 X[#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> +F #<_hal[probe.ps_probevel]> +G4 P0.5 +G38.2 X[-#<_hal[probe.ps_probe_latch]>*2] +(print, probe X=#5061 ) +G90 +(PRINT, back to start point #) +G1 X# F#<_ini[TOOLSENSOR]RAPID_SPEED> + +o endsub +M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_xplus.ngc b/nc_files/probe/gtk_probe/gtk_probe_xplus.ngc new file mode 100644 index 00000000000..40f2b28c412 --- /dev/null +++ b/nc_files/probe/gtk_probe/gtk_probe_xplus.ngc @@ -0,0 +1,18 @@ +o sub + +#=#<_x> (save start X position) +(PRINT, position X #<_x> ) +G91 +F #<_hal[probe.ps_searchvel]> +G38.2 X[#<_hal[probe.ps_probe_max]>] +G1 X[-#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> +F #<_hal[probe.ps_probevel]> +G4 P0.5 +G38.2 X[#<_hal[probe.ps_probe_latch]>*2] +(print, probe X=#5061 ) +G90 +(back to start point) +G1 X# F#<_ini[TOOLSENSOR]RAPID_SPEED> + +o endsub +M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_yminus.ngc b/nc_files/probe/gtk_probe/gtk_probe_yminus.ngc new file mode 100644 index 00000000000..c60f27faaa1 --- /dev/null +++ b/nc_files/probe/gtk_probe/gtk_probe_yminus.ngc @@ -0,0 +1,17 @@ +o sub + +#=#<_y> (save start Y position) +G91 +F #<_hal[probe.ps_searchvel]> +G38.2 Y[-#<_hal[probe.ps_probe_max]>] +G1 Y[#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> +F #<_hal[probe.ps_probevel]> +G4 P0.5 +G38.2 Y[-#<_hal[probe.ps_probe_latch]>*2] +(print, probe Y=#5062 ) +G90 +(back to start point) +G1 Y# F#<_ini[TOOLSENSOR]RAPID_SPEED> + +o endsub +M2 diff --git a/nc_files/probe/gtk_probe/gtk_probe_yplus.ngc b/nc_files/probe/gtk_probe/gtk_probe_yplus.ngc new file mode 100644 index 00000000000..210a8abd032 --- /dev/null +++ b/nc_files/probe/gtk_probe/gtk_probe_yplus.ngc @@ -0,0 +1,17 @@ +o sub + +#=#<_y> (save start Y position) +G91 +F #<_hal[probe.ps_searchvel]> +G38.2 Y[#<_hal[probe.ps_probe_max]>] +G1 Y[-#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED> +F #<_hal[probe.ps_probevel]> +G4 P0.5 +G38.2 Y[#<_hal[probe.ps_probe_latch]>*2] +(print, probe Y=#5062 ) +G90 +(back to start point) +G1 Y# F#<_ini[TOOLSENSOR]RAPID_SPEED> + +o endsub +M2 diff --git a/nc_files/probe/xminus.ngc b/nc_files/probe/xminus.ngc new file mode 100644 index 00000000000..30c4c0dffdf --- /dev/null +++ b/nc_files/probe/xminus.ngc @@ -0,0 +1,23 @@ +o sub + +; #1 = [ps_searchvel] +; #2 = [probe.ps_probe_max] +; #3 = [ps_probe_latch] +; #4 = [probe.ps_probevel] +; #5 = [TOOLSENSOR]RAPID_SPEED] + +#=#<_x> (save start X position) +G91 +F #1 +G38.2 X[-#2] +G1 X[#3] F#5 +F #4 +G4 P0.5 +G38.2 X[-#3*2] +(print, probe X=#5061 ) +G90 +(back to start point) +G1 X# F#5 + +o endsub +M2 diff --git a/nc_files/probe/xplus.ngc b/nc_files/probe/xplus.ngc new file mode 100644 index 00000000000..ed0c20d9fc6 --- /dev/null +++ b/nc_files/probe/xplus.ngc @@ -0,0 +1,23 @@ +o sub + +; #1 = [ps_searchvel] +; #2 = [probe.ps_probe_max] +; #3 = [ps_probe_latch] +; #4 = [probe.ps_probevel] +; #5 = [TOOLSENSOR]RAPID_SPEED] + +#=#<_x> (save start X position) +G91 +F #1 +G38.2 X[#2] +G1 X[-#3] F#5 +F #4 +G4 P0.5 +G38.2 X[#3*2] +(print, probe X=#5061 ) +G90 +(back to start point) +G1 X# F#5 + +o endsub +M2 diff --git a/nc_files/probe/yminus.ngc b/nc_files/probe/yminus.ngc new file mode 100644 index 00000000000..d6ec27361a7 --- /dev/null +++ b/nc_files/probe/yminus.ngc @@ -0,0 +1,23 @@ +o sub + +; #1 = [ps_searchvel] +; #2 = [probe.ps_probe_max] +; #3 = [ps_probe_latch] +; #4 = [probe.ps_probevel] +; #5 = [TOOLSENSOR]RAPID_SPEED] + +#=#<_y> (save start Y position) +G91 +F #1 +G38.2 Y[-#2] +G1 Y[#3] F#5 +F #4 +G4 P0.5 +G38.2 Y[-#3*2] +(print, probe Y=#5062 ) +G90 +(back to start point) +G1 Y# F#5 + +o endsub +M2 diff --git a/nc_files/probe/yplus.ngc b/nc_files/probe/yplus.ngc new file mode 100644 index 00000000000..acf910c85c1 --- /dev/null +++ b/nc_files/probe/yplus.ngc @@ -0,0 +1,23 @@ +o sub + +; #1 = [ps_searchvel] +; #2 = [probe.ps_probe_max] +; #3 = [ps_probe_latch] +; #4 = [probe.ps_probevel] +; #5 = [TOOLSENSOR]RAPID_SPEED] + +#=#<_y> (save start Y position) +G91 +F #1 +G38.2 Y[#2] +G1 Y[-#3] F#5 +F #4 +G4 P0.5 +G38.2 Y[#3*2] +(print, probe Y=#5062 ) +G90 +(back to start point) +G1 Y# F#5 + +o endsub +M2 diff --git a/nc_files/remap-subroutines/change.ngc b/nc_files/remap-subroutines/change.ngc new file mode 100644 index 00000000000..6180b5830d8 --- /dev/null +++ b/nc_files/remap-subroutines/change.ngc @@ -0,0 +1,11 @@ +o sub +(debug, change call_level= #<_call_level> remap_level=#<_remap_level>) +(debug, change tool_in_spindle=# pocket=#) + +; demonstrate aborting a change on pocket 3 by returning a negative value + o if [# EQ 3] + o return [-1] + o endif + +o endsub [1] +m2 diff --git a/nc_files/remap-subroutines/on_abort.ngc b/nc_files/remap-subroutines/on_abort.ngc new file mode 100644 index 00000000000..0fd5f3c1dbb --- /dev/null +++ b/nc_files/remap-subroutines/on_abort.ngc @@ -0,0 +1,19 @@ +o sub + +G90 +G40 +G49 + +o100 if [#1 eq 5] + (machine on) +o100 elseif [#1 eq 6] + (machine off) +o100 elseif [#1 eq 7] + (estopped) +o100 elseif [#1 eq 8] + (msg, abort pressed) +o100 else + (DEBUG, error parameter is [#1]) +o100 endif +o endsub +m2 diff --git a/nc_files/remap-subroutines/prepare.ngc b/nc_files/remap-subroutines/prepare.ngc new file mode 100644 index 00000000000..9a59e27b70a --- /dev/null +++ b/nc_files/remap-subroutines/prepare.ngc @@ -0,0 +1,10 @@ +o sub +(debug, prepare call_level= #<_call_level> remap_level=#<_remap_level> tool=# pocket=#) + + ; show aborting a prepare on tool 2 by returning a negative value + o if [# EQ 2] + o return [-1] + o endif + +o endsub [#] +m2 diff --git a/nc_files/remap-subroutines/qt_auto_probe_tool.ngc b/nc_files/remap-subroutines/qt_auto_probe_tool.ngc new file mode 100644 index 00000000000..be95048840b --- /dev/null +++ b/nc_files/remap-subroutines/qt_auto_probe_tool.ngc @@ -0,0 +1,238 @@ +o sub + +; IMPORTANT: this remap enables using a gcode/ngc program on machines without +; automatic tool changers, and without repeatable tool holders, but which +; do have a tool setter (and ideally, an xyz probe). +; With this remap, a program or user can issue TxM6 commands at any +; point and the machine will automatically do the following: +; 1. Move to a tool change position defined in .ini parameters, Z first, then XY +; 2. Perform the normal M6 tool change (IE stop spindle, prompt for tool) +; 3. Move to the location of the toolsetter, Z first, then XY, probe the new tool's offset +; 4. Change the offset of the current coordinate system to match the new tool +; 5. Return the tip of the new tool to the same spot as the tip of the old tool +; based on newly measured z-offset +; 6. Return control back to whatever state it was in prior, continuing the program +; if one had been running. +; The following settings should be enabled in the QtDragon interface: +; A - Under Probe Tool screens: insure that "Tool Measure" is enabled +; B - Under Settings: insure that "Use Tool Sensor" is enabled +; The following workflow assumes using both a XYZ probe and a Z Toolsetter: +; 1 - Initial Setup: Before beginning the program, setup the Probe Tool as +; having a zero z-offset in the tool table. (Non-zero tool lengths +; for the probe tool can be made to work, but have multiple extra +; steps required, and it is easy to have the tool offset interfere with +; the remap coding and cause incorrect adjustments to your offsets. +; This procedure assumes a zero length.) +; 2 - Initial Tool: Load the probe tool with M61 Qx, where x is the Probe tool's number +; in the tool table. (Do not use TxM6) +; 3 - Toolsetter measure: Use button under the Probe Screens for "Probe Tool Setter +; Z Height:" this will set and display on the Probe Settings screen the +; "Probe HT" = #<_hal[qtversaprobe.probeheight> value in ABS coordinates. +; 4 - Workpiece Measure: Use the button under the Probe Screens for "Probe Z height +; of material:" this will set and display on the Probe Settings screen the +; "Block Ht" = #<_hal[qtversaprobe.blockheight]> value in ABS coordinates. +; 5 - Set Coord System (G54): Use the Probe Tool and whichever probe screen is +; appropriate to set the coordinate system XYZ offsets needed for your job. +; NOTE: Return_Option 3 uses the current local coordinate system, not just ABS coord. +; 6 - Prepare to Run: You may then issue a manual TnM6 command to change the tool +; before starting the job, or if the job begins with a TnM6 command before +; spinning the spindle, you may leave the Probe Tool installed. +; !! Take care not to leave the XYZ tool probe in the spindle when a program may start +; the spindle. !! +;(debug, in change tool_in_spindle=# current_pocket=#) +;(debug, selected_tool=# selected_pocket=#) + +; ------------------------------------- +; --- Begin Initial data gathering ---- +; ------------------------------------- + +# = # +# = # +# = #<_x> +# = #<_y> +# = #<_z> + +; ------------------------------------- +; --- End Initial Data Gathering ---- +; ------------------------------------- + +; ------------------------------------- +; --- Begin Initial Safety Checks ---- +; ------------------------------------- + +; we must execute this only in the milltask interpreter +; or preview will break, so test for '#<_task>' which is 1 for +; the milltask interpreter and 0 in the UI's +o100 if [#<_task> EQ 0] + (debug, Task is Null) +o100 return [999] +o100 endif + +; check we are in right mode +o110 if [#<_metric_machine>] + o115 if [#<_imperial>] + (MSG, Auto Tool probe error: not in G21 mode ) + o115 return [-3] ; indicate probe contact failure to epilog + o115 endif +o110 else + o115 if [#<_imperial> EQ 0] + (MSG, Auto Tool probe error: not in G20 mode ) + o115 return [-3] ; indicate probe contact failure to epilog + o115 endif +o110 endif + +;check we have a usable search velocity configured, otherwise error +o150 if [#<_hal[qtversaprobe.searchvel]> LE 0] + (MSG, No usable search velocity in hal.qtversaprobe.searchvel) + o150 return [-1] ; indicate searchvel <= 0 +o150 endif + +;check we do not have an invalid Return Option +o175 if [EXISTS[#<_ini[VERSA_TOOLSETTER]RETURN_OPTION>]] + # = #<_ini[VERSA_TOOLSETTER]RETURN_OPTION> + o176 if [[# EQ 1] OR [# EQ 2] OR [# EQ 3]] + ;Continue: Return_Option is both defined and valid + o176 else + (MSG, Invalid RETURN_OPTION in .ini file under VERSA_TOOLSETTER) + o176 return [-1] ; signal error to post processing + o176 endif +o175 else + ;Continue: it is valid to not define Return_Option, defaults to 1 +o175 endif + +; ------------------------------------- +; --- End Initial Safety Checks ---- +; ------------------------------------- + +; ------------------------------------- +; --- Begin Physical Tool Change ---- +; ------------------------------------- + +;first go up +F #<_hal[qtversaprobe.searchvel]> +G53 G0 Z[#<_ini[CHANGE_POSITION]Z>] + +o200 if [#<_current_tool> NE #] + ; then move to change position + G53 G0 X[#<_ini[CHANGE_POSITION]X>] Y[#<_ini[CHANGE_POSITION]Y>] +o200 endif + +;cancel tool offset mode +G49 + +; using the code being remapped here means 'use builtin behaviour' +; ie, this is not a recursive call to this program, but calls the +; un-remapped M6 processing +; That processing includes actually sending the window to the user +; to press OK when they have completed the tool change. +M6 + +; ------------------------------------- +; ------ End Physical Tool Change ---- +; ------------------------------------- + +; ------------------------------------- +; ------ Begin Safety Checks for Tool Offset Measurement ---- +; ------------------------------------- + +o300 if [#<_hal[qtversaprobe.enable]> EQ 0] + (MSG, Auto Tool probe disabled ) + G43 ;turn back on tool offset mode before returning +o300 return [3] ; indicate no tool measurement +o300 endif + +;check we have a usable probe velocity configured, otherwise error +o400 if [#<_hal[qtversaprobe.probevel]> LE 0] +o400 return [-2] ; indicate probevel <= 0 +o400 endif + +; ------------------------------------- +; ------ End Safety Checks for Tool Offset Measurement ---- +; ------------------------------------- + +; ------------------------------------- +; ------ Begin Tool Offset Measurement ---- +; ------------------------------------- + +;rapid-move to safe height +G53 G0 Z[#<_ini[VERSA_TOOLSETTER]Z_MAX_CLEAR>] +;Then rapid-move to probe XY location +G53 G0 X[#<_ini[VERSA_TOOLSETTER]X>] Y[#<_ini[VERSA_TOOLSETTER]Y>] +;then feed down to the probe start location +F #<_hal[qtversaprobe.searchvel]> +G53 G1 Z[#<_ini[VERSA_TOOLSETTER]Z>] + +;switch to relative distance mode for probe moves +G91 + +;begin initial probe move +F #<_hal[qtversaprobe.searchvel]> +G38.2 Z- #<_ini[VERSA_TOOLSETTER]MAXPROBE> +G0 Z #<_hal[qtversaprobe.backoffdist]> + +o510 if [#5070 EQ 0] +G90 +o510 return [-3] ; indicate probe contact failure to epilog +o510 endif + +;reprobe at probe speed: G38.2 means probe toward workpiece, stop on contact +; when G38.n axis completes, it puts the Z value detected (in the coordinates system +; in which this program started) into parameter #5063 (because we're probing Z) +; +F #<_hal[qtversaprobe.probevel]> +G38.2 Z- [#<_hal[qtversaprobe.backoffdist]> *1.2] + +o511 if [#5070 EQ 0] +G90 +o511 return [-3] ; indicate probe contact failure to epilog +o511 endif + +;switch back to absolute distance mode once probing is done +G90 + +;set the current offset +# = #5063 + +; +; G10 L1 is the Set Tool Table Offset: it changes the tool table offset, +; it DOES NOT change the offsets in the current coordinate system. (that would be G10 L2) + +# = [# - #<_hal[qtversaprobe.probeheight]> + #<_hal[qtversaprobe.blockheight]>] + +G10 L1 P# Z[#] + +;G43 enables tool length offset: this affects all subsequent moves by applying +; the offset just calculated to the coordinate system currently in +; effect. ie. it has subtracted Calculated Offset from the Z offset + +G43 + + +(DEBUG, %fProbe Height: #<_hal[qtversaprobe.probeheight]>) +(DEBUG, %fBlock Height: #<_hal[qtversaprobe.blockheight]>) +(DEBUG, %fProbe Result: #) +(DEBUG, %fCalculated Offset: #) + +; ------------------------------------- +; ------ End Tool Offset Measurement ---- +; ------------------------------------- + +; ------------------------------------- +; ------ Begin Return Movement ---- +; ------------------------------------- + +; return to original tool-tip position, but using new z-offset +;(DEBUG, Return to original tool-tip position using new z-offset: # , # , #) +G53 G0 Z[#<_ini[VERSA_TOOLSETTER]Z_MAX_CLEAR>] +; now use original (modal)coord system to go over to xy +G0 X[#] Y[#] +; and finally down to the (already offset) z coord +G0 Z[#] + +; ------------------------------------- +; ------ End Return Movement ---- +; ------------------------------------- + +; signal success be returning a value > 0: +o endsub [1] +m2 diff --git a/nc_files/remap_lib/common_nc_subs/on_abort.ngc b/nc_files/remap_lib/common_nc_subs/on_abort.ngc new file mode 100644 index 00000000000..605f7212475 --- /dev/null +++ b/nc_files/remap_lib/common_nc_subs/on_abort.ngc @@ -0,0 +1,13 @@ + +o sub + +(print, on_abort executing) + +; add any resetting specific to your config here, +; like setting HAL pin values + + +o call + +o endsub +m2 diff --git a/nc_files/remap_lib/common_nc_subs/reset_state.ngc b/nc_files/remap_lib/common_nc_subs/reset_state.ngc new file mode 100644 index 00000000000..af0a8b4452b --- /dev/null +++ b/nc_files/remap_lib/common_nc_subs/reset_state.ngc @@ -0,0 +1,25 @@ + +o sub + +; if say a G38 probe was interrupted during a remap, this leaves the G38 modal state active +; clear it out here, and any other state you what to have established after an error +; +; executing an M2 here is NOT recommended here, so we replicate the steps taken by an M2 +; but keep executing + +G54 (origin offsets are set to the default) +G17 (select XY plane) +G90 (absolute) +G94 (feed mode: units/minute) +M48 (set feed and speed overrides) +G40 (cutter compensation off) +M5 (spindle off) + +; M2 sets G1, but this fails with feed zero +; a G80 is the next best safe thing +G80 (cancel modal motion) + +M9 (mist and coolant off) + +o endsub +m2 diff --git a/nc_files/remap_lib/python-stdglue/python/remap.py b/nc_files/remap_lib/python-stdglue/python/remap.py new file mode 100644 index 00000000000..45b8c4bf71e --- /dev/null +++ b/nc_files/remap_lib/python-stdglue/python/remap.py @@ -0,0 +1,17 @@ +# This is a component of LinuxCNC +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +from stdglue import * diff --git a/nc_files/remap_lib/python-stdglue/python/stdglue.py b/nc_files/remap_lib/python-stdglue/python/stdglue.py new file mode 120000 index 00000000000..d10ba80d697 --- /dev/null +++ b/nc_files/remap_lib/python-stdglue/python/stdglue.py @@ -0,0 +1 @@ +../stdglue.py \ No newline at end of file diff --git a/nc_files/remap_lib/python-stdglue/python/toplevel.py b/nc_files/remap_lib/python-stdglue/python/toplevel.py new file mode 100644 index 00000000000..52dbff6acec --- /dev/null +++ b/nc_files/remap_lib/python-stdglue/python/toplevel.py @@ -0,0 +1,18 @@ +# This is a component of LinuxCNC +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +import remap + diff --git a/nc_files/remap_lib/python-stdglue/stdglue.py b/nc_files/remap_lib/python-stdglue/stdglue.py new file mode 100644 index 00000000000..a3b93019afa --- /dev/null +++ b/nc_files/remap_lib/python-stdglue/stdglue.py @@ -0,0 +1,659 @@ +#NOTE: +# The legacy names *selected_pocket* and *current_pocket* actually reference +# a sequential tooldata index for tool items loaded from a tool +# table ([EMCIO]TOOL_TABLE) or via a tooldata database ([EMCIO]DB_PROGRAM) + +# stdglue - canned prolog and epilog functions for the remappable builtin codes (T,M6,M61,S,F) +# +# we dont use argspec to avoid the generic error message of the argspec prolog and give more +# concise ones here + +# cycle_prolog,cycle_epilog: generic code-independent support glue for oword sub cycles +# +# these are provided as starting point - for more concise error message you would better +# write a prolog specific for the code +# +# Usage: +#REMAP=G84.3 modalgroup=1 argspec=xyzqp prolog=cycle_prolog ngc=g843 epilog=cycle_epilog + +import emccanon +from interpreter import * +from emccanon import MESSAGE +throw_exceptions = 1 + +# used so screens can get info. +# add this to toplevel to call it: + +# import remap +# def __init__(self): +# if self.task: +# remap.build_hal(self) + +def build_hal(self): + import hal + try: + h=hal.component('remapStat') + h.newpin("tool", hal.HAL_S32, hal.HAL_OUT) + h.newpin("wear", hal.HAL_S32, hal.HAL_OUT) + h.ready() + self.hal_tool_comp = h + except Exception as e: + print(e) + +# REMAP=S prolog=setspeed_prolog ngc=setspeed epilog=setspeed_epilog +# exposed parameter: # + +def setspeed_prolog(self,**words): + try: + c = self.blocks[self.remap_level] + if not c.s_flag: + self.set_errormsg("S requires a value") + return INTERP_ERROR + self.params["speed"] = c.s_number + except Exception as e: + self.set_errormsg("S/setspeed_prolog: %s)" % (e)) + return INTERP_ERROR + return INTERP_OK + +def setspeed_epilog(self,**words): + try: + if not self.value_returned: + r = self.blocks[self.remap_level].executing_remap + self.set_errormsg("the %s remap procedure %s did not return a value" + % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) + return INTERP_ERROR + if self.return_value < -TOLERANCE_EQUAL: # 'less than 0 within interp's precision' + self.set_errormsg("S: remap procedure returned %f" % (self.return_value)) + return INTERP_ERROR + if self.blocks[self.remap_level].builtin_used: + pass + #print "---------- S builtin recursion, nothing to do" + else: + self.speed[0] = self.params["speed"] + emccanon.enqueue_SET_SPINDLE_SPEED(self.speed[0]) + return INTERP_OK + except Exception as e: + self.set_errormsg("S/setspeed_epilog: %s)" % (e)) + return INTERP_ERROR + return INTERP_OK + +# REMAP=F prolog=setfeed_prolog ngc=setfeed epilog=setfeed_epilog +# exposed parameter: # + +def setfeed_prolog(self,**words): + try: + c = self.blocks[self.remap_level] + if not c.f_flag: + self.set_errormsg("F requires a value") + return INTERP_ERROR + self.params["feed"] = c.f_number + except Exception as e: + self.set_errormsg("F/setfeed_prolog: %s)" % (e)) + return INTERP_ERROR + return INTERP_OK + +def setfeed_epilog(self,**words): + try: + if not self.value_returned: + r = self.blocks[self.remap_level].executing_remap + self.set_errormsg("the %s remap procedure %s did not return a value" + % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) + return INTERP_ERROR + if self.blocks[self.remap_level].builtin_used: + pass + #print "---------- F builtin recursion, nothing to do" + else: + self.feed_rate = self.params["feed"] + emccanon.enqueue_SET_FEED_RATE(self.feed_rate) + return INTERP_OK + except Exception as e: + self.set_errormsg("F/setfeed_epilog: %s)" % (e)) + return INTERP_ERROR + return INTERP_OK + +# REMAP=T prolog=prepare_prolog ngc=prepare epilog=prepare_epilog +# exposed parameters: # # + +def prepare_prolog(self,**words): + try: + cblock = self.blocks[self.remap_level] + if not cblock.t_flag: + self.set_errormsg("T requires a tool number") + return INTERP_ERROR + tool = cblock.t_number + if tool: + (status, pocket) = self.find_tool_pocket(tool) + if status != INTERP_OK: + self.set_errormsg("T%d: pocket not found" % (tool)) + return status + else: + pocket = -1 # this is a T0 - tool unload + self.params["tool"] = tool + self.params["pocket"] = pocket + return INTERP_OK + except Exception as e: + self.set_errormsg("T%d/prepare_prolog: %s" % (int(words['t']), e)) + return INTERP_ERROR + +def prepare_epilog(self, **words): + try: + if not self.value_returned: + r = self.blocks[self.remap_level].executing_remap + self.set_errormsg("the %s remap procedure %s did not return a value" + % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) + return INTERP_ERROR + if self.blocks[self.remap_level].builtin_used: + #print "---------- T builtin recursion, nothing to do" + return INTERP_OK + else: + if self.return_value > 0: + self.selected_tool = int(self.params["tool"]) + self.selected_pocket = int(self.params["pocket"]) + emccanon.SELECT_TOOL(self.selected_tool) + return INTERP_OK + else: + self.set_errormsg("T%d: aborted (return code %.1f)" % (int(self.params["tool"]),self.return_value)) + return INTERP_ERROR + except Exception as e: + self.set_errormsg("T%d/prepare_epilog: %s" % (tool,e)) + return INTERP_ERROR + +# REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog +# exposed parameters: +# # +# # +# # +# # + +def change_prolog(self, **words): + try: + if self.selected_pocket < 0: + self.set_errormsg("M6: no tool prepared") + return INTERP_ERROR + if self.cutter_comp_side: + self.set_errormsg("Cannot change tools with cutter radius compensation on") + return INTERP_ERROR + self.params["tool_in_spindle"] = self.current_tool + self.params["selected_tool"] = self.selected_tool + self.params["current_pocket"] = self.current_pocket + self.params["selected_pocket"] = self.selected_pocket + return INTERP_OK + except Exception as e: + self.set_errormsg("M6/change_prolog: %s" % (e)) + return INTERP_ERROR + +def change_epilog(self, **words): + try: + if not self.value_returned: + r = self.blocks[self.remap_level].executing_remap + self.set_errormsg("the %s remap procedure %s did not return a value" + % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) + yield INTERP_ERROR + + if self.blocks[self.remap_level].builtin_used: + #print "---------- M6 builtin recursion, nothing to do" + yield INTERP_OK + else: + if self.return_value > 0.0: + # commit change + self.selected_pocket = int(self.params["selected_pocket"]) + emccanon.CHANGE_TOOL() + self.current_pocket = self.selected_pocket + self.selected_pocket = -1 + self.selected_tool = -1 + # cause a sync() + self.set_tool_parameters() + self.toolchange_flag = True + yield INTERP_EXECUTE_FINISH + else: + # yield to print any messages from the NGC program + yield INTERP_EXECUTE_FINISH + self.set_errormsg("M6 aborted (return code %.1f)" % (self.return_value)) + yield INTERP_ERROR + except Exception as e: + self.set_errormsg("M6/change_epilog: %s" % (e)) + yield INTERP_ERROR + +# REMAP=M61 modalgroup=6 prolog=settool_prolog ngc=settool epilog=settool_epilog +# exposed parameters: # # + +def settool_prolog(self,**words): + try: + c = self.blocks[self.remap_level] + if not c.q_flag: + self.set_errormsg("M61 requires a Q parameter") + return INTERP_ERROR + tool = int(c.q_number) + if tool < -TOLERANCE_EQUAL: # 'less than 0 within interp's precision' + self.set_errormsg("M61: Q value < 0") + return INTERP_ERROR + (status,pocket) = self.find_tool_pocket(tool) + if status != INTERP_OK: + self.set_errormsg("M61 failed: requested tool %d not in table" % (tool)) + return status + self.params["tool"] = tool + self.params["pocket"] = pocket + return INTERP_OK + except Exception as e: + self.set_errormsg("M61/settool_prolog: %s)" % (e)) + return INTERP_ERROR + +def settool_epilog(self,**words): + try: + if not self.value_returned: + r = self.blocks[self.remap_level].executing_remap + self.set_errormsg("the %s remap procedure %s did not return a value" + % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) + return INTERP_ERROR + + if self.blocks[self.remap_level].builtin_used: + #print "---------- M61 builtin recursion, nothing to do" + return INTERP_OK + else: + if self.return_value > 0.0: + self.current_tool = int(self.params["tool"]) + self.current_pocket = int(self.params["pocket"]) + emccanon.CHANGE_TOOL_NUMBER(self.current_pocket) + # cause a sync() + self.tool_change_flag = True + self.set_tool_parameters() + else: + self.set_errormsg("M61 aborted (return code %.1f)" % (self.return_value)) + return INTERP_ERROR + except Exception as e: + self.set_errormsg("M61/settool_epilog: %s)" % (e)) + return INTERP_ERROR + +# educational alternative: M61 remapped to an all-Python handler +# demo - this really does the same thing as the builtin (non-remapped) M61 +# +# REMAP=M61 modalgroup=6 python=set_tool_number + +def set_tool_number(self, **words): + try: + c = self.blocks[self.remap_level] + if c.q_flag: + toolno = int(c.q_number) + else: + self.set_errormsg("M61 requires a Q parameter") + return status + (status,pocket) = self.find_tool_pocket(toolno) + if status != INTERP_OK: + self.set_errormsg("M61 failed: requested tool %d not in table" % (toolno)) + return status + if words['q'] > -TOLERANCE_EQUAL: # 'greater equal 0 within interp's precision' + self.current_pocket = pocket + self.current_tool = toolno + emccanon.CHANGE_TOOL_NUMBER(pocket) + # cause a sync() + self.tool_change_flag = True + self.set_tool_parameters() + return INTERP_OK + else: + self.set_errormsg("M61 failed: Q=%4" % (toolno)) + return INTERP_ERROR + except Exception as e: + self.set_errormsg("M61/set_tool_number: %s" % (e)) + return INTERP_ERROR + +_uvw = ("u","v","w","a","b","c") +_xyz = ("x","y","z","a","b","c") +# given a plane, return sticky words, incompatible axis words and plane name +# sticky[0] is also the movement axis +_compat = { + emccanon.CANON_PLANE_XY : (("z","r"),_uvw,"XY"), + emccanon.CANON_PLANE_YZ : (("x","r"),_uvw,"YZ"), + emccanon.CANON_PLANE_XZ : (("y","r"),_uvw,"XZ"), + emccanon.CANON_PLANE_UV : (("w","r"),_xyz,"UV"), + emccanon.CANON_PLANE_VW : (("u","r"),_xyz,"VW"), + emccanon.CANON_PLANE_UW : (("v","r"),_xyz,"UW")} + +# extract and pass parameters from current block, merged with extra parameters on a continuation line +# keep tjose parameters across invocations +# export the parameters into the oword procedure +def cycle_prolog(self,**words): + # self.sticky_params is assumed to have been initialized by the + # init_stgdlue() method below + global _compat + try: + # determine whether this is the first or a subsequent call + c = self.blocks[self.remap_level] + r = c.executing_remap + if c.g_modes[1] == r.motion_code: + # first call - clear the sticky dict + self.sticky_params[r.name] = dict() + + self.params["motion_code"] = c.g_modes[1] + + (sw,incompat,plane_name) =_compat[self.plane] + for (word,value) in list(words.items()): + # inject current parameters + self.params[word] = value + # record sticky words + if word in sw: + if self.debugmask & 0x00080000: print("%s: record sticky %s = %.4f" % (r.name,word,value)) + self.sticky_params[r.name][word] = value + if word in incompat: + return "%s: Cannot put a %s in a canned cycle in the %s plane" % (r.name, word.upper(), plane_name) + + # inject sticky parameters which were not in words: + for (key,value) in list(self.sticky_params[r.name].items()): + if not key in words: + if self.debugmask & 0x00080000: print("%s: inject sticky %s = %.4f" % (r.name,key,value)) + self.params[key] = value + + if not "r" in self.sticky_params[r.name]: + return "%s: cycle requires R word" % (r.name) + else: + if self.sticky_params[r.name]['r'] <= 0.0: + return "%s: R word must be > 0 if used (%.4f)" % (r.name, words["r"]) + + if "l" in words: + # checked in interpreter during block parsing + # if l <= 0 or l not near an int + self.params["l"] = words["l"] + + if "p" in words: + p = words["p"] + if p < 0.0: + return "%s: P word must be >= 0 if used (%.4f)" % (r.name, p) + self.params["p"] = p + + if self.feed_rate == 0.0: + return "%s: feed rate must be > 0" % (r.name) + if self.feed_mode == INVERSE_TIME: + return "%s: Cannot use inverse time feed with canned cycles" % (r.name) + if self.cutter_comp_side: + return "%s: Cannot use canned cycles with cutter compensation on" % (r.name) + return INTERP_OK + + except Exception as e: + raise + return "cycle_prolog failed: %s" % (e) + +# make sure the next line has the same motion code, unless overridden by a +# new G-code +def cycle_epilog(self,**words): + try: + c = self.blocks[self.remap_level] + self.motion_mode = c.executing_remap.motion_code # retain the current motion mode + return INTERP_OK + except Exception as e: + return "cycle_epilog failed: %s" % (e) + +# this should be called from TOPLEVEL __init__() +def init_stdglue(self): + self.sticky_params = dict() + +##################################### +# pure python remaps +##################################### + +# REMAP=M6 python=ignore_m6 +# +# m5 silently ignored +# +def ignore_m6(self,**words): + try: + return INTERP_OK + except Exception as e: + return "Ignore M6 failed: %s" % (e) + +# REMAP=T python=index_lathe_tool_with_wear +# +# uses T101 for tool 1, wear 1 no M6 needed +# tool offsets for tool 1 and tool 10001 are added together. +# +def index_lathe_tool_with_wear(self,**words): + # only run this if we are really moving the machine + # skip this if running task for the screen + if not self.task: + yield INTERP_OK + try: + # check there is a tool number from the Gcode + cblock = self.blocks[self.remap_level] + if not cblock.t_flag: + self.set_errormsg("T requires a tool number") + yield INTERP_ERROR + tool_raw = int(cblock.t_number) + + # interpret the raw tool number into tool and wear number + # If it's less then 100 someone forgot to add the wear #, so we added it automatically + # separate out tool number (tool) and wear number (wear), add 10000 to wear number + if tool_raw <100: + tool_raw=tool_raw*100 + tool = int(tool_raw/100) + wear = 10000 + tool_raw % 100 + + # uncomment for debugging + #print'***tool#',cblock.t_number,'toolraw:',tool_raw,'tool split:',tool,'wear split',wear + if tool: + # check for tool number entry in tool file + (status, pocket) = self.find_tool_pocket(tool) + if status != INTERP_OK: + self.set_errormsg("T%d: tool entry not found" % (tool)) + yield status + else: + tool = -1 + pocket = -1 + wear = -1 + self.params["tool"] = tool + self.params["pocket"] = pocket + self.params["wear"] = wear + try: + self.hal_tool_comp['tool']= tool_raw + self.hal_tool_comp['wear']= wear + except: + pass + # index tool immediately to tool number + self.selected_tool = int(self.params["tool"]) + self.selected_pocket = int(self.params["pocket"]) + emccanon.SELECT_TOOL(self.selected_tool) + if self.selected_pocket < 0: + self.set_errormsg("T0 not valid") + yield INTERP_ERROR + if self.cutter_comp_side: + self.set_errormsg("Cannot change tools with cutter radius compensation on") + yield INTERP_ERROR + self.params["tool_in_spindle"] = self.current_tool + self.params["selected_tool"] = self.selected_tool + self.params["current_pocket"] = self.current_pocket + self.params["selected_pocket"] = self.selected_pocket + + # change tool + try: + self.selected_pocket = int(self.params["selected_pocket"]) + emccanon.CHANGE_TOOL() + self.current_pocket = self.selected_pocket + self.selected_pocket = -1 + self.selected_tool = -1 + # cause a sync() + self.set_tool_parameters() + self.toolchange_flag = True + except: + self.set_errormsg("T change aborted (return code %.1f)" % (self.return_value)) + yield INTERP_ERROR + + # add tool offset + self.execute("g43 h%d"% tool) + # if the wear offset is specified, add it's offset + try: + if wear>10000: + self.execute("g43.2 h%d"% wear) + yield INTERP_OK + except: + self.set_errormsg("Tool change aborted - No wear %d entry found in tool table" %wear) + yield INTERP_ERROR + except: + self.set_errormsg("Tool change aborted (return code %.1f)" % (self.return_value)) + yield INTERP_ERROR + + +# REMAP=M6 modalgroup=10 python=tool_probe_m6 +# +# auto tool probe on m6 +# move to tool change position for toolchange +# wait for acknowledge of tool change +# move to tool setter probe position +# probe tool on tool setter +# move back to tool change position +# set offsets +# based on Versaprobe remap +# +# param 5000 holds the work piece height +# param 4999 should be set to 1 if the +# machine is based in imperial +# +# required INI settings +# (Abs coordinates/ machine based units) +# +#[CHANGE_POSITION] +#X = 5 +#Y = 0 +#Z = 0 + +#[TOOLSENSOR] +#X = 5.00 +#Y = -1 +#Z = -1 +#PROBEHEIGHT = 2.3 +#MAXPROBE = -3 +#SEARCH_VEL = 20 +#PROBE_VEL = 5 + +def tool_probe_m6(self, **words): + + # only run this if we are really moving the machine + # skip this if running task for the screen + if not self.task: + yield INTERP_OK + + IMPERIAL_BASED = not(bool(self.params['_metric_machine'])) + + try: + # we need to be in machine based units + # if we aren't - switch + # remember so we can switch back later + switchUnitsFlag = False + if bool(self.params["_imperial"]) != IMPERIAL_BASED: + print ("not right Units: {}".format(bool(self.params["_imperial"]))) + if IMPERIAL_BASED: + print ("switched Units to imperial") + self.execute("G20") + else: + print ("switched Units to metric") + self.execute("G21") + switchUnitsFlag = True + + self.params["tool_in_spindle"] = self.current_tool + self.params["selected_tool"] = self.selected_tool + self.params["current_pocket"] = self.current_pocket + self.params["selected_pocket"] = self.selected_pocket + + # cancel tool offset + self.execute("G49") + + # change tool where ever we are + # user sets toolchange position prior to toolchange + # we will return here after + + try: + self.selected_pocket = int(self.params["selected_pocket"]) + emccanon.CHANGE_TOOL() + self.current_pocket = self.selected_pocket + self.selected_pocket = -1 + self.selected_tool = -1 + # cause a sync() + self.set_tool_parameters() + self.toolchange_flag = True + except InterpreterException as e: + self.set_errormsg("tool_probe_m6 remap error: %s" % (e)) + yield INTERP_ERROR + + yield INTERP_EXECUTE_FINISH + + # record current position; probably should record every axis + self.params[4999] = emccanon.GET_EXTERNAL_POSITION_X() + self.params[4998] = emccanon.GET_EXTERNAL_POSITION_Y() + self.params[4997] = emccanon.GET_EXTERNAL_POSITION_Z() + + try: + # move to tool probe position (from INI) + self.execute("G90") + self.execute("G53 G0 X[#<_ini[TOOLSENSOR]X>] Y[#<_ini[TOOLSENSOR]Y>]") + self.execute("G53 G0 Z[#<_ini[TOOLSENSOR]Z>]") + + # set incremental mode + self.execute("G91") + + # course probe + self.execute("F [#<_ini[TOOLSENSOR]SEARCH_VEL>]") + self.execute("G38.2 Z [#<_ini[TOOLSENSOR]MAXPROBE>]") + + # Wait for results + yield INTERP_EXECUTE_FINISH + + # FIXME if there is an error it never comes back + # which leaves linuxcnc in g91 state + if self.params[5070] == 0 or self.return_value > 0.0: + self.execute("G90") + self.set_errormsg("tool_probe_m6 remap error:") + yield INTERP_ERROR + + # rapid up off trigger point to do it again + if bool(self.params["_imperial"]): + f = 0.25 + else: + f = 4.0 + self.execute("G0 Z{}".format(f)) + + self.execute("F [#<_ini[TOOLSENSOR]PROBE_VEL>]") + self.execute("G38.2 Z-0.5") + yield INTERP_EXECUTE_FINISH + + # FIXME if there is an error it never comes back + # which leaves linuxcnc in g91 state + if self.params[5070] == 0 or self.return_value > 0.0: + self.execute("G90") + self.set_errormsg("tool_probe_m6 remap error:") + yield INTERP_ERROR + + # set back absolute state + self.execute("G90") + + # return to recorded tool change position + self.execute("G53 G0 Z[#4997]") + yield INTERP_EXECUTE_FINISH + self.execute("G53 G0 X[#4999] Y[#4998]") + + # adjust tool offset from calculations + proberesult = self.params[5063] + probeheight = self.params["_ini[TOOLSENSOR]PROBEHEIGHT"] + workheight = self.params[5000] + + adj = proberesult - probeheight + workheight + self.execute("G10 L1 P# Z{}".format(adj)) + + # apply tool offset + self.execute("G43") + + # if we switched units for tool change - switch back + if switchUnitsFlag: + if IMPERIAL_BASED: + self.execute("G21") + print ("switched Units back to metric") + else: + self.execute("G20") + print ("switched Units back to imperial") + + except InterpreterException as e: + msg = "%d: '%s' - %s" % (e.line_number,e.line_text, e.error_message) + print (msg) + yield INTERP_ERROR + + except: + self.set_errormsg("tool_probe_m6 remap error." ) + yield INTERP_ERROR + + + diff --git a/nc_files/retval.ngc b/nc_files/retval.ngc new file mode 100644 index 00000000000..7d6c8c23f06 --- /dev/null +++ b/nc_files/retval.ngc @@ -0,0 +1,29 @@ +; demonstrate optional return values from endsub and return + +o1000 sub +o1010 if [#1 GT 0] +o1010 return [123*[#1]] +o1010 endif + +o1020 if [#1 LT 0] +o1020 return +o1020 endif + +o1000 endsub [4712] + +o1000 call [0] +(debug,call with arg1=0 return #<_value>) + +; #<_value> is 4712.0 + +o1000 call [2] +(debug,call with arg1=2 return #<_value>) + +; #<_value> is 246.0 + +o1000 call [-1] +(debug,call with arg1=-1 return #<_value>) + +; #<_value> is 0.0 + +m2 diff --git a/nc_files/roparams.ngc b/nc_files/roparams.ngc new file mode 100644 index 00000000000..56dc18caa15 --- /dev/null +++ b/nc_files/roparams.ngc @@ -0,0 +1,43 @@ +(DEBUG, _vmajor: = #<_vmajor>) +(DEBUG, _vminor: = #<_vminor>) +(DEBUG, _line: = #<_line>) +(DEBUG, _motion_mode: = #<_motion_mode>) +(DEBUG, _plane: = #<_plane>) +(DEBUG, _ccomp: = #<_ccomp>) +(DEBUG, _metric: = #<_metric>) +(DEBUG, _imperial: = #<_imperial>) +(DEBUG, _absolute: = #<_absolute>) +(DEBUG, _incremental: = #<_incremental>) +(DEBUG, _inverse_time: = #<_inverse_time>) +(DEBUG, _units_per_minute: = #<_units_per_minute>) +(DEBUG, _units_per_rev: = #<_units_per_rev>) +(DEBUG, _coord_system: = #<_coord_system>) +(DEBUG, _tool_offset: = #<_tool_offset>) +(DEBUG, _retract_r_plane: = #<_retract_r_plane>) +(DEBUG, _retract_old_z: = #<_retract_old_z>) +(DEBUG, _spindle_rpm_mode: = #<_spindle_rpm_mode>) +(DEBUG, _spindle_css_mode: = #<_spindle_css_mode>) +(DEBUG, _ijk_absolute_mode: = #<_ijk_absolute_mode>) +(DEBUG, _lathe_diameter_mode: = #<_lathe_diameter_mode>) +(DEBUG, _lathe_radius_mode: = #<_lathe_radius_mode>) +(DEBUG, _spindle_on: = #<_spindle_on>) +(DEBUG, _spindle_cw: = #<_spindle_cw>) +(DEBUG, _mist: = #<_mist>) +(DEBUG, _flood: = #<_flood>) +(DEBUG, _speed_override: = #<_speed_override>) +(DEBUG, _feed_override: = #<_feed_override>) +(DEBUG, _adaptive_feed: = #<_adaptive_feed>) +(DEBUG, _feed_hold: = #<_feed_hold>) +(DEBUG, _feed: = #<_feed>) +(DEBUG, _rpm: = #<_rpm>) +(DEBUG, _x: = #<_x>) +(DEBUG, _y: = #<_y>) +(DEBUG, _z: = #<_z>) +(DEBUG, _a: = #<_a>) +(DEBUG, _b: = #<_b>) +(DEBUG, _c: = #<_c>) +(DEBUG, _u: = #<_u>) +(DEBUG, _v: = #<_v>) +(DEBUG, _w: = #<_w>) + +m2 diff --git a/nc_files/skeleton.ngc b/nc_files/skeleton.ngc new file mode 100644 index 00000000000..1c29ef22983 --- /dev/null +++ b/nc_files/skeleton.ngc @@ -0,0 +1,22 @@ +(program skeleton for use as basis for NC programs) +N0010 G17 G20 G40 G49 (XY plane select, inch mode, cancel diameter comp, cancel length offset) +N0020 G54 G80 G90 G94 (coordinate system 1, cancel motion, non-incremental motion, feed/minute mode) +N0030 G53 G0 Z0 (temporarily cancel offsets, retract quill) +N0040 X0 Y0 (move X and Y to the tool change position, change as required) +N0050 M05 M09 (spindle and coolant off) +(display a message for the operator) +N0060 (MSG,Load tool #1) +N0070 M00 (don't move until the operator presses the S key) +N0080 T1 M06 G43 H1 (change to tool 1 and get its length from the tool table) +(start G0 lines with a .001 second pause to avoid motion blending problems) +N0090 G04 P.001 G0 X1.0 Y1.0 S1000 M3 M8 (rapid to the starting XY, spindle CW, coolant ON, change as required) +N0100 G04 P.001 G0 Z0.25 (rapid to .25" above the part, change as required) +N0110 G0 Z0.25 (rapid to .25" above the part, change as required) +N0120 M05 M09 (spindle and coolant off) +N0130 G53 G0 Z0 (temporarily cancel offsets, retract quill) +N0140 X0. Y0. (move X and Y to the tool change position, change as required) +N0150 T0 M6 (remove tool) +N0160 (MSG,Remove tool) +N0170 M00 (don't do anything until operator presses the S key) +N0180 G49 (cancel length offset) +N0150 M2 (end program) diff --git a/nc_files/smartprobe.ngc b/nc_files/smartprobe.ngc new file mode 100644 index 00000000000..94bc2e1ab65 --- /dev/null +++ b/nc_files/smartprobe.ngc @@ -0,0 +1,54 @@ +( Rectangular Probing ) +( ) +( This program repeatedly probes in a regular XY grid and writes the ) +( probed location to the file 'probe-results.ngc' in the same directory ) +( as the .ini file ) +( increment x count = probe area ) + +(Configuration section) +G20 (Inches) +F20 (probe speed) + +#1=-1 (X start) +#2=.04 (X increment) +#3=51 (X count) + +#4=-1 (Y start) +#5=.04 (Y increment) +#6=51 (Y count) + +#7=1.1 (Z safety) +#8=-.1 (Z probe) +(End configuration section) + +(LOGOPEN,probe-results.ngc) +#9=0 #10=0 +G0Z#7 +O1 while [#9 lt #6] + #10=0 + G0 Y[#4+#5*#9] + O2 while [#10 lt #3] + O3 if [[#9/2] - fix[#9/2] eq 0] + #11=[#1+#2*#10] + O3 else + #11=[#1+#2*[#3-#10-1]] + O3 endif + (#11 is X target) + #5070=1 + O4 while [#5070 NE 0] + G38.5 z#7 + G38.3 x#11 + O4 endwhile + + G38.2Z#8 + (LOG,G1 X#5061 Y#5062 Z#5063) + #10=[#10+1] + O2 endwhile + G0Z#7 + #9=[#9+1] +O1 endwhile + +(LOGCLOSE) +G0Z#7 +G0X#1Y#4 +M2 diff --git a/nc_files/spiral.ngc b/nc_files/spiral.ngc new file mode 100644 index 00000000000..7a3a4a31f25 --- /dev/null +++ b/nc_files/spiral.ngc @@ -0,0 +1,13 @@ +g20 g64 g90 +s3400 m3 + +g0 z1 +g0 x2 y0 +g1 z-.1 f24 + +o100 repeat [800] +g91 g1 @-.0025 ^4.5 +o100 endrepeat + +g90 g0 z1 +m2 diff --git a/nc_files/systems.ngc b/nc_files/systems.ngc new file mode 100644 index 00000000000..84f2a34c3dc --- /dev/null +++ b/nc_files/systems.ngc @@ -0,0 +1,1003 @@ +G54 G92.1 +(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) +(text: G54) +#1=0.1 (SafeHeight) +#2=0.01 (Depth of Cut) +#3=0.000120 (XY Scale) +#4=100.0 (Feed) +#5=0.0 (X offset) +#6=0.0 (Y offset) +(start of symbol G) +(starting X offset: 0) +G00 Z #1 +G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) +G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 1716 to 2892, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 5) +(starting X offset: 2957) +G00 Z #1 +G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 3625 to 4952, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(start of symbol 4) +(starting X offset: 5005) +G00 Z #1 +G00 X [6860*#3+#5] Y [1016*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G01 X [6750*#3+#5] Y [614*#3+#6] (lineto) +G01 X [6471*#3+#5] Y [614*#3+#6] (lineto) +G01 X [6299*#3+#5] Y [0*#3+#6] (lineto) +G01 X [5775*#3+#5] Y [0*#3+#6] (lineto) +G01 X [5943*#3+#5] Y [614*#3+#6] (lineto) +G01 X [4944*#3+#5] Y [614*#3+#6] (lineto) +G01 X [5058*#3+#5] Y [1044*#3+#6] (lineto) +G01 X [6807*#3+#5] Y [2798*#3+#6] (lineto) +G01 X [7065*#3+#5] Y [2798*#3+#6] (lineto) +G01 X [6578*#3+#5] Y [1016*#3+#6] (lineto) +G01 X [6860*#3+#5] Y [1016*#3+#6] (lineto) +G00 Z #1 +G00 X [5222*#3+#5] Y [1016*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G01 X [6054*#3+#5] Y [1016*#3+#6] (lineto) +G01 X [6377*#3+#5] Y [2163*#3+#6] (lineto) +G01 X [5222*#3+#5] Y [1016*#3+#6] (lineto) +(symbol extents: X = 4944 to 7065, Y = 0 to 2798) +(symbol advance: X = 2048, Y = 0) +(final X offset: 7053) +(overall extents: X = 1716 to 7065, Y = 0 to 2806) +G00 Z #1 +G55 +(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) +(text: G55) +#1=0.1 (SafeHeight) +#2=0.01 (Depth of Cut) +#3=0.000120 (XY Scale) +#4=100.0 (Feed) +#5=0.0 (X offset) +#6=0.0 (Y offset) +(start of symbol G) +(starting X offset: 0) +G00 Z #1 +G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) +G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 1716 to 2892, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 5) +(starting X offset: 2957) +G00 Z #1 +G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 3625 to 4952, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(start of symbol 5) +(starting X offset: 5005) +G00 Z #1 +G00 X [6262*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[6221*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[6082*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[5785*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[5304*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [5841*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [7000*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [6852*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [5812*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [5673*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[6074*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[6299*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[6693*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[6346*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[5497*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[5107*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[4960*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[5027*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[5202*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[5371*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[5480*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[5576*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[5714*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[6096*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[6262*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 5673 to 7000, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(final X offset: 7053) +(overall extents: X = 1716 to 7000, Y = 115 to 2806) +G00 Z #1 +G56 +(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) +(text: G56) +#1=0.1 (SafeHeight) +#2=0.01 (Depth of Cut) +#3=0.000120 (XY Scale) +#4=100.0 (Feed) +#5=0.0 (X offset) +#6=0.0 (Y offset) +(start of symbol G) +(starting X offset: 0) +G00 Z #1 +G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) +G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 1716 to 2892, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 5) +(starting X offset: 2957) +G00 Z #1 +G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 3625 to 4952, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(start of symbol 6) +(starting X offset: 5005) +G00 Z #1 +G00 X [7065*#3+#5] Y [2781*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G01 X [7090*#3+#5] Y [2683*#3+#6] (lineto) +G5.1 X[6408*#3+#5] Y[2287*#3+#6] I[-414*#3] J[-156*#3] +G5.1 X[5951*#3+#5] Y[1675*#3+#6] I[-268*#3] J[-239*#3] +G5.1 X[6205*#3+#5] Y[1729*#3+#6] I[160*#3] J[54*#3] +G5.1 X[6656*#3+#5] Y[1542*#3+#6] I[287*#3] J[0*#3] +G5.1 X[6820*#3+#5] Y[1028*#3+#6] I[164*#3] J[-186*#3] +G5.1 X[6527*#3+#5] Y[256*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[5812*#3+#5] Y[-61*#3+#6] I[-293*#3] J[-317*#3] +G5.1 X[5287*#3+#5] Y[168*#3+#6] I[-336*#3] J[0*#3] +G5.1 X[5099*#3+#5] Y[799*#3+#6] I[-188*#3] J[229*#3] +G5.1 X[5316*#3+#5] Y[1636*#3+#6] I[0*#3] J[434*#3] +G5.1 X[5923*#3+#5] Y[2331*#3+#6] I[217*#3] J[404*#3] +G5.1 X[6412*#3+#5] Y[2605*#3+#6] I[249*#3] J[180*#3] +G5.1 X[7065*#3+#5] Y[2781*#3+#6] I[240*#3] J[94*#3] +G00 Z #1 +G00 X [6033*#3+#5] Y [1565*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[5890*#3+#5] Y[1520*#3+#6] I[-98*#3] J[0*#3] +G5.1 X[5779*#3+#5] Y[1311*#3+#6] I[-45*#3] J[-45*#3] +G5.1 X[5558*#3+#5] Y[389*#3+#6] I[-221*#3] J[-549*#3] +G5.1 X[5783*#3+#5] Y[70*#3+#6] I[0*#3] J[-319*#3] +G5.1 X[6033*#3+#5] Y[229*#3+#6] I[164*#3] J[0*#3] +G5.1 X[6223*#3+#5] Y[760*#3+#6] I[102*#3] J[193*#3] +G5.1 X[6312*#3+#5] Y[1290*#3+#6] I[89*#3] J[338*#3] +G5.1 X[6033*#3+#5] Y[1565*#3+#6] I[0*#3] J[275*#3] +(symbol extents: X = 6033 to 7090, Y = 1565 to 2781) +(symbol advance: X = 2048, Y = 0) +(final X offset: 7053) +(overall extents: X = 1716 to 7090, Y = 115 to 2806) +G00 Z #1 +G54 +G0 X1 Y0 +G92 X0 +(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) +(text: G54G92) +#1=0.1 (SafeHeight) +#2=0.01 (Depth of Cut) +#3=0.000120 (XY Scale) +#4=100.0 (Feed) +#5=0.0 (X offset) +#6=0.0 (Y offset) +(start of symbol G) +(starting X offset: 0) +G00 Z #1 +G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) +G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 1716 to 2892, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 5) +(starting X offset: 2957) +G00 Z #1 +G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 3625 to 4952, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(start of symbol 4) +(starting X offset: 5005) +G00 Z #1 +G00 X [6860*#3+#5] Y [1016*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G01 X [6750*#3+#5] Y [614*#3+#6] (lineto) +G01 X [6471*#3+#5] Y [614*#3+#6] (lineto) +G01 X [6299*#3+#5] Y [0*#3+#6] (lineto) +G01 X [5775*#3+#5] Y [0*#3+#6] (lineto) +G01 X [5943*#3+#5] Y [614*#3+#6] (lineto) +G01 X [4944*#3+#5] Y [614*#3+#6] (lineto) +G01 X [5058*#3+#5] Y [1044*#3+#6] (lineto) +G01 X [6807*#3+#5] Y [2798*#3+#6] (lineto) +G01 X [7065*#3+#5] Y [2798*#3+#6] (lineto) +G01 X [6578*#3+#5] Y [1016*#3+#6] (lineto) +G01 X [6860*#3+#5] Y [1016*#3+#6] (lineto) +G00 Z #1 +G00 X [5222*#3+#5] Y [1016*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G01 X [6054*#3+#5] Y [1016*#3+#6] (lineto) +G01 X [6377*#3+#5] Y [2163*#3+#6] (lineto) +G01 X [5222*#3+#5] Y [1016*#3+#6] (lineto) +(symbol extents: X = 4944 to 7065, Y = 0 to 2798) +(symbol advance: X = 2048, Y = 0) +(start of symbol G) +(starting X offset: 7053) +G00 Z #1 +G00 X [9072*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[9053*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[8980*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[8892*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[8769*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [8769*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [9945*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [9945*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[9730*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[9621*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [9425*#3+#5] Y [168*#3+#6] (lineto) +G01 X [9310*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[8859*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[8351*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[7477*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[7139*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[7385*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[8036*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[8888*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[9316*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[9543*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[9715*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [9842*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [9633*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [9515*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[9377*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[8945*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[8449*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[8079*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[7858*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[7778*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[7950*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[8450*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[8681*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[8835*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[8965*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[9072*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 8769 to 9945, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 9) +(starting X offset: 10010) +G00 Z #1 +G00 X [11235*#3+#5] Y [2798*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[11530*#3+#5] Y[2740*#3+#6] I[164*#3] J[0*#3] +G5.1 X[11738*#3+#5] Y[2597*#3+#6] I[131*#3] J[-57*#3] +G5.1 X[11867*#3+#5] Y[2394*#3+#6] I[78*#3] J[-86*#3] +G5.1 X[11937*#3+#5] Y[2168*#3+#6] I[52*#3] J[-117*#3] +G5.1 X[11956*#3+#5] Y[1950*#3+#6] I[19*#3] J[-108*#3] +G5.1 X[11734*#3+#5] Y[1102*#3+#6] I[0*#3] J[-434*#3] +G5.1 X[11128*#3+#5] Y[406*#3+#6] I[-221*#3] J[-414*#3] +G5.1 X[10640*#3+#5] Y[131*#3+#6] I[-246*#3] J[-181*#3] +G5.1 X[9985*#3+#5] Y[-41*#3+#6] I[-241*#3] J[-94*#3] +G01 X [9961*#3+#5] Y [61*#3+#6] (lineto) +G5.1 X[11095*#3+#5] Y[1061*#3+#6] I[754*#3] J[230*#3] +G5.1 X[10846*#3+#5] Y[1004*#3+#6] I[-127*#3] J[-57*#3] +G5.1 X[10397*#3+#5] Y[1192*#3+#6] I[-279*#3] J[0*#3] +G5.1 X[10227*#3+#5] Y[1688*#3+#6] I[-170*#3] J[188*#3] +G5.1 X[10520*#3+#5] Y[2476*#3+#6] I[0*#3] J[466*#3] +G5.1 X[11235*#3+#5] Y[2798*#3+#6] I[293*#3] J[322*#3] +G00 Z #1 +G00 X [11296*#3+#5] Y [2666*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[10997*#3+#5] Y[2443*#3+#6] I[-164*#3] J[0*#3] +G5.1 X[10798*#3+#5] Y[1945*#3+#6] I[-135*#3] J[-223*#3] +G5.1 X[10735*#3+#5] Y[1442*#3+#6] I[-63*#3] J[-274*#3] +G5.1 X[11005*#3+#5] Y[1180*#3+#6] I[0*#3] J[-262*#3] +G5.1 X[11185*#3+#5] Y[1239*#3+#6] I[127*#3] J[0*#3] +G5.1 X[11321*#3+#5] Y[1544*#3+#6] I[54*#3] J[59*#3] +G5.1 X[11497*#3+#5] Y[2384*#3+#6] I[176*#3] J[529*#3] +G5.1 X[11296*#3+#5] Y[2666*#3+#6] I[0*#3] J[282*#3] +(symbol extents: X = 9961 to 11296, Y = 61 to 2798) +(symbol advance: X = 2048, Y = 0) +(start of symbol 2) +(starting X offset: 12058) +G00 Z #1 +G00 X [12320*#3+#5] Y [2126*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[13209*#3+#5] Y[2798*#3+#6] I[348*#3] J[672*#3] +G5.1 X[13690*#3+#5] Y[2599*#3+#6] I[287*#3] J[0*#3] +G5.1 X[13885*#3+#5] Y[2109*#3+#6] I[195*#3] J[-199*#3] +G5.1 X[13295*#3+#5] Y[1139*#3+#6] I[0*#3] J[-467*#3] +G01 X [12492*#3+#5] Y [455*#3+#6] (lineto) +G01 X [13102*#3+#5] Y [455*#3+#6] (lineto) +G5.1 X[13446*#3+#5] Y[516*#3+#6] I[238*#3] J[0*#3] +G5.1 X[13672*#3+#5] Y[782*#3+#6] I[107*#3] J[62*#3] +G01 X [13774*#3+#5] Y [782*#3+#6] (lineto) +G01 X [13451*#3+#5] Y [0*#3+#6] (lineto) +G01 X [11947*#3+#5] Y [0*#3+#6] (lineto) +G01 X [11947*#3+#5] Y [98*#3+#6] (lineto) +G01 X [12316*#3+#5] Y [467*#3+#6] (lineto) +G5.1 X[13115*#3+#5] Y[1370*#3+#6] I[578*#3] J[573*#3] +G5.1 X[13336*#3+#5] Y[1978*#3+#6] I[221*#3] J[330*#3] +G5.1 X[13235*#3+#5] Y[2310*#3+#6] I[0*#3] J[213*#3] +G5.1 X[12955*#3+#5] Y[2429*#3+#6] I[-100*#3] J[119*#3] +G5.1 X[12410*#3+#5] Y[2077*#3+#6] I[-307*#3] J[0*#3] +G01 X [12320*#3+#5] Y [2126*#3+#6] (lineto) +(symbol extents: X = 11947 to 13774, Y = 0 to 2126) +(symbol advance: X = 2048, Y = 0) +(final X offset: 14106) +(overall extents: X = 1716 to 13774, Y = 0 to 2806) +G00 Z #1 +G55 +(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) +(text: G55G92) +#1=0.1 (SafeHeight) +#2=0.01 (Depth of Cut) +#3=0.000120 (XY Scale) +#4=100.0 (Feed) +#5=0.0 (X offset) +#6=0.0 (Y offset) +(start of symbol G) +(starting X offset: 0) +G00 Z #1 +G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) +G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 1716 to 2892, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 5) +(starting X offset: 2957) +G00 Z #1 +G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 3625 to 4952, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(start of symbol 5) +(starting X offset: 5005) +G00 Z #1 +G00 X [6262*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[6221*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[6082*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[5785*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[5304*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [5841*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [7000*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [6852*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [5812*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [5673*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[6074*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[6299*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[6693*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[6346*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[5497*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[5107*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[4960*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[5027*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[5202*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[5371*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[5480*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[5576*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[5714*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[6096*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[6262*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 5673 to 7000, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(start of symbol G) +(starting X offset: 7053) +G00 Z #1 +G00 X [9072*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[9053*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[8980*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[8892*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[8769*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [8769*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [9945*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [9945*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[9730*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[9621*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [9425*#3+#5] Y [168*#3+#6] (lineto) +G01 X [9310*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[8859*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[8351*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[7477*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[7139*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[7385*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[8036*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[8888*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[9316*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[9543*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[9715*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [9842*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [9633*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [9515*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[9377*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[8945*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[8449*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[8079*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[7858*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[7778*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[7950*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[8450*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[8681*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[8835*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[8965*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[9072*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 8769 to 9945, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 9) +(starting X offset: 10010) +G00 Z #1 +G00 X [11235*#3+#5] Y [2798*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[11530*#3+#5] Y[2740*#3+#6] I[164*#3] J[0*#3] +G5.1 X[11738*#3+#5] Y[2597*#3+#6] I[131*#3] J[-57*#3] +G5.1 X[11867*#3+#5] Y[2394*#3+#6] I[78*#3] J[-86*#3] +G5.1 X[11937*#3+#5] Y[2168*#3+#6] I[52*#3] J[-117*#3] +G5.1 X[11956*#3+#5] Y[1950*#3+#6] I[19*#3] J[-108*#3] +G5.1 X[11734*#3+#5] Y[1102*#3+#6] I[0*#3] J[-434*#3] +G5.1 X[11128*#3+#5] Y[406*#3+#6] I[-221*#3] J[-414*#3] +G5.1 X[10640*#3+#5] Y[131*#3+#6] I[-246*#3] J[-181*#3] +G5.1 X[9985*#3+#5] Y[-41*#3+#6] I[-241*#3] J[-94*#3] +G01 X [9961*#3+#5] Y [61*#3+#6] (lineto) +G5.1 X[11095*#3+#5] Y[1061*#3+#6] I[754*#3] J[230*#3] +G5.1 X[10846*#3+#5] Y[1004*#3+#6] I[-127*#3] J[-57*#3] +G5.1 X[10397*#3+#5] Y[1192*#3+#6] I[-279*#3] J[0*#3] +G5.1 X[10227*#3+#5] Y[1688*#3+#6] I[-170*#3] J[188*#3] +G5.1 X[10520*#3+#5] Y[2476*#3+#6] I[0*#3] J[466*#3] +G5.1 X[11235*#3+#5] Y[2798*#3+#6] I[293*#3] J[322*#3] +G00 Z #1 +G00 X [11296*#3+#5] Y [2666*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[10997*#3+#5] Y[2443*#3+#6] I[-164*#3] J[0*#3] +G5.1 X[10798*#3+#5] Y[1945*#3+#6] I[-135*#3] J[-223*#3] +G5.1 X[10735*#3+#5] Y[1442*#3+#6] I[-63*#3] J[-274*#3] +G5.1 X[11005*#3+#5] Y[1180*#3+#6] I[0*#3] J[-262*#3] +G5.1 X[11185*#3+#5] Y[1239*#3+#6] I[127*#3] J[0*#3] +G5.1 X[11321*#3+#5] Y[1544*#3+#6] I[54*#3] J[59*#3] +G5.1 X[11497*#3+#5] Y[2384*#3+#6] I[176*#3] J[529*#3] +G5.1 X[11296*#3+#5] Y[2666*#3+#6] I[0*#3] J[282*#3] +(symbol extents: X = 9961 to 11296, Y = 61 to 2798) +(symbol advance: X = 2048, Y = 0) +(start of symbol 2) +(starting X offset: 12058) +G00 Z #1 +G00 X [12320*#3+#5] Y [2126*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[13209*#3+#5] Y[2798*#3+#6] I[348*#3] J[672*#3] +G5.1 X[13690*#3+#5] Y[2599*#3+#6] I[287*#3] J[0*#3] +G5.1 X[13885*#3+#5] Y[2109*#3+#6] I[195*#3] J[-199*#3] +G5.1 X[13295*#3+#5] Y[1139*#3+#6] I[0*#3] J[-467*#3] +G01 X [12492*#3+#5] Y [455*#3+#6] (lineto) +G01 X [13102*#3+#5] Y [455*#3+#6] (lineto) +G5.1 X[13446*#3+#5] Y[516*#3+#6] I[238*#3] J[0*#3] +G5.1 X[13672*#3+#5] Y[782*#3+#6] I[107*#3] J[62*#3] +G01 X [13774*#3+#5] Y [782*#3+#6] (lineto) +G01 X [13451*#3+#5] Y [0*#3+#6] (lineto) +G01 X [11947*#3+#5] Y [0*#3+#6] (lineto) +G01 X [11947*#3+#5] Y [98*#3+#6] (lineto) +G01 X [12316*#3+#5] Y [467*#3+#6] (lineto) +G5.1 X[13115*#3+#5] Y[1370*#3+#6] I[578*#3] J[573*#3] +G5.1 X[13336*#3+#5] Y[1978*#3+#6] I[221*#3] J[330*#3] +G5.1 X[13235*#3+#5] Y[2310*#3+#6] I[0*#3] J[213*#3] +G5.1 X[12955*#3+#5] Y[2429*#3+#6] I[-100*#3] J[119*#3] +G5.1 X[12410*#3+#5] Y[2077*#3+#6] I[-307*#3] J[0*#3] +G01 X [12320*#3+#5] Y [2126*#3+#6] (lineto) +(symbol extents: X = 11947 to 13774, Y = 0 to 2126) +(symbol advance: X = 2048, Y = 0) +(final X offset: 14106) +(overall extents: X = 1716 to 13774, Y = 0 to 2806) +G00 Z #1 +G56 +(font: /usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf) +(text: G56G92) +#1=0.1 (SafeHeight) +#2=0.01 (Depth of Cut) +#3=0.000120 (XY Scale) +#4=100.0 (Feed) +#5=0.0 (X offset) +#6=0.0 (Y offset) +(start of symbol G) +(starting X offset: 0) +G00 Z #1 +G00 X [2019*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[2000*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[1927*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[1839*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[1716*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [1716*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [2892*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[2677*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[2568*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [2372*#3+#5] Y [168*#3+#6] (lineto) +G01 X [2257*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[1806*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[1298*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[424*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[86*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[332*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[983*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[1835*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[2263*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[2490*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[2662*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [2789*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [2580*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [2462*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[2324*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[1892*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[1396*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[1026*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[805*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[725*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[897*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[1397*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[1628*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[1782*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[1912*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[2019*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 1716 to 2892, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 5) +(starting X offset: 2957) +G00 Z #1 +G00 X [4214*#3+#5] Y [774*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[4173*#3+#5] Y[1011*#3+#6] I[0*#3] J[123*#3] +G5.1 X[4034*#3+#5] Y[1243*#3+#6] I[-40*#3] J[115*#3] +G5.1 X[3737*#3+#5] Y[1435*#3+#6] I[-98*#3] J[117*#3] +G5.1 X[3256*#3+#5] Y[1524*#3+#6] I[-198*#3] J[76*#3] +G01 X [3793*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4952*#3+#5] Y [2740*#3+#6] (lineto) +G01 X [4804*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3764*#3+#5] Y [2294*#3+#6] (lineto) +G01 X [3625*#3+#5] Y [1982*#3+#6] (lineto) +G5.1 X[4026*#3+#5] Y[1884*#3+#6] I[282*#3] J[-57*#3] +G5.1 X[4251*#3+#5] Y[1774*#3+#6] I[119*#3] J[-41*#3] +G5.1 X[4645*#3+#5] Y[1024*#3+#6] I[394*#3] J[-254*#3] +G5.1 X[4298*#3+#5] Y[258*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[3449*#3+#5] Y[-53*#3+#6] I[-346*#3] J[-311*#3] +G5.1 X[3059*#3+#5] Y[37*#3+#6] I[-242*#3] J[0*#3] +G5.1 X[2912*#3+#5] Y[270*#3+#6] I[-147*#3] J[90*#3] +G5.1 X[2979*#3+#5] Y[438*#3+#6] I[0*#3] J[103*#3] +G5.1 X[3154*#3+#5] Y[504*#3+#6] I[68*#3] J[66*#3] +G5.1 X[3323*#3+#5] Y[442*#3+#6] I[98*#3] J[0*#3] +G5.1 X[3432*#3+#5] Y[307*#3+#6] I[72*#3] J[-61*#3] +G5.1 X[3528*#3+#5] Y[172*#3+#6] I[37*#3] J[-74*#3] +G5.1 X[3666*#3+#5] Y[111*#3+#6] I[60*#3] J[-61*#3] +G5.1 X[4048*#3+#5] Y[311*#3+#6] I[217*#3] J[0*#3] +G5.1 X[4214*#3+#5] Y[774*#3+#6] I[166*#3] J[201*#3] +(symbol extents: X = 3625 to 4952, Y = 774 to 2740) +(symbol advance: X = 2048, Y = 0) +(start of symbol 6) +(starting X offset: 5005) +G00 Z #1 +G00 X [7065*#3+#5] Y [2781*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G01 X [7090*#3+#5] Y [2683*#3+#6] (lineto) +G5.1 X[6408*#3+#5] Y[2287*#3+#6] I[-414*#3] J[-156*#3] +G5.1 X[5951*#3+#5] Y[1675*#3+#6] I[-268*#3] J[-239*#3] +G5.1 X[6205*#3+#5] Y[1729*#3+#6] I[160*#3] J[54*#3] +G5.1 X[6656*#3+#5] Y[1542*#3+#6] I[287*#3] J[0*#3] +G5.1 X[6820*#3+#5] Y[1028*#3+#6] I[164*#3] J[-186*#3] +G5.1 X[6527*#3+#5] Y[256*#3+#6] I[0*#3] J[-455*#3] +G5.1 X[5812*#3+#5] Y[-61*#3+#6] I[-293*#3] J[-317*#3] +G5.1 X[5287*#3+#5] Y[168*#3+#6] I[-336*#3] J[0*#3] +G5.1 X[5099*#3+#5] Y[799*#3+#6] I[-188*#3] J[229*#3] +G5.1 X[5316*#3+#5] Y[1636*#3+#6] I[0*#3] J[434*#3] +G5.1 X[5923*#3+#5] Y[2331*#3+#6] I[217*#3] J[404*#3] +G5.1 X[6412*#3+#5] Y[2605*#3+#6] I[249*#3] J[180*#3] +G5.1 X[7065*#3+#5] Y[2781*#3+#6] I[240*#3] J[94*#3] +G00 Z #1 +G00 X [6033*#3+#5] Y [1565*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[5890*#3+#5] Y[1520*#3+#6] I[-98*#3] J[0*#3] +G5.1 X[5779*#3+#5] Y[1311*#3+#6] I[-45*#3] J[-45*#3] +G5.1 X[5558*#3+#5] Y[389*#3+#6] I[-221*#3] J[-549*#3] +G5.1 X[5783*#3+#5] Y[70*#3+#6] I[0*#3] J[-319*#3] +G5.1 X[6033*#3+#5] Y[229*#3+#6] I[164*#3] J[0*#3] +G5.1 X[6223*#3+#5] Y[760*#3+#6] I[102*#3] J[193*#3] +G5.1 X[6312*#3+#5] Y[1290*#3+#6] I[89*#3] J[338*#3] +G5.1 X[6033*#3+#5] Y[1565*#3+#6] I[0*#3] J[275*#3] +(symbol extents: X = 6033 to 7090, Y = 1565 to 2781) +(symbol advance: X = 2048, Y = 0) +(start of symbol G) +(starting X offset: 7053) +G00 Z #1 +G00 X [9072*#3+#5] Y [1098*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[9053*#3+#5] Y[1169*#3+#6] I[0*#3] J[45*#3] +G5.1 X[8980*#3+#5] Y[1212*#3+#6] I[-18*#3] J[27*#3] +G5.1 X[8892*#3+#5] Y[1233*#3+#6] I[-55*#3] J[17*#3] +G5.1 X[8769*#3+#5] Y[1245*#3+#6] I[-33*#3] J[4*#3] +G01 X [8769*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [9945*#3+#5] Y [1352*#3+#6] (lineto) +G01 X [9945*#3+#5] Y [1245*#3+#6] (lineto) +G5.1 X[9730*#3+#5] Y[1179*#3+#6] I[-164*#3] J[-12*#3] +G5.1 X[9621*#3+#5] Y[909*#3+#6] I[-51*#3] J[-53*#3] +G01 X [9425*#3+#5] Y [168*#3+#6] (lineto) +G01 X [9310*#3+#5] Y [115*#3+#6] (lineto) +G5.1 X[8859*#3+#5] Y[-20*#3+#6] I[-176*#3] J[-82*#3] +G5.1 X[8351*#3+#5] Y[-74*#3+#6] I[-274*#3] J[-54*#3] +G5.1 X[7477*#3+#5] Y[233*#3+#6] I[-536*#3] J[0*#3] +G5.1 X[7139*#3+#5] Y[1028*#3+#6] I[-338*#3] J[308*#3] +G5.1 X[7385*#3+#5] Y[1925*#3+#6] I[0*#3] J[471*#3] +G5.1 X[8036*#3+#5] Y[2589*#3+#6] I[246*#3] J[426*#3] +G5.1 X[8888*#3+#5] Y[2806*#3+#6] I[377*#3] J[217*#3] +G5.1 X[9316*#3+#5] Y[2744*#3+#6] I[229*#3] J[0*#3] +G5.1 X[9543*#3+#5] Y[2683*#3+#6] I[199*#3] J[-61*#3] +G5.1 X[9715*#3+#5] Y[2806*#3+#6] I[111*#3] J[0*#3] +G01 X [9842*#3+#5] Y [2806*#3+#6] (lineto) +G01 X [9633*#3+#5] Y [1901*#3+#6] (lineto) +G01 X [9515*#3+#5] Y [1917*#3+#6] (lineto) +G5.1 X[9377*#3+#5] Y[2469*#3+#6] I[-9*#3] J[364*#3] +G5.1 X[8945*#3+#5] Y[2658*#3+#6] I[-129*#3] J[189*#3] +G5.1 X[8449*#3+#5] Y[2478*#3+#6] I[-266*#3] J[0*#3] +G5.1 X[8079*#3+#5] Y[2021*#3+#6] I[-229*#3] J[-180*#3] +G5.1 X[7858*#3+#5] Y[1435*#3+#6] I[-141*#3] J[-276*#3] +G5.1 X[7778*#3+#5] Y[852*#3+#6] I[-80*#3] J[-309*#3] +G5.1 X[7950*#3+#5] Y[280*#3+#6] I[0*#3] J[-373*#3] +G5.1 X[8450*#3+#5] Y[82*#3+#6] I[172*#3] J[-198*#3] +G5.1 X[8681*#3+#5] Y[117*#3+#6] I[119*#3] J[0*#3] +G5.1 X[8835*#3+#5] Y[205*#3+#6] I[113*#3] J[35*#3] +G5.1 X[8965*#3+#5] Y[608*#3+#6] I[24*#3] J[37*#3] +G5.1 X[9072*#3+#5] Y[1098*#3+#6] I[107*#3] J[367*#3] +(symbol extents: X = 8769 to 9945, Y = 115 to 2806) +(symbol advance: X = 2957, Y = 0) +(start of symbol 9) +(starting X offset: 10010) +G00 Z #1 +G00 X [11235*#3+#5] Y [2798*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[11530*#3+#5] Y[2740*#3+#6] I[164*#3] J[0*#3] +G5.1 X[11738*#3+#5] Y[2597*#3+#6] I[131*#3] J[-57*#3] +G5.1 X[11867*#3+#5] Y[2394*#3+#6] I[78*#3] J[-86*#3] +G5.1 X[11937*#3+#5] Y[2168*#3+#6] I[52*#3] J[-117*#3] +G5.1 X[11956*#3+#5] Y[1950*#3+#6] I[19*#3] J[-108*#3] +G5.1 X[11734*#3+#5] Y[1102*#3+#6] I[0*#3] J[-434*#3] +G5.1 X[11128*#3+#5] Y[406*#3+#6] I[-221*#3] J[-414*#3] +G5.1 X[10640*#3+#5] Y[131*#3+#6] I[-246*#3] J[-181*#3] +G5.1 X[9985*#3+#5] Y[-41*#3+#6] I[-241*#3] J[-94*#3] +G01 X [9961*#3+#5] Y [61*#3+#6] (lineto) +G5.1 X[11095*#3+#5] Y[1061*#3+#6] I[754*#3] J[230*#3] +G5.1 X[10846*#3+#5] Y[1004*#3+#6] I[-127*#3] J[-57*#3] +G5.1 X[10397*#3+#5] Y[1192*#3+#6] I[-279*#3] J[0*#3] +G5.1 X[10227*#3+#5] Y[1688*#3+#6] I[-170*#3] J[188*#3] +G5.1 X[10520*#3+#5] Y[2476*#3+#6] I[0*#3] J[466*#3] +G5.1 X[11235*#3+#5] Y[2798*#3+#6] I[293*#3] J[322*#3] +G00 Z #1 +G00 X [11296*#3+#5] Y [2666*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[10997*#3+#5] Y[2443*#3+#6] I[-164*#3] J[0*#3] +G5.1 X[10798*#3+#5] Y[1945*#3+#6] I[-135*#3] J[-223*#3] +G5.1 X[10735*#3+#5] Y[1442*#3+#6] I[-63*#3] J[-274*#3] +G5.1 X[11005*#3+#5] Y[1180*#3+#6] I[0*#3] J[-262*#3] +G5.1 X[11185*#3+#5] Y[1239*#3+#6] I[127*#3] J[0*#3] +G5.1 X[11321*#3+#5] Y[1544*#3+#6] I[54*#3] J[59*#3] +G5.1 X[11497*#3+#5] Y[2384*#3+#6] I[176*#3] J[529*#3] +G5.1 X[11296*#3+#5] Y[2666*#3+#6] I[0*#3] J[282*#3] +(symbol extents: X = 9961 to 11296, Y = 61 to 2798) +(symbol advance: X = 2048, Y = 0) +(start of symbol 2) +(starting X offset: 12058) +G00 Z #1 +G00 X [12320*#3+#5] Y [2126*#3+#6] (moveto) +G01 Z [0-#2] F#4 +G5.1 X[13209*#3+#5] Y[2798*#3+#6] I[348*#3] J[672*#3] +G5.1 X[13690*#3+#5] Y[2599*#3+#6] I[287*#3] J[0*#3] +G5.1 X[13885*#3+#5] Y[2109*#3+#6] I[195*#3] J[-199*#3] +G5.1 X[13295*#3+#5] Y[1139*#3+#6] I[0*#3] J[-467*#3] +G01 X [12492*#3+#5] Y [455*#3+#6] (lineto) +G01 X [13102*#3+#5] Y [455*#3+#6] (lineto) +G5.1 X[13446*#3+#5] Y[516*#3+#6] I[238*#3] J[0*#3] +G5.1 X[13672*#3+#5] Y[782*#3+#6] I[107*#3] J[62*#3] +G01 X [13774*#3+#5] Y [782*#3+#6] (lineto) +G01 X [13451*#3+#5] Y [0*#3+#6] (lineto) +G01 X [11947*#3+#5] Y [0*#3+#6] (lineto) +G01 X [11947*#3+#5] Y [98*#3+#6] (lineto) +G01 X [12316*#3+#5] Y [467*#3+#6] (lineto) +G5.1 X[13115*#3+#5] Y[1370*#3+#6] I[578*#3] J[573*#3] +G5.1 X[13336*#3+#5] Y[1978*#3+#6] I[221*#3] J[330*#3] +G5.1 X[13235*#3+#5] Y[2310*#3+#6] I[0*#3] J[213*#3] +G5.1 X[12955*#3+#5] Y[2429*#3+#6] I[-100*#3] J[119*#3] +G5.1 X[12410*#3+#5] Y[2077*#3+#6] I[-307*#3] J[0*#3] +G01 X [12320*#3+#5] Y [2126*#3+#6] (lineto) +(symbol extents: X = 11947 to 13774, Y = 0 to 2126) +(symbol advance: X = 2048, Y = 0) +(final X offset: 14106) +(overall extents: X = 1716 to 13774, Y = 0 to 2806) +G00 Z #1 +G92.1 +M02 diff --git a/nc_files/threading.ngc b/nc_files/threading.ngc new file mode 100644 index 00000000000..c08a7625dfd --- /dev/null +++ b/nc_files/threading.ngc @@ -0,0 +1,76 @@ +g20 +g64 + +s1200 m3 +g4p2 +g0x.5 +z.7 +f3 + +#1=.05 +o101 while [#1 GE .04] +g0z.7 +g1x.020 +g1z[#1 + .65] +z[#1 + .54]x.13 +#1=[#1-.008] +o101 endwhile + +s400 m3 (=20ipm cutting at .05tpi) +g4p2 +f20 + +#1=0.118 (full radius) +#2=0.0005 (X increment) +#3=0.0375 (depth of cut) +#4=0.05 (thread pitch) +#5=0.7 (Z length) +(end of arguments) + +#6=0.0 +o100 while [#6 LE #3] +#7=[[#3 - #6] * TAN [29]] +g0x[#1 + .2]z[#5 + #7] +g0x[.1 + #1 - #6] +g1x[#1 - #6] +g33z[.1 + #7]k#4 +(stay synchronized and exit at 45 degrees) +g33x[.1 + #1 - #6]z#7k[sqrt[2]*[#4]] +g0x[#1 + .2] +#6=[#6 + #2] +o100 endwhile + +(two spring passes) +g0x[#1 + .2]z[#5 + #7] +g0x[.1 + #1 - #6] +g1x[#1 - #6] +g33z[.1 + #7]k#4 +g33x[.1 + #1 - #6]z#7k[sqrt[2]*[#4]] +g0x[#1 + .2] + +g0x[#1 + .2]z[#5 + #7] +g0x[.1 + #1 - #6] +g1x[#1 - #6] +g33z[.1 + #7]k#4 +g33x[.1 + #1 - #6]z#7k[sqrt[2]*[#4]] +g0x[#1 + .2] + +s1000 m3 +g4p2 +g0x.5 +z.7 +x.117 +f1.5 +g1z0 +g0x.13 +z.7 +g0x.13 + +s300m3 +g4p2 +g0x.68 +g0z0 +g1x.82f.15 +g0x.68 + +m2 diff --git a/nc_files/tool-length-probe.ngc b/nc_files/tool-length-probe.ngc new file mode 100644 index 00000000000..8b41233d2af --- /dev/null +++ b/nc_files/tool-length-probe.ngc @@ -0,0 +1,51 @@ +(this program demonstrates how to measure tool lengths automatically using) +(a switch hooked to the probe input. this is useful for machines without) +(tool holders, where the length of a tool is different every time it is) +(inserted.) + +(g30 should already be set to a position safely above the switch) + +(start with the first tool loaded, and g54 work offsets set with it) +(when you touch off the work with this reference tool, be sure length) +(comp is off {use g49}) + +g20 g90 +g49 +g0 x0 y0 z1 + +(measure reference tool) +g30 (above switch) +g38.2 z0 f15 (measure) +g91 g0z.2 (off the switch) +#1000=#5063 (save reference tool length) +(print,reference length is #1000) +g90 (done) + +(cut with first tool...) +g0 x0 y0 z1 +g1 z0 f20 +g2 x0 y0 i0 j.05 + +g0 z2 +(msg,insert another tool) +(use TxM6 here if you want to be able to use radius comp too) +m0 + +(measure next tool) +g30 (above switch) +g49 (measure without the last tool's offset) +g38.2 z0 f15 (measure) +g91 g0 z.2 (off the switch) +g43.1 z[#5063-#1000] (set new tool offset) +(print,new length is #5063) +g90 (done) + +(cut in the same place with this next tool...) +g0 x0 y0 z1 +g1 z0 f20 +g2 x0 y0 i0 j.05 + +g0 z1 + +(exit with tool length offset still in effect, in case we want to use MDI) +m2 diff --git a/nc_files/toplevel.ngc b/nc_files/toplevel.ngc new file mode 100644 index 00000000000..2bb9421cc42 --- /dev/null +++ b/nc_files/toplevel.ngc @@ -0,0 +1,25 @@ +; using M70/M71/M72 at the top level +; note that the 'Active G-codes' window in Axis isn't properly +; updated when single stepping + +F200 +S1200 +G90 (absolute mode) + +M70 (save state) + +f50 +s120 +g91 (relative motion) +g1 x5 + +M72 (restore without invalidating - multiple use possible) +(DEBUG, feed and speed back at f200 s1200 plus G90 restored) +f100 + +M71 (restore and invalidate) +(DEBUG, another M71 or M72 here should fail with an error message) + +; M71 + +M2 diff --git a/nc_files/tort.ngc b/nc_files/tort.ngc new file mode 100644 index 00000000000..9775cf057c9 --- /dev/null +++ b/nc_files/tort.ngc @@ -0,0 +1,282 @@ +g21 +G0 X0 Y0 Z20 +(msg,note axis positions... will return here at end of pgm. press 's') +m0 +F100 +G1 X2.000000 Y-4.000000 Z16.000000 +G0 X2.000000 Y-1.000000 Z16.000000 +G17 G2 (270 360) I0.000000 J7.000000 X9.000000 Y6.000000 Z13.000000 +G1 X10.500000 Y10.500000 Z15.500000 +G0 X15.000000 Y7.000000 Z13.000000 +G1 F480 X19.500000 Y4.500000 Z8.000000 +G0 X22.500000 Y6.000000 Z5.000000 +G17 G2 (210 270) I8.660254 J5.000000 X31.160254 Y1.000000 Z1.500000 +G17 G2 F170 (75 345) I-2.070552 J-7.727407 X36.817108 Y-8.797959 Z-3.500000 +G17 G2 F890 (300 75) I-1.000000 J1.732051 X36.334746 Y-5.134057 Z-6.000000 +G17 G3 (195 195) I1.931852 J0.517638 X36.334746 Y-5.134057 Z-3.500000 +G1 F290 X40.834746 Y-2.634057 Z-7.000000 +G17 G2 (75 210) I-2.588190 J-9.659258 X29.586302 Y-17.293315 Z-5.000000 +G1 F690 X28.586302 Y-18.293315 Z-8.000000 +G19 G3 F310 (270 345) J0.000000 K10.000000 X28.086302 Y-8.634057 Z-0.588190 +G1 F450 X31.086302 Y-6.134057 Z-1.588190 +G18 G2 (164 135) I9.659258 K-2.588190 X47.816628 Y-7.634057 Z-11.247449 +G0 X0 Y0 Z20 +F100 +G1 X-2.500000 Y-4.500000 Z19.000000 +G17 G2 F490 (90 195) I-0.000000 J-3.000000 X-5.397777 Y-8.276457 Z21.000000 +G1 X-3.397777 Y-5.276457 Z24.000000 +G17 G3 (0 329) I-8.000000 J-0.000000 X-4.469574 Y-9.276457 Z25.000000 +G17 G3 F870 (225 135) I4.949747 J4.949747 X-4.469574 Y0.623038 Z24.500000 +G18 G2 (45 29) I-2.121320 K-2.121320 X-5.090895 Y0.123038 Z24.976756 +G1 F650 X-6.090895 Y-0.876962 Z23.976756 +G0 X-8.590895 Y-0.876962 Z26.476756 +G19 G3 (135 164) J2.828427 K-2.828427 X-10.590895 Y-1.912238 Z24.683605 +G1 X-11.090895 Y-3.412238 Z25.683605 +G17 G3 F460 (329 225) I-3.464102 J2.000000 X-17.383423 Y-4.240666 Z24.683605 +G18 G2 F810 (150 150) I4.330127 K-2.500000 X-10.553296 Y-8.240666 Z17.853478 +G17 G3 F510 (345 59) I-6.761481 J1.811733 X-13.814777 Y-0.366754 Z20.853478 +G19 G3 (270 180) J0.000000 K10.000000 X-8.814777 Y-10.366754 Z30.853478 +G0 X0 Y0 Z20 +F100 +G1 X3.500000 Y1.000000 Z22.500000 +G1 X8.000000 Y0.500000 Z23.000000 +G19 G2 F910 (90 0) J-0.000000 K-7.000000 X12.500000 Y7.500000 Z16.000000 +G19 G2 F390 (90 135) J-0.000000 K-6.000000 X16.000000 Y3.257359 Z14.242641 +G19 G2 F200 (29 270) J-6.928203 K-4.000000 X13.000000 Y-3.670844 Z2.242641 +G17 G2 F840 (315 180) I-3.535534 J3.535534 X4.464466 Y-0.135310 Z7.242641 +G1 F280 X2.964466 Y-5.135310 Z9.242641 +G1 F550 X3.964466 Y-8.135310 Z9.742641 +G18 G3 F790 (135 59) I0.707107 K-0.707107 X5.537598 Y-4.635310 Z9.535534 +G1 F400 X1.537598 Y-3.635310 Z12.535534 +G18 G3 F870 (210 225) I7.794229 K4.500000 X2.967866 Y-3.135310 Z10.671573 +G19 G3 (180 14) J8.000000 K-0.000000 X3.967866 Y12.592097 Z12.742125 +G17 G3 F760 (180 45) I6.000000 J-0.000000 X14.210507 Y16.834737 Z7.742125 +G18 G2 (315 345) I-5.656854 K5.656854 X6.483100 Y13.834737 Z21.126386 +G1 F810 X1.983100 Y18.334737 Z19.626386 +G0 X1.983100 Y13.834737 Z16.626386 +G0 X3.983100 Y9.834737 Z19.126386 +G17 G3 F900 (75 255) I-1.294095 J-4.829629 X1.394910 Y0.175479 Z20.626386 +G19 G3 F300 (270 329) J0.000000 K10.000000 X1.894910 Y8.835733 Z25.626386 +G1 X3.394910 Y8.335733 Z23.126386 +G19 G2 F490 (164 329) J4.829629 K-1.294095 X0.394910 Y17.495489 Z19.332291 +G0 X5.394910 Y13.495489 Z20.332291 +G19 G2 F690 (225 29) J5.656854 K5.656854 X10.394910 Y26.080547 Z29.989145 +G19 G2 (75 14) J-0.258819 K-0.965926 X6.894910 Y26.787653 Z29.282038 +G17 G2 (329 285) I-4.330127 J2.500000 X3.858878 Y24.458024 Z31.282038 +G0 X0 Y0 Z20 +F100 +G0 X1.000000 Y4.500000 Z15.500000 +G19 G2 F700 (150 180) J8.660254 K-5.000000 X3.500000 Y3.160254 Z10.500000 +G0 X1.500000 Y3.160254 Z6.500000 +G18 G2 F430 (345 345) I-8.693332 K2.329371 X-9.522704 Y3.660254 Z17.522704 +G0 X-9.522704 Y1.660254 Z20.022704 +G0 X-9.022704 Y-0.339746 Z19.022704 +G19 G2 F900 (225 300) J0.707107 K0.707107 X-10.522704 Y0.867361 Z18.863785 +G18 G2 F630 (14 105) I-8.693332 K-2.329371 X-10.522704 Y1.867361 Z14.205042 +G17 G2 F100 (0 135) I-5.000000 J-0.000000 X-19.058238 Y5.402895 Z15.205042 +G19 G2 F470 (210 345) J5.196152 K3.000000 X-17.558238 Y16.394602 Z16.652128 +G18 G2 F330 (75 45) I-2.329371 K-8.693332 X-13.523648 Y12.394602 Z14.322757 +G1 X-15.023648 Y8.394602 Z18.322757 +G0 X-13.523648 Y4.894602 Z16.322757 +G17 G3 F630 (315 119) I-5.656854 J5.656854 X-23.180502 Y17.479660 Z14.322757 +G1 X-18.680502 Y21.979660 Z17.822757 +G1 X-20.180502 Y26.979660 Z18.822757 +G17 G2 (59 135) I-3.000000 J-5.196152 X-27.423143 Y26.026148 Z21.822757 +G17 G2 F930 (225 270) I4.242641 J4.242641 X-23.180502 Y24.268789 Z25.322757 +G1 F290 X-19.680502 Y25.768789 Z20.322757 +G17 G3 F620 (195 270) I3.863703 J1.035276 X-15.816799 Y22.804065 Z16.322757 +G17 G3 (135 255) I5.656854 J-5.656854 X-12.230497 Y9.419804 Z17.822757 +G1 F160 X-10.230497 Y10.919804 Z14.822757 +G0 X-11.230497 Y13.919804 Z17.822757 +G18 G2 (164 300) I1.931852 K-0.517638 X-11.030696 Y17.919804 Z18.305119 +G17 G2 F480 (105 255) I0.517638 J-1.931852 X-11.030696 Y14.056101 Z20.305119 +G17 G2 (14 150) I-7.727407 J-2.070552 X-25.686306 Y15.985548 Z16.805119 +G17 G2 F300 (225 315) I5.656854 J5.656854 X-14.372598 Y15.985548 Z21.805119 +G1 X-15.372598 Y18.485548 Z18.305119 +G17 G2 F730 (90 90) I-0.000000 J-8.000000 X-15.372598 Y18.485548 Z15.805119 +G0 X-12.372598 Y14.485548 Z12.305119 +G0 X-8.872598 Y11.985548 Z8.305119 +G0 X-5.872598 Y11.985548 Z10.305119 +G17 G2 F500 (105 105) I2.329371 J-8.693332 X-5.872598 Y11.985548 Z7.805119 +G19 G3 (195 315) J2.897777 K0.776457 X-3.872598 Y17.004646 Z6.460255 +G19 G2 (270 195) J0.000000 K10.000000 X-0.372598 Y7.345388 Z13.872065 +G18 G2 F870 (225 255) I2.121320 K2.121320 X-1.149055 Y2.845388 Z15.216928 +G19 G3 F440 (14 180) J-5.795555 K-1.552914 X-1.149055 Y-8.950167 Z13.664014 +G0 X1.350945 Y-10.950167 Z18.664014 +G17 G2 F480 (270 150) I0.000000 J1.000000 X0.484920 Y-9.450167 Z20.664014 +G0 X-2.015080 Y-11.450167 Z21.664014 +G18 G3 F890 (0 210) I-4.000000 K-0.000000 X-8.015080 Y-13.950167 Z18.199912 +G0 X-6.515080 Y-18.950167 Z19.199912 +G0 X-11.515080 Y-22.450167 Z16.199912 +G19 G3 (164 90) J9.659258 K-2.588190 X-14.515080 Y-12.790909 Z23.611722 +G0 X-12.515080 Y-9.790909 Z26.611722 +G0 X-12.015080 Y-13.290909 Z22.611722 +G17 G2 (300 29) I-4.500000 J7.794229 X-8.720852 Y-0.996680 Z19.611722 +G1 X-12.220852 Y-2.996680 Z18.611722 +G1 F460 X-11.720852 Y-0.996680 Z13.611722 +G0 X-7.720852 Y-1.496680 Z11.111722 +G18 G3 F980 (75 45) I-1.811733 K-6.761481 X-4.582837 Y-3.996680 Z9.299989 +G0 X-5.082837 Y-3.996680 Z14.299989 +G1 X-0.582837 Y0.003320 Z12.299989 +G18 G2 F800 (90 119) I-0.000000 K-4.000000 X2.881264 Y-1.996680 Z6.299989 +G0 X6.881264 Y-2.996680 Z6.299989 +G18 G3 (29 300) I-5.196152 K-3.000000 X-3.511041 Y-4.496680 Z6.299989 +G19 G3 (14 45) J-8.693332 K-2.329371 X1.488959 Y-6.826052 Z10.334578 +G18 G3 F220 (164 90) I5.795555 K-1.552914 X13.284514 Y-5.826052 Z8.781664 +G19 G2 (45 270) J-7.071068 K-7.071068 X14.284514 Y-12.897120 Z-8.289404 +G17 G3 F970 (0 150) I-7.000000 J-0.000000 X1.222336 Y-9.397120 Z-3.789404 +G18 G2 F690 (45 45) I-2.828427 K-2.828427 X1.222336 Y-11.397120 Z-3.789404 +G0 X4.722336 Y-15.897120 Z-3.789404 +G17 G3 (180 59) I6.000000 J-0.000000 X13.722336 Y-10.700967 Z1.210596 +G1 F760 X12.722336 Y-14.700967 Z1.210596 +G17 G2 F990 (29 164) I-8.660254 J-5.000000 X-5.597176 Y-17.112777 Z5.710596 +G18 G2 F580 (59 210) I-5.000000 K-8.660254 X-15.597176 Y-21.612777 Z-11.609912 +G0 X0 Y0 Z20 +F100 +G18 G2 (210 164) I5.196152 K3.000000 X6.749067 Y3.500000 Z17.204445 +G0 X6.749067 Y5.500000 Z15.704445 +G17 G2 (345 345) I-6.761481 J1.811733 X6.749067 Y5.500000 Z13.204445 +G17 G3 (0 195) I-8.000000 J-0.000000 X-8.978340 Y3.429448 Z15.704445 +G1 X-7.478340 Y3.429448 Z10.704445 +G1 F620 X-5.478340 Y3.429448 Z15.204445 +G17 G2 (135 164) I4.949747 J-4.949747 X-7.290073 Y0.291433 Z14.204445 +G17 G3 F870 (135 329) I2.828427 J-2.828427 X-0.997544 Y-4.536994 Z17.204445 +G17 G2 F580 (14 29) I-8.693332 J-2.329371 X-1.896648 Y-2.366365 Z21.704445 +G0 X-6.896648 Y-1.366365 Z17.704445 +G1 F170 X-5.396648 Y-0.866365 Z16.204445 +G0 X-4.396648 Y-2.366365 Z12.704445 +G1 F890 X-0.896648 Y-7.366365 Z10.704445 +G17 G2 F240 (239 360) I4.500000 J7.794229 X12.603352 Y0.427864 Z6.204445 +G0 X8.603352 Y-3.072136 Z7.704445 +G18 G3 (210 45) I8.660254 K5.000000 X24.334674 Y-4.572136 Z19.775513 +G18 G2 F800 (239 14) I4.500000 K7.794229 X31.164045 Y-4.572136 Z36.263074 +G0 X0 Y0 Z20 +F100 +G1 X4.500000 Y4.500000 Z22.000000 +G0 X5.000000 Y0.000000 Z25.000000 +G0 X0.000000 Y1.500000 Z21.500000 +G17 G2 F270 (59 59) I-1.500000 J-2.598076 X0.000000 Y1.500000 Z21.500000 +G18 G2 (105 239) I1.035276 K-3.863703 X-2.428825 Y-1.000000 Z15.636297 +G1 X-1.928825 Y0.500000 Z13.636297 +G0 X0.571175 Y2.500000 Z10.136297 +G19 G3 F150 (119 0) J1.000000 K-1.732051 X2.571175 Y5.500000 Z8.404246 +G18 G3 (90 75) I-0.000000 K-10.000000 X12.230433 Y8.000000 Z0.992436 +G17 G2 F130 (239 360) I2.500000 J4.330127 X19.730433 Y12.330127 Z-1.007564 +G18 G2 (59 180) I-4.500000 K-7.794229 X15.230433 Y15.330127 Z-17.801792 +G0 X0 Y0 Z20 +F100 +G1 X1.000000 Y-2.500000 Z24.500000 +G1 X1.000000 Y-4.500000 Z21.000000 +G17 G3 (239 135) I2.000000 J3.464102 X0.171573 Y1.792529 Z18.000000 +G19 G2 F750 (270 45) J0.000000 K8.000000 X-1.828427 Y7.449383 Z31.656854 +G0 X0 Y0 Z20 +F100 +G0 X0.000000 Y3.500000 Z24.000000 +G18 G2 (195 105) I2.897777 K0.776457 X5.795555 Y0.000000 Z24.000000 +G19 G3 F170 (195 360) J0.965926 K0.258819 X6.295555 Y1.965926 Z24.258819 +G1 F610 X3.295555 Y-2.534074 Z21.758819 +G17 G2 (29 300) I-4.330127 J-2.500000 X1.465428 Y-9.364201 Z24.258819 +G1 X3.465428 Y-5.864201 Z24.258819 +G0 X2.465428 Y-7.364201 Z19.758819 +G19 G2 (225 270) J3.535534 K3.535534 X1.965428 Y-3.828667 Z18.294353 +G1 X4.465428 Y-2.328667 Z15.294353 +G1 F710 X7.465428 Y-1.828667 Z10.794353 +G1 X3.965428 Y-5.328667 Z6.294353 +G18 G2 (180 300) I9.000000 K-0.000000 X5.171199 Y-6.828667 Z10.794353 +G19 G2 F810 (345 45) J-9.659258 K2.588190 X8.171199 Y-9.416858 Z20.453611 +G18 G2 F930 (239 300) I1.500000 K2.598076 X7.073123 Y-14.416858 Z24.551687 +G19 G3 F820 (239 135) J1.000000 K1.732051 X9.573123 Y-14.831071 Z27.697952 +G1 F790 X6.073123 Y-14.831071 Z24.197952 +G18 G3 (45 255) I-4.242641 K-4.242641 X-3.965073 Y-12.331071 Z18.402397 +G1 F830 X1.034927 Y-16.831071 Z13.402397 +G19 G2 (135 105) J7.071068 K-7.071068 X0.534927 Y-12.348194 Z15.990587 +G1 F400 X-1.465073 Y-8.848194 Z15.990587 +G19 G3 (90 180) J-0.000000 K-5.000000 X2.534927 Y-13.848194 Z10.990587 +G17 G2 F830 (270 0) I0.000000 J6.000000 X8.534927 Y-7.848194 Z10.490587 +G0 X3.534927 Y-4.848194 Z7.990587 +G17 G2 F630 (239 329) I3.500000 J6.062178 X13.097105 Y-2.286016 Z8.990587 +G0 X16.097105 Y-4.786016 Z4.490587 +G0 X18.097105 Y-5.786016 Z9.490587 +G0 X20.097105 Y-1.786016 Z13.490587 +G0 X16.097105 Y-1.286016 Z12.490587 +G0 X18.597105 Y-0.786016 Z10.990587 +G0 X19.597105 Y2.213984 Z8.990587 +G1 F240 X21.597105 Y-0.786016 Z12.990587 +G19 G2 (14 345) J-4.829629 K-1.294095 X26.597105 Y-0.786016 Z10.402397 +G1 X22.597105 Y-3.786016 Z5.402397 +G19 G3 (45 14) J-2.121320 K-2.121320 X20.597105 Y-3.009559 Z4.057534 +G0 X20.597105 Y-4.009559 Z9.057534 +G17 G2 F640 (270 360) I0.000000 J3.000000 X23.597105 Y-1.009559 Z11.557534 +G0 X23.597105 Y-5.009559 Z7.557534 +G0 X24.597105 Y-2.009559 Z6.557534 +G19 G3 (90 300) J-0.000000 K-10.000000 X26.597105 Y2.990441 Z-12.102720 +G0 X0 Y0 Z20 +F100 +G1 X2.500000 Y-5.000000 Z25.000000 +G1 F970 X4.000000 Y-5.000000 Z29.000000 +G1 X7.500000 Y-6.000000 Z30.500000 +G0 X0 Y0 Z20 +F100 +G17 G2 F580 (90 315) I-0.000000 J-1.000000 X0.707107 Y-1.707107 Z22.000000 +G17 G2 F650 (329 360) I-6.928203 J4.000000 X1.778904 Y2.292893 Z23.000000 +G1 F640 X2.278904 Y3.792893 Z21.000000 +G0 X-2.221096 Y8.292893 Z23.500000 +G19 G3 (210 270) J4.330127 K2.500000 X1.778904 Y12.623020 Z21.000000 +G1 X-2.721096 Y15.623020 Z23.000000 +G0 X-0.221096 Y11.623020 Z21.000000 +G19 G3 F980 (210 315) J3.464102 K2.000000 X-3.721096 Y17.915549 Z20.171573 +G1 X-6.221096 Y21.415549 Z15.171573 +G17 G2 (239 105) I1.000000 J1.732051 X-5.738735 Y25.079451 Z11.171573 +G19 G3 F950 (135 360) J6.363961 K-6.363961 X-4.238735 Y40.443412 Z4.807612 +G0 X-9.238735 Y39.943412 Z4.807612 +G17 G2 (90 45) I-0.000000 J-6.000000 X-4.996094 Y38.186053 Z9.307612 +G0 X-2.496094 Y37.186053 Z6.807612 +G17 G3 (59 59) I-1.000000 J-1.732051 X-2.496094 Y37.186053 Z10.807612 +G18 G2 (239 180) I4.000000 K6.928203 X1.503906 Y35.186053 Z9.735815 +G0 X4.003906 Y39.186053 Z13.235815 +G1 F390 X6.503906 Y38.186053 Z8.235815 +G19 G3 F640 (119 210) J3.000000 K-5.196152 X1.503906 Y35.989901 Z0.039663 +G0 X2.503906 Y32.489901 Z4.539663 +G18 G3 F420 (180 14) I7.000000 K-0.000000 X11.315639 Y33.989901 Z11.301143 +G18 G2 (164 150) I3.863703 K-1.035276 X17.179343 Y30.489901 Z6.801766 +G19 G3 (135 360) J5.656854 K-5.656854 X17.179343 Y44.146755 Z1.144911 +G1 X18.679343 Y42.146755 Z0.144911 +G19 G2 (119 345) J2.500000 K-4.330127 X18.179343 Y49.476384 Z-5.479311 +G18 G2 (255 270) I1.811733 K6.761481 X12.991076 Y45.976384 Z1.282170 +G0 X8.491076 Y43.976384 Z0.282170 +G1 F720 X12.991076 Y48.976384 Z-4.717830 +G0 X8.991076 Y49.476384 Z-9.217830 +G17 G3 (225 345) I0.707107 J0.707107 X10.664109 Y49.924672 Z-5.217830 +G18 G3 F280 (285 45) I-2.329371 K8.693332 X14.698698 Y47.424672 Z9.839463 +G19 G2 (0 270) J-10.000000 K-0.000000 X11.198698 Y37.424672 Z-0.160537 +G0 X9.198698 Y33.424672 Z-2.160537 +G0 X13.198698 Y35.424672 Z2.339463 +G17 G3 (45 285) I-5.656854 J-5.656854 X9.612396 Y22.040411 Z2.339463 +G18 G3 (135 180) I0.707107 K-0.707107 X10.319503 Y21.540411 Z0.632357 +G0 X5.819503 Y19.040411 Z-1.867643 +G19 G2 F260 (180 150) J3.000000 K-0.000000 X5.819503 Y19.442335 Z-0.367643 +G18 G3 (315 239) I-3.535534 K3.535534 X-2.046158 Y16.942335 Z0.667891 +G19 G2 F740 (0 0) J-8.000000 K-0.000000 X-0.546158 Y16.942335 Z0.667891 +G18 G2 F120 (225 270) I3.535534 K3.535534 X-2.010624 Y12.942335 Z4.203424 +G17 G3 (135 270) I1.414214 J-1.414214 X-0.596410 Y9.528121 Z6.703424 +G17 G2 (14 329) I-3.863703 J-1.035276 X-0.996012 Y6.492845 Z4.203424 +G0 X-2.496012 Y10.992845 Z-0.796576 +G0 X-4.996012 Y15.492845 Z0.703424 +G17 G2 F750 (329 270) I-6.928203 J4.000000 X-11.924215 Y11.492845 Z-0.296576 +G17 G2 (164 59) I5.795555 J-1.552914 X-3.128660 Y15.136083 Z0.703424 +G0 X-8.128660 Y17.636083 Z-0.296576 +G0 X-12.128660 Y21.636083 Z3.703424 +G17 G2 (14 90) I-6.761481 J-1.811733 X-18.890141 Y26.824350 Z4.703424 +G0 X-16.890141 Y22.324350 Z4.203424 +G0 X-19.890141 Y21.824350 Z0.203424 +G1 F330 X-23.390141 Y18.824350 Z3.703424 +G0 X-19.390141 Y15.824350 Z6.703424 +G19 G2 (119 90) J2.500000 K-4.330127 X-21.890141 Y18.324350 Z7.373297 +G18 G3 F330 (14 105) I-4.829629 K-1.294095 X-21.890141 Y13.824350 Z4.785107 +G18 G2 F510 (105 239) I1.811733 K-6.761481 X-26.140586 Y16.324350 Z-5.476374 +G18 G2 (75 14) I-1.035276 K-3.863703 X-26.140586 Y11.324350 Z-5.476374 +G1 F230 X-22.640586 Y15.324350 Z-7.476374 +G17 G2 (255 59) I2.329371 J8.693332 X-15.811214 Y31.811911 Z-8.976374 +G17 G2 F900 (45 135) I-1.414214 J-1.414214 X-18.639641 Y31.811911 Z-11.476374 +G0 X0 Y0 Z20 +m2 diff --git a/nc_files/torus.png b/nc_files/torus.png new file mode 100644 index 0000000000000000000000000000000000000000..5560cfd318fc14f29023969fc4e9ef6c0936b276 GIT binary patch literal 20811 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 literal 0 HcmV?d00001 diff --git a/nc_files/touchoff.ngc b/nc_files/touchoff.ngc new file mode 100644 index 00000000000..dddad59abd1 --- /dev/null +++ b/nc_files/touchoff.ngc @@ -0,0 +1,18 @@ +o sub +; This is the touchoff subroutine for the plasma-5i20 configuration +(#1 pierce height, #2 pierce delay, #3 cut height) +F10 +G38.2 Z-1.75 (Probe to find the surface) +G91 +; set this height based on your machine +G1 Z0.070 (Raise up to Z0) +G90 +G92 Z0 (Set Z0) +G1 Z#1 +M3 S1 +M66 P0 L1 Q5 (Wait for Arc OK from Torch) +G4 P#2 (Pause for pierce delay) +F25 +Z#3 (goto cut height) +o endsub +M2 diff --git a/nc_files/useful-subroutines.ngc b/nc_files/useful-subroutines.ngc new file mode 100644 index 00000000000..7aa1903704f --- /dev/null +++ b/nc_files/useful-subroutines.ngc @@ -0,0 +1,93 @@ +(This file is Copyright 2006 Chris Radek and released under the GPL v2.) + +(This is meant as a place to collect useful subroutines. Please add any) +(other general-purpose routines that you think are useful. Put instructions) +(for calling the subroutine at its beginning, and add it to the table of) +(contents. Use a different O number for each subroutine. If you like, add) +(a usage example at the end of this file.) + +(Table of contents:) +(O100: "hole drilling" with an end mill) +(O200: slot cutting) + + +o100 sub + (helical hole milling, load tool and set feed first, then use like so:) + (o100 call [x pos] [y pos] [safety height] [hole depth] [hole dia] [tool dia]) + (tool dia doesn't have to be specified exactly.) +#4=[0 - #4] +#7=[#6 / 2] (#7 is depth per circle = half of tool diameter) +#8=[#3 - #7] (#8 is current depth step) +g0 z#3 +(start above and right so we make a convex corner for entry to the ccw arcs) +g0 x[#1 + #6] y[#2 + [#5 / 2]] +g41 g0 x#1 y[#2 + [#5 / 2]] +o101 while [#8 GT #4] +(down toward the specified depth a bit at a time) +g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] z#8 +#8=[#8 - #7] +o101 endwhile +(down to the actual depth) +g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] z#4 +(full circle at the actual depth) +g3 x#1 y[#2 + [#5 / 2]] i0 j[0 - [#5 / 2]] +g0 z#3 +g40 +o100 endsub + + +o200 sub + (slot cutting, load tool and set feed first, then use like so:) + (o200 call [x1] [y1] [x2] [y2] [width] [depth] [safety height] [tool dia]) +#10=[#5/2] (radius) +#11=[[atan [#4-#2]/[#3-#1]] + 180] ("backward" direction) +#12=[#11 + 90] ("right" side direction) +#13=[#10 * [cos [#11]]] +#14=[#10 * [sin [#11]]] +#15=[#10 * [cos [#12]]] +#16=[#10 * [sin [#12]]] +g0 z#7 +g0 x[#1+#13+#15] y[#2+#14+#16] +g41 g0x[#1+#15] y[#2+#16] +#17=[#8/2] (depth per cut is half tool dia) +#18=[#7-#17] (z) +(down toward the specified depth a bit at a time) +o201 while [#18 GT [0-#6]] +g1 x[#3+#15] y[#4+#16] z#18 +g3 x[#3-#15] y[#4-#16] r#10 +g1 x[#1-#15] y[#2-#16] +g3 x[#1+#15] y[#2+#16] r#10 +#18=[#18-#17] +o201 endwhile +(down to the actual depth and one more cut) +g1 x[#3+#15] y[#4+#16] z[0-#6] +g3 x[#3-#15] y[#4-#16] r#10 +g1 x[#1-#15] y[#2-#16] +g3 x[#1+#15] y[#2+#16] r#10 +g1 x[#3+#15] y[#4+#16] +g0 z#7 +g40 +o200 endsub + + +g20 g64 g17 g90 + +(here is the actual usage of o100: T1 is a 1/16th end mill) +t1 m6 +s1000 m3 +f60 +o100 call [0] [0] [.01] [.125] [.125] [.0625] +o100 call [.25] [0] [.01] [.0625] [.25] [.0625] +m5 +t0 m6 + +(here is the actual usage of o200: T1 is a 1/16th end mill) +t1 m6 +s1000 m3 +f60 +o200 call [0] [.5] [1] [1] [.190] [.1] [.02] [.0625] +o200 call [1] [0] [.5] [.5] [.190] [.1] [.02] [.0625] +m5 +t0 m6 + +m2 diff --git a/nc_files/x-trim.ngc b/nc_files/x-trim.ngc new file mode 100644 index 00000000000..fddc760df63 --- /dev/null +++ b/nc_files/x-trim.ngc @@ -0,0 +1,16 @@ +; This is an example file for the plasma-5i20 configuration +; it requires the touchoff.ngc subroutine +G20 (Units: Inches) +G40 (Cancel Cutter Comp) +G90 (Absolute Mode) +G64 P0.005 (Continuous mode + path tolerance) +G92 X0 Y0 +o call [0.100] [0] [0.08] (Touchoff and start cutting) +F135 +G1 X48.125 +M5 (Torch Off) +G0 Z0.500 +X0.000 +G92.1 (Cancel offsets and set to zero) +G0 Z0 +M2 From b576a1ff367916a7ed9f75ec87ca7051d9b33f3a Mon Sep 17 00:00:00 2001 From: rod Date: Mon, 4 May 2026 22:09:54 +1000 Subject: [PATCH 16/23] housekeeping with gitignore --- .gitignore | 1 - docs/man/.gitignore | 1 - docs/man/man9/output_buffer.9 | 98 +++++++++++++++++++++++++++++++++++ src/.gitignore | 1 - 4 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 docs/man/man9/output_buffer.9 diff --git a/.gitignore b/.gitignore index c8dde82378f..94e742f2bd7 100644 --- a/.gitignore +++ b/.gitignore @@ -57,4 +57,3 @@ position.txt *.*-stamp # Ignore VSCode settings .vscode/settings.json - diff --git a/docs/man/.gitignore b/docs/man/.gitignore index 3352dea346b..dbd3b0aa127 100644 --- a/docs/man/.gitignore +++ b/docs/man/.gitignore @@ -463,7 +463,6 @@ man9/xor2.9 man9/xyzab_tdr_kins.9 man9/xyzacb_trsrn.9 man9/xyzbca_trsrn.9 -man9/output_buffer.9 # Ignore po4a-generated files for other languages ar/* bg/* diff --git a/docs/man/man9/output_buffer.9 b/docs/man/man9/output_buffer.9 new file mode 100644 index 00000000000..5c60b5cca41 --- /dev/null +++ b/docs/man/man9/output_buffer.9 @@ -0,0 +1,98 @@ +'\" t +.\" Title: output_buffer +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 05/04/2026 +.\" Manual: LinuxCNC Documentation +.\" Source: LinuxCNC +.\" Language: English +.\" +.TH "OUTPUT_BUFFER" "9" "05/04/2026" "LinuxCNC" "LinuxCNC Documentation" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +output_buffer \- Feed through multiple bits when enable pin is set +.SH "SYNOPSIS" +.sp +\fBloadrt output_buffer\fR [\fBcount\fR=\fIN\fR|\fBnames\fR=\fIname1\fR[,\fIname2\fR\&...]] [\fBpersonality\fR=\fIP1\fR[,\fIP2\fR\&...]] +.SH "DESCRIPTION" +.sp +Feed through up to 32 bit inputs to their outputs when enable set, otherwise outputs will be the value of \fIoff\-level\fR (default 0)\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf + ┌───────────┐ +output\-buffer\&.N\&.in\-0 ─────┤ ──[>]── ├───── output\-buffer\&.N\&.out\-0 + │ ┌─┘ │ +output\-buffer\&.N\&.in\-1 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-1 + │ ├─┘ │ +output\-buffer\&.N\&.in\-2 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-2 + │ ├─┘ │ + \&.\&.\&. ─────┤ : ├───── \&.\&.\&. + │ : │ +output\-buffer\&.N\&.in\-M ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-M + │ ├─┘ │ + enable ─────┤ ─┘ │ + │ │ + off\-level ─────┤ [0/1] │ + └───────────┘ +.fi +.if n \{\ +.RE +.\} +.sp +The number of channels are determined by the value of \fIpersonality\fR\&. +.SH "FUNCTIONS" +.PP +\fBoutput\-buffer\fR\&.\fIN\fR (requires a floating\-point thread) +.RS 4 +.RE +.SH "PINS" +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBenable\fR bit in +.RS 4 +Enable input +.RE +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBoff\-level\fR bit in (default: \fI0\fR) +.RS 4 +Signal level when output is off (enable=0) +.RE +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBin\-\fR\fB\fIM\fR\fR bit in (M=0\&.\&.personality) +.RS 4 +Inputs +.RE +.PP +\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBout\-\fR\fB\fIM\fR\fR bit out (M=0\&.\&.personality) +.RS 4 +Outputs (Follow inputs when enable=1) +.RE +.SH "EXAMPLES" +.sp +\fBloadrt output_buffer count=1 personality=8\fR will create a 8 bit buffer\&. +.SH "AUTHOR" +.sp +Hans Unzner +.SH "LICENSE" +.sp +GPL diff --git a/src/.gitignore b/src/.gitignore index 2b3822b440c..dc74c003d16 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -22,4 +22,3 @@ /configure~ /.html-images-stamp /.htmldoc-stamp -/nc_files From ecb57999701654a58838e0affba99ea7df62968c Mon Sep 17 00:00:00 2001 From: rod Date: Mon, 4 May 2026 22:12:32 +1000 Subject: [PATCH 17/23] delete file not part of this PR. Resolved permanently in #4002 --- docs/man/man9/output_buffer.9 | 98 ----------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 docs/man/man9/output_buffer.9 diff --git a/docs/man/man9/output_buffer.9 b/docs/man/man9/output_buffer.9 deleted file mode 100644 index 5c60b5cca41..00000000000 --- a/docs/man/man9/output_buffer.9 +++ /dev/null @@ -1,98 +0,0 @@ -'\" t -.\" Title: output_buffer -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 05/04/2026 -.\" Manual: LinuxCNC Documentation -.\" Source: LinuxCNC -.\" Language: English -.\" -.TH "OUTPUT_BUFFER" "9" "05/04/2026" "LinuxCNC" "LinuxCNC Documentation" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -output_buffer \- Feed through multiple bits when enable pin is set -.SH "SYNOPSIS" -.sp -\fBloadrt output_buffer\fR [\fBcount\fR=\fIN\fR|\fBnames\fR=\fIname1\fR[,\fIname2\fR\&...]] [\fBpersonality\fR=\fIP1\fR[,\fIP2\fR\&...]] -.SH "DESCRIPTION" -.sp -Feed through up to 32 bit inputs to their outputs when enable set, otherwise outputs will be the value of \fIoff\-level\fR (default 0)\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf - ┌───────────┐ -output\-buffer\&.N\&.in\-0 ─────┤ ──[>]── ├───── output\-buffer\&.N\&.out\-0 - │ ┌─┘ │ -output\-buffer\&.N\&.in\-1 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-1 - │ ├─┘ │ -output\-buffer\&.N\&.in\-2 ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-2 - │ ├─┘ │ - \&.\&.\&. ─────┤ : ├───── \&.\&.\&. - │ : │ -output\-buffer\&.N\&.in\-M ─────┤ ─┼[>]── ├───── output\-buffer\&.N\&.out\-M - │ ├─┘ │ - enable ─────┤ ─┘ │ - │ │ - off\-level ─────┤ [0/1] │ - └───────────┘ -.fi -.if n \{\ -.RE -.\} -.sp -The number of channels are determined by the value of \fIpersonality\fR\&. -.SH "FUNCTIONS" -.PP -\fBoutput\-buffer\fR\&.\fIN\fR (requires a floating\-point thread) -.RS 4 -.RE -.SH "PINS" -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBenable\fR bit in -.RS 4 -Enable input -.RE -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBoff\-level\fR bit in (default: \fI0\fR) -.RS 4 -Signal level when output is off (enable=0) -.RE -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBin\-\fR\fB\fIM\fR\fR bit in (M=0\&.\&.personality) -.RS 4 -Inputs -.RE -.PP -\fBoutput\-buffer\fR\&.\fIN\fR\&.\fBout\-\fR\fB\fIM\fR\fR bit out (M=0\&.\&.personality) -.RS 4 -Outputs (Follow inputs when enable=1) -.RE -.SH "EXAMPLES" -.sp -\fBloadrt output_buffer count=1 personality=8\fR will create a 8 bit buffer\&. -.SH "AUTHOR" -.sp -Hans Unzner -.SH "LICENSE" -.sp -GPL From d61aea77bdd66594df09ecc9c0ac6f008f36dbb1 Mon Sep 17 00:00:00 2001 From: rod Date: Tue, 5 May 2026 05:46:41 +1000 Subject: [PATCH 18/23] state_tag.h - Corrected error in comment that predated this commit interp_internal.hh - corrected typo in comment caused by auto formatting by editor. --- src/emc/motion/state_tag.h | 2 +- src/emc/rs274ngc/interp_internal.hh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emc/motion/state_tag.h b/src/emc/motion/state_tag.h index d271d443656..753008e26c7 100644 --- a/src/emc/motion/state_tag.h +++ b/src/emc/motion/state_tag.h @@ -68,7 +68,7 @@ typedef enum { * WARNING: * * 1) Since these are used as array indices, they have to start at 0, - * be monotonic, and the MAX_FIELDS GM_FIELD_FLOAT_MAX_FIELDS enum MUST be last in the list. + * be monotonic, and the GM_FIELD_MAX_FIELDS enum MUST be last in the list. * * 2) If your application needs to pass state tags through NML, then * you MUST update the corresponding cms->update function for state diff --git a/src/emc/rs274ngc/interp_internal.hh b/src/emc/rs274ngc/interp_internal.hh index 8f1049fa04b..9944d635d89 100644 --- a/src/emc/rs274ngc/interp_internal.hh +++ b/src/emc/rs274ngc/interp_internal.hh @@ -777,7 +777,7 @@ struct setup int defining_sub; // true if in a subroutine defn const char *sub_name; // name of sub we are defining (free this) int doing_continue; // true if doing a continue - int doing_break; // true if doing a breakiscircle + int doing_break; // true if doing a break int executed_if; // true if executed in current if const char *skipping_o; // o_name we are skipping for (or zero) const char *skipping_to_sub; // o_name of sub skipping to (or zero) From aa3f8e3b7da3b18b0cba904228525fa543f7c2bc Mon Sep 17 00:00:00 2001 From: rod Date: Tue, 5 May 2026 06:27:29 +1000 Subject: [PATCH 19/23] remove unused tag GM_FIELD_FLOAT_FEEDRATE --- src/emc/motion/state_tag.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/emc/motion/state_tag.h b/src/emc/motion/state_tag.h index 753008e26c7..63de000a336 100644 --- a/src/emc/motion/state_tag.h +++ b/src/emc/motion/state_tag.h @@ -99,7 +99,6 @@ typedef enum { GM_FIELD_FLOAT_SPEED, GM_FIELD_FLOAT_PATH_TOLERANCE, GM_FIELD_FLOAT_NAIVE_CAM_TOLERANCE, - GM_FIELD_FLOAT_FEEDRATE, GM_FIELD_FLOAT_ARC_RADIUS, GM_FIELD_FLOAT_ARC_CENTER_X, GM_FIELD_FLOAT_ARC_CENTER_Y, From 892b9a3415bf0c911f765c220046f1e723b0946e Mon Sep 17 00:00:00 2001 From: rod Date: Tue, 5 May 2026 09:10:59 +1000 Subject: [PATCH 20/23] remove typo caused by editor --- src/emc/rs274ngc/interp_internal.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emc/rs274ngc/interp_internal.hh b/src/emc/rs274ngc/interp_internal.hh index 9944d635d89..4b783368b5a 100644 --- a/src/emc/rs274ngc/interp_internal.hh +++ b/src/emc/rs274ngc/interp_internal.hh @@ -536,7 +536,7 @@ struct block_struct // true if in a remap procedure the code being remapped was // referenced, which caused execution of the builtin semantics // reason for recording the fact: this permits an epilog to do the - // right thing depending oniscircle whether the builtin was used or not. + // right thing depending on whether the builtin was used or not. bool builtin_used{}; }; From 4fc14bca895a9babfda08786fd253f1ac6698c4f Mon Sep 17 00:00:00 2001 From: rod Date: Tue, 5 May 2026 09:21:31 +1000 Subject: [PATCH 21/23] force added missing 3D_Chips.pdf file --- nc_files/3D_Chips.pdf | Bin 0 -> 69393 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 nc_files/3D_Chips.pdf diff --git a/nc_files/3D_Chips.pdf b/nc_files/3D_Chips.pdf new file mode 100644 index 0000000000000000000000000000000000000000..67bd4b5781973ba4e2949f4199bb1823faedce59 GIT binary patch literal 69393 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

    ^)ki_m;-7_wjLBVyT{v zfH0PD(}1gQl%y=SHX8GEJ^W|V&Ohb4Uy`veu!fa|mHAKB!SQF-_TL%sKQq67!WzN9 z!WsraTPve~BsOdS&foL}oFZm=eaj~OHYG7 z=N$BhO4fIrUXJ+|AFy<6>jTW&x!?SNZ(4f|#A;Q$FckJ>t!IPvwyu)~AvWv}@}Ts( zcCk&^ye$tPsyf98tdb2loRF#D8y$@K)YhQK?3X5jfe|z{b?cp_bw7iQsyN@e;M0mO11&%#5;R<12HU;oYiZy6?yIbK}PGufuzjXJxWFUk^c(XZoTsuN6F9x~s=x z9l_Pii_dvO0=&J)zo32AV+a{kr>~JZ=L-A&!R5fj?%#9z{_R}<2fXsX@v(noEI`)3 zG8QnmUHEhz>Ebf z2e*}#6MQ|Gjj*wSnF{b94B)!&AX?AYXVB$?t2y_SNMKEQ}4Ez+wq&FuVC}LBg7opT3xQh!&W zXzXa~>|ki@NCKu%FRhj_HZs?L;j%9`!3Lh6$<7JXVG?t&b+!YyO$kiQz#P}^#fG6f zlaLaa#=4jr8Y_wkGD(m)foU2aACnOHzQ9$0O}wn;*|1a(N&8q&RJ%GPE z?@I@PA@$!o1^&-o0pHQTyXD1Oq|A*RwMc&RWs={|tQVn>t@F#s{zpx~zXNk2eK6s+ zH3g3bxJK|J^rffZndIz@Z3GOR%x!J7{xHd;uAxa{<7{R1$1i5EacO-UQ)*)y1|b2O z{~T+uGyi+Ag}~Ep!5E%LR76x1jP1ebo*l@{%*F{WS->Uh%kdu`W#nvV{6BguLVxIh z0CG+bs;9!AmX71!M+-aXbKw zGFdqQ00w4uDrROXn*Zn!HwR-AcxEssg$G;u*9MMWRxlqmA^Ahb#=-pJlP?>I&A(*e zeQ-qoO$K0P0eA1q_NN|zl?~h>e~|&eQ1Q`S*I+ zI6yCB`ImZGK_CFw^Zp_O^IR|i{x2Dr?EYQ$@|60U3;=jRvoG7f@0Shym-z2(W@F>z z_t_3^Cf9tXRcl+2mz(o0P^|EumfaAZmg#$eB|0R2QBL7>@$w43d#SDj+ ziQr1+9>!odU{bWT1&7Q_n1JIz!p6jwF8`t!UP103bL?piUNQDVKAN-5M>h- nVip3ihzJNW3xEKimjH8g(sywB?XGMbY#f~M@7{^XiNgOcvp@X2 literal 0 HcmV?d00001 From 8560dacfdca9295af1c8c062e86d5f65c918b5d0 Mon Sep 17 00:00:00 2001 From: rod Date: Tue, 5 May 2026 21:11:46 +1000 Subject: [PATCH 22/23] Minor White space cleanup Remove spurious inserted text in comments Uncommented "motion.jog-is-active" pin in motion.c --- src/emc/motion/control.c | 1 + src/emc/motion/motion.c | 3 +-- src/emc/motion/state_tag.h | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/emc/motion/control.c b/src/emc/motion/control.c index bf88b09ef08..f98614601e7 100644 --- a/src/emc/motion/control.c +++ b/src/emc/motion/control.c @@ -2048,6 +2048,7 @@ static void output_to_hal(void) /* point to joint struct */ joint = &joints[joint_num]; joint_data = &(emcmot_hal_data->joint[joint_num]); + /* apply backlash and motor offset to output */ joint->motor_pos_cmd = joint->pos_cmd + joint->backlash_filt + joint->motor_offset; /* point to HAL data */ diff --git a/src/emc/motion/motion.c b/src/emc/motion/motion.c index 4bda24cef84..d41e9c4278f 100644 --- a/src/emc/motion/motion.c +++ b/src/emc/motion/motion.c @@ -563,7 +563,7 @@ static int init_hal_io(void) CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_straight_heading), mot_comp_id, "motion.interp.heading")); CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_normal_heading), mot_comp_id, "motion.interp.normal-heading")); CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &emcmot_hal_data->iscircle, mot_comp_id, "motion.interp.iscircle")); - //CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->jog_is_active), mot_comp_id, "motion.jog-is-active")); + CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->jog_is_active), mot_comp_id, "motion.jog-is-active")); /* export debug parameters */ @@ -578,7 +578,6 @@ static int init_hal_io(void) CALL_CHECK(hal_param_s32_newf(HAL_RO, &(emcmot_hal_data->debug_s32_0), mot_comp_id, "motion.debug-s32-0")); CALL_CHECK(hal_param_s32_newf(HAL_RO, &(emcmot_hal_data->debug_s32_1), mot_comp_id, "motion.debug-s32-1")); - // FIXME - debug only, remove later // export HAL parameters for some trajectory planner internal variables // so they can be scoped diff --git a/src/emc/motion/state_tag.h b/src/emc/motion/state_tag.h index 63de000a336..3d8c913fe78 100644 --- a/src/emc/motion/state_tag.h +++ b/src/emc/motion/state_tag.h @@ -124,9 +124,7 @@ struct state_tag_t { float fields_float[GM_FIELD_FLOAT_MAX_FIELDS]; // Any G / M code states that doesn't pack nicely into a single bit - // These are an array mostly because In function ‘output_to_hal’, - - //it's easier to pass an + // These are an array mostly because it's easier to pass an // arbitrary-length array through NML than individual fields int fields[GM_FIELD_MAX_FIELDS]; From 81e061d2cefd9ed8ebad43998c9ee8fd08611f1d Mon Sep 17 00:00:00 2001 From: rod Date: Tue, 5 May 2026 23:06:31 +1000 Subject: [PATCH 23/23] removed duplicate pin which broke runtests --- src/emc/motion/motion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emc/motion/motion.c b/src/emc/motion/motion.c index d41e9c4278f..f038fca4910 100644 --- a/src/emc/motion/motion.c +++ b/src/emc/motion/motion.c @@ -563,7 +563,7 @@ static int init_hal_io(void) CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_straight_heading), mot_comp_id, "motion.interp.heading")); CALL_CHECK(hal_pin_float_newf(HAL_OUT, &(emcmot_hal_data->interp_normal_heading), mot_comp_id, "motion.interp.normal-heading")); CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &emcmot_hal_data->iscircle, mot_comp_id, "motion.interp.iscircle")); - CALL_CHECK(hal_pin_bit_newf(HAL_OUT, &(emcmot_hal_data->jog_is_active), mot_comp_id, "motion.jog-is-active")); + /* export debug parameters */

    ?(6{wf#cJHa`MZoiJ92jyO(?Y zZyyAG?4JKZpb)Rg367&S{@m3cU-9DWhVuV7O3Hu-`suj#UkLbnN~^(9K6IkXy`N+U zeF{$Gprw)B01jVj{nIDg8I+qI>z-s4hd3@!m&zGL_ImdTQgbH6A(fnm>ryD4%bGpTByKeDc2nmjAVd z@=xynmzzU%HFwTzxY}UXw=0BLjIT{Qpa3y3Pa$bu3^lb9N?H?BuN#~bi+i3$Cud;2 zh{B2e^EA6BYs8KD+YLmnnRFTE#3EzYqC638pGeKV))HnAy5A*e<7BJ`2>n9f*`2U( z(y4pNsoEU+fOmERoy;W$?^}l!TS{R1l$IKr^^3j>A1+lkt<7rw)Im!1>GLQT(APpU zj57?Cr=Vqb1k=&$Xt))%9FKTL{*4K1brV;qudJ{Rhqf15MMf6%gDF;&D`y`Q=8j4i z1WE}G2oudEHsF1#_8vASsy8qX#X!IY;H(@-exoC%D=TI#d~M_3N1{#yD582aKUY=I zQgc8tD##8kr;;-8Bpb*x9wuSd)Yp|^+w9y5j>r)dT`1GGDWarU&nO@*FQ4itkRAGA zfx#vRc*#wdlbNb?wJvgRII9RQ3{kxF>`_BtH>gE4NCK2$eVb?;zwD-=c(Zz$(4s$s zUTsLEvwaOqT0OnwnDb`e4>tZZ8MFZpO}psNC8;CxQv$|y)La&(^9%KKec_l84C zzv~nWwGbwC5n9dd^}uU;oN>y!V=7auWW1S91t6Q!yps4fApHLTa*159X;z zF!}C-7p0Zzkr^CJW-xNs8YhUKvgC|^kT`K!Yw6RO+^k8>3`vUk&W)WvLVNGYGZLRV zyW}YM!O$R)zc;m891Rwrh}efhNIXxmIQ6~!4v8!|NRd9Wk;r(zxuUnnCgPk^XT0>@=_%#hZPWnmN4|2Wp5q23P&Nq7HX@ zF;w>ZTj@Ra(ihw|JzYxQRPQnagUZ3u)REIMY)%a?^E z^|gtt39_c3Tro3w6T2CP=M3?Zp{%UDk6UMAsyqfiSe|g#(TA-LmO5>c*P=Xvk&#-- zuBJmW;#vHi@Nv_rOXh8#FLj32JgJ3^LmLHx?sAC`?Pu)KTBoH_OxkXD|M?5g_YxQP z1mPovWl?HGdNpMAn;Vjz>{3$fw$?6siIQk?%GZ5FukeKJw{_g)-1O}2yMiMqj!`s9 z#kbzINxoghIZX}$**JDgu2)S4e?DQAV=sK5{SnNP;cR*`cC%64X8J9XI`^paxK%)9 zvp3H*;#@X>U9MCP&EV^5=)63kyKRl8okbZExGaOoo0Ew+Z%i?qb~uEa|60wPs@l}NMy%FMNCp-V8{@|*=2*mjyYupz4T1X42totJ0|iUt>z`l>(>_KmbZLLR=S90 zU`~2L?_yHdt`s9l*~1d;Ogm8t_j)t&QKXfBr6QHMPHD=Ay`WhNiChTQ?)VE~`REry z<^YrXFNB;Nt&IJpu8XM7u2E5czn{C69hE0Cr@DJePmUvNt?aNq1LYO@HM1|yf2M&S zx(rzjAq}AZ{h+R8P+-wdZ~PQ=vf)xgalB zEcuAN70Tpa2v@%zZB7|O`Ucs*=wtv5I%pairkh2Y|LkzWY=Etm=&Ig>

    *o4SkEL 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 literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc new file mode 100644 index 00000000000..f95e5f0ba7b --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc @@ -0,0 +1,110 @@ + + +(Curva acquisita Nr=1) + +#10=290 + +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 + +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +X0.000 Y100.000 +Z1 +G1 Z0 F#10 + +; G6.2 parameter +; R1 +; K0 +; P4 nurbs order=4 + +G17 (Plane XY) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 X0.000 Y100.000 R1 K0 P4 Q2 + X10.000 Y100.000 R1 K0 + X10.000 Y70.665 R1 K0 + X27.928 Y59.258 R1 K0 + X34.093 Y56.935 R1 K1 + X41.136 Y54.281 R1 K2 + X63.112 Y51.556 R1 K3 + X79.999 Y60.000 R1 K4 + X99.998 Y40.002 R1 K5 + X100.000 Y0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 X100.000 Y0.012 Z1 +G0 X100.000 Y0.012 Z10 + + + +G0 X50 +Y0Z0 +;G96 M3 S200 +G0 X50 (movimento per avvicinarsi alla posizione di taglio) +Y0.000 Z100.000 +X1 +G1 X0 F#10 + +G19 (Plane YZ) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 Y0.000 Z100.000 R1 K0 P4 Q2 + Y10.000 Z100.000 R1 K0 + Y10.000 Z70.665 R1 K0 + Y27.928 Z59.258 R1 K0 + Y34.093 Z56.935 R1 K1 + Y41.136 Z54.281 R1 K2 + Y63.112 Z51.556 R1 K3 + Y79.999 Z60.000 R1 K4 + Y99.998 Z40.002 R1 K5 + Y100.000 Z0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Y100.000 Z0.012 X1 +G0 Y100.000 Z0.012 X10 + + + +G0 Y50 +Z0X0 +;G96 M3 S200 +G0 Y50 (movimento per avvicinarsi alla posizione di taglio) +Z0.000 X100.000 +Y1 +G1 Y0 F#10 + +G18 (Plane ZX) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 Z0.000 X100.000 R1 K0 P4 Q2 + Z10.000 X100.000 R1 K0 + Z10.000 X70.665 R1 K0 + Z27.928 X59.258 R1 K0 + Z34.093 X56.935 R1 K1 + Z41.136 X54.281 R1 K2 + Z63.112 X51.556 R1 K3 + Z79.999 X60.000 R1 K4 + Z99.998 X40.002 R1 K5 + Z100.000 X0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Z100.000 X0.012 Y1 +G0 Z100.000 X0.012 Y10 + + +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc new file mode 100644 index 00000000000..5303d193ea4 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc @@ -0,0 +1,33 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X0.000 Y100.000 + Z1 + G1 Z-1 F100 + +F290 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 X0.000 Y100.000 R1 K0 P4 Q2 + X10.000 Y100.000 R1 K0 + X10.000 Y70.665 R1 K0 + X27.928 Y59.258 R1 K0 + X34.093 Y56.935 R1 K1 + X41.136 Y54.281 R1 K2 + X63.112 Y51.556 R1 K3 + X79.999 Y60.000 R1 K4 + X99.998 Y40.002 R1 K5 + X100.000 Y0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G1 X100.000 Y0.012 Z1 +G0 X100.000 Y0.012 Z50 +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc new file mode 100644 index 00000000000..ff789116b0a --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc @@ -0,0 +1,110 @@ + + +(Curva acquisita Nr=1) + +#10=290 + +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 + +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +X0.000 Y100.000 +Z1 +G1 Z0 F#10 + +; G6.2 parameter +; R1 +; K0 +; P4 nurbs order=4 + +G17 (Plane XY) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 X0.000 Y100.000 R1 K0 P4 Q3 + X10.000 Y100.000 R1 K0 + X10.000 Y70.665 R1 K0 + X27.928 Y59.258 R1 K0 + X34.093 Y56.935 R1 K1 + X41.136 Y54.281 R1 K2 + X63.112 Y51.556 R1 K3 + X79.999 Y60.000 R1 K4 + X99.998 Y40.002 R1 K5 + X100.000 Y0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 X100.000 Y0.012 Z1 +G0 X100.000 Y0.012 Z10 + + + +G0 X50 +Y0Z0 +;G96 M3 S200 +G0 X50 (movimento per avvicinarsi alla posizione di taglio) +Y0.000 Z100.000 +X1 +G1 X0 F#10 + +G19 (Plane YZ) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 Y0.000 Z100.000 R1 K0 P4 Q3 + Y10.000 Z100.000 R1 K0 + Y10.000 Z70.665 R1 K0 + Y27.928 Z59.258 R1 K0 + Y34.093 Z56.935 R1 K1 + Y41.136 Z54.281 R1 K2 + Y63.112 Z51.556 R1 K3 + Y79.999 Z60.000 R1 K4 + Y99.998 Z40.002 R1 K5 + Y100.000 Z0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Y100.000 Z0.012 X1 +G0 Y100.000 Z0.012 X10 + + + +G0 Y50 +Z0X0 +;G96 M3 S200 +G0 Y50 (movimento per avvicinarsi alla posizione di taglio) +Z0.000 X100.000 +Y1 +G1 Y0 F#10 + +G18 (Plane ZX) +F#10 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 Z0.000 X100.000 R1 K0 P4 Q3 + Z10.000 X100.000 R1 K0 + Z10.000 X70.665 R1 K0 + Z27.928 X59.258 R1 K0 + Z34.093 X56.935 R1 K1 + Z41.136 X54.281 R1 K2 + Z63.112 X51.556 R1 K3 + Z79.999 X60.000 R1 K4 + Z99.998 X40.002 R1 K5 + Z100.000 X0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 + +G1 Z100.000 X0.012 Y1 +G0 Z100.000 X0.012 Y10 + + +M5 +M2 + diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc new file mode 100644 index 00000000000..4323a91656c --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc @@ -0,0 +1,32 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X0.000 Y100.000 + Z1 + G1 Z-1 F100 + +F100 + +; Q this selects the used method 1=NICU, 2=NICC, 3=NICL +G6.2 X0.000 Y100.000 R1 K0 P4 Q3 + X10.000 Y100.000 R1 K0 + X10.000 Y70.665 R1 K0 + X27.928 Y59.258 R1 K0 + X34.093 Y56.935 R1 K1 + X41.136 Y54.281 R1 K2 + X63.112 Y51.556 R1 K3 + X79.999 Y60.000 R1 K4 + X99.998 Y40.002 R1 K5 + X100.000 Y0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G1 X100.000 Y0.012 Z1 +G0 X100.000 Y0.012 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg b/nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6972beb76a6c372fa0cf889f578590dd77605e08 GIT binary patch literal 150025 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%0DZwXRHTc4k4zyoKLvQ@VB5N)|~DqnSyweXyD`i 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 x`;vJ9-)qi% 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 literal 0 HcmV?d00001 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc b/nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc new file mode 100644 index 00000000000..ffef4024041 --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc @@ -0,0 +1,689 @@ +G21 G40 G54 G90 G94 +G0 Z10 +X0Y0 +;M6 T0 +;G96 M3 S200 +G0 Z10 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X-78.2522 Y65.3784 + Z2 + Z1 + G1 Z-1 F500 + +F290 +G6.2 X-78.2522 Y65.3784 R1 K0 P6 Q1 + X-78.2522 Y65.3768 R1 K0 + X-78.2524 Y65.3684 R1 K0 + X-78.2527 Y65.3539 R1 K0 + X-78.2533 Y65.3340 R1 K0 + X-78.2547 Y65.3103 R1 K0 + X-78.2555 Y65.2837 R1 K1 + X-78.2558 Y65.2600 R1 K2 + X-78.2558 Y65.2384 R1 K3 + X-78.2554 Y65.2185 R1 K4 + X-78.2553 Y65.1975 R1 K5 + X-78.2500 Y65.1772 R1 K6 + X-78.2410 Y65.1587 R1 K7 + X-78.2279 Y65.1419 R1 K8 + X-78.2092 Y65.1264 R1 K9 + X-78.1851 Y65.1148 R1 K10 + X-78.1553 Y65.1095 R1 K11 + X-78.1214 Y65.1147 R1 K12 + X-78.0880 Y65.1321 R1 K13 + X-78.0689 Y65.1622 R1 K14 + X-78.0499 Y65.1882 R1 K15 + X-78.0327 Y65.2113 R1 K16 + X-78.0157 Y65.2336 R1 K17 + X-77.9982 Y65.2563 R1 K18 + X-77.9808 Y65.2789 R1 K19 + X-77.9620 Y65.3036 R1 K20 + X-77.9451 Y65.3262 R1 K21 + X-77.9319 Y65.3435 R1 K22 + X-77.9231 Y65.3551 R1 K23 + X-77.9180 Y65.3617 R1 K24 + X-77.9172 Y65.3628 R1 K25 + X-77.9105 Y65.3716 R1 K26 + X-77.8922 Y65.3956 R1 K27 + X-77.8599 Y65.4370 R1 K28 + X-77.8135 Y65.4921 R1 K29 + X-77.7505 Y65.5653 R1 K30 + X-77.6765 Y65.6428 R1 K31 + X-77.5975 Y65.7156 R1 K32 + X-77.5305 Y65.7928 R1 K33 + X-77.4509 Y65.8579 R1 K34 + X-77.3809 Y65.9232 R1 K35 + X-77.3053 Y65.9781 R1 K36 + X-77.2366 Y66.0465 R1 K37 + X-77.1418 Y66.0928 R1 K38 + X-77.0677 Y66.1679 R1 K39 + X-76.9669 Y66.2259 R1 K40 + X-76.8613 Y66.2868 R1 K41 + X-76.7545 Y66.3547 R1 K42 + X-76.6378 Y66.4111 R1 K43 + X-76.5134 Y66.4712 R1 K44 + X-76.3915 Y66.5277 R1 K45 + X-76.2636 Y66.5714 R1 K46 + X-76.1370 Y66.6204 R1 K47 + X-76.0100 Y66.6590 R1 K48 + X-75.8901 Y66.6920 R1 K49 + X-75.7663 Y66.7235 R1 K50 + X-75.6461 Y66.7490 R1 K51 + X-75.5244 Y66.7698 R1 K52 + X-75.3943 Y66.7850 R1 K53 + X-75.2502 Y66.8071 R1 K54 + X-75.1015 Y66.8159 R1 K55 + X-74.9403 Y66.8231 R1 K56 + X-74.7724 Y66.8221 R1 K57 + X-74.5962 Y66.8180 R1 K58 + X-74.4219 Y66.7995 R1 K59 + X-74.2364 Y66.7754 R1 K60 + X-74.0421 Y66.7380 R1 K61 + X-73.8331 Y66.6934 R1 K62 + X-73.6238 Y66.6206 R1 K63 + X-73.3921 Y66.5531 R1 K64 + X-73.1802 Y66.4193 R1 K65 + X-72.9391 Y66.3337 R1 K66 + X-72.7316 Y66.1842 R1 K67 + X-72.5313 Y66.0484 R1 K68 + X-72.3624 Y65.9069 R1 K69 + X-72.2125 Y65.7687 R1 K70 + X-72.0919 Y65.6448 R1 K71 + X-71.9927 Y65.5312 R1 K72 + X-71.9053 Y65.4252 R1 K73 + X-71.8174 Y65.3112 R1 K74 + X-71.7313 Y65.1914 R1 K75 + X-71.6420 Y65.0564 R1 K76 + X-71.5594 Y64.9089 R1 K77 + X-71.4713 Y64.7526 R1 K78 + X-71.4162 Y64.5969 R1 K79 + X-71.3310 Y64.4558 R1 K80 + X-71.2812 Y64.2920 R1 K81 + X-71.2270 Y64.1234 R1 K82 + X-71.1481 Y63.9431 R1 K83 + X-71.1371 Y63.7110 R1 K84 + X-71.0731 Y63.4737 R1 K85 + X-71.0331 Y63.2269 R1 K86 + X-71.0180 Y62.9718 R1 K87 + X-70.9917 Y62.7219 R1 K88 + X-71.0057 Y62.4934 R1 K89 + X-71.0161 Y62.2882 R1 K90 + X-71.0274 Y62.0872 R1 K91 + X-71.0415 Y61.8944 R1 K92 + X-71.0611 Y61.7031 R1 K93 + X-71.0917 Y61.5091 R1 K94 + X-71.1248 Y61.3101 R1 K95 + X-71.1621 Y61.1206 R1 K96 + X-71.2073 Y60.9277 R1 K97 + X-71.2608 Y60.7385 R1 K98 + X-71.3266 Y60.5490 R1 K99 + X-71.4074 Y60.3586 R1 K100 + X-71.4980 Y60.1583 R1 K101 + X-71.5810 Y59.9646 R1 K102 + X-71.6652 Y59.7748 R1 K103 + X-71.7535 Y59.5933 R1 K104 + X-71.8595 Y59.4137 R1 K105 + X-71.9661 Y59.2438 R1 K106 + X-72.0860 Y59.0659 R1 K107 + X-72.2197 Y58.8813 R1 K108 + X-72.3729 Y58.6860 R1 K109 + X-72.5341 Y58.4968 R1 K110 + X-72.7116 Y58.3057 R1 K111 + X-72.8915 Y58.1289 R1 K112 + X-73.0583 Y57.9778 R1 K113 + X-73.2033 Y57.8529 R1 K114 + X-73.3424 Y57.7330 R1 K115 + X-73.4863 Y57.6276 R1 K116 + X-73.6383 Y57.5199 R1 K117 + X-73.7997 Y57.3894 R1 K118 + X-74.0072 Y57.2755 R1 K119 + X-74.2008 Y57.1497 R1 K120 + X-74.4261 Y57.0388 R1 K121 + X-74.6584 Y56.9130 R1 K122 + X-74.9333 Y56.7966 R1 K123 + X-75.2157 Y56.6800 R1 K124 + X-75.5406 Y56.5839 R1 K125 + X-75.8324 Y56.4770 R1 K126 + X-76.1312 Y56.4124 R1 K127 + X-76.4017 Y56.3569 R1 K128 + X-76.6648 Y56.3130 R1 K129 + X-76.9117 Y56.2748 R1 K130 + X-77.1687 Y56.2617 R1 K131 + X-77.3958 Y56.2370 R1 K132 + X-77.6023 Y56.2341 R1 K133 + X-77.8026 Y56.2396 R1 K134 + X-78.0072 Y56.2310 R1 K135 + X-78.2239 Y56.2485 R1 K136 + X-78.4659 Y56.2586 R1 K137 + X-78.7395 Y56.2975 R1 K138 + X-79.0050 Y56.3364 R1 K139 + X-79.2654 Y56.3828 R1 K140 + X-79.5163 Y56.4352 R1 K141 + X-79.7738 Y56.4981 R1 K142 + X-80.0184 Y56.5682 R1 K143 + X-80.2693 Y56.6513 R1 K144 + X-80.5144 Y56.7414 R1 K145 + X-80.7694 Y56.8439 R1 K146 + X-81.0187 Y56.9504 R1 K147 + X-81.2760 Y57.0686 R1 K148 + X-81.5354 Y57.2012 R1 K149 + X-81.8037 Y57.3533 R1 K150 + X-82.0522 Y57.5087 R1 K151 + X-82.2933 Y57.6662 R1 K152 + X-82.5241 Y57.8358 R1 K153 + X-82.7571 Y58.0157 R1 K154 + X-82.9837 Y58.1995 R1 K155 + X-83.2200 Y58.4047 R1 K156 + X-83.4606 Y58.6323 R1 K157 + X-83.7076 Y58.8855 R1 K158 + X-83.9527 Y59.1588 R1 K159 + X-84.1989 Y59.4566 R1 K160 + X-84.4320 Y59.7694 R1 K161 + X-84.6570 Y60.0869 R1 K162 + X-84.8505 Y60.4166 R1 K163 + X-85.0537 Y60.7466 R1 K164 + X-85.2010 Y61.0872 R1 K165 + X-85.3834 Y61.4062 R1 K166 + X-85.4982 Y61.7374 R1 K167 + X-85.6059 Y62.0171 R1 K168 + X-85.6840 Y62.2439 R1 K169 + X-85.7474 Y62.4431 R1 K170 + X-85.8046 Y62.6347 R1 K171 + X-85.8613 Y62.8385 R1 K172 + X-85.9241 Y63.0851 R1 K173 + X-85.9913 Y63.3817 R1 K174 + X-86.0599 Y63.7211 R1 K175 + X-86.1062 Y64.0536 R1 K176 + X-86.1375 Y64.3765 R1 K177 + X-86.1382 Y64.6744 R1 K178 + X-86.1302 Y64.9692 R1 K179 + X-86.1363 Y65.2551 R1 K180 + X-86.1381 Y65.5733 R1 K181 + X-86.1192 Y65.9139 R1 K182 + X-86.0803 Y66.3047 R1 K183 + X-86.0351 Y66.7085 R1 K184 + X-85.9631 Y67.1479 R1 K185 + X-85.8689 Y67.6065 R1 K186 + X-85.7405 Y68.1018 R1 K187 + X-85.5812 Y68.6134 R1 K188 + X-85.3848 Y69.1398 R1 K189 + X-85.1674 Y69.6384 R1 K190 + X-84.9330 Y70.1083 R1 K191 + X-84.6909 Y70.5403 R1 K192 + X-84.4558 Y70.9205 R1 K193 + X-84.2166 Y71.2749 R1 K194 + X-83.9535 Y71.6348 R1 K195 + X-83.6725 Y71.9851 R1 K196 + X-83.3617 Y72.3508 R1 K197 + X-83.0016 Y72.7057 R1 K198 + X-82.6573 Y73.0905 R1 K199 + X-82.2526 Y73.3462 R1 K200 + X-81.9726 Y73.7838 R1 K201 + X-81.4759 Y73.8562 R1 K202 + X-81.2363 Y74.2501 R1 K203 + X-80.7867 Y74.3737 R1 K204 + X-80.4384 Y74.6786 R1 K205 + X-80.0092 Y74.8514 R1 K206 + X-79.6151 Y75.0592 R1 K207 + X-79.1830 Y75.2366 R1 K208 + X-78.7584 Y75.4001 R1 K209 + X-78.3396 Y75.5412 R1 K210 + X-77.8863 Y75.6769 R1 K211 + X-77.3776 Y75.8046 R1 K212 + X-76.8697 Y75.9095 R1 K213 + X-76.3351 Y75.9951 R1 K214 + X-75.7832 Y76.0576 R1 K215 + X-75.2489 Y76.0938 R1 K216 + X-74.7533 Y76.1066 R1 K217 + X-74.2523 Y76.0994 R1 K218 + X-73.7785 Y76.0739 R1 K219 + X-73.3110 Y76.0315 R1 K220 + X-72.8259 Y75.9691 R1 K221 + X-72.2972 Y75.8794 R1 K222 + X-71.7704 Y75.7667 R1 K223 + X-71.2123 Y75.6210 R1 K224 + X-70.6569 Y75.4481 R1 K225 + X-70.0922 Y75.2438 R1 K226 + X-69.5497 Y75.0193 R1 K227 + X-68.9913 Y74.7573 R1 K228 + X-68.4586 Y74.4761 R1 K229 + X-67.9121 Y74.1538 R1 K230 + X-67.4020 Y73.8195 R1 K231 + X-66.8922 Y73.4506 R1 K232 + X-66.3981 Y73.0572 R1 K233 + X-65.8912 Y72.6119 R1 K234 + X-65.3922 Y72.1274 R1 K235 + X-64.8978 Y71.5930 R1 K236 + X-64.4482 Y71.0510 R1 K237 + X-64.0543 Y70.5236 R1 K238 + X-63.7143 Y70.0219 R1 K239 + X-63.4446 Y69.5874 R1 K240 + X-63.2232 Y69.2030 R1 K241 + X-63.0326 Y68.8485 R1 K242 + X-62.8441 Y68.4733 R1 K243 + X-62.6628 Y68.0854 R1 K244 + X-62.4782 Y67.6550 R1 K245 + X-62.2989 Y67.1935 R1 K246 + X-62.1279 Y66.7001 R1 K247 + X-61.9727 Y66.1939 R1 K248 + X-61.8295 Y65.6578 R1 K249 + X-61.6960 Y65.0661 R1 K250 + X-61.5729 Y64.3841 R1 K251 + X-61.4698 Y63.5800 R1 K252 + X-61.4108 Y62.7224 R1 K253 + X-61.4043 Y61.8278 R1 K254 + X-61.4529 Y60.9430 R1 K255 + X-61.5456 Y60.1267 R1 K256 + X-61.6643 Y59.4063 R1 K257 + X-61.8120 Y58.7123 R1 K258 + X-61.9820 Y58.0585 R1 K259 + X-62.1778 Y57.4196 R1 K260 + X-62.4134 Y56.7577 R1 K261 + X-62.6889 Y56.0851 R1 K262 + X-62.9996 Y55.4172 R1 K263 + X-63.3692 Y54.7143 R1 K264 + X-63.8108 Y53.9710 R1 K265 + X-64.3243 Y53.2082 R1 K266 + X-64.9328 Y52.4130 R1 K267 + X-65.6225 Y51.6256 R1 K268 + X-66.3474 Y50.9019 R1 K269 + X-67.0612 Y50.2737 R1 K270 + X-67.7302 Y49.7493 R1 K271 + X-68.3043 Y49.3417 R1 K272 + X-68.8172 Y49.0062 R1 K273 + X-69.3105 Y48.7070 R1 K274 + X-69.8348 Y48.4123 R1 K275 + X-70.4875 Y48.0767 R1 K276 + X-71.3268 Y47.6957 R1 K277 + X-72.3237 Y47.3143 R1 K278 + X-73.4861 Y46.9598 R1 K279 + X-74.7666 Y46.6760 R1 K280 + X-76.0067 Y46.5013 R1 K281 + X-77.1377 Y46.4235 R1 K282 + X-78.1544 Y46.4180 R1 K283 + X-79.0336 Y46.4600 R1 K284 + X-79.7970 Y46.5307 R1 K285 + X-80.5114 Y46.6269 R1 K286 + X-81.2380 Y46.7547 R1 K287 + X-82.0068 Y46.9238 R1 K288 + X-82.7697 Y47.1283 R1 K289 + X-83.5373 Y47.3720 R1 K290 + X-84.3112 Y47.6579 R1 K291 + X-85.0498 Y47.9699 R1 K292 + X-85.7351 Y48.2942 R1 K293 + X-86.4220 Y48.6557 R1 K294 + X-87.0802 Y49.0386 R1 K295 + X-87.7349 Y49.4568 R1 K296 + X-88.4029 Y49.9251 R1 K297 + X-89.0659 Y50.4364 R1 K298 + X-89.7019 Y50.9752 R1 K299 + X-90.3372 Y51.5662 R1 K300 + X-90.9228 Y52.1644 R1 K301 + X-91.4587 Y52.7620 R1 K302 + X-91.9715 Y53.3850 R1 K303 + X-92.4872 Y54.0697 R1 K304 + X-92.9914 Y54.8058 R1 K305 + X-93.5210 Y55.6676 R1 K306 + X-94.0384 Y56.6272 R1 K307 + X-94.5223 Y57.6703 R1 K308 + X-94.9369 Y58.7292 R1 K309 + X-95.2895 Y59.8173 R1 K310 + X-95.5636 Y60.8628 R1 K311 + X-95.7787 Y61.9128 R1 K312 + X-95.9450 Y63.0271 R1 K313 + X-96.0570 Y64.2804 R1 K314 + X-96.0887 Y65.6434 R1 K315 + X-96.0117 Y67.1896 R1 K316 + X-95.7849 Y68.8848 R1 K317 + X-95.3938 Y70.6228 R1 K318 + X-94.8491 Y72.3197 R1 K319 + X-94.1332 Y74.0121 R1 K320 + X-93.2814 Y75.6158 R1 K321 + X-92.2786 Y77.1630 R1 K322 + X-91.1344 Y78.6253 R1 K323 + X-89.7926 Y80.0514 R1 K324 + X-88.3438 Y81.3279 R1 K325 + X-86.8063 Y82.4500 R1 K326 + X-85.2073 Y83.4151 R1 K327 + X-83.5453 Y84.2315 R1 K328 + X-81.8476 Y84.8988 R1 K329 + X-80.0202 Y85.4440 R1 K330 + X-78.0905 Y85.8388 R1 K331 + X-76.1270 Y86.0515 R1 K332 + X-74.1042 Y86.1038 R1 K333 + X-72.1134 Y85.9410 R1 K334 + X-70.3215 Y85.6875 R1 K335 + X-68.5712 Y85.2079 R1 K336 + X-67.1312 Y84.8600 R1 K337 + X-65.6308 Y84.1229 R1 K338 + X-64.6063 Y83.7875 R1 K339 + X-63.3163 Y82.8235 R1 K340 + X-62.1214 Y84.6009 R1 K341 + X-63.4110 Y85.4617 R1 K342 + X-64.3155 Y85.9210 R1 K343 + X-65.5866 Y86.6071 R1 K344 + X-66.8279 Y87.1139 R1 K345 + X-68.2878 Y87.6844 R1 K346 + X-69.7642 Y88.1080 R1 K347 + X-71.2842 Y88.4664 R1 K348 + X-72.7041 Y88.7042 R1 K349 + X-74.0052 Y88.8509 R1 K350 + X-75.2479 Y88.9291 R1 K351 + X-76.4245 Y88.9482 R1 K352 + X-77.5679 Y88.9149 R1 K353 + X-78.7239 Y88.8281 R1 K354 + X-79.9353 Y88.6800 R1 K355 + X-81.0976 Y88.4781 R1 K356 + X-82.3310 Y88.2104 R1 K357 + X-83.7403 Y87.7919 R1 K358 + X-85.4340 Y88.1674 R1 K359 + X-87.0285 Y88.8003 R1 K360 + X-88.3868 Y90.6629 R1 K361 + X-89.2295 Y92.5789 R1 K362 + X-91.0310 Y93.6550 R1 K363 + X-92.8707 Y94.0388 R1 K364 + X-94.8789 Y93.6716 R1 K365 + X-96.5076 Y92.6811 R1 K366 + X-97.8348 Y90.9330 R1 K367 + X-98.2942 Y88.7018 R1 K368 + X-97.4905 Y86.2191 R1 K369 + X-95.9369 Y84.8179 R1 K370 + X-95.2116 Y82.8188 R1 K371 + X-95.2978 Y81.1676 R1 K372 + X-95.7188 Y79.7571 R1 K373 + X-96.5500 Y78.6785 R1 K374 + X-97.2814 Y77.6412 R1 K375 + X-98.0087 Y76.4724 R1 K376 + X-98.7470 Y75.1297 R1 K377 + X-99.4507 Y73.6257 R1 K378 + X-100.0936 Y71.9710 R1 K379 + X-100.6588 Y70.1153 R1 K380 + X-101.0929 Y68.1469 R1 K381 + X-101.3532 Y66.2083 R1 K382 + X-101.4660 Y64.3533 R1 K383 + X-101.4283 Y62.6243 R1 K384 + X-101.3214 Y61.1022 R1 K385 + X-101.1263 Y59.7460 R1 K386 + X-100.9032 Y58.4500 R1 K387 + X-100.4515 Y57.0141 R1 K388 + X-100.3644 Y55.2248 R1 K389 + X-101.1660 Y53.1940 R1 K390 + X-102.9048 Y51.5175 R1 K391 + X-105.7506 Y50.5183 R1 K392 + X-106.7664 Y47.5360 R1 K393 + X-106.2261 Y44.8663 R1 K394 + X-104.7541 Y42.9853 R1 K395 + X-102.8335 Y42.0743 R1 K396 + X-101.4039 Y41.9198 R1 K397 + X-100.3354 Y42.0643 R1 K398 + X-99.7082 Y42.2839 R1 K399 + X-99.3802 Y42.4191 R1 K400 + X-99.2852 Y42.4595 R1 K401 + X-99.2732 Y42.4675 R1 K402 + X-99.1700 Y42.5363 R1 K403 + X-98.9641 Y42.6735 R1 K404 + X-98.6558 Y42.8790 R1 K405 + X-98.2469 Y43.1526 R1 K406 + X-97.7302 Y43.4817 R1 K407 + X-97.2463 Y43.8402 R1 K408 + X-96.7655 Y44.1219 R1 K409 + X-96.2937 Y44.3329 R1 K410 + X-95.8240 Y44.4898 R1 K411 + X-95.3767 Y44.5957 R1 K412 + X-94.9180 Y44.6612 R1 K413 + X-94.4404 Y44.6832 R1 K414 + X-93.9580 Y44.6579 R1 K415 + X-93.4953 Y44.5890 R1 K416 + X-93.0425 Y44.4782 R1 K417 + X-92.6045 Y44.3280 R1 K418 + X-92.1447 Y44.1202 R1 K419 + X-91.6369 Y43.8289 R1 K420 + X-91.1136 Y43.3969 R1 K421 + X-90.4924 Y42.9832 R1 K422 + X-89.8165 Y42.5176 R1 K423 + X-89.0758 Y42.0672 R1 K424 + X-88.3020 Y41.6255 R1 K425 + X-87.4675 Y41.1904 R1 K426 + X-86.5581 Y40.7578 R1 K427 + X-85.5646 Y40.3366 R1 K428 + X-84.5663 Y39.9636 R1 K429 + X-83.5390 Y39.6304 R1 K430 + X-82.5260 Y39.3483 R1 K431 + X-81.5447 Y39.1174 R1 K432 + X-80.5284 Y38.9189 R1 K433 + X-79.4092 Y38.7496 R1 K434 + X-78.1562 Y38.6188 R1 K435 + X-76.7890 Y38.5483 R1 K436 + X-75.2438 Y38.5585 R1 K437 + X-73.6695 Y38.6706 R1 K438 + X-72.0547 Y38.8843 R1 K439 + X-70.6053 Y39.1859 R1 K440 + X-69.3013 Y39.5564 R1 K441 + X-68.1927 Y39.5504 R1 K442 + X-67.3549 Y39.3577 R1 K443 + X-66.7470 Y39.1380 R1 K444 + X-66.2819 Y38.9051 R1 K445 + X-65.9139 Y38.6788 R1 K446 + X-65.5680 Y38.4248 R1 K447 + X-65.1857 Y38.0892 R1 K448 + X-64.7999 Y37.6739 R1 K449 + X-64.4294 Y37.1491 R1 K450 + X-64.0430 Y36.5561 R1 K451 + X-63.7115 Y35.8761 R1 K452 + X-63.3161 Y35.3649 R1 K453 + X-62.9165 Y34.9587 R1 K454 + X-62.5343 Y34.6443 R1 K455 + X-62.1806 Y34.4013 R1 K456 + X-61.8628 Y34.2159 R1 K457 + X-61.5197 Y34.0492 R1 K458 + X-61.1582 Y33.9069 R1 K459 + X-60.7769 Y33.7900 R1 K460 + X-60.3920 Y33.7047 R1 K461 + X-60.0044 Y33.6509 R1 K462 + X-59.6084 Y33.6273 R1 K463 + X-59.2076 Y33.6352 R1 K464 + X-58.7966 Y33.6755 R1 K465 + X-58.3528 Y33.7572 R1 K466 + X-57.8678 Y33.8950 R1 K467 + X-57.3599 Y34.0990 R1 K468 + X-56.8450 Y34.3790 R1 K469 + X-56.3729 Y34.7150 R1 K470 + X-55.9601 Y35.0880 R1 K471 + X-55.6168 Y35.4728 R1 K472 + X-55.3360 Y35.8572 R1 K473 + X-55.1075 Y36.2366 R1 K474 + X-54.9103 Y36.6389 R1 K475 + X-54.7306 Y37.1081 R1 K476 + X-54.5834 Y37.6567 R1 K477 + X-54.4837 Y38.3544 R1 K478 + X-54.4963 Y39.1927 R1 K479 + X-54.6737 Y40.1651 R1 K480 + X-55.1393 Y41.1231 R1 K481 + X-55.7918 Y42.0034 R1 K482 + X-56.4072 Y42.8062 R1 K483 + X-56.8313 Y43.6292 R1 K484 + X-57.0501 Y44.3600 R1 K485 + X-57.1542 Y44.9776 R1 K486 + X-57.1786 Y45.4609 R1 K487 + X-57.1699 Y45.8057 R1 K488 + X-57.1486 Y46.0295 R1 K489 + X-57.1321 Y46.1671 R1 K490 + X-57.1253 Y46.2209 R1 K491 + X-57.1200 Y46.2577 R1 K492 + X-57.1058 Y46.3541 R1 K493 + X-57.0820 Y46.4985 R1 K494 + X-57.0426 Y46.6836 R1 K495 + X-56.9847 Y46.9099 R1 K496 + X-56.9115 Y47.1440 R1 K497 + X-56.8360 Y47.3519 R1 K498 + X-56.7525 Y47.5546 R1 K499 + X-56.6572 Y47.7593 R1 K500 + X-56.5398 Y47.9848 R1 K501 + X-56.4012 Y48.2193 R1 K502 + X-56.2348 Y48.4708 R1 K503 + X-56.0380 Y48.7155 R1 K504 + X-55.8488 Y48.9796 R1 K505 + X-55.6740 Y49.2245 R1 K506 + X-55.5097 Y49.4601 R1 K507 + X-55.3444 Y49.6996 R1 K508 + X-55.2291 Y49.9870 R1 K509 + X-55.1351 Y50.3111 R1 K510 + X-55.1097 Y50.7040 R1 K511 + X-55.1626 Y51.1368 R1 K512 + X-55.3281 Y51.5719 R1 K513 + X-55.6377 Y52.0290 R1 K514 + X-56.1172 Y52.4205 R1 K515 + X-56.7570 Y52.6799 R1 K516 + X-57.5034 Y52.6332 R1 K517 + X-58.1572 Y53.2262 R1 K518 + X-58.7379 Y53.6016 R1 K519 + X-59.1757 Y54.0506 R1 K520 + X-59.4883 Y54.4688 R1 K521 + X-59.7102 Y54.8570 R1 K522 + X-59.8354 Y55.1248 R1 K523 + X-59.9089 Y55.3246 R1 K524 + X-59.9523 Y55.4553 R1 K525 + X-59.9749 Y55.5261 R1 K526 + X-59.9939 Y55.6821 R1 K527 + X-60.0968 Y56.0450 R1 K528 + X-60.2882 Y56.8496 R1 K529 + X-60.0459 Y58.0048 R1 K530 + X-59.5723 Y59.2878 R1 K531 + X-59.4668 Y60.7493 R1 K532 + X-59.3982 Y62.0724 R1 K533 + X-59.4429 Y63.2366 R1 K534 + X-59.5387 Y64.2094 R1 K535 + X-59.6641 Y65.0317 R1 K536 + X-59.8071 Y65.7533 R1 K537 + X-59.9840 Y66.4809 R1 K538 + X-60.2172 Y67.2798 R1 K539 + X-60.5364 Y68.1896 R1 K540 + X-60.9744 Y69.2215 R1 K541 + X-61.5592 Y70.3545 R1 K542 + X-62.2943 Y71.5222 R1 K543 + X-63.1541 Y72.6492 R1 K544 + X-64.0950 Y73.6731 R1 K545 + X-65.0562 Y74.5495 R1 K546 + X-66.0058 Y75.2847 R1 K547 + X-66.9375 Y75.9005 R1 K548 + X-67.8726 Y76.4297 R1 K549 + X-68.8465 Y76.8950 R1 K550 + X-69.9097 Y77.3103 R1 K551 + X-71.0385 Y77.6520 R1 K552 + X-72.2366 Y77.9081 R1 K553 + X-73.3718 Y78.0524 R1 K554 + X-74.4966 Y78.1065 R1 K555 + X-75.5142 Y78.0793 R1 K556 + X-76.5166 Y77.9839 R1 K557 + X-77.5002 Y77.8226 R1 K558 + X-78.5557 Y77.5677 R1 K559 + X-79.5871 Y77.2317 R1 K560 + X-80.6445 Y76.7861 R1 K561 + X-81.6088 Y76.2806 R1 K562 + X-82.4866 Y75.7280 R1 K563 + X-83.2620 Y75.1557 R1 K564 + X-83.9787 Y74.5453 R1 K565 + X-84.6634 Y73.8753 R1 K566 + X-85.3317 Y73.1158 R1 K567 + X-85.9756 Y72.2533 R1 K568 + X-86.5709 Y71.2893 R1 K569 + X-87.0835 Y70.2579 R1 K570 + X-87.4848 Y69.2208 R1 K571 + X-87.7675 Y68.2393 R1 K572 + X-87.9478 Y67.3547 R1 K573 + X-88.0526 Y66.5624 R1 K574 + X-88.1043 Y65.8381 R1 K575 + X-88.1146 Y65.1483 R1 K576 + X-88.0821 Y64.3914 R1 K577 + X-87.9887 Y63.5457 R1 K578 + X-87.8095 Y62.6068 R1 K579 + X-87.5420 Y61.6610 R1 K580 + X-87.1769 Y60.7124 R1 K581 + X-86.7661 Y59.8770 R1 K582 + X-86.3379 Y59.1581 R1 K583 + X-85.9251 Y58.5640 R1 K584 + X-85.5209 Y58.0532 R1 K585 + X-85.1304 Y57.6121 R1 K586 + X-84.7239 Y57.1999 R1 K587 + X-84.2836 Y56.7987 R1 K588 + X-83.8018 Y56.4083 R1 K589 + X-83.2765 Y56.0332 R1 K590 + X-82.6941 Y55.6716 R1 K591 + X-82.0896 Y55.3518 R1 K592 + X-81.4995 Y55.0888 R1 K593 + X-80.9166 Y54.8724 R1 K594 + X-80.3623 Y54.7045 R1 K595 + X-79.8783 Y54.5861 R1 K596 + X-79.4171 Y54.4968 R1 K597 + X-78.9279 Y54.4260 R1 K598 + X-78.4216 Y54.3785 R1 K599 + X-77.8489 Y54.3561 R1 K600 + X-77.1713 Y54.3747 R1 K601 + X-76.4289 Y54.4540 R1 K602 + X-75.7026 Y54.5941 R1 K603 + X-74.9853 Y54.7971 R1 K604 + X-74.3519 Y55.0342 R1 K605 + X-73.8349 Y55.2709 R1 K606 + X-73.4158 Y55.4935 R1 K607 + X-73.0511 Y55.7120 R1 K608 + X-72.7402 Y55.9172 R1 K609 + X-72.4394 Y56.1342 R1 K610 + X-72.1163 Y56.3902 R1 K611 + X-71.7634 Y56.7011 R1 K612 + X-71.3948 Y57.0679 R1 K613 + X-71.0338 Y57.4796 R1 K614 + X-70.6922 Y57.9306 R1 K615 + X-70.3871 Y58.4002 R1 K616 + X-70.1196 Y58.8830 R1 K617 + X-69.8783 Y59.3995 R1 K618 + X-69.6703 Y59.9599 R1 K619 + X-69.4865 Y60.5805 R1 K620 + X-69.3846 Y61.2729 R1 K621 + X-69.3420 Y61.9859 R1 K622 + X-69.3653 Y62.6846 R1 K623 + X-69.4373 Y63.3326 R1 K624 + X-69.5439 Y63.8944 R1 K625 + X-69.6717 Y64.3635 R1 K626 + X-69.8106 Y64.7559 R1 K627 + X-69.9673 Y65.1147 R1 K628 + X-70.1585 Y65.4735 R1 K629 + X-70.4036 Y65.8427 R1 K630 + X-70.7108 Y66.2253 R1 K631 + X-71.0814 Y66.6075 R1 K632 + X-71.4841 Y66.9660 R1 K633 + X-71.9000 Y67.2809 R1 K634 + X-72.3090 Y67.5355 R1 K635 + X-72.7001 Y67.7315 R1 K636 + X-73.0687 Y67.8868 R1 K637 + X-73.4263 Y68.0106 R1 K638 + X-73.7882 Y68.1067 R1 K639 + X-74.1732 Y68.1732 R1 K640 + X-74.5703 Y68.2023 R1 K641 + X-74.9798 Y68.1932 R1 K642 + X-75.3547 Y68.1486 R1 K643 + X-75.7133 Y68.0736 R1 K644 + X-76.0256 Y67.9799 R1 K645 + X-76.3199 Y67.8657 R1 K646 + X-76.5949 Y67.7330 R1 K647 + X-76.8761 Y67.5652 R1 K648 + X-77.1354 Y67.3778 R1 K649 + X-77.3882 Y67.1575 R1 K650 + X-77.6008 Y66.9311 R1 K651 + X-77.7774 Y66.6968 R1 K652 + X-77.9145 Y66.4734 R1 K653 + X-78.0313 Y66.2435 R1 K654 + X-78.1141 Y66.0268 R1 K655 + X-78.1954 Y65.7851 R1 K656 + X-78.1992 Y65.6515 R1 K657 + X-78.2319 Y65.4948 R1 K658 + X-78.2477 Y65.4069 R1 K659 + X-78.2521 Y65.3785 R1 K660 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G1 X-78.2521 Y65.3785 Z1 +G0 X-78.2521 Y65.3785 Z10 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc b/nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc new file mode 100644 index 00000000000..c82d5c96afd --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc @@ -0,0 +1,688 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X-78.2522 Y65.3784 + Z1 + G1 Z-1 F100 + +F100 +G6.2 X-78.2522 Y65.3784 R1 K0 P6 Q2 + X-78.2522 Y65.3768 R1 K0 + X-78.2524 Y65.3684 R1 K0 + X-78.2527 Y65.3539 R1 K0 + X-78.2533 Y65.3340 R1 K0 + X-78.2547 Y65.3103 R1 K0 + X-78.2555 Y65.2837 R1 K1 + X-78.2558 Y65.2600 R1 K2 + X-78.2558 Y65.2384 R1 K3 + X-78.2554 Y65.2185 R1 K4 + X-78.2553 Y65.1975 R1 K5 + X-78.2500 Y65.1772 R1 K6 + X-78.2410 Y65.1587 R1 K7 + X-78.2279 Y65.1419 R1 K8 + X-78.2092 Y65.1264 R1 K9 + X-78.1851 Y65.1148 R1 K10 + X-78.1553 Y65.1095 R1 K11 + X-78.1214 Y65.1147 R1 K12 + X-78.0880 Y65.1321 R1 K13 + X-78.0689 Y65.1622 R1 K14 + X-78.0499 Y65.1882 R1 K15 + X-78.0327 Y65.2113 R1 K16 + X-78.0157 Y65.2336 R1 K17 + X-77.9982 Y65.2563 R1 K18 + X-77.9808 Y65.2789 R1 K19 + X-77.9620 Y65.3036 R1 K20 + X-77.9451 Y65.3262 R1 K21 + X-77.9319 Y65.3435 R1 K22 + X-77.9231 Y65.3551 R1 K23 + X-77.9180 Y65.3617 R1 K24 + X-77.9172 Y65.3628 R1 K25 + X-77.9105 Y65.3716 R1 K26 + X-77.8922 Y65.3956 R1 K27 + X-77.8599 Y65.4370 R1 K28 + X-77.8135 Y65.4921 R1 K29 + X-77.7505 Y65.5653 R1 K30 + X-77.6765 Y65.6428 R1 K31 + X-77.5975 Y65.7156 R1 K32 + X-77.5305 Y65.7928 R1 K33 + X-77.4509 Y65.8579 R1 K34 + X-77.3809 Y65.9232 R1 K35 + X-77.3053 Y65.9781 R1 K36 + X-77.2366 Y66.0465 R1 K37 + X-77.1418 Y66.0928 R1 K38 + X-77.0677 Y66.1679 R1 K39 + X-76.9669 Y66.2259 R1 K40 + X-76.8613 Y66.2868 R1 K41 + X-76.7545 Y66.3547 R1 K42 + X-76.6378 Y66.4111 R1 K43 + X-76.5134 Y66.4712 R1 K44 + X-76.3915 Y66.5277 R1 K45 + X-76.2636 Y66.5714 R1 K46 + X-76.1370 Y66.6204 R1 K47 + X-76.0100 Y66.6590 R1 K48 + X-75.8901 Y66.6920 R1 K49 + X-75.7663 Y66.7235 R1 K50 + X-75.6461 Y66.7490 R1 K51 + X-75.5244 Y66.7698 R1 K52 + X-75.3943 Y66.7850 R1 K53 + X-75.2502 Y66.8071 R1 K54 + X-75.1015 Y66.8159 R1 K55 + X-74.9403 Y66.8231 R1 K56 + X-74.7724 Y66.8221 R1 K57 + X-74.5962 Y66.8180 R1 K58 + X-74.4219 Y66.7995 R1 K59 + X-74.2364 Y66.7754 R1 K60 + X-74.0421 Y66.7380 R1 K61 + X-73.8331 Y66.6934 R1 K62 + X-73.6238 Y66.6206 R1 K63 + X-73.3921 Y66.5531 R1 K64 + X-73.1802 Y66.4193 R1 K65 + X-72.9391 Y66.3337 R1 K66 + X-72.7316 Y66.1842 R1 K67 + X-72.5313 Y66.0484 R1 K68 + X-72.3624 Y65.9069 R1 K69 + X-72.2125 Y65.7687 R1 K70 + X-72.0919 Y65.6448 R1 K71 + X-71.9927 Y65.5312 R1 K72 + X-71.9053 Y65.4252 R1 K73 + X-71.8174 Y65.3112 R1 K74 + X-71.7313 Y65.1914 R1 K75 + X-71.6420 Y65.0564 R1 K76 + X-71.5594 Y64.9089 R1 K77 + X-71.4713 Y64.7526 R1 K78 + X-71.4162 Y64.5969 R1 K79 + X-71.3310 Y64.4558 R1 K80 + X-71.2812 Y64.2920 R1 K81 + X-71.2270 Y64.1234 R1 K82 + X-71.1481 Y63.9431 R1 K83 + X-71.1371 Y63.7110 R1 K84 + X-71.0731 Y63.4737 R1 K85 + X-71.0331 Y63.2269 R1 K86 + X-71.0180 Y62.9718 R1 K87 + X-70.9917 Y62.7219 R1 K88 + X-71.0057 Y62.4934 R1 K89 + X-71.0161 Y62.2882 R1 K90 + X-71.0274 Y62.0872 R1 K91 + X-71.0415 Y61.8944 R1 K92 + X-71.0611 Y61.7031 R1 K93 + X-71.0917 Y61.5091 R1 K94 + X-71.1248 Y61.3101 R1 K95 + X-71.1621 Y61.1206 R1 K96 + X-71.2073 Y60.9277 R1 K97 + X-71.2608 Y60.7385 R1 K98 + X-71.3266 Y60.5490 R1 K99 + X-71.4074 Y60.3586 R1 K100 + X-71.4980 Y60.1583 R1 K101 + X-71.5810 Y59.9646 R1 K102 + X-71.6652 Y59.7748 R1 K103 + X-71.7535 Y59.5933 R1 K104 + X-71.8595 Y59.4137 R1 K105 + X-71.9661 Y59.2438 R1 K106 + X-72.0860 Y59.0659 R1 K107 + X-72.2197 Y58.8813 R1 K108 + X-72.3729 Y58.6860 R1 K109 + X-72.5341 Y58.4968 R1 K110 + X-72.7116 Y58.3057 R1 K111 + X-72.8915 Y58.1289 R1 K112 + X-73.0583 Y57.9778 R1 K113 + X-73.2033 Y57.8529 R1 K114 + X-73.3424 Y57.7330 R1 K115 + X-73.4863 Y57.6276 R1 K116 + X-73.6383 Y57.5199 R1 K117 + X-73.7997 Y57.3894 R1 K118 + X-74.0072 Y57.2755 R1 K119 + X-74.2008 Y57.1497 R1 K120 + X-74.4261 Y57.0388 R1 K121 + X-74.6584 Y56.9130 R1 K122 + X-74.9333 Y56.7966 R1 K123 + X-75.2157 Y56.6800 R1 K124 + X-75.5406 Y56.5839 R1 K125 + X-75.8324 Y56.4770 R1 K126 + X-76.1312 Y56.4124 R1 K127 + X-76.4017 Y56.3569 R1 K128 + X-76.6648 Y56.3130 R1 K129 + X-76.9117 Y56.2748 R1 K130 + X-77.1687 Y56.2617 R1 K131 + X-77.3958 Y56.2370 R1 K132 + X-77.6023 Y56.2341 R1 K133 + X-77.8026 Y56.2396 R1 K134 + X-78.0072 Y56.2310 R1 K135 + X-78.2239 Y56.2485 R1 K136 + X-78.4659 Y56.2586 R1 K137 + X-78.7395 Y56.2975 R1 K138 + X-79.0050 Y56.3364 R1 K139 + X-79.2654 Y56.3828 R1 K140 + X-79.5163 Y56.4352 R1 K141 + X-79.7738 Y56.4981 R1 K142 + X-80.0184 Y56.5682 R1 K143 + X-80.2693 Y56.6513 R1 K144 + X-80.5144 Y56.7414 R1 K145 + X-80.7694 Y56.8439 R1 K146 + X-81.0187 Y56.9504 R1 K147 + X-81.2760 Y57.0686 R1 K148 + X-81.5354 Y57.2012 R1 K149 + X-81.8037 Y57.3533 R1 K150 + X-82.0522 Y57.5087 R1 K151 + X-82.2933 Y57.6662 R1 K152 + X-82.5241 Y57.8358 R1 K153 + X-82.7571 Y58.0157 R1 K154 + X-82.9837 Y58.1995 R1 K155 + X-83.2200 Y58.4047 R1 K156 + X-83.4606 Y58.6323 R1 K157 + X-83.7076 Y58.8855 R1 K158 + X-83.9527 Y59.1588 R1 K159 + X-84.1989 Y59.4566 R1 K160 + X-84.4320 Y59.7694 R1 K161 + X-84.6570 Y60.0869 R1 K162 + X-84.8505 Y60.4166 R1 K163 + X-85.0537 Y60.7466 R1 K164 + X-85.2010 Y61.0872 R1 K165 + X-85.3834 Y61.4062 R1 K166 + X-85.4982 Y61.7374 R1 K167 + X-85.6059 Y62.0171 R1 K168 + X-85.6840 Y62.2439 R1 K169 + X-85.7474 Y62.4431 R1 K170 + X-85.8046 Y62.6347 R1 K171 + X-85.8613 Y62.8385 R1 K172 + X-85.9241 Y63.0851 R1 K173 + X-85.9913 Y63.3817 R1 K174 + X-86.0599 Y63.7211 R1 K175 + X-86.1062 Y64.0536 R1 K176 + X-86.1375 Y64.3765 R1 K177 + X-86.1382 Y64.6744 R1 K178 + X-86.1302 Y64.9692 R1 K179 + X-86.1363 Y65.2551 R1 K180 + X-86.1381 Y65.5733 R1 K181 + X-86.1192 Y65.9139 R1 K182 + X-86.0803 Y66.3047 R1 K183 + X-86.0351 Y66.7085 R1 K184 + X-85.9631 Y67.1479 R1 K185 + X-85.8689 Y67.6065 R1 K186 + X-85.7405 Y68.1018 R1 K187 + X-85.5812 Y68.6134 R1 K188 + X-85.3848 Y69.1398 R1 K189 + X-85.1674 Y69.6384 R1 K190 + X-84.9330 Y70.1083 R1 K191 + X-84.6909 Y70.5403 R1 K192 + X-84.4558 Y70.9205 R1 K193 + X-84.2166 Y71.2749 R1 K194 + X-83.9535 Y71.6348 R1 K195 + X-83.6725 Y71.9851 R1 K196 + X-83.3617 Y72.3508 R1 K197 + X-83.0016 Y72.7057 R1 K198 + X-82.6573 Y73.0905 R1 K199 + X-82.2526 Y73.3462 R1 K200 + X-81.9726 Y73.7838 R1 K201 + X-81.4759 Y73.8562 R1 K202 + X-81.2363 Y74.2501 R1 K203 + X-80.7867 Y74.3737 R1 K204 + X-80.4384 Y74.6786 R1 K205 + X-80.0092 Y74.8514 R1 K206 + X-79.6151 Y75.0592 R1 K207 + X-79.1830 Y75.2366 R1 K208 + X-78.7584 Y75.4001 R1 K209 + X-78.3396 Y75.5412 R1 K210 + X-77.8863 Y75.6769 R1 K211 + X-77.3776 Y75.8046 R1 K212 + X-76.8697 Y75.9095 R1 K213 + X-76.3351 Y75.9951 R1 K214 + X-75.7832 Y76.0576 R1 K215 + X-75.2489 Y76.0938 R1 K216 + X-74.7533 Y76.1066 R1 K217 + X-74.2523 Y76.0994 R1 K218 + X-73.7785 Y76.0739 R1 K219 + X-73.3110 Y76.0315 R1 K220 + X-72.8259 Y75.9691 R1 K221 + X-72.2972 Y75.8794 R1 K222 + X-71.7704 Y75.7667 R1 K223 + X-71.2123 Y75.6210 R1 K224 + X-70.6569 Y75.4481 R1 K225 + X-70.0922 Y75.2438 R1 K226 + X-69.5497 Y75.0193 R1 K227 + X-68.9913 Y74.7573 R1 K228 + X-68.4586 Y74.4761 R1 K229 + X-67.9121 Y74.1538 R1 K230 + X-67.4020 Y73.8195 R1 K231 + X-66.8922 Y73.4506 R1 K232 + X-66.3981 Y73.0572 R1 K233 + X-65.8912 Y72.6119 R1 K234 + X-65.3922 Y72.1274 R1 K235 + X-64.8978 Y71.5930 R1 K236 + X-64.4482 Y71.0510 R1 K237 + X-64.0543 Y70.5236 R1 K238 + X-63.7143 Y70.0219 R1 K239 + X-63.4446 Y69.5874 R1 K240 + X-63.2232 Y69.2030 R1 K241 + X-63.0326 Y68.8485 R1 K242 + X-62.8441 Y68.4733 R1 K243 + X-62.6628 Y68.0854 R1 K244 + X-62.4782 Y67.6550 R1 K245 + X-62.2989 Y67.1935 R1 K246 + X-62.1279 Y66.7001 R1 K247 + X-61.9727 Y66.1939 R1 K248 + X-61.8295 Y65.6578 R1 K249 + X-61.6960 Y65.0661 R1 K250 + X-61.5729 Y64.3841 R1 K251 + X-61.4698 Y63.5800 R1 K252 + X-61.4108 Y62.7224 R1 K253 + X-61.4043 Y61.8278 R1 K254 + X-61.4529 Y60.9430 R1 K255 + X-61.5456 Y60.1267 R1 K256 + X-61.6643 Y59.4063 R1 K257 + X-61.8120 Y58.7123 R1 K258 + X-61.9820 Y58.0585 R1 K259 + X-62.1778 Y57.4196 R1 K260 + X-62.4134 Y56.7577 R1 K261 + X-62.6889 Y56.0851 R1 K262 + X-62.9996 Y55.4172 R1 K263 + X-63.3692 Y54.7143 R1 K264 + X-63.8108 Y53.9710 R1 K265 + X-64.3243 Y53.2082 R1 K266 + X-64.9328 Y52.4130 R1 K267 + X-65.6225 Y51.6256 R1 K268 + X-66.3474 Y50.9019 R1 K269 + X-67.0612 Y50.2737 R1 K270 + X-67.7302 Y49.7493 R1 K271 + X-68.3043 Y49.3417 R1 K272 + X-68.8172 Y49.0062 R1 K273 + X-69.3105 Y48.7070 R1 K274 + X-69.8348 Y48.4123 R1 K275 + X-70.4875 Y48.0767 R1 K276 + X-71.3268 Y47.6957 R1 K277 + X-72.3237 Y47.3143 R1 K278 + X-73.4861 Y46.9598 R1 K279 + X-74.7666 Y46.6760 R1 K280 + X-76.0067 Y46.5013 R1 K281 + X-77.1377 Y46.4235 R1 K282 + X-78.1544 Y46.4180 R1 K283 + X-79.0336 Y46.4600 R1 K284 + X-79.7970 Y46.5307 R1 K285 + X-80.5114 Y46.6269 R1 K286 + X-81.2380 Y46.7547 R1 K287 + X-82.0068 Y46.9238 R1 K288 + X-82.7697 Y47.1283 R1 K289 + X-83.5373 Y47.3720 R1 K290 + X-84.3112 Y47.6579 R1 K291 + X-85.0498 Y47.9699 R1 K292 + X-85.7351 Y48.2942 R1 K293 + X-86.4220 Y48.6557 R1 K294 + X-87.0802 Y49.0386 R1 K295 + X-87.7349 Y49.4568 R1 K296 + X-88.4029 Y49.9251 R1 K297 + X-89.0659 Y50.4364 R1 K298 + X-89.7019 Y50.9752 R1 K299 + X-90.3372 Y51.5662 R1 K300 + X-90.9228 Y52.1644 R1 K301 + X-91.4587 Y52.7620 R1 K302 + X-91.9715 Y53.3850 R1 K303 + X-92.4872 Y54.0697 R1 K304 + X-92.9914 Y54.8058 R1 K305 + X-93.5210 Y55.6676 R1 K306 + X-94.0384 Y56.6272 R1 K307 + X-94.5223 Y57.6703 R1 K308 + X-94.9369 Y58.7292 R1 K309 + X-95.2895 Y59.8173 R1 K310 + X-95.5636 Y60.8628 R1 K311 + X-95.7787 Y61.9128 R1 K312 + X-95.9450 Y63.0271 R1 K313 + X-96.0570 Y64.2804 R1 K314 + X-96.0887 Y65.6434 R1 K315 + X-96.0117 Y67.1896 R1 K316 + X-95.7849 Y68.8848 R1 K317 + X-95.3938 Y70.6228 R1 K318 + X-94.8491 Y72.3197 R1 K319 + X-94.1332 Y74.0121 R1 K320 + X-93.2814 Y75.6158 R1 K321 + X-92.2786 Y77.1630 R1 K322 + X-91.1344 Y78.6253 R1 K323 + X-89.7926 Y80.0514 R1 K324 + X-88.3438 Y81.3279 R1 K325 + X-86.8063 Y82.4500 R1 K326 + X-85.2073 Y83.4151 R1 K327 + X-83.5453 Y84.2315 R1 K328 + X-81.8476 Y84.8988 R1 K329 + X-80.0202 Y85.4440 R1 K330 + X-78.0905 Y85.8388 R1 K331 + X-76.1270 Y86.0515 R1 K332 + X-74.1042 Y86.1038 R1 K333 + X-72.1134 Y85.9410 R1 K334 + X-70.3215 Y85.6875 R1 K335 + X-68.5712 Y85.2079 R1 K336 + X-67.1312 Y84.8600 R1 K337 + X-65.6308 Y84.1229 R1 K338 + X-64.6063 Y83.7875 R1 K339 + X-63.3163 Y82.8235 R1 K340 + X-62.1214 Y84.6009 R1 K341 + X-63.4110 Y85.4617 R1 K342 + X-64.3155 Y85.9210 R1 K343 + X-65.5866 Y86.6071 R1 K344 + X-66.8279 Y87.1139 R1 K345 + X-68.2878 Y87.6844 R1 K346 + X-69.7642 Y88.1080 R1 K347 + X-71.2842 Y88.4664 R1 K348 + X-72.7041 Y88.7042 R1 K349 + X-74.0052 Y88.8509 R1 K350 + X-75.2479 Y88.9291 R1 K351 + X-76.4245 Y88.9482 R1 K352 + X-77.5679 Y88.9149 R1 K353 + X-78.7239 Y88.8281 R1 K354 + X-79.9353 Y88.6800 R1 K355 + X-81.0976 Y88.4781 R1 K356 + X-82.3310 Y88.2104 R1 K357 + X-83.7403 Y87.7919 R1 K358 + X-85.4340 Y88.1674 R1 K359 + X-87.0285 Y88.8003 R1 K360 + X-88.3868 Y90.6629 R1 K361 + X-89.2295 Y92.5789 R1 K362 + X-91.0310 Y93.6550 R1 K363 + X-92.8707 Y94.0388 R1 K364 + X-94.8789 Y93.6716 R1 K365 + X-96.5076 Y92.6811 R1 K366 + X-97.8348 Y90.9330 R1 K367 + X-98.2942 Y88.7018 R1 K368 + X-97.4905 Y86.2191 R1 K369 + X-95.9369 Y84.8179 R1 K370 + X-95.2116 Y82.8188 R1 K371 + X-95.2978 Y81.1676 R1 K372 + X-95.7188 Y79.7571 R1 K373 + X-96.5500 Y78.6785 R1 K374 + X-97.2814 Y77.6412 R1 K375 + X-98.0087 Y76.4724 R1 K376 + X-98.7470 Y75.1297 R1 K377 + X-99.4507 Y73.6257 R1 K378 + X-100.0936 Y71.9710 R1 K379 + X-100.6588 Y70.1153 R1 K380 + X-101.0929 Y68.1469 R1 K381 + X-101.3532 Y66.2083 R1 K382 + X-101.4660 Y64.3533 R1 K383 + X-101.4283 Y62.6243 R1 K384 + X-101.3214 Y61.1022 R1 K385 + X-101.1263 Y59.7460 R1 K386 + X-100.9032 Y58.4500 R1 K387 + X-100.4515 Y57.0141 R1 K388 + X-100.3644 Y55.2248 R1 K389 + X-101.1660 Y53.1940 R1 K390 + X-102.9048 Y51.5175 R1 K391 + X-105.7506 Y50.5183 R1 K392 + X-106.7664 Y47.5360 R1 K393 + X-106.2261 Y44.8663 R1 K394 + X-104.7541 Y42.9853 R1 K395 + X-102.8335 Y42.0743 R1 K396 + X-101.4039 Y41.9198 R1 K397 + X-100.3354 Y42.0643 R1 K398 + X-99.7082 Y42.2839 R1 K399 + X-99.3802 Y42.4191 R1 K400 + X-99.2852 Y42.4595 R1 K401 + X-99.2732 Y42.4675 R1 K402 + X-99.1700 Y42.5363 R1 K403 + X-98.9641 Y42.6735 R1 K404 + X-98.6558 Y42.8790 R1 K405 + X-98.2469 Y43.1526 R1 K406 + X-97.7302 Y43.4817 R1 K407 + X-97.2463 Y43.8402 R1 K408 + X-96.7655 Y44.1219 R1 K409 + X-96.2937 Y44.3329 R1 K410 + X-95.8240 Y44.4898 R1 K411 + X-95.3767 Y44.5957 R1 K412 + X-94.9180 Y44.6612 R1 K413 + X-94.4404 Y44.6832 R1 K414 + X-93.9580 Y44.6579 R1 K415 + X-93.4953 Y44.5890 R1 K416 + X-93.0425 Y44.4782 R1 K417 + X-92.6045 Y44.3280 R1 K418 + X-92.1447 Y44.1202 R1 K419 + X-91.6369 Y43.8289 R1 K420 + X-91.1136 Y43.3969 R1 K421 + X-90.4924 Y42.9832 R1 K422 + X-89.8165 Y42.5176 R1 K423 + X-89.0758 Y42.0672 R1 K424 + X-88.3020 Y41.6255 R1 K425 + X-87.4675 Y41.1904 R1 K426 + X-86.5581 Y40.7578 R1 K427 + X-85.5646 Y40.3366 R1 K428 + X-84.5663 Y39.9636 R1 K429 + X-83.5390 Y39.6304 R1 K430 + X-82.5260 Y39.3483 R1 K431 + X-81.5447 Y39.1174 R1 K432 + X-80.5284 Y38.9189 R1 K433 + X-79.4092 Y38.7496 R1 K434 + X-78.1562 Y38.6188 R1 K435 + X-76.7890 Y38.5483 R1 K436 + X-75.2438 Y38.5585 R1 K437 + X-73.6695 Y38.6706 R1 K438 + X-72.0547 Y38.8843 R1 K439 + X-70.6053 Y39.1859 R1 K440 + X-69.3013 Y39.5564 R1 K441 + X-68.1927 Y39.5504 R1 K442 + X-67.3549 Y39.3577 R1 K443 + X-66.7470 Y39.1380 R1 K444 + X-66.2819 Y38.9051 R1 K445 + X-65.9139 Y38.6788 R1 K446 + X-65.5680 Y38.4248 R1 K447 + X-65.1857 Y38.0892 R1 K448 + X-64.7999 Y37.6739 R1 K449 + X-64.4294 Y37.1491 R1 K450 + X-64.0430 Y36.5561 R1 K451 + X-63.7115 Y35.8761 R1 K452 + X-63.3161 Y35.3649 R1 K453 + X-62.9165 Y34.9587 R1 K454 + X-62.5343 Y34.6443 R1 K455 + X-62.1806 Y34.4013 R1 K456 + X-61.8628 Y34.2159 R1 K457 + X-61.5197 Y34.0492 R1 K458 + X-61.1582 Y33.9069 R1 K459 + X-60.7769 Y33.7900 R1 K460 + X-60.3920 Y33.7047 R1 K461 + X-60.0044 Y33.6509 R1 K462 + X-59.6084 Y33.6273 R1 K463 + X-59.2076 Y33.6352 R1 K464 + X-58.7966 Y33.6755 R1 K465 + X-58.3528 Y33.7572 R1 K466 + X-57.8678 Y33.8950 R1 K467 + X-57.3599 Y34.0990 R1 K468 + X-56.8450 Y34.3790 R1 K469 + X-56.3729 Y34.7150 R1 K470 + X-55.9601 Y35.0880 R1 K471 + X-55.6168 Y35.4728 R1 K472 + X-55.3360 Y35.8572 R1 K473 + X-55.1075 Y36.2366 R1 K474 + X-54.9103 Y36.6389 R1 K475 + X-54.7306 Y37.1081 R1 K476 + X-54.5834 Y37.6567 R1 K477 + X-54.4837 Y38.3544 R1 K478 + X-54.4963 Y39.1927 R1 K479 + X-54.6737 Y40.1651 R1 K480 + X-55.1393 Y41.1231 R1 K481 + X-55.7918 Y42.0034 R1 K482 + X-56.4072 Y42.8062 R1 K483 + X-56.8313 Y43.6292 R1 K484 + X-57.0501 Y44.3600 R1 K485 + X-57.1542 Y44.9776 R1 K486 + X-57.1786 Y45.4609 R1 K487 + X-57.1699 Y45.8057 R1 K488 + X-57.1486 Y46.0295 R1 K489 + X-57.1321 Y46.1671 R1 K490 + X-57.1253 Y46.2209 R1 K491 + X-57.1200 Y46.2577 R1 K492 + X-57.1058 Y46.3541 R1 K493 + X-57.0820 Y46.4985 R1 K494 + X-57.0426 Y46.6836 R1 K495 + X-56.9847 Y46.9099 R1 K496 + X-56.9115 Y47.1440 R1 K497 + X-56.8360 Y47.3519 R1 K498 + X-56.7525 Y47.5546 R1 K499 + X-56.6572 Y47.7593 R1 K500 + X-56.5398 Y47.9848 R1 K501 + X-56.4012 Y48.2193 R1 K502 + X-56.2348 Y48.4708 R1 K503 + X-56.0380 Y48.7155 R1 K504 + X-55.8488 Y48.9796 R1 K505 + X-55.6740 Y49.2245 R1 K506 + X-55.5097 Y49.4601 R1 K507 + X-55.3444 Y49.6996 R1 K508 + X-55.2291 Y49.9870 R1 K509 + X-55.1351 Y50.3111 R1 K510 + X-55.1097 Y50.7040 R1 K511 + X-55.1626 Y51.1368 R1 K512 + X-55.3281 Y51.5719 R1 K513 + X-55.6377 Y52.0290 R1 K514 + X-56.1172 Y52.4205 R1 K515 + X-56.7570 Y52.6799 R1 K516 + X-57.5034 Y52.6332 R1 K517 + X-58.1572 Y53.2262 R1 K518 + X-58.7379 Y53.6016 R1 K519 + X-59.1757 Y54.0506 R1 K520 + X-59.4883 Y54.4688 R1 K521 + X-59.7102 Y54.8570 R1 K522 + X-59.8354 Y55.1248 R1 K523 + X-59.9089 Y55.3246 R1 K524 + X-59.9523 Y55.4553 R1 K525 + X-59.9749 Y55.5261 R1 K526 + X-59.9939 Y55.6821 R1 K527 + X-60.0968 Y56.0450 R1 K528 + X-60.2882 Y56.8496 R1 K529 + X-60.0459 Y58.0048 R1 K530 + X-59.5723 Y59.2878 R1 K531 + X-59.4668 Y60.7493 R1 K532 + X-59.3982 Y62.0724 R1 K533 + X-59.4429 Y63.2366 R1 K534 + X-59.5387 Y64.2094 R1 K535 + X-59.6641 Y65.0317 R1 K536 + X-59.8071 Y65.7533 R1 K537 + X-59.9840 Y66.4809 R1 K538 + X-60.2172 Y67.2798 R1 K539 + X-60.5364 Y68.1896 R1 K540 + X-60.9744 Y69.2215 R1 K541 + X-61.5592 Y70.3545 R1 K542 + X-62.2943 Y71.5222 R1 K543 + X-63.1541 Y72.6492 R1 K544 + X-64.0950 Y73.6731 R1 K545 + X-65.0562 Y74.5495 R1 K546 + X-66.0058 Y75.2847 R1 K547 + X-66.9375 Y75.9005 R1 K548 + X-67.8726 Y76.4297 R1 K549 + X-68.8465 Y76.8950 R1 K550 + X-69.9097 Y77.3103 R1 K551 + X-71.0385 Y77.6520 R1 K552 + X-72.2366 Y77.9081 R1 K553 + X-73.3718 Y78.0524 R1 K554 + X-74.4966 Y78.1065 R1 K555 + X-75.5142 Y78.0793 R1 K556 + X-76.5166 Y77.9839 R1 K557 + X-77.5002 Y77.8226 R1 K558 + X-78.5557 Y77.5677 R1 K559 + X-79.5871 Y77.2317 R1 K560 + X-80.6445 Y76.7861 R1 K561 + X-81.6088 Y76.2806 R1 K562 + X-82.4866 Y75.7280 R1 K563 + X-83.2620 Y75.1557 R1 K564 + X-83.9787 Y74.5453 R1 K565 + X-84.6634 Y73.8753 R1 K566 + X-85.3317 Y73.1158 R1 K567 + X-85.9756 Y72.2533 R1 K568 + X-86.5709 Y71.2893 R1 K569 + X-87.0835 Y70.2579 R1 K570 + X-87.4848 Y69.2208 R1 K571 + X-87.7675 Y68.2393 R1 K572 + X-87.9478 Y67.3547 R1 K573 + X-88.0526 Y66.5624 R1 K574 + X-88.1043 Y65.8381 R1 K575 + X-88.1146 Y65.1483 R1 K576 + X-88.0821 Y64.3914 R1 K577 + X-87.9887 Y63.5457 R1 K578 + X-87.8095 Y62.6068 R1 K579 + X-87.5420 Y61.6610 R1 K580 + X-87.1769 Y60.7124 R1 K581 + X-86.7661 Y59.8770 R1 K582 + X-86.3379 Y59.1581 R1 K583 + X-85.9251 Y58.5640 R1 K584 + X-85.5209 Y58.0532 R1 K585 + X-85.1304 Y57.6121 R1 K586 + X-84.7239 Y57.1999 R1 K587 + X-84.2836 Y56.7987 R1 K588 + X-83.8018 Y56.4083 R1 K589 + X-83.2765 Y56.0332 R1 K590 + X-82.6941 Y55.6716 R1 K591 + X-82.0896 Y55.3518 R1 K592 + X-81.4995 Y55.0888 R1 K593 + X-80.9166 Y54.8724 R1 K594 + X-80.3623 Y54.7045 R1 K595 + X-79.8783 Y54.5861 R1 K596 + X-79.4171 Y54.4968 R1 K597 + X-78.9279 Y54.4260 R1 K598 + X-78.4216 Y54.3785 R1 K599 + X-77.8489 Y54.3561 R1 K600 + X-77.1713 Y54.3747 R1 K601 + X-76.4289 Y54.4540 R1 K602 + X-75.7026 Y54.5941 R1 K603 + X-74.9853 Y54.7971 R1 K604 + X-74.3519 Y55.0342 R1 K605 + X-73.8349 Y55.2709 R1 K606 + X-73.4158 Y55.4935 R1 K607 + X-73.0511 Y55.7120 R1 K608 + X-72.7402 Y55.9172 R1 K609 + X-72.4394 Y56.1342 R1 K610 + X-72.1163 Y56.3902 R1 K611 + X-71.7634 Y56.7011 R1 K612 + X-71.3948 Y57.0679 R1 K613 + X-71.0338 Y57.4796 R1 K614 + X-70.6922 Y57.9306 R1 K615 + X-70.3871 Y58.4002 R1 K616 + X-70.1196 Y58.8830 R1 K617 + X-69.8783 Y59.3995 R1 K618 + X-69.6703 Y59.9599 R1 K619 + X-69.4865 Y60.5805 R1 K620 + X-69.3846 Y61.2729 R1 K621 + X-69.3420 Y61.9859 R1 K622 + X-69.3653 Y62.6846 R1 K623 + X-69.4373 Y63.3326 R1 K624 + X-69.5439 Y63.8944 R1 K625 + X-69.6717 Y64.3635 R1 K626 + X-69.8106 Y64.7559 R1 K627 + X-69.9673 Y65.1147 R1 K628 + X-70.1585 Y65.4735 R1 K629 + X-70.4036 Y65.8427 R1 K630 + X-70.7108 Y66.2253 R1 K631 + X-71.0814 Y66.6075 R1 K632 + X-71.4841 Y66.9660 R1 K633 + X-71.9000 Y67.2809 R1 K634 + X-72.3090 Y67.5355 R1 K635 + X-72.7001 Y67.7315 R1 K636 + X-73.0687 Y67.8868 R1 K637 + X-73.4263 Y68.0106 R1 K638 + X-73.7882 Y68.1067 R1 K639 + X-74.1732 Y68.1732 R1 K640 + X-74.5703 Y68.2023 R1 K641 + X-74.9798 Y68.1932 R1 K642 + X-75.3547 Y68.1486 R1 K643 + X-75.7133 Y68.0736 R1 K644 + X-76.0256 Y67.9799 R1 K645 + X-76.3199 Y67.8657 R1 K646 + X-76.5949 Y67.7330 R1 K647 + X-76.8761 Y67.5652 R1 K648 + X-77.1354 Y67.3778 R1 K649 + X-77.3882 Y67.1575 R1 K650 + X-77.6008 Y66.9311 R1 K651 + X-77.7774 Y66.6968 R1 K652 + X-77.9145 Y66.4734 R1 K653 + X-78.0313 Y66.2435 R1 K654 + X-78.1141 Y66.0268 R1 K655 + X-78.1954 Y65.7851 R1 K656 + X-78.1992 Y65.6515 R1 K657 + X-78.2319 Y65.4948 R1 K658 + X-78.2477 Y65.4069 R1 K659 + X-78.2521 Y65.3785 R1 K660 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G1 X-78.2521 Y65.3785 Z1 +G0 X-78.2521 Y65.3785 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc b/nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc new file mode 100644 index 00000000000..b256e54545c --- /dev/null +++ b/nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc @@ -0,0 +1,687 @@ +G21 G40 G54 G90 G94 +G0 Z50 +X0Y0 +M6 T0 +G96 M3 S200 +G0 Z50 (movimento per avvicinarsi alla posizione di taglio) +(Curva acquisita Nr=1) + X-78.2522 Y65.3784 + Z1 + G1 Z-1 F100 +F100 +G6.2 X-78.2522 Y65.3784 R1 K0 P6 Q3 + X-78.2522 Y65.3768 R1 K0 + X-78.2524 Y65.3684 R1 K0 + X-78.2527 Y65.3539 R1 K0 + X-78.2533 Y65.3340 R1 K0 + X-78.2547 Y65.3103 R1 K0 + X-78.2555 Y65.2837 R1 K1 + X-78.2558 Y65.2600 R1 K2 + X-78.2558 Y65.2384 R1 K3 + X-78.2554 Y65.2185 R1 K4 + X-78.2553 Y65.1975 R1 K5 + X-78.2500 Y65.1772 R1 K6 + X-78.2410 Y65.1587 R1 K7 + X-78.2279 Y65.1419 R1 K8 + X-78.2092 Y65.1264 R1 K9 + X-78.1851 Y65.1148 R1 K10 + X-78.1553 Y65.1095 R1 K11 + X-78.1214 Y65.1147 R1 K12 + X-78.0880 Y65.1321 R1 K13 + X-78.0689 Y65.1622 R1 K14 + X-78.0499 Y65.1882 R1 K15 + X-78.0327 Y65.2113 R1 K16 + X-78.0157 Y65.2336 R1 K17 + X-77.9982 Y65.2563 R1 K18 + X-77.9808 Y65.2789 R1 K19 + X-77.9620 Y65.3036 R1 K20 + X-77.9451 Y65.3262 R1 K21 + X-77.9319 Y65.3435 R1 K22 + X-77.9231 Y65.3551 R1 K23 + X-77.9180 Y65.3617 R1 K24 + X-77.9172 Y65.3628 R1 K25 + X-77.9105 Y65.3716 R1 K26 + X-77.8922 Y65.3956 R1 K27 + X-77.8599 Y65.4370 R1 K28 + X-77.8135 Y65.4921 R1 K29 + X-77.7505 Y65.5653 R1 K30 + X-77.6765 Y65.6428 R1 K31 + X-77.5975 Y65.7156 R1 K32 + X-77.5305 Y65.7928 R1 K33 + X-77.4509 Y65.8579 R1 K34 + X-77.3809 Y65.9232 R1 K35 + X-77.3053 Y65.9781 R1 K36 + X-77.2366 Y66.0465 R1 K37 + X-77.1418 Y66.0928 R1 K38 + X-77.0677 Y66.1679 R1 K39 + X-76.9669 Y66.2259 R1 K40 + X-76.8613 Y66.2868 R1 K41 + X-76.7545 Y66.3547 R1 K42 + X-76.6378 Y66.4111 R1 K43 + X-76.5134 Y66.4712 R1 K44 + X-76.3915 Y66.5277 R1 K45 + X-76.2636 Y66.5714 R1 K46 + X-76.1370 Y66.6204 R1 K47 + X-76.0100 Y66.6590 R1 K48 + X-75.8901 Y66.6920 R1 K49 + X-75.7663 Y66.7235 R1 K50 + X-75.6461 Y66.7490 R1 K51 + X-75.5244 Y66.7698 R1 K52 + X-75.3943 Y66.7850 R1 K53 + X-75.2502 Y66.8071 R1 K54 + X-75.1015 Y66.8159 R1 K55 + X-74.9403 Y66.8231 R1 K56 + X-74.7724 Y66.8221 R1 K57 + X-74.5962 Y66.8180 R1 K58 + X-74.4219 Y66.7995 R1 K59 + X-74.2364 Y66.7754 R1 K60 + X-74.0421 Y66.7380 R1 K61 + X-73.8331 Y66.6934 R1 K62 + X-73.6238 Y66.6206 R1 K63 + X-73.3921 Y66.5531 R1 K64 + X-73.1802 Y66.4193 R1 K65 + X-72.9391 Y66.3337 R1 K66 + X-72.7316 Y66.1842 R1 K67 + X-72.5313 Y66.0484 R1 K68 + X-72.3624 Y65.9069 R1 K69 + X-72.2125 Y65.7687 R1 K70 + X-72.0919 Y65.6448 R1 K71 + X-71.9927 Y65.5312 R1 K72 + X-71.9053 Y65.4252 R1 K73 + X-71.8174 Y65.3112 R1 K74 + X-71.7313 Y65.1914 R1 K75 + X-71.6420 Y65.0564 R1 K76 + X-71.5594 Y64.9089 R1 K77 + X-71.4713 Y64.7526 R1 K78 + X-71.4162 Y64.5969 R1 K79 + X-71.3310 Y64.4558 R1 K80 + X-71.2812 Y64.2920 R1 K81 + X-71.2270 Y64.1234 R1 K82 + X-71.1481 Y63.9431 R1 K83 + X-71.1371 Y63.7110 R1 K84 + X-71.0731 Y63.4737 R1 K85 + X-71.0331 Y63.2269 R1 K86 + X-71.0180 Y62.9718 R1 K87 + X-70.9917 Y62.7219 R1 K88 + X-71.0057 Y62.4934 R1 K89 + X-71.0161 Y62.2882 R1 K90 + X-71.0274 Y62.0872 R1 K91 + X-71.0415 Y61.8944 R1 K92 + X-71.0611 Y61.7031 R1 K93 + X-71.0917 Y61.5091 R1 K94 + X-71.1248 Y61.3101 R1 K95 + X-71.1621 Y61.1206 R1 K96 + X-71.2073 Y60.9277 R1 K97 + X-71.2608 Y60.7385 R1 K98 + X-71.3266 Y60.5490 R1 K99 + X-71.4074 Y60.3586 R1 K100 + X-71.4980 Y60.1583 R1 K101 + X-71.5810 Y59.9646 R1 K102 + X-71.6652 Y59.7748 R1 K103 + X-71.7535 Y59.5933 R1 K104 + X-71.8595 Y59.4137 R1 K105 + X-71.9661 Y59.2438 R1 K106 + X-72.0860 Y59.0659 R1 K107 + X-72.2197 Y58.8813 R1 K108 + X-72.3729 Y58.6860 R1 K109 + X-72.5341 Y58.4968 R1 K110 + X-72.7116 Y58.3057 R1 K111 + X-72.8915 Y58.1289 R1 K112 + X-73.0583 Y57.9778 R1 K113 + X-73.2033 Y57.8529 R1 K114 + X-73.3424 Y57.7330 R1 K115 + X-73.4863 Y57.6276 R1 K116 + X-73.6383 Y57.5199 R1 K117 + X-73.7997 Y57.3894 R1 K118 + X-74.0072 Y57.2755 R1 K119 + X-74.2008 Y57.1497 R1 K120 + X-74.4261 Y57.0388 R1 K121 + X-74.6584 Y56.9130 R1 K122 + X-74.9333 Y56.7966 R1 K123 + X-75.2157 Y56.6800 R1 K124 + X-75.5406 Y56.5839 R1 K125 + X-75.8324 Y56.4770 R1 K126 + X-76.1312 Y56.4124 R1 K127 + X-76.4017 Y56.3569 R1 K128 + X-76.6648 Y56.3130 R1 K129 + X-76.9117 Y56.2748 R1 K130 + X-77.1687 Y56.2617 R1 K131 + X-77.3958 Y56.2370 R1 K132 + X-77.6023 Y56.2341 R1 K133 + X-77.8026 Y56.2396 R1 K134 + X-78.0072 Y56.2310 R1 K135 + X-78.2239 Y56.2485 R1 K136 + X-78.4659 Y56.2586 R1 K137 + X-78.7395 Y56.2975 R1 K138 + X-79.0050 Y56.3364 R1 K139 + X-79.2654 Y56.3828 R1 K140 + X-79.5163 Y56.4352 R1 K141 + X-79.7738 Y56.4981 R1 K142 + X-80.0184 Y56.5682 R1 K143 + X-80.2693 Y56.6513 R1 K144 + X-80.5144 Y56.7414 R1 K145 + X-80.7694 Y56.8439 R1 K146 + X-81.0187 Y56.9504 R1 K147 + X-81.2760 Y57.0686 R1 K148 + X-81.5354 Y57.2012 R1 K149 + X-81.8037 Y57.3533 R1 K150 + X-82.0522 Y57.5087 R1 K151 + X-82.2933 Y57.6662 R1 K152 + X-82.5241 Y57.8358 R1 K153 + X-82.7571 Y58.0157 R1 K154 + X-82.9837 Y58.1995 R1 K155 + X-83.2200 Y58.4047 R1 K156 + X-83.4606 Y58.6323 R1 K157 + X-83.7076 Y58.8855 R1 K158 + X-83.9527 Y59.1588 R1 K159 + X-84.1989 Y59.4566 R1 K160 + X-84.4320 Y59.7694 R1 K161 + X-84.6570 Y60.0869 R1 K162 + X-84.8505 Y60.4166 R1 K163 + X-85.0537 Y60.7466 R1 K164 + X-85.2010 Y61.0872 R1 K165 + X-85.3834 Y61.4062 R1 K166 + X-85.4982 Y61.7374 R1 K167 + X-85.6059 Y62.0171 R1 K168 + X-85.6840 Y62.2439 R1 K169 + X-85.7474 Y62.4431 R1 K170 + X-85.8046 Y62.6347 R1 K171 + X-85.8613 Y62.8385 R1 K172 + X-85.9241 Y63.0851 R1 K173 + X-85.9913 Y63.3817 R1 K174 + X-86.0599 Y63.7211 R1 K175 + X-86.1062 Y64.0536 R1 K176 + X-86.1375 Y64.3765 R1 K177 + X-86.1382 Y64.6744 R1 K178 + X-86.1302 Y64.9692 R1 K179 + X-86.1363 Y65.2551 R1 K180 + X-86.1381 Y65.5733 R1 K181 + X-86.1192 Y65.9139 R1 K182 + X-86.0803 Y66.3047 R1 K183 + X-86.0351 Y66.7085 R1 K184 + X-85.9631 Y67.1479 R1 K185 + X-85.8689 Y67.6065 R1 K186 + X-85.7405 Y68.1018 R1 K187 + X-85.5812 Y68.6134 R1 K188 + X-85.3848 Y69.1398 R1 K189 + X-85.1674 Y69.6384 R1 K190 + X-84.9330 Y70.1083 R1 K191 + X-84.6909 Y70.5403 R1 K192 + X-84.4558 Y70.9205 R1 K193 + X-84.2166 Y71.2749 R1 K194 + X-83.9535 Y71.6348 R1 K195 + X-83.6725 Y71.9851 R1 K196 + X-83.3617 Y72.3508 R1 K197 + X-83.0016 Y72.7057 R1 K198 + X-82.6573 Y73.0905 R1 K199 + X-82.2526 Y73.3462 R1 K200 + X-81.9726 Y73.7838 R1 K201 + X-81.4759 Y73.8562 R1 K202 + X-81.2363 Y74.2501 R1 K203 + X-80.7867 Y74.3737 R1 K204 + X-80.4384 Y74.6786 R1 K205 + X-80.0092 Y74.8514 R1 K206 + X-79.6151 Y75.0592 R1 K207 + X-79.1830 Y75.2366 R1 K208 + X-78.7584 Y75.4001 R1 K209 + X-78.3396 Y75.5412 R1 K210 + X-77.8863 Y75.6769 R1 K211 + X-77.3776 Y75.8046 R1 K212 + X-76.8697 Y75.9095 R1 K213 + X-76.3351 Y75.9951 R1 K214 + X-75.7832 Y76.0576 R1 K215 + X-75.2489 Y76.0938 R1 K216 + X-74.7533 Y76.1066 R1 K217 + X-74.2523 Y76.0994 R1 K218 + X-73.7785 Y76.0739 R1 K219 + X-73.3110 Y76.0315 R1 K220 + X-72.8259 Y75.9691 R1 K221 + X-72.2972 Y75.8794 R1 K222 + X-71.7704 Y75.7667 R1 K223 + X-71.2123 Y75.6210 R1 K224 + X-70.6569 Y75.4481 R1 K225 + X-70.0922 Y75.2438 R1 K226 + X-69.5497 Y75.0193 R1 K227 + X-68.9913 Y74.7573 R1 K228 + X-68.4586 Y74.4761 R1 K229 + X-67.9121 Y74.1538 R1 K230 + X-67.4020 Y73.8195 R1 K231 + X-66.8922 Y73.4506 R1 K232 + X-66.3981 Y73.0572 R1 K233 + X-65.8912 Y72.6119 R1 K234 + X-65.3922 Y72.1274 R1 K235 + X-64.8978 Y71.5930 R1 K236 + X-64.4482 Y71.0510 R1 K237 + X-64.0543 Y70.5236 R1 K238 + X-63.7143 Y70.0219 R1 K239 + X-63.4446 Y69.5874 R1 K240 + X-63.2232 Y69.2030 R1 K241 + X-63.0326 Y68.8485 R1 K242 + X-62.8441 Y68.4733 R1 K243 + X-62.6628 Y68.0854 R1 K244 + X-62.4782 Y67.6550 R1 K245 + X-62.2989 Y67.1935 R1 K246 + X-62.1279 Y66.7001 R1 K247 + X-61.9727 Y66.1939 R1 K248 + X-61.8295 Y65.6578 R1 K249 + X-61.6960 Y65.0661 R1 K250 + X-61.5729 Y64.3841 R1 K251 + X-61.4698 Y63.5800 R1 K252 + X-61.4108 Y62.7224 R1 K253 + X-61.4043 Y61.8278 R1 K254 + X-61.4529 Y60.9430 R1 K255 + X-61.5456 Y60.1267 R1 K256 + X-61.6643 Y59.4063 R1 K257 + X-61.8120 Y58.7123 R1 K258 + X-61.9820 Y58.0585 R1 K259 + X-62.1778 Y57.4196 R1 K260 + X-62.4134 Y56.7577 R1 K261 + X-62.6889 Y56.0851 R1 K262 + X-62.9996 Y55.4172 R1 K263 + X-63.3692 Y54.7143 R1 K264 + X-63.8108 Y53.9710 R1 K265 + X-64.3243 Y53.2082 R1 K266 + X-64.9328 Y52.4130 R1 K267 + X-65.6225 Y51.6256 R1 K268 + X-66.3474 Y50.9019 R1 K269 + X-67.0612 Y50.2737 R1 K270 + X-67.7302 Y49.7493 R1 K271 + X-68.3043 Y49.3417 R1 K272 + X-68.8172 Y49.0062 R1 K273 + X-69.3105 Y48.7070 R1 K274 + X-69.8348 Y48.4123 R1 K275 + X-70.4875 Y48.0767 R1 K276 + X-71.3268 Y47.6957 R1 K277 + X-72.3237 Y47.3143 R1 K278 + X-73.4861 Y46.9598 R1 K279 + X-74.7666 Y46.6760 R1 K280 + X-76.0067 Y46.5013 R1 K281 + X-77.1377 Y46.4235 R1 K282 + X-78.1544 Y46.4180 R1 K283 + X-79.0336 Y46.4600 R1 K284 + X-79.7970 Y46.5307 R1 K285 + X-80.5114 Y46.6269 R1 K286 + X-81.2380 Y46.7547 R1 K287 + X-82.0068 Y46.9238 R1 K288 + X-82.7697 Y47.1283 R1 K289 + X-83.5373 Y47.3720 R1 K290 + X-84.3112 Y47.6579 R1 K291 + X-85.0498 Y47.9699 R1 K292 + X-85.7351 Y48.2942 R1 K293 + X-86.4220 Y48.6557 R1 K294 + X-87.0802 Y49.0386 R1 K295 + X-87.7349 Y49.4568 R1 K296 + X-88.4029 Y49.9251 R1 K297 + X-89.0659 Y50.4364 R1 K298 + X-89.7019 Y50.9752 R1 K299 + X-90.3372 Y51.5662 R1 K300 + X-90.9228 Y52.1644 R1 K301 + X-91.4587 Y52.7620 R1 K302 + X-91.9715 Y53.3850 R1 K303 + X-92.4872 Y54.0697 R1 K304 + X-92.9914 Y54.8058 R1 K305 + X-93.5210 Y55.6676 R1 K306 + X-94.0384 Y56.6272 R1 K307 + X-94.5223 Y57.6703 R1 K308 + X-94.9369 Y58.7292 R1 K309 + X-95.2895 Y59.8173 R1 K310 + X-95.5636 Y60.8628 R1 K311 + X-95.7787 Y61.9128 R1 K312 + X-95.9450 Y63.0271 R1 K313 + X-96.0570 Y64.2804 R1 K314 + X-96.0887 Y65.6434 R1 K315 + X-96.0117 Y67.1896 R1 K316 + X-95.7849 Y68.8848 R1 K317 + X-95.3938 Y70.6228 R1 K318 + X-94.8491 Y72.3197 R1 K319 + X-94.1332 Y74.0121 R1 K320 + X-93.2814 Y75.6158 R1 K321 + X-92.2786 Y77.1630 R1 K322 + X-91.1344 Y78.6253 R1 K323 + X-89.7926 Y80.0514 R1 K324 + X-88.3438 Y81.3279 R1 K325 + X-86.8063 Y82.4500 R1 K326 + X-85.2073 Y83.4151 R1 K327 + X-83.5453 Y84.2315 R1 K328 + X-81.8476 Y84.8988 R1 K329 + X-80.0202 Y85.4440 R1 K330 + X-78.0905 Y85.8388 R1 K331 + X-76.1270 Y86.0515 R1 K332 + X-74.1042 Y86.1038 R1 K333 + X-72.1134 Y85.9410 R1 K334 + X-70.3215 Y85.6875 R1 K335 + X-68.5712 Y85.2079 R1 K336 + X-67.1312 Y84.8600 R1 K337 + X-65.6308 Y84.1229 R1 K338 + X-64.6063 Y83.7875 R1 K339 + X-63.3163 Y82.8235 R1 K340 + X-62.1214 Y84.6009 R1 K341 + X-63.4110 Y85.4617 R1 K342 + X-64.3155 Y85.9210 R1 K343 + X-65.5866 Y86.6071 R1 K344 + X-66.8279 Y87.1139 R1 K345 + X-68.2878 Y87.6844 R1 K346 + X-69.7642 Y88.1080 R1 K347 + X-71.2842 Y88.4664 R1 K348 + X-72.7041 Y88.7042 R1 K349 + X-74.0052 Y88.8509 R1 K350 + X-75.2479 Y88.9291 R1 K351 + X-76.4245 Y88.9482 R1 K352 + X-77.5679 Y88.9149 R1 K353 + X-78.7239 Y88.8281 R1 K354 + X-79.9353 Y88.6800 R1 K355 + X-81.0976 Y88.4781 R1 K356 + X-82.3310 Y88.2104 R1 K357 + X-83.7403 Y87.7919 R1 K358 + X-85.4340 Y88.1674 R1 K359 + X-87.0285 Y88.8003 R1 K360 + X-88.3868 Y90.6629 R1 K361 + X-89.2295 Y92.5789 R1 K362 + X-91.0310 Y93.6550 R1 K363 + X-92.8707 Y94.0388 R1 K364 + X-94.8789 Y93.6716 R1 K365 + X-96.5076 Y92.6811 R1 K366 + X-97.8348 Y90.9330 R1 K367 + X-98.2942 Y88.7018 R1 K368 + X-97.4905 Y86.2191 R1 K369 + X-95.9369 Y84.8179 R1 K370 + X-95.2116 Y82.8188 R1 K371 + X-95.2978 Y81.1676 R1 K372 + X-95.7188 Y79.7571 R1 K373 + X-96.5500 Y78.6785 R1 K374 + X-97.2814 Y77.6412 R1 K375 + X-98.0087 Y76.4724 R1 K376 + X-98.7470 Y75.1297 R1 K377 + X-99.4507 Y73.6257 R1 K378 + X-100.0936 Y71.9710 R1 K379 + X-100.6588 Y70.1153 R1 K380 + X-101.0929 Y68.1469 R1 K381 + X-101.3532 Y66.2083 R1 K382 + X-101.4660 Y64.3533 R1 K383 + X-101.4283 Y62.6243 R1 K384 + X-101.3214 Y61.1022 R1 K385 + X-101.1263 Y59.7460 R1 K386 + X-100.9032 Y58.4500 R1 K387 + X-100.4515 Y57.0141 R1 K388 + X-100.3644 Y55.2248 R1 K389 + X-101.1660 Y53.1940 R1 K390 + X-102.9048 Y51.5175 R1 K391 + X-105.7506 Y50.5183 R1 K392 + X-106.7664 Y47.5360 R1 K393 + X-106.2261 Y44.8663 R1 K394 + X-104.7541 Y42.9853 R1 K395 + X-102.8335 Y42.0743 R1 K396 + X-101.4039 Y41.9198 R1 K397 + X-100.3354 Y42.0643 R1 K398 + X-99.7082 Y42.2839 R1 K399 + X-99.3802 Y42.4191 R1 K400 + X-99.2852 Y42.4595 R1 K401 + X-99.2732 Y42.4675 R1 K402 + X-99.1700 Y42.5363 R1 K403 + X-98.9641 Y42.6735 R1 K404 + X-98.6558 Y42.8790 R1 K405 + X-98.2469 Y43.1526 R1 K406 + X-97.7302 Y43.4817 R1 K407 + X-97.2463 Y43.8402 R1 K408 + X-96.7655 Y44.1219 R1 K409 + X-96.2937 Y44.3329 R1 K410 + X-95.8240 Y44.4898 R1 K411 + X-95.3767 Y44.5957 R1 K412 + X-94.9180 Y44.6612 R1 K413 + X-94.4404 Y44.6832 R1 K414 + X-93.9580 Y44.6579 R1 K415 + X-93.4953 Y44.5890 R1 K416 + X-93.0425 Y44.4782 R1 K417 + X-92.6045 Y44.3280 R1 K418 + X-92.1447 Y44.1202 R1 K419 + X-91.6369 Y43.8289 R1 K420 + X-91.1136 Y43.3969 R1 K421 + X-90.4924 Y42.9832 R1 K422 + X-89.8165 Y42.5176 R1 K423 + X-89.0758 Y42.0672 R1 K424 + X-88.3020 Y41.6255 R1 K425 + X-87.4675 Y41.1904 R1 K426 + X-86.5581 Y40.7578 R1 K427 + X-85.5646 Y40.3366 R1 K428 + X-84.5663 Y39.9636 R1 K429 + X-83.5390 Y39.6304 R1 K430 + X-82.5260 Y39.3483 R1 K431 + X-81.5447 Y39.1174 R1 K432 + X-80.5284 Y38.9189 R1 K433 + X-79.4092 Y38.7496 R1 K434 + X-78.1562 Y38.6188 R1 K435 + X-76.7890 Y38.5483 R1 K436 + X-75.2438 Y38.5585 R1 K437 + X-73.6695 Y38.6706 R1 K438 + X-72.0547 Y38.8843 R1 K439 + X-70.6053 Y39.1859 R1 K440 + X-69.3013 Y39.5564 R1 K441 + X-68.1927 Y39.5504 R1 K442 + X-67.3549 Y39.3577 R1 K443 + X-66.7470 Y39.1380 R1 K444 + X-66.2819 Y38.9051 R1 K445 + X-65.9139 Y38.6788 R1 K446 + X-65.5680 Y38.4248 R1 K447 + X-65.1857 Y38.0892 R1 K448 + X-64.7999 Y37.6739 R1 K449 + X-64.4294 Y37.1491 R1 K450 + X-64.0430 Y36.5561 R1 K451 + X-63.7115 Y35.8761 R1 K452 + X-63.3161 Y35.3649 R1 K453 + X-62.9165 Y34.9587 R1 K454 + X-62.5343 Y34.6443 R1 K455 + X-62.1806 Y34.4013 R1 K456 + X-61.8628 Y34.2159 R1 K457 + X-61.5197 Y34.0492 R1 K458 + X-61.1582 Y33.9069 R1 K459 + X-60.7769 Y33.7900 R1 K460 + X-60.3920 Y33.7047 R1 K461 + X-60.0044 Y33.6509 R1 K462 + X-59.6084 Y33.6273 R1 K463 + X-59.2076 Y33.6352 R1 K464 + X-58.7966 Y33.6755 R1 K465 + X-58.3528 Y33.7572 R1 K466 + X-57.8678 Y33.8950 R1 K467 + X-57.3599 Y34.0990 R1 K468 + X-56.8450 Y34.3790 R1 K469 + X-56.3729 Y34.7150 R1 K470 + X-55.9601 Y35.0880 R1 K471 + X-55.6168 Y35.4728 R1 K472 + X-55.3360 Y35.8572 R1 K473 + X-55.1075 Y36.2366 R1 K474 + X-54.9103 Y36.6389 R1 K475 + X-54.7306 Y37.1081 R1 K476 + X-54.5834 Y37.6567 R1 K477 + X-54.4837 Y38.3544 R1 K478 + X-54.4963 Y39.1927 R1 K479 + X-54.6737 Y40.1651 R1 K480 + X-55.1393 Y41.1231 R1 K481 + X-55.7918 Y42.0034 R1 K482 + X-56.4072 Y42.8062 R1 K483 + X-56.8313 Y43.6292 R1 K484 + X-57.0501 Y44.3600 R1 K485 + X-57.1542 Y44.9776 R1 K486 + X-57.1786 Y45.4609 R1 K487 + X-57.1699 Y45.8057 R1 K488 + X-57.1486 Y46.0295 R1 K489 + X-57.1321 Y46.1671 R1 K490 + X-57.1253 Y46.2209 R1 K491 + X-57.1200 Y46.2577 R1 K492 + X-57.1058 Y46.3541 R1 K493 + X-57.0820 Y46.4985 R1 K494 + X-57.0426 Y46.6836 R1 K495 + X-56.9847 Y46.9099 R1 K496 + X-56.9115 Y47.1440 R1 K497 + X-56.8360 Y47.3519 R1 K498 + X-56.7525 Y47.5546 R1 K499 + X-56.6572 Y47.7593 R1 K500 + X-56.5398 Y47.9848 R1 K501 + X-56.4012 Y48.2193 R1 K502 + X-56.2348 Y48.4708 R1 K503 + X-56.0380 Y48.7155 R1 K504 + X-55.8488 Y48.9796 R1 K505 + X-55.6740 Y49.2245 R1 K506 + X-55.5097 Y49.4601 R1 K507 + X-55.3444 Y49.6996 R1 K508 + X-55.2291 Y49.9870 R1 K509 + X-55.1351 Y50.3111 R1 K510 + X-55.1097 Y50.7040 R1 K511 + X-55.1626 Y51.1368 R1 K512 + X-55.3281 Y51.5719 R1 K513 + X-55.6377 Y52.0290 R1 K514 + X-56.1172 Y52.4205 R1 K515 + X-56.7570 Y52.6799 R1 K516 + X-57.5034 Y52.6332 R1 K517 + X-58.1572 Y53.2262 R1 K518 + X-58.7379 Y53.6016 R1 K519 + X-59.1757 Y54.0506 R1 K520 + X-59.4883 Y54.4688 R1 K521 + X-59.7102 Y54.8570 R1 K522 + X-59.8354 Y55.1248 R1 K523 + X-59.9089 Y55.3246 R1 K524 + X-59.9523 Y55.4553 R1 K525 + X-59.9749 Y55.5261 R1 K526 + X-59.9939 Y55.6821 R1 K527 + X-60.0968 Y56.0450 R1 K528 + X-60.2882 Y56.8496 R1 K529 + X-60.0459 Y58.0048 R1 K530 + X-59.5723 Y59.2878 R1 K531 + X-59.4668 Y60.7493 R1 K532 + X-59.3982 Y62.0724 R1 K533 + X-59.4429 Y63.2366 R1 K534 + X-59.5387 Y64.2094 R1 K535 + X-59.6641 Y65.0317 R1 K536 + X-59.8071 Y65.7533 R1 K537 + X-59.9840 Y66.4809 R1 K538 + X-60.2172 Y67.2798 R1 K539 + X-60.5364 Y68.1896 R1 K540 + X-60.9744 Y69.2215 R1 K541 + X-61.5592 Y70.3545 R1 K542 + X-62.2943 Y71.5222 R1 K543 + X-63.1541 Y72.6492 R1 K544 + X-64.0950 Y73.6731 R1 K545 + X-65.0562 Y74.5495 R1 K546 + X-66.0058 Y75.2847 R1 K547 + X-66.9375 Y75.9005 R1 K548 + X-67.8726 Y76.4297 R1 K549 + X-68.8465 Y76.8950 R1 K550 + X-69.9097 Y77.3103 R1 K551 + X-71.0385 Y77.6520 R1 K552 + X-72.2366 Y77.9081 R1 K553 + X-73.3718 Y78.0524 R1 K554 + X-74.4966 Y78.1065 R1 K555 + X-75.5142 Y78.0793 R1 K556 + X-76.5166 Y77.9839 R1 K557 + X-77.5002 Y77.8226 R1 K558 + X-78.5557 Y77.5677 R1 K559 + X-79.5871 Y77.2317 R1 K560 + X-80.6445 Y76.7861 R1 K561 + X-81.6088 Y76.2806 R1 K562 + X-82.4866 Y75.7280 R1 K563 + X-83.2620 Y75.1557 R1 K564 + X-83.9787 Y74.5453 R1 K565 + X-84.6634 Y73.8753 R1 K566 + X-85.3317 Y73.1158 R1 K567 + X-85.9756 Y72.2533 R1 K568 + X-86.5709 Y71.2893 R1 K569 + X-87.0835 Y70.2579 R1 K570 + X-87.4848 Y69.2208 R1 K571 + X-87.7675 Y68.2393 R1 K572 + X-87.9478 Y67.3547 R1 K573 + X-88.0526 Y66.5624 R1 K574 + X-88.1043 Y65.8381 R1 K575 + X-88.1146 Y65.1483 R1 K576 + X-88.0821 Y64.3914 R1 K577 + X-87.9887 Y63.5457 R1 K578 + X-87.8095 Y62.6068 R1 K579 + X-87.5420 Y61.6610 R1 K580 + X-87.1769 Y60.7124 R1 K581 + X-86.7661 Y59.8770 R1 K582 + X-86.3379 Y59.1581 R1 K583 + X-85.9251 Y58.5640 R1 K584 + X-85.5209 Y58.0532 R1 K585 + X-85.1304 Y57.6121 R1 K586 + X-84.7239 Y57.1999 R1 K587 + X-84.2836 Y56.7987 R1 K588 + X-83.8018 Y56.4083 R1 K589 + X-83.2765 Y56.0332 R1 K590 + X-82.6941 Y55.6716 R1 K591 + X-82.0896 Y55.3518 R1 K592 + X-81.4995 Y55.0888 R1 K593 + X-80.9166 Y54.8724 R1 K594 + X-80.3623 Y54.7045 R1 K595 + X-79.8783 Y54.5861 R1 K596 + X-79.4171 Y54.4968 R1 K597 + X-78.9279 Y54.4260 R1 K598 + X-78.4216 Y54.3785 R1 K599 + X-77.8489 Y54.3561 R1 K600 + X-77.1713 Y54.3747 R1 K601 + X-76.4289 Y54.4540 R1 K602 + X-75.7026 Y54.5941 R1 K603 + X-74.9853 Y54.7971 R1 K604 + X-74.3519 Y55.0342 R1 K605 + X-73.8349 Y55.2709 R1 K606 + X-73.4158 Y55.4935 R1 K607 + X-73.0511 Y55.7120 R1 K608 + X-72.7402 Y55.9172 R1 K609 + X-72.4394 Y56.1342 R1 K610 + X-72.1163 Y56.3902 R1 K611 + X-71.7634 Y56.7011 R1 K612 + X-71.3948 Y57.0679 R1 K613 + X-71.0338 Y57.4796 R1 K614 + X-70.6922 Y57.9306 R1 K615 + X-70.3871 Y58.4002 R1 K616 + X-70.1196 Y58.8830 R1 K617 + X-69.8783 Y59.3995 R1 K618 + X-69.6703 Y59.9599 R1 K619 + X-69.4865 Y60.5805 R1 K620 + X-69.3846 Y61.2729 R1 K621 + X-69.3420 Y61.9859 R1 K622 + X-69.3653 Y62.6846 R1 K623 + X-69.4373 Y63.3326 R1 K624 + X-69.5439 Y63.8944 R1 K625 + X-69.6717 Y64.3635 R1 K626 + X-69.8106 Y64.7559 R1 K627 + X-69.9673 Y65.1147 R1 K628 + X-70.1585 Y65.4735 R1 K629 + X-70.4036 Y65.8427 R1 K630 + X-70.7108 Y66.2253 R1 K631 + X-71.0814 Y66.6075 R1 K632 + X-71.4841 Y66.9660 R1 K633 + X-71.9000 Y67.2809 R1 K634 + X-72.3090 Y67.5355 R1 K635 + X-72.7001 Y67.7315 R1 K636 + X-73.0687 Y67.8868 R1 K637 + X-73.4263 Y68.0106 R1 K638 + X-73.7882 Y68.1067 R1 K639 + X-74.1732 Y68.1732 R1 K640 + X-74.5703 Y68.2023 R1 K641 + X-74.9798 Y68.1932 R1 K642 + X-75.3547 Y68.1486 R1 K643 + X-75.7133 Y68.0736 R1 K644 + X-76.0256 Y67.9799 R1 K645 + X-76.3199 Y67.8657 R1 K646 + X-76.5949 Y67.7330 R1 K647 + X-76.8761 Y67.5652 R1 K648 + X-77.1354 Y67.3778 R1 K649 + X-77.3882 Y67.1575 R1 K650 + X-77.6008 Y66.9311 R1 K651 + X-77.7774 Y66.6968 R1 K652 + X-77.9145 Y66.4734 R1 K653 + X-78.0313 Y66.2435 R1 K654 + X-78.1141 Y66.0268 R1 K655 + X-78.1954 Y65.7851 R1 K656 + X-78.1992 Y65.6515 R1 K657 + X-78.2319 Y65.4948 R1 K658 + X-78.2477 Y65.4069 R1 K659 + X-78.2521 Y65.3785 R1 K660 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G6.2 K661 +G1 X-78.2521 Y65.3785 Z1 +G0 X-78.2521 Y65.3785 Z50 +M5 +M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg b/nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2dd146f216f5780fe8cd66328555927d6d228c2 GIT binary patch literal 149211 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

  • ?(6{wf#cJHa`MZoiJ92jyO(?Y zZyyAG?4JKZpb)Rg367&S{@m3cU-9DWhVuV7O3Hu-`suj#UkLbnN~^(9K6IkXy`N+U zeF{$Gprw)B01jVj{nIDg8I+qI>z-s4hd3@!m&zGL_ImdTQgbH6A(fnm>ryD4%bGpTByKeDc2nmjAVd z@=xynmzzU%HFwTzxY}UXw=0BLjIT{Qpa3y3Pa$bu3^lb9N?H?BuN#~bi+i3$Cud;2 zh{B2e^EA6BYs8KD+YLmnnRFTE#3EzYqC638pGeKV))HnAy5A*e<7BJ`2>n9f*`2U( z(y4pNsoEU+fOmERoy;W$?^}l!TS{R1l$IKr^^3j>A1+lkt<7rw)Im!1>GLQT(APpU zj57?Cr=Vqb1k=&$Xt))%9FKTL{*4K1brV;qudJ{Rhqf15MMf6%gDF;&D`y`Q=8j4i z1WE}G2oudEHsF1#_8vASsy8qX#X!IY;H(@-exoC%D=TI#d~M_3N1{#yD582aKUY=I zQgc8tD##8kr;;-8Bpb*x9wuSd)Yp|^+w9y5j>r)dT`1GGDWarU&nO@*FQ4itkRAGA zfx#vRc*#wdlbNb?wJvgRII9RQ3{kxF>`_BtH>gE4NCK2$eVb?;zwD-=c(Zz$(4s$s zUTsLEvwaOqT0OnwnDb`e4>tZZ8MFZpO}psNC8;CxQv$|y)La&(^9%KKec_l84C zzv~nWwGbwC5n9dd^}uU;oN>y!V=7auWW1S91t6Q!yps4fApHLTa*159X;z zF!}C-7p0Zzkr^CJW-xNs8YhUKvgC|^kT`K!Yw6RO+^k8>3`vUk&W)WvLVNGYGZLRV zyW}YM!O$R)zc;m891Rwrh}efhNIXxmIQ6~!4v8!|NRd9Wk;r(zxuUnnCgPk^XT0>@=_%#hZPWnmN4|2Wp5q23P&Nq7HX@ zF;w>ZTj@Ra(ihw|JzYxQRPQnagUZ3u)REIMY)%a?^E z^|gtt39_c3Tro3w6T2CP=M3?Zp{%UDk6UMAsyqfiSe|g#(TA-LmO5>c*P=Xvk&#-- zuBJmW;#vHi@Nv_rOXh8#FLj32JgJ3^LmLHx?sAC`?Pu)KTBoH_OxkXD|M?5g_YxQP z1mPovWl?HGdNpMAn;Vjz>{3$fw$?6siIQk?%GZ5FukeKJw{_g)-1O}2yMiMqj!`s9 z#kbzINxoghIZX}$**JDgu2)S4e?DQAV=sK5{SnNP;cR*`cC%64X8J9XI`^paxK%)9 zvp3H*;#@X>U9MCP&EV^5=)63kyKRl8okbZExGaOoo0Ew+Z%i?qb~uEa|60wPs@l}NMy%FMNCp-V8{@|*=2*mjyYupz4T1X42totJ0|iUt>z`l>(>_KmbZLLR=S90 zU`~2L?_yHdt`s9l*~1d;Ogm8t_j)t&QKXfBr6QHMPHD=Ay`WhNiChTQ?)VE~`REry z<^YrXFNB;Nt&IJpu8XM7u2E5czn{C69hE0Cr@DJePmUvNt?aNq1LYO@HM1|yf2M&S zx(rzjAq}AZ{h+R8P+-wdZ~PQ=vf)xgalB zEcuAN70Tpa2v@%zZB7|O`Ucs*=wtv5I%pairkh2Y|LkzWY=Etm=&Ig>

    *o4SkEL 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 diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc deleted file mode 100644 index f95e5f0ba7b..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=2-xy-yz-zx.ngc +++ /dev/null @@ -1,110 +0,0 @@ - - -(Curva acquisita Nr=1) - -#10=290 - -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 - -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -X0.000 Y100.000 -Z1 -G1 Z0 F#10 - -; G6.2 parameter -; R1 -; K0 -; P4 nurbs order=4 - -G17 (Plane XY) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 X0.000 Y100.000 R1 K0 P4 Q2 - X10.000 Y100.000 R1 K0 - X10.000 Y70.665 R1 K0 - X27.928 Y59.258 R1 K0 - X34.093 Y56.935 R1 K1 - X41.136 Y54.281 R1 K2 - X63.112 Y51.556 R1 K3 - X79.999 Y60.000 R1 K4 - X99.998 Y40.002 R1 K5 - X100.000 Y0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 X100.000 Y0.012 Z1 -G0 X100.000 Y0.012 Z10 - - - -G0 X50 -Y0Z0 -;G96 M3 S200 -G0 X50 (movimento per avvicinarsi alla posizione di taglio) -Y0.000 Z100.000 -X1 -G1 X0 F#10 - -G19 (Plane YZ) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 Y0.000 Z100.000 R1 K0 P4 Q2 - Y10.000 Z100.000 R1 K0 - Y10.000 Z70.665 R1 K0 - Y27.928 Z59.258 R1 K0 - Y34.093 Z56.935 R1 K1 - Y41.136 Z54.281 R1 K2 - Y63.112 Z51.556 R1 K3 - Y79.999 Z60.000 R1 K4 - Y99.998 Z40.002 R1 K5 - Y100.000 Z0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Y100.000 Z0.012 X1 -G0 Y100.000 Z0.012 X10 - - - -G0 Y50 -Z0X0 -;G96 M3 S200 -G0 Y50 (movimento per avvicinarsi alla posizione di taglio) -Z0.000 X100.000 -Y1 -G1 Y0 F#10 - -G18 (Plane ZX) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 Z0.000 X100.000 R1 K0 P4 Q2 - Z10.000 X100.000 R1 K0 - Z10.000 X70.665 R1 K0 - Z27.928 X59.258 R1 K0 - Z34.093 X56.935 R1 K1 - Z41.136 X54.281 R1 K2 - Z63.112 X51.556 R1 K3 - Z79.999 X60.000 R1 K4 - Z99.998 X40.002 R1 K5 - Z100.000 X0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Z100.000 X0.012 Y1 -G0 Z100.000 X0.012 Y10 - - -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc deleted file mode 100644 index 5303d193ea4..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=2.ngc +++ /dev/null @@ -1,33 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X0.000 Y100.000 - Z1 - G1 Z-1 F100 - -F290 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 X0.000 Y100.000 R1 K0 P4 Q2 - X10.000 Y100.000 R1 K0 - X10.000 Y70.665 R1 K0 - X27.928 Y59.258 R1 K0 - X34.093 Y56.935 R1 K1 - X41.136 Y54.281 R1 K2 - X63.112 Y51.556 R1 K3 - X79.999 Y60.000 R1 K4 - X99.998 Y40.002 R1 K5 - X100.000 Y0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G1 X100.000 Y0.012 Z1 -G0 X100.000 Y0.012 Z50 -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc deleted file mode 100644 index ff789116b0a..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=3-xy-yz-zx.ngc +++ /dev/null @@ -1,110 +0,0 @@ - - -(Curva acquisita Nr=1) - -#10=290 - -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 - -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -X0.000 Y100.000 -Z1 -G1 Z0 F#10 - -; G6.2 parameter -; R1 -; K0 -; P4 nurbs order=4 - -G17 (Plane XY) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 X0.000 Y100.000 R1 K0 P4 Q3 - X10.000 Y100.000 R1 K0 - X10.000 Y70.665 R1 K0 - X27.928 Y59.258 R1 K0 - X34.093 Y56.935 R1 K1 - X41.136 Y54.281 R1 K2 - X63.112 Y51.556 R1 K3 - X79.999 Y60.000 R1 K4 - X99.998 Y40.002 R1 K5 - X100.000 Y0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 X100.000 Y0.012 Z1 -G0 X100.000 Y0.012 Z10 - - - -G0 X50 -Y0Z0 -;G96 M3 S200 -G0 X50 (movimento per avvicinarsi alla posizione di taglio) -Y0.000 Z100.000 -X1 -G1 X0 F#10 - -G19 (Plane YZ) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 Y0.000 Z100.000 R1 K0 P4 Q3 - Y10.000 Z100.000 R1 K0 - Y10.000 Z70.665 R1 K0 - Y27.928 Z59.258 R1 K0 - Y34.093 Z56.935 R1 K1 - Y41.136 Z54.281 R1 K2 - Y63.112 Z51.556 R1 K3 - Y79.999 Z60.000 R1 K4 - Y99.998 Z40.002 R1 K5 - Y100.000 Z0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Y100.000 Z0.012 X1 -G0 Y100.000 Z0.012 X10 - - - -G0 Y50 -Z0X0 -;G96 M3 S200 -G0 Y50 (movimento per avvicinarsi alla posizione di taglio) -Z0.000 X100.000 -Y1 -G1 Y0 F#10 - -G18 (Plane ZX) -F#10 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 Z0.000 X100.000 R1 K0 P4 Q3 - Z10.000 X100.000 R1 K0 - Z10.000 X70.665 R1 K0 - Z27.928 X59.258 R1 K0 - Z34.093 X56.935 R1 K1 - Z41.136 X54.281 R1 K2 - Z63.112 X51.556 R1 K3 - Z79.999 X60.000 R1 K4 - Z99.998 X40.002 R1 K5 - Z100.000 X0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 - -G1 Z100.000 X0.012 Y1 -G0 Z100.000 X0.012 Y10 - - -M5 -M2 - diff --git a/nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc b/nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc deleted file mode 100644 index 4323a91656c..00000000000 --- a/nc_files/nurbs/G6/Curva_Mazatrol #1=3.ngc +++ /dev/null @@ -1,32 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X0.000 Y100.000 - Z1 - G1 Z-1 F100 - -F100 - -; Q this selects the used method 1=NICU, 2=NICC, 3=NICL -G6.2 X0.000 Y100.000 R1 K0 P4 Q3 - X10.000 Y100.000 R1 K0 - X10.000 Y70.665 R1 K0 - X27.928 Y59.258 R1 K0 - X34.093 Y56.935 R1 K1 - X41.136 Y54.281 R1 K2 - X63.112 Y51.556 R1 K3 - X79.999 Y60.000 R1 K4 - X99.998 Y40.002 R1 K5 - X100.000 Y0.012 R1 K6 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G6.2 K7 -G1 X100.000 Y0.012 Z1 -G0 X100.000 Y0.012 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg b/nc_files/nurbs/G6/Curva_Scrool_F #1=1.jpg deleted file mode 100644 index 6972beb76a6c372fa0cf889f578590dd77605e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150025 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%0DZwXRHTc4k4zyoKLvQ@VB5N)|~DqnSyweXyD`i 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 x`;vJ9-)qi% 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 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc b/nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc deleted file mode 100644 index ffef4024041..00000000000 --- a/nc_files/nurbs/G6/Curva_Scrool_F #1=1.ngc +++ /dev/null @@ -1,689 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z10 -X0Y0 -;M6 T0 -;G96 M3 S200 -G0 Z10 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X-78.2522 Y65.3784 - Z2 - Z1 - G1 Z-1 F500 - -F290 -G6.2 X-78.2522 Y65.3784 R1 K0 P6 Q1 - X-78.2522 Y65.3768 R1 K0 - X-78.2524 Y65.3684 R1 K0 - X-78.2527 Y65.3539 R1 K0 - X-78.2533 Y65.3340 R1 K0 - X-78.2547 Y65.3103 R1 K0 - X-78.2555 Y65.2837 R1 K1 - X-78.2558 Y65.2600 R1 K2 - X-78.2558 Y65.2384 R1 K3 - X-78.2554 Y65.2185 R1 K4 - X-78.2553 Y65.1975 R1 K5 - X-78.2500 Y65.1772 R1 K6 - X-78.2410 Y65.1587 R1 K7 - X-78.2279 Y65.1419 R1 K8 - X-78.2092 Y65.1264 R1 K9 - X-78.1851 Y65.1148 R1 K10 - X-78.1553 Y65.1095 R1 K11 - X-78.1214 Y65.1147 R1 K12 - X-78.0880 Y65.1321 R1 K13 - X-78.0689 Y65.1622 R1 K14 - X-78.0499 Y65.1882 R1 K15 - X-78.0327 Y65.2113 R1 K16 - X-78.0157 Y65.2336 R1 K17 - X-77.9982 Y65.2563 R1 K18 - X-77.9808 Y65.2789 R1 K19 - X-77.9620 Y65.3036 R1 K20 - X-77.9451 Y65.3262 R1 K21 - X-77.9319 Y65.3435 R1 K22 - X-77.9231 Y65.3551 R1 K23 - X-77.9180 Y65.3617 R1 K24 - X-77.9172 Y65.3628 R1 K25 - X-77.9105 Y65.3716 R1 K26 - X-77.8922 Y65.3956 R1 K27 - X-77.8599 Y65.4370 R1 K28 - X-77.8135 Y65.4921 R1 K29 - X-77.7505 Y65.5653 R1 K30 - X-77.6765 Y65.6428 R1 K31 - X-77.5975 Y65.7156 R1 K32 - X-77.5305 Y65.7928 R1 K33 - X-77.4509 Y65.8579 R1 K34 - X-77.3809 Y65.9232 R1 K35 - X-77.3053 Y65.9781 R1 K36 - X-77.2366 Y66.0465 R1 K37 - X-77.1418 Y66.0928 R1 K38 - X-77.0677 Y66.1679 R1 K39 - X-76.9669 Y66.2259 R1 K40 - X-76.8613 Y66.2868 R1 K41 - X-76.7545 Y66.3547 R1 K42 - X-76.6378 Y66.4111 R1 K43 - X-76.5134 Y66.4712 R1 K44 - X-76.3915 Y66.5277 R1 K45 - X-76.2636 Y66.5714 R1 K46 - X-76.1370 Y66.6204 R1 K47 - X-76.0100 Y66.6590 R1 K48 - X-75.8901 Y66.6920 R1 K49 - X-75.7663 Y66.7235 R1 K50 - X-75.6461 Y66.7490 R1 K51 - X-75.5244 Y66.7698 R1 K52 - X-75.3943 Y66.7850 R1 K53 - X-75.2502 Y66.8071 R1 K54 - X-75.1015 Y66.8159 R1 K55 - X-74.9403 Y66.8231 R1 K56 - X-74.7724 Y66.8221 R1 K57 - X-74.5962 Y66.8180 R1 K58 - X-74.4219 Y66.7995 R1 K59 - X-74.2364 Y66.7754 R1 K60 - X-74.0421 Y66.7380 R1 K61 - X-73.8331 Y66.6934 R1 K62 - X-73.6238 Y66.6206 R1 K63 - X-73.3921 Y66.5531 R1 K64 - X-73.1802 Y66.4193 R1 K65 - X-72.9391 Y66.3337 R1 K66 - X-72.7316 Y66.1842 R1 K67 - X-72.5313 Y66.0484 R1 K68 - X-72.3624 Y65.9069 R1 K69 - X-72.2125 Y65.7687 R1 K70 - X-72.0919 Y65.6448 R1 K71 - X-71.9927 Y65.5312 R1 K72 - X-71.9053 Y65.4252 R1 K73 - X-71.8174 Y65.3112 R1 K74 - X-71.7313 Y65.1914 R1 K75 - X-71.6420 Y65.0564 R1 K76 - X-71.5594 Y64.9089 R1 K77 - X-71.4713 Y64.7526 R1 K78 - X-71.4162 Y64.5969 R1 K79 - X-71.3310 Y64.4558 R1 K80 - X-71.2812 Y64.2920 R1 K81 - X-71.2270 Y64.1234 R1 K82 - X-71.1481 Y63.9431 R1 K83 - X-71.1371 Y63.7110 R1 K84 - X-71.0731 Y63.4737 R1 K85 - X-71.0331 Y63.2269 R1 K86 - X-71.0180 Y62.9718 R1 K87 - X-70.9917 Y62.7219 R1 K88 - X-71.0057 Y62.4934 R1 K89 - X-71.0161 Y62.2882 R1 K90 - X-71.0274 Y62.0872 R1 K91 - X-71.0415 Y61.8944 R1 K92 - X-71.0611 Y61.7031 R1 K93 - X-71.0917 Y61.5091 R1 K94 - X-71.1248 Y61.3101 R1 K95 - X-71.1621 Y61.1206 R1 K96 - X-71.2073 Y60.9277 R1 K97 - X-71.2608 Y60.7385 R1 K98 - X-71.3266 Y60.5490 R1 K99 - X-71.4074 Y60.3586 R1 K100 - X-71.4980 Y60.1583 R1 K101 - X-71.5810 Y59.9646 R1 K102 - X-71.6652 Y59.7748 R1 K103 - X-71.7535 Y59.5933 R1 K104 - X-71.8595 Y59.4137 R1 K105 - X-71.9661 Y59.2438 R1 K106 - X-72.0860 Y59.0659 R1 K107 - X-72.2197 Y58.8813 R1 K108 - X-72.3729 Y58.6860 R1 K109 - X-72.5341 Y58.4968 R1 K110 - X-72.7116 Y58.3057 R1 K111 - X-72.8915 Y58.1289 R1 K112 - X-73.0583 Y57.9778 R1 K113 - X-73.2033 Y57.8529 R1 K114 - X-73.3424 Y57.7330 R1 K115 - X-73.4863 Y57.6276 R1 K116 - X-73.6383 Y57.5199 R1 K117 - X-73.7997 Y57.3894 R1 K118 - X-74.0072 Y57.2755 R1 K119 - X-74.2008 Y57.1497 R1 K120 - X-74.4261 Y57.0388 R1 K121 - X-74.6584 Y56.9130 R1 K122 - X-74.9333 Y56.7966 R1 K123 - X-75.2157 Y56.6800 R1 K124 - X-75.5406 Y56.5839 R1 K125 - X-75.8324 Y56.4770 R1 K126 - X-76.1312 Y56.4124 R1 K127 - X-76.4017 Y56.3569 R1 K128 - X-76.6648 Y56.3130 R1 K129 - X-76.9117 Y56.2748 R1 K130 - X-77.1687 Y56.2617 R1 K131 - X-77.3958 Y56.2370 R1 K132 - X-77.6023 Y56.2341 R1 K133 - X-77.8026 Y56.2396 R1 K134 - X-78.0072 Y56.2310 R1 K135 - X-78.2239 Y56.2485 R1 K136 - X-78.4659 Y56.2586 R1 K137 - X-78.7395 Y56.2975 R1 K138 - X-79.0050 Y56.3364 R1 K139 - X-79.2654 Y56.3828 R1 K140 - X-79.5163 Y56.4352 R1 K141 - X-79.7738 Y56.4981 R1 K142 - X-80.0184 Y56.5682 R1 K143 - X-80.2693 Y56.6513 R1 K144 - X-80.5144 Y56.7414 R1 K145 - X-80.7694 Y56.8439 R1 K146 - X-81.0187 Y56.9504 R1 K147 - X-81.2760 Y57.0686 R1 K148 - X-81.5354 Y57.2012 R1 K149 - X-81.8037 Y57.3533 R1 K150 - X-82.0522 Y57.5087 R1 K151 - X-82.2933 Y57.6662 R1 K152 - X-82.5241 Y57.8358 R1 K153 - X-82.7571 Y58.0157 R1 K154 - X-82.9837 Y58.1995 R1 K155 - X-83.2200 Y58.4047 R1 K156 - X-83.4606 Y58.6323 R1 K157 - X-83.7076 Y58.8855 R1 K158 - X-83.9527 Y59.1588 R1 K159 - X-84.1989 Y59.4566 R1 K160 - X-84.4320 Y59.7694 R1 K161 - X-84.6570 Y60.0869 R1 K162 - X-84.8505 Y60.4166 R1 K163 - X-85.0537 Y60.7466 R1 K164 - X-85.2010 Y61.0872 R1 K165 - X-85.3834 Y61.4062 R1 K166 - X-85.4982 Y61.7374 R1 K167 - X-85.6059 Y62.0171 R1 K168 - X-85.6840 Y62.2439 R1 K169 - X-85.7474 Y62.4431 R1 K170 - X-85.8046 Y62.6347 R1 K171 - X-85.8613 Y62.8385 R1 K172 - X-85.9241 Y63.0851 R1 K173 - X-85.9913 Y63.3817 R1 K174 - X-86.0599 Y63.7211 R1 K175 - X-86.1062 Y64.0536 R1 K176 - X-86.1375 Y64.3765 R1 K177 - X-86.1382 Y64.6744 R1 K178 - X-86.1302 Y64.9692 R1 K179 - X-86.1363 Y65.2551 R1 K180 - X-86.1381 Y65.5733 R1 K181 - X-86.1192 Y65.9139 R1 K182 - X-86.0803 Y66.3047 R1 K183 - X-86.0351 Y66.7085 R1 K184 - X-85.9631 Y67.1479 R1 K185 - X-85.8689 Y67.6065 R1 K186 - X-85.7405 Y68.1018 R1 K187 - X-85.5812 Y68.6134 R1 K188 - X-85.3848 Y69.1398 R1 K189 - X-85.1674 Y69.6384 R1 K190 - X-84.9330 Y70.1083 R1 K191 - X-84.6909 Y70.5403 R1 K192 - X-84.4558 Y70.9205 R1 K193 - X-84.2166 Y71.2749 R1 K194 - X-83.9535 Y71.6348 R1 K195 - X-83.6725 Y71.9851 R1 K196 - X-83.3617 Y72.3508 R1 K197 - X-83.0016 Y72.7057 R1 K198 - X-82.6573 Y73.0905 R1 K199 - X-82.2526 Y73.3462 R1 K200 - X-81.9726 Y73.7838 R1 K201 - X-81.4759 Y73.8562 R1 K202 - X-81.2363 Y74.2501 R1 K203 - X-80.7867 Y74.3737 R1 K204 - X-80.4384 Y74.6786 R1 K205 - X-80.0092 Y74.8514 R1 K206 - X-79.6151 Y75.0592 R1 K207 - X-79.1830 Y75.2366 R1 K208 - X-78.7584 Y75.4001 R1 K209 - X-78.3396 Y75.5412 R1 K210 - X-77.8863 Y75.6769 R1 K211 - X-77.3776 Y75.8046 R1 K212 - X-76.8697 Y75.9095 R1 K213 - X-76.3351 Y75.9951 R1 K214 - X-75.7832 Y76.0576 R1 K215 - X-75.2489 Y76.0938 R1 K216 - X-74.7533 Y76.1066 R1 K217 - X-74.2523 Y76.0994 R1 K218 - X-73.7785 Y76.0739 R1 K219 - X-73.3110 Y76.0315 R1 K220 - X-72.8259 Y75.9691 R1 K221 - X-72.2972 Y75.8794 R1 K222 - X-71.7704 Y75.7667 R1 K223 - X-71.2123 Y75.6210 R1 K224 - X-70.6569 Y75.4481 R1 K225 - X-70.0922 Y75.2438 R1 K226 - X-69.5497 Y75.0193 R1 K227 - X-68.9913 Y74.7573 R1 K228 - X-68.4586 Y74.4761 R1 K229 - X-67.9121 Y74.1538 R1 K230 - X-67.4020 Y73.8195 R1 K231 - X-66.8922 Y73.4506 R1 K232 - X-66.3981 Y73.0572 R1 K233 - X-65.8912 Y72.6119 R1 K234 - X-65.3922 Y72.1274 R1 K235 - X-64.8978 Y71.5930 R1 K236 - X-64.4482 Y71.0510 R1 K237 - X-64.0543 Y70.5236 R1 K238 - X-63.7143 Y70.0219 R1 K239 - X-63.4446 Y69.5874 R1 K240 - X-63.2232 Y69.2030 R1 K241 - X-63.0326 Y68.8485 R1 K242 - X-62.8441 Y68.4733 R1 K243 - X-62.6628 Y68.0854 R1 K244 - X-62.4782 Y67.6550 R1 K245 - X-62.2989 Y67.1935 R1 K246 - X-62.1279 Y66.7001 R1 K247 - X-61.9727 Y66.1939 R1 K248 - X-61.8295 Y65.6578 R1 K249 - X-61.6960 Y65.0661 R1 K250 - X-61.5729 Y64.3841 R1 K251 - X-61.4698 Y63.5800 R1 K252 - X-61.4108 Y62.7224 R1 K253 - X-61.4043 Y61.8278 R1 K254 - X-61.4529 Y60.9430 R1 K255 - X-61.5456 Y60.1267 R1 K256 - X-61.6643 Y59.4063 R1 K257 - X-61.8120 Y58.7123 R1 K258 - X-61.9820 Y58.0585 R1 K259 - X-62.1778 Y57.4196 R1 K260 - X-62.4134 Y56.7577 R1 K261 - X-62.6889 Y56.0851 R1 K262 - X-62.9996 Y55.4172 R1 K263 - X-63.3692 Y54.7143 R1 K264 - X-63.8108 Y53.9710 R1 K265 - X-64.3243 Y53.2082 R1 K266 - X-64.9328 Y52.4130 R1 K267 - X-65.6225 Y51.6256 R1 K268 - X-66.3474 Y50.9019 R1 K269 - X-67.0612 Y50.2737 R1 K270 - X-67.7302 Y49.7493 R1 K271 - X-68.3043 Y49.3417 R1 K272 - X-68.8172 Y49.0062 R1 K273 - X-69.3105 Y48.7070 R1 K274 - X-69.8348 Y48.4123 R1 K275 - X-70.4875 Y48.0767 R1 K276 - X-71.3268 Y47.6957 R1 K277 - X-72.3237 Y47.3143 R1 K278 - X-73.4861 Y46.9598 R1 K279 - X-74.7666 Y46.6760 R1 K280 - X-76.0067 Y46.5013 R1 K281 - X-77.1377 Y46.4235 R1 K282 - X-78.1544 Y46.4180 R1 K283 - X-79.0336 Y46.4600 R1 K284 - X-79.7970 Y46.5307 R1 K285 - X-80.5114 Y46.6269 R1 K286 - X-81.2380 Y46.7547 R1 K287 - X-82.0068 Y46.9238 R1 K288 - X-82.7697 Y47.1283 R1 K289 - X-83.5373 Y47.3720 R1 K290 - X-84.3112 Y47.6579 R1 K291 - X-85.0498 Y47.9699 R1 K292 - X-85.7351 Y48.2942 R1 K293 - X-86.4220 Y48.6557 R1 K294 - X-87.0802 Y49.0386 R1 K295 - X-87.7349 Y49.4568 R1 K296 - X-88.4029 Y49.9251 R1 K297 - X-89.0659 Y50.4364 R1 K298 - X-89.7019 Y50.9752 R1 K299 - X-90.3372 Y51.5662 R1 K300 - X-90.9228 Y52.1644 R1 K301 - X-91.4587 Y52.7620 R1 K302 - X-91.9715 Y53.3850 R1 K303 - X-92.4872 Y54.0697 R1 K304 - X-92.9914 Y54.8058 R1 K305 - X-93.5210 Y55.6676 R1 K306 - X-94.0384 Y56.6272 R1 K307 - X-94.5223 Y57.6703 R1 K308 - X-94.9369 Y58.7292 R1 K309 - X-95.2895 Y59.8173 R1 K310 - X-95.5636 Y60.8628 R1 K311 - X-95.7787 Y61.9128 R1 K312 - X-95.9450 Y63.0271 R1 K313 - X-96.0570 Y64.2804 R1 K314 - X-96.0887 Y65.6434 R1 K315 - X-96.0117 Y67.1896 R1 K316 - X-95.7849 Y68.8848 R1 K317 - X-95.3938 Y70.6228 R1 K318 - X-94.8491 Y72.3197 R1 K319 - X-94.1332 Y74.0121 R1 K320 - X-93.2814 Y75.6158 R1 K321 - X-92.2786 Y77.1630 R1 K322 - X-91.1344 Y78.6253 R1 K323 - X-89.7926 Y80.0514 R1 K324 - X-88.3438 Y81.3279 R1 K325 - X-86.8063 Y82.4500 R1 K326 - X-85.2073 Y83.4151 R1 K327 - X-83.5453 Y84.2315 R1 K328 - X-81.8476 Y84.8988 R1 K329 - X-80.0202 Y85.4440 R1 K330 - X-78.0905 Y85.8388 R1 K331 - X-76.1270 Y86.0515 R1 K332 - X-74.1042 Y86.1038 R1 K333 - X-72.1134 Y85.9410 R1 K334 - X-70.3215 Y85.6875 R1 K335 - X-68.5712 Y85.2079 R1 K336 - X-67.1312 Y84.8600 R1 K337 - X-65.6308 Y84.1229 R1 K338 - X-64.6063 Y83.7875 R1 K339 - X-63.3163 Y82.8235 R1 K340 - X-62.1214 Y84.6009 R1 K341 - X-63.4110 Y85.4617 R1 K342 - X-64.3155 Y85.9210 R1 K343 - X-65.5866 Y86.6071 R1 K344 - X-66.8279 Y87.1139 R1 K345 - X-68.2878 Y87.6844 R1 K346 - X-69.7642 Y88.1080 R1 K347 - X-71.2842 Y88.4664 R1 K348 - X-72.7041 Y88.7042 R1 K349 - X-74.0052 Y88.8509 R1 K350 - X-75.2479 Y88.9291 R1 K351 - X-76.4245 Y88.9482 R1 K352 - X-77.5679 Y88.9149 R1 K353 - X-78.7239 Y88.8281 R1 K354 - X-79.9353 Y88.6800 R1 K355 - X-81.0976 Y88.4781 R1 K356 - X-82.3310 Y88.2104 R1 K357 - X-83.7403 Y87.7919 R1 K358 - X-85.4340 Y88.1674 R1 K359 - X-87.0285 Y88.8003 R1 K360 - X-88.3868 Y90.6629 R1 K361 - X-89.2295 Y92.5789 R1 K362 - X-91.0310 Y93.6550 R1 K363 - X-92.8707 Y94.0388 R1 K364 - X-94.8789 Y93.6716 R1 K365 - X-96.5076 Y92.6811 R1 K366 - X-97.8348 Y90.9330 R1 K367 - X-98.2942 Y88.7018 R1 K368 - X-97.4905 Y86.2191 R1 K369 - X-95.9369 Y84.8179 R1 K370 - X-95.2116 Y82.8188 R1 K371 - X-95.2978 Y81.1676 R1 K372 - X-95.7188 Y79.7571 R1 K373 - X-96.5500 Y78.6785 R1 K374 - X-97.2814 Y77.6412 R1 K375 - X-98.0087 Y76.4724 R1 K376 - X-98.7470 Y75.1297 R1 K377 - X-99.4507 Y73.6257 R1 K378 - X-100.0936 Y71.9710 R1 K379 - X-100.6588 Y70.1153 R1 K380 - X-101.0929 Y68.1469 R1 K381 - X-101.3532 Y66.2083 R1 K382 - X-101.4660 Y64.3533 R1 K383 - X-101.4283 Y62.6243 R1 K384 - X-101.3214 Y61.1022 R1 K385 - X-101.1263 Y59.7460 R1 K386 - X-100.9032 Y58.4500 R1 K387 - X-100.4515 Y57.0141 R1 K388 - X-100.3644 Y55.2248 R1 K389 - X-101.1660 Y53.1940 R1 K390 - X-102.9048 Y51.5175 R1 K391 - X-105.7506 Y50.5183 R1 K392 - X-106.7664 Y47.5360 R1 K393 - X-106.2261 Y44.8663 R1 K394 - X-104.7541 Y42.9853 R1 K395 - X-102.8335 Y42.0743 R1 K396 - X-101.4039 Y41.9198 R1 K397 - X-100.3354 Y42.0643 R1 K398 - X-99.7082 Y42.2839 R1 K399 - X-99.3802 Y42.4191 R1 K400 - X-99.2852 Y42.4595 R1 K401 - X-99.2732 Y42.4675 R1 K402 - X-99.1700 Y42.5363 R1 K403 - X-98.9641 Y42.6735 R1 K404 - X-98.6558 Y42.8790 R1 K405 - X-98.2469 Y43.1526 R1 K406 - X-97.7302 Y43.4817 R1 K407 - X-97.2463 Y43.8402 R1 K408 - X-96.7655 Y44.1219 R1 K409 - X-96.2937 Y44.3329 R1 K410 - X-95.8240 Y44.4898 R1 K411 - X-95.3767 Y44.5957 R1 K412 - X-94.9180 Y44.6612 R1 K413 - X-94.4404 Y44.6832 R1 K414 - X-93.9580 Y44.6579 R1 K415 - X-93.4953 Y44.5890 R1 K416 - X-93.0425 Y44.4782 R1 K417 - X-92.6045 Y44.3280 R1 K418 - X-92.1447 Y44.1202 R1 K419 - X-91.6369 Y43.8289 R1 K420 - X-91.1136 Y43.3969 R1 K421 - X-90.4924 Y42.9832 R1 K422 - X-89.8165 Y42.5176 R1 K423 - X-89.0758 Y42.0672 R1 K424 - X-88.3020 Y41.6255 R1 K425 - X-87.4675 Y41.1904 R1 K426 - X-86.5581 Y40.7578 R1 K427 - X-85.5646 Y40.3366 R1 K428 - X-84.5663 Y39.9636 R1 K429 - X-83.5390 Y39.6304 R1 K430 - X-82.5260 Y39.3483 R1 K431 - X-81.5447 Y39.1174 R1 K432 - X-80.5284 Y38.9189 R1 K433 - X-79.4092 Y38.7496 R1 K434 - X-78.1562 Y38.6188 R1 K435 - X-76.7890 Y38.5483 R1 K436 - X-75.2438 Y38.5585 R1 K437 - X-73.6695 Y38.6706 R1 K438 - X-72.0547 Y38.8843 R1 K439 - X-70.6053 Y39.1859 R1 K440 - X-69.3013 Y39.5564 R1 K441 - X-68.1927 Y39.5504 R1 K442 - X-67.3549 Y39.3577 R1 K443 - X-66.7470 Y39.1380 R1 K444 - X-66.2819 Y38.9051 R1 K445 - X-65.9139 Y38.6788 R1 K446 - X-65.5680 Y38.4248 R1 K447 - X-65.1857 Y38.0892 R1 K448 - X-64.7999 Y37.6739 R1 K449 - X-64.4294 Y37.1491 R1 K450 - X-64.0430 Y36.5561 R1 K451 - X-63.7115 Y35.8761 R1 K452 - X-63.3161 Y35.3649 R1 K453 - X-62.9165 Y34.9587 R1 K454 - X-62.5343 Y34.6443 R1 K455 - X-62.1806 Y34.4013 R1 K456 - X-61.8628 Y34.2159 R1 K457 - X-61.5197 Y34.0492 R1 K458 - X-61.1582 Y33.9069 R1 K459 - X-60.7769 Y33.7900 R1 K460 - X-60.3920 Y33.7047 R1 K461 - X-60.0044 Y33.6509 R1 K462 - X-59.6084 Y33.6273 R1 K463 - X-59.2076 Y33.6352 R1 K464 - X-58.7966 Y33.6755 R1 K465 - X-58.3528 Y33.7572 R1 K466 - X-57.8678 Y33.8950 R1 K467 - X-57.3599 Y34.0990 R1 K468 - X-56.8450 Y34.3790 R1 K469 - X-56.3729 Y34.7150 R1 K470 - X-55.9601 Y35.0880 R1 K471 - X-55.6168 Y35.4728 R1 K472 - X-55.3360 Y35.8572 R1 K473 - X-55.1075 Y36.2366 R1 K474 - X-54.9103 Y36.6389 R1 K475 - X-54.7306 Y37.1081 R1 K476 - X-54.5834 Y37.6567 R1 K477 - X-54.4837 Y38.3544 R1 K478 - X-54.4963 Y39.1927 R1 K479 - X-54.6737 Y40.1651 R1 K480 - X-55.1393 Y41.1231 R1 K481 - X-55.7918 Y42.0034 R1 K482 - X-56.4072 Y42.8062 R1 K483 - X-56.8313 Y43.6292 R1 K484 - X-57.0501 Y44.3600 R1 K485 - X-57.1542 Y44.9776 R1 K486 - X-57.1786 Y45.4609 R1 K487 - X-57.1699 Y45.8057 R1 K488 - X-57.1486 Y46.0295 R1 K489 - X-57.1321 Y46.1671 R1 K490 - X-57.1253 Y46.2209 R1 K491 - X-57.1200 Y46.2577 R1 K492 - X-57.1058 Y46.3541 R1 K493 - X-57.0820 Y46.4985 R1 K494 - X-57.0426 Y46.6836 R1 K495 - X-56.9847 Y46.9099 R1 K496 - X-56.9115 Y47.1440 R1 K497 - X-56.8360 Y47.3519 R1 K498 - X-56.7525 Y47.5546 R1 K499 - X-56.6572 Y47.7593 R1 K500 - X-56.5398 Y47.9848 R1 K501 - X-56.4012 Y48.2193 R1 K502 - X-56.2348 Y48.4708 R1 K503 - X-56.0380 Y48.7155 R1 K504 - X-55.8488 Y48.9796 R1 K505 - X-55.6740 Y49.2245 R1 K506 - X-55.5097 Y49.4601 R1 K507 - X-55.3444 Y49.6996 R1 K508 - X-55.2291 Y49.9870 R1 K509 - X-55.1351 Y50.3111 R1 K510 - X-55.1097 Y50.7040 R1 K511 - X-55.1626 Y51.1368 R1 K512 - X-55.3281 Y51.5719 R1 K513 - X-55.6377 Y52.0290 R1 K514 - X-56.1172 Y52.4205 R1 K515 - X-56.7570 Y52.6799 R1 K516 - X-57.5034 Y52.6332 R1 K517 - X-58.1572 Y53.2262 R1 K518 - X-58.7379 Y53.6016 R1 K519 - X-59.1757 Y54.0506 R1 K520 - X-59.4883 Y54.4688 R1 K521 - X-59.7102 Y54.8570 R1 K522 - X-59.8354 Y55.1248 R1 K523 - X-59.9089 Y55.3246 R1 K524 - X-59.9523 Y55.4553 R1 K525 - X-59.9749 Y55.5261 R1 K526 - X-59.9939 Y55.6821 R1 K527 - X-60.0968 Y56.0450 R1 K528 - X-60.2882 Y56.8496 R1 K529 - X-60.0459 Y58.0048 R1 K530 - X-59.5723 Y59.2878 R1 K531 - X-59.4668 Y60.7493 R1 K532 - X-59.3982 Y62.0724 R1 K533 - X-59.4429 Y63.2366 R1 K534 - X-59.5387 Y64.2094 R1 K535 - X-59.6641 Y65.0317 R1 K536 - X-59.8071 Y65.7533 R1 K537 - X-59.9840 Y66.4809 R1 K538 - X-60.2172 Y67.2798 R1 K539 - X-60.5364 Y68.1896 R1 K540 - X-60.9744 Y69.2215 R1 K541 - X-61.5592 Y70.3545 R1 K542 - X-62.2943 Y71.5222 R1 K543 - X-63.1541 Y72.6492 R1 K544 - X-64.0950 Y73.6731 R1 K545 - X-65.0562 Y74.5495 R1 K546 - X-66.0058 Y75.2847 R1 K547 - X-66.9375 Y75.9005 R1 K548 - X-67.8726 Y76.4297 R1 K549 - X-68.8465 Y76.8950 R1 K550 - X-69.9097 Y77.3103 R1 K551 - X-71.0385 Y77.6520 R1 K552 - X-72.2366 Y77.9081 R1 K553 - X-73.3718 Y78.0524 R1 K554 - X-74.4966 Y78.1065 R1 K555 - X-75.5142 Y78.0793 R1 K556 - X-76.5166 Y77.9839 R1 K557 - X-77.5002 Y77.8226 R1 K558 - X-78.5557 Y77.5677 R1 K559 - X-79.5871 Y77.2317 R1 K560 - X-80.6445 Y76.7861 R1 K561 - X-81.6088 Y76.2806 R1 K562 - X-82.4866 Y75.7280 R1 K563 - X-83.2620 Y75.1557 R1 K564 - X-83.9787 Y74.5453 R1 K565 - X-84.6634 Y73.8753 R1 K566 - X-85.3317 Y73.1158 R1 K567 - X-85.9756 Y72.2533 R1 K568 - X-86.5709 Y71.2893 R1 K569 - X-87.0835 Y70.2579 R1 K570 - X-87.4848 Y69.2208 R1 K571 - X-87.7675 Y68.2393 R1 K572 - X-87.9478 Y67.3547 R1 K573 - X-88.0526 Y66.5624 R1 K574 - X-88.1043 Y65.8381 R1 K575 - X-88.1146 Y65.1483 R1 K576 - X-88.0821 Y64.3914 R1 K577 - X-87.9887 Y63.5457 R1 K578 - X-87.8095 Y62.6068 R1 K579 - X-87.5420 Y61.6610 R1 K580 - X-87.1769 Y60.7124 R1 K581 - X-86.7661 Y59.8770 R1 K582 - X-86.3379 Y59.1581 R1 K583 - X-85.9251 Y58.5640 R1 K584 - X-85.5209 Y58.0532 R1 K585 - X-85.1304 Y57.6121 R1 K586 - X-84.7239 Y57.1999 R1 K587 - X-84.2836 Y56.7987 R1 K588 - X-83.8018 Y56.4083 R1 K589 - X-83.2765 Y56.0332 R1 K590 - X-82.6941 Y55.6716 R1 K591 - X-82.0896 Y55.3518 R1 K592 - X-81.4995 Y55.0888 R1 K593 - X-80.9166 Y54.8724 R1 K594 - X-80.3623 Y54.7045 R1 K595 - X-79.8783 Y54.5861 R1 K596 - X-79.4171 Y54.4968 R1 K597 - X-78.9279 Y54.4260 R1 K598 - X-78.4216 Y54.3785 R1 K599 - X-77.8489 Y54.3561 R1 K600 - X-77.1713 Y54.3747 R1 K601 - X-76.4289 Y54.4540 R1 K602 - X-75.7026 Y54.5941 R1 K603 - X-74.9853 Y54.7971 R1 K604 - X-74.3519 Y55.0342 R1 K605 - X-73.8349 Y55.2709 R1 K606 - X-73.4158 Y55.4935 R1 K607 - X-73.0511 Y55.7120 R1 K608 - X-72.7402 Y55.9172 R1 K609 - X-72.4394 Y56.1342 R1 K610 - X-72.1163 Y56.3902 R1 K611 - X-71.7634 Y56.7011 R1 K612 - X-71.3948 Y57.0679 R1 K613 - X-71.0338 Y57.4796 R1 K614 - X-70.6922 Y57.9306 R1 K615 - X-70.3871 Y58.4002 R1 K616 - X-70.1196 Y58.8830 R1 K617 - X-69.8783 Y59.3995 R1 K618 - X-69.6703 Y59.9599 R1 K619 - X-69.4865 Y60.5805 R1 K620 - X-69.3846 Y61.2729 R1 K621 - X-69.3420 Y61.9859 R1 K622 - X-69.3653 Y62.6846 R1 K623 - X-69.4373 Y63.3326 R1 K624 - X-69.5439 Y63.8944 R1 K625 - X-69.6717 Y64.3635 R1 K626 - X-69.8106 Y64.7559 R1 K627 - X-69.9673 Y65.1147 R1 K628 - X-70.1585 Y65.4735 R1 K629 - X-70.4036 Y65.8427 R1 K630 - X-70.7108 Y66.2253 R1 K631 - X-71.0814 Y66.6075 R1 K632 - X-71.4841 Y66.9660 R1 K633 - X-71.9000 Y67.2809 R1 K634 - X-72.3090 Y67.5355 R1 K635 - X-72.7001 Y67.7315 R1 K636 - X-73.0687 Y67.8868 R1 K637 - X-73.4263 Y68.0106 R1 K638 - X-73.7882 Y68.1067 R1 K639 - X-74.1732 Y68.1732 R1 K640 - X-74.5703 Y68.2023 R1 K641 - X-74.9798 Y68.1932 R1 K642 - X-75.3547 Y68.1486 R1 K643 - X-75.7133 Y68.0736 R1 K644 - X-76.0256 Y67.9799 R1 K645 - X-76.3199 Y67.8657 R1 K646 - X-76.5949 Y67.7330 R1 K647 - X-76.8761 Y67.5652 R1 K648 - X-77.1354 Y67.3778 R1 K649 - X-77.3882 Y67.1575 R1 K650 - X-77.6008 Y66.9311 R1 K651 - X-77.7774 Y66.6968 R1 K652 - X-77.9145 Y66.4734 R1 K653 - X-78.0313 Y66.2435 R1 K654 - X-78.1141 Y66.0268 R1 K655 - X-78.1954 Y65.7851 R1 K656 - X-78.1992 Y65.6515 R1 K657 - X-78.2319 Y65.4948 R1 K658 - X-78.2477 Y65.4069 R1 K659 - X-78.2521 Y65.3785 R1 K660 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G1 X-78.2521 Y65.3785 Z1 -G0 X-78.2521 Y65.3785 Z10 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc b/nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc deleted file mode 100644 index c82d5c96afd..00000000000 --- a/nc_files/nurbs/G6/Curva_Scrool_F #1=2.ngc +++ /dev/null @@ -1,688 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X-78.2522 Y65.3784 - Z1 - G1 Z-1 F100 - -F100 -G6.2 X-78.2522 Y65.3784 R1 K0 P6 Q2 - X-78.2522 Y65.3768 R1 K0 - X-78.2524 Y65.3684 R1 K0 - X-78.2527 Y65.3539 R1 K0 - X-78.2533 Y65.3340 R1 K0 - X-78.2547 Y65.3103 R1 K0 - X-78.2555 Y65.2837 R1 K1 - X-78.2558 Y65.2600 R1 K2 - X-78.2558 Y65.2384 R1 K3 - X-78.2554 Y65.2185 R1 K4 - X-78.2553 Y65.1975 R1 K5 - X-78.2500 Y65.1772 R1 K6 - X-78.2410 Y65.1587 R1 K7 - X-78.2279 Y65.1419 R1 K8 - X-78.2092 Y65.1264 R1 K9 - X-78.1851 Y65.1148 R1 K10 - X-78.1553 Y65.1095 R1 K11 - X-78.1214 Y65.1147 R1 K12 - X-78.0880 Y65.1321 R1 K13 - X-78.0689 Y65.1622 R1 K14 - X-78.0499 Y65.1882 R1 K15 - X-78.0327 Y65.2113 R1 K16 - X-78.0157 Y65.2336 R1 K17 - X-77.9982 Y65.2563 R1 K18 - X-77.9808 Y65.2789 R1 K19 - X-77.9620 Y65.3036 R1 K20 - X-77.9451 Y65.3262 R1 K21 - X-77.9319 Y65.3435 R1 K22 - X-77.9231 Y65.3551 R1 K23 - X-77.9180 Y65.3617 R1 K24 - X-77.9172 Y65.3628 R1 K25 - X-77.9105 Y65.3716 R1 K26 - X-77.8922 Y65.3956 R1 K27 - X-77.8599 Y65.4370 R1 K28 - X-77.8135 Y65.4921 R1 K29 - X-77.7505 Y65.5653 R1 K30 - X-77.6765 Y65.6428 R1 K31 - X-77.5975 Y65.7156 R1 K32 - X-77.5305 Y65.7928 R1 K33 - X-77.4509 Y65.8579 R1 K34 - X-77.3809 Y65.9232 R1 K35 - X-77.3053 Y65.9781 R1 K36 - X-77.2366 Y66.0465 R1 K37 - X-77.1418 Y66.0928 R1 K38 - X-77.0677 Y66.1679 R1 K39 - X-76.9669 Y66.2259 R1 K40 - X-76.8613 Y66.2868 R1 K41 - X-76.7545 Y66.3547 R1 K42 - X-76.6378 Y66.4111 R1 K43 - X-76.5134 Y66.4712 R1 K44 - X-76.3915 Y66.5277 R1 K45 - X-76.2636 Y66.5714 R1 K46 - X-76.1370 Y66.6204 R1 K47 - X-76.0100 Y66.6590 R1 K48 - X-75.8901 Y66.6920 R1 K49 - X-75.7663 Y66.7235 R1 K50 - X-75.6461 Y66.7490 R1 K51 - X-75.5244 Y66.7698 R1 K52 - X-75.3943 Y66.7850 R1 K53 - X-75.2502 Y66.8071 R1 K54 - X-75.1015 Y66.8159 R1 K55 - X-74.9403 Y66.8231 R1 K56 - X-74.7724 Y66.8221 R1 K57 - X-74.5962 Y66.8180 R1 K58 - X-74.4219 Y66.7995 R1 K59 - X-74.2364 Y66.7754 R1 K60 - X-74.0421 Y66.7380 R1 K61 - X-73.8331 Y66.6934 R1 K62 - X-73.6238 Y66.6206 R1 K63 - X-73.3921 Y66.5531 R1 K64 - X-73.1802 Y66.4193 R1 K65 - X-72.9391 Y66.3337 R1 K66 - X-72.7316 Y66.1842 R1 K67 - X-72.5313 Y66.0484 R1 K68 - X-72.3624 Y65.9069 R1 K69 - X-72.2125 Y65.7687 R1 K70 - X-72.0919 Y65.6448 R1 K71 - X-71.9927 Y65.5312 R1 K72 - X-71.9053 Y65.4252 R1 K73 - X-71.8174 Y65.3112 R1 K74 - X-71.7313 Y65.1914 R1 K75 - X-71.6420 Y65.0564 R1 K76 - X-71.5594 Y64.9089 R1 K77 - X-71.4713 Y64.7526 R1 K78 - X-71.4162 Y64.5969 R1 K79 - X-71.3310 Y64.4558 R1 K80 - X-71.2812 Y64.2920 R1 K81 - X-71.2270 Y64.1234 R1 K82 - X-71.1481 Y63.9431 R1 K83 - X-71.1371 Y63.7110 R1 K84 - X-71.0731 Y63.4737 R1 K85 - X-71.0331 Y63.2269 R1 K86 - X-71.0180 Y62.9718 R1 K87 - X-70.9917 Y62.7219 R1 K88 - X-71.0057 Y62.4934 R1 K89 - X-71.0161 Y62.2882 R1 K90 - X-71.0274 Y62.0872 R1 K91 - X-71.0415 Y61.8944 R1 K92 - X-71.0611 Y61.7031 R1 K93 - X-71.0917 Y61.5091 R1 K94 - X-71.1248 Y61.3101 R1 K95 - X-71.1621 Y61.1206 R1 K96 - X-71.2073 Y60.9277 R1 K97 - X-71.2608 Y60.7385 R1 K98 - X-71.3266 Y60.5490 R1 K99 - X-71.4074 Y60.3586 R1 K100 - X-71.4980 Y60.1583 R1 K101 - X-71.5810 Y59.9646 R1 K102 - X-71.6652 Y59.7748 R1 K103 - X-71.7535 Y59.5933 R1 K104 - X-71.8595 Y59.4137 R1 K105 - X-71.9661 Y59.2438 R1 K106 - X-72.0860 Y59.0659 R1 K107 - X-72.2197 Y58.8813 R1 K108 - X-72.3729 Y58.6860 R1 K109 - X-72.5341 Y58.4968 R1 K110 - X-72.7116 Y58.3057 R1 K111 - X-72.8915 Y58.1289 R1 K112 - X-73.0583 Y57.9778 R1 K113 - X-73.2033 Y57.8529 R1 K114 - X-73.3424 Y57.7330 R1 K115 - X-73.4863 Y57.6276 R1 K116 - X-73.6383 Y57.5199 R1 K117 - X-73.7997 Y57.3894 R1 K118 - X-74.0072 Y57.2755 R1 K119 - X-74.2008 Y57.1497 R1 K120 - X-74.4261 Y57.0388 R1 K121 - X-74.6584 Y56.9130 R1 K122 - X-74.9333 Y56.7966 R1 K123 - X-75.2157 Y56.6800 R1 K124 - X-75.5406 Y56.5839 R1 K125 - X-75.8324 Y56.4770 R1 K126 - X-76.1312 Y56.4124 R1 K127 - X-76.4017 Y56.3569 R1 K128 - X-76.6648 Y56.3130 R1 K129 - X-76.9117 Y56.2748 R1 K130 - X-77.1687 Y56.2617 R1 K131 - X-77.3958 Y56.2370 R1 K132 - X-77.6023 Y56.2341 R1 K133 - X-77.8026 Y56.2396 R1 K134 - X-78.0072 Y56.2310 R1 K135 - X-78.2239 Y56.2485 R1 K136 - X-78.4659 Y56.2586 R1 K137 - X-78.7395 Y56.2975 R1 K138 - X-79.0050 Y56.3364 R1 K139 - X-79.2654 Y56.3828 R1 K140 - X-79.5163 Y56.4352 R1 K141 - X-79.7738 Y56.4981 R1 K142 - X-80.0184 Y56.5682 R1 K143 - X-80.2693 Y56.6513 R1 K144 - X-80.5144 Y56.7414 R1 K145 - X-80.7694 Y56.8439 R1 K146 - X-81.0187 Y56.9504 R1 K147 - X-81.2760 Y57.0686 R1 K148 - X-81.5354 Y57.2012 R1 K149 - X-81.8037 Y57.3533 R1 K150 - X-82.0522 Y57.5087 R1 K151 - X-82.2933 Y57.6662 R1 K152 - X-82.5241 Y57.8358 R1 K153 - X-82.7571 Y58.0157 R1 K154 - X-82.9837 Y58.1995 R1 K155 - X-83.2200 Y58.4047 R1 K156 - X-83.4606 Y58.6323 R1 K157 - X-83.7076 Y58.8855 R1 K158 - X-83.9527 Y59.1588 R1 K159 - X-84.1989 Y59.4566 R1 K160 - X-84.4320 Y59.7694 R1 K161 - X-84.6570 Y60.0869 R1 K162 - X-84.8505 Y60.4166 R1 K163 - X-85.0537 Y60.7466 R1 K164 - X-85.2010 Y61.0872 R1 K165 - X-85.3834 Y61.4062 R1 K166 - X-85.4982 Y61.7374 R1 K167 - X-85.6059 Y62.0171 R1 K168 - X-85.6840 Y62.2439 R1 K169 - X-85.7474 Y62.4431 R1 K170 - X-85.8046 Y62.6347 R1 K171 - X-85.8613 Y62.8385 R1 K172 - X-85.9241 Y63.0851 R1 K173 - X-85.9913 Y63.3817 R1 K174 - X-86.0599 Y63.7211 R1 K175 - X-86.1062 Y64.0536 R1 K176 - X-86.1375 Y64.3765 R1 K177 - X-86.1382 Y64.6744 R1 K178 - X-86.1302 Y64.9692 R1 K179 - X-86.1363 Y65.2551 R1 K180 - X-86.1381 Y65.5733 R1 K181 - X-86.1192 Y65.9139 R1 K182 - X-86.0803 Y66.3047 R1 K183 - X-86.0351 Y66.7085 R1 K184 - X-85.9631 Y67.1479 R1 K185 - X-85.8689 Y67.6065 R1 K186 - X-85.7405 Y68.1018 R1 K187 - X-85.5812 Y68.6134 R1 K188 - X-85.3848 Y69.1398 R1 K189 - X-85.1674 Y69.6384 R1 K190 - X-84.9330 Y70.1083 R1 K191 - X-84.6909 Y70.5403 R1 K192 - X-84.4558 Y70.9205 R1 K193 - X-84.2166 Y71.2749 R1 K194 - X-83.9535 Y71.6348 R1 K195 - X-83.6725 Y71.9851 R1 K196 - X-83.3617 Y72.3508 R1 K197 - X-83.0016 Y72.7057 R1 K198 - X-82.6573 Y73.0905 R1 K199 - X-82.2526 Y73.3462 R1 K200 - X-81.9726 Y73.7838 R1 K201 - X-81.4759 Y73.8562 R1 K202 - X-81.2363 Y74.2501 R1 K203 - X-80.7867 Y74.3737 R1 K204 - X-80.4384 Y74.6786 R1 K205 - X-80.0092 Y74.8514 R1 K206 - X-79.6151 Y75.0592 R1 K207 - X-79.1830 Y75.2366 R1 K208 - X-78.7584 Y75.4001 R1 K209 - X-78.3396 Y75.5412 R1 K210 - X-77.8863 Y75.6769 R1 K211 - X-77.3776 Y75.8046 R1 K212 - X-76.8697 Y75.9095 R1 K213 - X-76.3351 Y75.9951 R1 K214 - X-75.7832 Y76.0576 R1 K215 - X-75.2489 Y76.0938 R1 K216 - X-74.7533 Y76.1066 R1 K217 - X-74.2523 Y76.0994 R1 K218 - X-73.7785 Y76.0739 R1 K219 - X-73.3110 Y76.0315 R1 K220 - X-72.8259 Y75.9691 R1 K221 - X-72.2972 Y75.8794 R1 K222 - X-71.7704 Y75.7667 R1 K223 - X-71.2123 Y75.6210 R1 K224 - X-70.6569 Y75.4481 R1 K225 - X-70.0922 Y75.2438 R1 K226 - X-69.5497 Y75.0193 R1 K227 - X-68.9913 Y74.7573 R1 K228 - X-68.4586 Y74.4761 R1 K229 - X-67.9121 Y74.1538 R1 K230 - X-67.4020 Y73.8195 R1 K231 - X-66.8922 Y73.4506 R1 K232 - X-66.3981 Y73.0572 R1 K233 - X-65.8912 Y72.6119 R1 K234 - X-65.3922 Y72.1274 R1 K235 - X-64.8978 Y71.5930 R1 K236 - X-64.4482 Y71.0510 R1 K237 - X-64.0543 Y70.5236 R1 K238 - X-63.7143 Y70.0219 R1 K239 - X-63.4446 Y69.5874 R1 K240 - X-63.2232 Y69.2030 R1 K241 - X-63.0326 Y68.8485 R1 K242 - X-62.8441 Y68.4733 R1 K243 - X-62.6628 Y68.0854 R1 K244 - X-62.4782 Y67.6550 R1 K245 - X-62.2989 Y67.1935 R1 K246 - X-62.1279 Y66.7001 R1 K247 - X-61.9727 Y66.1939 R1 K248 - X-61.8295 Y65.6578 R1 K249 - X-61.6960 Y65.0661 R1 K250 - X-61.5729 Y64.3841 R1 K251 - X-61.4698 Y63.5800 R1 K252 - X-61.4108 Y62.7224 R1 K253 - X-61.4043 Y61.8278 R1 K254 - X-61.4529 Y60.9430 R1 K255 - X-61.5456 Y60.1267 R1 K256 - X-61.6643 Y59.4063 R1 K257 - X-61.8120 Y58.7123 R1 K258 - X-61.9820 Y58.0585 R1 K259 - X-62.1778 Y57.4196 R1 K260 - X-62.4134 Y56.7577 R1 K261 - X-62.6889 Y56.0851 R1 K262 - X-62.9996 Y55.4172 R1 K263 - X-63.3692 Y54.7143 R1 K264 - X-63.8108 Y53.9710 R1 K265 - X-64.3243 Y53.2082 R1 K266 - X-64.9328 Y52.4130 R1 K267 - X-65.6225 Y51.6256 R1 K268 - X-66.3474 Y50.9019 R1 K269 - X-67.0612 Y50.2737 R1 K270 - X-67.7302 Y49.7493 R1 K271 - X-68.3043 Y49.3417 R1 K272 - X-68.8172 Y49.0062 R1 K273 - X-69.3105 Y48.7070 R1 K274 - X-69.8348 Y48.4123 R1 K275 - X-70.4875 Y48.0767 R1 K276 - X-71.3268 Y47.6957 R1 K277 - X-72.3237 Y47.3143 R1 K278 - X-73.4861 Y46.9598 R1 K279 - X-74.7666 Y46.6760 R1 K280 - X-76.0067 Y46.5013 R1 K281 - X-77.1377 Y46.4235 R1 K282 - X-78.1544 Y46.4180 R1 K283 - X-79.0336 Y46.4600 R1 K284 - X-79.7970 Y46.5307 R1 K285 - X-80.5114 Y46.6269 R1 K286 - X-81.2380 Y46.7547 R1 K287 - X-82.0068 Y46.9238 R1 K288 - X-82.7697 Y47.1283 R1 K289 - X-83.5373 Y47.3720 R1 K290 - X-84.3112 Y47.6579 R1 K291 - X-85.0498 Y47.9699 R1 K292 - X-85.7351 Y48.2942 R1 K293 - X-86.4220 Y48.6557 R1 K294 - X-87.0802 Y49.0386 R1 K295 - X-87.7349 Y49.4568 R1 K296 - X-88.4029 Y49.9251 R1 K297 - X-89.0659 Y50.4364 R1 K298 - X-89.7019 Y50.9752 R1 K299 - X-90.3372 Y51.5662 R1 K300 - X-90.9228 Y52.1644 R1 K301 - X-91.4587 Y52.7620 R1 K302 - X-91.9715 Y53.3850 R1 K303 - X-92.4872 Y54.0697 R1 K304 - X-92.9914 Y54.8058 R1 K305 - X-93.5210 Y55.6676 R1 K306 - X-94.0384 Y56.6272 R1 K307 - X-94.5223 Y57.6703 R1 K308 - X-94.9369 Y58.7292 R1 K309 - X-95.2895 Y59.8173 R1 K310 - X-95.5636 Y60.8628 R1 K311 - X-95.7787 Y61.9128 R1 K312 - X-95.9450 Y63.0271 R1 K313 - X-96.0570 Y64.2804 R1 K314 - X-96.0887 Y65.6434 R1 K315 - X-96.0117 Y67.1896 R1 K316 - X-95.7849 Y68.8848 R1 K317 - X-95.3938 Y70.6228 R1 K318 - X-94.8491 Y72.3197 R1 K319 - X-94.1332 Y74.0121 R1 K320 - X-93.2814 Y75.6158 R1 K321 - X-92.2786 Y77.1630 R1 K322 - X-91.1344 Y78.6253 R1 K323 - X-89.7926 Y80.0514 R1 K324 - X-88.3438 Y81.3279 R1 K325 - X-86.8063 Y82.4500 R1 K326 - X-85.2073 Y83.4151 R1 K327 - X-83.5453 Y84.2315 R1 K328 - X-81.8476 Y84.8988 R1 K329 - X-80.0202 Y85.4440 R1 K330 - X-78.0905 Y85.8388 R1 K331 - X-76.1270 Y86.0515 R1 K332 - X-74.1042 Y86.1038 R1 K333 - X-72.1134 Y85.9410 R1 K334 - X-70.3215 Y85.6875 R1 K335 - X-68.5712 Y85.2079 R1 K336 - X-67.1312 Y84.8600 R1 K337 - X-65.6308 Y84.1229 R1 K338 - X-64.6063 Y83.7875 R1 K339 - X-63.3163 Y82.8235 R1 K340 - X-62.1214 Y84.6009 R1 K341 - X-63.4110 Y85.4617 R1 K342 - X-64.3155 Y85.9210 R1 K343 - X-65.5866 Y86.6071 R1 K344 - X-66.8279 Y87.1139 R1 K345 - X-68.2878 Y87.6844 R1 K346 - X-69.7642 Y88.1080 R1 K347 - X-71.2842 Y88.4664 R1 K348 - X-72.7041 Y88.7042 R1 K349 - X-74.0052 Y88.8509 R1 K350 - X-75.2479 Y88.9291 R1 K351 - X-76.4245 Y88.9482 R1 K352 - X-77.5679 Y88.9149 R1 K353 - X-78.7239 Y88.8281 R1 K354 - X-79.9353 Y88.6800 R1 K355 - X-81.0976 Y88.4781 R1 K356 - X-82.3310 Y88.2104 R1 K357 - X-83.7403 Y87.7919 R1 K358 - X-85.4340 Y88.1674 R1 K359 - X-87.0285 Y88.8003 R1 K360 - X-88.3868 Y90.6629 R1 K361 - X-89.2295 Y92.5789 R1 K362 - X-91.0310 Y93.6550 R1 K363 - X-92.8707 Y94.0388 R1 K364 - X-94.8789 Y93.6716 R1 K365 - X-96.5076 Y92.6811 R1 K366 - X-97.8348 Y90.9330 R1 K367 - X-98.2942 Y88.7018 R1 K368 - X-97.4905 Y86.2191 R1 K369 - X-95.9369 Y84.8179 R1 K370 - X-95.2116 Y82.8188 R1 K371 - X-95.2978 Y81.1676 R1 K372 - X-95.7188 Y79.7571 R1 K373 - X-96.5500 Y78.6785 R1 K374 - X-97.2814 Y77.6412 R1 K375 - X-98.0087 Y76.4724 R1 K376 - X-98.7470 Y75.1297 R1 K377 - X-99.4507 Y73.6257 R1 K378 - X-100.0936 Y71.9710 R1 K379 - X-100.6588 Y70.1153 R1 K380 - X-101.0929 Y68.1469 R1 K381 - X-101.3532 Y66.2083 R1 K382 - X-101.4660 Y64.3533 R1 K383 - X-101.4283 Y62.6243 R1 K384 - X-101.3214 Y61.1022 R1 K385 - X-101.1263 Y59.7460 R1 K386 - X-100.9032 Y58.4500 R1 K387 - X-100.4515 Y57.0141 R1 K388 - X-100.3644 Y55.2248 R1 K389 - X-101.1660 Y53.1940 R1 K390 - X-102.9048 Y51.5175 R1 K391 - X-105.7506 Y50.5183 R1 K392 - X-106.7664 Y47.5360 R1 K393 - X-106.2261 Y44.8663 R1 K394 - X-104.7541 Y42.9853 R1 K395 - X-102.8335 Y42.0743 R1 K396 - X-101.4039 Y41.9198 R1 K397 - X-100.3354 Y42.0643 R1 K398 - X-99.7082 Y42.2839 R1 K399 - X-99.3802 Y42.4191 R1 K400 - X-99.2852 Y42.4595 R1 K401 - X-99.2732 Y42.4675 R1 K402 - X-99.1700 Y42.5363 R1 K403 - X-98.9641 Y42.6735 R1 K404 - X-98.6558 Y42.8790 R1 K405 - X-98.2469 Y43.1526 R1 K406 - X-97.7302 Y43.4817 R1 K407 - X-97.2463 Y43.8402 R1 K408 - X-96.7655 Y44.1219 R1 K409 - X-96.2937 Y44.3329 R1 K410 - X-95.8240 Y44.4898 R1 K411 - X-95.3767 Y44.5957 R1 K412 - X-94.9180 Y44.6612 R1 K413 - X-94.4404 Y44.6832 R1 K414 - X-93.9580 Y44.6579 R1 K415 - X-93.4953 Y44.5890 R1 K416 - X-93.0425 Y44.4782 R1 K417 - X-92.6045 Y44.3280 R1 K418 - X-92.1447 Y44.1202 R1 K419 - X-91.6369 Y43.8289 R1 K420 - X-91.1136 Y43.3969 R1 K421 - X-90.4924 Y42.9832 R1 K422 - X-89.8165 Y42.5176 R1 K423 - X-89.0758 Y42.0672 R1 K424 - X-88.3020 Y41.6255 R1 K425 - X-87.4675 Y41.1904 R1 K426 - X-86.5581 Y40.7578 R1 K427 - X-85.5646 Y40.3366 R1 K428 - X-84.5663 Y39.9636 R1 K429 - X-83.5390 Y39.6304 R1 K430 - X-82.5260 Y39.3483 R1 K431 - X-81.5447 Y39.1174 R1 K432 - X-80.5284 Y38.9189 R1 K433 - X-79.4092 Y38.7496 R1 K434 - X-78.1562 Y38.6188 R1 K435 - X-76.7890 Y38.5483 R1 K436 - X-75.2438 Y38.5585 R1 K437 - X-73.6695 Y38.6706 R1 K438 - X-72.0547 Y38.8843 R1 K439 - X-70.6053 Y39.1859 R1 K440 - X-69.3013 Y39.5564 R1 K441 - X-68.1927 Y39.5504 R1 K442 - X-67.3549 Y39.3577 R1 K443 - X-66.7470 Y39.1380 R1 K444 - X-66.2819 Y38.9051 R1 K445 - X-65.9139 Y38.6788 R1 K446 - X-65.5680 Y38.4248 R1 K447 - X-65.1857 Y38.0892 R1 K448 - X-64.7999 Y37.6739 R1 K449 - X-64.4294 Y37.1491 R1 K450 - X-64.0430 Y36.5561 R1 K451 - X-63.7115 Y35.8761 R1 K452 - X-63.3161 Y35.3649 R1 K453 - X-62.9165 Y34.9587 R1 K454 - X-62.5343 Y34.6443 R1 K455 - X-62.1806 Y34.4013 R1 K456 - X-61.8628 Y34.2159 R1 K457 - X-61.5197 Y34.0492 R1 K458 - X-61.1582 Y33.9069 R1 K459 - X-60.7769 Y33.7900 R1 K460 - X-60.3920 Y33.7047 R1 K461 - X-60.0044 Y33.6509 R1 K462 - X-59.6084 Y33.6273 R1 K463 - X-59.2076 Y33.6352 R1 K464 - X-58.7966 Y33.6755 R1 K465 - X-58.3528 Y33.7572 R1 K466 - X-57.8678 Y33.8950 R1 K467 - X-57.3599 Y34.0990 R1 K468 - X-56.8450 Y34.3790 R1 K469 - X-56.3729 Y34.7150 R1 K470 - X-55.9601 Y35.0880 R1 K471 - X-55.6168 Y35.4728 R1 K472 - X-55.3360 Y35.8572 R1 K473 - X-55.1075 Y36.2366 R1 K474 - X-54.9103 Y36.6389 R1 K475 - X-54.7306 Y37.1081 R1 K476 - X-54.5834 Y37.6567 R1 K477 - X-54.4837 Y38.3544 R1 K478 - X-54.4963 Y39.1927 R1 K479 - X-54.6737 Y40.1651 R1 K480 - X-55.1393 Y41.1231 R1 K481 - X-55.7918 Y42.0034 R1 K482 - X-56.4072 Y42.8062 R1 K483 - X-56.8313 Y43.6292 R1 K484 - X-57.0501 Y44.3600 R1 K485 - X-57.1542 Y44.9776 R1 K486 - X-57.1786 Y45.4609 R1 K487 - X-57.1699 Y45.8057 R1 K488 - X-57.1486 Y46.0295 R1 K489 - X-57.1321 Y46.1671 R1 K490 - X-57.1253 Y46.2209 R1 K491 - X-57.1200 Y46.2577 R1 K492 - X-57.1058 Y46.3541 R1 K493 - X-57.0820 Y46.4985 R1 K494 - X-57.0426 Y46.6836 R1 K495 - X-56.9847 Y46.9099 R1 K496 - X-56.9115 Y47.1440 R1 K497 - X-56.8360 Y47.3519 R1 K498 - X-56.7525 Y47.5546 R1 K499 - X-56.6572 Y47.7593 R1 K500 - X-56.5398 Y47.9848 R1 K501 - X-56.4012 Y48.2193 R1 K502 - X-56.2348 Y48.4708 R1 K503 - X-56.0380 Y48.7155 R1 K504 - X-55.8488 Y48.9796 R1 K505 - X-55.6740 Y49.2245 R1 K506 - X-55.5097 Y49.4601 R1 K507 - X-55.3444 Y49.6996 R1 K508 - X-55.2291 Y49.9870 R1 K509 - X-55.1351 Y50.3111 R1 K510 - X-55.1097 Y50.7040 R1 K511 - X-55.1626 Y51.1368 R1 K512 - X-55.3281 Y51.5719 R1 K513 - X-55.6377 Y52.0290 R1 K514 - X-56.1172 Y52.4205 R1 K515 - X-56.7570 Y52.6799 R1 K516 - X-57.5034 Y52.6332 R1 K517 - X-58.1572 Y53.2262 R1 K518 - X-58.7379 Y53.6016 R1 K519 - X-59.1757 Y54.0506 R1 K520 - X-59.4883 Y54.4688 R1 K521 - X-59.7102 Y54.8570 R1 K522 - X-59.8354 Y55.1248 R1 K523 - X-59.9089 Y55.3246 R1 K524 - X-59.9523 Y55.4553 R1 K525 - X-59.9749 Y55.5261 R1 K526 - X-59.9939 Y55.6821 R1 K527 - X-60.0968 Y56.0450 R1 K528 - X-60.2882 Y56.8496 R1 K529 - X-60.0459 Y58.0048 R1 K530 - X-59.5723 Y59.2878 R1 K531 - X-59.4668 Y60.7493 R1 K532 - X-59.3982 Y62.0724 R1 K533 - X-59.4429 Y63.2366 R1 K534 - X-59.5387 Y64.2094 R1 K535 - X-59.6641 Y65.0317 R1 K536 - X-59.8071 Y65.7533 R1 K537 - X-59.9840 Y66.4809 R1 K538 - X-60.2172 Y67.2798 R1 K539 - X-60.5364 Y68.1896 R1 K540 - X-60.9744 Y69.2215 R1 K541 - X-61.5592 Y70.3545 R1 K542 - X-62.2943 Y71.5222 R1 K543 - X-63.1541 Y72.6492 R1 K544 - X-64.0950 Y73.6731 R1 K545 - X-65.0562 Y74.5495 R1 K546 - X-66.0058 Y75.2847 R1 K547 - X-66.9375 Y75.9005 R1 K548 - X-67.8726 Y76.4297 R1 K549 - X-68.8465 Y76.8950 R1 K550 - X-69.9097 Y77.3103 R1 K551 - X-71.0385 Y77.6520 R1 K552 - X-72.2366 Y77.9081 R1 K553 - X-73.3718 Y78.0524 R1 K554 - X-74.4966 Y78.1065 R1 K555 - X-75.5142 Y78.0793 R1 K556 - X-76.5166 Y77.9839 R1 K557 - X-77.5002 Y77.8226 R1 K558 - X-78.5557 Y77.5677 R1 K559 - X-79.5871 Y77.2317 R1 K560 - X-80.6445 Y76.7861 R1 K561 - X-81.6088 Y76.2806 R1 K562 - X-82.4866 Y75.7280 R1 K563 - X-83.2620 Y75.1557 R1 K564 - X-83.9787 Y74.5453 R1 K565 - X-84.6634 Y73.8753 R1 K566 - X-85.3317 Y73.1158 R1 K567 - X-85.9756 Y72.2533 R1 K568 - X-86.5709 Y71.2893 R1 K569 - X-87.0835 Y70.2579 R1 K570 - X-87.4848 Y69.2208 R1 K571 - X-87.7675 Y68.2393 R1 K572 - X-87.9478 Y67.3547 R1 K573 - X-88.0526 Y66.5624 R1 K574 - X-88.1043 Y65.8381 R1 K575 - X-88.1146 Y65.1483 R1 K576 - X-88.0821 Y64.3914 R1 K577 - X-87.9887 Y63.5457 R1 K578 - X-87.8095 Y62.6068 R1 K579 - X-87.5420 Y61.6610 R1 K580 - X-87.1769 Y60.7124 R1 K581 - X-86.7661 Y59.8770 R1 K582 - X-86.3379 Y59.1581 R1 K583 - X-85.9251 Y58.5640 R1 K584 - X-85.5209 Y58.0532 R1 K585 - X-85.1304 Y57.6121 R1 K586 - X-84.7239 Y57.1999 R1 K587 - X-84.2836 Y56.7987 R1 K588 - X-83.8018 Y56.4083 R1 K589 - X-83.2765 Y56.0332 R1 K590 - X-82.6941 Y55.6716 R1 K591 - X-82.0896 Y55.3518 R1 K592 - X-81.4995 Y55.0888 R1 K593 - X-80.9166 Y54.8724 R1 K594 - X-80.3623 Y54.7045 R1 K595 - X-79.8783 Y54.5861 R1 K596 - X-79.4171 Y54.4968 R1 K597 - X-78.9279 Y54.4260 R1 K598 - X-78.4216 Y54.3785 R1 K599 - X-77.8489 Y54.3561 R1 K600 - X-77.1713 Y54.3747 R1 K601 - X-76.4289 Y54.4540 R1 K602 - X-75.7026 Y54.5941 R1 K603 - X-74.9853 Y54.7971 R1 K604 - X-74.3519 Y55.0342 R1 K605 - X-73.8349 Y55.2709 R1 K606 - X-73.4158 Y55.4935 R1 K607 - X-73.0511 Y55.7120 R1 K608 - X-72.7402 Y55.9172 R1 K609 - X-72.4394 Y56.1342 R1 K610 - X-72.1163 Y56.3902 R1 K611 - X-71.7634 Y56.7011 R1 K612 - X-71.3948 Y57.0679 R1 K613 - X-71.0338 Y57.4796 R1 K614 - X-70.6922 Y57.9306 R1 K615 - X-70.3871 Y58.4002 R1 K616 - X-70.1196 Y58.8830 R1 K617 - X-69.8783 Y59.3995 R1 K618 - X-69.6703 Y59.9599 R1 K619 - X-69.4865 Y60.5805 R1 K620 - X-69.3846 Y61.2729 R1 K621 - X-69.3420 Y61.9859 R1 K622 - X-69.3653 Y62.6846 R1 K623 - X-69.4373 Y63.3326 R1 K624 - X-69.5439 Y63.8944 R1 K625 - X-69.6717 Y64.3635 R1 K626 - X-69.8106 Y64.7559 R1 K627 - X-69.9673 Y65.1147 R1 K628 - X-70.1585 Y65.4735 R1 K629 - X-70.4036 Y65.8427 R1 K630 - X-70.7108 Y66.2253 R1 K631 - X-71.0814 Y66.6075 R1 K632 - X-71.4841 Y66.9660 R1 K633 - X-71.9000 Y67.2809 R1 K634 - X-72.3090 Y67.5355 R1 K635 - X-72.7001 Y67.7315 R1 K636 - X-73.0687 Y67.8868 R1 K637 - X-73.4263 Y68.0106 R1 K638 - X-73.7882 Y68.1067 R1 K639 - X-74.1732 Y68.1732 R1 K640 - X-74.5703 Y68.2023 R1 K641 - X-74.9798 Y68.1932 R1 K642 - X-75.3547 Y68.1486 R1 K643 - X-75.7133 Y68.0736 R1 K644 - X-76.0256 Y67.9799 R1 K645 - X-76.3199 Y67.8657 R1 K646 - X-76.5949 Y67.7330 R1 K647 - X-76.8761 Y67.5652 R1 K648 - X-77.1354 Y67.3778 R1 K649 - X-77.3882 Y67.1575 R1 K650 - X-77.6008 Y66.9311 R1 K651 - X-77.7774 Y66.6968 R1 K652 - X-77.9145 Y66.4734 R1 K653 - X-78.0313 Y66.2435 R1 K654 - X-78.1141 Y66.0268 R1 K655 - X-78.1954 Y65.7851 R1 K656 - X-78.1992 Y65.6515 R1 K657 - X-78.2319 Y65.4948 R1 K658 - X-78.2477 Y65.4069 R1 K659 - X-78.2521 Y65.3785 R1 K660 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G1 X-78.2521 Y65.3785 Z1 -G0 X-78.2521 Y65.3785 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc b/nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc deleted file mode 100644 index b256e54545c..00000000000 --- a/nc_files/nurbs/G6/Curva_Scrool_F #1=3.ngc +++ /dev/null @@ -1,687 +0,0 @@ -G21 G40 G54 G90 G94 -G0 Z50 -X0Y0 -M6 T0 -G96 M3 S200 -G0 Z50 (movimento per avvicinarsi alla posizione di taglio) -(Curva acquisita Nr=1) - X-78.2522 Y65.3784 - Z1 - G1 Z-1 F100 -F100 -G6.2 X-78.2522 Y65.3784 R1 K0 P6 Q3 - X-78.2522 Y65.3768 R1 K0 - X-78.2524 Y65.3684 R1 K0 - X-78.2527 Y65.3539 R1 K0 - X-78.2533 Y65.3340 R1 K0 - X-78.2547 Y65.3103 R1 K0 - X-78.2555 Y65.2837 R1 K1 - X-78.2558 Y65.2600 R1 K2 - X-78.2558 Y65.2384 R1 K3 - X-78.2554 Y65.2185 R1 K4 - X-78.2553 Y65.1975 R1 K5 - X-78.2500 Y65.1772 R1 K6 - X-78.2410 Y65.1587 R1 K7 - X-78.2279 Y65.1419 R1 K8 - X-78.2092 Y65.1264 R1 K9 - X-78.1851 Y65.1148 R1 K10 - X-78.1553 Y65.1095 R1 K11 - X-78.1214 Y65.1147 R1 K12 - X-78.0880 Y65.1321 R1 K13 - X-78.0689 Y65.1622 R1 K14 - X-78.0499 Y65.1882 R1 K15 - X-78.0327 Y65.2113 R1 K16 - X-78.0157 Y65.2336 R1 K17 - X-77.9982 Y65.2563 R1 K18 - X-77.9808 Y65.2789 R1 K19 - X-77.9620 Y65.3036 R1 K20 - X-77.9451 Y65.3262 R1 K21 - X-77.9319 Y65.3435 R1 K22 - X-77.9231 Y65.3551 R1 K23 - X-77.9180 Y65.3617 R1 K24 - X-77.9172 Y65.3628 R1 K25 - X-77.9105 Y65.3716 R1 K26 - X-77.8922 Y65.3956 R1 K27 - X-77.8599 Y65.4370 R1 K28 - X-77.8135 Y65.4921 R1 K29 - X-77.7505 Y65.5653 R1 K30 - X-77.6765 Y65.6428 R1 K31 - X-77.5975 Y65.7156 R1 K32 - X-77.5305 Y65.7928 R1 K33 - X-77.4509 Y65.8579 R1 K34 - X-77.3809 Y65.9232 R1 K35 - X-77.3053 Y65.9781 R1 K36 - X-77.2366 Y66.0465 R1 K37 - X-77.1418 Y66.0928 R1 K38 - X-77.0677 Y66.1679 R1 K39 - X-76.9669 Y66.2259 R1 K40 - X-76.8613 Y66.2868 R1 K41 - X-76.7545 Y66.3547 R1 K42 - X-76.6378 Y66.4111 R1 K43 - X-76.5134 Y66.4712 R1 K44 - X-76.3915 Y66.5277 R1 K45 - X-76.2636 Y66.5714 R1 K46 - X-76.1370 Y66.6204 R1 K47 - X-76.0100 Y66.6590 R1 K48 - X-75.8901 Y66.6920 R1 K49 - X-75.7663 Y66.7235 R1 K50 - X-75.6461 Y66.7490 R1 K51 - X-75.5244 Y66.7698 R1 K52 - X-75.3943 Y66.7850 R1 K53 - X-75.2502 Y66.8071 R1 K54 - X-75.1015 Y66.8159 R1 K55 - X-74.9403 Y66.8231 R1 K56 - X-74.7724 Y66.8221 R1 K57 - X-74.5962 Y66.8180 R1 K58 - X-74.4219 Y66.7995 R1 K59 - X-74.2364 Y66.7754 R1 K60 - X-74.0421 Y66.7380 R1 K61 - X-73.8331 Y66.6934 R1 K62 - X-73.6238 Y66.6206 R1 K63 - X-73.3921 Y66.5531 R1 K64 - X-73.1802 Y66.4193 R1 K65 - X-72.9391 Y66.3337 R1 K66 - X-72.7316 Y66.1842 R1 K67 - X-72.5313 Y66.0484 R1 K68 - X-72.3624 Y65.9069 R1 K69 - X-72.2125 Y65.7687 R1 K70 - X-72.0919 Y65.6448 R1 K71 - X-71.9927 Y65.5312 R1 K72 - X-71.9053 Y65.4252 R1 K73 - X-71.8174 Y65.3112 R1 K74 - X-71.7313 Y65.1914 R1 K75 - X-71.6420 Y65.0564 R1 K76 - X-71.5594 Y64.9089 R1 K77 - X-71.4713 Y64.7526 R1 K78 - X-71.4162 Y64.5969 R1 K79 - X-71.3310 Y64.4558 R1 K80 - X-71.2812 Y64.2920 R1 K81 - X-71.2270 Y64.1234 R1 K82 - X-71.1481 Y63.9431 R1 K83 - X-71.1371 Y63.7110 R1 K84 - X-71.0731 Y63.4737 R1 K85 - X-71.0331 Y63.2269 R1 K86 - X-71.0180 Y62.9718 R1 K87 - X-70.9917 Y62.7219 R1 K88 - X-71.0057 Y62.4934 R1 K89 - X-71.0161 Y62.2882 R1 K90 - X-71.0274 Y62.0872 R1 K91 - X-71.0415 Y61.8944 R1 K92 - X-71.0611 Y61.7031 R1 K93 - X-71.0917 Y61.5091 R1 K94 - X-71.1248 Y61.3101 R1 K95 - X-71.1621 Y61.1206 R1 K96 - X-71.2073 Y60.9277 R1 K97 - X-71.2608 Y60.7385 R1 K98 - X-71.3266 Y60.5490 R1 K99 - X-71.4074 Y60.3586 R1 K100 - X-71.4980 Y60.1583 R1 K101 - X-71.5810 Y59.9646 R1 K102 - X-71.6652 Y59.7748 R1 K103 - X-71.7535 Y59.5933 R1 K104 - X-71.8595 Y59.4137 R1 K105 - X-71.9661 Y59.2438 R1 K106 - X-72.0860 Y59.0659 R1 K107 - X-72.2197 Y58.8813 R1 K108 - X-72.3729 Y58.6860 R1 K109 - X-72.5341 Y58.4968 R1 K110 - X-72.7116 Y58.3057 R1 K111 - X-72.8915 Y58.1289 R1 K112 - X-73.0583 Y57.9778 R1 K113 - X-73.2033 Y57.8529 R1 K114 - X-73.3424 Y57.7330 R1 K115 - X-73.4863 Y57.6276 R1 K116 - X-73.6383 Y57.5199 R1 K117 - X-73.7997 Y57.3894 R1 K118 - X-74.0072 Y57.2755 R1 K119 - X-74.2008 Y57.1497 R1 K120 - X-74.4261 Y57.0388 R1 K121 - X-74.6584 Y56.9130 R1 K122 - X-74.9333 Y56.7966 R1 K123 - X-75.2157 Y56.6800 R1 K124 - X-75.5406 Y56.5839 R1 K125 - X-75.8324 Y56.4770 R1 K126 - X-76.1312 Y56.4124 R1 K127 - X-76.4017 Y56.3569 R1 K128 - X-76.6648 Y56.3130 R1 K129 - X-76.9117 Y56.2748 R1 K130 - X-77.1687 Y56.2617 R1 K131 - X-77.3958 Y56.2370 R1 K132 - X-77.6023 Y56.2341 R1 K133 - X-77.8026 Y56.2396 R1 K134 - X-78.0072 Y56.2310 R1 K135 - X-78.2239 Y56.2485 R1 K136 - X-78.4659 Y56.2586 R1 K137 - X-78.7395 Y56.2975 R1 K138 - X-79.0050 Y56.3364 R1 K139 - X-79.2654 Y56.3828 R1 K140 - X-79.5163 Y56.4352 R1 K141 - X-79.7738 Y56.4981 R1 K142 - X-80.0184 Y56.5682 R1 K143 - X-80.2693 Y56.6513 R1 K144 - X-80.5144 Y56.7414 R1 K145 - X-80.7694 Y56.8439 R1 K146 - X-81.0187 Y56.9504 R1 K147 - X-81.2760 Y57.0686 R1 K148 - X-81.5354 Y57.2012 R1 K149 - X-81.8037 Y57.3533 R1 K150 - X-82.0522 Y57.5087 R1 K151 - X-82.2933 Y57.6662 R1 K152 - X-82.5241 Y57.8358 R1 K153 - X-82.7571 Y58.0157 R1 K154 - X-82.9837 Y58.1995 R1 K155 - X-83.2200 Y58.4047 R1 K156 - X-83.4606 Y58.6323 R1 K157 - X-83.7076 Y58.8855 R1 K158 - X-83.9527 Y59.1588 R1 K159 - X-84.1989 Y59.4566 R1 K160 - X-84.4320 Y59.7694 R1 K161 - X-84.6570 Y60.0869 R1 K162 - X-84.8505 Y60.4166 R1 K163 - X-85.0537 Y60.7466 R1 K164 - X-85.2010 Y61.0872 R1 K165 - X-85.3834 Y61.4062 R1 K166 - X-85.4982 Y61.7374 R1 K167 - X-85.6059 Y62.0171 R1 K168 - X-85.6840 Y62.2439 R1 K169 - X-85.7474 Y62.4431 R1 K170 - X-85.8046 Y62.6347 R1 K171 - X-85.8613 Y62.8385 R1 K172 - X-85.9241 Y63.0851 R1 K173 - X-85.9913 Y63.3817 R1 K174 - X-86.0599 Y63.7211 R1 K175 - X-86.1062 Y64.0536 R1 K176 - X-86.1375 Y64.3765 R1 K177 - X-86.1382 Y64.6744 R1 K178 - X-86.1302 Y64.9692 R1 K179 - X-86.1363 Y65.2551 R1 K180 - X-86.1381 Y65.5733 R1 K181 - X-86.1192 Y65.9139 R1 K182 - X-86.0803 Y66.3047 R1 K183 - X-86.0351 Y66.7085 R1 K184 - X-85.9631 Y67.1479 R1 K185 - X-85.8689 Y67.6065 R1 K186 - X-85.7405 Y68.1018 R1 K187 - X-85.5812 Y68.6134 R1 K188 - X-85.3848 Y69.1398 R1 K189 - X-85.1674 Y69.6384 R1 K190 - X-84.9330 Y70.1083 R1 K191 - X-84.6909 Y70.5403 R1 K192 - X-84.4558 Y70.9205 R1 K193 - X-84.2166 Y71.2749 R1 K194 - X-83.9535 Y71.6348 R1 K195 - X-83.6725 Y71.9851 R1 K196 - X-83.3617 Y72.3508 R1 K197 - X-83.0016 Y72.7057 R1 K198 - X-82.6573 Y73.0905 R1 K199 - X-82.2526 Y73.3462 R1 K200 - X-81.9726 Y73.7838 R1 K201 - X-81.4759 Y73.8562 R1 K202 - X-81.2363 Y74.2501 R1 K203 - X-80.7867 Y74.3737 R1 K204 - X-80.4384 Y74.6786 R1 K205 - X-80.0092 Y74.8514 R1 K206 - X-79.6151 Y75.0592 R1 K207 - X-79.1830 Y75.2366 R1 K208 - X-78.7584 Y75.4001 R1 K209 - X-78.3396 Y75.5412 R1 K210 - X-77.8863 Y75.6769 R1 K211 - X-77.3776 Y75.8046 R1 K212 - X-76.8697 Y75.9095 R1 K213 - X-76.3351 Y75.9951 R1 K214 - X-75.7832 Y76.0576 R1 K215 - X-75.2489 Y76.0938 R1 K216 - X-74.7533 Y76.1066 R1 K217 - X-74.2523 Y76.0994 R1 K218 - X-73.7785 Y76.0739 R1 K219 - X-73.3110 Y76.0315 R1 K220 - X-72.8259 Y75.9691 R1 K221 - X-72.2972 Y75.8794 R1 K222 - X-71.7704 Y75.7667 R1 K223 - X-71.2123 Y75.6210 R1 K224 - X-70.6569 Y75.4481 R1 K225 - X-70.0922 Y75.2438 R1 K226 - X-69.5497 Y75.0193 R1 K227 - X-68.9913 Y74.7573 R1 K228 - X-68.4586 Y74.4761 R1 K229 - X-67.9121 Y74.1538 R1 K230 - X-67.4020 Y73.8195 R1 K231 - X-66.8922 Y73.4506 R1 K232 - X-66.3981 Y73.0572 R1 K233 - X-65.8912 Y72.6119 R1 K234 - X-65.3922 Y72.1274 R1 K235 - X-64.8978 Y71.5930 R1 K236 - X-64.4482 Y71.0510 R1 K237 - X-64.0543 Y70.5236 R1 K238 - X-63.7143 Y70.0219 R1 K239 - X-63.4446 Y69.5874 R1 K240 - X-63.2232 Y69.2030 R1 K241 - X-63.0326 Y68.8485 R1 K242 - X-62.8441 Y68.4733 R1 K243 - X-62.6628 Y68.0854 R1 K244 - X-62.4782 Y67.6550 R1 K245 - X-62.2989 Y67.1935 R1 K246 - X-62.1279 Y66.7001 R1 K247 - X-61.9727 Y66.1939 R1 K248 - X-61.8295 Y65.6578 R1 K249 - X-61.6960 Y65.0661 R1 K250 - X-61.5729 Y64.3841 R1 K251 - X-61.4698 Y63.5800 R1 K252 - X-61.4108 Y62.7224 R1 K253 - X-61.4043 Y61.8278 R1 K254 - X-61.4529 Y60.9430 R1 K255 - X-61.5456 Y60.1267 R1 K256 - X-61.6643 Y59.4063 R1 K257 - X-61.8120 Y58.7123 R1 K258 - X-61.9820 Y58.0585 R1 K259 - X-62.1778 Y57.4196 R1 K260 - X-62.4134 Y56.7577 R1 K261 - X-62.6889 Y56.0851 R1 K262 - X-62.9996 Y55.4172 R1 K263 - X-63.3692 Y54.7143 R1 K264 - X-63.8108 Y53.9710 R1 K265 - X-64.3243 Y53.2082 R1 K266 - X-64.9328 Y52.4130 R1 K267 - X-65.6225 Y51.6256 R1 K268 - X-66.3474 Y50.9019 R1 K269 - X-67.0612 Y50.2737 R1 K270 - X-67.7302 Y49.7493 R1 K271 - X-68.3043 Y49.3417 R1 K272 - X-68.8172 Y49.0062 R1 K273 - X-69.3105 Y48.7070 R1 K274 - X-69.8348 Y48.4123 R1 K275 - X-70.4875 Y48.0767 R1 K276 - X-71.3268 Y47.6957 R1 K277 - X-72.3237 Y47.3143 R1 K278 - X-73.4861 Y46.9598 R1 K279 - X-74.7666 Y46.6760 R1 K280 - X-76.0067 Y46.5013 R1 K281 - X-77.1377 Y46.4235 R1 K282 - X-78.1544 Y46.4180 R1 K283 - X-79.0336 Y46.4600 R1 K284 - X-79.7970 Y46.5307 R1 K285 - X-80.5114 Y46.6269 R1 K286 - X-81.2380 Y46.7547 R1 K287 - X-82.0068 Y46.9238 R1 K288 - X-82.7697 Y47.1283 R1 K289 - X-83.5373 Y47.3720 R1 K290 - X-84.3112 Y47.6579 R1 K291 - X-85.0498 Y47.9699 R1 K292 - X-85.7351 Y48.2942 R1 K293 - X-86.4220 Y48.6557 R1 K294 - X-87.0802 Y49.0386 R1 K295 - X-87.7349 Y49.4568 R1 K296 - X-88.4029 Y49.9251 R1 K297 - X-89.0659 Y50.4364 R1 K298 - X-89.7019 Y50.9752 R1 K299 - X-90.3372 Y51.5662 R1 K300 - X-90.9228 Y52.1644 R1 K301 - X-91.4587 Y52.7620 R1 K302 - X-91.9715 Y53.3850 R1 K303 - X-92.4872 Y54.0697 R1 K304 - X-92.9914 Y54.8058 R1 K305 - X-93.5210 Y55.6676 R1 K306 - X-94.0384 Y56.6272 R1 K307 - X-94.5223 Y57.6703 R1 K308 - X-94.9369 Y58.7292 R1 K309 - X-95.2895 Y59.8173 R1 K310 - X-95.5636 Y60.8628 R1 K311 - X-95.7787 Y61.9128 R1 K312 - X-95.9450 Y63.0271 R1 K313 - X-96.0570 Y64.2804 R1 K314 - X-96.0887 Y65.6434 R1 K315 - X-96.0117 Y67.1896 R1 K316 - X-95.7849 Y68.8848 R1 K317 - X-95.3938 Y70.6228 R1 K318 - X-94.8491 Y72.3197 R1 K319 - X-94.1332 Y74.0121 R1 K320 - X-93.2814 Y75.6158 R1 K321 - X-92.2786 Y77.1630 R1 K322 - X-91.1344 Y78.6253 R1 K323 - X-89.7926 Y80.0514 R1 K324 - X-88.3438 Y81.3279 R1 K325 - X-86.8063 Y82.4500 R1 K326 - X-85.2073 Y83.4151 R1 K327 - X-83.5453 Y84.2315 R1 K328 - X-81.8476 Y84.8988 R1 K329 - X-80.0202 Y85.4440 R1 K330 - X-78.0905 Y85.8388 R1 K331 - X-76.1270 Y86.0515 R1 K332 - X-74.1042 Y86.1038 R1 K333 - X-72.1134 Y85.9410 R1 K334 - X-70.3215 Y85.6875 R1 K335 - X-68.5712 Y85.2079 R1 K336 - X-67.1312 Y84.8600 R1 K337 - X-65.6308 Y84.1229 R1 K338 - X-64.6063 Y83.7875 R1 K339 - X-63.3163 Y82.8235 R1 K340 - X-62.1214 Y84.6009 R1 K341 - X-63.4110 Y85.4617 R1 K342 - X-64.3155 Y85.9210 R1 K343 - X-65.5866 Y86.6071 R1 K344 - X-66.8279 Y87.1139 R1 K345 - X-68.2878 Y87.6844 R1 K346 - X-69.7642 Y88.1080 R1 K347 - X-71.2842 Y88.4664 R1 K348 - X-72.7041 Y88.7042 R1 K349 - X-74.0052 Y88.8509 R1 K350 - X-75.2479 Y88.9291 R1 K351 - X-76.4245 Y88.9482 R1 K352 - X-77.5679 Y88.9149 R1 K353 - X-78.7239 Y88.8281 R1 K354 - X-79.9353 Y88.6800 R1 K355 - X-81.0976 Y88.4781 R1 K356 - X-82.3310 Y88.2104 R1 K357 - X-83.7403 Y87.7919 R1 K358 - X-85.4340 Y88.1674 R1 K359 - X-87.0285 Y88.8003 R1 K360 - X-88.3868 Y90.6629 R1 K361 - X-89.2295 Y92.5789 R1 K362 - X-91.0310 Y93.6550 R1 K363 - X-92.8707 Y94.0388 R1 K364 - X-94.8789 Y93.6716 R1 K365 - X-96.5076 Y92.6811 R1 K366 - X-97.8348 Y90.9330 R1 K367 - X-98.2942 Y88.7018 R1 K368 - X-97.4905 Y86.2191 R1 K369 - X-95.9369 Y84.8179 R1 K370 - X-95.2116 Y82.8188 R1 K371 - X-95.2978 Y81.1676 R1 K372 - X-95.7188 Y79.7571 R1 K373 - X-96.5500 Y78.6785 R1 K374 - X-97.2814 Y77.6412 R1 K375 - X-98.0087 Y76.4724 R1 K376 - X-98.7470 Y75.1297 R1 K377 - X-99.4507 Y73.6257 R1 K378 - X-100.0936 Y71.9710 R1 K379 - X-100.6588 Y70.1153 R1 K380 - X-101.0929 Y68.1469 R1 K381 - X-101.3532 Y66.2083 R1 K382 - X-101.4660 Y64.3533 R1 K383 - X-101.4283 Y62.6243 R1 K384 - X-101.3214 Y61.1022 R1 K385 - X-101.1263 Y59.7460 R1 K386 - X-100.9032 Y58.4500 R1 K387 - X-100.4515 Y57.0141 R1 K388 - X-100.3644 Y55.2248 R1 K389 - X-101.1660 Y53.1940 R1 K390 - X-102.9048 Y51.5175 R1 K391 - X-105.7506 Y50.5183 R1 K392 - X-106.7664 Y47.5360 R1 K393 - X-106.2261 Y44.8663 R1 K394 - X-104.7541 Y42.9853 R1 K395 - X-102.8335 Y42.0743 R1 K396 - X-101.4039 Y41.9198 R1 K397 - X-100.3354 Y42.0643 R1 K398 - X-99.7082 Y42.2839 R1 K399 - X-99.3802 Y42.4191 R1 K400 - X-99.2852 Y42.4595 R1 K401 - X-99.2732 Y42.4675 R1 K402 - X-99.1700 Y42.5363 R1 K403 - X-98.9641 Y42.6735 R1 K404 - X-98.6558 Y42.8790 R1 K405 - X-98.2469 Y43.1526 R1 K406 - X-97.7302 Y43.4817 R1 K407 - X-97.2463 Y43.8402 R1 K408 - X-96.7655 Y44.1219 R1 K409 - X-96.2937 Y44.3329 R1 K410 - X-95.8240 Y44.4898 R1 K411 - X-95.3767 Y44.5957 R1 K412 - X-94.9180 Y44.6612 R1 K413 - X-94.4404 Y44.6832 R1 K414 - X-93.9580 Y44.6579 R1 K415 - X-93.4953 Y44.5890 R1 K416 - X-93.0425 Y44.4782 R1 K417 - X-92.6045 Y44.3280 R1 K418 - X-92.1447 Y44.1202 R1 K419 - X-91.6369 Y43.8289 R1 K420 - X-91.1136 Y43.3969 R1 K421 - X-90.4924 Y42.9832 R1 K422 - X-89.8165 Y42.5176 R1 K423 - X-89.0758 Y42.0672 R1 K424 - X-88.3020 Y41.6255 R1 K425 - X-87.4675 Y41.1904 R1 K426 - X-86.5581 Y40.7578 R1 K427 - X-85.5646 Y40.3366 R1 K428 - X-84.5663 Y39.9636 R1 K429 - X-83.5390 Y39.6304 R1 K430 - X-82.5260 Y39.3483 R1 K431 - X-81.5447 Y39.1174 R1 K432 - X-80.5284 Y38.9189 R1 K433 - X-79.4092 Y38.7496 R1 K434 - X-78.1562 Y38.6188 R1 K435 - X-76.7890 Y38.5483 R1 K436 - X-75.2438 Y38.5585 R1 K437 - X-73.6695 Y38.6706 R1 K438 - X-72.0547 Y38.8843 R1 K439 - X-70.6053 Y39.1859 R1 K440 - X-69.3013 Y39.5564 R1 K441 - X-68.1927 Y39.5504 R1 K442 - X-67.3549 Y39.3577 R1 K443 - X-66.7470 Y39.1380 R1 K444 - X-66.2819 Y38.9051 R1 K445 - X-65.9139 Y38.6788 R1 K446 - X-65.5680 Y38.4248 R1 K447 - X-65.1857 Y38.0892 R1 K448 - X-64.7999 Y37.6739 R1 K449 - X-64.4294 Y37.1491 R1 K450 - X-64.0430 Y36.5561 R1 K451 - X-63.7115 Y35.8761 R1 K452 - X-63.3161 Y35.3649 R1 K453 - X-62.9165 Y34.9587 R1 K454 - X-62.5343 Y34.6443 R1 K455 - X-62.1806 Y34.4013 R1 K456 - X-61.8628 Y34.2159 R1 K457 - X-61.5197 Y34.0492 R1 K458 - X-61.1582 Y33.9069 R1 K459 - X-60.7769 Y33.7900 R1 K460 - X-60.3920 Y33.7047 R1 K461 - X-60.0044 Y33.6509 R1 K462 - X-59.6084 Y33.6273 R1 K463 - X-59.2076 Y33.6352 R1 K464 - X-58.7966 Y33.6755 R1 K465 - X-58.3528 Y33.7572 R1 K466 - X-57.8678 Y33.8950 R1 K467 - X-57.3599 Y34.0990 R1 K468 - X-56.8450 Y34.3790 R1 K469 - X-56.3729 Y34.7150 R1 K470 - X-55.9601 Y35.0880 R1 K471 - X-55.6168 Y35.4728 R1 K472 - X-55.3360 Y35.8572 R1 K473 - X-55.1075 Y36.2366 R1 K474 - X-54.9103 Y36.6389 R1 K475 - X-54.7306 Y37.1081 R1 K476 - X-54.5834 Y37.6567 R1 K477 - X-54.4837 Y38.3544 R1 K478 - X-54.4963 Y39.1927 R1 K479 - X-54.6737 Y40.1651 R1 K480 - X-55.1393 Y41.1231 R1 K481 - X-55.7918 Y42.0034 R1 K482 - X-56.4072 Y42.8062 R1 K483 - X-56.8313 Y43.6292 R1 K484 - X-57.0501 Y44.3600 R1 K485 - X-57.1542 Y44.9776 R1 K486 - X-57.1786 Y45.4609 R1 K487 - X-57.1699 Y45.8057 R1 K488 - X-57.1486 Y46.0295 R1 K489 - X-57.1321 Y46.1671 R1 K490 - X-57.1253 Y46.2209 R1 K491 - X-57.1200 Y46.2577 R1 K492 - X-57.1058 Y46.3541 R1 K493 - X-57.0820 Y46.4985 R1 K494 - X-57.0426 Y46.6836 R1 K495 - X-56.9847 Y46.9099 R1 K496 - X-56.9115 Y47.1440 R1 K497 - X-56.8360 Y47.3519 R1 K498 - X-56.7525 Y47.5546 R1 K499 - X-56.6572 Y47.7593 R1 K500 - X-56.5398 Y47.9848 R1 K501 - X-56.4012 Y48.2193 R1 K502 - X-56.2348 Y48.4708 R1 K503 - X-56.0380 Y48.7155 R1 K504 - X-55.8488 Y48.9796 R1 K505 - X-55.6740 Y49.2245 R1 K506 - X-55.5097 Y49.4601 R1 K507 - X-55.3444 Y49.6996 R1 K508 - X-55.2291 Y49.9870 R1 K509 - X-55.1351 Y50.3111 R1 K510 - X-55.1097 Y50.7040 R1 K511 - X-55.1626 Y51.1368 R1 K512 - X-55.3281 Y51.5719 R1 K513 - X-55.6377 Y52.0290 R1 K514 - X-56.1172 Y52.4205 R1 K515 - X-56.7570 Y52.6799 R1 K516 - X-57.5034 Y52.6332 R1 K517 - X-58.1572 Y53.2262 R1 K518 - X-58.7379 Y53.6016 R1 K519 - X-59.1757 Y54.0506 R1 K520 - X-59.4883 Y54.4688 R1 K521 - X-59.7102 Y54.8570 R1 K522 - X-59.8354 Y55.1248 R1 K523 - X-59.9089 Y55.3246 R1 K524 - X-59.9523 Y55.4553 R1 K525 - X-59.9749 Y55.5261 R1 K526 - X-59.9939 Y55.6821 R1 K527 - X-60.0968 Y56.0450 R1 K528 - X-60.2882 Y56.8496 R1 K529 - X-60.0459 Y58.0048 R1 K530 - X-59.5723 Y59.2878 R1 K531 - X-59.4668 Y60.7493 R1 K532 - X-59.3982 Y62.0724 R1 K533 - X-59.4429 Y63.2366 R1 K534 - X-59.5387 Y64.2094 R1 K535 - X-59.6641 Y65.0317 R1 K536 - X-59.8071 Y65.7533 R1 K537 - X-59.9840 Y66.4809 R1 K538 - X-60.2172 Y67.2798 R1 K539 - X-60.5364 Y68.1896 R1 K540 - X-60.9744 Y69.2215 R1 K541 - X-61.5592 Y70.3545 R1 K542 - X-62.2943 Y71.5222 R1 K543 - X-63.1541 Y72.6492 R1 K544 - X-64.0950 Y73.6731 R1 K545 - X-65.0562 Y74.5495 R1 K546 - X-66.0058 Y75.2847 R1 K547 - X-66.9375 Y75.9005 R1 K548 - X-67.8726 Y76.4297 R1 K549 - X-68.8465 Y76.8950 R1 K550 - X-69.9097 Y77.3103 R1 K551 - X-71.0385 Y77.6520 R1 K552 - X-72.2366 Y77.9081 R1 K553 - X-73.3718 Y78.0524 R1 K554 - X-74.4966 Y78.1065 R1 K555 - X-75.5142 Y78.0793 R1 K556 - X-76.5166 Y77.9839 R1 K557 - X-77.5002 Y77.8226 R1 K558 - X-78.5557 Y77.5677 R1 K559 - X-79.5871 Y77.2317 R1 K560 - X-80.6445 Y76.7861 R1 K561 - X-81.6088 Y76.2806 R1 K562 - X-82.4866 Y75.7280 R1 K563 - X-83.2620 Y75.1557 R1 K564 - X-83.9787 Y74.5453 R1 K565 - X-84.6634 Y73.8753 R1 K566 - X-85.3317 Y73.1158 R1 K567 - X-85.9756 Y72.2533 R1 K568 - X-86.5709 Y71.2893 R1 K569 - X-87.0835 Y70.2579 R1 K570 - X-87.4848 Y69.2208 R1 K571 - X-87.7675 Y68.2393 R1 K572 - X-87.9478 Y67.3547 R1 K573 - X-88.0526 Y66.5624 R1 K574 - X-88.1043 Y65.8381 R1 K575 - X-88.1146 Y65.1483 R1 K576 - X-88.0821 Y64.3914 R1 K577 - X-87.9887 Y63.5457 R1 K578 - X-87.8095 Y62.6068 R1 K579 - X-87.5420 Y61.6610 R1 K580 - X-87.1769 Y60.7124 R1 K581 - X-86.7661 Y59.8770 R1 K582 - X-86.3379 Y59.1581 R1 K583 - X-85.9251 Y58.5640 R1 K584 - X-85.5209 Y58.0532 R1 K585 - X-85.1304 Y57.6121 R1 K586 - X-84.7239 Y57.1999 R1 K587 - X-84.2836 Y56.7987 R1 K588 - X-83.8018 Y56.4083 R1 K589 - X-83.2765 Y56.0332 R1 K590 - X-82.6941 Y55.6716 R1 K591 - X-82.0896 Y55.3518 R1 K592 - X-81.4995 Y55.0888 R1 K593 - X-80.9166 Y54.8724 R1 K594 - X-80.3623 Y54.7045 R1 K595 - X-79.8783 Y54.5861 R1 K596 - X-79.4171 Y54.4968 R1 K597 - X-78.9279 Y54.4260 R1 K598 - X-78.4216 Y54.3785 R1 K599 - X-77.8489 Y54.3561 R1 K600 - X-77.1713 Y54.3747 R1 K601 - X-76.4289 Y54.4540 R1 K602 - X-75.7026 Y54.5941 R1 K603 - X-74.9853 Y54.7971 R1 K604 - X-74.3519 Y55.0342 R1 K605 - X-73.8349 Y55.2709 R1 K606 - X-73.4158 Y55.4935 R1 K607 - X-73.0511 Y55.7120 R1 K608 - X-72.7402 Y55.9172 R1 K609 - X-72.4394 Y56.1342 R1 K610 - X-72.1163 Y56.3902 R1 K611 - X-71.7634 Y56.7011 R1 K612 - X-71.3948 Y57.0679 R1 K613 - X-71.0338 Y57.4796 R1 K614 - X-70.6922 Y57.9306 R1 K615 - X-70.3871 Y58.4002 R1 K616 - X-70.1196 Y58.8830 R1 K617 - X-69.8783 Y59.3995 R1 K618 - X-69.6703 Y59.9599 R1 K619 - X-69.4865 Y60.5805 R1 K620 - X-69.3846 Y61.2729 R1 K621 - X-69.3420 Y61.9859 R1 K622 - X-69.3653 Y62.6846 R1 K623 - X-69.4373 Y63.3326 R1 K624 - X-69.5439 Y63.8944 R1 K625 - X-69.6717 Y64.3635 R1 K626 - X-69.8106 Y64.7559 R1 K627 - X-69.9673 Y65.1147 R1 K628 - X-70.1585 Y65.4735 R1 K629 - X-70.4036 Y65.8427 R1 K630 - X-70.7108 Y66.2253 R1 K631 - X-71.0814 Y66.6075 R1 K632 - X-71.4841 Y66.9660 R1 K633 - X-71.9000 Y67.2809 R1 K634 - X-72.3090 Y67.5355 R1 K635 - X-72.7001 Y67.7315 R1 K636 - X-73.0687 Y67.8868 R1 K637 - X-73.4263 Y68.0106 R1 K638 - X-73.7882 Y68.1067 R1 K639 - X-74.1732 Y68.1732 R1 K640 - X-74.5703 Y68.2023 R1 K641 - X-74.9798 Y68.1932 R1 K642 - X-75.3547 Y68.1486 R1 K643 - X-75.7133 Y68.0736 R1 K644 - X-76.0256 Y67.9799 R1 K645 - X-76.3199 Y67.8657 R1 K646 - X-76.5949 Y67.7330 R1 K647 - X-76.8761 Y67.5652 R1 K648 - X-77.1354 Y67.3778 R1 K649 - X-77.3882 Y67.1575 R1 K650 - X-77.6008 Y66.9311 R1 K651 - X-77.7774 Y66.6968 R1 K652 - X-77.9145 Y66.4734 R1 K653 - X-78.0313 Y66.2435 R1 K654 - X-78.1141 Y66.0268 R1 K655 - X-78.1954 Y65.7851 R1 K656 - X-78.1992 Y65.6515 R1 K657 - X-78.2319 Y65.4948 R1 K658 - X-78.2477 Y65.4069 R1 K659 - X-78.2521 Y65.3785 R1 K660 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G6.2 K661 -G1 X-78.2521 Y65.3785 Z1 -G0 X-78.2521 Y65.3785 Z50 -M5 -M2 diff --git a/nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg b/nc_files/nurbs/G6/Curva_Scrool_M #1=1.jpg deleted file mode 100644 index a2dd146f216f5780fe8cd66328555927d6d228c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149211 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