Hello Guest it is March 25, 2023, 07:21:29 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - jestah

Pages: 1
Hi Guys!

And the battle to tame this CNC goes on…. I have got the tool change working well but now that I am doing real cutting I have noticed the movement was far from ok.

Any sharp changes in direction cause overrun, poorly cut parts and wasted material. Moves around non arc curves (splines made up of lots of short lines) cause shuddering of the gantry. I also can not get smooth movement from a g1 to g2/g3 without a slight pause as if it has turned of cv mode. A true circile would pause on each line of code. The only solution has been to reduce my feeds right down.

I have tried every cv distance/angle setting with slight improvement but not enough so assuming my servo drives may be the issue. I have worked out how to auto tune the Y and Z axis and seeing better results but as I have two servos on the X axis (A is slaved to the X inside Mach3) and unsure how to auto tune both at the same time.

I found a few posts that suggested setting BOTH drives up from a “virtual master” and using a 1:1 gearing  but could not work out for the life of me how to do that with my drives.

Could some of the masters cast a few pointers my way as I would love to get my router running smoothly!



Hi guys,

I have found a strange issue I can't seem to make headway on by my self. When it is time for a tool change I call an M5 to stop the spindle but have found that this call is turning off my dust extractor output (M8 – not really coolant I know but seemed like a good idea at the time of setting up the cnc )

I have tried the following:

dust extractor to be activated by M8/M9 on output number 1 - when the program hits a M5 call the dust extractor output turns off after the dwell
dust extractor to be activated by M888/M999 (basic output on and off scripts)  and output number 1 - when the program hits a M5 call the dust extractor output turns off after the dwell
dust extractor to be activated by M888/M999 (basic output on and off scripts)  and output number 20 – This works as expected and stays on after an M5 call.

The last option is my back up solution but I am interested seeing if I can get M8 and M9 to work.

I have looked at the M5 macro and it is just a stopspin call, has mach3 got some built in coolant off with tool spin down feature?

I have also attached my XML file as I still cannot get mach3 to ignore my M codes while simulating. I have the box in general config ticked but still my dust hood and extractors outputs fire during simulation ( I have made custom vb buttons to turn my control offline to stop this issue but feel this is a poor long term solution)

Best Regards
Krishna Khatri-Chetri | CNC Sales Support
W & R Jack Ltd |  19 Allens Road East Tamaki |Office: 09 271 7700 | DDI: 09 271 7731 |  Mobile: 021 825566 | www.jacks.co.nz | Find Us
 Please protect the environment - don't print this e-mail unless you really need to

Hi guys,

I have been chipping away at getting my cnc running and things have been going really well. The scripts I built seem to mostly working well and my VB is getting better by the day!

Maybe I was feeling a bit too chuffed with my self that today when I went to pause the cnc mid tool change rather than coming to a controlled stop and waiting for cycle start it stepped onto the next line in the vb script as it was currently in the following while loop:

Call MovePos(OldTool)'Move infront of old tool slot

Code "G53 G00 X" & XPos-ToolIn & "Y" & YPos
While IsMoving()                                                      '  this is where i pressed feed hold

Code "G53 G00 Z" & ZPos 'Lower to tool insert height  '  This is where it then stepped to. VERY bad as it was mid table but my estop hand was on form so no damage today....
While IsMoving()

I was lucky that saw this happening and managed to get to my estop before the tool tool into the bed of the cnc.

My first plan was to put lf statements in to make sure it was at the target gcode before stepping over to the next line by checking against a DRO but this will add HUGE amount of coding as each movement will need to check it actually has reached its target.

My next plan was to use a brain to see if a script/macro was running then somehow lock out the feed hold but could not find an output to issue an estop if the feed hold button was pressed while in a script.

Any other idea to help make sure that feed hold acts as expected rather than causing scripts to step onto the next line?

I have been trying to make a button to automatically load a spoil board surfacing program, run a simulation and then run the file.

I have the button made, all the vb done and it seemed to work ok for the first few runs so I know that overall it should work. I then change the skim program a little and then suddenly  it seems to be stalling around the load file.
LoadFile(Skimfile) Sleep (100) While IsLoading()    Sleep (25) Wend

I have tried lots of different sleep values , wait loops, big sleeps with no wait… nothing seems to work.  It seems that people are using a sleep value by trial and error as a work around but  I cannot seem to find a value that works for me.
If I hit the cancel button on the “please wait generating path” window I get left with the program loaded in the gcode window but no tool path loaded in the tool path window.  At this point I can regen, simulate and then run the code so really stumped as to what is wrong!

