Machsupport Forum

Mach Discussion => Mach4 General Discussion => Topic started by: BR549 on May 15, 2014, 11:01:33 AM

Title: Export tool table
Post by: BR549 on May 15, 2014, 11:01:33 AM
HIYA Craig, see how popular you have become(;-)

Can you give a button code script example on HOW to export the tool table file out to a simple text file for printing in notepad. We could do that in Mach3 and it was a big help.

In the Mach3 version it ONLY exported tools that had values it did not create entries for empty tools

Thanks, (;-) TP
Title: Re: Export tool table
Post by: Bodini on May 15, 2014, 05:23:13 PM
I had a spare 45 minutes to learn something Lua this afternoon so I gave it a shot.  I know nothing of coding other than what I did in Mach 3 VB, so yes, I know this will be a juvenile effort.  :D

It writes to a file called tool table.txt in the Mach 4 main folder.

Tested and works.  

Regards,
Nick

Code: [Select]

file = io.open("tool table.txt","w") -- open a new current file
file:write(string.format("Tool#        Length   Length Wear     Dia   Dia Wear    Description\n"))

inst = mc.mcGetInstance()
var1 = 7780 --start number
var2 = 10319 --end number
var3 = 10 --increment
local toolno = 1

for outer = var1, var2 ,var3 do
    c1 = outer + 5 --length
    c2 = outer + 6 --Length wear
    c3 = outer + 8 --dia
    c4 = outer + 9 --dia wear

    w1 = mc.mcCntlGetPoundVar(inst, c1)
    w2 = mc.mcCntlGetPoundVar(inst, c2)
    w3 = mc.mcCntlGetPoundVar(inst, c3)
    w4 = mc.mcCntlGetPoundVar(inst, c4)
    desc= mc.mcToolGetDesc(inst, toolno)
        ootput1 = string.format("Tool#%d   %10.2f %10.2f %10.2f %10.2f      %s\n",toolno,w1,w2,w3,w4,desc)
        ootput2 = string.format("Tool#%d   %9.2f %10.2f %10.2f %10.2f      %s\n",toolno,w1,w2,w3,w4,desc)
        ootput3 = string.format("Tool#%d   %8.2f %10.2f %10.2f %10.2f      %s\n",toolno,w1,w2,w3,w4,desc)
if w1 > 0 then
if toolno >= 100 then
file:write(ootput3)
elseif toolno >=10 then
file:write(ootput2)
else
file:write(ootput1)
end
end
        var1 = var1+10
toolno = toolno + 1
   end
  
 file:close() -- close current file
Title: Re: Export tool table
Post by: Bodini on May 15, 2014, 05:28:53 PM
I forgot to mention that it only uses the line that have a tool length.  if it does not have a tool length then the line will not be printed, even if it does have other data.  never used tool table myself so this was just a guess at a way to sort it out (see the "if w1 > 0 then" line).
Title: Re: Export tool table
Post by: Ya-Nvr-No on May 15, 2014, 06:12:17 PM
Nick is the new expert on the block  :)

Great job, and thanks
worked first time no problem at all, as advertised
Cut and paste to a button script
Title: Re: Export tool table
Post by: Overloaded on May 15, 2014, 07:13:06 PM
I had a spare 45 minutes to learn something Lua  ..................

45 minutes huh, with no priors ? ? ? jeesh. What are you, a savant ? :)

Or a child prodigy  ::), you did mention "juvenile".  ;)

Sure hope you hang around, many of us will need you Nick.  ;D

My next 45 minutes will be trying to understand it ... then I'll give up.
Did paste it in and it sure does work a treat.

Thanks for the post.
Russ :)

Title: Re: Export tool table
Post by: Bodini on May 15, 2014, 07:42:49 PM
You're welcome Russ.  It was a bit of fun. Don't get used to it though... the further into this Lua programming book I get, I more I just want to go push wood through the table saw and shut off the ol' brain.  ;)

Really though, Lua is well documented, so if we can just get Mach 4 thoroughly documented...  ;D ;D

