Zobrazit plnou verzi příspěvku: presun hladín (aj v bloku)

cvirikovec
03.03.2020, 07:21
ahojte :)Existuje príkaz alebo Lisp ktorý dokáže:Presuň všetky entity vo výkrese (aj v blokoch) z hladiny xxx do hladiny yyy.Teda niečo podobné ako je pre farby 2bb. dá sa to s časti robiť cez filter ale je to zdlhave. 

deedea96
03.03.2020, 08:12
"_laymrg"alternativně lisp:(defun laymerge (orig dest / ss1 i_ss ss2 i_ss2 e edata ) (if (tblsearch "layer" orig) (progn (if (not(tblsearch "layer" dest)) (command "_layer" "_n" dest "") ) (setvar "_clayer" "0") (if (setq ss1 (ssget "_X" (list(cons 8 orig)))) (progn (setq i_ss 0) (while (< i_ss (sslength ss1)) (setq edata (entget (ssname ss1 i_ss))) (setq edata (subst (cons 8 dest) (cons 8 orig) edata)) (entmod edata) (setq i_ss (1+ i_ss)) (princ) ) ) ) ;bloky (setq ss2 (ssget "_X" (list(cons 0 "INSERT")))) (setq i_ss2 0) (while (< i_ss2 (sslength ss2)) (setq edata (entget (ssname ss2 i_ss2))) (setq e (entnext (tblobjname "BLOCK" (cdr (assoc 2 edata))))) (setq edata (entget e)) (if (equal (cdr(assoc 8 (entget e))) orig) (progn (setq edata (subst (cons 8 dest) (assoc 8 edata) edata)) (entmod edata) (princ) ) ) (while (setq e(entnext e)) (setq edata (entget e)) (if (equal (cdr(assoc 8 edata)) orig) (progn (setq edata (subst (cons 8 dest) (assoc 8 edata) edata)) (entmod edata) (princ) ) ) ) (setq i_ss2 (1+  i_ss2)) (princ) ) (command "_purge" "_la" orig "_n") (princ) ) ) (princ))deedea962020-03-03 08:17:34

Petr75
03.03.2020, 08:17
Dobrý denNa to existuje příkaz "SLUČHL". V prvním kroku vyberete hladiny, z kterých chcete objekty přesouvat, v druhém kroku vyberete cílovou hladinu.

johny
03.03.2020, 11:48
Merge layers je jasná volba. Velmi silný nástroj, dobré znát.V novějších verzích je tento i v kontextovém menu správce hladin...