Hi, I am trying to run the attached routine across multiple tabs within files. It works fin on the active tab if drag n drop but needs more coding than i recall at short notice. Block 'test' can have anything in it but have attached sample. (well trying to figure how to anyway)
Assistance appreciated. Cheers, Peter
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
(defun REINS (/ A ANGLE1 B C D E ED ENT f G H INSP LAY NED NENT
NTAG NTYPE SCMDE TAG TYPE X Y Z)
(command ".-layer" "th" "0" "on" "0" "s" "0" "")
(setq SCMDE (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(SETVAR "ATTDIA" 0)
(command "regenauto" "off" "._LAYER" "M" "REIN" "")
;;(setq SSET1 (ssget (list (cons 0 "INSERT"))))
(setq SSET1 (ssget "x" (list (cons 2 "CA00_MR_A1_Att"))))
;;(setq SSET1 (ssget "x" (list (cons 2 "test"))))
(setq CNT9 0)
(repeat (sslength SSET1)
(setq ENAM (ssname SSET1 CNT9)
ELST (entget ENAM)
BLKNAM1 (cdr (assoc 2 ELST))
CNT9 (1+ CNT9)
)
(reins2)
)
)
(defun REINS2 ()
(setq BLKNAM (strcat BLKNAM1 "="))
(princ "\n")
(princ BLKNAM)
(setq SSET (ssget "x" (list (cons 2 BLKNAM1))))
(setq A 0)
(setq B 1)
(setq C 0)
(while (= C 0)
(setq ENT (ssname SSET A))
(if (= ENT nil)(setq c 1)
(progn
(setq ED (entget ENT))
(setq NENT (entnext ENT))
(setq NED (entget NENT))
(setq NTYPE (cdr (assoc 0 NED)))
(if (= NTYPE "ATTRIB")(setq B 0)(setq NENT nil))
(setq LAY (CDR (assoc 8 ed)))
(setq X (rtos (car (cdr (assoc 10 ED))) 2 4))
(setq Y (rtos (car (cdr (cdr (assoc 10 ED)))) 2 4))
(setq Z (rtos (car (cdr (cdr (cdr (assoc 10 ED))))) 2 4))
(setq INSP (cdr (assoc 10 ED)))
(setq SCALEX (cdr (assoc 41 ED)))
(setq SCALEY (cdr (assoc 42 ED)))
(setq SCALEZ (cdr (assoc 43 ED)))
(setq ANGLE1 (* 180 (/ (cdr (assoc 50 ED)) pi)))
(setq f (open "REINSERT.TXT" "a"))
(setq D 0)
(while (= B 0)
(if (= NENT nil)(setq B 1)
(progn
(setq NAME (cdr (assoc 1 NED)))
(setq TAG (cdr (assoc 2 NED)))
(write-line TAG f)
(write-line NAME f)
(setq NENT (entnext NENT))
(setq NED (entget NENT))
(setq D (+ D 1))
(setq TYPE1 (cdr (assoc 0 NED)))
(if (= TYPE1 "SEQEND")(setq B 1))
)
)
)
(close f)
(command "INSERT" BLKNAM INSP SCALEX SCALEY ANGLE1)
(while (= (getvar "cmdactive") 1)(command ""))
(setq ENT (entlast))
; (command "point" "0,0")
(setq ED (entget ENT))
(setq NENT (entnext ENT))
(setq NED (entget NENT))
(setq NTYPE (cdr (assoc 0 NED)))
(if (= NTYPE "ATTRIB")(setq E 0)(setq E 1))
(while (= E 0)
(if (= NENT nil)(setq E 1)
(progn
(setq G 0)
(setq H 0)
(setq NTAG (cdr (assoc 2 NED)))
(setq f (open "reinsert.txt" "r"))
(while (= G 0)
(setq TAG (read-line f))
(setq NAME (read-line f))
(if (= TAG NTAG)
(progn
(setq NED (subst (cons 1 NAME) (assoc 1 NED) NED))
(entmod NED)
(setq G 1)
)
)
(setq H (+ H 1))
(if (= D 0)(setq G 1))
(if (= H D)(setq G 1))
)
(close f)
(setq NENT (entnext NENT))
(setq NED (entget NENT))
(setq TYPE1 (cdr (assoc 0 NED)))
(if (= TYPE1 "SEQEND")(setq E 1))
)
)
)
(setq ED (subst (cons 8 LAY) (assoc 8 ED) ED))
(entmod ED)
(setq f (open "REINSERT.TXT" "w"))
(close f)
(setq A (+ A 1))
)
)
)
(command "ERASE" "P" "" "redraw" "._LAYER" "S" "0" "")
(setq SSET (ssget "x" (list (cons 0 "POINT")(cons 8 "REIN"))))
; (SETVAR "LUNITS" 4)
(setvar "CMDECHO" SCMDE)
; (command "ERASE" "P" "" "REGENAUTO" "ON")
)
(REINS)