SpaceControl
					3D Input Devices
				
				 User
					Manual 
			
			
			
			
			
			
			
			1 Introduction
			3D input devices like the SpaceController are working similarly
			as a mouse and are used for manipulating objects on a computer
			screen. There are two degrees of freedom in conventional mouse
			movement: the directions up/down and left/right. In contrast to
			this our 3D mice have six degrees of freedom: 
translation in all three
			axes of space (x, y, z) and 
rotation
			 around all of these axes. Therefore they are the ideal
			equipment for moving and rotating objects in virtual 3D
			environments like CAD applications or moving the camera
			e. g. in 
Google Earth.
			
			
			The 3D input devices are delivered with a driver software. Both
			are described in this manual. 
			
			
2 The Devices
			2.1 Usage
			Our 3D mice are devices predominantly developed for CAD
			professionals. The common task in computer aided design is to
			move an object into the correct position and work on it with
			some tools. The same is in the real world: Imagine you want to
			peel a potato. You will take the potato in your left hand and
			peel it with a knife in your right (assuming you are right
			handed ...). Also in the computer world you will move an
			object with the left hand (using the SpaceController) and work
			on it with your right (using your normal mouse). 
			Therefore, the SpaceController is especially designed for the 
left hand. So, place the
			device on the left side of your keyboard and hold your hand as
			shown below: 
			
			
				
					
						|  Fig. 2.1: The
								SpaceController is handled most ergonomically with the left hand
 
 |   Fig. 2.2: Optimal hand position
 
 | 
				
			
			
			Of course the SpaceController can be handled with the right hand
			as well: The control software is able to activate a special 
Right Hand Mode; the
			display and the cap's orientation are adjusted to the right hand
			then. Only the key arrangement lacks in ergnomy a little in this
			case of course. See 
below for
			details. 
 
			
			
				
					
						|   Fig. 2.3: Handling in Right
								Hand Mode
 
 |   Fig. 2.4: Hand position when handled with the right hand
 | 
				
			
			
			
			2.2 Control
				Elements
			The SpaceController's control elements are shown in the next
			picture: 
			
			
  
 
				Fig. 2.5: The SpaceController's control elements 
			
 
			
			2.2.1 Cap and
				Wheel
			The 
cap is the most
			important control element. You can move and rotate it some
			millimeters in each direction, and an object on the screen will
			do the same. Try it with the 
SpaceControl
				Panel's cube demo (see 
below).
			
			Some people prefer a ball instead of a cap. You can order the
			SpaceController in both configurations: 
			
			
  
				
				Fig.2.6: SpaceController in cap and ball configuration 
			
 
			
			The silver or grey 
wheel is
			placed below the cap and is used for navigating in the
			SpaceController's menu. Furthermore, it is programmable, and you
			can assign a function to it by yourself. 
			
			
2.2.2 Keys
			The keys are arranged in an ergonomical way; you will see that
			the important keys are in optimal range for most people. If you
			would like to have your most used keys at another position - no
			problem: All keys (with exception of the MENU key and the PANEL
			key) can be redefined (see 
below).
			
			The keys are: 
			
				-  Function Keys:
					These keys are meant to be redefined by the user. The current assignment is shown
					on the display. 
 
-  Shift Keys:
					These keys do the same as the corresponding keys on your
					keyboard. 
-  Panel Key: The
					panel key opens the SpaceControl
						Panel. With the panel you can configure the
					device (see chapter 3.3). 
-  Menu Key: When
					the menu key is pressed the device switches into the so
					called menu mode (see section 2.2.4).
					In this mode you can adjust some of the device's parameters,
					without the need to open the SpaceControl Panel. 
-  View Keys: If
					your application (or the belonging plug-in) supports it you
					can rotate an object into the front, top or right position.
				
