Author Topic: Simulate click on toolbar  (Read 11451 times)

0 Members and 1 Guest are viewing this topic.

hmspe

  • Bull Frog
  • Posts: 362
Simulate click on toolbar
« on: November 16, 2015, 03:44:23 PM »
Is there a way to simulate clicking a toolbar button using lisp?

I'm running Bricscad and I have a parent toolbar that has a flyout for different scale factors on one of the parent's buttons.  I have the parent set up to show the last-clicked icon from the flyout, but I can't find a way to "pre-load" the button icon when I load a new drawing so it shows the appropriate scale based on the data in the drawing.  I can manually change the icon on the parent using vla-setbitmaps but that resets the "own icon" setting for the parent button so it is locked to whatever icon is assigned through vla-setbitmaps and the parent button no longer changes based on clicks on the fly-out.  I'm thinking that if there is a way to set the "active" button on the fly-out the associated button on the parent toolbar should follow.

Thanks.
"Science is the belief in the ignorance of experts." - Richard Feynman

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: Simulate click on toolbar
« Reply #1 on: November 17, 2015, 04:21:10 AM »
I don't think a toolbar click can be simulated using Lisp. But it should be possible to use (vla-setbitmaps) to change the parent icon every time one of the flyout buttons is activated.

hmspe

  • Bull Frog
  • Posts: 362
Re: Simulate click on toolbar
« Reply #2 on: November 17, 2015, 08:06:41 AM »
Roy,

Thanks.  That's what I've been doing, but it is not particularly pleasant.  There are 17 buttons on the toolbar, with the flyout being the last.  It takes almost 2 seconds for the toolbar to update most of the time since the whole parent toolbar has to be updated and repainted.  Sometimes it takes much longer, although I haven't been able to figure out why.  It might be because the bitmaps are on the server, similar to the issue with MTEXT with reading fonts from a network drive.  I wouldn't mind having the delay once on startup if I could find a way to reset "own bitmap" on the parent toolbar to no, but I don't see a way to do that, either. 
"Science is the belief in the ignorance of experts." - Richard Feynman

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: Simulate click on toolbar
« Reply #3 on: November 17, 2015, 09:00:51 AM »
Maybe the image type is important. With local 16x16 .bmp files the speed is acceptable I think. Certainly less than half a second.

I am attaching a .zip file that I have used to report a bug to the Bricsys team.

Place all files in the same folder and open a dwg in that folder.
The (c:Test) function will change the first bitmap in the 'Draw' toolbar.

hmspe

  • Bull Frog
  • Posts: 362
Re: Simulate click on toolbar
« Reply #4 on: November 17, 2015, 09:56:03 AM »
Roy,

Thanks for the reply and the testing.  You are seeing what I see.  It is not a "show stopper", but it is irritating to have to wait for the toolbar to redraw, especially since sometimes the delay is closer to 10 seconds.  I haven't been able to track down why the time varies.  There are only 3 Cad stations here and the LAN is gigabit.

Using local bitmaps does appear to be faster than using bitmaps on the server, but changing to local files for bitmaps, blocks, fonts, etc., is not practical because of the work that would be required to keep all the local copies synchronized on all the computers. 

I have filed a report asking if setting "own icon" to 'on' when vla-setbipmaps is run is intended or not and asking if there is a way to reset "own icon".  I'll post here when I hear from Bricsys.
"Science is the belief in the ignorance of experts." - Richard Feynman

GDF

  • Water Moccasin
  • Posts: 2081
Re: Simulate click on toolbar
« Reply #5 on: November 17, 2015, 12:36:59 PM »
This is what I do for both dialog boxes and toolbars:


