Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in work) #24704

Closed
wants to merge 26 commits into from

Conversation

studiodyne
Copy link
Contributor

@studiodyne studiodyne commented Aug 27, 2022

Description

In test

  • M216 implementation : Separation of toolchange M217 and toolchange "park" M216 (No letters available for new adds in the old M217)

  • Toolchange

    • Add toolchange CUT WIPE Recover on the next extrusion : Amazing option , on tool change , if you zraise, or park or just ' swap ', the new tool recover on the old tool position , the new color touch the old color printed line , now , when you swap , the recovery will be applied only on the new tool path or new line ! BIG OPTION ! The ' no return option is only move option , but with this new feature , you can ' no return and recover only on the new starting point ' ! 'Take care, it's not the SWAP LENGTH RECOVERY' , then if no cutting wipe , the swap length will recover on the old position. Cutting wipe length is a ' travel retract ' , then swap length is applied before.
    • Add toolchange_setting.no_return : Now possible to enable/disable
    • Toolchange.z_raise without park : Now possible to lift without moving the carriage to park
    • Add toolchange_settings.cutting_wipe : Now possible to disable park and stop cutting wipe retract too.
    • Toolchange active extruder Fan : Now use the "active extruder fan" for cooling in toolchange , and not only one (For multi extruders toolhead)
    • Migration override toolchange settings+ always park option : If using prime tower and more than 2 colors, then toolchange settings have no prime and no park, but if you want to use 'migration' with the same settings it's impossible, now , you can ! (Some only gcode users can send settings before migration , but , on SDPRINT with the lcd, it's impossible, and other will say that they can make a custom macro, then i will say ' and for auto migration ? ' , it's why , migration need definitivly to have own settings.
    • Code reduction/cleaning by deleting void toolchange_prime()
    • Fix fan ON during KickStartTime, when fan.time =0 (need to be fixed on the body of the fan's function, not here, but not critical anyway)
    • Switching Nozzle Zraise feature : Lifting extruders use servos , but servos are too long for a z hop, this feature have been disabled because seems to be useless , but it's wrong, very usefull , to lift , to secure hotend offsets moves and more. Now possible!
  • Calibration

    • Calibration allowed for CORE XY or others : NEED EXPERTISE : Now possible to use calibration... I don't know why core axis have been ejected , I have verified the code , and it uses 'doblockingmove' , then if no deep stepper class used , i decided to enable this. The author of this is LULZBOT , for the taz pro dual servo tool head , I'm sure they had a true reason to did this , but I use it every day and no problems... Somes moves , apply offsets and no EXPLOSION somewhere , but ... But , Need expertise to confirm
    • Calibration disable toolchange feature : No prime , swap , zraise, fans, park when calibration change tool.
  • Bug in TOOLCHANGE_PARK
    -- Toolchange park can be enabled/disabled , but when disabled, the cutting wipe is still enabled on each tool change, and it's impossible to stop it. Now can be set by lcd/gcode , for swapping between park or not park printing
    Fr + En included
    TOOLCHANGE_PARK fix but useless , look below , we can make a code reduction and this bug will disapear

    `extruder_prime();
    
    // Move back
    #if ENABLED(TOOLCHANGE_PARK)
      if (ok) {
        #if ENABLED(TOOLCHANGE_NO_RETURN)
          const float temp = destination.z;
          destination = current_position;
          destination.z = temp;
     Fix ->   #else                               
     Fix->     destination.e = current_position.e;
        #endif
        prepare_internal_move_to_destination(TERN(TOOLCHANGE_NO_RETURN, planner.settings.max_feedrate_mm_s[Z_AXIS], MMM_TO_MMS(TOOLCHANGE_PARK_XY_FEEDRATE)));
      }
    #endif`
    
  • Explanaition: destination.e =0 before tool change / extruder_prime add swap (60mm) + purge 100mm) - CUTTING WIPE =-10 now current.e=150mm / prepare_internal_move_to_destination will return to xy pos + make 150mm of RETRACTION / FILAMENT IS EJECTED PRINT IS DEAD / - Fixed by setting destination.e just before

void toolchange_prime() function can be totally deleted

  • Explaination: T0 when first used need toolchange_prime() , but T1 can first prime just with toolchange... It's an old code not updated and buggy (explained here) , we can make a code reduction by deleting this function and make a special authorisation for T0 . Easy and no risk , because all the toolchange_prime() function have exactly the same cloned code in tool change

Code cleaning , bug , feature , hope you will agree

Thks

@thisiskeithb
Copy link
Member

Was there something wrong with #24661?

@studiodyne
Copy link
Contributor Author

@thisiskeithb
I have made too much ' force push ' to have only one commit, but git have definitively closed the PR for this reason ' may be '

@thinkyhead
Copy link
Member

Are there no remaining use cases for M217 Q? What was its initial purpose, and what kinds of situations was M217 created for? For example, is it useful to recover from a failed priming?

@thinkyhead
Copy link
Member

… now you can delete old code about TOOLCHANGE_FS_INIT_BEFORE_SWAP

Apparently this was mostly removed but was not full completed in #21142 by @RFBomb so that should get a little extra review.

#error "TOOLCHANGE_FS_INIT_BEFORE_SWAP is now TOOLCHANGE_FS_SLOW_FIRST_PRIME."

@studiodyne
Copy link
Contributor Author

studiodyne commented Sep 5, 2022

Are there no remaining use cases for M217 Q? What was its initial purpose, and what kinds of situations was M217 created for? For example, is it useful to recover from a failed priming?

It's a good idea , take a look of the remake of M217 Q , it will keep safe the old functionnality

  • Added Cutting wipe in settings ' see description'
    Thks

@studiodyne studiodyne changed the title [BUG/FEATURE/CODE REDUCTION] Many feature and fixes [BUG/FEATURE/CODE REDUCTION] Many feature and fixes (In work/test) Sep 24, 2022
@studiodyne studiodyne changed the title [BUG/FEATURE/CODE REDUCTION] Many feature and fixes (In work/test) [BUG/FEATURE/CODE REDUCTION] Many feature and fixes Sep 24, 2022
@studiodyne studiodyne changed the title [BUG/FEATURE/CODE REDUCTION] Many feature and fixes [BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in work) Sep 25, 2022
@studiodyne studiodyne changed the title [BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in work) [BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in work/test) Sep 25, 2022
@studiodyne studiodyne changed the title [BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in work/test) [BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in test) Sep 25, 2022
@studiodyne studiodyne changed the title [BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in test) [BUG/FEATURE/CODE REDUCTION] Many feature and fixes(in work) Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants