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)
)
—————————————————————————————————————
텍스트 복사해서 메모장에 붙여넣고 저장할때 파일이름.lsp로 저장해서
올려주시면 되는데….부탁드립니다.
확인해 보세요
감사합니다ㅣ 제도의 기초님 ㅜㅜ
정말 알수없는 캐드 바이러스 때문에 이만저만 고생이 아니었는데
볼록님 덕분에 단축키 안되는것도 reinit하고 설정해서 쓰니 처음에만 좀 불편할 뿐이고
포기했던 리습도 컴퓨터 자체에서 생성하면 안되고 다른 컴퓨터에서 리습 파일로 저장해서
제가 받으면 실행이 되네요……ㅜㅜ 정말 감사합니다.