This Cura plugin allows to use a 3Dconnexion space mouse to rotate and pan the camera in Cura.
The plugin should work on Mac OSX, Linux, and Windows. I successfully tested it on
each running Cura 4.9.0.
If desired I could also provide libs for ARM architectures such as used by the Raspberry Pi B, 2B, and 3B.
Extensions
→Space Mouse Tool
and click on Toggle free/constrained orbit
.center selected model
is activated in Cura the camera will rotate around that model.Top
, Right
, Front
buttons of the space mouse work as expected, i.e. they move the camera to top, right, or front view, respectively.Shift
either on the space mouse (if it has such a key) or on the keyboard while hitting Top
, Right
, or Front
, the corresponding other side is shown, i.e. the camera moves to bottom, left or rear view.Rot CW
button of the space mouse works as expected, i.e. it rotates the space clockwise around the view axis by 90 degrees.Shift
on the space mouse or on the keyboard will cause the camera to rotate counterclockwise around that axis by 90 degrees.Fit
button while one or multiple models are selected will translate/zoom the camera in such a way that those objects are centered and completely visible in the viewport (there is still a little bug here, as the top banner of Cura overlaps the viewport and thus the selected models, I will fix this when I have the time).Shift
, Ctrl
, and Alt
work as expected (on Linux; on OSX and Windows you can just map them on the corresponding keyboard keys using the 3DConnexion configuration tool), i.e. they send the appropriate keyboard signal to Cura. I'm not aware of any place where the Esc key is used in Cura, but if there is one enlighten me, and I will try to also add it.Print settings
You need to have the 3Dconnexion drivers installed and running to use the plugin. Those can be found on their website.
You need to have the spacenavd daemon installed and running to use the plugin. On Ubuntu, e.g., you can install it using aptget via the command
sudo apt install spacenavd
Help -> Show Configuration Folder
. This will open the folder holding your personal Cura configurations and plugins.plugins
folder inside the folder found in 2.Use the configuration tool provided with the 3Dconnexion Driver. It can be found in the System Preferences under the 3Dconnexion entry. Select Ultimaker Cura in the drop or use Add Application...
to add it if it is not listed yet.
Use the configuration tool provided with the 3Dconnexion Driver. It can be found in the Start Menu under 3Dconnexion -> 3Dconnexion Properties
. Note that you need to have Cura open in the background in order for the configuration tool to recognize the app for which you want to customize the space mouse.
You can use the graphical tool provided here to customize the behavior of your space mouse.
--without-pymalloc
flag during configuration.sudo apt install libspnav-dev
plugins
folder of your Cura configuration directory as explained above.python3.10 setup.py build
to build the library. Make sure to use the python version without pymalloc.
setup.py
and check that the include and link paths are set correctly for your system.The c++ OSX and Windows libraries included in this plugin are linked against the 3Dconnexion client and 3Dconnexion SDK libraries, respectively.
3D input device development tools and related technology are provided under license from 3Dconnexion. (c) 3Dconnexion 1992 - 2016. All rights reserved.
The c++ linux library included in this plugin is linked against the libspnav library maintained by John Tsiombikas (nuclear@member.fsf.org) The libspnav library is licensed under the modified (3-clause) BSD license:
Copyright (C) 2007-2018 John Tsiombikas nuclear@member.fsf.org
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.