3Dconnexion input devices

Linux
FreeCAD supports drivers from project Spacenav. This is a project aiming to create an open-sourced driver which is compatible with the proprietary drivers from 3Dconnexion.

Compile Spacenav from source
This is recommended since your distribution might provide an outdated version. For example, Ubuntu repos contain version 0.3.0 as of 2011-04-10. ./configure make
 * Download the following files:
 * spacenavd-0.5.tar.gz
 * libspnav-0.2.2.tar.gz
 * spnavcfg-0.2.1.tar.gz
 * Unpack the archives into a folder in your home directory.
 * Enter the directory spacenavd-0.5 and run the following commands:

make install ./setup_init /etc/init.d/spacenavd start
 * If this was successful, run the following commands as root (or prefix with sudo.)

tail -n100 -f /var/log/spnavd.log
 * This installs the spacenav daemon, configures it to automatically load on system boot, and starts the daemon without having to reboot.
 * Now it is time to check that your device is properly detected. With your device unplugged, run the following command and then plug it in.

Device detection, parsing /proc/bus/input/devices trying alternative detection, querying /dev/input/eventX device names... trying "/dev/input/event1" ... Power Button trying "/dev/input/event2" ... 3Dconnexion SpaceNavigator using device: /dev/input/event2 device name: 3Dconnexion SpaceNavigator
 * If the output looks something like this, you can continue.

./configure make
 * Now enter the directory named libspnav-0.2.2 and run the following commands:

fatal error: gtk/gtk.h: No such file or directory
 * If make fails with the following error: ...

sudo apt-get install libgtkmm-2.4-dev
 * ... then you need to install libgtkmm-2.4-dev. Under Ubuntu, this is done like this:

make install
 * When make has completed successfully, run the following command as root (or prefix with sudo.)


 * Look in the directory libspnav-0.2.2/examples/. If you want to test your device, compile and run either one of the two examples.


 * Follow the same pattern to compile and install spnavcfg. Make sure to run spnavcfg as root, or no settings will be saved!

Restart
If sometimes navigator stops working, it is good to restart driver. To restart it, go to Terminal and execute: sudo xhost + sudo /etc/init.d/spacenavd restart

After that restart FreeCAD. On some distros this is necessary at each boot.

Ubuntu
sudo apt-get install spacenavd

OSX
One user managed to get space navigator working under OSX. However it was not merged in master yet. More info here

Windows
As of version 0.13, 3D mouse is supported under windows. You need to have propriate drivers installed, but since support was developed on lower level, it will override settings you set in 3D Connexion control panel. However, most of those settings can be set in Tools>>Customize dialog, under Spaceball tabs.

Setting up FreeCAD
3D mouse support was made with spnav project on Linux, and on a very low level on Windows. This means there was no support for any settings for a device, since on Linux there is no good support for this, and on Windows it is overridden. This is why two additional pages were added to "Customize" dialog.



Spaceball Motion
In this tab you have ability to set up some of general space mouse settings. They include:
 * Global Sensitivity - Slider with ability to set global sensitivity
 * Dominant - if you enable dominant mode, only axes with highest move will be considered
 * Flip YZ - This option enables you to flip Y and Z axes on 3D mouse
 * Enable Translations - easy way to enable/disable translations
 * Enable Rotations - easy way to enable/disable rotations
 * Calibrate - enables you to calibrate space navigator. It is pressed while space navigator is not moved.
 * Set To Default - removes all settings and sets them to default.

Other than this, for each axes you have ability to set:
 * Enabled - Enable/Disable axes
 * Reverse - Reverse movement on axes
 * Sensitivity - slider with ability to set sensitivity

Spaceball Buttons
When you open this tab for the first time, it will be empty and unavailable. To activate it, you must press one of your space mouse buttons. After you do, list of buttons will appear on the left side, and list of commands will be available on the right side.

To connect certain command with a button, select button on the left side, and it's command on the right side. To clear commands from button, press "Clear".