10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
Blind829
Posts: 7
Joined: Tue Dec 30, 2014 12:06 pm

10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Blind829 »

I received a wireless space mouse as a gift and am attempting to get it to work with PC-Dmis V3.7 on a XP box. That software was released in 2005 and is claimed to support space ball/space mouse by importing a scg file that the makers of PC-Dmis created. I'm having trouble getting the software to recognize the mouse movements at all (the mouse works on other software on the computer and PC-Dmis does recognize when the side buttons on the mouse are pushed).

I think my trouble is I have an older version of the PC-Dmis software and a brand new mouse and there hasn't been a scg file created to link to two. When I download/install the driver for the mouse from 3Dconnexion it comes with scg files for PC-Dmis, which I'm guessing would make my mouse work with newer versions of the PC-Dmis software, but they are not working with the version of PC-Dmis that I'm using. I've opened up all scg files that I can get my hands on for PC-Dmis (two supplied by the makers of PC-Dmis and the two from mouse driver download) and haven't been able to make sense of them so far. The only thing I noticed in the executable install file is the version of PC-Dmis I use needs to be non unicode, if that makes sense?

Any help would be greatly appreciated.
Blind829
Posts: 7
Joined: Tue Dec 30, 2014 12:06 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Blind829 »

Okay, I've made a little progress. Instead of messing around with older drivers I jumped right to 3DxWare10 drivers after reading they were more intuitive and in the hopes of editing the XML file for PC-Dmis (pcdlrn.exe).

The commands I traditionally use the navigate the CAD screen on PC-Dmis using a regular mouse and keyboard are as follows...

Rolling the scroll wheel away from me = zoom out
Rolling the scroll wheel toward me = zoom in
Holding down the right mouse button while moving the mouse = 2D pan
Holding down the CTRL key and the right mouse button while moving the mouse = 3D rotate

Can those commands be programmed into my Spacemouse? If so, can anyone provide and help or direction in doing so?
Hypersonic
Posts: 265
Joined: Mon Jul 12, 2010 5:58 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Hypersonic »

For mousewheel
have one of these as input ActionID: HIDMultiAxis_X HIDMultiAxis_Y HIDMultiAxis_Z HIDMultiAxis_Rx HIDMultiAxis_Ry HIDMultiAxis_Rz
then for output ActionID: HIDMouse_Wheel

For each 2Dpan axis
have one of these as input ActionID: HIDMultiAxis_X HIDMultiAxis_Y HIDMultiAxis_Z HIDMultiAxis_Rx HIDMultiAxis_Ry HIDMultiAxis_Rz
then for output ActionID: HIDMouse_X, HIDMouse_Y
with modifier: RightMouse

For each 3Drotate axis
have one of these as input ActionID: HIDMultiAxis_X HIDMultiAxis_Y HIDMultiAxis_Z HIDMultiAxis_Rx HIDMultiAxis_Ry HIDMultiAxis_Rz
then for output ActionID: HIDMouse_X, HIDMouse_Y
with modifier:Control

For example

Code: Select all

<Axis>
 <Input>
  <ActionID>HIDMultiAxis_X</ActionID>
  <Min>-512</Min>
  <Max>511</Max>
 </Input>
 <Output>
  <ActionID>HIDMouse_X</ActionID>
  <Min>-512.00</Min>
  <Max>511.00</Max>
  <Modifiers>
   <Modifier>RightMouse</Modifier>
  </Modifiers>
  <Reversed>False</Reversed>
 </Output>
</Axis>
Blind829
Posts: 7
Joined: Tue Dec 30, 2014 12:06 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Blind829 »

Thanks for the follow up!

