Merge 96a22c3f3e into 3b68e44d9a
This commit is contained in:
commit
6ba1eaf894
4 changed files with 49 additions and 12 deletions
|
|
@ -130,7 +130,6 @@
|
|||
#ifndef MOTHERBOARD
|
||||
#define MOTHERBOARD BOARD_RAMPS_14_EFB
|
||||
#endif
|
||||
|
||||
// Name displayed in the LCD "Ready" message and Info menu
|
||||
//#define CUSTOM_MACHINE_NAME "3D Printer"
|
||||
|
||||
|
|
@ -795,7 +794,7 @@
|
|||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
//#define CLASSIC_JERK
|
||||
#define CLASSIC_JERK
|
||||
#if ENABLED(CLASSIC_JERK)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
|
|
|
|||
|
|
@ -62,11 +62,44 @@
|
|||
#include "../../core/debug_out.h"
|
||||
|
||||
#if ENABLED(QUICK_HOME)
|
||||
|
||||
#if IS_SCARA
|
||||
extern Planner planner;
|
||||
static void mWork_Home_EndStop(double _theta,double _psi,feedRate_t feedRate){
|
||||
float e_tam = 0;
|
||||
uint8_t extruder = 0;
|
||||
float mm = 360;
|
||||
planner.buffer_segment(_theta, _psi, delta.c, e_tam, feedRate, extruder, mm);
|
||||
millis_t time_end = millis() + 1000;
|
||||
while (!endstops.any()) {
|
||||
const millis_t ms = millis();
|
||||
if (ELAPSED(ms, time_end)) { // check
|
||||
time_end = ms + 1000;
|
||||
const float x_tam = planner.get_axis_position_degrees(A_AXIS),
|
||||
y_tam = planner.get_axis_position_degrees(B_AXIS);
|
||||
if (NEAR(x_tam, _theta) && NEAR(y_tam, _psi)) break;
|
||||
}
|
||||
idle();
|
||||
}
|
||||
endstops.validate_homing_move();
|
||||
}
|
||||
static void mWork_Set_Pos_Frome_angles(double _theta, double _psi){
|
||||
forward_kinematics_SCARA( _theta, _psi );
|
||||
current_position.set(cartes.x, cartes.y);
|
||||
sync_plan_position();
|
||||
}
|
||||
static void quick_home_xy() {
|
||||
endstops.hit_on_purpose();
|
||||
mWork_Set_Pos_Frome_angles(0,0);
|
||||
mWork_Home_EndStop(360.0 * X_HOME_DIR,360.0* X_HOME_DIR,homing_feedrate(X_AXIS)); //Move X 360 angles and wait endstop
|
||||
mWork_Set_Pos_Frome_angles(0,0);
|
||||
mWork_Home_EndStop( 0 , 360.0* Y_HOME_DIR , homing_feedrate(Y_AXIS)); //Move Y 360 angles and wait endstop
|
||||
mWork_Set_Pos_Frome_angles(THETA_ANGLE_AT_HOME,PSI_ANGLE_AT_HOME); // Set Home position
|
||||
}
|
||||
#else
|
||||
static void quick_home_xy() {
|
||||
|
||||
// Pretend the current position is 0,0
|
||||
current_position.set(0.0, 0.0);
|
||||
current_position.set(0.0, 0.0); // Error with scara. x=0 y=0 -> theta = nul and psi = nul
|
||||
sync_plan_position();
|
||||
|
||||
const int x_axis_home_dir = x_home_dir(active_extruder);
|
||||
|
|
@ -109,7 +142,7 @@
|
|||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif // QUICK_HOME
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ class Endstops {
|
|||
#if ENABLED(VALIDATE_HOMING_ENDSTOPS)
|
||||
// If the last move failed to trigger an endstop, call kill
|
||||
static void validate_homing_move();
|
||||
FORCE_INLINE static bool any() { return trigger_state() != 0; }
|
||||
#else
|
||||
FORCE_INLINE static void validate_homing_move() { hit_on_purpose(); }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -704,13 +704,6 @@ class Planner {
|
|||
*/
|
||||
static void buffer_sync_block();
|
||||
|
||||
#if IS_KINEMATIC
|
||||
private:
|
||||
|
||||
// Allow do_homing_move to access internal functions, such as buffer_segment.
|
||||
friend void do_homing_move(const AxisEnum, const float, const feedRate_t);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Planner::buffer_segment
|
||||
*
|
||||
|
|
@ -722,7 +715,11 @@ class Planner {
|
|||
* fr_mm_s - (target) speed of the move
|
||||
* extruder - target extruder
|
||||
* millimeters - the length of the movement, if known
|
||||
*
|
||||
*/
|
||||
|
||||
TERN_(DELTA, private:)
|
||||
|
||||
static bool buffer_segment(const float &a, const float &b, const float &c, const float &e
|
||||
#if HAS_DIST_MM_ARG
|
||||
, const xyze_float_t &cart_dist_mm
|
||||
|
|
@ -730,6 +727,13 @@ class Planner {
|
|||
, const feedRate_t &fr_mm_s, const uint8_t extruder, const float &millimeters=0.0
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
#if IS_KINEMATIC
|
||||
friend void do_homing_move(const AxisEnum, const float, const feedRate_t);
|
||||
#endif
|
||||
|
||||
FORCE_INLINE static bool buffer_segment(abce_pos_t &abce
|
||||
#if HAS_DIST_MM_ARG
|
||||
, const xyze_float_t &cart_dist_mm
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue