Zobrazit plnou verzi příspěvku: Hromadný Refedit -2

Ferdinand
12.02.2009, 08:18
Znova otevírám toto téma. Mám vybranou sekvenci z lispu
(defun...
...
(setq DWG (cadr (fnsplitl (getvar "dwgname"))))(setq DWGC (strcat DWG "_C"))
;;1-podrutina-vl.ent. bloku obrysu -zmena barvy&ltype=ByBlock(defun C:zmena_EC (/ 1PZ 1E 1S0 PE62 PE6 NE62 NE6)  (setq 1PZ (ssget "_X"     (list (cons -4 "<OR")    (cons 0 "LWPOLYLINE")    (cons 62 6)    (cons 6 "center")    (cons -4 "OR>")    (cons -4 "<OR")    (cons 0 "LINE")    (cons 62 6)    (cons 6 "center")    (cons -4 "OR>")     )     )  )
 
;;2-cyklus-zmena vl. ent. bloku obrysu(setq N 0)(while (< N (sslength 1PZ))  (setq 1E (ssname 1PZ N))  (setq 1S0 (entget 1E))  (setq PE62 (assoc 62 1S0))  (setq PE6 (assoc 6 1S0))  (setq NE62 (cons 62 0))  (setq NE6 (cons 6 "ByBlock"))  (setq 1S0 (subst NE62 PE62 1S0))  (setq 1S0 (subst NE6 PE6 1S0))  (entmod 1S0)  (entupd 1E)  (setq N (1+ N))))
 
;;3-proces-zmena vl. ent. bloku obrysu
(command "_snap" "_OFf")(progn  (command "_refedit")  (while (> (getvar "cmdactive") 0) (command pause))  (C:zmena_EC)  (command "_refclose")  (while (> (getvar "cmdactive") 0) (command "_S")))
 
;;4-blok obrysu -zmena barvy=magenta & ltype=center(if (tblsearch "block" DWGC)  (progn    (setq 0PZ    (ssget      "_X"      (list (cons 0 "INSERT") (cons 2 DWGC))    )    )    (setq 0E (ssname 0PZ 0))    (setq 0S0 (entget 0E))    (setq P62 (assoc 62 0S0))    (setq P6 (assoc 6 0S0))    (setq N62 (cons 62 6))    (setq N6 (cons 6 "center"))    (setq 0S0 (subst N62 P62 0S0))    (setq 0S0 (subst N6 P6 0S0))    (entmod 0S0)    (entupd 0E)  )  nil)
(command "_qsave")
...
)
 
Pokud sekvence 1-, 2-, 3-, 4- postupně nakopiruju do p.ř. tak se to provede. Pokud ale to chci aplikovat jako kompaktní volaný lisp, tak to provede jen 1-,2-,3- a qsave, bez chybové hlášky, 4- vynechá.