리습 초짜입니다. 또 도움을 요청하러 왔습니다. 부디…조언을…
뭔가 해보려는데 역시 초짜는 짜집기 밖엔 못하겠더군요.
도면에 흩뿌려진 텍스트 중에 20.오리발 50.오리발 30.오리발
이런게 있다고 하면 이것들을 빠른선택으로 *오리발 로 잡으면
위의 세개가 선택됩니다. 그다음에 여기서 다운받은 textsum을 이용하면
값이 100 이라고 도면에 출력이 됩니다.
이걸 한큐에 명령어 치고 “오리발”이라고 입력하면 오리발 앞에있는
숫자들의 합이 도면에 표시되도록 하고 싶은데요, 여기저기 돌아다녀
주워봐도 힘들군요. 아래처럼 하면 오리발은 금방 구해지는데, 이렇게
만들면, 오리발,닭발,타조발,거위발,심지어 개발까지…다양한 변화에
대처하기위해 계속되는 리습을 만들어야 하는데요, 제가 입력한 값을
포함하는 문자를 선택세트값으로 인식하게 하는 방법이 없을까요?
그럼 미리주실 조언에 감사드리며…좋은 하루 되세요…
(defun c:sts (/ z ss sno no tno sum x entity etype num h pt)
(prompt “n숫자합을 원하는 문자 : “)
(setq ss (ssget “x” (list (cons 0 “text”)(cons 1 “*오리발”))))
(setq sno (sslength ss))
(setq no 0)
(setq sum 0.0)
(setq tno 0)
(repeat sno
(setq x (ssname ss no))
(setq etype (cdr (assoc 0 (entget x))))
(if (= etype “TEXT”)
(progn
(setq entity (entget x))
(setq num (cdr (assoc 1 entity)))
(setq num (atof num))
(setq sum (+ sum num))
(setq tno (1+ tno))
)
)
(setq no (1+ no))
)
(setq tno (itoa tno))
(setq sum (rtos sum 2 ))
(princ “nAdding “)
(princ tno)
(princ ” nTexts: “)
(princ “nThe Result is: “)
(princ sum)
(princ ” “)
;; (princ “nDo You Want Write it into the DWG?
;; (setq z (strcase (getstring)))
;; (if (or (= z “”) (= z “Y”))
;; (progn
(setq pt (getpoint “nText Point: “))
(setq h (getvar “textsize”))
;; (prompt “nText Height: “)
;; (princ H)
;; (princ ” : “)
;; (setq z (getdist))
;; (if z
;; (setq h z)
;; )
(command “text” “j” “R” PT h “” sum)
;; )
;; )
;; )
(prin1)
)