Log in
src/config.js 86 lines · 2.4 KB · javascript
1
// Default options and parameters (port of nextdrawcore/nextdraw_conf.py).
2
// Options are the user-facing settings documented at bantam.tools/nd_py;
3
// params are the secondary machine-configuration values.
4
5
export function defaultOptions() {
6
  return {
7
    mode: 'interactive',
8
    handling: 1, // 1 Technical drawing, 2 Handwriting, 3 Sketching, 4 Constant speed
9
    speedPendown: 25, // 1-100, % of max pen-down speed
10
    speedPenup: 75, // 1-100, % of max pen-up speed
11
    accel: 75, // 1-100
12
    penPosUp: 60, // 0-100
13
    penPosDown: 40, // 0-100
14
    penRateRaise: 75, // 1-100
15
    penRateLower: 50, // 1-100
16
    model: 8, // Bantam Tools NextDraw 8511
17
    penlift: 1, // 1 default for model, 3 brushless upgrade
18
    homing: true, // automatic homing on supported models
19
    units: 0, // 0 inches, 1 cm, 2 mm
20
    preview: false,
21
  };
22
}
23
24
export function defaultParams() {
25
  return {
26
    servoTimeout: 60000, // ms; legacy servo power-down delay
27
    useB3Out: false, // drive pin B3 high while the pen is down
28
    syncB3: true,
29
    autoClipLift: true, // raise pen where interactive moves get clipped at bounds
30
    skipVoltageCheck: false,
31
    clipToPage: true,
32
    minGap: 0.006, // inches; path-joining threshold
33
    penDelayUp: 0, // ms
34
    penDelayDown: 0, // ms
35
    overrides: {
36
      modelName: null,
37
      travelX: null,
38
      travelY: null,
39
      jerkPenUp: null,
40
      jerkPenDown: null,
41
      speedLimit: null,
42
      speedUp: null,
43
      autoHome: null,
44
      zMotor: null,
45
      servoPin: null,
46
      servoMax: null,
47
      servoMin: null,
48
      servoSweepTime: null,
49
      servoMoveMin: null,
50
      servoMoveSlope: null,
51
      resolution: null,
52
      curveTolerance: null,
53
      constSpeed: null,
54
    },
55
    nativeResFactor: 1016.0, // steps per inch
56
    maxStepRate: 24.995, // steps per ms
57
    speedLimXyLr: 17.3958, // in/s, low resolution
58
    speedLimXyHr: 8.6979, // in/s, high resolution
59
    buttonInterval: 0.05, // s
60
    boundsTolerance: 0.003, // in
61
62
    // Filled in by applyModelAndHandling():
63
    modelOld: -1,
64
    handlingOld: -1,
65
    zMotorOld: -1,
66
    modelName: '',
67
    travelX: 0,
68
    travelY: 0,
69
    jerkDerate: 1,
70
    autoHome: false,
71
    zMotor: 1,
72
    resolution: 1,
73
    jerkPenDown: 0,
74
    jerkPenUp: 0,
75
    constSpeed: false,
76
    curveTolerance: 0.002,
77
    speedLimit: 0,
78
    speedUp: 0,
79
    servoPin: 0,
80
    servoMax: 0,
81
    servoMin: 0,
82
    servoSweepTime: 0,
83
    servoMoveMin: 0,
84
    servoMoveSlope: 0,
85
  };
86
}