Thanks Tom...this is working great for me, but now I have an additional issue with one of the blocks. One of the blocks to replace has a dynamic stretch parameter so it is Anonymous. Can old_blk equal *U to perform the block swap? How would I do this?
Here is the code so far:
Code:
(defun C:blocktog (/ en ed old_blk pt led le)
(setq en(entsel "\nSelect Entity: "))
(if en
(progn
(setq ed (entget (car en))
old_blk(cdr(assoc 2 ed))
pt(getvar "VIEWCTR")
)
(setvar "cmdecho" 0)
(setvar "mirrtext" 1)
(if(not(tblsearch "layer" "G-LITE"))
(Command "-layer" "new" "G-LITE" "c" 4 "G-LITE" ""))
(if(not(tblsearch "layer" "G-HEAVY"))
(Command "-layer" "new" "G-HEAVY" "c" 6 "G-HEAVY" ""))
(if(not(tblsearch "block" "CONT-TAG2"))
(progn
(Command "-insert" "CONT-TAG2" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "CONT-TAG2-E"))
(progn
(Command "-insert" "CONT-TAG2-E" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "ID_KEY2"))
(progn
(Command "-insert" "ID_KEY2" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "ID_KEY2-E"))
(progn
(Command "-insert" "ID_KEY2-E" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "HU-INSUL3"))
(progn
(Command "-insert" "HU-INSUL3" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "HU-INSUL3-E"))
(progn
(Command "-insert" "HU-INSUL3-E" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "HU-TGM_R"))
(progn
(Command "-insert" "HU-TGM_R" pt "12" "12" "0" "" "" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "HU-TGM_R-E"))
(progn
(Command "-insert" "HU-TGM_R-E" pt "12" "12" "0" "" "" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "HU-TGM_L"))
(progn
(Command "-insert" "HU-TGM_L" pt "12" "12" "0" "" "" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "HU-TGM_L-E"))
(progn
(Command "-insert" "HU-TGM_L-E" pt "12" "12" "0" "" "" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "CUPS_ID2"))
(progn
(Command "-insert" "CUPS_ID2" pt "12" "12" "0" "" "" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "CUPS_ID2-E"))
(progn
(Command "-insert" "CUPS_ID2-E" pt "12" "12" "0" "" "" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "SUD_ID3"))
(progn
(Command "-insert" "SUD_ID3" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(if(not(tblsearch "block" "SUD_ID3-E"))
(progn
(Command "-insert" "SUD_ID3-E" pt "12" "12" "0" "")
(Command "erase" "L" "")))
(cond
((= old_blk "CONT-TAG2")
(setq ed (subst(cons 2 "CONT-TAG2-E")(assoc 2 ed) ed)
ed (subst(cons 8 "G-LITE")(assoc 8 ed) ed)
))
((= old_blk "CONT-TAG2-E")
(setq ed (subst(cons 2 "CONT-TAG2")(assoc 2 ed) ed)
ed (subst(cons 8 "G-HEAVY")(assoc 8 ed) ed)
))
((= old_blk "ID_KEY2")
(setq ed (subst(cons 2 "ID_KEY2-E")(assoc 2 ed) ed)
ed (subst(cons 8 "G-LITE")(assoc 8 ed) ed)
))
((= old_blk "ID_KEY2-E")
(setq ed (subst(cons 2 "ID_KEY2")(assoc 2 ed) ed)
ed (subst(cons 8 "G-HEAVY")(assoc 8 ed) ed)
))
((= old_blk "HU-INSUL3")
(setq ed (subst(cons 2 "HU-INSUL3-E")(assoc 2 ed) ed)
ed (subst(cons 8 "G-LITE")(assoc 8 ed) ed)
))
((= old_blk "HU-INSUL3-E")
(setq ed (subst(cons 2 "HU-INSUL3")(assoc 2 ed) ed)
ed (subst(cons 8 "G-HEAVY")(assoc 8 ed) ed)
))
((= old_blk "HU-TGM_R")
(setq ed (subst(cons 2 "HU-TGM_R-E")(assoc 2 ed) ed)
ed (subst(cons 8 "G-LITE")(assoc 8 ed) ed)
))
((= old_blk "HU-TGM_R-E")
(setq ed (subst(cons 2 "HU-TGM_R")(assoc 2 ed) ed)
ed (subst(cons 8 "G-HEAVY")(assoc 8 ed) ed)
))
((= old_blk "HU-TGM_L")
(setq ed (subst(cons 2 "HU-TGM_L-E")(assoc 2 ed) ed)
ed (subst(cons 8 "G-LITE")(assoc 8 ed) ed)
))
((= old_blk "HU-TGM_L-E")
(setq ed (subst(cons 2 "HU-TGM_L")(assoc 2 ed) ed)
ed (subst(cons 8 "G-HEAVY")(assoc 8 ed) ed)
))
((= old_blk "CUPS_ID2")
(setq ed (subst(cons 2 "CUPS_ID2-E")(assoc 2 ed) ed)
ed (subst(cons 8 "G-LITE")(assoc 8 ed) ed)
))
((= old_blk "CUPS_ID2-E")
(setq ed (subst(cons 2 "CUPS_ID2")(assoc 2 ed) ed)
ed (subst(cons 8 "G-HEAVY")(assoc 8 ed) ed)
))
((= old_blk "SUD_ID3")
(setq ed (subst(cons 2 "SUD_ID3-E")(assoc 2 ed) ed)
ed (subst(cons 8 "G-LITE")(assoc 8 ed) ed)
))
((= old_blk "SUD_ID3-E")
(setq ed (subst(cons 2 "SUD_ID3")(assoc 2 ed) ed)
ed (subst(cons 8 "G-HEAVY")(assoc 8 ed) ed)
))
(t (progn
(princ "\nMust select a SUD, CUPS, TGM, Keynote or Insulation symbol/tag! Not a ")
(princ old_blk)
) )
)
(entmod ed)
);end progn
(princ "\nNothing selected")
);end if
(Command "attsync" "N" "*")
(Command "regen")
(princ)
)