Jim Sculley

Middle-Click with Drag to Rotate Problems

Discussion created by Jim Sculley on Oct 12, 2017
Latest reply on Apr 23, 2020 by Cooper Reif

For as long as I can remember, SW would occasionally behave badly when rotating models with the standard middle-click drag operation.  The entire model would disappear completely, as though the rotation center was way off in space somewhere.


Currently, I'm using SW2016 SP2, and it happened a few times today on one particular assembly model, so I decided to investigate.  The bad behavior appears to be tied in with the function that allows you to rotate a model or assembly around a particular edge or axis.  Under normal conditions, if you middle click and release an edge or axis and then move your mouse away from the selected item, the rotate icon changes into the rotate about axis icon.  You can then middle drag to rotate the model.  If you middle click on an edge or axis and don't release the mouse button, the icon should remain as the rotate icon and things rotate in the normal way.  However, sometimes when you middle click and immediately drag (no release of the button), the icon changes to Rotate about axis and that is when things can go haywire.  I say 'can' because I see three different behaviors:


  • sometimes it rotates as you would expect if you had the normal rotate icon
  • sometimes it rotates about some center or axis near the model but not actually part of the model
  • sometimes the model view flies off into space


Zooming in or out can change the likelihood of the bad behavior.


The assembly model I'm using has a simple sketch visible in a subassembly which is two levels deep.  I can repeatably (but not 100%) make the problem occur when middle clicking in the vicinity of a line in the sketch.  I can't replicate the problem if I open the immediate parent of the subassembly with the sketch, or the subassembly itself.


My guess is that there are two parts of the program getting conflicting information about where the mouse is, and what has (or hasn't) been selected.  These two incongruent bits of information are then combined into 'Rotate the model around that point at infinity'.