- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Denunciar
Dimension layer lisp for 2015
I have a lisp that we use at work for putting dimensions automatically into the "DIMENSION" layer. It worked in the past for AutoCAD 2012, but for some reason does not work for 2015. Does anyone have an idea what might be wrong or what would have changed? I'm not exactly a code guy, so I've struggled a little... (someone else originally wrote this lisp).
Thanks for your help!
;;;************************************** Dimension Redefinition ******************************************
;;;
;;; This program Redefines the Dimension commands. The new command incorperates a checks for the dimension
;;; layer and
;;;
;;;
;;;
;;;
;;;********************************************************************************************************
(defun layrchek (layr colr lstyl / layr colr lstyl chklyr)
(setq layr (strcase layr)
colr (strcase colr)
lstyl (strcase lstyl)
chklyr (tblsearch "layer" layr)
)
(if chklyr
(progn
(if (or (equal colr nil) (equal colr ""))
(setq colr (itoa (cdr (assoc 62 chklyr))))
)
(if (or (equal lstyl nil) (equal lstyl ""))
(setq lstyl (cdr (assoc 6 chklyr)))
)
(command "_.-layer" "on" layr "t" layr "s" layr
"u" layr "c" colr layr "l" lstyl layr
""
)
)
(progn
(if (or (equal colr nil) (equal colr ""))
(setq colr "7")
)
(if (or (equal lstyl nil) (equal lstyl ""))
(setq lstyl "CONTINUOUS")
)
(command "_.-layer" "m" layr "u" layr "c" colr layr "l" lstyl layr
"")
)
)
(princ)
)
(setvar "cmdecho" 0)
(if (not (tblsearch "layer" "dimension"))
(layrchek "dimension" "green" "")
)
(setq dmclst (list "dimlinear" "dimaligned"
"dimangular" "dimbaseline"
"dimcenter" "dimcontinue"
"dimradius" "dimdiameter"
"dimordinate"
)
)
(foreach item dmclst
(command "undefine" item)
(setq cmd (strcat "c:" item))
(if (not (eval (read cmd)))
(eval
(read
(strcat
"(defun "
cmd
" ()"
"(setq oldlayer (getvar \"CLAYER\") oldos (getvar \"OSMODE\"))"
"(setvar \"cmdecho\" 0)"
"(command \"._undo\" \"m\")"
"(setq lyr (getvar \"clayer\"))"
"(setvar \"clayer\" \"dimension\")"
"(setvar \"cmdecho\" 1)"
"(command \""
(strcat "_.acad_dim." item)
"\")"
"(while (> (getvar \"cmdactive\") 0) (command pause))"
"(setvar \"cmdecho\" 0)"
"(setvar \"clayer\" lyr)"
"(setvar \"CLAYER\" oldlayer)"
"(setvar \"OSMODE\" oldos)"
"(princ)"
")"
)
)
)
)
)
(princ)
(command "undefine" "qleader")
(defun c:qleader ()
(if (tblsearch "layer" "dimension")
(setvar "clayer" "dimension")
(layrchek "dimension" "green" "")
)
(command "_.acad_dim.qleader")
(princ)
)
(princ "\n Dimdef Loaded.")