(defun C:CMD_CHECKOUT (/ CheckInList CheckOutList Var VarName) ;;; wenn von vorherigem Befehl noch Daten von einem unvollständigen oder nicht ;;; nicht erfolgten CHECKIN vorhanden sind, werden diese zunächst wieder herge- ;;; stellt. (if (setq CheckInList (vlax-ldata-list "CMD_CheckOut")) ; [Point 1)] (foreach Var CheckInList (setvar (car Var) (cdr Var)) (vlax-ldata-delete "CMD_CheckOut" (car Var))) ) (setq CheckOutList (list "CLAYER" "OSMODE" "CELWEIGHT" "CELTSCALE" "CELTYPE" "CECOLOR" "CIRCLERAD" "CHAMFERA" "CHAMFERB" "CHAMFERC" "CHAMFERD" "CHAMMODE" ) ) (foreach VarName CheckOutList (vlax-ldata-put "CMD_CheckOut" VarName (getvar VarName))) (if (tblsearch "UCS" "CMD_CheckOut") (command "_ucs" "_s" "CMD_CheckOut" "_y") (command "_ucs" "_s" "CMD_CheckOut") ) (princ) ) ;;; Ende C:CMD_CHECKOUT (defun C:CMD_CHECKIN (/ CheckInList Var) ;;; nach Wiederherstellung der Editor-Situation vor dem CMD-Aufruf werde die ;;; Einträge im Dictionary wieder gelöscht. (if (setq CheckInList (vlax-ldata-list "CMD_CheckOut")) ; [Point 2)] (foreach Var CheckInList (setvar (car Var) (cdr Var)) (vlax-ldata-delete "CMD_CheckOut" (car Var))) (if (setq CheckInList (vlax-ldata-list "CMD_CheckBase")) (foreach Var CheckInList (setvar (car Var) (cdr Var))) ) ) ; (command "_ucs" "_r" "CMD_CheckOut") (if CMD_CHECK_CMD (progn (eval CMD_CHECK_CMD) (setq CMD_CHECK_CMD nil)) ) (princ) ) ;;; Ende C:CMD_CHECKIN ; Result at [Point 1)] or [Point 2)] in AutoCAD 2006: (("OSMODE" . 16385) ("CLAYER" . "0") ("CIRCLERAD" . 0.0) ("CHAMMODE" . 0) ("CHAMFERD" . 0.0) ("CHAMFERC" . 0.0) ("CHAMFERB" . 0.0) ("CHAMFERA" . 0.0) ("CELWEIGHT" . -1) ("CELTYPE" . "ByLayer") ("CELTSCALE" . 1.0) ("CECOLOR" . "BYLAYER") ) ; Result at [Point 1)] or [Point 2)] in AutoCAD 2007: (("O" . 0) ("C" . "0") ("C" . 0.0) ("C" . 0) ("C" . 0.0) ("C" . 0.0) ("C" . 0.0) ("C" . 0.0) ("C" . -1) ("C" . "ByLayer") ("C" . 1.0) ("C" . "BYLAYER") )