# Linuxcnc controller parameters for a simulated machine using QtDragon screen

# General note: Comments can either be preceded with a # or ; - either is
# acceptable, although # is in keeping with most linux config files.

[EMC]
VERSION = 1.1
MACHINE = qtdragon
DEBUG = 0x00000000

[DISPLAY]
# sets qtdragon as screen. for debug output to terminal add -d or -v
# sets window title
# sets icon in task manager
DISPLAY = qtvcp qtdragon
TITLE = QtDragon XYZ Auto Tool Probe
ICON = silver_dragon.png

# qtdragon saves most preference to this file
PREFERENCE_FILE_PATH = WORKINGFOLDER/qtdragon.pref

# min/max percentage overrides allowed in qtdragon 1 = 100%
MAX_FEED_OVERRIDE       = 1.2
MIN_SPINDLE_0_OVERRIDE    = 0.5
MAX_SPINDLE_0_OVERRIDE    = 1.2

# manual spindle speed will start at this RPM
DEFAULT_SPINDLE_0_SPEED   = 12000

# spindle up/down increment in RPM
SPINDLE_INCREMENT = 200

# min max apindle speed manually allowed 
MIN_SPINDLE_0_SPEED = 1000
MAX_SPINDLE_0_SPEED = 20000

# max spindle power in Watts
MAX_SPINDLE_POWER = 2000

# min/max/default jog velocities in qtdragon in units/sec
MIN_LINEAR_VELOCITY     = 0
MAX_LINEAR_VELOCITY     = 60.00
DEFAULT_LINEAR_VELOCITY = 50.0

# incremental jog step length options
INCREMENTS = 10 mm, 1.0 mm, 0.10 mm, 0.01 mm, 1.0 inch, 0.1 inch, 0.01 inch

CYCLE_TIME = 100
INTRO_GRAPHIC = silver_dragon.png
INTRO_TIME = 2

# default program search path
PROGRAM_PREFIX = /home/bartool/linuxcnc/nc_files

# NGCGUI subroutine path.
# The path must also be in [RS274NGC] SUBROUTINE_PATH
NGCGUI_SUBFILE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib/
# pre selected programs tabs
# specify filenames only, files must be in the NGCGUI_SUBFILE_PATH
NGCGUI_SUBFILE = slot.ngc
NGCGUI_SUBFILE = qpocket.ngc

# qtdragon saves MDI cxommands to this file
MDI_HISTORY_FILE = mdi_history.dat
# qtdragon saves rnning logs to this file
LOG_FILE = qtdragon.log

[MDI_COMMAND_LIST]
# for macro buttons on main oage up to 10 possible
MDI_COMMAND = G0 Z25;X0 Y0;Z0, Goto\nUser\nZero
MDI_COMMAND = G53 G0 Z0;G53 G0 X0 Y0,Goto\nMachn\nZero

[FILTER]
# Controls what programs are shown inqtdragon file manager
PROGRAM_EXTENSION = .ngc,.nc,.tap G-Code File (*.ngc,*.nc,*.tap)
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script

# specifies what special 'filter' programs runs based on program ending
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3

[KINS]
KINEMATICS = trivkins coordinates=XYZ
JOINTS = 3

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[RS274NGC]
# motion controller saves parameters to this file
PARAMETER_FILE = qtdragon.var

# start up G/M codes when first loaded
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.0127 G80 G90 G94 G97 M5 M9

# subroutine/remap path list
SUBROUTINE_PATH =\
~/linuxcnc/nc_files/examples/ngcgui_lib:\
~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs:\
~/linuxcnc/nc_files/examples/remap-subroutines:\
~/linuxcnc/nc_files/examples/remap_lib

# on abort, this ngc file is called. required for basic/versa probe
ON_ABORT_COMMAND=O <on_abort> call

# this remaps m6 to do auto probing after tool change
REMAP=M6 modalgroup=6 prolog=change_prolog ngc=qt_auto_probe_tool epilog=change_epilog

# required for python remaps
[PYTHON]
# The path to start a search for user modules. ie python's sys.path.insert(0,PATH)
#PATH_PREPEND = ~/linuxcnc/nc_files/examples/remap_lib/python-stdglue/python