The other big issue is that I am still having outputs fire (just for a moment) when I run a simulation (maybe also with the run from here button but I will need to check when I get to the workshop tomorrow). I have check the “Ignore M Calls While Loading” which did not help so have had to add script to the button to first check the state of the offline led, turn the cnc offline,  run the sim then turn it back online. This works ok for now but I would prefer to solve the problem than put a bandage on it and hope it gets better.


Hi guys,

I am making good progress on my cnc and now ready to start polishing up some of the fine details. I am cutting, changing tools automatic measuring the tool lengths but have found a few things that could lead to big issues down the road!

When I run a Gcode Simulation there is a very short trigger of my dust extractor and mister outputs. I have tested without M7 or M8 in the program and there is no triggering on the relays. Any advice as to how to keep this from starting?

Is it possible to lock out a dro so its value cannot be changed by the operator?  At the moment it is very easy for someone to change the current tool number DRO accidently which applies the wrong offset and would cause that tool to crash on top of another when the next tool change is called.
I have a few vb scripts running now and would like to know if it is advisable to avoid calling more Mcodes from within that script. If it is ok is there a limit to the number of Mcodes that can run at one time?

These are all my questions for this morning but I am sure I will have more shortly as I am doing my best to try to find any way that an inexperienced cnc operator can crash this cnc!

General Mach Discussion / my very simple brain just wont work.....
« on: December 09, 2012, 09:07:11 AM »
Hi Guys, me again with the next noob question.

This time it’s about simple brains. I have watched the videos, done a little searching hoped making a button to manually release the tool holder clamp was going to be easy… Oh how I was wrong.

So here is where I am at so far :

Oem trig# 3 (manual tool holder clamp release green when no button pressed )
Oem Trig# 6 (tool spinning)
Enable 1 
Output #4 tool release.

So I tried hooking this up as in the first image so that the manual button would need to be pressed, tool not spinning and then the estop not pressed before the output activated.

This did not work….

I decided to get simple and stripped it right back to the single button activated OEMtrig 3# driving a compare = to 0 (the state that is displayed when the button is pressed) that drives output 4.

Still no luck…. I have reloaded the brain many times, I can view it the input state goes from green to blue WHEN the button is pressed. I

What am I doing wrong? Why is it feeling like the lobs are connecting to the inputs? Or is it because my switching is setup to be active when it goes low?

 I am running a Ethernet smooth stepper and have tested activating the output using so 99% sure this issue just in my brain.

All your pointers so far have help a lot so looking forward to a push in the right direction with this one too!

Hi guys,

Ok next newbie question.... I am trying to update my tool table offsets but can’t for the life of me find any reference to how to update the tool table using VB.

I have found a few macros and have made one for my more basic manual tool change cnc that just zeros out the Z DRO but as I have got my sticky fingers on a small ATC cnc I would prefer to have the tools in the rack measured and offsets stored in the tool table so that while cutting it only has to grab a tool and avoid measuring each after the change.

I just need to know the code that will actually update the tool table, I have been searching but have not found any thing and my attempts to get it to work in MDI have been fruitless..
Once again many thanks in advance!

General Mach Discussion / trying to hook up external button to output 3
« on: December 03, 2012, 11:02:26 AM »
Hi guys... Next silly newbie question....

I am making good progress getting this atc router working but a bit stuck trying to get the external button on the spindle to release the tool.
I have searched and found that I need to wire this external button to a spare input on my BOB then connect this to an oem trigger and use the correct oem code to activate the output.  As directed in this link:

I am not quite sure where I am going wrong but think it maybe that I am using the wrong oem code. I have found the most recent oem code list but cannot find one for turn on output 3. There are codes for output 4+ on and off but the best I could find was Output 3/Extrn3 Active LED 854  both in the spread sheet and wiki.

So here is where I am at so far:

 Oem trig #2 mapped to port 2 pin 2
The tool release is mapped to output 3 port 2 pin 14
OEM trigger connected to OEM code 854

The fact that the codes for triggers one two and three are not easy to find makes me think they are not for general use? Do I need to rewire to use another output? Have I missed something blindingly simple?

Lastly once I get this to work can I expect it to only activate the output as long as the button is held in or will it act like a toggle needing one press to release the clamp and one to close it?

Any help is much appreciated as my hair is fast being pulled out!

General Mach Discussion / gripper style ATC macro - help needed
« on: November 29, 2012, 08:00:43 AM »

Hi Guys,

I have been trying to get a macro working for an auto tool changer that docks its tools into claw grips sitting on a rack at the end of the cnc bed.

I started with the example file and had little luck after a few days trying as I am very new to VB but keen to jump in the deep end and get my feet wet!

The code is not perfect, I am sure I can get the other things sorted myself but the one issue I can’t work out is how to call the "Xpos" value that is used in the” Call MovePos(OldTool)” sub. The movement is not working as i want and I think it may be because of the way I am trying to go about things...

