Tap-In and Tap-Out Onshape Profile with DPI Switch and Axis Lock

I created a profile that allows for all 3D control on the Rotatrix rather than combining mouse or keyboard inputs using toggles on the btn3 and btn1.

There are also Additions for using the 3pos switch for DPI scaling that works in Onshape but is limited elsewhere, and the DPI button to cycle axis lock levels, current settings are visible in the OSD window.

1 Like

onshape_1hand_pan

description: >-
  Onshape profile. Activates whenever Onshape is connected.

  Tap Btn3 to orbit, tap Btn1 to pan.

  Btn2 snaps to the nearest world-aligned view; hold btn4 while orbiting to keep
  the horizon level (turntable lock).

  Auto-enables axis locking in pan mode
triggers:
  - tag:app.onshape
ball_mode: mouse
navigation_mode: orbit
bindings:
  - name: 3D Rotate
    triggers:
      - btn:3
    ball_mode: rotatrix
    axis_map: obj_rotate
    behavior: toggle
    bindings:
      - name: 3D Pan
        triggers:
          - btn:1
        axis_map: obj_translate
        gain: 0.81
        behavior: toggle
        axis_dominance: hard_decouple_snap_axis
        label:
          text: Pan
          mode: replace
      - name: Snap View
        triggers:
          - btn:2
        snap_rotation: world
      - name: Turntable Lock
        triggers:
          - btn:4
        snap_rotation: turntable_nearest
    label:
      text: Rotate
      mode: replace
axis_dominance: soft

3_pos_switch

triggers:
  - os:windows
bindings:
  - name: low
    triggers:
      - sw:1
    gain: 0.25
    label:
      text: LOW_DPI
      mode: append
  - name: medium
    triggers:
      - sw:2
    gain: 1
    label:
      text: MED_DPI
      mode: append
  - name: high
    triggers:
      - sw:3
    gain: 2.21
    label:
      text: HIGH_DPI
      mode: append

side_button

triggers:
  - os:windows
bindings:
  - name: axis_dominance
    triggers:
      - btn:5
    behavior: cycle
    cycle:
      - name: soft
        axis_dominance: soft
        label:
          text: Soft
          mode: append
      - name: hard
        axis_dominance: hard
        label:
          text: Hard
          mode: append
      - name: hard_decouple
        axis_dominance: hard_decouple_snap_axis
        label:
          text: Decouple
          mode: append
      - name: "off"
        axis_dominance: "off"
        label:
          text: "Off"
          mode: append
    cycle_off: false

Awesome, thanks for sharing! Curious what your setup looks like too - right or left hand, do you use it alongside a mouse?

Great idea for the side switch and button btw. Since you have the side button always controlling axis_dominance, does that override the Onshape btn1 Pan setting completely?