SolveSpace Logo SOLVESPACE -- parametric 2d/3d CAD
Examples
Tutorials
Features
Download
Reference
Technology
Library
Forum
Contact
USER FORUM

(you are viewing a thread; or go back to list of threads)

SpaceMouse? (by Travis Ayres)
Is there a way to be able to use Solvespace with a spacemouse, from 3dconnexion?
Tue Nov 5 2013, 16:27:47
(no subject) (by Jonathan Westhues)
It should just work. Are the drivers installed?
Wed Nov 6 2013, 02:20:52
Works without Problems on my system (by Roland Frank)
Hello.

I am on Windows XP Sp3 32bit.
I use a Spacepilot Pro.
Driver is 3DxWare Release 3.16.2 (Driver version 6.16.1)
The Driver is active (shown in System Tray) and is set to
"any application".
Works perfectly here ...
[ I remembered that I said "custom Install" and ticked some
System Drivers, maybe that's the point ...]

Roland
Wed Nov 6 2013, 12:20:29
Movement speed (by csati)
Where the movement speed can be set?
The movement speed is very fast, it is very difficult to control. Ok, it is a numerical cad, but anyway...

Otherways the fresh compiled SolveSpace works like a charm 'out of the box' on Linux a with a 3DConnexion spacemouse via spacenavd.
Tue Aug 13 2019, 08:04:05
Movement speed - solution (by csati)
Just for the records
a quick and dirty patch

+++ mouse.cpp 2019-08-14 12:57:16.212654405 +0200
@@ -1506,6 +1506,9 @@
}

void GraphicsWindow::SixDofEvent(Platform::SixDofEvent event) {
+// static inputScale;
+// inputScale = 0.08;
+
if(event.type == Platform::SixDofEvent::Type::RELEASE) {
ZoomToFit(/*includingInvisibles=*/false, /*useSelection=*/true);
Invalidate();
@@ -1516,7 +1519,7 @@
Vector out = projRight.Cross(projUp);

// rotation vector is axis of rotation, and its magnitude is angle
- Vector aa = Vector::From(event.rotationX, event.rotationY, event.rotationZ);
+ Vector aa = Vector::From(0.1*event.rotationX, 0.1*event.rotationY, 0.1*event.rotationZ); // mod here
// but it's given with respect to screen projection frame
aa = aa.ScaleOutOfCsys(projRight, projUp, out);
double aam = aa.Magnitude();
@@ -1542,7 +1545,7 @@
// switched groups, then consider that a new action and save an undo
// point.
int64_t now = GetMilliseconds();
- if(now - last6DofTime > 5000 ||
+ if(now - last6DofTime > 5000 || // was 5000 500
last6DofGroup != g->h)
{
SS.UndoRemember();
@@ -1558,9 +1561,9 @@
// x and y components are translation; but z component is scale,
// not translation, or else it would do nothing in a parallel
// projection
- offset = offset.Plus(projRight.ScaledBy(0.01*event.translationX/scale));
- offset = offset.Plus(projUp.ScaledBy(0.01*event.translationY/scale));
- scale *= exp(0.001*event.translationZ);
+ offset = offset.Plus(projRight.ScaledBy(0.1*event.translationX/scale)); // mod here
+ offset = offset.Plus(projUp.ScaledBy(0.1*event.translationY/scale)); // mod here
+ scale *= exp(0.0001*event.translationZ); // mod here: was 0.001

if(aam > 0.0) {
projRight = projRight.RotatedAbout(aa, -aam);
Wed Aug 14 2019, 07:03:40
Post a reply to this comment:
Your Name:
Your Email:
Subject:
(no HTML tags; use plain text, and hit Enter for a line break)
Attached file (if you want, 5 MB max):
© 2008-2022 SolveSpace contributors. Most recent update June 2 2022.