Can someone confirm if I am able to get the Xpos values to be read after the sub? Or is this not possible and I need to find another way to go about getting this thing to work as I want?

Also is this style of atc called a wine rack?

Many thanks in advance and I have dropped my code below.


  'ToolChange Macro For wine rack type tool changer 11/05 Brian
' modded by jestah for gripper style rack 
Sub Main()
OldTool = GetOEMDRO (1200) 'Tool In spindle DRO You must add this to your settings screen
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool 'Tool Changer Macro (Bed Type)
MaxToolNum = 6      'Max number off tools for the changer
ToolDown   = -25.0 'Z Pos to Get or drop a tool
ToolUp     = -0.00    'Z Hieght to Rapid to and from tool change
ToolIn = 15 'X distance to push tool into gripping claw
ToolOver = 10.0 ' tool over other tools plane
AboveTool = 5 'distance above tool holder to rapid down too
DockFeed     = "2000"   'Set the first plunge speed for the probe
GrabFeed     = "2000"   'Set the first plunge speed for the probe

If NewTool = OldTool Then
   Exit Sub
End If

While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)

'Retract to top of z before moving to old tool pos
Code "G00 G53 Z" & ToolUp
While IsMoving()
DoSpinStop()'spindle off

ActivateSignal(OUTPUT5) ' Dust hood up

'Move infront of old tool slot
Call MovePos(OldTool)

Code "G53 X" & XPos - ToolIn & "Y" & YPos ' this is where the issue is
While IsMoving()

'Lower to tool insert height
Code "G53 Z" & ToolDown
Code "G4 P1.0"
While IsMoving()

'move tool into rack
Code "G53 G1 F" & DockFeed &" X " & XPos & " Y" & YPos
While IsMoving()

'Release tool
ActivateSignal(Output4) 'Turn On Draw bar to release the tool
Code "G4 P1.0"    'Wait for the tool to release

'Retract up to over plane
Code "G53 G00 Z" & ToolOver

'Move to new tool station
Call MovePos(NewTool)
Code "G53 X" & XPos & " Y" & YPos
While IsMoving()

Code "G53 G00 Z" & ToolDown + AboveTool
Code "G53 G1 F" & GrabFeed &"Z" & ToolDown
Code "G4 P1.0"
While IsMoving()

'Clamp the tool
DeActivateSignal(Output4) 'Clamp the tool
Code "G4 P1.0"    'Wait for the tool to Clamp
While IsMoving()

'Move out of tool grip
Code "G53 G00 X" & XPos - ToolIn & " Y" & YPos
While IsMoving()

'retract To top of Z
Code "G53 Z" & ToolUp

Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
Code "G00 X" & x & " Y" & y 'Move back to where the tool change was prompted
DeActivateSignal(OUTPUT5) ' Drop hood
End Sub

Sub MovePos(ByVal ToolNumber As Integer)

Select Case ToolNumber
       Case Is = 1
         Xpos = 40.00
         YPos = 10.00
       Case Is = 2
         Xpos = 40.00
         YPos = 20.00
       Case Is = 3
         Xpos = 40.00
         YPos = 30.00
       Case Is = 4
         Xpos = 40.00
         YPos = 40.00
       Case Is = 5
         Xpos = 40.00
         YPos = 50.00
       Case Is = 6
         Xpos = 40.00
         YPos = 60.00
        Case Is = 7
         Xpos = 40.00
         YPos = 70.00
   Case Is = 8
         Xpos = 40.00
         YPos = 80.00

       End Select

'Code "G53 X" & XPos & " Y" & YPos
End Sub


General Mach Discussion / OEM Triggers and LED on custom screenset for ATC
« on: November 11, 2012, 08:04:16 PM »
Hi Guys,

I am setting up a new cnc router and am giving a pick and place style auto tool changer a go for the first time!
I have setup all the hardware, mapped the ports and pins, seeing the expected active leds on the bob but for the life of me can’t work out how to make the OEM trigger LED on my custom Mach3 screen to work.

This is the list of the I/0 lines I think I will need:
Tool sensor
Air Pressure Insufficiency
Brush up in position signal
X Home Point
A Home Point
Y Home Point
Z axis Home Point
Servo Error
Emergency Stop
Over travel - limit & tool sensor
Release the tool by hand
Release tool signal
Hold tool signal
Zero-speed signal
Spindle thermal overload

(I have also attached a spread sheet showing more details of the above as well as my mxl and modded screenset files)
I can’t seem to find the OEM Trig in the Function drop down box or any OEM codes in the OEM code spread sheets.

I feel that I have missed a step or that the oem triggers are to be used differently. I have tested the hardware connections by mapping the io lines to other functions and they seem to work as limit triggers.

Could someone spare some time to point me in the right direction?

Pages: 1