Hello Guest it is May 26, 2024, 09:28:01 PM

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.

Messages - RWElphinstone

Pages: 1 2 »
General Mach Discussion / Re: Pocket widths different on x and y axis
« on: August 01, 2017, 02:53:22 PM »
It sounds kind of like a backlash issue, have you checked it? If so have you set backlash comp? If you cut a circle is it round?

I regularly cut 1 1/8" circles through, however, I don't recall having much issue with ovals. (Usually, when this happens, I notice because the bit needs to be replaced as MDF likes to eat bits somewhat.) I have not yet set any backlash, but did find an article (here: http://www.cnccookbook.com/CCBacklash1.htm) which I'm reading through, as well as this video (here: https://www.youtube.com/watch?v=A27nOkTFYDY) which also seems helpful.

I am interested in the best way to test, and then, to assign the settings in Mach3, if warranted.

I'd avoid compensating in your drafting, it's sets a long precedent of adjusting models instead of addressing the real issue up front.

Agreed. I've opened and closed these files so many times already, I'm happy to just leave them be. LOL.

General Mach Discussion / Pocket widths different on x and y axis
« on: August 01, 2017, 02:07:48 PM »
Hi all,

I have a strange one for you. Personally, I'm at my wits end. Let me preface this by saying I have a home built Greenbull Clone (it's similar to the Greenbull by BuildYourCNC.com) and it cuts 4' x 8' sheets of MDF on a regular basis. It runs on roller chain on both the x and y-axis, and with a screw on the z-axis.

Here's an image that hopefully helps to illustrate my problem:

In this image, the square outside dimensions are 15" x 15". Each of the pockets inside have a width of 0.66", to allow me to fit 15mm MDF snugly. Now, here's where I have an issue. When I cut the one on the right (horizontally aligned in the image), it cuts fine. The gantry travels along the x-axis for the length, and the width of the pocket is enough to support the snug insertion of the MDF. When I cut the one on the left, however (vertically aligned in the image), the width of the pocket is different. It is so that the MDF will not fit into the pocket, and the edge of the wood actually 'bumps' into the edge of the pocket. I physically have to sand the piece to be inserted, or else, risk damaging the pocket or the wood.

Now, here's where I am having trouble understanding what may be happening. I thought, "oh, well, the x-axis may not be properly configured, and that's why all of my pockets seem to be tighter", and that's when I modified the motor stepping settings. I cut and recut the same piece using different settings, until such time as the tight pockets were the same width of the proper ones. Here's the problem. When I finally measured everything out, the 15" x 15" square was now 15 1/8" on the x-axis side. Not good.

So, my question to the experts here is, what could this be? Could this be backlash, due to the longer chain drive on the x-axis? If so, can backlash affect internal (pocket) cuts and external cuts differently? The chain drive on both has very little play in it, so I think I've firmed it up as much as it can be, so if I assign settings in the Mach3 backlash settings, may this also affect the dimensions of other cuts, outside of the pockets?

I hope I've explained this properly. As I mentioned, I'm at my wits end. I really don't want to go into every design I've created, and manually modify the pockets on the x-axis to be 'wider' than the y-axis cuts. (Especially considering I regularly rotate parts on a sheet, to fit other cuts, and this would cause significant issue.)

I really, really hope someone has seen this before, or has some advice on how I may rectify this issue. I appreciate any input!

Thank you!


You're actually spot on...

Wow. You're kidding! Well, thank you very much! I'll implement this.

DoOEMButton(119) toggles softlimits on and off. You'll want to check the status of OEMLED(815) to see if they are on or off before calling the button.

Ok, that sounds awesome. Thank you!

