Alternative to native 3DConnexion Support

This forum is for users to post tips and tricks they have found useful while working with VCarve Pro
Post Reply
jvosburg
Posts: 4
Joined: Mon Aug 26, 2013 11:39 pm
Model of CNC Machine: Shopbot

Alternative to native 3DConnexion Support

Post by jvosburg »

To those using the 3DConnextion Space Mouse in other apps;

Although native support is a low priority for the Vectric team, I've come across a way to add minimal support via the XML profiles. Perhaps someone knowledgeable can extend this starting point. The file below will add Zoom (equivalent to the mouse scroll wheel) to those with the space mouse. Cut and paste with a text editor into a "vcarvepro.xml" file and place into the c:\users\username\Appdata\Roaming\3Dconnexion\3DWare\Cfg directory. You will have to change the AppInfo Executablename from "VCarveProShopBotEdition.exe" to the non Shopbot exe name. Documentation is more than a bit cryptic to me. Some appears in the in the C:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\Cfg directory as XML files by inspection.

Pushing and pulling on the Space mouse will then Zoom in VCarvePro. Better than nothing and surprising useful. I just wish I could get it to Pan.

------------- Start of File next line -----------

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<AppCfg Default="false" xmlns="" CfgFormatVersion="1.1" ThisFileVersion="1.0">
  <AppInfo>
    <Name>VCARVEPRO</Name>
    <ExecutableName>VCarveProShopBotEdition.exe</ExecutableName>
    <Transport>KMJ</Transport>
  </AppInfo>
  <CfgProperties>
    <InheritsFrom>VCARVEPRO</InheritsFrom>
  </CfgProperties>
  <Settings />
  <Devices>
    <Device>
      <Name>Standard 3D Mouse</Name>
      <VendorID>0</VendorID>
      <ProductID>0</ProductID>
      <InheritsFrom>Standard 3D Mouse</InheritsFrom>
      <AxisFilter>Dominant</AxisFilter>
      <Axis>
        <Enabled>true</Enabled>
        <Input>
          <ActionID>HIDMultiAxis_Rx</ActionID>
          <Min>-512</Min>
          <Max>511</Max>
        </Input>
        <Output>
          <ActionID>HIDMouse_Wheel</ActionID>
          <Reversed>false</Reversed>
        </Output>
      </Axis>
    </Device>
  </Devices>
</AppCfg>
----------- End of File previous line ----------

jvosburg
Posts: 4
Joined: Mon Aug 26, 2013 11:39 pm
Model of CNC Machine: Shopbot

Re: Alternative to native 3DConnexion Support

Post by jvosburg »

I finally spent more time with the Configuration file for the 3DConnexion Space Mouse for VCarve and got it working Ok. I have Pan (X&Y) and Zoom (Z) working in 2D. Also have Pan, Zoom, and Rotation working in 3D. It is not bullet proof, I think the Space Mouse inputs can sometimes overwhelm the application (the "Dominant" Axis filter helps). But at least when I reach for the Space mouse in VCarve something useful happens. Ensure the mouse cursor is within the "2D View" or "3D View" windows when Space Mousing.

I've attached a screen shot of of the 3DConnexion control panel that will appear for this configuration when you click the left side button on the Space mouse (Compact in my case). The "VCarveProNew" title lets you know the configuration was picked up.
Under the Speed column, the upper two icons are Pan X&Y,( pushing the mouse base in X&Y). The 3rd icon is Zoom (mouse up and down). The 4th and 5th icons are Rotation (tilting the mouse in X&Y).

To change the VCarvePro.xml Cfg file;
1. Ensure that you have an existing Cfg file for VCarve. It should be at:
C:\Users\"Your Windows user account"\AppData\Roaming\3Dconnexion\3DxWare\Cfg\VCarvePro.xml
2. You may have to Launch VCarvepro.exe, get VCarve window focus, left click the Space mouse and make a change to the default configuration. Exit the 3DConnexion control panel and VCarve.
3. Replace the existing VCarvePro.xml with the attached new cfg file (changing the extension from .txt to .xml).

That's it.

Note that using the 3DConnexion control panel to make changes (reverse Zoom or Speed) will overwrite the configuration file. Sometimes that seems to work fine, sometimes it will overwrite the axis output definitions and the new config stops working. I've found it more reliable to edit the XML directly with Notepad++.

In summary the config file is mapping Space Mouse inputs to Human Interface Device outputs:
SpaceMouse Axis Input to HID Output with modifiers
HIDMultiAxis_X to HIDMouse_X + MiddleMouse
HIDMultiAxis_Y to HIDMouse_Y + MiddleMouse
HIDMultiAxis_Z to HIDMouse_Wheel (reversed)
HIDMultiAxis_Rx to HIDMouse_Y + LeftMouse
HIDMultiAxis_Ry to HIDMouse_X (reversed) + LeftMouse

Enjoy.
Attachments
VCarvePro.txt
Change to .xml
(3.42 KiB) Downloaded 5 times
3DConnexion Control Panel
3DConnexion Control Panel

jvosburg
Posts: 4
Joined: Mon Aug 26, 2013 11:39 pm
Model of CNC Machine: Shopbot

Re: Alternative to native 3DConnexion Support

Post by jvosburg »

Another 3DConnexion Control Panel screen capture. This one with the Axis icon mapping.
Attachments
3DConnexion Control Panel
3DConnexion Control Panel

User avatar
adze_cnc
Vectric Apprentice
Posts: 1488
Joined: Sat Jul 27, 2013 10:08 pm
Model of CNC Machine: AXYZ 4008
Location: Vancouver, BC, Canada

Re: Alternative to native 3DConnexion Support

Post by adze_cnc »

Thanks for this. I'll have a look at it.

One thing I did notice is that the mouse pointer is affected by Space Navigator movement. It also seems that the left mouse button is fired too.

For example: I was panning in the 2D view. The mouse moved out of the 2D area to the left rule. When I moved back a guideline was dragged into the 2D area.

Steven

jvosburg
Posts: 4
Joined: Mon Aug 26, 2013 11:39 pm
Model of CNC Machine: Shopbot

Re: Alternative to native 3DConnexion Support

Post by jvosburg »

Yes. That's my experience too. That is also true in Inkscape and other non native apps I've tried.
I suspect that is because the 3DConnexion driver is mapping the HID functions directly, the OS doesn't know the difference. Native support would be cleaner, but alas.

This isn't full blown support, just to make something useful happen if you're a Space Mouse user anyway and tend to grab the thing. Even though you intellectually know nothing will happen in the unsupported app, the muscle memory will want to use it.

So, the Space Mouse isn't "better" in VCarve, it's just there anyway. I find it better in some other 3D apps.

Post Reply