Hello
I saw the below lisp by Tharwat Al Choufi, it works very well, but it counts all the texts, can it be modified to find/search for a specific text or part of a text (i.e. GL1A or GL1A*)
The link for the lisp is
https://www.theswamp.org/index.php?topic=57209.msg607461#msg607461Thank you
(defun c:Test (/ s i e l g p b c r)
;; Tharwat Al Choufi - Date : 13.Dec.2021 ;;
(and (setq s (ssget "_X" '((0 . "TEXT,MTEXT"))))
(repeat (setq i (sslength s))
(setq i (1- i)
e (entget (ssname s i))
l (list (cdr (assoc 1 e)) (cdr (assoc 8 e)))
)
(or (and (vl-some (function (lambda (q)
(and (= (car q) (car l))
(= (cadr q) (cadr l))
(setq r q)
)
)
)
g
)
(setq g (vl-remove r g)
g (cons (append l (list (1+ (caddr r)))) g)
)
)
(setq g (cons (append l (list 1)) g))
)
)
(setq p (getpoint "\nTable insertion point :"))
(setq r 1
b (vla-addtable
(vla-get-block
(vla-get-activelayout
(vla-get-activedocument (vlax-get-acad-object))
)
)
(vlax-3d-point p)
(+ 2 (length g))
3
635
3100
)
)
(progn
(vla-put-RegenerateTableSuppressed b :vlax-true)
(vla-setcolumnwidth b 2 1300)
(mapcar '(lambda (r_ c_ s_)
(set:text_ b r_ c_ 350 s_)
)
'(0 1 1 1)
'(0 0 1 2)
'("STRING COUNT" "String" "Layer" "QTY")
)
(foreach s (vl-sort g '(lambda (j k) (< (cadr j) (cadr k))))
(setq r (1+ r))
(mapcar '(lambda (c s) (set:text_ b r c 300 s))
'(0 1 2)
s
)
)
(vla-put-RegenerateTableSuppressed b :vlax-false)
)
)
(princ)
)
(vl-load-com)
;; ;;
(defun set:text_ (obj row col hgt str)
(vla-settext obj row col str)
(vla-setcelltextheight obj row col hgt)
(vla-setcellalignment obj row col acmiddlecenter)
)