What I worked on last night was installing the beta 15 drivers as it has the slick 3DxConfig.exe interface to customize our mice and was able to create an XML file using that. Unfortunately the beta drivers do not support the wireless mouse (that I know of) so I was using a borrowed SpaceNavigator to create/modify the XML file. That XML file is below, it worked as planned with the SpaceNavigator mouse and the beta 15 drivers. I then uninstalled everything and installed the latest drivers for my wireless mouse, and copied the XML file over to the directory. It is not currently working, when I click on the tray icon I get "Exception: Object reference not set to an instance of an object." I'll work on going through it and comparing it to your post above, but if someone could take a quick look at the xml code below and perhaps something stands right out as being wrong? Thanks for your patience, coding is not my forte.

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<AppCfg Default="false" xmlns="">
  <AppInfo>
    <Name>pcdlrn</Name>
    <ExecutableName>pcdlrn.exe</ExecutableName>
    <ApplicationIcon>3Dx.ico</ApplicationIcon>
    <Transport>S80</Transport>
    <Grab>None</Grab>
  </AppInfo>
  <Settings>
    <OverallScale>0.50</OverallScale>
  </Settings>
  <ButtonActions>
    <ButtonAction Type="App">
      <ID>App_PassToApplication</ID>
      <Name>STR_APP_PASSTOAPPLICATION</Name>
    </ButtonAction>
    <ButtonAction Type="App">
      <ID>App_ResetYourView</ID>
      <Name>STR_APP_RESETYOURVIEW</Name>
    </ButtonAction>
    <ButtonAction Type="App">
      <ID>App_ShowYourGUI</ID>
      <Name>STR_APP_SHOWYOURGUI</Name>
    </ButtonAction>
    <ButtonAction Type="App">
      <ID>App_ShowYourPopupMenu</ID>
      <Name>STR_APP_SHOWYOURPOPUPMENU</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_ShowDriverGUI</ID>
      <Name>STR_DRIVER_SHOWDRIVERGUI</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_ShowDriverPopupMenu</ID>
      <Name>STR_DRIVER_SHOWDRIVERPOPUPMENU</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_ToggleTranslations</ID>
      <Name>STR_DRIVER_TOGGLETRANSLATIONS</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_ToggleRotations</ID>
      <Name>STR_DRIVER_TOGGLEROTATIONS</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_ToggleDominantFilter</ID>
      <Name>STR_DRIVER_TOGGLEDOMINANTFILTER</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_TogglePanOnly</ID>
      <Name>STR_DRIVER_TOGGLEPANONLY</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_ToggleZoomOnly</ID>
      <Name>STR_DRIVER_TOGGLEZOOMONLY</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_DecreaseAppScale</ID>
      <Name>STR_DRIVER_DECREASEAPPSCALE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_IncreaseAppScale</ID>
      <Name>STR_DRIVER_INCREASEAPPSCALE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_ResetAppScale</ID>
      <Name>STR_DRIVER_RESETAPPSCALE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_RezeroDevice</ID>
      <Name>STR_DRIVER_REZERODEVICE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>Driver_Toggle_3DxNumPad</ID>
      <Name>STR_DRIVER_TOGGLE_3DXNUMPAD</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_Start_Search</ID>
      <Name>STR_DRIVER_START_SEARCH</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_Start_Mail</ID>
      <Name>STR_DRIVER_START_MAIL</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_Start_Browser</ID>
      <Name>STR_DRIVER_START_BROWSER</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_Start_Skype</ID>
      <Name>STR_DRIVER_START_SKYPE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_Start_MediaPlayer</ID>
      <Name>STR_DRIVER_START_MEDIAPLAYER</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_MediaPlayer_Mute</ID>
      <Name>STR_DRIVER_MEDIAPLAYER_MUTE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_MediaPlayer_DecreaseVolume</ID>
      <Name>STR_DRIVER_MEDIAPLAYER_DECREASEVOLUME</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_MediaPlayer_IncreaseVolume</ID>
      <Name>STR_DRIVER_MEDIAPLAYER_INCREASEVOLUME</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_MediaPlayer_PreviousTrack</ID>
      <Name>STR_DRIVER_MEDIAPLAYER_PREVIOUSTRACK</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_MediaPlayer_Play</ID>
      <Name>STR_DRIVER_MEDIAPLAYER_PLAY</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_MediaPlayer_Pause</ID>
      <Name>STR_DRIVER_MEDIAPLAYER_PAUSE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_MediaPlayer_NextTrack</ID>
      <Name>STR_DRIVER_MEDIAPLAYER_NEXTTRACK</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_Browser_PreviousPage</ID>
      <Name>STR_DRIVER_BROWSER_PREVIOUSPAGE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver_Other">
      <ID>Driver_Browser_NextPage</ID>
      <Name>STR_DRIVER_BROWSER_NEXTPAGE</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>KB_PageUp</ID>
      <Name>STR_KB_PAGEUP</Name>
    </ButtonAction>
    <ButtonAction Type="Driver">
      <ID>KB_PageDown</ID>
      <Name>STR_KB_PAGEDOWN</Name>
    </ButtonAction>
  </ButtonActions>
  <MacroTable />
  <Devices>
    <Device>
      <Name>SpaceNavigator</Name>
      <VendorID>46d</VendorID>
      <ProductID>c626</ProductID>
      <AxisFilter>None</AxisFilter>
      <Axis>
        <Enabled>True</Enabled>
        <Input>
          <ActionID>HIDMultiAxis_Z</ActionID>
          <Min>-512</Min>
          <Max>511</Max>
          <Deadband>100</Deadband>
        </Input>
        <Output>
          <ActionID>HIDMouse_Wheel</ActionID>
          <Scale>0.50</Scale>
        </Output>
      </Axis>
      <Axis>
        <Enabled>True</Enabled>
        <Input>
          <ActionID>HIDMultiAxis_X</ActionID>
          <Min>-512</Min>
          <Max>511</Max>
          <Deadband>100</Deadband>
        </Input>
        <Output>
          <ActionID>HIDMouse_X</ActionID>
          <Scale>0.50</Scale>
          <Modifiers>
            <Modifier>RightMouse</Modifier>
          </Modifiers>
        </Output>
      </Axis>
      <Axis>
        <Enabled>True</Enabled>
        <Input>
          <ActionID>HIDMultiAxis_Y</ActionID>
          <Min>-512</Min>
          <Max>511</Max>
          <Deadband>100</Deadband>
        </Input>
        <Output>
          <ActionID>HIDMouse_Y</ActionID>
          <Scale>0.50</Scale>
          <Modifiers>
            <Modifier>RightMouse</Modifier>
          </Modifiers>
        </Output>
      </Axis>
      <Axis>
        <Enabled>True</Enabled>
        <Input>
          <ActionID>HIDMultiAxis_Rx</ActionID>
          <Min>-512</Min>
          <Max>511</Max>
          <Deadband>100</Deadband>
        </Input>
        <Output>
          <ActionID>HIDMouse_Y</ActionID>
          <Scale>0.50</Scale>
          <Modifiers>
            <Modifier>Control</Modifier>
            <Modifier>RightMouse</Modifier>
          </Modifiers>
        </Output>
      </Axis>
      <Axis>
        <Enabled>True</Enabled>
        <Input>
          <ActionID>HIDMultiAxis_Ry</ActionID>
          <Min>-512</Min>
          <Max>511</Max>
          <Deadband>100</Deadband>
        </Input>
        <Output>
          <ActionID>HIDMouse_X</ActionID>
          <Scale>0.50</Scale>
          <Reversed>False</Reversed>
          <Modifiers>
            <Modifier>Control</Modifier>
            <Modifier>RightMouse</Modifier>
          </Modifiers>
        </Output>
      </Axis>
      <Axis>
        <Enabled>False</Enabled>
        <Input>
          <ActionID>HIDMultiAxis_Rz</ActionID>
          <Min>-512</Min>
          <Max>511</Max>
        </Input>
        <Output>
          <ActionID>HIDMultiAxis_Rz</ActionID>
        </Output>
      </Axis>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button ReadOnly="False">
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Macro_Undo</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>HIDButton_2</ActionID>
          </Input>
          <Output>
            <ActionID>KB_F9</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
    <Device>
      <Name>SpaceNavigator for Notebooks</Name>
      <VendorID>46d</VendorID>
      <ProductID>c628</ProductID>
      <AxisFilter>None</AxisFilter>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button ReadOnly="True">
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverPopupMenu</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
    <Device>
      <Name>SpaceExplorer</Name>
      <VendorID>46d</VendorID>
      <ProductID>c627</ProductID>
      <AxisFilter>None</AxisFilter>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button>
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_Toggle_3DxNumPad</ActionID>
          </Output>
        </Button>
        <Button ReadOnly="True">
          <Input>
            <ActionID>HIDButton_12</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverPopupMenu</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
    <Device>
      <Name>SpaceMouse Pro</Name>
      <VendorID>46d</VendorID>
      <ProductID>c62b</ProductID>
      <AxisFilter>None</AxisFilter>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button ReadOnly="True">
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverPopupMenu</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>HIDButton_13</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_Toggle_3DxNumPad</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
    <Device>
      <Name>SpacePilot</Name>
      <VendorID>46d</VendorID>
      <ProductID>c625</ProductID>
      <AxisFilter>None</AxisFilter>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button>
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_Toggle_3DxNumPad</ActionID>
          </Output>
        </Button>
        <Button ReadOnly="True">
          <Input>
            <ActionID>HIDButton_16</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverPopupMenu</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
    <Device>
      <Name>SpacePilot PRO</Name>
      <VendorID>46d</VendorID>
      <ProductID>c629</ProductID>
      <AxisFilter>None</AxisFilter>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button ReadOnly="True">
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverPopupMenu</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>HIDButton_13</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_Toggle_3DxNumPad</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
    <Device>
      <Name>LIPARI</Name>
      <VendorID>256f</VendorID>
      <ProductID>c62c</ProductID>
      <AxisFilter>None</AxisFilter>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button ReadOnly="True">
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverPopupMenu</ActionID>
          </Output>
        </Button>
        <Button>
          <Input>
            <ActionID>HIDButton_13</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_Toggle_3DxNumPad</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
    <Device>
      <Name>APOLLO</Name>
      <VendorID>256f</VendorID>
      <ProductID>c62d</ProductID>
      <AxisFilter>None</AxisFilter>
      <ButtonBank>
        <Name>Unknown</Name>
        <Button ReadOnly="True">
          <Input>
            <ActionID>HIDButton_1</ActionID>
          </Input>
          <Output>
            <ActionID>Driver_ShowDriverPopupMenu</ActionID>
          </Output>
        </Button>
      </ButtonBank>
    </Device>
  </Devices>
