mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-08-09 14:55:09 -06:00
toolhead: Calculate and store axes_r in move class
Calculate the ratio of axis distance to total move distance (axis_d / move_d) and store in a new member variable axes_r. This avoids needing to recalculate the value in other code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
257058981e
commit
86121ff79e
7 changed files with 30 additions and 30 deletions
|
@ -61,7 +61,7 @@ defs_trapq = """
|
|||
void trapq_append(struct trapq *tq, double print_time
|
||||
, double accel_t, double cruise_t, double decel_t
|
||||
, double start_pos_x, double start_pos_y, double start_pos_z
|
||||
, double axes_d_x, double axes_d_y, double axes_d_z
|
||||
, double axes_r_x, double axes_r_y, double axes_r_z
|
||||
, double start_v, double cruise_v, double accel);
|
||||
struct trapq *trapq_alloc(void);
|
||||
void trapq_free(struct trapq *tq);
|
||||
|
|
|
@ -25,19 +25,11 @@ void __visible
|
|||
trapq_append(struct trapq *tq, double print_time
|
||||
, double accel_t, double cruise_t, double decel_t
|
||||
, double start_pos_x, double start_pos_y, double start_pos_z
|
||||
, double axes_d_x, double axes_d_y, double axes_d_z
|
||||
, double axes_r_x, double axes_r_y, double axes_r_z
|
||||
, double start_v, double cruise_v, double accel)
|
||||
{
|
||||
struct coord axes_r, start_pos;
|
||||
double inv_move_d = 1. / sqrt(axes_d_x*axes_d_x + axes_d_y*axes_d_y
|
||||
+ axes_d_z*axes_d_z);
|
||||
axes_r.x = axes_d_x * inv_move_d;
|
||||
axes_r.y = axes_d_y * inv_move_d;
|
||||
axes_r.z = axes_d_z * inv_move_d;
|
||||
start_pos.x = start_pos_x;
|
||||
start_pos.y = start_pos_y;
|
||||
start_pos.z = start_pos_z;
|
||||
|
||||
struct coord start_pos = { x: start_pos_x, y: start_pos_y, z: start_pos_z };
|
||||
struct coord axes_r = { x: axes_r_x, y: axes_r_y, z: axes_r_z };
|
||||
if (accel_t) {
|
||||
struct move *m = move_alloc();
|
||||
m->print_time = print_time;
|
||||
|
|
|
@ -23,7 +23,7 @@ struct move *move_alloc(void);
|
|||
void trapq_append(struct trapq *tq, double print_time
|
||||
, double accel_t, double cruise_t, double decel_t
|
||||
, double start_pos_x, double start_pos_y, double start_pos_z
|
||||
, double axes_d_x, double axes_d_y, double axes_d_z
|
||||
, double axes_r_x, double axes_r_y, double axes_r_z
|
||||
, double start_v, double cruise_v, double accel);
|
||||
double move_get_distance(struct move *m, double move_time);
|
||||
struct coord move_get_coord(struct move *m, double move_time);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue