Have used this great little routine by Jimmy @ JTBWORLD successfully but it doesn't work in 2006/7 if SDI is 0. Can anyone see a reason for this??
Thanks Blair
;;; SOPEN.LSP
;;; Open command that works for all cases
;;; Works for SDI=0 or SDI=1
;;; By Jimmy Bergmark
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: info@jtbworld.com
;;; 1999-09-12 - First release
;;; 2002-05-14 - Bug fixed
;;; Written for AutoCAD 2000+
;;; Ex: (sopen "c:\\drawing1.dwg")
;;; Note that QAFLAGS might not be restored to 0 so you might want to add (setvar "qaflags" 0) to acaddoc.lsp or any other startup lisp.
;;; opens and activates a file as Read-Only
(defun openRO (fna)
(vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) fna :VLAX-TRUE))
)
(defun sopen (fna / n)
(if (= 0 (getvar "SDI"))
(vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) fna))
(progn
(if (not (equal 2 (logand 2 (getvar "qaflags"))))
(setvar "qaflags" (+ (getvar "qaflags") 2))
)
(if (not (equal 4 (logand 4 (getvar "qaflags"))))
(setvar "qaflags" (+ (getvar "qaflags") 4))
)
(command "_.open")
(if (not (equal 0 (getvar "dbmod")))
(command "_y")
)
(command fna)
(setq n 0)
(while (and (< n 4)
(wcmatch (getvar "cmdnames") "*OPEN*")
)
(T
(command "")
)
(setq n (+ n 1))
)
(setvar "qaflags" 0)
)
)
)