Code: [Select]
(defun ARCH:Anno$  ()
  (ARCH:ChangeBitmap "ARCH" "Arch Program©" "ANNO" "ARCH_ANNOx")
  (start_image "arch_anno")
  (mapcar 'vector_image ; Color 1
          (list 14 14 14 14 14 13 9 9 9 9 8 8 8 8 8 9 9 9 9 10 6 6 6 7 7 7 8 8 8 12 12 16 16
                16 16 16 16 17 17 17 17 18 13 13 13 14 14 10 11 10)
          (list 18 17 17 16 16 14 14 14 16 17 17 17 17 18 18 18 18 19 19 19 19 19 19 18 18 18
                16 16 16 4 4 16 16 17 17 18 18 18 18 19 19 19 19 19 19 19 18 13 8 13)
          (list 14 14 14 14 14 14 13 9 9 9 9 8 8 8 9 9 9 9 10 10 10 6 7 7 7 8 8 8 12 12 16 16
                16 16 16 16 17 17 17 17 18 18 18 13 14 14 14 13 13 11)
          (list 18 18 17 17 16 16 14 16 17 17 17 17 18 18 18 18 19 19 19 19 19 19 19 19 18 17
                17 16 4 4 16 16 17 17 18 18 18 18 19 19 19 19 19 19 19 19 19 13 13 8)
          (list 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
                1 1 1 1 1 1 1 1 1 1 1)) ;mapcar
  (mapcar 'vector_image ; Color 250
          (list 0 1 1 0 0 0 0 1 1)
          (list 0 1 1 0 0 0 0 1 1)
          (list 1 1 22 24 0 23 0 1 23)
          (list 1 22 1 0 24 0 23 23 1)
          (list 250 250 250 250 250 250 250 250 250)) ;mapcar
  (mapcar 'vector_image ; Color 7
          (list 23 0 1 22 22 0 22 1 0 23 24)
          (list 0 23 22 1 22 24 1 23 24 1 0)
          (list 23 23 22 22 24 1 24 23 24 23 24)
          (list 23 23 22 22 24 22 0 23 24 23 24)
          (list 7 7 7 7 7 7 7 7 7 7 7)) ;mapcar
  (end_image)) ;defun
(defun ARCH:Annox$  ()
  (ARCH:ChangeBitmap "ARCH" "Arch Program©" "ANNO" "ARCH_ANNO")
  (start_image "arch_anno")
  (mapcar 'vector_image ; Color 250
          (list 14 14 14 14 14 13 9 9 9 9 8 8 8 8 8 9 9 9 9 10 6 6 6 7 7 7 8 8 8 12 12 16 16
                16 16 16 16 17 17 17 17 18 13 13 13 14 14 10 11 10 23 0 1 22 22 1 0 23 24)
          (list 18 17 17 16 16 14 14 14 16 17 17 17 17 18 18 18 18 19 19 19 19 19 19 18 18 18
                16 16 16 4 4 16 16 17 17 18 18 18 18 19 19 19 19 19 19 19 18 13 8 13 0 23 22 1
                22 23 24 1 0)
          (list 14 14 14 14 14 14 13 9 9 9 9 8 8 8 9 9 9 9 10 10 10 6 7 7 7 8 8 8 12 12 16 16
                16 16 16 16 17 17 17 17 18 18 18 13 14 14 14 13 13 11 23 23 22 22 24 23 24 23
                24)
          (list 18 18 17 17 16 16 14 16 17 17 17 17 18 18 18 18 19 19 19 19 19 19 19 19 18 17
                17 16 4 4 16 16 17 17 18 18 18 18 19 19 19 19 19 19 19 19 19 13 13 8 23 23 22
                22 24 23 24 23 24)
          (list 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
                250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
                250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250
                250 250)) ;mapcar
  (mapcar 'vector_image ; Color 7
          (list 0 1 1 0 0 0 0 0 1 1 22)
          (list 0 1 1 0 0 0 0 24 1 1 1)
          (list 1 1 22 24 0 23 0 1 1 23 24)
          (list 1 22 1 0 24 0 23 22 23 1 0)
          (list 7 7 7 7 7 7 7 7 7 7 7)) ;mapcar
  (end_image)) ;defun
