0 Members and 1 Guest are viewing this topic.
(setvar "OSMODE" 512)(setq pt (getpoint "\nPick an object line"))(setvar "OSMODE" 0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SELect ENTitieS by picking a point;;; (key is plural vs single returned by (entsel);;;;;; (C.) 1996 by Vladimir Nesterovsky <vnestr@netvision.net.il>;;; You're free to use it *unaltered* for any NON-COMMERCIAL;;; purpose (or you must contact me for permission).;;; USE IT AT YOUR OWN RISK. NO WARRANTIES ARE GIVEN WATSOEVER.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Select Entities -- main routine to use(defun-q xyz_selents ( / p q got_inpt) ; ret {{e1 [e2 ... en]} pt} (while (not got_inpt) (setq p (grread nil 4 2)) ; show pick-cursor shape (if (or (= (car p) 3) (member p ; allow to exit via Return/Esc '((2 3)(2 10)(2 13)(2 32)(2 27)))) (setq got_inpt T) ) ;if ) ;while (if (and (= 3 (car p)) ; got UCS point from GRREAD (setq q (xyz_selfindp (setq p (cadr p)) 1)) ) (list q p) ; return {{e1 [e2 ... en]} pt} ) ;if)[color=red];;; Selection-Entities-List Find by Point[/color](defun-q xyz_selfindp (p xcs / FUZZ sel p1 p2 ) ;xcs: 0-- p is WCS, 1 -- UCS, etc. ;RET EN-LIST of all entities near point (graphscr) ; a must for (SSGET "C"...) to work(?) (setq FUZZ (* (xyz_pixelsize) (getvar "pickbox")) p (trans p xcs 2) ; translate to DisplayCS p1 (mapcar '- p (LIST FUZZ FUZZ)) p2 (mapcar '+ p (LIST FUZZ FUZZ)) sel(ssget "C" (trans p1 2 1) (trans p2 2 1)) ) (xyz_sel2lst sel));;; Pixel Size in drawing units(defun-q xyz_pixelsize() (/ (GETVAR "viewsize") (CADR (GETVAR "screensize"))));;; sel2lst is also on Reini Urban's site (see URL in the quotings).;;; convert SELection set to LiST of e-names(defun-q xyz_sel2lst ( sel / l len ) (if (= 'PICKSET (type sel)) (repeat (setq len (sslength sel)) (setq len (1- len) l (cons (ssname sel len) l) ) ;setq ) ;repeat ) ;if)
(setvar "OSMODE" 512)(setq pt (getpoint "\nPick an object line"))(if (setq ss (ssget pt)) (alert (strcat "You pick a " (cdr(assoc 0 (entget(ssname ss 0)))))))(setvar "OSMODE" 0)
Code: [Select](setvar "OSMODE" 512)(setq pt (getpoint "\nPick an object line"))(if (setq ss (ssget pt)) (alert (strcat "You pick a " (cdr(assoc 0 (entget(ssname ss 0)))))))(setvar "OSMODE" 0)