******************************************************************
1. 컴퓨터 사양 (간략히) : 인텔 제온 7560 @ 2.26Ghz, 가상화 pc 사용중
2. 캐드버전 과 종류 : 캐드 2013
3. 운영체제(윈도우)버전과 비트수 : 윈도우 7 프로 K 32비트
4. 보조프로그램 사용유무 :
********************************************************************
2010에서 쓰던 리습들 2013에서 쓰려곡 하는데
AP 눌러서 가방에서 추가도 해보고
그냥 그자리에서 로드도 해봤는데
도무지 실행이 되지 않습니다.
근데 여기서 받은 리습은 가끔 실행되는 것들이 있는데
혹시나 해서 그 리습 복사본 만들어서
내용을 제가 쓰려는 리습으로 바꿔서 저장하고 리습 추가도 해봤지만
도무지 해결이 안되네요;;;; 이것도 이전 질문에 있던 회사 자체에 있는
파일 관리 시스템때문인건가요;;;? 하……리습 몇개만 쓰면되는데 답답하네요;;
———————————————————————————————————–
이건 2010에서는 되던 리습인데 2013에서는 인식조차 안되는 리습 – 문자 8진 오류남
//////////////////////////////////////////////////////////////////////////////////
(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 c:cd(/ lup zin )
(SETQ OLDOSM (GETVAR “OSMODE”))
(SETVAR “OSMODE” 0)
(setq lup(getvar “luprec”))
(setvar “luprec” 2)
(setq zin(getvar “dimzin”))
(setvar “dimzin” 0)
(setvar “cmdecho” 0)
(SETQ lsca 1000)
(command “modemacro” “Using Program is Coordinate Draw”) ;;;이것이 뭔 프로그램인지는 알려야제잉
(setq datfile (getfiled “좌표파일 선택[*.*]” “” “*” 2)) ;;;읽어올 파일 이름이 뭣이여 ?
(setq df (open datfile “r”)) ;;;이름을 알았응께로 읽기용으로 열어부러
(setq ap nil)
(setq dtype (getint “데이타분리형식이 comma(1)/space(2) <1> : “)) ;;;데이타 형식이 어떤 것인가 ?
(if (= dtype nil)(setq dtype “,”)(setq dtype ” “)) ;;;뭣이여~ 엔터를 쳐부러야…그라믄 콤마 넣고 아니먼 스페이서 넣어브러라
(SETQ sca (GETINT “도면축척을 입력하시오. 현재 축척은 1/<1,000> :”)) ;;;문자크기땜시로 스케일을 좀 입력해줘야 것구마이
(IF (= sca nil) (SETQ sca lsca)) ;;;또 엔터를 쳐부렀어야…흐미…그라믄 기본값1000 넣어브러
(setq space1 (getint “2차원/3차원 <3> : “)) ;;;2차원이여 3차원이여 ?
(if (= space1 “”)(setq space1 3)) ;;;맨날 엔터만 치구마이..그라믄 3차원잉께 “3”을 저장해부러 아니먼 당근 “2”제
;;;——–Work LAYER Made————————
(COMMAND “LAYER” “M” “EL” “C” “red” “” “”)
(COMMAND “LAYER” “M” “NO” “C” “WHITE” “” “”)
;;;———————————————–
(while (/= (setq data (read-line df)) nil) ;;;데이타파일이 끝이 아니먼 한줄 읽어다가 data에 넣어브러
(setq coord_data (search_Cha data dtype)) ;;;쩌그 우게 있는 데이타변환함수에다 넣어서 분리해갖고 Coord_data에 넣어브러라
(setq pn (car coord_data)) ;;;번호뽑아라
(setq x1 (cadr coord_data)) ;;;X좌표도 뽑아라
(setq y1 (caddr coord_data)) ;;;Y좌표도 뽑아블고
(setq el1 (nth 3 coord_data)) ;;;Z좌표도 뽑아블어라
(setq sym (nth 4 coord_data)) ;;;흐미..심볼까정…그려..뽑아라
(setq ap (append ap (list pn x1 y1 el1 sym))) ;;;순서대로 ap에 LIST로 저장해브러
)
;;; ────────────────────────── 현재측점자료를 화면에 그림
(setq n 0) ;;; 반복변수 비우고
(setq cp “”) ;;; 중심좌표변수도 비워브러
(setq dataleng (length ap)) ;;; 누적변수(ap)의 데이타수가 멧깨여 ?
(while (< n dataleng) ;;; 반복값이 ap의 데이타수보다 작으면 계속해브러
(setq no1 (nth n ap)) ;;; ap데이타에서 반복값의 위치에 있는 값 뽑아서 no1에 넣어브러
(setq po2 (nth (+ 1 n) ap)) ;;; ap데이타에서 (반복값+1)의 위치에 있는 값 뽑아서 po1에 넣어브러
(setq po1 (nth (+ 2 n) ap)) ;;; ap데이타에서 (반복값+2)의 위치에 있는 값 뽑아서 po2에 넣어브러..흐미 이거 한번에 못 는다냐..
(setq symbol (nth (+ 4 n) ap)) ;;; ap데이타에서 심볼 그넘 이름좀 뽑아서 symbol에 넣어브러
(if (= space1 2) ;;; 2차원이여?
(progn
(setq el (nth (+ 3 n) ap)) ;;; 2차원이랑께로 지반고는 0이여
(setq po3 0)
)
(progn
(setq po3 (nth (+ 3 n) ap)) ;;; 3차원이랑께 ap데이타에서 (반복값+3)의 위치에 있는 값 뽑아서 po3에 줘브러라
(setq el po3)
)
) ;;; 비교 그만허자
(setq pp (list po1 po2 po3)) ;;; pp변수에 po1, po2, po3를 좌표값저장해라
(COMMAND “LAYER” “S” “NO” “”)
(command “text” “mc” pp 0.25 0 (rtos no1 2 0)) ;;; 번호 써블고
(COMMAND “LAYER” “S” “EL” “”)
(command “text” “c” pp 0.25 0 (rtos el 2 2)) ;;; 지반고도 써브러라
(command “point” pp)
(if (/= symbol “”) ;;; symbol이 들어있구마잉
(command “insert” symbol pp “1” “1” “”) ;;; 그라믄 심볼 찾어서 넣어브러…없으먼 ?…아 당연히 에러제…- -+
)
(setq n (+ 5 n)) ;;; ap의 리스트가 (no,x,y,z,symbol)이므로, 반복값을 5로 할당
(COMMAND “LAYER” “S” “0” “”)
)
;;; ────────────────────────── 여그까지가 point하고, 번호하고, 심볼 넣은것이여.
(close df) ;;; 일 다했응께 파일 닫어라.
;;; ────────────────────────── 흐미..선도 연결해야 된다고라…
(setq df (open datfile “r”)) ;;; 아까 연거 또 열어라..파일말이여 파일
(setq ap nil) ;;; 당근 누적변수도 지워야제..쫌 인자 알아서 해라
;;;——–Work LAYER Made————————
(COMMAND “LAYER” “M” “HLINE” “C” “white” “” “”)
;;;———————————————–
(while (/= (setq data (read-line df)) nil) ;;;아까 해봤제 ? 데이타 보내서 정리해갖고 뽑아서 넣어라.
(setq coord_data (search_Cha data dtype))
(setq pn (car coord_data))
(setq x1 (cadr coord_data))
(setq y1 (caddr coord_data))
(setq el1 (nth 3 coord_data))
(setq ap (append ap (list pn x1 y1 el1)))
)
;;; ────────────────── 여그서 부터 뽑아온넘 갖고 선그리는 것이여…데이타 뽑는 것은 우게서도 해봤제 ?
(setq n 0) ;;; 반복변수 초기화
(setq cp “” op “” op1 “”) ;;; 중심좌표변수 초기화
(setq dataleng (length ap)) ;;; 누적변수(ap)의 데이타수 확인
(while (< n dataleng) ;;; 반복값이 ap의 데이타수보다 작으면 반복수행
(setq no1 (nth n ap)) ;;; ap데이타에서 반복값의 위치에 있는 값을 추출하여 no1에 입력
(setq po2 (nth (+ 1 n) ap)) ;;; ap데이타에서 (반복값+1)의 위치에 있는 값을 추출하여 po1에 입력
(setq po1 (nth (+ 2 n) ap)) ;;; ap데이타에서 (반복값+2)의 위치에 있는 값을 추출하여 po2에 입력
(if (= space1 2) ;;; 2차원이여 ?
(setq po3 0) ;;; 2차원이라고 항께로 지반고값은 0이여..
(setq po3 (nth (+ 3 n) ap)) ;;; 3차원잉께 ap데이타에서 (반복값+3)의 위치에 있는 값을 추출해서 po3에 넣어브러
)
(setq pp (list po1 po2 po3)) ;;; pp변수에 po1, po2를 좌표값으로 바꿔서 넣어라
(if (= op1 no1) ;;;번호가 전점과 같냐 ?
(command “line” op pp “”) ;;;번호가 같그마이…LINE으로 연결해브러.
) ;;;틀리면 말고…- -;
(setq op1 no1) ;;;현재 번호를 저장해라…비교해야 된당께로
(setq op pp) ;;;현재 포인트좌표도 저장해둬라…또 비교해보게
(setq n (+ 4 n)) ;;; ap의 리스트가 (no,x,y,z)이므로, 반복값을 4로 할당
)
;;; ────────────────── 선도 다 그려부렀어
(COMMAND “LAYER” “S” “0” “”)
(close df) ;;; 작업파일 닫어브러..인자 진짜 끝났응께
(SETVAR “OSMODE” oldosm) ;;; 오스냅 초기설정값은 돌려줘야제..갖고 가서 뭐할라냐 ?
) ;;; 고생했어..인자 다 끝났브렀다.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
넵…
//////////////////////////////////////////////////////////////////////////////////
(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)
)
//////////////////////////////////////////////////////////////////////////////
빨간 부분이 문제입니다
즉… 빨간부분은 별도의 리습을 리습에서 불러오는 부분인대
이부분이 빠져있습니다
1. 검은부분은 캐드 내부명령들이라, 무리없이 실행되지만,
빨간부분은 , 외부리습이 있어 스걸 호출합니다
2. 만약 위 빨간부분의 리습이있어도 안된다면,
같이 모두, 올려 주시면, 봐드리겠습니다..
3. 저는 리습은 잘모릅니다.. 하나, 답글이 없어
염치없이 올렸습니다..
4. 여기 고캐드에는 리습이나, VB 분야 초절정고수님들이 많습니다..
저는 월미도 모래알보다 못합니다
5. 위 기능은 뭐 별건어닙니다… 도면을 매우 정밀하게
검사,퍼지, 주석초기화, 레이어필터삭제, 빈문자삭제, 빈객체삭제 등등
해주는 리습으로 차라리, 더강력한 리습을 하나 올려드립니다
사용해 보셔요,….
사용법은 위 도면 스마트퍼지기능은 명령어 XX 입니다..
다른 여러명령도 많은데 필요하면 올려드릴께요
일단 답변 감사드립니다. 그런데 이런것도 문제가 되나 싶네요;;;
(defun c:ww ()
(setvar “cmdecho” 0)
(command “zoom” “e”)
(command “qsave”)
(command “close”)
(princ)
)
이런 단순한 구문들도 오류가나는데 참 슬프네요…8진 오류 대체 뭔지 모르겟습니다…
그냥 확대후 저장하고 닫기 인데;;;
1. DRM에의한 보안문제
2. 캐드바이러스로 인한 함수 오류
중 하나인ㄹ듯합니다
두개다…
APPLOAD ww.lsp이(가) 성공적으로 로드되었습니다.
명령: ; 오류: 잘못된 문자 읽기(8진): 20
이렇게 뜨네요….아무래도 볼록2님 말씀대로 바이러스거나
회사 자체 파일 관리 프로그램 때문인거 같습니다.