블럭을 깨질 않고 블럭의 기준점을 변경시키는거라고 여기서 올려주셨더군요. 근데 하면 이상하게 됩니다. 고쳐주시면 정말 감사드리겠습니다.
아…아래 3827번 답변이군요…이거 안되는데…ㅡㅡ.
(defun change_block_ip (/ a b c d e f g h x os)
(if (eq “INSERT” (cdr(assoc 0 (setq a(entget(car(entsel “바꿀려고하시는 블럭을 선택하세요:”)))))) )
(progn
(setq b(assoc 10 a))
(setq c(cdr(assoc 62(tblsearch “layer” (cdr(assoc 8 a))))))
(foreach x (list (cons 41 1.0)(cons 42 1.0)(cons 43 1.0)(cons 50 0.0))
(setq a(subst x (assoc (car x) a)a))
);;foreach
(entmod a)
(setq d(cdr(setq e(assoc 2 a))))
(setq e (list ‘(0 . “TEXT”) b (cons 1 d) (cons 40 (/ (getvar “viewsize”)30.0))(cons 62 (rem(+ c 128)257)) ))
(entmake e)
(setq f(entlast))
(setq g f)
(setq h(ssadd))
(vl-cmdf “explode” (cdr(assoc -1 a)))
(while (setq f(entnext f))
(setq h(ssadd f h))
);;while
(setq os(getvar “osmode”))
(setvar “osmode” 0)
(vl-cmdf “move” g “” (cdr(assoc 10(entget g))))
(prompt “n바꿀려고하시는 블럭의 변경점으로 옮기세요:”)
(setvar “osmode” os)
(vl-cmdf pause)
(setvar “osmode” 0)
(vl-cmdf “-block” (cdr(assoc 1(entget g))) “y” (getvar “lastpoint”) h “”)
(setvar “osmode” os)
(entdel g)
(prompt “n해당블럭의 인서트포인트를 일괄수정했읍니다 .”)
);;progn
);;if
);;defun
(defun c:bic ()(change_block_ip));;defun
똘도사Lv.0
누가 이거 좀 고쳐주세요…ㅡㅡ.
공유