Skip to content

Commit f17ac5a

Browse files
committed
.
1 parent 1a4eebe commit f17ac5a

9 files changed

Lines changed: 99 additions & 55 deletions

File tree

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import Store from 'electron-store'
22

33
interface Tool {
44
id: number
5-
offset: number
5+
offsetX: number
6+
offsetZ: number
67
description: string
78
}
89

@@ -18,7 +19,8 @@ interface AppConfig {
1819
pitchZ?: number
1920
tools?: Tool[]
2021
currentToolIndex?: number
21-
currentToolOffset?: number
22+
currentToolOffsetX?: number
23+
currentToolOffsetZ?: number
2224
}
2325
}
2426

elle-app/elle-electron/main.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ ipcMain.handle('getSettings', () => ({
8484
pitchZ: (appConfig as any).get('setting.pitchZ', 0.0),
8585
tools: (appConfig as any).get('setting.tools'),
8686
currentToolIndex: (appConfig as any).get('setting.currentToolIndex', 0),
87-
currentToolOffset: (appConfig as any).get('setting.currentToolOffset', 0)
87+
currentToolOffsetX: (appConfig as any).get('setting.currentToolOffsetX', 0),
88+
currentToolOffsetZ: (appConfig as any).get('setting.currentToolOffsetZ', 0)
8889
}))
8990

