2009에서 잘쓰고 있었는데
2019버전을 쓰니깐 안되네요 ㅠㅠ
cad no function definition : DTR 이렇게 나옵니다.
뭘 수정해야 할까요?
;**********************************OOOOOOOO.LSP(기준 객체를 중심으로 양쪽으로 옵섿)*******************************
(defun c:OO()
(setq olderr *ERROR*)
(setq os_m (getvar “osmode”))
(setvar “osmode” 37)
(setvar “cmdecho” 0)
(if (= OFF100 nil) (setq OFF100 0))
(SETQ OFF_100 OFF100)
(SETQ OOABC “”)
(PRINC “N 양쪽 간격의 총 크기 [반지름 (R)] “)
(PRINC “< “) (PRINC OFF_100) (PRINC” > :”)
(setq OOABC (strcase (getstring)))
(setq OFF100 (ATOf OOABC))
(IF (OR (= OOABC “R” ) (= OOABC “r”))
(PROGN
(SETQ OO222 (/ OFF_100 2))
(setq OFF100 (getreal (strcat “n양쪽 간격의 반 지름 <” (rtos OO222) “>:”)))
(SETQ OFF_100 (* OO222 2))
(SETQ OFF100 (* OFF100 2))
)
)
(IF (OR (= OFF100 NIL) (= OFF100 0))
(SETQ OFF100 OFF_100)
)
(PRINC “N 양쪽 간격의 총 크기 [반지름 (R)] “)
(PRINC “< “) (PRINC OFF_100) (PRINC” > :”)
(setq OOABC (strcase (getstring)))
(setq OFF100 (ATOf OOABC))
(IF (OR (= OOABC “R” ) (= OOABC “r”))
(PROGN
(SETQ OO222 (/ OFF_100 2))
(setq OFF100 (getreal (strcat “n양쪽 간격의 반 지름 <” (rtos OO222) “>:”)))
(SETQ OFF_100 (* OO222 2))
(SETQ OFF100 (* OFF100 2))
)
)
(IF (OR (= OFF100 NIL) (= OFF100 0))
(SETQ OFF100 OFF_100)
)
(setq off1(* off100 0.5))
(SETQ a1(SSGET))
(SETQ NUM(SSLENGTH a1))
(SETQ INDEX 0)
(REPEAT NUM(SETQ b1(entget(ssname a1 index)))
(setq kkke(cdr(assoc 0 b1)))
(IF(= “LINE” kkke)
(progn
(setvar “osmode” 0)
(setq c1(assoc 10 b1))
(setq c2(assoc 11 b1))
(setq d1(cdr c1))
(setq d2(cdr c2))
(setq ang(angle d1 d2))
(setq p1(polar d1(+ ang(dtr 90)) off1))
(setq p2(polar d1(- ang(dtr 90)) off1))
(setq p3(polar d2(+ ang(dtr 90)) off1))
(setq p4(polar d2(- ang(dtr 90)) off1))
(command “line” p1 p3 “”)
(command “line” p2 p4 “”)
(setq index(+ index 1))
(command “osmode” 191)
(SETQ KIS OFF100)
)
)
(if(= “ARC” kkke)
(progn
(setvar “osmode” 0)
(setq cc1(assoc 10 b1))
(setq rr1(assoc 40 b1))
(setq c1(assoc 50 b1))
(setq c2(assoc 51 b1))
(setq dd1(cdr cc1))
(setq r1(cdr rr1))
(setq d1(cdr c1))
(setq ang1(rtd d1))
(setq d2(cdr c2))
(setq ang2(rtd d2))
(setq ptt1(+ r1 off1))
(setq ptt2(- r1 off1))
(setq kkkk1(strcat “@”(rtos ptt1) “<“(rtos ang1)))
(setq kkkk2(strcat “@”(rtos ptt1) “<“(rtos ang2)))
(setq kkkk3(strcat “@”(rtos ptt2) “<“(rtos ang1)))
(setq kkkk4(strcat “@”(rtos ptt2) “<“(rtos ang2)))
(command “arc” “c” dd1 kkkk1 kkkk2)
(command “arc” “c” dd1 kkkk3 kkkk4)
(command “osnap” “int”)
(setq index(+ index 1))
(SETQ KIS OFF100)
(COMMAND “osmode” os_m)
)
)
)
)
(SETQ a1(SSGET))
(SETQ NUM(SSLENGTH a1))
(SETQ INDEX 0)
(REPEAT NUM(SETQ b1(entget(ssname a1 index)))
(setq kkke(cdr(assoc 0 b1)))
(IF(= “LINE” kkke)
(progn
(setvar “osmode” 0)
(setq c1(assoc 10 b1))
(setq c2(assoc 11 b1))
(setq d1(cdr c1))
(setq d2(cdr c2))
(setq ang(angle d1 d2))
(setq p1(polar d1(+ ang(dtr 90)) off1))
(setq p2(polar d1(- ang(dtr 90)) off1))
(setq p3(polar d2(+ ang(dtr 90)) off1))
(setq p4(polar d2(- ang(dtr 90)) off1))
(command “line” p1 p3 “”)
(command “line” p2 p4 “”)
(setq index(+ index 1))
(command “osmode” 191)
(SETQ KIS OFF100)
)
)
(if(= “ARC” kkke)
(progn
(setvar “osmode” 0)
(setq cc1(assoc 10 b1))
(setq rr1(assoc 40 b1))
(setq c1(assoc 50 b1))
(setq c2(assoc 51 b1))
(setq dd1(cdr cc1))
(setq r1(cdr rr1))
(setq d1(cdr c1))
(setq ang1(rtd d1))
(setq d2(cdr c2))
(setq ang2(rtd d2))
(setq ptt1(+ r1 off1))
(setq ptt2(- r1 off1))
(setq kkkk1(strcat “@”(rtos ptt1) “<“(rtos ang1)))
(setq kkkk2(strcat “@”(rtos ptt1) “<“(rtos ang2)))
(setq kkkk3(strcat “@”(rtos ptt2) “<“(rtos ang1)))
(setq kkkk4(strcat “@”(rtos ptt2) “<“(rtos ang2)))
(command “arc” “c” dd1 kkkk1 kkkk2)
(command “arc” “c” dd1 kkkk3 kkkk4)
(command “osnap” “int”)
(setq index(+ index 1))
(SETQ KIS OFF100)
(COMMAND “osmode” os_m)
)
)
)
)
감사합니다~
수정 적용해 보겠습니다.~
dtr 함수가 없어서 인데..
(defun dtr(x)
(* x (/ pi 180.0))
);; 요걸 추가 하시던지
(setq p1(polar d1(+ ang(dtr 90)) off1))
(setq p2(polar d1(- ang(dtr 90)) off1))
(setq p3(polar d2(+ ang(dtr 90)) off1))
(setq p4(polar d2(- ang(dtr 90)) off1)) ;;요 4줄을
(setq p1(polar d1(+ ang (* 0.5 pi)) off1))
(setq p2(polar d1(- ang (* 0.5 pi)) off1))
(setq p3(polar d2(+ ang (* 0.5 pi)) off1))
(setq p4(polar d2(- ang (* 0.5 pi)) off1)) ;;요렇게 바꾸시던지…