Vissa
versioner av AutoCad har egenheter som ibland kan vara svårdefinierade eller
svårförklarade.
Publish-
funktionen måste för att fungera, tillfälligt, ställa om vissa systemvariabler
bla autosave till 0. När Publish är färdig ska den ställa tillbaka variabeln,
vilken i vissa versioner av AutoCad tydligen inte fungerar.
Denna länk talar om varför: http://adndevblog.typepad.com/autocad/2012/06/backgroundplot-system-variable.html
Det
finns 3 sorters systemvariabler:
- De som skrivs till windows-registret och gäller alltid
- De som skrivs till AutoCad-filen och fungerar oavsett dator
- De som skrivs i AutoCad-sessionen och försvinner när AutoCad avslutas.
Sist
jag kollade fanns det närmare 300 system-variabler.http://www.cadproblems.us/forms/ACAD2011.pdf
http://www.cadproblems.us/forms/ACAD2012.pdf
Hur
gör man då för att bli varnad när en system-variabel ändras? Först gäller det
att veta vilka man vill övervaka, sedan hur man vill bli varnad och till sist
hur man åtgärdar det.
Om man
lägger till följande rader i Acaddoc.lsp gör att man alltid när
Autosave-variabeln ändras till 0, ställs den tillbaka till 10 (man kan välja en
annan tid också)
;Ändrar alltid tillbaka systemvariabeln savetime
till 5 minuter
;Om man vill bli notifierad, tar man bort ; under
(alert…(defun C:ALERTME ()
(vl-load-com)
(setq VTFRXN (vlr-editor-reactor nil '((:VLR-sysVarChanged . VTF))))
)
(defun VTF (CALL CALLBACK)
(if (and
(= (strcase (car CALLBACK)) (setq str "SAVETIME"))
(not (eq (getvar str) 5))
)
(progn
;(alert (strcat str " has been changed back to 5"))
(setvar "SAVETIME" 5)
)
)
)
(c:alertme)