# The path start point for all remap searches ie. python's sys.path.append() 
PATH_APPEND = ~/linuxcnc/nc_files/examples/remap_lib/python-stdglue/python
# path to the tremap's 'oplevel file
TOPLEVEL = ~/linuxcnc/nc_files/examples/remap_lib/python-stdglue/python/toplevel.py
# set remap debug level
#LOG_LEVEL = 1000

[EMCMOT]
EMCMOT = motmod
SERVO_PERIOD = 1000000
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 100000

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = metric
ANGULAR_UNITS = degree
MAX_LINEAR_VELOCITY = 60.00
DEFAULT_LINEAR_VELOCITY = 50.00
SPINDLES = 1

[HAL]
HALUI = halui
HALFILE = core_sim.hal
HALFILE = simulated_home.hal
# this file is loaded after qtdragon has made it's HAl pins
# you can add multiple entries
POSTGUI_HALFILE = qtdragon_postgui.hal

# this command is run after qtdragon has made it's HAl pins
# any HAL conmmand can be used
# you can add multiple entries
# uncomment this one to print all HAL pins that start with qt
#POSTGUI_HALCMD = show pin qt
# added to simulate probing
POSTGUI_HALCMD = loadusr qtvcp test_probe

[HALUI]
# no content

[PROBE]
# pick basic probe or versa probe or remove for none

USE_PROBE = versaprobe
#USE_PROBE = basicprobe

# where in absolute machine units to change the tool
[CHANGE_POSITION]
# Abs (G53) coordinates remap tool change point
X = 10
Y = 10
Z = 8

# where in absolute machine units to probe the tool
[VERSA_TOOLSETTER]
X = 300
Y = 300
Z = -50
# how high to lift when moving to the tool setter
Z_MAX_CLEAR = 9.999
# tool setter diameter for diameter probing
DIAMETER = 25
# maximum machine units to lower while probing
MAXPROBE =  40

[AXIS_X]
MIN_LIMIT = -0.001
MAX_LIMIT = 520.0
MAX_VELOCITY = 60.0
MAX_ACCELERATION = 500.0

[AXIS_Y]
MIN_LIMIT = -0.001
MAX_LIMIT = 630.0
MAX_VELOCITY = 60.0
MAX_ACCELERATION = 500.0

[AXIS_Z]
# used by external offsets for auto spindle lift and auto leveling
OFFSET_AV_RATIO  = 0.2
MIN_LIMIT = -115.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 500.0

[JOINT_0]
AXIS = X
MIN_LIMIT = -0.001
MAX_LIMIT = 520.0
MAX_VELOCITY = 60.0
MAX_ACCELERATION = 500.0
TYPE = LINEAR
SCALE = 160.0
STEPGEN_MAX_VEL = 72.0
STEPGEN_MAX_ACC = 600.0
FERROR = 1.0
MIN_FERROR = 0.5
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 20.0
HOME_OFFSET = 0.00000
HOME_SEARCH_VEL = 20.000000
HOME_LATCH_VEL = 10.000
HOME_SEQUENCE = 1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False
HOME_IS_SHARED = 1

[JOINT_1]
AXIS = Y
MIN_LIMIT = -0.001
MAX_LIMIT = 630.0
MAX_VELOCITY = 60.0
MAX_ACCELERATION = 500.0
TYPE = LINEAR
SCALE = 160.0
STEPGEN_MAX_VEL = 72.0
STEPGEN_MAX_ACC = 600.0
FERROR = 1.0
MIN_FERROR = 0.5
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 20.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 20.00
HOME_LATCH_VEL = 10.00
HOME_SEQUENCE = 2
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False

[JOINT_2]
AXIS = Z
MIN_LIMIT = -115.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 500.0
TYPE = LINEAR
SCALE = 160.0
STEPGEN_MAX_VEL = 48.0
STEPGEN_MAX_ACC = 600.0
FERROR = 1.0
MIN_FERROR = 0.5
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = -10.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 20.000000
HOME_LATCH_VEL = 10.00
HOME_SEQUENCE = 0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False
HOME_IS_SHARED = 1

