Completed

Alternative rotation mode

We would like to have a new way of rotating the view.
Different from the 2 available in EyeShot (Trackball and Turntable).
Wanting to use EyeShot instead of the previous cad, we would like the user to have as few changes as possible.
We would like a rotation method that is quite common in other cads, like the one in OnShape.

Thanks in advance.

0

Comments

5 comments
Date Votes
  • We would like a rotation method that is quite common in other cads

    All other CAD and software i am using eyeshot can do all their styles. I do not know OnShape but either it's not common rotation at all like you speak or you simply don't know the rotation options. From all 3d engine i know that i used Eyeshot can mimic : SketchUp, Solidworks, NX, Revit, AutoCAD, SolidEdge, Maya, Rhino, 3D Max, Blender, Unity, UE, Ogre, Catia, Pro-E, Keyshot, Cinema 4D, FreeCAD, and Fusion 360.

    You have Trackball or TurnTable with or without invert mouse each. That is 4 modes total and mainly only 2 are ever used in all those application. Try with invert and it's probably what you are looking for

    0
  • Wow how many cads do you use, but maybe you don't understand.
    I mentioned OnShape, but it's the same as PTC Creo, SolidWorks, Fusion 360.
    Ogre 3D and Unity are not cad but Graphics Engines.
    I've already personally shown the developers what I mean, and it's different from the 2 available (Trackball and Turntable).

    0
  • Solidworks works differently than Creo and Fusion. Fusion and Creo use the same rotation as eyeshot by default. Solidworks you just need to invert the zoom.

    0
  • Hello Saverio,

    This workaround should work for your case.

    class MyDesign : Design
    {
    protected override void OnHandleCreated(EventArgs e)
    {
      base.OnHandleCreated(e);
        
      ActiveViewport.Rotate.RotationMode = rotationType.Turntable;
    }

    public override void RotateCamera(int dx, int dy)
    {
           ActiveViewport.Camera.GetFrame(out Point3D camOrg, out Vector3D camX, out Vector3D camY, out Vector3D camZ);

    Vector3D axis;
    double angle;

    axis = camX;
    angle = dy;
    RotateCamera(axis, -(angle / 2.0) * ActiveViewport.Rotate.Speed, false, false);

    axis = camY;
    angle = dx;
    RotateCamera(axis, -(angle / 2.0) * ActiveViewport.Rotate.Speed, false, false);
    }
    }
    0
  • Perfect, that's what we were looking for.
    Thank you!

    0

Please sign in to leave a comment.

Didn't find what you were looking for?

New post