This commit is contained in:
Thaddeus-Maximus
2026-04-03 15:58:58 -05:00
commit f3953d66ae
1516 changed files with 586639 additions and 0 deletions

153
configs/sim.gmoccapy/6_axis.ini Executable file
View File

@@ -0,0 +1,153 @@
[EMC]
VERSION = 1.1
MACHINE = gmoccapy_9_axis
DEBUG = 0
[DISPLAY]
DISPLAY = gmoccapy
CYCLE_TIME = 150
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
GEOMETRY = XYZABC
# 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 = 500
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = macros
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.150
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 0 0 2
[HAL]
HALUI = halui
HALFILE = core_sim_6.hal
#HALFILE = simulated_home_9.hal
[TRAJ]
COORDINATES = X Y Z A B C
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50.0
DEFAULT_LINEAR_ACCEL = 500.0
DEFAULT_ANGULAR_VELOCITY = 45.0
MAX_LINEAR_VELOCITY = 200.0
MAX_LINEAR_ACCEL = 250.0
MAX_ANGULAR_VELOCITY = 90.0
[KINS]
KINEMATICS = trivkins coordinates=XYZABC
JOINTS = 6
[AXIS_X]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Y]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Z]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_A]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_B]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_C]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
HOME_SEQUENCE = 0
[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_5]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0

167
configs/sim.gmoccapy/7_axis.ini Executable file
View File

@@ -0,0 +1,167 @@
[EMC]
VERSION = 1.1
MACHINE = gmoccapy_9_axis
DEBUG = 0
[DISPLAY]
DISPLAY = gmoccapy
CYCLE_TIME = 150
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
GEOMETRY = XYZABCUVW
# 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 = 500
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = macros
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.150
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 0 0 2
[HAL]
HALUI = halui
HALFILE = core_sim_7.hal
#HALFILE = simulated_home_9.hal
[TRAJ]
COORDINATES = X Y Z A B C U
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50.0
DEFAULT_LINEAR_ACCEL = 500.0
DEFAULT_ANGULAR_VELOCITY = 45.0
MAX_LINEAR_VELOCITY = 200.0
MAX_LINEAR_ACCEL = 250.0
MAX_ANGULAR_VELOCITY = 90.0
[KINS]
KINEMATICS = trivkins coordinates=XYZABCU
JOINTS = 7
[AXIS_X]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Y]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Z]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_A]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_B]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_C]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_U]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
HOME_SEQUENCE = 0
[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_5]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_6]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0

View File

@@ -0,0 +1,181 @@
[EMC]
VERSION = 1.1
MACHINE = gmoccapy_9_axis
DEBUG = 0
[DISPLAY]
DISPLAY = gmoccapy
CYCLE_TIME = 150
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
GEOMETRY = XYZABCUVW
# 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 = 500
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = macros
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.150
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 0 0 2
[HAL]
HALUI = halui
HALFILE = core_sim_7.hal
#HALFILE = simulated_home_9.hal
[TRAJ]
COORDINATES = X Y Z A B C U
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50.0
DEFAULT_LINEAR_ACCEL = 500.0
DEFAULT_ANGULAR_VELOCITY = 45.0
MAX_LINEAR_VELOCITY = 200.0
MAX_LINEAR_ACCEL = 250.0
MAX_ANGULAR_VELOCITY = 90.0
[KINS]
KINEMATICS = trivkins coordinates=XYZABCU
JOINTS = 7
[AXIS_X]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Y]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Z]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_A]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_B]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_C]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_U]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
HOME_SEQUENCE = 0
[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_5]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_6]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
# section for main IO controller parameters -----------------------------------
[TOOLSENSOR]
X = 10
Y = 10
Z = -20
# abort change if no toolsensor contact after this probe distance
MAXPROBE = -20
# this is not named TOOL_CHANGE_POSITION on purpose - canon uses it and will
# interfere
[CHANGE_POSITION]
X = 10
Y = 10
Z = -2

179
configs/sim.gmoccapy/8_axis.ini Executable file
View File

@@ -0,0 +1,179 @@
[EMC]
VERSION = 1.1
MACHINE = gmoccapy_9_axis
DEBUG = 0
[DISPLAY]
DISPLAY = gmoccapy
CYCLE_TIME = 150
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
GEOMETRY = XYZABCUVW
# 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 = 500
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = macros
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.150
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 0 0 2
[HAL]
HALUI = halui
HALFILE = core_sim_8.hal
[TRAJ]
COORDINATES = X Y Z A B C U V
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50.0
DEFAULT_LINEAR_ACCEL = 500.0
DEFAULT_ANGULAR_VELOCITY = 45.0
MAX_LINEAR_VELOCITY = 200.0
MAX_LINEAR_ACCEL = 250.0
MAX_ANGULAR_VELOCITY = 90.0
[KINS]
KINEMATICS = trivkins coordinates=XYZABCUV
JOINTS = 8
[AXIS_X]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Y]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Z]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_A]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_B]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_C]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_U]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_V]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
HOME_SEQUENCE = 0
[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_5]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_6]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_7]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0

193
configs/sim.gmoccapy/9_axis.ini Executable file
View File

@@ -0,0 +1,193 @@
[EMC]
VERSION = 1.1
MACHINE = gmoccapy_9_axis
DEBUG = 0
[DISPLAY]
DISPLAY = gmoccapy
CYCLE_TIME = 150
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
GEOMETRY = XYZABCUVW
# 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 = 500
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = macros
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.150
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 0 0 2
[HAL]
HALUI = halui
HALFILE = core_sim_9.hal
#HALFILE = simulated_home_9.hal
[TRAJ]
COORDINATES = X Y Z A B C U V W
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50.0
DEFAULT_LINEAR_ACCEL = 500.0
DEFAULT_ANGULAR_VELOCITY = 45.0
MAX_LINEAR_VELOCITY = 200.0
MAX_LINEAR_ACCEL = 250.0
MAX_ANGULAR_VELOCITY = 90.0
[KINS]
KINEMATICS = trivkins coordinates=XYZABCUVW
JOINTS = 9
[AXIS_X]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Y]
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_Z]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_A]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_B]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_C]
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_U]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_V]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[AXIS_W]
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
HOME_SEQUENCE = 0
[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_5]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEQUENCE = 0
[JOINT_6]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_7]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
HOME_SEQUENCE = 0
[JOINT_8]
TYPE = LINEAR
MAX_VELOCITY = 100
MAX_ACCELERATION = 1250
MIN_LIMIT = -50.0
MAX_LIMIT = 100.0
HOME_SEQUENCE = 0

13
configs/sim.gmoccapy/README Executable file
View File

@@ -0,0 +1,13 @@
A touch screen user interface for mills, lathes and plasma cutters.
Based of the design of moccagui, a GUI coded in FreePascal.
GMOCCAPY is using Python instead.
GMOCCAPY is designed to bring the feel of industrial controls to LinuxCNC users,
most controls can be used with a touch screen and also most are accessible through
hal pins, so real hardware can be used.
Feel free to send any comment to
gmoccapy@web.de

13
configs/sim.gmoccapy/README_es Executable file
View File

@@ -0,0 +1,13 @@
Esta es una simulación de una fresadora con ejes XYZ y también un torno.
Esta pantalla se basa en el diseño de moccagui, una GUI codificada en FreePascal.
gmoccapy utiliza Python en su lugar.
gmoccapy está diseñado para brindar la sensación de los controles industriales a los usuarios de LinuxCNC.
La mayoría de los controles se pueden usar con una pantalla táctil y son accesibles a través de
pines hal, por lo que se puede utilizar hardware real.
Siéntase libre de enviar cualquier comentario a
gmoccapy@web.de

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="gladevcp" version="0.0"/>
<object class="GtkWindow" id="window1">
<property name="can-focus">False</property>
<child>
<object class="HAL_ToggleButton" id="tbtn_blockdelete">
<property name="width-request">48</property>
<property name="height-request">48</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<child>
<object class="GtkImage" id="img_blockdelete">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">aptdaemon-error</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,3 @@
# This is the blockdelete.hal file
net blockdelete gmoccapy.blockdelete <= blockdelete.tbtn_blockdelete

View File

@@ -0,0 +1,58 @@
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
This file will add some timer options to an additional panel to gmoccapy
and demonstrates at the same time the possibilities you have introducing
your own handler files and functions to that screen, showing the
possibilities to modify the layout and behavior
Copyright 2021 Norbert Schechner
nieson@web.de
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 gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk as gtk
from gmoccapy import preferences
from gmoccapy import getiniinfo
class BlockDeleteClass:
def __init__(self, halcomp, builder, useropts):
self.builder = builder
self.halcomp = halcomp
self.defaults = {
IniFile.vars: {
"machine_time": 0.0,
"spindle_time": 0.0,
"running_time": 0.0,
},
}
get_ini_info = getiniinfo.GetIniInfo()
prefs = preferences.preferences(get_ini_info.get_preference_file_path())
theme_name = prefs.getpref("gtk_theme", "Follow System Theme", str)
if theme_name == "Follow System Theme":
theme_name = gtk.Settings.get_default().get_property("gtk-theme-name")
gtk.Settings.get_default().set_string_property("gtk-theme-name", theme_name, "")
def get_handlers(halcomp, builder, useropts):
return [BlockDeleteClass(halcomp, builder, useropts)]

115
configs/sim.gmoccapy/button.glade Executable file
View File

@@ -0,0 +1,115 @@
<?xml version="1.0"?>
<interface>
<!-- interface-requires gladevcp 0.0 -->
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<child>
<object class="GtkTable" id="tbl_marius">
<property name="visible">True</property>
<property name="n_rows">2</property>
<property name="n_columns">3</property>
<property name="column_spacing">5</property>
<property name="row_spacing">5</property>
<child>
<object class="HAL_Button" id="hal_button1">
<property name="label" translatable="yes">B1</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options">GTK_SHRINK</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="hal_button2">
<property name="label" translatable="yes">B4</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options">GTK_SHRINK</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="hal_button3">
<property name="label" translatable="yes">B2</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options">GTK_SHRINK</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="hal_button4">
<property name="label" translatable="yes">B5</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options">GTK_SHRINK</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="hal_button5">
<property name="label" translatable="yes">B3</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options">GTK_SHRINK</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="hal_button6">
<property name="label" translatable="yes">B6 </property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_SHRINK</property>
<property name="y_options">GTK_SHRINK</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,51 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt [KINS]KINEMATICS
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_dio=10
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-axis velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed

View File

