UI annoyance: Inconsistencies in the functions of the Esc key

Hi there,

System Info

Rhino 7 SR37 2024-1-4 (Rhino 7, 7.37.24004.15001, Git hash:master @ e428f0ecb09d755f844c48e5098aba5f8baf55fa)
License type: Educational, build 2024-01-04
License details: Cloud Zoo

Windows 11 (10.0.22621 SR0.0) or greater (Physical RAM: 16Gb)

Computer platform: LAPTOP - Plugged in [100% battery remaining]

Hybrid graphics configuration.
Primary display: Intel(R) UHD Graphics (Intel) Memory: 1GB, Driver date: 7-8-2020 (M-D-Y).
> Integrated graphics device with 3 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
Primary OpenGL: NVIDIA GeForce RTX 3070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 12-6-2023 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 546.33
> Integrated accelerated graphics device with 4 adapter port(s)
- Secondary monitor is laptop’s integrated screen or built-in port

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 8x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 12-6-2023
Driver Version: 31.0.15.4633
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Rhino plugins that do not ship with Rhino
C:\Program Files\Cyberstrak\R7\CS_ModelingPlugIn.rhp “Cyberstrak Modeling PlugIn”
C:\Users\Anto\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\Global-Edge-Continuity\0.9.9.6\GEC.rhp “Global-Edge-Continuity” 0.9.9.6
C:\Users\Anto\OneDrive - University of the Arts London\Learning\3D\Rhino\Program Files\ExtendSurfaceEdge.rhp “ExtendSurfaceEdge” 1.0.0.0
C:\Users\Anto\AppData\Roaming\McNeel\Rhinoceros\7.0\Plug-ins\Bella (813de3fb-18eb-405f-bfcd-b0b4d3da91fb)\23.6.0.0\bella_rhino.rhp “Bella” 23.6.0.0
C:\Users\Anto\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\CommandTracker\7.0.8201.28462\CommandTracker.rhp “CommandTracker” 7.0.8201.28462
C:\Users\Anto\AppData\Roaming\McNeel\Rhinoceros\7.0\Plug-ins\KeyShot12RhinoPlugin (78243fe3-17a0-4865-b713-88b4c224c48c)\1.3.0.0\KeyShot2023RhinoPlugin\Rhino 7\KeyShot2023RhinoPlugin.rhp “KeyShot12RhinoPlugin” 1.0.0.0
C:\Users\Anto\OneDrive - University of the Arts London\Learning\3D\Rhino\Program Files\bin\SetTargetToCursor.rhp “SetTargetToCursor” 0.1.8800.1714
C:\Users\Anto\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\DiscordPresence\1.0.0.2\DiscordPresence.rhp “DiscordPresence” 1.0.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 7\Plug-ins\SolidTools.rhp “SolidTools”
C:\Program Files\Rhino 7\Plug-ins\Commands.rhp “Commands” 7.37.24004.15001
C:\Program Files\Rhino 7\Plug-ins\WebBrowser.rhp “WebBrowser”
C:\Program Files\Rhino 7\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 7\Plug-ins\RhinoScript.rhp “RhinoScript”
C:\Program Files\Rhino 7\Plug-ins\IdleProcessor.rhp “IdleProcessor”
C:\Program Files\Rhino 7\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.37.24004.15001
C:\Program Files\Rhino 7\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.37.24004.15001
C:\Program Files\Rhino 7\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Users\Anto\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\PanelingTools\2021.3.2.446\PanelingTools.rhp “PanelingTools”
C:\Program Files\Rhino 7\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 7\Plug-ins\Alerter.rhp “Alerter”
C:\Program Files\Rhino 7\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 7.37.24004.15001
C:\Program Files\Rhino 7\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.37.24004.15001
C:\Program Files\Rhino 7\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.37.24004.15001
C:\Program Files\Rhino 7\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 7\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 7\Plug-ins\Calc.rhp “Calc”

I’ve come across a small UX bug that is a little annoying, but that I think leads to the impression that certain features need more testing before release. In this case, it’s the seeming lack of consistency in the Esc key’s behaviour across Rhino.

Gustavo’s comment in another thread comes to mind:

The annoyance is this: it seems more intuitive to me that hitting the Esc key would be like disengaging with the currently selected UI interaction and going ‘back’ or ‘up’ a hierarchy level (if that makes sense), or for dismissing a dialog box. Perhaps I am mistaken in this understanding, so that could be on me, however if one can agree that this isn’t an unreasonable mental model then I feel that the Esc key could have a better implementation in Rhino.

For example:

  1. Run _Sweep2
  2. (Assuming one is using the English localization) Hit ‘C’ for ChainEdges to select a chain for the first edge
  3. Select a chain of edges (highlighted in orange)
  4. The chain stops on its own, and now I want to select the 2nd set of edges, so I right click.
  5. I hit C again, expecting that I had to specify ChainEdges again before picking the second rail. Perhaps this assumption is mistaken: I don’t look at the command line much anymore as I have my most common tools muscle-memorized at this point, and I haven’t used Sweep2 in a while.
  6. Hitting C selected the ChainContinuity option, as the command automatically assumed the second rail would also be a selection of chained edges as well. This caused the ChainContinuity option selection to show up:
    image
    Perhaps this is another mistake on my part, but I then hit Esc thinking that the command would go back one command hierarchy level. This way, I wouldn’t have to think about which option I had selected or move my mouse to reselect Tangency. I now know that right-clicking would just proceed with the previously selected option which is in my case, tangency. However, doing this feels like going “forward” a step which implies decision-making, rather than going back one step which implies relying on a previously made decision.
  7. I hit Esc, assuming that it would bring me back a step: Select segment for second rail Instead, it cancelled the whole command and I got somewhat annoyed at the quick succession of experiencing two things I thought I had known about using Rhino.

My takeaway from this series of events would be that commands with multiple steps (like Sweep2) default to the selection of the first step, and that Esc is like a ‘panic’ button in that it basically resets the command line to empty… however this logic with the Esc button doesn’t apply after pressing ‘Add slash’ once the Sweep2 dialog pops up. After hitting the button, the dialog disappears, but when pressing Escape, instead of Rhino cancelling the Sweep2 command in its entirety, the dialog pops back up again. I think it’s this behaviour that caused me to expect that Escape isn’t a UI equivalent to an Emergency stop button, but rather, a ‘back’ button.

This isn’t exactly supposed to be a bug report, but moreso, me putting my experience out there to see if others have noticed similar inconsistencies or quirks across Rhino’s UI.

I love how much this program is like a Swiss-army-knife for CAD, but it’s little things like this that make it feel a bit disjointed.

Vince

1 Like