9091
ipcMain.handle('saveSettings', (event, settings) => {
@@ -100,7 +101,8 @@ ipcMain.handle('saveSettings', (event, settings) => {
100101
pitchZ: settings.pitchZ,
101102
tools: settings.tools,
102103
currentToolIndex: settings.currentToolIndex,
103-
currentToolOffset: settings.currentToolOffset
104+
currentToolOffsetX: settings.currentToolOffsetX,
105+
currentToolOffsetZ: settings.currentToolOffsetZ
104106
})
105107
return true
106108
})

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ declare interface api {
55

66
declare interface Tool {
77
id: number
8-
offset: number
8+
offsetX: number
9+
offsetZ: number
910
description: string
1011
}
1112

1213
declare interface settings {
13-
get: () => Promise<{ diameterMode: boolean; defaultMetricOnStartup: boolean; selectedThreadingTab: number; selectedTurningTab: number; selectedPitchTab: number[]; pitchX: number; pitchZ: number; tools?: Tool[]; currentToolIndex?: number; currentToolOffset?: number }>
14-
save: (settings: { diameterMode: boolean; defaultMetricOnStartup: boolean; selectedThreadingTab: number; selectedTurningTab: number; selectedPitchTab: number[]; pitchX: number; pitchZ: number; tools?: Tool[]; currentToolIndex?: number; currentToolOffset?: number }) => Promise<boolean>
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>
1516
}

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ const xpitchlabel = ref('…')
178178
const zpitchlabel = ref('')
179179
const xpitchangle = ref(0)
180180
// Get settings from composable
181-
const { metric, diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, isQuitting, loadSettings, tools, currentToolIndex, currentToolOffset } = useSettings()
181+
const { metric, diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, isQuitting, loadSettings, tools, currentToolIndex, currentToolOffsetX, currentToolOffsetZ } = useSettings()
182182
183183
const cursorpos = ref(0)
184184
@@ -222,9 +222,10 @@ const openToolTable = () => {
222222
showToolTable.value = true
223223
}
224224
225-
const onToolSelected = (toolId: number, offset: number) => {
225+
const onToolSelected = (toolId: number, offsetX: number, offsetZ: number) => {
226226
currentToolIndex.value = toolId
227-
currentToolOffset.value = offset
227+
currentToolOffsetX.value = offsetX
228+
currentToolOffsetZ.value = offsetZ
228229
showToolTable.value = false
229230
}
230231
@@ -1108,7 +1109,7 @@ onMounted(async () => {
11081109
if (userAgent.indexOf(' electron/') > -1) {
11091110
window.api.receive('halStarted', () => {
11101111
selectedMenu.value = MenuType.manual
1111-
startPoll({
1112+
startPoll({ currentToolOffsetX, currentToolOffsetZ }, {
11121113
selectedMenu,
11131114
MenuType,
11141115
DirectionMode,
@@ -1131,7 +1132,7 @@ onMounted(async () => {
11311132
selectedMenu.value = MenuType.halStatus
11321133
startHAL()
11331134
} else {
1134-
startPoll({
1135+
startPoll({ currentToolOffsetX, currentToolOffsetZ }, {
11351136
selectedMenu,
11361137
MenuType,
11371138
DirectionMode,

elle-app/elle-frontend/src/components/ToolTable.vue

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const props = defineProps<Props>()
1717
1818
const emit = defineEmits<{
1919
'update:visible': [value: boolean]
20-
'tool-selected': [toolId: number, offset: number]
20+
'tool-selected': [toolId: number, offsetX: number, offsetZ: number]
2121
}>()
2222
2323
const { tools, selectTool, updateTool, formatOffset, parseOffset } = useToolTable()
@@ -42,16 +42,19 @@ const closeDialog = () => {
4242
const onRowClick = (event: any) => {
4343
const tool = event.data
4444
selectTool(tool.id)
45-
const offset = tool.offset
46-
emit('tool-selected', tool.id, offset)
45+
const offsetX = tool.offsetX
46+
const offsetZ = tool.offsetZ
47+
emit('tool-selected', tool.id, offsetX, offsetZ)
4748
}
4849
4950
const startEdit = (tool: any, field: string) => {
5051
editingId.value = tool.id
5152
editingField.value = field
5253
53-
if (field === 'offset') {
54-
editingValue.value = formatOffset(tool.offset)
54+
if (field === 'offsetX') {
55+
editingValue.value = formatOffset(tool.offsetX)
56+
} else if (field === 'offsetZ') {
57+
editingValue.value = formatOffset(tool.offsetZ)
5558
} else if (field === 'description') {
5659
editingValue.value = tool.description
5760
}
@@ -61,11 +64,14 @@ const finishEdit = () => {
6164
if (editingId.value !== null && editingField.value) {
6265
const tool = tools.value.find(t => t.id === editingId.value)
6366
if (tool) {
64-
if (editingField.value === 'offset') {
65-
const offset = parseOffset(editingValue.value)
66-
updateTool(tool.id, offset, tool.description)
67+
if (editingField.value === 'offsetX') {
68+
const offsetX = parseOffset(editingValue.value)
69+
updateTool(tool.id, offsetX, tool.offsetZ, tool.description)
70+
} else if (editingField.value === 'offsetZ') {
71+
const offsetZ = parseOffset(editingValue.value)
72+
updateTool(tool.id, tool.offsetX, offsetZ, tool.description)
6773
} else if (editingField.value === 'description') {
68-
updateTool(tool.id, tool.offset, editingValue.value)
74+
updateTool(tool.id, tool.offsetX, tool.offsetZ, editingValue.value)
6975
}
7076
}
7177
}
@@ -135,9 +141,9 @@ const getRowClass = (tool: any) => {
135141
</template>
136142
</Column>
137143

138-
<Column field="offset" :header="`Tool Offset (${unitLabel})`" :style="{ width: '150px' }">
144+
<Column field="offsetX" :header="`X Offset (${unitLabel})`" :style="{ width: '150px' }">
139145
<template #body="slotProps">
140-
<div v-if="editingId === slotProps.data.id && editingField === 'offset'">
146+
<div v-if="editingId === slotProps.data.id && editingField === 'offsetX'">
141147
<InputText
142148
v-model="editingValue"
143149
@keyup.enter="finishEdit"
@@ -150,10 +156,33 @@ const getRowClass = (tool: any) => {
150156
</div>
151157
<div
152158
v-else
153-
@click="startEdit(slotProps.data, 'offset')"
159+
@click="startEdit(slotProps.data, 'offsetX')"
154160
class="editable-field"
155161
>
156-
{{ formatOffset(slotProps.data.offset) }}
162+
{{ formatOffset(slotProps.data.offsetX) }}
163+
</div>
164+
</template>
165+
</Column>
166+
167+
<Column field="offsetZ" :header="`Z Offset (${unitLabel})`" :style="{ width: '150px' }">
168+
<template #body="slotProps">
169+
<div v-if="editingId === slotProps.data.id && editingField === 'offsetZ'">
170+
<InputText
171+
v-model="editingValue"
172+
@keyup.enter="finishEdit"
173+
@keyup.escape="cancelEdit"
174+
@blur="finishEdit"
175+
class="w-full"
176+
type="number"
177+
:step="metric ? '0.001' : '0.0001'"
178+
/>
179+
</div>
180+
<div
181+
v-else
182+
@click="startEdit(slotProps.data, 'offsetZ')"
183+
class="editable-field"
184+
>
185+
{{ formatOffset(slotProps.data.offsetZ) }}
157186
</div>
158187
</template>
159188
</Column>

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export function useHAL() {
5858
putHalOut(halOut)
5959
}
6060

61-
function startPoll(params: {
61+
function startPoll(toolOffsets: { currentToolOffsetX: any, currentToolOffsetZ: any }, params: {
6262
selectedMenu: any
6363
MenuType: any
6464
DirectionMode: any
@@ -69,8 +69,8 @@ export function useHAL() {
6969
updateInterval = setInterval(() => {
7070
if (halOutResetPositionScheduled) {
7171
halOutResetPositionScheduled = false
72-
xaxisoffset = -xpos.value
73-
zaxisoffset = -zpos.value
72+
xaxisoffset = -xpos.value - toolOffsets.currentToolOffsetX.value
73+
zaxisoffset = -zpos.value - toolOffsets.currentToolOffsetZ.value
7474
const halOut = {
7575
reset_position: true
7676
}
@@ -93,8 +93,8 @@ export function useHAL() {
9393
aaxisoffset = (halIn as any).position_a - ((aaxisset / 360) % 1)
9494
aaxisset = 0
9595
}
96-
zpos.value = (halIn as any).position_z - zaxisoffset
97-
xpos.value = (halIn as any).position_x - xaxisoffset
96+
zpos.value = (halIn as any).position_z - zaxisoffset + toolOffsets.currentToolOffsetZ.value
97+
xpos.value = (halIn as any).position_x - xaxisoffset + toolOffsets.currentToolOffsetX.value
9898
apos.value = Math.abs((((halIn as any).position_a - aaxisoffset) % 1) * 360)
9999
const newRpm = Math.abs((halIn as any).speed_rps * 60)
100100
rpms.value = newRpm

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

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import { ref, watch } from 'vue'
33
// Import tool types
44
interface Tool {
55
id: number
6-
offset: number
6+
offsetX: number
7+
offsetZ: number
78
description: string
89
}
910

@@ -20,20 +21,21 @@ const isQuitting = ref(false)
2021

2122
// Tool table state
2223
const tools = ref<Tool[]>([
23-
{ id: 0, offset: 0, description: 'Reference Tool' },
24-
{ id: 1, offset: 0, description: '' },
25-
{ id: 2, offset: 0, description: '' },
26-
{ id: 3, offset: 0, description: '' },
27-
{ id: 4, offset: 0, description: '' },
28-
{ id: 5, offset: 0, description: '' },
29-
{ id: 6, offset: 0, description: '' },
30-
{ id: 7, offset: 0, description: '' },
31-
{ id: 8, offset: 0, description: '' },
32-
{ id: 9, offset: 0, description: '' }
24+
{ id: 0, offsetX: 0, offsetZ: 0, description: 'Reference Tool' },
25+
{ id: 1, offsetX: 0, offsetZ: 0, description: '' },
26+
{ id: 2, offsetX: 0, offsetZ: 0, description: '' },
27+
{ id: 3, offsetX: 0, offsetZ: 0, description: '' },
28+
{ id: 4, offsetX: 0, offsetZ: 0, description: '' },
29+
{ id: 5, offsetX: 0, offsetZ: 0, description: '' },
30+
{ id: 6, offsetX: 0, offsetZ: 0, description: '' },
31+
{ id: 7, offsetX: 0, offsetZ: 0, description: '' },
32+
{ id: 8, offsetX: 0, offsetZ: 0, description: '' },
33+
{ id: 9, offsetX: 0, offsetZ: 0, description: '' }
3334
])
3435

3536
const currentToolIndex = ref(0)
36-
const currentToolOffset = ref(0)
37+
const currentToolOffsetX = ref(0)
38+
const currentToolOffsetZ = ref(0)
3739

3840
// Flag to ensure watcher is only set up once
3941
let isWatcherSetup = false
@@ -65,8 +67,11 @@ export function useSettings() {
6567
if (settings.currentToolIndex !== undefined) {
6668
currentToolIndex.value = settings.currentToolIndex
6769
}
68-
if (settings.currentToolOffset !== undefined) {
69-
currentToolOffset.value = settings.currentToolOffset
70+
if (settings.currentToolOffsetX !== undefined) {
71+
currentToolOffsetX.value = settings.currentToolOffsetX
72+
}
73+
if (settings.currentToolOffsetZ !== undefined) {
74+
currentToolOffsetZ.value = settings.currentToolOffsetZ
7075
}
7176
} else {
7277
console.error('window.settings is not available')
@@ -96,7 +101,8 @@ export function useSettings() {
96101
pitchZ: pitchZ.value,
97102
tools: plainTools,
98103
currentToolIndex: currentToolIndex.value,
99-
currentToolOffset: currentToolOffset.value
104+
currentToolOffsetX: currentToolOffsetX.value,
105+
currentToolOffsetZ: currentToolOffsetZ.value
100106
})
101107
} catch (error) {
102108
console.error('Failed to save settings:', error)
@@ -106,7 +112,7 @@ export function useSettings() {
106112

107113
// Auto-save settings when they change (only set up once)
108114
if (!isWatcherSetup) {
109-
watch([diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, tools, currentToolIndex, currentToolOffset], () => {
115+
watch([diameterMode, defaultMetricOnStartup, selectedThreadingTab, selectedTurningTab, selectedPitchTab, pitchX, pitchZ, tools, currentToolIndex, currentToolOffsetX, currentToolOffsetZ], () => {
110116
saveSettings()
111117
}, { deep: true })
112118
isWatcherSetup = true
@@ -126,6 +132,7 @@ export function useSettings() {
126132
saveSettings,
127133
tools,
128134
currentToolIndex,
129-
currentToolOffset
135+
currentToolOffsetX,
136+
currentToolOffsetZ
130137
}
131138
}

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,21 @@ import { useSettings } from './useSettings'
33

44
export interface Tool {
55
id: number
6-
offset: number
6+
offsetX: number
7+
offsetZ: number
78
description: string
89
}
910

1011
export function useToolTable() {
11-
const { metric, tools, currentToolIndex, currentToolOffset } = useSettings()
12+
const { metric, tools, currentToolIndex, currentToolOffsetX, currentToolOffsetZ } = useSettings()
1213

1314
const selectedToolId = ref(0)
1415

15-
const updateTool = (id: number, offset: number, description: string) => {
16+
const updateTool = (id: number, offsetX: number, offsetZ: number, description: string) => {
1617
const tool = tools.value.find(t => t.id === id)
1718
if (tool) {
18-
tool.offset = offset
19+
tool.offsetX = offsetX
20+
tool.offsetZ = offsetZ
1921
tool.description = description
2022
}
2123
}
@@ -28,12 +30,12 @@ export function useToolTable() {
2830
return tools.value.find(t => t.id === id)
2931
}
3032

31-
const formatOffset = (offset: number) => {
33+
const formatOffset = (offsetX: number) => {
3234
if (metric.value) {
33-
return offset.toFixed(3)
35+
return offsetX.toFixed(3)
3436
} else {
3537
// Convert mm to inches
36-
return (offset / 25.4).toFixed(4)
38+
return (offsetX / 25.4).toFixed(4)
3739
}
3840
}
3941

elle-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
},
7575
"build": {
7676
"appId": "net.tinic.elle.app",
77-
"productName": "Elle",
77+
"productName": "Elle-Nightly",
7878
"copyright": "Copyright © 2023 ${author}",
7979
"publish": [
8080
{

0 commit comments

Comments
 (0)