@@ -0,0 +1,59 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt [KINS]KINEMATICS
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Cpos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-axis velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

View File

@@ -0,0 +1,61 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Apos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
net Bpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb
net Cpos joint.5.motor-pos-cmd => joint.5.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-joint velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

View File

@@ -0,0 +1,62 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Apos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
net Bpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb
net Cpos joint.5.motor-pos-cmd => joint.5.motor-pos-fb
net Upos joint.6.motor-pos-cmd => joint.6.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-joint velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

View File

@@ -0,0 +1,63 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Apos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
net Bpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb
net Cpos joint.5.motor-pos-cmd => joint.5.motor-pos-fb
net Upos joint.6.motor-pos-cmd => joint.6.motor-pos-fb
net Vpos joint.7.motor-pos-cmd => joint.7.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-joint velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

View File

@@ -0,0 +1,64 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Apos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
net Bpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb
net Cpos joint.5.motor-pos-cmd => joint.5.motor-pos-fb
net Upos joint.6.motor-pos-cmd => joint.6.motor-pos-fb
net Vpos joint.7.motor-pos-cmd => joint.7.motor-pos-fb
net Wpos joint.8.motor-pos-cmd => joint.8.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-joint velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

View File

@@ -0,0 +1,65 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt [KINS]KINEMATICS
#autoconverted trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS unlock_joints_mask=16
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Apos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
net Bpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb
#net Cpos joint.5.motor-pos-cmd => joint.5.motor-pos-fb
#net Upos joint.6.motor-pos-cmd => joint.6.motor-pos-fb
#net Vpos joint.7.motor-pos-cmd => joint.7.motor-pos-fb
#net Wpos joint.8.motor-pos-cmd => joint.8.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-axis velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

View File

@@ -0,0 +1,65 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt [KINS]KINEMATICS
#autoconverted trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS unlock_joints_mask=16
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Apos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
net Cpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb
#net Cpos joint.5.motor-pos-cmd => joint.5.motor-pos-fb
#net Upos joint.6.motor-pos-cmd => joint.6.motor-pos-fb
#net Vpos joint.7.motor-pos-cmd => joint.7.motor-pos-fb
#net Wpos joint.8.motor-pos-cmd => joint.8.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-axis velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

View File

@@ -0,0 +1,65 @@
# core HAL config file for simulation
# first load all the RT modules that will be needed
# kinematics
loadrt [KINS]KINEMATICS
#autoconverted trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS unlock_joints_mask=16
# load 6 differentiators (for velocity and accel signals
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
# load additional blocks
loadrt hypot names=vel_xy,vel_xyz
# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
# link the differentiator functions into the code
addf ddt_x servo-thread
addf ddt_xv servo-thread
addf ddt_y servo-thread
addf ddt_yv servo-thread
addf ddt_z servo-thread
addf ddt_zv servo-thread
addf vel_xy servo-thread
addf vel_xyz servo-thread
# create HAL signals for position commands from motion module
# loop position commands back to motion module feedback
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
net Cpos joint.3.motor-pos-cmd => joint.3.motor-pos-fb
net Wpos joint.4.motor-pos-cmd => joint.4.motor-pos-fb
#net Cpos joint.5.motor-pos-cmd => joint.5.motor-pos-fb
#net Upos joint.6.motor-pos-cmd => joint.6.motor-pos-fb
#net Vpos joint.7.motor-pos-cmd => joint.7.motor-pos-fb
#net Wpos joint.8.motor-pos-cmd => joint.8.motor-pos-fb
# send the position commands thru differentiators to
# generate velocity and accel signals
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
net Xacc <= ddt_xv.out
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
net Yacc <= ddt_yv.out
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
net Zacc <= ddt_zv.out
# Cartesian 2- and 3-axis velocities
net XYvel vel_xy.out => vel_xyz.in1
net XYZvel <= vel_xyz.out
# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
net spindle-fwd spindle.0.forward
net spindle-rev spindle.0.reverse
#net spindle-speed spindle.0.speed-out
net lube iocontrol.0.lube
net flood iocontrol.0.coolant-flood
net mist iocontrol.0.coolant-mist

278
configs/sim.gmoccapy/dro.glade Executable file
View File

@@ -0,0 +1,278 @@
<?xml version="1.0"?>
<interface>
<!-- interface-requires gladevcp 0.0 -->
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<property name="width_request">200</property>
<property name="height_request">712</property>
<property name="resizable">False</property>
<property name="default_width">712</property>
<property name="default_height">200</property>
<property name="icon">icon/Logo.png</property>
<child>
<object class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="n_rows">4</property>
<property name="n_columns">4</property>
<child>
<object class="HAL_DRO" id="hal_dro4">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="joint_number">1</property>
<property name="display_units_mm">True</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro5">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="display_units_mm">True</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro7">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="joint_number">1</property>
<property name="display_units_mm">True</property>
<property name="reference_type">2</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro8">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="display_units_mm">True</property>
<property name="reference_type">2</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro3">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="joint_number">1</property>
<property name="display_units_mm">True</property>
<property name="reference_type">1</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro2">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="display_units_mm">True</property>
<property name="reference_type">1</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro6">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="joint_number">2</property>
<property name="display_units_mm">True</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro1">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="joint_number">2</property>
<property name="display_units_mm">True</property>
<property name="reference_type">1</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
</packing>
</child>
<child>
<object class="HAL_DRO" id="hal_dro9">
<property name="visible">True</property>
<property name="label" translatable="yes">label</property>
<property name="joint_number">2</property>
<property name="display_units_mm">True</property>
<property name="reference_type">2</property>
<attributes>
<attribute name="style" value="normal"/>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="3.000000"/>
</attributes>
</object>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">ABS</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label" translatable="yes">REL</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">DTG</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="label" translatable="yes">X</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="label" translatable="yes">Y</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="label" translatable="yes">Z</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

201
configs/sim.gmoccapy/gmoccapy.ini Executable file
View File

@@ -0,0 +1,201 @@
# 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 = gmoccapy
DEBUG = 0x7FFFFFFF
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
#DISPLAY = gmoccapy -logo /home/gmoccapy/Bilder/coolant_on.gif
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# 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
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 166
DEFAULT_LINEAR_VELOCITY = 100
MAX_ANGULAR_VELOCITY = 234
DEFAULT_SPINDLE_SPEED = 450
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm, 1.2345 inch
# 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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 35
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
#NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
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
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = go_to_position x-pos y-pos z-pos
MACRO = i_am_lost
MACRO = increment x-incr y-incr
MACRO = macro_4
MACRO = macro_5
MACRO = macro_6
MACRO = macro_7
MACRO = macro_8
MACRO = macro_9
MACRO = macro_10
MACRO = macro_11
MACRO = macro_12
MACRO = macro_13
MACRO = macro_14
MACRO = macro_15

View File

@@ -0,0 +1,75 @@
[DEFAULT]
dro_digits = 5
dro_size = 28
abs_color = #0000FF
rel_color = #000000
dtg_color = #FFFF00
homed_color = #00FF00
unhomed_color = #FF0000
enable_dro = False
scale_jog_vel = 140.4
scale_spindle_override = 1
scale_feed_override = 1
scale_rapid_override = 1
spindle_bar_min = 0.0
spindle_bar_max = 6000.0
turtle_jog_factor = 20
hide_turtle_jog_button = False
unlock_code = 123
toggle_readout = True
spindle_start_rpm = 450.0
kbd_height = 250
blockheight = 0.0
open_file = /home/linuxcnc/linuxcnc/nc_files/examples/cone.ngc
screen1 = maximized
hide_titlebar = False
x_pos = 40
y_pos = 30
width = 979
height = 750
use_toolmeasurement = False
gtk_theme = Follow System Theme
icon_theme = material-light
audio_enabled = True
audio_alert = /usr/share/sounds/freedesktop/stereo/dialog-warning.oga
audio_error = /usr/share/sounds/freedesktop/stereo/dialog-error.oga
grid_size = 1.0
view = z
mouse_btn_mode = 4
hide_cursor = False
hide_tooltips = False
system_name_tool = Tool
system_name_g5x = G5x
system_name_rot = Rot
system_name_g92 = G92
system_name_g54 = G54
system_name_g55 = G55
system_name_g56 = G56
system_name_g57 = G57
system_name_g58 = G58
system_name_g59 = G59
system_name_g59.1 = G59.1
system_name_g59.2 = G59.2
system_name_g59.3 = G59.3
jump_to_dir = /home/linuxcnc
show_keyboard_on_offset = False
show_keyboard_on_tooledit = False
show_keyboard_on_edit = False
show_keyboard_on_mdi = False
x_pos_popup = 45.0
y_pos_popup = 55
width_popup = 250.0
max_messages = 10
message_font = sans 10
use_frames = True
reload_tool = True
blockdel = False
show_offsets = False
show_dtg = False
view_tool_path = True
view_dimension = True
run_from_line = no_run
unlock_way = no
show_preview_on_offset = False
use_keyboard_shortcuts = True

View File

@@ -0,0 +1,4 @@
Standard GMOCCAPY configuration for a XYZ mill including example macros.

View File

