[EMC] VERSION = 1.1 MACHINE = getting-started:demo.ini # Debug level, 0 means no messages. See src/emc/nml_intf/debugflags.h for others DEBUG = 0 [DISPLAY] DISPLAY = axis OPEN_FILE= ./nc_files/examples.ngc CYCLE_TIME = 0.100 HELP_FILE = doc/help.txt 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 TOOL_EDITOR = tooledit 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 SUBROUTINE_PATH = nc_subroutines:../../nc_files/remap_lib/common_nc_subs LOG_LEVEL = 0 # generalized remapping of RS274NGC codes #----------------------------------------- # currently only unused M- and G-codes may be activated as per below, plus the # T,M6,M61,S and F codes. # G: currently supported modal group: 1 # M:currently supported modal groups: 5,6,7,8,9,10 # for T,S,F remaps the modal group is fixed and any modalgroup= option is ignored # An argument specification (keyword 'argspec') describes required and permitted words, # and preconditions for that code to execute. # # It consists of 0-n characters of the class [@A-KMNP-Za-kmnp-z^>] . # # parameter words: # an uppercase letter for each required parameter 'word' # a lowercase letter for each optional parameter 'word' # # Preconditions: # an '^' means: speed must be > 0 # an '>' means: feed must be > 0 # # if calling an NGC oword function (ngc= ), the parameters are passed # as local named parameters which are already set when the function starts # optional words are passed if set in the block, and may be tested for existence # by # EXISTS(#<..>) . # # example 1: REMAP= M400 modalgroup=10 argspec=Pq ngc=m400 # see nc_subroutines/m400.ngc # to exercise, try: # M400 # M400 P123 # M400 P123 Q456 # --------------- # # Example 2: # # Calling with traditional positioal parameter lists: # # To do so, add the '@' character to the argspec. # In this case, the arguments (required or optional) will be passed tradional-style # REMAP= M410 modalgroup=10 argspec=@Pq ngc=m410 # see nc_subroutines/m410.ngc # # to exercise, try: # M410 # M410 P123 # M410 P123 Q456 # # NB: you lose the capability to distinguish more than one optional parameter word! # since you can't tell whether Q was passed as 'Q0' or no Q word was set. # # ------------------------------------------------------------------------- # # up to here you wouldn't need the PYTHON section to be defined since no # Python code was used. # Examples below refer to Python handlers and hence need the plugin configured. # # instead of calling an NGC procedure, we call the remap.g886() Python function: # REMAP= G88.6 modalgroup=1 argspec=XYZp py=g886 # see python/remap.py function g886 # to exercise, try: # g88.6 x1 y2 z3 # g88.6 x1 y2 z3 p33 (a comment here) # a more complex example # based on nc_files/involute.py example and can it as a G-code # all checking is done in the Python procedure by directly accessing interpreter internals # REMAP= G88.1 modalgroup=1 py=involute # see python/remap.py function involute # # # pin wiggling example - equivalent of M62 # usgage : M462 P Q<0 or 1> REMAP= M462 modalgroup=10 argspec=PQ py=m462 # pin wiggling example - equivalent of M65 # usgage : M465 P Q<0 or 1> REMAP= M465 modalgroup=10 argspec=PQ py=m465 # this is important - read nc_subroutines/on_abort.ngc ON_ABORT_COMMAND= O call [EMCMOT] EMCMOT = motmod COMM_TIMEOUT = 1.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 POSITION_FILE = position.txt MAX_LINEAR_VELOCITY = 1.2 NO_FORCE_HOMING = 1 [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = tool.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 MIN_LIMIT = -40.0 MAX_LIMIT = 40.0 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_SEQUENCE = 1 HOME_IS_SHARED = 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 MIN_LIMIT = -40.0 MAX_LIMIT = 40.0 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_SEQUENCE = 1 [AXIS_Z] MIN_LIMIT = -8.0 MAX_LIMIT = 8.00 MAX_VELOCITY = 4 MAX_ACCELERATION = 100.0 [JOINT_2] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 4 MAX_ACCELERATION = 100.0 MIN_LIMIT = -8.0 MAX_LIMIT = 8.00 HOME_OFFSET = 1.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_SEQUENCE = 0 HOME_IS_SHARED = 1 [PYTHON] PATH_PREPEND= python # import the following Python module TOPLEVEL= python/toplevel.py # the higher the more verbose tracing of the Python plugin LOG_LEVEL = 8