ps- I meant to mention that in my code "ootput" is not a typo but rather a tribute to the Canadian we owe all our fun (or frustration) to, Art.  I can make fun; I know a few Canadians (my wife, grandfather, etc.)  ;D
Title: Re: Export tool table
Post by: Overloaded on May 15, 2014, 07:54:52 PM
Believe it or not, I got the oot part. As I was reading it, I could have sworn I could hear Mike Holmes narrating.
No kiddin', great tribute. Hope Art sees it.
Title: Re: Export tool table
Post by: smurph on May 15, 2014, 08:14:25 PM
The LUA stuff is dry reading isn't it?!?!?!  I bought the books.  I don't think I finished any of them.  I instead search the internet for examples.  I can stay awake that way...

Steve
Title: Re: Export tool table
Post by: BR549 on May 15, 2014, 08:48:16 PM
WOW I thought one would open the tool table file parse the data and write to a text file.



(;-) TP
Title: Re: Export tool table
Post by: BR549 on May 15, 2014, 09:26:33 PM
Looks Good, but just a note. The #var you used for the Diameter is actually a tool radius value so it needs to be  Var X2 = diam.

Also a lttle BLURB to the staus line at the end of program would be nice to let you know it is done.

Thanks Bodini , (;-) TP
Title: Re: Export tool table
Post by: BR549 on May 15, 2014, 11:37:28 PM
oK I added the date/time to the top of the report and reformated for IMP units AND added a blurb to the status bar to let you know it is finished AND sent it direct to notepad for viewing.

What I cannot figure out is HOW to Multiply the DIAM value *2. Nothing I have tried works.

(;-) TP
Title: Re: Export tool table
Post by: Bodini on May 15, 2014, 11:40:25 PM
Followed corrections/suggestions by TP.  Version 2. (or would that be 1.0.0.1 or something like that?)   :D

Code: [Select]
--Version 2
file = io.open("tool table.txt","w") -- open a new current file
file:write("Mach 4 Tool table\n\n")
file:write(string.format("Tool#        Length   Length Wear     Dia   Dia Wear    Description\n"))

inst = mc.mcGetInstance()
var1 = 7780 --start number
var2 = 10319 --end number
var3 = 10 --increment
local toolno = 1

for outer = var1, var2 ,var3 do
    c1 = outer + 5 --length
    c2 = outer + 6 --Length wear
    c3 = outer + 8 --dia
    c4 = outer + 9 --dia wear

    w1 = mc.mcCntlGetPoundVar(inst, c1)
    w2 = mc.mcCntlGetPoundVar(inst, c2)
    w3 = (mc.mcCntlGetPoundVar(inst, c3)*2)
    w4 = (mc.mcCntlGetPoundVar(inst, c4)*2)
    desc= mc.mcToolGetDesc(inst, toolno)
        ootput1 = string.format("Tool#%d   %10.2f %10.2f %10.2f %10.2f    %s\n",toolno,w1,w2,w3,w4,desc)
        ootput2 = string.format("Tool#%d   %9.2f %10.2f %10.2f %10.2f    %s\n",toolno,w1,w2,w3,w4,desc)
        ootput3 = string.format("Tool#%d   %8.2f %10.2f %10.2f %10.2f    %s\n",toolno,w1,w2,w3,w4,desc)
if w1 > 0 then
if toolno >= 100 then
file:write(ootput3)
elseif toolno >=10 then
file:write(ootput2)
else
file:write(ootput1)
end
end
        var1 = var1+10
toolno = toolno + 1
   end
 file:write ("\n")  
 file:write(os.date("Created: %x  %X"))
 file:close() -- close current file
Title: Re: Export tool table
Post by: Bodini on May 15, 2014, 11:41:53 PM
Oops, we crossed paths there. ha!  look for vars w3 and w4.
Title: Re: Export tool table
Post by: BR549 on May 16, 2014, 12:08:56 AM
I found my problem it was a FAT finger typing. I learned some LUA from SheetCam and Les has a different style for function names "File Name" in sheetcam is "fileName" where the second sylible starts with a CAP N.

Took me forever to get that in the brain NOW I have to figure out how to undo that habit.

I works great now. I also created a ToolTable export file to Import into SheetCam.  Now to see IF I can do the reverse and IMPORT a Scam tool table into Mach4.

Thanks for the example, (;-) TP