mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-13 19:56:00 +08:00
![google-labs-jules[bot]](/assets/img/avatar_default.png)
This change introduces support for 3Dconnexion SpaceMouse devices on Linux within the 3DConnexion plugin. Key changes: - Added `LinuxSpacenavClient.py`, which uses `ctypes` to interface with the system-provided `libspnav.so.0` library. This client handles opening a connection to the `spacenavd` daemon and polling for motion and button events. - Modified `NavlibClient.py` to include platform detection. On Linux, it now uses `LinuxSpacenavClient` for device input. On Windows and macOS, it continues to use the existing `pynavlib`. - Updated the plugin initialization in `plugins/3DConnexion/__init__.py` to gracefully handle cases where `libspnav.so.0` might be missing or `spacenavd` is not accessible on Linux, disabling the plugin in such scenarios. - The core camera manipulation logic in `NavlibClient.py` has been adapted to accept transformation matrices from either `pynavlib` or the new Linux client, aiming for consistent behavior. - Placeholder adaptations for some `pynavlib`-specific methods have been added for the Linux path, returning `None` or basic Python types where `pynav.*` types were previously used. This implementation relies on you having `spacenavd` (version 0.6 or newer recommended) installed and running, along with `libspnav0` (or equivalent). Testing for this feature is currently manual, involving checking device response for camera manipulation (pan, zoom, rotate) within Cura on a Linux environment with a configured SpaceMouse. Output:
…
Ultimaker Cura
State-of-the-art slicer app to prepare
your 3D models for your 3D printer.
With hundreds of settings & community-managed print profiles,
Ultimaker Cura is sure to lead your next project to a success.
Contribute Printer Profiles? -- Please look here first.
Contribute Translations? -- Please look here first.
Description
Languages
Python
71.3%
QML
25.6%
GLSL
1.4%
Rich Text Format
0.9%
Jinja
0.5%
Other
0.1%