Skip navigation

A few weeks ago, i was deep into Solid Edge 3D CAD modeling for some mechanical stuff. our CAD computers are equipped with 3DConnexion 3D mice. this 6-DOF input device makes navigating in CAD software a pleasure. you can rotate and translate the objects on the screen while using a normal mouse in your other hand to manipulate them. anyways, once you get used to this, you cannot CAD without it. seriously.
now at about the same time i had the pleasure to design some PCBs in CadSoft Eagle. my left hand kept moving the 3D mouse in order to pan and zoom the view, but of course nothing happened. unfortunately, Eagle does not support 3D mice.

yesterday i found some time to do a dirty little hack in order to use my space mouse with Eagle. it took me two hours and somehow works. i spare you the details. just take a glimpse on the video.
this post is not about the actual hack. that’s just a proof of concept.

primarily i’d like to ask you, fellow space mouse and Eagle users, if you ever wished to navigate in eagle using your 3D mouse.
secondly i’ve got a message going out to the people at CadSoft: i like your software very much and it really improved my electronic design skills a lot. thanks indeed for that. but you’d be my all time heroes if you add support for 3D input devices to Eagle in the next release. come on, it’s not that hard. please?

for those of you who really want to know how i did this, here’s the story. first of all, 3DConnexion offers a lot of information, examples and support for people who want to use their input devices in own applications and of course for companies who want to integrate 3D mice into their software. among a developers forum and their SDK download page, developers can download example codes at the 3DConnexion FTP-server (user:examples/pw:examples).

i used a .net example to write a small software that reads the 3D mouse. to interface CadSoft Eagle, i used the WINDOW (@); command bound to a hotkey. this Eagle command centers the view to the mouse cursor. when i move the 3D mouse, my readout software moves the cursor away from the view center (you can see that in the video) and triggers the hotkey. the more i push the mouse, the greater the distance between cursor and view center. this results in a higher panning speed.
zooming unfortunately cannot be done continuous, because it is triggered by hotkeys that zoom in or out a certain amount as the z-axis of the mouse exceeds a threshold.
this is all very dirty, i feel bad about it, do not try this at home, kids. although it somehow works, i have not really tested if it is usable when actually working in Eagle. a problem is that because i use the cursor for navigation, it cannot be used for manipulation at the same time. if you for example want to move a component, grab it with the move command and then use the 3D mouse for navigating, the component is moved too. another point is of course the bad interface between my readout software and Eagle. it is surprisingly fluid, but not comparable to a build in 3D mouse support.
talking about build in support, are you aware that panning and zooming only uses 3DOF of a 6DOF input device? that’s 3 rotational DOF that can be used for example to rotate parts or other awesome features.


  1. Nice Work! and very interesting project.
    I’m definitely interested to try it.
    Is the Eagle CAD zooming algorithm fast enough to handle far moves?
    Do you plan to have a download of your plug-in available, including source code? Is it somehow usable under a GNU/Linux system?

    P.-S. to connect 3DConnexion FTP example site one might use [examples] in plural for both login and password.

    • Tx.
      Like I mentioned in my post, this is just a proof of concept. The only clean way to implement a feature like this is in the source code of Eagle.
      Sure, you could write a readout software like my VB.NET program in Java to run it on a Linux system, but the interface between the readout software and Eagle remains a dirty hack. I would not suggest to use Eagle and a 3D mouse with my solution.
      The best thing you could do is write an email to CadSoft and ask for 3D mouse support.

  2. I’m from a mechanical engineering background and just started with Eagle. I like any program that works with a spacenavigator, so count me in!
    Good stuff, thanks for sharing!

  3. can you give us the code or application for use the navigator with eagle

  4. As long as Cadsoft does not implement a 3d Mouse support, Quick and dirty is the only way to go. Please share your solution.

  5. I solved this issue by using JoyToKey and mapping the 3D mouse to the mouse cursor where simultaneously with the cursor movement the middle mouse button is pressed.
    Moving the knob up and down moves the emulated scroll wheel to zoom in and out.
    Using JoyToKey the other buttons on a spacemouse or spacepilot can easily be remapped to assigned hotkeys in eagle.

    It works like a charm and doesn’t interfere with applications that natively support the 3D mouse.

2 Trackbacks/Pingbacks

  1. By Use a 3D mouse with Eagle CAD - Hack a Day on 12 Oct 2010 at 5:04 pm

    […] made a 3D mouse work with Eagle CAD. He was inspired after using a 3DConnexion device to manipulate the views in a copy of Solid Edge […]

  2. […] made a 3D mouse work with Eagle CAD. He was inspired after using a 3DConnexion device to manipulate the views in a copy of Solid Edge […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: