跳轉到內容

OpenSCAD 使用者手冊/輸入裝置

來自華夏公益教科書

[注意: 需要版本 2019.05]


輸入驅動程式允許使用者在 OpenSCAD 中使用遊戲手柄或 3D 滑鼠等裝置。

目前,以下驅動程式正在開發中

  • HIDAPI - 在 MacOS 和 Windows 上使用 - 需要 USB ID / 它也可以在 Linux 上執行,但需要額外的許可權,因此不適合使用者
  • 操縱桿驅動程式 - 使用 Linux 操縱桿裝置(目前固定為 /dev/input/js0)
  • SpaceNav 驅動程式 - 使用 spacenavd 守護程式
  • DBus 驅動程式 - 僅限 Linux / 不適用於實際裝置,而是用於遠端控制
  • QGamepad - 用於跨平臺操縱桿支援 - 這似乎當前需要在 Qt 級別進行一些額外的配置,因此需要更多工作才能使其易於使用

預設軸對映適用於 3D 滑鼠。

如何試用

[編輯 | 編輯原始碼]

輸入驅動程式目前是當前開發快照和每日構建的一部分。

因此,它們可以在以下位置找到:http://www.openscad.org/downloads.html#snapshots

操縱桿和遊戲手柄

[編輯 | 編輯原始碼]

在 Linux 下,您可以選擇使用本機操縱桿驅動程式或跨平臺 QGamepad 驅動程式。建議使用本機操縱桿驅動程式。

在其他平臺上,OpenSCAD 目前僅限於 QGamepad。

操縱桿驅動程式

[編輯 | 編輯原始碼]
在 Linux 下使用本機 Jostick 驅動程式的 XBox 360 控制器示例輸入對映。
注意由於操縱桿磨損導致的死區增加。
軸 5 和 2 是觸發器,它們具有 1 的修整,因為它們的理想值通常是 -1.0,並且對映到縮放。
幾乎任何您的 Linux 計算機識別的控制器都可以使用

JoystickInputDriver 使用裝置 /dev/input/js0

在 Ubuntu Linux 下,您需要包 joystick 來支援操縱桿。

QGamepad 驅動程式

[編輯 | 編輯原始碼]
QGamepad 與 XBox 360 控制器配合良好

QGamepad 可以在 Windows 和 Linux 下使用。

QGamepad 驅動程式對遊戲手柄做出了一些可能不正確的假設。使用 XBox 360 或相容的控制器效果最佳。

其他控制器可能受到 QGamepad 的限制。(例如,無法對映按鈕和/或軸)

QGamepad 將 XBox 360 控制器的方向鍵視為按鈕。

3D 滑鼠

[編輯 | 編輯原始碼]

在 Linux 上,使用 Space Mouse Wireless 的最簡單方法是有趣地透過通常在大多數系統上啟用的操縱桿驅動程式。

Spacenav 也受支援。 http://spacenav.sourceforge.net/ https://wiki.archlinux.org/index.php/3D_Mouse#Open_Source_Drivers

sudo apt-get spacenavd

在 Debian 上

sudo apt install libspnav-dev 

(需要重啟)

要使用 hidapi,您可以以 root 許可權執行 openscad。但是,不建議這樣做,但可能有助於暫時進行故障排除。

更好的方法是弄清楚您的裝置的供應商 ID 和產品 ID,然後新增一個 udev 規則。要弄清楚您的產品的供應商和產品 ID,您可以使用 lusb

lusb 中的相關行可能看起來像這樣

Bus 002 Device 006: ID 046d:c627 Logitech, Inc. 3Dconnexion Space Explorer 3D Mouse

一些提示

  * https://stackoverflow.com/questions/3738173/why-does-pyusb-libusb-require-root-sudo-permissions-on-linux/32022908#32022908

OpenSCAD 使用 HIDAPI 直接與 3D 滑鼠互動。

因此,不需要裝置製造商的驅動程式。如果安裝了裝置製造商的驅動程式,則必須停止該驅動程式,以便 OpenSCAD 可以宣告該裝置。

有不同的方法可以停止驅動程式。在您的開始選單中,您應該有一個 3Dconnexion 資料夾,其中包含“停止驅動程式”。

您也可以嘗試

"C:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\3DxService.exe" -shutdown

3D 滑鼠的無線版本 (3DX-700066) 具有註冊多個 HID 裝置的接收器 - 您可能需要在裝置管理器中停用其中一些(“HID 相容供應商定義裝置”)以使其拾取正確的裝置。

如果您的 3D 滑鼠在透過電纜連線時有效,但在使用無線接收器時無效(並且 OpenSCAD 檢測到 3D 滑鼠,但未檢測到任何輸入),這可能是您遇到的問題。

與其他平臺一樣,您必須完全停用本機 3DConnexion 驅動程式,因為 OpenSCAD 不使用它們。

要啟用 SpaceMouse 的內建驅動程式,請轉到“首選項”→“軸”,開啟 HIDAPI 設定,然後重啟 OpenSCAD。

以下裝置已在 MacOS Mohave 上測試過,並且已知可以在 OpenSCAD 上執行

  • SpaceMouse Compact (USB)
  • SpaceMouse Wireless

可以使用 D-Bus 驅動程式遠端控制 OpenSCAD。這主要針對程式設計師。例如,它可以用於編寫自定義輸入驅動程式。

除錯和測試

[編輯 | 編輯原始碼]

為了進行除錯和測試,可以使用 D-Feet。OpenSCAD 可在會話總線上的 org.openscad.OpenSCAD 找到。

不推薦使用 qdbus,因為它在處理一些較複雜的資料結構時存在問題。

示例

[edit | edit source]

可在 此頁面 中找到 QT/C++ 的示例。

相機系統

[edit | edit source]

請注意,OpenSCAD 的相機行為和系統並非以標準方式執行。透過 DBus,您直接與 OpenSCAD 的相機進行互動。請注意,相機系統以及此介面可能在某些時候被重構。

操作

[edit | edit source]

請注意,透過 dbus 公開的操作主要來自 OpenSCAD 的選單欄。請記住,選單欄可能會在某些時候發生變化,並且與 dbus 驅動程式的相容性並不重要。

常見問題解答

[edit | edit source]

哪個按鈕是哪個?

[edit | edit source]

開啟首選項,然後轉到按鈕選項卡,然後按下要分配的按鈕。相關組合框旁邊的文字將以紅色粗體顯示。

檢視漂移

[edit | edit source]

如果檢視漂移,請重新校準輸入裝置的中立位置和死區。這可以在 OpenSCAD 中或使用作業系統的工具完成。

我的設定儲存在哪裡?

[edit | edit source]

請參見 此頁面

Y+Viewport-rel-translation (VRT) 通道沒有響應輸入

[edit | edit source]

您處於正交檢視中。請將其更改為透視檢視以檢視它的效果。

或者檢視左下角,其中 translate = 發生變化。這不是錯誤,這是一個非常具體的功能。當您將縮放對映到一個軸並將 Y+Viewport-rel-translation 對映到另一個軸時,在透視檢視中,您應該會看到眩暈效果。

大多數使用者使用縮放,因為它在正交檢視和透視檢視中都有效。


在你想知道為什麼你可以將兩個軸對映到縮放之前:遊戲控制器有兩個模擬肩部觸發器。

是的,這幾乎沒有實際用途,但輸入驅動程式旨在為使用者提供儘可能多的控制權。

華夏公益教科書