Fixed issues with fusion gcode motion control

This commit is contained in:
David Carley
2021-03-30 11:34:48 -07:00
parent 47cec0dae3
commit e63d8db595
7 changed files with 21 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "bbctrl", "name": "bbctrl",
"version": "1.0.7", "version": "1.0.8b1",
"homepage": "https://onefinitycnc.com/", "homepage": "https://onefinitycnc.com/",
"repository": "https://github.com/OneFinityCNC/onefinity", "repository": "https://github.com/OneFinityCNC/onefinity",
"license": "GPL-3.0+", "license": "GPL-3.0+",

View File

@@ -4,8 +4,14 @@ cd /mnt/host
scons -j 8 -C cbang disable_local="re2 libevent" scons -j 8 -C cbang disable_local="re2 libevent"
export CBANG_HOME="/mnt/host/cbang" export CBANG_HOME="/mnt/host/cbang"
perl -i -0pe 's/case 610: setPathMode.*;/case 610: break;/gm' /mnt/host/camotics/src/gcode/ControllerImpl.cpp CAMOTICS_ROOT="/mnt/host/camotics"
perl -i -0pe 's/case 611: setPathMode.*;/case 611: break;/gm' /mnt/host/camotics/src/gcode/ControllerImpl.cpp CAMOTICS_PLAN="${CAMOTICS_ROOT}/src/gcode/plan"
perl -i -0pe 's/case 640: {[^}]+}/case 640: break;/gm' /mnt/host/camotics/src/gcode/ControllerImpl.cpp
mkdir -p ${CAMOTICS_ROOT}/build
touch ${CAMOTICS_ROOT}/build/version.txt
perl -i -0pe 's/(fabs\((config\.maxVel\[axis\]) \/ unit\[axis\]\));/std::min(\2, \1);/gm' ${CAMOTICS_PLAN}/LineCommand.cpp ${CAMOTICS_PLAN}/LinePlanner.cpp
perl -i -0pe 's/(fabs\((config\.maxJerk\[axis\]) \/ unit\[axis\]\));/std::min(\2, \1);/gm' ${CAMOTICS_PLAN}/LineCommand.cpp ${CAMOTICS_PLAN}/LinePlanner.cpp
perl -i -0pe 's/(fabs\((config\.maxAccel\[axis\]) \/ unit\[axis\]\));/std::min(\2, \1);/gm' ${CAMOTICS_PLAN}/LineCommand.cpp ${CAMOTICS_PLAN}/LinePlanner.cpp
scons -j 8 -C camotics gplan.so with_gui=0 with_tpl=0 scons -j 8 -C camotics gplan.so with_gui=0 with_tpl=0

View File

@@ -164,6 +164,10 @@ class Config(object):
motor['max-jerk'] = 1000 motor['max-jerk'] = 1000
motor['zero-backoff'] = 1 motor['zero-backoff'] = 1
if version < (1, 0, 8):
config['settings']['max-deviation'] = 0.05
config['settings']['junction-accel'] = 200000
config['version'] = self.version.split('b')[0] config['version'] = self.version.split('b')[0]
config['full_version'] = self.version config['full_version'] = self.version

View File

@@ -83,6 +83,7 @@ class Planner():
state = self.ctrl.state state = self.ctrl.state
config = self.ctrl.config config = self.ctrl.config
is_pwm = config.get('tool-type') == 'PWM Spindle' is_pwm = config.get('tool-type') == 'PWM Spindle'
deviation = config.get('max-deviation')
cfg = { cfg = {
# NOTE Must get current units not configured default units # NOTE Must get current units not configured default units
@@ -91,8 +92,9 @@ class Planner():
'max-accel': state.get_axis_vector('am', 1000000), 'max-accel': state.get_axis_vector('am', 1000000),
'max-jerk': state.get_axis_vector('jm', 1000000), 'max-jerk': state.get_axis_vector('jm', 1000000),
'rapid-auto-off': config.get('rapid-auto-off') and is_pwm, 'rapid-auto-off': config.get('rapid-auto-off') and is_pwm,
'max-blend-error': config.get('max-deviation'), 'max-blend-error': deviation,
'max-merge-error': config.get('max-deviation'), 'max-merge-error': deviation,
'max-arc-error': deviation / 10,
'junction-accel': config.get('junction-accel'), 'junction-accel': config.get('junction-accel'),
} }

View File

@@ -9,7 +9,7 @@
"help": "help":
"Default allowed deviation from programmed path. Also see G64 & G61.", "Default allowed deviation from programmed path. Also see G64 & G61.",
"type": "float", "type": "float",
"min": 0.001, "min": 0.05,
"max": 100, "max": 100,
"unit": "mm", "unit": "mm",
"default": 0.1 "default": 0.1

View File

@@ -28,7 +28,7 @@
}, },
"settings": { "settings": {
"junction-accel": 200000, "junction-accel": 200000,
"max-deviation": 0.001, "max-deviation": 0.05,
"units": "METRIC", "units": "METRIC",
"probing-prompts": true "probing-prompts": true
}, },

View File

@@ -28,7 +28,7 @@
}, },
"settings": { "settings": {
"junction-accel": 200000, "junction-accel": 200000,
"max-deviation": 0.001, "max-deviation": 0.05,
"units": "METRIC", "units": "METRIC",
"probing-prompts": true "probing-prompts": true
}, },