Import LinuxCNC source tree

This commit is contained in:
Wang Dequan
2026-08-20 06:17:39 +08:00
commit 2c814634c3
9429 changed files with 10556013 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
Gscreen is a customizable operator screen for LinuxCNC.
Built with python, GLADE, and GTK
Usable with touchscreens or a mouse.
These show the native look of Gscreen.
gscreen.ini
-Imperial milling screen,
-includes optional gladevcp panels
gscreen_lathe.ini
-Imperial basic lathe
gscreen_mm.ini
-Metric milling screen

View File

@@ -0,0 +1,387 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface>
<requires lib="gtk+" version="3.0"/>
<requires lib="gladevcp" version="0.0"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
<property name="page-size">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="upper">100</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
<property name="page-size">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
<property name="upper">100</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment4">
<property name="upper">1000</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment5">
<property name="upper">100</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
<property name="page-size">10</property>
</object>
<object class="GtkWindow" id="window1">
<property name="can-focus">False</property>
<child>
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<!-- n-columns=6 n-rows=4 -->
<object class="HAL_Table" id="hal_table1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="HAL_SpinButton" id="hal_spinbutton1">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="invisible-char">●</property>
<property name="adjustment">adjustment3</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="HAL_HBox" id="hal_hbox1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="HAL_LED" id="hal_led1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="led-blink-rate">0</property>
<property name="pick-color-off">#00002724ffff</property>
<property name="pick-color-on">#f88096020000</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_LED" id="hal_led2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="led-blink-rate">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="HAL_VBar" id="hal_vbar1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bg-color">#bebebebebebe</property>
<property name="force-width">30</property>
<property name="invert">True</property>
<property name="min">10</property>
<property name="z0-border">0.699999988079071</property>
<property name="z0-color">#0000ffff0000</property>
<property name="z1-border">0.8000000119209289</property>
<property name="z1-color">#ffffffff0000</property>
<property name="z2-color">#ffff00000000</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="HAL_VScale" id="hal_vscale1">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment2</property>
</object>
<packing>
<property name="left-attach">2</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="HAL_Label" id="hal_label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
<property name="label-pin-type">1</property>
<property name="text-template">%.02f</property>
</object>
<packing>
<property name="left-attach">2</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="HAL_Label" id="hal_label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="left-attach">3</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="hal_radiobutton2">
<property name="label" translatable="yes">radiobutton</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
<property name="group">hal_radiobutton1</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="hal_radiobutton1">
<property name="label" translatable="yes">radiobutton</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="HAL_LED" id="hal_led4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="led-blink-rate">0</property>
</object>
<packing>
<property name="left-attach">2</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="HAL_LED" id="hal_led5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="led-blink-rate">500</property>
</object>
<packing>
<property name="left-attach">2</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="HAL_CheckButton" id="hal_checkbutton1">
<property name="label" translatable="yes">checkbutton</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="left-attach">4</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="HAL_HBar" id="hal_hbar1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bg-color">#bebebebebebe</property>
<property name="force-height">20</property>
<property name="max">50</property>
<property name="z0-border">0.699999988079071</property>
<property name="z0-color">#0000ffff0000</property>
<property name="z1-border">0.8500000238418579</property>
<property name="z1-color">#ffffffff0000</property>
<property name="z2-color">#ffff00000000</property>
</object>
<packing>
<property name="left-attach">5</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="HAL_HScale" id="hal_hscale2">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="adjustment">adjustment5</property>
</object>
<packing>
<property name="left-attach">5</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="HAL_Button" id="hal_button1">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_ToggleButton" id="hal_togglebutton1">
<property name="label" translatable="yes">togglebutton</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="HAL_HScale" id="hal_hscale1">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="adjustment">adjustment1</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Scale</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_SpinButton" id="hal_spinbutton2">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="invisible-char">●</property>
<property name="adjustment">adjustment4</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="HAL_ProgressBar" id="hal_progressbar1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="scale">180</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,239 @@
# 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 = 1.1
# Name of machine, for use with display, etc.
MACHINE = LinuxCNC-HAL-SIM-AXIS
# 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
; In this case the glade and handler file are named gscreen so we don't need -c
DISPLAY = gscreen
# 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_SPINDLE_OVERRIDE = 2.0
MIN_SPINDLE_OVERRIDE = .5
MAX_FEED_OVERRIDE = 2.0
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .5
# list of selectable jog increments
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
# set up 3 user popup message dialogs
MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a statusbar test
MESSAGE_TYPE = status
MESSAGE_PINNAME = statustest
MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a yes no dialog test
MESSAGE_TYPE = yesnodialog
MESSAGE_PINNAME = yndialogtest
MESSAGE_BOLDTEXT = This is the short text
MESSAGE_TEXT = This is the longer text of the both type test. It can be longer then the status bar text
MESSAGE_TYPE = okdialog status
MESSAGE_PINNAME = bothtest
# set up 2 embedded gladeVCP panels
#EMBED_TAB_NAME = Embedded 1
#EMBED_TAB_LOCATION = vcp_box
#EMBED_TAB_COMMAND = gladevcp -x {XID} -t Redmond vcp_box.glade
#EMBED_TAB_NAME = Embedded 2
#EMBED_TAB_LOCATION = notebook_mode
#EMBED_TAB_COMMAND = gladevcp -x {XID} -t Redmond gladevcp-test.ui
# Prefix to be used
PROGRAM_PREFIX = ../../nc_files/
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# if you press the 'tooleditor' button then this program will be launched
# leave it commented out if you prefer Gscreens tooleditor.
#TOOL_EDITOR = tooledit
[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 = python3
# Task controller 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
# 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 --------------------------------------------------
[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 --------------------------------------------
[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. Only supported by
# AXIS at this time (only AXIS creates a HAL component of its own)
# POSTGUI_HALFILE = test_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
# Axes sections ---------------------------------------------------------------
# First axis
[EMCIO]
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# Second axis
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,346 @@
# 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 = 1.1
# Name of machine, for use with display, etc.
MACHINE = LinuxCNC-HAL-SIM-GSCREEN
# 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 9_axis
# 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_SPINDLE_OVERRIDE = 2.0
MIN_SPINDLE_OVERRIDE = .5
MAX_FEED_OVERRIDE = 2.0
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .5
DEFAULT_ANGULAR_VELOCITY = 30
# list of selectable jog increments
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
ANGULAR_INCREMENTS = 1,10,15,45,90,180
# This is used by Gscreen to display the machine anglular joints movements properly
GEOMETRY = XYZBCUVW
# 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 = python3
# Task controller section -----------------------------------------------------
[RS274NGC]
# File containing interpreter variables
PARAMETER_FILE = sim-9gscreen.var
# Motion control section ------------------------------------------------------
[EMCMOT]
EMCMOT = motmod unlock_joints_mask=0x10
# Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0
# Servo task period, in nano-seconds
SERVO_PERIOD = 1000000
# Hardware Abstraction Layer 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 --------------------------------------------
[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 = LIB:basic_sim.tcl
HALFILE = locking_indexer.hal
# list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD = save neta
# Single file that is executed after the GUI has started.
#POSTGUI_HALFILE = test_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z A B C U V W
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.0
POSITION_FILE = position9.txt
MAX_LINEAR_VELOCITY = 1.2
# Axes sections ---------------------------------------------------------------
[EMCIO]
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[KINS]
KINEMATICS = trivkins
JOINTS = 9
[AXIS_X]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[AXIS_Y]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
[AXIS_A]
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[JOINT_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
BACKLASH = 0.000
INPUT_SCALE = 40
OUTPUT_SCALE = 1.000
FERROR = 5.0
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[AXIS_B]
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
LOCKING_INDEXER_JOINT = 4
[JOINT_4]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
BACKLASH = 0.000
INPUT_SCALE = 40
OUTPUT_SCALE = 1.000
FERROR = 5.0
MIN_FERROR = 1.0
HOME_OFFSET = 45.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
LOCKING_INDEXER = 1
[AXIS_C]
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[JOINT_5]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
BACKLASH = 0.000
INPUT_SCALE = 40
OUTPUT_SCALE = 1.000
FERROR = 5.0
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[AXIS_U]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_6]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
[AXIS_V]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_7]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
[AXIS_W]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_8]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,35 @@
Gscreen is a customizable operator screen for LinuxCNC.
Built with python, GLADE, and GTK
Usable with touchscreens or a mouse.
These show some custom looks of Gscreen.
9axis.ini
-9 axis screen
gaxis_no_plot.ini
gscreen_gaxis.ini
-A similar-to-AXIS demo
industrial.ini
-Design influenced by
Industrial CNC controls.
(System page unlock code is '123')
tester.ini
-Tester is used to load a GLADE file without
initializing anything beyond the window.
The glade file must be called tester.glade
The toplevel window must be called window1
tester_handler.py is also a template of a
handler file for adding python code for
more sophisticated customizations.
If you run this without adding a GLADE
file to the folder, it will load a default
file with a message.
This is for imperial based machines
tester_metric.ini
This is for metric based machines.
It works/requires all the same as test.ini above.

View File

@@ -0,0 +1,206 @@
# 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 = 1.1
# 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 = python3
# Task controller 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
# 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 --------------------------------------------------
[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 --------------------------------------------
[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 --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
# Axes sections ---------------------------------------------------------------
# First axis
[EMCIO]
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# Second axis
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,12 @@
# unlink hal_manual_toolchange so we can connect to gscreen's
unlinkp iocontrol.0.tool-change
unlinkp iocontrol.0.tool-changed
unlinkp hal_manualtoolchange.change
unlinkp hal_manualtoolchange.changed
unlinkp hal_manualtoolchange.number
net tool-change gscreen.change-tool iocontrol.0.tool-change
net tool-changed gscreen.tool-changed iocontrol.0.tool-changed
net tool-prep-number gscreen.tool-number iocontrol.0.tool-prep-number

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

View File

@@ -0,0 +1,702 @@
# Edited for LinuxCNC (gscreen-indrustrial) by tjamscad and Chris Morley
#
# Buttons
#
style "checkradiobutton" {
engine "pixmap" {
image
{
function = FLAT_BOX
recolorable = TRUE
file = "blank.png"
border = { 0,0,0,0 }
stretch = TRUE
}
image
{
function = CHECK
recolorable = TRUE
shadow = OUT
overlay_file = "check1.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
recolorable = TRUE
shadow = IN
overlay_file = "check2.png"
overlay_stretch = FALSE
}
image
{
function = OPTION
recolorable = TRUE
shadow = OUT
overlay_file = "radio1.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
}
image
{
function = OPTION
recolorable = TRUE
shadow = IN
overlay_file = "radio2.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
}
}
}
class "GtkRadioButton" style "checkradiobutton"
class "GtkCheckButton" style "checkradiobutton"
style "button"
{
engine "pixmap"
{
image
{
function = BOX
recolorable = TRUE
state = NORMAL
shadow = IN
file = "default.png"
border = { 7,7,7,7 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = INSENSITIVE
file = "button3.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = PRELIGHT
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = ACTIVE
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
shadow = IN
state = SELECTED
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
file = "button1.png"
border = { 6,6,6,6 }
stretch = TRUE
}
}
}
class "GtkButton" style "button"
# modified estop button colors
# The button must be named properly for this to work
style "estop button fix"
{
engine "pixmap"
{
image
{
function = BOX
recolorable = TRUE
state = NORMAL
shadow = IN
file = "button3.png"
border = { 7,7,7,7 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = INSENSITIVE
file = "button3.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = PRELIGHT
file = "yellow_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = ACTIVE
file = "red_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
shadow = IN
state = SELECTED
file = "red_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
file = "green_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
}
}
widget "*.*.button_estop" style "estop button fix"
# modified power button colors
# The button must be named properly for this to work
style "control_on button fix"
{
engine "pixmap"
{
image
{
function = BOX
recolorable = TRUE
state = NORMAL
shadow = IN
file = "button3.png"
border = { 7,7,7,7 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = INSENSITIVE
file = "button3.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = PRELIGHT
file = "yellow_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = ACTIVE
file = "green_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
shadow = IN
state = SELECTED
file = "green_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
shadow = OUT
state = SELECTED
file = "red_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
file = "red_button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
}
}
widget "*.button_machine_on" style "control_on button fix"
style "notebook"
{
engine "pixmap"
{
image
{
function = EXTENSION
recolorable = TRUE
state = ACTIVE
file = "button1.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = EXTENSION
recolorable = TRUE
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX_GAP
recolorable = TRUE
file = "up.png"
border = { 2,2,2,2 }
stretch = TRUE
gap_file = "blank.png"
gap_border = { 0, 0, 0, 0 }
gap_start_file = "blank.png"
gap_start_border= { 0, 0, 0, 0 }
gap_end_file = "blank.png"
gap_end_border = { 0, 0, 0, 0 }
}
}
}
class "GtkNotebook" style "notebook"
style "menuitem"
{
engine "pixmap" {
image
{
function = BOX
recolorable = TRUE
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
}
}
class "GtkMenuItem" style "menuitem"
style "optionmenu"
{
engine "pixmap" {
image
{
function = BOX
recolorable = TRUE
state = INSENSITIVE
file = "obutton2.png"
border = { 6,20,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
file = "obutton1.png"
border = { 6,20,6,6 }
stretch = TRUE
}
image
{
state = INSENSITIVE
function = TAB
recolorable = TRUE
overlay_file = "option2.png"
overlay_stretch = FALSE
}
image
{
function = TAB
recolorable = TRUE
overlay_file = "option1.png"
overlay_stretch = FALSE
}
}
}
class "GtkOptionMenu" style "optionmenu"
style "scrollbar"
{
engine "pixmap"
{
image
{
function = BOX
recolorable = TRUE
detail = "trough"
file = "trough.png"
border = { 7,7,7,7 }
stretch = TRUE
}
image
{
function = SLIDER
recolorable = TRUE
state = INSENSITIVE
file = "button4.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = SLIDER
recolorable = TRUE
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = INSENSITIVE
file = "button3.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = PRELIGHT
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
shadow = IN
file = "button2.png"
border = { 6,6,6,6 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
file = "button1.png"
border = { 6,6,6,6 }
stretch = TRUE
}
}
}
class "GtkScrollbar" style "scrollbar"
class "GtkRange" style "scrollbar"
class "GtkProgressBar" style "scrollbar"
style "spin"
{
xthickness = 20
ythickness = 20
engine "pixmap"
{
image
{
function = BOX
recolorable = TRUE
state = PRELIGHT
file = "spin2.png"
border = { 4,5,4,5 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
shadow = IN
file = "spin2.png"
border = { 4,5,4,5 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
state = INSENSITIVE
file = "spin3.png"
border = { 4,5,4,5 }
stretch = TRUE
}
image
{
function = BOX
recolorable = TRUE
file = "spin1.png"
border = { 4,5,4,5 }
stretch = TRUE
}
}
}
class "GtkSpin*" style "spin"
style "default"
{
GtkRange::slider_width = 50
GtkScrollbar::min_slider_length = 50
font = "-*-helvetica-medium-r-normal--*-120-*-*-*-*-*-*"
fg[SELECTED] = "#ff0000" #not used
fg[SELECTED] = "#ff0000" #not used
fg[ACTIVE] = "#000000" #Selected button text
fg[PRELIGHT] = "#000000" #Highlighted button text
fg[INSENSITIVE] = "#d7d7d7" #Not selectable button text
bg[NORMAL] = "#d7d7d7" #Background
bg[SELECTED] = "#ff0000" #not used
bg[ACTIVE] = "#ff0000" #not used
bg[PRELIGHT] = "#000000" #Themes, warning audio,alert audio |(pipe) highlight
bg[INSENSITIVE] = "#999999" #program gcode line number, themes scroll not selectable
base[NORMAL] = "#ffffff" #MDI-command,tool edit, offset, grid size starting rpm
base[SELECTED] = "#aab6ff" #This is for MDI-command, tooledit and offset edit it will highlight the selected
base[ACTIVE] = "#d7d7d7" #This is for MDI-command, tooledit and offset edit it will highlight the last line that was selected
base[PRELIGHT] = "#ff0000" #not used
base[INSENSITIVE] = "#d7d7d7" #gcode number line background
text[NORMAL] = "#000000" #This is for MDI-command, tooledit, offset edit, grid size, starting rpm and themes normal text color
text[SELECTED] = "#000000" #This is for MDI-command, tooledit and offset edit it will change the selected text color
text[ACTIVE] = "#000000" #This is for MDI-command, tooledit and offset edit it will highlight the last line text that was selected
text[PRELIGHT] = "#000000" #This is for initial theme text highlight before selecting
text[INSENSITIVE] = "#ff0000" #not used
engine "pixmap"
{
image
{
function = FOCUS
recolorable = TRUE
overlay_file = "blank.png"
overlay_border = { 0,0,0,0 }
overlay_stretch = TRUE
}
image
{
function = ARROW
recolorable = TRUE
state = NORMAL
file = "arrow_up1.png"
stretch = TRUE
arrow_direction = UP
}
image
{
function = ARROW
recolorable = TRUE
state = PRELIGHT
file = "arrow_up1.png"
stretch = TRUE
arrow_direction = UP
}
image
{
function = ARROW
recolorable = TRUE
shadow = IN
file = "arrow_up1.png"
stretch = TRUE
arrow_direction = UP
}
image
{
function = ARROW
recolorable = TRUE
state = INSENSITIVE
file = "arrow_up2.png"
stretch = TRUE
arrow_direction = UP
}
image
{
function = ARROW
recolorable = TRUE
state = NORMAL
file = "arrow_down1.png"
stretch = TRUE
arrow_direction = DOWN
}
image
{
function = ARROW
recolorable = TRUE
state = PRELIGHT
file = "arrow_down1.png"
stretch = TRUE
arrow_direction = DOWN
}
image
{
function = ARROW
recolorable = TRUE
shadow = IN
file = "arrow_down1.png"
stretch = TRUE
arrow_direction = DOWN
}
image
{
function = ARROW
recolorable = TRUE
state = INSENSITIVE
file = "arrow_down2.png"
stretch = TRUE
arrow_direction = DOWN
}
image
{
function = ARROW
recolorable = TRUE
state = NORMAL
file = "arrow_left1.png"
stretch = TRUE
arrow_direction = LEFT
}
image
{
function = ARROW
recolorable = TRUE
state = PRELIGHT
file = "arrow_left1.png"
stretch = TRUE
arrow_direction = LEFT
}
image
{
function = ARROW
recolorable = TRUE
shadow = IN
file = "arrow_left1.png"
stretch = TRUE
arrow_direction = LEFT
}
image
{
function = ARROW
recolorable = TRUE
state = INSENSITIVE
file = "arrow_left2.png"
stretch = TRUE
arrow_direction = LEFT
}
image
{
function = ARROW
recolorable = TRUE
state = NORMAL
file = "arrow_right1.png"
stretch = TRUE
arrow_direction = RIGHT
}
image
{
function = ARROW
recolorable = TRUE
state = PRELIGHT
file = "arrow_right1.png"
stretch = TRUE
arrow_direction = RIGHT
}
image
{
function = ARROW
recolorable = TRUE
shadow = IN
file = "arrow_right1.png"
stretch = TRUE
arrow_direction = RIGHT
}
image
{
function = ARROW
recolorable = TRUE
state = INSENSITIVE
file = "arrow_right2.png"
stretch = TRUE
arrow_direction = RIGHT
}
image
{
function = SHADOW
recolorable = TRUE
shadow = OUT
file = "up.png"
border = { 2,2,2,2 }
stretch = TRUE
}
image
{
function = SHADOW
recolorable = TRUE
shadow = IN
file = "in.png"
border = { 2,2,2,2 }
stretch = TRUE
}
}
}
# common default
class "GtkWidget" style "default"

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 811 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

View File

@@ -0,0 +1,206 @@
# 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 = 1.1
# Name of machine, for use with display, etc.
MACHINE = Linuxcnc-Gscreen_gaxis
# 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 -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 = python3
# Task controller 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
# 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 --------------------------------------------------
[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 --------------------------------------------
[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 --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
# Axes sections ---------------------------------------------------------------
# First axis
[EMCIO]
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# Second axis
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,208 @@
# 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 = 1.1
# Name of machine, for use with display, etc.
MACHINE = Linuxcnc-Gscreen_gaxis
# 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 industrial -d
# 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 = 1.2
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
# list of selectable jog increments
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
# 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 = python3
# Task controller 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
# 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 --------------------------------------------------
[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 --------------------------------------------
[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 = industrial_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
# Axes sections ---------------------------------------------------------------
# First axis
[EMCIO]
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# Second axis
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,13 @@
net spindle-speed-limited gscreen.spindle-readout-in
net spindle-at-speed gscreen.spindle-at-speed
# unlink hal_manual_toolchange so we can connect to gscreen's
unlinkp iocontrol.0.tool-change
unlinkp iocontrol.0.tool-changed
unlinkp hal_manualtoolchange.change
unlinkp hal_manualtoolchange.changed
unlinkp hal_manualtoolchange.number
net tool-change gscreen.change-tool iocontrol.0.tool-change
net tool-changed gscreen.tool-changed iocontrol.0.tool-changed
net tool-prep-number gscreen.tool-number iocontrol.0.tool-prep-number

View File

@@ -0,0 +1 @@
../../sim.tbl

View File

@@ -0,0 +1,197 @@
# 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 = 1.1
# Name of machine, for use with display, etc.
MACHINE = Linuxcnc-Gscreen_gaxis
# 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 tester -d
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# 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 = python3
# Task controller 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
# 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 --------------------------------------------------
[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 --------------------------------------------
[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 = tester_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
# Axes sections ---------------------------------------------------------------
# First axis
[EMCIO]
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# Second axis
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,210 @@
# 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 = 1.1
# Name of machine, for use with display, etc.
MACHINE = LinuxCNC-HAL-SIM-AXIS
# 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
; In this case the glade and handler file are named gscreen so we don't need -c
DISPLAY = gscreen -c tester -d
# 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_SPINDLE_OVERRIDE = 2.0
MIN_SPINDLE_OVERRIDE = .5
MAX_FEED_OVERRIDE = 2.0
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 20
DEFAULT_LINEAR_VELOCITY = 8
# list of selectable jog increments
INCREMENTS = .01mm, .1mm, 1mm, 10mm
# 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 = python3
# Task controller section -----------------------------------------------------
[RS274NGC]
# File containing interpreter variables
PARAMETER_FILE = sim_mm.var
# Motion control section ------------------------------------------------------
[EMCMOT]
EMCMOT = motmod
# Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0
# 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 --------------------------------------------------
[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 --------------------------------------------
[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
#HALCMD = save neta
# Single file that is executed after the GUI has started.
POSTGUI_HALFILE = tester_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 15
MAX_LINEAR_VELOCITY = 30
DEFAULT_LINEAR_ACCELERATION = 508
MAX_LINEAR_ACCELERATION = 508
POSITION_FILE = position_mm.txt
# Axes sections ---------------------------------------------------------------
# First axis
[EMCIO]
# tool table file
TOOL_TABLE = sim_mm.tbl
TOOL_CHANGE_POSITION = 0 0 50.8
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -254
MAX_LIMIT = 254
MAX_VELOCITY = 250
MAX_ACCELERATION = 508
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -1016
MAX_LIMIT = 1016
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -1016
MAX_LIMIT = 1016
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -1016
MAX_LIMIT = 1016
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
# Third axis
[AXIS_Z]
MIN_LIMIT = -50.8
MAX_LIMIT = 101.6
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -254
MAX_LIMIT = 254
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 25.4
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,96 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-HAL-SIM-AXIS
DEBUG = 0
[DISPLAY]
DISPLAY = gscreen
LATHE = 1
OPEN_FILE = ""
CYCLE_TIME = 0.100
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[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 = python3
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
POSTGUI_HALFILE = lathe_postgui.hal
[TRAJ]
COORDINATES = X Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
[EMCIO]
TOOL_TABLE = lathe.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xz
JOINTS = 2
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[AXIS_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0

View File

@@ -0,0 +1,211 @@
# 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 = 1.1
# Name of machine, for use with display, etc.
MACHINE = LinuxCNC-HAL-SIM-AXIS
# 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
; In this case the glade and handler file are named gscreen so we don't need -c
DISPLAY = gscreen
# 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_SPINDLE_OVERRIDE = 2.0
MIN_SPINDLE_OVERRIDE = .5
MAX_FEED_OVERRIDE = 2.0
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 20
DEFAULT_LINEAR_VELOCITY = 8
# list of selectable jog increments
INCREMENTS = .01mm, .1mm, 1mm, 10mm
# 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 = python3
# Task controller section -----------------------------------------------------
[RS274NGC]
# File containing interpreter variables
PARAMETER_FILE = sim_mm.var
# Motion control section ------------------------------------------------------
[EMCMOT]
EMCMOT = motmod
# Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0
# 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 --------------------------------------------------
[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 --------------------------------------------
[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
#HALCMD = save neta
# Single file that is executed after the GUI has started. Only supported by
# AXIS at this time (only AXIS creates a HAL component of its own)
#POSTGUI_HALFILE = test_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 15
MAX_LINEAR_VELOCITY = 30
DEFAULT_LINEAR_ACCELERATION = 508
MAX_LINEAR_ACCELERATION = 508
POSITION_FILE = position_mm.txt
# Axes sections ---------------------------------------------------------------
# First axis
[EMCIO]
# tool table file
TOOL_TABLE = sim_mm.tbl
TOOL_CHANGE_POSITION = 0 0 50.8
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -254
MAX_LIMIT = 254
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -254
MAX_LIMIT = 254
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -254
MAX_LIMIT = 254
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -254
MAX_LIMIT = 254
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
# Third axis
[AXIS_Z]
MIN_LIMIT = -50.8
MAX_LIMIT = 101.6
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -50.8
MAX_LIMIT = 101.6
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 25.4
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
# section for main IO controller parameters -----------------------------------

View File

@@ -0,0 +1,34 @@
.background {
color: #ffffff;
background-color: #232323;
}
*:active {
color: #dadada;
background-color: #151515;
}
*:disabled {
color: #151515;
background-color: #303030;
}
*:hover {
color: #fcfcfc;
background-color: #003263;
}
*:checked {
color: #fcfcfc;
background-color: #002849;
}
button, notebook tab label {
border: 1px solid #808080;
margin:1px;
}
*button:active {
color: #dadada;
background-color: #151515;
}

View File

@@ -0,0 +1,197 @@
***********************************
old Gtk2 styling
kept for obtaining original styling
***********************************
style "default"
{
GtkButton::default_border = {0, 0, 0, 0}
GtkButton::default_outside_border = {0, 0, 0, 0}
GtkButton::child_displacement_x = 0
GtkButton::child_displacement_y = 1
GtkButton::default_spacing = 4
GtkButton::focus-padding = 0
GtkCheckButton::indicator_size = 8
GtkMenuBar::internal-padding = 1
GtkMenuBar::shadow_type = out
GtkHandleBox::shadow_type = out
GtkMenuItem::selected_shadow_type = etched-in
GtkPaned::handle_full_size = 1
GtkPaned::handle_size = 4
GtkRadioButton::indicator_size = 10
GtkRange::slider_width = 12
GtkRange::stepper_size = 10
GtkRange::stepper_spacing = 0
GtkRange::trough_border = 0
GtkScrollbar::has_backward_stepper = 1
GtkScrollbar::has_secondary_backward_stepper = 0
GtkScrollbar::min_slider_length = 10
GtkToolbar::shadow_type = out
GtkWidget::focus-line-width = 1
GtkWidget::focus_padding = 1
GtkWidget::interior_focus = 1
GtkWidget::internal_padding = 2
GtkEntry::cursor_color = "#fcfcfc"
GtkEntry::secondary_cursor_color = "#fcfcfc"
GtkTextView::cursor_color = "#fcfcfc"
GtkTextView::secondary_cursor_color = "#fcfcfc"
GtkEntry::cursor_aspect_ratio = 0.1
GtkEntry::cursor_aspect_ratio = 0.1
xthickness = 1
ythickness = 1
base[ACTIVE] = "#2f519a"
base[INSENSITIVE] = "#303030"
base[NORMAL] = "#121212"
base[PRELIGHT] = "#002849"
base[SELECTED] = "#003263"
bg[ACTIVE] = "#151515"
bg[INSENSITIVE] = "#303030"
bg[NORMAL] = "#232323"
bg[PRELIGHT] = "#003263"
bg[SELECTED] = "#002849"
fg[ACTIVE] = "#dadada"
fg[INSENSITIVE] = "#151515"
fg[NORMAL] = "#ffffff"
fg[PRELIGHT] = "#fcfcfc"
fg[SELECTED] = "#fcfcfc"
text[ACTIVE] = "#fcfcfc"
text[INSENSITIVE] = "#fcfcfc"
text[NORMAL] = "#fcfcfc"
text[PRELIGHT] = "#fcfcfc"
text[SELECTED] = "#fcfcfc"
}
widget_class "*" style "default"
style "menustyle" = "default"
{
xthickness = 2
ythickness = 2
}
widget_class "*BonoboDockItem" style "menustyle"
class "*BonoboDockItem" style "menustyle"
widget_class "*ToolBar" style "menustyle"
class "*ToolBar" style "menustyle"
widget_class "*MenuBar" style "menustyle"
class "*MenuBar" style "menustyle"
style "button" = "default"
{
xthickness = 2
ythickness = 2
engine "xfce"
{
smooth_edge = true
grip_style = none
boxfill
{
fill_style = gradient
orientation = vertical
shade_start = 1.25
shade_end = 1.00
}
}
}
widget_class "*Button*" style "button"
class "*Button*" style "button"
widget_class "*button*" style "button"
class "*button*" style "button"
widget_class "*OptionMenu*" style "button"
class "*OptionMenu*" style "button"
# widget_class "*Tree*" style "button"
# class "*Tree*" style "button"
# widget_class "*GtkScale*" style "button"
# class "*GtkScale*" style "button"
style "sbstyle" = "default"
{
xthickness = 2
ythickness = 2
engine "xfce"
{
smooth_edge = true
grip_style = none
boxfill
{
fill_style = gradient
orientation = automatic
shade_start = 1.25
shade_end = 1.00
}
}
}
widget_class "*Scrollbar*" style "sbstyle"
class "*Scrollbar*" style "sbstyle"
widget_class "*GtkScale*" style "sbstyle"
class "*GtkScale*" style "sbstyle"
style "progress" = "default"
{
xthickness = 2
ythickness = 2
}
widget_class "*GtkProgress*" style "progress"
class "*GtkProgress*" style "progress"
style "menuitem" = "default"
{
xthickness = 1
ythickness = 2
}
widget_class "*MenuItem*" style "menuitem"
class "*MenuItem*" style "menuitem"
style "flat" = "default"
{
xthickness = 2
ythickness = 2
}
widget_class "*HandleBox" style "flat"
# This is for the window borders (xfwm4 & metacity)
#
style "titlebar"
{
bg[SELECTED] = "#003263"
fg[SELECTED] = "#ffffff"
bg[INSENSITIVE] = "#002849"
fg[INSENSITIVE] = "#9a9ada"
}
widget "xfwm" style "titlebar"
class "MetaFrames" style "titlebar"
widget_class "MetaFrames" style "titlebar"
# These custom themed widget require the widget name
# to match in the glade file
style "halsourceview" = "default"
{
base[SELECTED] = "#FFFFFF" # highlight color
text[NORMAL] = "#000000" # normal gcode text
base[INSENSITIVE] = "#d7d7d7" # gcode background 'insensitive'
base[NORMAL] = "#d7d7d7" # gcode background 'sensitive'
bg[INSENSITIVE] = "#999999" # gcode line number background 'insensitive'
bg[NORMAL] = "#999999" # gcode line number background 'sensitive'
}
widget "*.*.gcode_view" style "halsourceview"
style "tooledit" = "default"
{
base[NORMAL] = "#d7d7d7" # background color
bg[NORMAL] = "#d7d7d7" # header color
text[NORMAL] = "#000000" # text
fg[NORMAL] = "#ffffff" # header text
}
widget "*.tooledit1*" style "tooledit"
widget "*.tooledit1*.GtkButton" style "default"
widget "*.offsetpage1*" style "tooledit"
widget "*.offsetpage1*.GtkButton" style "default"

View File

@@ -0,0 +1,3 @@
This is Gscreen's industrial screen combined with a remap to add lathe wear offsets and change tools without m6
t101 gives tool 1 with offset 1. Offset 1 is in the toolfile as tool 10001.
t201 gives tool 2 with offset 1. Offset 1 is in the toolfile as tool 10001.

View File

@@ -0,0 +1,110 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-HAL-SIM-AXIS
DEBUG = 0
[DISPLAY]
DISPLAY = gscreen -c industrial
LATHE = 1
OPEN_FILE = ""
CYCLE_TIME = 0.100
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[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 = python3
[RS274NGC]
SUBROUTINE_PATH = ./:../
REMAP = T prolog=get_T_number ngc=toolchange
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
POSTGUI_HALFILE = lathe_postgui.hal
[TRAJ]
COORDINATES = X Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
[EMCIO]
TOOL_TABLE = lathe-fanucy.tbl
TOOL_CHANGE_WITH_SPINDLE_ON = 1
[PYTHON]
# where to find Python code
# code specific for this configuration
PATH_PREPEND= ./
# generic support code
PATH_APPEND= ../../nc_files/remap_lib/python-stdglue/
# import the following Python module
TOPLEVEL= toplevel.py
# the higher the more verbose tracing of the Python plugin
LOG_LEVEL = 0
[KINS]
KINEMATICS = trivkins coordinates=xz
JOINTS = 2
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[AXIS_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0

View File

@@ -0,0 +1,10 @@
T1 P11 X0.1 Z0.1 D0.1 I95.000000 J155.000000 Q1
T2 P22 X0.2 Z0.2 D0.1 I85.000000 J25.000000 Q2
T10001 P3 X0.001 Z0.001 D0.1 I275.000000 J335.000000 Q3
T10002 P4 X0.002 Z0.002 D0.1 I265.000000 J205.000000 Q4
T5 P5 D0.1 I210.000000 J150.000000 Q5
T6 P6 X0.5 Z0.5 D0.1 I120.000000 J60.000000 Q6
T7 P7 D0.1 I-30.000000 J30.000000 Q7
T8 P8 D0.1 I240.000000 J300.000000 Q8
T9 P9 D0.1 Q9
T10 P10 D0 ;demo zero diameter

View File

@@ -0,0 +1,3 @@
net spindle-speed-limited gscreen.spindle-readout-in
net spindle-at-speed gscreen.spindle-at-speed

View File

@@ -0,0 +1,33 @@
# This is a component of LinuxCNC
# Copyright 2014 Andy Pugh <andy@bodgesoc.org>, Chris Radek
# <chris@timeguy.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
from stdglue import *
# Extract the T number into a parameter, but don't try anything else clever
def get_T_number(self,**words):
try:
cblock = self.blocks[self.remap_level]
if not cblock.t_flag:
self.set_errormsg("T requires a tool number")
return INTERP_ERROR
self.params["tool"] = cblock.t_number
return INTERP_OK
except Exception as e:
self.set_errormsg("T%d/prepare_prolog: %s" % (int(words['t']), e))
return INTERP_ERROR

View File

@@ -0,0 +1,16 @@
O<toolchange> sub
(debug, Tool requested = #<tool>)
O100 IF [#<tool> LT 100]
#<tool> = [#<tool> * 100]
O100 ENDIF
#<toolnum> = [FIX[ #<tool> / 100]]
#<wear> = [10000 + #<tool> MOD 100]
M6 T#<toolnum>
G43 H#<toolnum>
O101 IF [#<wear> GT 10000]
(debug, wear applied)
G43.2 H#<wear>
O101 ENDIF
#<pocket> = #<toolnum>
(debug, tool = #<toolnum> wear = #<wear>)
O<toolchange> endsub [0]

View File

@@ -0,0 +1,21 @@
# This is a component of LinuxCNC
# Copyright 2011, 2014 Andy Pugh <andy@bodgesoc.org>, Michael Haberler
# <git@mah.priv.at>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
import remap

View File

@@ -0,0 +1 @@
../lathe.tbl

View File

@@ -0,0 +1,3 @@
net spindle-speed-limited gscreen.spindle-readout-in
net spindle-at-speed gscreen.spindle-at-speed

View File

@@ -0,0 +1,6 @@
Examples showing gladevcp apps:
pyngcgui tab in gscreen gui
gremlin_view tab in gscreen gui

View File

@@ -0,0 +1 @@
../../gremlin_view.ui

View File

@@ -0,0 +1 @@
../../pyngcgui.ui

View File

@@ -0,0 +1,187 @@
[EMC]
VERSION = 1.1
MACHINE = pyngcgui-gscreen demo
DEBUG = 0
[DISPLAY]
DISPLAY = gscreen
EMBED_TAB_NAME = Pyngcgui
EMBED_TAB_LOCATION = notebook_main
EMBED_TAB_COMMAND = gladevcp -x {XID} pyngcgui.ui
EMBED_TAB_NAME = Gremlinview
EMBED_TAB_LOCATION = notebook_main
EMBED_TAB_COMMAND = gladevcp -x {XID} gremlin_view.ui
#NGCGUI_OPTIONS = opt1 opt2 ...
# opt items:
# nonew -- disallow making new tab page
# noremove -- disallow removing any tab page
# noauto -- no autosend (makeFile, then manually send)
# noiframe -- no internal image, image on separate toplevel
# nom2 -- no m2 terminator (use %)
NGCGUI_PREAMBLE = in_std.ngc
NGCGUI_SUBFILE = simp.ngc
NGCGUI_SUBFILE = db25.ngc
NGCGUI_SUBFILE = gosper.ngc
NGCGUI_SUBFILE = xyz.ngc
NGCGUI_SUBFILE = ihex.ngc
NGCGUI_SUBFILE = slot.ngc
NGCGUI_SUBFILE = arc2.ngc
NGCGUI_SUBFILE = iquad.ngc
NGCGUI_SUBFILE = qpocket.ngc
NGCGUI_SUBFILE = ""
CYCLE_TIME = 300
MAX_SPINDLE_OVERRIDE = 2.0
MIN_SPINDLE_OVERRIDE = .5
MAX_FEED_OVERRIDE = 2.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .5
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
# set up 3 user popup message dialogs
MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a statusbar test
MESSAGE_TYPE = status
MESSAGE_PINNAME = statustest
MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a yes no dialog test
MESSAGE_TYPE = yesnodialog
MESSAGE_PINNAME = yndialogtest
MESSAGE_BOLDTEXT = This is the short text
MESSAGE_TEXT = This is the longer text of the both type test. It can be longer then the status bar text
MESSAGE_TYPE = okdialog status
MESSAGE_PINNAME = bothtest
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
TOOL_EDITOR = tooledit
[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 = python3
[RS274NGC]
SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
[EMCIO]
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
[AXIS_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 10.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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 = 10.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

View File

@@ -0,0 +1,5 @@
Demonstrates gladevcp apps in gscreen tabs:
pyngcgui ------ subroutine utility
gremlin_view -- gremlin with some buttons

View File

@@ -0,0 +1,5 @@
Demuestra aplicaciones gladevcp en pestañas de gscreen:
pyngcgui ------ utilidad de subrutina
gremlin_view -- gremlin con algunos botones

View File

@@ -0,0 +1,184 @@
[EMC]
VERSION = 1.1
MACHINE = pyngcgui-gscreen demo (popupkeyboard)
DEBUG = 0
[DISPLAY]
DISPLAY = gscreen
EMBED_TAB_NAME = Pyngcgui
EMBED_TAB_LOCATION = notebook_main
EMBED_TAB_COMMAND = gladevcp -x {XID} pyngcgui_popupkeyboard.ui
EMBED_TAB_NAME = Gremlinview
EMBED_TAB_LOCATION = notebook_main
EMBED_TAB_COMMAND = gladevcp -x {XID} gremlin_view.ui
#NGCGUI_OPTIONS = opt1 opt2 ...
# opt items:
# nonew -- disallow making new tab page
# noremove -- disallow removing any tab page
# noauto -- no autosend (makeFile, then manually send)
# noiframe -- no internal image, image on separate toplevel
# nom2 -- no m2 terminator (use %)
NGCGUI_PREAMBLE = in_std.ngc
NGCGUI_SUBFILE = simp.ngc
NGCGUI_SUBFILE = db25.ngc
NGCGUI_SUBFILE = gosper.ngc
NGCGUI_SUBFILE = xyz.ngc
NGCGUI_SUBFILE = ihex.ngc
NGCGUI_SUBFILE = slot.ngc
NGCGUI_SUBFILE = arc2.ngc
NGCGUI_SUBFILE = iquad.ngc
NGCGUI_SUBFILE = qpocket.ngc
NGCGUI_SUBFILE = ""
CYCLE_TIME = 300
MAX_SPINDLE_OVERRIDE = 2.0
MIN_SPINDLE_OVERRIDE = .5
MAX_FEED_OVERRIDE = 2.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .5
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
# set up 3 user popup message dialogs
MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a statusbar test
MESSAGE_TYPE = status
MESSAGE_PINNAME = statustest
MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a yes no dialog test
MESSAGE_TYPE = yesnodialog
MESSAGE_PINNAME = yndialogtest
MESSAGE_BOLDTEXT = This is the short text
MESSAGE_TEXT = This is the longer text of the both type test. It can be longer then the status bar text
MESSAGE_TYPE = okdialog status
MESSAGE_PINNAME = bothtest
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
TOOL_EDITOR = tooledit
[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 = python3
[RS274NGC]
SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 2.4
POSITION_FILE = position.txt
[EMCIO]
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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
[AXIS_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 10.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_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 = 10.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

View File

@@ -0,0 +1,6 @@
Demonstrates gladevcp apps in gscreen tabs:
pyngcgui ------ subroutine utility
gremlin_view -- gremlin with some buttons
with a popupkeyboard for touchscreen use

View File

@@ -0,0 +1,6 @@
Demuestra aplicaciones gladevcp en pestañas de gscreen:
pyngcgui ------ utilidad de subrutina
gremlin_view -- gremlin con algunos botones
con un teclado emergente para usar con pantalla táctil

View File

@@ -0,0 +1 @@
../../pyngcgui_popupkeyboard.ui

View File

@@ -0,0 +1 @@
../../sim.tbl

View File

@@ -0,0 +1,6 @@
This is a gscreen based operator screen for router/mills.
This was designed by a user, Jim (persei8 on the forum) for his personal router and given back to
the linuxcnc project.
This is a simulated machine example - some adaption of files will be required.

View File

@@ -0,0 +1,55 @@
o<auto_zref> sub
o100 if [#<_task> EQ 0]
(debug, Task is Null)
o100 return [999]
o100 endif
o200 if [#<selected_tool> EQ 0]
o200 return [1]
o200 endif
M6 (use builtin behaviour)
o300 if [#<_hal[gscreen.use_autozref]> EQ 0]
o300 return [1]
o300 endif
o400 if [#<_hal[gscreen.search_vel]> LE 0]
o400 return [-1] ; indicate search_vel <= 0
o400 endif
o500 if [#<_hal[gscreen.probe_vel]> LE 0]
o500 return [-2] ; indicate probe_vel <= 0
o500 endif
G21 (use metric units)
G49 (cancel tool offset)
G10 L2 P0 Z0 (clear current offsets)
(go to tool sensor location)
G53 G0 X[#<_ini[TOOLSENSOR]X>] Y[#<_ini[TOOLSENSOR]Y>]
G53 G0 Z[#<_ini[TOOLSENSOR]Z>]
(switch to incremental mode)
G91
(this section commented out for sim)
;G38.2 Z#<_ini[TOOLSENSOR]MAXPROBE> F#<_hal[gscreen.search_vel]>
;G0 Z4 (move up 4)
;G38.2 Z-4.1 F#<_hal[gscreen.probe_vel]>
;o600 if [#5070 EQ 0]
; G90
;o600 return [-3] ; indicate probe contact failure to epilog
;o600 endif
(this section is used for sim)
G0 Z#<_ini[TOOLSENSOR]MAXPROBE> F#<_hal[gscreen.search_vel]>
(pretend that probe contact has been made)
G10 L20 P0 Z[#<_hal[gscreen.sensor_height]> - #<_hal[gscreen.block_height]>]
G90
G53 G0 Z#<_ini[CHANGE_POSITION]Z>
(signal success by returning a value > 0:)
o<auto_zref> endsub [1]
M2

View File

@@ -0,0 +1,8 @@
O<laserzero> sub
#1 = 3.12 (x offset)
#2 = 1.0 (y offset)
G10 L20 P0 x#1 y#2 (store offset in offset table)
G90 G1 X0 Y0 F600 (go to 0,0)
O<laserzero> endsub
M2

View File

@@ -0,0 +1,20 @@
o<tool_sensor> sub
G21 (use metric units)
G49 (cancel tool offset)
G10 L20 P0 Z0 (clear current offsets)
G91 (switch to incremental mode)
; this section commented out for sim
;G38.2 Z[#<_hal[gscreen.maxprobe]>] F[#<_hal[gscreen.search_vel]>] (probe down)
;G1 Z4.0 (move up 4 mm)
;G4 P0.5 (pause for 0.5 sec.)
;G38.2 Z-6.0 F[#<_hal[gscreen.probe_vel]>] (probe down slower)
; this section used for sim, comment out otherwise
G1 Z-10 F[#<_hal[gscreen.search_vel]>]
G10 L20 P0 Z[#<_hal[gscreen.sensor_height]> - #<_hal[gscreen.block_height]>]
G90 (absolute distance mode)
G53 G0 Z0 (move Z up to 0)
o<tool_sensor> endsub
M2

View File

@@ -0,0 +1,21 @@
o<touch_plate> sub
#1 = 28.6 (plate thickness)
G21 (use metric units)
G49 (cancel tool offset)
G10 L20 P0 Z0 (clear current offsets)
G91 (switch to incremental mode)
; this section commented out for sim
;G38.2 Z-10 F[#<_hal[gscreen.search_vel]>] (probe down)
;G1 Z1.0 (go up 1 mm)
;G4 P0.5 (pause 0.5 sec.)
;G38.2 Z-1.2 F[#<_hal[gscreen.probe_vel]>] (probe down slower)
; this section used for sim, comment out otherwise
G1 Z-10 F[#<_hal[gscreen.search_vel]>]
G10 L20 P0 Z#1 (store offset in offset table)
G90 (absolute distance mode)
G53 G0 Z0 (move Z up to 0)
o<touch_plate> endsub
M2

View File

@@ -0,0 +1,202 @@
# 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 = 1.1
MACHINE = silverdragon
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gscreen -c silverdragon
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
#PREFERENCE_FILE_PATH = /home/jim/linuxcnc/configs/sim.gscreen.gscreen_custom/silverdragon.pref
# Values that will be allowed for override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
DEFAULT_SPINDLE_SPEED = 24000
DEFAULT_LINEAR_VELOCITY = 4000
MAX_LINEAR_VELOCITY = 5000
# USER MESSAGES
MESSAGE_BOLDTEXT = Attention!
MESSAGE_TEXT = Is the router ON and workpiece ZERO set?
MESSAGE_TYPE = yesnodialog
MESSAGE_PINNAME = router_on
# Prefix to be used
PROGRAM_PREFIX = /home/jim/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 2
# list of selectable jog increments
INCREMENTS = 10.000 mm, 1.000 mm, 0.100 mm, 0.010 mm , 1.0 in, 0.1 in, 0.01 in, 0.001 in
# for details see nc_files/subroutines/maco_instructions.txt
[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 = python3
# Task controller section -----------------------------------------------------
[RS274NGC]
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = macros
ON_ABORT_COMMAND=O <on_abort> call
FEATURES=12
#REMAP = M6 modalgroup=6 prolog=change_prolog ngc=auto_zref epilog=change_epilog
# Motion control section ------------------------------------------------------
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000
# Hardware Abstraction Layer section --------------------------------------------------
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
# Part program interpreter section --------------------------------------------
[HAL]
HALFILE = core_sim.hal
#HALFILE = spindle_sim.hal
HALFILE = simulated_home.hal
# Single file that is executed after the GUI has started.
#POSTGUI_HALFILE = silverdragon_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TOOLSENSOR]
X = 10.0
Y = 10.0
Z = -80.0
MAXPROBE = -10
SENSOR_HEIGHT = 25.0
SEARCH_VEL = 60
PROBE_VEL = 30
[LASER]
X = 106.9
Y = -16.85
[CHANGE_POSITION]
X = 20
Y = 20
Z = -4
[PYTHON]
#PATH_PREPEND = python
#TOPLEVEL = python/toplevel.py
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50
MAX_LINEAR_VELOCITY = 60
POSITION_FILE = position.txt
#NO_FORCE_HOMING = 1
[EMCIO]
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
#TOOL_CHANGE_QUILL_UP = 1
#TOOL_CHANGE_AT_G30 = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -.001
MAX_LIMIT = 520.0
MAX_VELOCITY = 60
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 60
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -.001
MAX_LIMIT = 520.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME = 10
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 2
[AXIS_Y]
MIN_LIMIT = -.001
MAX_LIMIT = 630.0
MAX_VELOCITY = 60
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 60
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -.001
MAX_LIMIT = 630.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME = 10
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
# Third axis
[AXIS_Z]
MIN_LIMIT = -120.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 60
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 60
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -120.0
MAX_LIMIT = 10.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME = -10
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -0,0 +1,60 @@
########################################################################
# Button
########################################################################
style "button"
{
engine "pixmap"
{
### Button ###
## Normal
image
{
function = BOX
state = NORMAL
file = "button/button.png"
border = {8, 8, 8, 8}
stretch = TRUE
}
## Prelight
image
{
function = BOX
state = PRELIGHT
file = "button/button-light.png"
border = {8, 8, 8, 8}
stretch = TRUE
}
## Insensitive
image
{
function = BOX
state = INSENSITIVE
file = "button/button-ins.png"
border = {8, 8, 8, 8}
stretch = TRUE
}
## Active
image
{
function = BOX
state = ACTIVE
file = "button/button-pressed.png"
border = {8, 8, 8, 8}
stretch = TRUE
}
### Focus ###
image
{
function = FOCUS
file = "null.png"
}
}
}
class "GtkButton*" style "button"

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,47 @@
########################################################################
# Check boxes
########################################################################
style "check_box"
{
### Check box ###
engine "pixmap"
{
image
{
function = CHECK
shadow = OUT
overlay_file = "c_box/c_box.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
shadow = IN
overlay_file = "c_box/c_box-pressed.png"
overlay_stretch = FALSE
}
image
{
function = OPTION
shadow = OUT
overlay_file = "c_box/c_box.png"
overlay_stretch = FALSE
}
image
{
function = OPTION
shadow = IN
overlay_file = "c_box/c_box-pressed.png"
overlay_stretch = FALSE
}
}
}
class "GtkCheckButton*" style "check_box"
class "GtkCheckMenuItem*" style "check_box"
class "GtkTreeView*" style "check_box"

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

View File

@@ -0,0 +1,35 @@
########################################################################
# Entry
########################################################################
style "entry"
{
GtkWidget::interior_focus = 0
GtkEntry::inner-border = {1, 1, 1, 1}
engine "pixmap"
{
### Entry ###
image
{
function = SHADOW
detail = "entry"
file = "entry/entry.png"
border = {2, 2, 2, 2}
stretch = TRUE
}
### Focus ###
image
{
function = FOCUS
detail = "entry"
file = "entry/entry-active.png"
border = {2, 2, 2, 2}
stretch = TRUE
}
}
}
class "GtkEntry*" style "entry"

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

View File

@@ -0,0 +1,65 @@
########################################################################
# BrushedMetal
# Andrey Tverdov 2010
# GPL2
########################################################################
gtk_color_scheme = "fg_color:#000\nbg_color:#C0C0C0\nbase_color:#D5D5D2\ntext_color:#000\nselected_bg_color:#8BA4A4\nselected_fg_color:#000\ntooltip_bg_color:#ffffe1\ntooltip_fg_color:#000"
gtk-icon-sizes ="gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-button=16,16"
gtk-button-images = 0
gtk-menu-images = 1
include "scrollbar.rc"
include "scale.rc"
include "notebook.rc"
include "button.rc"
include "radio.rc"
include "c_box.rc"
include "progressbar.rc"
include "statusbar.rc"
include "entry.rc"
include "menubar.rc"
include "spin.rc"
style "default"
{
fg[ACTIVE] = @fg_color
fg[INSENSITIVE] = shade (0.7,@bg_color)
fg[NORMAL] = @fg_color
fg[PRELIGHT] = @fg_color
fg[SELECTED] = @selected_fg_color
bg[ACTIVE] = @bg_color
bg[INSENSITIVE] = @bg_color
bg[NORMAL] = @bg_color
bg[PRELIGHT] = @bg_color
bg[SELECTED] = @selected_bg_color
bg_pixmap[NORMAL] = "bg.png"
base[ACTIVE] = @selected_bg_color
base[INSENSITIVE] = @bg_color
base[NORMAL] = @base_color
base[PRELIGHT] = @selected_bg_color
base[SELECTED] = @selected_bg_color
text[ACTIVE] = shade (0.9,@selected_fg_color)
text[INSENSITIVE] = shade (0.7,@bg_color)
text[NORMAL] = @text_color
text[PRELIGHT] = @selected_fg_color
text[SELECTED] = @selected_fg_color
engine "clearlooks"
{
radius = 0.0
}
}
class "GtkWidget" style "default"
style "tooltips" = "default"
{
bg[NORMAL] = "#FFFCDB"
fg[NORMAL] = "#000000"
}
widget "gtk-tooltips*" style "tooltips"

View File

@@ -0,0 +1,99 @@
########################################################################
# Menubar
########################################################################
style "menubar"
{
### Menubar ###
engine "pixmap"
{
image
{
function = BOX
file = "menubar/menubar.png"
border = {7, 7, 4, 4}
stretch = TRUE
}
}
}
class "GtkMenuBar*" style "menubar"
style "menuitem"
{
### Menu item ###
engine "pixmap"
{
image
{
function = BOX
file = "menubar/menuitem.png"
border = {7, 7, 4, 4}
stretch = TRUE
}
### H line ###
image
{
function = HLINE
file = "menubar/line-h.png"
border = {0, 0, 0, 0}
stretch = TRUE
}
### V line ###
image
{
function = VLINE
file = "menubar/line-v.png"
border = {0, 0, 0, 0}
stretch = TRUE
}
### Arrow UP ###
image
{
function = ARROW
overlay_file = "/arrow/arrow-up.png"
overlay_border = {3,3,3,3}
overlay_stretch = FALSE
arrow_direction = UP
}
### Arrow DOWN ###
image
{
function = ARROW
overlay_file = "/arrow/arrow-down.png"
overlay_border = {3,3,3,3}
overlay_stretch = FALSE
arrow_direction = DOWN
}
### Arrow LEFT ###
image
{
function = ARROW
overlay_file = "/arrow/arrow-left.png"
overlay_border = {3,3,3,3}
overlay_stretch = FALSE
arrow_direction = LEFT
}
### Arrow RIGHT ###
image
{
function = ARROW
overlay_file = "/arrow/arrow-right.png"
overlay_border = {3,3,3,3}
overlay_stretch = FALSE
arrow_direction = RIGHT
}
}
}
class "GtkMenuItem*" style "menuitem"
class "GtkImageMenuItem*" style "menuitem"
class "GtkTearoffMenuItem*" style "menuitem"
class "GtkItem*" style "menuitem"

Some files were not shown because too many files have changed in this diff Show More