PLEASE HELP i need the 2D mouse feature back to run my pc

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
smurf83
Posts: 37
Joined: Wed Jul 09, 2008 6:56 am
Location: USA
Contact:

PLEASE HELP i need the 2D mouse feature back to run my pc

Post by smurf83 »

i'm in serious need to get my 2d mouse feature back so i can use my computer because i'm disabled. i upgraded from a extremely old driver and it made my space navigator unfunctionable as 2d mouse. can someone help me step by step because i'm lost what to do, or create a profile for me?

i need it to...
tilt left & right.., to move the mouse cursor left & right
tilt up & down... to move the mouse cursor up & down
push the cap down... to push the right button mouse click

please i beg anyone please help
waynea
Posts: 3
Joined: Wed Jan 27, 2016 11:05 pm

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by waynea »

I have been trying to figure out how to make that work. Hopefully someone will know.
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by jwick »

smurf83: If you have an old profile (cfg file) from a previous version that does what you want, post it here. I'll make it work.

waynea: Even though the GUI is gone for assigning 2D mouse actions to your 3D mouse, the functionality is still there. You have to do some editing to the cfg files, using your favorite xml editor (e.g., notepad). If you do not want to support any 3D applications, you may want to lock your device into a 2D mouse mode. You can assign any 3D mouse axis to any 2D mouse axis, and any 3D mouse button to any 2D mouse button. To press buttons from the 3D mouse axes, you might need to write some code.

If you want to lock your device into 2D mouse mode, edit the Desktop.xml cfg and set the CfgProperties/Grab value to Hard (it is None as we ship it). This will tell the driver to never switch away from that cfg. If you look in that file, you will see some 3D mouse inputs are already assigned 2D mouse (HIDMouse_*) outputs.
smurf83
Posts: 37
Joined: Wed Jul 09, 2008 6:56 am
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by smurf83 »

Jwick my friend! lol, ok i think this is what you need. yes i need it totally 2d mouse because it's the only mouse that is truly disabled friendly and adaptable

<AppCfg xmlns="" Default="false">
<AppInfo>
<Name>STR_DESKTOP</Name>
<ExecutableName>*.*</ExecutableName>
<Transport>KMJ</Transport>
<Grab>None</Grab>
</AppInfo>
<Settings>
<OverallScale>2.12</OverallScale>
</Settings>
<MacroTable/>
<Devices>
<Device>
<Name>SpaceNavigator for Notebooks</Name>
<VendorID>46d</VendorID>
<ProductID>c628</ProductID>
<AxisFilter>None</AxisFilter>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Ry</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>35</Deadband>
</Input>
<Output>
<ActionID>HIDMouse_X</ActionID>
<Reversed>true</Reversed>
<RepeatStyle>Auto</RepeatStyle>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rx</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>42</Deadband>
</Input>
<Output>
<ActionID>HIDMouse_Y</ActionID>
<Reversed>false</Reversed>
<RepeatStyle>Auto</RepeatStyle>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Z</ActionID>
<Min>0</Min>
<Max>511</Max>
<Deadband>150</Deadband>
</Input>
<Output>
<ActionID>KB_Keystroke</ActionID>
<RepeatStyle>PressAndHold</RepeatStyle>
<Keystroke>
<Key>45</Key>
</Keystroke>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Z</ActionID>
<Min>-512</Min>
<Max>0</Max>
</Input>
<Output>
<ActionID>KB_Keystroke</ActionID>
<RepeatStyle>Auto</RepeatStyle>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_X</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>44</Deadband>
</Input>
<Output>
<ActionID>HIDMouse_X</ActionID>
<Reversed>true</Reversed>
<RepeatStyle>Auto</RepeatStyle>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Y</ActionID>
<Min>-512</Min>
<Max>511</Max>
<Deadband>42</Deadband>
</Input>
<Output>
<ActionID>HIDMouse_Y</ActionID>
<RepeatStyle>Auto</RepeatStyle>
</Output>
</Axis>
<ButtonBank>
<Name>Unknown</Name>
<Button>
<Input>
<ActionID>HIDButton_2</ActionID>
</Input>
<Output>
<ActionID>Driver_Desktop_ToggleGrab</ActionID>
</Output>
</Button>
</ButtonBank>
</Device>
</Devices>
</AppCfg>

