.SCG variables

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
madmark
Posts: 12
Joined: Fri Sep 16, 2011 9:31 am
Location: PNW
Contact:

.SCG variables

Post by madmark »

I have a SpaceNavigator running on XP.
Driver version 6.12.1, Firmware 3.18.

Updating the drivers is not an option since the large corporation I work for has that locked down hard, so don't even suggest that.

(No 3DxWare 10 for me! It takes years for the corp to eval new versions)

What I need to troubleshoot for myself others in my group is a good definition of all the variables contained within a configuration (.SCG) file.

Is there a resource at 3DConnexion that can provide this info?

I've only found rare tidbits of info in the forums, but nothing that provides the whole picture.
I'm perfectly OK with complex, in-depth definitions that are heavy on the math. I deal with that on a daily basis anyway.
Barbara
Posts: 534
Joined: Fri May 14, 2010 11:11 am

.SCG variables

Post by Barbara »

Hello madmark -

There are only a few things you can change using the .scg files. That is the reason jwick asked here what it is you would like to do.

The .scg files don't have the ability to allow our devices to work in applications that do not recognize 3d devices. The released version of the driver works with applications that have 3d device recognition built into them and with applications that have add-ins providing 3D navigation.

Updating the driver will only add the ability to work with a newer version of an application that has a 3Dconnexion add-in - for instance SolidWorks 2012 or Maya 2012.

Only 3DxWare 10 works with other applications.It is an entirely different piece of software that provides the ability for our devices to emulate a keyboard, joystick or 2D mouse. The .scg variables are not able to add that kind of functionality.

If you are working with an application that makes use of our devices, which behavior do you want to change with an .scg file?
-----------------
Barbara
madmark
Posts: 12
Joined: Fri Sep 16, 2011 9:31 am
Location: PNW
Contact:

Post by madmark »

Howdy Barbara,

For other apps, I'm using 3DxOffice v3.0.10 and it's doing ok in allowing use of the other apps with my spacenavigator. Unfortunately, at apparently random times, the gain settings seem change, and values are re-written in the .scg file. I realize it's unsupported, but I'd like to gather as much info so I can troubleshoot.

For example, under the .scg file which is called when acrobat reader is used
EXECUTABLES = { "ACRORD32.EXE" }

under the spacenavigator section,

I found the null regions block values will get changed and produce unusable scrolling.

Normal settings:
; Null Regions. { NegMax, NegMin, PosMin, PosMax }
NULL_REGION_1_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_2_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_3_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_4_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_5_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_6_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_BUTTON_CURVE_DFLT = { -1.00, 0.00, 0.00, 1.00 }

NULL_REGION_1_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_2_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_3_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_4_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_5_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_6_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_BUTTON_CURVE_USER = { -1.00, 0.00, 0.00, 1.00 }

When there is a problem the values are:
NULL_REGION_2_DFLT = { -1.00, -0.35, 0.35, 1.00 }
NULL_REGION_2_USER = { -1.00, -0.35, 0.35, 1.00 }

Only when I shut down the driver, manually reset these values and restart the driver, will the behavior be restored to normal.

The other issue that happens is that in all of my applications, even the supported ones (Catia), the behavior, during translation of the controller, the response in the program is in the direction desired then reverses itself at some threshold, and moves at maximum rate in either the same or opposite direction. Other times a translation of the controller produces a bouncing motion.

Strangely, the only application I have that doesn't have this problem is the one that does not require your drivers to use the controller. It only gets flaky, and only lately, when your driver is running. It is an internal written app. The flaky behavior is affecting everything else, even catia, even if the internal app has never been started after a re-boot.

What I am asking for is definitions for all of the variables in a .scg file so I can troubleshoot this myself.
I need to know what are valid variable values and what they do, so I can find something that might match what I'm seeing.
Perhaps there are issues with your driver switching between apps as they switch focus. I don't know.

I didn't have a chance to reply to jwick last fall, since I got dropped into another job with a greater focus on computer time. Now that I know all the tools I must use daily, I need to make this work right, and figure a way to make sure my settings don't change on me on a random basis.

Another question. On the 3Dconnexion Properties UI, under the device configuration tab, what exactly does the calibrate button do?

And finally, is there an app or method where I can see the XYZRUV values actually reported by the device to find out whether there is a hardware issue? Maybe something that can plot a chart to catch spurious values.
madmark
Posts: 12
Joined: Fri Sep 16, 2011 9:31 am
Location: PNW
Contact:

Post by madmark »

Howdy Barbara,

For other apps, I'm using 3DxOffice v3.0.10 and it's doing ok in allowing use of the other apps with my spacenavigator. Unfortunately, at apparently random times, the gain settings seem change, and values are re-written in the .scg file. I realize it's unsupported, but I'd like to gather as much info so I can troubleshoot.

For example, under the .scg file which is called when acrobat reader is used
EXECUTABLES = { "ACRORD32.EXE" }

under the spacenavigator section,

I found the null regions block values will get changed and produce unusable scrolling.

Normal settings:
; Null Regions. { NegMax, NegMin, PosMin, PosMax }
NULL_REGION_1_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_2_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_3_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_4_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_5_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_6_DFLT = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_BUTTON_CURVE_DFLT = { -1.00, 0.00, 0.00, 1.00 }

