(defun c:CLP ()
(prompt “n객체를 선택하세요.”)
;; 객체 선택
(setq obj (car (entsel “n객체를 선택하세요: “)))
;; 사용자가 특정 좌표를 입력
(if (setq user-pt (getpoint “n특정 좌표를 지정하세요: “))
(progn
;; 객체에서 가장 가까운 점 계산
(if obj
(progn
;; 객체의 가장 가까운 점 계산
(setq closest-pt (vlax-curve-getClosestPointTo obj user-pt))
;; 결과 좌표 출력
(prompt (strcat “n가장 가까운 점 좌표: ” (vl-princ-to-string closest-pt)))
;; 객체의 레이어 가져오기
(setq obj-layer (cdr (assoc 8 (entget obj))))
;; 선 생성: 저장한 좌표에서 사용자 지정 좌표로
(entmakex
(list
(cons 0 “LINE”) ; 객체 타입
(cons 8 obj-layer) ; 객체 레이어
(cons 10 closest-pt) ; 시작점 좌표
(cons 11 user-pt) ; 끝점 좌표
)
)
(prompt “n선이 생성되었습니다.”)
)
(prompt “n유효한 객체가 아닙니다.”)
)
)
(prompt “n좌표를 입력해야 합니다.”)
)
(princ) ;; 종료
)
위 리습은 선택한 객체와 입력한 좌표의 최단거리의 연결선을 생성해주는 리습입니다.
개선하고자 하는 점은
- 객체를 다중 선택하여 여러 객체에 대해 한 지점으로 연결선을 생성
- 특정 좌표 입력 단계에서 엔터 입력 시 이전 작업 시 사용한 좌표 사용
이 두가지 인데 모자란 제 실력으로는 자꾸 인수 부족 오류가 발생해서
고수님들께 도움을 요청합니다.
감사합니다.
메일주소
brave7239@naver.com 입니다.
감사합니다. 잘 사용하겠습니다.