
아래 와 같은 lisp 입니다만.
여기서 문제가 / * – + 를 누른수 원하는 수자 입력을하면
정수로만 나오는 상황이 되는데..
이것을 소수점 두제자리 까지 변경을 하고 싶습니다.
어디를 수정해야되는지 고수님들… 수정 부탁드립니다..
—————————————————————————————-
(defun C:- (/ SUMTXT n objnew objlen cal ename no txtzn txt1 ftxt elist)
(setvar “CMDECHO” 1)
(setq n 0 t 0
objnew (ssget ‘((0 . “text”)))
objlen (sslength objnew)
cal (getstring “n Cal. Mark (+ – * /) :”)
sumtxt (getint “n 일률적으로 적용시키고자 하는값 :”)
)
(while (< n objlen)
(setq ename (ssname objnew n)
elist (entget ename))
(if (or (= “TEXT” (cdr (assoc 0 elist))) (= “MTEXT” (cdr (assoc 0 elist))) )
(progn
(setq txt (cdr (assoc 1 elist)))
(if (or (/= 0 (atoi (substr txt (strlen txt) (strlen txt)))) (= “0” (substr txt (strlen txt) (strlen txt))) )
(progn
(if (distof txt)
(setq txtzn txt)
(search-text)
);if
(if (= “+” cal) (setq no (+ (atoi txtzn) sumtxt)))
(if (= “-” cal) (setq no (- (atoi txtzn) sumtxt)))
(if (= “/” cal) (setq no (/ (atoi txtzn) sumtxt)))
(if (= “*” cal) (setq no (* (atoi txtzn) sumtxt)))
(if (distof txt)
(setq txt1 (itoa no))
(setq txt1 (strcat ftxt (itoa no)))
);if
(setq elist (subst (cons 1 txt1) (assoc 1 elist) elist))
(entmod elist)
);progn
);if
);progn
);if
(setq n (+ n 1))
);while
(princ)
)
감사합니다 ^^ 소수점2자리까지 변경이 되네요 ^^