Hello Guest it is April 19, 2024, 07:32:57 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.


Messages - smurph

31
Sample config for the Simulator?  No.  I just use it with the defaults.  The menu path Configure->Plugins->Simulator is the plugins configuration dialog.  All of out stock profiles have the simulator as their motion device.  The Simulator plugins needs to be enabled in the Configure->Control...  and then Plugins tab.  And then the Simulator needs to be the selected motion device in Configure->Select Motion Dev...  Then the system needs to be restarted. 

Steve

32
Mach4 General Discussion / Re: Toolpath window difference
« on: January 21, 2023, 03:31:43 AM »
This has EVERYTHING to do with your video GPU and its associated Windows driver.  If I entered 300 on my machine, the whole tool path window would be filled with a line segment.  :(  Newer video cards and OpenGL drivers are not properly supporting the OpenGL function called glLineWidth(), which is what that tool path setting is using.  So I'm glad you found a setting that worked for you because some GPUs don't even allow the line width to be changed now! 

Steve

33
Mach4 General Discussion / Re: Mach 4 Go To Work Zero button not working.
« on: January 21, 2023, 03:25:59 AM »
Bill... Thanks for the reply.

All went according to the instructions until I got to "Go to Screen then click Save Screen". I was not able to find those buttons on the editor. If I close the editor it asks if I want to save the file, but if I click YES it says I don't have permission.

Tony

The are on the menubar, not buttons.  When you are in screen edit more, "Screen->Save Screen"

Steve

34
Mach4 General Discussion / Re: Cutter compensation
« on: January 21, 2023, 03:21:26 AM »
Most of the time when you don't receive any responses is because others are not having the issue you are having or there isn't enough information for anyone to even to start to help.  I will say that we have thousands upon thousands of machine running Mach4 and cutter compensation without issue, so you are definitely not the only one using cutter compensation.  And don't take this the wrong way, as I'm not telling you that you are "not having a problem".  I'm simply stating that there is something unique that is happening that we have to solve.  With that in mind, the rest is dedicated to that end. 

1. We use Fanuc type C cutter comp.  The rules for cutter comp entry and exit are given Chapter 4 of the Mill G Code Programming manual and I believe them to be correct.
2. Have you tried a later build?  I don't remember any cutter comp issues with 4612, but that doesn't mean something isn't amiss with that build specifically. 
3. What other machine operate to your expectations?  Could it be they use a different style of cutter compensation? 

Most G code includes a safe start line similar to "G40 G80 G90" to put the machine into a known state.  if you stop the machine when in cutter comp mode, the machine is still in G41/G42.  Simply entering something in MDI does not magically clear that.  The reset button should be used to put the machine into a know state.  Look at any Fanuc control and you will see that the reset button is the most worn button on the machine!  :)  Anyway, if you stop the machine when in cutter comp mode, the machine is still in G41/G42 unless you do something to change it (reset, MDI G40, etc..).

Also, please provide the G code program that you are trying to use, as it is impossible for me or anyone else to guess why you are getting the results you are getting.  Someone may spot an issue right away.  Otherwise, create a ticket with support and give them the G code file and tell them the results you expect.

Steve

35
Mach4 General Discussion / Re: Initial Z move
« on: January 21, 2023, 02:08:08 AM »
I will also add that most of the time, the Z clearance positions are a function of your CAM software.  Look for a setting called "clearance plane", etc...  Mach will just follow what the G code tells it to do so if there is no Z clearance in the G code, well...  Mach will not move the Z.  So it might be that a little more study on how sheetcam works.  I really can't say because I haven't run sheetcam.  But I would start there.

Steve

36
It is simply a motion simulator to use test of the software.  It is not meant to make a twin of a machine where it can mimic what output #1 does on your physical machine, etc...  This is because it does not mimic any real motion plugin that runs real hardware. 

I would say plugin developers use it more as a test bench comparison because the "simulator" (we call it just Sim) always does the right thing.  So if there is a problem they are dealing with, they can look to see if the problem also exists with Sim.  In that case, there may be something wrong inside Mach.  But most of the time, Sim shows the developer that there is something wrong with the way their plugin is working.  And if they can't figure it out, they get with me and we work it out.  Sim is a litmus test, so to speak. 

So to answer your question directly, there is no direct documentation with Sim.  But it isn't too hard to figure what all it does by entering its configuration dialog.  Every option it has is in there.

Steve

37
I will also add that if Mach 4 build 5000 doesn't work for you and build 4612 does, it is most likely a problem with your motion controller plugin.  I do everything possible NOT to break the API so as to allow old plugins to run with newer versions of Mach.  In fact, I'd say I'm 100% successful at not breaking the API since early pre 1000 builds.  However, just not changing the API is not always successful in a build not working where a previous one did.  This is because every plugin is programmed differently because every programmer has their own way of solving problems with the hardware that they are dealing with.  What we run into is a technical problem called race conditions.  Now, since I have not change the API, what has changed with the new 5000 build to make things stop working?  And I could answer "nothing" and be technically correct.  However, what is different about Mach build 5000 is that is is capable of running G code a LOT faster than the previous builds.  On modern hardware, Mach 4 can process a line of G code in less than a millisecond.  That is over 1000 lines per second!