NULL_REGION_1_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_2_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_3_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_4_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_5_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_6_USER = { -1.00, 0.00, 0.00, 1.00 }
NULL_REGION_BUTTON_CURVE_USER = { -1.00, 0.00, 0.00, 1.00 }

When there is a problem the values are:
NULL_REGION_2_DFLT = { -1.00, -0.35, 0.35, 1.00 }
NULL_REGION_2_USER = { -1.00, -0.35, 0.35, 1.00 }

Only when I shut down the driver, manually reset these values and restart the driver, will the behavior be restored to normal.

The other issue that happens is that in all of my applications, even the supported ones (Catia), the behavior, during translation of the controller, the response in the program is in the direction desired then reverses itself at some threshold, and moves at maximum rate in either the same or opposite direction. Other times a translation of the controller produces a bouncing motion.

Strangely, the only application I have that doesn't have this problem is the one that does not require your drivers to use the controller. It only gets flaky, and only lately, when your driver is running. It is an internal written app. The flaky behavior is affecting everything else, even catia, even if the internal app has never been started after a re-boot.

What I am asking for is definitions for all of the variables in a .scg file so I can troubleshoot this myself.
I need to know what are valid variable values and what they do, so I can find something that might match what I'm seeing.
Perhaps there are issues with your driver switching between apps as they switch focus. I don't know.

I didn't have a chance to reply to jwick last fall, since I got dropped into another job with a greater focus on computer time. Now that I know all the tools I must use daily, I need to make this work right, and figure a way to make sure my settings don't change on me on a random basis.

Another question. On the 3Dconnexion Properties UI, under the device configuration tab, what exactly does the calibrate button do?

And finally, is there an app or method where I can see the XYZRUV values actually reported by the device to find out whether there is a hardware issue? Maybe something that can plot a chart to catch spurious values.
jwick
Moderator
Moderator
Posts: 3455
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Post by jwick »

Hi madmark,

Is there any chance we could move you to the 3DxWare 10 beta? It has support for the office apps, actually, any application. You can define the support yourself. It is the code base we are working on, so we can address issues easier.

It may not be possible if you have to have a sysadmin do it, since it is in beta. It sounds like you have more control over your environment than other users at xxxxxx.

Jim Wick
3Dx Software Development
madmark
Posts: 12
Joined: Fri Sep 16, 2011 9:31 am
Location: PNW
Contact:

Beta not an option

Post by madmark »

Sorry, as much as I would love to make the jump, 3DxWare 10 beta is not an option.
I only have more control since I've requested what little I have. Unfortunately I've hit a wall there.

A good list of .scg file variable definitions would be the biggest help (and my only option) at this point.
jwick
Moderator
Moderator
Posts: 3455
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Post by jwick »

madmark,

The NULL_REGION values are used by 3DxOffice to make a region of the movement dead. In this case, 3DxOffice tells the driver to make 35% of the range in both the positive and negative directions dead. 0 is the center position, .35 is 35% of the way along the positive direction, 1.0 is the max value in the positive direction. This was probalby to eliminate some accidental movement along that axis. That is, the user has to overcome a threshold before something happens along that axis. The _USER_ values are the only ones used. When you press "restore defaults" in the GUI, the _DFLT_ values are copied to the _USER_ values. I assume these changes are limited to applications supported by 3DxOffice.

The jumping, reversing, bouncing sound like unhandled overflow values to me. I wouldn't expect overflow like that to happen with scale values in the "normal range". That is, with scale values set via the GUI. I'd hope we would have caught something like that. If you edited the scg files yourself, I could see that we might not catch that, but we really should have also caught those anyway.

I recall reports of that sort of thing many years ago. What version of the driver are you running?

The scaling values are: TUNING_SCALARS (one for each DOF, Tx, Ty, Tz, Rx, Ry, Rz) and SENS_BEG_USER (one for each DOF, Tx, Ty, Tz, Rx, Ry, Rz, Overall). The data that comes in from the device is multiplied by these values sort of like this:

new.Tx = device.Tx * SENS_BEG_USER.Tx * SENS_BEG_USER.Overall * TUNING_SCALAR.Tx/500;

Where SENS_BEG_USER.Tx is set by the individual axis slider in the GUI, SENS_BEG_USER.Overall is set by the overall application slider and TUNING_SCALAR is only set manuall by us when we create the scg file.
A value out of the expected range in the scg file could dramatically change the output.

Did you create your own scg files or edit them manually?

The first thing to do is to turn on logging. If you have an old 3DxWare version, that is probably in the menu bar somewhere. The 3DxWare.log file (under %APPDATA% will tell you (us) a lot about what is going on.

The calibrate button causes the device to use its current center as its rest position. Normally you would invoke this if the device is drifting when no one is touching it. It would then assign its current position to the be "no report" position.

If you don't have the 3DxTest program, you can get it from the beta, or I can email it to you. It prints out the data from the device (after all that scaling), if you are using identical values in your scg file. You can also download the HIDTest program from our ftp-us site, which will print the raw data from the device even without the driver running. In fact, it will print out the raw data even if the driver is running and sending data to another application. Perhaps that might help. This would be the raw data the driver is reading, then scaling, then sending on to the app.

Jim
Post Reply