기본 문자열을 글자 그대로 띄워놓고 커서를 움직여 일부만 수정
🔎 캐드 리습 문자열 입력에서 디폴트 문자열 보여주고 편집하기: Google 검색
www.google.com
(defun c:EditDefault ( / defVal dcl_id userVal txtFile)
(setq defVal "수정할 기본 문자열") ; 기본값
;; 1. 임시 DCL 파일 생성
(setq txtFile (open (setq dclFile (vl-filename-mktemp "editbox.dcl")) "w"))
(write-line "edit_text : dialog { title = \"문자열 편집\";" txtFile)
(write-line " : edit_box { label = \"내용 : \"; key = \"str_key\"; edit_width = 40; allow_accept = true; }" txtFile)
(write-line " ok_cancel;" txtFile)
(write-line "}" txtFile)
(close txtFile)
;; 2. DCL 로드 및 실행
(setq dcl_id (load_dialog dclFile))
(if (not (new_dialog "edit_text" dcl_id)) (exit))
;; 3. 에디트박스에 기본값 채우기 및 포커스 지정
(set_tile "str_key" defVal)
(mode_tile "str_key" 2) ; 텍스트 전체 선택 상태로 포커스
;; 4. 확인/취소 버튼 액션
(action_tile "accept" "(setq userVal (get_tile \"str_key\")) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq status (start_dialog))
(unload_dialog dcl_id)
(vl-file-delete dclFile) ; 임시 파일 삭제
;; 5. 결과 처리
(if (= status 1)
(princ (strcat "\n최종 입력값: " userVal))
(princ "\n입력이 취소되었습니다.")
)
(princ)
)반응형
'autocad' 카테고리의 다른 글
| ScriptPro (0) | 2026.09.10 |
|---|---|
| 캐드리습에서 (getstring 따옴표 없이 입력받기 (0) | 2026.09.09 |
| VeLISP (0) | 2026.08.31 |
| Select dwg files DCL (0) | 2026.08.28 |
| lisp으로만 batch 실행하기 (0) | 2026.08.27 |