Object Layer Setting

Object Layer Setting

mikeevans6697
Advocate Advocate
523 Views
2 Replies
Message 1 of 3

Object Layer Setting

mikeevans6697
Advocate
Advocate

Is there a variable that stores the setting for object layers? We have our General Segment Label set to a specific layer, but occasionally we need to switch it for detail views. Would love to be able to make a macro or toolbar button that can switch this quickly. 

 

 

0 Likes
Accepted solutions (1)
524 Views
2 Replies
Replies (2)
Message 2 of 3

Jeff_M
Consultant
Consultant
Accepted solution

Here's a small lisp to do this:

(defun segmentlabellayer (layname   /	      AECOBJ	C3DDOC
			  C3DPREF   C3DSETS   DOCSETS	LAYPROP
			  LAYSETS
			 )
  (vl-load-com)
  (defun getaeccApp (module / *acad* C3D)
    ;; module must be "Land", "Pipe", "Roadway", or "Survey"
    (if	(and (setq *acad* (vlax-get-acad-object))
	     (setq C3D (strcat "HKEY_LOCAL_MACHINE\\"
			       (if vlax-user-product-key
				 (vlax-user-product-key)
				 (vlax-product-key)
			       )
		       )
		   C3D (vl-registry-read C3D "Release")
		   C3D (substr
			 C3D
			 1
			 (vl-string-search
			   "."
			   C3D
			   (+ (vl-string-search "." C3D) 1)
			 )
		       )
		   C3D (vla-getinterfaceobject
			 (vlax-get-acad-object)
			 (strcat "AeccXUi"
				 module
				 ".Aecc"
				 (if (= (strcase module) "LAND")
				   ""
				   module
				 )
				 "Application."
				 C3D
			 )
		       )
	     )
	)
      C3D
    )
  )
  (setq aecobj (getaeccapp "Land"))
  (setq C3Ddoc (vlax-get aecobj 'activedocument))
  (setq C3Dpref (vlax-get-property C3Ddoc 'Preferences))
  (setq C3Dsets (vlax-get-property C3Ddoc 'Settings))
  (setq docSets (vlax-get-property C3Dsets 'Drawingsettings))
  (setq laysets (vlax-get-property docsets 'ObjectLayerSettings))
  (setq layprop (vlax-get-property laysets 'GeneralSegmentLabelLayer))
  (vlax-put-property layprop 'layer layname)
  (vlax-release-object aecobj)
  (princ)
)

Usage: (segmentlabellayer "C-ANNO")

Jeff_M, also a frequent Swamper
EESignature
Message 3 of 3

mikeevans6697
Advocate
Advocate

Brilliant! Thanks very much.

0 Likes