TheSwamp
Code Red => AutoLISP (Vanilla / Visual) => Topic started by: GDF on February 22, 2020, 02:19:37 PM
Title:
Remove a toolbar
Post by:
GDF
on
February 22, 2020, 02:19:37 PM
How would I remove a toolbar without using a command:
(command "toolbar" "ARCH.Arch2Program©" "hide")
I want it to work thru a reactor...
Code - Auto/Visual Lisp:
[Select]
(
defun
C:RARCH
(
)
(
princ
"
\n
*** ---- Resetting ARCH Menu Pulldown ---- ***"
)
(
cond
(
(
or
(
=
(
nth
0
(
ARCH:Split
(
getvar
"dwgprefix"
)
"
\\
"
)
)
"Z:"
)
(
=
(
substr
(
getvar
'dwgname
)
1
(
-
(
strlen
(
getvar
'dwgname
)
)
5
)
)
"Drawing"
)
)
(
ARCH:NotInDirectory
)
)
(
(
or
(
/=
(
nth
0
(
ARCH:Split
(
getvar
"dwgprefix"
)
"
\\
"
)
)
"Z:"
)
(
/=
(
substr
(
getvar
'dwgname
)
1
(
-
(
strlen
(
getvar
'dwgname
)
)
5
)
)
"Drawing"
)
)
(
ARCH:InDirectory
)
)
)
[
b
]
;;(command "toolbar" "ARCH.Arch2Program©" "hide")[/b]
(
princ
)
)
;;;
(
defun
rarchit
(
calling
-
reactor commandinfo
)
(
C:RARCH
)
(
princ
)
)
(
vlr-docmanager-reactor
(
)
'
(
(
:vlr-documentBecameCurrent
. rarchit
)
)
)
EDIT (John): Added code tags.
Title:
Re: Remove a toolbar
Post by:
GDF
on
February 22, 2020, 02:57:16 PM
Code - Auto/Visual Lisp:
[Select]
(
defun
ax:Toggle
(
mGroup tBarName
/
tbar
)
(
setq
tbar
(
vla-item
(
vla-get-toolbars
(
vla-item
(
vla-get-menugroups
(
vlax-get-acad-object
)
)
mGroup
)
)
tBarName
)
)
(
if
(
=
(
vla-get-visible
tbar
)
:vlax-true
)
(
vla-put-visible
tbar
:vlax-false
)
(
vla-put-visible
tbar
:vlax-true
)
)
(
princ
)
)
(
ax:Toggle
"ARCH"
"Arch2Program©"
)
EDIT (John): Added code tags.
Title:
Re: Remove a toolbar
Post by:
GDF
on
February 22, 2020, 03:22:03 PM
I got this to work:
(defun ax:Toggle-off (mGroup tBarName / tbar)
(setq tbar (vla-item (vla-get-toolbars (vla-item (vla-get-menugroups (vlax-get-acad-object)) mGroup)) tBarName))
(if (= (vla-get-visible tbar) :vlax-true) (vla-put-visible tbar :vlax-false))
(princ))
(defun ax:Toggle-on (mGroup tBarName / tbar)
(setq tbar (vla-item (vla-get-toolbars (vla-item (vla-get-menugroups (vlax-get-acad-object)) mGroup)) tBarName))
(if (= (vla-get-visible tbar) :vlax-false) (vla-put-visible tbar :vlax-true))
(princ))
;;;
(defun C:RARCH ()
(princ "\n*** ---- Resetting ARCH Menu Pulldown ---- ***")
(ARCH:GDFstandard)
(cond
((or (= (nth 0 (ARCH:Split (getvar "dwgprefix") "\\")) "Z:")(= (substr (getvar 'dwgname) 1 (- (strlen (getvar 'dwgname)) 5)) "Drawing"))
(progn (ax:Toggle-off "ARCH" "Arch2Program©")(ARCH:NotInDirectory)))
((or (/= (nth 0 (ARCH:Split (getvar "dwgprefix") "\\")) "Z:")(/= (substr (getvar 'dwgname) 1 (- (strlen (getvar 'dwgname)) 5)) "Drawing"))
(progn (ax:Toggle-on "ARCH" "Arch2Program©")(ARCH:InDirectory))))
(princ))
;;;
(defun rarchit (calling-reactor commandinfo) (C:RARCH) (princ))
(vlr-docmanager-reactor () '((:vlr-documentBecameCurrent . rarchit)))
Title:
Re: Remove a toolbar
Post by:
GDF
on
February 22, 2020, 03:25:30 PM
Well it works in BricsCAD but not AutoCAD.
Title:
Re: Remove a toolbar
Post by:
GDF
on
February 22, 2020, 09:37:59 PM
I found the error, a toolbar command call; which AutoCAD does not allow within a reactor.