hope that's correct
smurf83
Posts: 37
Joined: Wed Jul 09, 2008 6:56 am
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by smurf83 »

oh i must say, this desktop profile would crash everytime i opened Explorer so i use Chrome with no issues. if you can get it to run 100% mouse i'd appreciate it.
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by jwick »

The crash was probably because you were missing some required elements for the half-axis you were trying to disable. I've changed that half-axis. There may have also been some issues with the spelling of KeyStroke.

I see you are sending an F12 for the down half-axis. Have you found a way of translating that to a 2D mouse left click? If not, I'll have to write some code for you.

This seemed to work fine with Internet Explorer and Windows Explorer.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<AppCfg Default="false" xmlns="" CfgFormatVersion="1.1" ThisFileVersion="1.2">
	<AppInfo>
	    <Name>STR_DESKTOP</Name>
	    <ExecutableName>*.*</ExecutableName>
	    <Transport>KMJ</Transport>
	</AppInfo>
	<CfgProperties>
		<Grab>Hard</Grab>
	</CfgProperties>
	<Settings>
		<OverallScale>2.12</OverallScale>
	</Settings>
	<Devices>
		<Device>
			<Name>SpaceNavigator for Notebooks</Name>
			<VendorID>46d</VendorID>
			<ProductID>c628</ProductID>
			<AxisFilter>None</AxisFilter>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Ry</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>35</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMouse_X</ActionID>
					<Reversed>true</Reversed>
					<RepeatStyle>Auto</RepeatStyle>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Rx</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>42</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMouse_Y</ActionID>
					<Reversed>false</Reversed>
					<RepeatStyle>Auto</RepeatStyle>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Z</ActionID>
					<Min>0</Min>
					<Max>511</Max>
					<Deadband>150</Deadband>
				</Input>
				<Output>
					<ActionID>KB_Keystroke</ActionID>
					<RepeatStyle>PressAndHold</RepeatStyle>
					<KeyStroke>
						<Key>45</Key>
					</KeyStroke>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Z</ActionID>
					<Min>-512</Min>
					<Max>0</Max>
				</Input>
				<Output>
					<ActionID>HIDMultiAxis_Z</ActionID>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_X</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>44</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMouse_X</ActionID>
					<Reversed>true</Reversed>
					<RepeatStyle>Auto</RepeatStyle>
				</Output>
			</Axis>
			<Axis>
				<Enabled>true</Enabled>
				<Input>
					<ActionID>HIDMultiAxis_Y</ActionID>
					<Min>-512</Min>
					<Max>511</Max>
					<Deadband>42</Deadband>
				</Input>
				<Output>
					<ActionID>HIDMouse_Y</ActionID>
					<RepeatStyle>Auto</RepeatStyle>
				</Output>
			</Axis>
			<ButtonBank>
				<Name>Unknown</Name>
				<Button>
					<Input>
						<ActionID>HIDButton_2</ActionID>
					</Input>
					<Output>
						<ActionID>Driver_Desktop_ToggleGrab</ActionID>
					</Output>
				</Button>
			</ButtonBank>
		</Device>
	</Devices>
</AppCfg>
smurf83
Posts: 37
Joined: Wed Jul 09, 2008 6:56 am
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by smurf83 »

well back in the day before you implemented 2d someone made a 2d emulator. then windows 7 came and you implemented it in the actual 3dxware. but if you remember i couldn't right mouse click by pushing the cap. so i downloaded Autohotkey and told it whenever i hit f12 it will right mouse click. then i told spacenavigator to f12 on cap push :) and bingo. by the way where do i put this profile? do i just notepad it & save? and where do i put it? remember i haven't done this in years so can you type the path where this goes.
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by jwick »

That's good. Autohotkey is a nice program.

Save the file into: C:\Users\smurf83\AppData\Roaming\3Dconnexion\3DxWare\Cfg\Desktop.xml
Where I assume smurf83 is your username.

