안녕하세요..
봄기운이 조금씩 느껴지는군요…
리습 초보생인데 여기서 많이 배우고 있습니다..
text 리습인데 text 쓰고 다시 마우스 왼쪽 클릭으로 입력점 선택하면
다시 text 입력대기가 되는 리습 만들었습니다…
어려운점 물어 볼려구요…
모두 건강하시구 조은 하루 되시길……
(defun c:at (/ hight ang djari1 mj mj2)
(setvar “cmdecho” 0)
(( ^^* )) (setq mj (strcase (getstring “n문자의 시작점 지정 또는 [자리맞추기(J)]: ” )))
;;; 캐드에서 dtext 실행하면 위와 같이 “문자의 시작점 지정 또는 [자리맞추기(J)]” 메세지가 커맨드 라인에 뜨면서 사용자 입력을 대기하고 있는데 리습에서 시작점(getpoint) 과 옵션[“s” “j” ](getstring) 을 동시에(입력점인지 문자인지 판단하여)
입력 받을수 있는 방법(함수)이 있나요???
지금은 편법으로 옵션부터 받고 옵션 선택안하면(엔터치면) 시작점 입력
받게 했거든요…
(if (= mj “”) ;if 1 start
(setq mj2 (getpoint “n문자의 시작점 지정 또는 [자리맞추기(J))]: ” ))
) ;if 1 end
(if (= mj “J”) ;if 4 start
(progn ;progn 1 start
(setq djari1 (strcase (getstring “n 자리 맞추기..![정렬(A)/맞춤(F)/중심(C)/중간(M)/오른쪽(R)/좌상단(TL)/상단중앙(TC)/우상단(TR)/좌
측중간(ML)/중앙중간(MC)/우측중간(MR)/좌하단(BL)/하단중앙(BC)/우하단(BR)] < BL > : “)))
(if (= djari1 “”) ;if 5 start
(setq djari1 “BL”))
(setq mj2 (getpoint “n문자의 시작점 지정을 지정하세요!: ” ))
;;;;여기서 자리 정렬 옵션 명령 종료후 다시 처음으로((^^*))—요부분 ㅋㅋ
리턴(?) 시키는 명령어가 뭔지 도움 부탁드립니다…어떤 구간을 반복하다가 조건을 만나면 제가 지정한 명령줄로 리턴 할수 있나요…
(setq hight (getreal “n 문자 높이를 지정하세요! <2.5> :”))
(if (= hight nil)
(setq hight 2.5))
(setq ang (getreal “n 문자 각도를 지정하세요! <0> :”))
(if (= ang nil)
(setq ang 0))
(while (/= mj2 nil)
(command “dtext” “j” djari1 mj2 hight ang )
(setq mj2 (getpoint “n 문자의 위치를 지정해 주세요 ! <중지 : Enter> : “))
) ;if 5 end
) ;progn 1 end
) ;if 4 end
(if (/= mj2 nil ) ;if 5 start
(progn ;progn 2 start
(setq djari1 “bl”)
(setq hight (getreal “n 문자 높이를 지정하세요! <2.5> :”))
(if (= hight nil)
(setq hight 2.5))
(setq ang (getreal “n 문자 각도를 지정하세요! <0> :”))
(if (= ang nil)
(setq ang 0))
(while (/= mj2 nil)
(command “dtext” “j” djari1 mj2 hight ang )
(setq mj2 (getpoint “n 문자의 위치를 지정해 주세요 ! <중지 : Enter> : “))
)
(if(= mj2 nil) ;if 7 start
(progn ;progn 3 start
(prompt “n .”)
(prompt “n 웃는 하루 좋은 하루 n “)
) ;progn 3 end
) ;if 7 end
) ;progn 2 end
) ;if 5 end
(setvar “cmdecho” 1)
(princ)
)