면적을 구해주는 리습인데요. 소수점 둘째까지만 나오는데
셋째 자리수로 나오게 하려면 어디부분을 수정해줘야 하나요??
;;===========================================================
; Quick area(98cho_i)
; ->pline을 선택하여 화면에 면적을 자동으로 표기(2자리)
;;———————————————————–
(defun c:qa(/ myerror choi d_ts w_os grpt pt1 ent1 en1 ar1 ar2 ar3 ar4 ar5 an arm ht)
;start — Internal error handler ———-
(defun myerror(S)
(if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
(setvar “osmode” w_os)
(setq *error* olderr)(princ) )
(setq olderr *error* *error* myerror)
;end—————————————-
(prompt “… 면적구하기”)
(setq choi (getvar “orthomode”) d_ts (getvar “textsize”)
w_os (getvar “osmode”) )
(setvar “orthomode” 0) (setvar “osmode” 0)
(setq ht d_ts)
(prompt “nText Height<“) (prin1 ht) (prompt “>: “)
(setq ht (getdist))
(if (= ht nil) (setq ht d_ts))
;;
(setq ent1 (entsel “nPline 선택->”))
(if (/= ent1 nil)(progn
(setq en1 (car ent1)) (redraw en1 3)
(setq grpt (grread T))
(setq pt1 (cadr grpt))
(command “area” “e” ent1)
))
;-boundary start
(if (= ent1 nil)(progn
(prompt “nSelect internal point->”)
(command “boundary” pause “”)
(setq en1 (entlast))(redraw en1 3)
(command “area” “e” “l”)
(setq pt1 (getvar “lastpoint”))
));-boundary end
(setq ar1 (/ (getvar “area”) 1.0e+02))
(setq ar2 (rtos ar1 2 0))
(setq an (strlen ar2))
(setq arm (substr ar2 (- an 1) 1))
(setq arm (atof arm))
(setq ar3 (atoi ar2))
(if (>= arm 5)(progn
(setq ar3 (+ ar3 100))
))
(setq ar3 (rtos ar3 2 0))
(setq ar4 (strcat (substr ar3 1 (- an 4)) “.” (substr ar3 (- an 3) 2) ))
(if (= (substr ar4 1 1) “.”) (setq ar4 (strcat “0” ar4)))
(setq ar5 (strcat (substr ar2 1 (- an 4)) “.” (substr ar2 (- an 3) 3) ))
(if (= (substr ar5 1 1) “.”) (setq ar5 (strcat “0” ar5)))
(command “text” “j” “r” pt1 ht “0” ar4)
(prompt “nEnter text point->”)
(command “move” “l” “” pt1 pause)
(redraw en1 4)
(setvar “orthomode” choi) (setvar “osmode” w_os)
(prompt “nArea : “)(prin1 ar5) (prompt ” or “)(prin1 ar4)
(prin1)
)