You were close, but in your code there are missing or misplaced closing parentheses.
An error also with the function (substr "string" "starting character position") where the position was badly adapted.
Here is your corrected version:
Code:
(vl-load-com)
(defun c:inc_layer2 ( / AcDoc lay lay_name flag lay_list1 lay_list2 lay_list3 lay_list4 last_lay1 last_lay2 last_lay3 last_lay4 what col layerObj)
(setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(while (setq lay (tblnext "LAYER" (not flag)))
(setq lay_name (strcase (cdr (assoc 2 lay))) flag T)
(mapcar
'(lambda (x)
(cond
((wcmatch lay_name (strcat "LP-PLNT_SHRB-SHT" x))
(setq lay_list1 (cons lay_name lay_list1))
)
((wcmatch lay_name (strcat "LP-PLNT_GCVR-PATT-SHT" x))
(setq lay_list2 (cons lay_name lay_list2))
)
((wcmatch lay_name (strcat "LP-PLNT_GCVR-POLY-SHT" x))
(setq lay_list3 (cons lay_name lay_list3))
)
((wcmatch lay_name (strcat "LP-PLNT_TURF-PATT-SHT" x))
(setq lay_list4 (cons lay_name lay_list4))
)
)
)
'("#" "##" "###")
)
)
(if lay_list1
(setq last_lay1 (car (vl-sort (mapcar '(lambda (x) (atoi (substr x 17))) lay_list1) '>)))
(setq last_lay1 0)
)
(if lay_list2
(setq last_lay2 (car (vl-sort (mapcar '(lambda (x) (atoi (substr x 22))) lay_list2) '>)))
(setq last_lay2 0)
)
(if lay_list3
(setq last_lay3 (car (vl-sort (mapcar '(lambda (x) (atoi (substr x 22))) lay_list3) '>)))
(setq last_lay3 0)
)
(if lay_list4
(setq last_lay4 (car (vl-sort (mapcar '(lambda (x) (atoi (substr x 22))) lay_list4) '>)))
(setq last_lay4 0)
)
(initget "Shrub Gcvr gcvrP Turf All")
(if (not (setq what (getkword "\nIncrement numbering the layer [Shrub/Gcvr/gcvrP/Turf/All] <All>: "))) (setq what "All"))
(cond
((eq what "Shrub")
(prompt (strcat "Color for the layer LP-PLNT_SHRB-SHT" (itoa (1+ last_lay1))))
(terpri)
(while (not (setq col (acad_colordlg 7 nil))))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_SHRB-SHT" (itoa (1+ last_lay1)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Shrubs (Sht " (itoa (1+ last_lay1)) ")"))
)
((eq what "Gcvr")
(prompt (strcat "Color for the layer LP-PLNT_GCVR-PATT-SHT" (itoa (1+ last_lay2))))
(terpri)
(while (not (setq col (acad_colordlg 7 nil))))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_GCVR-PATT-SHT" (itoa (1+ last_lay2)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Ground cover hatching (Sht " (itoa (1+ last_lay2)) ")"))
)
((eq what "gcvrP")
(prompt (strcat "Color for the layer LP-PLNT_GCVR-POLY-SHT" (itoa (1+ last_lay3))))
(terpri)
(while (not (setq col (acad_colordlg 7 nil))))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_GCVR-POLY-SHT" (itoa (1+ last_lay3)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Ground cover poly (Sht " (itoa (1+ last_lay3)) ")"))
)
((eq what "Turf")
(prompt (strcat "Color for the layer LP-PLNT_TURF-PATT-SHT" (itoa (1+ last_lay4))))
(terpri)
(while (not (setq col (acad_colordlg 7 nil))))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_TURF-PATT-SHT" (itoa (1+ last_lay4)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Turf hatching (Sht " (itoa (1+ last_lay4)) ")"))
)
(T
(prompt (strcat "Color for the layer LP-PLNT_SHRB-SHT" (itoa (1+ last_lay1)) ", layer LP-PLNT_GCVR-PATT-SHT" (itoa (1+ last_lay2)) ", layer LP-PLNT_GCVR-POLY-SHT" (itoa (1+ last_lay3)) " and layer LP-PLNT_TURF-PATT-SHT" (itoa (1+ last_lay4))))
(terpri)
(while (not (setq col (acad_colordlg 7 nil))))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_SHRB-SHT" (itoa (1+ last_lay1)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Shrubs (Sht " (itoa (1+ last_lay1)) ")"))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_GCVR-PATT-SHT" (itoa (1+ last_lay2)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Ground cover hatching (Sht " (itoa (1+ last_lay2)) ")"))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_GCVR-POLY-SHT" (itoa (1+ last_lay3)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Ground cover hatching (Sht " (itoa (1+ last_lay3)) ")"))
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat "LP-PLNT_TURF-PATT-SHT" (itoa (1+ last_lay4)))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat "Plant and landscape material: Turf hatching (Sht " (itoa (1+ last_lay4)) ")"))
)
)
(prin1)
)
Another version which may seem more complex to you to understand but where you can (by modifying the correlated lists), apply more layers without repeating the add layer function many times.
Code:
(vl-load-com)
(defun c:inc_layer2 ( / AcDoc lay lay_name flag lay_list1 lay_list2 lay_list3 lay_list4 last_lay1 last_lay2 last_lay3 last_lay4 what layerObj)
(setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(while (setq lay (tblnext "LAYER" (not flag)))
(setq lay_name (strcase (cdr (assoc 2 lay))) flag T)
(mapcar
'(lambda (x)
(mapcar
'(lambda (s l)
(if (wcmatch lay_name (strcat s x))
(set (read l) (cons lay_name (eval (read l))))
)
)
(list "LP-PLNT_SHRB-SHT" "LP-PLNT_GCVR-PATT-SHT" "LP-PLNT_GCVR-POLY-SHT" "LP-PLNT_TURF-PATT-SHT")
(list "lay_list1" "lay_list2" "lay_list3" "lay_list4")
)
)
'("#" "##" "###")
)
)
(mapcar
'(lambda (s ll l)
(if (eval (read l))
(set (read ll) (car (vl-sort (mapcar '(lambda (x) (atoi (substr x (1+ (strlen s))))) (eval (read l))) '>)))
(set (read ll) 0)
)
)
(list "LP-PLNT_SHRB-SHT" "LP-PLNT_GCVR-PATT-SHT" "LP-PLNT_GCVR-POLY-SHT" "LP-PLNT_TURF-PATT-SHT")
(list "last_lay1" "last_lay2" "last_lay3" "last_lay4")
(list "lay_list1" "lay_list2" "lay_list3" "lay_list4")
)
(initget "Shrub Gcvr gcvrP Turf All")
(if (not (setq what (getkword "\nIncrement numbering the layer [Shrub/Gcvr/gcvrP/Turf/All] <All>: "))) (setq what "All"))
(
(lambda (l / col)
(while l
(if (not col)
(progn
(if (eq what "All")
(prompt
(strcat
"Color for the layer LP-PLNT_SHRB-SHT" (itoa (1+ last_lay1))
", layer LP-PLNT_GCVR-PATT-SHT" (itoa (1+ last_lay2))
", layer LP-PLNT_GCVR-POLY-SHT" (itoa (1+ last_lay3))
" and layer LP-PLNT_TURF-PATT-SHT" (itoa (1+ last_lay4))
)
)
(prompt (strcat "Color for the layer " (car l) (itoa (1+ (cadr l)))))
)
(terpri)
(while (not (setq col (acad_colordlg 7 nil))))
)
)
(setq layerObj (vla-add (vla-get-layers AcDoc) (strcat (car l) (itoa (1+ (cadr l))))))
(vlax-put layerObj 'color col)
(vla-put-Description layerObj (strcat (caddr l) (itoa (1+ (cadr l))) ")"))
(setq l (cdddr l))
)
)
(cond
((eq what "Shrub") (append '("LP-PLNT_SHRB-SHT") (list last_lay1) '("Plant and landscape material: Shrubs (Sht ")))
((eq what "Gcvr") (append '("LP-PLNT_GCVR-PATT-SHT") (list last_lay2) '("Plant and landscape material: Ground cover hatching (Sht ")))
((eq what "gcvrP") (append '("LP-PLNT_GCVR-POLY-SHT") (list last_lay3) '("Plant and landscape material: Ground cover poly (Sht ")))
((eq what "Turf") (append '("LP-PLNT_TURF-PATT-SHT") (list last_lay4) '("Plant and landscape material: Turf hatching (Sht ")))
(T
(append
'("LP-PLNT_SHRB-SHT") (list last_lay1) '("Plant and landscape material: Shrubs (Sht ")
'("LP-PLNT_GCVR-PATT-SHT") (list last_lay2) '("Plant and landscape material: Ground cover hatching (Sht ")
'("LP-PLNT_GCVR-POLY-SHT") (list last_lay3) '("Plant and landscape material: Ground cover poly (Sht ")
'("LP-PLNT_TURF-PATT-SHT") (list last_lay4) '("Plant and landscape material: Turf hatching (Sht ")
)
)
)
)
(prin1)
)