cradek_ is now known as cradek
Hi guys. Alex has asked for comment regarding halui. Is it appropriate to make this a wiki page so that the many comments can be merged into a single specification.
rayh: yeah sure, go ahead
Will do some time in the next hour.
jepler_ is now known as jepler
oohh.. I see 1.2 is out ;)
jepler: short thing to fix: http://axis.unpy.net/index.cgi/translations
it says there that 1.2 is still in development :-P
am I an idiot for coming to work?
cradek: I wouldn't say.. I'm at work too
I took the week off - but it is not snowing here. ;)
welcome to the first day of spring!?
it's very nice outside here
+15 and sunny
at least it feels like 15
probably on "about" too
jepler: no problem ;)
I know it's easy to lose track
well .. corrected on "about" and "translations".
rayh is now known as rayh-away
started that page http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Halui
rayh-away: nice, I'll look now
some things I'd like to comment on.. still there?
Yep I'm in and out but yes.
ok, spindle-speed ovrride
that can be spindle-speed, which I forgot from the list
There is nothing out there named spindle override right now.
or maybe 2 knobs (one for speed, one for override) and the both get multiplied together
This should be in usr space or just a HAL?
not sure spindle-speed-override is needed
spindle speed messages get accepted anytime
IMO we should have an equivalent in user space and added to emcsh
hmm.. if you say it's needed..
* alex_joni goes home
I'll be back online in a while (after lunch)
Hey he's back.
rayh-away: yeah, and I finished eating too ;)
oops making me hungry.
yeah, me too
Doc tells me I could do with some sustained hunger!
heh, ditto ;)
except it's not the doc in my case, but common sense ;)
Alex. How do the bidirectional HAL signals work.
The signal into emc is a command.
you can set them, and also read them
The signal from emc is a status.
but I think we can do without
But what happens when you command something that can't be changed.
it'll stay at the sane value
So the command has to be momentary.
are you talking about params or pins?
are RW pins working now?
rayh-away: although I never tried it really..
SWPadnos: not sure
rayh-away is now known as rayh
rayh-away: think we can group those in 2 categories
HAL->NML and NML-> HAL
I think jmk and cradek were discussing this last night, and there's a problem in halcmd that prevents an RW from being connected to another RW, or a W pin
which means that RW pins in general are untested, since there's no way to connect them to signals ;)
So we'd have a command pin and a status pin?
I like that even better.
yup.. something like that
Who did the fix to the wiki script?
The new look?
chris & I
rayh: any problems?
The bottom edge of the edit window blends right into the following stuff. I was thinking a very light background to that edit box would help set it apart.
Only a look and feel thing.
The working of it is great and the look as well.
the working isn't changed
It seems to handle plain text a bit better than it used to. Or as I remember it doing when I first started with it.
I enabled html tags
but that's about it..
you could use <html> any html code </html> if you want
Ah that would work nice for some stuff to be transfered in.
How do I edit logger's reply for the next earlier log?
change the date string
also, get rid of the #T17-....
[18:03:59] <skunkworks> http://solaris.cs.utt.ro/irc/irc.freenode.net:6667/emcdevel/
will give you a list in date order
the ending "/" needs to be on there also or you get a "page cannot be displayed"
skunkworks: yeah, my default box name is a local domain, which doesn't get resolved
cool. I've got full environment and ini var replacement working in halcmd
and supplying no trailing / will us that name
I'm not sure if I'm embarrassed by the code though ;)
SWPadnos: you don't need to be.. no-one will read it ;)
oh yeah :)
I guess I'll commit it then
you can do cool stuff like use vars anywhere in a command, even without whitespace
Nice job SWPadnos. But I was just getting to know the old way.
it still works ;)
but now you can add something like PID = pid.0 to the [AXIS_0] ini section
Um. I don't suppose it saves ending values to the places if found them?
and modify the parameters with setp [AXIS_0[(PID).PGain [AXIS_0]P
setp [AXIS_0](PID).PGain [AXIS_0]P
no, I didn't help with that part of it ;)
Could you explain the setp above.
one sec - let me do the commit before cvs times out
what do you want to know?
what's 'setp [AXIS_0](PID).PGain [AXIS_0]P' supposed to be
[AXIS_0]P is the usual look at the ini for this sect and var
what is the (pid)
* alex_joni would understand $(PID) but not (PID)
you can add a new ini var that specifies which PID is for each axis
it's the PID var in the AXIS_0 section (which doesn't exist, unless you add it)
it's the same as 0AXIS_0]PID would be
* rayh seems to be getting denser with age.
steves_logging is now known as steve_stallings
heh - it's not that obvious what's going on
I understand setp
what I don't understand how it finds a hal param to set from [AXIS_0](PID).PGain
the main change is that more than one var can now be used in a halcmd command
PID is an example of something that can be added to the ini file, to control which pid is used for a particular axis
SWPadnos: try to use an actual example
there are non, since this capability wasn't there before
imagine one.. what you are explaining is not making any sense
ok, I'll explain this one step by step
start with an ini file, and add the following line to the AXIS_0 section:
PID = pid.0
so this example finds a hal param in the ini and sets it to the value it finds in another ini variable.
it allows you to specify what parameters to set, in the ini file
(as one example)
that step may have been the missing link in the example, actually ;)
essentially, ini vars and environment vars are now usable anywhere in a halcmd command
* rayh is certainly missing the link or the missing link
where's Lucy when you need her
So that the parport addy can be specified in the ini
that's a bette rexample ;)
a very good rexample ;)
loadrt parport cfg="[IO]ADDRESS" should work
I like rexamples, don't you?
loadrt pid num_chan="[TRAJ]AXES"
Now we've got to go fix up a whole bunch of configs.
That is getting close to just right.
everything that was there still (should) work as before, so no change is necessary to function
how about loadrt blocks ddt=2*[TRAJ]AXES
nope, no math yet ;)
SWPadnos: how about eval and env stuff?
Here's what I want: setp freqgen.0.velocity-scale 1/freqgen.0.max-frequency
curiosity killed the cat and probably the ....
(so that I can send a value from 0.0 to 1.0 in, and get a corresponding duty cycle out)
yeah - that would be good
alex_joni, no eval. I'm not using a shell to do the work (unfortunately)
it would probably have been easier to make halcmd into a script that does all the command parsing, then feeds a sanitized command to halcmd_core
(halcmd_core being what halcmd.c turn into)
solar eclypse coming up ;)
on the 29th
it'll only be 66% from here.. but that's ok too
small change of subject before I forget.
SWPadnos said "no, I didn't help with that part of it ;)" when I asked if if saved values to the source of the value.
* alex_joni needs a filter
small change of subject before I forget.
that doesn't mean that it's done, only that what I did didn't get us sany closer to that goal
Okay thanks. I was wondering if that was being considered as a halcmd ability.
alex I've used candles to smoke a glass and watch.
there has been some thought put into how to get it done, but I think it can't be solved in halcmd only
rayh: that's pretty dangerous
depends on how smoky you get it
I have some goggles for myself, was wonring for a filter for my camera
SWPadnos: leaving out a spot and it'll be very painfull
I know at least a couple of people went blind on hte last eclypse we had
used sunglasses and other crazy things
that's not too smart
I have a solar eclipse viewer - it's about an ND-15 filter ;)
neutral density filter
ND1 is one stop, I believe
wonder how that relats to DIN filters
not sure. how do they specify how many stops the filter is?
or is that the mounting style (diameter / thread pitch)
those are for welding (usually 9-13)
[18:51:23] <SWPadnos> http://sunearth.gsfc.nasa.gov/eclipse/SEhelp/safety.html
they say number 14 welder's glass is good
ok, I got plenty of those ;)
you and the boys should all go downtown wearing your welders helmets ;)
that should be fun to watch
although I hate helmets
order coffee with straws, so you don't have to take them off ;)
especially the LCD ones
eyeball frying things, like UV
LCD helmets suck ;) I usually don't use them on my head, but I rather hold them in my hand
and when you tilt the LCD it loses the darkness
oops different topic. why is saving values to files dangerous.
I think a bunch of guys in helmets strolling down to a coffee shop would be a sight to see
kinda like "Sky Captain and the World of Tomorrow"
probably they would make the officials nervous and "quelling a riot" would be a topic of the evening news.
<- like this?
well, only the helmets, leave the torches at work
[18:55:54] <alex_joni> http://www.clixgalore.com/CatalogueImages/3351/2B822594-F79F-4861-8E41-08A8E1B909C1.gif
steve_stallings is now known as steves_logging
SWPadnos: ever installed WinXP on a SATA drive?
on a laptop?
nope. XP64 pro on the dual opteron
ahh.. so you had a floppy to supply the driver
yeah - very handy
a friend of mine tried on a laptop.. no floppy :)
though XP should be fine with SATA, I think
as long as it's SP2
nope, it's not
is the disc SP2?
this might be older
using an USB floppy gives: "Error on line 1472 at booinit.c"
well, maybe Vista will have innovative new technology that allows you to load drivers from something other than a floppy ;)
I actually want's as annoyed with XP64 as I could have been, except for the driver issues
ok. gotta run for a bit. back soon
SWPadnos is now known as SWP_Away
[19:38:34] <cradek> http://timeguy.com/cradek-files/emc/threading.png
first virtual thread cut with emc2!
neat. what's the topmost signal?
then spindle feedback, then position?
the sawtooth is the spindle encoder (with a sine wave added in to make it wavy)
SWP_Away is now known as SWPadnos
the spindle is turning at 1rps, threading at 4tpi, so as you can see it takes 4 seconds
wow - nice work
might have to get our monarch cnc'ed now ;)
see how the position waits at 0 until the encoder resets (index pulse)
rayh, I've just realized that my brain is sometimes totally nonfunctional
(the gcode is just back and forth moves to x.1/x0, the threading move is to x1)
is this done with a G84 canned cycle?
I haven't done any interp work
rayh, looking for an example of variable replacement, it never occurred to me that the main reason for the feature was so that motion could be loaded from the ini, rather than the runscript ;)
the gcode is just g0
[19:46:31] <jepler> http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_33a.html#1003436
jepler: will probably do g33 first
jepler: not entirely sure how it will work yet
What's g33? I don't see it in this document.
it's the thread command for a lathe
take a look at Machinery's Handbook, if you want a selection of possible G-codes and formats
SWPadnos: I think mine's too old, it doesn't describe the format other than G33 cuts threads on a lathe
I can look at mine in a minute
I think there are several variations though (of course)
I'd like to know how a common commercial controller does it
hey there is a g33 example in mine
and it works how I had pictured it: instead of feed in units/time, it's units/revolution
tubocnc has threading also - I could look also at our old cincinati malicron lathe manual
so for 16tpi you specify K.0625
clearly the g-code syntax shold be modified to allow you to write "16/K" instead.
otherwise how can you cut 9tpi accurately?
well, I think I've done the impossible again
I can't find my copy of Machinery's Handbook - large print edition
check under the small one ;)
heh. this is almost as bad as losing the MSC catalog
woohoo - found it!
which edition? I have 25
ok, here are their thread cutting codes, from the table of "G-Code Addresses"
G33 = Thread cutting, constant lead
G34 = Thread cutting, increasing lead
G35 = Thread cutting, decreasing lead
machinery handbook has g-code examples in it? I guess I never looked. always used it for trig functions ;)
there's another one that's interesting - G31-G31.4: external skip function, move an axis along a linear path until an external signal aborts the move
sounds lik probing
could be used for that, sure
SWPadnos: I have that, but does yours show all the arguments to g33?
there are specicific probe commands as well, for circle center + dia, for example
Is G33 a kind of move like G0 or G1?
cradek, one sec
or is it a mode that affects G1?
it's a separate move, I think
jepler: I think it's exactly like G1 but the feed is per rotation
though it might make sense to go back to G0/G1 after it
jepler: there may be more to it (entry/exit moves?) that I don't know about
mode, not move
[20:23:00] <skunkworks> http://www.dakeng.com/man/turbocnc.html#_Toc90515716
there are examples, but the only format I'm seeing so far uses I or K in feed/revolution
[20:24:01] <jepler> http://www.welsoft.co.uk/machlathe/hs380.htm
(this uses G78 but also refers to G33)
[20:27:06] <skunkworks> http://www.dakeng.com/man/turbocnc.html#_Toc90515724
man, I should have taken longer to do the motion part, so someone else would do the interp
is the motion stuff controlled by spindle-feedback, or is it a separate pin? (or in HAL?)
HAL separate pin for spindle-feedback
cradek: just claim there are still bugs in it, and make alex do the interp. work again
sure seems buggy still, now that you mention it
jepler: I can probably try to do that ;)
and I don't mind beeing usefull :-P
once chris tells me what he needs, I'll start doing it
oh, and not something like "I need you to make it work" :)
that's sure a nice offer, I better figure out what I need
cradek: bet I know less about this than you (now that you started reading about it), but I bet we can sort it out
IMO the g78 is a brit equivalent code to g33
one thing they mention, but don't give any examples of, is multiple lead threads
G76 Multi-pass threading ?
SWPadnos: I think you have to figure it out yourself (start the cut out a bit, in the right place)
SWPadnos: you mean multiple starts?
this article seems to say that G76 is a canned cycle for G33 moves.http://www.rose-training.com/tandp/jun03.htm
cradek, yes, multiple starts
just don't add too many G-codes or my quick reference won't fit on a sheet anymore
SWPadnos: yeah I think you just figure it out, say you have 4 starts per inch, you begin the second one at -.25"
Jepler: I printed your sheet out - but now how to I click on the sheet to get the examples?
alex_joni: G33 should decompose into START_SPEED_FEED_SYNCH() STRAIGHT_FEED() STOP_FEED_SPEED_SYNC()
that can work, if you have a lot of extra space to cut off at the starting end
alex_joni: I think
* alex_joni looks
alex_joni: START_SPEED_FEED_SYNCH() should take an argument which is the userunits/revolution (comes from the G33 K word)
does CVS work over there?
does the choice of I/J/K depend on the selected plane?
Mits 500 here lists the g33 z1 q1 e1 or f1
where z is thread length
oh wait, it's working here too
i.e., plane 17 == K
jepler: I don't know...
q is shift angle
jepler: I was hoping we would support arbitrary planes
and e or f is thread lead
rayh: what is shift angle? the 29 degrees for multiple passes?
180 degrees for 2-starts, etc, I'd say
rayh: machinery handbook says g33 is one pass
this must be another one of these things were we can do whatever we please
there's a separate section that talks about the issues with multiple passes
(offsetting the cut in both X ans Z because the cutter is angled, for example)
No I think we need to conform to what cam programs spit out.
SWPadnos: right, g98?
arg, my book is too old
rayh: can you work on a spec and put it on the wiki?
in my book, it's about 16 pages after the table
I can start it but that is about all.
Only have the one book handy.
rayh: alex and I don't know squat about what real controllers have, you do
it's a separate heading called "Thread Cutting"
rayh: it would still be nice to have it available for comment
cradek: you nailed it there ;)
alex_joni: no offense meant, of course
alex_joni: let's concentrate on the simplest case first, sync/feed/unsync like I said above
how hard would it be to make that function take two parameters: the speed and the axis to synch to?
(with a special case for spindle, I guess)
SWPadnos: I think it should allow you to make any move once synced
SWPadnos: we already have coordinated motion with controlled axes
cradek: seems paul (when he did the G33 stuff) added an #ifdef LATHE
so that needs to gt compiled in for G33 to work
alex_joni: take that crap out
alex_joni: if I want to thread on my mill, I darn well should be able to
when LATHE is defined CANNED_CYCLES are taken out
cradek: he also took out A,B,C from various commands
ARC_FEED(end_x, end_y, center_x, center_y, turn, end_z,
AA_end, BB_end, CC_end);
0, 0, 0);
I say rip that out
probably assumed ABC don't exist on lathes
if I want a rotary table on my lathe, why not? I could attach the cutter to it or something.
well Y doesn't exist on (most) lathes either
you could rotate the cutter, for different profiles
not that it needs to be synched though
if we later find we need to limit the interp if in lathe mode, that'll have to go in the ini and not require a recompile.
this isn't for synched stuff.. but for all stuff
cradek: ok, I'll ripp all that out now
and if needed I'll put it back ;)
but I doubt it
do you think you see what to do for g33?
yeah.. only one place to do the magic
should I add those calls too?
to the FOO_SYNCH_FUNCTIONS()
I wonder if we should branch, or just thunder on and branch later if we need it
so far we're not breaking anyting
I actually don't think we'll have it broken for long
I haven't checked in anything yet...
ok, I'll do the LATHE stuff now..
will probably be a while
you'll have to add EMC_TRAJ_SET_SYNC_FOO_WHATEVER messages
for the interp_list, and then get them in motion, right?
yeah, if that's missing (didn't look that far)
then in motion we'll call tpSetSomeSyncThingies(feed rate)
grep -r -e LATHE * | wc -l
will take a bit
that's in lathe_fork? (or BDI4 ...)
no, it's in head
no, that's in emc2 head
paul merged lathe stuff a while ago
I only get 103
so.. how about canned cycles & lathe?
oh, not recursive above rs274ngc
SWPadnos: probably I'm counting include/interp_internal.hh too
maybe we should think for a minute more before you rip out 107 things
or some lines like "foo isn't a file you bonehead"
ok, lets think
zzzzzzzzz<DANG>..... something broke
sniff sniff - is that smoke?
cradek: isn't that what CVS is for?
people that don't think? :D
no, it's for people who don't remember
[20:56:00] <rayh> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Lathe_Code
something like g81 doesn't really make sense for a lathe.
just a start at an outline
rayh: what do you think about XYZABC on a lathe?
I don't see why we have to disallow it, though.
should it be reduced to XYZ like it's now, or does XYZABC actually make sense on some systems?
cradek: so don't write it when on a lathe
hello guys. not to complicate matters, but would you like screen shots of the Mastercam 'lathe thread parameters'?
jepler: I think that's also my approach
er, yeah, what you just said
Roguish: sure, any source of information is ok
Roguish, if it won't ruffle any copyright lawyer's feathers. sure ;)
Wanna upload those and link them to the new lathe page.
cradek: I'll remove the ABC limitations for now, those are the most of them
we'll worry about G80+ later.. ok?
alex_joni: ok, I don't see any reason to have that
i can send you some simple jpg files of the input dialogs. 3 total, 'toolpath parameter', 'thread shape parameters', and 'thread cut parameters'
how about the code it spits out?
no copywrite infringment, they are just screen dumps.. i have never used this part of mastercam, so i'll have to play with it awhile before any output
but i will try later today. gotta rtfm for a bit.
who would like the screen dumps?
Roguish: upload them to the wiki: wiki.linuxcnc.org, click Upload
Give em to someone with a faster connection than mine.
SWPadnos, Can you put into that page the essence of the Machinery Handbook definitions.
jepler or cradek (or anyone else): to effectively comment out a section of a bash script, I should be able to use something like "cat <<COMMENT > /dev/null" before, and "COMMENT" after the block, right?
rayh, sure. I can do that
but they don't list formats, only the code numbers
SWPadnos: just put # in front of the lines
there are a lot of lines
I'd do the same as cradek
Use the block-modify command in your editor
heh, first get a better editor, then put # in front of the lines
the entire section of the runscript that loads motion
in vim, it would be <move to start> v <move to end> :s/^/#/
in emacs use M-x prefix-region #
do you not need the ^ in the replacement text?
(or \n or something)
that means "replace beginning of line with #"
^ means "match at the beginning of the line"
it doesn't match any characters itself, so when you "replace" it with # the effect is inserting #
I know - forgot that it means "match the 0-length string at after the beginning of the line"
kate does it just fine - thanks
If you wanted to comment all lines beginning with "m", it would be s/^m/#m/
oh, you have someone there who's able to use vim for you?
yes, she's very pretty ;)
uh, girls can't use vim, can they?
cradek: Ingrid does
my girls can
shows what I know
ok, just uploaded the pictures. not too big, about 50k each.
actually, my wife would probably die trying to get out of vim
SWPadnos: Alt-F4 works
heh - she'd need to know that one too ;)
(she does on Windows, but might not think it would work on Linux)
Roguish, Do you have the urls for them?
hmmm - making the ini load motion is a little harder - it needs math, or to have the *_PERIODs set in nanoseconds
what? of the uploads? how would i get that?
where did you put them?
SWPadnos: are you going to break my configs again?
optionally, of course
jmk will rip out the sruff from the runscript, and eliminate the option ;)
ok, just wondered...
in what ever the default upload place is.
I think rayh was asking so he could link them into the wiki page
ya, that should be it. i gotta run meet a carpet cleaner. i will try to get some g code out of mastercam later today. ciao.
rayh: upload:tool_path_parameters.jpg should work I think
cradek: one #ifdef LATHE is left, the one about G80+
the others are gone
checking in now
oh, forgot to compile :(
ok, compiles cleanly
it's even running
cradek: got 5 mins before I leave?
* alex_joni is looking for a NML message
it should be EMC_TRAJ_foo imho
darn even CIA is slow today
hmmm - well, that won't work
SWPadnos: what won't ?
cradek: yes, something like that
the runscript runs all HALFILEs before it runs any HALCMDs
0 means unsynced?
or should there be an unsync message too?
I wouldn't want to clobber with messages
better have an byte synch; (0=unsynched, 1=synched)
if you are worried about feed_per_rev==0
cradek: there are far too many NML messages already
well that would be a stupid synchronization
damn. never save a new copy of the emc script while emc is running
ok just do one message then
one messag, double feed_per_rv;
my 'e' key again
oh, your e key again
'messag' and 'feed_per_rv'
damn .. it does work ok, but it depends on the pressing point
if I push it a bit sideways it won't work anymore
cradek: you know that adding a new NML message will probably mean AXIS will need to get fixed too...
that's what TESTING is for
* alex_joni starts doing that
you also have to make an EMCMOT cmd_code, right?
yes, but that's a bit later
I also need to do canon
going for a snack
and the task stuff first
ok, motion now loads from a hal file just fine, and could work from the ini if the HALCMD and HALFILE execution order were reversed (or they were done in file order)
except that the PERIOD vars need to be in ns, not seconds
here's what the line looks like in my new-style univstep_load file:
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD_NS servo_period_nsec=[EMCMOT]SERVO_PERIOD_NS traj_period_nsec=[EMCMOT]TRAJ_PERIOD_NS key=[EMCMOT]SHMEM_KEY
doesn't look that bad
heh. yes it does ;)
just got a call telling me about a problem with reset or m2
what's G84 again?
ubuntu from a week ago.
I see the same thing here.
uh-oh, what is it?
In tkemc the listing of feedrate changed to metric.
with inch user units?
I get it too, if I MDI m2
it doesn't even require m2
in MDI: g1x1 / x.5
just F1 / M2
or F10 M2, for better precision ;)
(on separate lines, of course)
but it doesn't actually speed up
Let me look at the ini
it's just reported wrong
* alex_joni wonders who might be responsible ..
* cradek points at alex
Okay. It was fixed in emc by a code in the general section of the ini.
yeah, I bet you do
That does not seem to work here though.
you mean DEFAULT_UNITS?
In emc(1) we could place a variable in the ini file
RS274NGC_STARTUP_CODE = G20
And that would make the interpreter default/reset to inch units.
I don't think there's a problem with defaults here, it defaults to the right units, but it later changes
using the startup code, you get the square of the problem
ie, if you have F10 (inch), and issue M2, then you get the displayed number F254, as expected
only it changes to F6452 if you issue G21
whereas before it would correctly go back to F10 if you did G21 / G20
man I hate these units problems
SWPadnos: any idea since when?
is it emcTaskPlanInit that gets called on M2 or reset?
this is not M2 related
and it does not appear on stepper_mm
only when switching from mm to inch (G20 & G21)
something is backwards here
what if you add RS274NGC_STARTUP_CODE = G20
in mm, user units and internal units are the same
jepler (or cradek), axis should use a float format for the F word
like 1 decimal place or more
cradek: does it show in AXIS too?
do you remember where the feedrate comes from?
I think so, but I don't see it in emctop
settings sounds like interp
and it is wrong in the stat buffer
I think it's stat.task.activeSettings
sprintf(string, "F%.0f ", emcStatus->task.activeSettings);
fix committed to axis
(to show one decimal place)
ok, think I found it
argh, not fully..
it does work better, but not when switching G20/G21
if I'm in inches, set F10, then change to metric, isn't the correct feedrate F254?
(since I'd have to type F254 into the interpreter to set the same feed rate)
jepler: yes, and that doesn't work
oh -- I thought that's what it was doing
it works somehow reversed
when you go from inch to mm it stays 10
but when switching back to inch it shows 254
at least over here
typing M2 makes it show the right value though
yeah I'm seeing the same behavior here
ok, think I start to understand it
try pushing G21 twice when you change units
and then G20 twice
it seems that when the stuff gets asked it's not converted yet, but it gets converted shortly afterwards
jepler, cradek: any of you still there?
[22:52:48] <alex_joni> http://cvs.sourceforge.net/viewcvs.py/emc/emc2/src/emc/task/emccanon.cc?r1=1.34&r2=1.35
I think that's responsible for this
currentLinearFeedRate is not in EXT units, but internal (mm)
I already commited a fix for that, but the problem is that lengthUnits (another internal param) which gets used for TO_PROG_LEN() isn't updated when it should
jepler: do you remember what NML gets sent on MDI input?
I can check
oh, damn this is fscked
I wonder how it worked...
hmm.. I think I start to have a picture of what's wrong
well, I'll say either way ;)
the GUI's get the feed value out of a STAT NML message
the problem is that the NML STAT message gets sent right away as a reply to the command
so when a command to change units is received (G20 || G21) a reply is sent imediately with the old feedrate in it. only after that the unit changing gets done, and the correct feed rate is calculated.
so any subsequent EXEC command will trigger the display change (as the new STAT NML message will hold the correct value)
alex_joni: did we recently break this?
cradek: yes & no
fixing one problem revealed this one
[23:34:29] <alex_joni> http://cvs.sourceforge.net/viewcvs.py/emc/emc2/src/emc/task/emccanon.cc?r1=1.34&r2=1.35
<- that's the change I suspect of beeing responsible
yes, double yuck
the old one is imo very wrong
and the new one is not quite correct either :(
well, it is correct, it just doesn't display what it should on the GUI
darn.. maybe in the morning with a clear head..
* alex_joni goes to bed
cradek: want to hunt on this bug?
I could provide some insight before going away..
I've just about got the start of a lathe code page.
rayh: I fixed partly the bug you've seen
but it's harder than I expected
Great. I'll check out and do some testing.
I know that units have given lots of folk fits.
I sure appreciate the work of all you guys.
right now it works as it should, but it displays it wrong just after the G20/G21 switch
if you enter a new command then it will display the right value
Okay. That'll help. I'll get to the guy that called with that info.
I think it's still a bit wrong in the TESTING
I only changed HEAD
got to figure out how come it used to work :-?
That may be nearly impossible.