跳转到内容

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 映射到另一个轴时,在透视视图中,您应该会看到眩晕效果。

大多数用户使用缩放,因为它在正交视图和透视视图中都有效。


在你想知道为什么你可以将两个轴映射到缩放之前:游戏控制器有两个模拟肩部触发器。

是的,这几乎没有实际用途,但输入驱动程序旨在为用户提供尽可能多的控制权。

华夏公益教科书