Difference between revisions of "Changing Tools"
Poofjunior (talk | contribs) |
Poofjunior (talk | contribs) |
||
Line 13: | Line 13: | ||
* user (or program) has just issued a '''T0''' command | * user (or program) has just issued a '''T0''' command | ||
====Behavior:==== | ====Behavior:==== | ||
− | * The machine rapids to the pre-pickup position for tool 0. This is directly behind tool 0's parking location by about 10mm. This point is defined such that the carriage can freely move in ''x'' without crashing the twist lock pin into any other tools on the rack. | + | * The machine rapids to the ''pre-pickup position'' for tool 0. This position is directly behind tool 0's parking location by about 10mm. This point is defined such that the carriage can freely move in ''x'' without crashing the twist lock pin into any other tools on the rack. |
* The machine saves the pre-pickup position in a save slot. | * The machine saves the pre-pickup position in a save slot. | ||
* The machine moves forward in y until the twist lock is inside tool 0's wedge plate and the coupling pins are approximately contacting the tool balls on tool 0. | * The machine moves forward in y until the twist lock is inside tool 0's wedge plate and the coupling pins are approximately contacting the tool balls on tool 0. |
Revision as of 20:44, 4 July 2020
Overall Behavior
GCode Commands
Picking up a tool change from GCode is one command. It is simply a T<x> command where <x> is the index of the tool you would like to pick up. If the carriage is currently holding onto a tool, that tool is first parked before picking up the next tool. Assuming you have set tool offsets for all of your tools, whenever a tool has been picked up from the parking post, the motion system will adjust its reference point such that all position commands are relative to the tip of the current tool.
Parking a tool is also one command. It is simply T-1. Once the carriage parks the prior tool, the motion system will adjust its reference point such that all position commands are relative to the trigger point of the Zprobe on the carriage.
Picking Up and Parking a Single Tool
Starting State:
- machine is homed
- carriage is empty (not holding onto any tools)
- machine is at some arbitrary starting location (a,b,c)
- user (or program) has just issued a T0 command
Behavior:
- The machine rapids to the pre-pickup position for tool 0. This position is directly behind tool 0's parking location by about 10mm. This point is defined such that the carriage can freely move in x without crashing the twist lock pin into any other tools on the rack.
- The machine saves the pre-pickup position in a save slot.
- The machine moves forward in y until the twist lock is inside tool 0's wedge plate and the coupling pins are approximately contacting the tool balls on tool 0.
- The machine engages the lock. The twist lock rotates until it reaches the torque limit. The tool coupling points are pulled into contact, and the tool is considered locked.
- The machine retracts the tool by moving backwards in y until the tool is released from the parking post.
- Tool offsets for tool 0 are now in effect. All future commands with the tool loaded will be relative to the current tool tip.
- The machine restores the tool pickup position. This behavior causes the tool to move such that the tool tip is now at the same point in space as the Zprobe trigger point when the position was saved. The machine gantry and bed will move to create this effect.
- The machine is now ready to process subsequent GCodes.
Swapping Between Tools
Restore Positions
Why do they matter?
Implementation
Duet2/3
Duet 2 and Duet 3 boards use the built-in tool change macros to implement the behavior specified above.
Klipper
In the works!