</AppCfg>
Hypersonic
Posts: 265
Joined: Mon Jul 12, 2010 5:58 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Hypersonic »

You could also copy say the JoystickTemplate.xml from
%programfiles%\3Dconnexion\3DxWare\3DxWinCore64\Cfg
to %appdata%\3Dconnexion\3DxWare\Cfg
then rename it.

Change AppCfgTemplate tags to just AppCfg tags. Change default to Default="false". Set <ExecutableName>. This way you know you're starting with a working up-to-date xml file, basically do what the old GUI used to do. Then edit the axis for your controller, testing each change you make along the way. Looking at your posting you might need to change the trasnport tag to S80. I just noticed that 3Drotate uses 2 modifiers, I missed that the first time, but I see you have that in the xml you posted.
Blind829
Posts: 7
Joined: Tue Dec 30, 2014 12:06 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Blind829 »

Thanks for the tips. I'm working through recreating it and I can get the HIDMultiAxix_Z to output the HIDMouse_Wheel just fine. But the commands with the modifiers don't seem to be working correctly. They are working in regards to the HIDMultiAxis_X is outputing the HIDMouse_X but it's not doing it with the right mouse button held down "per say" so the CAD model isn't moving. Can you think of any causes?
Hypersonic
Posts: 265
Joined: Mon Jul 12, 2010 5:58 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Hypersonic »

