본문 바로가기
autocad

Edit Default String by DCL

by kmlab 2026. 9. 1.

기본 문자열을 글자 그대로 띄워놓고 커서를 움직여 일부만 수정

 

 

🔎 캐드 리습 문자열 입력에서 디폴트 문자열 보여주고 편집하기: 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