이제 막 리습을 사용하고 짜보는 초보인데요
getstring으로 해당 텍스트의 내용의 저장후
ssget으로 선택하고 zoom기능을 이용해 찾고 해당 위치로 이동시킬려는
리습을 한번 짜볼려고하는데
(defuc c:dkdkdkdkdk()
(setq Findbae(getstring “n>> Enter the search text :”))
(setq ss (ssget “x” ‘((0 , “text”)(1 . 문제부문)))
(setq dd (command “zoom” “o” “p” “”)
(princ)
) ;defunend
요론식으로 짜볼려고하는데 위의(1 . 문제부분에서)
ssget을 사용할때 getstring으로 저장해논 findbae의 내용을 담고 싶은데
어떻게 저장해논 내용을 넣어야 할지 몰라서 질문드립니다
문자를 입력해야되는데 getstring의 내용을 어떻게 담아야할지..답변 부탁드립니다
원하는 완성리습은 getstring 으로 텍스트를 치고 그 저장된 텍스트를 ssget으로 선택하고
커맨트 zoom을 활용해 이전선택한 객채로 이동하는것인데…답변 부탁드립니다
하지만 한줄씩 직접실행하고 수정하는 작업은 안하신것 같습니다.
한줄씩 수행해 보시면 오타도 찾을 수 있고 괄호열고 닫는 것이 틀린 것을 알수 있는데
지금은 맞지를 않습니다.
한줄씩 확인하는 습관을 가지셔야 빨리 배움니다.
2가지 질문중
1. ssget을 사용할때 getstring으로 저장해논 findbae의 내용을 담고 싶은부분
(setq ss (ssget “x” ‘((0 , “text”)(1 . 문제부문)) )) 에서
‘((0 , “text”)(1 . 문제부문)) 을 (list ‘(0 , “text”) (cons 1 Findbae)) 로 수정
2. 줌을 활용해 선택한 것으로 화면을 이동하는 것은
선택한 것이 없거나 여러개일 경우를 고려하지 않으셨습니다.
선택된 것은 여러개일 경우가 있으므로 while 문을 사용하여 반복수행 시켜야 합니다.
(setq n 0)
(while (setq ent (ssname ss n))
(command “zoom” “o” ent “”)
(setq n (1+ n))
);while
하지만 이 경우에도 찾은 것이 많다고 하더라도 중간에 zoom이 멈추지 않고 계속되므로
원하는 곳에서 멈추도록 해주는 것을 추가해야 합니다.
최소로 수정해 본다면
(defun c:dkdk()
(while (setq ent (ssname ss n))
(command “zoom” “o” ent pause)
(setq n (1+ n))
);while
— 가능하면 내생각은 이런데 잘안되요가 아닌 구체적이고 작은 한부분씩 질문을 하시면
많은 분들이 답하실수 있을 것입니다.—
음 어제 결국 사용성공을 했습니다 디버깅은 안한 상태가 맞았구요