Using Spacenavigatot rotated 90°

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Using Spacenavigatot rotated 90°

Post by mikycoud » Sat Nov 04, 2017 2:19 am

Hi,
It would be tremendously helpful if I could find a way to use my spacenavigator rotated 90° to the right.
In essence, taht means that the USB cable exit would now be located on the right hand side (as opposed to the front), and the 3D connexion logo would be to the left.
Of course that means changing a few axis in the config files, I imagine, but that should be feasible, right?
Why you ask?
Because after 4 years of using it, I still cannot get used to the location of the two tiny buttons on the left and rigth of the device. It's probably due to the way I like to hold my joystick, but it would be a lifechanger for me to have the buttons top and bottom instead of left and rigth.

Thanx for any input on how to best achieve this...

Mikael

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Tue Nov 07, 2017 6:14 am

Come on, I'm sure there's a way to achieve just that through those rather big and intimidating XML files.
I just need to be pointed in the right direction.
Although, to be hnoest, it would be even more aweesome if that request (rotate device 90°) was implemented in a future driver release. But let's be honest, what are the chaces of that happening, huh? :-)
SO back to XML....
ANyone?

jwick
Moderator
Moderator
Posts: 2639
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Using Spacenavigatot rotated 90°

Post by jwick » Wed Nov 08, 2017 9:13 am

While it is skiing off the trail, there is nothing to prevent you from swapping X, Y and Rx, Ry axes in your Base.xml file (Device: Standard 3D Mouse).
Each Axis definition has an Input and an Output. Just change the Output.

This will be used for all applications that don't override it (very few override it). You probably have to set Reversed: true on some of the axes after you swap them.

While we don't supply a built-in function for that, you can write a script to do it. It sounds like once you swap them, you don't want to swap them back.

Happy cfg hacking.

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Mon Nov 20, 2017 11:29 am

Hi,
thanx for pointing me in the right direction.
Where might I find that Base.xml file please?
If I recall well, there are numerous XML files...
Thanx

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Mon Nov 20, 2017 11:29 am

I'm on windows 10 BTW

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Mon Nov 20, 2017 11:34 am

Ok, got it...

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Mon Nov 20, 2017 11:40 am

RIght, so I guess I need to change output settings for tilt up/down and tilt left/right, and also for slide up/down and slide right/left. Z should be left alone right?
In the xml, I've got X, Y and rX and rY.
Which is which please? (ie: is Rx slide right?)
Thanx

jwick
Moderator
Moderator
Posts: 2639
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Using Spacenavigatot rotated 90°

Post by jwick » Tue Nov 21, 2017 2:12 am

X, Y, Z are the translations. Rx, Ry, Rz are the rotations.
Yes, leave the Z's alone.
It should look something like this (but depends on if you rotated + or - 90):

Code: Select all

			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_X</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>0</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMultiAxis_Y</ActionID>
					<NameID>STR_PAN_RIGHT_LEFT</NameID>
					<Min>-512.00</Min>
					<Max>511.00</Max>
					<Scale>1.00</Scale>
					<Reversed>false</Reversed>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Y</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>0</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMultiAxis_X</ActionID>
					<NameID>STR_ZOOM_IN_OUT</NameID>
					<Min>-512.00</Min>
					<Max>511.00</Max>
					<Scale>1.00</Scale>
					<Reversed>true</Reversed>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Z</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>0</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMultiAxis_Z</ActionID>
					<NameID>STR_PAN_UP_DOWN</NameID>
					<Min>-512.00</Min>
					<Max>511.00</Max>
					<Scale>1.00</Scale>
					<Reversed>false</Reversed>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Rx</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>0</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMultiAxis_Ry</ActionID>
					<NameID>STR_TILT</NameID>
					<Min>-512.00</Min>
					<Max>511.00</Max>
					<Scale>1.00</Scale>
					<Reversed>false</Reversed>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Ry</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>0</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMultiAxis_Rx</ActionID>
					<NameID>STR_ROLL</NameID>
					<Min>-512.00</Min>
					<Max>511.00</Max>
					<Scale>1.00</Scale>
					<Reversed>true</Reversed>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Rz</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>0</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMultiAxis_Rz</ActionID>
					<NameID>STR_SPIN</NameID>
					<Min>-512.00</Min>
					<Max>511.00</Max>
					<Scale>1.00</Scale>
					<Reversed>false</Reversed>
				</Output>
			</Axis>

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Tue Nov 21, 2017 11:28 am

