Hello Guest it is January 21, 2021, 09:02:10 AM

Recent Posts

Pages: 1 2 3 4 5 6 7 8 9 10
1
Promote and discuss your product / Re: New Screenset for Mach3 Turn is here!
« Last post by DaBase on January 21, 2021, 07:31:51 AM »
Write PM.
2
Mach4 Plugins / Re: Mach 4 wont recognise UC100 controller
« Last post by john11668 on January 21, 2021, 05:52:59 AM »
Thank you for that.
Maybe a more informed view of the prospects than what i have seen so far.  And a perspective on the Mach Vs UCCNC competition ,
I was advised early on that  UCCNC did not really have a decent piece if software for a lathe .
I chose to stick with Mach 3 for early testing mainly because I was familiar with it , but I do see significant failings and there are suggestions that Mach 4 overcomes those , and I being the owner of a UC100 I chose to try that first  .

I have a response on cncdrive forum which suggests the following:-
MAke sure the .net framework 3.5 is installed (enabled in the Windows features on Win 10.)

beyond that  the advice to install the Mach 4 plugin are much as I have already carried out.
I will try that later and report back

Thanks
3
Mach4 General Discussion / Re: Mach4, Darwin and Ref all home issue
« Last post by Fr33man on January 21, 2021, 04:42:50 AM »
Thank you for the explenation of the History of Darwin.

But that doesnt solve the main "issue" that nobody knows about the limitations of the demo-version and maybe also struggle around with this problems.

i would recommend to add only a small hint on the plugin page: Demo only allows to test and configure the paralellport, it doesnt allow automatic movements through Mach4

thats all

but thanks anyway
4
Promote and discuss your product / Re: New Screenset for Mach3 Turn is here!
« Last post by AndrewUM on January 20, 2021, 11:42:54 PM »
I want to buy your product.
How do we proceed?

Thanks

Regards,
AndrewUM
5
Mach4 Plugins / Re: Mach 4 wont recognise UC100 controller
« Last post by joeaverage on January 20, 2021, 11:42:17 PM »
Hi,
there are a number of Mach4 users whom have a UC100 so it definitely does work. The UC100 is a single port equivalent, that
is 17 inputs and outputs, which is very restrictive.

A UC400 and PMDX-424 both have 34 IOs' an Ethernet SmoothStepper has 51 IOs, a 57CNC has 57 IOs, a UC300 has 85 IOs.
Not sure exactly how many a CSMIO and a Hicon have, but plenty.

As you noted all the UCnnn series are made by CNCDrive, the owners and manufacturers of UCCNC. They have a good Mach3 plugin for
all their motion controllers but the Mach4 plugin is weak on realtime supports. Given the competitive nature of the two companies I
don't see CNCDrive expending a lot of effort to improve their Mach4 plugins, when really they'd rather have customers buy UCCNC.

The other manufacturers have expended much more effort on their plugins to ensure maximum facility with Mach4, and include
Warp9TD, PMDX, PoKeys, Vital Systems. CSLabs deserve a mention but their Mach4 plugin lacks polish when not actually buggy. CSLabs
are trying to push their own software and the Mach4 plugin has suffered as a result.

Craig
6
Mach4 General Discussion / Re: Mach4, Darwin and Ref all home issue
« Last post by joeaverage on January 20, 2021, 11:28:04 PM »
Hi,
Darwin is very much an after thought, Mach4 was always designed to be supported by an external motion controller
like an Ethernet SmoothStepper or a Hicon Integra.

Art Fennerty, the chap who wrote the now famous Mach3 parallel port driver agreed to write another and very last parallel port
driver for Mach4. It is supposed to be its last evolution....hence the name Darwin. Note also that the intellectual property is
Art's, and the license fee is paid to him not New Fangled Solutions, the owners of Mach4.

I think the intention was that Darwin would allow someone to experiment with  machine capable Mach4 solution without going to the expense of
a motion controller. As such Darwin works but it misses a number of realtime supports, things like backlash comp, hardware THC, lathe threading.
My understanding is that those supports will never be implemented in Darwin.

If you want all of the features that Mach4 offers then get an external motion controller.

Craig
7
Mach4 General Discussion / Re: Setting up Soft Limits Help
« Last post by Cartierusm on January 20, 2021, 11:22:23 PM »
As I said I do home the machine and it does get referenced to micron precision every time. I mean a home depot branded tape measure is accurate, right? It's orange so that's good.

