Hello Guest it is April 25, 2024, 07:50:54 AM

Author Topic: Rotary Axis Setup/Mapping in Mach4  (Read 970 times)

0 Members and 1 Guest are viewing this topic.

Rotary Axis Setup/Mapping in Mach4
« on: December 16, 2021, 05:05:23 PM »
I recently upgraded Mach3 to Mach4 and now I can't get the rotary axis to work. When running a rotary job that worked fine in Mach3, the X axis moves back and forth instead of rotating the A axs (the job is aligned along the Y axis). I don't have Mach3 installed on my computer any longer, but I seem to recall there was a setting to map X axis movements to the A axis to do rotary jobs. I can't find anything in the setting of Mach4. What am I missing in setting up Mach4 to do rotary jobs?
Re: Rotary Axis Setup/Mapping in Mach4
« Reply #1 on: December 17, 2021, 10:36:35 AM »
Perhaps: Configure->Control
General tab
Rotary axis
tick the box for the axis you want to roll over

HTH

RT
Re: Rotary Axis Setup/Mapping in Mach4
« Reply #2 on: December 19, 2021, 05:41:31 PM »
Hi,

Quote
the X axis moves back and forth instead of rotating the A axs (the job is aligned along the Y axis).

That technique is well and truly dead....it was at best a workaround to be able to have slave axes in Mach3.

In Mach4 however there is a much MUCH better way. Any Mach4 axis, lets say axis 0, which is commonly the X axis, can have up to four slave motors. No need to shag about calling an A axis an X axis slave
or any of that rubbish.

Secondly ANY Mach axis can be either linear4 OR rotary, as posted by rhtuttle, but whats more they can be programmatically manipulated on-the-fly throughout a Mach session
using APIs like:

Code: [Select]
LUA Syntax:
rc = mc.mcAxisMapMotor(
number mInst,
number axisId,
number motorId)

Description:
Map a motor to an axis.

Craig
'I enjoy sex at 73.....I live at 71 so its not too far to walk.'
Re: Rotary Axis Setup/Mapping in Mach4
« Reply #3 on: December 20, 2021, 11:37:47 AM »
Not sure if it is possible or not.  My method would be to create a gcode string with the 'f' parameter calculated to the speed you want and distance in a relative mode
local speed=(read a value from a register or screen dro or have a speed for this script)*1
mcCntlGgodeExecute(inst, "g91 g1 f"..tostring(speed).." x.1 g90")
This is a quick example syntax may be incorrect but you should get the drift.

HTH

RT