;;;Add or create Log data (EED) in a drawing. (log_it) ;;; ;;;> Author: Henry C. Francis ;;;> 425 N. Ashe St. ;;;> Southern Pines, NC 28387 ;;;> http://paracadd.com ;;;> All rights reserved. ;;; ;;;> COPYRIGHT: 1-18-96 ;;;> EDITED: 06-07-2005 ;;; (DEFUN nxdata (/) (IF (AND (/= (STRCASE (GETVAR "DWGNAME")) "UNNAMED.DWG") (/= (STRCASE (GETVAR "DWGNAME")) "EPSTRT12.DWG") (/= (STRCASE (GETVAR "DWGNAME")) "DRAWING.DWG") (NOT (WCMATCH (STRCASE (GETVAR "DWGNAME")) "DRAWING#.DWG")) (NOT (WCMATCH (STRCASE (GETVAR "DWGNAME")) "DRAWING##.DWG")) (/= (STRCASE (GETVAR "DWGNAME")) "NONE") ) ;_ end of and (PROGN ;;; (COND ;if DOSLib is already loaded, return true ;;; ((NOT (NULL DOS_ABOUT)) T) ;if AutoCAD Release 12, ;;; ((= (ATOI (SUBSTR (GETVAR "acadver") 1 2)) 12) (XLOAD "doslib12")) ;if AutoCAD Release 13, ;;; ((= (ATOI (SUBSTR (GETVAR "acadver") 1 2)) 13) (XLOAD "doslib13" nil)) ;if AutoCAD Release 14, ;;; ((AND (= (ATOI (SUBSTR (GETVAR "acadver") 1 2)) 14) (NOT dos_win)) ;_ end of and ;;; (ARXLOAD "doslib14") ;;; ) ;if AutoCAD Release 2000, ;;; ((AND (>= (ATOF (SUBSTR (GETVAR "acadver") 1 2)) 15) (NOT DOS_VER)) ;_ end of and ;;; (ARXLOAD "doslib15") ;;; ) ;default message ;;; ((AND (>= (ATOF (SUBSTR (GETVAR "acadver") 1 2)) 16) (NOT DOS_VER)) ;_ end of and ;;; (ARXLOAD "doslib16") ;;; ) ;default message ;;; (T (PROMPT "DOSLib AutoCAD R12, R13 or R14")) ;;; ) ;_ end of cond (SETQ lunit (GETVAR "lunits")) (SETVAR "lunits" 2) (SETQ luprc (GETVAR "luprec")) (SETVAR "luprec" 4) (SETQ rapnm "HUA") (REGAPP rapnm) (IF (AND actstr (= (STRLEN actstr) 1)) nil (SETQ actstr "O") ) ;_ end of if (SETQ lname (GETVAR "LOGINNAME")) ;;; (IF DOS_USERNAME ;;; (SETQ lname (DOS_USERNAME)) ;;; (SETQ lname "unknown") ;;; ) ;_ end of IF ;;; (SETQ fst_initls (SUBSTR lname (- (STRLEN lname) 1))) (SETQ fst_initls (SUBSTR lname 1 2)) (SETQ lst_initl " ");(SUBSTR lname 2 1) (SETQ lname (STRCASE (STRCAT fst_initls lst_initl))) (IF (= (SUBSTR (SETQ curdwg (GETVAR "dwgname")) 2 1) ":") (PROGN (SETQ cdstrl (STRLEN curdwg)) (WHILE (AND (/= cdstrl 1) (/= (SUBSTR curdwg (1- cdstrl) 1) "\\")) (SETQ cdstrl (1- cdstrl))) (SETQ curdwg (STRCASE (SUBSTR curdwg cdstrl))) ) ;_ end of PROGN ) ;_ end of IF (SETQ nxdl (LIST '(1002 . "}"))) (SETQ nxdl (CONS (CONS 1000 (STRCAT actstr (SUBSTR (RTOS (GETVAR "cdate")) 3) lname curdwg)) nxdl)) (SETQ nxdl (CONS '(1002 . "{") nxdl)) (SETQ nxdl (CONS rapnm nxdl)) (SETQ nxdl (LIST -3 nxdl)) (SETVAR "luprec" luprc) (SETVAR "lunits" lunit) (PRINC) ) ;_ end of PROGN ) ;_ end of IF ) ;_ end of defun ;;;--------------------------------------------------------------------------- (DEFUN log_it (/ luprc edss ename) ;xelst nedlst xedlst elst rapnm ;;; (PRINC "\nBegin LOG_IT function ") ;;; (PRINC) (IF (AND (/= (STRCASE (GETVAR "DWGNAME")) "UNNAMED.DWG") (/= (STRCASE (GETVAR "DWGNAME")) "EPSTRT12.DWG") (/= (STRCASE (GETVAR "DWGNAME")) "DRAWING.DWG") (NOT (WCMATCH (STRCASE (GETVAR "DWGNAME")) "DRAWING#.DWG")) (NOT (WCMATCH (STRCASE (GETVAR "DWGNAME")) "DRAWING##.DWG")) (/= (STRCASE (GETVAR "DWGNAME")) "NONE") ) ;_ end of and (PROGN (SETQ xelst nil nedlst nil xedlst nil elst nil repnm nil ) ;_ end of setq (nxdata) (SETQ lunit (GETVAR "lunits")) (SETVAR "lunits" 2) (SETQ luprc (GETVAR "luprec")) (SETVAR "luprec" 4) (SETQ rapnm "HUA") (REGAPP rapnm) (IF actstr nil (SETQ actstr "O") ) ;_ end of if (COND ((SETQ edss (SSGET "x" (LIST '(-3 ("HUA")) (CONS 2 "DWG-EDIT-LOG") (CONS 10 (LIST 0.0 0.0 0.0))))) (PROGN (SETQ ename (SSNAME edss 0)) (SETQ xelst (ENTGET ename (LIST rapnm))) (SETQ nedlst (LIST (CONS 1000 (STRCAT actstr (SUBSTR (RTOS (GETVAR "cdate")) 3) lname curdwg)))) (SETQ xedlst (CDR (REVERSE (CDDR (ASSOC rapnm (CDR (ASSOC -3 xelst))))))) (SETQ xedlst (APPEND xedlst nedlst)) (SETQ xedlst (CONS (CONS 1002 "}") xedlst)) (SETQ xedlst (CONS (CONS 1002 "{") (REVERSE xedlst))) (SETQ xedlst (CONS "HUA" xedlst)) (SETQ elst (SUBST (CONS -3 (LIST xedlst)) (ASSOC -3 xelst) xelst)) ;;; (IF (ENTMOD elst) ;;; (PRINC "\nDrawing access has been logged. ") ;;; (PRINC "\nLogging of drawing access has failed! ") ;;; ) ;_ end of if ) ;_ end of PROGN ) ((SETQ edss (SSGET "x" (LIST (CONS 2 "DWG-EDIT-LOG") (CONS 10 (LIST 0.0 0.0 0.0))))) (PROGN (SETQ ename (SSNAME edss 0)) (SETQ xelst (ENTGET ename (LIST rapnm))) (SETQ elst (APPEND xelst (LIST nxdl))) ;;; (IF (ENTMOD elst) ;;; (PRINC "\nDrawing access has been logged. ") ;;; (PRINC "\nLogging of drawing access has failed! ") ;;; ) ;_ end of if (SETQ xelst (ENTGET ename (LIST rapnm))) ) ;_ end of PROGN ) (T (PROGN (newent "DWG-EDIT-LOG") (SETQ ename (ENTLAST)) (SETQ xelst (ENTGET ename)) (SETQ elst (APPEND xelst (LIST nxdl))) ;;; (IF (ENTMOD elst) ;;; (PRINC "\nDrawing access has been logged. ") ;;; (PRINC "\nLogging of drawing access has failed! ") ;;; ) ;_ end of if (SETQ xelst (ENTGET ename (LIST rapnm))) ) ;_ end of PROGN ) ) ;_ end of COND (SETVAR "luprec" luprc) (SETVAR "lunits" lunit) ) ;_ end of PROGN ) ;_ end of IF ;;; (PRINC "\nEnd LOG_IT function ") ;;; (PRINC) ) ;_ end of defun ;;;--------------------------------------------------------------------------- (DEFUN newent (nblkn /) (IF (AND (/= (STRCASE (GETVAR "DWGNAME")) "UNNAMED.DWG") (/= (STRCASE (GETVAR "DWGNAME")) "EPSTRT12.DWG") (/= (STRCASE (GETVAR "DWGNAME")) "DRAWING.DWG") (NOT (WCMATCH (STRCASE (GETVAR "DWGNAME")) "DRAWING#.DWG")) (NOT (WCMATCH (STRCASE (GETVAR "DWGNAME")) "DRAWING##.DWG")) (/= (STRCASE (GETVAR "DWGNAME")) "NONE") ) ;_ end of and (PROGN (ENTMAKE (LIST (CONS 0 "BLOCK") (CONS 8 "0") (CONS 2 nblkn) (CONS 6 "BYBLOCK") (CONS 10 '(0.00 0.00 0.00)) (CONS 62 0) (CONS 70 2) ) ;_ end of list ) ;_ end of ENTMAKE (ENTMAKE (LIST (CONS 0 "ENDBLK"))) (ENTMAKE (LIST (CONS 0 "INSERT") (CONS 8 "0") (CONS 2 nblkn) (CONS 6 "BYBLOCK") (CONS 10 '(0.00 0.00 0.00)) ; (CONS 66 1) ) ;_ end of list ) ;_ end of ENTMAKE (ENTMAKE (LIST (CONS 0 "SEQEND"))) ) ;_ end of PROGN ) ;_ end of IF ) ;_ end of DEFUN ;|«Visual LISP© Format Options» (120 2 15 2 T "end of " 100 9 2 0 nil nil nil T T) ***Don't add text below the comment!***|;