I didn't know you had to enable it in the File Ops Tab, that's what I was missing. Thanks!!! I'll try it tomorrow.
8
Mach4 General Discussion / Re: Setting up Soft Limits Help
« Last post by joeaverage on January 20, 2021, 11:17:17 PM »
Hi,
SoftLimits ONLY make sense if your machine is Homed (Referenced).

The first thing you do when you turn the machine on is Home the machine. The numbers you populate the SoftLimit table are the machine
boundaries FROM the home position. If your machine is not Homed to an exactly repeatable location every time then the numbers
(being units of travel) to the machine boundaries change every time.

Once the machine is Homed and the SoftLimit table is populated with data THEN <Enable SoftLImits> on the FileOps tab.

Craig
9
Mach4 General Discussion / Setting up Soft Limits Help
« Last post by Cartierusm on January 20, 2021, 07:48:28 PM »
So I've never used soft limits, but now I have a VistaCNC Pendant and want to setup them up on my Mori Seiki Lathe. From what I'm reading in the Mach 4 manual I use the numbers from the DRO in Machine POS Toggle. Well with my tool changer in the upper right hand corner of my lathe and then backed off the limit switches for safety I'm using -.125 for both X and Z, then for X max, I jog my machine near the max X limit switch which is X-3.4 and Z is -7.8. So input those into the soft limits the only way Mach allowed me and saved it and restarted mach for extra measure and then homed the machine and when I restarted I tried jogging toward the soft limit and it did nothing. I went right past them. What am I doing wrong? See pic for my settings.
10
My problem is that when i press "Zero Y" the dro changes its value from the current value to 570.000, 575 or a random (to me) position after restarting mach4.

Steps to reproduce:
Turn on and enable the machine.
Ref. All Home
- I have a custom script see below RefAllHomeWithOffset()
press Zero X (or Zero Y or Zero Z) one of them will fail with this wired behaviour.

The value changes if i run my M6 Script. Machine coordinates are still correct.

I have a PMDX-126 and a Warp9td ESS.
I Run Windows 10 Pro version 20H2
Mach Version is 4.2.0 build 4574
I completly rebuilt my machine and started with a new profile based on the Mach4Mill Profile.

I tried to find where the actions are defined but can not find any information in the API Documentation or in the scripting or Operation manuals.
If i change the button to just run the RefAllHomeWithOffset() without creating a coroutine and remove all Yield commands it homes but does not execute any gcode. Zero Y behaviour is still setting the DRO to 570.0000 or 575.0000
The only place where i can remember using this value (570.0000) is in the RefAllHomeWithOffset script.


Here are my scripts:
ScreenLoad additions:

---------------------------------------------------------------
-- Set Soft Limits () function.
---------------------------------------------------------------
function SetSoftLimits(inst, state)  -- legal params = 0 and 1.
    --local inst = mc.mcGetInstance (mInst)
    for i=0, (11) do
        if mc.mcAxisIsEnabled (inst,i) == 1 and state == 1
then mc.mcSoftLimitSetState (inst,i,1) end
if mc.mcAxisIsEnabled (inst,i) == 1 and state == 0
then mc.mcSoftLimitSetState (inst,i,0) end
    end
end
---------------------------------------------------------------
-- Ref All Home With Offset() function.
---------------------------------------------------------------
function RefAllHomeWithOffset()

    SetSoftLimits(inst,0)
    mc.mcAxisDerefAll(inst)
    mc.mcAxisHomeAll(inst)
    coroutine.yield() --yield coroutine so we can do the following after motion stops
    mc.mcCntlGcodeExecuteWait(inst, "G92 X-5 Y575 Z5")
    wx.wxMessageBox('Referencing is complete')
    mc.mcCntlGcodeExecuteWait(inst, "G1 X0 Y570 Z0 F2000")
    SetSoftLimits(inst,1)

end





