■ 유용한 캐드&리습/▫ AutoLISP
좌표표기하기
아키모아 주말농부
2024. 12. 31. 09:19
728x90
; 좌표표기하기(2008.3.20 주말농부)
; ->텍스트로 된 X,Y 좌표을 찍어 위치에 박스을 표현하기
(defun c:pt(/ os ss1 ss2 pt1 pt2 ptx pty en1 en2 ds p1 p2)
(setq os (getvar "osmode"))
(setq ss1 (entsel "\nX좌표값을 선택->"))
(setq ss2 (entsel " Y좌표값을 선택->"))
(setvar "osmode" 0)
(setq pt1 (cadr ss1))
(setq en1 (car ss1) en2 (car ss2))
(setq ptx (cdr (assoc 1 (entget en1))))
(setq pty (cdr (assoc 1 (entget en2))))
(setq pt2 (list (atof ptx) (atof pty)))c
(command "line" pt1 pt2 "")
(setq ds 23) ;박스 규격
(setq p1 (polar pt2 0 (/ ds 2)))
(setq p1 (polar p1 (/ pi 2) (/ ds 2)))
(setq p2 (polar p1 pi ds))
(setq p2 (polar p2 (* pi 1.5) ds))
(command "rectangle" p2 p1)
(setvar "osmode" os)
(prin1))
; ->텍스트로 된 X,Y 좌표을 찍어 위치에 박스을 표현하기
(defun c:pt(/ os ss1 ss2 pt1 pt2 ptx pty en1 en2 ds p1 p2)
(setq os (getvar "osmode"))
(setq ss1 (entsel "\nX좌표값을 선택->"))
(setq ss2 (entsel " Y좌표값을 선택->"))
(setvar "osmode" 0)
(setq pt1 (cadr ss1))
(setq en1 (car ss1) en2 (car ss2))
(setq ptx (cdr (assoc 1 (entget en1))))
(setq pty (cdr (assoc 1 (entget en2))))
(setq pt2 (list (atof ptx) (atof pty)))c
(command "line" pt1 pt2 "")
(setq ds 23) ;박스 규격
(setq p1 (polar pt2 0 (/ ds 2)))
(setq p1 (polar p1 (/ pi 2) (/ ds 2)))
(setq p2 (polar p1 pi ds))
(setq p2 (polar p2 (* pi 1.5) ds))
(command "rectangle" p2 p1)
(setvar "osmode" os)
(prin1))

728x90