Merge pull request #47 from dacarley/fusion-motion-control

Fixed issues with fusion gcode motion control
This commit is contained in:
OneFinityCNC
2021-03-31 23:29:33 -04:00
committed by GitHub
7 changed files with 21 additions and 9 deletions

View File

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

View File

@@ -4,8 +4,14 @@ cd /mnt/host
scons -j 8 -C cbang disable_local="re2 libevent"
export CBANG_HOME="/mnt/host/cbang"
perl -i -0pe 's/case 610: setPathMode.*;/case 610: break;/gm' /mnt/host/camotics/src/gcode/ControllerImpl.cpp
perl -i -0pe 's/case 611: setPathMode.*;/case 611: break;/gm' /mnt/host/camotics/src/gcode/ControllerImpl.cpp
perl -i -0pe 's/case 640: {[^}]+}/case 640: break;/gm' /mnt/host/camotics/src/gcode/ControllerImpl.cpp
CAMOTICS_ROOT="/mnt/host/camotics"
CAMOTICS_PLAN="${CAMOTICS_ROOT}/src/gcode/plan"
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

View File

@@ -164,6 +164,10 @@ class Config(object):
motor['max-jerk'] = 1000
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['full_version'] = self.version

View File

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

View File

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

View File

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

View File

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