1. 컴퓨터 사양 (간략히) : 인텔 제온 7560 @ 2.26Ghz, 가상화 pc 사용중
2. 캐드버전 과 종류 : 캐드 2013
3. 운영체제(윈도우)버전과 비트수 : 윈도우 7 프로 K 32비트
4. 보조프로그램 사용유무 : 드림 idwgtab
———————————————————————————————–
회사에 drm 무슨 프로그램 때문에 리습을 쓸수가 없는데요
신기하게도 여기 올라와있는 리습은 받아서 저장해서 로드하면 사용이 되는거에요;;
그래서 생각한게 리습 전문을 제가 올려서 그걸 다른분이 *.lsp 파일로 저장해서
다시 올려 주시면 제가 받아서 실행해보려고 합니다….작업은 많은데 정말 부탁드립니다.
———————————————————————————————
text.lsp <<<<<<로 저장 부탁드립니다..
———————————————————————————————
(defun c:tc ()
;(영역에서 글자 센터 맞추기)
; (prompt “n*** Select Text to Change ***”)
(setq a (ssget (list (cons 0 “text”))))
(setq pt1 (getpoint “nFirst point : “))
(setq pt2 (getpoint pt1 “nSecond point : “))
(setq ptx (/ (- (car pt2) (car pt1)) 2))
(setq pty (/ (- (cadr pt2) (cadr pt1)) 2))
(setq pt3 (list (+ (car pt1) ptx) (+ (cadr pt1) pty) 0.0))
(setq fff (entget (ssname a 0)))
(setq ppp (subst (cons 72 4) (assoc 72 fff) fff))
(entmod ppp)
(setq qqq (subst (cons 11 pt3) (assoc 11 ppp) ppp))
(entmod qqq)
(princ)
)
(defun c:tt (/ p l n e os as ns st s nsl osl sl si chf chm olderr)
(setq olderr *error* *error* myerror chm 0)
(setq p (ssget (list (cons 0 “TEXT”))))
(if p (progn
(while (= 0 (setq osl (strlen (setq os (getstring t “nOld Text string : “)))))
(princ “Null input invalid”)
)
(setq nsl
(strlen (setq ns (getstring t “nNew Text string : “)))
)
(setq l 0 n (sslength p))
(while (< l n)
(if (= “TEXT” (cdr (assoc 0 (setq e (entget (ssname p l))))))
(progn (setq chf nil si 1)
(setq s (cdr (setq as (assoc 1 e))))
(while (= osl (setq sl (strlen (setq st (substr s si osl)))))
(if (= st os)
(progn (setq s (strcat (substr s 1 (1- si)) ns (substr s (+ si osl))))
(setq chf t)
(setq si (+ si nsl))
)
(setq si (1+ si))
)
)
(if chf
(progn
(setq e (subst (cons 1 s) as e))
(entmod e)
(setq chm (1+ chm))
)
)
)
)
(setq l (1+ l))
)
)
)
(princ “Changed “)(princ chm)(princ ” text lines.”)
(prin1)
)
(defun c:ttc (/ a b c d e)
(prompt “n*** Select Text to Change ***”)
(setq a (ssget (list (cons 0 “text”))))
(setq b (sslength a))
(setq c 0)
(prompt “n*** Select Text to Target ***”)
(setq e (ssget (list (cons 0 “text”))))
(setq e (cdr (assoc 1 (entget (ssname e 0)))))
(while (<= 1 b)
(setq d (ssname a c))
(if (eq (cdr (assoc 0 (entget d))) “TEXT”)
(entmod (subst (cons 1 e) (assoc 1 (entget d)) (entget d))))
(setq b (- b 1))
(setq c (+ c 1))
)
)
————————————————————————————————
————————————————————————————————
layer.lsp <<<<로 저장 부탁드립니다.
————————————————————————————————
;;;▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣
;;;▣———————————————————————————————
;;;▣ * 레이어 제어하기
;;;▣ * CMD
;;;▣ – QW : 모든 Layer을 On시킨다.
;;;▣ – WE : 선택된 LAYER만 ON시킨다.
;;;▣ – EW : 선택된 LAYER만 OFF시킨다.
;;;▣ – FQ : 변경하고자 하는 Layer를 선택하고 변경하고 싶은 Layer 선택하여 변경시킨다.
;;;▣ – FW : 선택 된 Layer을 Lock시킨다.
;;;▣ – ER : 모든 Layer을 UnLock시킨다.
;;;▣ – FV : 선택 된 Layer만 UnLock시킨다.
;;;▣ * by Joongsya(Kim Hae Joong, DMEC)
;;;▣ * Last Updating : 오전 8:50 2009-02-11
;;;▣———————————————————————————————
;;;◇———————————————————————————————
;;;◇ 모든 레이어를 ON시킨다 : QW
;;;◇———————————————————————————————
(defun c:test()
(vl-load-com)
(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object) ) “3d2dnALLnn” )
(princ)
)
(defun C:QW ()
(prompt “nAll Layer On!!”)
(command “layer” “on” “*” “”)
(princ)
)
(princ “nLoading Complete…… QW : 모든 Layer을 On시킨다.”)
(princ)
;;;◇———————————————————————————————
;;;◇ 선택된 레이어만 ON시킨다 : WE
;;;◇———————————————————————————————
(defun C:WE ()
(setvar “cmdecho” 0)
(setvar “clayer” “0”)
(prompt “nSelect Object(s) To Display!!”)
(setq ss (ssget ))
(setq num (sslength ss))
(setq index 0)
(command “layer” “off” “*” “y” “”)
(repeat num
(setq entName (ssname ss index))
(setq entList (entget entName))
(setq entLayer (cdr (assoc 8 entList)))
(setq index (+ index 1))
(command “layer” “on” entLayer “”)
); <repeat>
(command “layer” “s” entLayer “”)
(princ)
)
(princ “nLoading Complete…… WE : 선택된 LAYER만 ON시킨다.”)
(princ)
;;;◇———————————————————————————————
;;;◇ 선택된 레이어만 OFF시킨다 : EW
;;;◇———————————————————————————————
(defun c:EW (/ ss index layerlist DXF-list STR-layer-name OBJ-layer DXF-layer INT-color-no)
(Setq ss (ssget))
(Setq index 0
layerlist ‘()
)
(Repeat (sslength ss)
(Setq DXF-list (entget (ssname ss index))
STR-layer-name (cdr (assoc 8 DXF-list))
)
(if (not (member STR-layer-name layerlist))
(Setq layerlist (append layerlist (list STR-layer-name)))
);end if
(Setq index (+ index 1))
)
(foreach element layerlist
(Progn
(Setq OBJ-layer (tblobjname “layer” element)
DXF-layer (entget OBJ-layer)
INT-color-no (cdr (assoc 62 DXF-layer))
)
(if (> INT-color-no 0)
(Progn
(Setq DXF-layer (subst (cons 62 (* -1 INT-color-no))(assoc 62 DXF-layer) DXF-layer))
(entmod DXF-layer)
);progn
);end if
)
)
(princ)
)
(princ “nLoading Complete…… EW : 선택된 LAYER만 OFF시킨다.”)
(princ)
;;;◇———————————————————————————————
;;;◇ Layer 스타일 덮어 씌우기 : FQ
;;;◇———————————————————————————————
(defun c:FQ (/ a1 a2 n index b1 b2 d1 d2 b3)
(setvar “cmdecho” 0)
(graphscr)
(prompt “nSelect Layer To Change!!”)
(setq a1 (ssget))
(setq a2 (entsel))
(setq n (sslength a1))
(setq index 0)
(setq b2 (entget (car a2)))
(setq d2 (assoc 8 b2))
(repeat n
(setq b1 (entget (ssname a1 index)))
(setq d1 (assoc 8 b1))
(setq b3 (subst d2 d1 b1))
(entmod b3)
(setq index (+ index 1))
)
(command “CHANGE” a1 “” “P” “C” “BYLAYER” “”)
(princ)
)
(princ “nLoading Complete…… FQ : Layer 스타일 덮어 씌우기”)
(princ)
;;;◇———————————————————————————————
;;;◇ 모든 레이어를 UnLock시킨다 : ER
;;;◇———————————————————————————————
(defun C:ER ()
(prompt “nAll Layer UnLock!!”)
(command “layer” “unlock” “*” “”)
(princ)
)
(princ “nLoading Complete…… ER : 모든 Layer을 UnLock시킨다.”)
(princ)
;;;◇———————————————————————————————
;;;◇ 선택된 레이어를 Lock시킨다 : FW
;;;◇———————————————————————————————
(defun C:FW(/ la name)
(setq olderr *error* *error* myerror chm 0)
(setq la (car (entsel “nt Pick an object to be –LOCK– layer | “)))
(if la (progn (setq name (cdr (assoc 8 (entget la))))
(command “layer” “lock” name “”))
(progn (setq name (getstring “nt Enter te LOCK-LAYER’s to NAME ? | “))
(command “layer” “lock” name “”)))
(if name
(progn (prompt “nt*lock-layer [“)(prin1 name)(prompt “]”)))(prin1)
)
(princ “nLoading Complete…… FW : 선택된 LAYER만 LOCK시킨다.”)
(princ)
;;;◇———————————————————————————————
;;;◇ 선택된 레이어를 UnLock시킨다 : FV
;;;◇———————————————————————————————
(defun c:FV(/ la name)
(setq la nil)
(setvar “cmdecho” 0)
(setq la(car (entsel “n Select an object Unlock For Layer : “)))
(if (= la nil)
(and (setq la2 (getstring “n Type for Unlock Layer name : “))
(if (= la2 “*”)
(command “layer” “unlock” la2 “”)
)
)
)
(if la (progn (setq name (cdr (assoc 8 (entget la))))
(command “layer” “unlock” name “” “”)
)
)
(PRINC)
)
(princ “nLoading Complete…… FV : 선택된 LAYER만 UNLOCK시킨다.”)
(PRINC)
————————————————————————————————-
————————————————————————————————–
cfd.lsp <<<<<<<<<<<<로 저장 부탁드립니다.
————————————————————————————————–
(defun c:cfd()
(command “audit” “y” “”)
(command “-purge” “a” “*” “n”)
(command “deleteghost” “”)
(command “deletelayerfilter” “y”)
(command “elevremove” “all” “”)
(command “-scalelistedit” “r” “y” “e”)
(pdd)
(pxx)
(bdd)
(tdd)
(kdd)
(command “qsave”)
(princ)
)
(defun pdd(/ a i al tt ke xy xy_list w_list k j)
(command “cmdecho” 0)
(command “undo” “g”)
(setq a (ssget “all” ‘((0 . “LWPOLYLINE”))))
(if (null a)
(setq a (ssget “x” ‘((0 . “LWPOLYLINE”))))
)
(if (null a) (exit))
(setq al (sslength a)
i 0
j 0
tt 0
)
(princ “n총처리 pline :: “)(princ al)(princ ” 중 중복된 POLYLINE을 지웁니다.n”)
(while (> al i)
(setq en (ssname a i)
ent (entget en)
la (cdr (assoc 8 ent))
i (1+ i)
j (1+ j)
w_list nil
)
(foreach k ent
(if (= 10 (car k)) (setq w_list (append w_list (list (cdr k)))))
)
(setq w_list (append w_list (list la)))
(if (member w_list xy_list)
(setq tt (1+ tt)
a (ssdel en a)
al (1- al)
en (entdel en)
i (1- i)
)
(setq xy_list (append xy_list (list w_list)))
)
(princ “현처리 pline :: “)(princ j) (princ “r”)
)
(princ “n”)
(princ “지워진 pline :: “)(princ tt) (princ “n”)
(command “undo” “e”)
(princ)
)
(defun pxx( / a i al tt ke j k k1 en ent xy_end xy)
(command “undo” “g”)
(setvar “cmdecho” 0)
(setvar “osmode” 0)
(setq a (ssget “x” ‘((0 . “lwpolyline”))))
(if (null a) (exit))
(setq al (sslength a)
i 0
j 0
k1 0
tt 0
)
(princ “n총처리 pline :: “)(princ al)(princ ” 중 2개의 중복된 VERTEX를 가진 LINE을 지웁니다.n”)
(while (> al i)
(setq en (ssname a i)
ent (entget en)
j (1+ j)
xy (cdr (assoc 10 ent))
k1 0
)
(foreach k ent
(if (= 10 (car k)) (setq xy_end (cdr k) k1 (1+ k1)))
)
(if (and (<= k1 2) (equal xy xy_end))
(setq tt (1+ tt)
a (ssdel en a)
al (1- al)
en (entdel en)
)
(setq i (1+ i))
)
(princ “현처리 pline :: “)(princ j) (princ “r”)
)
(princ “n”)
(princ “지워진 pline :: “)(princ tt) (princ “n”)
(command “undo” “e”)
(princ)
)
(defun BDD( / en ent xy ang i al tt ke j xy_list k w_list)
(command “undo” “g”)
(setvar “cmdecho” 0)
(setvar “osmode” 0)
(setq a (ssget “x” ‘((0 . “INSERT,TEXT”))))
(if (null a) (exit))
(setq al (sslength a)
i 0
j 0
tt 0
)
(princ “n총처리 Block,Text :: “)(princ al)(princ ” 중 중복된 BLOCK을 지웁니다.n”)
(while (> al i)
(setq en (ssname a i)
ent (entget en)
j (1+ j)
xy (cdr (assoc 10 ent))
name (cdr (assoc 2 ent))
w_list (list xy name)
)
(if (member w_list xy_list)
(setq tt (1+ tt)
a (ssdel en a)
al (1- al)
en (entdel en)
)
(setq xy_list (append xy_list (list w_list)) i (1+ i))
)
(princ “현처리 Block,Text :: “)(princ j) (princ “r”)
)
(princ “n”)
(princ “지워진 Block,Text :: “)(princ tt) (princ “n”)
(command “undo” “e”)
(princ)
)
(defun tdd( / en ent a b bl bn i al tt ke j w_list )
(command “undo” “g”)
(setvar “cmdecho” 0)
(setvar “osmode” 0)
(setq a (ssget “x” ‘((0 . “text”)(1 . “”))))
(if a (command “erase” a “”))
(setq a (ssget “x” ‘((0 . “TEXT”))))
(if (null a) (exit))
(setq al (sslength a)
i 0
j 0
tt 0
ke (ssadd)
)
(setvar “cecolor” “bylayer”)
(setvar “celtype” “bylayer”)
(princ “n총처리 Text :: “)(princ al)(princ “n”)
(while (> al i)
(setq en (ssname a i)
ent (entget en)
i (1+ i)
xy (cdr (assoc 10 ent))
handle (cdr (assoc 5 ent))
layer (cdr (assoc 8 ent))
ang (cdr (assoc 50 ent))
size (cdr (assoc 40 ent))
text (cdr (assoc 1 ent))
xy0 (caadr (textbox ent))
xy1 (polar xy ang xy0)
xy2 (polar xy1 (+ (/ pi 2) ang) size)
xy3 (polar xy (+ (/ pi 2) ang) size)
xyc (polar xy (angle xy xy2) (/ (distance xy xy2) 2))
)
(command “zoom” “c” xyc (* xy0 2))
(setq b (ssget “cp” (list xy xy1 xy2 xy3 xy) (list (cons 1 text)(cons 8 layer))))
(if b (progn
(setq bl (sslength b)
j 0)
(while (> bl j)
(setq bn (ssname b j)
bent (entget bn)
bhand (cdr (assoc 5 bent))
j (1+ j)
)
(if (/= bhand handle)
(setq tt (1+ tt)
j (1+ j)
a (ssdel bn a)
bn (entdel bn)
al (1- al)
)
)
)
))
(princ “현처리 Text :: “)(princ i)(princ “r”)
)
(command “zoom” “e”)
(princ “n”)
(princ “지워진 Text :: “)(princ tt) (princ “n”)
(command “undo” “e”)
(princ)
)
(defun kDD()
(setvar “cmdecho” 0)
(command “undo” “g”)
(setq ss (ssget “x” ‘((0 . “TEXT”))))
(if (null ss) (exit))
(setq ssl (sslength ss)
i 0
k 0)
(princ “n 총처리 Text :: “)(princ ssl)(princ “n”)
(while (> ssl i)
(setq en (ssname ss i)
ent (entget en)
tv1 (cdr (assoc 1 ent))
tv tv1
i (1+ i)
)
(if (/= tv1 “”)(progn
(setq tl 1)
(while (= (substr tv tl 1) ” “)
(setq tv (substr tv 2))
)
(if (= tv “”) (entdel en))
(if (/= tv tv1)
(setq ent (subst (cons 1 tv) (assoc 1 ent) ent)
ent (entmod ent)
k (1+ k))
)
(setq tv tv1)
(setq tl (strlen tv))
(while (= (substr tv tl) ” “)
(setq tv (substr tv 1 (1- tl)))
(setq tl (1- tl))
)
(if (= tv “”) (entdel en))
(if (/= tv tv1)
(setq ent (subst (cons 1 tv) (assoc 1 ent) ent)
ent (entmod ent)
k (1+ k)
)
)
)
(progn
(setq k (1+ k))
(entdel en)
))
(princ “r 현처리 Text :: “)(princ i) (princ ” 중:”)(princ k)(princ “수정 “)
)
(command “undo” “e”)
(princ)
)
—————————————————————————————————————
감사합니다ㅣ 제도의 기초님 ㅜㅜ
정말 알수없는 캐드 바이러스 때문에 이만저만 고생이 아니었는데
볼록님 덕분에 단축키 안되는것도 reinit하고 설정해서 쓰니 처음에만 좀 불편할 뿐이고
포기했던 리습도 컴퓨터 자체에서 생성하면 안되고 다른 컴퓨터에서 리습 파일로 저장해서
제가 받으면 실행이 되네요……ㅜㅜ 정말 감사합니다.
확인해 보세요
텍스트 복사해서 메모장에 붙여넣고 저장할때 파일이름.lsp로 저장해서
올려주시면 되는데….부탁드립니다.