Author Topic: Select Highlight everything on a layer  (Read 1544 times)

0 Members and 1 Guest are viewing this topic.

MSTG007

  • Gator
  • Posts: 2598
  • I can't remeber what I already asked! I need help!
Select Highlight everything on a layer
« on: July 17, 2017, 12:06:03 PM »
The lisp below does most of what I need it to do. Basically "for me" its similar to layerisolate. I then select all on the screen.

Code: [Select]
(defun C:SELECTLAYER ( / e lay)
 (setq e (nentsel "Select entity on a layer: "))
 (if e (ssget "_X" (list(cons 8 (cdr(assoc 8 (entget(car e))))))))
 (command "_select" "previous")
)
(C:SELECTLAYER)

I can usually run the routine but hit cancel, type in select previous and I get the result I am looking for. Am I missing another line? Thanks!!!
Civil3D 2020

ronjonp

  • Needs a day job
  • Posts: 7526
Re: Select Highlight everything on a layer
« Reply #1 on: July 17, 2017, 12:18:46 PM »
Maybe this?

Code - Auto/Visual Lisp: [Select]
  1. (defun c:selectlayer (/ e )
  2.   (if (setq e (nentsel "Select entity on a layer: "))
  3.     (sssetfirst nil (ssget "_X" (list (assoc 8 (entget (car e))))))
  4.   )
  5.   (princ)
  6. )
« Last Edit: July 17, 2017, 12:26:53 PM by ronjonp »

Windows 11 x64 - AutoCAD /C3D 2023

Custom Build PC

MSTG007

  • Gator
  • Posts: 2598
  • I can't remeber what I already asked! I need help!
Re: Select Highlight everything on a layer
« Reply #2 on: July 17, 2017, 12:22:31 PM »
Sometimes, ( I wanna smack myself in the head ). Thanks for the save again!
Civil3D 2020

gile

  • Gator
  • Posts: 2507
  • Marseille, France
Re: Select Highlight everything on a layer
« Reply #3 on: July 17, 2017, 12:31:16 PM »
Hi

Here's a way which honors pickfirst and can also be used within a "Select object" prompt (entering (ssl) expression).

Code - Auto/Visual Lisp: [Select]
  1. (defun ssl (/ ss ent)
  2.   (if
  3.     (or
  4.       (and
  5.         (setq ss (cadr (ssgetfirst)))
  6.         (= 1 (sslength ss))
  7.         (setq ent (ssname ss 0))
  8.       )
  9.       (and
  10.         (sssetfirst nil nil)
  11.         (setq ent (car (entsel)))
  12.       )
  13.     )
  14.     (ssget "_X" (list (assoc 8 (entget ent))))
  15.   )
  16. )
  17.  
  18. (defun c:ssl (/)
  19.   (sssetfirst nil (ssl))
  20.   (princ)
  21. )
Speaking English as a French Frog

MSTG007

  • Gator
  • Posts: 2598
  • I can't remeber what I already asked! I need help!
Re: Select Highlight everything on a layer
« Reply #4 on: July 17, 2017, 12:33:25 PM »
Neat... Thank you for sharing!
Civil3D 2020

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: Select Highlight everything on a layer
« Reply #5 on: July 17, 2017, 04:14:18 PM »
This works the same as ronjonp's [ if not worse ] :

Code - Auto/Visual Lisp: [Select]
  1. (defun C:test ( / r )
  2.   (vl-every '(lambda (x) (eval x))
  3.     '(
  4.       (setq r (nentsel "Select entity on a layer: "))
  5.       (setq r (entget (car r)))
  6.       (setq r (assoc 8 r))
  7.       (setq r (ssget "_X" (list r)))
  8.       (sssetfirst nil r)
  9.     )
  10.   )
  11.   (princ)
  12. )

I'm just playin around and practice.
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

Lee Mac

  • Seagull
  • Posts: 12905
  • London, England
Re: Select Highlight everything on a layer
« Reply #6 on: July 17, 2017, 04:52:04 PM »
FWIW, '(lambda (x) (eval x)) could be 'eval

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: Select Highlight everything on a layer
« Reply #7 on: July 17, 2017, 04:59:36 PM »
FWIW, '(lambda (x) (eval x)) could be 'eval

Duhh!
Thanks, Lee! :)
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg