Message 1 of 4
Need help for lisp code
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi!
I have a need of lisp for
1. Select single object and get chnage its layer (works good)
2. Pre-selected items also change its layer (need help)
3. select with Crossing and Window (works good)
Thanks,
Avinash
Code:
(defun c:CaF ( / fl p1 p3 ls hi ss )
(setq OldClay (getvar "Clayer"))
(setq flag (tblsearch "LAYER" "F"))
(if flag (setvar "CLAYER" "F") (command "_.layer" "make" "F" "c" "7" "" "LW" "0.20" ""))
(princ "\nSelect Objects to Change Layer F: ")
(while (and (not fl) (= 3 (car (setq p1 (grread nil 12 2)))))
(if (setq ss (ssget (setq p1 (cadr p1))))
(command "_.chprop" ss "" "LA"
"F" "c" "Bylayer" "Lt" "Bylayer"
""
)
(progn
(princ "\nSpecify Opposite Corner: ")
(while (= 5 (car (setq p3 (grread t 13 0))))
(redraw)
(setq p3 (cadr p3))
(setq ls
(list
p1
(list (car p3) (cadr p1) (caddr p1))
p3
(list (car p1) (cadr p3) (caddr p1))
)
)
(setq hi (if (< (car p1) (car p3)) 0 1))
(mapcar '(lambda ( a b ) (grdraw a b -1 hi)) ls (append (cdr ls) (list p1)))
)
(if (listp (setq p3 (cadr p3)))
(if (setq ss (ssget (if (< (car p1) (car p3)) "_W" "_C") p1 p3))
(command "_.chprop" ss "" "LA"
"F" "c" "Bylayer" "Lt" "Bylayer"
""
)
)
(setq fl t)
)
(redraw) (princ "\nSelect Objects to Change to Layer F: ")
)
)
)
(setvar "Clayer" OldClay)
(redraw) (princ)
) ;CaF