반응형
구글에서 검색하면 좌표 추출 리습이 많이 있다.
내가 주로 쓰는 리습은
"coor-xy-landscape100.lsp"
근데, 좀 불편 하다.
짧은 내 실력으로 조금 수정 해봤다.
(defun C:@xy()
(setvar "cmdecho" 0)
(setq now_osmode (getvar "osmode"))
(setq now_layer (getvar "clayer"))
(command "-layer"
"M"
"좌표추출A"
"C"
"6"
""
"" ; END_Enter
)
(setvar "osmode" 15359)
(setq ht 1)
(setq pt1 (getpoint "\n Pick xy Point: "))
(while pt1
(setq pt2 (getpoint "\nPick 1st flag point: "))
(setq pt3 (getpoint "\nPick left or right point: "))
(setq x1 (car pt1))
(setq y1 (cadr pt1))
(setq ax (rtos x1 2 4))
(setq ay (rtos y1 2 4))
(setq x2 (car pt2))
(setq y2 (cadr pt2))
(setq x3 (car pt3))
(setq y3 (cadr pt3))
(if (< x3 x2) (setq x4 (- x2 (* ht 10))))
(if (> x3 x2) (setq x4 (+ x2 (* ht 10))))
(setq y4 y2)
(setq pt4 ( list x4 y4 ))
(command "pline" pt1 pt2 pt4 "")
(setq x1 (/ (+ x2 x4) 2))
(setq y1 (+ y2 (* ht 0.25)))
(setq pt1 (list x1 y1))
(command "text" "c" pt1 ht 0 ay)
(setq y1 (- y2 (* ht 1.25)))
(setq pt1 (list x1 y1))
(command "text" "c" pt1 ht 0 ax)
(setq pt1 (getpoint "\nPick xy Point: "))
)
(princ)
(setvar "osmode" now_osmode)
(setvar "clayer" now_layer)
)
대충 내용을 정리하면,
@xy 라는 명령어를 실행하면, 현재의 osmode와 현재 Layer를 기억하고..... "좌표추출A"라는 새로운 레이어를 만들고 osmode는 전체를 켜고, 두점을 찍으면, 좌표를 적는 걸 반복하고, 마지막에 Enter 또는 스페이스바를 누르면, 기존에 기억하고 있던, 레이어와 osmode로 복귀 하라는 내용. |
반응형
'침실2_CAD' 카테고리의 다른 글
CAD LISP- 블록 단위 출력 (0) | 2022.10.07 |
---|---|
Auto CAD- 플롯스타일(펜) CTB / STB (0) | 2022.07.17 |
캐드 배우기(최소한의 명령어) (1) | 2022.04.03 |
MSPACE vs. PSPACE (0) | 2022.02.20 |
CAD LISP- getvar / setvar (0) | 2022.01.23 |
Auto CAD- 불필요한 Layer 삭제(LayDel) (0) | 2021.12.05 |
Auto CAD- DCL 미리보기 (0) | 2021.11.21 |
Auto CAD- WIPEOUT(명령) (1) | 2021.03.14 |
Auto CAD- 동적 블록 (0) | 2021.02.28 |
CAD LISP- DCL 라디오 버튼으로 다른 리습 실행 (0) | 2021.02.21 |