forked from cncjs/CNCjs-Macros
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Precision_ToolChange_Macro.txt
97 lines (81 loc) · 1.96 KB
/
Precision_ToolChange_Macro.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
;This macro allows you to use a fixed machine location for a tool change/probe. Ideal when you're workpiece surface has been carved away.
; Wait until the planner queue is empty
%wait
; Set user-defined variables
%SAFE_HEIGHT = -10 ; clear everything height(negative number, distance below Z limit)
;Following set probe location
%TOOL_PROBE_X = -500;machine coordinates
%TOOL_PROBE_Y = -230 ;machine coordinates
%TOOL_PROBE_Z = -20 ;machine coordinates --> lower this (more negative) to start the probing closer to wasteboard
%PROBE_DISTANCE = 100
%PROBE_RAPID_FEEDRATE = 200 ;mm/min
%wait
; Keep a backup of current work position
%X0=posx, Y0=posy, Z0=posz
; Save modal state
%WCS = modal.wcs
%PLANE = modal.plane
%UNITS = modal.units
%DISTANCE = modal.distance
%FEEDRATE = modal.feedrate
%SPINDLE = modal.spindle
%COOLANT = modal.coolant
G21 ;metric
M5 ;Stop spindle
G90 ;Absolute positioning
G53 G0 Z[SAFE_HEIGHT]
G53 X[TOOL_PROBE_X] Y[TOOL_PROBE_Y]
%wait
; Set up for probing...pause for
M0
G53 Z[TOOL_PROBE_Z]
G91
G38.2 Z-[PROBE_DISTANCE] F[PROBE_RAPID_FEEDRATE];fast probe(so it doesn't take forever)
G0 z2
G38.2 z-5 F40 ;"dial-it-in" probes
G4 P.25
G38.4 z10 F20
G4 P.25
G38.2 z-2 F10
G4 P.25
G38.4 z10 F5
G4 P.25
G90
%ORIGINAL_TOOL = posz
%wait
G91
G0 Z5
G90
G53 Z[SAFE_HEIGHT]
%wait
;Pause for manual tool change & probing
M0
G53 Z[TOOL_PROBE_Z]
G91
G38.2 z-[PROBE_DISTANCE] F[PROBE_RAPID_FEEDRATE];fast probe (so it doesn't take forever)
G0 z2
G38.2 z-5 F40 ;"dial-it-in" probes
G4 P.25
G38.4 z10 F20
G4 P.25
G38.2 z-2 F10
G4 P.25
G38.4 z10 F5
G4 P.25
G90
%wait
; Update Z offset for new tool
G10 L20 Z[ORIGINAL_TOOL]
%wait
G91
G0 Z5
G90
G53 Z[SAFE_HEIGHT]
%wait
; Pause the program for cleanup (e.G. remove touch plate, wires, etc)
M0
;Go to previous work position
G0 X[X0] Y[Y0]
G0 Z[Z0]
; Restore modal state
[WCS] [PLANE] [UNITS] [DISTANCE] [FEEDRATE] [SPINDLE] [COOLANT]