diff options
author | Chris Morley <chrisinnanaimo@hotmail.com> | 2014-01-25 13:28:31 -0800 |
---|---|---|
committer | Chris Morley <chrisinnanaimo@hotmail.com> | 2014-01-25 13:28:31 -0800 |
commit | feeaf0c4ef0335a99ae9f8e24535e075f35920da (patch) | |
tree | f026db4aac2b4191ff9c941f028cb9009664e652 | |
parent | 2190b97590052215b3a2572b497e918927a95edd (diff) | |
download | linuxcnc-feeaf0c4ef0335a99ae9f8e24535e075f35920da.tar.gz linuxcnc-feeaf0c4ef0335a99ae9f8e24535e075f35920da.zip |
gscreen -add a gaxis with-no-live-plot sim configuration
Low power machines need to drop the live plot.
-rw-r--r-- | configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini | 200 | ||||
-rw-r--r-- | share/gscreen/skins/gaxis_no_plot/gaxis_no_plot.glade | 1659 | ||||
-rw-r--r-- | share/gscreen/skins/gaxis_no_plot/gaxis_no_plot_handler.py | 189 |
3 files changed, 2048 insertions, 0 deletions
diff --git a/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini b/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini new file mode 100644 index 000000000..1c2344c5a --- /dev/null +++ b/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini @@ -0,0 +1,200 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Linuxcnc-Gscreen_gaxis_no_plot + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + + +# -c sets the glade and handler file to load -d is to display extra debug messages +DISPLAY = gscreen -c gaxis_no_plot -c + +# Cycle time, in milliseconds, that display will sleep between polls +CYCLE_TIME = 100 + +# Highest / lowest value that will be allowed for overrides, 1.0 = 100% +MAX_FEED_OVERRIDE = 2.0 +MIN_SPINDLE_OVERRIDE = .5 +MAX_SPINDLE_OVERRIDE = 1.0 + +# Max and default jog speeds in units per second +MAX_LINEAR_VELOCITY = 1.2 +DEFAULT_LINEAR_VELOCITY = .25 + +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = linuxcnc.gif +INTRO_TIME = 5 + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = sim_spindle_encoder.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear + + +# Single file that is executed after the GUI has started. +POSTGUI_HALFILE = gaxis_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 1.2 +MAX_VELOCITY = 2.4 +POSITION_FILE = position.txt + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 4 +MAX_ACCELERATION = 100.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 4 +MAX_ACCELERATION = 100.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 4 +MAX_ACCELERATION = 100.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -8.0 +MAX_LIMIT = 0.0001 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl +TOOL_CHANGE_POSITION = 0 0 0 +TOOL_CHANGE_QUILL_UP = 1 diff --git a/share/gscreen/skins/gaxis_no_plot/gaxis_no_plot.glade b/share/gscreen/skins/gaxis_no_plot/gaxis_no_plot.glade new file mode 100644 index 000000000..d294f4ccc --- /dev/null +++ b/share/gscreen/skins/gaxis_no_plot/gaxis_no_plot.glade @@ -0,0 +1,1659 @@ +<?xml version="1.0"?> +<interface> + <requires lib="gtk+" version="2.16"/> + <!-- interface-requires gladevcp 0.0 --> + <!-- interface-naming-policy project-wide --> + <object class="GtkWindow" id="window1"> + <property name="default_width">1024</property> + <property name="default_height">768</property> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <child> + <object class="GtkMenuBar" id="menubar1"> + <property name="visible">True</property> + <child> + <object class="GtkMenuItem" id="menuitem1"> + <property name="visible">True</property> + <property name="label" translatable="yes">_File</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu1"> + <property name="visible">True</property> + <child> + <object class="GtkImageMenuItem" id="imagemenuitem1"> + <property name="label">gtk-new</property> + <property name="visible">True</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="imagemenuitem2"> + <property name="label">gtk-open</property> + <property name="visible">True</property> + <property name="related_action">emc_open</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + <accelerator key="o" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="imagemenuitem3"> + <property name="label">gtk-save</property> + <property name="visible">True</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + <accelerator key="s" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="imagemenuitem4"> + <property name="label">gtk-save-as</property> + <property name="visible">True</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + <accelerator key="s" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem" id="separatormenuitem1"> + <property name="visible">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="imagemenuitem5"> + <property name="label">gtk-quit</property> + <property name="visible">True</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem2"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Machine</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> + <property name="visible">True</property> + <child> + <object class="GtkImageMenuItem" id="menuitem_estop"> + <property name="label" translatable="yes">Toggle _Emergency Stop</property> + <property name="visible">True</property> + <property name="related_action">emc_toggle_estop</property> + <property name="use_underline">True</property> + <property name="use_stock">False</property> + <accelerator key="e" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="menuitem_power"> + <property name="label" translatable="yes">Toggle _Machine Power</property> + <property name="visible">True</property> + <property name="related_action">emc_toggle_power</property> + <property name="use_underline">True</property> + <property name="use_stock">False</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem3"> + <property name="visible">True</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu4"> + <property name="visible">True</property> + <child> + <object class="GtkRadioMenuItem" id="radiomenuitem1"> + <property name="visible">True</property> + <property name="label" translatable="yes">Top view</property> + <property name="use_underline">True</property> + <property name="draw_as_radio">True</property> + </object> + </child> + <child> + <object class="GtkRadioMenuItem" id="radiomenuitem2"> + <property name="visible">True</property> + <property name="label" translatable="yes">Top view 2</property> + <property name="use_underline">True</property> + <property name="draw_as_radio">True</property> + <property name="group">radiomenuitem1</property> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem" id="separatormenuitem2"> + <property name="visible">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem4"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Help</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu3"> + <property name="visible">True</property> + <child> + <object class="GtkImageMenuItem" id="imagemenuitem10"> + <property name="label">gtk-about</property> + <property name="visible">True</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkCheckMenuItem" id="menuitem5"> + <property name="visible">True</property> + <property name="label" translatable="yes">Preferences and Debug Tab</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <child> + <object class="GtkVBox" id="vbox2"> + <property name="visible">True</property> + <child> + <object class="GtkToolbar" id="toolbar1"> + <property name="visible">True</property> + <property name="toolbar_style">both</property> + <child> + <object class="GtkToggleToolButton" id="button_estop"> + <property name="visible">True</property> + <property name="use_action_appearance">True</property> + <property name="related_action">emc_toggle_estop</property> + <property name="label" translatable="yes">ESTOP</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="button_machine_on"> + <property name="visible">True</property> + <property name="use_action_appearance">True</property> + <property name="related_action">emc_toggle_power</property> + <property name="label" translatable="yes">Power</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkSeparatorToolItem" id="toolbutton1"> + <property name="visible">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolbutton_open"> + <property name="visible">True</property> + <property name="related_action">emc_open</property> + <property name="label" translatable="yes">Open</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-open</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolbutton_reload"> + <property name="visible">True</property> + <property name="related_action">hal_action_reload</property> + <property name="label" translatable="yes">Reload</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-refresh</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkSeparatorToolItem" id="toolbutton2"> + <property name="visible">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="toolbutton_run"> + <property name="visible">True</property> + <property name="related_action">hal_toggleaction_run</property> + <property name="label" translatable="yes">Run</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-media-play</property> + <accelerator key="r" signal="clicked"/> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolbutton_step"> + <property name="visible">True</property> + <property name="related_action">emc_auto_step</property> + <property name="label" translatable="yes">Step</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-media-next</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="toolbutton_pause"> + <property name="visible">True</property> + <property name="related_action">emc_toggle_pause</property> + <property name="label" translatable="yes">Pause</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-media-pause</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="toolbutton_stop"> + <property name="visible">True</property> + <property name="related_action">hal_action_stop</property> + <property name="label" translatable="yes">Stop</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-media-stop</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="restart"> + <property name="visible">True</property> + <property name="label" translatable="yes">Run At + Line</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="metric_select"> + <property name="visible">True</property> + <property name="label" translatable="yes">Inch</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="all_home"> + <property name="visible">True</property> + <property name="related_action">emc_home_all</property> + <property name="label" translatable="yes">All Home</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="go_home"> + <property name="visible">True</property> + <property name="related_action">hal_action_go_home</property> + <property name="label" translatable="yes">Go Home</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox3"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <child> + <object class="GtkHPaned" id="hpaned1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="position">350</property> + <property name="position_set">True</property> + <child> + <object class="GtkVBox" id="vbox4"> + <property name="visible">True</property> + <child> + <object class="GtkNotebook" id="notebook_main"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">automatic</property> + <property name="vscrollbar_policy">automatic</property> + <child> + <object class="EMC_SourceView" id="gcode_view"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="left_margin">2</property> + <property name="right_margin">2</property> + <property name="show_line_numbers">True</property> + <property name="show_line_marks">True</property> + <property name="tab_width">4</property> + <property name="auto_indent">True</property> + <property name="highlight_current_line">True</property> + <property name="indent_on_tab">False</property> + </object> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="ypad">10</property> + <property name="label" translatable="yes">Auto</property> + </object> + <packing> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="State_Sensitive_Table" id="sensitive_table1"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="is_homed">False</property> + <child> + <object class="GtkHBox" id="hbox4"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="xalign">0.43999999761581421</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkComboBox" id="jog_speed"> + <property name="visible">True</property> + <property name="model">jog_speed_model</property> + <child> + <object class="GtkCellRendererText" id="cellrenderertext1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="position">4</property> + </packing> + </child> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="n_rows">5</property> + <property name="n_columns">5</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkHBox" id="hbox7"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label5"> + <property name="visible">True</property> + <property name="label" translatable="yes">X</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="button2"> + <property name="label" translatable="yes">Home</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="related_action">emc_home_x</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="State_Sensitive_Table" id="sensitive_table2"> + <property name="visible">True</property> + <property name="n_columns">3</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="xpos"> + <property name="label" translatable="yes">+</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="xneg"> + <property name="label" translatable="yes">-</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="touch_offx"> + <property name="label" translatable="yes">Touch off</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="right_attach">5</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox8"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="label" translatable="yes">Y</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="button4"> + <property name="label" translatable="yes">Home</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="related_action">hal_action_home_y</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="State_Sensitive_Table" id="sensitive_table3"> + <property name="visible">True</property> + <property name="n_columns">3</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="ypos"> + <property name="label" translatable="yes">+</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="yneg"> + <property name="label" translatable="yes">-</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="touch_offy"> + <property name="label" translatable="yes">Touch off</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="right_attach">5</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox9"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Z</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="button3"> + <property name="label" translatable="yes">Home</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="related_action">hal_action_home_z</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="State_Sensitive_Table" id="sensitive_table4"> + <property name="visible">True</property> + <property name="n_columns">3</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="zpos"> + <property name="label" translatable="yes">+</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="zneg"> + <property name="label" translatable="yes">-</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="touch_offz"> + <property name="label" translatable="yes">Touch off</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="right_attach">5</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox10"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label16"> + <property name="visible">True</property> + <property name="label" translatable="yes">Spindle</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label20"> + <property name="visible">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="State_Sensitive_Table" id="sensitive_table5"> + <property name="visible">True</property> + <property name="n_columns">3</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="spos"> + <property name="label" translatable="yes">+</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="sneg"> + <property name="label" translatable="yes">-</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="s_run"> + <property name="label" translatable="yes">Controls</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="right_attach">5</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label8"> + <property name="visible">True</property> + <property name="label" translatable="yes">Manual</property> + </object> + <packing> + <property name="position">1</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="EMC_MDIHistory" id="hal_mdihistory1"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="label" translatable="yes">MDI</property> + </object> + <packing> + <property name="position">2</property> + <property name="tab_fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox7"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkHBox" id="feed_override_box"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="label10"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Feed Override</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkHScale" id="scale_fo"> + <property name="width_request">100</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">adjustment_fo</property> + <property name="digits">0</property> + <property name="value_pos">left</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="max_velocity_box"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="max_velocity_label"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Max Velocity</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkHScale" id="scale_mv"> + <property name="width_request">100</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">adjustment_mv</property> + <property name="digits">0</property> + <property name="value_pos">left</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="jog_speed_box"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="label11"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Jog Speed</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkHScale" id="scale_jog"> + <property name="width_request">100</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">adjustment_jog</property> + <property name="value_pos">left</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="spindle_override_box"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="label17"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Spindle Override</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkHScale" id="scale_so"> + <property name="width_request">100</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">adjustment_so</property> + <property name="digits">0</property> + <property name="value_pos">left</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="resize">False</property> + <property name="shrink">True</property> + </packing> + </child> + <child> + <object class="GtkNotebook" id="notebook_debug"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tab_border">0</property> + <child> + <object class="GtkNotebook" id="notebook_tab"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <object class="GtkVBox" id="vbox5"> + <property name="visible">True</property> + <child> + <object class="Combi_DRO" id="dro_x"> + <property name="visible">True</property> + <property name="abs_color">#00000000ffff</property> + <property name="unhomed_color">#ffff00000000</property> + <property name="auto_units">False</property> + <property name="dtg_color">#ffffffff0000</property> + <property name="rel_color">#000000000000</property> + <property name="homed_color">#0000ffff0000</property> + <property name="font_size">50</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="Combi_DRO" id="dro_y"> + <property name="visible">True</property> + <property name="abs_color">#00000000ffff</property> + <property name="unhomed_color">#ffff00000000</property> + <property name="auto_units">False</property> + <property name="dtg_color">#ffffffff0000</property> + <property name="rel_color">#000000000000</property> + <property name="joint_number">1</property> + <property name="homed_color">#0000ffff0000</property> + <property name="font_size">50</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="Combi_DRO" id="dro_z"> + <property name="visible">True</property> + <property name="abs_color">#00000000ffff</property> + <property name="unhomed_color">#ffff00000000</property> + <property name="auto_units">False</property> + <property name="dtg_color">#ffffffff0000</property> + <property name="rel_color">#000000000000</property> + <property name="joint_number">2</property> + <property name="homed_color">#0000ffff0000</property> + <property name="font_size">50</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label13"> + <property name="visible">True</property> + <property name="ypad">10</property> + <property name="label" translatable="yes">Dro</property> + </object> + <packing> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child type="tab"> + <object class="GtkLabel" id="label14"> + <property name="visible">True</property> + </object> + <packing> + <property name="position">1</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child type="tab"> + <object class="GtkLabel" id="label15"> + <property name="visible">True</property> + <property name="yalign">0.51999998092651367</property> + </object> + <packing> + <property name="position">2</property> + <property name="tab_fill">False</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label12"> + <property name="visible">True</property> + <property name="ypad">10</property> + <property name="label" translatable="yes">Main</property> + </object> + <packing> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow2"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">automatic</property> + <property name="vscrollbar_policy">automatic</property> + <child> + <object class="GtkTextView" id="alarm_history"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="wrap_mode">word</property> + <property name="cursor_visible">False</property> + <property name="buffer">alarm_buffer</property> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label18"> + <property name="visible">True</property> + <property name="label" translatable="yes">Alarm</property> + </object> + <packing> + <property name="position">1</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox10"> + <property name="visible">True</property> + <child> + <object class="GtkScrolledWindow" id="terminal_window"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">automatic</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox5"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="run_halshow"> + <property name="label" translatable="yes"> Launch +Halshow</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="run_calibration"> + <property name="label" translatable="yes">Calibration</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="run_halmeter"> + <property name="label" translatable="yes">Halmeter</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="run_status"> + <property name="label" translatable="yes">linuxcnc + Status</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="run_halscope"> + <property name="label" translatable="yes">Halscope</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">4</property> + </packing> + </child> + <child> + <object class="GtkButton" id="run_ladder"> + <property name="label" translatable="yes">Ladder</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">5</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label19"> + <property name="visible">True</property> + <property name="label" translatable="yes">System</property> + </object> + <packing> + <property name="position">2</property> + <property name="tab_fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="resize">True</property> + <property name="shrink">True</property> + </packing> + </child> + </object> + <packing> + <property name="position">350</property> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="alignment_vcp"> + <property name="visible">True</property> + <child> + <object class="GtkVBox" id="vcp_box"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkStatusbar" id="statusbar1"> + <property name="visible">True</property> + <property name="spacing">2</property> + <property name="has_resize_grip">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + <object class="EMC_Action_Run" id="emc_auto_run"> + <property name="label">Run</property> + <property name="tooltip">Run current file</property> + <property name="stock_id">gtk-media-play</property> + </object> + <object class="EMC_Action_Step" id="emc_auto_step"> + <property name="label">Step</property> + <property name="tooltip">Step over next command</property> + <property name="stock_id">gtk-media-next</property> + </object> + <object class="EMC_Action_Pause" id="emc_auto_pause"> + <property name="label">Pause</property> + <property name="tooltip">Pause/resume execution</property> + <property name="stock_id">gtk-media-pause</property> + </object> + <object class="EMC_Action_Resume" id="emc_auto_resume"> + <property name="stock_id">gtk-media-stop</property> + </object> + <object class="EMC_Action_Stop" id="hal_action_stop"> + <property name="stock_id">gtk-stop</property> + </object> + <object class="GtkImage" id="image2"> + <property name="visible">True</property> + <property name="stock">gtk-disconnect</property> + </object> + <object class="EMC_ToggleAction_ESTOP" id="emc_toggle_estop"> + <property name="label">ESTOP</property> + <property name="tooltip">Toggle Emergency Stop</property> + <property name="stock_id">gtk-stop</property> + </object> + <object class="EMC_ToggleAction_Power" id="emc_toggle_power"> + <property name="label">Power</property> + <property name="tooltip">Toggle Machine Power</property> + <property name="stock_id">gtk-disconnect</property> + </object> + <object class="EMC_ToggleAction_Run" id="hal_toggleaction_run"> + <property name="label">Run</property> + <property name="tooltip">Run current file</property> + <property name="stock_id">gtk-media-play</property> + </object> + <object class="EMC_ToggleAction_Pause" id="emc_toggle_pause"> + <property name="icon_name">gtk-media-pause</property> + </object> + <object class="EMC_Action_MDI" id="hal_action_go_home"> + <property name="label">Go Home</property> + <property name="stock_id">gtk-jump-to</property> + <property name="hide_if_empty">False</property> + <property name="command">G0 X0 Y0 Z0</property> + </object> + <object class="EMC_Action_Open" id="emc_open"> + <property name="stock_id">gtk-open</property> + </object> + <object class="EMC_Action_Reload" id="hal_action_reload"> + <property name="stock_id">gtk-refresh</property> + </object> + <object class="EMC_Action_Home" id="emc_home_all"> + <property name="short_label">Home</property> + <property name="stock_id">gtk-home</property> + <property name="confirm_homed">True</property> + </object> + <object class="EMC_Action_Unhome" id="emc_unhome_all"/> + <object class="EMC_Action_Home" id="emc_home_x"> + <property name="confirm_homed">True</property> + <property name="axis">0</property> + </object> + <object class="EMC_Action_Unhome" id="emc_unhome_x"> + <property name="axis">0</property> + </object> + <object class="EMC_Stat" id="hal_status"> + <signal name="all_homed" handler="on_hal_status_all_homed"/> + </object> + <object class="GtkAdjustment" id="restart_adjustment"> + <property name="upper">1000000</property> + <property name="step_increment">1</property> + </object> + <object class="GtkAdjustment" id="adjustment_fo"> + <property name="value">100</property> + <property name="upper">200</property> + <property name="step_increment">1</property> + </object> + <object class="GtkAdjustment" id="adjustment_jog"> + <property name="value">15</property> + <property name="upper">100</property> + <property name="step_increment">1</property> + </object> + <object class="GtkAdjustment" id="adjustment_mv"> + <property name="value">100</property> + <property name="upper">100</property> + <property name="step_increment">1</property> + </object> + <object class="GtkListStore" id="jog_speed_model"> + <columns> + <!-- column-name title --> + <column type="gchararray"/> + </columns> + </object> + <object class="GtkDialog" id="restart_dialog"> + <property name="border_width">5</property> + <property name="type">popup</property> + <property name="title" translatable="yes">Program Restart</property> + <property name="window_position">center-on-parent</property> + <property name="destroy_with_parent">True</property> + <property name="type_hint">dialog</property> + <property name="has_separator">False</property> + <child internal-child="vbox"> + <object class="GtkVBox" id="dialog-vbox6"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkVBox" id="vbox13"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label40"> + <property name="visible">True</property> + <property name="label" translatable="yes">Highlighting the run-at-line with the +up / down buttons or entering the line +directly.</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox12"> + <property name="visible">True</property> + <child> + <object class="GtkButton" id="restart_line_up"> + <property name="label" translatable="yes">Line + Up</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="restart_line_input"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="invisible_char">●</property> + <property name="adjustment">restart_adjustment</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="restart_line_down"> + <property name="label" translatable="yes"> Line +Down</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child internal-child="action_area"> + <object class="GtkHButtonBox" id="dialog-action_area6"> + <property name="visible">True</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="restart_ok"> + <property name="label" translatable="yes">Restart</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="restart_cancel"> + <property name="label" translatable="yes">Cancel</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="0">restart_ok</action-widget> + <action-widget response="0">restart_cancel</action-widget> + </action-widgets> + </object> + <object class="GtkTextBuffer" id="alarm_buffer"/> + <object class="GtkAdjustment" id="adjustment_spindle"> + <property name="value">300</property> + <property name="upper">3000</property> + <property name="step_increment">25</property> + </object> + <object class="GtkFrame" id="frame_s"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkTable" id="spindle_table"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">3</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="spindle_preset"> + <property name="label" translatable="yes">S 1000</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkButton" id="spindle_control"> + <property name="label" translatable="yes">Start</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkButton" id="spindle_increase"> + <property name="label" translatable="yes">+</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkButton" id="spindle_decrease"> + <property name="label" translatable="yes">-</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkToggleButton" id="s_display_fwd"> + <property name="label" translatable="yes">Fwd</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="active">True</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkToggleButton" id="s_display_rev"> + <property name="label" translatable="yes">Rev</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + </object> + </child> + </object> + <object class="EMC_Action_Home" id="hal_action_home_y"> + <property name="confirm_homed">True</property> + <property name="axis">1</property> + </object> + <object class="EMC_Action_Home" id="hal_action_home_z"> + <property name="confirm_homed">True</property> + <property name="axis">2</property> + </object> + <object class="GtkAdjustment" id="adjustment_so"> + <property name="value">100</property> + <property name="lower">50</property> + <property name="upper">200</property> + <property name="step_increment">1</property> + </object> +</interface> diff --git a/share/gscreen/skins/gaxis_no_plot/gaxis_no_plot_handler.py b/share/gscreen/skins/gaxis_no_plot/gaxis_no_plot_handler.py new file mode 100644 index 000000000..072a5d459 --- /dev/null +++ b/share/gscreen/skins/gaxis_no_plot/gaxis_no_plot_handler.py @@ -0,0 +1,189 @@ +import hal +import gtk +_X = 0;_Y = 1;_Z = 2;_A = 3;_B = 4;_C = 5;_U = 6;_V = 7;_W = 8 +# This is a handler file for using Gscreen's infrastructure +# to load a completely custom glade screen +# The only things that really matters is that it's saved as a GTK builder project, +# the toplevel window is caller window1 (The default name) and you connect a destroy +# window signal else you can't close down linuxcnc +class HandlerClass: + + # This will be pretty standard to gain access to everything + # emc is for control and status of linuxcnc + # data is important data from gscreen and linuxcnc + # widgets is all the widgets from the glade files + # gscreen is for access to gscreens methods + def __init__(self, halcomp,builder,useropts,gscreen): + self.emc = gscreen.emc + self.data = gscreen.data + self.widgets = gscreen.widgets + self.gscreen = gscreen + + def jog_x(self,widget,direction,state): + self.gscreen.do_key_jog(_X,direction,state) + def jog_y(self,widget,direction,state): + self.gscreen.do_key_jog(_Y,direction,state) + def jog_z(self,widget,direction,state): + self.gscreen.do_key_jog(_Z,direction,state) + + def on_scale_jog_value_changed(self,widget): + self.gscreen.set_jog_rate(absolute=widget.get_value()) + + def on_scale_fo_value_changed(self,widget): + self.gscreen.set_feed_override((widget.get_value()/100),True) + + def on_scale_so_value_changed(self,widget): + self.gscreen.set_spindle_override((widget.get_value()/100),True) + + def on_scale_mv_value_changed(self,widget): + self.gscreen.set_velocity_override((widget.get_value()/100),True) + + def on_jog_speed_changed(self,widget): + self.data.current_jogincr_index = widget.get_active() + + def on_show_alarm_page(self,widget): + self.widgets.notebook_debug.set_show_tabs(self.widgets.menuitem5.get_active()) + self.widgets.notebook_debug.set_current_page(0) + + + + # erase the ready-to-home message on statusbar + def on_hal_status_all_homed(self,widget): + print "all-homed" + self.data.all_homed = True + self.widgets.statusbar1.remove_message(self.gscreen.statusbar_id,self.gscreen.homed_status_message) + + # when run is pressed, destroy the restart dialog if it's showing + def on_toolbutton_run_toggled(self,widget): + if not self.data.restart_dialog == None: + self.data.restart_dialog.destroy() + self.data.restart_dialog = None + + # This connects signals without using glade's autoconnect method + def connect_signals(self,handlers): + signal_list = [ ["window1","destroy", "on_window1_destroy"], + ["restart","clicked", "launch_restart_dialog"], + ["metric_select","clicked","on_metric_select_clicked"], + ["s_run","clicked","on_button_spindle_controls_clicked"], + ["spindle_control","clicked", "on_spindle_control_clicked"], + ["spindle_preset","clicked", "on_preset_spindle"], + ["spindle_increase","clicked", "on_spindle_speed_adjust"], + ["spindle_decrease","clicked", "on_spindle_speed_adjust"], + ["run_halshow","clicked", "on_halshow"], + ["run_calibration","clicked", "on_calibration"], + ["run_status","clicked", "on_status"], + ["run_halmeter","clicked", "on_halmeter"], + ["run_halscope","clicked", "on_halscope"], + ["run_ladder","clicked", "on_ladder"], + ] + for i in signal_list: + if len(i) == 3: + self.widgets[i[0]].connect(i[1], self.gscreen[i[2]]) + elif len(i) == 4: + self.widgets[i[0]].connect(i[1], self.gscreen[i[2]],i[3]) + self.widgets.toolbutton_run.connect("toggled",self.on_toolbutton_run_toggled) + self.widgets.scale_jog.connect("value_changed",self.on_scale_jog_value_changed) + self.widgets.scale_fo.connect("value_changed",self.on_scale_fo_value_changed) + self.widgets.scale_so.connect("value_changed",self.on_scale_so_value_changed) + self.widgets.scale_mv.connect("value_changed",self.on_scale_mv_value_changed) + self.widgets.menuitem5.connect("activate",self.on_show_alarm_page) + self.widgets.jog_speed.connect("changed",self.on_jog_speed_changed) + self.widgets.sneg.connect("clicked",lambda i:self.gscreen.spindle_adjustment(False,True)) + self.widgets.spos.connect("clicked",lambda i:self.gscreen.spindle_adjustment(True,True)) + for i in('x','y','z'): + self.widgets['touch_off'+i].connect("clicked", self.on_touch_off_clicked,i) + self.widgets[i+'neg'].connect("pressed", self['jog_'+i],0,True) + self.widgets[i+'neg'].connect("released", self['jog_'+i],0,False) + self.widgets[i+'pos'].connect("pressed", self['jog_'+i],1,True) + self.widgets[i+'pos'].connect("released", self['jog_'+i],1,False) + + # We don't want Gscreen to initialize it's regular widgets because this custom + # screen doesn't have most of them. So we add this function call. + # Since this custom screen uses gladeVCP magic for its interaction with linuxcnc + # We don't add much to this function, but we do want to be able to change the theme so: + # We change the GTK theme to what's in gscreen's preference file. + # gscreen.change_theme() is a method in gscreen that changes the GTK theme of window1 + # gscreen.data.theme_name is the name of the theme from the preference file + # To truely be friendly, we should add a way to change the theme directly in the custom screen. + # we also set up the statusbar and add a ready-to-home message + def initialize_widgets(self): + self.gscreen.init_show_windows() + self.gscreen.init_dynamic_tabs() + self.gscreen.init_embeded_terminal() + self.gscreen.change_theme(self.data.theme_name) + self.gscreen.statusbar_id = self.widgets.statusbar1.get_context_id("Statusbar1") + self.gscreen.homed_status_message = self.widgets.statusbar1.push(1,"Ready For Homing") + for num,i in enumerate(self.data.jog_increments): + print i + self.widgets.jog_speed.append_text(i) + if i == "continuous": + self.data.current_jogincr_index = num + self.widgets.jog_speed.set_active(num) +# self.gscreen.set_dro_units(self.data.dro_units) + self.widgets.adjustment_mv.set_value(self.data.maxvelocity*100) + self.widgets.adjustment_jog.set_upper(self.data.jog_rate_max) + self.widgets.adjustment_jog.set_value(self.data.jog_rate) + self.widgets.adjustment_fo.set_upper(self.data.feed_override_max*100) + self.widgets.adjustment_fo.set_value(self.data.feed_override*100) + self.widgets.adjustment_so.set_upper(self.data.spindle_override_max*100) + self.widgets.adjustment_so.set_value(self.data.spindle_override*100) + self.widgets.notebook_debug.set_show_tabs(False) + self.gscreen.keylookup.add_conversion('F4','TEST2','on_keycall_POWER') + #self.gscreen.keylookup.add_binding('F4','TEST2') + #self.gscreen.keylookup.add_call('TEST2','on_keycall_POWER') + # If we need extra HAL pins here is where we do it. + # Note you must import hal at the top of this script to do it. + # For gaxis there is no extra pins but since we don't want gscreen to + # add it's default pins we added this function + def initialize_pins(self): + pass + + # checks the current operating mode according to the UI + def check_mode(self): + string = [] + if self.data.mode_order[0] == self.data._MAN and self.widgets.notebook_main.get_current_page() == 1: + string.append( self.data._MAN) + string.append(self.data._JOG) + return string + + # keybinding calls + def on_keycall_ESTOP(self,state,SHIFT,CNTRL,ALT): + if state: + self.widgets.emc_toggle_estop.emit('activate') + def on_keycall_POWER(self,state,SHIFT,CNTRL,ALT): + if state: + self.widgets.emc_toggle_power.emit('activate') + + def on_touch_off_clicked(self,widget,axis): + self.gscreen.launch_numerical_input("on_offset_origin_entry_return",axis,None,"Touch off %s"% axis.upper()) + + def on_offset_origin_entry_return(self,widget,result,calc,axis,userdata2): + value = calc.get_value() + if result == gtk.RESPONSE_ACCEPT: + if value == None: + return + if not axis == "s": + if axis in('a','b','c'): + pos = self.gscreen.get_qualified_input(value,switch=_DEGREE_INPUT) + else: + pos = self.gscreen.get_qualified_input(value) + self.gscreen.mdi_control.set_axis(axis,pos) + self.gscreen.reload_plot() + widget.destroy() + self.data.entry_dialog = None + + # every 100 milli seconds this gets called + # add pass so gscreen doesn't try to update it's regular widgets or + # add the individual function names that you would like to call. + # In this case we wish to call Gscreen's default function for units button update + def periodic(self): + self.gscreen.update_units_button_label() + + def __getitem__(self, item): + return getattr(self, item) + def __setitem__(self, item, value): + return setattr(self, item, value) + +# standard handler call +def get_handlers(halcomp,builder,useropts,gscreen): + return [HandlerClass(halcomp,builder,useropts,gscreen)] |