Please keep in mind that this method isn't your ordinary slice and print-routine. And thus not suitably for beginners. It does require gcode-modification as well as a lot of trial and error. Also, remember that I'm no gcode-master. I bet there are 100 ways to do this better. I've attached a video of my routine in the files section.I do recommend a glass bed since they tend to be easier to detach the prints from.
Step 1. Print and mount the hook.
Print the attached file with any preferred settings. It must be sturdy enough so it won't bend too much. I, therefore, recommended 100% infill. Mount it on the upper left wheel bolt on the hot end assembly. Be sure to readjust your bed before printing.
Step 2. Attach a paper to your bed
I used duct tape. But be creative. Just be sure it doesn't interfere with your printer's movement. Place a box in front of your printer.
Step 3. Get yourself a looped visor STL.
This might be the trickiest step. Since I don't own the rights for the visor-design that I am using. It's also a Swedish version. So it won't do the most of you any good anyway. So get your hold on your preferred design and add a loop to it. You could try remix one in your favorite software, or ask friend :) Sorry that I can't help you any further with this step!
Step 4. Slice and print it!
Upload the visor of your choice to your printer and print it. Try to place it as far down on your bed as possible. This gives the hook more freedom to navigate around the loop. Turn of brim and skirt. You also need to delete the prime line that all Ender 3 does. Delete the following in the "Machine settings" to do that:
"G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up"
DO NOT REMOVE YOUR PRINT
Step 5. Locate all coordinates.
Use your printer's "Move Axis" feature to navigate to the following locations and write down each of them. Write them down from inside the "Move Axis" settings, since the overview isn't so precise. Your goal is to navigate through the whole unload routine.
Coordinates reminder:
X= Left/Right
Y= Away/ towards you
Z= Up/down
1. Cooling position:
Preferably a position so that cool air from the parts fan will cool down the build plate.
My position:
G0 X180 Y150 Z50
2. Position behind the loop:
Choose a position a bit behind the loop so that your hook won't hit the loop on its way there from the cooling position.
My position:
G0 X156 Y230 Z1.9
3. Position inside the loop:
Make sure that you have enough space on either side of the hook while entering the loop. Also, be sure not to hit the loop on the Y-axis. That will fling your visor all across the room (Almost).
My position:
G0 X156 Y211.8 Z1.9
4. Lift movement:
I recommend doing this in two steps. First up and forward a very small bit. Then a bit higher and more forward. Notice the F command to make this move really slow. If you got trouble with visorflinging, you could ad G4 S300 so make your printer halt for 0.3 seconds between the move commands. Or add another speed modifier to any required line. That helped me reduce the flinging on one printer.
My positions:
G0 X156 Y211.2 Z5 F1200
to
G0 X156 Y200.7 Z10
5. Push movement:
This one is simple. This position should be at the end of your build plate. So far down that, your visor is guaranteed to reach the paper. It is also advised to lover you nozzle to make it easier for the visor to let go of the hook. Be advised. If the visor hits tape or something, it will turn a bit and get stuck on the hook. It might not be an issue, but keep that in mind.
My position: G0 X156 Y51.7 Z2
6. Drop off/touch down movement:
This coordinate should be where your visor falls down from the paper. The easiest way is just to change the Y-value to a higher Y.
My position:
G0 X156 Y190 Z2
7. Fail-safe procedure
If you got trouble with getting this to work every time, you could add a failsafe procedure. This is mine. It does an extra sweep of the build plate to make sure that the visor is pushed onto the paper.
My position:
G0 X156 Y220 Z80
G0 X110 Y220 Z2
G0 X110 Y55 Z2
Step 5. Insert your coordinates/my whole routine:
Open your sliced gcode. Open it in notepad or maybe notepad++. You will see that I've added a pause. That's because of a bug that won't allow us to drop the bed temperature below 40°. Scroll down to the bottom. There you will find ";End of Gcode".
Insert the following after that:
M300 S1500 P200
G0 X180 Y150 Z50;Your cooling position
M106 P0;turns on fans to increase cooling
M106 P1
M106 P2
M117 cooling
M109 R25;wait for hotend to cool
G4 P120000;a pause
M190 R36;wait for bed to cool
M300 S1700 P200
M300 S1700 P200
;moves
M117 removing print
G0 X156 Y230 Z1.9;behind loop
G0 X156 Y211.8 Z1.9;inside loop
G0 X156 Y211.2 Z5 F1200;lift movement
G0 X156 Y200.7 Z10;further lift movement
G0 X156 Y51.7 Z2;push moivement
G0 X156 Y190 Z2;drop off movement
G0 X156 Y190 Z50
; the following is my failsafe
G0 X156 Y220 Z80
G0 X110 Y220 Z2
G0 X110 Y55 Z2
;Finnish notification
M300 S2200 P200
M300 S2200 P200
M300 S2200 P200
Step 6: Save and print.
Step 7. Calibrate all movements.
Film the first routine. Use the video to make adjustments if your printer is unsuccessful in unloading your print. You might also need to lower your temperature or adjust the speed for some specific movements. You might need to repeat this step a lot of times.
Step 8: Copy and paste.
When you have created a code that worked well, just copy and paste the whole code as many times you want. I did it 20 times. That way my printers won't run out to filament. I also check my bed leveling every time I restart the program.
Summary:
This method DOES require a lot of trial and error. I made maybe 5-10 adjustments to my code before finding a version that worked 100%. On EACH PRINTER. So don't give up. And a reminder. I strongly recommend using a glass bed!