-  2D/3D, Enter Key: In standard
					mode this key turns the rotation off ("2D mode") and on ("3D
					mode"). In menu mode it is used as the enter key to confirm
					a selection you made in the menu. 
-  Fit Key: If
					your application (or the belonging plug-in) supports it you
					can move an object so it fills the screen completely. 
 
			A hidden function is executed when you press the Ctrl key and
			the Panel key concurrently: All lights (LEDs and LCD) are
			switched off or on again respectively. 
			
			
2.2.3 Display
			The display is divided into three parts: 
			
			
				
					
						
							
								| 
										The display will change its content in other modes,
									see the next section.The title line shows the application which is
											in the foreground at the moment and the
											configuration file the driver has loaded; in
											this case the foreground application is
											"Inventor" and the configuration file is
											"Assembly.cfg". In the midsection are the six function keys
											listed. If there is a function assigned to a key
											the function name is shown, "--Inactive--" is
											displayed if not. 
The base line displays some status
											information, whether the device is in
											ORG, CAM, WFL, 2D or DOM mode. These modes are
											explained in the next section.  |   Fig. 2.7: The display in standard mode
 | 
						
					
					
				 
			 
			2.2.4
				Modes
			The SpaceController can be in standard mode or menu mode. In
			standard mode you can read off the five operating states ORG,
			CAM, WFL, 2D and DOM from the display and the LED illumination.
			
			
			3 The Software
			The software consists of a driver (responsible for the
			communication between the device and user applications), the 
SpaceControl Panel (for
			configuring the device), some demo applications and APIs for
			programming in C++ and Java. Furthermore, there are some
			plug-ins for better integration of user applications into the
			driver's functionality. 
			
			
3.1
				Installation and Uninstallation
			3.1.1 Windows®
			3.1.1.1
				Installation
			All software components are bundled in a single installation
			file "SpaceControl_Driver_xxx_Win32_64_setup.exe", where xxx
			stands for the actual version no., e. g.
			"SpaceControl_Driver_280_Win32_64_setup.exe" is the setup file
			version 2.8.0. The installation is easy: 
			
				- Double click the file to start the installer. 
- To save disk space you can deselect not wanted plug-ins
					(see below) . 
- Choose an appropriate installation folder if you want to
					change the default one. 
			During the installation process some console windows will pop
			up, for correct installation do 
not close these windows manually. 
			
			Please, plug in the SpaceController device when asked and start
			the driver afterwards. If the driver is started before, it will
			complain about a missing DLL ("ftd2xx.dll") which is copied when
			the device is plugged in. In rare cases it might be necessary to
			unplug the device and plug it in again to establish the
			communication between device and computer. 
			
			The installer searches in the Windows Registry for the
			applications we have a plug-in for. Therefore you should install
			our driver 
after you have installed these applications;
			otherwise the installer cannot detect them and cannot make the
			needed changes. 
			
			The installer is able to run in "silent" mode, i. e. there
			is no user interaction necessary. For doing this run the
			installer with parameters "/S" (enables silent mode), "/D"
			(choosing the installation directory) and /P=<list of wanted
			plug-ins>. Example: 
			
			    
SpaceControl_Driver_280_Win32_64_setup.exe
				/S /D=C:\myProgs\SpaceControl  /P=Inventor;Solid
				Edge;Universal 
			
			will install the software with the plug-ins for Inventor and
			Solid Edge and the Universal Plug-in in folder
			"C:\myProgs\SpaceControl" without asking any questions. 
			The following names for the plug-ins are allowed: 
			
				- 3ds Max 
- AutoCAD 
- Blender 
 
- Catia 
- Creo 
- GstarCAD 
- Inventor 
- NX 
- ProEngineer WF2 
-  ProEngineer WF3 
- ProEngineer WF4 
-  ProEngineer WF5 
- Solid Edge 
- SolidWorks 
- Universal 
- Videos 
 
			Upper or lower case does not matter, ";" has to be used as
			separator. The names are the same as in the plug-in list shown
			in the non silent installer. 
			
			
 3.1.1.2
				Deinstallation
			The uninstaller knows the parameter "/S" as well. Additionally
			you can give it the option "/UF=delete"; only in this case all
			the user folders "SpaceController" will be deleted. Otherwise
			they are preserved: 
			
			     
sc_uninst.exe /S /UF=delete
			
			
			3.1.2 Linux®
			3.1.2.1
				Installation
			All software components are bundled in a single installation
			file "SpaceControl_Driver_xxx_LNXyy_setup.sh", where "xxx"
			stands for the actual version number and "yy" for the bit width;
			e. g. "SpaceControl_Driver_281_LNX64_setup.sh" is the setup
			file version 2.8.1, 64 bit. The installation is easy: 
			
				- Copy the file into an arbitrary folder (a new temporary
					folder "SpaceControl" will be created there and moved to
					"/opt/" in the end). 
 
- Make sure that the installation file is executable. If
					not, change its access rights with your file browser or
					navigate to the file in a terminal window and enter there: 
 chmod
						u+x SpaceControl_Driver_281_LNX64_setup.sh
- Open a terminal, start the file and follow the
					instructions. Do the installation as normal user, not as
					root, because the installer starts the driver at the end of
					the process and would create the configuration files in the
					root's home folder then; that is not wanted normally. 
 
- Dependent on the Linux distribution it may be necessary to
					reboot the system before the device will be detected by the
					driver. 
 
- After installation the installation file is not necessary
					any longer, and you may delete it. 
- For uninstalling the software start the script "uninstall"
					in the just created folder "/opt/SpaceControl/". 
 
			The installer is able to run in "silent" mode, i. e. there
			is no user interaction necessary. For doing this run the
			installer with root privileges and with parameters "-s" (enables
			silent mode) and "-p <list of wanted plug-ins>". Because
			these options are to be executed in an "inner" script the
			"outer" script must be ordered to transfer them to the inner one
			by the additional parameter "--". Example: 
			
			    
SpaceControl_Driver_281_Win32_64_setup.sh
				-- -s -p "Blender;Maya;NX"  
			
			will install the software without any questions with the
			plug-ins for Blender, Maya and NX. The options are
			case-sensitive! 
			For the time being there is only a plug-in for Blender. If you
			want to prevent it from being installed add to the parameter
			"-p" some arbitrary string instead of "Blender". 
			
			
3.1.2.2
				Deinstallation
			The uninstaller is located in "/opt/SpaceControl/": 
			
			    
/opt/SpaceControl/uninstall
				-s 
			
			Parameter "-s" must only be added if the silent mode (i. e. no
			questions) is wanted. 
			
			
3.1.3 macOS®
			All software components are bundled in a single installation
			file "SpaceControl_Driver_xxx_OSX64_setup.dmg", where xxx stands
			for the actual version number; e. g.
			"SpaceControl_Driver_280_OSX64_setup.dmg" is the setup file
			version 2.8.0. There is only a driver for 64 bit yet. The
			installation is easy: 
			
				- Double click on the file, it is mounted in the operating
					system and its content is shown in a Finder window. 
- Double click the icon "Double click to install ...". The
					software will be unpacked; root access is necessary to copy
					a file; enter the password when asked so. 
- For starting the driver and the user interface click on
					the icon "SpaceControl Panel" in the Launchpad. 
- For uninstalling the software start the script "uninstall"
					in the just created folder "/Applications/SpaceControl/". 
			The script "Double click to install ..." accepts the same
			parameters (e. g. "-s" for silent mode) as the installer for
			Linux. See above. 
			
			
3.1.4 Plug-ins
			Some applications are better integrated than others, i. e.,
			the driver is aware of their menu structure, and the user can
			map the application's menu items to the device's keys (see the 
 Function
					Assignment dialog for details). To achieve this
			an additional piece of software - a plug-in - is to be
			installed. The plug-ins are integrated in the installer file and
			can be selected for installation there. With the appropriate
			entries in the Windows start menu they can be deinstalled
			individually or installed later with the installer any time. 
			
			The following plug-ins are available (the links to the readme
			files will only work if the plug-in is installed): 
			
			
			
			The Universal Plug-in is a special case: It is used to connect
			not to one single application only but to many applications
			implementing an established 3D controller interface (see the
			readme file for an application list). The plug-in is not able to
			read out the menu items therefore. They must be mapped to the
			device's keys by keyboard macros if needed; the same is with the
			keys Front, Right, Top and Fit. 
			
			
3.2 Starting
				Driver and SpaceControl Panel
			Start the driver by clicking on the menu item 
Start Driver in your
			desktop's start menu or by executing "sc_daemon" or "sc_daemon.exe"
			in the installation folder. Maybe your firewall strikes its bell
			because of an internet connection initiated by the
			SpaceControl software. This is because the software handles
			its interprocess communication via TCP/IP (the same protocol is
			used by the internet); in fact the SpaceControl software will
			not connect to the internet (unless for showing the help videos
			on the dialogs). So, please allow your firewall to let pass the
			SpaceControl software's requests. 
			
			If the driver is started the first time it will create a folder
			"SpaceController" in the user's home directory, containing some
			configuration files. Depending on the operating system it will be
			created in folder
			
				- "C:\Documents and Settings\<Username>\" (Windows XP),
- "C:\Users\<Username>\" (Windows 7 to Windows 10),
- "/home/users/<Username>/" (Linux) or
- "/Users/<Username>/" (macOS).
			(I. e.
			these files are modified when configuring the
			driver via the 
SpaceControl
				Panel and reread when starting the driver the next
			time. 
			
			The 
SpaceControl Panel
			is started in the same way by clicking the
			"SpaceControl/Control Panel" menu item in the start menu. If
			a SpaceController is connected to the computer it will start up
			with the window shown in figure 3.1. 
			
			
3.3
				SpaceControl Panel Application
			The 
SpaceControl Panel
			application is used to configure the device. Its window consists
			of the common components used in windowed applications, i.e. a
			menu bar, buttons and other control elements: 
			
 
			
			
			 Fig. 3.1: SpaceControl Panel
				window 
			
			
			In the upper left corner you see the
			
Device Type sub-panel showing the device
			type and the device's 
Serial
				Number. This information is only important if you
			have more than one device connected to your computer (you can
			connect up to four devices). Each device has its own set of
			configuration data which is stored in a separate folder with the
			same name as the serial number. This folder may contain several
			configuration files. Which configuration file is actually loaded
			can be seen beside the label 
Configuration
				File: In fig. 3.1, the configuration file is
			e. g. "common.cfg". See 
chapter 3.4 for
			details. 
			
			The next sub-panel shows the so called 
Basic Configuration. Here you can modify the
			most important parameters as the cap's sensitivity, the move
			mode or the wheel's assignment. See 
section 3.3.1 for
			details. For special requirements you may configure further 
advanced settings.
			
			
			The area on the right shows the device you are just configuring
			(if you have more than one device connected to your computer you
			can switch between the devices by selecting them with the 
Device menu in the menu
			bar). A displacement of the cap is visualized by white bars and
			arcs drawn over the device's image. Another visualization is
			given with the 
Demo
			tab. There you can move a colored cube and see the system's
			reaction on your configurations immediately: 
			
 
			  
 
				Fig. 3.2: The built-in 
Cube
					Demo 
			 
			
			In the base line there are these six buttons: 
			
				-  Advanced Configuration
					 
 Opens the Advanced
						Configuration dialog (see below).
 
 
-  Function Assignment
					
 Opens the dialog for configuring the keys, the Wheel Function Launcher
					and special assignments for the cap (see below).
 
 
-  Video 
 Shows a short help video with explanations for this dialog.
 
 
-  Help 
 Opens the manual in chapter 3.3 (this is here).
 
 
-   Zero 
 Defines the actual cap displacement as the zero value. The
					driver will send no data to the applications if the cap is
					in this position again and not stronger displaced than the
					threshold (see below).
 
 
-   Defaults
					 
 Sets all values to the default values which build a
					reasonable set of parameters for most applications.
					Attention: Also the key configurations and all recorded
					macros are deleted.
 
			
			3.3.1 Basic Configuration
			The 
Basic Configurations
			shown in 
figure 3.1 are as
			follows: 
			
				
					
						| 
								 Sensitivity
									With the sensitivity slider you can change the speed
									with which your objects are moving. Higher values
									cause your object to move quicker with the same
									displacement of the cap. If the slider is moved you
									will see a visualization of it in the
									SpaceController's display as shown in fig. 3.3.
 
 
 Rotation Center
									 You can change between the settings Focal Point
									and Origin or
										Camera. In the first case the cap rotates
									your scene around the midpoint of the screen (the
									midpoint of the active window to be precisely), in
									the second case around the origin of the scene (in
									scene mode) or around the camera (in camera mode).
 
 
 Move Mode
									The entries in this list are Scene and Camera. In
									case of Scene
									the cap moves (seemingly) your scene, in case of Camera the
									cap moves the virtual camera looking on the scene.
 
 
 Wheel
									The silver or grey wheel beneath the cap is freely
									configurable. Some quick assignments can be made
									here by the drop down list:
 
										Left: Sensitivity, Right: WFL A movement to the left opens a little slider
											dialog for setting the cap's sensitivity.
 A movement to the right opens the so-called Wheel
												Function Launcher.
Wheel Function Launcher The WFL is used to trigger arbitrary functions
											very comfortably. See there for
											details.
 
Gesture Detection With this setting the wheel recognizes up to six
											different "gestures", i. e. combinations of
											left/right movements. Each gesture can be
											connected with a function to trigger.
Sensitivity The wheel controls the cap's sensitivity.
 
Function Keys In this mode the wheel can be used to trigger
											the device's six function keys (in case your
											fingers are not long enough to reach key 5 or
											6 ...).
LCD Brightness The wheel controls the brightness of the LCD.
LED Brightness The wheel controls the brightness of the blue
											LEDs.
User Defined The wheel has another setting, configured with
											the Function
													Assignment dialog.
 
 |   
  Fig. 3.3: Display when
								adjusting sensitivity 
 | 
				
			
			
				-  2D Mode 
 This can be set to On
					or Off. If set
					to On all the
					cap's rotation data is suppressed. It is needed in some
					applications to avoid an unwanted rotation of a drawing for
					example.
 
 
-  Dominant Mode
					
 This can be set to On
					or Off. If set
					to On the driver
					looks which of the six coordinates x, y, z, a, b or c
					currently has the highest value at this moment. Only this
					component is transmitted, all others are set to 0. This mode
					is useful if you want to be sure that your object to be
					manipulated will not be moved in directions you are not
					interested in. As an example try the Roboter Demo
					application.
3.3.2 Advanced Configuration
			The 
Advanced Configuration
			dialog is basically divided into four sub-panels for 
Translation and 
Rotation data, 
Modifiers and 
Move Mode. It allows
			configuration in more detail than can be done in the 
Basic Configuration. 
			
			
			
			 Fig. 3.4: Advanced Configuration
				dialog 
			
			
			The elements of the 
Translation
			 and 
Rotation
			sub-panels are arranged as a table consisting of three lines;
			each line lets you adjust the settings for one of the
			translational coordinates x, y, z or the rotational components
			around the corresponding axis. Figure 3.4 shows the tables in
			their ground state. The tables can be expanded by clicking on 
Activate Remapping and 
Activate Mouse Movement
			in the 
Modifiers
			panel. If these check boxes (and 
Further Settings) are activated the dialog
			looks as shown in figure 3.5: 
			
 
			  
 
				
				Fig. 3.5: 
Advanced
					Configuration dialog, 
Remapping, 
Mouse Movement and 
Further Settings
				activated 
			
 
			
			The table elements are as follows: 
			
				-  On/Off
 This column lets you activate or deactivate the sending of a
					single data component.
 
 
-  Sensitivity 
 The sensitivity of a single data component can be adjusted
					here. This sensitivity is added to the global sensitivity
					you can configure on the Basic
						Configuration sub-panel. I. e. you reach the
					minimal/maximal sensitivity only when both sliders - the
					corresponding slider here and the slider on the Basic Configuration
					sub-panel - are set to minimum/maximum.
 If the Connect
						Sensitivity Sliders checkbox is activated all
					three sliders are moved simultaneously.
 
 
-  Reversed 
 If this check box is activated the components data is
					multiplied by -1. For instance, if you move the cap to the
					left side your object will move to the right side. Some
					applications need this setting to work correctly (e. g.
					Google Earth).
 
 
-  Remap To 
 This combo box allows you to redefine an axis. If you remap
					e. g. the x translation to the y translation, your
					object will move up and down instead of left and right when
					displacing the cap in x direction. This is also needed for
					certain applications (e. g. Google Earth).
 
 
-   Mouse Pointer 
 It is possible to connect the cap displacement with the
					movement of the mouse pointer. Example: Connect the x
					translation with the Horizontal
					 mouse movement and the z translation with the Vertical. Now you can
					move the mouse with the cap when displacing it
					forward/backward or left/right. (Hint: Connect the
					predefined "PressLeftMouseButton" command (see there) with the y-down
					translation and you can even click on objects with the cap.
					See chapter 3.3.3.6
					for details.)
 If the Restore Mouse
						Position checkbox is activated the driver stores
					the current mouse position before the cap is displaced and
					sets it back when the cap is released again.
 With the Absolute Mouse
						Coordinates checkbox activated the mouse pointer
					is set to the center of your screen if the cap is released.
					Moving the cap causes the pointer to move proportionally in
					the corresponding direction and to move back when releasing
					the cap again.
 Attention: As soon as mouse pointer movement is activated no
					cap data is sent to the applications anymore.
 
			Besides the tables you can adjust these settings: 
			
				-   Move Mode: 
 This parameter adjusts the mode of moving and the rotation
					center. Basically you can change between scene mode and
					camera mode.
 In scene mode
					the cap moves pretendedly the scene; i. e., pushing the
					cap to front causes the objects to move away, they will
					appear smaller (in truth always the camera is moved of
					course, not the scene).
 In camera mode
					the cap moves the camera looking at the scene; i. e.,
					pushing the cap to front causes the camera to move into the
					scene, and objects will therefore appear bigger.
 The following modes are available:
						-   Scene Mode:
								Rotate around Focal Point: We are in object
							mode, and the center of rotation is the point the camera
							is looking at (i. e. the window's midpoint). 
-   Scene Mode:
								Rotate around Origin: We are in scene mode,
							and the center of rotation is the scene coordinate
							system's origin. 
-   Camera Mode:
								Rotate around Camera: We are in camera mode,
							the cap moves therefore the camera looking on the scene,
							and the camera is the center of rotation. 
-   Camera Mode:
								Rotate around Focal Point: The cap moves the
							camera, but the center of rotation is the point the
							camera is looking at (i. e. the window's midpoint).
						
 The window's midpoint determines the rotation center's x-
					and y-coordinate only of course. On the z-axis (the
					direction out of the screen) the center may be located
					anywhere at first. But, by rotation and concurrent
					translation (to hold the wanted area in the middle) the
					center can be moved even on the z-axis to the wanted
					location step by step, so that additional translation is not
					necessary any longer. This works more intuitive than can be
					explained in words.
 All move modes can be modified by two additional settings:
 
						-   Lock Horizon
							: If this field is checked the camera is in its
							movement restricted in such a way, that the horizon can
							not be rotated. This simplifies the movement especially
							with camera flights. 
-   Hover: In this mode the
							camera movement is restricted, so that a translation can
							not modify the distance between the camera and the
							x-z-plane. It results in a kind of "helicopter" flight
							in camera mode. 
 Please be aware that not all applications and/or
					SpaceControl plug-ins may support all modes
 
 
-   Right
						Hand Mode: 
 The SpaceController is designed especially for the left hand
					(for right handers who hold there normal mouse still in the
					right hand). Of course the SpaceController can be handled
					with the right hand too, if you turn it around 90 degrees so
					that the wrist rest is in the correct position (see fig. 2.3 and 2.4). The cap's
					orientation must be adjusted then 90 degrees in the opposite
					direction. This is accomplished by activating the check box
					Right Hand Mode.
					Besides that, the display is rotated.
 
 
-  Cap Data 
 Here you can adjust the way the cap's data is sent to the
					applications:
 
- 
					
						-   Threshold
							
 You have to displace the cap over a minimal threshold
							before the driver will start sending data. This
							threshold can be adjusted here.
 This is useful to avoid unwanted movement of objects,
							e. g. if your device is pressed in a carry case for
							transportation over a longer period: It will last some
							time until the springs in the device have gained their
							original position. Increase the threshold if you see the
							driver is sending unwanted data.
-   Averaging
							 
 Because of random fluctuations in power consumption etc.
							the data delivered by the cap may oscillate a little
							over time. To avoid moving an object even if the cap is
							not moved you can set the threshold to an appropriate
							value (see above). However,
							the cap will have better responsiveness with a threshold
							of 0. Another way to cure this unwanted movement is to
							average some data received by the cap. You can adjust
							here how many data packets are used for the averaging
							process from 0 (or 1 = no averaging) to 15 (the last 15
							data packets will be used for averaging). Set the number
							of packets used for averaging to the smallest value
							where you see no oscillation anymore as there is a
							disadvantage in using this mechanism: You will see a
							slight time lag if the Send Gap is set to higher values at
							the same time.
-  Send Gap 
 The Send Gap
							slider is used to reduce the data rate with which the
							device will produce its output. Figure
								3.5 shows a setting of 30 ms. This means the
							Controller will send a data packet with translational
							and rotational data every 30 ms to the foreground
							application. Some applications are not able to receive
							and handle the data with high data rates. If you observe
							a visual delay in your application set the Send Gap to to
							higher values.
 If the slider is moved to its upmost position
							(> 400) no cap data will be sent at all.
 
 
 
-  Brightness 
 With the two sliders the Display's and the blue LEDs'
					brightness can be adjusted. While the sliders are moved blue
					bars are displayed on the LCD.
 
			All settings are executed immediately, therefore there is no OK
			button. If you want to reset your settings to the default values
			press the 
Defaults
			button in the main window (see 
fig.
				3.1). 
			
			Hint: The state of the check boxes 
Connect All Sensitivity Sliders is not part
			of the configuration, but a property of the GUI. It will not be
			saved with the configuration. 
			
			
3.3.3 Function Assignment (Key
				Configuration)
			The 
Function Assignment
			dialog is used to connect the device's keys, the wheel, 
			the 
Wheel Function Launcher
			and the cap with predefined functions or user defined macros
			(i. e. recorded keystroke sequences). 
			
			
3.3.3.1
				Assigning Functions to Keys
			Figure 3.6 shows the 
Function
				Assignment dialog in its ground state. On the left
			side there is the list of available functions, sorted into a
			tree structure, on the right side you see the list of the
			device's keys a function can be applied to. A function can be
			assigned to a key by dragging it with the mouse from the left
			side to the key. 
			Each key can hold two functions: A function of the second level
			can be triggered by double pressing the key. Or you exchange the
			two levels with each other by executing the function 
SwitchKeyShiftLevel
			(it is assigned to the device key 6 by default). To configure
			the two shift levels you change between them with the tabs 
Single
				Press and 
Double Press. 
			
			
			
			 Fig. 3.6: Function Assignment
				dialog 
			
			
			For the sake of clarity we distinguish between: 
			
				-  Device functions:
					These are functions related to devices, especially to the
					SpaceController of course, but also to the normal mouse or a
					joystick. For instance, the function SetZero does the same
					as the Zero
					button on the main dialog. You will find below a list of all device
					functions available. 
 
    
						Fig. 3.7:  Function
							Assignment dialog, device functions expanded 
					 
 
 
 
-  User functions:
					These functions can be modified by the user and are
					sequences of keystrokes which you can record with a small
					keystroke recorder (see below). 
 Additionally there are three functions Execute
						Application x and  Load Configuration x resp.; with the first
					group you can execute arbitrary applications just by a
					keypress, with the second you can load configurations.
 
    
						Fig. 3.8:  Function
							Assignment dialog, user functions expanded 
					 
 
 
-  Application functions:
					This branch of functions is only there if an application is
					in the foreground to which a plug-in exists supporting this
					feature. The functions listed in this branch mirror more or
					less the application's menu structure and do the same as the
					application's menu items do. So, by dragging it to a
					function key you can activate an application's menu item by
					pushing the function key:  
 
    
						Fig. 3.9:  Function
							Assignment, application functions expanded  
 
 Figure 3.9 shows the application functions list using the
					example of Autodesk Inventor®. What you can see here depends
					mainly on the capabilities of the application's API: Some
					applications give full access to their menu structure as you
					can see here. Others will only provide a plain list of all
					functions available or no functions at all. Our plug-ins try
					to do the best, but be prepared to see less information than
					shown in Fig. 3.9.
 
			Especially in the latter case there are many functions in the
			tree, and it may be difficult to find the desired functions.
			Therefore you can search for an entry by typing a function name
			into the 
Search
			field. The 
Next
			button will jump to the next hit if there is any. 
			
			The configuration of the six device keys numbered from 1 to 6 is
			displayed in the device's LCD. If you are not interested in this
			information you can show the actual date and time instead when
			activating the check box 
Display
				Clock Instead of Functions. 
			
			
				
					
						|   Fig. 3.10: Display showing the function keys' functions
 
 |   Fig. 3.11: Display showing the clock
 
 | 
				
			
			
			
			3.3.3.2 Defining User Functions
				(Macros)
			To define a user function (i. e. a sequence of keystrokes
			on your computer keyboard to be applied to a device key) proceed
			as follows: 
			
			In figure 3.12 the recorded sequence is "a Alt b F3". You see
			that each keystroke is split into the "key pressed" and "key
			released" event, symbolized by upper case and lower case
			letters. In such a case the complete keystroke sequence is sent
			into your operating system's keyboard event queue when the
			device key is pressed. When the key is released nothing will
			happen. 
			This is not what is wanted if your function consists of
			e. g. "<SHIFT><shift>" only, i. e. of
			pressing and releasing one of the keyboard's shift keys. In this
			case you may want to send the "key pressed" event when the
			device key is pressed and the "key released" event when the key
			is released, and not both events immediately after each other,
			since you otherwise could not input upper case letters while
			holding down the device key. 
			
			Therefore the following rule is implemented: 
			
				- If your function consists only of "Shift" keys (these are
					the keys Ctrl, Alt, Shift and Esc by definition), the
					sequence is filtered and all "key pressed" events are sent
					into the operating system when the device key is pressed,
					and all "key released" events are sent when the device key
					is released. 
- If your function contains at least one "No Shift" key, the
					sequence is sent completely into the operating system when
					the device key is pressed and nothing will be sent when the
					key is released again. Unless your macro contains the
					function Execute only in case of state change (s.
					above); in this case the behaviour is the same as with the
					shift keys. 
 
Remark 1:
			Unfortunately not all keys can be recorded due to some
			restrictions on sending keystrokes into the operating system.
			Keys known not to be working on German keyboards e. g. are
			"ä", "ö", "ü", "ß", "#". The key "+" is mapped to the one on the
			number block. 
			If you know the ASCII code of the wanted character you can
			record it as a combination of the Alt key and the number block.
			The ASCII code of character "#" is 35 e. g. So, hold the
			Alt key pressed, type "3" and "5" on the number block and
			release the Alt key. 
			
			
Remark 2: Be aware to
			record your keyboard sequences exactly as you would type it in
			your application. Most applications allow to store a document
			with the keyboard short cut "Ctrl S" for example. This means
			"press down the 'Ctrl' key (and hold it!), press the 's' key,
			release the 's' key and release the 'Ctrl' key". This sequence
			should be displayed in the function editor as 
			    "<CTRL><S><s><ctrl>"
			( 
correct). 
			It is a common mistake to release the 'Ctrl' key immediately and
			to press the 's' key afterwards; this would result in the
			sequence 
			    "<CTRL><ctrl><S><s>"
			( 
wrong). 
			This is wrong and sends effectively only the 's' key to your
			application. 
			
			
Remark 3: To avoid
			unexpected closing of the dialog when recording e. g. the
			sequence <Alt><O><o><alt> there are no
			button shortcuts (e. g. <Alt><O> for the OK
			button) in this dialog. If you want to operate it without your
			mouse use the TAB key to move between the buttons. 
			
			
3.3.3.3
				Assigning Functions to Special Keys
			On your device you can see not only the six dedicated function
			keys but also the special keys used for common tasks in an
			application, as Ctrl, Shift, 2D/3D etc. It is possible to
			redefine these keys in the same way as described above when
			clicking on the 
Show Function
				to Special Key Assignment check box. If this is done
			additional fields with the special keys will appear: 
			
			
  
 
				
				Fig. 3.13: 
Function
					Assignment dialog with activated 
Special Key
				configuration 
 
			
			
				- Below the Function Keys
					 you see the Shift Keys; these accomplish
					the same as the keys with the same name on your keyboard. 
- The View
						Keys have a special meaning in some CAD
					applications: They are used to realign an object you are
					handling into the given direction. If the check box Perform Automatic Fit
					is activated an additional fitting to the application's
					window size is performed. 
- The Other
						Keys are:
					
						-  Fit
							adjusts the size of the scene to the size of the window.
						
-  2D/3D
							enables and disables the transmission of rotational
							data. 
 
3.3.3.4
				Assigning Functions to the Wheel
			The silver or grey wheel beneath the cap is - as already mentioned -
			freely configurable. After activating the check box 
Show
				Wheel Assignment you can assign arbitrary
			functions to the wheel: 
			
			
			
			Fig. 3.14: Function Assignment dialog with activated
				Wheel Assignment 
			
			
			Now it is possible to drag functions to the left and/or right
			wheel direction. The functions may be different - as shown above
			-, or the same function can be assigned to both directions. 
			If both directions trigger the function 
HandleWheelGestures
			(this is done in the 
main dialog) by selecting
			
Gesture Detection in the drop down list 
Wheel) the greyed area 
Gestures
			will become available, and the wheel is able to detect six
			different gestures. You can assign a function to the gesture
			"wheel right + wheel left" for example. 
			
			
3.3.3.5
				Assigning Functions to the Wheel
					Function Launcher
			If the six function keys are not enough you can assign up to 28
			functions to the so-called 
Wheel
				Function Launcher. This is a little dialog box
			allowing you to trigger a desired function with the wheel (see 
below). The functions can
			be assigned if the check box 
Show
				Function to WFL Assignment is activated: 
			
			
  
 
				
				Fig. 3.15:  
Function
					Assignment dialog with activated 
WFL Assignment
				configuration 
			
 
			
			As usual you can drag a function to one of the 28 WFL slots. 
			
			
3.3.3.6
				Assigning Functions to the Cap
			You can apply your functions not only to the device's keys but
			even to the cap: A function is triggered when the cap is
			displaced in the appropriate way. To activate this mechanism
			click on the 
Activate
				Function to Cap Assignment check box. The 
Function Assignment
			dialog will become extended and allows you to apply two
			functions to each cap displacement. The first function is
			triggered by a low, the second by a high cap displacement. 
			
			
  
 
				
				Fig. 3.16:  
Function
					Assignment dialog with activated 
Cap Assignment 
			 
			
			In figure 3.16 you can see a typical configuration used for
			shooter games: When using the keyboard you move your game
			character with the w, a, s and d keys forward, backward and
			sideways. Therefore, create four user functions "w", "a", "s" and "d"
			(the name does not matter of course) and record the keystrokes w, a, s
			and d  to the corresponding function. Then
			drag these functions to the cap's combo boxes as shown above. A
			slight forward movement of the cap will now move your character
			forward, for a sideward movement you must push the cap a little
			stronger since the cap movement "x translation right - low" is
			not active. Crawl and jump may be applied to the high y
			translations. 
			
			
				
					
						|   
 Fig. 3.17: W, A, S and D are the common
 control keys in shooter games
 
 |   
 Fig. 3.18: Mapping W, A, S and D to the cap allows
 movement of characters with the SpaceController
 
 | 
				
			
			
			
			Send Function Only in Case of
				Cap Changes should be activated here. If this setting
			is not activated the device will send e. g. "press key w",
			"release key w", "press key w", "release key w" etc. as long as
			the cap's displacement persists. This is not appropriate for a
			shooter game because a key is released immediately after it is
			pressed. As a result there is no movement of the character at
			all! If the check box is activated the key press event is
			normally fired when the cap is displaced (to the low/high extent
			respectively), but the release event is fired only if the cap
			changes its state, i. e. leaves the (low or high) region
			again. 
			The complete configuration for a 3D shooter game we have
			described in a 
video.
			
			
			The 
Defaults button
			resets all keys to its default values (i. e. all cap
			functions to "-- Inactive --" and the device key functions to
			the function printed on the key). However, the functions you
			recorded with the keystroke editor are not cleared. Press the
			main window's 
Defaults
			button if you want to achieve this. 
			
			
3.3.3.7 Device Functions
			In the 
Function Assignment
			dialog there are device functions for the devices 
			
				- SpaceControl, 
- Mouse and 
- Joystick. 
			The SpaceControl functions are divided into the groups
			"Panel", "MoveMode", "Settings", "Keys", "Wheel" and "Others"
			for the sake of clarity. 
			
			Each function can be assigned to the keys, the wheel, the 
Wheel Function Launcher
			and/or the cap as described above. The following functions are
			presently defined: 
			
			
				
					
						| Group/Function Name | Description | 
					
						| Devices | Group of the device
							functions. 
 | 
					
						| +-SpaceControl | Group of functions
							related to the SpaceControl devices. 
 | 
					
						| |  +-Panel | Group of functions for
							the buttons of the SpaceControl Panel's main dialog. 
 | 
					
						| |  |  +-SetZero 
 | This function does the
							same as a click on button  Zero in the
							main dialog. 
 | 
					
						| |  |  +-ResetSettingsToLastSave 
 | This function resets all
							configuration parameters to the values when the
							configuration has been saved the last time. Attention:
							The values are stored automatically as soon as the
							foreground application changes. 
 | 
					
						| |  |  `-Save 
 | This function does the
							same as the menu item "File/Save Configuration". | 
					
						| |  +-MoveMode* | Group of functions
							related to the cap's move mode. 
 | 
					
						| |  | 
							+-ToggleSceneCameraMode 
 | Toggles between scene
							and camera move mode. 
 | 
					
						| |  |  +-ToggleScreenOriginRotation 
 | Toggles the rotation
							center between the screen's midpoint and the worlds
							origin. See move mode. | 
					
						| |  |  +-ToggleLockHorizon 
 | Does the same as the homonymous setting
							in dialog Advanced
								Configuration. | 
					
						| |  |  `-ToggleHover | Does the same as the homonymous setting in
							dialog Advanced
								Configuration. | 
					
						| |  +-Settings | Some further
							SpaceController settings. 
 | 
					
						| |  |  +-ToggleTranslation 
 | Switches translation
							data on and off. 
 | 
					
						| |  |  +-ToggleRotation 
 | Switches rotation data
							on and off. | 
					
						| |  |  +-ToggleDominantMode 
 | Switches dominant mode
							on and off. | 
					
						| |  |  +-ToggleDeviceLights 
 | Switches all blue LEDs
							on and off. | 
					
						| |  |  +-ToggleRightHandMode 
 | Switches right hand mode
							on and off. | 
					
						| |  |  +-IncreaseSensitivity 
 | Increases the cap's
							sensitivity by one step. 
 | 
					
						| |  |  +-DecreaseSensitivity | Decreases the cap's
							sensitivity by one step. | 
					
						| |  |  +-IncreaseThreshold | Increases the threshold
							by one step. | 
					
						| |  |  +-DecreaseThreshold | Decreases the threshold
							by one step. | 
					
						| |  |  +-IncreaseLCD'sBrightness | Increases the LCD's
							brightness by one step. | 
					
						| |  |  +-DecreaseLCD'sBrightness | Decreases the LCD's
							brightness by one step. | 
					
						| |  |  +-IncreaseLEDs'Brightness | Increases the LEDs'
							brightness by one step. | 
					
						| |  |  `-DecreaseLEDs'Brightness | Decreases the LEDs'
							brightness by one step. | 
					
						| |  +-Keys | Group of all the
							SpaceController's special keys. 
 | 
					
						| |  |  +-Ctrl 
 | Simulates pressing the
							keyboard's Ctrl key. 
 | 
					
						| |  |  +-Alt | Simulates pressing the
							keyboard's Alt key. | 
					
						| |  |  +-Shift 
 | Simulates pressing one
							of the keyboard's Shift keys. | 
					
						| |  |  +-Esc 
 | Simulates pressing the
							keyboard's Esc key. | 
					
						| |  |  +-Front 
 | Moves the scene to front
							view (if supported). 
 | 
					
						| |  |  +-Right 
 | Moves the scene to right
							side view (if supported). | 
					
						| |  |  +-Top 
 | Moves the scene to top
							view (if supported). | 
					
						| |  |  +-Fit 
 | Zooms the scene to full
							screen size. 
 | 
					
						| |  |  +-2D/3D 
 | Switches rotation data
							on and off. | 
					
						| |  |  `-Panel 
 | Opens the SpaceControl Panel. 
 | 
					
						| |  +-Wheel | Group of functions
							related to the wheel. 
 | 
					
						| |  |  +-SetWheelToSensitivity 
 | Configures the wheel to
							control the sensitivity. 
 | 
					
						| |  |  +-SetWheelToThreshold | Configures the wheel to
							control the threshold. | 
					
						| |  |  +-SetWheelToLCD'sBrightness | Configures the wheel to
							control the LCD's brightness. | 
					
						| |  | 
							+-SetWheelToLEDs'Brightness | Configures the wheel to
							control the LEDs' brightness. | 
					
						| |  | 
							+-SetWheelToWheelFncLauncher 
 | Configures the wheel to
							open the Wheel Function Launcher. | 
					
						| | 
							| +-SetWheelToWheelGestures | Configures the wheel to detect wheel
							gestures. 
 | 
					
						| |  | 
							+-SetWheelToFunctionKeys | Configures the wheel to
							trigger a function key. | 
					
						| |  |  +-HandleSensitivityDialog 
 | Opens a slider dialog
							for adjusting the sensitivity. 
 | 
					
						| |  |  +-HandleThresholdDialog | Opens a slider dialog
							for adjusting the threshold. | 
					
						| |  |  +-HandleLCD'sBrgtnssDialog | Opens a slider dialog
							for adjusting the LCD's brightness. | 
					
						| |  |  +-HandleLEDs'BrgtnssDialog | Opens a slider dialog
							for adjusting the LEDs brightness. | 
					
						| |  |  +-HandleWheelFuncLauncher | Opens the Wheel Function Launcher. 
 | 
					
						| |  | 
							+-HandleWheelGestures | Detects wheel gestures. The function can only be connected to the Wheel
								Assignment in the Function Assignment
							dialog, not to the function keys, the WFL or the cap; it
							can only be assigned by the drop down list Wheel
							in the main dialog, not by drag and drop in the Function
								Assignment dialog. The function is working only if
							both fields in Wheel Assignment are connected
							with the same function and not only one field.
 
 | 
					
						| |  |  `-HandleFunctionKeys | Handles function keys. The function can only be connected to the Wheel
								Assignment in the Function Assignment
							dialog, not to the function keys, the WFL or the cap; it
							can only be assigned by the drop down list Wheel
							in the main dialog, not by drag and drop in the Function
								Assignment dialog. The function is working only if
							both fields in Wheel Assignment are connected
							with the same function and not only one field.
 
 | 
					
						| |  `-Others | Group with further functions. 
 | 
					
						| > |    
							+-HandleCalculatorNumPad | Opens the virtual numpad and the
							calculator. 
 | 
					
						| |    
							+-SwitchKeyShiftLevel | Exchanges the two key shift levels with
							each other (single press/double press). 
 | 
					
						| |     +-Back | Moves the scene to back view (if
							supported). | 
					
						| |     +-Left | Moves the scene to left view (if
							supported). | 
					
						| |     +-Bottom | Moves the scene to bottom view (if
							supported). | 
					
						| |     +-ReservedFunction_5 
 | Reserved. 
 | 
					
						| |    
							+-... | Reserved. | 
					
						| |     `-ReservedFunction_9 | Reserved. | 
					
						| +-Mouse | Group with functions
							related to the normal mouse. 
 | 
					
						| |  +-PressLeftMouseButton 
 | Simulates a click with
							the left mouse button. 
 | 
					
						| |  +-PressMidMouseButton | Simulates a click with
							the mid mouse button. | 
					
						| |  +-PressRightMouseButton | Simulates a click with
							the right mouse button. | 
					
						| |  +-MoveMouseWheelUp 
 | Simulates moving the
							mouse wheel up. | 
					
						| |  `-MoveMouseWheelDown | Simulates moving the
							mouse wheel down. | 
					
						| `-Joystick 
 | Group with functions related to the joystick. 
 | 
					
						| +-JoystickXAxis 
 | Simulates moving the joystick's x-Axis. 
 | 
					
						| +-JoystickYAxis 
 | Simulates moving the joystick's y-Axis. | 
					
						| +-JoystickZAxis 
 | Simulates moving the joystick's z-Axis. | 
					
						| +-JoystickRAxis 
 | Simulates moving the joystick's r-Axis. | 
					
						| +-JoystickUAxis 
 | Simulates moving the joystick's u-Axis. | 
					
						| +-JoystickVAxis 
 | Simulates moving the joystick's v-Axis. | 
					
						| +-JoystickPOV 
 | Simulates moving the joystick's cooliehat. | 
					
						| `-JoystickBut 
 | Simulates pressing one of the joystick's
							buttons. | 
				
			
			
			*: The move mode is not supported by all applications
			or plug-ins resp. 
			
			Hint: All functions printed in grey color are not implemented
			yet and can not be used. 
			
			
3.3.4 The Wheel Function Launcher
				(WFL)
			With the 
Wheel Function
				Launcher (WFL) the wheel's functionality can be
			considerably extended. Up to 28 arbitrary functions (device
			functions, user functions and/or application functions) can be
			triggered comfortably with the wheel this way. 
			
			
3.3.4.1 Using
				the Wheel Function Launcher
				
			When the wheel is configured appropriately the WFL will be
			displayed on the screen as soon as the wheel is moved: 
			
			
			 
				Fig. 3.18: The Wheel
					Function Launcher 
			
			
			You see basically a list of functions, scrollable with the
			wheel. Fig. 3.18 shows amongst others the application functions
			"Wireframe Display" and "Shaded Display" in the list. 
			
			A function can be triggered in four ways: 
			
				- Double click the function with the mouse, 
- press the device's CTRL key,
 
- press the button Trigger or 
 
- the WFL does this by itself when the Autotrigger Delay is
					not set to Infinite.
					In Fig. 3.18, the function "Wireframe Display" would be
					triggered after 900 ms without further wheel movement. 
				
			Thanks to the WFL the functions can be triggered very
			comfortably now in a single operation: Move the wheel (WFL
			appears), move the wheel further (choose the desired function),
			await the autotrigger delay time (function is triggered), WFL
			closes, ready. 
			
			The meaning of the checkboxes is:
			
				- 
					If Cyclic Scrolling is activated the blue marker jumps
					to the first position after the last position is reached and vice versa.
				
- 
					If Accelerated Scrolling is activated the blue marker
					moves overproportional faster on quick wheel movements.
				
- 
					If Close When Function is Triggered is activated the WFL
					will automatically close after triggering the function. 
				
			Hint: The WFL is part of the 
SpaceControl Panel and
			can not be used without it. Therefore the panel must be running;
			if this is not the case while the WFL is called  the panel
			is started first. The panel may be minimized. 
			
			
3.3.4.2
				Configuring the Wheel
					Function Launcher
			The WFL will work as expected only if it is configured
			correctly. Two steps are necessary. First: The wheel must be
			configured to open the WFL. This is done by activating the
			appropriate element in the drop down list in the 
SpaceControl Panel's main
			dialog: 
			
			
  
 
				
				Fig. 3.19: Wheel configuration to open the WFL 
			
 
			
			The WFL will appear now when moving the wheel, but it will
			contain only some pre-configured functions. Your own functions
			must be assigned in the second step in the 
Function Assignment
			dialog (as shown above). See the example for fig. 3.18 here
			again: 
			
			
  
 
				
				Fig. 3.20: Configuring the WFL 
			
 
			
			The entries "Wireframe Display" and "Shaded Display" are
			functions of the CAD application Autodesk Inventor; both have
			been dragged from the function list to the WFL slots as shown
			above. 
			The 
Wheel Assignment
			must be set to 
HandleWheelFuncLauncher, this has been done by the first step already. 
			
			After these two configuration steps the WFL will appear with an
			extended function list, and if the 
Autotrigger Delay is set it will trigger a
			function automatically when it is chosen. 
			
			
3.3.5
				Calculator and Number Pad
			In dialog 
Function Assignment you find in the branch
			"Functions/Devices/SpaceController/Others/" the function 
HandleCalculatorNumPad.
			Like all the other functions it can be dragged to a key, the WFL
			or the wheel. When the function is triggered the dialog 
Calculator/Number
				Pad is shown: 
			
			
				
					
						|   
 Fig. 3.21: Integrated calculator
 
 |   
 Fig. 3.22: Integrated number pad
 
 | 
				
			
			
			The number pad is used to put the characters on it into the
			foreground application's input fields if they have the focus.
			You do not need to let go your normal mouse for doing that in
			this way. 
			
			The same is possible with the calculator: When pushing the 
Send
			button the display is sent to the foreground application. The
			calculator provides the usual basic calculations and shows the
			following special characteristics: 
			
			
Percent: 
			The "%" key converts the displayed number from a percentage to a
			decimal. When the key is pressed after an arithmetic operation,
			addon, discount and percentage can be computed as follows: 
			
				- "+ n % =": Adds n percent to the displayed number. 
- "- n % =": Subtracts n percent from the displayed number.
				
- "* n % =": Multiplies the displayed number by n percent. 
- "/ n % =": Divides the displayed number by n percent. 
			Examples: 
			
				-  How much are 1000 plus 25 percent?: "1000 + 25 % ="
					results in 1250. 
- How much are 1000 minus 25 percent?: "1000 - 25 % ="
					results in 750. 
- How much are 25 percent from 1000?: "1000 * 25 % ="
					results in 250. 
- From how much are 1000 25 percent?: "1000 / 25 % ="
					results in 4000. 
Memory: 
			The calculator provides a memory, usable with the following
			keys: 
			
				- STO: Copies the number displayed into the memory. 
- RCL: Copies the memory into the display. 
 
- SUM: Adds the number displayed to the memory. 
 
- EXC: Swaps the memory and display. 
 
			If something is present in the memory a "M" is shown in the display's left
			corner as shown in fig. 3.21. 
			The three check boxes in the dialog's lower part have the
			following meaning: 
			
				- Add CR when pressing 'Send' 
 This function is available only in the calculator mode; it
					modifies the Send button's behaviour slightly: If
					activated it sends not only the calculator's display's
					content to the foreground application but a carriage return
					character (CR) additionally. In many applications you can
					close an open input in this way.
- Use '.' as Decimal Separator 
 If activated a decimal point is sent to the foreground
					application instead of a decimal comma. Some applications
					need the one or the other.
- Close Automatically 
 Normally an input in progress will be closed by a carriage
					return character in an application, and you do not need the
					Number Pad any more. If activated the dialog will be closed
					when a carriage return character has been sent.
 
			Hint: Calculator and number pad are part of the 
SpaceControl
				Panel and can not be used without it. Therfore the panel
			must be running; if this is not the case while the calculator or
			number pad is called  the panel is started first. The
			panel may be minimized. 
			
			
3.3.6 Menu Bar
			The menu bar allows you to load and save the configuration files
			for the connected devices, set your preferences, choose one of
			the connected devices for configuration and to open these help
			pages. 
			
			
			
			 Fig. 3.23: Menu Bar 
			
			
			3.3.6.1 File Menu
			
				-  Load Configuration
						.../Save Configuration/Save Configuration As ...:
					
 These items can be used to store and restore the device's
					configuration parameters to/from harddisk. The parameters
					are those presented in the Basic Settings sub-panel, the Advanced Configuration
					dialog and the Function
						Assignment dialog.
 
 
-  Start Driver/Stop
						Driver: 
 If the connection between the driver and the SpaceControl Panel is
					not established the panel assumes that the driver is not
					running and you can start the driver here. If there is a
					connection the menu item is greyed to prevent a second start
					of the driver. As the item says Stop Driver is used to stop the driver.
 
 
-  Autostart Driver When
						User Logs In: 
 This is a toggle menu item. If checked the driver will be
					started automatically as soon as the user logs in.
 
 
-   Preferences: 
 If activated the Preferences
					 dialog will appear:
 
  
						Fig. 3.24:  Preferences dialog
						
					 
 
 
- 
					
						- The Help Browser
							section lets you choose your favourite Web browser for
							displaying the help pages. If Use Default Browser is checked your
							operating system's default browser is used, if not you
							can search for another one and put its path into the Browser path
							field. 
- The user interface's language can be set with the Language section.
							If Default
							is activated the SpaceControl
								Panel will open in the language your desktop
							is in. Attention: The panel must be restarted to make the setting active.
						
- The Look And Feel
							section allows the selection of your favourite SpaceControl Panel's
							skin. The list is generated automatically out of the
							proposel delivered by the Java Runtime Environment and depends
							on the operating system. 
 
- The section Others
							 assembles some more preferences: 
 
								- If Start Driver
										with Panel is checked the SpaceControl Panel
									will start the driver automatically when started if
									it is not already running. 
 
- If Ask Before
										Exit is checked the SpaceControl Panel
									presents a message box before leaving the
									application. 
- If Readjust
										Dialog Size on Device Change is checked
									the SpaceControl
										Panel's window adjusts its size when the
									user changes the device with an item of the Device menu.
									This is used to restore the default window size in
									case the user has changed it. 
- If Show Cap
										Data as Graphic is checked you see the
									white bars and arcs when moving the cap as shown in
									fig. 3.1. 
- If Show Cap
										Data as Digits is checked the numerical
									values of the sent data are shown below the device's
									picture. 
- If Show
										Tooltips is checked short help texts are
									displayed when the mouse cursor rests over a
									dialog's control element. 
- If Show "Tip of
										the Day" is checked a little hint is
									displayed when the SpaceControl Panel is started. 
 
 
 
 
-   Update
						Firmware ...: 
 The SpaceController device contains three microcontrollers
					with their own software and a RAM chip with data for the
					display, which is together called firmware. From time to
					time we will publish firmware versions on our web site,
					downloadable as files.
 Clicking the menu item will show the Firmware Update
					dialog:
 
    
						Fig. 3.25:  Firmware
							Update dialog 
					 
 
 For updating perform these two steps:
 
						- Click on the Select
							 button and choose the firmware file. 
- Click on Start
								Update to load the new firmware into the
							device. This will last some minutes, the four bars in
							the dialog's lower area will show the progress. 
 The actual firmware version is displayed in the SpaceControl Panel's
					main window in the area Device Type.
 Update the firmware with the newest driver version generally
					if no other hint is given.
 
 
-  Exit: 
 Leaves the SpaceControl
						Panel and saves the preferences and the Control Panel's
					window size and position.
 
3.3.6.2 Device
				Menu
			With the 
Device menu
			you can change the device for configuration if there is more
			than one device connected to the computer. Each connected device
			will be shown here as a new menu item. To distinguish the
			different devices the device's serial number is shown here and
			in the 
Device Type
			sub-panel of the main window (see 
fig. 3.1). 
			If the 
Readjust Dialog Size
				on Device Change checkbox  in the 
Preferences dialog (see 
fig. 3.24) is activated the main
			window's size is adjusted to the device picture when the device
			is changed. This is used to restore the window's default size in
			case the user has changed it. 
			
3.3.6.3 Help
				Menu
			If menu item 
User Manual
			is selected these help pages are opened in the Web browser you
			have selected in the 
Preferences
			 dialog (see 
fig. 3.24). 
			Menu item 
About
			opens the usual 
About
			dialog box containing version information, copyright notice,
			license and system information. These data may be important if
			you need support in case of trouble with the driver 
			
			
3.4 Loading And
				Saving Configurations
			3.4.1 All
				Applications
			The SpaceControl driver monitors the desktop and checks which
			application is in the foreground. If there is a special
			configuration for the foreground application the driver loads
			this configuration and sets all of the device's parameters to
			the values stored in it as soon as the application comes into
			the foreground. Always when a configuration will be loaded the
			actual configuration is stored automatically at first, without
			any user interaction. Notably it is not necessary to execute the
			menu items "File/Save Settings" or "File/Save Settings As ..." 
			
			What is a "special configuration" now? As mentioned above all
			configurations are stored as configuration files (with file
			extension ".cfg") in a folder "SpaceController" in the user's
			home directory (i. e. "C:\Users\<user
			name>\SpaceController\devices\<device's serial
			number>\"). The driver checks for the name of the foreground
			application, appends the extension ".cfg" to the name and tries
			to load this configuration file. If there is no file with this
			name it loads always the file "common.cfg". Which file is
			actually loaded you can see in the SpaceController's main window
			in the 
Device Type
			sub-panel beside the label 
Configuration
				File (see 
fig. 3.1) and
			on the device's LCD in the title line (see 
fig. 2.7). 
			
			Now the problem arises what the name of an application is. That
			is not always easy to determine - the driver tries to use the
			binary name seen in the operating system's process list. In case
			this is known not to work (e. g. all Java applications have
			the same binary name "java.exe") it uses the application
			window's title; of course this may be ambiguous too ... 
			
			Fortunately the 
SpaceControl Panel tells you what the driver thinks the foreground
			application's name is: In the status bar you can see the entry 
Active Application;
			e. g. in 
fig.
				3.1, its value is "notepad". If you want to have a special
			configuration for the 
notepad
			 application just save a file "notepad.cfg" in the
			device's configuration file folder. The panel will propose this
			name automatically when activating the menu item "File/Save
			Settings As ...". Once this file is created the driver will
			always load it when an application called "notepad" comes into
			the foreground. 
			
			
3.4.2
				Supported Applications
			The mechanism for loading configurations described in the
			previous chapter works for all applications. But some
			applications are better tied to the SpaceController by using a
			separate plug-in. Such a plug-in is able to monitor even the
			mode the application is in and triggers the driver to load a
			special configuration for this mode. 
 
			
			In the panel's status bar the value of the 
Active Application entry
			could e. g. be "Inventor/Part". This means the application
			"Inventor" (a well known CAD application) is in the foreground,
			and it is in the mode "Part". Loading a configuration works in
			the same manner as described above: If there is a file
			"Part.cfg" in the subfolder "Inventor" it is loaded as soon as
			the application enters the mode "Part". 
			
			Additionally a plug-in could provide the driver and the panel
			with further information about the supported application. For
			instance, the plug-in for Inventor integrates its menu structure
			into the 
Function Assignment
			 dialog; the user can assign a menu item to a device key
			in a comfortable way, s. 
Fig.
				3.9. 
			
			
3.4.3 Special
				Handling for the Windows Explorer
			The mechanism of loading configuration files for the foreground
			application leads to a problem if the 
SpaceControl Panel is not already started.
			Say, you have got the application "notepad" into the foreground
			and want to configure its special, already existing
			configuration file "notepad.cfg". Therefore, you need to open
			the 
SpaceControl Panel
			and click into the start menu to do this, but since the Windows
			desktop is just an instance of the Windows Explorer, the Windows
			Explorer is the foreground application in this moment! And the
			driver loads the configuration file "Explorer.cfg", if it
			exists, or the file "common.cfg" if not. In any case, the
			configuration for your application "notepad" is replaced, and
			you are forced to click it again to bring it into the
			foreground. That is annoying. 
			
			Therefore there is a special treatment for the Windows Explorer:
			If the driver detects the Explorer as foreground application it
			waits ten seconds before loading its configuration file. This
			should be enough time to navigate through the start menu and to
			start the 
SpaceControl Panel
			. 
			Disadvantage: If you really want to have a special configuration
			for the Explorer you have to wait these ten seconds before you
			can use it. In this case, adjust the setting "explorerDelay" in
			the file "SpaceController\daemon.ini" in your home directory. If
			set to 0 the Explorer is treated as any other application. 
			
			
			
3.4.4
				Technical Notes for System Administrators
			This section contains some details useful for setting up default
			configuration files and for preserving them from being deleted
			when updating the driver. Important are these facts: 
			
				- Each user has its own configurations. 
- Each device (in case more than one are connected) has its
					own configurations. 
- All configurations are stored in files, not in the
					registry (due to compatibility with Linux and OS X). 
 
- There are default configuration files. 
			When starting the driver the first time it will create a folder
			"SpaceController" in the user's home directory (i. e.
			"C:\Documents and Settings\<user name>\SpaceController\"
			in Windows XP or "C:\users\<user name>\SpaceController\"
			since Windows Vista or "/home/<user
			name>/SpaceController/" under Linux or "/Users/<user
			name>/SpaceController/" under macOS). This folder contains the
			following items: 
			
			Table 3.1: Configuration files in a user's home directory when
			the driver is started the first time: 
			
				
					
						| Folder /File 
 | Description 
 | 
					
						| SpaceController 
 | Main folder. 
 | 
					
						| +- Applications | Empty folder for files
							needed by plug-ins for applications. 
 | 
					
						| +- Devices | Empty folder for device
							configuration files. 
 | 
					
						| +-daemon.ini 
 | Configuration file for
							the driver. 
 | 
					
						| `-panel.ini | Configuration file for
							the SpaceControl
								Panel. 
 | 
				
			
			
			The folder "Applications" is empty at first and will be filled
			when plug-ins are installed and started the first time. The same
			is with folder "Devices": It is empty at first and will be
			filled when a device is connected to the computer the first
			time. If both have occured the file structure will be as in the
			following example: 
			
			Table 3.2: Configuration files in a user's home directory when
			plug-ins are installed and devices has been connected: 
			
				
					
						| Folder /File 
 | Description 
 | 
					
						| SpaceController 
 | Main folder. 
 | 
					
						| +- Applications 
 | Folder with files needed
							by plug-ins for applications. These are only there if
							the appropriate plug-in is installed. 
 | 
					
						| |  +-catia.ini 
 | Configuration file with
							settings for the Catia plug-in. 
 | 
					
						| |  +-catia.mnu 
 | File with Catia's menu
							structure. 
 | 
					
						| | 
							+-proe_WF4_plugin.ini | Configuration file with
							settings for the Pro/ENGINEER plug-in. | 
					
						| |  +-ProEngineerWF4.mnu | File with Pro/ENGINEER's
							menu structure. | 
					
						| |  `- ... 
 | Further files needed
							from plug-ins. 
 | 
					
						| +- Devices 
 | Folder with
							configuration files of all devices once connected to the
							computer. 
 | 
					
						| |  +- MB1USX09010001V 
 | Folder with all
							configuration files for the device with serial number
							MB1USX09010001V. 
 | 
					
						| |  |  +- Catia 
 | Folder with all Catia's
							configuration files. 
 | 
					
						| |  |  |  +-2D Mode.cfg 
 | Device configuration for
							Catia's 2D mode. 
 | 
					
						| |  |  |  `-3D Mode.cfg | Device configuration for
							Catia's 3D mode. | 
					
						| |  |  +- ProEngineerWF4 | Folder with all
							Pro/ENGINEER's configuration files. | 
					
						| |  |  |  +-Assembly.cgf | Device configuration for
							Pro/ENGINEER's assembly mode. | 
					
						| |  |  |  +-Part.cgf | Device configuration for
							Pro/ENGINEER's part mode. | 
					
						| |  |  |  `-*.cgf | Further configuration
							files for other Pro/ENGINEER modes. 
 | 
					
						| |  |  +- ... | Further folders for
							other applications. 
 | 
					
						| |  |  +-common.cfg | Standard configuration
							if there is no other configuration for an application. 
 | 
					
						| |  |  +-googleearth.cfg | Special configuration
							for GoogleEarth. 
 | 
					
						| |  |  `-... | Further special
							configuration files for applications. 
 | 
					
						| |  +- MC1UWX09020203U | Folder with all
							configuration files for the device with serial number
							MC1UWX09020203U. 
 | 
					
						| |  |  +- Catia | Same as above for this
							device. | 
					
						| |  |  +- ProEngineerWF4 | Same as above for this
							device. | 
					
						| |  |  `- ... | Same as above for this
							device. | 
					
						| |  |  +-common.cfg | Same as above for this
							device. 
 | 
					
						| |  |  +-googleearth.cfg | Same as above for this
							device. | 
					
						| |  |  `-... | Same as above for this
							device. | 
					
						| |  +- ... | Further folders for
							other devices. | 
					
						| +-daemon.ini 
 | Configuration file for
							the driver. 
 | 
					
						| `-panel.ini | Configuration file for
							the SpaceControl
								Panel. 
 | 
				
			
			
			Where do the *.cfg files in the user's home directory come from?
			These files are copied from the driver's installation directory
			as soon as a device is connected with the computer the first
			time. The installation directory can be chosen during the
			installation process, the default one is "C:\Program
			Files\SpaceControl" or "C:\Program Files (x86)\SpaceControl" on
			64 bit machines. In this folder there is the subfolder "cfgs",
			and its content is copied completely into the folder with the
			device's serial number in the user's home directory. 
			
			Now it is clear what to do if you want to provide your special
			default configurations for all users and devices: Just save your
			set of configuration files into the folder "cfgs" of the
			driver's installation directory, and these are copied when a
			user connects a device the first time with the computer. From
			this moment on the user may of course change his configurations
			on his own. 
			
			When deinstalling the driver it will ask you to delete your
			SpaceController folder. If you install a new driver software and
			an old SpaceController folder is found when the driver is
			started the first time, it will be renamed e. g. to
			"SpaceController_1.1.0" (if the old driver version has been
			1.1.0), the driver will create a new folder
			"SpaceController" and copy all files in it. In case the format
			of the files has changed the driver will convert the files automatically. 
			
			
3.5 Remote
				Control of Applications Over the Network
			3.5.1 Overview
			Since the communication between driver and plug-ins is done over
			TCP/IP - normally only on the local machine - you can do this
			over the network as well by modifying three configuration files.
			You can implement the following scenario (of course with an
			arbitrary number of clients): 
			
			
  
 
				
				Fig. 3.26: Client/Server environment for remote control 
			
 
			
			The applications to control, e. g. Inventor or NX, are installed
			on a network server (it may have a more advanced graphics card
			than the clients). The clients get access to the server's
			desktop with an appropriate remote control software, e. g.
			Microsoft's Remote Desktop or TeamViewer. The 3D controllers are
			connected via USB with the clients as usual . 
			
			Normally our plug-ins connect with the local running driver. Now
			you have to take care that the plug-ins running on the server
			connect with the driver on the clients. This can be achieved by
			providing the configuration files "spc_ctrlr_dll.ini" and
			"siapp_dll.ini" with the IP address or the network id of the
			client you want to speak with. 
			
			The driver on the client is not able now to detect if an
			application on the server is in the foreground of course and
			should be forced to send the data permanently to the server
			therefore. But this would be not very handy: The scene in the
			application would move even if on the client another local
			application is in the foreground which should be controlled
			exclusively. To avoid this the driver can check if the remote
			control software is in the foreground and sends the data to the
			server only in this case. To let the driver know what remote
			control software you are using its binary name has to be put
			into the local "daemon.ini" file. 
			
			There are two restrictions: 
			
				- Client and server must run the same operating system. It
					is not possible for example to control a Windows server from
					a Linux client or vice versa. But different Windows versions
					on client and server are no problem. 
-  The remote control is working only if the application to
					control (respectively its plug-in) communicates with the
					driver over TCP/IP. But this is not the case for all
					applications: Creo, Google Earth, HiCAD, hyperCAD and
					Pro/Engineer e. g. are using an interface based on Windows
					messages and cannot be controlled in this way. In such cases
					it may be possible with third party software
					e.  Eltima's "USB Network Gate") to transfer USB
					signals over the network rather than just IP packets;
					contact our support for this scenario. Only some catchwords are
					given here: In this case an instance of the driver must be
					started for each user on the server ("sc_daemon.exe -i"), which
					communicates exclusively with its client over an individual port
					(parameters "port" and "exclusiveDevice" in file "daemon.ini").
3.5.2
				Configuration on the Server's Side
			You have to do the following on the server: 
			
				- Install the SpaceControl driver software: 
 The driver is not needed for operation but the plug-ins and
					some DLLs must be installed.
- Create the folder structure: 
 The plug-ins expect a folder structure for their
					configuration files in
					"C:\Users\<user name>\SpaceController\". The folders
					are created in a user's home directory when the driver
					starts the first time. The driver must be started therefore
					once on each user account.
- Create configuration files: 
 The configuration files described in the next section are
					created in the folder
					"C:\Users\<user name>\SpaceController\" when the
					application starts (better said: when it ends) the first
					time. The application you want to control must be started
					and ended once therefore if the needed configuration file is
					not there.
 Furthermore our plug-ins (with the exception of the
					Universal Plug-in) create a so called MNU file when started
					the first time containing the menu commands of the
					application. This file has to be copied to all clients, see
					below.
 
- Modify the configuration files: 
 Which configuration file is needed depends on the
					application you want to control. Most of our plug-ins use
					the file "spc_ctrlr_dll.ini", but our Universal Plug-in uses
					the file "siapp_dll.ini". It is best to modify both of them:
					You just have to assign the IP address or the network id
					of the computer you want to control the application from to
					the parameter "ipv4Addr"; overwrite the old value
					"localhost".
 Samples:
 
						-  ipv4Addr = localhost     # this
								is the default value and must be overridden by 
-  ipv4Addr = saturn     
								  # the network id of a computer "Saturn" e. g.
								or by 
-  ipv4Addr = 192.168.30.74 # its IP address 
 
			Hint: Normally the driver checks which application is in the
			foreground and should get the data. Without the driver this will
			not work on the server of course. Therefore the plug-in
			suppresses the data by itself if it runs in remote mode, is not
			in the foreground and the parameter "sendMode" is set to "1". In
			remote mode the value "2" will do the same as "1"; see the
			comment in the configuration file. (The suppressing feature is
			implemented only in Windows, not in Linux and macOS for the time
			being.) 
			
			
3.5.3
				Configuration on the Client's Side
			You have to do the following on each client: 
			
				- Install the needed plug-ins: 
 The plug-ins are not necessary on the clients, but we need
					the configuration files ("assembly.cfg", "part.cfg" etc.) to
					modify them with the SpaceControl Panel. These files are
					copied with default values to the client during
					installation.
 
- Define the Remote Desktop Software: 
 The driver should be prevented from sending data to
					applications not in the foreground. Running on the client,
					the driver can only detect if the local remote control
					software is in the foreground (not if an application on the
					server is in the foreground there) and can stop sending data
					to the server if not. You can let the driver know the binary
					name of your remote control software: Assign its binary name
					to the parameter "remoteSoftware" in file "daemon.ini".
					Suppress the file extension ".exe".
 Samples:
 
						-  remoteSoftware =      
								     # the default value is empty
								and must be overridden by a binary name 
-  remoteSoftware =
								mstsc      # "mstsc.exe" is
								the binary name of the Microsoft Remote Desktop client
							 
-  remoteSoftware = TeamViewer # "TeamViewer.exe"
								is the binary name of the TeamViewer client 
 The driver reads the file "daemon.ini" only when it starts;
					you have to restart the driver therefore when the file is
					modified.
 
- Copy the MNU file(s): 
 When started the first time our plug-ins (with the exception
					of the Universal Plug-in) create a so called MNU file
					containing the menu commands of the application. This file
					has the extension ".mnu", is located in folder
					"C:\Users\<User name>\SpaceController\Applications\"
					and is needed by the driver and the SpaceControl Panel
					as well. Copy it into the same folder on each client.
 
3.5.4
				Configuration of the Firewall
			The firewall must be configured to allow the communication
			between all of the involved software components: 
			
				- The driver process on the clients is "sc_daemon.exe"; it
					is listening on port 31415 for communication requests from
					the plug-ins. (The port number can be changed in file
					"daemon.ini" if needed.) 
- The plug-ins are normally DLLs and part of the
					applications to be controlled therefore. Their EXE files
					must be allowed to communicate; in case of Inventor its name
					is "inventor.exe" e. g., in case of NX its name is
					"ugraf.exe". 
3.6 The C++
				Application Programming Interface
			For the C++ API documentation's main page click 
here. All functions
			available in the API are listed 
here. 
			
			
3.7 The Java
				Application Programming Interface
			For the Java API documentation click 
here. All functions available in
			the API are listed 
here.
			
			
			
			
4
				Troubleshooting
			If you have problems with the device, please, read these hints
			before contacting the hotline. 
			
			
				
					
						| Problem | Solution | 
					
						| No movement of objects
							in applications. 
 | Make sure the driver is
							running. If it runs a tray icon with the SpaceControl
							logo is displayed on the right side of your Windows
							start bar. Make sure you have the plug-in for your application
							installed: In the Windows Start Menu in the folder
							"SpaceControl/Plug-ins" should be an entry for your
							plug-in.
 
 | 
					
						| Driver is running, still
							no movement of objects. 
 | Open the SpaceControl Panel
							with menu item "SpaceControl/Start SpaceControl Panel"
							in your start menu or by double clicking the driver's
							tray icon. Try the cube demo. If the cube is moving
							restart your application to initiate the connection
							process again. 
 | 
					
						| I just installed the
							driver, and nothing happens in the SpaceControl Panel's
							cube demo when moving the cap. | Unplug the device and
							plug it into your USB port again. In rare cases the USB
							connection can not be established when connecting the
							device the first time. | 
					
						| The SpaceControl Panel
							displays "try to connect ..." and a moving bar in the
							status line. 
 | Start the driver with
							menu item Start
								Driver in Window's start menu. 
 | 
					
						| The SpaceControl Panel's
							cube demo is not working. | Eventually the
							transmission of data has been deactivated by some
							settings in  the Advanced
								Configuration dialog. Press the button Defaults in the
							main window to set all parameters to the default values
							again. 
 | 
					
						| I observe a drift of my
							objects. 
 | Open the SpaceControl Panel,
							release the cap and press the Zero button. See here for details. This effect may also be seen if your power supply via
							USB is instable. Use an active USB hub instead of a
							passive one or, better, no hub at all.
 
 | 
					
						| I observe a wobbling of
							my objects. 
 | This may be caused by
							accidental power oscillations. Adjust the threshold or use data averaging. In some
							cases it may help to turn the blue LEDs off to stabilize
							the power supply. 
 | 
					
						| I have a very jerky
							moving of the sliders and see often a dialog box with
							the error "Setting parameters failed!". 
 | Try to connect the
							device directly to your computer, not using USB
							extension cables or especially USB hubs. Sometimes these
							cause a delay in communication resulting in these
							effects. 
 | 
					
						| The SpaceControl Panel's sliders and
							other control elements are flickering if the in-built
							cube demo tab is open. The menus are not usable in this
							state. 
 | This is most likely a
							problem with your graphics card driver. Install the
							latest version. If this is not possible you can start
							the SpaceControl
								Panel with a special option: Open a command
							window and navigate to the SpaceControl program folder
							(usually "C:\Program Files (x86)\SpaceControl"). Type 
 jre8\bin\java.exe
								-Dsun.java2d.noddraw=true -jar sc_gui.jar
 
 This starts the Java interpreter and loads the SpaceControl Panel
							application with disabled Direct3D support for the GUI
							elements.
 To make the SpaceControl
								Panel usable again if it is in the flickering
							state, change back from the Demo tab to the Device tab.
 
 This hint is obsolete: The panel is started with this
							option automatically now.
 
 | 
					
						| The SpaceControl Panel
							crashes when the device is plugged into the computer or
							an obscure dialog concerning Java 3D is displayed. 
 | This may occur if your
							graphic card driver has no suitable support for OpenGL
							or Direct3D. Install a new graphics card driver to fix
							it. If this is not possible you can start the SpaceControl Panel
							without the in-built cube demo, this avoids using 3D
							graphics: Open a command window and navigate to the
							SpaceControl program folder (usually "C:\Program Files
							(x86)\SpaceControl"). Type 
 jre8\bin\java.exe -DDemoOff -jar sc_gui.jar
 
 This starts the Java interpreter and loads the SpaceControl Panel
							application with disabled cube demo.
 
 This hint is obsolete: The panel disables the cube demo
							automatically if problems are detected.
 
 | 
					
						| The SpaceControl Panel
							opens but does not show the device panel of a connected
							device. 
 | This may happen if your
							graphics card is in 256 color mode. Set it to 16 bit or
							true color. 
 | 
					
						| The SpaceControl Panel
							opens but shows an empty window on Vista 64 Bit or
							Windows 7 64 Bit. 
 | Right click on the
							"SpaceControl/Start SpaceControl Panel" entry in the
							SpaceControl's start menu and open the properties. There
							is a tab "Compatibility"; deactivate the "Visual
							designs". 
 | 
					
						| The SpaceControl Panel
							loses the connection to the driver for a short time when
							changing the configuration. 
 | This may happen if the
							device is connected via a USB hub with the computer.
							Connect it directly. 
 | 
					
						| If I press the Help button on a
							dialog my browser opens the help file always in the
							first line, not in the appropriate chapter. | This is a bug in older
							Internet Explorer versions. Newer versions, Chrome,
							Firefox, Opera and Safari are known to be working. If
							you don't want to use one of these as default browser
							you may use it as help browser for the SpaceController
							only, see the  Preferences
							dialog above. In the Internet Explorer click into the address field
							and press the return key to jump to the wanted section.
 
 | 
					
						| The display shows the
							text "unknown" after assigning a function to a key. 
 | This may happen after
							the first start of a plug-in. Workaround: Put another
							application into the foreground and switch back. 
 | 
					
						| The SpaceController does not work in
							Google Earth. 
 | You have to switch on 3D controller
							support in Google Earth: Open the options dialog with
							menu item "Tools/Options..." and check the field "Enable
							Controller" under tab "Navigation". 
 | 
					
						| The SpaceController does not work in
							Rhino 5. 
 | Type "TestSpaceBall" into Rhino's command
							line, deactivate the new interface and restart Rhino. 
 | 
					
						| Rhino 5 rotates always around the scene's
							z-axis when I rotate around the y-axis of the
							SpaceController. 
 | Click in Rhino on "File/Properties..."
							and activate the parameter "Rhino Options/View/Rotate
							relative to view". 
 | 
					
						| The SpaceController does not work in
							Rhino 6. | Type "SpaceMouse" into Rhino's command
							line, open the command's "Popup_Menu" and activate
							"Rotate" and "Pan Zoom". Or press function key 5 on the
							device which has the the macro "Activate
							SpaceController" assigned. The orientation of the z-axis' translation and rotation
							should be reversed in our Advanced Configuration
							dialog.
 
 | 
					
						| KeyShot 5 freezes my computer. 
 | KeyShot 5 causes nearly 100 % CPU load
							even without any user interaction. Together with the
							reading thread of our Universal Plug-in the computer may
							freeze. To avoid this open the Windows Taskmanager and
							detract a CPU core from the process "keyshot5.exe". | 
					
						| The driver does not start under macOS
							Sierra (10.12). 
 | In file /etc/hosts the line 127.0.0.1    localhost
 must be added.
 
 | 
					
						| Under macOS Sierra (10.12) the
							SpaceControl Panel cannot connect to the driver. 
 | Reason: The operating system's function
							gethostbyid(), called by the driver, does not find the
							IP address to the computer's network id and returns
							after a 5 second timeout. But the panel waits only 2
							seconds for a response of the driver. Workaround: Add a line with the computer's network id
							in file /etc/hosts:
 127.0.0.1    <computer
							id>.local
 The computer id can be found in the Mac's System
							Preferences in the section "Sharing". Any spaces in the
							id must be replaced by hyphens.
 
 | 
					
						| The SpaceController does not work in
							Autodesk Inventor. 
 | Newer versions of Inventor block unknown
							add-ins by default - you have to allow their execution
							first. To do this click on menu item "Tools/Add-ins" and
							in dialog "Add-ins Manager" on the entry
							"SpaceController Add-In". In the area "Loading
							Behaviour" remove the check mark at "Blocked" and
							activate the other two check boxes. 
 | 
					
						| The SpaceControl Panel crashes
							when the so called "GodMode" folder is present on the
							desktop. 
 | The Godmode folder is a folder with the
							name "GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}"
							and shows many more links to Windows' configuration
							applications as in the Windows Control Panel. Because of
							a bug in the Java Runtime Environment all Java
							applications are affected under Windows 10. There are
							two work arounds: 
 
								Activate with "File/Preferences" the"Metal" Look
									and Feel.Instead of the GodMode folder create a batch file
									on your desktop containing the line: %SystemRoot%\explorer.exe
										shell:::{ED7BA470-8E54-465E-825C-99712043E01C}
 | 
				
			
			
			In case of further problems contact our support team: 
			E-mail: 
support@spacecontrol.de
			
			Phone: +49 8152 90968-68 
			
			
5 Technical
				Data
			
				
					
						| SpaceController: 
 | 
 | 
					
						| Dimensions (width,
							depth, height): | 198 mm, 199 mm, 81 mm | 
					
						| Weight: | 845 g | 
					
						| Power consumption: | 5 V, 65 mA (LEDs and LCD
							off) to 225 mA (LEDs and LCD set to max. brightness) | 
					
						| Power source: | PC via USB cable | 
					
						| Connection interface: | USB 2.0 | 
					
						| Cable length: | 1.8 m | 
					
						| Sensor: | optoelectronic | 
					
						| Ambient temperature
							range: | 15 °C - 40 °C | 
				
			
			
			
			6 System
				Requirements
			Hardware: 
			
				- PC with x86 CPU 
- 1 GHz clock rate 
- 512 MB RAM 
- 200 MB free harddisk memory 
- Screen resolution >= 1024 x 768 Pixel (for the SpaceControl Panel) 
 
			Operating system: 
			
				- Windows XP to Windows 10, 32 or 64 bit 
 
- Linux 32 or 64 bit. We cannot permanently test all Linux
					distributions, but it is very likely that our driver will
					run without problems. We have made successfully the
					following tests:
					
						- Driver version 2.8.0 with Debian 7.8.0, Fedora 21,
							openSuse 13.2 and Ubuntu 14.04.1 LTS 
 
- Driver version 2.8.7 with Debian 8.7.1 and Fedora 25
- Driver version 2.8.8 with Debian 9.1.0, Fedora 26,
							openSuse Leap 42.3 and Ubuntu 16.04.02 LTS 
- Driver version 2.9.0 with Debian 9.3.0 and Ubuntu
							17.10
- Driver version 2.9.1 with Debian 9.4.0, Fedora 27.1.6,
							openSuse Leap 42.3 and Ubuntu 17.10 
 Attention: Our driver needs the window system X11,
					i. a. to detect the foreground application; The new
					Wayland does not provide such a functionality. We strongly
					recommend to use an X11 based desktop instead of Gnome
					therefore, e. g. LXDE which furthermore has a
					reasonable start menu.
- macOS or OS X from version 10.8 on 
 
- for requirements concerning the plug-ins see above 
 
			Software: 
			
				- Web browser for reading the documentation
- X11 (Linux only)
7 Change Log
			1 August 2018, Version 2.9.2:
			
				- If multiple instances of an application were open the data
					has been sent to all of them not only to the one in the
					foreground.
- The acceleration for scrolling can be switched on and off
					now in the Wheel Function Launcher.
 
- Under Linux the auto start option did not work reliably. Now a file
					"SpaceControl-Driver.desktop" is created in folder "~/.config/autostart/"
					as the FreeDesktop standard recommends.
				
- Under Windows and Linux the key "Insert" could not be used
					in macros.
- Under Linux some applications (Xedit e. g.) could not be
					detected as foreground application.
				
- 3ds Max 2019 is supported (Windows only).
- AutoCAD 2019 is supported (Windows only).
- Creo 5 is supported (Windows only).
- The SpaceControl Panel stores its configuration automatically now
					if the computer is shut down.
- Under Windows the MinGW GNU compiler 7.3.0 and the FTDI driver 2.12.28 is used.
- Under Linux the MinGW GNU compiler 6.3.0 and the FTDI driver 1.4.8 is used.
- Under macOS the FTDI driver 1.4.4 is used.
- The Java Runtime Environment 1.8.0_172-b11 is used.
- The user manual has a navigation bar on the left side
					containing the contents, is ported to HTML 5 and is
					responsive.
 
			9 April 2018, Version 2.9.1:
			
				- Bug in Siemens-NX-Plug-in
					fixed.
- Blender
						plug-in enhanced; vertices etc. can be moved in
					Blender's Edit Mode now.
- Universal Plug-in has some new internal functions and
					supports Rhino 6 better.
- Some applications, using the older messages interface for
					communication, register several windows for data exchange
					and not only one. This is considered now by the driver, and
					ThinkDesign e. g. is better supported therefore.
- A bug caused Catia to run only with parameter "sendMode"
					set to "0" in file "daemon.ini". 
- Under Linux the first one or two characters in a macro has
					been swallowed if triggered by the Wheel Function
						Launcher. 
- Our new device "Astuto" (not on the market yet) is
					supported.
 
			11 December 2017, Version 2.9.0:
			
				- Siemens NX 12 is supported (Windows).
 
- Due to an incompatibility in the SC DLL some plug-ins had
					decreased performance. These plug-ins are improved.
- In this context there is a new parameter "dllReadTimeout"
					in file "spc_ctrlr_dll.ini". If there is a stuttering
					movement in an application it should be set to 50.
 
- Detection of the foreground application is enhanced. The
					CAM software Vericut is working now therefore (Windows).
- The driver could crash while shutting down the computer if
					a device has been removed before.
 
- Minor bug-fixes.
 
			5 October 2017, Version 2.8.9:
			
				- The right Ctrl and Shift keys has not been working in
					macros.
- The calculator did not calculate operations correctly
					immediately after the RCL or EXC key have been pressed.
 
- Blender
						plug-in enhanced; more devices than just one can be
					used simultaneously.
- There is an Universal Plug-in for macOS now.
- Universal Plug-in for Windows enhanced.
 
			19 July 2017, Version 2.8.8:
			
				- Creo 4 is supported (Windows only).
- AutoCAD 2018 is supported (Windows only).
- 3ds Max 2018 is supported (Windows only).
 
- You can trigger a selected function in the Wheel
						Function Launcher by pressing the device's CTRL key
					now.
- In the Function Assignment dialog you can copy
					user functions with "copy and paste" now.
 
- Moving the cap with activated option Restore Mouse
						Position in dialog Advanced Configuration has
					crashed the driver under Linux.
- There is a new parameter deviceCheckingTime in
					file "daemon.ini". If its value is 5 e. g., the driver
					checks only for five second after its start if SpaceControl
					devices are connected or disconnected. The default value is
					0; this means the check is always performed.
 (Meaning: The driver of the USB chip [FTDI] built into our
					device has a bug which may lead to interferences with other
					devices with a FTDI chip if the check is active.)
- Universal Plug-in enhanced.
 
			11 April 2017, Version 2.8.7:
			
				- The 2D/3D key does not work reliably with a second
					function assigned to it. The driver has resetted the device
					and other strange effects could occur.
- The driver has prevented the screensaver from being
					activated when moving the cap, but not the system from going
					into sleep mode.
- When resuming from the computer's energy saving modes, the
					driver could crash sometimes.
- The Solid Edge plug-in could crash after executing Solid
					Edge's menu function "PMI/Section".
- The Catia plug-in uses ready-made MNU files now rather
					than creating them by itself.
 
- Under Linux FreeCAD versions newer than 0.14 are running
					again.
- Default configuration files for Blender enhanced (double
					press, "...-nonnormal.cfg" files available).
 
- New parameter "exclusiveAppl" in file "daemon.ini". If an
					application name is given here (mostly as shown in the
					SpaceControl panel's status line, in the other cases the
					application's binary name without the ".exe" extension) only
					that application will receive data, even if it is not in the
					foreground.
- Our entries in the PATH environment variable are added at
					the beginning and not at the end now. Otherwise it could
					happen that wrong (= older) GNU DLLs of the same name
					from other software have been loaded instead of our newer
					ones.
 
- New Java Runtime Environment version 1.8.0_121.
- When unplugging a device a deadlock could occur, causing a
					semi-crash of the driver.
 
			28 November 2016, Version 2.8.6: 
			
				- There is a shift level for the device's keys now. You can
					switch to it with the new device function
					"SwitchKeyShiftLevel". Alternatively you can trigger the
					second function on a key by double pressing it. 
- The plug-ins are aware of the new device functions "Back",
					"Left" and "Bottom". By default they are assigned to the
					shift level (double press) of the keys FRONT, RIGHT and TOP.
					
 
- On some computers data has been sent to applications
					although not in the foreground. 
 
- The menu item File/Stop Driver in the SpaceControl
					Panel will work now even if the driver does not react on
					commands anymore; the process "sc_daemon.exe" is killed in
					such a  case.
 
- Some minor bugs in the AutoCAD plug-in are fixed. There is
					a new "hybrid" mode in the plug-in; in this mode AutoCAD
					interprets the translation and rotation data by itself, the
					plug-in is only responsible for the device keys.
 
- Siemens NX 11 is supported. The NX plug-in can be run in a
					hybrid mode as well.
- Minor bugs in the Blender plug-in are fixed.
- A rotation center defined in Solid Edge for the normal
					mouse will be used by the SpaceController now.
 
- New GNU compiler version 6.2.0 used under Windows.
			1 June 2016, Version 2.8.5: 
			
				- New GNU compiler version 5.3.0 used under Windows. 
 
- New Java Runtime Environment version 1.8.0_77. 
 
- New Java 3D version 1.6.0. 
- If the Mouse Movement
					is activated the sending of data to connected applications
					is suppressed now. 
- 3ds Max 2017 is supported. 
- AutoCAD 2017 is supported. 
 
- Universal Plug-in improved (support for Tenado 3D added,
					TurboCAD is working again). 
 
- The graphical demos tend to appear with an empty window
					when started under Windows 10. 
- Under OS X 10.11 ("El Capitan") the driver did not start
					without tricks, and the built-in cube demo could not be
					stopped once started. 
- Icons have no ugly white border any longer. 
 
			14 March 2016, Version 2.8.4: 
			
				- Existing configuration files from version 2.8.1 and 2.8.2
					have not been updated but replaced by new files with default
					values. 
			9 March 2016, Version 2.8.3: 
			
				- The device can control applications on a remote server
					now. See section 3.5 for
					details. 
 
- The plug-ins have the ability of remote control as well. 
- A bug in the Blender plug-in is fixed. 
 
			18 November 2015, Version 2.8.2: 
			
				- Some of the settings in our SolidWorks plug-in have not
					been saved when closing SolidWorks. 
- The installer of the Siemens NX plug-in copies some
					additional DLLs. 
- Some bugs in the Blender plug-in are fixed. 
 
- Under Windows 10 the help browser could not be started
					under some conditions. 
- Minor bug-fixes. 
 
			15 July 2015, Version 2.8.1: 
			
				- Support for 3ds Max 2016 and 3ds Max Design 2016. 
- Support for AutoCAD 2016. 
- Blender plug-in enhanced, see readme file.
				
- Firmware update and its handling improved. 
- Device pictures in the SpaceControl Panel updated.
				
- The device's lights remains off now even if the computer
					changes itself into the standby mode. 
- Due to security reasons the driver daemon will accept
					connection requests only from the SpaceControl Panel
					of the same user. 
 
- Installer improved; there is a "silent" mode for Linux
					now, see section 3.1.2. 
- Changes in the OS X version: 
 
						- Installer improved. 
- The foreground application detection did not work
							reliably with the SpaceControl Panel in the
							foreground. 
- The configuration files could get corrupted with two
							devices connected to the computer. 
- The lights are switched off now when the computer goes
							into sleep mode, and the device will be reinitialized
							when it wakes up. 
- Firmware update is working now. 
 
 
			2 April 2015, Version 2.8.0: 
			
				- Firmware update is working now under Apple OS X. 
- Various bug-fixes under Linux, among other things the
					Panel key and executing macros with the WFL is working now
					even with other desktops than XFace (KDE, Gnome). 
- The macro function Execute only in case of state
						change works with the device keys as well now, not
					only with the cap deflections. See section 3.3.3.2. 
- We have a plug-in for the DCC software "Blender". 
- Plug-in for 3ds Max is improved, it integrates its own
					menu in 3ds Max. 
- The NX Viewer is working again without editing the
					"daemon.ini" file. 
 
- 64 bit applications compiled with Visual Studio 2012 could
					not load our Universal Plug-in when run on Windows 8.1.
					Because of a similar problem the plug-ins for Inventor and
					AutoCAD are recompiled. 
 
- GNU compiler changed from version 4.7.1 to 4.9.2. 
- Java runtime changed from version 7 to version 8. 
- Linux and OS X driver are not in the beta state any longer
					and contain a plug-in for Blender as well. 
 
			5 November 2014, Version 2.7.0: 
			
				- There is a new function scTransferCallbackFunction()
					 in the C++ API. The callback function is to be defined
					by the user and called automatically as soon as new data is
					available from the device; it gets the actual device data
					packet in its parameters. It may spare you some thread
					handling needed when using scFetchStdData()
					instead. 
- The Inventor Plug-in has a "hybrid" mode, and you can use
					the Universal Plug-in additionally to achieve higher
					performance. Ask our support for details. 
- AutoCAD 2015 (64) and Inventor 2015 (64) could not load
					our plug-ins under Windows 8.1 (64). 
- Creo 3.0 is supported. 
 
- A beta driver for Apple OS X is available. 
- Some bug-fixes in the beta Linux driver, e. g. the CPU
					load is much smaller now, the installer is enhanced. 
			16 July 2014, Version 2.6.3: 
			
				- GstarCAD from Gstarsoft Co. Ltd. is supported. The plug-in
					is in beta state though, there are still some problems when
					refreshing the screen. 
 
- The wheel shows in the Wheel Function Launcher and
					if moving sliders an acceleration now if moved fast. With
					the parameter "wheelAccelerator" in file
					"C:\Users\<Userid>\SpaceController\daemon.ini" you
					can control the effect or switch it off again. 
- The installer knows in its "silent" mode a new parameter
					"/P=<list of wanted plug-ins>" and the uninstaller a
					new option "/UF=delete". See section 3.1.1 for
					details. 
- The plug-in for Siemens NX is updated, see Readme file there. 
- There is a new function scRegisterCallbackFunction()
					 in the C++ API. The callback function is to be defined
					by the user and called automatically as soon as new data is
					available from the device; it gets the actual device data
					packet in its parameters. It may spare you some thread
					handling needed when using scFetchStdData()
					instead.
				
			16 June 2014, Version 2.6.2: 
			
				- SpaceController "blackline" is supported. 
- Help videos may be installed locally. 
- Autodesk 3ds Max 2015 und 3ds Max Design 2015 are
					supported. 
- The CAD/CAM software Tebis supports SpaceControl devices
					directly now:
					
						- The Universal Plug-in is not necessary any longer
							therefore. 
-  For older Tebis versions you have to enable our
							Universal Plug-in again by deleting line "tebis = tebis
							tebis" in files "siapp_dll.ini" and "daemon.ini". Both
							are located in folder 
							"C:\Users\<Userid>\SpaceController\". 
- The available Tebis functions are integrated into the
							Function Assignment dialog. If you want to see
							these functions in German and not in English delete file
							"tebis.mnu" and reid file "tebis_de.mnu" to
							"tebis.mnu". Both files are located in folder
							"C:\Users\<Userid>\SpaceController\Applications\".
							Do the same with the files "tebis.cfg" and
							"tebis_de.cfg" in folder
							C:\Users\<Userid>\SpaceController\Devices\<SerialNo>\".
							
 
 
- The Universal Plug-in could not transmit data into the
					simulation window of Mastercam X7. 
 
- The AutoCAD plug-in has been reworked and supports all
					move modes and AutoCAD 2015 now. If upgrading from older
					driver versions have a look at the AutoCAD plug-in's Readme
					file, please! You can find it in the Windows Start menu. 
 
- Under Windows the SpaceControl Panel does not
					inspect the Java system property "user.home" any longer to
					get the user's home directory but inspects the environment
					variable "USERPROFILE" as the daemon does. This is changed
					because "user.home" points to a wrong location on some
					network installations due to a Java bug. 
 
			16 January 2014, Version 2.6.1: 
			
				- Some special characters caused problems when sent to the
					device's display. 
 
- The plug-in for Siemens NX is updated to version 2.6.1. 
- The Universal Plug-in is working with Autodesk Revit
					again. 
			21 November 2013, Version 2.6.0: 
			
				- When changing the foreground application it could happen
					that the old foreground application's configuration was
					transfered to the new foreground application's
					configuration. The former configuration was lost then. 
- The driver has not been able to detect applications
					installed on network drives as foreground applications. 
- Installer and uninstaller delivered the error code 1223
					even in case of successful installation/deinstallation; now
					the correct value 0 is returned. 
- The Catia plug-in has failed on some network installations
					to detect Catia's language setting. In consequence Catia's
					menu items could not be read and their assignment to the
					SpaceController's keys has not been possible. 
- Our installer adds some new entries into the PATH
					environment variable. If getting longer then 1024 characters
					the installer wiped out the variable. 
- The device's illumination is switched off after 10 minutes
					of inactivity now. This time can be adjusted with the new
					parameter "timeBeforeSleeping" in the driver's configuration
					file "daemon.ini". 
 
- New compilation with updated development environment. 
- New API functions scGetDaemonPar() and scSetDaemonPar(). 
- New plug-in for PTC Creo 1.0 and 2.0; it is a DLL now and
					does not delete Creo's undo buffer any longer. 
- New plug-in for Siemens NX is available. This is a beta
					version yet. In case you observe non-tolerable bugs you can
					reactivate the former mechanism for using NX (without
					plug-in, no mode detection available therefore):
					
						- Uninstall the plug-in. 
- Open the file
							"C:\Users\<userid>\SpaceController\daemon.ini"
							and remove the line beginning with "NX" in section
							[SUPP_APPLS]. 
- Restart the driver. 
 
 
- Linux driver is available. 
			10 April 2013, Version 2.5.1: 
			
				- The new calculator has delivered wrong results in case of
					percent calculation in combination with the plus and minus
					operators. 
- The plug-in for 3ds Max has not worked with 3ds Max Design
					2013. 
			20 March 2013, Version 2.5.0: 
			
				- A new SpaceControl command "HandleCalculatorNumPad" is
					implemented. It can be assigned to a key or the WFL. In this
					case a little dialog appears to send number characters to
					the foreground application. You can input numbers with your
					mouse in this way. 
- In the same dialog you can find a little calculator.
					Calculation results can be sent to the foreground
					application as well. 
- The wheel understands gestures now: By appropriate moving
					in left and right direction you can trigger functions if
					gesture detection is activated. 
- There are two new events you can assign functions to in
					the Function Assignment dialog: "Cap movement
					started" and "Cap movement stopped" (i. e. "cap
					touched" and "cap released"). 
- In the Function Assignment dialog the check box Send
						Function Only in Case of Cap Changes affects all cap
					makros and events globally. Now you can configure this
					individually for each macro when adding the function Execute
						only in case of cap state change to the macro. You can
					find this function in the drop down list Other Key or
						Function. 
 
- There are 64 free programmable User Functions (macros) now
					instead of the only 18 as used to be. 
 
			14 January 2013, Version 2.4.2: 
			
				- Some bugs concerning the GEN and its illumination are
					fixed. 
- The Wheel Function Launcher contains a function Pause
					now in its function list. It keeps the dialog open and does
					nothing. This enables you to change the settings in the
					dialog even if you have set a very short Autotrigger
						Delay. 
- The default values in the configuration files are slightly
					modified. You can not modify the cap's function by accident
					any longer. 
- The device type data can be copied with Ctrl-C from the
					GUI. 
- The slider dialogs (device functions
					"HandleSensitivityDialog" etc.) did not work reliably
					sometimes when triggered by the WFL. 
- With the new parameter "sendDelay" in the driver's
					configuration file "daemon.ini" you can avoid sending data
					too early to a new foreground application. SpaceClaim
					e. g. likes to crash in this case. 
- All applications may use MNU files now. See the technical notes for details.
					
 
- SolidWorks plug-in is strongly improved. 
 
			13 November 2012, Version 2.4.0: 
			
				- Our new, smaller device GEN is supported. 
 
- Applications using a legacy communication protocol are
					detected now when coming into the foreground. The driver
					asks for enabling the old protocol. 
- The driver can handle several devices concurrently now, a
					"Master" device is not necessary any longer. 
- The driver informs supported applications now when they
					come into the foreground. The applications can react on this
					event and send the mode they are in e. g. (important if
					more then one instance is open). 
- In the driver's configuration file "daemon.ini" some new
					parameters are used:
					
						- maxBytesInRxQueue: 
 If this value is bigger than 0 after each of the
							device's handled data packet the receicve queue is read
							again (without handling the data) until the queue
							contains less bytes than or equal the value says. In
							some applications this mechanism can avoid a time lag in
							movement. Example: The data packet for the cap's
							standard data contains 15 bytes. If you set
							maxBytesInRxQueue to the value 45 the queue can contain
							three data packets at the most after releasing the cap.
 
- sendMode 
 This parameter controls how the SpaceController's data
							is distributed to the applications. The data is sent
							only to the foreground application as before or to all
							connected applications or to the application the
							mousepointer is over.
- singleComPerAppl: 
 "LegacyCom2" applications as Google Earth or
							Pro/ENGINEER connect themself to the driver to get data
							from the device. Pro/ENGINNER does this wrongly several
							times with bad impact to the performance. If this
							parameter is set to "on" the driver accepts only the
							first connection. If using Pro/ENGINEER this parameter
							should be set to "on" therefore.
- blinkPeriod: 
 The GEN's LEDs are blinking while the Wheel Function
								Launcher is waiting on input. Here you can set the
							time (in milliseconds) the LEDs are on and off
							respectively (i. e. the half period).
 
 
- Unused elements are not longer shown in the Wheel Function
					Launcher. 
 
- The plug-in for Autodesk Inventor is improved. See the
					change log there. 
- The plug-ins for Pro/ENGINEER are improved. See the change
					log there. 
- The plug-in for Solid Edge is improved. See the change log
					there. 
- The Universal Plug-in is improved, applications like
					CimatronE are supported now. 
 
- Configuration files for Excel, Word, Outlook, Internet
					Explorer, Firefox, Opera and Acrobat Reader are delivered. 
- Minor bug-fixes. 
			12 September 2012, Version 2.3.2: 
			
				- A plug-in for AutoCAD 2013 is delivered (version 2.4.0
					beta 1). 
- The plug-in for Autodesk Inventor is strongly enhanced,
					see the change log there (version 2.4.0 beta 4). 
- The plug-in for Catia is enhanced, see the change log
					there (version 2.4.0 beta 2). 
- The plug-ins for Pro/ENGINEER are enhanced, see the change
					log there (version 2.4.0 beta 1). 
- The plug-in for Solid Edge is enhanced, see the change log
					there (version 2.4.0 beta 2). 
- The Universal Plug-in is enhanced, see the change log
					there (version 2.4.0 beta 6). 
- The driver is unchanged, only the plug-ins are replaced by
					the versions listed above. 
 
			30 May 2012, Version 2.3.1: 
			
				- The Universal Plug-in is enhanced, applications like
					Alibre Design are supported now. 
- The plug-in for Catia is improved. See the change log
					there. 
 
			19 April 2012, Version 2.3.0: 
			
				- The SpaceControl Panel
					's main dialog is slightly redesigned. 
 
- The most sliders in the SpaceControl
						Panel's main dialog are displaced into the dialog
					Advanced Configuration.
					
 
- New fields ORG, CAM and WFL in the display's status line
					are available. Attention: These fields will be displayed
					only with a firmware from version 2.141.141.130.0 on. Update
					your firmware if necessary. 
 
- There is a new button Video
					 on all dialogs; pressing it opens your Internet
					browser and shows a short video explaining the dialog. 
- The cap's characteristic is changed from quadratic to
					cubic. In the configuration file "daemon.ini" you can choose
					between different cap functions with parameter
					"capCharacteristic"; the value 6 is the one of former
					versions. 
 
- Date and time will be displayed reliably again on the
					device's display. 
- Firmware update reworked. 
- The plug-ins for Solid Edge and Catia are significantly
					improved. See the change log there. 
- Plug-in for AutoCAD 2012 is delivered with the driver. 
 
- After returning from standby or hibernate mode the
					foreground application was not detected by itself and the
					configuration not loaded therefore. 
- While triggering a function with the WFL and nearly
					concurrent changing of the foreground application the
					configuration of the new foreground application could be
					lost. 
- The device functions LoadConfiguration_x can now be
					triggered by the WFL. 
 
- Minor bug-fixes. 
 
			7 December 2011, Version 2.2.2: 
			
				- Converting the configuration files from version 2.0.0 to
					2.2.1 caused a crash. 
			24 November 2011, Version 2.2.1: 
			
				- API functions scConnect()
					 and scSetState()
					 replaced by scConnect2()
					 and scSetState2()
					. See the API
						documentation for details. 
- The built-in cube demo supports all move modes now (object
					mode, camera mode etc., see section Move
						Mode). 
- New device functions ToggleObjectCameraMode
					, ToggleScreenOriginRotation
					, ToggleLockHorizon
					, ToggleHover.
				
- Recorded key sequences may consist of up to 42 key presses
					now. 
- The SpaceController keys may be recorded in macros and can
					be combined in this way. 
- The Display can show the SpaceController's device
					functions in German as well now. 
- If the driver is updated your own settings will be
					preserved now. This works for configuration files from
					driver version 2.0.0 on. 
 
- Autodesk 3ds Max is supported. 
 
- Minor bug-fixes. 
			15 July 2011, Version 2.1.2: 
			
				- The new Wheel Function
						Launcher allows you to trigger functions with the
					silver or grey wheel too. 
- The Advanced
						Configuration dialog allows you to configure the
					device for using it with the right hand. 
 
- If the checkbox Restore
						Mouse Position is activated in the Advanced Configuration
					dialog the mouse pointer's position is restored not only
					when the cap is released, but also when the mouse pointer
					reaches the screen borders. 
- A second instance of an application has not been detected
					as foreground application, the cap data has been sent still
					to the first instance. 
- LEDs and LCD are switched off when the driver is stopped
					or the system goes down into standby or hibernate mode. 
- Moving the cap will stop the screensaver and prevent it to
					be activated. 
 
- Detection of Pro/ENGINEER Wildfire 5 and creo as
					foreground application did not work reliably. 
- The user interface can be switched between English and
					German now. 
 
- New test mode for internal production tests implemented. 
 
			1 February 2011, Version 2.0.0: 
			
				- Driver and all plug-ins are combined in one big
					installation program. 
- Even if some instances of the same application are
					started, only the foreground application of this group will
					get data from the SpaceController. 
- Eventual graphics card driver problems do not prevent the
					SpaceControl Panel
					from starting. 
 
- Internal changes due to a new compiler version. 
			5 October 2010, Version 1.4.3 beta: 
			
				- Displaying the foreground application's name in the
					device's LCD works again. 
- Firmware update routines rewritten. 
- Bug in writing configuration files fixed. 
- The function editor swallowed the next key event after
					pressing the Alt key. 
- When using a German Windows the German user manual is
					opened. 
 
- With most browsers the user manual opens reliably in the
					right section now when pushing the Help button in a dialog; unfortunately
					the Internet Explorer has a bug preventing this. 
 
			23 August 2010, Version 1.4.2: 
			
				- The user manual is available in German now. 
- A configuration file loaded by hand is displayed in the
					LCD now correctly. 
 
- A bug in starting the correct version of the plug-in for
					Pro/ENGINEER is fixed. 
			22 July 2010, Version 1.4.1: 
			
				- The driver is aware of our new AutoCAD plug-in. 
- Minor bug-fixes. 
			20 April 2010, Version 1.4.0: 
			
				- Occasionally the SpaceControl
						Panel was not able to connect to the driver again
					if it was stopped and restarted. 
- German umlauts are allowed now in user function ids. 
- Deleting of the users' configuration folders when
					deinstalling the driver works now also with Windows Vista
					and Windows 7. 
- The device's illumination can be switched off and on by
					pressing the "Ctrl" and "Panel" keys concurrently. 
- The rotation center can be adjusted within the Advanced Settings
					dialog if supported by the CAD application. 
 
- Some further bug-fixes. 
-  Attention: 
 This version is not compatible with plug-ins prior to
						version 1.4.0.
 Older plug-ins must be run
						with drivers <= 1.3.0 beta (note: version 1.3.0 beta is
						an unpublished release).
 Configuration files created with driver versions less than
						1.4.0 can not be loaded by versions 1.4.0 and greater due
						to some new parameters.
 
			15 January 2010, Version 1.2.1: 
			
				- Functions with German umlauts could not be displayed on
					the SpaceController's display, in succession the device was
					a little noncompliant to update its content. 
 
- The SpaceControl Panel
					 closed itself occasionally when the device was
					plugged into the USB socket. 
 Both bugs were built into the software in the course of the
					64 bit modifications and are fixed now.
			19 November 2009, Version 1.2.0: 
			
				- The driver is aware of 64 bit plug-ins now. 
- The process "dwm.exe" is ignored as foreground
					application. This invisible process is casually put into the
					foreground by Autodesk Inventor and caused a heavy bucking
					because the driver loaded another configuration then. 
 
			16 July 2009, Version 1.1.2: 
			
				- Support for SolidEdge added. 
			15 June 2009, Version 1.1.1: 
			
				- Some applications (e. g. Siemens NX ®) were
					unable to execute the user functions recorded with the Function Editor
					described above. It works now. 
- The parameter "rememberLastCfg" in the daemon.ini file did
					not work properly. 
- Autodesk Inventor versions prior to Inventor 2008 will
					work without plug-in if the parameter "allowInventor" in the
					file "daemon.ini" is set to "on" (cap movement only, no mode
					detection, no integration of menu functions into the Key Configuration
					dialog). For Inventor 2009 and later this parameter must be
					set to "off". 
- There is nearly no delay any longer in object movement
					when changing a configuration. 
- Under certain conditions it could happen that sending data
					from the device after changing a configuration stopped,
					because the "Send Delay" parameter in the  Advanced Settings dialog switched
					to 405 ms (= data sending off). This is fixed. 
 
- Minor bug-fixes. 
			5 April 2009, Version 1.1.0: 
			
				- After a power resume it could happen that the driver must
					be restarted to work properly again. This is fixed. 
 
- Minor bug-fixes. 
			17 March 2009, Version 1.0.1: 
			
			
			8 Known Bugs
			
				- If the SpaceControl
						Panel is started from "within" the driver
					(i. e. by double click on the tray icon or by pressing
					the PANEL key on the device) and the driver is stopped and
					restarted again it may happen that the SpaceControl Panel
					and all other applications or plug-ins are not able any
					longer to establish a connection to the driver. The SpaceControl Panel
					must be closed to cure this. 
 To avoid this you can start the SpaceControl Panel with the entry in
					your Windows start menu.
 
- Under certain conditions it may still happen that the SpaceControl Panel's
					sliders and other control elements flicker if the in-built
					cube demo tab is open. The menus are not usable in this
					state. See the entry in the
					troubleshooting section. 
- Awakening from power resume seems not to work reliably in
					all cases. Unfortunately we cannot improve this because the
					driver of the USB chip in our device is responsible for the
					misbehaviour.
 
9 Trademarks
			Autodesk Inventor®
			is a registered trademark of Autodesk, Inc., in the USA and
			other countries 
 
			 Google Earth®
			is a trademark of Google Inc. 
			
Linux® is
			the registered trademark of Linus Torvalds in the U.S. and other
			countries. 
			
Microsoft®,
			
Windows®
			and Internet Explorer
® are registered trademarks of
			Microsoft Corporation in the United States and/or other
			countries. 
			
Pro/ENGINEER®
			is a registered trademark of Parametric Technology Corporation
			or its subsidiaries in the U.S. and in other countries. 
			
Siemens NX®
			is a registered trademark of Siemens Product Lifecycle
			Management Software Inc. or its subsidiaries in the United
			States and in other countries. 
			
Solid Edge ®
			is a trademark or registered trademark of Siemens Product
			Lifecycle Management Software Inc. or its subsidiaries in the
			United States and in other countries. 
			
			
			
				
					
						|   | Author: Friedemann Seebass Copyright © SpaceControl GmbH & Co. KG, Am
							Technologiepark 10, 82229 Seefeld, Germany
 
 |