;;;




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Change Bitmap Button Function ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;from acadx.com
(defun ARCH:ChangeBitmap  (mnuGroup tbrName btnName bitmap)
  (vl-load-com)
  (vla-setbitmaps
    (vla-item
      (vla-item
        (vla-get-toolbars
          (vla-item (vla-get-menugroups (vlax-get-acad-object)) mnuGroup))
        tbrName)
      btnName)
    bitmap
    bitmap)
  (princ))
 ;|
Purpose
Changes the button top for the specified toolbar button
Arguments
The name of the menu group, the name of the toolbar, the name of the toolbar button and the bitmap to use
Example
(ARCH:ChangeBitmap "acad" "dimension" "linear dimension" "arch.bmp")
Notes
If the bitmap is not in the AutoCAD search path, you must specify the full path to file
(ARCH:ChangeBitmap "acad" "dimension" "linear dimension" "arch.bmp")
(ARCH:ChangeBitmap "ARCH" "Arch Program©" "SYMS" (strcat ARCH#IMAF "ARCH_SYMSX.bmp"))
|;
Why is there never enough time to do it right, but always enough time to do it over?
BricsCAD 2020x64 Windows 10x64

ymg

  • Guest
Re: Simulate click on toolbar
« Reply #6 on: November 17, 2015, 01:22:09 PM »
hmspe,

It probably would be possible by shelling to an autohotkey script.

However, it is a bit of a tortuous way.

ymg


MSTG007

  • Gator
  • Posts: 2601
  • I can't remeber what I already asked! I need help!
Re: Simulate click on toolbar
« Reply #7 on: November 18, 2015, 07:34:42 AM »
I would be curious if you could hard code it (script it). I have been working a lot with them lately.
Civil3D 2020

ymg

  • Guest
Re: Simulate click on toolbar
« Reply #8 on: November 18, 2015, 11:43:17 AM »
MSTG007,

Quote
I would be curious if you could hard code it (script it). I have been working a lot with them lately.

Quite busy at the moment, and it's been a while that I've toyed with AHK
but I'll take a look when I have a chance.

ymg

lamarn

  • Swamp Rat
  • Posts: 636
Re: Simulate click on toolbar
« Reply #9 on: November 08, 2016, 04:42:38 PM »
Hi ymg,

I know you are a busy man .. this quit some old tread,
and i wasn't going though all posts on 'toolbar' to find any clue, but..

do you or anyone have a solid sollution for some kind of dynamics toolbar / ribbon / onscreen approach to this question?
I was dusting off my old 'running osnap' function i used to work with. It is quit handy, except the *feedback* part is weak.
According to the physiotherapist i visited the other day it's good to change keyboard / mouse movement more ;-)
So, any idea to follow doktors description and make this code more transparent / better is welcome..

Thanks

*EDIT .. testing Bricscad V17 .. found there just what it should look like.. !! *



Code: [Select]
(Defun set_os_end ()
  (setq getosend (getvar "osmode"))
  (setq getosend_fix (fix (/ getosend 1)))
  (setq getosend_bep (rem getosend_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosend_bep 1)
    (setq os_mode_new (- os_mode_old 1))
    (setq os_mode_new (+ os_mode_old 1))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosend (getvar "osmode"))
  (setq lineosend_fix (fix (/ lineosend 1)))
  (setq lineosend_bep (rem lineosend_fix 2))
  (if (= lineosend_bep 1)
    (prompt "\nEND ON        ")
    (prompt "\nEND OFF       ")
  )
  (princ)
)

(defun set_os_mid ()
  (setq getosmid (getvar "osmode"))
  (setq getosmid_fix (fix (/ getosmid 2)))
  (setq getosmid_bep (rem getosmid_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosmid_bep 1)
    (setq os_mode_new (- os_mode_old 2))
    (setq os_mode_new (+ os_mode_old 2))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosmid (getvar "osmode"))
  (setq lineosmid_fix (fix (/ lineosmid 2)))
  (setq lineosmid_bep (rem lineosmid_fix 2))
  (if (= lineosmid_bep 1)
    (prompt "\nMID ON        ")
    (prompt "\nMID OFF       ")
  )
  (princ)
)

(defun set_os_cen ()
  (setq getoscen (getvar "osmode"))
  (setq getoscen_fix (fix (/ getoscen 4)))
  (setq getoscen_bep (rem getoscen_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getoscen_bep 1)
    (setq os_mode_new (- os_mode_old 4))
    (setq os_mode_new (+ os_mode_old 4))
  )
  (setvar "osmode" os_mode_new)
  (setq lineoscen (getvar "osmode"))
  (setq lineoscen_fix (fix (/ lineoscen 4)))
  (setq lineoscen_bep (rem lineoscen_fix 2))
  (if (= lineoscen_bep 1)
    (prompt "\nCEN ON        ")
    (prompt "\nCEN OFF       ")
  )
  (princ)
)

(defun set_os_nod ()
  (setq getosnod (getvar "osmode"))
  (setq getosnod_fix (fix (/ getosnod 8)))
  (setq getosnod_bep (rem getosnod_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosnod_bep 1)
    (setq os_mode_new (- os_mode_old 8))
    (setq os_mode_new (+ os_mode_old 8))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosnod (getvar "osmode"))
  (setq lineosnod_fix (fix (/ lineosnod 8)))
  (setq lineosnod_bep (rem lineosnod_fix 2))
  (if (= lineosnod_bep 1)
    (prompt "\nNOD ON        ")
    (prompt "\nNOD OFF       ")
  )
  (princ)
)

(defun set_os_qua ()
  (setq getosqua (getvar "osmode"))
  (setq getosqua_fix (fix (/ getosqua 16)))
  (setq getosqua_bep (rem getosqua_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosqua_bep 1)
    (setq os_mode_new (- os_mode_old 16))
    (setq os_mode_new (+ os_mode_old 16))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosqua (getvar "osmode"))
  (setq lineosqua_fix (fix (/ lineosqua 16)))
  (setq lineosqua_bep (rem lineosqua_fix 2))
  (if (= lineosqua_bep 1)
    (prompt "\nQUA ON        ")
    (prompt "\nQUA OFF       ")
  )
  (princ)
)

(defun set_os_int ()
  (setq getosint (getvar "osmode"))
  (setq getosint_fix (fix (/ getosint 32)))
  (setq getosint_bep (rem getosint_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosint_bep 1)
    (setq os_mode_new (- os_mode_old 32))
    (setq os_mode_new (+ os_mode_old 32))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosint (getvar "osmode"))
  (setq lineosint_fix (fix (/ lineosint 32)))
  (setq lineosint_bep (rem lineosint_fix 2))
  (if (= lineosint_bep 1)
    (prompt "\nINT ON        ")
    (prompt "\nINT OFF       ")
  )
  (princ)
)

(defun set_os_ins ()
  (setq getosins (getvar "osmode"))
  (setq getosins_fix (fix (/ getosins 64)))
  (setq getosins_bep (rem getosins_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosins_bep 1)
    (setq os_mode_new (- os_mode_old 64))
    (setq os_mode_new (+ os_mode_old 64))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosins (getvar "osmode"))
  (setq lineosins_fix (fix (/ lineosins 64)))
  (setq lineosins_bep (rem lineosins_fix 2))
  (if (= lineosins_bep 1)
    (prompt "\nINS ON        ")
    (prompt "\nINS OFF       ")
  )
  (princ)
)

(defun set_os_per ()
  (setq getosper (getvar "osmode"))
  (setq getosper_fix (fix (/ getosper 128)))
  (setq getosper_bep (rem getosper_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosper_bep 1)
    (setq os_mode_new (- os_mode_old 128))
    (setq os_mode_new (+ os_mode_old 128))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosper (getvar "osmode"))
  (setq lineosper_fix (fix (/ lineosper 128)))
  (setq lineosper_bep (rem lineosper_fix 2))
  (if (= lineosper_bep 1)
    (prompt "\nPER ON        ")
    (prompt "\nPER OFF       ")
  )
  (princ)
)

(defun set_os_tan ()
  (setq getostan (getvar "osmode"))
  (setq getostan_fix (fix (/ getostan 256)))
  (setq getostan_bep (rem getostan_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getostan_bep 1)
    (setq os_mode_new (- os_mode_old 256))
    (setq os_mode_new (+ os_mode_old 256))
  )
  (setvar "osmode" os_mode_new)
  (setq lineostan (getvar "osmode"))
  (setq lineostan_fix (fix (/ lineostan 256)))
  (setq lineostan_bep (rem lineostan_fix 2))
  (if (= lineostan_bep 1)
    (prompt "\nTAN ON        ")
    (prompt "\nTAN OFF       ")
  )
  (princ)
)

(defun set_os_nea ()
  (setq getosnea (getvar "osmode"))
  (setq getosnea_fix (fix (/ getosnea 512)))
  (setq getosnea_bep (rem getosnea_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosnea_bep 1)
    (setq os_mode_new (- os_mode_old 512))
    (setq os_mode_new (+ os_mode_old 512))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosnea (getvar "osmode"))
  (setq lineosnea_fix (fix (/ lineosnea 512)))
  (setq lineosnea_bep (rem lineosnea_fix 2))
  (if (= lineosnea_bep 1)
    (prompt "\nNEA ON        ")
    (prompt "\nNEA OFF       ")
  )
  (princ)
)

(Defun set_os_gcen ()
  (setq getosgcen (getvar "osmode"))
  (setq getosgcen_fix (fix (/ getosgcen 1024)))
  (setq getosgcen_bep (rem getosgcen_fix 2))
  (setq os_mode_old (getvar "osmode"))
  (if (= getosgcen_bep 1)
    (setq os_mode_new (- os_mode_old 1024))
    (setq os_mode_new (+ os_mode_old 1024))
  )
  (setvar "osmode" os_mode_new)
  (setq lineosgcen (getvar "osmode"))
  (setq lineosgcen_fix (fix (/ lineosgcen 1024)))
  (setq lineosgcen_bep (rem lineosgcen_fix 2))
  (if (= lineosgcen_bep 1)
    (prompt "\nGCEN ON        ")
    (prompt "\nGCEN OFF       ")
  )
  (princ)
)

  (defun set_os_app ()
    (setq getosapp (getvar "osmode"))
    (setq getosapp_fix (fix (/ getosapp 2048)))
    (setq getosapp_bep (rem getosapp_fix 2))
    (setq os_mode_old (getvar "osmode"))
    (if (= getosapp_bep 1)
      (setq os_mode_new (- os_mode_old 2048))
      (setq os_mode_new (+ os_mode_old 2048))
    )
    (setvar "osmode" os_mode_new)
    (setq lineosapp (getvar "osmode"))
    (setq lineosapp_fix (fix (/ lineosapp 2048)))
    (setq lineosapp_bep (rem lineosapp_fix 2))
    (if (= lineosapp_bep 1)
      (prompt "\nAPP ON        ")
      (prompt "\nAPP OFF       ")
    )
    (princ)
  )

  (defun set_os_ext ()
    (setq getosext (getvar "osmode"))
    (setq getosext_fix (fix (/ getosext 4096)))
    (setq getosext_bep (rem getosext_fix 2))
    (setq os_mode_old (getvar "osmode"))
    (if (= getosext_bep 1)
      (setq os_mode_new (- os_mode_old 4096))
      (setq os_mode_new (+ os_mode_old 4096))
    )
    (setvar "osmode" os_mode_new)
    (setq lineosext (getvar "osmode"))
    (setq lineosext_fix (fix (/ lineosext 4096)))
    (setq lineosext_bep (rem lineosext_fix 2))
    (if (= lineosext_bep 1)
      (prompt "\nEXT ON        ")
      (prompt "\nEXT OFF       ")
    )
    (princ)
  )

  (defun set_os_par ()
    (setq getospar (getvar "osmode"))
    (setq getospar_fix (fix (/ getospar 8192)))
    (setq getospar_bep (rem getospar_fix 2))
    (setq os_mode_old (getvar "osmode"))
    (if (= getospar_bep 1)
      (setq os_mode_new (- os_mode_old 8192))
      (setq os_mode_new (+ os_mode_old 8192))
    )
    (setvar "osmode" os_mode_new)
    (setq lineospar (getvar "osmode"))
    (setq lineospar_fix (fix (/ lineospar 8192)))
    (setq lineospar_bep (rem lineospar_fix 2))
    (if (= lineospar_bep 1)
      (prompt "\nPAR ON        ")
      (prompt "\nPAR OFF       ")
    )
    (princ)
  )


(defun set_os_clear ()
 (setvar "osmode" 0)
)





« Last Edit: November 08, 2016, 05:44:49 PM by lamarn »
Design is something you should do with both hands. My 2d hand , my 3d hand ..

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: Simulate click on toolbar
« Reply #10 on: November 09, 2016, 02:45:52 PM »
Hans, your code is indeed somewhat cumbersome and strange, and you probably do not even need Lisp to achieve what you want.

1.
But if you want to use Lisp, something like this will do the trick:
Code: [Select]
(setvar 'osmode (boole 6 (getvar 'osmode) 1))This will toggle the Endpoint osnap.
2.
It is however easier to change the command in the CUI.
If the command is "_endpoint" and the macro is used while a command is active, the Endpoint snap will be set as a temporary override (this is the default in BricsCAD).
If the command is "'_endpoint" (with an apostrophe) the Endpoint snap will be toggled even if a command is active (and this seems to be the behavior you want).
3.
The depressed state of the buttons is controlled by the CUI. See the 'State' line in the code below. I assume that AutoCAD also supports this.
Code: [Select]
<ToolbarButton>
  <Name>Snap to Endpoint</Name>
  <MenuItem>
    <MacroRef MenuMacroID="osnap_endpoint"/>
  </MenuItem>
  <State>$(if,$(=,$(and,$(getvar,OSMODE),0x0001),0),,!.)</State>
