Author Topic: Missing an error trap need help  (Read 2316 times)

0 Members and 1 Guest are viewing this topic.

KewlToyZ

  • Guest
Missing an error trap need help
« on: November 15, 2011, 01:33:06 PM »
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....
Code: [Select]
; 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

KewlToyZ

  • Guest
Re: Missing an error trap need help
« Reply #1 on: November 15, 2011, 02:00:46 PM »
Ok, so if there are no blocks in the drawing I am getting the error... :ugly:

ronjonp

  • Needs a day job
  • Posts: 7529
Re: Missing an error trap need help
« Reply #2 on: November 15, 2011, 02:17:04 PM »
Just a quick look but an entget call to nil will sh!te the bed:

Code: [Select]
(defun mkblkbl (blk / en ed)
  (setq en (cdr (assoc -2 blk)))
  (setq ed (entget en))
  (mkblmod en ed)
  (mkbylayer2 en ed)
)

Check for en:

Code: [Select]
(defun mkblkbl (blk / en ed)
  (if (setq en (cdr (assoc -2 blk)))
    (progn (setq ed (entget en)) (mkblmod en ed) (mkbylayer2 en ed))
  )
) ;end mkblkbl

Windows 11 x64 - AutoCAD /C3D 2023

Custom Build PC

alanjt

  • Needs a day job
  • Posts: 5352
  • Standby for witty remark...
Re: Missing an error trap need help
« Reply #3 on: November 15, 2011, 02:24:06 PM »
Just a quick look but an entget call to nil will sh!te the bed:
I hate it when entget sh!tes in my bed.
Civil 3D 2019 ~ Windohz 7 64bit
Dropbox

ronjonp

  • Needs a day job
  • Posts: 7529
Re: Missing an error trap need help
« Reply #4 on: November 15, 2011, 02:30:16 PM »
Just a quick look but an entget call to nil will sh!te the bed:
I hate it when entget sh!tes in my bed.
:lmao:

Windows 11 x64 - AutoCAD /C3D 2023

Custom Build PC

KewlToyZ

  • Guest
Re: Missing an error trap need help
« Reply #5 on: November 15, 2011, 02:46:47 PM »
lol! Thanks Ron I'll work with that!  :lmao:

KewlToyZ

  • Guest
Re: Missing an error trap need help
« Reply #6 on: November 15, 2011, 03:45:39 PM »
I think that fixed it, I had another line I had made trying to debug that just gave me a listp 0 error I had to remove. Thanks again Ronjon  8-)