m6 Script:
function m6()
local inst = mc.mcGetInstance()
if mc.mcAxisIsHomed(inst, 0) and mc.mcAxisIsHomed(inst, 1) and mc.mcAxisIsHomed(inst, 2) and mc.mcAxisIsHomed(inst, 3) then
M6SetSoftLimits(inst,0)
local changeToTool = mc.mcToolGetSelected(inst)
local changeFromTool = mc.mcToolGetCurrent(inst)
local XPositionBeforeToolChange = mc.mcAxisGetPos(inst,0)
local YPositionBeforeToolChange = mc.mcAxisGetPos(inst,1)
local XToolProbePosition = "17.0"
local YToolProbePosition = "0.3"
local XManualToolChangePosition = "17.0"
local YManualToolChangePosition = "0.3"
local ColletAtProbeZCoordinate = -248 -- Machine Z-coordinate when collet tip touches TouchPlate (Must be more than ProbeOperationDistance - DefaultToolLength
local ExtraProbeDistance = 15 -- SafetyMargin
local ProbeOperationDistance = -30 -- Length of Probemove before giving up
local ProbePrepSpeed = 750
local ProbeSpeed = 100
local DefaultToolLength = 70 -- Used if tool info is not found. (Should be a value slightly longer than the longest tool in the shop :D)
-- QUICK REFERENCE
-- G90 - Absolute (Go to coordinate)
-- G91 - Incremental (Godistance along axis from current position)
-- G53 - Machine Coordinate Move
wx.wxMessageBox("ToolChange from T"..changeFromTool.." to T"..changeToTool.." Press OK to run M6 cript")
if changeToTool == changeFromTool then
mc.mcCntlSetLastError(inst, "ToolChange Activated But Not Required")
return
else
mc.mcCntlGcodeExecuteWait(inst,"G90 G53 G0 Z0.0\nM5" )
RunProbe(inst,changeFromTool,XToolProbePosition,YToolProbePosition,DefaultToolLength,ColletAtProbeZCoordinate,ExtraProbeDistance,ProbePrepSpeed,ProbeSpeed,ProbeOperationDistance)
local ToolZCoordinate = mc.mcAxisGetPos(inst,2)
mc.mcCntlGcodeExecuteWait(inst,"G90 G53 G0 Z0.0 \n G90 G53 G0 X"..XManualToolChangePosition.." Y"..YManualToolChangePosition)
local changeToToolDescription = mc.mcToolGetDesc(inst,changeToTool)
wx.wxMessageBox("Please change to tool number "..changeToTool.." "..changeToToolDescription.." and press ok to continue")
RunProbe(inst,changeToTool,XToolProbePosition,YToolProbePosition,DefaultToolLength,ColletAtProbeZCoordinate,ExtraProbeDistance,ProbePrepSpeed,ProbeSpeed,ProbeOperationDistance)
mc.mcAxisSetPos(inst, 2 , ToolZCoordinate)
mc.mcCntlGcodeExecuteWait(inst,"G90 G53 G0 Z0.0")
mc.mcCntlGcodeExecuteWait(inst,"G90 G0 X"..XPositionBeforeToolChange.." Y"..YPositionBeforeToolChange)
mc.mcToolSetCurrent(inst, changeToTool)
wx.wxMessageBox("If Toolchange was Sucessful - click ok to continue")
mc.mcCntlSetLastError(inst, "ToolChange Finished")
end
M6SetSoftLimits(inst,0)
else
wx.wxMessageBox("M6 Toolchange can not run Machine is not Referenced to home. All operations should be aborted!!!")
end
end

function RunProbe(finst,ftool,fXToolProbePosition,fYToolProbePosition,fDefaultToolLength,fColletAtProbeZCoordinate,fExtraProbeDistance,fProbePrepSpeed,fProbeSpeed,fProbeOperationDistance)
    mc.mcCntlGcodeExecuteWait(finst, "G90 G53 G0 X"..fXToolProbePosition.." Y"..fYToolProbePosition)
    local toollen = mc.mcToolGetData(finst, mc.MTOOL_MILL_HEIGHT, ftool)
    if toollen == 0 then
        toollen = fDefaultToolLength
        mc.mcCntlSetLastError(finst, "Tool length not found - using Default Length")
    end
    local probestart = fColletAtProbeZCoordinate + fExtraProbeDistance + toollen
    local GCODE = "G91 G31 G0 Z"..probestart.." F"..fProbePrepSpeed
    GCODE = ""..GCODE.." \n G91 G0 Z1 F"..fProbePrepSpeed.." \n G91 G31 Z"..fProbeOperationDistance.." F"..fProbeSpeed
    mc.mcCntlGcodeExecuteWait(finst,GCODE)
end

function M6SetSoftLimits(inst, state)  -- legal params = 0 and 1. They are the X and Y extents
    --local inst = mc.mcGetInstance (mInst)
    for i=0, (11) do
        if mc.mcAxisIsEnabled (inst,i) == 1 and state == 1
then mc.mcSoftLimitSetState (inst,i,1) end
if mc.mcAxisIsEnabled (inst,i) == 1 and state == 0
then mc.mcSoftLimitSetState (inst,i,0) end
    end
end

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



Pages: 1 2 3 4 5 6 7 8 9 10