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 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.
The display will change its content in other modes,
see 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
21 August 2018, Version 2.9.3
- Since version 2.9.2 the SpaceControl-Panel stores its
configuration file "panel.ini" automatically when the computer
shuts down. Unfortunately this does not work under Linux, the
file can even get corrupted and prevent the panel from
starting the next time. In this case the file is restored from
a backup now.
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
|