哦,是的,这是我前一段时间做的一个彩色的(我采用了lazy convert layer object to vla object route)和一个线型的,但它需要DosLib。。。。
- (defun c:CLC (/ ss color i layer lst)
- ;; Change color of selected objects' layer
- ;; Alan J. Thompson, 07.23.09 / 05.16.11
- (if (and (setq ss (ssget)) (setq color (acad_colordlg 1 nil)))
- (repeat (setq i (sslength ss))
- (if (not (member (setq layer (cdr (assoc 8 (entget (ssname ss (setq i (1- i))))))) lst))
- (vla-put-color
- (vlax-ename->vla-object (tblobjname "LAYER" (car (setq lst (cons layer lst)))))
- color
- )
- )
- )
- )
- (princ)
- )
- (defun c:CLL (/ ss linetype i layer lst)
- ;; Change linetype of selected objects' layer
- ;; DosLib required (dos_linetypebox)
- ;; Alan J. Thompson, 05.16.11
- (if dos_linetypebox
- (if (and (setq ss (ssget)) (setq linetype (dos_linetypebox)))
- (repeat (setq i (sslength ss))
- (if (not (member (setq layer (cdr (assoc 8 (entget (ssname ss (setq i (1- i))))))) lst))
- (vla-put-linetype
- (vlax-ename->vla-object (tblobjname "LAYER" (car (setq lst (cons layer lst)))))
- linetype
- )
- )
- )
- )
- (progn (alert "DosLib must be loaded!")
- (command "_.browser" "http://www.en.na.mcneel.com/doslib.htm")
- )
- )
- (princ)
- )
|