@@ -0,0 +1,81 @@
<?xml version="1.0"?>
<interface>
<!-- interface-requires gladevcp 0.0 -->
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window2">
<property name="height_request">600</property>
<child>
<object class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">3</property>
<child>
<object class="HAL_Meter" id="s_display2">
<property name="width_request">200</property>
<property name="height_request">200</property>
<property name="visible">True</property>
<property name="label">Spindle</property>
<property name="bg_color">#ffffffffffff</property>
<property name="z0_color">#0000ffff0000</property>
<property name="max">2000</property>
<property name="majorscale">200</property>
<property name="z1_color">#ffffffff0000</property>
<property name="z2_color">#ffff00000000</property>
<property name="sublabel">RPM</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">screen 2</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">Custom
Button</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_button_press"/>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,205 @@
# General section -------------------------------------------------------------
[EMC]
VERSION = 1.1
MACHINE = gmoccapy 4 axis
DEBUG = 0
# for details see nc_files/subroutines/maco_instructions.txt
[DISPLAY]
DISPLAY = gmoccapy
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm, 90.000 °
[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
# 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_sim4.hal
HALFILE = spindle_sim.hal
HALFILE = simulated_home.hal
# Single file that is executed after the GUI has started.
POSTGUI_HALFILE = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z C
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
# First axis = X
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyzc
JOINTS = 4
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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
HOME_IS_SHARED = 1
# Second axis = Y
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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
HOME_IS_SHARED = 1
# Third axis = Z
[AXIS_Z]
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
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
HOME_IS_SHARED = 1
# Fourth axis = A
# Fifth axis = B
# Sixt axis = C
[AXIS_C]
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
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos
# Sections for display options ------------------------------------------------

View File

@@ -0,0 +1,4 @@
GMOCCAPY configuration for a 4-axis mill XYZC with C as rotating axis.

View File

@@ -0,0 +1,251 @@
# This config file was created 2016-07-03 00:20:41.859215 by the update_ini script
# The original config files may be found in the /home/emcmesa/linuxcnc-org/configs/sim/gmoccapy/gmoccapy_XYZAB.old directory
# 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 = gmoccapy XYZAB
DEBUG = 0
#DEBUG = 0x7FFFFFFF
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
#DISPLAY = gmoccapy -user_mode -quiet -debug -nonsense
# this is to create separate windows and the corresponding hal files,
# the name and location are only needed, because gscreen needs them to
# initialize the tabs and then execute the command
#EMBED_TAB_NAME = left_side_panel
#EMBED_TAB_LOCATION = box_left
#EMBED_TAB_COMMAND = gladevcp -g 64x697+997+10 -H v_buttonlist.hal v_buttonlist.glade
#EMBED_TAB_NAME = right_side_panel
#EMBED_TAB_LOCATION = box_right
#EMBED_TAB_COMMAND = gladevcp -g 995x64+0+805 -H h_buttonlist.hal h_buttonlist.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 166
DEFAULT_LINEAR_VELOCITY = 5
DEFAULT_ANGULAR_VELOCITY = 180
MIN_ANGULAR_VELOCITY = 10
MAX_ANGULAR_VELOCITY = 720
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
# 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_XYZAB.hal
HALFILE = spindle_sim.hal
HALFILE = simulated_home.hal
# Single file that is executed after the GUI has started.
POSTGUI_HALFILE = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z A B
HOME = 0 0 0 0 0
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
NO_FORCE_HOMING = 0
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyzab
JOINTS = 5
[AXIS_X]
MIN_LIMIT = -0.0
MAX_LIMIT = 600.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -0.0
MAX_LIMIT = 600.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
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -0.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -0.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.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
HOME_IS_SHARED = 1
[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
[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 = 0
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos

View File

@@ -0,0 +1,239 @@
# This config file was created 2016-07-03 00:25:14.051011 by the update_ini script
# The original config files may be found in the /home/emcmesa/linuxcnc-org/configs/sim/gmoccapy/gmoccapy_XYZAC.old directory
# 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 = gmoccapy XYZAC
DEBUG = 0
#DEBUG = 0x7FFFFFFF
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
EMBED_TAB_NAME = right_side_panel
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -H pendant_5_axis.hal pendant_5_axis.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 166
DEFAULT_LINEAR_VELOCITY = 5
MAX_ANGULAR_VELOCITY = 234
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
# 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_XYZAC.hal
HALFILE = spindle_sim.hal
HALFILE = simulated_home.hal
# Single file that is executed after the GUI has started.
POSTGUI_HALFILE = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z A C
HOME = 0 0 0 0 0
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
NO_FORCE_HOMING = 1
# Axes sections ---------------------------------------------------------------
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyzac
JOINTS = 5
[AXIS_X]
MIN_LIMIT = -0.0
MAX_LIMIT = 600.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -0.0
MAX_LIMIT = 600.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
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -0.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -0.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.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
HOME_IS_SHARED = 1
[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_C]
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[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 = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos

View File

@@ -0,0 +1,242 @@
# This config file was created 2016-07-03 00:29:54.563095 by the update_ini script
# The original config files may be found in the /home/emcmesa/linuxcnc-org/configs/sim/gmoccapy/gmoccapy_XYZCW.old directory
# 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 = gmoccapy XYZAB
DEBUG = 0
#DEBUG = 0x7FFFFFFF
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 166
DEFAULT_LINEAR_VELOCITY = 5
MAX_ANGULAR_VELOCITY = 234
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 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
# 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_XYZCW.hal
HALFILE = spindle_sim.hal
HALFILE = simulated_home.hal
# Single file that is executed after the GUI has started.
POSTGUI_HALFILE = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z C W
HOME = 0 0 0 0 0
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 50
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
NO_FORCE_HOMING = 0
# Axes sections ---------------------------------------------------------------
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyzcw
JOINTS = 5
[AXIS_X]
MIN_LIMIT = -0.0
MAX_LIMIT = 600.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -0.0
MAX_LIMIT = 600.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
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -0.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -0.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 200.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.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
HOME_IS_SHARED = 1
[AXIS_C]
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_W]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_4]
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
HOME_IS_SHARED = 0
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos

View File

@@ -0,0 +1,205 @@
# 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 = gmoccapy
DEBUG = 0x7FFFFFFF
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
#DISPLAY = gmoccapy -logo /home/gmoccapy/Bilder/coolant_on.gif
EMBED_TAB_NAME = blockdelete
EMBED_TAB_LOCATION = box_custom_4
EMBED_TAB_COMMAND = gladevcp -x {XID} -c blockdelete -H blockdelete.hal -u blockdelete.py blockdelete.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# 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
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 166
DEFAULT_LINEAR_VELOCITY = 100
MAX_ANGULAR_VELOCITY = 234
DEFAULT_SPINDLE_SPEED = 450
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm, 1.2345 inch
# 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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 35
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
#NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
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
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = go_to_position x-pos y-pos z-pos
MACRO = i_am_lost
MACRO = increment x-incr y-incr
MACRO = macro_4
MACRO = macro_5
MACRO = macro_6
MACRO = macro_7
MACRO = macro_8
MACRO = macro_9
MACRO = macro_10
MACRO = macro_11
MACRO = macro_12
MACRO = macro_13
MACRO = macro_14
MACRO = macro_15

View File

@@ -0,0 +1,188 @@
# 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 = gmoccapy_left_panel
#DEBUG = 0x7FFFFFFF
DEBUG = 0
# for details see nc_files/subroutines/maco_instructions.txt
[DISPLAY]
DISPLAY = gmoccapy
EMBED_TAB_NAME = left_side_panel
EMBED_TAB_LOCATION = box_left
EMBED_TAB_COMMAND = gladevcp -x {XID} -H v_buttonlist.hal v_buttonlist.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1mm, 0.1mm, 0.01mm, 0.001mm, 1.2345in
[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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
# First axis
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos
# Sections for display options ------------------------------------------------

View File

@@ -0,0 +1,219 @@
# 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 = gmoccapy_development
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 166
DEFAULT_LINEAR_VELOCITY = 5
MAX_ANGULAR_VELOCITY = 234
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 in
# set up 3 user popup message dialogs
# the messages support pango markup language
# detailed information about the markup language can be found at
# https://developer.gnome.org/pango/stable/PangoMarkupFormat.html
# MESSAGE_TEXT = The text to be displayed, may be pango markup formatted
# MESSAGE_TYPE = one of "status" , "okdialog" , "yesnodialog"
# status : Will just display a message as popup window, using the messsaging system of gmoccapy
# okdialog : Will hold focus on the message dialog and will activate a "-waiting" Hal_Pin OUT.
# Closing the message will reset the waiting pin
# yesnodialog : Will hold focus on the message dialog and will activate a "-waiting" Hal_Pin bit OUT
# it will also give access to an "-response" Hal_Pin Bit Out, this pin will hold 1 if the
# user clicks OK, and in all other states it will be 0
# Closing the message will reset the waiting pin
# The response Hal Pin will remain 1 until the dialog is called again
# MESSAGE_PINNAME = is the name of the hal pin group to be created
MESSAGE_TEXT = This is a <span background="#ff0000" foreground="#ffffff">info message</span> test
MESSAGE_TYPE = status
MESSAGE_PINNAME = statustest
MESSAGE_TEXT = This is a yes no dialog test
MESSAGE_TYPE = yesnodialog
MESSAGE_PINNAME = yesnodialog
MESSAGE_TEXT = Text can be <small>small</small>, <big>big</big>, <b>bold</b>, <i>italic</i> and even be <span color="red">colored</span>.
MESSAGE_TYPE = okdialog
MESSAGE_PINNAME = okdialog
# 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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
#NO_FORCE_HOMING = 1
# First axis
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
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
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos

View File

@@ -0,0 +1,189 @@
# 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 = gmoccapy_pendant
#DEBUG = 0x7FFFFFFF
DEBUG = 0
# for details see nc_files/subroutines/maco_instructions.txt
[DISPLAY]
DISPLAY = gmoccapy
EMBED_TAB_NAME = right_side_panel
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -H pendant.hal pendant.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1mm, 0.1mm, 0.01mm, 0.001mm, 1.2345in
[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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
#NO_FORCE_HOMING = 1
# First axis
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
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
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos
# Sections for display options ------------------------------------------------

View File

@@ -0,0 +1,75 @@
[DEFAULT]
dro_digits = 3
dro_size = 28
abs_color = #0000FF
rel_color = #000000
dtg_color = #FFFF00
homed_color = #00FF00
unhomed_color = #FF0000
enable_dro = False
scale_jog_vel = 140.4
scale_spindle_override = 1
scale_feed_override = 1
scale_rapid_override = 1
spindle_bar_min = 0.0
spindle_bar_max = 6000.0
turtle_jog_factor = 20
hide_turtle_jog_button = False
unlock_code = 123
toggle_readout = True
spindle_start_rpm = 300.0
kbd_height = 250
blockheight = 0.0
open_file =
screen1 = window
hide_titlebar = False
x_pos = 40
y_pos = 30
width = 979
height = 750
use_toolmeasurement = False
gtk_theme = Follow System Theme
icon_theme = classic
audio_enabled = True
audio_alert = /usr/share/sounds/freedesktop/stereo/dialog-warning.oga
audio_error = /usr/share/sounds/freedesktop/stereo/dialog-error.oga
grid_size = 1.0
view = p
mouse_btn_mode = 4
hide_cursor = False
hide_tooltips = False
system_name_tool = Tool
system_name_g5x = G5x
system_name_rot = Rot
system_name_g92 = G92
system_name_g54 = G54
system_name_g55 = G55
system_name_g56 = G56
system_name_g57 = G57
system_name_g58 = G58
system_name_g59 = G59
system_name_g59.1 = G59.1
system_name_g59.2 = G59.2
system_name_g59.3 = G59.3
jump_to_dir = /home/linuxcnc
show_keyboard_on_offset = False
show_keyboard_on_tooledit = False
show_keyboard_on_edit = False
show_keyboard_on_mdi = False
x_pos_popup = 45.0
y_pos_popup = 55
width_popup = 250.0
max_messages = 10
message_font = sans 10
use_frames = True
reload_tool = True
blockdel = False
show_offsets = False
show_dtg = False
view_tool_path = True
view_dimension = True
run_from_line = no_run
unlock_way = use
show_preview_on_offset = False
use_keyboard_shortcuts = False

View File

@@ -0,0 +1,27 @@
###################################################################
# moccapy_postgui.hal file from Norbert Schechner #
###################################################################
loadrt abs names=abs_spindle_feedback
addf abs_spindle_feedback servo-thread
net spindle-speed-limited => abs_spindle_feedback.in
net spindle-abs abs_spindle_feedback.out => gmoccapy.spindle_feedback_bar
net spindle-at-speed gmoccapy.spindle_at_speed_led
# the unlink pin commands are only used, because they are connected
# in core_sim.hal and we use this file to simulate
unlinkp iocontrol.0.tool-change
unlinkp iocontrol.0.tool-changed
unlinkp iocontrol.0.tool-prep-number
#net tool-change gmoccapy.toolchange-change <= iocontrol.0.tool-change
#net tool-changed gmoccapy.toolchange-changed <= iocontrol.0.tool-changed
#net tool-prep-number gmoccapy.toolchange-number <= iocontrol.0.tool-prep-number
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
#net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
net tooloffset-x gmoccapy.tooloffset-x <= motion.tooloffset.x
net tooloffset-z gmoccapy.tooloffset-z <= motion.tooloffset.z

View File

@@ -0,0 +1,237 @@
# 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 = gmoccapy
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
EMBED_TAB_NAME = NGC-GUI
EMBED_TAB_COMMAND = gladevcp -x {XID} pyngcgui.ui
EMBED_TAB_LOCATION = ntb_user_tabs
# these are interpreted by ngcgui:
#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 %)
# these are interpreted by touchy:
NGCGUI_PREAMBLE = mm_std.ngc
NGCGUI_SUBFILE = arc1.ngc
NGCGUI_SUBFILE = arc2.ngc
NGCGUI_SUBFILE = qpocket.ngc
NGCGUI_SUBFILE = slot.ngc
NGCGUI_SUBFILE = db25.ngc
# NGCGUI_SUBFILE = gosper.ngc
NGCGUI_SUBFILE = helix.ngc
# NGCGUI_SUBFILE = helix_rtheta.ngc
NGCGUI_SUBFILE = hole_circle.ngc
NGCGUI_SUBFILE = ihex.ngc
NGCGUI_SUBFILE = ohex.ngc
NGCGUI_SUBFILE = iquad.ngc
NGCGUI_SUBFILE = oquad.ngc
NGCGUI_SUBFILE = rectangle_probe.ngc
# NGCGUI_SUBFILE = simp.ngc
NGCGUI_SUBFILE = xyz.ngc
NGCGUI_SUBFILE = ""
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# 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
# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY = 166
DEFAULT_LINEAR_VELOCITY = 100
MAX_ANGULAR_VELOCITY = 234
DEFAULT_SPINDLE_SPEED = 450
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm, 1.2345 inch
# 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
SUBROUTINE_PATH = macros:../nc_files/ngcgui_lib:../nc_files/ngcgui_lib/utilitysubs
USER_M_PATH = ../nc_files/ngcgui_lib/mfiles
PARAMETER_FILE = sim.var
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 35
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
#NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
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
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = go_to_position x-pos y-pos z-pos
MACRO = i_am_lost
MACRO = increment x-incr y-incr
MACRO = macro_4
MACRO = macro_5
MACRO = macro_6
MACRO = macro_7
MACRO = macro_8
MACRO = macro_9
MACRO = macro_10
MACRO = macro_11
MACRO = macro_12
MACRO = macro_13
MACRO = macro_14
MACRO = macro_15

View File

@@ -0,0 +1,9 @@
Standard GMOCCCPAY configuration for a XYZ mill,
including
- example macros
- pyngcgui in embedded user tab

View File

@@ -0,0 +1,184 @@
# General section -------------------------------------------------------------
[EMC]
VERSION = 1.1
MACHINE = gmoccapy right panel
#DEBUG = 0x7FFFFFFF
DEBUG = 0
# for details see nc_files/subroutines/maco_instructions.txt
[DISPLAY]
DISPLAY = gmoccapy
EMBED_TAB_NAME = right_side_panel
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -x {XID} -H vcp_box.hal vcp_box.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1mm, 0.1mm, 0.01mm, 0.001mm, 1.2345in
[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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
# First axis
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos
# Sections for display options ------------------------------------------------

View File

@@ -0,0 +1,190 @@
# General section -------------------------------------------------------------
[EMC]
VERSION = 1.1
MACHINE = gmoccapy sim hardware button
#DEBUG = 0x7FFFFFFF
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
# this is to create separate windows and the corresponding hal files,
# the name and location are only needed, because gscreen needs them to
# initialize the tabs and then execute the command
EMBED_TAB_NAME = left_side_panel
EMBED_TAB_LOCATION = box_left
EMBED_TAB_COMMAND = gladevcp -g 64x697+997+10 -H v_buttonlist.hal v_buttonlist.glade
EMBED_TAB_NAME = right_side_panel
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -g 995x64+0+805 -H h_buttonlist.hal h_buttonlist.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1mm, 0.1mm, 0.01mm, 0.001mm, 1.2345in
# 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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
# First axis
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos

View File

@@ -0,0 +1,221 @@
# General section -------------------------------------------------------------
[EMC]
VERSION = 1.1
MACHINE = gmoccapy tool sensor
DEBUG = 0x00080000
#DEBUG = 0x7FFFFFFF
# for details see nc_files/subroutines/maco_instructions.txt
#[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
# We do explicit give an preference file here, because otherwise
# the sim may not work on other computers. That is also the reason
# we use the prefix para, so it will not be ignored from git
PREFERENCE_FILE_PATH = gmoccapy_tool_sensor.para
EMBED_TAB_NAME = tool sensor
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -x {XID} -H tool_sensor.hal tool_sensor.glade
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
DEFAULT_SPINDLE_SPEED = 450
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.0 mm, 0.1 mm, 0.01 mm, 0.001 mm
[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
# optional features - a bit mask to selectively turn on experimental/dubious features
# see
# RETAIN_G43 0x00000001
# OWORD_N_ARGS 0x00000002
# INI_VARS 0x00000004
# HAL_PIN_VARS 0x00000008
# NO_DOWNCASE_OWORD 0x00000010
# turn on all optional features
# turn on optional features in this case just INI reading
FEATURES=12
ON_ABORT_COMMAND=O <on_abort> call
# parameters exposed by change_prolog/evaluated by change_epilog:
# #<tool_in_spindle>
# #<selected_tool>
# #<current_pocket>
# #<selected_pocket>
REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog
# accessible in interp as #<_[section]name>
# start of tool length touchoff probe
[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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
#NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = 0
MAX_LIMIT = 150.0
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
STEPGEN_MAXACCEL = 750.5
SCALE = 266.6666
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = 0
MAX_LIMIT = 150.0
HOME_OFFSET = 0.0
HOME = 10.000
HOME_SEARCH_VEL = 30
HOME_LATCH_VEL = 10
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
[AXIS_Y]
MIN_LIMIT = 0
MAX_LIMIT = 110.0
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
STEPGEN_MAXACCEL = 750.5
SCALE = 266.6666
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = 0
MAX_LIMIT = 110.0
HOME_OFFSET = 0.0
HOME = 10.000
HOME_SEARCH_VEL = 30
HOME_LATCH_VEL = 10
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -100.0
MAX_LIMIT = 0
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
STEPGEN_MAXACCEL = 750.5
SCALE = 266.6666
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -100.0
MAX_LIMIT = 0
HOME_OFFSET = 0.0
HOME = -10.000
HOME_SEARCH_VEL = 30
HOME_LATCH_VEL = 10
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
# section for main IO controller parameters -----------------------------------
[TOOLSENSOR]
X = 10
Y = 10
Z = -20
# abort change if no toolsensor contact after this probe distance
MAXPROBE = -20
# this is not named TOOL_CHANGE_POSITION on purpose - canon uses it and will
# interfere
[CHANGE_POSITION]
X = 10
Y = 10
Z = -2
# the Python plugins serves interpreter and task
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
LOG_LEVEL = 8
# Motion control section ------------------------------------------------------

View File

@@ -0,0 +1,80 @@
[DEFAULT]
dro_size = 28
abs_color = #0000FF
rel_color = #000000
dtg_color = #FFFF00
homed_color = #00FF00
unhomed_color = #FF0000
spindle_bar_min = 0.0
spindle_bar_max = 6000.0
unlock_code = 123
probeheight = 22.0
searchvel = 75.0
probevel = 10.0
use_toolmeasurement = True
blockheight = 55.0
spindle_start_rpm = 300.0
scale_jog_vel = 140.4
scale_spindle_override = 1
scale_feed_override = 1
scale_rapid_override = 1
hide_turtle_jog_button = False
turtle_jog_factor = 20
open_file =
screen1 = window
x_pos = 40
y_pos = 30
width = 979
height = 750
use_screen2 = False
gtk_theme = Follow System Theme
audio_alert = /usr/share/sounds/freedesktop/stereo/dialog-warning.oga
audio_error = /usr/share/sounds/freedesktop/stereo/dialog-error.oga
grid_size = 1.0
view = p
mouse_btn_mode = 4
hide_cursor = False
system_name_tool = Tool
system_name_g5x = G5x
system_name_rot = Rot
system_name_g92 = G92
system_name_g54 = G54
system_name_g55 = G55
system_name_g56 = G56
system_name_g57 = G57
system_name_g58 = G58
system_name_g59 = G59
system_name_g59.1 = G59.1
system_name_g59.2 = G59.2
system_name_g59.3 = G59.3
jump_to_dir = /home/emcmesa
show_keyboard_on_offset = False
show_keyboard_on_tooledit = False
show_keyboard_on_edit = True
show_keyboard_on_mdi = True
show_keyboard_on_file_selection = False
x_pos_popup = 45.0
y_pos_popup = 55
width_popup = 250.0
max_messages = 10
message_font = sans 10
use_frames = True
reload_tool = True
blockdel = False
opstop = False
enable_dro = False
show_offsets = False
show_dtg = False
view_tool_path = True
view_dimension = True
run_from_line = no_run
unlock_way = use
show_preview_on_offset = False
use_keyboard_shortcuts = False
dro_digits = 3
toggle_readout = True
tool_in_spindle = 5
offset_axis_x = 0.0
offset_axis_y = 0.0
offset_axis_z = 0.0

View File

@@ -0,0 +1,207 @@
# 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 = gmoccapy with user tabs
#DEBUG = 0x7FFFFFFF
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = gmoccapy
#EMBED_TAB_NAME = right_side_panel
#EMBED_TAB_LOCATION = box_right
#EMBED_TAB_COMMAND = gladevcp -x {XID} v_buttonlist.glade
#EMBED_TAB_NAME = left_side_panel
#EMBED_TAB_LOCATION = box_left
#EMBED_TAB_COMMAND = gladevcp -x {XID} vcp_box.glade
EMBED_TAB_NAME = 6 Button
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND = gladevcp -x {XID} button.glade
EMBED_TAB_NAME = DRO
EMBED_TAB_LOCATION = ntb_user_tabs
EMBED_TAB_COMMAND = gladevcp -x {XID} dro.glade
EMBED_TAB_NAME = Second user tab
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND = gladevcp -x {XID} -H vcp_box.hal vcp_box.glade
#EMBED_TAB_NAME = Camera
#EMBED_TAB_LOCATION = ntb_user_tabs
#EMBED_TAB_COMMAND = camview-emc -w {XID}
# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.5
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = .5
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm, 1.2345 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
# 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 = gmoccapy_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[HALUI]
#No Content
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 9.0
MAX_LINEAR_VELOCITY = 234
POSITION_FILE = position.txt
# First axis
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
# Second axis
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
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 = -400.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 166
MAX_ACCELERATION = 1500.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -400.0
MAX_LIMIT = 0.001
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 200.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
# section for main IO controller parameters -----------------------------------
[MACROS]
MACRO = i_am_lost
MACRO = halo_world
MACRO = jog_around
MACRO = increment xinc yinc
MACRO = go_to_position X-pos Y-pos Z-pos

View File

@@ -0,0 +1,2 @@
GMOCCAPY configuration demonstrating the capabilities of using user tabs.

View File

@@ -0,0 +1,165 @@
<?xml version="1.0"?>
<interface>
<!-- interface-requires gladevcp 0.0 -->
<!-- interface-requires gtk+ 2.8 -->
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<child>
<object class="GtkHButtonBox" id="hbuttonbox1">
<property name="visible">True</property>
<property name="homogeneous">True</property>
<property name="layout_style">spread</property>
<child>
<object class="HAL_Button" id="h_button_0">
<property name="label" translatable="yes">h_button_0</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_1">
<property name="label" translatable="yes">h_button_1</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_2">
<property name="label" translatable="yes">h_button_2</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_3">
<property name="label" translatable="yes">h_button_3</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_4">
<property name="label" translatable="yes">h_button_4</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_5">
<property name="label" translatable="yes">h_button_5</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_6">
<property name="label" translatable="yes">h_button_6</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_7">
<property name="label" translatable="yes">h_button_7</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_8">
<property name="label" translatable="yes">h_button_8</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="h_button_9">
<property name="label" translatable="yes">h_button_9</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">9</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,15 @@
###################################################################
# gmoccapy hal file from Norbert Schechner #
###################################################################
net h_hardware_button_0 h_buttonlist.h_button_0 => gmoccapy.h-button.button-0
net h_hardware_button_1 h_buttonlist.h_button_1 => gmoccapy.h-button.button-1
net h_hardware_button_2 h_buttonlist.h_button_2 => gmoccapy.h-button.button-2
net h_hardware_button_3 h_buttonlist.h_button_3 => gmoccapy.h-button.button-3
net h_hardware_button_4 h_buttonlist.h_button_4 => gmoccapy.h-button.button-4
net h_hardware_button_5 h_buttonlist.h_button_5 => gmoccapy.h-button.button-5
net h_hardware_button_6 h_buttonlist.h_button_6 => gmoccapy.h-button.button-6
net h_hardware_button_7 h_buttonlist.h_button_7 => gmoccapy.h-button.button-7
net h_hardware_button_8 h_buttonlist.h_button_8 => gmoccapy.h-button.button-8
net h_hardware_button_9 h_buttonlist.h_button_9 => gmoccapy.h-button.button-9

View File

@@ -0,0 +1,119 @@
<?xml version="1.0"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-requires gladevcp 0.0 -->
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<child>
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="spacing">4</property>
<child>
<object class="JogWheel" id="jog-wheel-spindle">
<property name="visible">True</property>
<property name="show_counts">False</property>
<property name="label">Spindle</property>
<property name="size">100</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="JogWheel" id="jog-wheel-feed">
<property name="visible">True</property>
<property name="show_counts">False</property>
<property name="label">Feed</property>
<property name="size">100</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox3">
<property name="visible">True</property>
<child>
<object class="JogWheel" id="jog-wheel-jog">
<property name="visible">True</property>
<property name="show_counts">False</property>
<property name="label">Jog. Vel.</property>
<property name="size">100</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="JogWheel" id="jog-wheel-max">
<property name="visible">True</property>
<property name="show_counts">False</property>
<property name="label">Max. Vel.</property>
<property name="size">100</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="JogWheel" id="jog-wheel-x">
<property name="visible">True</property>
<property name="label">Axis X</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="JogWheel" id="jog-wheel-y">
<property name="visible">True</property>
<property name="label">Axis Y</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="JogWheel" id="jog-wheel-z">
<property name="visible">True</property>
<property name="label">Axis Z</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,16 @@
# connect encoder count, select the one you need
net jog-spindle jogwheel.jog-wheel-spindle => gmoccapy.spindle-override-counts
net jog-feed jogwheel.jog-wheel-feed => gmoccapy.feed-override-counts
net jog-max-vel jogwheel.jog-wheel-max => gmoccapy.max-vel-counts
net jog-jog jogwheel.jog-wheel-jog => gmoccapy.jog-speed-counts
net jog-x jogwheel.jog-wheel-x => axis.0.jog-counts
net jog-y jogwheel.jog-wheel-y => axis.1.jog-counts
net jog-z jogwheel.jog-wheel-z => axis.2.jog-counts
setp axis.0.jog-enable 1
setp axis.1.jog-enable 1
setp axis.2.jog-enable 1
net scale axis.2.jog-scale <= axis.1.jog-scale <= axis.0.jog-scale <= gmoccapy.jog-increment

5
configs/sim.gmoccapy/lathe.tbl Executable file
View File

@@ -0,0 +1,5 @@
T1 P1 D0.400000 X-120.000000 Z-25.000000 I+26.000000 J+86.000000 Q2 ;60 Grad vorn
T2 P2 D0.100000 X-36.337581 Z+39.000000 I+50.000000 J+85.000000 Q2 ;35 Grad vorn
T3 P3 D0.400000 X-54.337581 Z-160.258367 I-80.000000 J-25.000000 Q3 ;55 Grad vorn
T4 P4 D0.100000 I+94.000000 J+154.000000 Q1 ;60 Grad Rück
T5 P5 D0.100000 X+5.737000 Z+12.239900 Q6 ;Einstichstahl

10
configs/sim.gmoccapy/left.hal Executable file
View File

@@ -0,0 +1,10 @@
net v_hardware_button_0 v_buttonlist.v_button_0 => gmoccapy.v-button-0
net v_hardware_button_1 v_buttonlist.v_button_1 => gmoccapy.v-button-1
net v_hardware_button_2 v_buttonlist.v_button_2 => gmoccapy.v-button-2
net v_hardware_button_3 v_buttonlist.v_button_3 => gmoccapy.v-button-3
net v_hardware_button_4 v_buttonlist.v_button_4 => gmoccapy.v-button-4
net v_hardware_button_5 v_buttonlist.v_button_5 => gmoccapy.v-button-5
net v_hardware_button_6 v_buttonlist.v_button_6 => gmoccapy.v-button-6

View File

@@ -0,0 +1,13 @@
###################################################################
# gmoccapy hal file from Norbert Schechner #
###################################################################
net v_button_0 v_buttonlist.v_button_0 => gmoccapy.v-button-0
net v_button_1 v_buttonlist.v_button_1 => gmoccapy.v-button-1
net v_button_2 v_buttonlist.v_button_2 => gmoccapy.v-button-2
net v_button_3 v_buttonlist.v_button_3 => gmoccapy.v-button-3
net v_button_4 v_buttonlist.v_button_4 => gmoccapy.v-button-4
net v_button_5 v_buttonlist.v_button_5 => gmoccapy.v-button-5
net v_button_6 v_buttonlist.v_button_6 => gmoccapy.v-button-6

View File

@@ -0,0 +1,75 @@
o<change> sub
;(debug, in change tool_in_spindle=#<tool_in_spindle> current_pocket=#<current_pocket>)
;(debug, selected_tool=#<selected_tool> selected_pocket=#<selected_pocket>)
;otherwise after the M6 this information is gone!
#<tool> = #<selected_tool>
#<pocket> = #<selected_pocket>
; we must execute this only in the milltask interpreter
; or preview will break, so test for '#<_task>' which is 1 for
; the milltask interpreter and 0 in the UI's
O100 if [#<_task> EQ 0]
(debug, Task ist Null)
O100 return [999]
O100 endif
;first go up
G53 G0 Z[#<_ini[CHANGE_POSITION]Z>]
; then move to change position
G53 G0 X[#<_ini[CHANGE_POSITION]X>] Y[#<_ini[CHANGE_POSITION]Y>]
; cancel tool offset
G49
; using the code being remapped here means 'use builtin behaviour'
M6
O200 if [#<_hal[gmoccapy.toolmeasurement]> EQ 0]
O200 return [3] ; indicate no tool measurement
O200 endif
G53 G0 X[#<_ini[TOOLSENSOR]X>] Y[#<_ini[TOOLSENSOR]Y>]
G53 G0 Z[#<_ini[TOOLSENSOR]Z>]
O300 if [#<_hal[gmoccapy.searchvel]> LE 0]
O300 return [-1] ; indicate searchvel <= 0
O300 endif
O400 if [#<_hal[gmoccapy.probevel]> LE 0]
O400 return [-2] ; indicate probevel <= 0
O400 endif
F #<_hal[gmoccapy.searchvel]>
G91
G38.2 Z #<_ini[TOOLSENSOR]MAXPROBE>
G0 Z2
; This is commented out only for sim.
;F #<_hal[gmoccapy.probevel]>
;G38.2 Z-4
O500 if [#5070 EQ 0]
G90
O500 return [-3] ; indicate probe contact failure to epilog
O500 endif
G90
G53 G0 Z[#<_ini[CHANGE_POSITION]Z>]
#<touch_result> = #5063
#<probeheight> = #<_hal[gmoccapy.probeheight]>
#<blockheight> = #<_hal[gmoccapy.blockheight]>
;(DEBUG, #<touch_result> #<probeheight> #<blockheight>)
G10 L1 P#<tool> Z[#<touch_result> - #<_hal[gmoccapy.probeheight]> + #<_hal[gmoccapy.blockheight]>]
G43
;G10 L1 P#<tool> Z#<touch_result>
;G10 L2 P0 Z[#<workpieceheight> + #<probeheight> + #<touch_result>]
; signal success be returning a value > 0:
o<change> endsub [1]

View File

@@ -0,0 +1,27 @@
; Testfile go to position
; will jog the machine to a position to give
; the image path must be relative from your config dir or absolute, "~" is allowed
(IMAGE, ./macros/images/goto_x_y_z.png)
O<go_to_position> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<go_to_position> endsub
M2

View File

@@ -0,0 +1,26 @@
; Testfile I am Lost
; will just give messages
O<halo_world> sub
G17
G21
G54
G61
G40
G49
G80
G90
G0 X10
(MSG, Hallo Welt)
(MSG, halo world)
(MSG, why does this apeera as an error?)
G0X-10
O<halo_world> endsub
M2

View File

@@ -0,0 +1,27 @@
; Testfile I am Lost
; will jog to machine cero and set all axis to cero
; the image path must be relative from your config dir or absolute, "~" is allowed
(IMAGE, ./macros/images/i_am_lost.png)
O<i_am_lost> sub
G17
G21
G54
G61
G40
G49
G80
G90
(MSG, Will now move to machine cero)
G53 G0 X0 Y0 Z0
(MSG, will now set all axis to cero)
G10 L20 P0 X0 Y0 Z0
(MSG, all done)
O<i_am_lost> endsub
M2

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View File

@@ -0,0 +1,22 @@
; Testfile I am Lost
; will jog to machine cero and set all axis to cero
O<increment> sub
G17
G21
G54
G61
G40
G49
G80
G90
G91 G0 X#1 Y#2
G90
(DEBUG, X was [#1] and Y was [#2])
O<increment> endsub
M2

View File

@@ -0,0 +1,29 @@
; Testfile I am Lost
; will just jog a little bit around
O<jog_around> sub
G17
G21
G54
G61
G40
G49
G80
G90
G91 G0 X 25
Y-25
Z-25
Y25
X-25
Z25
F250
G2 I 25
(MSG, It is done!)
O<jog_around> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_0> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_0> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_1> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_1> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_10> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_10> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_11> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_11> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_12> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_12> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_13> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_13> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_14> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_14> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_15> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_15> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_2> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_2> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_3> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_3> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_4> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_4> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_5> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_5> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_6> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_6> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_7> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_7> endsub
M2

View File

@@ -0,0 +1,27 @@
; Testfile go to position
; will jog the machine to a position to give
; the image path must be relative from your config dir or absolute, "~" is allowed
(IMAGE, ./macros/images/macro_8.png)
O<macro_8> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_8> endsub
M2

View File

@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a position to give
O<macro_9> sub
G17
G21
G54
G61
G40
G49
G80
G90
;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>
(DBG, Will now move machine to X = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3
O<macro_9> endsub
M2

View File

@@ -0,0 +1,44 @@
This is a small instruction to include macros in gmoccapy.
In your INI File you need to introduce a section called [MACROS]
and for every macro you'll need to include a one-liner like so:
MACRO = jog_around
or
MACRO = increment xinc yinc
where xinc and yinc are placeholders
During execution of the macro, you will be asked to enter the values.
You are allowed to introduce 9 macros!
If you enter more macros, only the first 9 will appear with button in gmoccapy.
In the [RS274NGC] section you may want to give a path to your macros like so:
[RS274NGC]
SUBROUTINE_PATH = nc_files/subroutines
or you place your macros in the nc_files folder.
Each macro must have it's own file in one of the mentioned folders and they are normal subroutines, so the must begin with:
O<jog_around> sub
and end with
O<jog_around> endsub
M2
The name of the file must be jog_around.ngc.
And an macro must contain at least one movement of one axis.
macro name in INI file have to be the same as the file name and the sub must have also the same name (case sensitive!)!
BE CAREFUL:
At this development step, the macros can only be interrupted by pressing the machine off button or the emergency exit button! I will check how to make this more secure!
Hope this does help.
Norbert

View File

@@ -0,0 +1,9 @@
%
o<on_abort> sub
G90
G40
G49
o<on_abort> endsub
%

View File

@@ -0,0 +1,401 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gladevcp 0.0 -->
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
<child>
<object class="GtkVButtonBox" id="vbuttonbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="HAL_RadioButton" id="feed">
<property name="label" translatable="yes">feed</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">override-off</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="spindle">
<property name="label" translatable="yes">spindle</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">override-off</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="JogWheel" id="override-wheel-counts">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">Spindle</property>
<property name="show_counts">False</property>
<property name="size">100</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkVButtonBox" id="vbuttonbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="HAL_RadioButton" id="rapid">
<property name="label" translatable="yes">rapid</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">override-off</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="jogvel">
<property name="label" translatable="yes">jog vel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">override-off</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHButtonBox" id="hbuttonbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="HAL_RadioButton" id="override-off">
<property name="label" translatable="yes">Off</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="height_request">50</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes"> </property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="JogWheel" id="jog-wheel-counts">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">Axis X</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVButtonBox" id="vbuttonbox3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="HAL_RadioButton" id="jog-off">
<property name="label" translatable="yes">Off</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="jog-x">
<property name="label" translatable="yes">X</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">jog-off</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="jog-y">
<property name="label" translatable="yes">Y</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">jog-off</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="jog-z">
<property name="label" translatable="yes">Z</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
<property name="group">jog-off</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
</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">3</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0.5</property>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">5</property>
<property name="bottom_padding">5</property>
<property name="left_padding">5</property>
<property name="right_padding">5</property>
<child>
<object class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="n_rows">2</property>
<property name="n_columns">3</property>
<child>
<object class="HAL_RadioButton" id="rbt_incr_0">
<property name="label" translatable="yes">OFF</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
</object>
</child>
<child>
<object class="HAL_RadioButton" id="rbt_incr_1">
<property name="label" translatable="yes">1,000</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="draw_indicator">False</property>
<property name="group">rbt_incr_0</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="rbt_incr_2">
<property name="label" translatable="yes">0,100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="draw_indicator">False</property>
<property name="group">rbt_incr_0</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="rbt_incr_3">
<property name="label" translatable="yes">0,010</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="draw_indicator">False</property>
<property name="group">rbt_incr_0</property>
</object>
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="rbt_incr_4">
<property name="label" translatable="yes">0,001</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="draw_indicator">False</property>
<property name="group">rbt_incr_0</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
<child>
<object class="HAL_RadioButton" id="rbt_incr_5">
<property name="label" translatable="yes">1,1234</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="yalign">0.4699999988079071</property>
<property name="draw_indicator">False</property>
<property name="group">rbt_incr_0</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="lbl_og_Increments">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;b&gt;Jog Increments&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,48 @@
# connect encoder count, select the one you need
net jog-counts pendant.jog-wheel-counts
net jog-counts axis.x.jog-counts
net jog-counts axis.y.jog-counts
net jog-counts axis.z.jog-counts
net jog-x axis.x.jog-enable <= pendant.jog-x
net jog-y axis.y.jog-enable <= pendant.jog-y
net jog-z axis.z.jog-enable <= pendant.jog-z
# Set the scales per count / Faktor je count setzen
# we could set them to fix value like
# setp axis.z.jog-scale 0.05
# setp axis.y.jog-scale 0.05
# setp axis.x.jog-scale 0.05
# but also better do connect them to the jog- increments of gmoccapy.
net scale axis.z.jog-scale <= axis.y.jog-scale <= axis.x.jog-scale <= gmoccapy.jog.jog-increment
# Connect all counts to Jogwheel-counts / Alle count san Jogwheel-counts anbinden
net override-counts pendant.override-wheel-counts
net override-counts gmoccapy.rapid.rapid-override.counts
net override-counts gmoccapy.feed.feed-override.counts
net override-counts gmoccapy.spindle.spindle-override.counts
net override-counts gmoccapy.jog.jog-velocity.counts
# the scales of the counts are set on the settings page of the GUI, not here
# this is different from using halui pin!!
# jog velocity mode on (1) or off(0) / Geschwindigkeitsmodus an (1) oder aus (0)
# 0 is default / 0 ist Standardwert
# Mode 0 : after spinning the dial, axis may go on moving, because counts are still pending, Mode 1 will ignore pending steps
# Mode 0 : Nach dem drehen des Handrades kann die Achse noch weiterlaufen, da noch Schritte auszuführen sind. Mode 1 hält sofort an
setp axis.x.jog-vel-mode 1
setp axis.y.jog-vel-mode 1
setp axis.z.jog-vel-mode 1
net feed gmoccapy.feed.feed-override.count-enable <= pendant.feed
net spindle gmoccapy.spindle.spindle-override.count-enable <= pendant.spindle
net maxvel gmoccapy.rapid.rapid-override.count-enable <= pendant.rapid
net jogvel gmoccapy.jog.jog-velocity.count-enable <= pendant.jogvel
net incr-0 gmoccapy.jog.jog-inc-0 <= pendant.rbt_incr_0
net incr-1 gmoccapy.jog.jog-inc-1 <= pendant.rbt_incr_1
net incr-2 gmoccapy.jog.jog-inc-2 <= pendant.rbt_incr_2
net incr-3 gmoccapy.jog.jog-inc-3 <= pendant.rbt_incr_3
net incr-4 gmoccapy.jog.jog-inc-4 <= pendant.rbt_incr_4
net incr-5 gmoccapy.jog.jog-inc-5 <= pendant.rbt_incr_5

View File

@@ -0,0 +1,16 @@
7.99200000000011812
8.76600000000014745
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<property name="resizable">False</property>
<property name="default_width">712</property>
<property name="default_height">200</property>
<child>
<object class="PyNgcGui" id="pyngcgui1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_keyboard">False</property>
<property name="debug">False</property>
<property name="verbose">False</property>
<property name="send_function_name">default_send</property>
<property name="send_to_dir"></property>
<property name="control_font_name"></property>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,19 @@
# This is a component of LinuxCNC
# Copyright 2011, 2012, 2013, 2014 Dewey Garrett <dgarrett@panix.com>,
# Michael Haberler <git@mah.priv.at>, Norbert Schechner <nieson@web.de>
#
# 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 *

View File

@@ -0,0 +1,200 @@
#NOTE:
# The legacy names *selected_pocket* and *current_pocket* actually reference
# a sequential tooldata index for tool items loaded from a tool
# table ([EMCIO]TOOL_TABLE) or via a tooldata database ([EMCIO]DB_PROGRAM)
# This is a component of LinuxCNC
# Copyright 2014 Norbert Schechner <nieson@web.de>
#
# 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.
#
# gmoccapy - Remap of M6 for auto tool measurement
import os
import sys
import emccanon
from interpreter import *
from gscreen import preferences
throw_exceptions = 1
debug = False
if debug:
pydevdir = '/home/emcmesa/Aptana_Studio_3/plugins/org.python.pydev_2.7.0.2013032300/pysrc'
# the 'emctask' module is present only in the milltask instance, otherwise both the UI and
# milltask would try to connect to the debug server.
if os.path.isdir( pydevdir ) and 'emctask' in sys.builtin_module_names:
sys.path.append( pydevdir )
sys.path.insert( 0, pydevdir )
try:
import pydevd
emccanon.MESSAGE( "pydevd imported, connecting to Eclipse debug server..." )
pydevd.settrace()
except:
emccanon.MESSAGE( "no pydevd module found" )
pass
# REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog
# exposed parameters:
# #<tool_in_spindle>
# #<selected_tool>
# #<current_pocket>
# #<selected_pocket>
def change_prolog(self, **words):
try:
# this is relevant only when using iocontrol-v2.
if self.params[5600] > 0.0:
if self.params[5601] < 0.0:
self.set_errormsg("Toolchanger hard fault %d" % (int(self.params[5601])))
return INTERP_ERROR
print("change_prolog: Toolchanger soft fault %d" % int(self.params[5601]))
if self.selected_pocket < 0:
self.set_errormsg("M6: no tool prepared")
return INTERP_ERROR
if self.cutter_comp_side:
self.set_errormsg("Cannot change tools with cutter radius compensation on")
return INTERP_ERROR
self.params["tool_in_spindle"] = self.current_tool
self.params["selected_tool"] = self.selected_tool
self.params["current_pocket"] = self.current_pocket # this is probably nonsense
self.params["selected_pocket"] = self.selected_pocket
return INTERP_OK
except Exception as e:
self.set_errormsg("M6/change_prolog: %s" % (e))
return INTERP_ERROR
def change_epilog(self, **words):
try:
if not self.value_returned:
r = self.blocks[self.remap_level].executing_remap
self.set_errormsg("the %s remap procedure %s did not return a value"
% (r.name,r.remap_ngc if r.remap_ngc else r.remap_py))
return INTERP_ERROR
if self.return_value > 0.0:
if self.return_value == 3:
message = "No tool measurement ! Please take care of the entry in the tool table"
emccanon.MESSAGE(message)
return INTERP_OK
else:
if self.return_value == -1:
message = "Searchvel <= 0, not permitted!, Please correct INI Settings."
elif self.return_value == -2:
message = "Probevel <= 0, not permitted!, Please correct INI Settings."
elif self.return_value == -3:
message = "Probe contact failure !!"
else:
message = "M6 aborted (return code %.1f)" % (self.return_value)
self.set_errormsg(message)
return INTERP_ERROR
except Exception as e:
self.set_errormsg("M6/change_epilog: %s" % (e))
return INTERP_ERROR
_uvw = ("u","v","w","a","b","c")
_xyz = ("x","y","z","a","b","c")
# given a plane, return sticky words, incompatible axis words and plane name
# sticky[0] is also the movement axis
_compat = {
emccanon.CANON_PLANE_XY : (("z","r"),_uvw,"XY"),
emccanon.CANON_PLANE_YZ : (("x","r"),_uvw,"YZ"),
emccanon.CANON_PLANE_XZ : (("y","r"),_uvw,"XZ"),
emccanon.CANON_PLANE_UV : (("w","r"),_xyz,"UV"),
emccanon.CANON_PLANE_VW : (("u","r"),_xyz,"VW"),
emccanon.CANON_PLANE_UW : (("v","r"),_xyz,"UW")}
# extract and pass parameters from current block, merged with extra parameters on a continuation line
# keep tjose parameters across invocations
# export the parameters into the oword procedure
def cycle_prolog(self,**words):
# self.sticky_params is assumed to have been initialized by the
# init_stgdlue() method below
global _compat
try:
# determine whether this is the first or a subsequent call
c = self.blocks[self.remap_level]
r = c.executing_remap
if c.g_modes[1] == r.motion_code:
# first call - clear the sticky dict
self.sticky_params[r.name] = dict()
self.params["motion_code"] = c.g_modes[1]
(sw,incompat,plane_name) =_compat[self.plane]
for (word,value) in words.items():
# inject current parameters
self.params[word] = value
# record sticky words
if word in sw:
if self.debugmask & 0x00080000: print("%s: record sticky %s = %.4f" % (r.name,word,value))
self.sticky_params[r.name][word] = value
if word in incompat:
return "%s: Cannot put a %s in a canned cycle in the %s plane" % (r.name, word.upper(), plane_name)
# inject sticky parameters which were not in words:
for (key,value) in self.sticky_params[r.name].items():
if not key in words:
if self.debugmask & 0x00080000: print("%s: inject sticky %s = %.4f" % (r.name,key,value))
self.params[key] = value
if not "r" in self.sticky_params[r.name]:
return "%s: cycle requires R word" % (r.name)
else:
if self.sticky_params[r.name] <= 0.0:
return "%s: R word must be > 0 if used (%.4f)" % (r.name, words["r"])
if "l" in words:
# checked in interpreter during block parsing
# if l <= 0 or l not near an int
self.params["l"] = words["l"]
if "p" in words:
p = words["p"]
if p < 0.0:
return "%s: P word must be >= 0 if used (%.4f)" % (r.name, p)
self.params["p"] = p
if self.feed_rate == 0.0:
return "%s: feed rate must be > 0" % (r.name)
if self.feed_mode == INVERSE_TIME:
return "%s: Cannot use inverse time feed with canned cycles" % (r.name)
if self.cutter_comp_side:
return "%s: Cannot use canned cycles with cutter compensation on" % (r.name)
return INTERP_OK
except Exception as e:
raise
return "cycle_prolog failed: %s" % (e)
# make sure the next line has the same motion code, unless overridden by a
# new G-code
def cycle_epilog(self,**words):
try:
c = self.blocks[self.remap_level]
self.motion_mode = c.executing_remap.motion_code # retain the current motion mode
return INTERP_OK
except Exception as e:
return "cycle_epilog failed: %s" % (e)
# this should be called from TOPLEVEL __init__()
def init_stdglue(self):
self.sticky_params = dict()

View File

@@ -0,0 +1,20 @@
# This is a component of LinuxCNC
# Copyright 2011, 2013, 2014 Dewey Garrett <dgarrett@panix.com>,
# Michael Haberler <git@mah.priv.at>, Norbert Schechner <nieson@web.de>
#
# 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

119
configs/sim.gmoccapy/sim.var Executable file
View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

119
configs/sim.gmoccapy/sim.var.bak Executable file
View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,32 @@
loadrt or2 names=or2_0
loadrt comp names=comp_x,comp_y,comp_z
net Xhomeswpos => comp_x.in0
net Yhomeswpos => comp_y.in0
net Zhomeswpos => comp_z.in0
sets Xhomeswpos 1
sets Yhomeswpos .5
sets Zhomeswpos 2
net Xpos => comp_x.in1
net Ypos => comp_y.in1
net Zpos => comp_z.in1
setp comp_x.hyst .02
setp comp_y.hyst .02
setp comp_z.hyst .02
net Xhomesw <= comp_x.out
net Yhomesw <= comp_y.out => joint.1.home-sw-in
net Zhomesw <= comp_z.out
net Xhomesw => or2_0.in0
net Zhomesw => or2_0.in1
net XZhomesw or2_0.out => joint.0.home-sw-in joint.2.home-sw-in
addf comp_x servo-thread
addf comp_y servo-thread
addf comp_z servo-thread
addf or2_0 servo-thread

View File

@@ -0,0 +1,21 @@
loadrt comp names=comp_x,comp_z
addf comp_x servo-thread
addf comp_z servo-thread
net Xhomeswpos => comp_x.in0
net Zhomeswpos => comp_z.in0
sets Xhomeswpos 1
sets Zhomeswpos 2
net Xpos => comp_x.in1
net Zpos => comp_z.in1
setp comp_x.hyst .02
setp comp_z.hyst .02
net Xhomesw <= comp_x.out => joint.0.home-sw-in
net Zhomesw <= comp_z.out => joint.1.home-sw-in

View File

@@ -0,0 +1,69 @@
# counting the spindle encoder in software
loadrt encoder names=encoder_0
# simulate the encoder
loadrt sim_encoder names=sim_encoder_0
loadrt limit2 names=limit_speed
addf limit_speed servo-thread
#######################################################
# Beginning of threading related stuff
#######################################################
# spindle speed control
net spindle-speed-cmd spindle.0.speed-out => limit_speed.in
net spindle-speed-limited limit_speed.out => sim_encoder_0.speed
# simulate spindle mass
setp limit_speed.maxv 3000.0 # rpm/second
# spindle encoder
# connect encoder signals to encoder counter
net spindle-phase-A sim_encoder_0.phase-A => encoder_0.phase-A
net spindle-phase-B sim_encoder_0.phase-B => encoder_0.phase-B
net spindle-phase-Z sim_encoder_0.phase-Z => encoder_0.phase-Z
# assume 120 ppr = 480 counts/rev for the spindle
setp sim_encoder_0.ppr 12
# iocontrol output is in rpm, but sim-encoder speed is rps
setp sim_encoder_0.scale 60
# scale encoder output to read in revolutions
# (that way thread pitches can be straightforward,
# a 20 tpi thread would multiply the encoder output
# by 1/20, etc)
setp encoder_0.position-scale 48
# encoder reset control
# hook up motion controller's sync output
net spindle-index-enable spindle.0.index-enable <=> encoder_0.index-enable
# report our revolution count to the motion controller
net spindle-pos encoder_0.position => spindle.0.revs
# for spindle velocity estimate
loadrt lowpass names=lowpass_velocity
loadrt scale names=scale_to_rpm
net spindle-rps-raw encoder_0.velocity lowpass_velocity.in
net spindle-rps-filtered lowpass_velocity.out scale_to_rpm.in spindle.0.speed-in
net spindle-rpm-filtered scale_to_rpm.out
setp scale_to_rpm.gain 60
setp lowpass_velocity.gain .07
addf lowpass_velocity servo-thread
addf scale_to_rpm servo-thread
# for at-speed detection
loadrt near names=near_speed
addf near_speed servo-thread
setp near_speed.scale 1.1
setp near_speed.difference 10
net spindle-speed-cmd => near_speed.in1
net spindle-rpm-filtered => near_speed.in2
net spindle-at-speed near_speed.out spindle.0.at-speed
net spindle-fwd <= spindle.0.forward
addf encoder.capture-position servo-thread
addf sim-encoder.update-speed servo-thread
addf sim-encoder.make-pulses base-thread
addf encoder.update-counters base-thread

18
configs/sim.gmoccapy/tool.tbl Executable file
View File

@@ -0,0 +1,18 @@
T1 P101 X0.0 Y0.0 Z-12.7129 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D1.0 I0.0 J0.0 Q0.0 ;3/4 roughing
T2 P2 X0.0 Y0.0 Z-0.01 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D2.0 I0.0 J0.0 Q0.0 ;3/4 2 flute
T3 P3 X0.0 Y0.0 Z33.3877 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D3.0 I0.0 J0.0 Q0.0 ;2-1/4 face mill
T4 P4 X0.0 Y0.0 Z-10.1737 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D4.0 I0.0 J0.0 Q0.0 ;3/8 4fl carbide
T5 P5 X0.0 Y0.0 Z-1.15 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D5.0 I0.0 J0.0 Q0.0 ;long ER40 collet chuck
T6 P6 X0.0 Y0.0 Z-5.1252 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D7.0 I0.0 J0.0 Q0.0 ;tool 6
T7 P7 X0.0 Y0.0 Z-1.07 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D7.0 I0.0 J0.0 Q0.0 ;big albrecht drill chuck .25 drill
T8 P8 X0.0 Y0.0 Z-1.16 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D8.0 I0.0 J0.0 Q0.0 ;V engraving tool
T9 P9 X0.0 Y0.0 Z-1.14 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D9.0 I0.0 J0.0 Q0.0 ;90 deg 3/8 mill-drill
T10 P10 X0.0 Y0.0 Z-1.13 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D10.0 I0.0 J0.0 Q0.0 ;other big jacobs chuck
T11 P11 X0.0 Y0.0 Z-0.09 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D11.0 I0.0 J0.0 Q0.0 ;1/8 2fl end mill
T12 P12 X0.0 Y0.0 Z-1.12 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D12.0 I0.0 J0.0 Q0.0 ;1/2 2fl long em
T13 P13 X0.0 Y0.0 Z-0.02 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D13.0 I0.0 J0.0 Q0.0 ;Tool 13
T14 P14 X0.0 Y0.0 Z-0.04 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D14.0 I0.0 J0.0 Q0.0 ;Tool 14
T15 P15 X0.0 Y0.0 Z-0.1 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D15.0 I0.0 J0.0 Q0.0 ;little albrecht chuck spot drill
T16 P16 X0.0 Y0.0 Z-0.03 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D16.0 I0.0 J0.0 Q0.0 ;little jacobs chuck
T18 P1 X0.0 Y0.0 Z-1.18 A0.0 B0.0 C0.0 U0.0 V0.0 W0.0 D18.0 I0.0 J0.0 Q0.0 ;big jacobs chuck

View File

@@ -0,0 +1,81 @@
<?xml version="1.0"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-requires gladevcp 0.0 -->
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<child>
<object class="GtkFrame" id="frm_tool_sensor">
<property name="visible">True</property>
<property name="label_xalign">0.5</property>
<child>
<object class="GtkAlignment" id="ali_tool_sensor">
<property name="visible">True</property>
<property name="top_padding">5</property>
<property name="bottom_padding">5</property>
<property name="left_padding">5</property>
<property name="right_padding">5</property>
<child>
<object class="GtkVBox" id="vbox_tool_sensor">
<property name="visible">True</property>
<child>
<object class="GtkHBox" id="hbox_tool_sensor">
<property name="visible">True</property>
<child>
<object class="GtkLabel" id="lbl_tool_sensor">
<property name="visible">True</property>
<property name="label" translatable="yes">Probe:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_LED" id="led_tool_sensor">
<property name="visible">True</property>
<property name="pick_color_on">#0000ffff0000</property>
<property name="pick_color_off">#ffff00000000</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="btn_tool_sensor_sim">
<property name="label" translatable="yes">Sim Signal</property>
<property name="width_request">112</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="lbl_frm_tool_sensor">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Tool Probe&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,4 @@
net tool_sensor tool_sensor.btn_tool_sensor_sim
net tool_sensor motion.probe-input
net tool_sensor tool_sensor.led_tool_sensor

View File

@@ -0,0 +1,84 @@
[DEFAULT]
unlock_way = no
rel_color = black
log_actions = False
show_preview_on_offset = True
jump_to_dir = /home/emcmesa
show_keyboard_on_offset = True
x_pos_popup = 15.0
homed_color = green
enable_dro = False
system_name_g92 = G92
logo = False
system_name_g59.2 = G59.2
system_name_g59.3 = G59.3
mouse_btn_mode = 4
audio_error = /usr/share/sounds/ubuntu/stereo/dialog-question.ogg
max_messages = 10.0
view_tool_path = True
system_name_g5x = G5x
scale_max_vel = 140.2
show_keyboard_on_edit = False
open_file = ../../nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc
abs_color = blue
show_offsets = False
system_name_g59 = G59
width = 979.0
spindle_bar_min = 0.0
probevel = 10.0
show_keyboard_on_mdi = False
spindle_start_rpm = 300.0
view_dimension = True
blockheight = 25.0
gremlin_view = rbt_view_p
scale_spindle_override = 1.0
system_name_tool = Tool
system_name_g54 = G54
system_name_rot = Rotation of Z
system_name_g56 = G56
system_name_g58 = G58
unlock_code = 123
hide_cursor = False
x_pos = 10.0
system_name_g57 = G57
dtg_color = yellow
message_font = sans 10
screen1 = window
dro_size = 28
use_keyboard_shortcuts = True
spindle_bar_max = 6000.0
unhomed_color = red
use_auto_units = True
audio_alert = /usr/share/sounds/ubuntu/stereo/bell.ogg
use_screen2 = False
searchvel = 75.0
opstop = False
show_keyboard_on_file_selection = False
grid_size = 1.0
scale_feed_override = 1.0
use_frames = True
system_name_g55 = G55
y_pos_popup = 55.0
show_dtg = False
run_from_line = no_run
gtk_theme = Follow System Theme
height = 750.0
probeheight = 35.8
use_toolmeasurement = True
hide_axis_4 = False
y_pos = 10.0
width_popup = 250.0
show_keyboard_on_tooledit = False
show_dro_btn = False
system_name_g59.1 = G59.1
blockdel = False
scale_jog_vel = 99.6
view = p
scale_rapid_override = 1
hide_turtle_jog_button = False
turtle_jog_factor = 20
dro_digits = 3
toggle_readout = True
reload_tool = True
tool_in_spindle = 3

View File

@@ -0,0 +1,122 @@
<?xml version="1.0"?>
<interface>
<!-- interface-requires gladevcp 0.0 -->
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<property name="default_width">64</property>
<property name="default_height">724</property>
<child>
<object class="GtkVButtonBox" id="vbuttonbox1">
<property name="visible">True</property>
<property name="homogeneous">True</property>
<property name="layout_style">spread</property>
<child>
<object class="HAL_Button" id="v_button_0">
<property name="label" translatable="yes">v_button_0</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="v_button_1">
<property name="label" translatable="yes">v_button_1</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="v_button_2">
<property name="label" translatable="yes">v_button_2</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="v_button_3">
<property name="label" translatable="yes">v_button_3</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="v_button_4">
<property name="label" translatable="yes">v_button_4</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="v_button_5">
<property name="label" translatable="yes">v_button_5</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="HAL_Button" id="v_button_6">
<property name="label" translatable="yes">v_button_6</property>
<property name="width_request">56</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">6</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,13 @@
###################################################################
# gmoccapy hal file from Norbert Schechner #
###################################################################
net v_button_0 v_buttonlist.v_button_0 => gmoccapy.v-button.button-0
net v_button_1 v_buttonlist.v_button_1 => gmoccapy.v-button.button-1
net v_button_2 v_buttonlist.v_button_2 => gmoccapy.v-button.button-2
net v_button_3 v_buttonlist.v_button_3 => gmoccapy.v-button.button-3
net v_button_4 v_buttonlist.v_button_4 => gmoccapy.v-button.button-4
net v_button_5 v_buttonlist.v_button_5 => gmoccapy.v-button.button-5
net v_button_6 v_buttonlist.v_button_6 => gmoccapy.v-button.button-6

View File

@@ -0,0 +1,67 @@
<?xml version="1.0"?>
<interface>
<!-- interface-requires gladevcp 0.0 -->
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<child>
<object class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="n_rows">2</property>
<child>
<object class="HAL_Meter" id="hal_meter1">
<property name="width_request">200</property>
<property name="height_request">200</property>
<property name="visible">True</property>
<property name="z2_color">#ffff00000000</property>
<property name="label">RPM</property>
<property name="majorscale">500</property>
<property name="z0_border">250</property>
<property name="z0_color">#ffffffff0000</property>
<property name="max">6000</property>
<property name="z1_color">#0000ffff0000</property>
<property name="minorscale">100</property>
<property name="bg_color">#ffffffffffff</property>
</object>
</child>
<child>
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<child>
<object class="HAL_LED" id="hal_led1">
<property name="visible">True</property>
</object>
<packing>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_LED" id="hal_led3">
<property name="visible">True</property>
<property name="pick_color_off">#f6e0ebe201e9</property>
</object>
<packing>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="HAL_LED" id="hal_led2">
<property name="visible">True</property>
</object>
<packing>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,6 @@
###################################################################
# moccapy_postgui.hal file from Norbert Schechner #
###################################################################
net spindle-speed-limited => vcp_box.hal_meter1