Hello Guest it is April 25, 2024, 09:32:32 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

741
Mach4 General Discussion / Re: more lua (?) questions
« on: May 04, 2017, 01:51:05 AM »
Well... Fanuc Macro B code depends a lot on the internal memory locations.  Take probing, for example.  Renishaw has Macro B probing routines for their probes.  And those routines depend on those memory locations being where they think they will be.  To set offsets and such.  The probed locations are stored in #5061 to #5066  (X to Z user coordinates and #5071 to #5076 for the machine coordinates.  Also, subroutines can be written to look and see if there is an offset in effect and then do something special like interpolating a hole with the diameter being the same no matter what the cutter diameter is, etc...  It is actually quite an elegant system the more you study it.  But it is complex because it is a register file system that has been patched over the years. 

Work shift is a global offset that will affect all other offsets.  Head shift is an offset that can be used with dual spindle machines.  Neither of those is used with a convention 3 axis milling machine. 

The example is fixed and will be in the next build.

Mach Linux for the OEMs first, because they will have less support issues.  In the end, we will probably make a setup similar to the EMC Brain Dead Install before pushing it out to the masses and ONLY support it on the provided OS.  There are just too many "flavors" of Linux out there and I don't want to have to install and test on every one of them.  I'm a Linux fan.  I used to write UNIX operating systems and device drivers (Motorola 68K and 88K).  But Linux is an unholy mess of different distributions and everyone has their favorite. 

Steve

742
Mach4 General Discussion / Re: more lua (?) questions
« on: May 04, 2017, 12:56:28 AM »
Well...  like it or not, Fanuc has the market share.  You see it plain as day at IMTS.  :(  But I can write interpreters that will mimic anything.  (I have Okuma, Haas, Siemens, and Fidia manuals)  It is just that we don't have people asking for anything but Fanuc.  It is what people know. 

We would have to get a sale for 1000s of licenses in order for us to justify writing another interpreter though.  Maybe it will happen one day.

Mach 4 will run on Linux.  In fact, we ran Mach 4 on Linux when we introduced Mach 4 to the world at IMTS 2016.  However, since our existing customer base was on Windows, we have concentrated on that.  I'm hoping to get time to bring the Linux port up to speed soon.  But it will probably be available only to OEMs at first. 

Steve

743
Mach4 General Discussion / Re: more lua (?) questions
« on: May 04, 2017, 12:02:40 AM »
The fixture tables are setup to be Fanuc compatible.  They are arranged in the system variable memory space in a specific order.  Over the years, they have added more fixture offsets with G54.1 Px, where x is 1 to 99.  So yes, it is complicated.  If you want to understand all of this stuff, have a look at a Fanuc 21i control manual. 

Most of our users are not interested in heavily modifying a screen.  They usually run a stock screen set with maybe a few mods.  Thus they are not getting into the nitty gritty like you are.  OEMs will usually design a screen to work with a specific machine and have worked with the screen editor and LUA enough to know how to get what they want.  And yes, LUA has a face only a mother could love.  But it is, as you stated, stupid fast.  In the end, that is why we chose it. 

Mach Industrial has tool tables and fixture tables built in the screen set as controls.  As well as round buttons and buttons that support transparencies.  Plus Macro B conditional G code and tool life management. 

Steve

744
Mach4 General Discussion / Re: more lua (?) questions
« on: May 03, 2017, 09:15:24 PM »
Old example that hasn't been updated.  :(  Use mc.MC_FIXTURES_START and mc.SV_HEAD_SHIFT_(x) where (x) is the axis letter.

BTW, you can view these constants by viewing the LUA global table in the mcLuaEditor. 

Steve

745
Mach4 General Discussion / Re: more lua (?) questions
« on: May 02, 2017, 12:55:29 PM »
No, mc.mcProfileGetString() is a function to read the Machine.ini file settings in the machine profile.  For the rest, you will just have to study up on wxWidgets and Sizers. 

Steve

746
Mach4 General Discussion / Re: more lua (?) questions
« on: May 02, 2017, 03:17:19 AM »
We use LUA 5.2.  i have no idea if it uses gettext or not.  :(

All of this stuff is also inside that screen set file.  Images, text, control properties, etc...  rename the .set to .zip and you will see it is just a zip archive.  The screen is implemented in an XML file which has all of the stuff embedded in it. 

Screens are meant to be user modified.  You can start with one of ours from the distribution.  However, you must name the screen set something different or it will get overwritten with an update!  All of the stuff that uses dialogs and regular OS provided controls like menus driven by the NLS po files.  But nothing in the screen set is at all unless it matched something in the po file accidently.  So most likely, you will need to supply German words for the button texts and stuff (codepage issues not withstanding).  None of the control property names are NLS either.

Macros CAN be external.  Most of the time in the Modules directory implemented as LUA modules.  The probing routines are an example of this.  Be careful modifying these as an update i likely to overwrite them as well. 

So to share a screen, most of the time, you would need to provide the screen set file AND any modules it may use.

Steve


747
Mach4 General Discussion / Re: more lua (?) questions
« on: May 02, 2017, 02:05:59 AM »
I disagree.  I spent 20 years in the automotive manufacturing business.  When we deployed machines with PCs, be them test fixtures or some type of machine control, they were no longer treated as PCs.  If you used them for any other purpose than what they were put there to do, you were fired.  No questions asked.  Just because you can, doesn't mean you should. 

When you install Mach on a PC, you have turned that PC into a machine controller.  And it should be treated as such.  It is no longer a PC to surf the web, do word processing, play games, email, or CAD/CAM design.  We can't control what the users do in the end with their new machine controllers.  But we would rather then NOT do any of that stuff. 

I keep forgetting to add those tool table functions to the API documents.  :(

local rc = mc.mcToolSetDataExStr(number inst, number toolnum, string fieldName, string value)
local value, rc = mc.mcToolGetDataExStr(number inst, number toolnum, string fieldName)
local rc = mc.mcToolSetDataExDbl(number inst, number toolnum, string fieldName, number value)
local value, rc = mc.mcToolGetDataExDbl(number inst, number toolnum, string fieldName)
local rc = mc.mcToolSetDataExInt(number inst, number toolnum, string fieldName, number value)
local value, rc = mc.mcToolGetDataExInt(number inst, number toolnum, string fieldName)

Steve

748
Mach4 General Discussion / Re: more lua (?) questions
« on: May 02, 2017, 01:29:09 AM »
I worked for a German company for 15 years and had to learn the meanings of the German words in the software we used.  So I'm probably not going to be sympathetic at all.  :)  It didn't kill me.  I lived!  I have to admit that I did complain about it though.  

I have talked with several German users about this in the early days of Mach 4's development and they all agreed that it is best to stick with the standard.  It is a machine tool.  It should operate the same no matter what part of the world it is in.  I should be able to walk up to a CNC machine in Germany and execute G21 G01 X5.000 and expect to move 5mm and not 5000mm.  The Japanese created Fanuc and all of them use a period for a decimal point.

As long as your comments are made of single byte cahracters, they will be ok.  They may not display correctly do to the codepage, but it will not affect the interpreter.  

Steve

749

Steve,
Many thanks, I'll wait to hear. Are we talking days, weeks or months for that to happen?

Well...  I was hoping soon but I just got another project that will delay the Galil plugin demo.  Maybe a moth?  It is very hard to say.

Steve

750
Eddy,

This question would best be posed to Galil.  There are restrictions on dual loops setups.  For instance, the rotary encoder has to have more counts than the linear scale.  Also, Galil may charge a fee if special firmware is needed.  So talk to their pre-sales support to clarify this stuff.

Steve