I say this because I have worked with a motion plugin developer where their motion plugin was simply not working well on Z moves with THC enabled anymore with build 5000.  Simply put, the motion plugin worked with previous builds because it depended on Mach being only so fast.  And when Mach got faster...  problems.  These things happen and the plugin developer and I got together and worked the issue out.  So if this is a CS-Labs plugin issue, that may be what has to happen here. 

Steve

38
I want to have a button operate a relay that uses an output # say output 25.  what code and what location to do this?
No coding is required.  To simply power a relay from a button, all you need to do is map the desired plugin output to the Mach output signal #25.  Then edit the screen, and place a toggle button anywhere you like.  Then in the toggle button's properties, drop down the output signal property and choose Output Signal #25.  Save the screen and exit out of the screen editor and your button should be controlling the plugin desire output.

Steve

39
Mach4 General Discussion / Re: M6 Tool Change Code Question
« on: November 30, 2022, 02:06:18 AM »
Read the comments in the code below.  Mabey they will help you.  But as Craig said, home switches will help even more!  :) 

Code: [Select]
function m6()

local inst = mc.mcGetInstance('m6 macro script')
local selectedTool = mc.mcToolGetSelected(inst)
selectedTool = math.tointeger(selectedTool)
local currentTool = mc.mcToolGetCurrent(inst)
currentTool = math.tointeger(currentTool)
local SpindleDwell = 20000
local xstart = mc.mcAxisGetPos (inst, 0)
local ystart = mc.mcAxisGetPos (inst, 1)

if selectedTool == currentTool then
mc.mcCntlSetLastError(inst, "Current tool == Selected tool so there is nothing to do")
else
--Remove this line if you would not like the Z axis to move

mc.mcCntlGcodeExecuteWait(inst, "G90 G0 Z0.0");--Move the Z axis all the way up  -- Added the Wait variant of the API call.
mc.mcCntlGcodeExecuteWait(inst, "M5 G4 P"..SpindleDwell) --Turn off spindle          -- Added the Wait variant of the API call.
mc.mcCntlSetLastError(inst, "Change to tool " .. tostring(selectedTool) .. " and press start to continue") --Message at beginning of tool change
mc.mcCntlToolChangeManual(inst, true) --This will pause the tool change here and wait for a press of cycle start to continue 

-- mc.mcCntlToolChangeManual() uses mcFileHoldAquire() behind the scenes.  You should be able to jog you machine anywhere you want now.

-- The antidote is Cycle Start at this point.  So you could run any script from a button you choose.  This script may contain something like:

-- mc.mcCntlGcodeExecuteWait() with G31 to probe.
-- mc.mcCntlGetPoundVar() to read the probed positon G code #vars
-- mc.mcAxisSetPos() on the Z axis to set the current offset based on your tool probe. 
-- once the script is complete, press cycle start and the M6 script will continue from the next line of code

mc.mcCntlSetLastError(inst, "Current tool == " .. tostring(selectedTool) .. "   Previous Tool == " .. tostring(currentTool)) --Message that shows after Cycle Start
mc.mcToolSetCurrent(inst, selectedTool)
mc.mcCntlGcodeExecuteWait(inst, "G90 G0 Z0") -- Move Z to a safe location.  Change the position acordingly.
mc.mcCntlGcodeExecuteWait(inst,"G90 G0 X"..xstart.."Y"..ystart)  -- Move to start location.
mc.mcCntlGcodeExecuteWait(inst, "M3 G4 P"..SpindleDwell)  -- Turn spindle on and wait for dwell (You should really setup the spindle ramp times instead of using a dwell here.)
end
end

if (mc.mcInEditor() == 1) then
m6()
end

Steve

40
It is important to note that if you have a good Ethernet controller in the PC that has as many transmit buffers as it does receive, you can reduce the motion buffer to a point where feed rate changes seem instant to us humans.  I routinely run a motion buffer of 60ms with good Intel Ethernet cards which is well below the 100ms "blink of an eye" threshold that we humans can detect.  But I also don't try and run a CAM program at the same time I'm cutting a part either.  And in my opinion, once you put Mach on a PC, you should no longer consider it a PC.  It should then be considered a machine control and you really don't run CAM programs on a machine control.  :) 

The PoKeys57E can be used as just I/O.  The same plugin will do motion as well.  So how do you tell tell Mach to use ESS as motion?  Enable both Pokey and ESS plugins.  Then take the menu path Configure->Select Motion Dev... and choose the ESS.  :)  The ESS and PoKeys manuals are really good too.  I love both products and consistently use them together on my project machines when applicable.  We are lucky to have Warp 9, PMDX, Vital Systems, and Pokeys devices from which to choose!

Steve