Author Topic: How to get entity name  (Read 2375 times)

0 Members and 1 Guest are viewing this topic.

Adesu

  • Guest
How to get entity name
« on: March 30, 2007, 02:12:49 AM »
Hi Alls,
I just confuse to solve my problem,I have a line from 0,0 to 10,0,then I use this code
Code: [Select]
(setvar "OSMODE" 512)
(setq pt (getpoint "\nPick an object line"))
(setvar "OSMODE" 0)
Now I want to find an entity name from that code,how that?

dan19936

  • Guest
Re: How to get entity name
« Reply #1 on: March 30, 2007, 02:26:10 AM »
Code: [Select]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;       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
)

VVA

  • Newt
  • Posts: 166
Re: How to get entity name
« Reply #2 on: March 30, 2007, 02:26:41 AM »
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)

Adesu

  • Guest
Re: How to get entity name
« Reply #3 on: March 30, 2007, 02:52:15 AM »
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)

it's great......thanks VVA for your help.

terrycadd

  • Guest
Re: How to get entity name
« Reply #4 on: April 02, 2007, 10:00:01 AM »
Command: (setq EntName^ (car (entsel)))
Select object: <Entity name: 7ef95268>

Command: (setq EntList@ (entget EntName^))
((-1 . <Entity name: 7ef95268>) (0 . "LINE") (330 . <Entity name: 7ef93cf8>)
(5 . "985") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine")
(10 1.48592 0.83644 0.0) (11 3.23272 2.40139 0.0) (210 0.0 0.0 1.0))