get Layer name and Colour from selected object

get Layer name and Colour from selected object

jyan2000
Advocate Advocate
6,694 Views
4 Replies
Message 1 of 5

get Layer name and Colour from selected object

jyan2000
Advocate
Advocate

Dear All,

How do I get Layer name and Colour from selected object as a text shown in attached file.

Best Regards

Victor.

0 Likes
6,695 Views
4 Replies
Replies (4)
Message 2 of 5

BlackBox_
Advisor
Advisor

Here's a starting point:

 

(defun c:FOO (/ e)
  (if
    (and
      (setq e (car (entsel "\nSelect entity for layer name, and color: ")))
      (setq e (tblsearch "layer" (cdr (assoc 8 (entget e)))))
    )
     (prompt
       (strcat
         "\nLayer: "
         (cdr (assoc 2 e))
         ", Color: "
         (itoa (cdr (assoc 62 e)))
       )
     )
  )
  (princ)
)


"How we think determines what we do, and what we do determines what we get."

Sincpac C3D ~ Autodesk Exchange Apps

0 Likes
Message 3 of 5

Anonymous
Not applicable

Not sure if this helps but I've been able to get the layer name but all I can get is the index color for each layer.

 

(vl-load-com)
(defun C:Test3 ()
  (setq nwent (entsel))
  (if nwent
    (progn
      (setq nwen(car nwent))
      (setq nwelist (entget nwen))
      (setq layername (cdr (assoc 8 nwelist)))
      (setq obj (vlax-ename->vla-object (car nwent)))
      (setq layerinfo (tblsearch "layer" layername))
      (setq layercolor (cdr (assoc 62 layerinfo)))
      )
    (alert "Nothing Selected")
    )
  (prompt "\n")
  (princ "layername : ")
  (princ layername)
  (prompt "\n")
  (prompt "\n")
  (princ "layercolor : ")
  (princ layercolor)
  (prompt "\n")
  (princ)

 

0 Likes
Message 4 of 5

BlackBox_
Advisor
Advisor

@Anonymous wrote:

Not sure if this helps but I've been able to get the layer name but all I can get is the index color for each layer.

 

(vl-load-com)
(defun C:Test3 ()
  (setq nwent (entsel))
  (if nwent
    (progn
      (setq nwen(car nwent))
      (setq nwelist (entget nwen))
      (setq layername (cdr (assoc 8 nwelist)))
      (setq obj (vlax-ename->vla-object (car nwent)))
      (setq layerinfo (tblsearch "layer" layername))
      (setq layercolor (cdr (assoc 62 layerinfo)))
      )
    (alert "Nothing Selected")
    )
  (prompt "\n")
  (princ "layername : ")
  (princ layername)
  (prompt "\n")
  (prompt "\n")
  (princ "layercolor : ")
  (princ layercolor)
  (prompt "\n")
  (princ)

 


Try:

 

(defun c:FOO (/ e layerName oLayer oTrueColor)
  (if
    (setq e (car (entsel "\nSelect entity for layer name, and color: ")))
    (prompt
      (strcat
        "\nLayer: "
        (setq layerName (cdr (assoc 8 (entget e))))
        ", Color: "
        (itoa (vla-get-color
                (setq oLayer
                       (vla-item
                         (vla-get-layers
                           (vla-get-activedocument (vlax-get-acad-object))
                         )
                         layerName
                       )
                )
              )
        )
        ", True Color (RGB): "
        (itoa (vla-get-red (setq oTrueColor (vla-get-truecolor oLayer)))
        )
        ", "
        (itoa (vla-get-green oTrueColor))
        ", "
        (itoa (vla-get-blue oTrueColor))
      )
    )
  )
  (princ)
)


"How we think determines what we do, and what we do determines what we get."

Sincpac C3D ~ Autodesk Exchange Apps

0 Likes
Message 5 of 5

jyan2000
Advocate
Advocate
Thank you Black Box, That's great . but is it possible to indicate with a text?
0 Likes