Machsupport Forum
Mach Discussion => VB and the development of wizards => Topic started by: cnc-Joe-2 on August 09, 2020, 08:06:06 PM
-
Hi Group,
- I've looked through the thread and haven't found anything exactly like what I need.
- I purchased a lathe that was already converted to Mach3 CNC.
- The seller is not very helpful, but he did do the conversion.
- The Tool Turret does not have a home switch. I only use it in a one-direction of rotation mode.
- There are times when Mach3 forgets what position the turret is in (I know-I need to sort that out, and add a home switch..)
- The M6 macro looks pretty standard compared to other M6 ATC Rotating Tool Turret macro's (from what I can tell, anyhow).
- Is there a way that I can tell it what tool position it is on- or set it?
- For instance it "thinks" it is in tool position #1 -- when in reality it is in tool position #4.
- Is there a way to reset it to thinking it is in Tool position #4 ?
- Somewhere other than in writing it into the M6 macro, and taking it out: SetCurrentTool( 4 )
Thanks for any help. I am new to Mach3 programming - but have done a good bit of VB a longggg time ago.
Joe
-
See picture, click enter tool number
-
Thank You, Dale.
- I forgot to mention that the lathe came with a screenset made by Calypso.. It don't think that its has that DRO feature... at least not that I've found. I will check!
- I think I'm going to get Mach3 Turn running... on this machine... I think its better than Calypso screens. Maybe not as artsy..but I'm not sure what that Calypso gives me that I really need.
Thank You for your help!
Joe
Romeo, Michigan, USA
-
SUCCESS!!!
- I finally wrestled this down and got it sorted out.
- Thank Goodness for the true genius of Art Fennerty when he programmed Mach3!!!!
- I have the DynaMechtronics DynaMyte DM-3000 lathe turret working in a uni-directional mode.
- The machine has a solenoid that pulls the locking pawl out of the way for bi-directional mode... but it was operating in an always active mode- which kept the turret from locking into place. I just removed power from the solenoid for now - and let the spring activated pawl lever lock the turret into place on its reverse movement.
- I even figured out how to reset the DRO for the angular position. As the turret has to back up / turn in the opposite direction (CCW) - when the pawl locks there is a "hard stop".. and you lose a few steps (no encoder on this baby)... this loss results in error that is accumulated with every tool change.
- So - its working in a uni-directional fashion - which is good enough for now.
- Now to get Fusion 360 CAM/Manufacture to ouput code..and get the machine running (after setting up the Mac3 tool table with the correct offsets, of course).
Joe
Romeo, Michigan, USA
-
Here is the code I did for pawl lock back type tool changers it uses incremental moves to stop the counting errors, it may not be right for a straight swap but the code may be of use.
' (C) Graham Waterworth Mach forum.
' rough draft for a lock back to pawl type tool changer
' this has not been tried on any tool changer
' use/modify it as you wish, I take no responsability
' for any damage to you or your equipment.
If IsLoading() Then
' do now't, program loading
Else
' dim some vars
Dim next_tool As Integer
Dim current_tool As Integer
Dim steps_per_tool As Integer
Dim steps_after_pawl As Integer
Dim max_tools As Integer
Dim holdingDRO As Integer
Dim rotateCW As Integer
Dim moves As Integer
Dim fast_feed As Integer
Dim slow_feed As Integer
Dim axis As String
Dim zero As Integer
Dim to_pawl As Integer
' set up some vars
zero = 0
axis = "A" ' change to what ever axis you use for tool changer
rotateCW = 0 ' set to 1 for CCW and 0 for CW rotation
max_tools = 6 ' number of tools on turret
steps_per_tool= 100 ' set to what ever it needs to be
steps_after_pawl = 10 ' set to amount to clear pawl
steps_to_lock_back_on_pawl =10 ' number of steps to lock onto pawl
holdingDRO=1050 ' or what ever you have set screen dro to
next_tool = GetSelectedTool()
current_tool = GetCurrentTool()
fast_feed = 2500 ' set to safe rapid rotation speed
slow_feed = 500 ' set to safe creep speed back onto pawl.
' do some tool changing
If next_tool > max_tools Then
Message "Tool number too high, program stopped."
Code "M30"
End
End If
If next_tool<1 Then
Message "Tool number too low, program stopped."
Code "M30"
End
End If
If next_tool=current_tool Then
' do nowt, we got it already
Else
' lets do some changing
If next_tool>current_tool Then moves=next_tool-current_tool
If next_tool<current_tool Then moves=max_tools-current_tool+next_tool
rapid_move = (moves * steps_per_tool) + steps_after_pawl
to_pawl = zero - steps_to_lock_back_on_pawl
If rotateCW =1 Then
rapid_move = zero - rapid_move
to_pawl = Abs(to_pawl)
End If
Code "G92 " & axis & "0"
Code "G91 G94 G61"
Code "G01 " & axis & rapid_move & "F" & fast_feed
Code "G04 P250"
While IsMoving()
Wend
Code "G01 " & axis & to_pawl & "F" & slow_feed
While IsMoving()
Wend
SetCurrentTool next_tool
SetUserDRO holdingDRO, next_tool
Code "G90" ' back to absolute movement
End If
End If
' end of tool change