@Anonymous wrote:
...
My idea is to create two buttons on a toolbar with arrows
I would like it to work similarly to Ctrl+Tab / Shift Ctrl+Tab
Maybe even a 'First' & 'Last function (I realise this would need four buttons)
Hi sbanister,
add this four (quickly written and not fully tested) functions to your acaddoc.lsp file, to ensure that are loaded in every opened dwg.
(vl-load-com)
(defun nextdwg (/ docs i index n)
(or acad* (setq acad* (vlax-get-acad-object)))
(or acdoc (setq acdoc (vla-get-activedocument acad*)))
(or doc (setq doc (vla-get-name acdoc)))
(setq docs (vla-get-documents acad*))
(setq n (vla-get-count docs))
(if (> n 1)
(progn
(setq i 0)
(repeat n
(if (= (vla-get-name (vla-item docs i)) doc)
(setq index i)
)
(setq i (1+ i))
)
(if (<= (1+ index) (1- n))
(vla-activate (vla-item docs (1+ index)))
(vla-activate (vla-item docs 0))
)
)
)
(princ)
)
(defun prevdwg (/ docs i index n)
(or acad* (setq acad* (vlax-get-acad-object)))
(or acdoc (setq acdoc (vla-get-activedocument acad*)))
(or doc (setq doc (vla-get-name acdoc)))
(setq docs (vla-get-documents acad*))
(setq n (vla-get-count docs))
(if (> n 1)
(progn
(setq i 0)
(repeat n
(if (= (vla-get-name (vla-item docs i)) doc)
(setq index i)
)
(setq i (1+ i))
)
(if (minusp (1- index))
(vla-activate (vla-item docs (1- n)))
(vla-activate (vla-item docs (1- index)))
)
)
)
(princ)
)
(defun lastdwg (/ docs n)
(or acad* (setq acad* (vlax-get-acad-object)))
(or acdoc (setq acdoc (vla-get-activedocument acad*)))
(or doc (setq doc (vla-get-name acdoc)))
(setq docs (vla-get-documents acad*))
(setq n (vla-get-count docs))
(if (> n 1)
(vla-activate (vla-item docs (1- n)))
)
(princ)
)
(defun firstdwg (/ docs n)
(or acad* (setq acad* (vlax-get-acad-object)))
(or acdoc (setq acdoc (vla-get-activedocument acad*)))
(or doc (setq doc (vla-get-name acdoc)))
(setq docs (vla-get-documents acad*))
(setq n (vla-get-count docs))
(if (> n 1)
(vla-activate (vla-item docs 0))
)
(princ)
)
and the buttons command string are
(nextdwg)
(prevdwg)
(lastdwg)
(firstdwg)
Hope this helps,
Henrique