더하기 리습입니다.
검색을 많이 이용하여 제가 제일 원하는 것과 제일 유사한 리습을 찾아서 쓰고 있습니다.
다만, 한가지 수정을 해야하는데요.
1,000.1과 1을 더하면 1,001.1이 나와야하는데
콤마, 마침표 전부 무시하고 10011이 나옵니다.
콤마하고 마침표 좀 살려주세요..
—————————————————————————-
(defun c:++(/ ob n i a sum num t1 t2)
(setq ob (ssget ‘((0 . “TEXT,MTEXT”))))
(setq n (sslength ob))
(setq i 0)
(setq sum 0)
(setq t2 (cdr (assoc 40 (entget (ssname ob 0)))))
(while (< i n)
(setq a (cdr (assoc 1 (entget (ssname ob i)))))
(setq a(_PureNo a))
(setq num (atof a))
(setq sum (+ sum num))
(setq i (+ 1 i))
);while
(setq t1 (rtos sum 2 5))
(command “Text”(getpoint “n 지점 선택”) t2 “” t1)
(princ)
)
(defun _PureNo(str / len st1 n temp)
(setq len (strlen str))
(setq st1 “”)
(setq n 1)
(while (>= len n)
(setq temp (substr str n 1))
(if (<= 48 (ascii temp) 57)
(setq st1(strcat st1 temp))
)
(setq n (+ n 1))
)
st1
)
공유
역시…乃
신속 정확한 답변 감사드립니다!
딱! 제가 원하는 대로 됐습니다.
정말 감사합니다~
근데 이거 명령어를 좀 바꾸고 싶은데.. 가능할까요? 그냥 간단하게 sum이라고…
안녕하세요 메론님!
항상 감사하게 생각하고 있습니다.
저도 콤마 넣는걸 생각했었는데..
1,000.1 + 1.0 = 1,001.1이 아니라 10,011이 나오네요..(소수점이 사라짐..)
제가 생각컨데… 저 10,011이라는 값을 1/10을 적용하면 안될까요?