Skip to content

Commit a587f56

Browse files
committed
.
1 parent ad8f303 commit a587f56

7 files changed

Lines changed: 86 additions & 9 deletions

File tree

elle-app/elle-electron/electron-store/configuration.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ interface AppConfig {
1717
selectedPitchTab?: number[]
1818
pitchX?: number
1919
pitchZ?: number
20+
encoderScaleZ?: number
21+
encoderScaleX?: number
2022
tools?: Tool[]
2123
currentToolIndex?: number
2224
currentToolOffsetX?: number

elle-app/elle-electron/main.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ ipcMain.handle('getSettings', () => ({
8282
selectedPitchTab: (appConfig as any).get('setting.selectedPitchTab', [0, 0]),
8383
pitchX: (appConfig as any).get('setting.pitchX', 0.0),
8484
pitchZ: (appConfig as any).get('setting.pitchZ', 0.0),
85+
encoderScaleZ: (appConfig as any).get('setting.encoderScaleZ', 0.001),
86+
encoderScaleX: (appConfig as any).get('setting.encoderScaleX', -0.001),
8587
tools: (appConfig as any).get('setting.tools'),
8688
currentToolIndex: (appConfig as any).get('setting.currentToolIndex', 0),
8789
currentToolOffsetX: (appConfig as any).get('setting.currentToolOffsetX', 0),
@@ -102,6 +104,8 @@ ipcMain.handle('saveSettings', (event, settings) => {
102104
selectedPitchTab: settings.selectedPitchTab,
103105
pitchX: settings.pitchX,
104106
pitchZ: settings.pitchZ,
107+
encoderScaleZ: settings.encoderScaleZ,
108+
encoderScaleX: settings.encoderScaleX,
105109
tools: settings.tools,
106110
currentToolIndex: settings.currentToolIndex,
107111
currentToolOffsetX: settings.currentToolOffsetX,

elle-app/elle-electron/preload.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ declare interface Tool {
1111
}
1212

1313
declare interface settings {
14-
get: () => Promise<{ diameterMode: boolean; defaultMetricOnStartup: boolean; selectedThreadingTab: number; selectedTurningTab: number; selectedPitchTab: number[]; pitchX: number; pitchZ: number; tools?: Tool[]; currentToolIndex?: number; currentToolOffsetX?: number; currentToolOffsetZ?: number }>
15-
save: (settings: { diameterMode: boolean; defaultMetricOnStartup: boolean; selectedThreadingTab: number; selectedTurningTab: number; selectedPitchTab: number[]; pitchX: number; pitchZ: number; tools?: Tool[]; currentToolIndex?: number; currentToolOffsetX?: number; currentToolOffsetZ?: number }) => Promise<boolean>
14+
get: () => Promise<{ diameterMode: boolean; defaultMetricOnStartup: boolean; selectedThreadingTab: number; selectedTurningTab: number; selectedPitchTab: number[]; pitchX: number; pitchZ: number; encoderScaleZ: number; encoderScaleX: number; tools?: Tool[]; currentToolIndex?: number; currentToolOffsetX?: number; currentToolOffsetZ?: number }>
15+
save: (settings: { diameterMode: boolean; defaultMetricOnStartup: boolean; selectedThreadingTab: number; selectedTurningTab: number; selectedPitchTab: number[]; pitchX: number; pitchZ: number; encoderScaleZ: number; encoderScaleX: number; tools?: Tool[]; currentToolIndex?: number; currentToolOffsetX?: number; currentToolOffsetZ?: number }) => Promise<boolean>
1616
}

elle-app/elle-frontend/src/App.vue

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { ref, onMounted, onUnmounted, computed, watch, defineAsyncComponent } fr
33
import { useDialog } from 'primevue/usedialog'
44
import Popover from 'primevue/popover'
55
import Dialog from 'primevue/dialog'
6+
import InputNumber from 'primevue/inputnumber'
67
78
import Numpad from './components/Numpad.vue'
89
import DRODisplay from './components/DRODisplay.vue'
@@ -178,7 +179,7 @@ const xpitchlabel = ref('…')
178179
const zpitchlabel = ref('')
179180
const xpitchangle = ref(0)
180181
// Get settings from composable
181-
const { metric, diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, isQuitting, loadSettings, saveSettings, tools, currentToolIndex, currentToolOffsetX, currentToolOffsetZ } = useSettings()
182+
const { metric, diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, encoderScaleZ, encoderScaleX, isQuitting, loadSettings, saveSettings, tools, currentToolIndex, currentToolOffsetX, currentToolOffsetZ } = useSettings()
182183
183184
const cursorpos = ref(0)
184185
@@ -2466,6 +2467,49 @@ onUnmounted(() => {
24662467
</div>
24672468
</div>
24682469
</div>
2470+
2471+
<!-- Encoder Scale Settings -->
2472+
<div class="col-12 mb-4">
2473+
<div class="grid grid-nogutter align-items-center">
2474+
<div class="col-6 text-right pr-4">
2475+
<label class="text-lg font-semibold">Encoder Scale Z:</label>
2476+
</div>
2477+
<div class="col-6">
2478+
<div class="flex gap-3">
2479+
<InputNumber
2480+
v-model="encoderScaleZ"
2481+
:min="-1"
2482+
:max="1"
2483+
:step="0.0001"
2484+
:minFractionDigits="4"
2485+
:maxFractionDigits="4"
2486+
class="w-8rem"
2487+
/>
2488+
</div>
2489+
</div>
2490+
</div>
2491+
</div>
2492+
2493+
<div class="col-12 mb-4">
2494+
<div class="grid grid-nogutter align-items-center">
2495+
<div class="col-6 text-right pr-4">
2496+
<label class="text-lg font-semibold">Encoder Scale X:</label>
2497+
</div>
2498+
<div class="col-6">
2499+
<div class="flex gap-3">
2500+
<InputNumber
2501+
v-model="encoderScaleX"
2502+
:min="-1"
2503+
:max="1"
2504+
:step="0.0001"
2505+
:minFractionDigits="4"
2506+
:maxFractionDigits="4"
2507+
class="w-8rem"
2508+
/>
2509+
</div>
2510+
</div>
2511+
</div>
2512+
</div>
24692513
</div>
24702514
</div>
24712515
</div>

elle-app/elle-frontend/src/composables/useHAL.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@ import {
1111
generateTurningGcode,
1212
cleanupCannedCycles
1313
} from '../HAL'
14+
import { useSettings } from './useSettings'
1415

1516
export function useHAL() {
17+
// Get encoder scale values from settings
18+
const { encoderScaleZ, encoderScaleX } = useSettings()
19+
1620
const xpos = ref(0)
1721
const zpos = ref(0)
1822
const apos = ref(0)
@@ -72,7 +76,9 @@ export function useHAL() {
7276
xaxisoffset = -xpos.value - toolOffsets.currentToolOffsetX.value
7377
zaxisoffset = -zpos.value - toolOffsets.currentToolOffsetZ.value
7478
const halOut = {
75-
reset_position: true
79+
reset_position: true,
80+
encoder_scale_z: encoderScaleZ.value,
81+
encoder_scale_x: encoderScaleX.value
7682
}
7783
putHalOut(halOut)
7884
}
@@ -160,7 +166,9 @@ export function useHAL() {
160166
enable_z: zpitchactive.value,
161167
enable_x: xpitchactive.value,
162168
enable_stepper_z: zstepperactive.value,
163-
enable_stepper_x: xstepperactive.value
169+
enable_stepper_x: xstepperactive.value,
170+
encoder_scale_z: encoderScaleZ.value,
171+
encoder_scale_x: encoderScaleX.value
164172
}
165173
putHalOut(halOut)
166174
} else if (params.selectedMenu.value == params.MenuType.cannedCycles) {
@@ -173,7 +181,9 @@ export function useHAL() {
173181
enable_z: true,
174182
enable_x: true,
175183
enable_stepper_z: true,
176-
enable_stepper_x: true
184+
enable_stepper_x: true,
185+
encoder_scale_z: encoderScaleZ.value,
186+
encoder_scale_x: encoderScaleX.value
177187
}
178188
putHalOut(halOut)
179189
}

elle-app/elle-frontend/src/composables/useSettings.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ const pitchX = ref(0.0)
1919
const pitchZ = ref(0.0)
2020
const isQuitting = ref(false)
2121

22+
// Encoder scale factors
23+
const encoderScaleZ = ref(0.001)
24+
const encoderScaleX = ref(-0.001)
25+
2226
// Tool table state
2327
const tools = ref<Tool[]>([
2428
{ id: 0, offsetX: 0, offsetZ: 0, description: 'Reference Tool' },
@@ -58,6 +62,14 @@ export function useSettings() {
5862
pitchZ.value = settings.pitchZ || 0.0
5963
metric.value = settings.defaultMetricOnStartup
6064

65+
// Load encoder scale factors
66+
if (settings.encoderScaleZ !== undefined) {
67+
encoderScaleZ.value = settings.encoderScaleZ
68+
}
69+
if (settings.encoderScaleX !== undefined) {
70+
encoderScaleX.value = settings.encoderScaleX
71+
}
72+
6173
// Load tool table
6274
if (settings.tools && Array.isArray(settings.tools)) {
6375
tools.value = settings.tools
@@ -95,6 +107,8 @@ export function useSettings() {
95107
selectedPitchTab: [...selectedPitchTab.value],
96108
pitchX: pitchX.value,
97109
pitchZ: pitchZ.value,
110+
encoderScaleZ: encoderScaleZ.value,
111+
encoderScaleX: encoderScaleX.value,
98112
tools: tools.value.map(tool => ({
99113
id: tool.id,
100114
offsetX: tool.offsetX,
@@ -115,7 +129,7 @@ export function useSettings() {
115129

116130
// Auto-save settings when they change (only set up once)
117131
if (!isWatcherSetup) {
118-
watch([diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, tools, currentToolIndex, currentToolOffsetX, currentToolOffsetZ], () => {
132+
watch([diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, encoderScaleZ, encoderScaleX, tools, currentToolIndex, currentToolOffsetX, currentToolOffsetZ], () => {
119133
saveSettings()
120134
}, { deep: true })
121135
isWatcherSetup = true
@@ -130,6 +144,8 @@ export function useSettings() {
130144
selectedPitchTab,
131145
pitchX,
132146
pitchZ,
147+
encoderScaleZ,
148+
encoderScaleX,
133149
isQuitting,
134150
loadSettings,
135151
saveSettings,

elle-app/elle-hal/lathe_halcomp.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -576,8 +576,9 @@ def write_hal_out():
576576
c.reset_interpreter()
577577
c.wait_complete()
578578

579-
hal_pin_scale_encoder_z.set(+0.001)
580-
hal_pin_scale_encoder_x.set(-0.001)
579+
# Set encoder scale factors from frontend settings or use defaults
580+
hal_pin_scale_encoder_z.set(json.get("encoder_scale_z", 0.001))
581+
hal_pin_scale_encoder_x.set(json.get("encoder_scale_x", -0.001))
581582

582583
hal_pin_offset_z_encoder.set(-hal_pin_position_a.get())
583584
hal_pin_offset_z_stepper.set(+hal_pin_position_z_encoder.get())

0 commit comments

Comments
 (0)