Alright, so our new 4x8 China router shipped with Mach3 installed. I've used Mach3 before on other routers and mills, but haven't done any setup/config modification on them, just button pushing.
My situation is as follows- The Y axis came reversed, so it's making mirror images of the desired parts. under Config/Ports and Pins/Motor Outputs I changed the DirLowActive from X'd to Checked, and that now has the machine jogging in the correct directions, though it homes in the wrong direction (as expected) and gets confused.
So my question is- What needs changing now to reflect the corrected axis? Can I just do the math for all the home switches, soft stops, ATC tool holder and tool touch off locations, and call it good? If so, would I just mirror those points around the midpoint of the work envelope or what? Or should I just pretend the old settings never existed and act as if I'm setting up a home build (experimentally determine everything by jogging around)? Have I missed any components that'll give me trouble?
Thanks, and sorry if I'm not being terribly clear- I'm far from computer literate!
-James
Similar Threads:
<img src="https://ivxo1q-dm2305.files.1drv.com/y4mENMmTr_Cabc7pR0FUdB6gtbADq2JbuG4_rGy0eBQvLJx19pTi6TqMUIJN0xgOyDIc0gWoxYhS38HpbSTFGdfaK-o42IOU6jczrhDpfpCOTNGL1X6hvZCbgj0y35gqmq1YGTrWwShYGV-C7lXA2esy0Pi_WfnBSyroDLSGXwce4uSr1U7op7srdi78rispHCa_K4aFlTlJPVkkNWMfgh_Tg?width=60&height=60&cropmode=none" width="60" height="60" />
Being Disabled is OK CNC is For fuN
Never seen that one are the soft limits on
<img src="https://ivxo1q-dm2305.files.1drv.com/y4mENMmTr_Cabc7pR0FUdB6gtbADq2JbuG4_rGy0eBQvLJx19pTi6TqMUIJN0xgOyDIc0gWoxYhS38HpbSTFGdfaK-o42IOU6jczrhDpfpCOTNGL1X6hvZCbgj0y35gqmq1YGTrWwShYGV-C7lXA2esy0Pi_WfnBSyroDLSGXwce4uSr1U7op7srdi78rispHCa_K4aFlTlJPVkkNWMfgh_Tg?width=60&height=60&cropmode=none" width="60" height="60" />
Being Disabled is OK CNC is For fuN
It does it whether the soft limits are on or off. Currently off.
I would not know ask ger21 he might know
<img src="https://ivxo1q-dm2305.files.1drv.com/y4mENMmTr_Cabc7pR0FUdB6gtbADq2JbuG4_rGy0eBQvLJx19pTi6TqMUIJN0xgOyDIc0gWoxYhS38HpbSTFGdfaK-o42IOU6jczrhDpfpCOTNGL1X6hvZCbgj0y35gqmq1YGTrWwShYGV-C7lXA2esy0Pi_WfnBSyroDLSGXwce4uSr1U7op7srdi78rispHCa_K4aFlTlJPVkkNWMfgh_Tg?width=60&height=60&cropmode=none" width="60" height="60" />
Being Disabled is OK CNC is For fuN
OK I got that sorted by changing the home offset to reflect the fact that it's at the positive side of the axis. Made good progress so far, thanks! It now homes without error.
I've updated the M6Start.m1s macro to reflect the new Y locations for the tool holders, but I'm now getting an error when it's most of the way through a tool change. Example- T1 is in the spindle. I input T3 M6 into MDI, press start. T1 returns to the T1 fork, releases as normal. Head goes over to T3 fork, picks up T3 as expected, the head raises. At this point, I get an error message that says "Wait Brush Position Limit Signal" and 3 or 4 seconds later it changes the error message to EStop Button Pressed.
The ATC did work fine without this error before I corrected the reversed axis, and the only changes to the M6Start.m1s file were the "TxYpos =" values. I've copied the file below. Any ideas?
'chengdu xhc technology ,all right reserved |
'please don't modify these code if you don't know what you doing |
'
'8直排换刀程序 |
'----------------------------------------------------------------|
Dim XWork,YWork,z,a,b,c
Dim OldTool,NewTool,tool,MaxToolNum,ToolDown,ToolUp,To olSafe
Dim Xpos,YPos,ZPos
Dim ToolYaxisAdd
Dim BrushWaitTime,ToolReleaseWaitTime,ToolClampWaitTim e
Dim CurrentFeed,CurrentAbsInc,CurrentGmode
'ToolChange Macro For Bed type tool changer 11/05 Brian
Sub main
DoSpinStop() 'stop spindle
Call GetCurrentMachineState() 'Save our current machine state
OldTool = GetOEMDRO (1200) 'Tool In spindle DRO You must add this to your settings screen
XWork = GetOEMDRO(800) ' Get Current X Work Coordinate
YWork = GetOEMDRO(801) ' Get Current Y Work Coordinate
Code "G90"
tool = GetSelectedTool()
NewTool = tool
'Tool Changer Macro (Bed Type)
MaxToolNum = 8 'Max number off tools for the changer
ToolSafe =-10 'GetOEMDRO (1240) 'Tool Safe Position
ToolUp = -80 'GetOEMDRO (1241) '-1.0'Z Hieght to Rapid from tool to tool
Spd =10000 'GetOEMDRO (1242) '10000'speed
ToolXaxisAdd =80 'GetOEMDRO (1243) 'X轴安全距离100'X Avoid Position Add
If NewTool = OldTool Then
Message"Tool No Change"
Exit Sub
End If
'SetUserLED(53, 1)
'------------------------------------------
' Brush Control
'------------------------------------------
ActivateSignal(Output7)
Message"Wait Brush Position Limit Signal "
BrushWaitTime = 0
while not IsActive(Input3)
Code "G4 P0.1"
While IsMoving()
sleep(20)
Wend
if BrushWaitTime > 25 Then
DoOEMBUTTON(1021)
Message"Brush Wait OverTime"
Exit Sub
End If
BrushWaitTime = BrushWaitTime +1
wend
'-------------------------------------------
'-------------------------------------------
Message"Tool Change"
While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend
Code "G00 G53 Z" & ToolSafe
While IsMoving()
sleep(20)
Wend
Call MovePos(OldTool)
While IsMoving()
sleep(20)
Wend
Code "G01 G53 Y" & YPos & "X" & (XPos - ToolXaxisAdd) & "F" & Spd
Code "G4 P0.1"
While IsMoving()
sleep(20)
Wend
Code "G4 P0.5"
While IsMoving()
sleep(20)
Wend
Code "G0 G53 Z" & ZPos
Code "G4 P.75"
While IsMoving()
sleep(20)
Wend
Code "G01 G53 X" & XPos & "F" & Spd
Code "G4 P.75"
While IsMoving()
sleep(20)
Wend
'------------------------------------------
' Tool Release Control
'------------------------------------------
ActivateSignal(Output6) 'Turn On Draw bar to release the tool
Message"Wait Tool Release Signal "
ToolReleaseWaitTime = 0
While Not IsActive(input1) 'OEM INPUT1
Code "G4 P0.1"
While IsMoving()
sleep(20)
Wend
If ToolReleaseWaitTime > 25 Then
DoOEMBUTTON(1021)
Message"Tool Release feedback Signal Wait OverTime"
Exit Sub
End If
ToolReleaseWaitTime = ToolReleaseWaitTime +1
Wend
'-------------------------------------------
'-------------------------------------------
Code "G4 P1.0" 'Wait for the tool to release
Code "G0 G53 Z" & ToolUp
Call MovePos(NewTool)
While IsMoving()
sleep(20)
Wend
Code "G01 G53 Y" & YPos & " X" & XPos & "F" & Spd
Code "G4 P.75"
While IsMoving()
sleep(20)
Wend
Code "G0 G53 Z" & ZPos
Code "G4 P.75"
While IsMoving()
sleep(20)
Wend
'------------------------------------------
' Tool Clamp Control
'------------------------------------------
DeActivateSignal(Output6) 'Turn Off Draw bar to Clamp the tool
Message"Wait Tool Release Signal "
ToolClampWaitTime = 0
While Not IsActive(input2) 'OEM INPUT2
Code "G4 P0.1"
While IsMoving()
sleep(20)
Wend
If ToolClampWaitTime > 25 Then
DoOEMBUTTON(1021)
Message"Tool Clamp feedback Signal Wait OverTime"
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
Exit Sub
End If
ToolClampWaitTime = ToolClampWaitTime +1
Wend
'-------------------------------------------
'-------------------------------------------
Code "G4 P1.0" 'Wait for the tool to Clamp
While IsMoving()
sleep(20)
Wend
Code "G01 G53 X" & (XPos - ToolXaxisAdd) & "F" & Spd
Code "G4 P1"
While IsMoving()
sleep(20)
Wend
Code "G0 G53 Z" & ToolSafe
While IsMoving()
sleep(20)
Wend
'Code "M1801"
DeActivateSignal(Output7)
Message"Wait Brush Position Limit Signal "
BrushWaitTime = 0
While Not IsActive(Input4)
Code "G4 P0.1"
While IsMoving()
sleep(20)
Wend
If BrushWaitTime > 25 Then
DoOEMBUTTON(1021)
Message"Brush Wait OverTime"
Exit Sub
End If
BrushWaitTime = BrushWaitTime +1
Wend
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
Sleep(200)
Call ReturnToInitialState()
Sleep(100)
XWork=0
YWork=0
'Code "G0 X" & XWork & " Y" & YWork 'Move back to where the tool change was prompted
Code "G0 X" & XWork & " Y" & YWork 'Move back to where the tool change was prompted
While IsMoving()
sleep(20)
Wend
Message"Tool Change Finish"
'-------------------------------------------
'-------------------------------------------
'------------------------------------------
' auto start
'------------------------------------------
If Not FileName() = "No File Loaded." Then
If GetOEMLED(1865) Then
MsgBox "Start Spindle, then press OK to Continue",48,"Start Spindle"
End If
DoSpinCW()
DoOEMButton(1000) ' Cycle Start
End If
End Sub
'------------------------------------------
' Tool Postion
'------------------------------------------
Sub MovePos(ByVal ToolNumber As Integer)
'根据不同的用户,只需要修改以下=号内的刀具偏移位置,其它不用更改
'================================================= =========================
TlXPos=2692.2535 ' 刀具1X轴偏移,是机器坐标
TlYPos=1154.1272 ' 刀具1Y轴偏移,是机器坐标
TlZPos=-214.7140 ' 刀具1Z轴偏移,是机器坐标
T2XPos=2692.6675 ' 刀具2X轴偏移,是机器坐标
T2YPos=1004.1340 ' 刀具2Y轴偏移,是机器坐标
T2ZPos=-214.7140' 刀具2Z轴偏移,是机器坐标
T3XPos=2692.7275 ' 刀具3X轴偏移,是机器坐标
T3YPos=854.4649 ' 刀具3Y轴偏移,是机器坐标
T3ZPos=-214.7140 ' 刀具3Z轴偏移,是机器坐标
T4XPos=2692.0616 ' 刀具4X轴偏移,是机器坐标
T4YPos=703.5398 ' 刀具4Y轴偏移,是机器坐标
T4ZPos=-214.7140 ' 刀具4Z轴偏移,是机器坐标
T5XPos=2692.8035 ' 刀具5X轴偏移,是机器坐标
T5YPos=556.0724 ' 刀具5Y轴偏移,是机器坐标
T5ZPos=-214.7140 ' 刀具5Z轴偏移,是机器坐标
T6XPos=2693.5714 ' 刀具6X轴偏移,是机器坐标
T6YPos=404.3474 ' 刀具6Y轴偏移,是机器坐标
T6ZPos=-214.7140 ' 刀具6Z轴偏移,是机器坐标
T7XPos=2693.2695 ' 刀具7X轴偏移,是机器坐标
T7YPos=252.4544 ' 刀具7Y轴偏移,是机器坐标
T7ZPos=-214.7140 ' 刀具7Z轴偏移,是机器坐标
T8XPos=2693.6054 ' 刀具8X轴偏移,是机器坐标
T8YPos=105.8769 ' 刀具8Y轴偏移,是机器坐标
T8ZPos=-214.7140 ' 刀具8Z轴偏移,是机器坐标
'================================================= ============================
Select Case ToolNumber
Case Is = 0
Xpos =TlXPos
YPos = TlYPos
ZPos =TlZPos
Case Is = 1
Xpos = TlXPos
YPos = TlYPos
ZPos = TlZPos
Case Is = 2
Xpos = T2XPos
YPos = T2YPos
ZPos =T2ZPos
Case Is = 3
Xpos = T3XPos
YPos = T3YPos
ZPos =T3ZPos
Case Is = 4
Xpos = T4XPos
YPos = T4YPos
ZPos =T4ZPos
Case Is = 5
Xpos = T5XPos
YPos = T5YPos
ZPos =T5ZPos
Case Is = 6
Xpos = T6XPos
YPos = T6YPos
ZPos =T6ZPos
Case Is = 7
Xpos = T7XPos
YPos = T7YPos
ZPos =T7ZPos
Case Is = 8
Xpos = T8XPos
YPos = T8YPos
ZPos =T8ZPos
End Select
End Sub
Sub GetCurrentMachineState()
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state
CurrentFeed = GetOemDRO(818) ' Get the current feedrate to return to later
End Sub
Sub ReturnToInitialState()
If CurrentAbsInc = 0 Then 'if G91 was in effect before then return to it
Code "G91"
End If
If CurrentGMode = 0 Then 'if G0 was in effect before then return to it
Code "G0"
End If
Code "F" & CurrentFeed ' Reset to original feed rate
End Sub