The following code inserts a user zoom level into the zoomInfo stack of BLT:
<pre>
proc AddZoomStack { } {
  global g zoomInfo
  set cmd {}
  foreach margin { xaxis yaxis x2axis y2axis } {
    foreach axis [$g $margin use] {
      set min [$g axis cget $axis -min]; set max [$g axis cget $axis -max]
      set c [list $g axis configure $axis -min $min -max $max]
      append cmd "$c\n"
      }
    }
  set zoomInfo($g,stack) [linsert $zoomInfo($g,stack) 0 $cmd]
  }

</pre>

This works under BLT 2.4z on Linux and Windows, fails with
<pre>
   can't read "zoomInfo(.r.gr.c,stack)": no such variable
</pre>
under undroidwish-e5dc71ed9d-linux64 or vanillawish-e5dc71ed9d-linux64