warlock-993 Posted December 19, 2016 Posted December 19, 2016 Hello Everyone I need a lisp to search all texts in a specific layer in the entire drawing and if there is more than two identical texts i need it to color them in yellow. for example: if there are three texts in the drawing with the value "4 T32-562 [T1]", I need the all the three texts to be colored in yellow and so on . thanks a lot in advance. Have a great day everybody Quote
Grrr Posted December 19, 2016 Posted December 19, 2016 Hi (defun C:test ( / e enx lyr SSX i Lst dupes ) (sssetfirst nil nil)(setvar 'errno 0) (while (/= 52 (getvar 'errno)) (setq e (car (entsel "\nSelect text object to filter by its layer <exit>: "))) (cond ((= 7 (getvar 'errno)) (princ "\nMissed.") (setvar 'errno 0)) ((and e (wcmatch (cdr (assoc 0 (setq enx (entget e)))) "~*TEXT")) (princ "\nThis is not a text object.") ) ((and e (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (cdr (setq lyr (assoc 8 enx))))))))) (princ "\nThis text is on a locked layer.") ) (e (if (setq SSX (ssget "_X" (list (cons 0 "*TEXT") lyr))) (progn (repeat (setq i (sslength SSX)) (setq enx (entget (setq e (ssname SSX (setq i (1- i)))))) (setq Lst (cons (cons e (cdr (assoc 1 enx))) Lst)) ) (and Lst (setq dupes (LM:ListDupes (mapcar 'cdr Lst))) (mapcar (function (lambda (x) (PutIndexColor (car x) 2))) (vl-remove-if-not (function (lambda (x) (member (cdr x) dupes) ) ) Lst ) ) ) ) ) (setvar 'errno 52) ) ) ) (princ) ) (vl-load-com) (princ) (defun PutIndexColor ( e col / enx ) (and (eq 'ENAME (type e)) (eq 'INT (type col)) (<= 0 col 256) (setq enx (vl-remove-if (function (lambda (x) (= 420 (car x)))) (entget e))) ; remove the true color if present (or (and (assoc 62 enx) (entmod (subst (cons 62 col) (assoc 62 enx) enx))) (entmod (append enx (list (cons 62 col)))) ) ) ) ;; List Duplicates - Lee Mac ;; Returns a list of items appearing more than once in a supplied list (defun LM:ListDupes ( l ) (if l (if (member (car l) (cdr l)) (cons (car l) (LM:ListDupes (vl-remove (car l) (cdr l)))) (LM:ListDupes (vl-remove (car l) (cdr l))) ) ) ) Quote
David Bethel Posted December 19, 2016 Posted December 19, 2016 I was trying this approach, but can't get the ssfilter stop evaluating the brackets [] [b][color=BLACK]([/color][/b]setq s [color=#2f4f4f]"T 32-562 [T1]"[/color] [color=#8b4513]; String to match[/color] sl [color=#2f4f4f]"3D"[/color][b][color=BLACK])[/color][/b] [color=#8b4513];Search LAyer[/color] [b][color=BLACK]([/color][/b]setq ss [b][color=FUCHSIA]([/color][/b]ssget [color=#2f4f4f]"X"[/color] [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]cons 0 [color=#2f4f4f]"TEXT"[/color][b][color=MAROON])[/color][/b][b][color=MAROON]([/color][/b]cons 8 sl[b][color=MAROON])[/color][/b][b][color=MAROON]([/color][/b]cons 1 s[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] Maybe some cam jump in. -David Quote
Grrr Posted December 19, 2016 Posted December 19, 2016 David, try: (setq s "T 32`-562 `[T1`]") ` (reverse quote) Escapes special characters (reads next character literally). Quote
warlock-993 Posted December 19, 2016 Author Posted December 19, 2016 Thanks for your replies guys; @ Grrr it worked but it colors the text that are duplicated more than once .. can you adjust it to work on texts that are duplicated more than twice please See the attached image ... the top one is what your lisp did ... the bottom is what i need it to do. thanks again everyone:) Quote
David Bethel Posted December 19, 2016 Posted December 19, 2016 David, try: (setq s "T 32`-562 `[T1`]") Sorry, It didn't work on any of my releases. I tried various combinations. -David Quote
Grrr Posted December 19, 2016 Posted December 19, 2016 Now I got what you're asking warlock-993: [b][color=BLACK]([/color][/b]defun C:test [color=#8b4513];| credits to: Lee Mac, Michael Puckett |; [b][color=FUCHSIA]([/color][/b] / morethan e enx lyr SSX i Lst dupes lyrs [b][color=FUCHSIA])[/color][/b][/color] [b][color=FUCHSIA]([/color][/b]or [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]initget [b][color=BLUE]([/color][/b]+ 2 4[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq morethan [b][color=GREEN]([/color][/b]getint [color=#2f4f4f]"\nSpecify more than value <3>: "[/color] [b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq morethan 3[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]sssetfirst nil nil[b][color=FUCHSIA])[/color][/b][b][color=FUCHSIA]([/color][/b]setvar 'errno 0[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]/= 52 [b][color=MAROON]([/color][/b]getvar 'errno[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq e [b][color=MAROON]([/color][/b]car [b][color=GREEN]([/color][/b]entsel [color=#2f4f4f]"\nSelect text object to filter by its layer <exit>: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= 7 [b][color=BLUE]([/color][/b]getvar 'errno[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nMissed."[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setvar 'errno 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]and e [b][color=BLUE]([/color][/b]wcmatch [b][color=RED]([/color][/b]cdr [b][color=PURPLE]([/color][/b]assoc 0 [b][color=TEAL]([/color][/b]setq enx [b][color=OLIVE]([/color][/b]entget e[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [color=#2f4f4f]"~*TEXT"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nThis is not a text object."[/color][b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]and e [b][color=BLUE]([/color][/b]= 4 [b][color=RED]([/color][/b]logand 4 [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 70 [b][color=OLIVE]([/color][/b]tblsearch [color=#2f4f4f]"LAYER"[/color] [b][color=GRAY]([/color][/b]cdr [b][color=AQUA]([/color][/b]setq lyr [b][color=LIME]([/color][/b]assoc 8 enx[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nThis text is on a locked layer."[/color][b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]e [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]setq SSX [b][color=RED]([/color][/b]ssget [color=#2f4f4f]"_X"[/color] [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]cons 0 [color=#2f4f4f]"*TEXT"[/color][b][color=TEAL])[/color][/b] lyr[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]progn [b][color=RED]([/color][/b]repeat [b][color=PURPLE]([/color][/b]setq i [b][color=TEAL]([/color][/b]sslength SSX[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq enx [b][color=TEAL]([/color][/b]entget [b][color=OLIVE]([/color][/b]setq e [b][color=GRAY]([/color][/b]ssname SSX [b][color=AQUA]([/color][/b]setq i [b][color=LIME]([/color][/b]1- i[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq Lst [b][color=TEAL]([/color][/b]cons [b][color=OLIVE]([/color][/b]cons e [b][color=GRAY]([/color][/b]cdr [b][color=AQUA]([/color][/b]assoc 1 enx[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b] Lst[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b]and [b][color=PURPLE]([/color][/b]setq lyrs [b][color=TEAL]([/color][/b]mapcar 'car [b][color=OLIVE]([/color][/b]vl-remove-if [b][color=GRAY]([/color][/b]function [b][color=AQUA]([/color][/b]lambda [b][color=LIME]([/color][/b]x[b][color=LIME])[/color][/b] [b][color=LIME]([/color][/b]> morethan [b][color=SILVER]([/color][/b]cdr x[b][color=SILVER])[/color][/b][b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]_TallyHo [b][color=AQUA]([/color][/b]mapcar 'cdr Lst[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] [b][color=OLIVE])[/color][/b] [b][color=TEAL])[/color][/b] [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]mapcar [b][color=TEAL]([/color][/b]function [b][color=OLIVE]([/color][/b]lambda [b][color=GRAY]([/color][/b]x[b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]PutIndexColor [b][color=AQUA]([/color][/b]car x[b][color=AQUA])[/color][/b] 2[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]setq Lst [b][color=OLIVE]([/color][/b]vl-remove-if-not [b][color=GRAY]([/color][/b]function [b][color=AQUA]([/color][/b]lambda [b][color=LIME]([/color][/b]x[b][color=LIME])[/color][/b] [b][color=LIME]([/color][/b]member [b][color=SILVER]([/color][/b]cdr x[b][color=SILVER])[/color][/b] lyrs[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] Lst[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]not [b][color=TEAL]([/color][/b]alert [b][color=OLIVE]([/color][/b]strcat [color=#2f4f4f]"\nFound "[/color] [b][color=GRAY]([/color][/b]itoa [b][color=AQUA]([/color][/b]length Lst[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] [color=#2f4f4f]" duplicate texts, that occur more than "[/color] [b][color=GRAY]([/color][/b]itoa morethan[b][color=GRAY])[/color][/b] [color=#2f4f4f]" times."[/color][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setvar 'errno 52[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b] [b][color=BLACK])[/color][/b] [b][color=BLACK]([/color][/b]vl-load-com[b][color=BLACK])[/color][/b] [b][color=BLACK]([/color][/b]princ[b][color=BLACK])[/color][/b] [b][color=BLACK]([/color][/b]defun PutIndexColor [b][color=FUCHSIA]([/color][/b] e col / enx [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]eq 'ENAME [b][color=MAROON]([/color][/b]type e[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]eq 'INT [b][color=MAROON]([/color][/b]type col[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]<= 0 col 256[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq enx [b][color=MAROON]([/color][/b]vl-remove-if [b][color=GREEN]([/color][/b]function [b][color=BLUE]([/color][/b]lambda [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]= 420 [b][color=PURPLE]([/color][/b]car x[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]entget e[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [color=#8b4513]; remove the true color if present[/color] [b][color=NAVY]([/color][/b]or [b][color=MAROON]([/color][/b]and [b][color=GREEN]([/color][/b]assoc 62 enx[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]entmod [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]cons 62 col[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]assoc 62 enx[b][color=RED])[/color][/b] enx[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmod [b][color=GREEN]([/color][/b]append enx [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 62 col[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=BLACK])[/color][/b] [color=#8b4513]; Michael Puckett's assembly:[/color] [color=#8b4513];[b][color=BLACK]([/color][/b]_TallyHo[/color] [color=#8b4513]; '[b][color=FUCHSIA]([/color][/b][/color] [color=#8b4513]; [b][color=NAVY]([/color][/b][color=#2f4f4f]"A"[/color] [color=#2f4f4f]"B"[/color] 10[b][color=NAVY])[/color][/b][/color] [color=#8b4513]; [b][color=NAVY]([/color][/b][color=#2f4f4f]"A"[/color] [color=#2f4f4f]"C"[/color] 20[b][color=NAVY])[/color][/b][/color] [color=#8b4513]; [b][color=NAVY]([/color][/b][color=#2f4f4f]"B"[/color] [color=#2f4f4f]"C"[/color] 10[b][color=NAVY])[/color][/b][/color] [color=#8b4513]; [b][color=NAVY]([/color][/b][color=#2f4f4f]"A"[/color] [color=#2f4f4f]"B"[/color] 10[b][color=NAVY])[/color][/b][/color] [color=#8b4513]; [b][color=NAVY]([/color][/b][color=#2f4f4f]"A"[/color] [color=#2f4f4f]"C"[/color] 20[b][color=NAVY])[/color][/b][/color] [color=#8b4513]; [b][color=NAVY]([/color][/b][color=#2f4f4f]"A"[/color] [color=#2f4f4f]"B"[/color] 10[b][color=NAVY])[/color][/b][/color] [color=#8b4513]; [b][color=FUCHSIA])[/color][/b][/color] [color=#8b4513];[b][color=BLACK])[/color][/b][/color] [color=#8b4513];>>[/color] [color=#8b4513];[b][color=BLACK]([/color][/b][/color] [color=#8b4513]; [b][color=FUCHSIA]([/color][/b][b][color=NAVY]([/color][/b][color=#2f4f4f]"A"[/color] [color=#2f4f4f]"B"[/color] 10[b][color=NAVY])[/color][/b] . 3[b][color=FUCHSIA])[/color][/b][/color] [color=#8b4513]; [b][color=FUCHSIA]([/color][/b][b][color=NAVY]([/color][/b][color=#2f4f4f]"A"[/color] [color=#2f4f4f]"C"[/color] 20[b][color=NAVY])[/color][/b] . 2[b][color=FUCHSIA])[/color][/b][/color] [color=#8b4513]; [b][color=FUCHSIA]([/color][/b][b][color=NAVY]([/color][/b][color=#2f4f4f]"B"[/color] [color=#2f4f4f]"C"[/color] 10[b][color=NAVY])[/color][/b] . 1[b][color=FUCHSIA])[/color][/b][/color] [color=#8b4513];[b][color=BLACK])[/color][/b][/color] [b][color=BLACK]([/color][/b]defun _TallyHo [b][color=FUCHSIA]([/color][/b] lst [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]defun _Positions [b][color=NAVY]([/color][/b] x lst / p [b][color=NAVY])[/color][/b] [color=#8b4513];; find all the positions of x in lst[/color] [color=#8b4513];; [b][color=NAVY]([/color][/b]_Positions 1 '[b][color=MAROON]([/color][/b]0 0 1 0 0 1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] >> [b][color=NAVY]([/color][/b]2 5[b][color=NAVY])[/color][/b][/color] [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]setq p [b][color=GREEN]([/color][/b]vl-position x lst[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b] lst result [b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]while [b][color=RED]([/color][/b]setq p [b][color=PURPLE]([/color][/b]vl-position x lst[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]setq result [b][color=PURPLE]([/color][/b]cons [b][color=TEAL]([/color][/b]+ 1 p [b][color=OLIVE]([/color][/b]car result[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] result[b][color=PURPLE])[/color][/b] lst [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]member x lst[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]reverse result[b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]member x lst[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]list p[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]defun _Tally [b][color=NAVY]([/color][/b] x lst [b][color=NAVY])[/color][/b] [color=#8b4513];; count all the occurances of x in lst[/color] [color=#8b4513];; [b][color=NAVY]([/color][/b]_Tally 1 '[b][color=MAROON]([/color][/b]0 0 1 0 0 1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] >> 2[/color] [b][color=NAVY]([/color][/b]length [b][color=MAROON]([/color][/b]_Positions x lst[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]defun _Distil [b][color=NAVY]([/color][/b] lst / result [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while lst [b][color=MAROON]([/color][/b]setq result [b][color=GREEN]([/color][/b]cons [b][color=BLUE]([/color][/b]car lst[b][color=BLUE])[/color][/b] result[b][color=GREEN])[/color][/b] lst [b][color=GREEN]([/color][/b]vl-remove [b][color=BLUE]([/color][/b]car result[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr lst[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]reverse result[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]mapcar [b][color=NAVY]([/color][/b]function [b][color=MAROON]([/color][/b]lambda [b][color=GREEN]([/color][/b]x[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons x [b][color=BLUE]([/color][/b]_Tally x lst[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]_Distil lst[b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=BLACK])[/color][/b] Sorry, It didn't work on any of my releases. I tried various combinations. -David Sorry David, I thought that layer filter group codes work similarly to the wcmatch function. I'm out of ideas about it. Quote
warlock-993 Posted December 19, 2016 Author Posted December 19, 2016 @grrr Thank you very much it works perfectly Quote
Roy_043 Posted December 19, 2016 Posted December 19, 2016 @David: Are you sure that you have used *reverse* quotes? Quote
David Bethel Posted December 19, 2016 Posted December 19, 2016 I've given up on the ssget filter. Simply go thru the text twice. In vanilla AutoLisp via an association list [b][color=BLACK]([/color][/b]defun c:marktext [b][color=FUCHSIA]([/color][/b]/ sl fl la ss i en ed tv td[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not sl[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq la [b][color=MAROON]([/color][/b]strcase [b][color=GREEN]([/color][/b]getstring [b][color=BLUE]([/color][/b]strcat [color=#2f4f4f]"\nLAyer To Search Text <"[/color] [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=RED])[/color][/b] [color=#2f4f4f]">: "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]= la [color=#2f4f4f]""[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq la [b][color=GREEN]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"LAYER"[/color] la[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq sl la[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]cond [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]setq ss [b][color=BLUE]([/color][/b]ssget [color=#2f4f4f]"X"[/color] [b][color=RED]([/color][/b]list [b][color=PURPLE]([/color][/b]cons 0 [color=#2f4f4f]"TEXT"[/color][b][color=PURPLE])[/color][/b][b][color=PURPLE]([/color][/b]cons 8 sl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]alert [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"No TEXT Entities Found On LAyer "[/color] sl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]T [b][color=MAROON]([/color][/b]setq i 0[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]setq en [b][color=BLUE]([/color][/b]ssname ss i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq ed [b][color=BLUE]([/color][/b]entget en[b][color=BLUE])[/color][/b] tv [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 1 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]not [b][color=RED]([/color][/b]assoc tv fl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setq fl [b][color=RED]([/color][/b]cons [b][color=PURPLE]([/color][/b]cons tv 1[b][color=PURPLE])[/color][/b] fl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setq fl [b][color=RED]([/color][/b]subst [b][color=PURPLE]([/color][/b]cons tv [b][color=TEAL]([/color][/b]1+ [b][color=OLIVE]([/color][/b]cdr [b][color=GRAY]([/color][/b]assoc tv fl[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]assoc tv fl[b][color=PURPLE])[/color][/b] fl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1+ i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]"X"[/color] [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [color=#2f4f4f]"TEXT"[/color][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cons 8 sl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq i 0[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]setq en [b][color=BLUE]([/color][/b]ssname ss i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq ed [b][color=BLUE]([/color][/b]entget en[b][color=BLUE])[/color][/b] tv [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 1 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]and [b][color=RED]([/color][/b]setq td [b][color=PURPLE]([/color][/b]assoc tv fl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]> [b][color=PURPLE]([/color][/b]cdr td[b][color=PURPLE])[/color][/b] 2[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]progn [b][color=RED]([/color][/b]if [b][color=PURPLE]([/color][/b]assoc 62 ed[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq ed [b][color=TEAL]([/color][/b]subst [b][color=OLIVE]([/color][/b]cons 62 2[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]assoc 62 ed[b][color=OLIVE])[/color][/b] ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq ed [b][color=TEAL]([/color][/b]append ed [b][color=OLIVE]([/color][/b]list [b][color=GRAY]([/color][/b]cons 62 2[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]entmod ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1+ i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.REGENALL"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] -David Quote
David Bethel Posted December 19, 2016 Posted December 19, 2016 @David:Are you sure that you have used *reverse* quotes? Yes. I've even tried escaping the brackets "\[T1\]" as well Quote
Roy_043 Posted December 19, 2016 Posted December 19, 2016 @David: Strange: I have just checked an old R12 manual and from that I conclude you should be able to use an ssget filter with wild card characters and that escaping with reverse quotes should be possible in the versions you use. Quote
David Bethel Posted December 19, 2016 Posted December 19, 2016 @David:Strange: I have just checked an old R12 manual and from that I conclude you should be able to use an ssget filter with wild card characters and that escaping with reverse quotes should be possible in the versions you use. I know. There are some text/wildcard filters I use on a very regular basis. Just not brackets. I never did totally comprehend their syntax. -David Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.