Message 1 of 5

Not applicable
09-07-2019
04:05 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hello. thank you for made these lsps.
I want to combine the two lsp into one. always thank you experts
(defun c:bl (/ SetLayer obj acdoc blocks)
(vl-load-com)
(defun SetLayer (blockName layerName)
(vlax-for obj (vla-Item blocks blockName)
(vla-put-Layer obj layerName)
(if (= (vla-get-ObjectName obj) "AcDbBlockReference")
(SetLayer (vla-get-Name obj) layerName)
)
)
)
(if (and (setq obj (car (entsel "\nsame layer inside block")))
(setq obj (vlax-ename->vla-object obj))
(= (vla-get-ObjectName obj) "AcDbBlockReference")
)
(progn
(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))
blocks (vla-get-Blocks acdoc)
)
(SetLayer (vla-get-Name obj) (vla-get-Layer obj))
(vla-Regen acdoc acActiveViewport)
)
)
(princ)
)
(vl-load-com)
(defun SetLayer (blockName layerName)
(vlax-for obj (vla-Item blocks blockName)
(vla-put-Layer obj layerName)
(if (= (vla-get-ObjectName obj) "AcDbBlockReference")
(SetLayer (vla-get-Name obj) layerName)
)
)
)
(if (and (setq obj (car (entsel "\nsame layer inside block")))
(setq obj (vlax-ename->vla-object obj))
(= (vla-get-ObjectName obj) "AcDbBlockReference")
)
(progn
(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))
blocks (vla-get-Blocks acdoc)
)
(SetLayer (vla-get-Name obj) (vla-get-Layer obj))
(vla-Regen acdoc acActiveViewport)
)
)
(princ)
)
(defun c:br (/ ELST ENAM ESEL BNAM FLST)
(setvar "cmdecho" 0)
(vl-load-com)
(setq ESEL (entsel "\nbylayer inside block")
ENAM (car ESEL)
ELST (entget ENAM)
BNAM (cdr (assoc 2 ELST))
FLST nil
)
(fix1 BNAM)
(vl-cmdf "regen")
(princ)
)
(defun FIX1 (BNAM / BENAM)
(if (not (member BNAM FLST))
(progn
(setq FLST (cons BNAM FLST)
BENAM (tblobjname "block" BNAM)
)
(while (setq BENAM (entnext BENAM))
;(print (entget BENAM))
(if (= (cdr (assoc 0 (entget BENAM))) "INSERT")
(fix1 (cdr (assoc 2 (entget BENAM))))
(vla-put-color (vlax-ename->vla-object BENAM) 256)
)
)
)
)
(princ)
)
Solved! Go to Solution.