</ToolbarButton>

lamarn

  • Swamp Rat
  • Posts: 636
Re: Simulate click on toolbar
« Reply #11 on: November 09, 2016, 03:08:03 PM »
Thanks for your replay Roy,
Will explore your boole and the suggested code for transparancy..
But i think AutoCAD doesn't have a <state> for <toolbar button>.
In stead Autocad users haven '.. The Ribbon'  :thinking: (title for a movie.. :)
Design is something you should do with both hands. My 2d hand , my 3d hand ..

hmspe

  • Bull Frog
  • Posts: 362
Re: Simulate click on toolbar
« Reply #12 on: November 09, 2016, 03:57:58 PM »
The last time I checked Autocad does not support having toolbar buttons appear to be pressed or toggled. 

It is relatively easy to use AUTOHOTKEY to simulate toolbar button presses, although I would probably create a dialog using OpenDCL to replace the toolbar if I was still using Autocad.
"Science is the belief in the ignorance of experts." - Richard Feynman

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: Simulate click on toolbar
« Reply #13 on: November 10, 2016, 05:23:25 AM »
Maybe this can be done in AutoCAD with a SysVar reactor (:vlr-sysVarChanged) and the vla-setbitmaps function.

lamarn

  • Swamp Rat
  • Posts: 636
Re: Simulate click on toolbar
« Reply #14 on: November 10, 2016, 08:29:36 AM »
Wow..  :rip:
Design is something you should do with both hands. My 2d hand , my 3d hand ..