Message 1 of 13
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
another challange for me!
I am going to move entire selected layer(s) of my drawing to a new predefined layer by selection just an object. Here is a lisp that I found (thanks dear author!) which is very useful but it creates new layer by adding suffix to selected object's layer name. I want to set the layer name on my routine, i.e. "CONTOURS" and move entire entities of selected layer(s) into it.
(defun c:laymv ( / ssobjlist ss_obj ss_obj_list obj ) ;;;;;SUBROUTINES;;;;; (defun ssobjlist (sset / zaehler objlist) (setq zaehler (1- (sslength sset))) (while (>= zaehler 0) (if (< zaehler (1- (sslength sset))) (setq objlist (cons (ssname sset zaehler) objlist)) (setq objlist (list (ssname sset zaehler))) ) ;Ende if (setq zaehler (1- zaehler)) ) ;Ende While objlist ) ;Ende defun ;;;;;MAIN ROUTINE;;;;; (setq ss_obj (ssget "_:L" '((-4 . "<not")(8 . "0,Defpoints")(-4 . "not>")))) (if ss_obj (progn (command "_.undo" "_begin") (setq ss_obj_list (ssobjlist ss_obj)) ;;;;;;;;;;;;;; Here would be the change? (foreach obj ss_obj_list (setq obj_lay (cdr (assoc 8 (entget obj)))) (if (not (wcmatch obj_lay "*_EX")) (progn (command "_.rename" "_la" obj_lay (strcat obj_lay "_EX")) (command "_.layer" "_co" 3 (strcat obj_lay "_EX") "") (princ (strcat "\nLayer \"" obj_lay "\" rename to: \"" obj_lay "_EX\"")) );progn );if
;;;;;;;;;;;;;;;;;;;;;; );foreach (command "_.undo" "_end") );progn (princ "\nNothing selected, try again") );if (princ) )
Thanks
Solved! Go to Solution.