Thanx for your advice.
unfortunately, it doesn't seem to work.
I did modify the base.xml file located here:
C:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\Cfg
But it doesn't seem to affect anything. It all still works as before...
Is there another xml file higher up in the hierarchy?

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Tue Nov 21, 2017 11:29 am

Here's what my base.xml file looks like after mods:
<Device>
<Name>Standard 3D Mouse</Name>
<VendorID>0</VendorID>
<ProductID>0</ProductID>
<Image>
<Source>[device_images:Unknown3DxImage.png]</Source>
</Image>
<InheritsFrom>Standard 3D Mouse</InheritsFrom>
<Class>SI_CLASS_3DMOUSE</Class>
<Discontinued>false</Discontinued>
<AxisFilter>None</AxisFilter>
<CurrentButtonBank>Default</CurrentButtonBank>
<GlobalButtonBank>AllApplications</GlobalButtonBank>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_X</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>0</Deadband>
</Input>
<Output>
<ActionID>HIDMultiAxis_Y</ActionID>
<NameID>STR_PAN_RIGHT_LEFT</NameID>
<Min>-512.00</Min>
<Max>511.00</Max>
<Scale>1.00</Scale>
<Reversed>false</Reversed>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Y</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>0</Deadband>
</Input>
<Output>
<ActionID>HIDMultiAxis_X</ActionID>
<NameID>STR_ZOOM_IN_OUT</NameID>
<Min>-512.00</Min>
<Max>511.00</Max>
<Scale>1.00</Scale>
<Reversed>true</Reversed>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Z</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>0</Deadband>
</Input>
<Output>
<ActionID>HIDMultiAxis_Z</ActionID>
<NameID>STR_PAN_UP_DOWN</NameID>
<Min>-512.00</Min>
<Max>511.00</Max>
<Scale>1.00</Scale>
<Reversed>false</Reversed>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rx</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>0</Deadband>
</Input>
<Output>
<ActionID>HIDMultiAxis_Ry</ActionID>
<NameID>STR_TILT</NameID>
<Min>-512.00</Min>
<Max>511.00</Max>
<Scale>1.00</Scale>
<Reversed>false</Reversed>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Ry</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>0</Deadband>
</Input>
<Output>
<ActionID>HIDMultiAxis_Rx</ActionID>
<NameID>STR_ROLL</NameID>
<Min>-512.00</Min>
<Max>511.00</Max>
<Scale>1.00</Scale>
<Reversed>true</Reversed>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rz</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>0</Deadband>
</Input>
<Output>
<ActionID>HIDMultiAxis_Rz</ActionID>
<NameID>STR_SPIN</NameID>
<Min>-512.00</Min>
<Max>511.00</Max>
<Scale>1.00</Scale>
<Reversed>false</Reversed>
</Output>
</Axis>

jwick
Moderator
Moderator
Posts: 2639
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Using Spacenavigatot rotated 90°

Post by jwick » Tue Nov 21, 2017 12:24 pm

You do have to restart the driver after modifying that file.
And this only works for 3d apps.
Try one of our demos (jet, cube3d, puzzle)

Is "3Dconnexion SpaceNavigator" listed by name in the Device Manager (under Human Interface Devices)?

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Wed Nov 22, 2017 3:46 am

Oh right, I see. It only works in 3D apps...COnfirmed....
Bugger. I use the 3D mouse almost as much in 2D apps as I do in 3D ones, so it's not a viable option for me.
I obviously can't have my axis reversed half the time.
Is there a way to configure the xml so it reverses axes on 2D apps as well?

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Wed Nov 22, 2017 3:47 am

edit: obviosuly when I say "reverse axes", i mean "swapped axes", as in X for Y and Y for X...

jwick
Moderator
Moderator
Posts: 2639
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Using Spacenavigatot rotated 90°

Post by jwick » Wed Nov 22, 2017 3:56 am

You can't swap the axes so globally for 2D apps.

Each 2D app has its own definition of the axis mapping which overrides base.xml. But there probably aren't many that you care about.
Editing AppDefCfg_KMJ.xml will change a lot of them.

You have to do the same operation for the 2D apps (swap the Outputs).

Let's make this easy. Just wait until you see an app that isn't behaving the way you want. Hover over the 3Dx systray icon while that app is in focus. It will tell you which cfg file you need to change.

mikycoud
Posts: 22
Joined: Wed Apr 18, 2012 2:57 am

Re: Using Spacenavigatot rotated 90°

Post by mikycoud » Wed Nov 22, 2017 12:53 pm

That's awesome advice. thanx a lot for all the info....!

Post Reply