온스넵이 자꾸 꺼지네요. 좌표추출하고 그런건데 모가틀린지 봐주시면 감사합니다.
; 이 프로그램은 좌표전개도용이며 누구든지 사용할수 있읍니다.
; <사용법>
; (1) 프로그램을 로드시킨다.
; (2) 우선 TH를 실행시켜서 텍스트의 크기를 지정해준다.
; (3) 좌표를 쓸경우에는 XX를 실행.
; (4) bearing과 거리를 쓸경우에는 AN을 실행.
; (5) IP 포인트를 입력할 경우에는 IP를 실행.
; (5) Release12를 기준으로 만들었으므로 10,11에서는 에러가 날걸
; (6) 텍스트의 크기를 변경할 경우에는 TH를 다시 설정.
; <주의> — AutoCAD에서 UNITS를 제대로 잡았는지 꼭 확인 해주셔 용
; (단위, 소숫점, 각도의 방향 등)
;#######################################################################
;; 1994. 4. 8. by Ahn, Yoon-Young
;; Text height ——— TH
;; Coordinate ———- XX
;; Bearing & Distance — AN
;; IP pointing ——— IP
(defun rtd (a)
(/ (* a 180.0) pi)
)
(defun C:TH()
(setq th (getreal “nEnter Text size : “))
(defun C:AN (/ tt pt1 pt2 len ang mid pt3 ang1 txt1 txt2 l tdt k)
(graphscr)
(setvar “cmdecho” 0)
(setq os (getvar “OSMODE”))
(setvar “OSMODE” 1)
(setq pt1 (getpoint “nCatch a start point :”))
(setq pt2 (getpoint “nCatch a next point :”))
(setvar “OSMODE” os)
(setq len (distance pt1 pt2))
(setq ang (angle pt1 pt2))
(setq mid (/ len 2))
(setq pt3 (polar pt1 ang mid))
(setq ang1 (rtd ang))
(setq txt1 (angtos ang 1 2))
(setq txt2 (rtos len))
(setq l (strlen txt1))
(setq l (- l 2))
(setq tdt (substr txt1 1 1))
(setq k 1)
(repeat l
(setq k (+ k 1))
(setq t (substr txt1 k 1))
(if (= “d” t) (setq t “-“))
(if (= “‘” t) (setq t “-“))
(setq tdt (strcat tdt t))
)
(command “TEXT” “J” “C” pt3 th ang1 tdt)
(command “TEXT” “J” “TC” pt3 th ang1 txt2)
(setvar “OSMODE” 0)
(prompt “n*******Ahn*****Yoon*****Young******* “)
)
)
;;; Print a coordination
;;; 1994.12.10
(defun C:XX (/ p1 p2 x1 x2 z1 z2 p3 txt1 txt2 tp1 tp2 tp3 txtp1 txp2)
(graphscr)
(setvar “osmode” 33)
(setq p1 (getpoint “nPick coordination point : “))
(setvar “osmode” 0)
(setq p2 (getpoint “nPick flag point : “))
(setq x1 (car p1)
x2 (cadr p1)
z1 (car p2)
z2 (cadr p2))
(if (< x1 z1)
(progn
(setq p3 (polar p2 0 (* th 12))))
(progn
(setq p3 (polar p2 pi (* th 12)))) ; pi= radian angle(3.14)
)
(command “LINE” p1 p2 p3 “”)
(setq txt1 (rtos x1 2 4) ; notice — reversal of coord
txt2 (rtos x2 2 4) ;
txt11 (strcat ” X:”txt2) ;
txt22 (strcat ” Y:”txt1)) ;
(setq tp1 (+ z2 (/ th 4)) ; address of X-coord
tp2 (- z2 (* th 1.2)) ;
tp3 (car p3)) ;
(if (< x1 z1)
(progn
(setq txp1 (list z1 tp1))
(setq txp2 (list z1 tp2)))
(progn
(setq txp1 (list tp3 tp1))
(setq txp2 (list tp3 tp2)))
)
(command “TEXT” txp1 th “0” txt11)
(command “TEXT” txp2 th “0” txt22)
(setvar “osmode” 33)
(prompt “n*******Ahn*****Yoon*****Young******* “)
)
;; IP display LISP
;; 1994.12.12
(defun C:IP(/ en1 en2 ip1 ip2 txt1 txt2 cir)
(setvar “CMDECHO” 0)
(setq en1 (entsel “nChoose a line..”))
(setq en2 (entsel “nChoose a next line..”))
(setvar “FILLETRAD” 0)
(command “FILLET” en1 en2)
(setvar “OSMODE” 1)
(setq ip1 (getpoint “nPick a IP point..”))
(setvar “OSMODE” 0)
(setq ip2 (getpoint “nPick a IP-Text point..”))
(setq txt1 (getstring “nEnter a IP-Number : “))
(setq cir (* 2 th))
(command “LINE” ip1 ip2 “”)
(command “CIRCLE” ip2 cir)
(command “TRIM” “l” “” ip2 “”)
(setq txt2 (strcat “IP:”txt1))
(command “TEXT” “j” “mc” ip2 th “0” txt2)
(setq ipx (car ip1))
(setq ipy (cadr ip1))
(setq px (rtos ipx))
(setq py (rtos ipy))
(setq px1 (strcat ” X : “py))
(setq py1 (strcat ” Y : “px))
(setq iy (list ipx (- ipy (* 1.5 th))))
(command “TEXT” ip1 th “0” px1)
(command “TEXT” iy th “0” py1)