For 2D pan you should have this within the output tags:

Code: Select all

<Modifiers>
   <Modifier>RightMouse</Modifier>
</Modifiers>
For 3D rotate you should have this within the output tags:

Code: Select all

<Modifiers>
   <Modifier>RightMouse</Modifier>
   <Modifier>Control</Modifier>
</Modifiers>
Do neither of these work? Actually I can't find any modifier examples in %programfiles%\3Dconnexion\3DxWare\3DxWinCore64\Cfg I hope it wasn't deprecated. Perhaps it only works for KMJ transport, but does KMJ transport work with your program?
Blind829
Posts: 7
Joined: Tue Dec 30, 2014 12:06 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Blind829 »

Neither of those work, those are how I have it. I did change the Transport from S80 to KMJ and it doesn't appear that my program recognizes the XML file at all then.
Hypersonic
Posts: 265
Joined: Mon Jul 12, 2010 5:58 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Hypersonic »

Well one thing you can do is verify that the modifiers are still working. For testing purposes change RightMouse to LeftMouse and change executable to notepad.exe and change transport to KMJ. Then open a text file (the xml files are text files, for example) and try it out. You should be able to select text with your 3DMouse if it's working properly. Control and mousemove combo doesn't do anything special in notepad, however.
Blind829
Posts: 7
Joined: Tue Dec 30, 2014 12:06 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Blind829 »

I have not been able to get the modifiers to work in notebook either. I will say that I have very limited code knowledge so I could possibly be doing something wrong. Can anyone else confirm that modifiers are no longer working? If they are not working, is there a work around? Thanks.
Hypersonic
Posts: 265
Joined: Mon Jul 12, 2010 5:58 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Hypersonic »

Apparently modifiers are only for when you use keyboard output, but you're using 2D mouse output. You might be able to do both 2D mouse output with the keyboard control key at the same time. You might also be able to do 2D mouse output with a mouse button at the same time, but I'm not positive about that. I know you can bind 2D mouse buttons to 3D mouse buttons.

I forgot, KMJ isn't for specific apps. It simply tells the OS what device(s) it's acting as. So if your app supports 2D Mice and keyboards then it supports at least the KM part of KMJ.
Hypersonic
Posts: 265
Joined: Mon Jul 12, 2010 5:58 pm

Re: 10 Year Old Software using Spacemouse Wireless (PC-Dmis)

Post by Hypersonic »

Well you can invoke 2D mouse buttons via 3D mouse buttons, or as a keyboard key modifier. However, I don't think you can invoke it any other way, at least not conventionally.

You might be able to create 2 axis tags both with same input source and input range, assuming you can't have 2 types of output within the same axis tag.
-In one have input be 3D mouse axis, output be 2D mouse axis
-In the other invoke an unused keyboard key with a mouse button modifier.

I'm sure you could find an unused keyboard key that does nothing here
http://www.freebsddiary.org/APC/usb_hid_usages.php

I haven't tested any of this though, so I have no idea if it works.
Post Reply