My routine errors out on a missed empty value handle but I can't seem to find it.
Any help appreciated. It seems to break in the (defun mkblkbylayer(/ blk cnt) section with bad argument type: lentityp nil....
; CHPROP to change ALL entities & nested blocks to BYLAYER
(defun c:mkbylayer( / en ed )
;======================================================================
(setvar "CMDECHO" 0); DO NOT CHANGE THIS LINE
;======================================================================
(prompt "\nChanging all entities' colors to ByLayer.\nThis may take awhile ...\n")
(command "layer" "u" "*" "")
(command "setbylayer" "All" "" "Yes" "Yes")
(setq en (entnext))
(setq ed (entget en))
(mkbylayer2 en ed)
(command "regenall")
(mkblkbylayer)
(command "regenall")
(dcbl)
(command "regenall")
(princ)
)
(defun mkbylayer2(en ed )
(setq cnt 0)
(while (setq en (entnext en))
(setq ed (entget en))
(mkblmod en ed)
(if (eq cnt 100)
(progn
(princ ".")
(setq cnt 0)
) ;end progn
(setq cnt (1+ cnt))
) ;end if
) ;end while
) ;end mkbylayer2
(defun mkblmod(en ed / cnt )
(if (/= (cdr (assoc 62 (entget en))) nil)
(progn
(setq ed
(subst (cons 62 256)
(assoc 62 ed)
ed
)
)
(entmod ed)
(entupd en)
) ;end progn
) ;end if
) ;end mkblmod
(defun mkblkbylayer( / blk cnt)
(setq cnt 0)
(princ "\n\nModifying Blocks,\nPlease Be Patient\n")
;modify first block
(setq blk (tblnext "block" t))
(mkblkbl blk)
;modify subsequent blocks
(while (setq blk (tblnext "block"))
(mkblkbl blk)
(if (eq cnt 1)
(progn
(princ ".")
(setq cnt 0)
) ;end progn
(setq cnt (+ 1 cnt))
) ;end if
) ;end while
) ;end mkblkbylayer
(defun mkblkbl(blk / en ed )
(setq en (cdr (assoc -2 blk)))
(setq ed (entget en))
(mkblmod en ed)
(mkbylayer2 en ed)
) ;end mkblkbl
(defun DCBL (/ DimStyles@ StyleName$)
(princ "\nDimstyles color bylayer")
(setq StyleName$ (cdr (assoc 2 (tblnext "DIMSTYLE" t))))
(setq DimStyles@ (list StyleName$))
(setq Count 0)
(while (setq StyleName$ (cdr (assoc 2 (tblnext "DIMSTYLE"))))
(setq DimStyles@ (append DimStyles@ (list StyleName$)))
) ;end while
(foreach StyleName$ DimStyles@
(command "DIMSTYLE" "R" StyleName$)
(setvar "DIMCLRD" 256) ;Dimension line and leader color
(setvar "DIMCLRE" 256) ;Extension line color
(setvar "DIMCLRT" 256) ;Dimension text color
(command "DIMSTYLE" "S" StyleName$ "Y")
(setq Count (+ 1 Count)) ;Command Line Counter
(princ "\n Count = [ ")
(princ Count)
(princ " ] picking next DimStyle.....")
) ;foreach
(princ)
;===========================================================================Turn off command line responses
(command "CMDECHO" 1) ;DO NOT CHANGE THIS LINE
;===========================================================================
) ;defun