there's mine...
maybe it could help..
;; XLINES and RAY on DEFPOINTS LAYER
;; By: Andrea Andreetti 2008-08-20
(vl-load-com)
; (getLayers t) = All Layers included XREF Layers
; (getLayers nil) = All Layers EXCLUDED XREF Layers
(defun getlayers (xref / bav doc blk)
(setq bav nil)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for blk (vla-get-layers doc)
(if xref
(setq bav (append bav (list (strcase (vla-get-name blk)))))
(if (not (vl-string-search "|" (vla-get-name blk)))
(setq bav (append bav (list (strcase (vla-get-name blk)))))
)
)
)
bav
)
(defun *XlineReactor_S* (call-reactor sci / layers Lname adoc Layers Nlayer xline)
(setq curLayer (getvar "CLAYER"))
(setq Lname "DEFPOINTS")
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(if (member (strcase (car sci)) '("XLINE" "RAY"))
(progn
(if (not (member Lname (getlayers nil)))
(progn
(setq Layers (vla-get-layers adoc))
(setq Nlayer (vla-add Layers Lname))
;(vla-put-color Nlayer 5)
;(vla-put-linetype Nlayer "Dashed2")
;.....etc..
)
)
(setq xline (vla-item (vla-get-layers adoc) Lname))
(vla-put-activelayer adoc xline)
)))
(defun *XlineReactor_E* (call-reactor sci / adoc clayer vlclayer)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(if (member (strcase (car sci)) '("XLINE" "RAY"))
(progn
(setq vlclayer (vla-item (vla-get-layers adoc) curLayer))
(vla-put-activelayer adoc vlclayer)
)
)
)
;;REACTOR SECTION
(if XlineReactor_S
(progn (vlr-remove XlineReactor_S)
(setq XlineReacto_S nil)
)
)
(setq XlineReactor_S
(vlr-command-reactor nil
'((:vlr-commandWillStart . *XlineReactor_S*))
)
)
(if XlineReactor_E
(progn (vlr-remove XlineReactor_E)
(setq XlineReacto_E nil)
)
)
(setq XlineReactor_E
(vlr-command-reactor nil
'((:vlr-commandEnded . *XlineReactor_E*))
)
)
(if XlineReactor_C
(progn (vlr-remove XlineReactor_C)
(setq XlineReacto_C nil)
)
)
(setq XlineReactor_C
(vlr-command-reactor nil
'((:vlr-commandCancelled . *XlineReactor_E*))
)
)