I'm not versed in the code, personally, but if it's not too much trouble, is there an easy way to create an "IF" statement to check this? (I'm reading this over, and am not fully understanding how this is to be set.) I get that there should be a line that works like "IF OEMLED(815) is ON THEN DoOEMButton(119) 'If the Soft Limits button is lit, turn it off", but I can't exactly understand how. (I know my pseudo-code is a poor example.)

I appreciate the help!

It's alive! ALIIIIIVE!!! :) Thank you, everyone, for all of your help! Now, I have one last question. (Of course, right? Because this never ends. LOL.)

I have made some changes to the "Ref All Home" button, to make the X and Y axis come off the limit switches by 0.5" each and re-zero (I'll post the code shortly) but have a question in regards to the Homing Process. Right now, I have my Soft Limits set to 0.25" for both X and Y axis. This means, when I'm using the homing command (via the button), I have to turn off my Soft Limits first, and then, perform the process, and then turn it back on again.

Is there a command I can place in the Ref All Home script that will disable Soft Limits at the beginning of the homing process, and then another command to turn it back on once I have completed?

Thanks again!

So, there is only one switch and its configured as ++ so would possibly be the point furthest away from you? Sounds like you might need a couple more switches at the other ends of the axes for the -- and homing option. Unless of course your machine references to the ++ end and uses soft-limits for the other end. Or, the switch is mounted on the travelling part and hits a fixed stop at each end?? The latter idea is my thought as it works just as well and saves components - where s the switch mounted??

I have two switches wired in parallel at each end of each axis, to one set of inputs. So, if I go past 0" it hits one switch and stops dead. If I go past 49" on the same axis, it hits the other switch and stops dead. Both switches are wired to the same input, and as such, show the same LED lit on the debugging menu when I hit them. (I'm not sure if this is going to cause me a problem with the solution Ger21 is recommending, but I'm hoping it's not.)

It doesn't really matter which limit you have setup, as Mach3 will see them all the same. I was just assuming that you had one set to the negative switch. Use the Ref X and Ref Y buttons to home the axis, and they'll set your machine coordinates to -0.25 at the switch locations.

Thank you for this, and the image for instructions! I do have one question. As I mentioned above to Davek0974, I have two switches for each axis wired to one input. If I use the buttons you mention to home the axis, what happens if the machine hits one of the limit switches on the far side? (i.e. 49"+ on the y-axis, or 98"+ on the x-axis?)

So, I just checked the information on my machine, and noted your instruction to "configure the X-Home input to match the X- Limit". I wanted to confirm that you meant the "X-- Limit", or if I'm in the wrong place altogether. And then, I noticed that I have my configuration set to the "X++ Limit", and figured I would check with you to see if this is also incorrect.

Here is a screenshot of my configuration:

Now, at the moment I have two limit switches wired to each axis. (I have one switch on either side of my x-axis gantry, and do stop the machine if they ever get run into.) I'm not sure if this is the wrong way to do things, but when I wired them in, I did not have enough connections to wire them in separately.

I appreciate the quick replies. Thank you very much!

Sounds like you need to set your limits as homes too, this can be done. Once a limit is tripped, no code runs. If the limits go back to the breakout board and not a safety circuit, its not too much to change. More detail on limit wiring would help i think.

Sounds good to me. Right now, the limit switches are wired directly to the breakout board. What detail would you like/need? What could help? I'll be happy to take pics of the connections, or screenshots of the settings, if that helps.

Go to Config > Ports and Pins, and configure the X Home input to match the X- Limit.
Do the same for the Y axis Home (Match the Y- Limit.
Go to Config > Homing Limits, and enter -0.25 in the "Home Off." columns for the X and Y axis, and check "Home Neg." for both.
Use the Ref X and Ref Y buttons to home the axis, and they'll set your machine coordinates to -0.25 at the switch locations.

You limits will still work the same way they do now.

You'll want to make sure that you don't have any X or Y axis offsets set.

I can do all of this, thank you. Once set, is there a process to home the machine? Do I simply turn off the limits, and run the machine until it connects with the x-axis (and then, the y-axis after) and it will automagically reset the zero numbers in Mach3?

Hey all,

I've implemented a macro for my auto-tool zero script, based upon information I found on this wonderful site, however, I would like to improve on the code somewhat if possible. (And, of course, not being a programmer, I do not know how to do so!) My current code will lower the z-axis slowly, until it registers the touch plate I built, and then will take the thickness of the plate into effect, zero the z-axis and return to 1" above the stock. This is the code I am presently using for my z-axis zeroing:

Code: [Select]
Code "(Now attempting to Zero the Z-Axis.)"

PlateThickness = 0.11811 'Z-plate thickness DRO

If GetOemLed (825)=0 Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P5" 'this delay gives me time to get from computer to hold probe in place
Code "G31Z-40 F500" 'probing move, can set the feed rate here as well as how far to move
While IsMoving() 'wait while it happens
ZProbePos = GetVar(2002) 'get the exact point the probe was hit
Code "G0 Z" &ZProbePos 'go back to that point, always a very small amount of overrun
While IsMoving ()
Call SetDro (2, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G0 Z1" 'put the Z retract height you want here
Code "(Z axis is now zeroed)" 'puts this message in the status bar
Code "(Z-Plate is grounded, check connection and try again)"'this goes in the status bar if applicable
Exit Sub
End If   

What I would like to do is similar, with the x-axis and y-axis limit switches. I would like to manually bring the x-axis and y-axis within 6" of the zero values (no code required here - I'll move the machine myself) and then have it slowly approach the x-axis, and then once it touches it, it should move 1/4" in the positive, and set the x-axis zero for the machine to this value. Then, I would like it to have it do the same for the y-axis. (Have it slowly approach the y-axis, and then once it touches it, it should move 1/4" in the positive, and set the y-axis zero for the machine to this value.)

I have had a number of issues in the past whereby my machine has gotten caught up on stock, and then losing it's location values because of it. (The machine would get jammed up, and the software would still think it was moving.) As such, I've then had to reposition the router and manually reset the x-axis and y-axis. I figure if I can implement this code properly, it will improve everything significantly. First, I won't have to perform the manual process any longer, and second, I should be able to perform cuts on the same sheet once the system is re-aligned properly. (On occasion, I've had to recut into the same parts, but after the manual process, it can be out by 1/8" or more, which as you can imagine, is not good enough for anything. So, toss that part away.)

My other questions are these:

  • Can the limit switches do this, if they are already assigned in Mach3 as "limit switches"?
  • If the machine gets jammed up, and accidentally click a limit switch, will it run this code or just stop?
  • If they don't run the code when the limit switch is hit, is there an opportunity to have the machine run (perhaps different) code that will automatically try to re-align to zero on the x-axis and y-axis, and restart the cut at the point at which it failed?

I would like to say that I appreciate all of the help I've received over the years here. While I haven't posted too much, I've read and learned a lot here. I would really, really appreciate any help you guys are prepared to give.



Try "Ignore M calls while loading" in General Config.

That works perfectly! Thank you sir!

Pages: 1 2 »