Hi Folks. All is well in my neck of the woods, just a bit too busy...
Here is a video of setting up the 4th axis and running parts - feel free to post your 4th axis related information.
Cheers Cliff
https://www.youtube.com/watch?v=Bw6VqaHH3uk
Hi Folks. All is well in my neck of the woods, just a bit too busy...
Here is a video of setting up the 4th axis and running parts - feel free to post your 4th axis related information.
Cheers Cliff
https://www.youtube.com/watch?v=Bw6VqaHH3uk
"Nice video, thanks.
Have you ever used the 4th axis homing probe tormach sells. It use to work great with Mach but not so well with path pilot."
Thanks - No I do not have a 4th axis home set up - so far I have been able to run the parts before shut down and so have not needed a rotary orientation reset on start up.
I assume that is the main use for it? Cheers Cliff
I have the 4th axis home set up but haven't used it. One of the reasons to use it is so you don't have to "unwind" the axis after a long spiral cut. i.e. if the cut starts at A0 and does 6 revolutions to A2160 then goes back to A0 for the next pass, it will take a minute or so for the A axis to unwind. Re-homing the A-axis after each pass eliminates that.
I was wondering if there is a G Code/software script that you can install in the code that will change an axis position - eg on reaching A2160 reset the DRO to A0.00...that would be useful.
Cliff
Hi Cliff
I ran into this issue on my very first 4th axis part. I had to wait 20 minutes for the A axis to return to A0
I solved this in my Sprutcam post but that probably won't help you, but it can be done in G-Code. I just tried this out quickly and it appears to work:
The first line unwraps the A axis by subtracting as many whole turns as necessary to get the machine coordinates within 180 degrees, and the second line should need no explanation.Code:G10 L20 P[#5220] A[#5423-360*ROUND[#5423/360]] G0 A0
I suspect someone might have a more elegant equation but I couldn't find many functions that are supported by g-code.
Try it out before you use it to make a part!
Step
You can. just type in 'G0A0' in the DRO and the 4th will return to zero. Thanks
QUOTE=keen;2080600]I was wondering if there is a G Code/software script that you can install in the code that will change an axis position - eg on reaching A2160 reset the DRO to A0.00...that would be useful.
Cliff[/QUOTE]
I tried to get the hal sensor to work on my super spacer and path pilot. It seems to work but I think my sprutcam code still unwinds the axis and as mentioned above it takes time.
Need to do a little snooping and hacking now that I read tsteps post.
BTW Keen you make some nice looking parts . I need to add a electronic probe system to my crib. Just looks like a fun tool to use and impress the neighbors.
Adding to this discussion I use a 5c collet holder in my 8" super spacer chuck for small parts. Holds the material away from 8" chuck, very rigid and when I sweep the faces / edges of material or part they align well and easy to adjust. That said a tormach 5c 4th axis holder would be the best solution if its easy to align on face plate.
[QUOTE=CadRhino;2080762]You can. just type in 'G0A0' in the DRO and the 4th will return to zero. Thanks
Thanks for posting CR - But if you type in G0A0 it just commands the A axis to mechanically wind to that point? I mean I want a auto 'software position' conversion in the code. Cheers Cliff
Thanks Step ! You know your stuff! I would like to try that. Please would you reply with the exact code for me to enter at the end of my job G code. My code starts on A0 and ends on A270 - but then slowly winds back to A0 at the next run of the code of course. I would like the A270 position to become A0. Would you be able to give me the exact code to insert please.
Cheers Cliff
Cliff,
Assuming you are working the part in G54 offset, then I think the code you append at the end (or beginning) of the run should be:
G10 L2 P1 A0
G0 A0
If you are working the part in G55, then the P-number will be "2"
Taken from Tormach's page on G-code:
To set the coordinate values for the origin of a fixture coordinate system, program:
G10 L2 P~ X~ Y~ Z~ A~, where the P number must evaluate to an integer in the range 1 to 255 – the fixture number (Values 1 to 6 corresponding to G54 to G59) – and all axis words are optional. The coordinates of the origin of the coordinate system specified by the P number are reset to the coordinate values given (in terms of the absolute coordinate system). Only those coordinates for which an axis word is included on the line will be reset.
It is an error if:
- The P number does not evaluate to an integer in the range 0 to 255.
If origin offsets (made by G92 or G92.3) were in effect before G10 is used, they will continue to be in effect afterwards. The coordinate system whose origin is set by a G10 command may be active or inactive at the time the G10 is executed. The values set will not be persistent unless the tool or fixture tables are saved using the buttons on Tables screen.
Emphasis mine on the last sentence. I don't use or know PathPilot, so of course please prove this out in a non-expensive way prior to production work. You could insert that bit of code at the beginning of the program, and it'll be like pressing the A-axis 'zero' button.
Regards,
Spumco
Hi Spumco - most appreciated. Yes I am in G54. Today I tried G10 L20 P1 A0 at the start of the code and it worked a treat.
I only half understand this stuff - but now I know what to do! The A reset from A270 at program end, to A0 at program start.
Thanks for your input. Cheers Cliff
Mentioned this because 5c or any collet and holder combo is my favorite part / material / tool holding system. I find I can load material into a 5c / holder and have my way with it on both a 4th axis and a vise on the table at same time. Start with vise and do vertical machine operations then slide into jaws on 4th axis with work stop to repeat and perform all the rotary operations then move back to vise for cut off or other ops. Setup all the offsets one time for first part then repeat for as many as I want make
Side note
In the past looking at pictures of machine shops and walking thru a few. I always wondered why some had hundreds of collets and sets of different sizes. I always figured it was to hold different tools. I understand now I have 2 sets of holders, 2 sets of the same size common collets and drawers full of other sizes and shapes and even a few soft collets like soft jaws
[QUOTE=keen;2081006]I suspect that he meant to set the A-axis DRO to zero rather than entering g0a0 in the MDI window. Here g0a0 unwinds while setting A-axis to 0.000 completes instantly. I have not yet tried steps suggestion. Note that the unwind problem is not specific to spurt but occurs with hand coded programs.
The parameter #5220 (see my earlier post) represents the current coordinate system so the following line will be valid irrespective of the coordinate system in use:
G10 L20 P[#5220] A0
Once this has been called PathPilot will believe it's already at A0 so there's no need to call G0 A0 afterwards.
Step
Step,
I thought that might be the case, but I don't know PP and I figured if Cliff was testing it and my suggested G10 L20 xxxx didn't work for some reason he'd see the A-axis move at the G0 line. That would have been a good indicator that all was not well.
Now that it's proven to work as he wants, Cliff can forego the superfluous G0 A0 block for 'real' programs.
Your code is obviously more elegant than having to pick a particular coordinate system, but it's possible that Cliff didn't know or recognize the parameter #5220 (neither did I!) and assumed that was something specific for your system. I know I didn't have a clue what it meant.
Thank you. I'm constantly - pleasantly - reminded why I lurk in the Tormach forum despite not having a Tormach or even using PathPilot.
-S
Hi MD. If you're using the homing kit and home the A axis I wouldn't expect the 4th axis to rewind any further than the homing sensor (I don't use the sensor so I can't test this assumption). However if you enter A0 it will continue to rewind until the initial angle has been covered i.e. if the A DRO reads 3600 degrees the axis will rotate 10 times until A0 is reached. The homing switch should play no role in this.
The G-code I provided in post 7 should eliminate the unnecessary whole rotations, leaving no more than a half rotation to zero.
The #5220 isn't the most important parameter here. It simply represents the current coordinate system i.e. '1' for G54, '2' for G55 etc. If you're working in G54 you could simply use a '1' instead:Code:G10 L20 P[#5220] A[#5423-360*ROUND[#5423/360]]
The parameter #5423 represents the current A position. The equation is actually very simple. If the current A position is say 3636 degrees (10 full turns plus 36 degrees) the division on the right would divide this value 3636 by 360 giving 10.1. Then ROUND rounds to the nearest whole number giving 10 exactly. Multiplying this rounded result with 360 gives 3600 degrees which is subtracted from the original value of 3636 to give 36 degrees. G10 L20 sets the A position to the result of this calculation i.e. 36 degrees - just like entering this value in the DRO. The A axis hasn't moved yet. Commanding A0 now only needs to rotate the A axis by 36, instead of 3636 degrees.Code:G10 L20 P1 A[#5423-360*ROUND[#5423/360]]
If this code is used in a subroutine or a post processor you'll have to ensure that the current coordinate system is used - which is where the parameter #5220 comes in handy.
If you enter a large number in the A DRO and type or copy/paste this line of code in the MDI you should see what happens.
I hope this has clarified something (a little?).
Unfortunately I haven't found a way of automatically adding a line of code like this within a Sprut program without modifying the post. The Auxiliary INSERT almost works, but it doesn't add the line number.
Step