0 Members and 1 Guest are viewing this topic.
(defun c:NextInDocManager (/ DocCol ActDoc CurName cnt)(setq DocCol (vla-get-Documents (vlax-get-Acad-Object)))(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))(setq CurName (vla-get-Name ActDoc))(setq cnt 0)(vl-catch-all-apply '(lambda () (vlax-for i DocCol (if (= (vla-get-Name i) CurName) (exit) (setq cnt (1+ cnt)) ) ) ))(if (>= (1+ cnt) (vla-get-Count DocCol)) (alert "\n This IS the last drawing in document collection.") (command "_.vbastmt" (strcat "documents.item \(\"" (vla-get-Name (vla-Item DocCol (1+ cnt))) "\"\).activate")))(princ))
;;;The NEXT.LSP function that opens the next drawing in a directory.;;;http://www.cad-code.com/archive.htm;;;by: Peter Jamtgaard(defun NEXT-IT (/ CNT FILELIST NEXTDWG objDWG acadObject) (vl-load-com) (setq FILELIST (acad_strlsort (vl-directory-files (getvar "dwgprefix") "*.dwg")) CNT (length (member (getvar "dwgname") (reverse FILELIST)))) (if (< CNT (length FILELIST)) (progn (setq NEXTDWG (strcat (getvar "dwgprefix") (nth CNT FILELIST))) (if (IsItOpen NEXTDWG) (princ) (command "vbastmt" (strcat "AcadApplication.Documents.Open \"" NEXTDWG "\"")))) (ARCH:ALERT-I "MsgBox \" Open Next Drawing Message-------------------------------------------------------------------------------------------- You already are in the Last Drawing of this Directory!\"")) (prin1) (if objDwg (progn (setq acadObject (vlax-get-acad-object)) (vlax-put-property acadObject 'Activedocument objDWG))))(defun NEXTIT () (NEXT-IT));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(defun PREV-IT (/ CNT FILELIST NEXTDWG objDWG acadObject) (vl-load-com) (setq FILELIST (acad_strlsort (vl-directory-files (getvar "dwgprefix") "*.dwg")) CNT (length (member (getvar "dwgname") (reverse FILELIST)))) (cond ((= CNT 1) (ARCH:ALERT-I "MsgBox \" Open Previous Drawing Message-------------------------------------------------------------------------------------------- You are already in the First Drawing of this Directory!\""))) ((< CNT (length FILELIST)) (progn (setq NEXTDWG (strcat (getvar "dwgprefix") (nth (- CNT 2) FILELIST))) (if (IsItOpen NEXTDWG) (princ) (command "vbastmt" (strcat "AcadApplication.Documents.Open \"" NEXTDWG "\""))))) (prin1) (if objDwg (progn (setq acadObject (vlax-get-acad-object)) (vlax-put-property acadObject 'Activedocument objDWG))))(defun PREVIT () (PREV-IT));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IsItOpen by Bill Kramer(defun IsItOpen (DwgName / DWGS DWG Flag) (setq DWGS (vlax-get-property (vlax-get-acad-object) "Documents")) (setq objDWG nil) (vlax-for DWG DWGS (if (or (= (strcase (vlax-get-property DWG "Name")) (strcase DwgName)) (= (strcase (vlax-get-property DWG "FullName")) (strcase DwgName))) (progn (setq objDWG DWG) (setq Flag 'T)))) Flag);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(princ)