Hoppa till innehåll
Meny
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

SpaceMouse Python

Publicerat den 2025-03-15

Detta behöver jag skriva ner…

Till min dator har jag en 3Dconnexion SpaceMouse Compact ansluten. Den fungerar klockrent i både Blender, CloudCompare och FreeCAD, men tyvärr inte i QGIS.

Som ett första steg så ville jag prova om jag med Python kunde läsa input från enheten och få in data i QGIS python tolk.

För linux finns det inga drivrutiner för SpaceMouse från 3Dconnexion, men med sudo apt install spacenavd så hämtas och installeras allt som krävs för normal användning.

Att lägga till ”pyspacemouse” med pip install för att också lägga till stöd i python var inte så svårt, men att få rättigheter för vanliga användare att öppna enheten, det var värre.

Jag hittade lösningen i ett forum, och tänkte att det var lika bra att skriva ner det som en artikel på bloggen till nästa gång.

sudo nano /etc/udev/rules.d/99-spacemouse.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c635", MODE="0666", SYMLINK+="spacemouse"

I koden som skrivs in i udev regeln så står det idVendor med ett hexvärde som är 3Dconnexion och idProduct med ett hexvärde som i mitt fall är SpaceMouse Compact. Korrekta hex-värden hittar man om man skriver in lsusb i en terminal. Det går att kontrollera att allt fungerade genom att koppla ur och i enheten och lista vad som finns i katalogen /dev/. Om där finns en ”spacemouse” så har det fungerat.

I QGIS kan jag skriva in några enkla kommandon för att se att det verkar fungera också.

Konsolen är inte gjord för att köra program i. Det finns exempelvis ingen ”stop” knapp. Är man lite oförsiktig så kan man låsa hela QGIS om man kör för mycket loopar (jag lyckades flera gånger). Men detta bådar gott för att exempelvis skapa ett plugin som kan läsa data och koppla dessa till exempelvis canvasrörelser i kartan. Panorera, zooma och rotera i 2D. Pan, tilt och jaw i 3D.

Om och när jag lyckas få till det blir en senare fråga, men det kanske finns andra som tycker att detta skulle vara en intressant utmaning?

4 svar på ”SpaceMouse Python”

  1. Anders Jackson skriver:
    2025-03-19 kl. 13:52

    Om man vill, så kan man även lägga in att när spacemouse kopplas in, så ändras gruppen för enhets-filen till en för distributionen lämplig grupp, som gruppen ”mouse”, ”input” eller liknande. Då kan bara den användare som sitter vid skärmen använda den. Sedan sätter man då rättigheten för enheten till 0660 istället, för ökad säkerhet.

    För att se lämplig rättighet och grupp, gör kommandot ls -l /dev/input/ och se vilka grupper och rättigheter som används i den distribution du använder. Ubuntu säger 0660 och ”input” på min dator. Det går även att titta i de andra rules-filerna för udev hur de gör.

    Man kan även starta ett program när musen kopplas in i datorn och avsluta programmet när musen kopplas ifrån. Det kan vara lämpligt om det behövs ett speciellt program för detta.

    Men intressant. Några frågor.

    – Finns det stöd för någon 3D-mus i QGis?
    – Har du tittat i katalogen /dev/input/by-name för att se om 3d-råttan finns nämnd där?
    – Har du tittar på om det kommer upp någon ny enhetsfil i /dev/input/ när musen kopplas in? Du kan använda följande kommando i en terminal för att se detta: watch ls -l /dev/input/*
    – Har du provat att titta vad som kommer ut ur /dev/input/mice med hjälp av kommandot cat(1) när du använder råttan? Exempelvis: cat /dev/input/mice.
    – Du kan även använda udevadm(8) för att kolla vad som händer med enheter hanterade av udev(7). Exempelvis: sudo udevadm monitor -p -u -s usb
    – Du kan även hitta mer information om en enhet med udevadm(8) som du kan använda i din rules-file för udev. Exempelvis: sudo udevadm info /dev/input/mouse0

    Svara
    1. klakar skriver:
      2025-03-22 kl. 17:00

      – 3D mus i QGIS: Nej, men det finns plugin som använder gamepad för att kontrollera kartan.
      – 3D musen finns i /dev/input/by-id (by-name har jag inte)
      – Ny enhet vid inkoppling: Japp, ”event9” i mitt fall.
      – cat /dev/input/mice påverkas inte av space mouse.

      Svara
  2. Anders Jackson skriver:
    2025-03-19 kl. 13:53

    OT: Går det inte att formatera inmatningen av kommentarerna?

    Svara
  3. denis Empisse skriver:
    2025-03-24 kl. 19:05

    Hi,
    i try to do that !
    Windows version work fine !
    i can’t test on other platform

    https://github.com/pYpA62/SpaceMouse3Dconnexion-Plugin-QGIS
    pYpA62

    Svara

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     Mastodon  

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Daniel Nilsson om QField
  • denis Empisse om SpaceMouse Python
  • klakar om SpaceMouse Python
  • Anders Jackson om Återbesök, WebODM
  • Anders Jackson om SpaceMouse Python

Arkiv

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2025 Geosupportsystem | WordPress-tema av Superbthemes.com