You can also just type (the percentage signs just as it is): %APPDATA%\3Dconnexion\3DxWare\Cfg into your file save as box.

You may need to restart your 3Dconnexion driver. Make sure you have the latest driver installed.
smurf83
Posts: 37
Joined: Wed Jul 09, 2008 6:56 am
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by smurf83 »

IT WORKS! thank you very very VERY much, this means alot to me. again thank you!
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my p

Post by jwick »

I'm glad I could help.
J Brock
Posts: 1
Joined: Thu Feb 22, 2018 4:31 am

Re: PLEASE HELP i need the 2D mouse feature back to run my pc

Post by J Brock »

Hi guys,

I've trawled the web and struggled to find a small enough trackball mouse to use in a flight simulator I'm building and discovered the potential of customising the 'Space Mouse' to use as a 2d mouse to control the cursor on a generic screen... you're my last hope!!

Jwick, it seems you fixed the problem for Smurf83 a couple of years ago- I was wondering if the coding you supplied would work today on a new space mouse if I used the '3D connexion spacemouse compact' in my project? It's a good small size which it has to be to fit the space I have.

I DON'T KNOW WHY THIS ISN'T A STANDARD OPTION ANYWAY :)

Thank you thank you thank you!!
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my pc

Post by jwick »

The SpaceMouse Compact will work as a 2D mouse. It isn't a great 2D mouse since it doesn't move. It's more like a typical notebook stick.
If you are running a flight simulator, then the joystick mode might be more useful.
This is Windows only.
shippy97
Posts: 1
Joined: Tue Jan 15, 2019 8:17 pm

Re: PLEASE HELP i need the 2D mouse feature back to run my pc

Post by shippy97 »

Hi jwick,
You mentioned having the ability to right some code to convert a Z Translation into a Mouse Click.
I've been able to make the "F12 & Autohotkey" method work in most applications - but not all.
Unfortunately the application I need to use the functionality in, is one that doesn't work.

If you could supply the code, to generate a mouse click event from an axis rather than a button that would be greatly appreciated.
Thanks!
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: PLEASE HELP i need the 2D mouse feature back to run my pc

Post by jwick »

Hello shippy97,

I don't know how comfortable you are with coding, but the driver will call code that a user can write.

The steps are:
1) create an AxisAction that identifies the code to run
2) assign the AxisAction to an axis
3) Create a DLL that exports the function defined in the AxisAction (ShowAxis below). In this function you can call the Windows SendInput function to simulate any sort of mouse event.
4) Put that DLL in the Win64/DLLs under the driver's home dir so the driver can find it.

E.g.,

Code: Select all

    <AxisAction Type="DLL">
      <ID>Dll_Call_Sample_Axis</ID>
      <Name>STR_CALL_SAMPLE_DLL</Name>
      <Executable>3DxSample.DLL</Executable>
      <Function>ShowAxis</Function>
      <Arg>HIDID</Arg>
    </AxisAction>

Code: Select all

    <Device>
      <Name>SpaceNavigator</Name>
      <VendorID>46d</VendorID>
      <ProductID>c626</ProductID>
      <AxisFilter>None</AxisFilter>
      <CurrentButtonBank>Default</CurrentButtonBank>
      <CurrentAxisBank>Default</CurrentAxisBank>
      <AxisBank Default="true">
        <Name>STR_DEFAULT_BANK</Name>
        <ID>Default</ID>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Rz</ActionID>
            <Min>-512</Min>
            <Max>511</Max>
          </Input>
          <Output>
            <ActionID>Dll_Call_Sample_Axis</ActionID>
          </Output>
        </Axis>
      </AxisBank>

Code: Select all

// This is an example of an exported function.
extern "C" __declspec(dllexport) void ShowAxis(WCHAR *args)
{
	FILE *fp;
	if (_wfopen_s(&fp, L"C:\\tmp\\3DxSample.txt", L"a") == 0)
	{
		fwprintf(fp, L"Axis Event: %s\n", args);
		fclose(fp);
	}
}
Post Reply