This fixes incorrect reenabling of the manual controls while a program is
running. This was an unintended consequence from 55d93a8f
Most of 55d93a8f had already been reverted to fix other breakage; see b6015c28
and 1775f4f9
Signed-off-by: Chris Radek <chris@timeguy.com>
The Tcl 'switch' command has several forms. The one formerly used in
update_state is *not* a preferred format, because the compiler can't
statically tell whether $::task_state is an option (if it starts with a
"-") or the string to switch on (if it doesn't).
The format used in the rest of our Tcl code, with all the body-pattern
pairs enclosed as a single Tcl list is not appropriate here because in
this case the patterns are the result of expanding $-variables.
That leaves the "explicit end-of-options" form, in which "--" is
inserted before the value to be matched against a pattern. When this
form is used, it also happens to fix SF#411 on my Debian Jessie system
when using an affected version of tcl, such as tcl8.6=8.6.2+dfsg-2.
Since the leading theory for the cause of SF#411 is an obscure bug in
Tcl, changing how the Tcl compiler is able to reason about the proc--by
taking it from a non-preferred code path to a preferred one--is a
reasonable workaround.
It also means a traceback will be avoided in the abnormal case that
$::task_state holds a negative integer.
Signed-off-by: Jeff Epler <jepler@unpythonic.net>
src/hal/components/moveoff.comp - Hal offset component for 9 axes
Plus:
scripts/moveoff_gui - gui for managing the moveoff component
configs/sim/axis/moveoff/* - demonstration sim configs
The sim configs include:
hookup_moveoff.tcl - script to automatically install a moveoff
component into an existing configuration
Documentation:
man moveoff (halcompile generated)
moveoff_gui --help
hookup_move.tcl (notes at top of file)
Signed-off-by: Dewey Garrett <dgarrett@panix.com>
Since tk8.4.8, [wm iconphoto] has been able to set photo images as
window icons, so the seticon hack is not necessary. Furthermore, it was
causing crashes on some systems and ineffective on others.
Also, the Img package (which can load png images) has been required for
the latencyhistogram script, so this is not a new requirement.
For MDI, the interpreter is now fed through mdi_input_queue.
The test for enabling an MDI input window now is:
interp_state == INTERP_IDLE or
(mdi_input_queue.len() < maxlen && exec_mode == MDI)
see axis.tcl and axis.py diffs for details.
this includes the main script, some of the GUIs, the Python module,
the Tcl package, some image fies.
On a sim system, axis, tkemc, xemc all start. runtests pass.
a system with realtime wasn't yet tested.
packaging probably requires additional changes and was not yet tested.
Problem: when
1) a desktop-shortcut is created by pickconfig.tcl
and
2) the build is run-in-place
the environment for the shortcut can not specify the path
for tcl packages that can be invoked from axis with the call:
root_window.tk.call("package","require",*pkg)
so add to auto_path
When verifying g-code in an EMC2 simulation, it is sometimes very
convenient to run with an .ini file where all the velocities and
accelerations have been turned up to unreasonably high values,
just so you can run through the simulation faster.
For example, I'm working in a simulation now where the velocities
and accels have been turned up to about 20x actual values, and
the feedrate override max (slider) can go up to 1500% (15x normal).
This works just fine in EMC2 now, but the displayed value next to
the slider is limited to 3 digits, so when the slider exceeds
999%, it rolls over to 1000%, which displays as 000%. So when I
move my slider all the way up it only shows 500% instead of 1500%.
I noticed in 2.4.6 that the +1000% shows as 000%, but in 2.6.0pre
(current master) it shows as .000%. There seems to be a minor
artifact in the display that looks like a decimal point, but I
think it's the serif at the bottom of the one. Perhaps caused
by other display-related changes? No problem, just noting it.
I would recommend that this very minor fix be cherry-picked
from master to the more current revisions also, but I'll leave
that to the more experienced developers.
And if someone comes along that thinks 99x normal speed is
still too slow, then they can send in a patch to bump this up
again, from 4 digits to 5. Thanks for reading this far.
Signed-off-by: Kim Kirwan <Kim@KimKirwan.com>
shift-numpad jogging did not work. fixing that required also
adding special handling of the keys in entry fields so that
shift-numpad in mdi didn't cause jogs
Depending on the part program, the preview plot may be more useful when
it is drawn in a blended mode. However, for other programs the old
style view might be preferable. Add a blended drawing mode and make it
selectable at runtime.
The combobox wants to intercept up, down, pgup, pgdn keys for its
own purposes while the dropdown is open. However, the combobox did
not intercept the corresponding KeyRelease events. This interacted
badly with the AXIS main window, which uses key release events to
update the "current axis". By intercepting the release events in the
same conditions as the press events are intercepted, this problem
is avoided.
A typo as old as time was preventing focus from being moved back
to the main window from the pop-down window. When the pop-down
was opened with a click, this left focus in the wrong place,
and most keystroke shortcuts stopped working.
with some window managers (e.g., icewm) there is a Configure event
generated anytime [wm minsize] is set, even if it is set to the prior
value. Therefore, it is necessary to avoid issuing [wm minsize] if
the prior value is the same as the new value.
when the pane or window is resized, the number of lines of program
text that are visible can change. Scroll back to the running or selected
line in this case.
Unfortunately, this behavior happens even if the user has explicitly
scrolled away from that line. However, this is probably a less likely
circumstance than the one that this is intended to correct.
Chris identified a problem when you: maximize the window, then make
the text area small, then unmaximize the window. The text area would
become completely hidden. This makes sure both the top and bottom
areas of the pane retain at least their desired size. It reduces
flexibility of the pane, but prevents the program text from appearing
to be "lost"
Before the addition of the pane, the top part would enlarge and the
program text would stay fixed-size when the window was enlarged. After
the addition of this patch, the text enlarges. Tk8.4 (Ubuntu hardy)
offers no control over this, but Tk8.5 (Ubuntu karmic) does through
"paneconfigure -stretch". When this feature is available, restore
the old behavior of enlarging the preview area by default, keeping
the program text fixed-size.
this code interacts badly with the paned widget, because after
the sash is moved, .pane's reqheight becomes its actual height.
by doing it only once at startup (instead of anytime the root
window is reconfigured), the effect is avoided.
I was unable to determine what the "+4" fudge factor was for; the old
commit in the AXIS CVS just says "change wm minsize recalculation"!
a dialog specifier like {-2 -3} should set the first button to be the
default. This was done above, and the deleted line was resetting
default to the wrong value.