Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
Moderator: Moderators
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
Email is still bouncing from gmail.
I didn't get your PM. It's "on hold", whatever that means.
In any case, my email was just to ask you to email your cfg files to me. It's easier than trying to post files on the forum.
I didn't get your PM. It's "on hold", whatever that means.
In any case, my email was just to ask you to email your cfg files to me. It's easier than trying to post files on the forum.
-
Framed_Previz90
- Posts: 37
- Joined: Sat May 23, 2020 8:31 pm
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
It seems the forces at large are hard at work
If all you need are the config files, they are relatively brief and I don't mind sharing them on this thread, I don't think there is anything on there that is sensitive to my privacy.
There are 3 files in /appData/, global and UserInfo seem to get created when I enable logging via task tray:
Code: Select all
C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\jet.xml
C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\Global.xml
C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\UserInfo.xmlCode: Select all
<?xml version="1.0" encoding="UTF-8"?><AppCfg Default="false" xmlns="" CfgFormatVersion="1.3" ThisFileVersion="1.8">
<CfgProperties>
<ID>ID_STR_JET</ID>
<Name>STR_JET</Name>
<InheritsFromID>ID_STR_JET</InheritsFromID>
<Access>
<AllowInheritance>true</AllowInheritance>
<Hidden>false</Hidden>
<Ignore>false</Ignore>
</Access>
</CfgProperties>
<AppInfo>
<Signature>
<Name>STR_JET</Name>
</Signature>
<Options/>
</AppInfo>
<AuthorInfo>
<DriverVersion>17.8.20.20889</DriverVersion>
<LastChange>
<Tool>3DxService.exe</Tool>
<Version>17.8.20.20889</Version>
<Date>2024:5:5:3:18:56:55:331</Date>
<User>5EA9AEC9-F4DD-4226-BAD5-46F3F84CCDAC</User>
</LastChange>
<Created>
<Tool>3DxService.exe</Tool>
<Version>17.8.21.20868</Version>
<Date>2024:4:3:17:7:43:52:955</Date>
<User>ADB714F4-85D1-4915-8A36-C6796D456743</User>
</Created>
</AuthorInfo>
<ButtonActions>
<!-[list]Axis/ApplicationBank operations -->[/list]
<ButtonAction Type="AxisBank">
<ID>AxisBank_ShiftToJoystick</ID>
<Name>Shift to Joystick</Name>
<Action>PushPop</Action>
<BankID>JoystickBank</BankID>
<ApplyTo>All</ApplyTo>
</ButtonAction>
<ButtonAction Type="ApplicationBank">
<ID>ApplicationBank_ShiftLockToJoystick</ID>
<Name>ShiftLock to Joystick</Name>
<Action>Push</Action>
<BankID>JoystickBank</BankID>
<ApplyTo>All</ApplyTo>
</ButtonAction>
<ButtonAction Type="ApplicationBank">
<ID>ApplicationBank_Pop</ID>
<Name>Pop Back</Name>
<Action>Pop</Action>
<BankID>Default</BankID>
<ApplyTo>All</ApplyTo>
</ButtonAction>
</ButtonActions>
<Devices>
<Device>
<ID>ID_Standard_3D_Mouse</ID>
<Name>Standard 3D Mouse</Name>
<AxisFilter>None</AxisFilter>
<CurrentAxisBank>Default</CurrentAxisBank>
<AxisBank Default="true">
<ID>JoystickBank</ID>
<Name>JoystickBank</Name>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_X</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_X</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Y</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Y</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Z</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Z</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rx</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Rx</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Ry</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Ry</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rz</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Rz</ActionID>
</Output>
</Axis>
</AxisBank>
<ButtonBank Default="true">
<ID>Default</ID>
<Name>Default</Name>
<InheritsFromID/>
<Button>
<Input>
<ActionID>V3DK_MENU_1</ActionID>
</Input>
<Output>
<ActionID>AxisBank_ShiftToJoystick</ActionID>
</Output>
</Button>
<Button>
<Input>
<ActionID>V3DK_MENU_2</ActionID>
</Input>
<Output>
<ActionID>ApplicationBank_ShiftLockToJoystick</ActionID>
</Output>
</Button>
</ButtonBank>
<ButtonBank>
<ID>JoystickBank</ID>
<Name>JoystickBank</Name>
<InheritsFromID/>
<Button>
<Input>
<ActionID>V3DK_MENU_1</ActionID>
</Input>
<Output>
<ActionID>AxisBank_ShiftToJoystick</ActionID>
</Output>
</Button>
<Button>
<Input>
<ActionID>V3DK_MENU_2</ActionID>
</Input>
<Output>
<ActionID>ApplicationBank_Pop</ActionID>
</Output>
</Button>
</ButtonBank>
</Device>
<Device><ID>ID_ProductID_C62E</ID><AxisFilter>None</AxisFilter><CurrentAxisBank>Default</CurrentAxisBank><CurrentButtonBank></CurrentButtonBank></Device></Devices>
</AppCfg>Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<Global Default="false"
xmlns="" CfgFormatVersion="1.3" ThisFileVersion="">
<CfgProperties>
<ID>ID_Global_Cfg</ID>
<Name>STR_GLOBALCFG</Name>
<InheritsFromID>ID_Global_Cfg</InheritsFromID>
</CfgProperties>
<AuthorInfo>
<DriverVersion>17.8.20.20889</DriverVersion>
<LastChange>
<Tool>3DxService.exe</Tool>
<Version>17.8.20.20889</Version>
<Date>2024:5:5:3:18:57:32:732</Date>
<User>5EA9AEC9-F4DD-4226-BAD5-46F3F84CCDAC</User>
</LastChange>
<Created>
<Tool>3DxService.exe</Tool>
<Version>17.8.20.20889</Version>
<Date>2024:5:5:3:18:55:15:285</Date>
<User>5EA9AEC9-F4DD-4226-BAD5-46F3F84CCDAC</User>
</Created>
</AuthorInfo>
<Settings>
<InstallerAutoCheckForUpdates>true</InstallerAutoCheckForUpdates>
<LastAutoCheckForUpdates>3-5-2024</LastAutoCheckForUpdates>
<LogLevel>DFFEF7</LogLevel>
</Settings>
</Global>Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<UserInfo
xmlns="" FormatVersion="1.0" ThisFileVersion="1.0">
<User>
<ID>5EA9AEC9-F4DD-4226-BAD5-46F3F84CCDAC</ID>
<Name>user1</Name>
</User>
</UserInfo>-
Framed_Previz90
- Posts: 37
- Joined: Sat May 23, 2020 8:31 pm
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
Okay, this post is some hours after my reply above, and after some more experimenting, I got your solution from this post to work! What I did was I used the GUI to generate a Jet Demo.xml by making a modification, such as assigning a key to the right button.
One difference I noticed, is that the config generated by the GUI seemed to explicitly declare the Jet windows executable name:
I simply took that generated file and added the nodes you provided to it, such as the ButtonActions and Devices nodes, for completeness the following is the full content of the Jet Demo.xml I ended up with:
Now the config seems to get picked up, the log from Baretrail:
But there is a bug/issue in one of the ButtonActions, for these tests am using a Space Mouse Wireless.
The left button (Shift to Joystick) works as intended, holding it down causes Joystick events to start firing and 3D navigation to stop working. When the left button is released, joystick events stop working and 3D navigation resumes, its fast and snappy, perfect!
Now with the right button, which has the ButtonAction ShiftLock to Joystick. On the first press, it works as intended, the puck starts sending Joystick events, and 3D navigation on the Jet window stops working, Baretrail also shows:
On the second press of the same button, 3D navigation is back to working in the Jet window and Baretrail goes back to printing the standard lines it was printing:
The above behaviour is thus far as expected and desired. The bug occurs from this point on, pressing the right button again to switch to joystick mode does nothing, joystick events do not start firing and 3D navigation in Jet continues to work. Once this bug starts occurring, the left button (Shift to Joystick) also stops working. The only way to get things to start working again is to stop the 3dx service and restart it again.
Also, sometimes stopping and starting the 3dx service does not fix this issue, as I the Jet Demo.xml is being modified in real time, and so I have to stop, restore the backup of the Jet Demo.xml I have to /appdata/, finally start the 3dx service.
One difference I noticed, is that the config generated by the GUI seemed to explicitly declare the Jet windows executable name:
Code: Select all
<Signature>
<Name>Jet Demo</Name>
<ExecutableName>jet.exe</ExecutableName><SiOpenAppName>Jet Demo</SiOpenAppName></Signature>
<Options>
<UseSiOpenAppName>true</UseSiOpenAppName>
</Options>
</AppInfo>Code: Select all
<?xml version="1.0" encoding="utf-8" standalone="no"?><AppCfg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Default="false" CfgFormatVersion="1.3" ThisFileVersion="1.13">
<AppInfo>
<Signature>
<Name>Jet Demo</Name>
<ExecutableName>jet.exe</ExecutableName><SiOpenAppName>Jet Demo</SiOpenAppName></Signature>
<Options>
<UseSiOpenAppName>true</UseSiOpenAppName>
</Options>
</AppInfo>
<CfgProperties>
<ID>ID_Jet Demo</ID>
<Name>Jet Demo</Name>
<InheritsFromID>ID_Default_S80_Cfg</InheritsFromID>
</CfgProperties>
<ButtonActions>
<!-[list]Axis/ApplicationBank operations -->[/list]
<ButtonAction Type="AxisBank">
<ID>AxisBank_ShiftToJoystick</ID>
<Name>Shift to Joystick</Name>
<Action>PushPop</Action>
<BankID>JoystickBank</BankID>
<ApplyTo>All</ApplyTo>
</ButtonAction>
<ButtonAction Type="ApplicationBank">
<ID>ApplicationBank_ShiftLockToJoystick</ID>
<Name>ShiftLock to Joystick</Name>
<Action>Push</Action>
<BankID>JoystickBank</BankID>
<ApplyTo>All</ApplyTo>
</ButtonAction>
<ButtonAction Type="ApplicationBank">
<ID>ApplicationBank_Pop</ID>
<Name>Pop Back</Name>
<Action>Pop</Action>
<BankID>Default</BankID>
<ApplyTo>All</ApplyTo>
</ButtonAction>
</ButtonActions>
<Devices>
<Device>
<ID>ID_Standard_3D_Mouse</ID>
<Name>Standard 3D Mouse</Name>
<AxisFilter>None</AxisFilter>
<CurrentAxisBank>Default</CurrentAxisBank>
<AxisBank Default="true">
<ID>JoystickBank</ID>
<Name>JoystickBank</Name>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_X</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_X</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Y</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Y</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Z</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Z</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rx</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Rx</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Ry</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Ry</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rz</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDJoystick_Rz</ActionID>
</Output>
</Axis>
</AxisBank>
<ButtonBank Default="true">
<ID>Default</ID>
<Name>Default</Name>
<InheritsFromID/>
<Button>
<Input>
<ActionID>V3DK_MENU_1</ActionID>
</Input>
<Output>
<ActionID>AxisBank_ShiftToJoystick</ActionID>
</Output>
</Button>
<Button>
<Input>
<ActionID>V3DK_MENU_2</ActionID>
</Input>
<Output>
<ActionID>ApplicationBank_ShiftLockToJoystick</ActionID>
</Output>
</Button>
</ButtonBank>
<ButtonBank>
<ID>JoystickBank</ID>
<Name>JoystickBank</Name>
<InheritsFromID/>
<Button>
<Input>
<ActionID>V3DK_MENU_1</ActionID>
</Input>
<Output>
<ActionID>AxisBank_ShiftToJoystick</ActionID>
</Output>
</Button>
<Button>
<Input>
<ActionID>V3DK_MENU_2</ActionID>
</Input>
<Output>
<ActionID>ApplicationBank_Pop</ActionID>
</Output>
</Button>
</ButtonBank>
</Device>
<Device><ID>ID_ProductID_C62E</ID><AxisFilter>None</AxisFilter><CurrentAxisBank>Default</CurrentAxisBank><CurrentButtonBank></CurrentButtonBank></Device></Devices>
<AuthorInfo>
<DriverVersion>17.8.20.20889</DriverVersion>
<LastChange>
<Tool>3DxService.exe</Tool>
<Version>17.8.20.20889</Version>
<Date>2024:5:5:3:21:16:46:700</Date>
<User>61690358-47CF-430A-AB32-03F9A94F162E</User>
</LastChange>
<Created><Tool>3DxService.exe</Tool><Version>17.8.20.20889</Version><Date>2024:5:5:3:21:16:42:76</Date><User>61690358-47CF-430A-AB32-03F9A94F162E</User></Created></AuthorInfo>
</AppCfg>Code: Select all
...
00000400 3/5/2024 22:41:3.871: CreateCfgChain: CfgChain is
ID=ID_Global_Cfg FileName=C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\Global.xml FileExists=true InheritsFromID=ID_Global_Cfg
ID=ID_Global_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\Global.xml FileExists=true InheritsFromID=
ID=ID_EnUS_LocalizationTables FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\en-US.xml FileExists=true InheritsFromID=
ID=ID_Jet Demo FileName=C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\Jet Demo.xml FileExists=true InheritsFromID=ID_Default_S80_Cfg
ID=ID_Default_S80_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\AppDefCfg_S80.xml FileExists=true InheritsFromID=ID_Default_Cfg
ID=ID_Default_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\AppCfg.xml FileExists=true InheritsFromID=ID_Base_Cfg
ID=ID_Base_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\Base.xml FileExists=true InheritsFromID=
...The left button (Shift to Joystick) works as intended, holding it down causes Joystick events to start firing and 3D navigation to stop working. When the left button is released, joystick events stop working and 3D navigation resumes, its fast and snappy, perfect!
Now with the right button, which has the ButtonAction ShiftLock to Joystick. On the first press, it works as intended, the puck starts sending Joystick events, and 3D navigation on the Jet window stops working, Baretrail also shows:
Code: Select all
...
00000020 3/5/2024 22:41:4.219: SendJoystickEvent: Joystick: buttons=0x0, status=0x0, X=-55, Y=4, Z=0, RX=14, RY=127, RZ=-46, throttle=0, hat=0x0, force=0
00000020 3/5/2024 22:41:4.234: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_JOYSTICK_AXIS, origActionID=HIDMultiAxis_X, origValue=-65
00000020 3/5/2024 22:41:4.234: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_JOYSTICK_AXIS, origActionID=HIDMultiAxis_Y, origValue=12
00000020 3/5/2024 22:41:4.234: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_JOYSTICK_AXIS, origActionID=HIDMultiAxis_Rx, origValue=23
00000020 3/5/2024 22:41:4.234: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_JOYSTICK_AXIS, origActionID=HIDMultiAxis_Ry, origValue=243
00000020 3/5/2024 22:41:4.234: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_JOYSTICK_AXIS, origActionID=HIDMultiAxis_Rz, origValue=-55
00000020 3/5/2024 22:41:4.234: SendJoystickEvent: Joystick: buttons=0x0, status=0x0, X=-65, Y=12, Z=0, RX=23, RY=127, RZ=-55, throttle=0, hat=0x0, force=0
...Code: Select all
...
00000004 3/5/2024 22:50:33.581: Device: \\?\HID#VID_256F&PID_C62F#9&83445F7&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}: EPS mean=62.504787, standardDeviation=0.049971
00000004 3/5/2024 22:50:35.325: Device: \\?\HID#VID_256F&PID_C62F#9&83445F7&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}: EPS mean=61.793530, standardDeviation=4.660031
...
00000040 3/5/2024 22:50:43.574: AppSignature::Equals: this->ExeName: (jet.exe/PID=29812/Focus=0xed2c9a/Cursor=0xed2c9a/<WindowClassName>Jet Demo</WindowClassName>) does not equal otherSig->ExeName: (baretail.exe/PID=20612/Focus=0xa40e1e/Cursor=0xa40e1e/<WindowClassName>TBEGUIFileViewer</WindowClassName>)
00000040 3/5/2024 22:50:43.575: CheckForChangeThread:CheckForFocusAppSignatureChange: App changed from jet.exe/PID=29812/Focus=0xed2c9a/Cursor=0xed2c9a to baretail.exe/PID=20612/Focus=0xa40e1e/Cursor=0xa40e1e
00000040 3/5/2024 22:50:43.575: CheckForChange.cpp:CheckForChangeMethod: lastApp is jet.exe/PID=29812/Focus=0xed2c9a/Cursor=0xed2c9a newApp is baretail.exe/PID=20612/Focus=0xa40e1e/Cursor=0xa40e1e
00000040 3/5/2024 22:50:43.575: AppSignature::Equals: this->ExeName: (jet.exe/PID=29812/Focus=0xed2c9a/Cursor=0xed2c9a/<WindowClassName>Jet Demo</WindowClassName>) does not equal otherSig->ExeName: (baretail.exe/PID=20612/Focus=0xa40e1e/Cursor=0xa40e1e/<WindowClassName>TBEGUIFileViewer</WindowClassName>)
00000040 3/5/2024 22:50:43.590: UpdateTheDisplay: SpaceMouse Wireless: display.state.bEnable=1
00000004 3/5/2024 22:50:43.593: DriverState: Using Battery 14 0 for \\?\HID#VID_256F&PID_C62F#9&83445F7&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}
00000004 3/5/2024 22:50:43.597: HIDDev.ProcessInputReport: Battery Level Packet: 14 0 from \\?\HID#VID_256F&PID_C62F#9&83445F7&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}
...Also, sometimes stopping and starting the 3dx service does not fix this issue, as I the Jet Demo.xml is being modified in real time, and so I have to stop, restore the backup of the Jet Demo.xml I have to /appdata/, finally start the 3dx service.
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
The ShiftLock problem appears to be a bug.
That's two you have found recently. You should get an honorary QA position.
It appears that all that works ATM is the momentary switch, not a "ShiftLock" button.
Thanks for finding the problem.
That's two you have found recently. You should get an honorary QA position.
It appears that all that works ATM is the momentary switch, not a "ShiftLock" button.
Thanks for finding the problem.
-
Framed_Previz90
- Posts: 37
- Joined: Sat May 23, 2020 8:31 pm
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
Hehe that made my day lol, I will make do the with monetary switch and keep the other one around anyways, I bet it will be working one day. Glad to know it was not on my end
Cheers for the help!
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
The problem with the "ShiftLock to Joystick" and "Pop Back" buttons was a cfg problem.
The Joystick AxisBank should not have the Default="true" attribute. Remove that attribute.
It should look like this:
The Joystick AxisBank should not have the Default="true" attribute. Remove that attribute.
It should look like this:
Code: Select all
<AxisBank>
<ID>JoystickBank</ID>
<Name>JoystickBank</Name>
<Axis>
-
Framed_Previz90
- Posts: 37
- Joined: Sat May 23, 2020 8:31 pm
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
Neet! I will test this out as soon as I can. Thanks!
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
(Admin: Incorrect Quoted section removed)
Thanks for those explanations, I've been able to pick up joystick inputs with AutoHotKey.
Do you know if there is a way to assign this shift mechanism you implemented on the Spacemouse to standard mouse buttons ?
This way I hope to intercept when both mouse click and joystick input are sent with Autohotkey, and make it fire a different command for each combination.
Many thanks.
Thanks for those explanations, I've been able to pick up joystick inputs with AutoHotKey.
Do you know if there is a way to assign this shift mechanism you implemented on the Spacemouse to standard mouse buttons ?
This way I hope to intercept when both mouse click and joystick input are sent with Autohotkey, and make it fire a different command for each combination.
Many thanks.
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
My bad I quoted the wrong post up there, and it seems I can edit my posts.
This is the correct post related to my question:
This is the correct post related to my question:
jwick wrote: ↑Wed Apr 17, 2024 2:42 am Unfortunately using Global.xml does not seem to work well with the current release (we are skiing off the trail here).
You will need to make the cfg changes per application until I fix it.
To see the capabilities in the simplest form, save this into %appdata%\3Dconnexion\3DxWare\Cfg\jet.xml:Code: Select all
<?xml version="1.0" encoding="UTF-8"?> <AppCfg Default="false" xmlns="" CfgFormatVersion="1.3" ThisFileVersion="1.8"> <CfgProperties> <ID>ID_STR_JET</ID> <Name>STR_JET</Name> <InheritsFromID>ID_STR_JET</InheritsFromID> <Access> <AllowInheritance>true</AllowInheritance> <Hidden>false</Hidden> <Ignore>false</Ignore> </Access> </CfgProperties> <AppInfo> <Signature> <Name>STR_JET</Name> </Signature> <Options/> </AppInfo> <AuthorInfo> <DriverVersion>17.8.20.20889</DriverVersion> <LastChange> <Tool>3DxService.exe</Tool> <Version>17.8.20.20889</Version> <Date>2024:4:3:17:8:57:45:403</Date> <User>ADB714F4-85D1-4915-8A36-C6796D456743</User> </LastChange> <Created> <Tool>3DxService.exe</Tool> <Version>17.8.21.20868</Version> <Date>2024:4:3:17:7:43:52:955</Date> <User>ADB714F4-85D1-4915-8A36-C6796D456743</User> </Created> </AuthorInfo> <ButtonActions> <!-- Axis/ApplicationBank operations --> <ButtonAction Type="AxisBank"> <ID>AxisBank_ShiftToJoystick</ID> <Name>Shift to Joystick</Name> <Action>PushPop</Action> <BankID>JoystickBank</BankID> <ApplyTo>All</ApplyTo> </ButtonAction> <ButtonAction Type="ApplicationBank"> <ID>ApplicationBank_ShiftLockToJoystick</ID> <Name>ShiftLock to Joystick</Name> <Action>Push</Action> <BankID>JoystickBank</BankID> <ApplyTo>All</ApplyTo> </ButtonAction> <ButtonAction Type="ApplicationBank"> <ID>ApplicationBank_Pop</ID> <Name>Pop Back</Name> <Action>Pop</Action> <BankID>Default</BankID> <ApplyTo>All</ApplyTo> </ButtonAction> </ButtonActions> <Devices> <Device> <ID>ID_Standard_3D_Mouse</ID> <Name>Standard 3D Mouse</Name> <AxisFilter>None</AxisFilter> <CurrentAxisBank>Default</CurrentAxisBank> <AxisBank Default="true"> <ID>JoystickBank</ID> <Name>JoystickBank</Name> <Axis> <Enabled>true</Enabled> <Input> <ActionID>HIDMultiAxis_X</ActionID> <Min>-512</Min> <Max>511</Max> </Input> <Output> <ActionID>HIDJoystick_X</ActionID> </Output> </Axis> <Axis> <Enabled>true</Enabled> <Input> <ActionID>HIDMultiAxis_Y</ActionID> <Min>-512</Min> <Max>511</Max> </Input> <Output> <ActionID>HIDJoystick_Y</ActionID> </Output> </Axis> <Axis> <Enabled>true</Enabled> <Input> <ActionID>HIDMultiAxis_Z</ActionID> <Min>-512</Min> <Max>511</Max> </Input> <Output> <ActionID>HIDJoystick_Z</ActionID> </Output> </Axis> <Axis> <Enabled>true</Enabled> <Input> <ActionID>HIDMultiAxis_Rx</ActionID> <Min>-512</Min> <Max>511</Max> </Input> <Output> <ActionID>HIDJoystick_Rx</ActionID> </Output> </Axis> <Axis> <Enabled>true</Enabled> <Input> <ActionID>HIDMultiAxis_Ry</ActionID> <Min>-512</Min> <Max>511</Max> </Input> <Output> <ActionID>HIDJoystick_Ry</ActionID> </Output> </Axis> <Axis> <Enabled>true</Enabled> <Input> <ActionID>HIDMultiAxis_Rz</ActionID> <Min>-512</Min> <Max>511</Max> </Input> <Output> <ActionID>HIDJoystick_Rz</ActionID> </Output> </Axis> </AxisBank> <ButtonBank Default="true"> <ID>Default</ID> <Name>Default</Name> <InheritsFromID/> <Button> <Input> <ActionID>V3DK_MENU_1</ActionID> </Input> <Output> <ActionID>AxisBank_ShiftToJoystick</ActionID> </Output> </Button> <Button> <Input> <ActionID>V3DK_MENU_2</ActionID> </Input> <Output> <ActionID>ApplicationBank_ShiftLockToJoystick</ActionID> </Output> </Button> </ButtonBank> <ButtonBank> <ID>JoystickBank</ID> <Name>JoystickBank</Name> <InheritsFromID/> <Button> <Input> <ActionID>V3DK_MENU_1</ActionID> </Input> <Output> <ActionID>AxisBank_ShiftToJoystick</ActionID> </Output> </Button> <Button> <Input> <ActionID>V3DK_MENU_2</ActionID> </Input> <Output> <ActionID>ApplicationBank_Pop</ActionID> </Output> </Button> </ButtonBank> </Device> </Devices> </AppCfg>
What this does:
Fundamentally, it defines an AxisBank that defines Joystick events, and switches to/from that.
The implementation of that:
There are three ButtonActions, which can be assigned to any button (that has a separate press and release state).
1) "Shift to Joystick" is the Shfit key functionality. When pressed, it switches the 3D mouse axes to send joystick events. When you release it, it goes back to what it was doing.
2) "ShiftLock to Joystick" is the ShiftLock/CapsLock functionality. Press it once and it switches the axes (AND the buttons).
3) "Pop Back" handles the second press of that button to switch back to the previous mode (3D mouse mode).
There is:
1) an AxisBank, which the buttons switch to. This defines the joystick axis events.
2) a "Default" ButtonBank that defines that the left and right buttons, call the aforementioned ButtonActions.
3) a "JoystickBank" ButtonBank that only exists to return back from Joystick mode (only necessary for ShiftLock mode).
I'm assuming you are using the latest 3DxWare release (10.8.20).
To test, run our jet.exe demo (in 3DxWinCore dir - normally C:\Program Files\3Dconnexion\3DxWare\3DxWinCore).
On a 2-button device (SpaceMouse Wireless/Compact/SpaceNavigator), I've assigned:
the left button to the "Shift" mode. It switches to Joystick mode while the button is pressed, and
the right button to the "ShiftLock" mode. It switches to Joystick mode when you press and release it. If it is pressed again, it switches back to the original mode.
To see what is going on, enable the driver's log file (right-click on the 3Dx systray icon ->Write Log File).
Download baretail and run it on %localappdata%\3Dconnexion\3DxWare\3DxService.log.
Run our jet demo.
When you switch to Joystick mode, using either method, the log file will show that joystick events are being sent out. The jet won't move.
You can reassign those buttons for other devices.
Since the driver is now sending joystick events, autohotkey should be able to translate them to whatever you want to do.
I don't have Maya here ATM to test it with. For Maya, you'll need to make the same changes to your %appdata%/.../Maya.xml file.
That is, add the 3 ButtonAction elements to the <ButtonActions> list.
Add the entire <Device>. If you already have some ID_Standard_3D_Mouse elements in there, you need to add the <AxisBank> and the two <ButtonBank>s.
There is a chance that you will end up fighting Maya on this. When you change modes in Maya, it may try to undo what you are doing. If you find this, let me know.
I never intended users to edit XML files. The GUI was supposed to do this for you...
If the XML editing is too much, PM your %appdata% files to me and I'll edit them and return them for you.
That's a lot to understand. I"m here to help.
Re: Help with assigning a hotkey such as win+13 or ctrl+f13 to one of the axis please
I don't understand what you are asking. None of this works on non-3Dx devices, simply because our software doesn't read them.Do you know if there is a way to assign this shift mechanism you implemented on the Spacemouse to standard mouse buttons ?
